From a73ae4b0e81faa8ac38e2be6563b23b1d8c36c53 Mon Sep 17 00:00:00 2001 From: Jan de Mooij Date: Thu, 20 Nov 2014 12:07:26 +0100 Subject: [PATCH] Backout a3f7920495b4 (bug 1096280) because it made benchmarks more noisy and didn't help much. r=me --- build/pgo/index.html | 28 +- build/pgo/js-input/octane/base.js | 393 - build/pgo/js-input/octane/box2d.html | 19 - build/pgo/js-input/octane/box2d.js | 566 - build/pgo/js-input/octane/code-load.html | 19 - build/pgo/js-input/octane/code-load.js | 1552 - build/pgo/js-input/octane/crypto.html | 19 - build/pgo/js-input/octane/crypto.js | 1698 - build/pgo/js-input/octane/deltablue.html | 19 - build/pgo/js-input/octane/deltablue.js | 883 - build/pgo/js-input/octane/earley-boyer.html | 19 - build/pgo/js-input/octane/earley-boyer.js | 4684 - build/pgo/js-input/octane/gbemu-part1.js | 1350 - build/pgo/js-input/octane/gbemu-part2.js | 9780 - build/pgo/js-input/octane/gbemu.html | 20 - build/pgo/js-input/octane/mandreel.html | 19 - build/pgo/js-input/octane/mandreel.js | 277403 --------------- build/pgo/js-input/octane/navier-stokes.html | 19 - build/pgo/js-input/octane/navier-stokes.js | 415 - build/pgo/js-input/octane/pdfjs.html | 19 - build/pgo/js-input/octane/pdfjs.js | 33053 -- build/pgo/js-input/octane/raytrace.html | 19 - build/pgo/js-input/octane/raytrace.js | 904 - build/pgo/js-input/octane/regexp.html | 19 - build/pgo/js-input/octane/regexp.js | 1805 - build/pgo/js-input/octane/richards.html | 19 - build/pgo/js-input/octane/richards.js | 539 - build/pgo/js-input/octane/run.js | 33 - build/pgo/js-input/octane/splay.html | 19 - build/pgo/js-input/octane/splay.js | 423 - .../js-input/octane/typescript-compiler.js | 25745 -- build/pgo/js-input/octane/typescript-input.js | 2 - build/pgo/js-input/octane/typescript.html | 21 - build/pgo/js-input/octane/typescript.js | 172 - build/pgo/js-input/octane/zlib-data.js | 2409 - build/pgo/js-input/octane/zlib.html | 20 - build/pgo/js-input/octane/zlib.js | 176 - 37 files changed, 6 insertions(+), 364296 deletions(-) delete mode 100644 build/pgo/js-input/octane/base.js delete mode 100644 build/pgo/js-input/octane/box2d.html delete mode 100644 build/pgo/js-input/octane/box2d.js delete mode 100644 build/pgo/js-input/octane/code-load.html delete mode 100644 build/pgo/js-input/octane/code-load.js delete mode 100644 build/pgo/js-input/octane/crypto.html delete mode 100644 build/pgo/js-input/octane/crypto.js delete mode 100644 build/pgo/js-input/octane/deltablue.html delete mode 100644 build/pgo/js-input/octane/deltablue.js delete mode 100644 build/pgo/js-input/octane/earley-boyer.html delete mode 100644 build/pgo/js-input/octane/earley-boyer.js delete mode 100644 build/pgo/js-input/octane/gbemu-part1.js delete mode 100644 build/pgo/js-input/octane/gbemu-part2.js delete mode 100644 build/pgo/js-input/octane/gbemu.html delete mode 100644 build/pgo/js-input/octane/mandreel.html delete mode 100644 build/pgo/js-input/octane/mandreel.js delete mode 100644 build/pgo/js-input/octane/navier-stokes.html delete mode 100644 build/pgo/js-input/octane/navier-stokes.js delete mode 100644 build/pgo/js-input/octane/pdfjs.html delete mode 100644 build/pgo/js-input/octane/pdfjs.js delete mode 100644 build/pgo/js-input/octane/raytrace.html delete mode 100644 build/pgo/js-input/octane/raytrace.js delete mode 100644 build/pgo/js-input/octane/regexp.html delete mode 100644 build/pgo/js-input/octane/regexp.js delete mode 100644 build/pgo/js-input/octane/richards.html delete mode 100644 build/pgo/js-input/octane/richards.js delete mode 100644 build/pgo/js-input/octane/run.js delete mode 100644 build/pgo/js-input/octane/splay.html delete mode 100644 build/pgo/js-input/octane/splay.js delete mode 100644 build/pgo/js-input/octane/typescript-compiler.js delete mode 100644 build/pgo/js-input/octane/typescript-input.js delete mode 100644 build/pgo/js-input/octane/typescript.html delete mode 100644 build/pgo/js-input/octane/typescript.js delete mode 100644 build/pgo/js-input/octane/zlib-data.js delete mode 100644 build/pgo/js-input/octane/zlib.html delete mode 100644 build/pgo/js-input/octane/zlib.js diff --git a/build/pgo/index.html b/build/pgo/index.html index 4c2dfd2c33b2..ccfa00d0090e 100644 --- a/build/pgo/index.html +++ b/build/pgo/index.html @@ -3,14 +3,14 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - var list = [ + var list = + [ "blueprint/sample.html", "blueprint/forms.html", "blueprint/grid.html", "blueprint/elements.html", "js-input/3d-thingy.html", "js-input/crypto-otp.html", - "js-input/sunspider/3d-cube.html", "js-input/sunspider/3d-morph.html", "js-input/sunspider/3d-raytrace.html", @@ -36,31 +36,15 @@ "js-input/sunspider/string-fasta.html", "js-input/sunspider/string-tagcloud.html", "js-input/sunspider/string-unpack-code.html", - "js-input/sunspider/string-validate-input.html", - - "js-input/octane/box2d.html", - "js-input/octane/code-load.html", - "js-input/octane/crypto.html", - "js-input/octane/deltablue.html", - "js-input/octane/earley-boyer.html", - "js-input/octane/gbemu.html", - "js-input/octane/mandreel.html", - "js-input/octane/navier-stokes.html", - "js-input/octane/pdfjs.html", - "js-input/octane/raytrace.html", - "js-input/octane/regexp.html", - "js-input/octane/richards.html", - "js-input/octane/splay.html", - "js-input/octane/typescript.html", - "js-input/octane/zlib.html" + "js-input/sunspider/string-validate-input.html" ]; var interval = 1000; var idx = 0; var w; - + window.onload = function () { w = window.open("about:blank"); - window.setTimeout(loadURL, interval); + window.setTimeout(loadURL, interval); }; function loadURL () { w.close(); @@ -72,7 +56,7 @@ } } var i; - + for(i=0; i < list.length;i++) { document.write(list[i]); document.write("
"); diff --git a/build/pgo/js-input/octane/base.js b/build/pgo/js-input/octane/base.js deleted file mode 100644 index 0c65779000ca..000000000000 --- a/build/pgo/js-input/octane/base.js +++ /dev/null @@ -1,393 +0,0 @@ -// Copyright 2013 the V8 project authors. All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -// Performance.now is used in latency benchmarks, the fallback is Date.now. -var performance = performance || {}; -performance.now = (function() { - return performance.now || - performance.mozNow || - performance.msNow || - performance.oNow || - performance.webkitNow || - Date.now; -})(); - -// Simple framework for running the benchmark suites and -// computing a score based on the timing measurements. - - -// A benchmark has a name (string) and a function that will be run to -// do the performance measurement. The optional setup and tearDown -// arguments are functions that will be invoked before and after -// running the benchmark, but the running time of these functions will -// not be accounted for in the benchmark score. -function Benchmark(name, doWarmup, doDeterministic, deterministicIterations, - run, setup, tearDown, rmsResult, minIterations) { - this.name = name; - this.doWarmup = doWarmup; - this.doDeterministic = doDeterministic; - this.deterministicIterations = deterministicIterations; - this.run = run; - this.Setup = setup ? setup : function() { }; - this.TearDown = tearDown ? tearDown : function() { }; - this.rmsResult = rmsResult ? rmsResult : null; - this.minIterations = minIterations ? minIterations : 32; -} - - -// Benchmark results hold the benchmark and the measured time used to -// run the benchmark. The benchmark score is computed later once a -// full benchmark suite has run to completion. If latency is set to 0 -// then there is no latency score for this benchmark. -function BenchmarkResult(benchmark, time, latency) { - this.benchmark = benchmark; - this.time = time; - this.latency = latency; -} - - -// Automatically convert results to numbers. Used by the geometric -// mean computation. -BenchmarkResult.prototype.valueOf = function() { - return this.time; -} - - -// Suites of benchmarks consist of a name and the set of benchmarks in -// addition to the reference timing that the final score will be based -// on. This way, all scores are relative to a reference run and higher -// scores implies better performance. -function BenchmarkSuite(name, reference, benchmarks) { - this.name = name; - this.reference = reference; - this.benchmarks = benchmarks; - BenchmarkSuite.suites.push(this); -} - - -// Keep track of all declared benchmark suites. -BenchmarkSuite.suites = []; - -// Scores are not comparable across versions. Bump the version if -// you're making changes that will affect that scores, e.g. if you add -// a new benchmark or change an existing one. -BenchmarkSuite.version = '9'; - - -// Defines global benchsuite running mode that overrides benchmark suite -// behavior. Intended to be set by the benchmark driver. Undefined -// values here allow a benchmark to define behaviour itself. -BenchmarkSuite.config = { - doWarmup: undefined, - doDeterministic: undefined -}; - - -// Override the alert function to throw an exception instead. -alert = function(s) { - throw "Alert called with argument: " + s; -}; - - -// To make the benchmark results predictable, we replace Math.random -// with a 100% deterministic alternative. -BenchmarkSuite.ResetRNG = function() { - Math.random = (function() { - var seed = 49734321; - return function() { - // Robert Jenkins' 32 bit integer hash function. - seed = ((seed + 0x7ed55d16) + (seed << 12)) & 0xffffffff; - seed = ((seed ^ 0xc761c23c) ^ (seed >>> 19)) & 0xffffffff; - seed = ((seed + 0x165667b1) + (seed << 5)) & 0xffffffff; - seed = ((seed + 0xd3a2646c) ^ (seed << 9)) & 0xffffffff; - seed = ((seed + 0xfd7046c5) + (seed << 3)) & 0xffffffff; - seed = ((seed ^ 0xb55a4f09) ^ (seed >>> 16)) & 0xffffffff; - return (seed & 0xfffffff) / 0x10000000; - }; - })(); -} - - -// Runs all registered benchmark suites and optionally yields between -// each individual benchmark to avoid running for too long in the -// context of browsers. Once done, the final score is reported to the -// runner. -BenchmarkSuite.RunSuites = function(runner, skipBenchmarks) { - skipBenchmarks = typeof skipBenchmarks === 'undefined' ? [] : skipBenchmarks; - var continuation = null; - var suites = BenchmarkSuite.suites; - var length = suites.length; - BenchmarkSuite.scores = []; - var index = 0; - function RunStep() { - while (continuation || index < length) { - if (continuation) { - continuation = continuation(); - } else { - var suite = suites[index++]; - if (runner.NotifyStart) runner.NotifyStart(suite.name); - if (skipBenchmarks.indexOf(suite.name) > -1) { - suite.NotifySkipped(runner); - } else { - continuation = suite.RunStep(runner); - } - } - - // Don't use setTimeout during the PGO run, it could interfere with - // the setTimeout in the index.html script. - if (continuation && 0) {//XXX && typeof window != 'undefined' && window.setTimeout) { - window.setTimeout(RunStep, 25); - return; - } - } - - // show final result - if (runner.NotifyScore) { - var score = BenchmarkSuite.GeometricMean(BenchmarkSuite.scores); - var formatted = BenchmarkSuite.FormatScore(100 * score); - runner.NotifyScore(formatted); - } - } - RunStep(); -} - - -// Counts the total number of registered benchmarks. Useful for -// showing progress as a percentage. -BenchmarkSuite.CountBenchmarks = function() { - var result = 0; - var suites = BenchmarkSuite.suites; - for (var i = 0; i < suites.length; i++) { - result += suites[i].benchmarks.length; - } - return result; -} - - -// Computes the geometric mean of a set of numbers. -BenchmarkSuite.GeometricMean = function(numbers) { - var log = 0; - for (var i = 0; i < numbers.length; i++) { - log += Math.log(numbers[i]); - } - return Math.pow(Math.E, log / numbers.length); -} - - -// Computes the geometric mean of a set of throughput time measurements. -BenchmarkSuite.GeometricMeanTime = function(measurements) { - var log = 0; - for (var i = 0; i < measurements.length; i++) { - log += Math.log(measurements[i].time); - } - return Math.pow(Math.E, log / measurements.length); -} - - -// Computes the geometric mean of a set of rms measurements. -BenchmarkSuite.GeometricMeanLatency = function(measurements) { - var log = 0; - var hasLatencyResult = false; - for (var i = 0; i < measurements.length; i++) { - if (measurements[i].latency != 0) { - log += Math.log(measurements[i].latency); - hasLatencyResult = true; - } - } - if (hasLatencyResult) { - return Math.pow(Math.E, log / measurements.length); - } else { - return 0; - } -} - - -// Converts a score value to a string with at least three significant -// digits. -BenchmarkSuite.FormatScore = function(value) { - if (value > 100) { - return value.toFixed(0); - } else { - return value.toPrecision(3); - } -} - -// Notifies the runner that we're done running a single benchmark in -// the benchmark suite. This can be useful to report progress. -BenchmarkSuite.prototype.NotifyStep = function(result) { - this.results.push(result); - if (this.runner.NotifyStep) this.runner.NotifyStep(result.benchmark.name); -} - - -// Notifies the runner that we're done with running a suite and that -// we have a result which can be reported to the user if needed. -BenchmarkSuite.prototype.NotifyResult = function() { - var mean = BenchmarkSuite.GeometricMeanTime(this.results); - var score = this.reference[0] / mean; - BenchmarkSuite.scores.push(score); - if (this.runner.NotifyResult) { - var formatted = BenchmarkSuite.FormatScore(100 * score); - this.runner.NotifyResult(this.name, formatted); - } - if (this.reference.length == 2) { - var meanLatency = BenchmarkSuite.GeometricMeanLatency(this.results); - if (meanLatency != 0) { - var scoreLatency = this.reference[1] / meanLatency; - BenchmarkSuite.scores.push(scoreLatency); - if (this.runner.NotifyResult) { - var formattedLatency = BenchmarkSuite.FormatScore(100 * scoreLatency) - this.runner.NotifyResult(this.name + "Latency", formattedLatency); - } - } - } -} - - -BenchmarkSuite.prototype.NotifySkipped = function(runner) { - BenchmarkSuite.scores.push(1); // push default reference score. - if (runner.NotifyResult) { - runner.NotifyResult(this.name, "Skipped"); - } -} - - -// Notifies the runner that running a benchmark resulted in an error. -BenchmarkSuite.prototype.NotifyError = function(error) { - if (this.runner.NotifyError) { - this.runner.NotifyError(this.name, error); - } - if (this.runner.NotifyStep) { - this.runner.NotifyStep(this.name); - } -} - - -// Runs a single benchmark for at least a second and computes the -// average time it takes to run a single iteration. -BenchmarkSuite.prototype.RunSingleBenchmark = function(benchmark, data) { - var config = BenchmarkSuite.config; - var doWarmup = config.doWarmup !== undefined - ? config.doWarmup - : benchmark.doWarmup; - var doDeterministic = config.doDeterministic !== undefined - ? config.doDeterministic - : benchmark.doDeterministic; - - function Measure(data) { - var elapsed = 0; - var start = new Date(); - - // Run either for 1 second or for the number of iterations specified - // by minIterations, depending on the config flag doDeterministic. - for (var i = 0; (doDeterministic ? - i - -Octane - - - - -

Octane

-
-
- - - - - - - - - diff --git a/build/pgo/js-input/octane/box2d.js b/build/pgo/js-input/octane/box2d.js deleted file mode 100644 index 15c65510b5b1..000000000000 --- a/build/pgo/js-input/octane/box2d.js +++ /dev/null @@ -1,566 +0,0 @@ -// Portions copyright 2013 Google, Inc - -/* -* Copyright (c) 2006-2007 Erin Catto http://www.gphysics.com -* -* This software is provided 'as-is', without any express or implied -* warranty. In no event will the authors be held liable for any damages -* arising from the use of this software. -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute it -* freely, subject to the following restrictions: -* 1. The origin of this software must not be misrepresented; you must not -* claim that you wrote the original software. If you use this software -* in a product, an acknowledgment in the product documentation would be -* appreciated but is not required. -* 2. Altered source versions must be plainly marked as such, and must not be -* misrepresented as being the original software. -* 3. This notice may not be removed or altered from any source distribution. -*/ - -var Box2D={}; -(function(F,G){function K(){}if(!(Object.defineProperty instanceof Function)&&Object.prototype.__defineGetter__ instanceof Function&&Object.prototype.__defineSetter__ instanceof Function)Object.defineProperty=function(y,w,A){A.get instanceof Function&&y.__defineGetter__(w,A.get);A.set instanceof Function&&y.__defineSetter__(w,A.set)};F.inherit=function(y,w){K.prototype=w.prototype;y.prototype=new K;y.prototype.constructor=y};F.generateCallback=function(y,w){return function(){w.apply(y,arguments)}}; -F.NVector=function(y){if(y===G)y=0;for(var w=Array(y||0),A=0;A=0&&b>=0)&&this.lowerBound.IsValid()&&this.upperBound.IsValid()};B.prototype.GetCenter=function(){return new p((this.lowerBound.x+ -this.upperBound.x)/2,(this.lowerBound.y+this.upperBound.y)/2)};B.prototype.GetExtents=function(){return new p((this.upperBound.x-this.lowerBound.x)/2,(this.upperBound.y-this.lowerBound.y)/2)};B.prototype.Contains=function(b){var e=true;return e=(e=(e=(e=e&&this.lowerBound.x<=b.lowerBound.x)&&this.lowerBound.y<=b.lowerBound.y)&&b.upperBound.x<=this.upperBound.x)&&b.upperBound.y<=this.upperBound.y};B.prototype.RayCast=function(b,e){var f=-Number.MAX_VALUE,m=Number.MAX_VALUE,r=e.p1.x,s=e.p1.y,v=e.p2.x- -e.p1.x,t=e.p2.y-e.p1.y,x=Math.abs(t),C=b.normal,J=0,T=0,P=J=0;P=0;if(Math.abs(v)J){P=T;T=J;J=P;P=1}if(T>f){C.x=P;C.y=0;f=T}m=Math.min(m,J);if(f>m)return false}if(xJ){P=T;T=J;J=P;P=1}if(T>f){C.y=P;C.x=0;f= -T}m=Math.min(m,J);if(f>m)return false}b.fraction=f;return true};B.prototype.TestOverlap=function(b){var e=b.lowerBound.y-this.upperBound.y,f=this.lowerBound.y-b.upperBound.y;if(b.lowerBound.x-this.upperBound.x>0||e>0)return false;if(this.lowerBound.x-b.upperBound.x>0||f>0)return false;return true};B.Combine=function(b,e){var f=new B;f.Combine(b,e);return f};B.prototype.Combine=function(b,e){this.lowerBound.x=Math.min(b.lowerBound.x,e.lowerBound.x);this.lowerBound.y=Math.min(b.lowerBound.y,e.lowerBound.y); -this.upperBound.x=Math.max(b.upperBound.x,e.upperBound.x);this.upperBound.y=Math.max(b.upperBound.y,e.upperBound.y)};Q.b2Bound=function(){};Q.prototype.IsLower=function(){return(this.value&1)==0};Q.prototype.IsUpper=function(){return(this.value&1)==1};Q.prototype.Swap=function(b){var e=this.value,f=this.proxy,m=this.stabbingCount;this.value=b.value;this.proxy=b.proxy;this.stabbingCount=b.stabbingCount;b.value=e;b.proxy=f;b.stabbingCount=m};V.b2BoundValues=function(){};V.prototype.b2BoundValues=function(){this.lowerValues= -new Vector_a2j_Number;this.lowerValues[0]=0;this.lowerValues[1]=0;this.upperValues=new Vector_a2j_Number;this.upperValues[0]=0;this.upperValues[1]=0};M.b2Collision=function(){};M.ClipSegmentToLine=function(b,e,f,m){if(m===undefined)m=0;var r,s=0;r=e[0];var v=r.v;r=e[1];var t=r.v,x=f.x*v.x+f.y*v.y-m;r=f.x*t.x+f.y*t.y-m;x<=0&&b[s++].Set(e[0]);r<=0&&b[s++].Set(e[1]);if(x*r<0){f=x/(x-r);r=b[s];r=r.v;r.x=v.x+f*(t.x-v.x);r.y=v.y+f*(t.y-v.y);r=b[s];r.id=(x>0?e[0]:e[1]).id;++s}return s};M.EdgeSeparation= -function(b,e,f,m,r){if(f===undefined)f=0;parseInt(b.m_vertexCount);var s=b.m_vertices;b=b.m_normals;var v=parseInt(m.m_vertexCount),t=m.m_vertices,x,C;x=e.R;C=b[f];b=x.col1.x*C.x+x.col2.x*C.y;m=x.col1.y*C.x+x.col2.y*C.y;x=r.R;var J=x.col1.x*b+x.col1.y*m;x=x.col2.x*b+x.col2.y*m;for(var T=0,P=Number.MAX_VALUE,X=0;XT){T=t;C=P}}v=M.EdgeSeparation(e,f,C,m,r);t=parseInt(C-1>=0?C-1:s-1);x=M.EdgeSeparation(e,f,t,m,r);J=parseInt(C+1v&&x>T){$=-1;P=t;X=x}else if(T>v){$=1;P=J;X=T}else{b[0]=C;return v}for(;;){C=$==-1?P-1>=0?P-1:s-1:P+1X){P=C;X=v}else break}b[0]=P;return X};M.FindIncidentEdge=function(b,e,f,m,r,s){if(m===undefined)m=0;parseInt(e.m_vertexCount);var v=e.m_normals,t=parseInt(r.m_vertexCount); -e=r.m_vertices;r=r.m_normals;var x;x=f.R;f=v[m];v=x.col1.x*f.x+x.col2.x*f.y;var C=x.col1.y*f.x+x.col2.y*f.y;x=s.R;f=x.col1.x*v+x.col1.y*C;C=x.col2.x*v+x.col2.y*C;v=f;x=0;for(var J=Number.MAX_VALUE,T=0;Tv)){var x=0;M.s_edgeBO[0]=x;var C=M.FindMaxSeparation(M.s_edgeBO, -m,r,e,f);x=M.s_edgeBO[0];if(!(C>v)){var J=0,T=0;if(C>0.98*t+0.0010){t=m;m=e;e=r;f=f;J=x;b.m_type=E.e_faceB;T=1}else{t=e;m=m;e=f;f=r;J=s;b.m_type=E.e_faceA;T=0}s=M.s_incidentEdge;M.FindIncidentEdge(s,t,e,J,m,f);x=parseInt(t.m_vertexCount);r=t.m_vertices;t=r[J];var P;P=J+1s*s)){b.m_type=E.e_circles;b.m_localPoint.SetV(e.m_p);b.m_localPlaneNormal.SetZero();b.m_pointCount=1;b.m_points[0].m_localPoint.SetV(m.m_p);b.m_points[0].m_id.key=0}};M.CollidePolygonAndCircle=function(b,e,f,m,r){var s=b.m_pointCount=0,v=0,t,x;x=r.R;t=m.m_p;var C=r.position.y+(x.col1.y*t.x+x.col2.y*t.y);s=r.position.x+(x.col1.x*t.x+x.col2.x*t.y)-f.position.x;v=C-f.position.y;x=f.R;f=s* -x.col1.x+v*x.col1.y;x=s*x.col2.x+v*x.col2.y;var J=0;C=-Number.MAX_VALUE;r=e.m_radius+m.m_radius;var T=parseInt(e.m_vertexCount),P=e.m_vertices;e=e.m_normals;for(var X=0;Xr)return;if(s>C){C=s;J=X}}s=parseInt(J);v=parseInt(s+1r*r)return;b.m_pointCount=1;b.m_type=E.e_faceA;b.m_localPlaneNormal.x=f-t.x;b.m_localPlaneNormal.y=x-t.y;b.m_localPlaneNormal.Normalize();b.m_localPoint.SetV(t)}else if(C<=0){if((f-P.x)*(f-P.x)+(x-P.y)*(x-P.y)>r*r)return;b.m_pointCount=1;b.m_type=E.e_faceA;b.m_localPlaneNormal.x=f-P.x;b.m_localPlaneNormal.y=x-P.y;b.m_localPlaneNormal.Normalize();b.m_localPoint.SetV(P)}else{J=0.5*(t.x+P.x);t=0.5*(t.y+P.y);C=(f-J)*e[s].x+ -(x-t)*e[s].y;if(C>r)return;b.m_pointCount=1;b.m_type=E.e_faceA;b.m_localPlaneNormal.x=e[s].x;b.m_localPlaneNormal.y=e[s].y;b.m_localPlaneNormal.Normalize();b.m_localPoint.Set(J,t)}}b.m_points[0].m_localPoint.SetV(m.m_p);b.m_points[0].m_id.key=0};M.TestOverlap=function(b,e){var f=e.lowerBound,m=b.upperBound,r=f.x-m.x,s=f.y-m.y;f=b.lowerBound;m=e.upperBound;var v=f.y-m.y;if(r>0||s>0)return false;if(f.x-m.x>0||v>0)return false;return true};Box2D.postDefs.push(function(){Box2D.Collision.b2Collision.s_incidentEdge= -M.MakeClipPointVector();Box2D.Collision.b2Collision.s_clipPoints1=M.MakeClipPointVector();Box2D.Collision.b2Collision.s_clipPoints2=M.MakeClipPointVector();Box2D.Collision.b2Collision.s_edgeAO=new Vector_a2j_Number(1);Box2D.Collision.b2Collision.s_edgeBO=new Vector_a2j_Number(1);Box2D.Collision.b2Collision.s_localTangent=new p;Box2D.Collision.b2Collision.s_localNormal=new p;Box2D.Collision.b2Collision.s_planePoint=new p;Box2D.Collision.b2Collision.s_normal=new p;Box2D.Collision.b2Collision.s_tangent= -new p;Box2D.Collision.b2Collision.s_tangent2=new p;Box2D.Collision.b2Collision.s_v11=new p;Box2D.Collision.b2Collision.s_v12=new p;Box2D.Collision.b2Collision.b2CollidePolyTempVec=new p;Box2D.Collision.b2Collision.b2_nullFeature=255});L.b2ContactID=function(){this.features=new c};L.prototype.b2ContactID=function(){this.features._m_id=this};L.prototype.Set=function(b){this.key=b._key};L.prototype.Copy=function(){var b=new L;b.key=this.key;return b};Object.defineProperty(L.prototype,"key",{enumerable:false, -configurable:true,get:function(){return this._key}});Object.defineProperty(L.prototype,"key",{enumerable:false,configurable:true,set:function(b){if(b===undefined)b=0;this._key=b;this.features._referenceEdge=this._key&255;this.features._incidentEdge=(this._key&65280)>>8&255;this.features._incidentVertex=(this._key&16711680)>>16&255;this.features._flip=(this._key&4278190080)>>24&255}});I.b2ContactPoint=function(){this.position=new p;this.velocity=new p;this.normal=new p;this.id=new L};W.b2Distance= -function(){};W.Distance=function(b,e,f){++W.b2_gjkCalls;var m=f.proxyA,r=f.proxyB,s=f.transformA,v=f.transformB,t=W.s_simplex;t.ReadCache(e,m,s,r,v);var x=t.m_vertices,C=W.s_saveA,J=W.s_saveB,T=0;t.GetClosestPoint().LengthSquared();for(var P=0,X,$=0;$<20;){T=t.m_count;for(P=0;Pe+r&&b.distance>Number.MIN_VALUE){b.distance-=e+r;f=w.SubtractVV(b.pointB,b.pointA);f.Normalize();b.pointA.x+=e*f.x;b.pointA.y+=e*f.y;b.pointB.x-=r*f.x;b.pointB.y-=r*f.y}else{X=new p;X.x=0.5*(b.pointA.x+b.pointB.x);X.y=0.5*(b.pointA.y+b.pointB.y);b.pointA.x=b.pointB.x=X.x;b.pointA.y=b.pointB.y=X.y;b.distance=0}}};Box2D.postDefs.push(function(){Box2D.Collision.b2Distance.s_simplex=new h;Box2D.Collision.b2Distance.s_saveA= -new Vector_a2j_Number(3);Box2D.Collision.b2Distance.s_saveB=new Vector_a2j_Number(3)});Y.b2DistanceInput=function(){};k.b2DistanceOutput=function(){this.pointA=new p;this.pointB=new p};z.b2DistanceProxy=function(){};z.prototype.Set=function(b){switch(b.GetType()){case K.e_circleShape:b=b instanceof F?b:null;this.m_vertices=new Vector(1,true);this.m_vertices[0]=b.m_p;this.m_count=1;this.m_radius=b.m_radius;break;case K.e_polygonShape:b=b instanceof G?b:null;this.m_vertices=b.m_vertices;this.m_count= -b.m_vertexCount;this.m_radius=b.m_radius;break;default:y.b2Assert(false)}};z.prototype.GetSupport=function(b){for(var e=0,f=this.m_vertices[0].x*b.x+this.m_vertices[0].y*b.y,m=1;mf){e=m;f=r}}return e};z.prototype.GetSupportVertex=function(b){for(var e=0,f=this.m_vertices[0].x*b.x+this.m_vertices[0].y*b.y,m=1;mf){e=m;f=r}}return this.m_vertices[e]}; -z.prototype.GetVertexCount=function(){return this.m_count};z.prototype.GetVertex=function(b){if(b===undefined)b=0;y.b2Assert(0<=b&&b0?f.x:-f.x);f=y.b2_aabbExtension+y.b2_aabbMultiplier*(f.y>0?f.y:-f.y);b.aabb.lowerBound.x=e.lowerBound.x-m;b.aabb.lowerBound.y=e.lowerBound.y-f;b.aabb.upperBound.x=e.upperBound.x+ -m;b.aabb.upperBound.y=e.upperBound.y+f;this.InsertLeaf(b);return true};u.prototype.Rebalance=function(b){if(b===undefined)b=0;if(this.m_root!=null)for(var e=0;e>m&1?f.child2:f.child1;m=m+1&31}++this.m_path;this.RemoveLeaf(f);this.InsertLeaf(f)}};u.prototype.GetFatAABB=function(b){return b.aabb};u.prototype.GetUserData=function(b){return b.userData};u.prototype.Query=function(b,e){if(this.m_root!=null){var f=new Vector,m=0;for(f[m++]= -this.m_root;m>0;){var r=f[--m];if(r.aabb.TestOverlap(e))if(r.IsLeaf()){if(!b(r))break}else{f[m++]=r.child1;f[m++]=r.child2}}}};u.prototype.RayCast=function(b,e){if(this.m_root!=null){var f=e.p1,m=e.p2,r=w.SubtractVV(f,m);r.Normalize();r=w.CrossFV(1,r);var s=w.AbsV(r),v=e.maxFraction,t=new B,x=0,C=0;x=f.x+v*(m.x-f.x);C=f.y+v*(m.y-f.y);t.lowerBound.x=Math.min(f.x,x);t.lowerBound.y=Math.min(f.y,C);t.upperBound.x=Math.max(f.x,x);t.upperBound.y=Math.max(f.y,C);var J=new Vector,T=0;for(J[T++]=this.m_root;T> -0;){v=J[--T];if(v.aabb.TestOverlap(t)!=false){x=v.aabb.GetCenter();C=v.aabb.GetExtents();if(!(Math.abs(r.x*(f.x-x.x)+r.y*(f.y-x.y))-s.x*C.x-s.y*C.y>0))if(v.IsLeaf()){x=new S;x.p1=e.p1;x.p2=e.p2;x.maxFraction=e.maxFraction;v=b(x,v);if(v==0)break;if(v>0){x=f.x+v*(m.x-f.x);C=f.y+v*(m.y-f.y);t.lowerBound.x=Math.min(f.x,x);t.lowerBound.y=Math.min(f.y,C);t.upperBound.x=Math.max(f.x,x);t.upperBound.y=Math.max(f.y,C)}}else{J[T++]=v.child1;J[T++]=v.child2}}}}};u.prototype.AllocateNode=function(){if(this.m_freeList){var b= -this.m_freeList;this.m_freeList=b.parent;b.parent=null;b.child1=null;b.child2=null;return b}return new H};u.prototype.FreeNode=function(b){b.parent=this.m_freeList;this.m_freeList=b};u.prototype.InsertLeaf=function(b){++this.m_insertionCount;if(this.m_root==null){this.m_root=b;this.m_root.parent=null}else{var e=b.aabb.GetCenter(),f=this.m_root;if(f.IsLeaf()==false){do{var m=f.child1;f=f.child2;f=Math.abs((m.aabb.lowerBound.x+m.aabb.upperBound.x)/2-e.x)+Math.abs((m.aabb.lowerBound.y+m.aabb.upperBound.y)/ -2-e.y)=m?t:m;++e.m_pairCount;return true}, -r)}for(f=e.m_moveBuffer.length=0;fx){var J=r.x-this.p1.x,T=r.y-this.p1.y;r=J*f+T*t;if(0<=r&&r<=m*C){m=-s*T+v*J;if(-x*C<=m&&m<=C*(1+x)){r/=C;m=Math.sqrt(f*f+t*t);f/=m;t/=m;b[0]=r;e.Set(f, -t);return true}}}return false};Z.prototype.Extend=function(b){this.ExtendForward(b);this.ExtendBackward(b)};Z.prototype.ExtendForward=function(b){var e=this.p2.x-this.p1.x,f=this.p2.y-this.p1.y;b=Math.min(e>0?(b.upperBound.x-this.p1.x)/e:e<0?(b.lowerBound.x-this.p1.x)/e:Number.POSITIVE_INFINITY,f>0?(b.upperBound.y-this.p1.y)/f:f<0?(b.lowerBound.y-this.p1.y)/f:Number.POSITIVE_INFINITY);this.p2.x=this.p1.x+e*b;this.p2.y=this.p1.y+f*b};Z.prototype.ExtendBackward=function(b){var e=-this.p2.x+this.p1.x, -f=-this.p2.y+this.p1.y;b=Math.min(e>0?(b.upperBound.x-this.p2.x)/e:e<0?(b.lowerBound.x-this.p2.x)/e:Number.POSITIVE_INFINITY,f>0?(b.upperBound.y-this.p2.y)/f:f<0?(b.lowerBound.y-this.p2.y)/f:Number.POSITIVE_INFINITY);this.p1.x=this.p2.x+e*b;this.p1.y=this.p2.y+f*b};d.b2SeparationFunction=function(){this.m_localPoint=new p;this.m_axis=new p};d.prototype.Initialize=function(b,e,f,m,r){this.m_proxyA=e;this.m_proxyB=m;var s=parseInt(b.count);y.b2Assert(01){b=b.metric;s=this.GetMetric();if(s<0.5*b||2*b0?w.CrossFV(1,b):w.CrossVF(b,1);default:y.b2Assert(false);return new p}};h.prototype.GetClosestPoint= -function(){switch(this.m_count){case 0:y.b2Assert(false);return new p;case 1:return this.m_v1.w;case 2:return new p(this.m_v1.a*this.m_v1.w.x+this.m_v2.a*this.m_v2.w.x,this.m_v1.a*this.m_v1.w.y+this.m_v2.a*this.m_v2.w.y);default:y.b2Assert(false);return new p}};h.prototype.GetWitnessPoints=function(b,e){switch(this.m_count){case 0:y.b2Assert(false);break;case 1:b.SetV(this.m_v1.wA);e.SetV(this.m_v1.wB);break;case 2:b.x=this.m_v1.a*this.m_v1.wA.x+this.m_v2.a*this.m_v2.wA.x;b.y=this.m_v1.a*this.m_v1.wA.y+ -this.m_v2.a*this.m_v2.wA.y;e.x=this.m_v1.a*this.m_v1.wB.x+this.m_v2.a*this.m_v2.wB.x;e.y=this.m_v1.a*this.m_v1.wB.y+this.m_v2.a*this.m_v2.wB.y;break;case 3:e.x=b.x=this.m_v1.a*this.m_v1.wA.x+this.m_v2.a*this.m_v2.wA.x+this.m_v3.a*this.m_v3.wA.x;e.y=b.y=this.m_v1.a*this.m_v1.wA.y+this.m_v2.a*this.m_v2.wA.y+this.m_v3.a*this.m_v3.wA.y;break;default:y.b2Assert(false)}};h.prototype.GetMetric=function(){switch(this.m_count){case 0:y.b2Assert(false);return 0;case 1:return 0;case 2:return w.SubtractVV(this.m_v1.w, -this.m_v2.w).Length();case 3:return w.CrossVV(w.SubtractVV(this.m_v2.w,this.m_v1.w),w.SubtractVV(this.m_v3.w,this.m_v1.w));default:y.b2Assert(false);return 0}};h.prototype.Solve2=function(){var b=this.m_v1.w,e=this.m_v2.w,f=w.SubtractVV(e,b);b=-(b.x*f.x+b.y*f.y);if(b<=0)this.m_count=this.m_v1.a=1;else{e=e.x*f.x+e.y*f.y;if(e<=0){this.m_count=this.m_v2.a=1;this.m_v1.Set(this.m_v2)}else{f=1/(e+b);this.m_v1.a=e*f;this.m_v2.a=b*f;this.m_count=2}}};h.prototype.Solve3=function(){var b=this.m_v1.w,e=this.m_v2.w, -f=this.m_v3.w,m=w.SubtractVV(e,b),r=w.Dot(b,m),s=w.Dot(e,m);r=-r;var v=w.SubtractVV(f,b),t=w.Dot(b,v),x=w.Dot(f,v);t=-t;var C=w.SubtractVV(f,e),J=w.Dot(e,C);C=w.Dot(f,C);J=-J;v=w.CrossVV(m,v);m=v*w.CrossVV(e,f);f=v*w.CrossVV(f,b);b=v*w.CrossVV(b,e);if(r<=0&&t<=0)this.m_count=this.m_v1.a=1;else if(s>0&&r>0&&b<=0){x=1/(s+r);this.m_v1.a=s*x;this.m_v2.a=r*x;this.m_count=2}else if(x>0&&t>0&&f<=0){s=1/(x+t);this.m_v1.a=x*s;this.m_v3.a=t*s;this.m_count=2;this.m_v2.Set(this.m_v3)}else if(s<=0&&J<=0){this.m_count= -this.m_v2.a=1;this.m_v1.Set(this.m_v2)}else if(x<=0&&C<=0){this.m_count=this.m_v3.a=1;this.m_v1.Set(this.m_v3)}else if(C>0&&J>0&&m<=0){s=1/(C+J);this.m_v2.a=C*s;this.m_v3.a=J*s;this.m_count=2;this.m_v1.Set(this.m_v3)}else{s=1/(m+f+b);this.m_v1.a=m*s;this.m_v2.a=f*s;this.m_v3.a=b*s;this.m_count=3}};l.b2SimplexCache=function(){this.indexA=new Vector_a2j_Number(3);this.indexB=new Vector_a2j_Number(3)};j.b2SimplexVertex=function(){};j.prototype.Set=function(b){this.wA.SetV(b.wA);this.wB.SetV(b.wB);this.w.SetV(b.w); -this.a=b.a;this.indexA=b.indexA;this.indexB=b.indexB};o.b2TimeOfImpact=function(){};o.TimeOfImpact=function(b){++o.b2_toiCalls;var e=b.proxyA,f=b.proxyB,m=b.sweepA,r=b.sweepB;y.b2Assert(m.t0==r.t0);y.b2Assert(1-m.t0>Number.MIN_VALUE);var s=e.m_radius+f.m_radius;b=b.tolerance;var v=0,t=0,x=0;o.s_cache.count=0;for(o.s_distanceInput.useRadii=false;;){m.GetTransform(o.s_xfA,v);r.GetTransform(o.s_xfB,v);o.s_distanceInput.proxyA=e;o.s_distanceInput.proxyB=f;o.s_distanceInput.transformA=o.s_xfA;o.s_distanceInput.transformB= -o.s_xfB;W.Distance(o.s_distanceOutput,o.s_cache,o.s_distanceInput);if(o.s_distanceOutput.distance<=0){v=1;break}o.s_fcn.Initialize(o.s_cache,e,o.s_xfA,f,o.s_xfB);var C=o.s_fcn.Evaluate(o.s_xfA,o.s_xfB);if(C<=0){v=1;break}if(t==0)x=C>s?w.Max(s-b,0.75*s):w.Max(C-b,0.02*s);if(C-x<0.5*b){if(t==0){v=1;break}break}var J=v,T=v,P=1;C=C;m.GetTransform(o.s_xfA,P);r.GetTransform(o.s_xfB,P);var X=o.s_fcn.Evaluate(o.s_xfA,o.s_xfB);if(X>=x){v=1;break}for(var $=0;;){var ba=0;ba=$&1?T+(x-C)*(P-T)/(X-C):0.5*(T+P); -m.GetTransform(o.s_xfA,ba);r.GetTransform(o.s_xfB,ba);var ca=o.s_fcn.Evaluate(o.s_xfA,o.s_xfB);if(w.Abs(ca-x)<0.025*b){J=ba;break}if(ca>x){T=ba;C=ca}else{P=ba;X=ca}++$;++o.b2_toiRootIters;if($==50)break}o.b2_toiMaxRootIters=w.Max(o.b2_toiMaxRootIters,$);if(J<(1+100*Number.MIN_VALUE)*v)break;v=J;t++;++o.b2_toiIters;if(t==1E3)break}o.b2_toiMaxIters=w.Max(o.b2_toiMaxIters,t);return v};Box2D.postDefs.push(function(){Box2D.Collision.b2TimeOfImpact.b2_toiCalls=0;Box2D.Collision.b2TimeOfImpact.b2_toiIters= -0;Box2D.Collision.b2TimeOfImpact.b2_toiMaxIters=0;Box2D.Collision.b2TimeOfImpact.b2_toiRootIters=0;Box2D.Collision.b2TimeOfImpact.b2_toiMaxRootIters=0;Box2D.Collision.b2TimeOfImpact.s_cache=new l;Box2D.Collision.b2TimeOfImpact.s_distanceInput=new Y;Box2D.Collision.b2TimeOfImpact.s_xfA=new U;Box2D.Collision.b2TimeOfImpact.s_xfB=new U;Box2D.Collision.b2TimeOfImpact.s_fcn=new d;Box2D.Collision.b2TimeOfImpact.s_distanceOutput=new k});q.b2TOIInput=function(){this.proxyA=new z;this.proxyB=new z;this.sweepA= -new A;this.sweepB=new A};n.b2WorldManifold=function(){this.m_normal=new p};n.prototype.b2WorldManifold=function(){this.m_points=new Vector(y.b2_maxManifoldPoints);for(var b=0;bNumber.MIN_VALUE*Number.MIN_VALUE){x=Math.sqrt(x);this.m_normal.x=v/x;this.m_normal.y=t/x}else{this.m_normal.x=1;this.m_normal.y=0}v=e+f*this.m_normal.y;m=m-r*this.m_normal.y;this.m_points[0].x=0.5*(s+f*this.m_normal.x+(b-r*this.m_normal.x));this.m_points[0].y=0.5*(v+m);break;case E.e_faceA:t=e.R;v=b.m_localPlaneNormal;x=t.col1.x*v.x+t.col2.x*v.y;C=t.col1.y* -v.x+t.col2.y*v.y;t=e.R;v=b.m_localPoint;J=e.position.x+t.col1.x*v.x+t.col2.x*v.y;T=e.position.y+t.col1.y*v.x+t.col2.y*v.y;this.m_normal.x=x;this.m_normal.y=C;for(s=0;sthis.m_radius){D.SetV(u);return Math.PI*this.m_radius*this.m_radius}z=this.m_radius*this.m_radius;var O=H*H;H=z*(Math.asin(H/this.m_radius)+Math.PI/2)+H*Math.sqrt(z-O);z=-2/3*Math.pow(z-O,1.5)/H;D.x=u.x+k.x*z;D.y=u.y+k.y*z;return H};G.prototype.GetLocalPosition= -function(){return this.m_p};G.prototype.SetLocalPosition=function(k){this.m_p.SetV(k)};G.prototype.GetRadius=function(){return this.m_radius};G.prototype.SetRadius=function(k){if(k===undefined)k=0;this.m_radius=k};G.prototype.b2CircleShape=function(k){if(k===undefined)k=0;this.__super.b2Shape.call(this);this.m_type=U.e_circleShape;this.m_radius=k};K.b2EdgeChainDef=function(){};K.prototype.b2EdgeChainDef=function(){this.vertexCount=0;this.isALoop=true;this.vertices=[]};Box2D.inherit(y,Box2D.Collision.Shapes.b2Shape); -y.prototype.__super=Box2D.Collision.Shapes.b2Shape.prototype;y.b2EdgeShape=function(){Box2D.Collision.Shapes.b2Shape.b2Shape.apply(this,arguments);this.s_supportVec=new V;this.m_v1=new V;this.m_v2=new V;this.m_coreV1=new V;this.m_coreV2=new V;this.m_normal=new V;this.m_direction=new V;this.m_cornerDir1=new V;this.m_cornerDir2=new V};y.prototype.TestPoint=function(){return false};y.prototype.RayCast=function(k,z,u){var D,H=z.p2.x-z.p1.x,O=z.p2.y-z.p1.y;D=u.R;var E=u.position.x+(D.col1.x*this.m_v1.x+ -D.col2.x*this.m_v1.y),R=u.position.y+(D.col1.y*this.m_v1.x+D.col2.y*this.m_v1.y),N=u.position.y+(D.col1.y*this.m_v2.x+D.col2.y*this.m_v2.y)-R;u=-(u.position.x+(D.col1.x*this.m_v2.x+D.col2.x*this.m_v2.y)-E);D=100*Number.MIN_VALUE;var S=-(H*N+O*u);if(S>D){E=z.p1.x-E;var aa=z.p1.y-R;R=E*N+aa*u;if(0<=R&&R<=z.maxFraction*S){z=-H*aa+O*E;if(-D*S<=z&&z<=S*(1+D)){R/=S;k.fraction=R;z=Math.sqrt(N*N+u*u);k.normal.x=N/z;k.normal.y=u/z;return true}}}return false};y.prototype.ComputeAABB=function(k,z){var u=z.R, -D=z.position.x+(u.col1.x*this.m_v1.x+u.col2.x*this.m_v1.y),H=z.position.y+(u.col1.y*this.m_v1.x+u.col2.y*this.m_v1.y),O=z.position.x+(u.col1.x*this.m_v2.x+u.col2.x*this.m_v2.y);u=z.position.y+(u.col1.y*this.m_v2.x+u.col2.y*this.m_v2.y);if(D0)if(k>0)return 0;else{O.x=-k/(E-k)*O.x+E/(E-k)*u.x;O.y=-k/(E-k)*O.y+E/(E-k)*u.y}else if(k>0){u.x=-k/(E-k)*O.x+E/(E-k)*u.x;u.y=-k/(E-k)*O.y+E/(E-k)*u.y}D.x=(H.x+O.x+u.x)/3;D.y=(H.y+O.y+u.y)/3;return 0.5*((O.x-H.x)*(u.y-H.y)-(O.y-H.y)*(u.x-H.x))};y.prototype.GetLength=function(){return this.m_length};y.prototype.GetVertex1=function(){return this.m_v1};y.prototype.GetVertex2= -function(){return this.m_v2};y.prototype.GetCoreVertex1=function(){return this.m_coreV1};y.prototype.GetCoreVertex2=function(){return this.m_coreV2};y.prototype.GetNormalVector=function(){return this.m_normal};y.prototype.GetDirectionVector=function(){return this.m_direction};y.prototype.GetCorner1Vector=function(){return this.m_cornerDir1};y.prototype.GetCorner2Vector=function(){return this.m_cornerDir2};y.prototype.Corner1IsConvex=function(){return this.m_cornerConvex1};y.prototype.Corner2IsConvex= -function(){return this.m_cornerConvex2};y.prototype.GetFirstVertex=function(k){var z=k.R;return new V(k.position.x+(z.col1.x*this.m_coreV1.x+z.col2.x*this.m_coreV1.y),k.position.y+(z.col1.y*this.m_coreV1.x+z.col2.y*this.m_coreV1.y))};y.prototype.GetNextEdge=function(){return this.m_nextEdge};y.prototype.GetPrevEdge=function(){return this.m_prevEdge};y.prototype.Support=function(k,z,u){if(z===undefined)z=0;if(u===undefined)u=0;var D=k.R,H=k.position.x+(D.col1.x*this.m_coreV1.x+D.col2.x*this.m_coreV1.y), -O=k.position.y+(D.col1.y*this.m_coreV1.x+D.col2.y*this.m_coreV1.y),E=k.position.x+(D.col1.x*this.m_coreV2.x+D.col2.x*this.m_coreV2.y);k=k.position.y+(D.col1.y*this.m_coreV2.x+D.col2.y*this.m_coreV2.y);if(H*z+O*u>E*z+k*u){this.s_supportVec.x=H;this.s_supportVec.y=O}else{this.s_supportVec.x=E;this.s_supportVec.y=k}return this.s_supportVec};y.prototype.b2EdgeShape=function(k,z){this.__super.b2Shape.call(this);this.m_type=U.e_edgeShape;this.m_nextEdge=this.m_prevEdge=null;this.m_v1=k;this.m_v2=z;this.m_direction.Set(this.m_v2.x- -this.m_v1.x,this.m_v2.y-this.m_v1.y);this.m_length=this.m_direction.Normalize();this.m_normal.Set(this.m_direction.y,-this.m_direction.x);this.m_coreV1.Set(-F.b2_toiSlop*(this.m_normal.x-this.m_direction.x)+this.m_v1.x,-F.b2_toiSlop*(this.m_normal.y-this.m_direction.y)+this.m_v1.y);this.m_coreV2.Set(-F.b2_toiSlop*(this.m_normal.x+this.m_direction.x)+this.m_v2.x,-F.b2_toiSlop*(this.m_normal.y+this.m_direction.y)+this.m_v2.y);this.m_cornerDir1=this.m_normal;this.m_cornerDir2.Set(-this.m_normal.x,-this.m_normal.y)}; -y.prototype.SetPrevEdge=function(k,z,u,D){this.m_prevEdge=k;this.m_coreV1=z;this.m_cornerDir1=u;this.m_cornerConvex1=D};y.prototype.SetNextEdge=function(k,z,u,D){this.m_nextEdge=k;this.m_coreV2=z;this.m_cornerDir2=u;this.m_cornerConvex2=D};w.b2MassData=function(){this.mass=0;this.center=new V(0,0);this.I=0};Box2D.inherit(A,Box2D.Collision.Shapes.b2Shape);A.prototype.__super=Box2D.Collision.Shapes.b2Shape.prototype;A.b2PolygonShape=function(){Box2D.Collision.Shapes.b2Shape.b2Shape.apply(this,arguments)}; -A.prototype.Copy=function(){var k=new A;k.Set(this);return k};A.prototype.Set=function(k){this.__super.Set.call(this,k);if(Box2D.is(k,A)){k=k instanceof A?k:null;this.m_centroid.SetV(k.m_centroid);this.m_vertexCount=k.m_vertexCount;this.Reserve(this.m_vertexCount);for(var z=0;zNumber.MIN_VALUE);this.m_normals[u].SetV(B.CrossVF(D, -1));this.m_normals[u].Normalize()}this.m_centroid=A.ComputeCentroid(this.m_vertices,this.m_vertexCount)};A.AsVector=function(k,z){if(z===undefined)z=0;var u=new A;u.SetAsVector(k,z);return u};A.prototype.SetAsBox=function(k,z){if(k===undefined)k=0;if(z===undefined)z=0;this.m_vertexCount=4;this.Reserve(4);this.m_vertices[0].Set(-k,-z);this.m_vertices[1].Set(k,-z);this.m_vertices[2].Set(k,z);this.m_vertices[3].Set(-k,z);this.m_normals[0].Set(0,-1);this.m_normals[1].Set(1,0);this.m_normals[2].Set(0, -1);this.m_normals[3].Set(-1,0);this.m_centroid.SetZero()};A.AsBox=function(k,z){if(k===undefined)k=0;if(z===undefined)z=0;var u=new A;u.SetAsBox(k,z);return u};A.prototype.SetAsOrientedBox=function(k,z,u,D){if(k===undefined)k=0;if(z===undefined)z=0;if(u===undefined)u=null;if(D===undefined)D=0;this.m_vertexCount=4;this.Reserve(4);this.m_vertices[0].Set(-k,-z);this.m_vertices[1].Set(k,-z);this.m_vertices[2].Set(k,z);this.m_vertices[3].Set(-k,z);this.m_normals[0].Set(0,-1);this.m_normals[1].Set(1,0); -this.m_normals[2].Set(0,1);this.m_normals[3].Set(-1,0);this.m_centroid=u;k=new Q;k.position=u;k.R.Set(D);for(u=0;u0)return false}return true};A.prototype.RayCast=function(k,z,u){var D=0,H=z.maxFraction,O=0,E=0,R,N;O=z.p1.x-u.position.x;E=z.p1.y-u.position.y;R=u.R;var S=O*R.col1.x+E*R.col1.y,aa=O*R.col2.x+E*R.col2.y;O=z.p2.x-u.position.x;E=z.p2.y-u.position.y;R=u.R;z=O*R.col1.x+E*R.col1.y-S;R=O*R.col2.x+E*R.col2.y-aa;for(var Z=parseInt(-1),d=0;d0&&O=0){k.fraction=D;R=u.R;N=this.m_normals[Z];k.normal.x=R.col1.x*N.x+R.col2.x*N.y;k.normal.y=R.col1.y*N.x+R.col2.y*N.y;return true}return false};A.prototype.ComputeAABB=function(k,z){for(var u=z.R,D=this.m_vertices[0],H=z.position.x+(u.col1.x*D.x+u.col2.x*D.y),O=z.position.y+(u.col1.y*D.x+u.col2.y*D.y),E=H,R=O,N=1;NS?E:S;R=R>D?R:D}k.lowerBound.x=H-this.m_radius;k.lowerBound.y=O-this.m_radius;k.upperBound.x=E+this.m_radius;k.upperBound.y=R+this.m_radius};A.prototype.ComputeMass=function(k,z){if(z===undefined)z=0;if(this.m_vertexCount==2){k.center.x=0.5*(this.m_vertices[0].x+this.m_vertices[1].x);k.center.y=0.5*(this.m_vertices[0].y+this.m_vertices[1].y);k.mass=0;k.I=0}else{for(var u=0,D=0,H=0,O=0,E=1/3,R=0;R0)if(aa){if(!S){N=k-1;R++}}else if(S){z=k-1;R++}S=aa}switch(R){case 0:if(S){k=new w;this.ComputeMass(k,1);D.SetV(B.MulX(u,k.center));return k.mass}else return 0;case 1:if(N==-1)N=this.m_vertexCount-1;else z=this.m_vertexCount-1}k=parseInt((N+1)%this.m_vertexCount);H=parseInt((z+1)%this.m_vertexCount);O=(0-E[N])/(E[k]-E[N]);E=(0-E[z])/(E[H]-E[z]);N=new V(this.m_vertices[N].x* -(1-O)+this.m_vertices[k].x*O,this.m_vertices[N].y*(1-O)+this.m_vertices[k].y*O);z=new V(this.m_vertices[z].x*(1-E)+this.m_vertices[H].x*E,this.m_vertices[z].y*(1-E)+this.m_vertices[H].y*E);E=0;O=new V;R=this.m_vertices[k];for(k=k;k!=H;){k=(k+1)%this.m_vertexCount;S=k==H?z:this.m_vertices[k];aa=0.5*((R.x-N.x)*(S.y-N.y)-(R.y-N.y)*(S.x-N.x));E+=aa;O.x+=aa*(N.x+R.x+S.x)/3;O.y+=aa*(N.y+R.y+S.y)/3;R=S}O.Multiply(1/E);D.SetV(B.MulX(u,O));return E};A.prototype.GetVertexCount=function(){return this.m_vertexCount}; -A.prototype.GetVertices=function(){return this.m_vertices};A.prototype.GetNormals=function(){return this.m_normals};A.prototype.GetSupport=function(k){for(var z=0,u=this.m_vertices[0].x*k.x+this.m_vertices[0].y*k.y,D=1;Du){z=D;u=H}}return z};A.prototype.GetSupportVertex=function(k){for(var z=0,u=this.m_vertices[0].x*k.x+this.m_vertices[0].y*k.y,D=1;Du){z=D;u=H}}return this.m_vertices[z]};A.prototype.Validate=function(){return false};A.prototype.b2PolygonShape=function(){this.__super.b2Shape.call(this);this.m_type=U.e_polygonShape;this.m_centroid=new V;this.m_vertices=new Vector;this.m_normals=new Vector};A.prototype.Reserve=function(k){if(k===undefined)k=0;for(var z=parseInt(this.m_vertices.length);zd)d=q;if(j>h)h=j}l=(d-N)*(h-Z);if(l<0.95*z){z=l;k.R.col1.x=E;k.R.col1.y=R;k.R.col2.x=S;k.R.col2.y=aa;E=0.5*(N+d);R=0.5*(Z+h);S=k.R;k.center.x=O.x+(S.col1.x*E+S.col2.x*R);k.center.y=O.y+(S.col1.y*E+S.col2.y*R);k.extents.x=0.5*(d-N);k.extents.y=0.5*(h-Z)}}};Box2D.postDefs.push(function(){Box2D.Collision.Shapes.b2PolygonShape.s_mat=new p});U.b2Shape=function(){};U.prototype.Copy=function(){return null};U.prototype.Set=function(k){this.m_radius= -k.m_radius};U.prototype.GetType=function(){return this.m_type};U.prototype.TestPoint=function(){return false};U.prototype.RayCast=function(){return false};U.prototype.ComputeAABB=function(){};U.prototype.ComputeMass=function(){};U.prototype.ComputeSubmergedArea=function(){return 0};U.TestOverlap=function(k,z,u,D){var H=new L;H.proxyA=new W;H.proxyA.Set(k);H.proxyB=new W;H.proxyB.Set(u);H.transformA=z;H.transformB=D;H.useRadii=true;k=new Y;k.count=0;z=new I;M.Distance(z,k,H);return z.distance<10*Number.MIN_VALUE}; -U.prototype.b2Shape=function(){this.m_type=U.e_unknownShape;this.m_radius=F.b2_linearSlop};Box2D.postDefs.push(function(){Box2D.Collision.Shapes.b2Shape.e_unknownShape=parseInt(-1);Box2D.Collision.Shapes.b2Shape.e_circleShape=0;Box2D.Collision.Shapes.b2Shape.e_polygonShape=1;Box2D.Collision.Shapes.b2Shape.e_edgeShape=2;Box2D.Collision.Shapes.b2Shape.e_shapeTypeCount=3;Box2D.Collision.Shapes.b2Shape.e_hitCollide=1;Box2D.Collision.Shapes.b2Shape.e_missCollide=0;Box2D.Collision.Shapes.b2Shape.e_startsInsideCollide= -parseInt(-1)})})(); -(function(){var F=Box2D.Common.b2Color,G=Box2D.Common.b2Settings,K=Box2D.Common.Math.b2Math;F.b2Color=function(){this._b=this._g=this._r=0};F.prototype.b2Color=function(y,w,A){if(y===undefined)y=0;if(w===undefined)w=0;if(A===undefined)A=0;this._r=Box2D.parseUInt(255*K.Clamp(y,0,1));this._g=Box2D.parseUInt(255*K.Clamp(w,0,1));this._b=Box2D.parseUInt(255*K.Clamp(A,0,1))};F.prototype.Set=function(y,w,A){if(y===undefined)y=0;if(w===undefined)w=0;if(A===undefined)A=0;this._r=Box2D.parseUInt(255*K.Clamp(y, -0,1));this._g=Box2D.parseUInt(255*K.Clamp(w,0,1));this._b=Box2D.parseUInt(255*K.Clamp(A,0,1))};Object.defineProperty(F.prototype,"r",{enumerable:false,configurable:true,set:function(y){if(y===undefined)y=0;this._r=Box2D.parseUInt(255*K.Clamp(y,0,1))}});Object.defineProperty(F.prototype,"g",{enumerable:false,configurable:true,set:function(y){if(y===undefined)y=0;this._g=Box2D.parseUInt(255*K.Clamp(y,0,1))}});Object.defineProperty(F.prototype,"b",{enumerable:false,configurable:true,set:function(y){if(y=== -undefined)y=0;this._b=Box2D.parseUInt(255*K.Clamp(y,0,1))}});Object.defineProperty(F.prototype,"color",{enumerable:false,configurable:true,get:function(){return this._r<<16|this._g<<8|this._b}});G.b2Settings=function(){};G.b2MixFriction=function(y,w){if(y===undefined)y=0;if(w===undefined)w=0;return Math.sqrt(y*w)};G.b2MixRestitution=function(y,w){if(y===undefined)y=0;if(w===undefined)w=0;return y>w?y:w};G.b2Assert=function(y){if(!y)throw"Assertion Failed";};Box2D.postDefs.push(function(){Box2D.Common.b2Settings.VERSION= -"2.1alpha";Box2D.Common.b2Settings.USHRT_MAX=65535;Box2D.Common.b2Settings.b2_pi=Math.PI;Box2D.Common.b2Settings.b2_maxManifoldPoints=2;Box2D.Common.b2Settings.b2_aabbExtension=0.1;Box2D.Common.b2Settings.b2_aabbMultiplier=2;Box2D.Common.b2Settings.b2_polygonRadius=2*G.b2_linearSlop;Box2D.Common.b2Settings.b2_linearSlop=0.0050;Box2D.Common.b2Settings.b2_angularSlop=2/180*G.b2_pi;Box2D.Common.b2Settings.b2_toiSlop=8*G.b2_linearSlop;Box2D.Common.b2Settings.b2_maxTOIContactsPerIsland=32;Box2D.Common.b2Settings.b2_maxTOIJointsPerIsland= -32;Box2D.Common.b2Settings.b2_velocityThreshold=1;Box2D.Common.b2Settings.b2_maxLinearCorrection=0.2;Box2D.Common.b2Settings.b2_maxAngularCorrection=8/180*G.b2_pi;Box2D.Common.b2Settings.b2_maxTranslation=2;Box2D.Common.b2Settings.b2_maxTranslationSquared=G.b2_maxTranslation*G.b2_maxTranslation;Box2D.Common.b2Settings.b2_maxRotation=0.5*G.b2_pi;Box2D.Common.b2Settings.b2_maxRotationSquared=G.b2_maxRotation*G.b2_maxRotation;Box2D.Common.b2Settings.b2_contactBaumgarte=0.2;Box2D.Common.b2Settings.b2_timeToSleep= -0.5;Box2D.Common.b2Settings.b2_linearSleepTolerance=0.01;Box2D.Common.b2Settings.b2_angularSleepTolerance=2/180*G.b2_pi})})(); -(function(){var F=Box2D.Common.Math.b2Mat22,G=Box2D.Common.Math.b2Mat33,K=Box2D.Common.Math.b2Math,y=Box2D.Common.Math.b2Sweep,w=Box2D.Common.Math.b2Transform,A=Box2D.Common.Math.b2Vec2,U=Box2D.Common.Math.b2Vec3;F.b2Mat22=function(){this.col1=new A;this.col2=new A};F.prototype.b2Mat22=function(){this.SetIdentity()};F.FromAngle=function(p){if(p===undefined)p=0;var B=new F;B.Set(p);return B};F.FromVV=function(p,B){var Q=new F;Q.SetVV(p,B);return Q};F.prototype.Set=function(p){if(p===undefined)p=0; -var B=Math.cos(p);p=Math.sin(p);this.col1.x=B;this.col2.x=-p;this.col1.y=p;this.col2.y=B};F.prototype.SetVV=function(p,B){this.col1.SetV(p);this.col2.SetV(B)};F.prototype.Copy=function(){var p=new F;p.SetM(this);return p};F.prototype.SetM=function(p){this.col1.SetV(p.col1);this.col2.SetV(p.col2)};F.prototype.AddM=function(p){this.col1.x+=p.col1.x;this.col1.y+=p.col1.y;this.col2.x+=p.col2.x;this.col2.y+=p.col2.y};F.prototype.SetIdentity=function(){this.col1.x=1;this.col2.x=0;this.col1.y=0;this.col2.y= -1};F.prototype.SetZero=function(){this.col1.x=0;this.col2.x=0;this.col1.y=0;this.col2.y=0};F.prototype.GetAngle=function(){return Math.atan2(this.col1.y,this.col1.x)};F.prototype.GetInverse=function(p){var B=this.col1.x,Q=this.col2.x,V=this.col1.y,M=this.col2.y,L=B*M-Q*V;if(L!=0)L=1/L;p.col1.x=L*M;p.col2.x=-L*Q;p.col1.y=-L*V;p.col2.y=L*B;return p};F.prototype.Solve=function(p,B,Q){if(B===undefined)B=0;if(Q===undefined)Q=0;var V=this.col1.x,M=this.col2.x,L=this.col1.y,I=this.col2.y,W=V*I-M*L;if(W!= -0)W=1/W;p.x=W*(I*B-M*Q);p.y=W*(V*Q-L*B);return p};F.prototype.Abs=function(){this.col1.Abs();this.col2.Abs()};G.b2Mat33=function(){this.col1=new U;this.col2=new U;this.col3=new U};G.prototype.b2Mat33=function(p,B,Q){if(p===undefined)p=null;if(B===undefined)B=null;if(Q===undefined)Q=null;if(!p&&!B&&!Q){this.col1.SetZero();this.col2.SetZero();this.col3.SetZero()}else{this.col1.SetV(p);this.col2.SetV(B);this.col3.SetV(Q)}};G.prototype.SetVVV=function(p,B,Q){this.col1.SetV(p);this.col2.SetV(B);this.col3.SetV(Q)}; -G.prototype.Copy=function(){return new G(this.col1,this.col2,this.col3)};G.prototype.SetM=function(p){this.col1.SetV(p.col1);this.col2.SetV(p.col2);this.col3.SetV(p.col3)};G.prototype.AddM=function(p){this.col1.x+=p.col1.x;this.col1.y+=p.col1.y;this.col1.z+=p.col1.z;this.col2.x+=p.col2.x;this.col2.y+=p.col2.y;this.col2.z+=p.col2.z;this.col3.x+=p.col3.x;this.col3.y+=p.col3.y;this.col3.z+=p.col3.z};G.prototype.SetIdentity=function(){this.col1.x=1;this.col2.x=0;this.col3.x=0;this.col1.y=0;this.col2.y= -1;this.col3.y=0;this.col1.z=0;this.col2.z=0;this.col3.z=1};G.prototype.SetZero=function(){this.col1.x=0;this.col2.x=0;this.col3.x=0;this.col1.y=0;this.col2.y=0;this.col3.y=0;this.col1.z=0;this.col2.z=0;this.col3.z=0};G.prototype.Solve22=function(p,B,Q){if(B===undefined)B=0;if(Q===undefined)Q=0;var V=this.col1.x,M=this.col2.x,L=this.col1.y,I=this.col2.y,W=V*I-M*L;if(W!=0)W=1/W;p.x=W*(I*B-M*Q);p.y=W*(V*Q-L*B);return p};G.prototype.Solve33=function(p,B,Q,V){if(B===undefined)B=0;if(Q===undefined)Q=0; -if(V===undefined)V=0;var M=this.col1.x,L=this.col1.y,I=this.col1.z,W=this.col2.x,Y=this.col2.y,k=this.col2.z,z=this.col3.x,u=this.col3.y,D=this.col3.z,H=M*(Y*D-k*u)+L*(k*z-W*D)+I*(W*u-Y*z);if(H!=0)H=1/H;p.x=H*(B*(Y*D-k*u)+Q*(k*z-W*D)+V*(W*u-Y*z));p.y=H*(M*(Q*D-V*u)+L*(V*z-B*D)+I*(B*u-Q*z));p.z=H*(M*(Y*V-k*Q)+L*(k*B-W*V)+I*(W*Q-Y*B));return p};K.b2Math=function(){};K.IsValid=function(p){if(p===undefined)p=0;return isFinite(p)};K.Dot=function(p,B){return p.x*B.x+p.y*B.y};K.CrossVV=function(p,B){return p.x* -B.y-p.y*B.x};K.CrossVF=function(p,B){if(B===undefined)B=0;return new A(B*p.y,-B*p.x)};K.CrossFV=function(p,B){if(p===undefined)p=0;return new A(-p*B.y,p*B.x)};K.MulMV=function(p,B){return new A(p.col1.x*B.x+p.col2.x*B.y,p.col1.y*B.x+p.col2.y*B.y)};K.MulTMV=function(p,B){return new A(K.Dot(B,p.col1),K.Dot(B,p.col2))};K.MulX=function(p,B){var Q=K.MulMV(p.R,B);Q.x+=p.position.x;Q.y+=p.position.y;return Q};K.MulXT=function(p,B){var Q=K.SubtractVV(B,p.position),V=Q.x*p.R.col1.x+Q.y*p.R.col1.y;Q.y=Q.x* -p.R.col2.x+Q.y*p.R.col2.y;Q.x=V;return Q};K.AddVV=function(p,B){return new A(p.x+B.x,p.y+B.y)};K.SubtractVV=function(p,B){return new A(p.x-B.x,p.y-B.y)};K.Distance=function(p,B){var Q=p.x-B.x,V=p.y-B.y;return Math.sqrt(Q*Q+V*V)};K.DistanceSquared=function(p,B){var Q=p.x-B.x,V=p.y-B.y;return Q*Q+V*V};K.MulFV=function(p,B){if(p===undefined)p=0;return new A(p*B.x,p*B.y)};K.AddMM=function(p,B){return F.FromVV(K.AddVV(p.col1,B.col1),K.AddVV(p.col2,B.col2))};K.MulMM=function(p,B){return F.FromVV(K.MulMV(p, -B.col1),K.MulMV(p,B.col2))};K.MulTMM=function(p,B){var Q=new A(K.Dot(p.col1,B.col1),K.Dot(p.col2,B.col1)),V=new A(K.Dot(p.col1,B.col2),K.Dot(p.col2,B.col2));return F.FromVV(Q,V)};K.Abs=function(p){if(p===undefined)p=0;return p>0?p:-p};K.AbsV=function(p){return new A(K.Abs(p.x),K.Abs(p.y))};K.AbsM=function(p){return F.FromVV(K.AbsV(p.col1),K.AbsV(p.col2))};K.Min=function(p,B){if(p===undefined)p=0;if(B===undefined)B=0;return pB?p:B};K.MaxV=function(p,B){return new A(K.Max(p.x,B.x),K.Max(p.y,B.y))};K.Clamp=function(p,B,Q){if(p===undefined)p=0;if(B===undefined)B=0;if(Q===undefined)Q=0;return pQ?Q:p};K.ClampV=function(p,B,Q){return K.MaxV(B,K.MinV(p,Q))};K.Swap=function(p,B){var Q=p[0];p[0]=B[0];B[0]=Q};K.Random=function(){return Math.random()*2-1};K.RandomRange=function(p,B){if(p===undefined)p=0;if(B===undefined)B=0;var Q=Math.random();return Q= -(B-p)*Q+p};K.NextPowerOfTwo=function(p){if(p===undefined)p=0;p|=p>>1&2147483647;p|=p>>2&1073741823;p|=p>>4&268435455;p|=p>>8&16777215;p|=p>>16&65535;return p+1};K.IsPowerOfTwo=function(p){if(p===undefined)p=0;return p>0&&(p&p-1)==0};Box2D.postDefs.push(function(){Box2D.Common.Math.b2Math.b2Vec2_zero=new A(0,0);Box2D.Common.Math.b2Math.b2Mat22_identity=F.FromVV(new A(1,0),new A(0,1));Box2D.Common.Math.b2Math.b2Transform_identity=new w(K.b2Vec2_zero,K.b2Mat22_identity)});y.b2Sweep=function(){this.localCenter= -new A;this.c0=new A;this.c=new A};y.prototype.Set=function(p){this.localCenter.SetV(p.localCenter);this.c0.SetV(p.c0);this.c.SetV(p.c);this.a0=p.a0;this.a=p.a;this.t0=p.t0};y.prototype.Copy=function(){var p=new y;p.localCenter.SetV(this.localCenter);p.c0.SetV(this.c0);p.c.SetV(this.c);p.a0=this.a0;p.a=this.a;p.t0=this.t0;return p};y.prototype.GetTransform=function(p,B){if(B===undefined)B=0;p.position.x=(1-B)*this.c0.x+B*this.c.x;p.position.y=(1-B)*this.c0.y+B*this.c.y;p.R.Set((1-B)*this.a0+B*this.a); -var Q=p.R;p.position.x-=Q.col1.x*this.localCenter.x+Q.col2.x*this.localCenter.y;p.position.y-=Q.col1.y*this.localCenter.x+Q.col2.y*this.localCenter.y};y.prototype.Advance=function(p){if(p===undefined)p=0;if(this.t0Number.MIN_VALUE){var B=(p-this.t0)/(1-this.t0);this.c0.x=(1-B)*this.c0.x+B*this.c.x;this.c0.y=(1-B)*this.c0.y+B*this.c.y;this.a0=(1-B)*this.a0+B*this.a;this.t0=p}};w.b2Transform=function(){this.position=new A;this.R=new F};w.prototype.b2Transform=function(p,B){if(p===undefined)p= -null;if(B===undefined)B=null;if(p){this.position.SetV(p);this.R.SetM(B)}};w.prototype.Initialize=function(p,B){this.position.SetV(p);this.R.SetM(B)};w.prototype.SetIdentity=function(){this.position.SetZero();this.R.SetIdentity()};w.prototype.Set=function(p){this.position.SetV(p.position);this.R.SetM(p.R)};w.prototype.GetAngle=function(){return Math.atan2(this.R.col1.y,this.R.col1.x)};A.b2Vec2=function(){};A.prototype.b2Vec2=function(p,B){if(p===undefined)p=0;if(B===undefined)B=0;this.x=p;this.y=B}; -A.prototype.SetZero=function(){this.y=this.x=0};A.prototype.Set=function(p,B){if(p===undefined)p=0;if(B===undefined)B=0;this.x=p;this.y=B};A.prototype.SetV=function(p){this.x=p.x;this.y=p.y};A.prototype.GetNegative=function(){return new A(-this.x,-this.y)};A.prototype.NegativeSelf=function(){this.x=-this.x;this.y=-this.y};A.Make=function(p,B){if(p===undefined)p=0;if(B===undefined)B=0;return new A(p,B)};A.prototype.Copy=function(){return new A(this.x,this.y)};A.prototype.Add=function(p){this.x+=p.x; -this.y+=p.y};A.prototype.Subtract=function(p){this.x-=p.x;this.y-=p.y};A.prototype.Multiply=function(p){if(p===undefined)p=0;this.x*=p;this.y*=p};A.prototype.MulM=function(p){var B=this.x;this.x=p.col1.x*B+p.col2.x*this.y;this.y=p.col1.y*B+p.col2.y*this.y};A.prototype.MulTM=function(p){var B=K.Dot(this,p.col1);this.y=K.Dot(this,p.col2);this.x=B};A.prototype.CrossVF=function(p){if(p===undefined)p=0;var B=this.x;this.x=p*this.y;this.y=-p*B};A.prototype.CrossFV=function(p){if(p===undefined)p=0;var B= -this.x;this.x=-p*this.y;this.y=p*B};A.prototype.MinV=function(p){this.x=this.xp.x?this.x:p.x;this.y=this.y>p.y?this.y:p.y};A.prototype.Abs=function(){if(this.x<0)this.x=-this.x;if(this.y<0)this.y=-this.y};A.prototype.Length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)};A.prototype.LengthSquared=function(){return this.x*this.x+this.y*this.y};A.prototype.Normalize=function(){var p=Math.sqrt(this.x*this.x+ -this.y*this.y);if(p0;a.SetNextEdge(c,g,e,f);c.SetPrevEdge(a,g,e,f);return b};k.prototype.CreateFixture=function(a){if(this.m_world.IsLocked()==true)return null;var c=new S;c.Create(this,this.m_xf,a);this.m_flags&k.e_activeFlag&&c.CreateProxy(this.m_world.m_contactManager.m_broadPhase,this.m_xf);c.m_next=this.m_fixtureList;this.m_fixtureList=c;++this.m_fixtureCount;c.m_body=this;c.m_density>0&&this.ResetMassData();this.m_world.m_flags|= -h.e_newFixture;return c};k.prototype.CreateFixture2=function(a,c){if(c===undefined)c=0;var g=new aa;g.shape=a;g.density=c;return this.CreateFixture(g)};k.prototype.DestroyFixture=function(a){if(this.m_world.IsLocked()!=true){for(var c=this.m_fixtureList,g=null;c!=null;){if(c==a){if(g)g.m_next=a.m_next;else this.m_fixtureList=a.m_next;break}g=c;c=c.m_next}for(c=this.m_contactList;c;){g=c.contact;c=c.next;var b=g.GetFixtureA(),e=g.GetFixtureB();if(a==b||a==e)this.m_world.m_contactManager.Destroy(g)}this.m_flags& -k.e_activeFlag&&a.DestroyProxy(this.m_world.m_contactManager.m_broadPhase);a.Destroy();a.m_body=null;a.m_next=null;--this.m_fixtureCount;this.ResetMassData()}};k.prototype.SetPositionAndAngle=function(a,c){if(c===undefined)c=0;var g;if(this.m_world.IsLocked()!=true){this.m_xf.R.Set(c);this.m_xf.position.SetV(a);g=this.m_xf.R;var b=this.m_sweep.localCenter;this.m_sweep.c.x=g.col1.x*b.x+g.col2.x*b.y;this.m_sweep.c.y=g.col1.y*b.x+g.col2.y*b.y;this.m_sweep.c.x+=this.m_xf.position.x;this.m_sweep.c.y+= -this.m_xf.position.y;this.m_sweep.c0.SetV(this.m_sweep.c);this.m_sweep.a0=this.m_sweep.a=c;b=this.m_world.m_contactManager.m_broadPhase;for(g=this.m_fixtureList;g;g=g.m_next)g.Synchronize(b,this.m_xf,this.m_xf);this.m_world.m_contactManager.FindNewContacts()}};k.prototype.SetTransform=function(a){this.SetPositionAndAngle(a.position,a.GetAngle())};k.prototype.GetTransform=function(){return this.m_xf};k.prototype.GetPosition=function(){return this.m_xf.position};k.prototype.SetPosition=function(a){this.SetPositionAndAngle(a, -this.GetAngle())};k.prototype.GetAngle=function(){return this.m_sweep.a};k.prototype.SetAngle=function(a){if(a===undefined)a=0;this.SetPositionAndAngle(this.GetPosition(),a)};k.prototype.GetWorldCenter=function(){return this.m_sweep.c};k.prototype.GetLocalCenter=function(){return this.m_sweep.localCenter};k.prototype.SetLinearVelocity=function(a){this.m_type!=k.b2_staticBody&&this.m_linearVelocity.SetV(a)};k.prototype.GetLinearVelocity=function(){return this.m_linearVelocity};k.prototype.SetAngularVelocity= -function(a){if(a===undefined)a=0;if(this.m_type!=k.b2_staticBody)this.m_angularVelocity=a};k.prototype.GetAngularVelocity=function(){return this.m_angularVelocity};k.prototype.GetDefinition=function(){var a=new z;a.type=this.GetType();a.allowSleep=(this.m_flags&k.e_allowSleepFlag)==k.e_allowSleepFlag;a.angle=this.GetAngle();a.angularDamping=this.m_angularDamping;a.angularVelocity=this.m_angularVelocity;a.fixedRotation=(this.m_flags&k.e_fixedRotationFlag)==k.e_fixedRotationFlag;a.bullet=(this.m_flags& -k.e_bulletFlag)==k.e_bulletFlag;a.awake=(this.m_flags&k.e_awakeFlag)==k.e_awakeFlag;a.linearDamping=this.m_linearDamping;a.linearVelocity.SetV(this.GetLinearVelocity());a.position=this.GetPosition();a.userData=this.GetUserData();return a};k.prototype.ApplyForce=function(a,c){if(this.m_type==k.b2_dynamicBody){this.IsAwake()==false&&this.SetAwake(true);this.m_force.x+=a.x;this.m_force.y+=a.y;this.m_torque+=(c.x-this.m_sweep.c.x)*a.y-(c.y-this.m_sweep.c.y)*a.x}};k.prototype.ApplyTorque=function(a){if(a=== -undefined)a=0;if(this.m_type==k.b2_dynamicBody){this.IsAwake()==false&&this.SetAwake(true);this.m_torque+=a}};k.prototype.ApplyImpulse=function(a,c){if(this.m_type==k.b2_dynamicBody){this.IsAwake()==false&&this.SetAwake(true);this.m_linearVelocity.x+=this.m_invMass*a.x;this.m_linearVelocity.y+=this.m_invMass*a.y;this.m_angularVelocity+=this.m_invI*((c.x-this.m_sweep.c.x)*a.y-(c.y-this.m_sweep.c.y)*a.x)}};k.prototype.Split=function(a){for(var c=this.GetLinearVelocity().Copy(),g=this.GetAngularVelocity(), -b=this.GetWorldCenter(),e=this.m_world.CreateBody(this.GetDefinition()),f,m=this.m_fixtureList;m;)if(a(m)){var r=m.m_next;if(f)f.m_next=r;else this.m_fixtureList=r;this.m_fixtureCount--;m.m_next=e.m_fixtureList;e.m_fixtureList=m;e.m_fixtureCount++;m.m_body=e;m=r}else{f=m;m=m.m_next}this.ResetMassData();e.ResetMassData();f=this.GetWorldCenter();a=e.GetWorldCenter();f=F.AddVV(c,F.CrossFV(g,F.SubtractVV(f,b)));c=F.AddVV(c,F.CrossFV(g,F.SubtractVV(a,b)));this.SetLinearVelocity(f);e.SetLinearVelocity(c); -this.SetAngularVelocity(g);e.SetAngularVelocity(g);this.SynchronizeFixtures();e.SynchronizeFixtures();return e};k.prototype.Merge=function(a){var c;for(c=a.m_fixtureList;c;){var g=c.m_next;a.m_fixtureCount--;c.m_next=this.m_fixtureList;this.m_fixtureList=c;this.m_fixtureCount++;c.m_body=e;c=g}b.m_fixtureCount=0;var b=this,e=a;b.GetWorldCenter();e.GetWorldCenter();b.GetLinearVelocity().Copy();e.GetLinearVelocity().Copy();b.GetAngularVelocity();e.GetAngularVelocity();b.ResetMassData();this.SynchronizeFixtures()}; -k.prototype.GetMass=function(){return this.m_mass};k.prototype.GetInertia=function(){return this.m_I};k.prototype.GetMassData=function(a){a.mass=this.m_mass;a.I=this.m_I;a.center.SetV(this.m_sweep.localCenter)};k.prototype.SetMassData=function(a){A.b2Assert(this.m_world.IsLocked()==false);if(this.m_world.IsLocked()!=true)if(this.m_type==k.b2_dynamicBody){this.m_invI=this.m_I=this.m_invMass=0;this.m_mass=a.mass;if(this.m_mass<=0)this.m_mass=1;this.m_invMass=1/this.m_mass;if(a.I>0&&(this.m_flags&k.e_fixedRotationFlag)== -0){this.m_I=a.I-this.m_mass*(a.center.x*a.center.x+a.center.y*a.center.y);this.m_invI=1/this.m_I}var c=this.m_sweep.c.Copy();this.m_sweep.localCenter.SetV(a.center);this.m_sweep.c0.SetV(F.MulX(this.m_xf,this.m_sweep.localCenter));this.m_sweep.c.SetV(this.m_sweep.c0);this.m_linearVelocity.x+=this.m_angularVelocity*-(this.m_sweep.c.y-c.y);this.m_linearVelocity.y+=this.m_angularVelocity*+(this.m_sweep.c.x-c.x)}};k.prototype.ResetMassData=function(){this.m_invI=this.m_I=this.m_invMass=this.m_mass=0;this.m_sweep.localCenter.SetZero(); -if(!(this.m_type==k.b2_staticBody||this.m_type==k.b2_kinematicBody)){for(var a=y.Make(0,0),c=this.m_fixtureList;c;c=c.m_next)if(c.m_density!=0){var g=c.GetMassData();this.m_mass+=g.mass;a.x+=g.center.x*g.mass;a.y+=g.center.y*g.mass;this.m_I+=g.I}if(this.m_mass>0){this.m_invMass=1/this.m_mass;a.x*=this.m_invMass;a.y*=this.m_invMass}else this.m_invMass=this.m_mass=1;if(this.m_I>0&&(this.m_flags&k.e_fixedRotationFlag)==0){this.m_I-=this.m_mass*(a.x*a.x+a.y*a.y);this.m_I*=this.m_inertiaScale;A.b2Assert(this.m_I> -0);this.m_invI=1/this.m_I}else this.m_invI=this.m_I=0;c=this.m_sweep.c.Copy();this.m_sweep.localCenter.SetV(a);this.m_sweep.c0.SetV(F.MulX(this.m_xf,this.m_sweep.localCenter));this.m_sweep.c.SetV(this.m_sweep.c0);this.m_linearVelocity.x+=this.m_angularVelocity*-(this.m_sweep.c.y-c.y);this.m_linearVelocity.y+=this.m_angularVelocity*+(this.m_sweep.c.x-c.x)}};k.prototype.GetWorldPoint=function(a){var c=this.m_xf.R;a=new y(c.col1.x*a.x+c.col2.x*a.y,c.col1.y*a.x+c.col2.y*a.y);a.x+=this.m_xf.position.x; -a.y+=this.m_xf.position.y;return a};k.prototype.GetWorldVector=function(a){return F.MulMV(this.m_xf.R,a)};k.prototype.GetLocalPoint=function(a){return F.MulXT(this.m_xf,a)};k.prototype.GetLocalVector=function(a){return F.MulTMV(this.m_xf.R,a)};k.prototype.GetLinearVelocityFromWorldPoint=function(a){return new y(this.m_linearVelocity.x-this.m_angularVelocity*(a.y-this.m_sweep.c.y),this.m_linearVelocity.y+this.m_angularVelocity*(a.x-this.m_sweep.c.x))};k.prototype.GetLinearVelocityFromLocalPoint=function(a){var c= -this.m_xf.R;a=new y(c.col1.x*a.x+c.col2.x*a.y,c.col1.y*a.x+c.col2.y*a.y);a.x+=this.m_xf.position.x;a.y+=this.m_xf.position.y;return new y(this.m_linearVelocity.x-this.m_angularVelocity*(a.y-this.m_sweep.c.y),this.m_linearVelocity.y+this.m_angularVelocity*(a.x-this.m_sweep.c.x))};k.prototype.GetLinearDamping=function(){return this.m_linearDamping};k.prototype.SetLinearDamping=function(a){if(a===undefined)a=0;this.m_linearDamping=a};k.prototype.GetAngularDamping=function(){return this.m_angularDamping}; -k.prototype.SetAngularDamping=function(a){if(a===undefined)a=0;this.m_angularDamping=a};k.prototype.SetType=function(a){if(a===undefined)a=0;if(this.m_type!=a){this.m_type=a;this.ResetMassData();if(this.m_type==k.b2_staticBody){this.m_linearVelocity.SetZero();this.m_angularVelocity=0}this.SetAwake(true);this.m_force.SetZero();this.m_torque=0;for(a=this.m_contactList;a;a=a.next)a.contact.FlagForFiltering()}};k.prototype.GetType=function(){return this.m_type};k.prototype.SetBullet=function(a){if(a)this.m_flags|= -k.e_bulletFlag;else this.m_flags&=~k.e_bulletFlag};k.prototype.IsBullet=function(){return(this.m_flags&k.e_bulletFlag)==k.e_bulletFlag};k.prototype.SetSleepingAllowed=function(a){if(a)this.m_flags|=k.e_allowSleepFlag;else{this.m_flags&=~k.e_allowSleepFlag;this.SetAwake(true)}};k.prototype.SetAwake=function(a){if(a){this.m_flags|=k.e_awakeFlag;this.m_sleepTime=0}else{this.m_flags&=~k.e_awakeFlag;this.m_sleepTime=0;this.m_linearVelocity.SetZero();this.m_angularVelocity=0;this.m_force.SetZero();this.m_torque= -0}};k.prototype.IsAwake=function(){return(this.m_flags&k.e_awakeFlag)==k.e_awakeFlag};k.prototype.SetFixedRotation=function(a){if(a)this.m_flags|=k.e_fixedRotationFlag;else this.m_flags&=~k.e_fixedRotationFlag;this.ResetMassData()};k.prototype.IsFixedRotation=function(){return(this.m_flags&k.e_fixedRotationFlag)==k.e_fixedRotationFlag};k.prototype.SetActive=function(a){if(a!=this.IsActive()){var c;if(a){this.m_flags|=k.e_activeFlag;a=this.m_world.m_contactManager.m_broadPhase;for(c=this.m_fixtureList;c;c= -c.m_next)c.CreateProxy(a,this.m_xf)}else{this.m_flags&=~k.e_activeFlag;a=this.m_world.m_contactManager.m_broadPhase;for(c=this.m_fixtureList;c;c=c.m_next)c.DestroyProxy(a);for(a=this.m_contactList;a;){c=a;a=a.next;this.m_world.m_contactManager.Destroy(c.contact)}this.m_contactList=null}}};k.prototype.IsActive=function(){return(this.m_flags&k.e_activeFlag)==k.e_activeFlag};k.prototype.IsSleepingAllowed=function(){return(this.m_flags&k.e_allowSleepFlag)==k.e_allowSleepFlag};k.prototype.GetFixtureList= -function(){return this.m_fixtureList};k.prototype.GetJointList=function(){return this.m_jointList};k.prototype.GetControllerList=function(){return this.m_controllerList};k.prototype.GetContactList=function(){return this.m_contactList};k.prototype.GetNext=function(){return this.m_next};k.prototype.GetUserData=function(){return this.m_userData};k.prototype.SetUserData=function(a){this.m_userData=a};k.prototype.GetWorld=function(){return this.m_world};k.prototype.b2Body=function(a,c){this.m_flags=0; -if(a.bullet)this.m_flags|=k.e_bulletFlag;if(a.fixedRotation)this.m_flags|=k.e_fixedRotationFlag;if(a.allowSleep)this.m_flags|=k.e_allowSleepFlag;if(a.awake)this.m_flags|=k.e_awakeFlag;if(a.active)this.m_flags|=k.e_activeFlag;this.m_world=c;this.m_xf.position.SetV(a.position);this.m_xf.R.Set(a.angle);this.m_sweep.localCenter.SetZero();this.m_sweep.t0=1;this.m_sweep.a0=this.m_sweep.a=a.angle;var g=this.m_xf.R,b=this.m_sweep.localCenter;this.m_sweep.c.x=g.col1.x*b.x+g.col2.x*b.y;this.m_sweep.c.y=g.col1.y* -b.x+g.col2.y*b.y;this.m_sweep.c.x+=this.m_xf.position.x;this.m_sweep.c.y+=this.m_xf.position.y;this.m_sweep.c0.SetV(this.m_sweep.c);this.m_contactList=this.m_controllerList=this.m_jointList=null;this.m_controllerCount=0;this.m_next=this.m_prev=null;this.m_linearVelocity.SetV(a.linearVelocity);this.m_angularVelocity=a.angularVelocity;this.m_linearDamping=a.linearDamping;this.m_angularDamping=a.angularDamping;this.m_force.Set(0,0);this.m_sleepTime=this.m_torque=0;this.m_type=a.type;if(this.m_type== -k.b2_dynamicBody)this.m_invMass=this.m_mass=1;else this.m_invMass=this.m_mass=0;this.m_invI=this.m_I=0;this.m_inertiaScale=a.inertiaScale;this.m_userData=a.userData;this.m_fixtureList=null;this.m_fixtureCount=0};k.prototype.SynchronizeFixtures=function(){var a=k.s_xf1;a.R.Set(this.m_sweep.a0);var c=a.R,g=this.m_sweep.localCenter;a.position.x=this.m_sweep.c0.x-(c.col1.x*g.x+c.col2.x*g.y);a.position.y=this.m_sweep.c0.y-(c.col1.y*g.x+c.col2.y*g.y);g=this.m_world.m_contactManager.m_broadPhase;for(c=this.m_fixtureList;c;c= -c.m_next)c.Synchronize(g,a,this.m_xf)};k.prototype.SynchronizeTransform=function(){this.m_xf.R.Set(this.m_sweep.a);var a=this.m_xf.R,c=this.m_sweep.localCenter;this.m_xf.position.x=this.m_sweep.c.x-(a.col1.x*c.x+a.col2.x*c.y);this.m_xf.position.y=this.m_sweep.c.y-(a.col1.y*c.x+a.col2.y*c.y)};k.prototype.ShouldCollide=function(a){if(this.m_type!=k.b2_dynamicBody&&a.m_type!=k.b2_dynamicBody)return false;for(var c=this.m_jointList;c;c=c.next)if(c.other==a)if(c.joint.m_collideConnected==false)return false; -return true};k.prototype.Advance=function(a){if(a===undefined)a=0;this.m_sweep.Advance(a);this.m_sweep.c.SetV(this.m_sweep.c0);this.m_sweep.a=this.m_sweep.a0;this.SynchronizeTransform()};Box2D.postDefs.push(function(){Box2D.Dynamics.b2Body.s_xf1=new K;Box2D.Dynamics.b2Body.e_islandFlag=1;Box2D.Dynamics.b2Body.e_awakeFlag=2;Box2D.Dynamics.b2Body.e_allowSleepFlag=4;Box2D.Dynamics.b2Body.e_bulletFlag=8;Box2D.Dynamics.b2Body.e_fixedRotationFlag=16;Box2D.Dynamics.b2Body.e_activeFlag=32;Box2D.Dynamics.b2Body.b2_staticBody= -0;Box2D.Dynamics.b2Body.b2_kinematicBody=1;Box2D.Dynamics.b2Body.b2_dynamicBody=2});z.b2BodyDef=function(){this.position=new y;this.linearVelocity=new y};z.prototype.b2BodyDef=function(){this.userData=null;this.position.Set(0,0);this.angle=0;this.linearVelocity.Set(0,0);this.angularDamping=this.linearDamping=this.angularVelocity=0;this.awake=this.allowSleep=true;this.bullet=this.fixedRotation=false;this.type=k.b2_staticBody;this.active=true;this.inertiaScale=1};u.b2ContactFilter=function(){};u.prototype.ShouldCollide= -function(a,c){var g=a.GetFilterData(),b=c.GetFilterData();if(g.groupIndex==b.groupIndex&&g.groupIndex!=0)return g.groupIndex>0;return(g.maskBits&b.categoryBits)!=0&&(g.categoryBits&b.maskBits)!=0};u.prototype.RayCollide=function(a,c){if(!a)return true;return this.ShouldCollide(a instanceof S?a:null,c)};Box2D.postDefs.push(function(){Box2D.Dynamics.b2ContactFilter.b2_defaultFilter=new u});D.b2ContactImpulse=function(){this.normalImpulses=new Vector_a2j_Number(A.b2_maxManifoldPoints);this.tangentImpulses= -new Vector_a2j_Number(A.b2_maxManifoldPoints)};H.b2ContactListener=function(){};H.prototype.BeginContact=function(){};H.prototype.EndContact=function(){};H.prototype.PreSolve=function(){};H.prototype.PostSolve=function(){};Box2D.postDefs.push(function(){Box2D.Dynamics.b2ContactListener.b2_defaultListener=new H});O.b2ContactManager=function(){};O.prototype.b2ContactManager=function(){this.m_world=null;this.m_contactCount=0;this.m_contactFilter=u.b2_defaultFilter;this.m_contactListener=H.b2_defaultListener; -this.m_contactFactory=new j(this.m_allocator);this.m_broadPhase=new B};O.prototype.AddPair=function(a,c){var g=a instanceof S?a:null,b=c instanceof S?c:null,e=g.GetBody(),f=b.GetBody();if(e!=f){for(var m=f.GetContactList();m;){if(m.other==e){var r=m.contact.GetFixtureA(),s=m.contact.GetFixtureB();if(r==g&&s==b)return;if(r==b&&s==g)return}m=m.next}if(f.ShouldCollide(e)!=false)if(this.m_contactFilter.ShouldCollide(g,b)!=false){m=this.m_contactFactory.Create(g,b);g=m.GetFixtureA();b=m.GetFixtureB(); -e=g.m_body;f=b.m_body;m.m_prev=null;m.m_next=this.m_world.m_contactList;if(this.m_world.m_contactList!=null)this.m_world.m_contactList.m_prev=m;this.m_world.m_contactList=m;m.m_nodeA.contact=m;m.m_nodeA.other=f;m.m_nodeA.prev=null;m.m_nodeA.next=e.m_contactList;if(e.m_contactList!=null)e.m_contactList.prev=m.m_nodeA;e.m_contactList=m.m_nodeA;m.m_nodeB.contact=m;m.m_nodeB.other=e;m.m_nodeB.prev=null;m.m_nodeB.next=f.m_contactList;if(f.m_contactList!=null)f.m_contactList.prev=m.m_nodeB;f.m_contactList= -m.m_nodeB;++this.m_world.m_contactCount}}};O.prototype.FindNewContacts=function(){this.m_broadPhase.UpdatePairs(Box2D.generateCallback(this,this.AddPair))};O.prototype.Destroy=function(a){var c=a.GetFixtureA(),g=a.GetFixtureB();c=c.GetBody();g=g.GetBody();a.IsTouching()&&this.m_contactListener.EndContact(a);if(a.m_prev)a.m_prev.m_next=a.m_next;if(a.m_next)a.m_next.m_prev=a.m_prev;if(a==this.m_world.m_contactList)this.m_world.m_contactList=a.m_next;if(a.m_nodeA.prev)a.m_nodeA.prev.next=a.m_nodeA.next; -if(a.m_nodeA.next)a.m_nodeA.next.prev=a.m_nodeA.prev;if(a.m_nodeA==c.m_contactList)c.m_contactList=a.m_nodeA.next;if(a.m_nodeB.prev)a.m_nodeB.prev.next=a.m_nodeB.next;if(a.m_nodeB.next)a.m_nodeB.next.prev=a.m_nodeB.prev;if(a.m_nodeB==g.m_contactList)g.m_contactList=a.m_nodeB.next;this.m_contactFactory.Destroy(a);--this.m_contactCount};O.prototype.Collide=function(){for(var a=this.m_world.m_contactList;a;){var c=a.GetFixtureA(),g=a.GetFixtureB(),b=c.GetBody(),e=g.GetBody();if(b.IsAwake()==false&&e.IsAwake()== -false)a=a.GetNext();else{if(a.m_flags&l.e_filterFlag){if(e.ShouldCollide(b)==false){c=a;a=c.GetNext();this.Destroy(c);continue}if(this.m_contactFilter.ShouldCollide(c,g)==false){c=a;a=c.GetNext();this.Destroy(c);continue}a.m_flags&=~l.e_filterFlag}if(this.m_broadPhase.TestOverlap(c.m_proxy,g.m_proxy)==false){c=a;a=c.GetNext();this.Destroy(c)}else{a.Update(this.m_contactListener);a=a.GetNext()}}}};Box2D.postDefs.push(function(){Box2D.Dynamics.b2ContactManager.s_evalCP=new p});E.b2DebugDraw=function(){}; -E.prototype.b2DebugDraw=function(){};E.prototype.SetFlags=function(){};E.prototype.GetFlags=function(){};E.prototype.AppendFlags=function(){};E.prototype.ClearFlags=function(){};E.prototype.SetSprite=function(){};E.prototype.GetSprite=function(){};E.prototype.SetDrawScale=function(){};E.prototype.GetDrawScale=function(){};E.prototype.SetLineThickness=function(){};E.prototype.GetLineThickness=function(){};E.prototype.SetAlpha=function(){};E.prototype.GetAlpha=function(){};E.prototype.SetFillAlpha= -function(){};E.prototype.GetFillAlpha=function(){};E.prototype.SetXFormScale=function(){};E.prototype.GetXFormScale=function(){};E.prototype.DrawPolygon=function(){};E.prototype.DrawSolidPolygon=function(){};E.prototype.DrawCircle=function(){};E.prototype.DrawSolidCircle=function(){};E.prototype.DrawSegment=function(){};E.prototype.DrawTransform=function(){};Box2D.postDefs.push(function(){Box2D.Dynamics.b2DebugDraw.e_shapeBit=1;Box2D.Dynamics.b2DebugDraw.e_jointBit=2;Box2D.Dynamics.b2DebugDraw.e_aabbBit= -4;Box2D.Dynamics.b2DebugDraw.e_pairBit=8;Box2D.Dynamics.b2DebugDraw.e_centerOfMassBit=16;Box2D.Dynamics.b2DebugDraw.e_controllerBit=32});R.b2DestructionListener=function(){};R.prototype.SayGoodbyeJoint=function(){};R.prototype.SayGoodbyeFixture=function(){};N.b2FilterData=function(){this.categoryBits=1;this.maskBits=65535;this.groupIndex=0};N.prototype.Copy=function(){var a=new N;a.categoryBits=this.categoryBits;a.maskBits=this.maskBits;a.groupIndex=this.groupIndex;return a};S.b2Fixture=function(){this.m_filter= -new N};S.prototype.GetType=function(){return this.m_shape.GetType()};S.prototype.GetShape=function(){return this.m_shape};S.prototype.SetSensor=function(a){if(this.m_isSensor!=a){this.m_isSensor=a;if(this.m_body!=null)for(a=this.m_body.GetContactList();a;){var c=a.contact,g=c.GetFixtureA(),b=c.GetFixtureB();if(g==this||b==this)c.SetSensor(g.IsSensor()||b.IsSensor());a=a.next}}};S.prototype.IsSensor=function(){return this.m_isSensor};S.prototype.SetFilterData=function(a){this.m_filter=a.Copy();if(!this.m_body)for(a= -this.m_body.GetContactList();a;){var c=a.contact,g=c.GetFixtureA(),b=c.GetFixtureB();if(g==this||b==this)c.FlagForFiltering();a=a.next}};S.prototype.GetFilterData=function(){return this.m_filter.Copy()};S.prototype.GetBody=function(){return this.m_body};S.prototype.GetNext=function(){return this.m_next};S.prototype.GetUserData=function(){return this.m_userData};S.prototype.SetUserData=function(a){this.m_userData=a};S.prototype.TestPoint=function(a){return this.m_shape.TestPoint(this.m_body.GetTransform(), -a)};S.prototype.RayCast=function(a,c){return this.m_shape.RayCast(a,c,this.m_body.GetTransform())};S.prototype.GetMassData=function(a){if(a===undefined)a=null;if(a==null)a=new I;this.m_shape.ComputeMass(a,this.m_density);return a};S.prototype.SetDensity=function(a){if(a===undefined)a=0;this.m_density=a};S.prototype.GetDensity=function(){return this.m_density};S.prototype.GetFriction=function(){return this.m_friction};S.prototype.SetFriction=function(a){if(a===undefined)a=0;this.m_friction=a};S.prototype.GetRestitution= -function(){return this.m_restitution};S.prototype.SetRestitution=function(a){if(a===undefined)a=0;this.m_restitution=a};S.prototype.GetAABB=function(){return this.m_aabb};S.prototype.b2Fixture=function(){this.m_aabb=new U;this.m_shape=this.m_next=this.m_body=this.m_userData=null;this.m_restitution=this.m_friction=this.m_density=0};S.prototype.Create=function(a,c,g){this.m_userData=g.userData;this.m_friction=g.friction;this.m_restitution=g.restitution;this.m_body=a;this.m_next=null;this.m_filter=g.filter.Copy(); -this.m_isSensor=g.isSensor;this.m_shape=g.shape.Copy();this.m_density=g.density};S.prototype.Destroy=function(){this.m_shape=null};S.prototype.CreateProxy=function(a,c){this.m_shape.ComputeAABB(this.m_aabb,c);this.m_proxy=a.CreateProxy(this.m_aabb,this)};S.prototype.DestroyProxy=function(a){if(this.m_proxy!=null){a.DestroyProxy(this.m_proxy);this.m_proxy=null}};S.prototype.Synchronize=function(a,c,g){if(this.m_proxy){var b=new U,e=new U;this.m_shape.ComputeAABB(b,c);this.m_shape.ComputeAABB(e,g); -this.m_aabb.Combine(b,e);c=F.SubtractVV(g.position,c.position);a.MoveProxy(this.m_proxy,this.m_aabb,c)}};aa.b2FixtureDef=function(){this.filter=new N};aa.prototype.b2FixtureDef=function(){this.userData=this.shape=null;this.friction=0.2;this.density=this.restitution=0;this.filter.categoryBits=1;this.filter.maskBits=65535;this.filter.groupIndex=0;this.isSensor=false};Z.b2Island=function(){};Z.prototype.b2Island=function(){this.m_bodies=new Vector;this.m_contacts=new Vector;this.m_joints=new Vector}; -Z.prototype.Initialize=function(a,c,g,b,e,f){if(a===undefined)a=0;if(c===undefined)c=0;if(g===undefined)g=0;var m=0;this.m_bodyCapacity=a;this.m_contactCapacity=c;this.m_jointCapacity=g;this.m_jointCount=this.m_contactCount=this.m_bodyCount=0;this.m_allocator=b;this.m_listener=e;this.m_contactSolver=f;for(m=this.m_bodies.length;mA.b2_maxTranslationSquared){e.m_linearVelocity.Normalize();e.m_linearVelocity.x*=A.b2_maxTranslation*a.inv_dt;e.m_linearVelocity.y*=A.b2_maxTranslation*a.inv_dt}m=a.dt*e.m_angularVelocity;if(m*m>A.b2_maxRotationSquared)e.m_angularVelocity=e.m_angularVelocity<0?-A.b2_maxRotation*a.inv_dt:A.b2_maxRotation*a.inv_dt;e.m_sweep.c0.SetV(e.m_sweep.c);e.m_sweep.a0=e.m_sweep.a;e.m_sweep.c.x+=a.dt*e.m_linearVelocity.x;e.m_sweep.c.y+= -a.dt*e.m_linearVelocity.y;e.m_sweep.a+=a.dt*e.m_angularVelocity;e.SynchronizeTransform()}}for(b=0;bm||F.Dot(e.m_linearVelocity,e.m_linearVelocity)>c)g=e.m_sleepTime=0;else{e.m_sleepTime+=a.dt;g=F.Min(g,e.m_sleepTime)}}}if(g>=A.b2_timeToSleep)for(b=0;bA.b2_maxTranslationSquared){g.m_linearVelocity.Normalize();g.m_linearVelocity.x*=A.b2_maxTranslation* -a.inv_dt;g.m_linearVelocity.y*=A.b2_maxTranslation*a.inv_dt}e=a.dt*g.m_angularVelocity;if(e*e>A.b2_maxRotationSquared)g.m_angularVelocity=g.m_angularVelocity<0?-A.b2_maxRotation*a.inv_dt:A.b2_maxRotation*a.inv_dt;g.m_sweep.c0.SetV(g.m_sweep.c);g.m_sweep.a0=g.m_sweep.a;g.m_sweep.c.x+=a.dt*g.m_linearVelocity.x;g.m_sweep.c.y+=a.dt*g.m_linearVelocity.y;g.m_sweep.a+=a.dt*g.m_angularVelocity;g.SynchronizeTransform()}}for(c=0;c0?1/a:0;b.dtRatio=this.m_inv_dt0*a;b.warmStarting=h.m_warmStarting;this.m_contactManager.Collide();b.dt>0&&this.Solve(b);h.m_continuousPhysics&&b.dt>0&&this.SolveTOI(b);if(b.dt>0)this.m_inv_dt0=b.inv_dt;this.m_flags&=~h.e_locked};h.prototype.ClearForces=function(){for(var a=this.m_bodyList;a;a=a.m_next){a.m_force.SetZero();a.m_torque=0}};h.prototype.DrawDebugData= -function(){if(this.m_debugDraw!=null){this.m_debugDraw.m_sprite.graphics.clear();var a=this.m_debugDraw.GetFlags(),c,g,b;new y;new y;new y;var e;new U;new U;e=[new y,new y,new y,new y];var f=new w(0,0,0);if(a&E.e_shapeBit)for(c=this.m_bodyList;c;c=c.m_next){e=c.m_xf;for(g=c.GetFixtureList();g;g=g.m_next){b=g.GetShape();if(c.IsActive()==false)f.Set(0.5,0.5,0.3);else if(c.GetType()==k.b2_staticBody)f.Set(0.5,0.9,0.5);else if(c.GetType()==k.b2_kinematicBody)f.Set(0.5,0.5,0.9);else c.IsAwake()==false? -f.Set(0.6,0.6,0.6):f.Set(0.9,0.7,0.7);this.DrawShape(b,e,f)}}if(a&E.e_jointBit)for(c=this.m_jointList;c;c=c.m_next)this.DrawJoint(c);if(a&E.e_controllerBit)for(c=this.m_controllerList;c;c=c.m_next)c.Draw(this.m_debugDraw);if(a&E.e_pairBit){f.Set(0.3,0.9,0.9);for(c=this.m_contactManager.m_contactList;c;c=c.GetNext()){b=c.GetFixtureA();g=c.GetFixtureB();b=b.GetAABB().GetCenter();g=g.GetAABB().GetCenter();this.m_debugDraw.DrawSegment(b,g,f)}}if(a&E.e_aabbBit){b=this.m_contactManager.m_broadPhase;e=[new y, -new y,new y,new y];for(c=this.m_bodyList;c;c=c.GetNext())if(c.IsActive()!=false)for(g=c.GetFixtureList();g;g=g.GetNext()){var m=b.GetFatAABB(g.m_proxy);e[0].Set(m.lowerBound.x,m.lowerBound.y);e[1].Set(m.upperBound.x,m.lowerBound.y);e[2].Set(m.upperBound.x,m.upperBound.y);e[3].Set(m.lowerBound.x,m.upperBound.y);this.m_debugDraw.DrawPolygon(e,4,f)}}if(a&E.e_centerOfMassBit)for(c=this.m_bodyList;c;c=c.m_next){e=h.s_xf;e.R=c.m_xf.R;e.position=c.GetWorldCenter();this.m_debugDraw.DrawTransform(e)}}};h.prototype.QueryAABB= -function(a,c){var g=this.m_contactManager.m_broadPhase;g.Query(function(b){return a(g.GetUserData(b))},c)};h.prototype.QueryShape=function(a,c,g){if(g===undefined)g=null;if(g==null){g=new K;g.SetIdentity()}var b=this.m_contactManager.m_broadPhase,e=new U;c.ComputeAABB(e,g);b.Query(function(f){f=b.GetUserData(f)instanceof S?b.GetUserData(f):null;if(Y.TestOverlap(c,g,f.GetShape(),f.GetBody().GetTransform()))return a(f);return true},e)};h.prototype.QueryPoint=function(a,c){var g=this.m_contactManager.m_broadPhase, -b=new U;b.lowerBound.Set(c.x-A.b2_linearSlop,c.y-A.b2_linearSlop);b.upperBound.Set(c.x+A.b2_linearSlop,c.y+A.b2_linearSlop);g.Query(function(e){e=g.GetUserData(e)instanceof S?g.GetUserData(e):null;if(e.TestPoint(c))return a(e);return true},b)};h.prototype.RayCast=function(a,c,g){var b=this.m_contactManager.m_broadPhase,e=new V,f=new Q(c,g);b.RayCast(function(m,r){var s=b.GetUserData(r);s=s instanceof S?s:null;if(s.RayCast(e,m)){var v=e.fraction,t=new y((1-v)*c.x+v*g.x,(1-v)*c.y+v*g.y);return a(s, -t,e.normal,v)}return m.maxFraction},f)};h.prototype.RayCastOne=function(a,c){var g;this.RayCast(function(b,e,f,m){if(m===undefined)m=0;g=b;return m},a,c);return g};h.prototype.RayCastAll=function(a,c){var g=new Vector;this.RayCast(function(b){g[g.length]=b;return 1},a,c);return g};h.prototype.GetBodyList=function(){return this.m_bodyList};h.prototype.GetJointList=function(){return this.m_jointList};h.prototype.GetContactList=function(){return this.m_contactList};h.prototype.IsLocked=function(){return(this.m_flags& -h.e_locked)>0};h.prototype.Solve=function(a){for(var c,g=this.m_controllerList;g;g=g.m_next)g.Step(a);g=this.m_island;g.Initialize(this.m_bodyCount,this.m_contactCount,this.m_jointCount,null,this.m_contactManager.m_contactListener,this.m_contactSolver);for(c=this.m_bodyList;c;c=c.m_next)c.m_flags&=~k.e_islandFlag;for(var b=this.m_contactList;b;b=b.m_next)b.m_flags&=~l.e_islandFlag;for(b=this.m_jointList;b;b=b.m_next)b.m_islandFlag=false;parseInt(this.m_bodyCount);b=this.s_stack;for(var e=this.m_bodyList;e;e= -e.m_next)if(!(e.m_flags&k.e_islandFlag))if(!(e.IsAwake()==false||e.IsActive()==false))if(e.GetType()!=k.b2_staticBody){g.Clear();var f=0;b[f++]=e;for(e.m_flags|=k.e_islandFlag;f>0;){c=b[--f];g.AddBody(c);c.IsAwake()==false&&c.SetAwake(true);if(c.GetType()!=k.b2_staticBody){for(var m,r=c.m_contactList;r;r=r.next)if(!(r.contact.m_flags&l.e_islandFlag))if(!(r.contact.IsSensor()==true||r.contact.IsEnabled()==false||r.contact.IsTouching()==false)){g.AddContact(r.contact);r.contact.m_flags|=l.e_islandFlag; -m=r.other;if(!(m.m_flags&k.e_islandFlag)){b[f++]=m;m.m_flags|=k.e_islandFlag}}for(c=c.m_jointList;c;c=c.next)if(c.joint.m_islandFlag!=true){m=c.other;if(m.IsActive()!=false){g.AddJoint(c.joint);c.joint.m_islandFlag=true;if(!(m.m_flags&k.e_islandFlag)){b[f++]=m;m.m_flags|=k.e_islandFlag}}}}}g.Solve(a,this.m_gravity,this.m_allowSleep);for(f=0;f0&&c<1){c=(1-c)*s+c;if(c>1)c=1}b.m_toi=c;b.m_flags|=l.e_toiFlag}if(Number.MIN_VALUE0;){c=f[b++];--m;e.AddBody(c);c.IsAwake()==false&&c.SetAwake(true);if(c.GetType()==k.b2_dynamicBody){for(g=c.m_contactList;g;g=g.next){if(e.m_contactCount==e.m_contactCapacity)break;if(!(g.contact.m_flags&l.e_islandFlag))if(!(g.contact.IsSensor()==true||g.contact.IsEnabled()== -false||g.contact.IsTouching()==false)){e.AddContact(g.contact);g.contact.m_flags|=l.e_islandFlag;s=g.other;if(!(s.m_flags&k.e_islandFlag)){if(s.GetType()!=k.b2_staticBody){s.Advance(r);s.SetAwake(true)}f[b+m]=s;++m;s.m_flags|=k.e_islandFlag}}}for(c=c.m_jointList;c;c=c.next)if(e.m_jointCount!=e.m_jointCapacity)if(c.joint.m_islandFlag!=true){s=c.other;if(s.IsActive()!=false){e.AddJoint(c.joint);c.joint.m_islandFlag=true;if(!(s.m_flags&k.e_islandFlag)){if(s.GetType()!=k.b2_staticBody){s.Advance(r);s.SetAwake(true)}f[b+ -m]=s;++m;s.m_flags|=k.e_islandFlag}}}}}b=h.s_timestep;b.warmStarting=false;b.dt=(1-r)*a.dt;b.inv_dt=1/b.dt;b.dtRatio=0;b.velocityIterations=a.velocityIterations;b.positionIterations=a.positionIterations;e.SolveTOI(b);for(r=r=0;r0;for(c=0;c0){j.m_fixtureA.m_body.SetAwake(true);j.m_fixtureB.m_body.SetAwake(true)}var o=parseInt(j.m_fixtureA.GetType()), -q=parseInt(j.m_fixtureB.GetType());o=this.m_registers[o][q];o.poolCount++;j.m_next=o.pool;o.pool=j;o=o.destroyFcn;o(j,this.m_allocator)};V.b2ContactRegister=function(){};M.b2ContactResult=function(){this.position=new N;this.normal=new N;this.id=new aa};L.b2ContactSolver=function(){this.m_step=new H;this.m_constraints=new Vector};L.prototype.b2ContactSolver=function(){};L.prototype.Initialize=function(j,o,q,n){if(q===undefined)q=0;var a;this.m_step.Set(j);this.m_allocator=n;j=0;for(this.m_constraintCount= -q;this.m_constraints.length -0);L.s_worldManifold.Initialize(m,e.m_xf,g,f.m_xf,b);c=L.s_worldManifold.m_normal.x;a=L.s_worldManifold.m_normal.y;n=this.m_constraints[j];n.bodyA=e;n.bodyB=f;n.manifold=m;n.normal.x=c;n.normal.y=a;n.pointCount=m.m_pointCount;n.friction=r;n.restitution=s;n.localPlaneNormal.x=m.m_localPlaneNormal.x;n.localPlaneNormal.y=m.m_localPlaneNormal.y;n.localPoint.x=m.m_localPoint.x;n.localPoint.y=m.m_localPoint.y;n.radius=g+b;n.type=m.m_type;for(g=0;g0?n:0;q=n-o.normalImpulse;c=q*b;q=q*e;x.x-=J*c;x.y-=J*q;v-=T*(o.rA.x*q-o.rA.y*c);C.x+=P*c;C.y+=P*q;t+=X*(o.rB.x*q-o.rB.y*c);o.normalImpulse=n}else{o=a.points[0];j=a.points[1];q=o.normalImpulse;g=j.normalImpulse;var ba=(C.x-t*o.rB.y-x.x+v*o.rA.y)*b+(C.y+t*o.rB.x-x.y-v*o.rA.x)*e,ca=(C.x-t*j.rB.y-x.x+v*j.rA.y)*b+(C.y+ -t*j.rB.x-x.y-v*j.rA.x)*e;n=ba-o.velocityBias;c=ca-j.velocityBias;f=a.K;n-=f.col1.x*q+f.col2.x*g;for(c-=f.col1.y*q+f.col2.y*g;;){f=a.normalMass;$=-(f.col1.x*n+f.col2.x*c);f=-(f.col1.y*n+f.col2.y*c);if($>=0&&f>=0){q=$-q;g=f-g;a=q*b;q=q*e;b=g*b;e=g*e;x.x-=J*(a+b);x.y-=J*(q+e);v-=T*(o.rA.x*q-o.rA.y*a+j.rA.x*e-j.rA.y*b);C.x+=P*(a+b);C.y+=P*(q+e);t+=X*(o.rB.x*q-o.rB.y*a+j.rB.x*e-j.rB.y*b);o.normalImpulse=$;j.normalImpulse=f;break}$=-o.normalMass*n;f=0;ca=a.K.col1.y*$+c;if($>=0&&ca>=0){q=$-q;g=f-g;a=q*b; -q=q*e;b=g*b;e=g*e;x.x-=J*(a+b);x.y-=J*(q+e);v-=T*(o.rA.x*q-o.rA.y*a+j.rA.x*e-j.rA.y*b);C.x+=P*(a+b);C.y+=P*(q+e);t+=X*(o.rB.x*q-o.rB.y*a+j.rB.x*e-j.rB.y*b);o.normalImpulse=$;j.normalImpulse=f;break}$=0;f=-j.normalMass*c;ba=a.K.col2.x*f+n;if(f>=0&&ba>=0){q=$-q;g=f-g;a=q*b;q=q*e;b=g*b;e=g*e;x.x-=J*(a+b);x.y-=J*(q+e);v-=T*(o.rA.x*q-o.rA.y*a+j.rA.x*e-j.rA.y*b);C.x+=P*(a+b);C.y+=P*(q+e);t+=X*(o.rB.x*q-o.rB.y*a+j.rB.x*e-j.rB.y*b);o.normalImpulse=$;j.normalImpulse=f;break}f=$=0;ba=n;ca=c;if(ba>=0&&ca>=0){q= -$-q;g=f-g;a=q*b;q=q*e;b=g*b;e=g*e;x.x-=J*(a+b);x.y-=J*(q+e);v-=T*(o.rA.x*q-o.rA.y*a+j.rA.x*e-j.rA.y*b);C.x+=P*(a+b);C.y+=P*(q+e);t+=X*(o.rB.x*q-o.rB.y*a+j.rB.x*e-j.rB.y*b);o.normalImpulse=$;j.normalImpulse=f;break}break}}r.m_angularVelocity=v;s.m_angularVelocity=t}};L.prototype.FinalizeVelocityConstraints=function(){for(var j=0;j-1.5*O.b2_linearSlop};Box2D.postDefs.push(function(){Box2D.Dynamics.Contacts.b2ContactSolver.s_worldManifold=new l;Box2D.Dynamics.Contacts.b2ContactSolver.s_psm=new u});Box2D.inherit(I,Box2D.Dynamics.Contacts.b2Contact); -I.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;I.b2EdgeAndCircleContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};I.Create=function(){return new I};I.Destroy=function(){};I.prototype.Reset=function(j,o){this.__super.Reset.call(this,j,o)};I.prototype.Evaluate=function(){var j=this.m_fixtureA.GetBody(),o=this.m_fixtureB.GetBody();this.b2CollideEdgeAndCircle(this.m_manifold,this.m_fixtureA.GetShape()instanceof G?this.m_fixtureA.GetShape():null,j.m_xf, -this.m_fixtureB.GetShape()instanceof F?this.m_fixtureB.GetShape():null,o.m_xf)};I.prototype.b2CollideEdgeAndCircle=function(){};Box2D.inherit(W,Box2D.Dynamics.Contacts.b2Contact);W.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;W.b2NullContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};W.prototype.b2NullContact=function(){this.__super.b2Contact.call(this)};W.prototype.Evaluate=function(){};Box2D.inherit(Y,Box2D.Dynamics.Contacts.b2Contact);Y.prototype.__super= -Box2D.Dynamics.Contacts.b2Contact.prototype;Y.b2PolyAndCircleContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};Y.Create=function(){return new Y};Y.Destroy=function(){};Y.prototype.Reset=function(j,o){this.__super.Reset.call(this,j,o);O.b2Assert(j.GetType()==y.e_polygonShape);O.b2Assert(o.GetType()==y.e_circleShape)};Y.prototype.Evaluate=function(){var j=this.m_fixtureA.m_body,o=this.m_fixtureB.m_body;S.CollidePolygonAndCircle(this.m_manifold,this.m_fixtureA.GetShape()instanceof -K?this.m_fixtureA.GetShape():null,j.m_xf,this.m_fixtureB.GetShape()instanceof F?this.m_fixtureB.GetShape():null,o.m_xf)};Box2D.inherit(k,Box2D.Dynamics.Contacts.b2Contact);k.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;k.b2PolyAndEdgeContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};k.Create=function(){return new k};k.Destroy=function(){};k.prototype.Reset=function(j,o){this.__super.Reset.call(this,j,o);O.b2Assert(j.GetType()==y.e_polygonShape); -O.b2Assert(o.GetType()==y.e_edgeShape)};k.prototype.Evaluate=function(){var j=this.m_fixtureA.GetBody(),o=this.m_fixtureB.GetBody();this.b2CollidePolyAndEdge(this.m_manifold,this.m_fixtureA.GetShape()instanceof K?this.m_fixtureA.GetShape():null,j.m_xf,this.m_fixtureB.GetShape()instanceof G?this.m_fixtureB.GetShape():null,o.m_xf)};k.prototype.b2CollidePolyAndEdge=function(){};Box2D.inherit(z,Box2D.Dynamics.Contacts.b2Contact);z.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;z.b2PolygonContact= -function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};z.Create=function(){return new z};z.Destroy=function(){};z.prototype.Reset=function(j,o){this.__super.Reset.call(this,j,o)};z.prototype.Evaluate=function(){var j=this.m_fixtureA.GetBody(),o=this.m_fixtureB.GetBody();S.CollidePolygons(this.m_manifold,this.m_fixtureA.GetShape()instanceof K?this.m_fixtureA.GetShape():null,j.m_xf,this.m_fixtureB.GetShape()instanceof K?this.m_fixtureB.GetShape():null,o.m_xf)};u.b2PositionSolverManifold= -function(){};u.prototype.b2PositionSolverManifold=function(){this.m_normal=new N;this.m_separations=new Vector_a2j_Number(O.b2_maxManifoldPoints);this.m_points=new Vector(O.b2_maxManifoldPoints);for(var j=0;j0);var o=0,q=0,n=0,a,c=0,g=0;switch(j.type){case Z.e_circles:a=j.bodyA.m_xf.R;n=j.localPoint;o=j.bodyA.m_xf.position.x+(a.col1.x*n.x+a.col2.x*n.y);q=j.bodyA.m_xf.position.y+(a.col1.y* -n.x+a.col2.y*n.y);a=j.bodyB.m_xf.R;n=j.points[0].localPoint;c=j.bodyB.m_xf.position.x+(a.col1.x*n.x+a.col2.x*n.y);a=j.bodyB.m_xf.position.y+(a.col1.y*n.x+a.col2.y*n.y);n=c-o;g=a-q;var b=n*n+g*g;if(b>Number.MIN_VALUE*Number.MIN_VALUE){b=Math.sqrt(b);this.m_normal.x=n/b;this.m_normal.y=g/b}else{this.m_normal.x=1;this.m_normal.y=0}this.m_points[0].x=0.5*(o+c);this.m_points[0].y=0.5*(q+a);this.m_separations[0]=n*this.m_normal.x+g*this.m_normal.y-j.radius;break;case Z.e_faceA:a=j.bodyA.m_xf.R;n=j.localPlaneNormal; -this.m_normal.x=a.col1.x*n.x+a.col2.x*n.y;this.m_normal.y=a.col1.y*n.x+a.col2.y*n.y;a=j.bodyA.m_xf.R;n=j.localPoint;c=j.bodyA.m_xf.position.x+(a.col1.x*n.x+a.col2.x*n.y);g=j.bodyA.m_xf.position.y+(a.col1.y*n.x+a.col2.y*n.y);a=j.bodyB.m_xf.R;for(o=0;o0||L>0?1/Math.max(M,L):0};V.prototype.Step=function(M){M=M.dt;if(!(M<=Number.MIN_VALUE)){if(M>this.maxTimestep&&this.maxTimestep>0)M=this.maxTimestep; -for(var L=this.m_bodyList;L;L=L.nextBody){var I=L.body;if(I.IsAwake()){var W=I.GetWorldVector(G.MulMV(this.T,I.GetLocalVector(I.GetLinearVelocity())));I.SetLinearVelocity(new K(I.GetLinearVelocity().x+W.x*M,I.GetLinearVelocity().y+W.y*M))}}}}})(); -(function(){var F=Box2D.Common.b2Settings,G=Box2D.Common.Math.b2Mat22,K=Box2D.Common.Math.b2Mat33,y=Box2D.Common.Math.b2Math,w=Box2D.Common.Math.b2Vec2,A=Box2D.Common.Math.b2Vec3,U=Box2D.Dynamics.Joints.b2DistanceJoint,p=Box2D.Dynamics.Joints.b2DistanceJointDef,B=Box2D.Dynamics.Joints.b2FrictionJoint,Q=Box2D.Dynamics.Joints.b2FrictionJointDef,V=Box2D.Dynamics.Joints.b2GearJoint,M=Box2D.Dynamics.Joints.b2GearJointDef,L=Box2D.Dynamics.Joints.b2Jacobian,I=Box2D.Dynamics.Joints.b2Joint,W=Box2D.Dynamics.Joints.b2JointDef, -Y=Box2D.Dynamics.Joints.b2JointEdge,k=Box2D.Dynamics.Joints.b2LineJoint,z=Box2D.Dynamics.Joints.b2LineJointDef,u=Box2D.Dynamics.Joints.b2MouseJoint,D=Box2D.Dynamics.Joints.b2MouseJointDef,H=Box2D.Dynamics.Joints.b2PrismaticJoint,O=Box2D.Dynamics.Joints.b2PrismaticJointDef,E=Box2D.Dynamics.Joints.b2PulleyJoint,R=Box2D.Dynamics.Joints.b2PulleyJointDef,N=Box2D.Dynamics.Joints.b2RevoluteJoint,S=Box2D.Dynamics.Joints.b2RevoluteJointDef,aa=Box2D.Dynamics.Joints.b2WeldJoint,Z=Box2D.Dynamics.Joints.b2WeldJointDef; -Box2D.inherit(U,Box2D.Dynamics.Joints.b2Joint);U.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;U.b2DistanceJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchor1=new w;this.m_localAnchor2=new w;this.m_u=new w};U.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};U.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};U.prototype.GetReactionForce=function(d){if(d===undefined)d= -0;return new w(d*this.m_impulse*this.m_u.x,d*this.m_impulse*this.m_u.y)};U.prototype.GetReactionTorque=function(){return 0};U.prototype.GetLength=function(){return this.m_length};U.prototype.SetLength=function(d){if(d===undefined)d=0;this.m_length=d};U.prototype.GetFrequency=function(){return this.m_frequencyHz};U.prototype.SetFrequency=function(d){if(d===undefined)d=0;this.m_frequencyHz=d};U.prototype.GetDampingRatio=function(){return this.m_dampingRatio};U.prototype.SetDampingRatio=function(d){if(d=== -undefined)d=0;this.m_dampingRatio=d};U.prototype.b2DistanceJoint=function(d){this.__super.b2Joint.call(this,d);this.m_localAnchor1.SetV(d.localAnchorA);this.m_localAnchor2.SetV(d.localAnchorB);this.m_length=d.length;this.m_frequencyHz=d.frequencyHz;this.m_dampingRatio=d.dampingRatio;this.m_bias=this.m_gamma=this.m_impulse=0};U.prototype.InitVelocityConstraints=function(d){var h,l=0,j=this.m_bodyA,o=this.m_bodyB;h=j.m_xf.R;var q=this.m_localAnchor1.x-j.m_sweep.localCenter.x,n=this.m_localAnchor1.y- -j.m_sweep.localCenter.y;l=h.col1.x*q+h.col2.x*n;n=h.col1.y*q+h.col2.y*n;q=l;h=o.m_xf.R;var a=this.m_localAnchor2.x-o.m_sweep.localCenter.x,c=this.m_localAnchor2.y-o.m_sweep.localCenter.y;l=h.col1.x*a+h.col2.x*c;c=h.col1.y*a+h.col2.y*c;a=l;this.m_u.x=o.m_sweep.c.x+a-j.m_sweep.c.x-q;this.m_u.y=o.m_sweep.c.y+c-j.m_sweep.c.y-n;l=Math.sqrt(this.m_u.x*this.m_u.x+this.m_u.y*this.m_u.y);l>F.b2_linearSlop?this.m_u.Multiply(1/l):this.m_u.SetZero();h=q*this.m_u.y-n*this.m_u.x;var g=a*this.m_u.y-c*this.m_u.x; -h=j.m_invMass+j.m_invI*h*h+o.m_invMass+o.m_invI*g*g;this.m_mass=h!=0?1/h:0;if(this.m_frequencyHz>0){l=l-this.m_length;g=2*Math.PI*this.m_frequencyHz;var b=this.m_mass*g*g;this.m_gamma=d.dt*(2*this.m_mass*this.m_dampingRatio*g+d.dt*b);this.m_gamma=this.m_gamma!=0?1/this.m_gamma:0;this.m_bias=l*d.dt*b*this.m_gamma;this.m_mass=h+this.m_gamma;this.m_mass=this.m_mass!=0?1/this.m_mass:0}if(d.warmStarting){this.m_impulse*=d.dtRatio;d=this.m_impulse*this.m_u.x;h=this.m_impulse*this.m_u.y;j.m_linearVelocity.x-= -j.m_invMass*d;j.m_linearVelocity.y-=j.m_invMass*h;j.m_angularVelocity-=j.m_invI*(q*h-n*d);o.m_linearVelocity.x+=o.m_invMass*d;o.m_linearVelocity.y+=o.m_invMass*h;o.m_angularVelocity+=o.m_invI*(a*h-c*d)}else this.m_impulse=0};U.prototype.SolveVelocityConstraints=function(){var d,h=this.m_bodyA,l=this.m_bodyB;d=h.m_xf.R;var j=this.m_localAnchor1.x-h.m_sweep.localCenter.x,o=this.m_localAnchor1.y-h.m_sweep.localCenter.y,q=d.col1.x*j+d.col2.x*o;o=d.col1.y*j+d.col2.y*o;j=q;d=l.m_xf.R;var n=this.m_localAnchor2.x- -l.m_sweep.localCenter.x,a=this.m_localAnchor2.y-l.m_sweep.localCenter.y;q=d.col1.x*n+d.col2.x*a;a=d.col1.y*n+d.col2.y*a;n=q;q=-this.m_mass*(this.m_u.x*(l.m_linearVelocity.x+-l.m_angularVelocity*a-(h.m_linearVelocity.x+-h.m_angularVelocity*o))+this.m_u.y*(l.m_linearVelocity.y+l.m_angularVelocity*n-(h.m_linearVelocity.y+h.m_angularVelocity*j))+this.m_bias+this.m_gamma*this.m_impulse);this.m_impulse+=q;d=q*this.m_u.x;q=q*this.m_u.y;h.m_linearVelocity.x-=h.m_invMass*d;h.m_linearVelocity.y-=h.m_invMass* -q;h.m_angularVelocity-=h.m_invI*(j*q-o*d);l.m_linearVelocity.x+=l.m_invMass*d;l.m_linearVelocity.y+=l.m_invMass*q;l.m_angularVelocity+=l.m_invI*(n*q-a*d)};U.prototype.SolvePositionConstraints=function(){var d;if(this.m_frequencyHz>0)return true;var h=this.m_bodyA,l=this.m_bodyB;d=h.m_xf.R;var j=this.m_localAnchor1.x-h.m_sweep.localCenter.x,o=this.m_localAnchor1.y-h.m_sweep.localCenter.y,q=d.col1.x*j+d.col2.x*o;o=d.col1.y*j+d.col2.y*o;j=q;d=l.m_xf.R;var n=this.m_localAnchor2.x-l.m_sweep.localCenter.x, -a=this.m_localAnchor2.y-l.m_sweep.localCenter.y;q=d.col1.x*n+d.col2.x*a;a=d.col1.y*n+d.col2.y*a;n=q;q=l.m_sweep.c.x+n-h.m_sweep.c.x-j;var c=l.m_sweep.c.y+a-h.m_sweep.c.y-o;d=Math.sqrt(q*q+c*c);q/=d;c/=d;d=d-this.m_length;d=y.Clamp(d,-F.b2_maxLinearCorrection,F.b2_maxLinearCorrection);var g=-this.m_mass*d;this.m_u.Set(q,c);q=g*this.m_u.x;c=g*this.m_u.y;h.m_sweep.c.x-=h.m_invMass*q;h.m_sweep.c.y-=h.m_invMass*c;h.m_sweep.a-=h.m_invI*(j*c-o*q);l.m_sweep.c.x+=l.m_invMass*q;l.m_sweep.c.y+=l.m_invMass*c; -l.m_sweep.a+=l.m_invI*(n*c-a*q);h.SynchronizeTransform();l.SynchronizeTransform();return y.Abs(d)0)this.m_angularMass=1/this.m_angularMass;if(d.warmStarting){this.m_linearImpulse.x*=d.dtRatio;this.m_linearImpulse.y*=d.dtRatio;this.m_angularImpulse*=d.dtRatio;d=this.m_linearImpulse;j.m_linearVelocity.x-=h*d.x; -j.m_linearVelocity.y-=h*d.y;j.m_angularVelocity-=g*(q*d.y-n*d.x+this.m_angularImpulse);o.m_linearVelocity.x+=l*d.x;o.m_linearVelocity.y+=l*d.y;o.m_angularVelocity+=b*(a*d.y-c*d.x+this.m_angularImpulse)}else{this.m_linearImpulse.SetZero();this.m_angularImpulse=0}};B.prototype.SolveVelocityConstraints=function(d){var h,l=0,j=this.m_bodyA,o=this.m_bodyB,q=j.m_linearVelocity,n=j.m_angularVelocity,a=o.m_linearVelocity,c=o.m_angularVelocity,g=j.m_invMass,b=o.m_invMass,e=j.m_invI,f=o.m_invI;h=j.m_xf.R;var m= -this.m_localAnchorA.x-j.m_sweep.localCenter.x,r=this.m_localAnchorA.y-j.m_sweep.localCenter.y;l=h.col1.x*m+h.col2.x*r;r=h.col1.y*m+h.col2.y*r;m=l;h=o.m_xf.R;var s=this.m_localAnchorB.x-o.m_sweep.localCenter.x,v=this.m_localAnchorB.y-o.m_sweep.localCenter.y;l=h.col1.x*s+h.col2.x*v;v=h.col1.y*s+h.col2.y*v;s=l;h=0;l=-this.m_angularMass*(c-n);var t=this.m_angularImpulse;h=d.dt*this.m_maxTorque;this.m_angularImpulse=y.Clamp(this.m_angularImpulse+l,-h,h);l=this.m_angularImpulse-t;n-=e*l;c+=f*l;h=y.MulMV(this.m_linearMass, -new w(-(a.x-c*v-q.x+n*r),-(a.y+c*s-q.y-n*m)));l=this.m_linearImpulse.Copy();this.m_linearImpulse.Add(h);h=d.dt*this.m_maxForce;if(this.m_linearImpulse.LengthSquared()>h*h){this.m_linearImpulse.Normalize();this.m_linearImpulse.Multiply(h)}h=y.SubtractVV(this.m_linearImpulse,l);q.x-=g*h.x;q.y-=g*h.y;n-=e*(m*h.y-r*h.x);a.x+=b*h.x;a.y+=b*h.y;c+=f*(s*h.y-v*h.x);j.m_angularVelocity=n;o.m_angularVelocity=c};B.prototype.SolvePositionConstraints=function(){return true};Box2D.inherit(Q,Box2D.Dynamics.Joints.b2JointDef); -Q.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;Q.b2FrictionJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new w;this.localAnchorB=new w};Q.prototype.b2FrictionJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_frictionJoint;this.maxTorque=this.maxForce=0};Q.prototype.Initialize=function(d,h,l){this.bodyA=d;this.bodyB=h;this.localAnchorA.SetV(this.bodyA.GetLocalPoint(l));this.localAnchorB.SetV(this.bodyB.GetLocalPoint(l))}; -Box2D.inherit(V,Box2D.Dynamics.Joints.b2Joint);V.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;V.b2GearJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_groundAnchor1=new w;this.m_groundAnchor2=new w;this.m_localAnchor1=new w;this.m_localAnchor2=new w;this.m_J=new L};V.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};V.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};V.prototype.GetReactionForce= -function(d){if(d===undefined)d=0;return new w(d*this.m_impulse*this.m_J.linearB.x,d*this.m_impulse*this.m_J.linearB.y)};V.prototype.GetReactionTorque=function(d){if(d===undefined)d=0;var h=this.m_bodyB.m_xf.R,l=this.m_localAnchor1.x-this.m_bodyB.m_sweep.localCenter.x,j=this.m_localAnchor1.y-this.m_bodyB.m_sweep.localCenter.y,o=h.col1.x*l+h.col2.x*j;j=h.col1.y*l+h.col2.y*j;l=o;return d*(this.m_impulse*this.m_J.angularB-l*this.m_impulse*this.m_J.linearB.y+j*this.m_impulse*this.m_J.linearB.x)};V.prototype.GetRatio= -function(){return this.m_ratio};V.prototype.SetRatio=function(d){if(d===undefined)d=0;this.m_ratio=d};V.prototype.b2GearJoint=function(d){this.__super.b2Joint.call(this,d);var h=parseInt(d.joint1.m_type),l=parseInt(d.joint2.m_type);this.m_prismatic2=this.m_revolute2=this.m_prismatic1=this.m_revolute1=null;var j=0,o=0;this.m_ground1=d.joint1.GetBodyA();this.m_bodyA=d.joint1.GetBodyB();if(h==I.e_revoluteJoint){this.m_revolute1=d.joint1 instanceof N?d.joint1:null;this.m_groundAnchor1.SetV(this.m_revolute1.m_localAnchor1); -this.m_localAnchor1.SetV(this.m_revolute1.m_localAnchor2);j=this.m_revolute1.GetJointAngle()}else{this.m_prismatic1=d.joint1 instanceof H?d.joint1:null;this.m_groundAnchor1.SetV(this.m_prismatic1.m_localAnchor1);this.m_localAnchor1.SetV(this.m_prismatic1.m_localAnchor2);j=this.m_prismatic1.GetJointTranslation()}this.m_ground2=d.joint2.GetBodyA();this.m_bodyB=d.joint2.GetBodyB();if(l==I.e_revoluteJoint){this.m_revolute2=d.joint2 instanceof N?d.joint2:null;this.m_groundAnchor2.SetV(this.m_revolute2.m_localAnchor1); -this.m_localAnchor2.SetV(this.m_revolute2.m_localAnchor2);o=this.m_revolute2.GetJointAngle()}else{this.m_prismatic2=d.joint2 instanceof H?d.joint2:null;this.m_groundAnchor2.SetV(this.m_prismatic2.m_localAnchor1);this.m_localAnchor2.SetV(this.m_prismatic2.m_localAnchor2);o=this.m_prismatic2.GetJointTranslation()}this.m_ratio=d.ratio;this.m_constant=j+this.m_ratio*o;this.m_impulse=0};V.prototype.InitVelocityConstraints=function(d){var h=this.m_ground1,l=this.m_ground2,j=this.m_bodyA,o=this.m_bodyB, -q=0,n=0,a=0,c=0,g=a=0,b=0;this.m_J.SetZero();if(this.m_revolute1){this.m_J.angularA=-1;b+=j.m_invI}else{h=h.m_xf.R;n=this.m_prismatic1.m_localXAxis1;q=h.col1.x*n.x+h.col2.x*n.y;n=h.col1.y*n.x+h.col2.y*n.y;h=j.m_xf.R;a=this.m_localAnchor1.x-j.m_sweep.localCenter.x;c=this.m_localAnchor1.y-j.m_sweep.localCenter.y;g=h.col1.x*a+h.col2.x*c;c=h.col1.y*a+h.col2.y*c;a=g;a=a*n-c*q;this.m_J.linearA.Set(-q,-n);this.m_J.angularA=-a;b+=j.m_invMass+j.m_invI*a*a}if(this.m_revolute2){this.m_J.angularB=-this.m_ratio; -b+=this.m_ratio*this.m_ratio*o.m_invI}else{h=l.m_xf.R;n=this.m_prismatic2.m_localXAxis1;q=h.col1.x*n.x+h.col2.x*n.y;n=h.col1.y*n.x+h.col2.y*n.y;h=o.m_xf.R;a=this.m_localAnchor2.x-o.m_sweep.localCenter.x;c=this.m_localAnchor2.y-o.m_sweep.localCenter.y;g=h.col1.x*a+h.col2.x*c;c=h.col1.y*a+h.col2.y*c;a=g;a=a*n-c*q;this.m_J.linearB.Set(-this.m_ratio*q,-this.m_ratio*n);this.m_J.angularB=-this.m_ratio*a;b+=this.m_ratio*this.m_ratio*(o.m_invMass+o.m_invI*a*a)}this.m_mass=b>0?1/b:0;if(d.warmStarting){j.m_linearVelocity.x+= -j.m_invMass*this.m_impulse*this.m_J.linearA.x;j.m_linearVelocity.y+=j.m_invMass*this.m_impulse*this.m_J.linearA.y;j.m_angularVelocity+=j.m_invI*this.m_impulse*this.m_J.angularA;o.m_linearVelocity.x+=o.m_invMass*this.m_impulse*this.m_J.linearB.x;o.m_linearVelocity.y+=o.m_invMass*this.m_impulse*this.m_J.linearB.y;o.m_angularVelocity+=o.m_invI*this.m_impulse*this.m_J.angularB}else this.m_impulse=0};V.prototype.SolveVelocityConstraints=function(){var d=this.m_bodyA,h=this.m_bodyB,l=-this.m_mass*this.m_J.Compute(d.m_linearVelocity, -d.m_angularVelocity,h.m_linearVelocity,h.m_angularVelocity);this.m_impulse+=l;d.m_linearVelocity.x+=d.m_invMass*l*this.m_J.linearA.x;d.m_linearVelocity.y+=d.m_invMass*l*this.m_J.linearA.y;d.m_angularVelocity+=d.m_invI*l*this.m_J.angularA;h.m_linearVelocity.x+=h.m_invMass*l*this.m_J.linearB.x;h.m_linearVelocity.y+=h.m_invMass*l*this.m_J.linearB.y;h.m_angularVelocity+=h.m_invI*l*this.m_J.angularB};V.prototype.SolvePositionConstraints=function(){var d=this.m_bodyA,h=this.m_bodyB,l=0,j=0;l=this.m_revolute1? -this.m_revolute1.GetJointAngle():this.m_prismatic1.GetJointTranslation();j=this.m_revolute2?this.m_revolute2.GetJointAngle():this.m_prismatic2.GetJointTranslation();l=-this.m_mass*(this.m_constant-(l+this.m_ratio*j));d.m_sweep.c.x+=d.m_invMass*l*this.m_J.linearA.x;d.m_sweep.c.y+=d.m_invMass*l*this.m_J.linearA.y;d.m_sweep.a+=d.m_invI*l*this.m_J.angularA;h.m_sweep.c.x+=h.m_invMass*l*this.m_J.linearB.x;h.m_sweep.c.y+=h.m_invMass*l*this.m_J.linearB.y;h.m_sweep.a+=h.m_invI*l*this.m_J.angularB;d.SynchronizeTransform(); -h.SynchronizeTransform();return 0Number.MIN_VALUE?1/this.m_motorMass:0;this.m_perp.SetV(y.MulMV(q.R,this.m_localYAxis1));this.m_s1=(j+n)*this.m_perp.y-(o+a)*this.m_perp.x;this.m_s2=c*this.m_perp.y- -g*this.m_perp.x;q=this.m_invMassA;n=this.m_invMassB;a=this.m_invIA;c=this.m_invIB;this.m_K.col1.x=q+n+a*this.m_s1*this.m_s1+c*this.m_s2*this.m_s2;this.m_K.col1.y=a*this.m_s1*this.m_a1+c*this.m_s2*this.m_a2;this.m_K.col2.x=this.m_K.col1.y;this.m_K.col2.y=q+n+a*this.m_a1*this.m_a1+c*this.m_a2*this.m_a2;if(this.m_enableLimit){j=this.m_axis.x*j+this.m_axis.y*o;if(y.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*F.b2_linearSlop)this.m_limitState=I.e_equalLimits;else if(j<=this.m_lowerTranslation){if(this.m_limitState!= -I.e_atLowerLimit){this.m_limitState=I.e_atLowerLimit;this.m_impulse.y=0}}else if(j>=this.m_upperTranslation){if(this.m_limitState!=I.e_atUpperLimit){this.m_limitState=I.e_atUpperLimit;this.m_impulse.y=0}}else{this.m_limitState=I.e_inactiveLimit;this.m_impulse.y=0}}else this.m_limitState=I.e_inactiveLimit;if(this.m_enableMotor==false)this.m_motorImpulse=0;if(d.warmStarting){this.m_impulse.x*=d.dtRatio;this.m_impulse.y*=d.dtRatio;this.m_motorImpulse*=d.dtRatio;d=this.m_impulse.x*this.m_perp.x+(this.m_motorImpulse+ -this.m_impulse.y)*this.m_axis.x;j=this.m_impulse.x*this.m_perp.y+(this.m_motorImpulse+this.m_impulse.y)*this.m_axis.y;o=this.m_impulse.x*this.m_s1+(this.m_motorImpulse+this.m_impulse.y)*this.m_a1;q=this.m_impulse.x*this.m_s2+(this.m_motorImpulse+this.m_impulse.y)*this.m_a2;h.m_linearVelocity.x-=this.m_invMassA*d;h.m_linearVelocity.y-=this.m_invMassA*j;h.m_angularVelocity-=this.m_invIA*o;l.m_linearVelocity.x+=this.m_invMassB*d;l.m_linearVelocity.y+=this.m_invMassB*j;l.m_angularVelocity+=this.m_invIB* -q}else{this.m_impulse.SetZero();this.m_motorImpulse=0}};k.prototype.SolveVelocityConstraints=function(d){var h=this.m_bodyA,l=this.m_bodyB,j=h.m_linearVelocity,o=h.m_angularVelocity,q=l.m_linearVelocity,n=l.m_angularVelocity,a=0,c=0,g=0,b=0;if(this.m_enableMotor&&this.m_limitState!=I.e_equalLimits){b=this.m_motorMass*(this.m_motorSpeed-(this.m_axis.x*(q.x-j.x)+this.m_axis.y*(q.y-j.y)+this.m_a2*n-this.m_a1*o));a=this.m_motorImpulse;c=d.dt*this.m_maxMotorForce;this.m_motorImpulse=y.Clamp(this.m_motorImpulse+ -b,-c,c);b=this.m_motorImpulse-a;a=b*this.m_axis.x;c=b*this.m_axis.y;g=b*this.m_a1;b=b*this.m_a2;j.x-=this.m_invMassA*a;j.y-=this.m_invMassA*c;o-=this.m_invIA*g;q.x+=this.m_invMassB*a;q.y+=this.m_invMassB*c;n+=this.m_invIB*b}c=this.m_perp.x*(q.x-j.x)+this.m_perp.y*(q.y-j.y)+this.m_s2*n-this.m_s1*o;if(this.m_enableLimit&&this.m_limitState!=I.e_inactiveLimit){g=this.m_axis.x*(q.x-j.x)+this.m_axis.y*(q.y-j.y)+this.m_a2*n-this.m_a1*o;a=this.m_impulse.Copy();d=this.m_K.Solve(new w,-c,-g);this.m_impulse.Add(d); -if(this.m_limitState==I.e_atLowerLimit)this.m_impulse.y=y.Max(this.m_impulse.y,0);else if(this.m_limitState==I.e_atUpperLimit)this.m_impulse.y=y.Min(this.m_impulse.y,0);c=-c-(this.m_impulse.y-a.y)*this.m_K.col2.x;g=0;g=this.m_K.col1.x!=0?c/this.m_K.col1.x+a.x:a.x;this.m_impulse.x=g;d.x=this.m_impulse.x-a.x;d.y=this.m_impulse.y-a.y;a=d.x*this.m_perp.x+d.y*this.m_axis.x;c=d.x*this.m_perp.y+d.y*this.m_axis.y;g=d.x*this.m_s1+d.y*this.m_a1;b=d.x*this.m_s2+d.y*this.m_a2}else{d=0;d=this.m_K.col1.x!=0?-c/ -this.m_K.col1.x:0;this.m_impulse.x+=d;a=d*this.m_perp.x;c=d*this.m_perp.y;g=d*this.m_s1;b=d*this.m_s2}j.x-=this.m_invMassA*a;j.y-=this.m_invMassA*c;o-=this.m_invIA*g;q.x+=this.m_invMassB*a;q.y+=this.m_invMassB*c;n+=this.m_invIB*b;h.m_linearVelocity.SetV(j);h.m_angularVelocity=o;l.m_linearVelocity.SetV(q);l.m_angularVelocity=n};k.prototype.SolvePositionConstraints=function(){var d=this.m_bodyA,h=this.m_bodyB,l=d.m_sweep.c,j=d.m_sweep.a,o=h.m_sweep.c,q=h.m_sweep.a,n,a=0,c=0,g=0,b=0,e=n=0,f=0;c=false; -var m=0,r=G.FromAngle(j);g=G.FromAngle(q);n=r;f=this.m_localAnchor1.x-this.m_localCenterA.x;var s=this.m_localAnchor1.y-this.m_localCenterA.y;a=n.col1.x*f+n.col2.x*s;s=n.col1.y*f+n.col2.y*s;f=a;n=g;g=this.m_localAnchor2.x-this.m_localCenterB.x;b=this.m_localAnchor2.y-this.m_localCenterB.y;a=n.col1.x*g+n.col2.x*b;b=n.col1.y*g+n.col2.y*b;g=a;n=o.x+g-l.x-f;a=o.y+b-l.y-s;if(this.m_enableLimit){this.m_axis=y.MulMV(r,this.m_localXAxis1);this.m_a1=(n+f)*this.m_axis.y-(a+s)*this.m_axis.x;this.m_a2=g*this.m_axis.y- -b*this.m_axis.x;var v=this.m_axis.x*n+this.m_axis.y*a;if(y.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*F.b2_linearSlop){m=y.Clamp(v,-F.b2_maxLinearCorrection,F.b2_maxLinearCorrection);e=y.Abs(v);c=true}else if(v<=this.m_lowerTranslation){m=y.Clamp(v-this.m_lowerTranslation+F.b2_linearSlop,-F.b2_maxLinearCorrection,0);e=this.m_lowerTranslation-v;c=true}else if(v>=this.m_upperTranslation){m=y.Clamp(v-this.m_upperTranslation+F.b2_linearSlop,0,F.b2_maxLinearCorrection);e=v-this.m_upperTranslation; -c=true}}this.m_perp=y.MulMV(r,this.m_localYAxis1);this.m_s1=(n+f)*this.m_perp.y-(a+s)*this.m_perp.x;this.m_s2=g*this.m_perp.y-b*this.m_perp.x;r=new w;s=this.m_perp.x*n+this.m_perp.y*a;e=y.Max(e,y.Abs(s));f=0;if(c){c=this.m_invMassA;g=this.m_invMassB;b=this.m_invIA;n=this.m_invIB;this.m_K.col1.x=c+g+b*this.m_s1*this.m_s1+n*this.m_s2*this.m_s2;this.m_K.col1.y=b*this.m_s1*this.m_a1+n*this.m_s2*this.m_a2;this.m_K.col2.x=this.m_K.col1.y;this.m_K.col2.y=c+g+b*this.m_a1*this.m_a1+n*this.m_a2*this.m_a2;this.m_K.Solve(r, --s,-m)}else{c=this.m_invMassA;g=this.m_invMassB;b=this.m_invIA;n=this.m_invIB;m=c+g+b*this.m_s1*this.m_s1+n*this.m_s2*this.m_s2;c=0;c=m!=0?-s/m:0;r.x=c;r.y=0}m=r.x*this.m_perp.x+r.y*this.m_axis.x;c=r.x*this.m_perp.y+r.y*this.m_axis.y;s=r.x*this.m_s1+r.y*this.m_a1;r=r.x*this.m_s2+r.y*this.m_a2;l.x-=this.m_invMassA*m;l.y-=this.m_invMassA*c;j-=this.m_invIA*s;o.x+=this.m_invMassB*m;o.y+=this.m_invMassB*c;q+=this.m_invIB*r;d.m_sweep.a=j;h.m_sweep.a=q;d.SynchronizeTransform();h.SynchronizeTransform();return e<= -F.b2_linearSlop&&f<=F.b2_angularSlop};Box2D.inherit(z,Box2D.Dynamics.Joints.b2JointDef);z.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;z.b2LineJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new w;this.localAnchorB=new w;this.localAxisA=new w};z.prototype.b2LineJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_lineJoint;this.localAxisA.Set(1,0);this.enableLimit=false;this.upperTranslation=this.lowerTranslation= -0;this.enableMotor=false;this.motorSpeed=this.maxMotorForce=0};z.prototype.Initialize=function(d,h,l,j){this.bodyA=d;this.bodyB=h;this.localAnchorA=this.bodyA.GetLocalPoint(l);this.localAnchorB=this.bodyB.GetLocalPoint(l);this.localAxisA=this.bodyA.GetLocalVector(j)};Box2D.inherit(u,Box2D.Dynamics.Joints.b2Joint);u.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;u.b2MouseJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.K=new G;this.K1=new G;this.K2=new G; -this.m_localAnchor=new w;this.m_target=new w;this.m_impulse=new w;this.m_mass=new G;this.m_C=new w};u.prototype.GetAnchorA=function(){return this.m_target};u.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor)};u.prototype.GetReactionForce=function(d){if(d===undefined)d=0;return new w(d*this.m_impulse.x,d*this.m_impulse.y)};u.prototype.GetReactionTorque=function(){return 0};u.prototype.GetTarget=function(){return this.m_target};u.prototype.SetTarget=function(d){this.m_bodyB.IsAwake()== -false&&this.m_bodyB.SetAwake(true);this.m_target=d};u.prototype.GetMaxForce=function(){return this.m_maxForce};u.prototype.SetMaxForce=function(d){if(d===undefined)d=0;this.m_maxForce=d};u.prototype.GetFrequency=function(){return this.m_frequencyHz};u.prototype.SetFrequency=function(d){if(d===undefined)d=0;this.m_frequencyHz=d};u.prototype.GetDampingRatio=function(){return this.m_dampingRatio};u.prototype.SetDampingRatio=function(d){if(d===undefined)d=0;this.m_dampingRatio=d};u.prototype.b2MouseJoint= -function(d){this.__super.b2Joint.call(this,d);this.m_target.SetV(d.target);var h=this.m_target.x-this.m_bodyB.m_xf.position.x,l=this.m_target.y-this.m_bodyB.m_xf.position.y,j=this.m_bodyB.m_xf.R;this.m_localAnchor.x=h*j.col1.x+l*j.col1.y;this.m_localAnchor.y=h*j.col2.x+l*j.col2.y;this.m_maxForce=d.maxForce;this.m_impulse.SetZero();this.m_frequencyHz=d.frequencyHz;this.m_dampingRatio=d.dampingRatio;this.m_gamma=this.m_beta=0};u.prototype.InitVelocityConstraints=function(d){var h=this.m_bodyB,l=h.GetMass(), -j=2*Math.PI*this.m_frequencyHz,o=l*j*j;this.m_gamma=d.dt*(2*l*this.m_dampingRatio*j+d.dt*o);this.m_gamma=this.m_gamma!=0?1/this.m_gamma:0;this.m_beta=d.dt*o*this.m_gamma;o=h.m_xf.R;l=this.m_localAnchor.x-h.m_sweep.localCenter.x;j=this.m_localAnchor.y-h.m_sweep.localCenter.y;var q=o.col1.x*l+o.col2.x*j;j=o.col1.y*l+o.col2.y*j;l=q;o=h.m_invMass;q=h.m_invI;this.K1.col1.x=o;this.K1.col2.x=0;this.K1.col1.y=0;this.K1.col2.y=o;this.K2.col1.x=q*j*j;this.K2.col2.x=-q*l*j;this.K2.col1.y=-q*l*j;this.K2.col2.y= -q*l*l;this.K.SetM(this.K1);this.K.AddM(this.K2);this.K.col1.x+=this.m_gamma;this.K.col2.y+=this.m_gamma;this.K.GetInverse(this.m_mass);this.m_C.x=h.m_sweep.c.x+l-this.m_target.x;this.m_C.y=h.m_sweep.c.y+j-this.m_target.y;h.m_angularVelocity*=0.98;this.m_impulse.x*=d.dtRatio;this.m_impulse.y*=d.dtRatio;h.m_linearVelocity.x+=o*this.m_impulse.x;h.m_linearVelocity.y+=o*this.m_impulse.y;h.m_angularVelocity+=q*(l*this.m_impulse.y-j*this.m_impulse.x)};u.prototype.SolveVelocityConstraints=function(d){var h= -this.m_bodyB,l,j=0,o=0;l=h.m_xf.R;var q=this.m_localAnchor.x-h.m_sweep.localCenter.x,n=this.m_localAnchor.y-h.m_sweep.localCenter.y;j=l.col1.x*q+l.col2.x*n;n=l.col1.y*q+l.col2.y*n;q=j;j=h.m_linearVelocity.x+-h.m_angularVelocity*n;var a=h.m_linearVelocity.y+h.m_angularVelocity*q;l=this.m_mass;j=j+this.m_beta*this.m_C.x+this.m_gamma*this.m_impulse.x;o=a+this.m_beta*this.m_C.y+this.m_gamma*this.m_impulse.y;a=-(l.col1.x*j+l.col2.x*o);o=-(l.col1.y*j+l.col2.y*o);l=this.m_impulse.x;j=this.m_impulse.y;this.m_impulse.x+= -a;this.m_impulse.y+=o;d=d.dt*this.m_maxForce;this.m_impulse.LengthSquared()>d*d&&this.m_impulse.Multiply(d/this.m_impulse.Length());a=this.m_impulse.x-l;o=this.m_impulse.y-j;h.m_linearVelocity.x+=h.m_invMass*a;h.m_linearVelocity.y+=h.m_invMass*o;h.m_angularVelocity+=h.m_invI*(q*o-n*a)};u.prototype.SolvePositionConstraints=function(){return true};Box2D.inherit(D,Box2D.Dynamics.Joints.b2JointDef);D.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;D.b2MouseJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this, -arguments);this.target=new w};D.prototype.b2MouseJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_mouseJoint;this.maxForce=0;this.frequencyHz=5;this.dampingRatio=0.7};Box2D.inherit(H,Box2D.Dynamics.Joints.b2Joint);H.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;H.b2PrismaticJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchor1=new w;this.m_localAnchor2=new w;this.m_localXAxis1=new w;this.m_localYAxis1=new w;this.m_axis=new w; -this.m_perp=new w;this.m_K=new K;this.m_impulse=new A};H.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};H.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};H.prototype.GetReactionForce=function(d){if(d===undefined)d=0;return new w(d*(this.m_impulse.x*this.m_perp.x+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.x),d*(this.m_impulse.x*this.m_perp.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.y))};H.prototype.GetReactionTorque= -function(d){if(d===undefined)d=0;return d*this.m_impulse.y};H.prototype.GetJointTranslation=function(){var d=this.m_bodyA,h=this.m_bodyB,l=d.GetWorldPoint(this.m_localAnchor1),j=h.GetWorldPoint(this.m_localAnchor2);h=j.x-l.x;l=j.y-l.y;d=d.GetWorldVector(this.m_localXAxis1);return d.x*h+d.y*l};H.prototype.GetJointSpeed=function(){var d=this.m_bodyA,h=this.m_bodyB,l;l=d.m_xf.R;var j=this.m_localAnchor1.x-d.m_sweep.localCenter.x,o=this.m_localAnchor1.y-d.m_sweep.localCenter.y,q=l.col1.x*j+l.col2.x*o; -o=l.col1.y*j+l.col2.y*o;j=q;l=h.m_xf.R;var n=this.m_localAnchor2.x-h.m_sweep.localCenter.x,a=this.m_localAnchor2.y-h.m_sweep.localCenter.y;q=l.col1.x*n+l.col2.x*a;a=l.col1.y*n+l.col2.y*a;n=q;l=h.m_sweep.c.x+n-(d.m_sweep.c.x+j);q=h.m_sweep.c.y+a-(d.m_sweep.c.y+o);var c=d.GetWorldVector(this.m_localXAxis1),g=d.m_linearVelocity,b=h.m_linearVelocity;d=d.m_angularVelocity;h=h.m_angularVelocity;return l*-d*c.y+q*d*c.x+(c.x*(b.x+-h*a-g.x- -d*o)+c.y*(b.y+h*n-g.y-d*j))};H.prototype.IsLimitEnabled=function(){return this.m_enableLimit}; -H.prototype.EnableLimit=function(d){this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_enableLimit=d};H.prototype.GetLowerLimit=function(){return this.m_lowerTranslation};H.prototype.GetUpperLimit=function(){return this.m_upperTranslation};H.prototype.SetLimits=function(d,h){if(d===undefined)d=0;if(h===undefined)h=0;this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_lowerTranslation=d;this.m_upperTranslation=h};H.prototype.IsMotorEnabled=function(){return this.m_enableMotor}; -H.prototype.EnableMotor=function(d){this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_enableMotor=d};H.prototype.SetMotorSpeed=function(d){if(d===undefined)d=0;this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_motorSpeed=d};H.prototype.GetMotorSpeed=function(){return this.m_motorSpeed};H.prototype.SetMaxMotorForce=function(d){if(d===undefined)d=0;this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_maxMotorForce=d};H.prototype.GetMotorForce=function(){return this.m_motorImpulse}; -H.prototype.b2PrismaticJoint=function(d){this.__super.b2Joint.call(this,d);this.m_localAnchor1.SetV(d.localAnchorA);this.m_localAnchor2.SetV(d.localAnchorB);this.m_localXAxis1.SetV(d.localAxisA);this.m_localYAxis1.x=-this.m_localXAxis1.y;this.m_localYAxis1.y=this.m_localXAxis1.x;this.m_refAngle=d.referenceAngle;this.m_impulse.SetZero();this.m_motorImpulse=this.m_motorMass=0;this.m_lowerTranslation=d.lowerTranslation;this.m_upperTranslation=d.upperTranslation;this.m_maxMotorForce=d.maxMotorForce;this.m_motorSpeed= -d.motorSpeed;this.m_enableLimit=d.enableLimit;this.m_enableMotor=d.enableMotor;this.m_limitState=I.e_inactiveLimit;this.m_axis.SetZero();this.m_perp.SetZero()};H.prototype.InitVelocityConstraints=function(d){var h=this.m_bodyA,l=this.m_bodyB,j,o=0;this.m_localCenterA.SetV(h.GetLocalCenter());this.m_localCenterB.SetV(l.GetLocalCenter());var q=h.GetTransform();l.GetTransform();j=h.m_xf.R;var n=this.m_localAnchor1.x-this.m_localCenterA.x,a=this.m_localAnchor1.y-this.m_localCenterA.y;o=j.col1.x*n+j.col2.x* -a;a=j.col1.y*n+j.col2.y*a;n=o;j=l.m_xf.R;var c=this.m_localAnchor2.x-this.m_localCenterB.x,g=this.m_localAnchor2.y-this.m_localCenterB.y;o=j.col1.x*c+j.col2.x*g;g=j.col1.y*c+j.col2.y*g;c=o;j=l.m_sweep.c.x+c-h.m_sweep.c.x-n;o=l.m_sweep.c.y+g-h.m_sweep.c.y-a;this.m_invMassA=h.m_invMass;this.m_invMassB=l.m_invMass;this.m_invIA=h.m_invI;this.m_invIB=l.m_invI;this.m_axis.SetV(y.MulMV(q.R,this.m_localXAxis1));this.m_a1=(j+n)*this.m_axis.y-(o+a)*this.m_axis.x;this.m_a2=c*this.m_axis.y-g*this.m_axis.x;this.m_motorMass= -this.m_invMassA+this.m_invMassB+this.m_invIA*this.m_a1*this.m_a1+this.m_invIB*this.m_a2*this.m_a2;if(this.m_motorMass>Number.MIN_VALUE)this.m_motorMass=1/this.m_motorMass;this.m_perp.SetV(y.MulMV(q.R,this.m_localYAxis1));this.m_s1=(j+n)*this.m_perp.y-(o+a)*this.m_perp.x;this.m_s2=c*this.m_perp.y-g*this.m_perp.x;q=this.m_invMassA;n=this.m_invMassB;a=this.m_invIA;c=this.m_invIB;this.m_K.col1.x=q+n+a*this.m_s1*this.m_s1+c*this.m_s2*this.m_s2;this.m_K.col1.y=a*this.m_s1+c*this.m_s2;this.m_K.col1.z=a* -this.m_s1*this.m_a1+c*this.m_s2*this.m_a2;this.m_K.col2.x=this.m_K.col1.y;this.m_K.col2.y=a+c;this.m_K.col2.z=a*this.m_a1+c*this.m_a2;this.m_K.col3.x=this.m_K.col1.z;this.m_K.col3.y=this.m_K.col2.z;this.m_K.col3.z=q+n+a*this.m_a1*this.m_a1+c*this.m_a2*this.m_a2;if(this.m_enableLimit){j=this.m_axis.x*j+this.m_axis.y*o;if(y.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*F.b2_linearSlop)this.m_limitState=I.e_equalLimits;else if(j<=this.m_lowerTranslation){if(this.m_limitState!=I.e_atLowerLimit){this.m_limitState= -I.e_atLowerLimit;this.m_impulse.z=0}}else if(j>=this.m_upperTranslation){if(this.m_limitState!=I.e_atUpperLimit){this.m_limitState=I.e_atUpperLimit;this.m_impulse.z=0}}else{this.m_limitState=I.e_inactiveLimit;this.m_impulse.z=0}}else this.m_limitState=I.e_inactiveLimit;if(this.m_enableMotor==false)this.m_motorImpulse=0;if(d.warmStarting){this.m_impulse.x*=d.dtRatio;this.m_impulse.y*=d.dtRatio;this.m_motorImpulse*=d.dtRatio;d=this.m_impulse.x*this.m_perp.x+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.x; -j=this.m_impulse.x*this.m_perp.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.y;o=this.m_impulse.x*this.m_s1+this.m_impulse.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_a1;q=this.m_impulse.x*this.m_s2+this.m_impulse.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_a2;h.m_linearVelocity.x-=this.m_invMassA*d;h.m_linearVelocity.y-=this.m_invMassA*j;h.m_angularVelocity-=this.m_invIA*o;l.m_linearVelocity.x+=this.m_invMassB*d;l.m_linearVelocity.y+=this.m_invMassB*j;l.m_angularVelocity+=this.m_invIB* -q}else{this.m_impulse.SetZero();this.m_motorImpulse=0}};H.prototype.SolveVelocityConstraints=function(d){var h=this.m_bodyA,l=this.m_bodyB,j=h.m_linearVelocity,o=h.m_angularVelocity,q=l.m_linearVelocity,n=l.m_angularVelocity,a=0,c=0,g=0,b=0;if(this.m_enableMotor&&this.m_limitState!=I.e_equalLimits){b=this.m_motorMass*(this.m_motorSpeed-(this.m_axis.x*(q.x-j.x)+this.m_axis.y*(q.y-j.y)+this.m_a2*n-this.m_a1*o));a=this.m_motorImpulse;d=d.dt*this.m_maxMotorForce;this.m_motorImpulse=y.Clamp(this.m_motorImpulse+ -b,-d,d);b=this.m_motorImpulse-a;a=b*this.m_axis.x;c=b*this.m_axis.y;g=b*this.m_a1;b=b*this.m_a2;j.x-=this.m_invMassA*a;j.y-=this.m_invMassA*c;o-=this.m_invIA*g;q.x+=this.m_invMassB*a;q.y+=this.m_invMassB*c;n+=this.m_invIB*b}g=this.m_perp.x*(q.x-j.x)+this.m_perp.y*(q.y-j.y)+this.m_s2*n-this.m_s1*o;c=n-o;if(this.m_enableLimit&&this.m_limitState!=I.e_inactiveLimit){d=this.m_axis.x*(q.x-j.x)+this.m_axis.y*(q.y-j.y)+this.m_a2*n-this.m_a1*o;a=this.m_impulse.Copy();d=this.m_K.Solve33(new A,-g,-c,-d);this.m_impulse.Add(d); -if(this.m_limitState==I.e_atLowerLimit)this.m_impulse.z=y.Max(this.m_impulse.z,0);else if(this.m_limitState==I.e_atUpperLimit)this.m_impulse.z=y.Min(this.m_impulse.z,0);g=-g-(this.m_impulse.z-a.z)*this.m_K.col3.x;c=-c-(this.m_impulse.z-a.z)*this.m_K.col3.y;c=this.m_K.Solve22(new w,g,c);c.x+=a.x;c.y+=a.y;this.m_impulse.x=c.x;this.m_impulse.y=c.y;d.x=this.m_impulse.x-a.x;d.y=this.m_impulse.y-a.y;d.z=this.m_impulse.z-a.z;a=d.x*this.m_perp.x+d.z*this.m_axis.x;c=d.x*this.m_perp.y+d.z*this.m_axis.y;g=d.x* -this.m_s1+d.y+d.z*this.m_a1;b=d.x*this.m_s2+d.y+d.z*this.m_a2}else{d=this.m_K.Solve22(new w,-g,-c);this.m_impulse.x+=d.x;this.m_impulse.y+=d.y;a=d.x*this.m_perp.x;c=d.x*this.m_perp.y;g=d.x*this.m_s1+d.y;b=d.x*this.m_s2+d.y}j.x-=this.m_invMassA*a;j.y-=this.m_invMassA*c;o-=this.m_invIA*g;q.x+=this.m_invMassB*a;q.y+=this.m_invMassB*c;n+=this.m_invIB*b;h.m_linearVelocity.SetV(j);h.m_angularVelocity=o;l.m_linearVelocity.SetV(q);l.m_angularVelocity=n};H.prototype.SolvePositionConstraints=function(){var d= -this.m_bodyA,h=this.m_bodyB,l=d.m_sweep.c,j=d.m_sweep.a,o=h.m_sweep.c,q=h.m_sweep.a,n,a=0,c=0,g=0,b=a=n=0,e=0;c=false;var f=0,m=G.FromAngle(j),r=G.FromAngle(q);n=m;e=this.m_localAnchor1.x-this.m_localCenterA.x;var s=this.m_localAnchor1.y-this.m_localCenterA.y;a=n.col1.x*e+n.col2.x*s;s=n.col1.y*e+n.col2.y*s;e=a;n=r;r=this.m_localAnchor2.x-this.m_localCenterB.x;g=this.m_localAnchor2.y-this.m_localCenterB.y;a=n.col1.x*r+n.col2.x*g;g=n.col1.y*r+n.col2.y*g;r=a;n=o.x+r-l.x-e;a=o.y+g-l.y-s;if(this.m_enableLimit){this.m_axis= -y.MulMV(m,this.m_localXAxis1);this.m_a1=(n+e)*this.m_axis.y-(a+s)*this.m_axis.x;this.m_a2=r*this.m_axis.y-g*this.m_axis.x;var v=this.m_axis.x*n+this.m_axis.y*a;if(y.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*F.b2_linearSlop){f=y.Clamp(v,-F.b2_maxLinearCorrection,F.b2_maxLinearCorrection);b=y.Abs(v);c=true}else if(v<=this.m_lowerTranslation){f=y.Clamp(v-this.m_lowerTranslation+F.b2_linearSlop,-F.b2_maxLinearCorrection,0);b=this.m_lowerTranslation-v;c=true}else if(v>=this.m_upperTranslation){f= -y.Clamp(v-this.m_upperTranslation+F.b2_linearSlop,0,F.b2_maxLinearCorrection);b=v-this.m_upperTranslation;c=true}}this.m_perp=y.MulMV(m,this.m_localYAxis1);this.m_s1=(n+e)*this.m_perp.y-(a+s)*this.m_perp.x;this.m_s2=r*this.m_perp.y-g*this.m_perp.x;m=new A;s=this.m_perp.x*n+this.m_perp.y*a;r=q-j-this.m_refAngle;b=y.Max(b,y.Abs(s));e=y.Abs(r);if(c){c=this.m_invMassA;g=this.m_invMassB;n=this.m_invIA;a=this.m_invIB;this.m_K.col1.x=c+g+n*this.m_s1*this.m_s1+a*this.m_s2*this.m_s2;this.m_K.col1.y=n*this.m_s1+ -a*this.m_s2;this.m_K.col1.z=n*this.m_s1*this.m_a1+a*this.m_s2*this.m_a2;this.m_K.col2.x=this.m_K.col1.y;this.m_K.col2.y=n+a;this.m_K.col2.z=n*this.m_a1+a*this.m_a2;this.m_K.col3.x=this.m_K.col1.z;this.m_K.col3.y=this.m_K.col2.z;this.m_K.col3.z=c+g+n*this.m_a1*this.m_a1+a*this.m_a2*this.m_a2;this.m_K.Solve33(m,-s,-r,-f)}else{c=this.m_invMassA;g=this.m_invMassB;n=this.m_invIA;a=this.m_invIB;f=n*this.m_s1+a*this.m_s2;v=n+a;this.m_K.col1.Set(c+g+n*this.m_s1*this.m_s1+a*this.m_s2*this.m_s2,f,0);this.m_K.col2.Set(f, -v,0);f=this.m_K.Solve22(new w,-s,-r);m.x=f.x;m.y=f.y;m.z=0}f=m.x*this.m_perp.x+m.z*this.m_axis.x;c=m.x*this.m_perp.y+m.z*this.m_axis.y;s=m.x*this.m_s1+m.y+m.z*this.m_a1;m=m.x*this.m_s2+m.y+m.z*this.m_a2;l.x-=this.m_invMassA*f;l.y-=this.m_invMassA*c;j-=this.m_invIA*s;o.x+=this.m_invMassB*f;o.y+=this.m_invMassB*c;q+=this.m_invIB*m;d.m_sweep.a=j;h.m_sweep.a=q;d.SynchronizeTransform();h.SynchronizeTransform();return b<=F.b2_linearSlop&&e<=F.b2_angularSlop};Box2D.inherit(O,Box2D.Dynamics.Joints.b2JointDef); -O.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;O.b2PrismaticJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new w;this.localAnchorB=new w;this.localAxisA=new w};O.prototype.b2PrismaticJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_prismaticJoint;this.localAxisA.Set(1,0);this.referenceAngle=0;this.enableLimit=false;this.upperTranslation=this.lowerTranslation=0;this.enableMotor=false;this.motorSpeed=this.maxMotorForce= -0};O.prototype.Initialize=function(d,h,l,j){this.bodyA=d;this.bodyB=h;this.localAnchorA=this.bodyA.GetLocalPoint(l);this.localAnchorB=this.bodyB.GetLocalPoint(l);this.localAxisA=this.bodyA.GetLocalVector(j);this.referenceAngle=this.bodyB.GetAngle()-this.bodyA.GetAngle()};Box2D.inherit(E,Box2D.Dynamics.Joints.b2Joint);E.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;E.b2PulleyJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_groundAnchor1=new w;this.m_groundAnchor2= -new w;this.m_localAnchor1=new w;this.m_localAnchor2=new w;this.m_u1=new w;this.m_u2=new w};E.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};E.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};E.prototype.GetReactionForce=function(d){if(d===undefined)d=0;return new w(d*this.m_impulse*this.m_u2.x,d*this.m_impulse*this.m_u2.y)};E.prototype.GetReactionTorque=function(){return 0};E.prototype.GetGroundAnchorA=function(){var d= -this.m_ground.m_xf.position.Copy();d.Add(this.m_groundAnchor1);return d};E.prototype.GetGroundAnchorB=function(){var d=this.m_ground.m_xf.position.Copy();d.Add(this.m_groundAnchor2);return d};E.prototype.GetLength1=function(){var d=this.m_bodyA.GetWorldPoint(this.m_localAnchor1),h=d.x-(this.m_ground.m_xf.position.x+this.m_groundAnchor1.x);d=d.y-(this.m_ground.m_xf.position.y+this.m_groundAnchor1.y);return Math.sqrt(h*h+d*d)};E.prototype.GetLength2=function(){var d=this.m_bodyB.GetWorldPoint(this.m_localAnchor2), -h=d.x-(this.m_ground.m_xf.position.x+this.m_groundAnchor2.x);d=d.y-(this.m_ground.m_xf.position.y+this.m_groundAnchor2.y);return Math.sqrt(h*h+d*d)};E.prototype.GetRatio=function(){return this.m_ratio};E.prototype.b2PulleyJoint=function(d){this.__super.b2Joint.call(this,d);this.m_ground=this.m_bodyA.m_world.m_groundBody;this.m_groundAnchor1.x=d.groundAnchorA.x-this.m_ground.m_xf.position.x;this.m_groundAnchor1.y=d.groundAnchorA.y-this.m_ground.m_xf.position.y;this.m_groundAnchor2.x=d.groundAnchorB.x- -this.m_ground.m_xf.position.x;this.m_groundAnchor2.y=d.groundAnchorB.y-this.m_ground.m_xf.position.y;this.m_localAnchor1.SetV(d.localAnchorA);this.m_localAnchor2.SetV(d.localAnchorB);this.m_ratio=d.ratio;this.m_constant=d.lengthA+this.m_ratio*d.lengthB;this.m_maxLength1=y.Min(d.maxLengthA,this.m_constant-this.m_ratio*E.b2_minPulleyLength);this.m_maxLength2=y.Min(d.maxLengthB,(this.m_constant-E.b2_minPulleyLength)/this.m_ratio);this.m_limitImpulse2=this.m_limitImpulse1=this.m_impulse=0};E.prototype.InitVelocityConstraints= -function(d){var h=this.m_bodyA,l=this.m_bodyB,j;j=h.m_xf.R;var o=this.m_localAnchor1.x-h.m_sweep.localCenter.x,q=this.m_localAnchor1.y-h.m_sweep.localCenter.y,n=j.col1.x*o+j.col2.x*q;q=j.col1.y*o+j.col2.y*q;o=n;j=l.m_xf.R;var a=this.m_localAnchor2.x-l.m_sweep.localCenter.x,c=this.m_localAnchor2.y-l.m_sweep.localCenter.y;n=j.col1.x*a+j.col2.x*c;c=j.col1.y*a+j.col2.y*c;a=n;j=l.m_sweep.c.x+a;n=l.m_sweep.c.y+c;var g=this.m_ground.m_xf.position.x+this.m_groundAnchor2.x,b=this.m_ground.m_xf.position.y+ -this.m_groundAnchor2.y;this.m_u1.Set(h.m_sweep.c.x+o-(this.m_ground.m_xf.position.x+this.m_groundAnchor1.x),h.m_sweep.c.y+q-(this.m_ground.m_xf.position.y+this.m_groundAnchor1.y));this.m_u2.Set(j-g,n-b);j=this.m_u1.Length();n=this.m_u2.Length();j>F.b2_linearSlop?this.m_u1.Multiply(1/j):this.m_u1.SetZero();n>F.b2_linearSlop?this.m_u2.Multiply(1/n):this.m_u2.SetZero();if(this.m_constant-j-this.m_ratio*n>0){this.m_state=I.e_inactiveLimit;this.m_impulse=0}else this.m_state=I.e_atUpperLimit;if(jF.b2_linearSlop?this.m_u1.Multiply(1/ -l):this.m_u1.SetZero();e>F.b2_linearSlop?this.m_u2.Multiply(1/e):this.m_u2.SetZero();l=this.m_constant-l-this.m_ratio*e;r=y.Max(r,-l);l=y.Clamp(l+F.b2_linearSlop,-F.b2_maxLinearCorrection,0);m=-this.m_pulleyMass*l;l=-m*this.m_u1.x;e=-m*this.m_u1.y;f=-this.m_ratio*m*this.m_u2.x;m=-this.m_ratio*m*this.m_u2.y;d.m_sweep.c.x+=d.m_invMass*l;d.m_sweep.c.y+=d.m_invMass*e;d.m_sweep.a+=d.m_invI*(a*e-c*l);h.m_sweep.c.x+=h.m_invMass*f;h.m_sweep.c.y+=h.m_invMass*m;h.m_sweep.a+=h.m_invI*(g*m-b*f);d.SynchronizeTransform(); -h.SynchronizeTransform()}if(this.m_limitState1==I.e_atUpperLimit){l=d.m_xf.R;a=this.m_localAnchor1.x-d.m_sweep.localCenter.x;c=this.m_localAnchor1.y-d.m_sweep.localCenter.y;e=l.col1.x*a+l.col2.x*c;c=l.col1.y*a+l.col2.y*c;a=e;l=d.m_sweep.c.x+a;e=d.m_sweep.c.y+c;this.m_u1.Set(l-j,e-o);l=this.m_u1.Length();if(l>F.b2_linearSlop){this.m_u1.x*=1/l;this.m_u1.y*=1/l}else this.m_u1.SetZero();l=this.m_maxLength1-l;r=y.Max(r,-l);l=y.Clamp(l+F.b2_linearSlop,-F.b2_maxLinearCorrection,0);m=-this.m_limitMass1*l; -l=-m*this.m_u1.x;e=-m*this.m_u1.y;d.m_sweep.c.x+=d.m_invMass*l;d.m_sweep.c.y+=d.m_invMass*e;d.m_sweep.a+=d.m_invI*(a*e-c*l);d.SynchronizeTransform()}if(this.m_limitState2==I.e_atUpperLimit){l=h.m_xf.R;g=this.m_localAnchor2.x-h.m_sweep.localCenter.x;b=this.m_localAnchor2.y-h.m_sweep.localCenter.y;e=l.col1.x*g+l.col2.x*b;b=l.col1.y*g+l.col2.y*b;g=e;f=h.m_sweep.c.x+g;m=h.m_sweep.c.y+b;this.m_u2.Set(f-q,m-n);e=this.m_u2.Length();if(e>F.b2_linearSlop){this.m_u2.x*=1/e;this.m_u2.y*=1/e}else this.m_u2.SetZero(); -l=this.m_maxLength2-e;r=y.Max(r,-l);l=y.Clamp(l+F.b2_linearSlop,-F.b2_maxLinearCorrection,0);m=-this.m_limitMass2*l;f=-m*this.m_u2.x;m=-m*this.m_u2.y;h.m_sweep.c.x+=h.m_invMass*f;h.m_sweep.c.y+=h.m_invMass*m;h.m_sweep.a+=h.m_invI*(g*m-b*f);h.SynchronizeTransform()}return r=this.m_upperAngle){if(this.m_limitState!=I.e_atUpperLimit)this.m_impulse.z=0;this.m_limitState= -I.e_atUpperLimit}else{this.m_limitState=I.e_inactiveLimit;this.m_impulse.z=0}}else this.m_limitState=I.e_inactiveLimit;if(d.warmStarting){this.m_impulse.x*=d.dtRatio;this.m_impulse.y*=d.dtRatio;this.m_motorImpulse*=d.dtRatio;d=this.m_impulse.x;e=this.m_impulse.y;h.m_linearVelocity.x-=j*d;h.m_linearVelocity.y-=j*e;h.m_angularVelocity-=g*(q*e-n*d+this.m_motorImpulse+this.m_impulse.z);l.m_linearVelocity.x+=o*d;l.m_linearVelocity.y+=o*e;l.m_angularVelocity+=b*(a*e-c*d+this.m_motorImpulse+this.m_impulse.z)}else{this.m_impulse.SetZero(); -this.m_motorImpulse=0}};N.prototype.SolveVelocityConstraints=function(d){var h=this.m_bodyA,l=this.m_bodyB,j=0,o=j=0,q=0,n=0,a=0,c=h.m_linearVelocity,g=h.m_angularVelocity,b=l.m_linearVelocity,e=l.m_angularVelocity,f=h.m_invMass,m=l.m_invMass,r=h.m_invI,s=l.m_invI;if(this.m_enableMotor&&this.m_limitState!=I.e_equalLimits){o=this.m_motorMass*-(e-g-this.m_motorSpeed);q=this.m_motorImpulse;n=d.dt*this.m_maxMotorTorque;this.m_motorImpulse=y.Clamp(this.m_motorImpulse+o,-n,n);o=this.m_motorImpulse-q;g-= -r*o;e+=s*o}if(this.m_enableLimit&&this.m_limitState!=I.e_inactiveLimit){d=h.m_xf.R;o=this.m_localAnchor1.x-h.m_sweep.localCenter.x;q=this.m_localAnchor1.y-h.m_sweep.localCenter.y;j=d.col1.x*o+d.col2.x*q;q=d.col1.y*o+d.col2.y*q;o=j;d=l.m_xf.R;n=this.m_localAnchor2.x-l.m_sweep.localCenter.x;a=this.m_localAnchor2.y-l.m_sweep.localCenter.y;j=d.col1.x*n+d.col2.x*a;a=d.col1.y*n+d.col2.y*a;n=j;d=b.x+-e*a-c.x- -g*q;var v=b.y+e*n-c.y-g*o;this.m_mass.Solve33(this.impulse3,-d,-v,-(e-g));if(this.m_limitState== -I.e_equalLimits)this.m_impulse.Add(this.impulse3);else if(this.m_limitState==I.e_atLowerLimit){j=this.m_impulse.z+this.impulse3.z;if(j<0){this.m_mass.Solve22(this.reduced,-d,-v);this.impulse3.x=this.reduced.x;this.impulse3.y=this.reduced.y;this.impulse3.z=-this.m_impulse.z;this.m_impulse.x+=this.reduced.x;this.m_impulse.y+=this.reduced.y;this.m_impulse.z=0}}else if(this.m_limitState==I.e_atUpperLimit){j=this.m_impulse.z+this.impulse3.z;if(j>0){this.m_mass.Solve22(this.reduced,-d,-v);this.impulse3.x= -this.reduced.x;this.impulse3.y=this.reduced.y;this.impulse3.z=-this.m_impulse.z;this.m_impulse.x+=this.reduced.x;this.m_impulse.y+=this.reduced.y;this.m_impulse.z=0}}c.x-=f*this.impulse3.x;c.y-=f*this.impulse3.y;g-=r*(o*this.impulse3.y-q*this.impulse3.x+this.impulse3.z);b.x+=m*this.impulse3.x;b.y+=m*this.impulse3.y;e+=s*(n*this.impulse3.y-a*this.impulse3.x+this.impulse3.z)}else{d=h.m_xf.R;o=this.m_localAnchor1.x-h.m_sweep.localCenter.x;q=this.m_localAnchor1.y-h.m_sweep.localCenter.y;j=d.col1.x*o+ -d.col2.x*q;q=d.col1.y*o+d.col2.y*q;o=j;d=l.m_xf.R;n=this.m_localAnchor2.x-l.m_sweep.localCenter.x;a=this.m_localAnchor2.y-l.m_sweep.localCenter.y;j=d.col1.x*n+d.col2.x*a;a=d.col1.y*n+d.col2.y*a;n=j;this.m_mass.Solve22(this.impulse2,-(b.x+-e*a-c.x- -g*q),-(b.y+e*n-c.y-g*o));this.m_impulse.x+=this.impulse2.x;this.m_impulse.y+=this.impulse2.y;c.x-=f*this.impulse2.x;c.y-=f*this.impulse2.y;g-=r*(o*this.impulse2.y-q*this.impulse2.x);b.x+=m*this.impulse2.x;b.y+=m*this.impulse2.y;e+=s*(n*this.impulse2.y- -a*this.impulse2.x)}h.m_linearVelocity.SetV(c);h.m_angularVelocity=g;l.m_linearVelocity.SetV(b);l.m_angularVelocity=e};N.prototype.SolvePositionConstraints=function(){var d=0,h,l=this.m_bodyA,j=this.m_bodyB,o=0,q=h=0,n=0,a=0;if(this.m_enableLimit&&this.m_limitState!=I.e_inactiveLimit){d=j.m_sweep.a-l.m_sweep.a-this.m_referenceAngle;var c=0;if(this.m_limitState==I.e_equalLimits){d=y.Clamp(d-this.m_lowerAngle,-F.b2_maxAngularCorrection,F.b2_maxAngularCorrection);c=-this.m_motorMass*d;o=y.Abs(d)}else if(this.m_limitState== -I.e_atLowerLimit){d=d-this.m_lowerAngle;o=-d;d=y.Clamp(d+F.b2_angularSlop,-F.b2_maxAngularCorrection,0);c=-this.m_motorMass*d}else if(this.m_limitState==I.e_atUpperLimit){o=d=d-this.m_upperAngle;d=y.Clamp(d-F.b2_angularSlop,0,F.b2_maxAngularCorrection);c=-this.m_motorMass*d}l.m_sweep.a-=l.m_invI*c;j.m_sweep.a+=j.m_invI*c;l.SynchronizeTransform();j.SynchronizeTransform()}h=l.m_xf.R;c=this.m_localAnchor1.x-l.m_sweep.localCenter.x;d=this.m_localAnchor1.y-l.m_sweep.localCenter.y;q=h.col1.x*c+h.col2.x* -d;d=h.col1.y*c+h.col2.y*d;c=q;h=j.m_xf.R;var g=this.m_localAnchor2.x-j.m_sweep.localCenter.x,b=this.m_localAnchor2.y-j.m_sweep.localCenter.y;q=h.col1.x*g+h.col2.x*b;b=h.col1.y*g+h.col2.y*b;g=q;n=j.m_sweep.c.x+g-l.m_sweep.c.x-c;a=j.m_sweep.c.y+b-l.m_sweep.c.y-d;var e=n*n+a*a;h=Math.sqrt(e);q=l.m_invMass;var f=j.m_invMass,m=l.m_invI,r=j.m_invI,s=10*F.b2_linearSlop;if(e>s*s){e=1/(q+f);n=e*-n;a=e*-a;l.m_sweep.c.x-=0.5*q*n;l.m_sweep.c.y-=0.5*q*a;j.m_sweep.c.x+=0.5*f*n;j.m_sweep.c.y+=0.5*f*a;n=j.m_sweep.c.x+ -g-l.m_sweep.c.x-c;a=j.m_sweep.c.y+b-l.m_sweep.c.y-d}this.K1.col1.x=q+f;this.K1.col2.x=0;this.K1.col1.y=0;this.K1.col2.y=q+f;this.K2.col1.x=m*d*d;this.K2.col2.x=-m*c*d;this.K2.col1.y=-m*c*d;this.K2.col2.y=m*c*c;this.K3.col1.x=r*b*b;this.K3.col2.x=-r*g*b;this.K3.col1.y=-r*g*b;this.K3.col2.y=r*g*g;this.K.SetM(this.K1);this.K.AddM(this.K2);this.K.AddM(this.K3);this.K.Solve(N.tImpulse,-n,-a);n=N.tImpulse.x;a=N.tImpulse.y;l.m_sweep.c.x-=l.m_invMass*n;l.m_sweep.c.y-=l.m_invMass*a;l.m_sweep.a-=l.m_invI*(c* -a-d*n);j.m_sweep.c.x+=j.m_invMass*n;j.m_sweep.c.y+=j.m_invMass*a;j.m_sweep.a+=j.m_invI*(g*a-b*n);l.SynchronizeTransform();j.SynchronizeTransform();return h<=F.b2_linearSlop&&o<=F.b2_angularSlop};Box2D.postDefs.push(function(){Box2D.Dynamics.Joints.b2RevoluteJoint.tImpulse=new w});Box2D.inherit(S,Box2D.Dynamics.Joints.b2JointDef);S.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;S.b2RevoluteJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA= -new w;this.localAnchorB=new w};S.prototype.b2RevoluteJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_revoluteJoint;this.localAnchorA.Set(0,0);this.localAnchorB.Set(0,0);this.motorSpeed=this.maxMotorTorque=this.upperAngle=this.lowerAngle=this.referenceAngle=0;this.enableMotor=this.enableLimit=false};S.prototype.Initialize=function(d,h,l){this.bodyA=d;this.bodyB=h;this.localAnchorA=this.bodyA.GetLocalPoint(l);this.localAnchorB=this.bodyB.GetLocalPoint(l);this.referenceAngle=this.bodyB.GetAngle()- -this.bodyA.GetAngle()};Box2D.inherit(aa,Box2D.Dynamics.Joints.b2Joint);aa.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;aa.b2WeldJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchorA=new w;this.m_localAnchorB=new w;this.m_impulse=new A;this.m_mass=new K};aa.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA)};aa.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB)};aa.prototype.GetReactionForce= -function(d){if(d===undefined)d=0;return new w(d*this.m_impulse.x,d*this.m_impulse.y)};aa.prototype.GetReactionTorque=function(d){if(d===undefined)d=0;return d*this.m_impulse.z};aa.prototype.b2WeldJoint=function(d){this.__super.b2Joint.call(this,d);this.m_localAnchorA.SetV(d.localAnchorA);this.m_localAnchorB.SetV(d.localAnchorB);this.m_referenceAngle=d.referenceAngle;this.m_impulse.SetZero();this.m_mass=new K};aa.prototype.InitVelocityConstraints=function(d){var h,l=0,j=this.m_bodyA,o=this.m_bodyB; -h=j.m_xf.R;var q=this.m_localAnchorA.x-j.m_sweep.localCenter.x,n=this.m_localAnchorA.y-j.m_sweep.localCenter.y;l=h.col1.x*q+h.col2.x*n;n=h.col1.y*q+h.col2.y*n;q=l;h=o.m_xf.R;var a=this.m_localAnchorB.x-o.m_sweep.localCenter.x,c=this.m_localAnchorB.y-o.m_sweep.localCenter.y;l=h.col1.x*a+h.col2.x*c;c=h.col1.y*a+h.col2.y*c;a=l;h=j.m_invMass;l=o.m_invMass;var g=j.m_invI,b=o.m_invI;this.m_mass.col1.x=h+l+n*n*g+c*c*b;this.m_mass.col2.x=-n*q*g-c*a*b;this.m_mass.col3.x=-n*g-c*b;this.m_mass.col1.y=this.m_mass.col2.x; -this.m_mass.col2.y=h+l+q*q*g+a*a*b;this.m_mass.col3.y=q*g+a*b;this.m_mass.col1.z=this.m_mass.col3.x;this.m_mass.col2.z=this.m_mass.col3.y;this.m_mass.col3.z=g+b;if(d.warmStarting){this.m_impulse.x*=d.dtRatio;this.m_impulse.y*=d.dtRatio;this.m_impulse.z*=d.dtRatio;j.m_linearVelocity.x-=h*this.m_impulse.x;j.m_linearVelocity.y-=h*this.m_impulse.y;j.m_angularVelocity-=g*(q*this.m_impulse.y-n*this.m_impulse.x+this.m_impulse.z);o.m_linearVelocity.x+=l*this.m_impulse.x;o.m_linearVelocity.y+=l*this.m_impulse.y; -o.m_angularVelocity+=b*(a*this.m_impulse.y-c*this.m_impulse.x+this.m_impulse.z)}else this.m_impulse.SetZero()};aa.prototype.SolveVelocityConstraints=function(){var d,h=0,l=this.m_bodyA,j=this.m_bodyB,o=l.m_linearVelocity,q=l.m_angularVelocity,n=j.m_linearVelocity,a=j.m_angularVelocity,c=l.m_invMass,g=j.m_invMass,b=l.m_invI,e=j.m_invI;d=l.m_xf.R;var f=this.m_localAnchorA.x-l.m_sweep.localCenter.x,m=this.m_localAnchorA.y-l.m_sweep.localCenter.y;h=d.col1.x*f+d.col2.x*m;m=d.col1.y*f+d.col2.y*m;f=h;d= -j.m_xf.R;var r=this.m_localAnchorB.x-j.m_sweep.localCenter.x,s=this.m_localAnchorB.y-j.m_sweep.localCenter.y;h=d.col1.x*r+d.col2.x*s;s=d.col1.y*r+d.col2.y*s;r=h;d=n.x-a*s-o.x+q*m;h=n.y+a*r-o.y-q*f;var v=a-q,t=new A;this.m_mass.Solve33(t,-d,-h,-v);this.m_impulse.Add(t);o.x-=c*t.x;o.y-=c*t.y;q-=b*(f*t.y-m*t.x+t.z);n.x+=g*t.x;n.y+=g*t.y;a+=e*(r*t.y-s*t.x+t.z);l.m_angularVelocity=q;j.m_angularVelocity=a};aa.prototype.SolvePositionConstraints=function(){var d,h=0,l=this.m_bodyA,j=this.m_bodyB;d=l.m_xf.R; -var o=this.m_localAnchorA.x-l.m_sweep.localCenter.x,q=this.m_localAnchorA.y-l.m_sweep.localCenter.y;h=d.col1.x*o+d.col2.x*q;q=d.col1.y*o+d.col2.y*q;o=h;d=j.m_xf.R;var n=this.m_localAnchorB.x-j.m_sweep.localCenter.x,a=this.m_localAnchorB.y-j.m_sweep.localCenter.y;h=d.col1.x*n+d.col2.x*a;a=d.col1.y*n+d.col2.y*a;n=h;d=l.m_invMass;h=j.m_invMass;var c=l.m_invI,g=j.m_invI,b=j.m_sweep.c.x+n-l.m_sweep.c.x-o,e=j.m_sweep.c.y+a-l.m_sweep.c.y-q,f=j.m_sweep.a-l.m_sweep.a-this.m_referenceAngle,m=10*F.b2_linearSlop, -r=Math.sqrt(b*b+e*e),s=y.Abs(f);if(r>m){c*=1;g*=1}this.m_mass.col1.x=d+h+q*q*c+a*a*g;this.m_mass.col2.x=-q*o*c-a*n*g;this.m_mass.col3.x=-q*c-a*g;this.m_mass.col1.y=this.m_mass.col2.x;this.m_mass.col2.y=d+h+o*o*c+n*n*g;this.m_mass.col3.y=o*c+n*g;this.m_mass.col1.z=this.m_mass.col3.x;this.m_mass.col2.z=this.m_mass.col3.y;this.m_mass.col3.z=c+g;m=new A;this.m_mass.Solve33(m,-b,-e,-f);l.m_sweep.c.x-=d*m.x;l.m_sweep.c.y-=d*m.y;l.m_sweep.a-=c*(o*m.y-q*m.x+m.z);j.m_sweep.c.x+=h*m.x;j.m_sweep.c.y+=h*m.y; -j.m_sweep.a+=g*(n*m.y-a*m.x+m.z);l.SynchronizeTransform();j.SynchronizeTransform();return r<=F.b2_linearSlop&&s<=F.b2_angularSlop};Box2D.inherit(Z,Box2D.Dynamics.Joints.b2JointDef);Z.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;Z.b2WeldJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new w;this.localAnchorB=new w};Z.prototype.b2WeldJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_weldJoint;this.referenceAngle= -0};Z.prototype.Initialize=function(d,h,l){this.bodyA=d;this.bodyB=h;this.localAnchorA.SetV(this.bodyA.GetLocalPoint(l));this.localAnchorB.SetV(this.bodyB.GetLocalPoint(l));this.referenceAngle=this.bodyB.GetAngle()-this.bodyA.GetAngle()}})(); -(function(){var F=Box2D.Dynamics.b2DebugDraw;F.b2DebugDraw=function(){this.m_xformScale=this.m_fillAlpha=this.m_alpha=this.m_lineThickness=this.m_drawScale=1;var G=this;this.m_sprite={graphics:{clear:function(){G.m_ctx.clearRect(0,0,G.m_ctx.canvas.width,G.m_ctx.canvas.height)}}}};F.prototype._color=function(G,K){return"rgba("+((G&16711680)>>16)+","+((G&65280)>>8)+","+(G&255)+","+K+")"};F.prototype.b2DebugDraw=function(){this.m_drawFlags=0};F.prototype.SetFlags=function(G){if(G===undefined)G=0;this.m_drawFlags= -G};F.prototype.GetFlags=function(){return this.m_drawFlags};F.prototype.AppendFlags=function(G){if(G===undefined)G=0;this.m_drawFlags|=G};F.prototype.ClearFlags=function(G){if(G===undefined)G=0;this.m_drawFlags&=~G};F.prototype.SetSprite=function(G){this.m_ctx=G};F.prototype.GetSprite=function(){return this.m_ctx};F.prototype.SetDrawScale=function(G){if(G===undefined)G=0;this.m_drawScale=G};F.prototype.GetDrawScale=function(){return this.m_drawScale};F.prototype.SetLineThickness=function(G){if(G=== -undefined)G=0;this.m_lineThickness=G;this.m_ctx.strokeWidth=G};F.prototype.GetLineThickness=function(){return this.m_lineThickness};F.prototype.SetAlpha=function(G){if(G===undefined)G=0;this.m_alpha=G};F.prototype.GetAlpha=function(){return this.m_alpha};F.prototype.SetFillAlpha=function(G){if(G===undefined)G=0;this.m_fillAlpha=G};F.prototype.GetFillAlpha=function(){return this.m_fillAlpha};F.prototype.SetXFormScale=function(G){if(G===undefined)G=0;this.m_xformScale=G};F.prototype.GetXFormScale=function(){return this.m_xformScale}; -F.prototype.DrawPolygon=function(G,K,y){if(K){var w=this.m_ctx,A=this.m_drawScale;w.beginPath();w.strokeStyle=this._color(y.color,this.m_alpha);w.moveTo(G[0].x*A,G[0].y*A);for(y=1;y - -Octane - - - - -

Octane

-
-
- - - - - - - - - diff --git a/build/pgo/js-input/octane/code-load.js b/build/pgo/js-input/octane/code-load.js deleted file mode 100644 index 82cb071a4237..000000000000 --- a/build/pgo/js-input/octane/code-load.js +++ /dev/null @@ -1,1552 +0,0 @@ -// Copyright 2013 the Octane Benchmark project authors. All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -// The code in BASE_JS below: -// Copyright 2012 The Closure Library Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS-IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - - -// The code in JQUERY_JS below: -// Copyright (c) 2012 John Resig, 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. - - -var CodeLoad = new BenchmarkSuite('CodeLoad', [450000], [ - new Benchmark('CodeLoadClosure', - false, - false, - 1600, - runCodeLoadClosure, - setupCodeLoad, - tearDownCodeLoad, - null, - 16), - new Benchmark('CodeLoadJQuery', - false, - false, - 100, - runCodeLoadJQuery, - setupCodeLoad, - tearDownCodeLoad, - null, - 16) -]); - -var salt; -var indirectEval; - -function setupCodeLoad() { - salt = 0; - indirectEval = eval; -} - -function tearDownCodeLoad() { - salt = null; - indirectEval = null; -} - -function runCodeLoadClosure() { - runClosure(); - salt++; -} - -function runCodeLoadJQuery() { - runJQuery(); - salt++; -} - -/* - * BASE_JS is a compiled and formatted version of: - * http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/base.js - * JQUERY_JS is a formatted copy of: - * http://code.jquery.com/jquery.min.js - * The following Python script generates both variables: - -#!/usr/bin/env python - -import urllib -import urllib2 - -def escape_and_format(data, varname): - data = data.replace("\n", " ").replace("; ", ";") - data = data.replace("\\", "\\\\").replace("\"", "\\\"") - data = "var " + varname + " = \"" + data + "\"" - while len(data) > 0: - cutoff = min(79, len(data)) - while data[cutoff-1] == '\\': - cutoff -= 1 - line = data[0:cutoff] - data = data[cutoff:] - if len(data) > 0: - line += '\\' - print line - -url = "http://closure-compiler.appspot.com/compile" -request_params = {"output_format": "text", - "compilation_level": "SIMPLE_OPTIMIZATIONS", - "use_closure_library": "true", - "js_code": "", - "output_info": "compiled_code"} -result = urllib2.urlopen(url, urllib.urlencode(request_params)) -escape_and_format(result.read(), "BASE_JS") - -print "\n\n" - -url = "http://code.jquery.com/jquery.min.js" -result = urllib2.urlopen(url) -escape_and_format(result.read(), "JQUERY_JS") - -*/ -var BASE_JS = "var COMPILED=!0,goog=goog||{};goog.global=this;goog.DEBUG=!0;goo\ -g.LOCALE=\"en\";goog.provide=function(a){if(!COMPILED){if(goog.isProvided_(a))t\ -hrow Error('Namespace \"'+a+'\" already declared.');delete goog.implicitNamespa\ -ces_[a];for(var b=a;(b=b.substring(0,b.lastIndexOf(\".\")))&&!goog.getObjectByN\ -ame(b);)goog.implicitNamespaces_[b]=!0}goog.exportPath_(a)};goog.setTestOnly=fu\ -nction(a){if(COMPILED&&!goog.DEBUG)throw a=a||\"\",Error(\"Importing test-only \ -code into non-debug environment\"+a?\": \"+a:\".\");};COMPILED||(goog.isProvide\ -d_=function(a){return!goog.implicitNamespaces_[a]&&!!goog.getObjectByName(a)},g\ -oog.implicitNamespaces_={});goog.exportPath_=function(a,b,c){a=a.split(\".\");c\ -=c||goog.global;!(a[0]in c)&&c.execScript&&c.execScript(\"var \"+a[0]);for(var \ -d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]?c[d]:c[d]={}}\ -;goog.getObjectByName=function(a,b){for(var c=a.split(\".\"),d=b||goog.global,e\ -;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else return null;return d};g\ -oog.globalize=function(a,b){var c=b||goog.global,d;for(d in a)c[d]=a[d]};goog.a\ -ddDependency=function(a,b,c){if(!COMPILED){for(var d,a=a.replace(/\\\\/g,\"/\")\ -,e=goog.dependencies_,g=0;d=b[g];g++){e.nameToPath[d]=a;a in e.pathToNames||(e.\ -pathToNames[a]={});e.pathToNames[a][d]=true}for(d=0;b=c[d];d++){a in e.requires\ -||(e.requires[a]={});e.requires[a][b]=true}}};goog.ENABLE_DEBUG_LOADER=!0;goog.\ -require=function(a){if(!COMPILED&&!goog.isProvided_(a)){if(goog.ENABLE_DEBUG_LO\ -ADER){var b=goog.getPathFromDeps_(a);if(b){goog.included_[b]=true;goog.writeScr\ -ipts_();return}}a=\"goog.require could not find: \"+a;goog.global.console&&goog\ -.global.console.error(a);throw Error(a);}};goog.basePath=\"\";goog.nullFunction\ -=function(){};goog.identityFunction=function(a){return a};goog.abstractMethod=f\ -unction(){throw Error(\"unimplemented abstract method\");};goog.addSingletonGet\ -ter=function(a){a.getInstance=function(){return a.instance_||(a.instance_=new a\ -)}};!COMPILED&&goog.ENABLE_DEBUG_LOADER&&(goog.included_={},goog.dependencies_=\ -{pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDoc\ -ument_=function(){var a=goog.global.document;return typeof a!=\"undefined\"&&\"\ -write\"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goo\ -g.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var\ - a=goog.global.document.getElementsByTagName(\"script\"),b=a.length-1;b>=0;--b)\ -{var c=a[b].src,d=c.lastIndexOf(\"?\"), d=d==-1?c.length:d;if(c.substr(d-7,7)==\ -\"base.js\"){goog.basePath=c.substr(0,d-7);break}}},goog.importScript_=function\ -(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.depende\ -ncies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=true)},goog.writeScript\ -Tag_=function(a){if(goog.inHtmlDocument_()){goog.global.document.write('<\\/script>');return true}return false}\ -,goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.\ -visited)){d.visited[e]=true;if(e in d.requires)for(var f in d.requires[e])if(!g\ -oog.isProvided_(f))if(f in d.nameToPath)a(d.nameToPath[f]);else throw Error(\"U\ -ndefined nameToPath for \"+f);}if(!(e in c)){c[e]=true;b.push(e)}}}var b=[],c={\ -},d=goog.dependencies_,e;for(e in goog.included_)d.written[e]||a(e);for(e=0;e2){var d=Array.pr\ -ototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.c\ -all(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return f\ -unction(){return a.apply(b,arguments)}};goog.bind=function(a,b,c){goog.bind=Fun\ -ction.prototype.bind&&Function.prototype.bind.toString().indexOf(\"native code\ -\")!=-1?goog.bindNative_:goog.bindJs_;return goog.bind.apply(null,arguments)};g\ -oog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return \ -function(){var b=Array.prototype.slice.call(arguments);b.unshift.apply(b,c);ret\ -urn a.apply(this,b)}};goog.mixin=function(a,b){for(var c in b)a[c]=b[c]};goog.n\ -ow=Date.now||function(){return+new Date};goog.globalEval=function(a){if(goog.gl\ -obal.execScript)goog.global.execScript(a,\"JavaScript\");else if(goog.global.ev\ -al){if(goog.evalWorksForGlobals_==null){goog.global.eval(\"var _et_ = 1;\");if(\ -typeof goog.global._et_!=\"undefined\"){delete goog.global._et_;goog.evalWorksF\ -orGlobals_=true}else goog.evalWorksForGlobals_=false}if(goog.evalWorksForGlobal\ -s_)goog.global.eval(a);else{var b=goog.global.document,c=b.createElement(\"scri\ -pt\");c.type=\"text/javascript\";c.defer=false;c.appendChild(b.createTextNode(a\ -));b.body.appendChild(c);b.body.removeChild(c)}}else throw Error(\"goog.globalE\ -val not available\");};goog.evalWorksForGlobals_=null;goog.getCssName=function(\ -a,b){var c=function(a){return goog.cssNameMapping_[a]||a},d=function(a){for(var\ - a=a.split(\"-\"),b=[],d=0;d\").appendTo\ -(b),e=d.css(\"display\");d.remove();if(e===\"none\"||e===\"\"){ck||(ck=c.create\ -Element(\"iframe\"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!\ -cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.wri\ -te((f.support.boxModel?\"\":\"\")+\"\"),cl.close();d\ -=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,\"display\"),b.removeChil\ -d(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],\ -cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr()\ -{setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObjec\ -t(\"Microsoft.XMLHTTP\")}catch(b){}}function ch(){try{return new a.XMLHttpReque\ -st}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var\ - d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!==\"border\")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNod\ -e.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){v\ -ar d=b+\"defer\",e=b+\"queue\",g=b+\"mark\",h=f._data(a,d);h&&(c===\"queue\"||!\ -f._data(a,e))&&(c===\"mark\"||!f._data(a,g))&&setTimeout(function(){!f._data(a,\ -e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b \ -in a){if(b===\"data\"&&f.isEmptyObject(a[b]))continue;if(b!==\"toJSON\")return!\ -1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e=\"data-\"+c.replac\ -e(k,\"-$1\").toLowerCase();d=a.getAttribute(e);if(typeof d==\"string\"){try{d=d\ -===\"true\"?!0:d===\"false\"?!1:d===\"null\"?null:f.isNumeric(d)?+d:j.test(d)?f\ -.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g\ -[a]={},c,d;a=a.split(/\\s+/);for(c=0,d=a.length;c)[^>]*$|#([\\w\\-]*)$)/,j=/\\S/,k=/^\\s+/,l=/\\s+$/,m=/^<\ -(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,n=/^[\\],:{}\\s]*$/,o=/\\\\(?:[\"\\\\\\/bfnrt]|u\ -[0-9a-fA-F]{4})/g,p=/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:\ -[eE][+\\-]?\\d+)?/g,q=/(?:^|:|,)(?:\\s*\\[)+/g,r=/(webkit)[ \\/]([\\w.]+)/,s=/(\ -opera)(?:.*version)?[ \\/]([\\w.]+)/,t=/(msie) ([\\w.]+)/,u=/(mozilla)(?:.*? rv\ -:([\\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+\"\").toU\ -pperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.\ -hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototyp\ -e.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:func\ -tion(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a\ -,this.length=1;return this}if(a===\"body\"&&!d&&c.body){this.context=c,this[0]=\ -c.body,this.selector=a,this.length=1;return this}if(typeof a==\"string\"){a.cha\ -rAt(0)!==\"<\"||a.charAt(a.length-1)!==\">\"||a.length<3?g=i.exec(a):g=[null,a,\ -null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d\ -:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a\ -,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable\ -?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElem\ -entById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1\ -,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f)\ -.find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.sel\ -ector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray\ -(a,this)},selector:\"\",jquery:\"1.7.2\",length:0,size:function(){return this.l\ -ength},toArray:function(){return F.call(this,0)},get:function(a){return a==null\ -?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var \ -d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d\ -.context=this.context,b===\"find\"?d.selector=this.selector+(this.selector?\" \ -\":\"\")+c:b&&(d.selector=this.selector+\".\"+b+\"(\"+c+\")\");return d},each:f\ -unction(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);\ -return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)}\ -,first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:\ -function(){return this.pushStack(F.apply(this,arguments),\"slice\",F.call(argum\ -ents).join(\",\"))},map:function(a){return this.pushStack(e.map(this,function(b\ -,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constr\ -uctor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.e\ -xtend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments\ -.length,l=!1;typeof i==\"boolean\"&&(l=i,i=arguments[1]||{},j=2),typeof i!=\"ob\ -ject\"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.tr\ -igger&&e(c).trigger(\"ready\").off(\"ready\")}},bindReady:function(){if(!A){A=e\ -.Callbacks(\"once memory\");if(c.readyState===\"complete\")return setTimeout(e.\ -ready,1);if(c.addEventListener)c.addEventListener(\"DOMContentLoaded\",B,!1),a.\ -addEventListener(\"load\",e.ready,!1);else if(c.attachEvent){c.attachEvent(\"on\ -readystatechange\",B),a.attachEvent(\"onload\",e.ready);var b=!1;try{b=a.frameE\ -lement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:functio\ -n(a){return e.type(a)===\"function\"},isArray:Array.isArray||function(a){return\ - e.type(a)===\"array\"},isWindow:function(a){return a!=null&&a==a.window},isNum\ -eric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){ret\ -urn a==null?String(a):I[C.call(a)]||\"object\"},isPlainObject:function(a){if(!a\ -||e.type(a)!==\"object\"||a.nodeType||e.isWindow(a))return!1;try{if(a.construct\ -or&&!D.call(a,\"constructor\")&&!D.call(a.constructor.prototype,\"isPrototypeOf\ -\"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isE\ -mptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){thro\ -w new Error(a)},parseJSON:function(b){if(typeof b!=\"string\"||!b)return null;b\ -=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o\ -,\"@\").replace(p,\"]\").replace(q,\"\")))return(new Function(\"return \"+b))()\ -;e.error(\"Invalid JSON: \"+b)},parseXML:function(c){if(typeof c!=\"string\"||!\ -c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,\"\ -text/xml\")):(d=new ActiveXObject(\"Microsoft.XMLDOM\"),d.async=\"false\",d.loa\ -dXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName(\"parsere\ -rror\").length)&&e.error(\"Invalid XML: \"+c);return d},noop:function(){},globa\ -lEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b\ -)},camelCase:function(a){return a.replace(w,\"ms-\").replace(v,x)},nodeName:fun\ -ction(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:\ -function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f\ - in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b\ -,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.\ -call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.\ -length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j\ -.promise();if(d>1){for(;c
a\",d=p.getElementsByTagNam\ -e(\"*\"),e=p.getElementsByTagName(\"a\")[0];if(!d||!d.length||!e)return{};g=c.c\ -reateElement(\"select\"),h=g.appendChild(c.createElement(\"option\")),i=p.getEl\ -ementsByTagName(\"input\")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tb\ -ody:!p.getElementsByTagName(\"tbody\").length,htmlSerialize:!!p.getElementsByTa\ -gName(\"link\").length,style:/top/.test(e.getAttribute(\"style\")),hrefNormaliz\ -ed:e.getAttribute(\"href\")===\"/a\",opacity:/^0.55/.test(e.style.opacity),cssF\ -loat:!!e.style.cssFloat,checkOn:i.value===\"on\",optSelected:h.selected,getSetA\ -ttribute:p.className!==\"t\",enctype:!!c.createElement(\"form\").enctype,html5C\ -lone:c.createElement(\"nav\").cloneNode(!0).outerHTML!==\"<:nav>\",submi\ -tBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0\ -,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMarg\ -in:!0},f.boxModel=b.boxModel=c.compatMode===\"CSS1Compat\",i.checked=!0,b.noClo\ -neChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{d\ -elete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.\ -fireEvent&&(p.attachEvent(\"onclick\",function(){b.noCloneEvent=!1}),p.cloneNod\ -e(!0).fireEvent(\"onclick\")),i=c.createElement(\"input\"),i.value=\"t\",i.setA\ -ttribute(\"type\",\"radio\"),b.radioValue=i.value===\"t\",i.setAttribute(\"chec\ -ked\",\"checked\"),i.setAttribute(\"name\",\"t\"),p.appendChild(i),j=c.createDo\ -cumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneN\ -ode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendCh\ -ild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m=\"on\"+n,o=m in\ - p,o||(p.setAttribute(m,\"return;\"),o=typeof p[m]==\"function\"),b[n+\"Bubbles\ -\"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,\ -t,u=c.getElementsByTagName(\"body\")[0];!u||(m=1,t=\"padding:0;margin:0;border:\ -\",r=\"position:absolute;top:0;left:0;width:1px;height:1px;\",s=t+\"0;visibilit\ -y:hidden;\",n=\"style='\"+r+t+\"5px solid #000;\",q=\"
\"+\"\"+\"\",d=c\ -.createElement(\"div\"),d.style.cssText=s+\"width:0;height:0;position:static;to\ -p:0;margin-top:\"+m+\"px\",u.insertBefore(d,u.firstChild),p=c.createElement(\"d\ -iv\"),d.appendChild(p),p.innerHTML=\"
t
\",k=p.getElementsByTagName(\"td\"),o=k[0].offse\ -tHeight===0,k[0].style.display=\"\",k[1].style.display=\"none\",b.reliableHidde\ -nOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML=\"\",l=c.cre\ -ateElement(\"div\"),l.style.width=\"0\",l.style.marginRight=\"0\",p.style.width\ -=\"2px\",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l\ -,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!=\"undefi\ -ned\"&&(p.innerHTML=\"\",p.style.width=p.style.padding=\"1px\",p.style.border=0\ -,p.style.overflow=\"hidden\",p.style.display=\"inline\",p.style.zoom=1,b.inline\ -BlockNeedsLayout=p.offsetWidth===3,p.style.display=\"block\",p.style.overflow=\ -\"visible\",p.innerHTML=\"
\",b.shrinkWrapBlocks=p\ -.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChi\ -ld,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,do\ -esAddBorderForTableAndCells:i.offsetTop===5},g.style.position=\"fixed\",g.style\ -.top=\"20px\",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.positi\ -on=g.style.top=\"\",e.style.overflow=\"hidden\",e.style.position=\"relative\",j\ -.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginIn\ -BodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop=\"1%\",b.pixe\ -lMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!==\"1%\"),typeof \ -d.style.zoom!=\"undefined\"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.ext\ -end(b,j))});return b}();var j=/^(?:\\{.*\\}|\\[.*\\])$/,k=/([A-Z])/g;f.extend({\ -cache:{},uuid:0,expando:\"jQuery\"+(f.fn.jquery+Math.random()).replace(/\\D/g,\ -\"\"),noData:{embed:!0,object:\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\",ap\ -plet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];re\ -turn!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expa\ -ndo,k=typeof c==\"string\",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c===\"\ -events\";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.u\ -uid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c==\"object\"||typeo\ -f c==\"function\")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m\ -[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])\ -return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},remove\ -Data:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j\ -=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArra\ -y(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(\" \")));for(e=0,g\ -=b.length;e1,null,!1)},removeData:function(a){return this.e\ -ach(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b\ -||\"fx\")+\"mark\",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a\ -!==!0&&(c=b,b=a,a=!1);if(b){c=c||\"fx\";var d=c+\"mark\",e=a?0:(f._data(b,d)||1\ -)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,\"mark\"))}},queue:function(a,\ -b,c){var d;if(a){b=(b||\"fx\")+\"queue\",d=f._data(a,b),c&&(!d||f.isArray(c)?d=\ -f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b\ -||\"fx\";var c=f.queue(a,b),d=c.shift(),e={};d===\"inprogress\"&&(d=c.shift()),\ -d&&(b===\"fx\"&&c.unshift(\"inprogress\"),f._data(a,b+\".run\",e),d.call(a,func\ -tion(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+\"queue \"+b+\".run\",!0\ -),n(a,b,\"queue\"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!=\"str\ -ing\"&&(c=a,a=\"fx\",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr\ -(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length\ ->1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{t\ -his[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if\ -(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,th\ -is.className))});if(a&&typeof a==\"string\"){b=a.split(p);for(c=0,d=this.length\ -;c-1)\ -return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){\ -e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType\ -===1){e?h=a.call(this,d,g.val()):h=a,h==null?h=\"\":typeof h==\"number\"?h+=\"\ -\":f.isArray(h)&&(h=f.map(h,function(a){return a==null?\"\":a+\"\"})),c=f.valHo\ -oks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!(\"set\"in c)||\ -c.set(this,h,\"value\")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHo\ -oks[g.nodeName.toLowerCase()];if(c&&\"get\"in c&&(d=c.get(g,\"value\"))!==b)ret\ -urn d;d=g.value;return typeof d==\"string\"?d.replace(q,\"\"):d==null?\"\":d}}}\ -}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!\ -b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selecte\ -dIndex,h=[],i=a.options,j=a.type===\"select-one\";if(g<0)return null;c=j?g:0,d=\ -j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,h\ -tml:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var\ - g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a\ -)[c](d);if(typeof a.getAttribute==\"undefined\")return f.prop(a,c,d);i=j!==1||!\ -f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b\ -){if(d===null){f.removeAttr(a,c);return}if(h&&\"set\"in h&&i&&(g=h.set(a,d,c))!\ -==b)return g;a.setAttribute(c,\"\"+d);return d}if(h&&\"get\"in h&&i&&(g=h.get(a\ -,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:funct\ -ion(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d\ -.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\\.]*)?(?:\\.(.+))?$/,\ -B=/(?:^|\\s)hover(\\.\\S+)?\\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(\ -?:focusinfocus|focusoutblur)$/,F=/^(\\w*)(?:#([\\w\\-]+))?(?:\\.([\\w\\-]+))?$/\ -,G=function( a){var b=F.exec(a);b&&(b[1]=(b[1]||\"\").toLowerCase(),b[3]=b[3]&&\ -new RegExp(\"(?:^|\\\\s)\"+b[3]+\"(?:\\\\s|$)\"));return b},H=function(a,b){var\ - c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.\ -id||{}).value===b[2])&&(!b[3]||b[3].test((c[\"class\"]||{}).value))},I=function\ -(a){return f.event.special.hover?a:a.replace(B,\"mouseenter$1 mouseleave$1\")};\ -f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===\ -3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.se\ -lector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(\ -h.handle=i=function(a){return typeof f!=\"undefined\"&&(!a||f.event.triggered!=\ -=a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).s\ -plit(\" \");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(\ -\".\")>=0&&(i=h.split(\".\"),h=i.shift(),i.sort());if((!e||f.event.customEvent[\ -h])&&!f.event.global[h])return;c=typeof c==\"object\"?c[f.expando]?c:new f.Even\ -t(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join(\ -\".\"),c.namespace_re=c.namespace?new RegExp(\"(^|\\\\.)\"+i.join(\"\\\\.(?:.*\ -\\\\.)?\")+\"(\\\\.|$)\"):null,o=h.indexOf(\":\")<0?\"on\"+h:\"\";if(!e){j=f.ca\ -che;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.ele\ -m,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.un\ -shift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)retur\ -n;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h\ -,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&\ -&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,m\ -atches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger\ -(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHook\ -s),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(\ -a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length\ -;h+~,(\\[\\\\]+)+|[>+~\ -])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,d=\"sizcache\"+(Math.random()+\"\").replace(\"\ -.\",\"\"),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\\\/g,k=/\\r\\n/g,l=/\ -\\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d|\ -|c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=\"string\ -\")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(\"\"),i=a.\ -exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>\ -1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.rela\ -tive[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.s\ -hift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0\ -])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter\ -(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.\ -length===1&&(w[0]===\"~\"||w[0]===\"+\")&&d.parentNode?d.parentNode:d,v),j=n.ex\ -pr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop()\ -,r=q,o.relative[q]?r=w.pop():q=\"\",r==null&&(r=d),o.relative[q](k,r,v)}else k=\ -w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)===\"[object Array]\")if(!u)e.push.a\ -pply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[\ -t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)\ -k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e\ -));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.or\ -der.length;e\":function(a,b){var c,d=typeof b==\ -\"string\",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1\ -));return!1},ID:function(a){return a[1].replace(j,\"\")},TAG:function(a,b){retu\ -rn a[1].replace(j,\"\").toLowerCase()},CHILD:function(a){if(a[1]===\"nth\"){a[2\ -]||m.error(a[0]),a[2]=a[2].replace(/^\\+|\\s*/g,\"\");var b=/(-?)(\\d*)(?:n([+\ -\\-]?\\d*))?/.exec(a[2]===\"even\"&&\"2n\"||a[2]===\"odd\"&&\"2n+1\"||!/\\D/.te\ -st(a[2])&&\"0n+\"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.er\ -ror(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace\ -(j,\"\");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||\"\").replace(\ -j,\"\"),a[2]===\"~=\"&&(a[4]=\" \"+a[4]+\" \");return a},PSEUDO:function(b,c,d,\ -e,f){if(b[1]===\"not\")if((a.exec(b[3])||\"\").length>1||/^\\w/.test(b[3]))b[3]\ -=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);re\ -turn!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return\ - b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){retur\ -n a.disabled===!1&&a.type!==\"hidden\"},disabled:function(a){return a.disabled=\ -==!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentN\ -ode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){retu\ -rn!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){re\ -turn!!m(c[3],a).length},header:function(a){return/h\\d/i.test(a.nodeName)},text\ -:function(a){var b=a.getAttribute(\"type\"),c=a.type;return a.nodeName.toLowerC\ -ase()===\"input\"&&\"text\"===c&&(b===c||b===null)},radio:function(a){return a.\ -nodeName.toLowerCase()===\"input\"&&\"radio\"===a.type},checkbox:function(a){re\ -turn a.nodeName.toLowerCase()===\"input\"&&\"checkbox\"===a.type},file:function\ -(a){return a.nodeName.toLowerCase()===\"input\"&&\"file\"===a.type},password:fu\ -nction(a){return a.nodeName.toLowerCase()===\"input\"&&\"password\"===a.type},s\ -ubmit:function(a){var b=a.nodeName.toLowerCase();return(b===\"input\"||b===\"bu\ -tton\")&&\"submit\"===a.type},image:function(a){return a.nodeName.toLowerCase()\ -===\"input\"&&\"image\"===a.type},reset:function(a){var b=a.nodeName.toLowerCas\ -e();return(b===\"input\"||b===\"button\")&&\"reset\"===a.type},button:function(\ -a){var b=a.nodeName.toLowerCase();return b===\"input\"&&\"button\"===a.type||b=\ -==\"button\"},input:function(a){return/input|select|textarea|button/i.test(a.no\ -deName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilter\ -s:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length\ --1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:fun\ -ction(a,b,c){return bc[3]-0},nth:function(\ -a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO\ -:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e===\"co\ -ntains\")return(a.textContent||a.innerText||n([a])||\"\").indexOf(b[3])>=0;if(e\ -===\"not\"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute(\ -\"id\")===b},TAG:function(a,b){return b===\"*\"&&a.nodeType===1||!!a.nodeName&&\ -a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(\" \"+(a.className||a.\ -getAttribute(\"class\"))+\" \").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=\ -m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttr\ -ibute(c),e=d+\"\",f=b[2],g=b[4];return d==null?f===\"!=\":!f&&m.attr?d!=null:f=\ -==\"=\"?e===g:f===\"*=\"?e.indexOf(g)>=0:f===\"~=\"?(\" \"+e+\" \").indexOf(g)>\ -=0:g?f===\"!=\"?e!==g:f===\"^=\"?e.indexOf(g)===0:f===\"$=\"?e.substr(e.length-\ -g.length)===g:f===\"|=\"?e===g||e.substr(0,g.length+1)===g+\"-\":!1:e&&d!==!1},\ -POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=\ -o.match.POS,q=function(a,b){return\"\\\\\"+(b-0+1)};for(var r in o.match)o.matc\ -h[r]=new RegExp(o.match[r].source+/(?![^\\[]*\\])(?![^\\(]*\\))/.source),o.left\ -Match[r]=new RegExp(/(^(?:.|\\r|\\n)*?)/.source+o.match[r].source.replace(/\ -\\\\(\\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slic\ -e.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slic\ -e.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var\ - c=0,d=b||[];if(g.call(a)===\"[object Array]\")Array.prototype.push.apply(d,a);\ -else if(typeof a.length==\"number\")for(var e=a.length;c\",e.insertBefore(a,e.firstChi\ -ld),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!\ -=\"undefined\"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e\ -.getAttributeNode!=\"undefined\"&&e.getAttributeNode(\"id\").nodeValue===a[1]?[\ -e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=\"undefine\ -d\"&&a.getAttributeNode(\"id\");return a.nodeType===1&&c&&c.nodeValue===b}),e.r\ -emoveChild(a),e=a=null}(),function(){var a=c.createElement(\"div\");a.appendChi\ -ld(c.createComment(\"\")),a.getElementsByTagName(\"*\").length>0&&(o.find.TAG=f\ -unction(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]===\"*\"){var d=[];for(v\ -ar e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML=\"\",a.firstChild&&typeof a.firstChild.getAttribute!=\"undefined\"&\ -&a.firstChild.getAttribute(\"href\")!==\"#\"&&(o.attrHandle.href=function(a){re\ -turn a.getAttribute(\"href\",2)}),a=null}(),c.querySelectorAll&&function(){var \ -a=m,b=c.createElement(\"div\"),d=\"__sizzle__\";b.innerHTML=\"

<\ -/p>\";if(!b.querySelectorAll||b.querySelectorAll(\".TEST\").length!==0){m=funct\ -ion(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\\w+$)|^\\.([\\w\\-]+$)|^#([\ -\\w\\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.\ -getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)retu\ -rn s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b===\"body\"&&e.bo\ -dy)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.pare\ -ntNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelect\ -orAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!==\"obj\ -ect\"){var k=e,l=e.getAttribute(\"id\"),n=l||d,p=e.parentNode,q=/^\\s*[+~]/.tes\ -t(b);l?n=n.replace(/'/g,\"\\\\$&\"):e.setAttribute(\"id\",n),q&&p&&(e=e.parentN\ -ode);try{if(!q||p)return s(e.querySelectorAll(\"[id='\"+n+\"'] \"+b),f)}catch(r\ -){}finally{l||k.removeAttribute(\"id\")}}}return a(b,e,f,g)};for(var e in a)m[e\ -]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.moz\ -MatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.ca\ -ll(c.createElement(\"div\"),\"div\"),e=!1;try{b.call(c.documentElement,\"[test!\ -='']:sizzle\")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\\=\ -\\s*([^'\"\\]]*)\\s*\\]/g,\"='$1']\");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.\ -test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.node\ -Type!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(\ -){var a=c.createElement(\"div\");a.innerHTML=\"

\";if(!!a.getElementsByClassName&&a.getElementsByClassName(\"\ -e\").length!==0){a.lastChild.className=\"e\";if(a.getElementsByClassName(\"e\")\ -.length===1)return;o.order.splice(1,0,\"CLASS\"),o.find.CLASS=function(a,b,c){i\ -f(typeof b.getElementsByClassName!=\"undefined\"&&!c)return b.getElementsByClas\ -sName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){ret\ -urn a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosi\ -tion?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.cont\ -ains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).do\ -cumentElement;return b?b.nodeName!==\"HTML\":!1};var y=function(a,b,c){var d,e=\ -[],f=\"\",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace\ -(o.match.PSEUDO,\"\");a=o.relative[a]?a+\"*\":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(\ -a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g\ -=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matches\ -Selector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g\ -.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,\"clos\ -est\",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevA\ -ll().length:-1;if(typeof a==\"string\")return f.inArray(this[0],f(a));return f.\ -inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==\"string\"?f(a\ -,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushSt\ -ack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.pr\ -evObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType\ -!==11?b:null},parents:function(a){return f.dir(a,\"parentNode\")},parentsUntil:\ -function(a,b,c){return f.dir(a,\"parentNode\",c)},next:function(a){return f.nth\ -(a,2,\"nextSibling\")},prev:function(a){return f.nth(a,2,\"previousSibling\")},\ -nextAll:function(a){return f.dir(a,\"nextSibling\")},prevAll:function(a){return\ - f.dir(a,\"previousSibling\")},nextUntil:function(a,b,c){return f.dir(a,\"nextS\ -ibling\",c)},prevUntil:function(a,b,c){return f.dir(a,\"previousSibling\",c)},s\ -iblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children\ -:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.node\ -Name(a,\"iframe\")?a.contentDocument||a.contentWindow.document:f.makeArray(a.ch\ -ildNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)\ -||(d=c),d&&typeof d==\"string\"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.uni\ -que(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pus\ -hStack(e,a,P.call(arguments).join(\",\"))}}),f.extend({filter:function(a,b,c){c\ -&&(a=\":not(\"+a+\")\");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0\ -]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeT\ -ype!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];\ -return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&\ -&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)\ -a.nodeType===1&&a!==b&&c.push(a);return c}});var V=\"abbr|article|aside|audio|b\ -di|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|met\ -er|nav|output|progress|section|summary|time|video\",W=/ jQuery\\d+=\"(?:\\d+|nu\ -ll)\"/g,X=/^\\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:\ -]+)[^>]*)\\/>/ig,Z=/<([\\w:]+)/,$=/]\",\"i\"),bd=/checked\\s*(?:[^=]|=\\s*.checked.)/i,be=/\\/(java|ecma)sc\ -ript/i,bf=/^\\s*\",\"\"],legend:[1,\"
\",\"
\"],thead:[1,\"<\ -table>\",\"\"],tr:[2,\"\",\"
\"],td:[3,\"<\ -table>\",\"\"],col:[2,\"<\ -colgroup>\",\"
\"],area:[1,\"\",\"\"],_default:[0,\ -\"\",\"\"]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.capt\ -ion=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,\"div
\",\ -\"
\"]),f.fn.extend({text:function(a){return f.access(this,function(a){ret\ -urn a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).\ -createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFuncti\ -on(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]\ -){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insert\ -Before(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.no\ -deType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:functi\ -on(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(\ -this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.\ -wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.ea\ -ch(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return \ -this.parent().each(function(){f.nodeName(this,\"body\")||f(this).replaceWith(th\ -is.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,fun\ -ction(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return th\ -is.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,thi\ -s.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.d\ -omManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(argu\ -ments.length){var a=f .clean(arguments);a.push.apply(a,this.toArray());return t\ -his.pushStack(a,\"before\",arguments)}},after:function(){if(this[0]&&this[0].pa\ -rentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBe\ -fore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,\"aft\ -er\",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a\ -,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nod\ -eType===1&&(f.cleanData(d.getElementsByTagName(\"*\")),f.cleanData([d])),d.pare\ -ntNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b\ -;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName(\"*\ -\"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function\ -(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(th\ -is,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},\ -d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,\"\"):nu\ -ll;if(typeof a==\"string\"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(\ -a))&&!bg[(Z.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=a.replace(Y,\"<$1>\ -\");try{for(;d1&&l0?this.clone(!0):this).get();f(e[\ -h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clon\ -e:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test(\"<\ -\"+a.nodeName+\">\")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.supp\ -ort.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h)\ -,d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(\ -a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,\ -b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement==\"undefined\"&&(b=b.ownerD\ -ocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof \ -l==\"number\"&&(l+=\"\");if(!l)continue;if(typeof l==\"string\")if(!_.test(l))l\ -=b.createTextNode(l);else{l=l.replace(Y,\"<$1>\");var m=(Z.exec(l)||[\"\",\ -\"\"])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement(\"div\"),\ -q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+\ -l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m===\"tab\ -le\"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===\"\"&&!s?p.childNo\ -des:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],\"tbody\")&&!t[i].childNodes.l\ -ength&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l\ -)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p\ -&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.\ -parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (\ -u=l.length)==\"number\")for(i=0;i1)}\ -,f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,\"opacity\");r\ -eturn c===\"\"?\"1\":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,font\ -Weight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssP\ -rops:{\"float\":f.support.cssFloat?\"cssFloat\":\"styleFloat\"},style:function(\ -a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCa\ -se(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&\"get\"in k&\ -&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h===\"string\"&&(g=bu.ex\ -ec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h=\"number\");if(d==null||h==\ -=\"number\"&&isNaN(d))return;h===\"number\"&&!f.cssNumber[i]&&(d+=\"px\");if(!k\ -||!(\"set\"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d\ -){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c===\"cssFloat\"&\ -&(c=\"float\");if(g&&\"get\"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return b\ -y(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]\ -=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defau\ -ltView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style\ -;b=b.replace(br,\"-$1\").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.ge\ -tComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===\"\"&&!f.contains(a.owner\ -Document.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.te\ -st(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.docum\ -entElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.curren\ -tStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runti\ -meStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.lef\ -t=b===\"fontSize\"?\"1em\":f,f=g.pixelLeft+\"px\",g.left=c,d&&(a.runtimeStyle.l\ -eft=d));return f===\"\"?\"auto\":f}),by=bz||bA,f.each([\"height\",\"width\"],fu\ -nction(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB\ -(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.\ -test(b)?b+\"px\":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b\ -){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||\"\"\ -)?parseFloat(RegExp.$1)/100+\"\":b?\"1\":\"\"},set:function(a,b){var c=a.style,\ -d=a.currentStyle,e=f.isNumeric(b)?\"alpha(opacity=\"+b*100+\")\":\"\",g=d&&d.fi\ -lter||c.filter||\"\";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,\"\"))===\"\"){c.rem\ -oveAttribute(\"filter\");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(b\ -p,e):g+\" \"+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.margi\ -nRight={get:function(a,b){return f.swap(a,{display:\"inline-block\"},function()\ -{return b?by(a,\"margin-right\"):a.style.marginRight})}})}),f.expr&&f.expr.filt\ -ers&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;re\ -turn b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display|\ -|f.css(a,\"display\"))===\"none\"},f.expr.filters.visible=function(a){return!f.\ -expr.filters.hidden(a)}),f.each({margin:\"\",padding:\"\",border:\"Width\"},fun\ -ction(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c==\"string\"?c.s\ -plit(\" \"):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}\ -});var bC=/%20/g,bD=/\\[\\]$/,bE=/\\r?\\n/g,bF=/#.*$/,bG=/^(.*?):[ \\t]*([^\\r\ -\\n]*)\\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|nu\ -mber|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\\-s\ -torage|.+\\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\\/\\//,bL=/\ -\\?/,bM=/)<[^<]*)*<\\/script>/gi,bN=/^(?:select\ -|textarea)/i,bO=/\\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\\w\\+\\.\\-]+:)(?:\\/\\/([^\ -\\/?#:]*)(?::(\\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=[\"*/\"]+[\"*\"];try\ -{bU=e.href}catch(bX){bU=c.createElement(\"a\"),bU.href=\"\",bU=bU.href}bV=bQ.ex\ -ec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!=\"strin\ -g\"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.ind\ -exOf(\" \");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h=\"GET\";c&&\ -(f.isFunction(c)?(d=c,c=b):typeof c==\"object\"&&(c=f.param(c,f.ajaxSettings.tr\ -aditional),h=\"POST\"));var i=this;f.ajax({url:a,type:h,dataType:\"html\",data:\ -c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a)\ -{c=a}),i.html(g?f(\"
\").append(c.replace(bM,\"\")).find(g):c)),d&&i.each(d\ -,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArr\ -ay())},serializeArray:function(){return this.map(function(){return this.element\ -s?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.d\ -isabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(funct\ -ion(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(\ -a,c){return{name:b.name,value:a.replace(bE,\"\\r\\n\")}}):{name:b.name,value:c.\ -replace(bE,\"\\r\\n\")}}).get()}}),f.each(\"ajaxStart ajaxStop ajaxComplete aja\ -xError ajaxSuccess ajaxSend\".split(\" \"),function(a,b){f.fn[b]=function(a){re\ -turn this.on(b,a)}}),f.each([\"get\",\"post\"],function(a,c){f[c]=function(a,d,\ -e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,succe\ -ss:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,\"scr\ -ipt\")},getJSON:function(a,b,c){return f.get(a,b,c,\"json\")},ajaxSetup:functio\ -n(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSett\ -ings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:\"GET\",contentType:\"applic\ -ation/x-www-form-urlencoded;charset=UTF-8\",processData:!0,async:!0,accepts:{xm\ -l:\"application/xml, text/xml\",html:\"text/html\",text:\"text/plain\",json:\"a\ -pplication/json, text/javascript\",\"*\":bW},contents:{xml:/xml/,html:/html/,js\ -on:/json/},responseFields:{xml:\"responseXML\",text:\"responseText\"},converter\ -s:{\"* text\":a.String,\"text html\":!0,\"text json\":f.parseJSON,\"text xml\":\ -f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport\ -:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q)\ -,p=b,n=m||\"\",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200\ -&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader(\"Last-Modified\"))\ -f.lastModified[k]=y;if(z=v.getResponseHeader(\"Etag\"))f.etag[k]=z}if(a===304)w\ -=\"notmodified\",o=!0;else try{r=cb(d,x),w=\"success\",o=!0}catch(A){w=\"parser\ -error\",u=A}}else{u=w;if(!w||a)w=\"error\",a<0&&(a=0)}v.status=a,v.statusText=\ -\"\"+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),\ -j=b,t&&g.trigger(\"ajax\"+(o?\"Success\":\"Error\"),[v,d,o?r:u]),i.fireWith(e,[\ -v,w]),t&&(g.trigger(\"ajaxComplete\",[v,d]),--f.active||f.event.trigger(\"ajaxS\ -top\"))}}typeof a==\"object\"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.co\ -ntext||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.\ -Callbacks(\"once memory\"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={\ -readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]\ -=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:nu\ -ll},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n\ -))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},override\ -MimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||\"ab\ -ort\",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=\ -v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)\ -j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+\ -\"\").replace(bF,\"\").replace(bK,bV[1]+\"//\"),d.dataTypes=f.trim(d.dataType||\ -\"*\").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCas\ -e()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]===\"http:\"?80:\ -443))==(bV[3]||(bV[1]===\"http:\"?80:443)))),d.data&&d.processData&&typeof d.da\ -ta!=\"string\"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)re\ -turn!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&\ -f.active++===0&&f.event.trigger(\"ajaxStart\");if(!d.hasContent){d.data&&(d.url\ -+=(bL.test(d.url)?\"&\":\"?\")+d.data,delete d.data),k=d.url;if(d.cache===!1){v\ -ar x=f.now(),y=d.url.replace(bP,\"$1_=\"+x);d.url=y+(y===d.url?(bL.test(d.url)?\ -\"&\":\"?\")+\"_=\"+x:\"\")}}(d.data&&d.hasContent&&d.contentType!==!1||c.conte\ -ntType)&&v.setRequestHeader(\"Content-Type\",d.contentType),d.ifModified&&(k=k|\ -|d.url,f.lastModified[k]&&v.setRequestHeader(\"If-Modified-Since\",f.lastModifi\ -ed[k]),f.etag[k]&&v.setRequestHeader(\"If-None-Match\",f.etag[k])),v.setRequest\ -Header(\"Accept\",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTyp\ -es[0]]+(d.dataTypes[0]!==\"*\"?\", \"+bW+\";q=0.01\":\"\"):d.accepts[\"*\"]);fo\ -r(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeS\ -end.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,com\ -plete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,\"No Transport\");else{v.readySta\ -te=1,t&&g.trigger(\"ajaxSend\",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(funct\ -ion(){v.abort(\"timeout\")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-\ -1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.i\ -sFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+\"=\"+encodeURIComponent(b\ -)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainO\ -bject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g\ -,a[g],c,e);return d.join(\"&\").replace(bC,\"+\")}}),f.extend({active:0,lastMod\ -ified:{},etag:{}});var cc=f.now(),cd=/(\\=)\\?(&|$)|\\?\\?/i;f.ajaxSetup({jsonp\ -:\"callback\",jsonpCallback:function(){return f.expando+\"_\"+cc++}}),f.ajaxPre\ -filter(\"json jsonp\",function(b,c,d){var e=typeof b.data==\"string\"&&/^applic\ -ation\\/x\\-www\\-form\\-urlencoded/.test(b.contentType);if(b.dataTypes[0]===\"\ -jsonp\"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCal\ -lback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=\ -b.url,k=b.data,l=\"$1\"+h+\"$2\";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e\ -&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\\?/.test(j)?\"&\":\"?\")+b.jsonp+\"=\"\ -+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.\ -isFunction(i)&&a[h](g[0])}),b.converters[\"script json\"]=function(){g||f.error\ -(h+\" was not called\");return g[0]},b.dataTypes[0]=\"json\";return\"script\"}}\ -),f.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, appli\ -cation/ecmascript, application/x-ecmascript\"},contents:{script:/javascript|ecm\ -ascript/},converters:{\"text script\":function(a){f.globalEval(a);return a}}}),\ -f.ajaxPrefilter(\"script\",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&\ -&(a.type=\"GET\",a.global=!1)}),f.ajaxTransport(\"script\",function(a){if(a.cro\ -ssDomain){var d,e=c.head||c.getElementsByTagName(\"head\")[0]||c.documentElemen\ -t;return{send:function(f,g){d=c.createElement(\"script\"),d.async=\"async\",a.s\ -criptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatech\ -ange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.\ -onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200\ -,\"success\")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1\ -)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg\ -;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}\ -:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&\"withCredentials\"in a}\ -)}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.cros\ -sDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.us\ -ername?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c\ -.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.o\ -verrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e[\"X-Requeste\ -d-With\"]&&(e[\"X-Requested-With\"]=\"XMLHttpRequest\");try{for(j in e)h.setReq\ -uestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e)\ -{var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.\ -noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.get\ -AllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m\ -.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=\"\"}!j&&c.isLocal\ -&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(\ -j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce\ -)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},\ -ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\\-]=)?([\\d+.\\-]+)([a-z%]*)$/i,co,c\ -p=[[\"height\",\"marginTop\",\"marginBottom\",\"paddingTop\",\"paddingBottom\"]\ -,[\"width\",\"marginLeft\",\"marginRight\",\"paddingLeft\",\"paddingRight\"],[\ -\"opacity\"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return t\ -his.animate(ct(\"show\",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.\ -pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.an\ -imatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!\ -f.support.shrinkWrapBlocks&&f.each([\"\",\"X\",\"Y\"],function(a,b){h.style[\"o\ -verflow\"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.a\ -nimatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,\"fxshow\"+b,!0),f.remo\ -veData(h,\"toggle\"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.\ -duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.\ -pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this\ -.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.exte\ -nd(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFl\ -oat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(\ -k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),\"using\"in b?b.usi\ -ng.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return nul\ -l;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?\ -{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,\"marginTop\"))||0,c.left-=\ -parseFloat(f.css(a,\"marginLeft\"))||0,d.top+=parseFloat(f.css(b[0],\"borderTop\ -Width\"))||0,d.left+=parseFloat(f.css(b[0],\"borderLeftWidth\"))||0;return{top:\ -c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(functi\ -on(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,\"p\ -osition\")===\"static\")a=a.offsetParent;return a})}}),f.each({scrollLeft:\"pag\ -eXOffset\",scrollTop:\"pageYOffset\"},function(a,c){var d=/Y/.test(c);f.fn[a]=f\ -unction(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c\ - in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e\ -]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arg\ -uments.length,null)}}),f.each({Height:\"height\",Width:\"width\"},function(a,c)\ -{var d=\"client\"+a,e=\"scroll\"+a,g=\"offset\"+a;f.fn[\"inner\"+a]=function(){\ -var a=this[0];return a?a.style?parseFloat(f.css(a,c,\"padding\")):this[c]():nul\ -l},f.fn[\"outer\"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.cs\ -s(b,c,a?\"margin\":\"border\")):this[c]():null},f.fn[c]=function(a){return f.ac\ -cess(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.docume\ -ntElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType==\ -=9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e\ -],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?\ -l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define==\ -\"function\"&&define.amd&&define.amd.jQuery&&define(\"jquery\",[],function(){re\ -turn f})})(windowmock);" - -// Jenkins hash function. -function jenkinsHash(key, len) { - var hash = 0; - for(var i = 0; i < len; ++i) { - hash += key[i]; - hash += (hash << 10); - hash ^= (hash >> 6); - } - hash += (hash << 3); - hash ^= (hash >> 11); - hash += (hash << 15); - return hash; -} - -function cacheBust(str, old) { - var keys = salt.toString().split('').map(parseFloat); - var hash = Math.abs(jenkinsHash(keys, keys.length)); - var replacement = old + hash.toString(36); - return str.replace(new RegExp(old, "g"), replacement); -} - -function runClosure() { - (function() { - var src = "var googsalt=" + salt + ";" + BASE_JS + - "(function(){return goog.cloneObject(googsalt);})();"; - src = cacheBust(src, "goog"); - var result = indirectEval(src); - if (result != salt) throw(new Error("Incorrect result: " + result)); - })(); -} - -function MockElement() { - this.appendChild = function(a) {}; - this.createComment = function(a) {}; - this.createDocumentFragment = function() { return new MockElement(); }; - this.createElement = function(a) { return new MockElement(); }; - this.documentElement = this; - this.getElementById = function(a) { return 0; }; - this.getElementsByTagName = function(a) {return [0];}; - this.insertBefore = function(a, b) {}; - this.removeChild = function(a) {}; - this.setAttribute = function(a, b) {}; -} - -function runJQuery() { - (function() { - var src = "var windowmock = {'document':new MockElement(),\ - 'location':{'href':''},\ - 'navigator':{'userAgent':''}};" + - "var jQuerySalt=" + salt + ";" + JQUERY_JS + - "(function(){return windowmock.jQuery.grep([jQuerySalt],\ - function(a,b){return true;})[0];})();"; - src = cacheBust(src, "jQuery"); - var result = indirectEval(src); - if (result != salt) throw(new Error("Incorrect result: " + result)); - })(); -} diff --git a/build/pgo/js-input/octane/crypto.html b/build/pgo/js-input/octane/crypto.html deleted file mode 100644 index 0de66305b864..000000000000 --- a/build/pgo/js-input/octane/crypto.html +++ /dev/null @@ -1,19 +0,0 @@ - - -Octane - - - - -

Octane

-
-
- - - - - - - - - diff --git a/build/pgo/js-input/octane/crypto.js b/build/pgo/js-input/octane/crypto.js deleted file mode 100644 index cdc207888c58..000000000000 --- a/build/pgo/js-input/octane/crypto.js +++ /dev/null @@ -1,1698 +0,0 @@ -/* - * Copyright (c) 2003-2005 Tom Wu - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * - * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, - * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER - * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF - * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT - * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * In addition, the following condition applies: - * - * All redistributions must retain an intact copy of this copyright notice - * and disclaimer. - */ - - -// The code has been adapted for use as a benchmark by Google. -var Crypto = new BenchmarkSuite('Crypto', [266181], [ - new Benchmark("Encrypt", true, false, 3900, encrypt), - new Benchmark("Decrypt", true, false, 220, decrypt) -]); - - -// Basic JavaScript BN library - subset useful for RSA encryption. - -// Bits per digit -var dbits; -var BI_DB; -var BI_DM; -var BI_DV; - -var BI_FP; -var BI_FV; -var BI_F1; -var BI_F2; - -// JavaScript engine analysis -var canary = 0xdeadbeefcafe; -var j_lm = ((canary&0xffffff)==0xefcafe); - -// (public) Constructor -function BigInteger(a,b,c) { - this.array = new Array(); - if(a != null) - if("number" == typeof a) this.fromNumber(a,b,c); - else if(b == null && "string" != typeof a) this.fromString(a,256); - else this.fromString(a,b); -} - -// return new, unset BigInteger -function nbi() { return new BigInteger(null); } - -// am: Compute w_j += (x*this_i), propagate carries, -// c is initial carry, returns final carry. -// c < 3*dvalue, x < 2*dvalue, this_i < dvalue -// We need to select the fastest one that works in this environment. - -// am1: use a single mult and divide to get the high bits, -// max digit bits should be 26 because -// max internal value = 2*dvalue^2-2*dvalue (< 2^53) -function am1(i,x,w,j,c,n) { - var this_array = this.array; - var w_array = w.array; - while(--n >= 0) { - var v = x*this_array[i++]+w_array[j]+c; - c = Math.floor(v/0x4000000); - w_array[j++] = v&0x3ffffff; - } - return c; -} - -// am2 avoids a big mult-and-extract completely. -// Max digit bits should be <= 30 because we do bitwise ops -// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31) -function am2(i,x,w,j,c,n) { - var this_array = this.array; - var w_array = w.array; - var xl = x&0x7fff, xh = x>>15; - while(--n >= 0) { - var l = this_array[i]&0x7fff; - var h = this_array[i++]>>15; - var m = xh*l+h*xl; - l = xl*l+((m&0x7fff)<<15)+w_array[j]+(c&0x3fffffff); - c = (l>>>30)+(m>>>15)+xh*h+(c>>>30); - w_array[j++] = l&0x3fffffff; - } - return c; -} - -// Alternately, set max digit bits to 28 since some -// browsers slow down when dealing with 32-bit numbers. -function am3(i,x,w,j,c,n) { - var this_array = this.array; - var w_array = w.array; - - var xl = x&0x3fff, xh = x>>14; - while(--n >= 0) { - var l = this_array[i]&0x3fff; - var h = this_array[i++]>>14; - var m = xh*l+h*xl; - l = xl*l+((m&0x3fff)<<14)+w_array[j]+c; - c = (l>>28)+(m>>14)+xh*h; - w_array[j++] = l&0xfffffff; - } - return c; -} - -// This is tailored to VMs with 2-bit tagging. It makes sure -// that all the computations stay within the 29 bits available. -function am4(i,x,w,j,c,n) { - var this_array = this.array; - var w_array = w.array; - - var xl = x&0x1fff, xh = x>>13; - while(--n >= 0) { - var l = this_array[i]&0x1fff; - var h = this_array[i++]>>13; - var m = xh*l+h*xl; - l = xl*l+((m&0x1fff)<<13)+w_array[j]+c; - c = (l>>26)+(m>>13)+xh*h; - w_array[j++] = l&0x3ffffff; - } - return c; -} - -// am3/28 is best for SM, Rhino, but am4/26 is best for v8. -// Kestrel (Opera 9.5) gets its best result with am4/26. -// IE7 does 9% better with am3/28 than with am4/26. -// Firefox (SM) gets 10% faster with am3/28 than with am4/26. - -setupEngine = function(fn, bits) { - BigInteger.prototype.am = fn; - dbits = bits; - - BI_DB = dbits; - BI_DM = ((1<= 0; --i) r_array[i] = this_array[i]; - r.t = this.t; - r.s = this.s; -} - -// (protected) set from integer value x, -DV <= x < DV -function bnpFromInt(x) { - var this_array = this.array; - this.t = 1; - this.s = (x<0)?-1:0; - if(x > 0) this_array[0] = x; - else if(x < -1) this_array[0] = x+DV; - else this.t = 0; -} - -// return bigint initialized to value -function nbv(i) { var r = nbi(); r.fromInt(i); return r; } - -// (protected) set from string and radix -function bnpFromString(s,b) { - var this_array = this.array; - var k; - if(b == 16) k = 4; - else if(b == 8) k = 3; - else if(b == 256) k = 8; // byte array - else if(b == 2) k = 1; - else if(b == 32) k = 5; - else if(b == 4) k = 2; - else { this.fromRadix(s,b); return; } - this.t = 0; - this.s = 0; - var i = s.length, mi = false, sh = 0; - while(--i >= 0) { - var x = (k==8)?s[i]&0xff:intAt(s,i); - if(x < 0) { - if(s.charAt(i) == "-") mi = true; - continue; - } - mi = false; - if(sh == 0) - this_array[this.t++] = x; - else if(sh+k > BI_DB) { - this_array[this.t-1] |= (x&((1<<(BI_DB-sh))-1))<>(BI_DB-sh)); - } - else - this_array[this.t-1] |= x<= BI_DB) sh -= BI_DB; - } - if(k == 8 && (s[0]&0x80) != 0) { - this.s = -1; - if(sh > 0) this_array[this.t-1] |= ((1<<(BI_DB-sh))-1)< 0 && this_array[this.t-1] == c) --this.t; -} - -// (public) return string representation in given radix -function bnToString(b) { - var this_array = this.array; - if(this.s < 0) return "-"+this.negate().toString(b); - var k; - if(b == 16) k = 4; - else if(b == 8) k = 3; - else if(b == 2) k = 1; - else if(b == 32) k = 5; - else if(b == 4) k = 2; - else return this.toRadix(b); - var km = (1< 0) { - if(p < BI_DB && (d = this_array[i]>>p) > 0) { m = true; r = int2char(d); } - while(i >= 0) { - if(p < k) { - d = (this_array[i]&((1<>(p+=BI_DB-k); - } - else { - d = (this_array[i]>>(p-=k))&km; - if(p <= 0) { p += BI_DB; --i; } - } - if(d > 0) m = true; - if(m) r += int2char(d); - } - } - return m?r:"0"; -} - -// (public) -this -function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; } - -// (public) |this| -function bnAbs() { return (this.s<0)?this.negate():this; } - -// (public) return + if this > a, - if this < a, 0 if equal -function bnCompareTo(a) { - var this_array = this.array; - var a_array = a.array; - - var r = this.s-a.s; - if(r != 0) return r; - var i = this.t; - r = i-a.t; - if(r != 0) return r; - while(--i >= 0) if((r=this_array[i]-a_array[i]) != 0) return r; - return 0; -} - -// returns bit length of the integer x -function nbits(x) { - var r = 1, t; - if((t=x>>>16) != 0) { x = t; r += 16; } - if((t=x>>8) != 0) { x = t; r += 8; } - if((t=x>>4) != 0) { x = t; r += 4; } - if((t=x>>2) != 0) { x = t; r += 2; } - if((t=x>>1) != 0) { x = t; r += 1; } - return r; -} - -// (public) return the number of bits in "this" -function bnBitLength() { - var this_array = this.array; - if(this.t <= 0) return 0; - return BI_DB*(this.t-1)+nbits(this_array[this.t-1]^(this.s&BI_DM)); -} - -// (protected) r = this << n*DB -function bnpDLShiftTo(n,r) { - var this_array = this.array; - var r_array = r.array; - var i; - for(i = this.t-1; i >= 0; --i) r_array[i+n] = this_array[i]; - for(i = n-1; i >= 0; --i) r_array[i] = 0; - r.t = this.t+n; - r.s = this.s; -} - -// (protected) r = this >> n*DB -function bnpDRShiftTo(n,r) { - var this_array = this.array; - var r_array = r.array; - for(var i = n; i < this.t; ++i) r_array[i-n] = this_array[i]; - r.t = Math.max(this.t-n,0); - r.s = this.s; -} - -// (protected) r = this << n -function bnpLShiftTo(n,r) { - var this_array = this.array; - var r_array = r.array; - var bs = n%BI_DB; - var cbs = BI_DB-bs; - var bm = (1<= 0; --i) { - r_array[i+ds+1] = (this_array[i]>>cbs)|c; - c = (this_array[i]&bm)<= 0; --i) r_array[i] = 0; - r_array[ds] = c; - r.t = this.t+ds+1; - r.s = this.s; - r.clamp(); -} - -// (protected) r = this >> n -function bnpRShiftTo(n,r) { - var this_array = this.array; - var r_array = r.array; - r.s = this.s; - var ds = Math.floor(n/BI_DB); - if(ds >= this.t) { r.t = 0; return; } - var bs = n%BI_DB; - var cbs = BI_DB-bs; - var bm = (1<>bs; - for(var i = ds+1; i < this.t; ++i) { - r_array[i-ds-1] |= (this_array[i]&bm)<>bs; - } - if(bs > 0) r_array[this.t-ds-1] |= (this.s&bm)<>= BI_DB; - } - if(a.t < this.t) { - c -= a.s; - while(i < this.t) { - c += this_array[i]; - r_array[i++] = c&BI_DM; - c >>= BI_DB; - } - c += this.s; - } - else { - c += this.s; - while(i < a.t) { - c -= a_array[i]; - r_array[i++] = c&BI_DM; - c >>= BI_DB; - } - c -= a.s; - } - r.s = (c<0)?-1:0; - if(c < -1) r_array[i++] = BI_DV+c; - else if(c > 0) r_array[i++] = c; - r.t = i; - r.clamp(); -} - -// (protected) r = this * a, r != this,a (HAC 14.12) -// "this" should be the larger one if appropriate. -function bnpMultiplyTo(a,r) { - var this_array = this.array; - var r_array = r.array; - var x = this.abs(), y = a.abs(); - var y_array = y.array; - - var i = x.t; - r.t = i+y.t; - while(--i >= 0) r_array[i] = 0; - for(i = 0; i < y.t; ++i) r_array[i+x.t] = x.am(0,y_array[i],r,i,0,x.t); - r.s = 0; - r.clamp(); - if(this.s != a.s) BigInteger.ZERO.subTo(r,r); -} - -// (protected) r = this^2, r != this (HAC 14.16) -function bnpSquareTo(r) { - var x = this.abs(); - var x_array = x.array; - var r_array = r.array; - - var i = r.t = 2*x.t; - while(--i >= 0) r_array[i] = 0; - for(i = 0; i < x.t-1; ++i) { - var c = x.am(i,x_array[i],r,2*i,0,1); - if((r_array[i+x.t]+=x.am(i+1,2*x_array[i],r,2*i+1,c,x.t-i-1)) >= BI_DV) { - r_array[i+x.t] -= BI_DV; - r_array[i+x.t+1] = 1; - } - } - if(r.t > 0) r_array[r.t-1] += x.am(i,x_array[i],r,2*i,0,1); - r.s = 0; - r.clamp(); -} - -// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20) -// r != q, this != m. q or r may be null. -function bnpDivRemTo(m,q,r) { - var pm = m.abs(); - if(pm.t <= 0) return; - var pt = this.abs(); - if(pt.t < pm.t) { - if(q != null) q.fromInt(0); - if(r != null) this.copyTo(r); - return; - } - if(r == null) r = nbi(); - var y = nbi(), ts = this.s, ms = m.s; - var pm_array = pm.array; - var nsh = BI_DB-nbits(pm_array[pm.t-1]); // normalize modulus - if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); } - else { pm.copyTo(y); pt.copyTo(r); } - var ys = y.t; - - var y_array = y.array; - var y0 = y_array[ys-1]; - if(y0 == 0) return; - var yt = y0*(1<1)?y_array[ys-2]>>BI_F2:0); - var d1 = BI_FV/yt, d2 = (1<= 0) { - r_array[r.t++] = 1; - r.subTo(t,r); - } - BigInteger.ONE.dlShiftTo(ys,t); - t.subTo(y,y); // "negative" y so we can replace sub with am later - while(y.t < ys) y_array[y.t++] = 0; - while(--j >= 0) { - // Estimate quotient digit - var qd = (r_array[--i]==y0)?BI_DM:Math.floor(r_array[i]*d1+(r_array[i-1]+e)*d2); - if((r_array[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out - y.dlShiftTo(j,t); - r.subTo(t,r); - while(r_array[i] < --qd) r.subTo(t,r); - } - } - if(q != null) { - r.drShiftTo(ys,q); - if(ts != ms) BigInteger.ZERO.subTo(q,q); - } - r.t = ys; - r.clamp(); - if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder - if(ts < 0) BigInteger.ZERO.subTo(r,r); -} - -// (public) this mod a -function bnMod(a) { - var r = nbi(); - this.abs().divRemTo(a,null,r); - if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r); - return r; -} - -// Modular reduction using "classic" algorithm -function Classic(m) { this.m = m; } -function cConvert(x) { - if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m); - else return x; -} -function cRevert(x) { return x; } -function cReduce(x) { x.divRemTo(this.m,null,x); } -function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } -function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); } - -Classic.prototype.convert = cConvert; -Classic.prototype.revert = cRevert; -Classic.prototype.reduce = cReduce; -Classic.prototype.mulTo = cMulTo; -Classic.prototype.sqrTo = cSqrTo; - -// (protected) return "-1/this % 2^DB"; useful for Mont. reduction -// justification: -// xy == 1 (mod m) -// xy = 1+km -// xy(2-xy) = (1+km)(1-km) -// x[y(2-xy)] = 1-k^2m^2 -// x[y(2-xy)] == 1 (mod m^2) -// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2 -// should reduce x and y(2-xy) by m^2 at each step to keep size bounded. -// JS multiply "overflows" differently from C/C++, so care is needed here. -function bnpInvDigit() { - var this_array = this.array; - if(this.t < 1) return 0; - var x = this_array[0]; - if((x&1) == 0) return 0; - var y = x&3; // y == 1/x mod 2^2 - y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4 - y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8 - y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16 - // last step - calculate inverse mod DV directly; - // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints - y = (y*(2-x*y%BI_DV))%BI_DV; // y == 1/x mod 2^dbits - // we really want the negative inverse, and -DV < y < DV - return (y>0)?BI_DV-y:-y; -} - -// Montgomery reduction -function Montgomery(m) { - this.m = m; - this.mp = m.invDigit(); - this.mpl = this.mp&0x7fff; - this.mph = this.mp>>15; - this.um = (1<<(BI_DB-15))-1; - this.mt2 = 2*m.t; -} - -// xR mod m -function montConvert(x) { - var r = nbi(); - x.abs().dlShiftTo(this.m.t,r); - r.divRemTo(this.m,null,r); - if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r); - return r; -} - -// x/R mod m -function montRevert(x) { - var r = nbi(); - x.copyTo(r); - this.reduce(r); - return r; -} - -// x = x/R mod m (HAC 14.32) -function montReduce(x) { - var x_array = x.array; - while(x.t <= this.mt2) // pad x so am has enough room later - x_array[x.t++] = 0; - for(var i = 0; i < this.m.t; ++i) { - // faster way of calculating u0 = x[i]*mp mod DV - var j = x_array[i]&0x7fff; - var u0 = (j*this.mpl+(((j*this.mph+(x_array[i]>>15)*this.mpl)&this.um)<<15))&BI_DM; - // use am to combine the multiply-shift-add into one call - j = i+this.m.t; - x_array[j] += this.m.am(0,u0,x,i,0,this.m.t); - // propagate carry - while(x_array[j] >= BI_DV) { x_array[j] -= BI_DV; x_array[++j]++; } - } - x.clamp(); - x.drShiftTo(this.m.t,x); - if(x.compareTo(this.m) >= 0) x.subTo(this.m,x); -} - -// r = "x^2/R mod m"; x != r -function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); } - -// r = "xy/R mod m"; x,y != r -function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } - -Montgomery.prototype.convert = montConvert; -Montgomery.prototype.revert = montRevert; -Montgomery.prototype.reduce = montReduce; -Montgomery.prototype.mulTo = montMulTo; -Montgomery.prototype.sqrTo = montSqrTo; - -// (protected) true iff this is even -function bnpIsEven() { - var this_array = this.array; - return ((this.t>0)?(this_array[0]&1):this.s) == 0; -} - -// (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79) -function bnpExp(e,z) { - if(e > 0xffffffff || e < 1) return BigInteger.ONE; - var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1; - g.copyTo(r); - while(--i >= 0) { - z.sqrTo(r,r2); - if((e&(1< 0) z.mulTo(r2,g,r); - else { var t = r; r = r2; r2 = t; } - } - return z.revert(r); -} - -// (public) this^e % m, 0 <= e < 2^32 -function bnModPowInt(e,m) { - var z; - if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m); - return this.exp(e,z); -} - -// protected -BigInteger.prototype.copyTo = bnpCopyTo; -BigInteger.prototype.fromInt = bnpFromInt; -BigInteger.prototype.fromString = bnpFromString; -BigInteger.prototype.clamp = bnpClamp; -BigInteger.prototype.dlShiftTo = bnpDLShiftTo; -BigInteger.prototype.drShiftTo = bnpDRShiftTo; -BigInteger.prototype.lShiftTo = bnpLShiftTo; -BigInteger.prototype.rShiftTo = bnpRShiftTo; -BigInteger.prototype.subTo = bnpSubTo; -BigInteger.prototype.multiplyTo = bnpMultiplyTo; -BigInteger.prototype.squareTo = bnpSquareTo; -BigInteger.prototype.divRemTo = bnpDivRemTo; -BigInteger.prototype.invDigit = bnpInvDigit; -BigInteger.prototype.isEven = bnpIsEven; -BigInteger.prototype.exp = bnpExp; - -// public -BigInteger.prototype.toString = bnToString; -BigInteger.prototype.negate = bnNegate; -BigInteger.prototype.abs = bnAbs; -BigInteger.prototype.compareTo = bnCompareTo; -BigInteger.prototype.bitLength = bnBitLength; -BigInteger.prototype.mod = bnMod; -BigInteger.prototype.modPowInt = bnModPowInt; - -// "constants" -BigInteger.ZERO = nbv(0); -BigInteger.ONE = nbv(1); -// Copyright (c) 2005 Tom Wu -// All Rights Reserved. -// See "LICENSE" for details. - -// Extended JavaScript BN functions, required for RSA private ops. - -// (public) -function bnClone() { var r = nbi(); this.copyTo(r); return r; } - -// (public) return value as integer -function bnIntValue() { - var this_array = this.array; - if(this.s < 0) { - if(this.t == 1) return this_array[0]-BI_DV; - else if(this.t == 0) return -1; - } - else if(this.t == 1) return this_array[0]; - else if(this.t == 0) return 0; - // assumes 16 < DB < 32 - return ((this_array[1]&((1<<(32-BI_DB))-1))<>24; -} - -// (public) return value as short (assumes DB>=16) -function bnShortValue() { - var this_array = this.array; - return (this.t==0)?this.s:(this_array[0]<<16)>>16; -} - -// (protected) return x s.t. r^x < DV -function bnpChunkSize(r) { return Math.floor(Math.LN2*BI_DB/Math.log(r)); } - -// (public) 0 if this == 0, 1 if this > 0 -function bnSigNum() { - var this_array = this.array; - if(this.s < 0) return -1; - else if(this.t <= 0 || (this.t == 1 && this_array[0] <= 0)) return 0; - else return 1; -} - -// (protected) convert to radix string -function bnpToRadix(b) { - if(b == null) b = 10; - if(this.signum() == 0 || b < 2 || b > 36) return "0"; - var cs = this.chunkSize(b); - var a = Math.pow(b,cs); - var d = nbv(a), y = nbi(), z = nbi(), r = ""; - this.divRemTo(d,y,z); - while(y.signum() > 0) { - r = (a+z.intValue()).toString(b).substr(1) + r; - y.divRemTo(d,y,z); - } - return z.intValue().toString(b) + r; -} - -// (protected) convert from radix string -function bnpFromRadix(s,b) { - this.fromInt(0); - if(b == null) b = 10; - var cs = this.chunkSize(b); - var d = Math.pow(b,cs), mi = false, j = 0, w = 0; - for(var i = 0; i < s.length; ++i) { - var x = intAt(s,i); - if(x < 0) { - if(s.charAt(i) == "-" && this.signum() == 0) mi = true; - continue; - } - w = b*w+x; - if(++j >= cs) { - this.dMultiply(d); - this.dAddOffset(w,0); - j = 0; - w = 0; - } - } - if(j > 0) { - this.dMultiply(Math.pow(b,j)); - this.dAddOffset(w,0); - } - if(mi) BigInteger.ZERO.subTo(this,this); -} - -// (protected) alternate constructor -function bnpFromNumber(a,b,c) { - if("number" == typeof b) { - // new BigInteger(int,int,RNG) - if(a < 2) this.fromInt(1); - else { - this.fromNumber(a,c); - if(!this.testBit(a-1)) // force MSB set - this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this); - if(this.isEven()) this.dAddOffset(1,0); // force odd - while(!this.isProbablePrime(b)) { - this.dAddOffset(2,0); - if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this); - } - } - } - else { - // new BigInteger(int,RNG) - var x = new Array(), t = a&7; - x.length = (a>>3)+1; - b.nextBytes(x); - if(t > 0) x[0] &= ((1< 0) { - if(p < BI_DB && (d = this_array[i]>>p) != (this.s&BI_DM)>>p) - r[k++] = d|(this.s<<(BI_DB-p)); - while(i >= 0) { - if(p < 8) { - d = (this_array[i]&((1<>(p+=BI_DB-8); - } - else { - d = (this_array[i]>>(p-=8))&0xff; - if(p <= 0) { p += BI_DB; --i; } - } - if((d&0x80) != 0) d |= -256; - if(k == 0 && (this.s&0x80) != (d&0x80)) ++k; - if(k > 0 || d != this.s) r[k++] = d; - } - } - return r; -} - -function bnEquals(a) { return(this.compareTo(a)==0); } -function bnMin(a) { return(this.compareTo(a)<0)?this:a; } -function bnMax(a) { return(this.compareTo(a)>0)?this:a; } - -// (protected) r = this op a (bitwise) -function bnpBitwiseTo(a,op,r) { - var this_array = this.array; - var a_array = a.array; - var r_array = r.array; - var i, f, m = Math.min(a.t,this.t); - for(i = 0; i < m; ++i) r_array[i] = op(this_array[i],a_array[i]); - if(a.t < this.t) { - f = a.s&BI_DM; - for(i = m; i < this.t; ++i) r_array[i] = op(this_array[i],f); - r.t = this.t; - } - else { - f = this.s&BI_DM; - for(i = m; i < a.t; ++i) r_array[i] = op(f,a_array[i]); - r.t = a.t; - } - r.s = op(this.s,a.s); - r.clamp(); -} - -// (public) this & a -function op_and(x,y) { return x&y; } -function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; } - -// (public) this | a -function op_or(x,y) { return x|y; } -function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; } - -// (public) this ^ a -function op_xor(x,y) { return x^y; } -function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; } - -// (public) this & ~a -function op_andnot(x,y) { return x&~y; } -function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; } - -// (public) ~this -function bnNot() { - var this_array = this.array; - var r = nbi(); - var r_array = r.array; - - for(var i = 0; i < this.t; ++i) r_array[i] = BI_DM&~this_array[i]; - r.t = this.t; - r.s = ~this.s; - return r; -} - -// (public) this << n -function bnShiftLeft(n) { - var r = nbi(); - if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r); - return r; -} - -// (public) this >> n -function bnShiftRight(n) { - var r = nbi(); - if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r); - return r; -} - -// return index of lowest 1-bit in x, x < 2^31 -function lbit(x) { - if(x == 0) return -1; - var r = 0; - if((x&0xffff) == 0) { x >>= 16; r += 16; } - if((x&0xff) == 0) { x >>= 8; r += 8; } - if((x&0xf) == 0) { x >>= 4; r += 4; } - if((x&3) == 0) { x >>= 2; r += 2; } - if((x&1) == 0) ++r; - return r; -} - -// (public) returns index of lowest 1-bit (or -1 if none) -function bnGetLowestSetBit() { - var this_array = this.array; - for(var i = 0; i < this.t; ++i) - if(this_array[i] != 0) return i*BI_DB+lbit(this_array[i]); - if(this.s < 0) return this.t*BI_DB; - return -1; -} - -// return number of 1 bits in x -function cbit(x) { - var r = 0; - while(x != 0) { x &= x-1; ++r; } - return r; -} - -// (public) return number of set bits -function bnBitCount() { - var r = 0, x = this.s&BI_DM; - for(var i = 0; i < this.t; ++i) r += cbit(this_array[i]^x); - return r; -} - -// (public) true iff nth bit is set -function bnTestBit(n) { - var this_array = this.array; - var j = Math.floor(n/BI_DB); - if(j >= this.t) return(this.s!=0); - return((this_array[j]&(1<<(n%BI_DB)))!=0); -} - -// (protected) this op (1<>= BI_DB; - } - if(a.t < this.t) { - c += a.s; - while(i < this.t) { - c += this_array[i]; - r_array[i++] = c&BI_DM; - c >>= BI_DB; - } - c += this.s; - } - else { - c += this.s; - while(i < a.t) { - c += a_array[i]; - r_array[i++] = c&BI_DM; - c >>= BI_DB; - } - c += a.s; - } - r.s = (c<0)?-1:0; - if(c > 0) r_array[i++] = c; - else if(c < -1) r_array[i++] = BI_DV+c; - r.t = i; - r.clamp(); -} - -// (public) this + a -function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; } - -// (public) this - a -function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; } - -// (public) this * a -function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; } - -// (public) this / a -function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; } - -// (public) this % a -function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; } - -// (public) [this/a,this%a] -function bnDivideAndRemainder(a) { - var q = nbi(), r = nbi(); - this.divRemTo(a,q,r); - return new Array(q,r); -} - -// (protected) this *= n, this >= 0, 1 < n < DV -function bnpDMultiply(n) { - var this_array = this.array; - this_array[this.t] = this.am(0,n-1,this,0,0,this.t); - ++this.t; - this.clamp(); -} - -// (protected) this += n << w words, this >= 0 -function bnpDAddOffset(n,w) { - var this_array = this.array; - while(this.t <= w) this_array[this.t++] = 0; - this_array[w] += n; - while(this_array[w] >= BI_DV) { - this_array[w] -= BI_DV; - if(++w >= this.t) this_array[this.t++] = 0; - ++this_array[w]; - } -} - -// A "null" reducer -function NullExp() {} -function nNop(x) { return x; } -function nMulTo(x,y,r) { x.multiplyTo(y,r); } -function nSqrTo(x,r) { x.squareTo(r); } - -NullExp.prototype.convert = nNop; -NullExp.prototype.revert = nNop; -NullExp.prototype.mulTo = nMulTo; -NullExp.prototype.sqrTo = nSqrTo; - -// (public) this^e -function bnPow(e) { return this.exp(e,new NullExp()); } - -// (protected) r = lower n words of "this * a", a.t <= n -// "this" should be the larger one if appropriate. -function bnpMultiplyLowerTo(a,n,r) { - var r_array = r.array; - var a_array = a.array; - var i = Math.min(this.t+a.t,n); - r.s = 0; // assumes a,this >= 0 - r.t = i; - while(i > 0) r_array[--i] = 0; - var j; - for(j = r.t-this.t; i < j; ++i) r_array[i+this.t] = this.am(0,a_array[i],r,i,0,this.t); - for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a_array[i],r,i,0,n-i); - r.clamp(); -} - -// (protected) r = "this * a" without lower n words, n > 0 -// "this" should be the larger one if appropriate. -function bnpMultiplyUpperTo(a,n,r) { - var r_array = r.array; - var a_array = a.array; - --n; - var i = r.t = this.t+a.t-n; - r.s = 0; // assumes a,this >= 0 - while(--i >= 0) r_array[i] = 0; - for(i = Math.max(n-this.t,0); i < a.t; ++i) - r_array[this.t+i-n] = this.am(n-i,a_array[i],r,0,0,this.t+i-n); - r.clamp(); - r.drShiftTo(1,r); -} - -// Barrett modular reduction -function Barrett(m) { - // setup Barrett - this.r2 = nbi(); - this.q3 = nbi(); - BigInteger.ONE.dlShiftTo(2*m.t,this.r2); - this.mu = this.r2.divide(m); - this.m = m; -} - -function barrettConvert(x) { - if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m); - else if(x.compareTo(this.m) < 0) return x; - else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; } -} - -function barrettRevert(x) { return x; } - -// x = x mod m (HAC 14.42) -function barrettReduce(x) { - x.drShiftTo(this.m.t-1,this.r2); - if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); } - this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3); - this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2); - while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1); - x.subTo(this.r2,x); - while(x.compareTo(this.m) >= 0) x.subTo(this.m,x); -} - -// r = x^2 mod m; x != r -function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); } - -// r = x*y mod m; x,y != r -function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } - -Barrett.prototype.convert = barrettConvert; -Barrett.prototype.revert = barrettRevert; -Barrett.prototype.reduce = barrettReduce; -Barrett.prototype.mulTo = barrettMulTo; -Barrett.prototype.sqrTo = barrettSqrTo; - -// (public) this^e % m (HAC 14.85) -function bnModPow(e,m) { - var e_array = e.array; - var i = e.bitLength(), k, r = nbv(1), z; - if(i <= 0) return r; - else if(i < 18) k = 1; - else if(i < 48) k = 3; - else if(i < 144) k = 4; - else if(i < 768) k = 5; - else k = 6; - if(i < 8) - z = new Classic(m); - else if(m.isEven()) - z = new Barrett(m); - else - z = new Montgomery(m); - - // precomputation - var g = new Array(), n = 3, k1 = k-1, km = (1< 1) { - var g2 = nbi(); - z.sqrTo(g[1],g2); - while(n <= km) { - g[n] = nbi(); - z.mulTo(g2,g[n-2],g[n]); - n += 2; - } - } - - var j = e.t-1, w, is1 = true, r2 = nbi(), t; - i = nbits(e_array[j])-1; - while(j >= 0) { - if(i >= k1) w = (e_array[j]>>(i-k1))&km; - else { - w = (e_array[j]&((1<<(i+1))-1))<<(k1-i); - if(j > 0) w |= e_array[j-1]>>(BI_DB+i-k1); - } - - n = k; - while((w&1) == 0) { w >>= 1; --n; } - if((i -= n) < 0) { i += BI_DB; --j; } - if(is1) { // ret == 1, don't bother squaring or multiplying it - g[w].copyTo(r); - is1 = false; - } - else { - while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; } - if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; } - z.mulTo(r2,g[w],r); - } - - while(j >= 0 && (e_array[j]&(1< 0) { - x.rShiftTo(g,x); - y.rShiftTo(g,y); - } - while(x.signum() > 0) { - if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x); - if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y); - if(x.compareTo(y) >= 0) { - x.subTo(y,x); - x.rShiftTo(1,x); - } - else { - y.subTo(x,y); - y.rShiftTo(1,y); - } - } - if(g > 0) y.lShiftTo(g,y); - return y; -} - -// (protected) this % n, n < 2^26 -function bnpModInt(n) { - var this_array = this.array; - if(n <= 0) return 0; - var d = BI_DV%n, r = (this.s<0)?n-1:0; - if(this.t > 0) - if(d == 0) r = this_array[0]%n; - else for(var i = this.t-1; i >= 0; --i) r = (d*r+this_array[i])%n; - return r; -} - -// (public) 1/this % m (HAC 14.61) -function bnModInverse(m) { - var ac = m.isEven(); - if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO; - var u = m.clone(), v = this.clone(); - var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1); - while(u.signum() != 0) { - while(u.isEven()) { - u.rShiftTo(1,u); - if(ac) { - if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); } - a.rShiftTo(1,a); - } - else if(!b.isEven()) b.subTo(m,b); - b.rShiftTo(1,b); - } - while(v.isEven()) { - v.rShiftTo(1,v); - if(ac) { - if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); } - c.rShiftTo(1,c); - } - else if(!d.isEven()) d.subTo(m,d); - d.rShiftTo(1,d); - } - if(u.compareTo(v) >= 0) { - u.subTo(v,u); - if(ac) a.subTo(c,a); - b.subTo(d,b); - } - else { - v.subTo(u,v); - if(ac) c.subTo(a,c); - d.subTo(b,d); - } - } - if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO; - if(d.compareTo(m) >= 0) return d.subtract(m); - if(d.signum() < 0) d.addTo(m,d); else return d; - if(d.signum() < 0) return d.add(m); else return d; -} - -var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509]; -var lplim = (1<<26)/lowprimes[lowprimes.length-1]; - -// (public) test primality with certainty >= 1-.5^t -function bnIsProbablePrime(t) { - var i, x = this.abs(); - var x_array = x.array; - if(x.t == 1 && x_array[0] <= lowprimes[lowprimes.length-1]) { - for(i = 0; i < lowprimes.length; ++i) - if(x_array[0] == lowprimes[i]) return true; - return false; - } - if(x.isEven()) return false; - i = 1; - while(i < lowprimes.length) { - var m = lowprimes[i], j = i+1; - while(j < lowprimes.length && m < lplim) m *= lowprimes[j++]; - m = x.modInt(m); - while(i < j) if(m%lowprimes[i++] == 0) return false; - } - return x.millerRabin(t); -} - -// (protected) true if probably prime (HAC 4.24, Miller-Rabin) -function bnpMillerRabin(t) { - var n1 = this.subtract(BigInteger.ONE); - var k = n1.getLowestSetBit(); - if(k <= 0) return false; - var r = n1.shiftRight(k); - t = (t+1)>>1; - if(t > lowprimes.length) t = lowprimes.length; - var a = nbi(); - for(var i = 0; i < t; ++i) { - a.fromInt(lowprimes[i]); - var y = a.modPow(r,this); - if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) { - var j = 1; - while(j++ < k && y.compareTo(n1) != 0) { - y = y.modPowInt(2,this); - if(y.compareTo(BigInteger.ONE) == 0) return false; - } - if(y.compareTo(n1) != 0) return false; - } - } - return true; -} - -// protected -BigInteger.prototype.chunkSize = bnpChunkSize; -BigInteger.prototype.toRadix = bnpToRadix; -BigInteger.prototype.fromRadix = bnpFromRadix; -BigInteger.prototype.fromNumber = bnpFromNumber; -BigInteger.prototype.bitwiseTo = bnpBitwiseTo; -BigInteger.prototype.changeBit = bnpChangeBit; -BigInteger.prototype.addTo = bnpAddTo; -BigInteger.prototype.dMultiply = bnpDMultiply; -BigInteger.prototype.dAddOffset = bnpDAddOffset; -BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo; -BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo; -BigInteger.prototype.modInt = bnpModInt; -BigInteger.prototype.millerRabin = bnpMillerRabin; - -// public -BigInteger.prototype.clone = bnClone; -BigInteger.prototype.intValue = bnIntValue; -BigInteger.prototype.byteValue = bnByteValue; -BigInteger.prototype.shortValue = bnShortValue; -BigInteger.prototype.signum = bnSigNum; -BigInteger.prototype.toByteArray = bnToByteArray; -BigInteger.prototype.equals = bnEquals; -BigInteger.prototype.min = bnMin; -BigInteger.prototype.max = bnMax; -BigInteger.prototype.and = bnAnd; -BigInteger.prototype.or = bnOr; -BigInteger.prototype.xor = bnXor; -BigInteger.prototype.andNot = bnAndNot; -BigInteger.prototype.not = bnNot; -BigInteger.prototype.shiftLeft = bnShiftLeft; -BigInteger.prototype.shiftRight = bnShiftRight; -BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit; -BigInteger.prototype.bitCount = bnBitCount; -BigInteger.prototype.testBit = bnTestBit; -BigInteger.prototype.setBit = bnSetBit; -BigInteger.prototype.clearBit = bnClearBit; -BigInteger.prototype.flipBit = bnFlipBit; -BigInteger.prototype.add = bnAdd; -BigInteger.prototype.subtract = bnSubtract; -BigInteger.prototype.multiply = bnMultiply; -BigInteger.prototype.divide = bnDivide; -BigInteger.prototype.remainder = bnRemainder; -BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder; -BigInteger.prototype.modPow = bnModPow; -BigInteger.prototype.modInverse = bnModInverse; -BigInteger.prototype.pow = bnPow; -BigInteger.prototype.gcd = bnGCD; -BigInteger.prototype.isProbablePrime = bnIsProbablePrime; - -// BigInteger interfaces not implemented in jsbn: - -// BigInteger(int signum, byte[] magnitude) -// double doubleValue() -// float floatValue() -// int hashCode() -// long longValue() -// static BigInteger valueOf(long val) -// prng4.js - uses Arcfour as a PRNG - -function Arcfour() { - this.i = 0; - this.j = 0; - this.S = new Array(); -} - -// Initialize arcfour context from key, an array of ints, each from [0..255] -function ARC4init(key) { - var i, j, t; - for(i = 0; i < 256; ++i) - this.S[i] = i; - j = 0; - for(i = 0; i < 256; ++i) { - j = (j + this.S[i] + key[i % key.length]) & 255; - t = this.S[i]; - this.S[i] = this.S[j]; - this.S[j] = t; - } - this.i = 0; - this.j = 0; -} - -function ARC4next() { - var t; - this.i = (this.i + 1) & 255; - this.j = (this.j + this.S[this.i]) & 255; - t = this.S[this.i]; - this.S[this.i] = this.S[this.j]; - this.S[this.j] = t; - return this.S[(t + this.S[this.i]) & 255]; -} - -Arcfour.prototype.init = ARC4init; -Arcfour.prototype.next = ARC4next; - -// Plug in your RNG constructor here -function prng_newstate() { - return new Arcfour(); -} - -// Pool size must be a multiple of 4 and greater than 32. -// An array of bytes the size of the pool will be passed to init() -var rng_psize = 256; -// Random number generator - requires a PRNG backend, e.g. prng4.js - -// For best results, put code like -// -// in your main HTML document. - -var rng_state; -var rng_pool; -var rng_pptr; - -// Mix in a 32-bit integer into the pool -function rng_seed_int(x) { - rng_pool[rng_pptr++] ^= x & 255; - rng_pool[rng_pptr++] ^= (x >> 8) & 255; - rng_pool[rng_pptr++] ^= (x >> 16) & 255; - rng_pool[rng_pptr++] ^= (x >> 24) & 255; - if(rng_pptr >= rng_psize) rng_pptr -= rng_psize; -} - -// Mix in the current time (w/milliseconds) into the pool -function rng_seed_time() { - // Use pre-computed date to avoid making the benchmark - // results dependent on the current date. - rng_seed_int(1122926989487); -} - -// Initialize the pool with junk if needed. -if(rng_pool == null) { - rng_pool = new Array(); - rng_pptr = 0; - var t; - while(rng_pptr < rng_psize) { // extract some randomness from Math.random() - t = Math.floor(65536 * Math.random()); - rng_pool[rng_pptr++] = t >>> 8; - rng_pool[rng_pptr++] = t & 255; - } - rng_pptr = 0; - rng_seed_time(); - //rng_seed_int(window.screenX); - //rng_seed_int(window.screenY); -} - -function rng_get_byte() { - if(rng_state == null) { - rng_seed_time(); - rng_state = prng_newstate(); - rng_state.init(rng_pool); - for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) - rng_pool[rng_pptr] = 0; - rng_pptr = 0; - //rng_pool = null; - } - // TODO: allow reseeding after first request - return rng_state.next(); -} - -function rng_get_bytes(ba) { - var i; - for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte(); -} - -function SecureRandom() {} - -SecureRandom.prototype.nextBytes = rng_get_bytes; -// Depends on jsbn.js and rng.js - -// convert a (hex) string to a bignum object -function parseBigInt(str,r) { - return new BigInteger(str,r); -} - -function linebrk(s,n) { - var ret = ""; - var i = 0; - while(i + n < s.length) { - ret += s.substring(i,i+n) + "\n"; - i += n; - } - return ret + s.substring(i,s.length); -} - -function byte2Hex(b) { - if(b < 0x10) - return "0" + b.toString(16); - else - return b.toString(16); -} - -// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint -function pkcs1pad2(s,n) { - if(n < s.length + 11) { - alert("Message too long for RSA"); - return null; - } - var ba = new Array(); - var i = s.length - 1; - while(i >= 0 && n > 0) ba[--n] = s.charCodeAt(i--); - ba[--n] = 0; - var rng = new SecureRandom(); - var x = new Array(); - while(n > 2) { // random non-zero pad - x[0] = 0; - while(x[0] == 0) rng.nextBytes(x); - ba[--n] = x[0]; - } - ba[--n] = 2; - ba[--n] = 0; - return new BigInteger(ba); -} - -// "empty" RSA key constructor -function RSAKey() { - this.n = null; - this.e = 0; - this.d = null; - this.p = null; - this.q = null; - this.dmp1 = null; - this.dmq1 = null; - this.coeff = null; -} - -// Set the public key fields N and e from hex strings -function RSASetPublic(N,E) { - if(N != null && E != null && N.length > 0 && E.length > 0) { - this.n = parseBigInt(N,16); - this.e = parseInt(E,16); - } - else - alert("Invalid RSA public key"); -} - -// Perform raw public operation on "x": return x^e (mod n) -function RSADoPublic(x) { - return x.modPowInt(this.e, this.n); -} - -// Return the PKCS#1 RSA encryption of "text" as an even-length hex string -function RSAEncrypt(text) { - var m = pkcs1pad2(text,(this.n.bitLength()+7)>>3); - if(m == null) return null; - var c = this.doPublic(m); - if(c == null) return null; - var h = c.toString(16); - if((h.length & 1) == 0) return h; else return "0" + h; -} - -// Return the PKCS#1 RSA encryption of "text" as a Base64-encoded string -//function RSAEncryptB64(text) { -// var h = this.encrypt(text); -// if(h) return hex2b64(h); else return null; -//} - -// protected -RSAKey.prototype.doPublic = RSADoPublic; - -// public -RSAKey.prototype.setPublic = RSASetPublic; -RSAKey.prototype.encrypt = RSAEncrypt; -//RSAKey.prototype.encrypt_b64 = RSAEncryptB64; -// Depends on rsa.js and jsbn2.js - -// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext -function pkcs1unpad2(d,n) { - var b = d.toByteArray(); - var i = 0; - while(i < b.length && b[i] == 0) ++i; - if(b.length-i != n-1 || b[i] != 2) - return null; - ++i; - while(b[i] != 0) - if(++i >= b.length) return null; - var ret = ""; - while(++i < b.length) - ret += String.fromCharCode(b[i]); - return ret; -} - -// Set the private key fields N, e, and d from hex strings -function RSASetPrivate(N,E,D) { - if(N != null && E != null && N.length > 0 && E.length > 0) { - this.n = parseBigInt(N,16); - this.e = parseInt(E,16); - this.d = parseBigInt(D,16); - } - else - alert("Invalid RSA private key"); -} - -// Set the private key fields N, e, d and CRT params from hex strings -function RSASetPrivateEx(N,E,D,P,Q,DP,DQ,C) { - if(N != null && E != null && N.length > 0 && E.length > 0) { - this.n = parseBigInt(N,16); - this.e = parseInt(E,16); - this.d = parseBigInt(D,16); - this.p = parseBigInt(P,16); - this.q = parseBigInt(Q,16); - this.dmp1 = parseBigInt(DP,16); - this.dmq1 = parseBigInt(DQ,16); - this.coeff = parseBigInt(C,16); - } - else - alert("Invalid RSA private key"); -} - -// Generate a new random private key B bits long, using public expt E -function RSAGenerate(B,E) { - var rng = new SecureRandom(); - var qs = B>>1; - this.e = parseInt(E,16); - var ee = new BigInteger(E,16); - for(;;) { - for(;;) { - this.p = new BigInteger(B-qs,1,rng); - if(this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) break; - } - for(;;) { - this.q = new BigInteger(qs,1,rng); - if(this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) break; - } - if(this.p.compareTo(this.q) <= 0) { - var t = this.p; - this.p = this.q; - this.q = t; - } - var p1 = this.p.subtract(BigInteger.ONE); - var q1 = this.q.subtract(BigInteger.ONE); - var phi = p1.multiply(q1); - if(phi.gcd(ee).compareTo(BigInteger.ONE) == 0) { - this.n = this.p.multiply(this.q); - this.d = ee.modInverse(phi); - this.dmp1 = this.d.mod(p1); - this.dmq1 = this.d.mod(q1); - this.coeff = this.q.modInverse(this.p); - break; - } - } -} - -// Perform raw private operation on "x": return x^d (mod n) -function RSADoPrivate(x) { - if(this.p == null || this.q == null) - return x.modPow(this.d, this.n); - - // TODO: re-calculate any missing CRT params - var xp = x.mod(this.p).modPow(this.dmp1, this.p); - var xq = x.mod(this.q).modPow(this.dmq1, this.q); - - while(xp.compareTo(xq) < 0) - xp = xp.add(this.p); - return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq); -} - -// Return the PKCS#1 RSA decryption of "ctext". -// "ctext" is an even-length hex string and the output is a plain string. -function RSADecrypt(ctext) { - var c = parseBigInt(ctext, 16); - var m = this.doPrivate(c); - if(m == null) return null; - return pkcs1unpad2(m, (this.n.bitLength()+7)>>3); -} - -// Return the PKCS#1 RSA decryption of "ctext". -// "ctext" is a Base64-encoded string and the output is a plain string. -//function RSAB64Decrypt(ctext) { -// var h = b64tohex(ctext); -// if(h) return this.decrypt(h); else return null; -//} - -// protected -RSAKey.prototype.doPrivate = RSADoPrivate; - -// public -RSAKey.prototype.setPrivate = RSASetPrivate; -RSAKey.prototype.setPrivateEx = RSASetPrivateEx; -RSAKey.prototype.generate = RSAGenerate; -RSAKey.prototype.decrypt = RSADecrypt; -//RSAKey.prototype.b64_decrypt = RSAB64Decrypt; - - -nValue="a5261939975948bb7a58dffe5ff54e65f0498f9175f5a09288810b8975871e99af3b5dd94057b0fc07535f5f97444504fa35169d461d0d30cf0192e307727c065168c788771c561a9400fb49175e9e6aa4e23fe11af69e9412dd23b0cb6684c4c2429bce139e848ab26d0829073351f4acd36074eafd036a5eb83359d2a698d3"; -eValue="10001"; -dValue="8e9912f6d3645894e8d38cb58c0db81ff516cf4c7e5a14c7f1eddb1459d2cded4d8d293fc97aee6aefb861859c8b6a3d1dfe710463e1f9ddc72048c09751971c4a580aa51eb523357a3cc48d31cfad1d4a165066ed92d4748fb6571211da5cb14bc11b6e2df7c1a559e6d5ac1cd5c94703a22891464fba23d0d965086277a161"; -pValue="d090ce58a92c75233a6486cb0a9209bf3583b64f540c76f5294bb97d285eed33aec220bde14b2417951178ac152ceab6da7090905b478195498b352048f15e7d"; -qValue="cab575dc652bb66df15a0359609d51d1db184750c00c6698b90ef3465c99655103edbf0d54c56aec0ce3c4d22592338092a126a0cc49f65a4a30d222b411e58f"; -dmp1Value="1a24bca8e273df2f0e47c199bbf678604e7df7215480c77c8db39f49b000ce2cf7500038acfff5433b7d582a01f1826e6f4d42e1c57f5e1fef7b12aabc59fd25"; -dmq1Value="3d06982efbbe47339e1f6d36b1216b8a741d410b0c662f54f7118b27b9a4ec9d914337eb39841d8666f3034408cf94f5b62f11c402fc994fe15a05493150d9fd"; -coeffValue="3a3e731acd8960b7ff9eb81a7ff93bd1cfa74cbd56987db58b4594fb09c09084db1734c8143f98b602b981aaa9243ca28deb69b5b280ee8dcee0fd2625e53250"; - -setupEngine(am3, 28); - -var TEXT = "The quick brown fox jumped over the extremely lazy frog! " + - "Now is the time for all good men to come to the party."; -var encrypted; - -function encrypt() { - var RSA = new RSAKey(); - RSA.setPublic(nValue, eValue); - RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue); - encrypted = RSA.encrypt(TEXT); -} - -function decrypt() { - var RSA = new RSAKey(); - RSA.setPublic(nValue, eValue); - RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue); - var decrypted = RSA.decrypt(encrypted); - if (decrypted != TEXT) { - throw new Error("Crypto operation failed"); - } -} diff --git a/build/pgo/js-input/octane/deltablue.html b/build/pgo/js-input/octane/deltablue.html deleted file mode 100644 index 1adf3228a429..000000000000 --- a/build/pgo/js-input/octane/deltablue.html +++ /dev/null @@ -1,19 +0,0 @@ - - -Octane - - - - -

Octane

-
-
- - - - - - - - - diff --git a/build/pgo/js-input/octane/deltablue.js b/build/pgo/js-input/octane/deltablue.js deleted file mode 100644 index a3a5976488f8..000000000000 --- a/build/pgo/js-input/octane/deltablue.js +++ /dev/null @@ -1,883 +0,0 @@ -// Copyright 2008 the V8 project authors. All rights reserved. -// Copyright 1996 John Maloney and Mario Wolczko. - -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -// This implementation of the DeltaBlue benchmark is derived -// from the Smalltalk implementation by John Maloney and Mario -// Wolczko. Some parts have been translated directly, whereas -// others have been modified more aggresively to make it feel -// more like a JavaScript program. - - -var DeltaBlue = new BenchmarkSuite('DeltaBlue', [66118], [ - new Benchmark('DeltaBlue', true, false, 4400, deltaBlue) -]); - - -/** - * A JavaScript implementation of the DeltaBlue constraint-solving - * algorithm, as described in: - * - * "The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver" - * Bjorn N. Freeman-Benson and John Maloney - * January 1990 Communications of the ACM, - * also available as University of Washington TR 89-08-06. - * - * Beware: this benchmark is written in a grotesque style where - * the constraint model is built by side-effects from constructors. - * I've kept it this way to avoid deviating too much from the original - * implementation. - */ - - -/* --- O b j e c t M o d e l --- */ - -Object.defineProperty(Object.prototype, "inheritsFrom", { - - value: function (shuper) { - function Inheriter() { } - Inheriter.prototype = shuper.prototype; - this.prototype = new Inheriter(); - this.superConstructor = shuper; - } -}); - -function OrderedCollection() { - this.elms = new Array(); -} - -OrderedCollection.prototype.add = function (elm) { - this.elms.push(elm); -} - -OrderedCollection.prototype.at = function (index) { - return this.elms[index]; -} - -OrderedCollection.prototype.size = function () { - return this.elms.length; -} - -OrderedCollection.prototype.removeFirst = function () { - return this.elms.pop(); -} - -OrderedCollection.prototype.remove = function (elm) { - var index = 0, skipped = 0; - for (var i = 0; i < this.elms.length; i++) { - var value = this.elms[i]; - if (value != elm) { - this.elms[index] = value; - index++; - } else { - skipped++; - } - } - for (var i = 0; i < skipped; i++) - this.elms.pop(); -} - -/* --- * - * S t r e n g t h - * --- */ - -/** - * Strengths are used to measure the relative importance of constraints. - * New strengths may be inserted in the strength hierarchy without - * disrupting current constraints. Strengths cannot be created outside - * this class, so pointer comparison can be used for value comparison. - */ -function Strength(strengthValue, name) { - this.strengthValue = strengthValue; - this.name = name; -} - -Strength.stronger = function (s1, s2) { - return s1.strengthValue < s2.strengthValue; -} - -Strength.weaker = function (s1, s2) { - return s1.strengthValue > s2.strengthValue; -} - -Strength.weakestOf = function (s1, s2) { - return this.weaker(s1, s2) ? s1 : s2; -} - -Strength.strongest = function (s1, s2) { - return this.stronger(s1, s2) ? s1 : s2; -} - -Strength.prototype.nextWeaker = function () { - switch (this.strengthValue) { - case 0: return Strength.WEAKEST; - case 1: return Strength.WEAK_DEFAULT; - case 2: return Strength.NORMAL; - case 3: return Strength.STRONG_DEFAULT; - case 4: return Strength.PREFERRED; - case 5: return Strength.REQUIRED; - } -} - -// Strength constants. -Strength.REQUIRED = new Strength(0, "required"); -Strength.STONG_PREFERRED = new Strength(1, "strongPreferred"); -Strength.PREFERRED = new Strength(2, "preferred"); -Strength.STRONG_DEFAULT = new Strength(3, "strongDefault"); -Strength.NORMAL = new Strength(4, "normal"); -Strength.WEAK_DEFAULT = new Strength(5, "weakDefault"); -Strength.WEAKEST = new Strength(6, "weakest"); - -/* --- * - * C o n s t r a i n t - * --- */ - -/** - * An abstract class representing a system-maintainable relationship - * (or "constraint") between a set of variables. A constraint supplies - * a strength instance variable; concrete subclasses provide a means - * of storing the constrained variables and other information required - * to represent a constraint. - */ -function Constraint(strength) { - this.strength = strength; -} - -/** - * Activate this constraint and attempt to satisfy it. - */ -Constraint.prototype.addConstraint = function () { - this.addToGraph(); - planner.incrementalAdd(this); -} - -/** - * Attempt to find a way to enforce this constraint. If successful, - * record the solution, perhaps modifying the current dataflow - * graph. Answer the constraint that this constraint overrides, if - * there is one, or nil, if there isn't. - * Assume: I am not already satisfied. - */ -Constraint.prototype.satisfy = function (mark) { - this.chooseMethod(mark); - if (!this.isSatisfied()) { - if (this.strength == Strength.REQUIRED) - alert("Could not satisfy a required constraint!"); - return null; - } - this.markInputs(mark); - var out = this.output(); - var overridden = out.determinedBy; - if (overridden != null) overridden.markUnsatisfied(); - out.determinedBy = this; - if (!planner.addPropagate(this, mark)) - alert("Cycle encountered"); - out.mark = mark; - return overridden; -} - -Constraint.prototype.destroyConstraint = function () { - if (this.isSatisfied()) planner.incrementalRemove(this); - else this.removeFromGraph(); -} - -/** - * Normal constraints are not input constraints. An input constraint - * is one that depends on external state, such as the mouse, the - * keybord, a clock, or some arbitraty piece of imperative code. - */ -Constraint.prototype.isInput = function () { - return false; -} - -/* --- * - * U n a r y C o n s t r a i n t - * --- */ - -/** - * Abstract superclass for constraints having a single possible output - * variable. - */ -function UnaryConstraint(v, strength) { - UnaryConstraint.superConstructor.call(this, strength); - this.myOutput = v; - this.satisfied = false; - this.addConstraint(); -} - -UnaryConstraint.inheritsFrom(Constraint); - -/** - * Adds this constraint to the constraint graph - */ -UnaryConstraint.prototype.addToGraph = function () { - this.myOutput.addConstraint(this); - this.satisfied = false; -} - -/** - * Decides if this constraint can be satisfied and records that - * decision. - */ -UnaryConstraint.prototype.chooseMethod = function (mark) { - this.satisfied = (this.myOutput.mark != mark) - && Strength.stronger(this.strength, this.myOutput.walkStrength); -} - -/** - * Returns true if this constraint is satisfied in the current solution. - */ -UnaryConstraint.prototype.isSatisfied = function () { - return this.satisfied; -} - -UnaryConstraint.prototype.markInputs = function (mark) { - // has no inputs -} - -/** - * Returns the current output variable. - */ -UnaryConstraint.prototype.output = function () { - return this.myOutput; -} - -/** - * Calculate the walkabout strength, the stay flag, and, if it is - * 'stay', the value for the current output of this constraint. Assume - * this constraint is satisfied. - */ -UnaryConstraint.prototype.recalculate = function () { - this.myOutput.walkStrength = this.strength; - this.myOutput.stay = !this.isInput(); - if (this.myOutput.stay) this.execute(); // Stay optimization -} - -/** - * Records that this constraint is unsatisfied - */ -UnaryConstraint.prototype.markUnsatisfied = function () { - this.satisfied = false; -} - -UnaryConstraint.prototype.inputsKnown = function () { - return true; -} - -UnaryConstraint.prototype.removeFromGraph = function () { - if (this.myOutput != null) this.myOutput.removeConstraint(this); - this.satisfied = false; -} - -/* --- * - * S t a y C o n s t r a i n t - * --- */ - -/** - * Variables that should, with some level of preference, stay the same. - * Planners may exploit the fact that instances, if satisfied, will not - * change their output during plan execution. This is called "stay - * optimization". - */ -function StayConstraint(v, str) { - StayConstraint.superConstructor.call(this, v, str); -} - -StayConstraint.inheritsFrom(UnaryConstraint); - -StayConstraint.prototype.execute = function () { - // Stay constraints do nothing -} - -/* --- * - * E d i t C o n s t r a i n t - * --- */ - -/** - * A unary input constraint used to mark a variable that the client - * wishes to change. - */ -function EditConstraint(v, str) { - EditConstraint.superConstructor.call(this, v, str); -} - -EditConstraint.inheritsFrom(UnaryConstraint); - -/** - * Edits indicate that a variable is to be changed by imperative code. - */ -EditConstraint.prototype.isInput = function () { - return true; -} - -EditConstraint.prototype.execute = function () { - // Edit constraints do nothing -} - -/* --- * - * B i n a r y C o n s t r a i n t - * --- */ - -var Direction = new Object(); -Direction.NONE = 0; -Direction.FORWARD = 1; -Direction.BACKWARD = -1; - -/** - * Abstract superclass for constraints having two possible output - * variables. - */ -function BinaryConstraint(var1, var2, strength) { - BinaryConstraint.superConstructor.call(this, strength); - this.v1 = var1; - this.v2 = var2; - this.direction = Direction.NONE; - this.addConstraint(); -} - -BinaryConstraint.inheritsFrom(Constraint); - -/** - * Decides if this constraint can be satisfied and which way it - * should flow based on the relative strength of the variables related, - * and record that decision. - */ -BinaryConstraint.prototype.chooseMethod = function (mark) { - if (this.v1.mark == mark) { - this.direction = (this.v2.mark != mark && Strength.stronger(this.strength, this.v2.walkStrength)) - ? Direction.FORWARD - : Direction.NONE; - } - if (this.v2.mark == mark) { - this.direction = (this.v1.mark != mark && Strength.stronger(this.strength, this.v1.walkStrength)) - ? Direction.BACKWARD - : Direction.NONE; - } - if (Strength.weaker(this.v1.walkStrength, this.v2.walkStrength)) { - this.direction = Strength.stronger(this.strength, this.v1.walkStrength) - ? Direction.BACKWARD - : Direction.NONE; - } else { - this.direction = Strength.stronger(this.strength, this.v2.walkStrength) - ? Direction.FORWARD - : Direction.BACKWARD - } -} - -/** - * Add this constraint to the constraint graph - */ -BinaryConstraint.prototype.addToGraph = function () { - this.v1.addConstraint(this); - this.v2.addConstraint(this); - this.direction = Direction.NONE; -} - -/** - * Answer true if this constraint is satisfied in the current solution. - */ -BinaryConstraint.prototype.isSatisfied = function () { - return this.direction != Direction.NONE; -} - -/** - * Mark the input variable with the given mark. - */ -BinaryConstraint.prototype.markInputs = function (mark) { - this.input().mark = mark; -} - -/** - * Returns the current input variable - */ -BinaryConstraint.prototype.input = function () { - return (this.direction == Direction.FORWARD) ? this.v1 : this.v2; -} - -/** - * Returns the current output variable - */ -BinaryConstraint.prototype.output = function () { - return (this.direction == Direction.FORWARD) ? this.v2 : this.v1; -} - -/** - * Calculate the walkabout strength, the stay flag, and, if it is - * 'stay', the value for the current output of this - * constraint. Assume this constraint is satisfied. - */ -BinaryConstraint.prototype.recalculate = function () { - var ihn = this.input(), out = this.output(); - out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength); - out.stay = ihn.stay; - if (out.stay) this.execute(); -} - -/** - * Record the fact that this constraint is unsatisfied. - */ -BinaryConstraint.prototype.markUnsatisfied = function () { - this.direction = Direction.NONE; -} - -BinaryConstraint.prototype.inputsKnown = function (mark) { - var i = this.input(); - return i.mark == mark || i.stay || i.determinedBy == null; -} - -BinaryConstraint.prototype.removeFromGraph = function () { - if (this.v1 != null) this.v1.removeConstraint(this); - if (this.v2 != null) this.v2.removeConstraint(this); - this.direction = Direction.NONE; -} - -/* --- * - * S c a l e C o n s t r a i n t - * --- */ - -/** - * Relates two variables by the linear scaling relationship: "v2 = - * (v1 * scale) + offset". Either v1 or v2 may be changed to maintain - * this relationship but the scale factor and offset are considered - * read-only. - */ -function ScaleConstraint(src, scale, offset, dest, strength) { - this.direction = Direction.NONE; - this.scale = scale; - this.offset = offset; - ScaleConstraint.superConstructor.call(this, src, dest, strength); -} - -ScaleConstraint.inheritsFrom(BinaryConstraint); - -/** - * Adds this constraint to the constraint graph. - */ -ScaleConstraint.prototype.addToGraph = function () { - ScaleConstraint.superConstructor.prototype.addToGraph.call(this); - this.scale.addConstraint(this); - this.offset.addConstraint(this); -} - -ScaleConstraint.prototype.removeFromGraph = function () { - ScaleConstraint.superConstructor.prototype.removeFromGraph.call(this); - if (this.scale != null) this.scale.removeConstraint(this); - if (this.offset != null) this.offset.removeConstraint(this); -} - -ScaleConstraint.prototype.markInputs = function (mark) { - ScaleConstraint.superConstructor.prototype.markInputs.call(this, mark); - this.scale.mark = this.offset.mark = mark; -} - -/** - * Enforce this constraint. Assume that it is satisfied. - */ -ScaleConstraint.prototype.execute = function () { - if (this.direction == Direction.FORWARD) { - this.v2.value = this.v1.value * this.scale.value + this.offset.value; - } else { - this.v1.value = (this.v2.value - this.offset.value) / this.scale.value; - } -} - -/** - * Calculate the walkabout strength, the stay flag, and, if it is - * 'stay', the value for the current output of this constraint. Assume - * this constraint is satisfied. - */ -ScaleConstraint.prototype.recalculate = function () { - var ihn = this.input(), out = this.output(); - out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength); - out.stay = ihn.stay && this.scale.stay && this.offset.stay; - if (out.stay) this.execute(); -} - -/* --- * - * E q u a l i t y C o n s t r a i n t - * --- */ - -/** - * Constrains two variables to have the same value. - */ -function EqualityConstraint(var1, var2, strength) { - EqualityConstraint.superConstructor.call(this, var1, var2, strength); -} - -EqualityConstraint.inheritsFrom(BinaryConstraint); - -/** - * Enforce this constraint. Assume that it is satisfied. - */ -EqualityConstraint.prototype.execute = function () { - this.output().value = this.input().value; -} - -/* --- * - * V a r i a b l e - * --- */ - -/** - * A constrained variable. In addition to its value, it maintain the - * structure of the constraint graph, the current dataflow graph, and - * various parameters of interest to the DeltaBlue incremental - * constraint solver. - **/ -function Variable(name, initialValue) { - this.value = initialValue || 0; - this.constraints = new OrderedCollection(); - this.determinedBy = null; - this.mark = 0; - this.walkStrength = Strength.WEAKEST; - this.stay = true; - this.name = name; -} - -/** - * Add the given constraint to the set of all constraints that refer - * this variable. - */ -Variable.prototype.addConstraint = function (c) { - this.constraints.add(c); -} - -/** - * Removes all traces of c from this variable. - */ -Variable.prototype.removeConstraint = function (c) { - this.constraints.remove(c); - if (this.determinedBy == c) this.determinedBy = null; -} - -/* --- * - * P l a n n e r - * --- */ - -/** - * The DeltaBlue planner - */ -function Planner() { - this.currentMark = 0; -} - -/** - * Attempt to satisfy the given constraint and, if successful, - * incrementally update the dataflow graph. Details: If satifying - * the constraint is successful, it may override a weaker constraint - * on its output. The algorithm attempts to resatisfy that - * constraint using some other method. This process is repeated - * until either a) it reaches a variable that was not previously - * determined by any constraint or b) it reaches a constraint that - * is too weak to be satisfied using any of its methods. The - * variables of constraints that have been processed are marked with - * a unique mark value so that we know where we've been. This allows - * the algorithm to avoid getting into an infinite loop even if the - * constraint graph has an inadvertent cycle. - */ -Planner.prototype.incrementalAdd = function (c) { - var mark = this.newMark(); - var overridden = c.satisfy(mark); - while (overridden != null) - overridden = overridden.satisfy(mark); -} - -/** - * Entry point for retracting a constraint. Remove the given - * constraint and incrementally update the dataflow graph. - * Details: Retracting the given constraint may allow some currently - * unsatisfiable downstream constraint to be satisfied. We therefore collect - * a list of unsatisfied downstream constraints and attempt to - * satisfy each one in turn. This list is traversed by constraint - * strength, strongest first, as a heuristic for avoiding - * unnecessarily adding and then overriding weak constraints. - * Assume: c is satisfied. - */ -Planner.prototype.incrementalRemove = function (c) { - var out = c.output(); - c.markUnsatisfied(); - c.removeFromGraph(); - var unsatisfied = this.removePropagateFrom(out); - var strength = Strength.REQUIRED; - do { - for (var i = 0; i < unsatisfied.size(); i++) { - var u = unsatisfied.at(i); - if (u.strength == strength) - this.incrementalAdd(u); - } - strength = strength.nextWeaker(); - } while (strength != Strength.WEAKEST); -} - -/** - * Select a previously unused mark value. - */ -Planner.prototype.newMark = function () { - return ++this.currentMark; -} - -/** - * Extract a plan for resatisfaction starting from the given source - * constraints, usually a set of input constraints. This method - * assumes that stay optimization is desired; the plan will contain - * only constraints whose output variables are not stay. Constraints - * that do no computation, such as stay and edit constraints, are - * not included in the plan. - * Details: The outputs of a constraint are marked when it is added - * to the plan under construction. A constraint may be appended to - * the plan when all its input variables are known. A variable is - * known if either a) the variable is marked (indicating that has - * been computed by a constraint appearing earlier in the plan), b) - * the variable is 'stay' (i.e. it is a constant at plan execution - * time), or c) the variable is not determined by any - * constraint. The last provision is for past states of history - * variables, which are not stay but which are also not computed by - * any constraint. - * Assume: sources are all satisfied. - */ -Planner.prototype.makePlan = function (sources) { - var mark = this.newMark(); - var plan = new Plan(); - var todo = sources; - while (todo.size() > 0) { - var c = todo.removeFirst(); - if (c.output().mark != mark && c.inputsKnown(mark)) { - plan.addConstraint(c); - c.output().mark = mark; - this.addConstraintsConsumingTo(c.output(), todo); - } - } - return plan; -} - -/** - * Extract a plan for resatisfying starting from the output of the - * given constraints, usually a set of input constraints. - */ -Planner.prototype.extractPlanFromConstraints = function (constraints) { - var sources = new OrderedCollection(); - for (var i = 0; i < constraints.size(); i++) { - var c = constraints.at(i); - if (c.isInput() && c.isSatisfied()) - // not in plan already and eligible for inclusion - sources.add(c); - } - return this.makePlan(sources); -} - -/** - * Recompute the walkabout strengths and stay flags of all variables - * downstream of the given constraint and recompute the actual - * values of all variables whose stay flag is true. If a cycle is - * detected, remove the given constraint and answer - * false. Otherwise, answer true. - * Details: Cycles are detected when a marked variable is - * encountered downstream of the given constraint. The sender is - * assumed to have marked the inputs of the given constraint with - * the given mark. Thus, encountering a marked node downstream of - * the output constraint means that there is a path from the - * constraint's output to one of its inputs. - */ -Planner.prototype.addPropagate = function (c, mark) { - var todo = new OrderedCollection(); - todo.add(c); - while (todo.size() > 0) { - var d = todo.removeFirst(); - if (d.output().mark == mark) { - this.incrementalRemove(c); - return false; - } - d.recalculate(); - this.addConstraintsConsumingTo(d.output(), todo); - } - return true; -} - - -/** - * Update the walkabout strengths and stay flags of all variables - * downstream of the given constraint. Answer a collection of - * unsatisfied constraints sorted in order of decreasing strength. - */ -Planner.prototype.removePropagateFrom = function (out) { - out.determinedBy = null; - out.walkStrength = Strength.WEAKEST; - out.stay = true; - var unsatisfied = new OrderedCollection(); - var todo = new OrderedCollection(); - todo.add(out); - while (todo.size() > 0) { - var v = todo.removeFirst(); - for (var i = 0; i < v.constraints.size(); i++) { - var c = v.constraints.at(i); - if (!c.isSatisfied()) - unsatisfied.add(c); - } - var determining = v.determinedBy; - for (var i = 0; i < v.constraints.size(); i++) { - var next = v.constraints.at(i); - if (next != determining && next.isSatisfied()) { - next.recalculate(); - todo.add(next.output()); - } - } - } - return unsatisfied; -} - -Planner.prototype.addConstraintsConsumingTo = function (v, coll) { - var determining = v.determinedBy; - var cc = v.constraints; - for (var i = 0; i < cc.size(); i++) { - var c = cc.at(i); - if (c != determining && c.isSatisfied()) - coll.add(c); - } -} - -/* --- * - * P l a n - * --- */ - -/** - * A Plan is an ordered list of constraints to be executed in sequence - * to resatisfy all currently satisfiable constraints in the face of - * one or more changing inputs. - */ -function Plan() { - this.v = new OrderedCollection(); -} - -Plan.prototype.addConstraint = function (c) { - this.v.add(c); -} - -Plan.prototype.size = function () { - return this.v.size(); -} - -Plan.prototype.constraintAt = function (index) { - return this.v.at(index); -} - -Plan.prototype.execute = function () { - for (var i = 0; i < this.size(); i++) { - var c = this.constraintAt(i); - c.execute(); - } -} - -/* --- * - * M a i n - * --- */ - -/** - * This is the standard DeltaBlue benchmark. A long chain of equality - * constraints is constructed with a stay constraint on one end. An - * edit constraint is then added to the opposite end and the time is - * measured for adding and removing this constraint, and extracting - * and executing a constraint satisfaction plan. There are two cases. - * In case 1, the added constraint is stronger than the stay - * constraint and values must propagate down the entire length of the - * chain. In case 2, the added constraint is weaker than the stay - * constraint so it cannot be accomodated. The cost in this case is, - * of course, very low. Typical situations lie somewhere between these - * two extremes. - */ -function chainTest(n) { - planner = new Planner(); - var prev = null, first = null, last = null; - - // Build chain of n equality constraints - for (var i = 0; i <= n; i++) { - var name = "v" + i; - var v = new Variable(name); - if (prev != null) - new EqualityConstraint(prev, v, Strength.REQUIRED); - if (i == 0) first = v; - if (i == n) last = v; - prev = v; - } - - new StayConstraint(last, Strength.STRONG_DEFAULT); - var edit = new EditConstraint(first, Strength.PREFERRED); - var edits = new OrderedCollection(); - edits.add(edit); - var plan = planner.extractPlanFromConstraints(edits); - for (var i = 0; i < 100; i++) { - first.value = i; - plan.execute(); - if (last.value != i) - alert("Chain test failed."); - } -} - -/** - * This test constructs a two sets of variables related to each - * other by a simple linear transformation (scale and offset). The - * time is measured to change a variable on either side of the - * mapping and to change the scale and offset factors. - */ -function projectionTest(n) { - planner = new Planner(); - var scale = new Variable("scale", 10); - var offset = new Variable("offset", 1000); - var src = null, dst = null; - - var dests = new OrderedCollection(); - for (var i = 0; i < n; i++) { - src = new Variable("src" + i, i); - dst = new Variable("dst" + i, i); - dests.add(dst); - new StayConstraint(src, Strength.NORMAL); - new ScaleConstraint(src, scale, offset, dst, Strength.REQUIRED); - } - - change(src, 17); - if (dst.value != 1170) alert("Projection 1 failed"); - change(dst, 1050); - if (src.value != 5) alert("Projection 2 failed"); - change(scale, 5); - for (var i = 0; i < n - 1; i++) { - if (dests.at(i).value != i * 5 + 1000) - alert("Projection 3 failed"); - } - change(offset, 2000); - for (var i = 0; i < n - 1; i++) { - if (dests.at(i).value != i * 5 + 2000) - alert("Projection 4 failed"); - } -} - -function change(v, newValue) { - var edit = new EditConstraint(v, Strength.PREFERRED); - var edits = new OrderedCollection(); - edits.add(edit); - var plan = planner.extractPlanFromConstraints(edits); - for (var i = 0; i < 10; i++) { - v.value = newValue; - plan.execute(); - } - edit.destroyConstraint(); -} - -// Global variable holding the current planner. -var planner = null; - -function deltaBlue() { - chainTest(100); - projectionTest(100); -} diff --git a/build/pgo/js-input/octane/earley-boyer.html b/build/pgo/js-input/octane/earley-boyer.html deleted file mode 100644 index 8148e8ed69b1..000000000000 --- a/build/pgo/js-input/octane/earley-boyer.html +++ /dev/null @@ -1,19 +0,0 @@ - - -Octane - - - - -

Octane

-
-
- - - - - - - - - diff --git a/build/pgo/js-input/octane/earley-boyer.js b/build/pgo/js-input/octane/earley-boyer.js deleted file mode 100644 index 41d593d3bf40..000000000000 --- a/build/pgo/js-input/octane/earley-boyer.js +++ /dev/null @@ -1,4684 +0,0 @@ -// This file is automatically generated by scheme2js, except for the -// benchmark harness code at the beginning and end of the file. - -var EarleyBoyer = new BenchmarkSuite('EarleyBoyer', [666463], [ - new Benchmark("Earley", true, false, 2500, function () { BgL_earleyzd2benchmarkzd2(); }), - new Benchmark("Boyer", true, false, 200, function () { BgL_nboyerzd2benchmarkzd2(); }) -]); - - -/************* GENERATED FILE - DO NOT EDIT *************/ -/************* GENERATED FILE - DO NOT EDIT *************/ -/************* GENERATED FILE - DO NOT EDIT *************/ -/************* GENERATED FILE - DO NOT EDIT *************/ -/************* GENERATED FILE - DO NOT EDIT *************/ -/************* GENERATED FILE - DO NOT EDIT *************/ -/************* GENERATED FILE - DO NOT EDIT *************/ -/************* GENERATED FILE - DO NOT EDIT *************/ -/* - * To use write/prints/... the default-output port has to be set first. - * Simply setting SC_DEFAULT_OUT and SC_ERROR_OUT to the desired values - * should do the trick. - * In the following example the std-out and error-port are redirected to - * a DIV. -function initRuntime() { - function escapeHTML(s) { - var tmp = s; - tmp = tmp.replace(/&/g, "&"); - tmp = tmp.replace(//g, ">"); - tmp = tmp.replace(/ /g, " "); - tmp = tmp.replace(/\n/g, "
"); - tmp = tmp.replace(/\t/g, "    "); - return tmp; - - } - - document.write("
"); - SC_DEFAULT_OUT = new sc_GenericOutputPort( - function(s) { - var stdout = document.getElementById('stdout'); - stdout.innerHTML = stdout.innerHTML + escapeHTML(s); - }); - SC_ERROR_OUT = SC_DEFAULT_OUT; -} -*/ - - -function sc_print_debug() { - sc_print.apply(null, arguments); -} -/*** META ((export *js*)) */ -var sc_JS_GLOBALS = this; - -var __sc_LINE=-1; -var __sc_FILE=""; - -/*** META ((export #t)) */ -function sc_alert() { - var len = arguments.length; - var s = ""; - var i; - - for( i = 0; i < len; i++ ) { - s += sc_toDisplayString(arguments[ i ]); - } - - return alert( s ); -} - -/*** META ((export #t)) */ -function sc_typeof( x ) { - return typeof x; -} - -/*** META ((export #t)) */ -function sc_error() { - var a = [sc_jsstring2symbol("*error*")]; - for (var i = 0; i < arguments.length; i++) { - a[i+1] = arguments[i]; - } - throw a; -} - -/*** META ((export #t) - (peephole (prefix "throw "))) -*/ -function sc_raise(obj) { - throw obj; -} - -/*** META ((export with-handler-lambda)) */ -function sc_withHandlerLambda(handler, body) { - try { - return body(); - } catch(e) { - if (!e._internalException) - return handler(e); - else - throw e; - } -} - -var sc_properties = new Object(); - -/*** META ((export #t)) */ -function sc_putpropBang(sym, key, val) { - var ht = sc_properties[sym]; - if (!ht) { - ht = new Object(); - sc_properties[sym] = ht; - } - ht[key] = val; -} - -/*** META ((export #t)) */ -function sc_getprop(sym, key) { - var ht = sc_properties[sym]; - if (ht) { - if (key in ht) - return ht[key]; - else - return false; - } else - return false; -} - -/*** META ((export #t)) */ -function sc_rempropBang(sym, key) { - var ht = sc_properties[sym]; - if (ht) - delete ht[key]; -} - -/*** META ((export #t)) */ -function sc_any2String(o) { - return jsstring2string(sc_toDisplayString(o)); -} - -/*** META ((export #t) - (peephole (infix 2 2 "===")) - (type bool)) -*/ -function sc_isEqv(o1, o2) { - return (o1 === o2); -} - -/*** META ((export #t) - (peephole (infix 2 2 "===")) - (type bool)) -*/ -function sc_isEq(o1, o2) { - return (o1 === o2); -} - -/*** META ((export #t) - (type bool)) -*/ -function sc_isNumber(n) { - return (typeof n === "number"); -} - -/*** META ((export #t) - (type bool)) -*/ -function sc_isComplex(n) { - return sc_isNumber(n); -} - -/*** META ((export #t) - (type bool)) -*/ -function sc_isReal(n) { - return sc_isNumber(n); -} - -/*** META ((export #t) - (type bool)) -*/ -function sc_isRational(n) { - return sc_isReal(n); -} - -/*** META ((export #t) - (type bool)) -*/ -function sc_isInteger(n) { - return (parseInt(n) === n); -} - -/*** META ((export #t) - (type bool) - (peephole (postfix ", false"))) -*/ -// we don't have exact numbers... -function sc_isExact(n) { - return false; -} - -/*** META ((export #t) - (peephole (postfix ", true")) - (type bool)) -*/ -function sc_isInexact(n) { - return true; -} - -/*** META ((export = =fx =fl) - (type bool) - (peephole (infix 2 2 "==="))) -*/ -function sc_equal(x) { - for (var i = 1; i < arguments.length; i++) - if (x !== arguments[i]) - return false; - return true; -} - -/*** META ((export < = arguments[i]) - return false; - x = arguments[i]; - } - return true; -} - -/*** META ((export > >fx >fl) - (type bool) - (peephole (infix 2 2 ">"))) -*/ -function sc_greater(x, y) { - for (var i = 1; i < arguments.length; i++) { - if (x <= arguments[i]) - return false; - x = arguments[i]; - } - return true; -} - -/*** META ((export <= <=fx <=fl) - (type bool) - (peephole (infix 2 2 "<="))) -*/ -function sc_lessEqual(x, y) { - for (var i = 1; i < arguments.length; i++) { - if (x > arguments[i]) - return false; - x = arguments[i]; - } - return true; -} - -/*** META ((export >= >=fl >=fx) - (type bool) - (peephole (infix 2 2 ">="))) -*/ -function sc_greaterEqual(x, y) { - for (var i = 1; i < arguments.length; i++) { - if (x < arguments[i]) - return false; - x = arguments[i]; - } - return true; -} - -/*** META ((export #t) - (type bool) - (peephole (postfix "=== 0"))) -*/ -function sc_isZero(x) { - return (x === 0); -} - -/*** META ((export #t) - (type bool) - (peephole (postfix "> 0"))) -*/ -function sc_isPositive(x) { - return (x > 0); -} - -/*** META ((export #t) - (type bool) - (peephole (postfix "< 0"))) -*/ -function sc_isNegative(x) { - return (x < 0); -} - -/*** META ((export #t) - (type bool) - (peephole (postfix "%2===1"))) -*/ -function sc_isOdd(x) { - return (x % 2 === 1); -} - -/*** META ((export #t) - (type bool) - (peephole (postfix "%2===0"))) -*/ -function sc_isEven(x) { - return (x % 2 === 0); -} - -/*** META ((export #t)) */ -var sc_max = Math.max; -/*** META ((export #t)) */ -var sc_min = Math.min; - -/*** META ((export + +fx +fl) - (peephole (infix 0 #f "+" "0"))) -*/ -function sc_plus() { - var sum = 0; - for (var i = 0; i < arguments.length; i++) - sum += arguments[i]; - return sum; -} - -/*** META ((export * *fx *fl) - (peephole (infix 0 #f "*" "1"))) -*/ -function sc_multi() { - var product = 1; - for (var i = 0; i < arguments.length; i++) - product *= arguments[i]; - return product; -} - -/*** META ((export - -fx -fl) - (peephole (minus))) -*/ -function sc_minus(x) { - if (arguments.length === 1) - return -x; - else { - var res = x; - for (var i = 1; i < arguments.length; i++) - res -= arguments[i]; - return res; - } -} - -/*** META ((export / /fl) - (peephole (div))) -*/ -function sc_div(x) { - if (arguments.length === 1) - return 1/x; - else { - var res = x; - for (var i = 1; i < arguments.length; i++) - res /= arguments[i]; - return res; - } -} - -/*** META ((export #t)) */ -var sc_abs = Math.abs; - -/*** META ((export quotient /fx) - (peephole (hole 2 "parseInt(" x "/" y ")"))) -*/ -function sc_quotient(x, y) { - return parseInt(x / y); -} - -/*** META ((export #t) - (peephole (infix 2 2 "%"))) -*/ -function sc_remainder(x, y) { - return x % y; -} - -/*** META ((export #t) - (peephole (modulo))) -*/ -function sc_modulo(x, y) { - var remainder = x % y; - // if they don't have the same sign - if ((remainder * y) < 0) - return remainder + y; - else - return remainder; -} - -function sc_euclid_gcd(a, b) { - var temp; - if (a === 0) return b; - if (b === 0) return a; - if (a < 0) {a = -a;}; - if (b < 0) {b = -b;}; - if (b > a) {temp = a; a = b; b = temp;}; - while (true) { - a %= b; - if(a === 0) {return b;}; - b %= a; - if(b === 0) {return a;}; - }; - return b; -} - -/*** META ((export #t)) */ -function sc_gcd() { - var gcd = 0; - for (var i = 0; i < arguments.length; i++) - gcd = sc_euclid_gcd(gcd, arguments[i]); - return gcd; -} - -/*** META ((export #t)) */ -function sc_lcm() { - var lcm = 1; - for (var i = 0; i < arguments.length; i++) { - var f = Math.round(arguments[i] / sc_euclid_gcd(arguments[i], lcm)); - lcm *= Math.abs(f); - } - return lcm; -} - -// LIMITATION: numerator and denominator don't make sense in floating point world. -//var SC_MAX_DECIMALS = 1000000 -// -// function sc_numerator(x) { -// var rounded = Math.round(x * SC_MAX_DECIMALS); -// return Math.round(rounded / sc_euclid_gcd(rounded, SC_MAX_DECIMALS)); -// } - -// function sc_denominator(x) { -// var rounded = Math.round(x * SC_MAX_DECIMALS); -// return Math.round(SC_MAX_DECIMALS / sc_euclid_gcd(rounded, SC_MAX_DECIMALS)); -// } - -/*** META ((export #t)) */ -var sc_floor = Math.floor; -/*** META ((export #t)) */ -var sc_ceiling = Math.ceil; -/*** META ((export #t)) */ -var sc_truncate = parseInt; -/*** META ((export #t)) */ -var sc_round = Math.round; - -// LIMITATION: sc_rationalize doesn't make sense in a floating point world. - -/*** META ((export #t)) */ -var sc_exp = Math.exp; -/*** META ((export #t)) */ -var sc_log = Math.log; -/*** META ((export #t)) */ -var sc_sin = Math.sin; -/*** META ((export #t)) */ -var sc_cos = Math.cos; -/*** META ((export #t)) */ -var sc_tan = Math.tan; -/*** META ((export #t)) */ -var sc_asin = Math.asin; -/*** META ((export #t)) */ -var sc_acos = Math.acos; -/*** META ((export #t)) */ -var sc_atan = Math.atan; - -/*** META ((export #t)) */ -var sc_sqrt = Math.sqrt; -/*** META ((export #t)) */ -var sc_expt = Math.pow; - -// LIMITATION: we don't have complex numbers. -// LIMITATION: the following functions are hence not implemented. -// LIMITATION: make-rectangular, make-polar, real-part, imag-part, magnitude, angle -// LIMITATION: 2 argument atan - -/*** META ((export #t) - (peephole (id))) -*/ -function sc_exact2inexact(x) { - return x; -} - -/*** META ((export #t) - (peephole (id))) -*/ -function sc_inexact2exact(x) { - return x; -} - -function sc_number2jsstring(x, radix) { - if (radix) - return x.toString(radix); - else - return x.toString(); -} - -function sc_jsstring2number(s, radix) { - if (s === "") return false; - - if (radix) { - var t = parseInt(s, radix); - if (!t && t !== 0) return false; - // verify that each char is in range. (parseInt ignores leading - // white and trailing chars) - var allowedChars = "01234567890abcdefghijklmnopqrstuvwxyz".substring(0, radix+1); - if ((new RegExp("^["+allowedChars+"]*$", "i")).test(s)) - return t; - else return false; - } else { - var t = +s; // does not ignore trailing chars. - if (!t && t !== 0) return false; - // simply verify that first char is not whitespace. - var c = s.charAt(0); - // if +c is 0, but the char is not "0", then we have a whitespace. - if (+c === 0 && c !== "0") return false; - return t; - } -} - -/*** META ((export #t) - (type bool) - (peephole (not))) -*/ -function sc_not(b) { - return b === false; -} - -/*** META ((export #t) - (type bool)) -*/ -function sc_isBoolean(b) { - return (b === true) || (b === false); -} - -function sc_Pair(car, cdr) { - this.car = car; - this.cdr = cdr; -} - -sc_Pair.prototype.toString = function() { - return sc_toDisplayString(this); -}; -sc_Pair.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) { - var current = this; - - var res = "("; - - while(true) { - res += writeOrDisplay(current.car); - if (sc_isPair(current.cdr)) { - res += " "; - current = current.cdr; - } else if (current.cdr !== null) { - res += " . " + writeOrDisplay(current.cdr); - break; - } else // current.cdr == null - break; - } - - res += ")"; - - return res; -}; -sc_Pair.prototype.sc_toDisplayString = function() { - return this.sc_toWriteOrDisplayString(sc_toDisplayString); -}; -sc_Pair.prototype.sc_toWriteString = function() { - return this.sc_toWriteOrDisplayString(sc_toWriteString); -}; -// sc_Pair.prototype.sc_toWriteCircleString in IO.js - -/*** META ((export #t) - (type bool) - (peephole (postfix " instanceof sc_Pair"))) -*/ -function sc_isPair(p) { - return (p instanceof sc_Pair); -} - -function sc_isPairEqual(p1, p2, comp) { - return (comp(p1.car, p2.car) && comp(p1.cdr, p2.cdr)); -} - -/*** META ((export #t) - (peephole (hole 2 "new sc_Pair(" car ", " cdr ")"))) -*/ -function sc_cons(car, cdr) { - return new sc_Pair(car, cdr); -} - -/*** META ((export cons*)) */ -function sc_consStar() { - var res = arguments[arguments.length - 1]; - for (var i = arguments.length-2; i >= 0; i--) - res = new sc_Pair(arguments[i], res); - return res; -} - -/*** META ((export #t) - (peephole (postfix ".car"))) -*/ -function sc_car(p) { - return p.car; -} - -/*** META ((export #t) - (peephole (postfix ".cdr"))) -*/ -function sc_cdr(p) { - return p.cdr; -} - -/*** META ((export #t) - (peephole (hole 2 p ".car = " val))) -*/ -function sc_setCarBang(p, val) { - p.car = val; -} - -/*** META ((export #t) - (peephole (hole 2 p ".cdr = " val))) -*/ -function sc_setCdrBang(p, val) { - p.cdr = val; -} - -/*** META ((export #t) - (peephole (postfix ".car.car"))) -*/ -function sc_caar(p) { return p.car.car; } -/*** META ((export #t) - (peephole (postfix ".cdr.car"))) -*/ -function sc_cadr(p) { return p.cdr.car; } -/*** META ((export #t) - (peephole (postfix ".car.cdr"))) -*/ -function sc_cdar(p) { return p.car.cdr; } -/*** META ((export #t) - (peephole (postfix ".cdr.cdr"))) -*/ -function sc_cddr(p) { return p.cdr.cdr; } -/*** META ((export #t) - (peephole (postfix ".car.car.car"))) -*/ -function sc_caaar(p) { return p.car.car.car; } -/*** META ((export #t) - (peephole (postfix ".car.cdr.car"))) -*/ -function sc_cadar(p) { return p.car.cdr.car; } -/*** META ((export #t) - (peephole (postfix ".cdr.car.car"))) -*/ -function sc_caadr(p) { return p.cdr.car.car; } -/*** META ((export #t) - (peephole (postfix ".cdr.cdr.car"))) -*/ -function sc_caddr(p) { return p.cdr.cdr.car; } -/*** META ((export #t) - (peephole (postfix ".car.car.cdr"))) -*/ -function sc_cdaar(p) { return p.car.car.cdr; } -/*** META ((export #t) - (peephole (postfix ".cdr.car.cdr"))) -*/ -function sc_cdadr(p) { return p.cdr.car.cdr; } -/*** META ((export #t) - (peephole (postfix ".car.cdr.cdr"))) -*/ -function sc_cddar(p) { return p.car.cdr.cdr; } -/*** META ((export #t) - (peephole (postfix ".cdr.cdr.cdr"))) -*/ -function sc_cdddr(p) { return p.cdr.cdr.cdr; } -/*** META ((export #t) - (peephole (postfix ".car.car.car.car"))) -*/ -function sc_caaaar(p) { return p.car.car.car.car; } -/*** META ((export #t) - (peephole (postfix ".car.cdr.car.car"))) -*/ -function sc_caadar(p) { return p.car.cdr.car.car; } -/*** META ((export #t) - (peephole (postfix ".cdr.car.car.car"))) -*/ -function sc_caaadr(p) { return p.cdr.car.car.car; } -/*** META ((export #t) - (peephole (postfix ".cdr.cdr.car.car"))) -*/ -function sc_caaddr(p) { return p.cdr.cdr.car.car; } -/*** META ((export #t) - (peephole (postfix ".car.car.car.cdr"))) -*/ -function sc_cdaaar(p) { return p.car.car.car.cdr; } -/*** META ((export #t) - (peephole (postfix ".car.cdr.car.cdr"))) -*/ -function sc_cdadar(p) { return p.car.cdr.car.cdr; } -/*** META ((export #t) - (peephole (postfix ".cdr.car.car.cdr"))) -*/ -function sc_cdaadr(p) { return p.cdr.car.car.cdr; } -/*** META ((export #t) - (peephole (postfix ".cdr.cdr.car.cdr"))) -*/ -function sc_cdaddr(p) { return p.cdr.cdr.car.cdr; } -/*** META ((export #t) - (peephole (postfix ".car.car.cdr.car"))) -*/ -function sc_cadaar(p) { return p.car.car.cdr.car; } -/*** META ((export #t) - (peephole (postfix ".car.cdr.cdr.car"))) -*/ -function sc_caddar(p) { return p.car.cdr.cdr.car; } -/*** META ((export #t) - (peephole (postfix ".cdr.car.cdr.car"))) -*/ -function sc_cadadr(p) { return p.cdr.car.cdr.car; } -/*** META ((export #t) - (peephole (postfix ".cdr.cdr.cdr.car"))) -*/ -function sc_cadddr(p) { return p.cdr.cdr.cdr.car; } -/*** META ((export #t) - (peephole (postfix ".car.car.cdr.cdr"))) -*/ -function sc_cddaar(p) { return p.car.car.cdr.cdr; } -/*** META ((export #t) - (peephole (postfix ".car.cdr.cdr.cdr"))) -*/ -function sc_cdddar(p) { return p.car.cdr.cdr.cdr; } -/*** META ((export #t) - (peephole (postfix ".cdr.car.cdr.cdr"))) -*/ -function sc_cddadr(p) { return p.cdr.car.cdr.cdr; } -/*** META ((export #t) - (peephole (postfix ".cdr.cdr.cdr.cdr"))) -*/ -function sc_cddddr(p) { return p.cdr.cdr.cdr.cdr; } - -/*** META ((export #t)) */ -function sc_lastPair(l) { - if (!sc_isPair(l)) sc_error("sc_lastPair: pair expected"); - var res = l; - var cdr = l.cdr; - while (sc_isPair(cdr)) { - res = cdr; - cdr = res.cdr; - } - return res; -} - -/*** META ((export #t) - (type bool) - (peephole (postfix " === null"))) -*/ -function sc_isNull(o) { - return (o === null); -} - -/*** META ((export #t) - (type bool)) -*/ -function sc_isList(o) { - var rabbit; - var turtle; - - var rabbit = o; - var turtle = o; - while (true) { - if (rabbit === null || - (rabbit instanceof sc_Pair && rabbit.cdr === null)) - return true; // end of list - else if ((rabbit instanceof sc_Pair) && - (rabbit.cdr instanceof sc_Pair)) { - rabbit = rabbit.cdr.cdr; - turtle = turtle.cdr; - if (rabbit === turtle) return false; // cycle - } else - return false; // not pair - } -} - -/*** META ((export #t)) */ -function sc_list() { - var res = null; - var a = arguments; - for (var i = a.length-1; i >= 0; i--) - res = new sc_Pair(a[i], res); - return res; -} - -/*** META ((export #t)) */ -function sc_iota(num, init) { - var res = null; - if (!init) init = 0; - for (var i = num - 1; i >= 0; i--) - res = new sc_Pair(i + init, res); - return res; -} - -/*** META ((export #t)) */ -function sc_makeList(nbEls, fill) { - var res = null; - for (var i = 0; i < nbEls; i++) - res = new sc_Pair(fill, res); - return res; -} - -/*** META ((export #t)) */ -function sc_length(l) { - var res = 0; - while (l !== null) { - res++; - l = l.cdr; - } - return res; -} - -/*** META ((export #t)) */ -function sc_remq(o, l) { - var dummy = { cdr : null }; - var tail = dummy; - while (l !== null) { - if (l.car !== o) { - tail.cdr = sc_cons(l.car, null); - tail = tail.cdr; - } - l = l.cdr; - } - return dummy.cdr; -} - -/*** META ((export #t)) */ -function sc_remqBang(o, l) { - var dummy = { cdr : null }; - var tail = dummy; - var needsAssig = true; - while (l !== null) { - if (l.car === o) { - needsAssig = true; - } else { - if (needsAssig) { - tail.cdr = l; - needsAssig = false; - } - tail = l; - } - l = l.cdr; - } - tail.cdr = null; - return dummy.cdr; -} - -/*** META ((export #t)) */ -function sc_delete(o, l) { - var dummy = { cdr : null }; - var tail = dummy; - while (l !== null) { - if (!sc_isEqual(l.car, o)) { - tail.cdr = sc_cons(l.car, null); - tail = tail.cdr; - } - l = l.cdr; - } - return dummy.cdr; -} - -/*** META ((export #t)) */ -function sc_deleteBang(o, l) { - var dummy = { cdr : null }; - var tail = dummy; - var needsAssig = true; - while (l !== null) { - if (sc_isEqual(l.car, o)) { - needsAssig = true; - } else { - if (needsAssig) { - tail.cdr = l; - needsAssig = false; - } - tail = l; - } - l = l.cdr; - } - tail.cdr = null; - return dummy.cdr; -} - -function sc_reverseAppendBang(l1, l2) { - var res = l2; - while (l1 !== null) { - var tmp = res; - res = l1; - l1 = l1.cdr; - res.cdr = tmp; - } - return res; -} - -function sc_dualAppend(l1, l2) { - if (l1 === null) return l2; - if (l2 === null) return l1; - var rev = sc_reverse(l1); - return sc_reverseAppendBang(rev, l2); -} - -/*** META ((export #t)) */ -function sc_append() { - if (arguments.length === 0) - return null; - var res = arguments[arguments.length - 1]; - for (var i = arguments.length - 2; i >= 0; i--) - res = sc_dualAppend(arguments[i], res); - return res; -} - -function sc_dualAppendBang(l1, l2) { - if (l1 === null) return l2; - if (l2 === null) return l1; - var tmp = l1; - while (tmp.cdr !== null) tmp=tmp.cdr; - tmp.cdr = l2; - return l1; -} - -/*** META ((export #t)) */ -function sc_appendBang() { - var res = null; - for (var i = 0; i < arguments.length; i++) - res = sc_dualAppendBang(res, arguments[i]); - return res; -} - -/*** META ((export #t)) */ -function sc_reverse(l1) { - var res = null; - while (l1 !== null) { - res = sc_cons(l1.car, res); - l1 = l1.cdr; - } - return res; -} - -/*** META ((export #t)) */ -function sc_reverseBang(l) { - return sc_reverseAppendBang(l, null); -} - -/*** META ((export #t)) */ -function sc_listTail(l, k) { - var res = l; - for (var i = 0; i < k; i++) { - res = res.cdr; - } - return res; -} - -/*** META ((export #t)) */ -function sc_listRef(l, k) { - return sc_listTail(l, k).car; -} - -/* // unoptimized generic versions -function sc_memX(o, l, comp) { - while (l != null) { - if (comp(l.car, o)) - return l; - l = l.cdr; - } - return false; -} -function sc_memq(o, l) { return sc_memX(o, l, sc_isEq); } -function sc_memv(o, l) { return sc_memX(o, l, sc_isEqv); } -function sc_member(o, l) { return sc_memX(o, l, sc_isEqual); } -*/ - -/* optimized versions */ -/*** META ((export #t)) */ -function sc_memq(o, l) { - while (l !== null) { - if (l.car === o) - return l; - l = l.cdr; - } - return false; -} -/*** META ((export #t)) */ -function sc_memv(o, l) { - while (l !== null) { - if (l.car === o) - return l; - l = l.cdr; - } - return false; -} -/*** META ((export #t)) */ -function sc_member(o, l) { - while (l !== null) { - if (sc_isEqual(l.car,o)) - return l; - l = l.cdr; - } - return false; -} - -/* // generic unoptimized versions -function sc_assX(o, al, comp) { - while (al != null) { - if (comp(al.car.car, o)) - return al.car; - al = al.cdr; - } - return false; -} -function sc_assq(o, al) { return sc_assX(o, al, sc_isEq); } -function sc_assv(o, al) { return sc_assX(o, al, sc_isEqv); } -function sc_assoc(o, al) { return sc_assX(o, al, sc_isEqual); } -*/ -// optimized versions -/*** META ((export #t)) */ -function sc_assq(o, al) { - while (al !== null) { - if (al.car.car === o) - return al.car; - al = al.cdr; - } - return false; -} -/*** META ((export #t)) */ -function sc_assv(o, al) { - while (al !== null) { - if (al.car.car === o) - return al.car; - al = al.cdr; - } - return false; -} -/*** META ((export #t)) */ -function sc_assoc(o, al) { - while (al !== null) { - if (sc_isEqual(al.car.car, o)) - return al.car; - al = al.cdr; - } - return false; -} - -/* can be used for mutable strings and characters */ -function sc_isCharStringEqual(cs1, cs2) { return cs1.val === cs2.val; } -function sc_isCharStringLess(cs1, cs2) { return cs1.val < cs2.val; } -function sc_isCharStringGreater(cs1, cs2) { return cs1.val > cs2.val; } -function sc_isCharStringLessEqual(cs1, cs2) { return cs1.val <= cs2.val; } -function sc_isCharStringGreaterEqual(cs1, cs2) { return cs1.val >= cs2.val; } -function sc_isCharStringCIEqual(cs1, cs2) - { return cs1.val.toLowerCase() === cs2.val.toLowerCase(); } -function sc_isCharStringCILess(cs1, cs2) - { return cs1.val.toLowerCase() < cs2.val.toLowerCase(); } -function sc_isCharStringCIGreater(cs1, cs2) - { return cs1.val.toLowerCase() > cs2.val.toLowerCase(); } -function sc_isCharStringCILessEqual(cs1, cs2) - { return cs1.val.toLowerCase() <= cs2.val.toLowerCase(); } -function sc_isCharStringCIGreaterEqual(cs1, cs2) - { return cs1.val.toLowerCase() >= cs2.val.toLowerCase(); } - - - - -function sc_Char(c) { - var cached = sc_Char.lazy[c]; - if (cached) - return cached; - this.val = c; - sc_Char.lazy[c] = this; - // add return, so FF does not complain. - return undefined; -} -sc_Char.lazy = new Object(); -// thanks to Eric -sc_Char.char2readable = { - "\000": "#\\null", - "\007": "#\\bell", - "\010": "#\\backspace", - "\011": "#\\tab", - "\012": "#\\newline", - "\014": "#\\page", - "\015": "#\\return", - "\033": "#\\escape", - "\040": "#\\space", - "\177": "#\\delete", - - /* poeticless names */ - "\001": "#\\soh", - "\002": "#\\stx", - "\003": "#\\etx", - "\004": "#\\eot", - "\005": "#\\enq", - "\006": "#\\ack", - - "\013": "#\\vt", - "\016": "#\\so", - "\017": "#\\si", - - "\020": "#\\dle", - "\021": "#\\dc1", - "\022": "#\\dc2", - "\023": "#\\dc3", - "\024": "#\\dc4", - "\025": "#\\nak", - "\026": "#\\syn", - "\027": "#\\etb", - - "\030": "#\\can", - "\031": "#\\em", - "\032": "#\\sub", - "\033": "#\\esc", - "\034": "#\\fs", - "\035": "#\\gs", - "\036": "#\\rs", - "\037": "#\\us"}; - -sc_Char.readable2char = { - "null": "\000", - "bell": "\007", - "backspace": "\010", - "tab": "\011", - "newline": "\012", - "page": "\014", - "return": "\015", - "escape": "\033", - "space": "\040", - "delete": "\000", - "soh": "\001", - "stx": "\002", - "etx": "\003", - "eot": "\004", - "enq": "\005", - "ack": "\006", - "bel": "\007", - "bs": "\010", - "ht": "\011", - "nl": "\012", - "vt": "\013", - "np": "\014", - "cr": "\015", - "so": "\016", - "si": "\017", - "dle": "\020", - "dc1": "\021", - "dc2": "\022", - "dc3": "\023", - "dc4": "\024", - "nak": "\025", - "syn": "\026", - "etb": "\027", - "can": "\030", - "em": "\031", - "sub": "\032", - "esc": "\033", - "fs": "\034", - "gs": "\035", - "rs": "\036", - "us": "\037", - "sp": "\040", - "del": "\177"}; - -sc_Char.prototype.toString = function() { - return this.val; -}; -// sc_toDisplayString == toString -sc_Char.prototype.sc_toWriteString = function() { - var entry = sc_Char.char2readable[this.val]; - if (entry) - return entry; - else - return "#\\" + this.val; -}; - -/*** META ((export #t) - (type bool) - (peephole (postfix "instanceof sc_Char"))) -*/ -function sc_isChar(c) { - return (c instanceof sc_Char); -} - -/*** META ((export char=?) - (type bool) - (peephole (hole 2 c1 ".val === " c2 ".val"))) -*/ -var sc_isCharEqual = sc_isCharStringEqual; -/*** META ((export char?) - (type bool) - (peephole (hole 2 c1 ".val > " c2 ".val"))) -*/ -var sc_isCharGreater = sc_isCharStringGreater; -/*** META ((export char<=?) - (type bool) - (peephole (hole 2 c1 ".val <= " c2 ".val"))) -*/ -var sc_isCharLessEqual = sc_isCharStringLessEqual; -/*** META ((export char>=?) - (type bool) - (peephole (hole 2 c1 ".val >= " c2 ".val"))) -*/ -var sc_isCharGreaterEqual = sc_isCharStringGreaterEqual; -/*** META ((export char-ci=?) - (type bool) - (peephole (hole 2 c1 ".val.toLowerCase() === " c2 ".val.toLowerCase()"))) -*/ -var sc_isCharCIEqual = sc_isCharStringCIEqual; -/*** META ((export char-ci?) - (type bool) - (peephole (hole 2 c1 ".val.toLowerCase() > " c2 ".val.toLowerCase()"))) -*/ -var sc_isCharCIGreater = sc_isCharStringCIGreater; -/*** META ((export char-ci<=?) - (type bool) - (peephole (hole 2 c1 ".val.toLowerCase() <= " c2 ".val.toLowerCase()"))) -*/ -var sc_isCharCILessEqual = sc_isCharStringCILessEqual; -/*** META ((export char-ci>=?) - (type bool) - (peephole (hole 2 c1 ".val.toLowerCase() >= " c2 ".val.toLowerCase()"))) -*/ -var sc_isCharCIGreaterEqual = sc_isCharStringCIGreaterEqual; - -var SC_NUMBER_CLASS = "0123456789"; -var SC_WHITESPACE_CLASS = ' \r\n\t\f'; -var SC_LOWER_CLASS = 'abcdefghijklmnopqrstuvwxyz'; -var SC_UPPER_CLASS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; - -function sc_isCharOfClass(c, cl) { return (cl.indexOf(c) != -1); } -/*** META ((export #t) - (type bool)) -*/ -function sc_isCharAlphabetic(c) - { return sc_isCharOfClass(c.val, SC_LOWER_CLASS) || - sc_isCharOfClass(c.val, SC_UPPER_CLASS); } -/*** META ((export #t) - (type bool) - (peephole (hole 1 "SC_NUMBER_CLASS.indexOf(" c ".val) != -1"))) -*/ -function sc_isCharNumeric(c) - { return sc_isCharOfClass(c.val, SC_NUMBER_CLASS); } -/*** META ((export #t) - (type bool)) -*/ -function sc_isCharWhitespace(c) { - var tmp = c.val; - return tmp === " " || tmp === "\r" || tmp === "\n" || tmp === "\t" || tmp === "\f"; -} -/*** META ((export #t) - (type bool) - (peephole (hole 1 "SC_UPPER_CLASS.indexOf(" c ".val) != -1"))) -*/ -function sc_isCharUpperCase(c) - { return sc_isCharOfClass(c.val, SC_UPPER_CLASS); } -/*** META ((export #t) - (type bool) - (peephole (hole 1 "SC_LOWER_CLASS.indexOf(" c ".val) != -1"))) -*/ -function sc_isCharLowerCase(c) - { return sc_isCharOfClass(c.val, SC_LOWER_CLASS); } - -/*** META ((export #t) - (peephole (postfix ".val.charCodeAt(0)"))) -*/ -function sc_char2integer(c) - { return c.val.charCodeAt(0); } -/*** META ((export #t) - (peephole (hole 1 "new sc_Char(String.fromCharCode(" n "))"))) -*/ -function sc_integer2char(n) - { return new sc_Char(String.fromCharCode(n)); } - -/*** META ((export #t) - (peephole (hole 1 "new sc_Char(" c ".val.toUpperCase())"))) -*/ -function sc_charUpcase(c) - { return new sc_Char(c.val.toUpperCase()); } -/*** META ((export #t) - (peephole (hole 1 "new sc_Char(" c ".val.toLowerCase())"))) -*/ -function sc_charDowncase(c) - { return new sc_Char(c.val.toLowerCase()); } - -function sc_makeJSStringOfLength(k, c) { - var fill; - if (c === undefined) - fill = " "; - else - fill = c; - var res = ""; - var len = 1; - // every round doubles the size of fill. - while (k >= len) { - if (k & len) - res = res.concat(fill); - fill = fill.concat(fill); - len *= 2; - } - return res; -} - -function sc_makejsString(k, c) { - var fill; - if (c) - fill = c.val; - else - fill = " "; - return sc_makeJSStringOfLength(k, fill); -} - -function sc_jsstring2list(s) { - var res = null; - for (var i = s.length - 1; i >= 0; i--) - res = sc_cons(new sc_Char(s.charAt(i)), res); - return res; -} - -function sc_list2jsstring(l) { - var a = new Array(); - while(l !== null) { - a.push(l.car.val); - l = l.cdr; - } - return "".concat.apply("", a); -} - -var sc_Vector = Array; - -sc_Vector.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) { - if (this.length === 0) return "#()"; - - var res = "#(" + writeOrDisplay(this[0]); - for (var i = 1; i < this.length; i++) - res += " " + writeOrDisplay(this[i]); - res += ")"; - return res; -}; -sc_Vector.prototype.sc_toDisplayString = function() { - return this.sc_toWriteOrDisplayString(sc_toDisplayString); -}; -sc_Vector.prototype.sc_toWriteString = function() { - return this.sc_toWriteOrDisplayString(sc_toWriteString); -}; - -/*** META ((export vector? array?) - (type bool) - (peephole (postfix " instanceof sc_Vector"))) -*/ -function sc_isVector(v) { - return (v instanceof sc_Vector); -} - -// only applies to vectors -function sc_isVectorEqual(v1, v2, comp) { - if (v1.length !== v2.length) return false; - for (var i = 0; i < v1.length; i++) - if (!comp(v1[i], v2[i])) return false; - return true; -} - -/*** META ((export make-vector make-array)) */ -function sc_makeVector(size, fill) { - var a = new sc_Vector(size); - if (fill !== undefined) - sc_vectorFillBang(a, fill); - return a; -} - -/*** META ((export vector array) - (peephole (vector))) -*/ -function sc_vector() { - var a = new sc_Vector(); - for (var i = 0; i < arguments.length; i++) - a.push(arguments[i]); - return a; -} - -/*** META ((export vector-length array-length) - (peephole (postfix ".length"))) -*/ -function sc_vectorLength(v) { - return v.length; -} - -/*** META ((export vector-ref array-ref) - (peephole (hole 2 v "[" pos "]"))) -*/ -function sc_vectorRef(v, pos) { - return v[pos]; -} - -/*** META ((export vector-set! array-set!) - (peephole (hole 3 v "[" pos "] = " val))) -*/ -function sc_vectorSetBang(v, pos, val) { - v[pos] = val; -} - -/*** META ((export vector->list array->list)) */ -function sc_vector2list(a) { - var res = null; - for (var i = a.length-1; i >= 0; i--) - res = sc_cons(a[i], res); - return res; -} - -/*** META ((export list->vector list->array)) */ -function sc_list2vector(l) { - var a = new sc_Vector(); - while(l !== null) { - a.push(l.car); - l = l.cdr; - } - return a; -} - -/*** META ((export vector-fill! array-fill!)) */ -function sc_vectorFillBang(a, fill) { - for (var i = 0; i < a.length; i++) - a[i] = fill; -} - - -/*** META ((export #t)) */ -function sc_copyVector(a, len) { - if (len <= a.length) - return a.slice(0, len); - else { - var tmp = a.concat(); - tmp.length = len; - return tmp; - } -} - -/*** META ((export #t) - (peephole (hole 3 a ".slice(" start "," end ")"))) -*/ -function sc_vectorCopy(a, start, end) { - return a.slice(start, end); -} - -/*** META ((export #t)) */ -function sc_vectorCopyBang(target, tstart, source, sstart, send) { - if (!sstart) sstart = 0; - if (!send) send = source.length; - - // if target == source we don't want to overwrite not yet copied elements. - if (tstart <= sstart) { - for (var i = tstart, j = sstart; j < send; i++, j++) { - target[i] = source[j]; - } - } else { - var diff = send - sstart; - for (var i = tstart + diff - 1, j = send - 1; - j >= sstart; - i--, j--) { - target[i] = source[j]; - } - } - return target; -} - -/*** META ((export #t) - (type bool) - (peephole (hole 1 "typeof " o " === 'function'"))) -*/ -function sc_isProcedure(o) { - return (typeof o === "function"); -} - -/*** META ((export #t)) */ -function sc_apply(proc) { - var args = new Array(); - // first part of arguments are not in list-form. - for (var i = 1; i < arguments.length - 1; i++) - args.push(arguments[i]); - var l = arguments[arguments.length - 1]; - while (l !== null) { - args.push(l.car); - l = l.cdr; - } - return proc.apply(null, args); -} - -/*** META ((export #t)) */ -function sc_map(proc, l1) { - if (l1 === undefined) - return null; - // else - var nbApplyArgs = arguments.length - 1; - var applyArgs = new Array(nbApplyArgs); - var revres = null; - while (l1 !== null) { - for (var i = 0; i < nbApplyArgs; i++) { - applyArgs[i] = arguments[i + 1].car; - arguments[i + 1] = arguments[i + 1].cdr; - } - revres = sc_cons(proc.apply(null, applyArgs), revres); - } - return sc_reverseAppendBang(revres, null); -} - -/*** META ((export #t)) */ -function sc_mapBang(proc, l1) { - if (l1 === undefined) - return null; - // else - var l1_orig = l1; - var nbApplyArgs = arguments.length - 1; - var applyArgs = new Array(nbApplyArgs); - while (l1 !== null) { - var tmp = l1; - for (var i = 0; i < nbApplyArgs; i++) { - applyArgs[i] = arguments[i + 1].car; - arguments[i + 1] = arguments[i + 1].cdr; - } - tmp.car = proc.apply(null, applyArgs); - } - return l1_orig; -} - -/*** META ((export #t)) */ -function sc_forEach(proc, l1) { - if (l1 === undefined) - return undefined; - // else - var nbApplyArgs = arguments.length - 1; - var applyArgs = new Array(nbApplyArgs); - while (l1 !== null) { - for (var i = 0; i < nbApplyArgs; i++) { - applyArgs[i] = arguments[i + 1].car; - arguments[i + 1] = arguments[i + 1].cdr; - } - proc.apply(null, applyArgs); - } - // add return so FF does not complain. - return undefined; -} - -/*** META ((export #t)) */ -function sc_filter(proc, l1) { - var dummy = { cdr : null }; - var tail = dummy; - while (l1 !== null) { - if (proc(l1.car) !== false) { - tail.cdr = sc_cons(l1.car, null); - tail = tail.cdr; - } - l1 = l1.cdr; - } - return dummy.cdr; -} - -/*** META ((export #t)) */ -function sc_filterBang(proc, l1) { - var head = sc_cons("dummy", l1); - var it = head; - var next = l1; - while (next !== null) { - if (proc(next.car) !== false) { - it.cdr = next - it = next; - } - next = next.cdr; - } - it.cdr = null; - return head.cdr; -} - -function sc_filterMap1(proc, l1) { - var revres = null; - while (l1 !== null) { - var tmp = proc(l1.car) - if (tmp !== false) revres = sc_cons(tmp, revres); - l1 = l1.cdr; - } - return sc_reverseAppendBang(revres, null); -} -function sc_filterMap2(proc, l1, l2) { - var revres = null; - while (l1 !== null) { - var tmp = proc(l1.car, l2.car); - if(tmp !== false) revres = sc_cons(tmp, revres); - l1 = l1.cdr; - l2 = l2.cdr - } - return sc_reverseAppendBang(revres, null); -} - -/*** META ((export #t)) */ -function sc_filterMap(proc, l1, l2, l3) { - if (l2 === undefined) - return sc_filterMap1(proc, l1); - else if (l3 === undefined) - return sc_filterMap2(proc, l1, l2); - // else - var nbApplyArgs = arguments.length - 1; - var applyArgs = new Array(nbApplyArgs); - var revres = null; - while (l1 !== null) { - for (var i = 0; i < nbApplyArgs; i++) { - applyArgs[i] = arguments[i + 1].car; - arguments[i + 1] = arguments[i + 1].cdr; - } - var tmp = proc.apply(null, applyArgs); - if(tmp !== false) revres = sc_cons(tmp, revres); - } - return sc_reverseAppendBang(revres, null); -} - -/*** META ((export #t)) */ -function sc_any(proc, l) { - var revres = null; - while (l !== null) { - var tmp = proc(l.car); - if(tmp !== false) return tmp; - l = l.cdr; - } - return false; -} - -/*** META ((export any?) - (peephole (hole 2 "sc_any(" proc "," l ") !== false"))) -*/ -function sc_anyPred(proc, l) { - return sc_any(proc, l)!== false; -} - -/*** META ((export #t)) */ -function sc_every(proc, l) { - var revres = null; - var tmp = true; - while (l !== null) { - tmp = proc(l.car); - if (tmp === false) return false; - l = l.cdr; - } - return tmp; -} - -/*** META ((export every?) - (peephole (hole 2 "sc_every(" proc "," l ") !== false"))) -*/ -function sc_everyPred(proc, l) { - var tmp = sc_every(proc, l); - if (tmp !== false) return true; - return false; -} - -/*** META ((export #t) - (peephole (postfix "()"))) -*/ -function sc_force(o) { - return o(); -} - -/*** META ((export #t)) */ -function sc_makePromise(proc) { - var isResultReady = false; - var result = undefined; - return function() { - if (!isResultReady) { - var tmp = proc(); - if (!isResultReady) { - isResultReady = true; - result = tmp; - } - } - return result; - }; -} - -function sc_Values(values) { - this.values = values; -} - -/*** META ((export #t) - (peephole (values))) -*/ -function sc_values() { - if (arguments.length === 1) - return arguments[0]; - else - return new sc_Values(arguments); -} - -/*** META ((export #t)) */ -function sc_callWithValues(producer, consumer) { - var produced = producer(); - if (produced instanceof sc_Values) - return consumer.apply(null, produced.values); - else - return consumer(produced); -} - -/*** META ((export #t)) */ -function sc_dynamicWind(before, thunk, after) { - before(); - try { - var res = thunk(); - return res; - } finally { - after(); - } -} - - -// TODO: eval/scheme-report-environment/null-environment/interaction-environment - -// LIMITATION: 'load' doesn't exist without files. -// LIMITATION: transcript-on/transcript-off doesn't exist without files. - - -function sc_Struct(name) { - this.name = name; -} -sc_Struct.prototype.sc_toDisplayString = function() { - return "#"; -}; -sc_Struct.prototype.sc_toWriteString = sc_Struct.prototype.sc_toDisplayString; - -/*** META ((export #t) - (peephole (hole 1 "new sc_Struct(" name ")"))) -*/ -function sc_makeStruct(name) { - return new sc_Struct(name); -} - -/*** META ((export #t) - (type bool) - (peephole (postfix " instanceof sc_Struct"))) -*/ -function sc_isStruct(o) { - return (o instanceof sc_Struct); -} - -/*** META ((export #t) - (type bool) - (peephole (hole 2 "(" 1 " instanceof sc_Struct) && ( " 1 ".name === " 0 ")"))) -*/ -function sc_isStructNamed(name, s) { - return ((s instanceof sc_Struct) && (s.name === name)); -} - -/*** META ((export struct-field) - (peephole (hole 3 0 "[" 2 "]"))) -*/ -function sc_getStructField(s, name, field) { - return s[field]; -} - -/*** META ((export struct-field-set!) - (peephole (hole 4 0 "[" 2 "] = " 3))) -*/ -function sc_setStructFieldBang(s, name, field, val) { - s[field] = val; -} - -/*** META ((export #t) - (peephole (prefix "~"))) -*/ -function sc_bitNot(x) { - return ~x; -} - -/*** META ((export #t) - (peephole (infix 2 2 "&"))) -*/ -function sc_bitAnd(x, y) { - return x & y; -} - -/*** META ((export #t) - (peephole (infix 2 2 "|"))) -*/ -function sc_bitOr(x, y) { - return x | y; -} - -/*** META ((export #t) - (peephole (infix 2 2 "^"))) -*/ -function sc_bitXor(x, y) { - return x ^ y; -} - -/*** META ((export #t) - (peephole (infix 2 2 "<<"))) -*/ -function sc_bitLsh(x, y) { - return x << y; -} - -/*** META ((export #t) - (peephole (infix 2 2 ">>"))) -*/ -function sc_bitRsh(x, y) { - return x >> y; -} - -/*** META ((export #t) - (peephole (infix 2 2 ">>>"))) -*/ -function sc_bitUrsh(x, y) { - return x >>> y; -} - -/*** META ((export js-field js-property) - (peephole (hole 2 o "[" field "]"))) -*/ -function sc_jsField(o, field) { - return o[field]; -} - -/*** META ((export js-field-set! js-property-set!) - (peephole (hole 3 o "[" field "] = " val))) -*/ -function sc_setJsFieldBang(o, field, val) { - return o[field] = val; -} - -/*** META ((export js-field-delete! js-property-delete!) - (peephole (hole 2 "delete" o "[" field "]"))) -*/ -function sc_deleteJsFieldBang(o, field) { - delete o[field]; -} - -/*** META ((export #t) - (peephole (jsCall))) -*/ -function sc_jsCall(o, fun) { - var args = new Array(); - for (var i = 2; i < arguments.length; i++) - args[i-2] = arguments[i]; - return fun.apply(o, args); -} - -/*** META ((export #t) - (peephole (jsMethodCall))) -*/ -function sc_jsMethodCall(o, field) { - var args = new Array(); - for (var i = 2; i < arguments.length; i++) - args[i-2] = arguments[i]; - return o[field].apply(o, args); -} - -/*** META ((export new js-new) - (peephole (jsNew))) -*/ -function sc_jsNew(c) { - var evalStr = "new c("; - evalStr +=arguments.length > 1? "arguments[1]": ""; - for (var i = 2; i < arguments.length; i++) - evalStr += ", arguments[" + i + "]"; - evalStr +=")"; - return eval(evalStr); -} - -// ======================== RegExp ==================== -/*** META ((export #t)) */ -function sc_pregexp(re) { - return new RegExp(sc_string2jsstring(re)); -} - -/*** META ((export #t)) */ -function sc_pregexpMatch(re, s) { - var reg = (re instanceof RegExp) ? re : sc_pregexp(re); - var tmp = reg.exec(sc_string2jsstring(s)); - - if (tmp == null) return false; - - var res = null; - for (var i = tmp.length-1; i >= 0; i--) { - if (tmp[i] !== null) { - res = sc_cons(sc_jsstring2string(tmp[i]), res); - } else { - res = sc_cons(false, res); - } - } - return res; -} - -/*** META ((export #t)) */ -function sc_pregexpReplace(re, s1, s2) { - var reg; - var jss1 = sc_string2jsstring(s1); - var jss2 = sc_string2jsstring(s2); - - if (re instanceof RegExp) { - if (re.global) - reg = re; - else - reg = new RegExp(re.source); - } else { - reg = new RegExp(sc_string2jsstring(re)); - } - - return jss1.replace(reg, jss2); -} - -/*** META ((export pregexp-replace*)) */ -function sc_pregexpReplaceAll(re, s1, s2) { - var reg; - var jss1 = sc_string2jsstring(s1); - var jss2 = sc_string2jsstring(s2); - - if (re instanceof RegExp) { - if (re.global) - reg = re; - else - reg = new RegExp(re.source, "g"); - } else { - reg = new RegExp(sc_string2jsstring(re), "g"); - } - - return jss1.replace(reg, jss2); -} - -/*** META ((export #t)) */ -function sc_pregexpSplit(re, s) { - var reg = ((re instanceof RegExp) ? - re : - new RegExp(sc_string2jsstring(re))); - var jss = sc_string2jsstring(s); - var tmp = jss.split(reg); - - if (tmp == null) return false; - - return sc_vector2list(tmp); -} - - -/* =========================================================================== */ -/* Other library stuff */ -/* =========================================================================== */ - -/*** META ((export #t) - (peephole (hole 1 "Math.floor(Math.random()*" 'n ")"))) -*/ -function sc_random(n) { - return Math.floor(Math.random()*n); -} - -/*** META ((export current-date) - (peephole (hole 0 "new Date()"))) -*/ -function sc_currentDate() { - return new Date(); -} - -function sc_Hashtable() { -} -sc_Hashtable.prototype.toString = function() { - return "#{%hashtable}"; -}; -// sc_toWriteString == sc_toDisplayString == toString - -function sc_HashtableElement(key, val) { - this.key = key; - this.val = val; -} - -/*** META ((export #t) - (peephole (hole 0 "new sc_Hashtable()"))) -*/ -function sc_makeHashtable() { - return new sc_Hashtable(); -} - -/*** META ((export #t)) */ -function sc_hashtablePutBang(ht, key, val) { - var hash = sc_hash(key); - ht[hash] = new sc_HashtableElement(key, val); -} - -/*** META ((export #t)) */ -function sc_hashtableGet(ht, key) { - var hash = sc_hash(key); - if (hash in ht) - return ht[hash].val; - else - return false; -} - -/*** META ((export #t)) */ -function sc_hashtableForEach(ht, f) { - for (var v in ht) { - if (ht[v] instanceof sc_HashtableElement) - f(ht[v].key, ht[v].val); - } -} - -/*** META ((export hashtable-contains?) - (peephole (hole 2 "sc_hash(" 1 ") in " 0))) -*/ -function sc_hashtableContains(ht, key) { - var hash = sc_hash(key); - if (hash in ht) - return true; - else - return false; -} - -var SC_HASH_COUNTER = 0; - -function sc_hash(o) { - if (o === null) - return "null"; - else if (o === undefined) - return "undefined"; - else if (o === true) - return "true"; - else if (o === false) - return "false"; - else if (typeof o === "number") - return "num-" + o; - else if (typeof o === "string") - return "jsstr-" + o; - else if (o.sc_getHash) - return o.sc_getHash(); - else - return sc_counterHash.call(o); -} -function sc_counterHash() { - if (!this.sc_hash) { - this.sc_hash = "hash-" + SC_HASH_COUNTER; - SC_HASH_COUNTER++; - } - return this.sc_hash; -} - -function sc_Trampoline(args, maxTailCalls) { - this['__trampoline return__'] = true; - this.args = args; - this.MAX_TAIL_CALLs = maxTailCalls; -} -// TODO: call/cc stuff -sc_Trampoline.prototype.restart = function() { - var o = this; - while (true) { - // set both globals. - SC_TAIL_OBJECT.calls = o.MAX_TAIL_CALLs-1; - var fun = o.args.callee; - var res = fun.apply(SC_TAIL_OBJECT, o.args); - if (res instanceof sc_Trampoline) - o = res; - else - return res; - } -} - -/*** META ((export bind-exit-lambda)) */ -function sc_bindExitLambda(proc) { - var escape_obj = new sc_BindExitException(); - var escape = function(res) { - escape_obj.res = res; - throw escape_obj; - }; - try { - return proc(escape); - } catch(e) { - if (e === escape_obj) { - return e.res; - } - throw e; - } -} -function sc_BindExitException() { - this._internalException = true; -} - -var SC_SCM2JS_GLOBALS = new Object(); - -// default tail-call depth. -// normally the program should set it again. but just in case... -var SC_TAIL_OBJECT = new Object(); -SC_SCM2JS_GLOBALS.TAIL_OBJECT = SC_TAIL_OBJECT; -// ======================== I/O ======================= - -/*------------------------------------------------------------------*/ - -function sc_EOF() { -} -var SC_EOF_OBJECT = new sc_EOF(); - -function sc_Port() { -} - -/* --------------- Input ports -------------------------------------*/ - -function sc_InputPort() { -} -sc_InputPort.prototype = new sc_Port(); - -sc_InputPort.prototype.peekChar = function() { - if (!("peeked" in this)) - this.peeked = this.getNextChar(); - return this.peeked; -} -sc_InputPort.prototype.readChar = function() { - var tmp = this.peekChar(); - delete this.peeked; - return tmp; -} -sc_InputPort.prototype.isCharReady = function() { - return true; -} -sc_InputPort.prototype.close = function() { - // do nothing -} - -/* .............. String port ..........................*/ -function sc_ErrorInputPort() { -}; -sc_ErrorInputPort.prototype = new sc_InputPort(); -sc_ErrorInputPort.prototype.getNextChar = function() { - throw "can't read from error-port."; -}; -sc_ErrorInputPort.prototype.isCharReady = function() { - return false; -}; - - -/* .............. String port ..........................*/ - -function sc_StringInputPort(jsStr) { - // we are going to do some charAts on the str. - // instead of recreating all the time a String-object, we - // create one in the beginning. (not sure, if this is really an optim) - this.str = new String(jsStr); - this.pos = 0; -} -sc_StringInputPort.prototype = new sc_InputPort(); -sc_StringInputPort.prototype.getNextChar = function() { - if (this.pos >= this.str.length) - return SC_EOF_OBJECT; - return this.str.charAt(this.pos++); -}; - -/* ------------- Read and other lib-funs -------------------------------*/ -function sc_Token(type, val, pos) { - this.type = type; - this.val = val; - this.pos = pos; -} -sc_Token.EOF = 0/*EOF*/; -sc_Token.OPEN_PAR = 1/*OPEN_PAR*/; -sc_Token.CLOSE_PAR = 2/*CLOSE_PAR*/; -sc_Token.OPEN_BRACE = 3/*OPEN_BRACE*/; -sc_Token.CLOSE_BRACE = 4/*CLOSE_BRACE*/; -sc_Token.OPEN_BRACKET = 5/*OPEN_BRACKET*/; -sc_Token.CLOSE_BRACKET = 6/*CLOSE_BRACKET*/; -sc_Token.WHITESPACE = 7/*WHITESPACE*/; -sc_Token.QUOTE = 8/*QUOTE*/; -sc_Token.ID = 9/*ID*/; -sc_Token.DOT = 10/*DOT*/; -sc_Token.STRING = 11/*STRING*/; -sc_Token.NUMBER = 12/*NUMBER*/; -sc_Token.ERROR = 13/*ERROR*/; -sc_Token.VECTOR_BEGIN = 14/*VECTOR_BEGIN*/; -sc_Token.TRUE = 15/*TRUE*/; -sc_Token.FALSE = 16/*FALSE*/; -sc_Token.UNSPECIFIED = 17/*UNSPECIFIED*/; -sc_Token.REFERENCE = 18/*REFERENCE*/; -sc_Token.STORE = 19/*STORE*/; -sc_Token.CHAR = 20/*CHAR*/; - -var SC_ID_CLASS = SC_LOWER_CLASS + SC_UPPER_CLASS + "!$%*+-./:<=>?@^_~"; -function sc_Tokenizer(port) { - this.port = port; -} -sc_Tokenizer.prototype.peekToken = function() { - if (this.peeked) - return this.peeked; - var newToken = this.nextToken(); - this.peeked = newToken; - return newToken; -}; -sc_Tokenizer.prototype.readToken = function() { - var tmp = this.peekToken(); - delete this.peeked; - return tmp; -}; -sc_Tokenizer.prototype.nextToken = function() { - var port = this.port; - - function isNumberChar(c) { - return (c >= "0" && c <= "9"); - }; - function isIdOrNumberChar(c) { - return SC_ID_CLASS.indexOf(c) != -1 || // ID-char - (c >= "0" && c <= "9"); - } - function isWhitespace(c) { - return c === " " || c === "\r" || c === "\n" || c === "\t" || c === "\f"; - }; - function isWhitespaceOrEOF(c) { - return isWhitespace(c) || c === SC_EOF_OBJECT; - }; - - function readString() { - res = ""; - while (true) { - var c = port.readChar(); - switch (c) { - case '"': - return new sc_Token(11/*STRING*/, res); - case "\\": - var tmp = port.readChar(); - switch (tmp) { - case '0': res += "\0"; break; - case 'a': res += "\a"; break; - case 'b': res += "\b"; break; - case 'f': res += "\f"; break; - case 'n': res += "\n"; break; - case 'r': res += "\r"; break; - case 't': res += "\t"; break; - case 'v': res += "\v"; break; - case '"': res += '"'; break; - case '\\': res += '\\'; break; - case 'x': - /* hexa-number */ - var nb = 0; - while (true) { - var hexC = port.peekChar(); - if (hexC >= '0' && hexC <= '9') { - port.readChar(); - nb = nb * 16 + hexC.charCodeAt(0) - '0'.charCodeAt(0); - } else if (hexC >= 'a' && hexC <= 'f') { - port.readChar(); - nb = nb * 16 + hexC.charCodeAt(0) - 'a'.charCodeAt(0); - } else if (hexC >= 'A' && hexC <= 'F') { - port.readChar(); - nb = nb * 16 + hexC.charCodeAt(0) - 'A'.charCodeAt(0); - } else { - // next char isn't part of hex. - res += String.fromCharCode(nb); - break; - } - } - break; - default: - if (tmp === SC_EOF_OBJECT) { - return new sc_Token(13/*ERROR*/, "unclosed string-literal" + res); - } - res += tmp; - } - break; - default: - if (c === SC_EOF_OBJECT) { - return new sc_Token(13/*ERROR*/, "unclosed string-literal" + res); - } - res += c; - } - } - }; - function readIdOrNumber(firstChar) { - var res = firstChar; - while (isIdOrNumberChar(port.peekChar())) - res += port.readChar(); - if (isNaN(res)) - return new sc_Token(9/*ID*/, res); - else - return new sc_Token(12/*NUMBER*/, res - 0); - }; - - function skipWhitespaceAndComments() { - var done = false; - while (!done) { - done = true; - while (isWhitespace(port.peekChar())) - port.readChar(); - if (port.peekChar() === ';') { - port.readChar(); - done = false; - while (true) { - curChar = port.readChar(); - if (curChar === SC_EOF_OBJECT || - curChar === '\n') - break; - } - } - } - }; - - function readDot() { - if (isWhitespace(port.peekChar())) - return new sc_Token(10/*DOT*/); - else - return readIdOrNumber("."); - }; - - function readSharp() { - var c = port.readChar(); - if (isWhitespace(c)) - return new sc_Token(13/*ERROR*/, "bad #-pattern0."); - - // reference - if (isNumberChar(c)) { - var nb = c - 0; - while (isNumberChar(port.peekChar())) - nb = nb*10 + (port.readChar() - 0); - switch (port.readChar()) { - case '#': - return new sc_Token(18/*REFERENCE*/, nb); - case '=': - return new sc_Token(19/*STORE*/, nb); - default: - return new sc_Token(13/*ERROR*/, "bad #-pattern1." + nb); - } - } - - if (c === "(") - return new sc_Token(14/*VECTOR_BEGIN*/); - - if (c === "\\") { // character - var tmp = "" - while (!isWhitespaceOrEOF(port.peekChar())) - tmp += port.readChar(); - switch (tmp.length) { - case 0: // it's escaping a whitespace char: - if (sc_isEOFObject(port.peekChar)) - return new sc_Token(13/*ERROR*/, "bad #-pattern2."); - else - return new sc_Token(20/*CHAR*/, port.readChar()); - case 1: - return new sc_Token(20/*CHAR*/, tmp); - default: - var entry = sc_Char.readable2char[tmp.toLowerCase()]; - if (entry) - return new sc_Token(20/*CHAR*/, entry); - else - return new sc_Token(13/*ERROR*/, "unknown character description: #\\" + tmp); - } - } - - // some constants (#t, #f, #unspecified) - var res; - var needing; - switch (c) { - case 't': res = new sc_Token(15/*TRUE*/, true); needing = ""; break; - case 'f': res = new sc_Token(16/*FALSE*/, false); needing = ""; break; - case 'u': res = new sc_Token(17/*UNSPECIFIED*/, undefined); needing = "nspecified"; break; - default: - return new sc_Token(13/*ERROR*/, "bad #-pattern3: " + c); - } - while(true) { - c = port.peekChar(); - if ((isWhitespaceOrEOF(c) || c === ')') && - needing == "") - return res; - else if (isWhitespace(c) || needing == "") - return new sc_Token(13/*ERROR*/, "bad #-pattern4 " + c + " " + needing); - else if (needing.charAt(0) == c) { - port.readChar(); // consume - needing = needing.slice(1); - } else - return new sc_Token(13/*ERROR*/, "bad #-pattern5"); - } - - }; - - skipWhitespaceAndComments(); - var curChar = port.readChar(); - if (curChar === SC_EOF_OBJECT) - return new sc_Token(0/*EOF*/, curChar); - switch (curChar) - { - case " ": - case "\n": - case "\t": - return readWhitespace(); - case "(": - return new sc_Token(1/*OPEN_PAR*/); - case ")": - return new sc_Token(2/*CLOSE_PAR*/); - case "{": - return new sc_Token(3/*OPEN_BRACE*/); - case "}": - return new sc_Token(4/*CLOSE_BRACE*/); - case "[": - return new sc_Token(5/*OPEN_BRACKET*/); - case "]": - return new sc_Token(6/*CLOSE_BRACKET*/); - case "'": - return new sc_Token(8/*QUOTE*/); - case "#": - return readSharp(); - case ".": - return readDot(); - case '"': - return readString(); - default: - if (isIdOrNumberChar(curChar)) - return readIdOrNumber(curChar); - throw "unexpected character: " + curChar; - } -}; - -function sc_Reader(tokenizer) { - this.tokenizer = tokenizer; - this.backref = new Array(); -} -sc_Reader.prototype.read = function() { - function readList(listBeginType) { - function matchesPeer(open, close) { - return open === 1/*OPEN_PAR*/ && close === 2/*CLOSE_PAR*/ - || open === 3/*OPEN_BRACE*/ && close === 4/*CLOSE_BRACE*/ - || open === 5/*OPEN_BRACKET*/ && close === 6/*CLOSE_BRACKET*/; - }; - var res = null; - - while (true) { - var token = tokenizer.peekToken(); - - switch (token.type) { - case 2/*CLOSE_PAR*/: - case 4/*CLOSE_BRACE*/: - case 6/*CLOSE_BRACKET*/: - if (matchesPeer(listBeginType, token.type)) { - tokenizer.readToken(); // consume token - return sc_reverseBang(res); - } else - throw "closing par doesn't match: " + listBeginType - + " " + listEndType; - - case 0/*EOF*/: - throw "unexpected end of file"; - - case 10/*DOT*/: - tokenizer.readToken(); // consume token - var cdr = this.read(); - var par = tokenizer.readToken(); - if (!matchesPeer(listBeginType, par.type)) - throw "closing par doesn't match: " + listBeginType - + " " + par.type; - else - return sc_reverseAppendBang(res, cdr); - - - default: - res = sc_cons(this.read(), res); - } - } - }; - function readQuote() { - return sc_cons("quote", sc_cons(this.read(), null)); - }; - function readVector() { - // opening-parenthesis is already consumed - var a = new Array(); - while (true) { - var token = tokenizer.peekToken(); - switch (token.type) { - case 2/*CLOSE_PAR*/: - tokenizer.readToken(); - return a; - - default: - a.push(this.read()); - } - } - }; - - function storeRefence(nb) { - var tmp = this.read(); - this.backref[nb] = tmp; - return tmp; - }; - - function readReference(nb) { - if (nb in this.backref) - return this.backref[nb]; - else - throw "bad reference: " + nb; - }; - - var tokenizer = this.tokenizer; - - var token = tokenizer.readToken(); - - // handle error - if (token.type === 13/*ERROR*/) - throw token.val; - - switch (token.type) { - case 1/*OPEN_PAR*/: - case 3/*OPEN_BRACE*/: - case 5/*OPEN_BRACKET*/: - return readList.call(this, token.type); - case 8/*QUOTE*/: - return readQuote.call(this); - case 11/*STRING*/: - return sc_jsstring2string(token.val); - case 20/*CHAR*/: - return new sc_Char(token.val); - case 14/*VECTOR_BEGIN*/: - return readVector.call(this); - case 18/*REFERENCE*/: - return readReference.call(this, token.val); - case 19/*STORE*/: - return storeRefence.call(this, token.val); - case 9/*ID*/: - return sc_jsstring2symbol(token.val); - case 0/*EOF*/: - case 12/*NUMBER*/: - case 15/*TRUE*/: - case 16/*FALSE*/: - case 17/*UNSPECIFIED*/: - return token.val; - default: - throw "unexpected token " + token.type + " " + token.val; - } -}; - -/*** META ((export #t)) */ -function sc_read(port) { - if (port === undefined) // we assume the port hasn't been given. - port = SC_DEFAULT_IN; // THREAD: shared var... - var reader = new sc_Reader(new sc_Tokenizer(port)); - return reader.read(); -} -/*** META ((export #t)) */ -function sc_readChar(port) { - if (port === undefined) // we assume the port hasn't been given. - port = SC_DEFAULT_IN; // THREAD: shared var... - var t = port.readChar(); - return t === SC_EOF_OBJECT? t: new sc_Char(t); -} -/*** META ((export #t)) */ -function sc_peekChar(port) { - if (port === undefined) // we assume the port hasn't been given. - port = SC_DEFAULT_IN; // THREAD: shared var... - var t = port.peekChar(); - return t === SC_EOF_OBJECT? t: new sc_Char(t); -} -/*** META ((export #t) - (type bool)) -*/ -function sc_isCharReady(port) { - if (port === undefined) // we assume the port hasn't been given. - port = SC_DEFAULT_IN; // THREAD: shared var... - return port.isCharReady(); -} -/*** META ((export #t) - (peephole (postfix ".close()"))) -*/ -function sc_closeInputPort(p) { - return p.close(); -} - -/*** META ((export #t) - (type bool) - (peephole (postfix " instanceof sc_InputPort"))) -*/ -function sc_isInputPort(o) { - return (o instanceof sc_InputPort); -} - -/*** META ((export eof-object?) - (type bool) - (peephole (postfix " === SC_EOF_OBJECT"))) -*/ -function sc_isEOFObject(o) { - return o === SC_EOF_OBJECT; -} - -/*** META ((export #t) - (peephole (hole 0 "SC_DEFAULT_IN"))) -*/ -function sc_currentInputPort() { - return SC_DEFAULT_IN; -} - -/* ------------ file operations are not supported -----------*/ -/*** META ((export #t)) */ -function sc_callWithInputFile(s, proc) { - throw "can't open " + s; -} - -/*** META ((export #t)) */ -function sc_callWithOutputFile(s, proc) { - throw "can't open " + s; -} - -/*** META ((export #t)) */ -function sc_withInputFromFile(s, thunk) { - throw "can't open " + s; -} - -/*** META ((export #t)) */ -function sc_withOutputToFile(s, thunk) { - throw "can't open " + s; -} - -/*** META ((export #t)) */ -function sc_openInputFile(s) { - throw "can't open " + s; -} - -/*** META ((export #t)) */ -function sc_openOutputFile(s) { - throw "can't open " + s; -} - -/* ----------------------------------------------------------------------------*/ -/*** META ((export #t)) */ -function sc_basename(p) { - var i = p.lastIndexOf('/'); - - if(i >= 0) - return p.substring(i + 1, p.length); - else - return ''; -} - -/*** META ((export #t)) */ -function sc_dirname(p) { - var i = p.lastIndexOf('/'); - - if(i >= 0) - return p.substring(0, i); - else - return ''; -} - -/* ----------------------------------------------------------------------------*/ - -/*** META ((export #t)) */ -function sc_withInputFromPort(p, thunk) { - try { - var tmp = SC_DEFAULT_IN; // THREAD: shared var. - SC_DEFAULT_IN = p; - return thunk(); - } finally { - SC_DEFAULT_IN = tmp; - } -} - -/*** META ((export #t)) */ -function sc_withInputFromString(s, thunk) { - return sc_withInputFromPort(new sc_StringInputPort(sc_string2jsstring(s)), thunk); -} - -/*** META ((export #t)) */ -function sc_withOutputToPort(p, thunk) { - try { - var tmp = SC_DEFAULT_OUT; // THREAD: shared var. - SC_DEFAULT_OUT = p; - return thunk(); - } finally { - SC_DEFAULT_OUT = tmp; - } -} - -/*** META ((export #t)) */ -function sc_withOutputToString(thunk) { - var p = new sc_StringOutputPort(); - sc_withOutputToPort(p, thunk); - return p.close(); -} - -/*** META ((export #t)) */ -function sc_withOutputToProcedure(proc, thunk) { - var t = function(s) { proc(sc_jsstring2string(s)); }; - return sc_withOutputToPort(new sc_GenericOutputPort(t), thunk); -} - -/*** META ((export #t) - (peephole (hole 0 "new sc_StringOutputPort()"))) -*/ -function sc_openOutputString() { - return new sc_StringOutputPort(); -} - -/*** META ((export #t)) */ -function sc_openInputString(str) { - return new sc_StringInputPort(sc_string2jsstring(str)); -} - -/* ----------------------------------------------------------------------------*/ - -function sc_OutputPort() { -} -sc_OutputPort.prototype = new sc_Port(); -sc_OutputPort.prototype.appendJSString = function(obj) { - /* do nothing */ -} -sc_OutputPort.prototype.close = function() { - /* do nothing */ -} - -function sc_StringOutputPort() { - this.res = ""; -} -sc_StringOutputPort.prototype = new sc_OutputPort(); -sc_StringOutputPort.prototype.appendJSString = function(s) { - this.res += s; -} -sc_StringOutputPort.prototype.close = function() { - return sc_jsstring2string(this.res); -} - -/*** META ((export #t)) */ -function sc_getOutputString(sp) { - return sc_jsstring2string(sp.res); -} - - -function sc_ErrorOutputPort() { -} -sc_ErrorOutputPort.prototype = new sc_OutputPort(); -sc_ErrorOutputPort.prototype.appendJSString = function(s) { - throw "don't write on ErrorPort!"; -} -sc_ErrorOutputPort.prototype.close = function() { - /* do nothing */ -} - -function sc_GenericOutputPort(appendJSString, close) { - this.appendJSString = appendJSString; - if (close) - this.close = close; -} -sc_GenericOutputPort.prototype = new sc_OutputPort(); - -/*** META ((export #t) - (type bool) - (peephole (postfix " instanceof sc_OutputPort"))) -*/ -function sc_isOutputPort(o) { - return (o instanceof sc_OutputPort); -} - -/*** META ((export #t) - (peephole (postfix ".close()"))) -*/ -function sc_closeOutputPort(p) { - return p.close(); -} - -/* ------------------ write ---------------------------------------------------*/ - -/*** META ((export #t)) */ -function sc_write(o, p) { - if (p === undefined) // we assume not given - p = SC_DEFAULT_OUT; - p.appendJSString(sc_toWriteString(o)); -} - -function sc_toWriteString(o) { - if (o === null) - return "()"; - else if (o === true) - return "#t"; - else if (o === false) - return "#f"; - else if (o === undefined) - return "#unspecified"; - else if (typeof o === 'function') - return "#"; - else if (o.sc_toWriteString) - return o.sc_toWriteString(); - else - return o.toString(); -} - -function sc_escapeWriteString(s) { - var res = ""; - var j = 0; - for (i = 0; i < s.length; i++) { - switch (s.charAt(i)) { - case "\0": res += s.substring(j, i) + "\\0"; j = i + 1; break; - case "\b": res += s.substring(j, i) + "\\b"; j = i + 1; break; - case "\f": res += s.substring(j, i) + "\\f"; j = i + 1; break; - case "\n": res += s.substring(j, i) + "\\n"; j = i + 1; break; - case "\r": res += s.substring(j, i) + "\\r"; j = i + 1; break; - case "\t": res += s.substring(j, i) + "\\t"; j = i + 1; break; - case "\v": res += s.substring(j, i) + "\\v"; j = i + 1; break; - case '"': res += s.substring(j, i) + '\\"'; j = i + 1; break; - case "\\": res += s.substring(j, i) + "\\\\"; j = i + 1; break; - default: - var c = s.charAt(i); - if ("\a" !== "a" && c == "\a") { - res += s.substring(j, i) + "\\a"; j = i + 1; continue; - } - if ("\v" !== "v" && c == "\v") { - res += s.substring(j, i) + "\\v"; j = i + 1; continue; - } - //if (s.charAt(i) < ' ' || s.charCodeAt(i) > 127) { - // CARE: Manuel is this OK with HOP? - if (s.charAt(i) < ' ') { - /* non printable character and special chars */ - res += s.substring(j, i) + "\\x" + s.charCodeAt(i).toString(16); - j = i + 1; - } - // else just let i increase... - } - } - res += s.substring(j, i); - return res; -} - -/* ------------------ display ---------------------------------------------------*/ - -/*** META ((export #t)) */ -function sc_display(o, p) { - if (p === undefined) // we assume not given - p = SC_DEFAULT_OUT; - p.appendJSString(sc_toDisplayString(o)); -} - -function sc_toDisplayString(o) { - if (o === null) - return "()"; - else if (o === true) - return "#t"; - else if (o === false) - return "#f"; - else if (o === undefined) - return "#unspecified"; - else if (typeof o === 'function') - return "#"; - else if (o.sc_toDisplayString) - return o.sc_toDisplayString(); - else - return o.toString(); -} - -/* ------------------ newline ---------------------------------------------------*/ - -/*** META ((export #t)) */ -function sc_newline(p) { - if (p === undefined) // we assume not given - p = SC_DEFAULT_OUT; - p.appendJSString("\n"); -} - -/* ------------------ write-char ---------------------------------------------------*/ - -/*** META ((export #t)) */ -function sc_writeChar(c, p) { - if (p === undefined) // we assume not given - p = SC_DEFAULT_OUT; - p.appendJSString(c.val); -} - -/* ------------------ write-circle ---------------------------------------------------*/ - -/*** META ((export #t)) */ -function sc_writeCircle(o, p) { - if (p === undefined) // we assume not given - p = SC_DEFAULT_OUT; - p.appendJSString(sc_toWriteCircleString(o)); -} - -function sc_toWriteCircleString(o) { - var symb = sc_gensym("writeCircle"); - var nbPointer = new Object(); - nbPointer.nb = 0; - sc_prepWriteCircle(o, symb, nbPointer); - return sc_genToWriteCircleString(o, symb); -} - -function sc_prepWriteCircle(o, symb, nbPointer) { - // TODO sc_Struct - if (o instanceof sc_Pair || - o instanceof sc_Vector) { - if (o[symb] !== undefined) { - // not the first visit. - o[symb]++; - // unless there is already a number, assign one. - if (!o[symb + "nb"]) o[symb + "nb"] = nbPointer.nb++; - return; - } - o[symb] = 0; - if (o instanceof sc_Pair) { - sc_prepWriteCircle(o.car, symb, nbPointer); - sc_prepWriteCircle(o.cdr, symb, nbPointer); - } else { - for (var i = 0; i < o.length; i++) - sc_prepWriteCircle(o[i], symb, nbPointer); - } - } -} - -function sc_genToWriteCircleString(o, symb) { - if (!(o instanceof sc_Pair || - o instanceof sc_Vector)) - return sc_toWriteString(o); - return o.sc_toWriteCircleString(symb); -} -sc_Pair.prototype.sc_toWriteCircleString = function(symb, inList) { - if (this[symb + "use"]) { // use-flag is set. Just use it. - var nb = this[symb + "nb"]; - if (this[symb]-- === 0) { // if we are the last use. remove all fields. - delete this[symb]; - delete this[symb + "nb"]; - delete this[symb + "use"]; - } - if (inList) - return '. #' + nb + '#'; - else - return '#' + nb + '#'; - } - if (this[symb]-- === 0) { // if we are the last use. remove all fields. - delete this[symb]; - delete this[symb + "nb"]; - delete this[symb + "use"]; - } - - var res = ""; - - if (this[symb] !== undefined) { // implies > 0 - this[symb + "use"] = true; - if (inList) - res += '. #' + this[symb + "nb"] + '='; - else - res += '#' + this[symb + "nb"] + '='; - inList = false; - } - - if (!inList) - res += "("; - - // print car - res += sc_genToWriteCircleString(this.car, symb); - - if (sc_isPair(this.cdr)) { - res += " " + this.cdr.sc_toWriteCircleString(symb, true); - } else if (this.cdr !== null) { - res += " . " + sc_genToWriteCircleString(this.cdr, symb); - } - if (!inList) - res += ")"; - return res; -}; -sc_Vector.prototype.sc_toWriteCircleString = function(symb) { - if (this[symb + "use"]) { // use-flag is set. Just use it. - var nb = this[symb + "nb"]; - if (this[symb]-- === 0) { // if we are the last use. remove all fields. - delete this[symb]; - delete this[symb + "nb"]; - delete this[symb + "use"]; - } - return '#' + nb + '#'; - } - if (this[symb]-- === 0) { // if we are the last use. remove all fields. - delete this[symb]; - delete this[symb + "nb"]; - delete this[symb + "use"]; - } - - var res = ""; - if (this[symb] !== undefined) { // implies > 0 - this[symb + "use"] = true; - res += '#' + this[symb + "nb"] + '='; - } - res += "#("; - for (var i = 0; i < this.length; i++) { - res += sc_genToWriteCircleString(this[i], symb); - if (i < this.length - 1) res += " "; - } - res += ")"; - return res; -}; - - -/* ------------------ print ---------------------------------------------------*/ - -/*** META ((export #t)) */ -function sc_print(s) { - if (arguments.length === 1) { - sc_display(s); - sc_newline(); - } - else { - for (var i = 0; i < arguments.length; i++) - sc_display(arguments[i]); - sc_newline(); - } -} - -/* ------------------ format ---------------------------------------------------*/ -/*** META ((export #t)) */ -function sc_format(s, args) { - var len = s.length; - var p = new sc_StringOutputPort(); - var i = 0, j = 1; - - while( i < len ) { - var i2 = s.indexOf("~", i); - - if (i2 == -1) { - p.appendJSString( s.substring( i, len ) ); - return p.close(); - } else { - if (i2 > i) { - if (i2 == (len - 1)) { - p.appendJSString(s.substring(i, len)); - return p.close(); - } else { - p.appendJSString(s.substring(i, i2)); - i = i2; - } - } - - switch(s.charCodeAt(i2 + 1)) { - case 65: - case 97: - // a - sc_display(arguments[j], p); - i += 2; j++; - break; - - case 83: - case 115: - // s - sc_write(arguments[j], p); - i += 2; j++; - break; - - case 86: - case 118: - // v - sc_display(arguments[j], p); - p.appendJSString("\n"); - i += 2; j++; - break; - - case 67: - case 99: - // c - p.appendJSString(String.fromCharCode(arguments[j])); - i += 2; j++; - break; - - case 88: - case 120: - // x - p.appendJSString(arguments[j].toString(6)); - i += 2; j++; - break; - - case 79: - case 111: - // o - p.appendJSString(arguments[j].toString(8)); - i += 2; j++; - break; - - case 66: - case 98: - // b - p.appendJSString(arguments[j].toString(2)); - i += 2; j++; - break; - - case 37: - case 110: - // %, n - p.appendJSString("\n"); - i += 2; break; - - case 114: - // r - p.appendJSString("\r"); - i += 2; break; - - case 126: - // ~ - p.appendJSString("~"); - i += 2; break; - - default: - sc_error( "format: illegal ~" - + String.fromCharCode(s.charCodeAt(i2 + 1)) - + " sequence" ); - return ""; - } - } - } - - return p.close(); -} - -/* ------------------ global ports ---------------------------------------------------*/ - -var SC_DEFAULT_IN = new sc_ErrorInputPort(); -var SC_DEFAULT_OUT = new sc_ErrorOutputPort(); -var SC_ERROR_OUT = new sc_ErrorOutputPort(); - -var sc_SYMBOL_PREFIX = "\u1E9C"; -var sc_KEYWORD_PREFIX = "\u1E9D"; - -/*** META ((export #t) - (peephole (id))) */ -function sc_jsstring2string(s) { - return s; -} - -/*** META ((export #t) - (peephole (prefix "'\\u1E9C' +"))) -*/ -function sc_jsstring2symbol(s) { - return sc_SYMBOL_PREFIX + s; -} - -/*** META ((export #t) - (peephole (id))) -*/ -function sc_string2jsstring(s) { - return s; -} - -/*** META ((export #t) - (peephole (symbol2jsstring_immutable))) -*/ -function sc_symbol2jsstring(s) { - return s.slice(1); -} - -/*** META ((export #t) - (peephole (postfix ".slice(1)"))) -*/ -function sc_keyword2jsstring(k) { - return k.slice(1); -} - -/*** META ((export #t) - (peephole (prefix "'\\u1E9D' +"))) -*/ -function sc_jsstring2keyword(s) { - return sc_KEYWORD_PREFIX + s; -} - -/*** META ((export #t) - (type bool)) -*/ -function sc_isKeyword(s) { - return (typeof s === "string") && - (s.charAt(0) === sc_KEYWORD_PREFIX); -} - - -/*** META ((export #t)) */ -var sc_gensym = function() { - var counter = 1000; - return function(sym) { - counter++; - if (!sym) sym = sc_SYMBOL_PREFIX; - return sym + "s" + counter + "~" + "^sC-GeNsYm "; - }; -}(); - - -/*** META ((export #t) - (type bool)) -*/ -function sc_isEqual(o1, o2) { - return ((o1 === o2) || - (sc_isPair(o1) && sc_isPair(o2) - && sc_isPairEqual(o1, o2, sc_isEqual)) || - (sc_isVector(o1) && sc_isVector(o2) - && sc_isVectorEqual(o1, o2, sc_isEqual))); -} - -/*** META ((export number->symbol integer->symbol)) */ -function sc_number2symbol(x, radix) { - return sc_SYMBOL_PREFIX + sc_number2jsstring(x, radix); -} - -/*** META ((export number->string integer->string)) */ -var sc_number2string = sc_number2jsstring; - -/*** META ((export #t)) */ -function sc_symbol2number(s, radix) { - return sc_jsstring2number(s.slice(1), radix); -} - -/*** META ((export #t)) */ -var sc_string2number = sc_jsstring2number; - -/*** META ((export #t) - (peephole (prefix "+" s))) - ;; peephole will only apply if no radix is given. -*/ -function sc_string2integer(s, radix) { - if (!radix) return +s; - return parseInt(s, radix); -} - -/*** META ((export #t) - (peephole (prefix "+"))) -*/ -function sc_string2real(s) { - return +s; -} - - -/*** META ((export #t) - (type bool)) -*/ -function sc_isSymbol(s) { - return (typeof s === "string") && - (s.charAt(0) === sc_SYMBOL_PREFIX); -} - -/*** META ((export #t) - (peephole (symbol2string_immutable))) -*/ -function sc_symbol2string(s) { - return s.slice(1); -} - -/*** META ((export #t) - (peephole (prefix "'\\u1E9C' +"))) -*/ -function sc_string2symbol(s) { - return sc_SYMBOL_PREFIX + s; -} - -/*** META ((export symbol-append) - (peephole (symbolAppend_immutable))) -*/ -function sc_symbolAppend() { - var res = sc_SYMBOL_PREFIX; - for (var i = 0; i < arguments.length; i++) - res += arguments[i].slice(1); - return res; -} - -/*** META ((export #t) - (peephole (postfix ".val"))) -*/ -function sc_char2string(c) { return c.val; } - -/*** META ((export #t) - (peephole (hole 1 "'\\u1E9C' + " c ".val"))) -*/ -function sc_char2symbol(c) { return sc_SYMBOL_PREFIX + c.val; } - -/*** META ((export #t) - (type bool)) -*/ -function sc_isString(s) { - return (typeof s === "string") && - (s.charAt(0) !== sc_SYMBOL_PREFIX); -} - -/*** META ((export #t)) */ -var sc_makeString = sc_makejsString; - - -/*** META ((export #t)) */ -function sc_string() { - for (var i = 0; i < arguments.length; i++) - arguments[i] = arguments[i].val; - return "".concat.apply("", arguments); -} - -/*** META ((export #t) - (peephole (postfix ".length"))) -*/ -function sc_stringLength(s) { return s.length; } - -/*** META ((export #t)) */ -function sc_stringRef(s, k) { - return new sc_Char(s.charAt(k)); -} - -/* there's no stringSet in the immutable version -function sc_stringSet(s, k, c) -*/ - - -/*** META ((export string=?) - (type bool) - (peephole (hole 2 str1 " === " str2))) -*/ -function sc_isStringEqual(s1, s2) { - return s1 === s2; -} -/*** META ((export string?) - (type bool) - (peephole (hole 2 str1 " > " str2))) -*/ -function sc_isStringGreater(s1, s2) { - return s1 > s2; -} -/*** META ((export string<=?) - (type bool) - (peephole (hole 2 str1 " <= " str2))) -*/ -function sc_isStringLessEqual(s1, s2) { - return s1 <= s2; -} -/*** META ((export string>=?) - (type bool) - (peephole (hole 2 str1 " >= " str2))) -*/ -function sc_isStringGreaterEqual(s1, s2) { - return s1 >= s2; -} -/*** META ((export string-ci=?) - (type bool) - (peephole (hole 2 str1 ".toLowerCase() === " str2 ".toLowerCase()"))) -*/ -function sc_isStringCIEqual(s1, s2) { - return s1.toLowerCase() === s2.toLowerCase(); -} -/*** META ((export string-ci?) - (type bool) - (peephole (hole 2 str1 ".toLowerCase() > " str2 ".toLowerCase()"))) -*/ -function sc_isStringCIGreater(s1, s2) { - return s1.toLowerCase() > s2.toLowerCase(); -} -/*** META ((export string-ci<=?) - (type bool) - (peephole (hole 2 str1 ".toLowerCase() <= " str2 ".toLowerCase()"))) -*/ -function sc_isStringCILessEqual(s1, s2) { - return s1.toLowerCase() <= s2.toLowerCase(); -} -/*** META ((export string-ci>=?) - (type bool) - (peephole (hole 2 str1 ".toLowerCase() >= " str2 ".toLowerCase()"))) -*/ -function sc_isStringCIGreaterEqual(s1, s2) { - return s1.toLowerCase() >= s2.toLowerCase(); -} - -/*** META ((export #t) - (peephole (hole 3 s ".substring(" start ", " end ")"))) -*/ -function sc_substring(s, start, end) { - return s.substring(start, end); -} - -/*** META ((export #t)) -*/ -function sc_isSubstring_at(s1, s2, i) { - return s2 == s1.substring(i, i+ s2.length); -} - -/*** META ((export #t) - (peephole (infix 0 #f "+" "''"))) -*/ -function sc_stringAppend() { - return "".concat.apply("", arguments); -} - -/*** META ((export #t)) */ -var sc_string2list = sc_jsstring2list; - -/*** META ((export #t)) */ -var sc_list2string = sc_list2jsstring; - -/*** META ((export #t) - (peephole (id))) -*/ -function sc_stringCopy(s) { - return s; -} - -/* there's no string-fill in the immutable version -function sc_stringFill(s, c) -*/ - -/*** META ((export #t) - (peephole (postfix ".slice(1)"))) -*/ -function sc_keyword2string(o) { - return o.slice(1); -} - -/*** META ((export #t) - (peephole (prefix "'\\u1E9D' +"))) -*/ -function sc_string2keyword(o) { - return sc_KEYWORD_PREFIX + o; -} - -String.prototype.sc_toDisplayString = function() { - if (this.charAt(0) === sc_SYMBOL_PREFIX) - // TODO: care for symbols with spaces (escape-chars symbols). - return this.slice(1); - else if (this.charAt(0) === sc_KEYWORD_PREFIX) - return ":" + this.slice(1); - else - return this.toString(); -}; - -String.prototype.sc_toWriteString = function() { - if (this.charAt(0) === sc_SYMBOL_PREFIX) - // TODO: care for symbols with spaces (escape-chars symbols). - return this.slice(1); - else if (this.charAt(0) === sc_KEYWORD_PREFIX) - return ":" + this.slice(1); - else - return '"' + sc_escapeWriteString(this) + '"'; -}; -/* Exported Variables */ -var BgL_testzd2boyerzd2; -var BgL_nboyerzd2benchmarkzd2; -var BgL_setupzd2boyerzd2; -/* End Exports */ - -var translate_term_nboyer; -var translate_args_nboyer; -var untranslate_term_nboyer; -var BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer; -var BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer; -var translate_alist_nboyer; -var apply_subst_nboyer; -var apply_subst_lst_nboyer; -var tautologyp_nboyer; -var if_constructor_nboyer; -var rewrite_count_nboyer; -var rewrite_nboyer; -var rewrite_args_nboyer; -var unify_subst_nboyer; -var one_way_unify1_nboyer; -var false_term_nboyer; -var true_term_nboyer; -var trans_of_implies1_nboyer; -var is_term_equal_nboyer; -var is_term_member_nboyer; -var const_nboyer; -var sc_const_3_nboyer; -var sc_const_4_nboyer; -{ - (sc_const_4_nboyer = (new sc_Pair("\u1E9Cimplies",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cu",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cu",(new sc_Pair("\u1E9Cw",null)))))),null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cw",null)))))),null))))))); - (sc_const_3_nboyer = sc_list((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccompile",(new sc_Pair("\u1E9Cform",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Ccodegen",(new sc_Pair((new sc_Pair("\u1E9Coptimize",(new sc_Pair("\u1E9Cform",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ceqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreaterp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clesseqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatereqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cboolean",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ciff",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ceven1",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Codd",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccountps-",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cpred",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccountps-loop",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cpred",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfact-",(new sc_Pair("\u1E9Ci",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfact-loop",(new sc_Pair("\u1E9Ci",(new sc_Pair((1),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdivides",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassume-true",(new sc_Pair("\u1E9Cvar",(new sc_Pair("\u1E9Calist",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cvar",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))),(new sc_Pair("\u1E9Calist",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassume-false",(new sc_Pair("\u1E9Cvar",(new sc_Pair("\u1E9Calist",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cvar",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))),(new sc_Pair("\u1E9Calist",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctautology-checker",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ctautologyp",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfalsify",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfalsify1",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cprime",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))),null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cprime1",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cx",null)))),null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair("\u1E9Cp",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cimplies",(new sc_Pair("\u1E9Cp",(new sc_Pair("\u1E9Cq",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cp",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cq",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair((new sc_Pair("\u1E9Cf",null)),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Ct",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))))),(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cd",(new sc_Pair("\u1E9Ce",null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cb",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cc",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cplus-fringe",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Ca",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cpds",(new sc_Pair("\u1E9Cenvrn",null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cexec",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cpds",(new sc_Pair("\u1E9Cenvrn",null)))))))),(new sc_Pair("\u1E9Cenvrn",null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmc-flatten",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cb",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Cintersect",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ck",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Ck",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ck",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair((new sc_Pair("\u1E9Cexp",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair("\u1E9Ck",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Cy",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Creverse-loop",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Csort-lp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ccount-list",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus1",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cl",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair("\u1E9Ci",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cbase",null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ci",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cj",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cj",(new sc_Pair((1),null)))))),null)))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Ci",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cpower-eval",(new sc_Pair((new sc_Pair("\u1E9Cbig-plus",(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cpower-rep",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Cbase",null)))))))))),(new sc_Pair("\u1E9Cbase",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cj",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Ca",null)))),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cw",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Cx",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cc",null)))))),null)))))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cb",(new sc_Pair("\u1E9Cc",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cz",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Cgcd",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cvalue",(new sc_Pair((new sc_Pair("\u1E9Cnormalize",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cvalue",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cy",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnlistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csamefringe",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((1),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((1),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair((new sc_Pair("\u1E9Cgreatest-factor",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ctimes-list",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cprime-list",(new sc_Pair("\u1E9Cy",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Cz",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cz",null)))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cz",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cw",(new sc_Pair((1),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cgreatereqp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cor",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cand",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cy",(new sc_Pair((1),null)))))),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((1),null)))))),(new sc_Pair(sc_list("\u1E9Cand", (new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))), (new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair("\u1E9Cb",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))), (new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Ca",null)))), (new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cb",null)))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csub1",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cl",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cl",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair("\u1E9Cl",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdsort",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Csort2",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx1",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx2",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx3",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx4",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx5",(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair("\u1E9Cx6",(new sc_Pair("\u1E9Cx7",null)))))),null)))))),null)))))),null)))))),null)))))),null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((6),(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cx7",null)))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((2),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((2),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair("\u1E9Cy",(new sc_Pair((2),null)))))),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Csigma",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ci",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Ci",null)))),null)))))),(new sc_Pair((2),null)))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cz",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnot",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cz",null)))),null)))))),null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair((new sc_Pair("\u1E9Cdelete",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmeaning",(new sc_Pair((new sc_Pair("\u1E9Cplus-tree",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair("\u1E9Ca",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cadd1",(new sc_Pair("\u1E9Cy",null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cnumberp",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cnth",(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Ci",null)))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair("\u1E9Cb",null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Ca",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Clast",(new sc_Pair("\u1E9Ca",null)))),null)))),(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair("\u1E9Cb",null)))))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clessp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ct",null)),(new sc_Pair("\u1E9Cz",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cf",null)),(new sc_Pair("\u1E9Cz",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Cassignedp",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Ca",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cassignment",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cb",null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccar",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair((new sc_Pair("\u1E9Ccdr",(new sc_Pair((new sc_Pair("\u1E9Cgopher",(new sc_Pair("\u1E9Cx",null)))),null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Clistp",(new sc_Pair("\u1E9Cx",null)))),(new sc_Pair((new sc_Pair("\u1E9Ccdr",(new sc_Pair((new sc_Pair("\u1E9Cflatten",(new sc_Pair("\u1E9Cx",null)))),null)))),(new sc_Pair((new sc_Pair("\u1E9Ccons",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cquotient",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cx",null)))))),(new sc_Pair("\u1E9Cy",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Czerop",(new sc_Pair("\u1E9Cy",null)))),(new sc_Pair((new sc_Pair("\u1E9Czero",null)),(new sc_Pair((new sc_Pair("\u1E9Cfix",(new sc_Pair("\u1E9Cx",null)))),null)))))))),null)))))), (new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cget",(new sc_Pair("\u1E9Cj",(new sc_Pair((new sc_Pair("\u1E9Cset",(new sc_Pair("\u1E9Ci",(new sc_Pair("\u1E9Cval",(new sc_Pair("\u1E9Cmem",null)))))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cif",(new sc_Pair((new sc_Pair("\u1E9Ceqp",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Ci",null)))))),(new sc_Pair("\u1E9Cval",(new sc_Pair((new sc_Pair("\u1E9Cget",(new sc_Pair("\u1E9Cj",(new sc_Pair("\u1E9Cmem",null)))))),null)))))))),null)))))))); - (const_nboyer = (new sc_Pair((new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cc",(new sc_Pair((new sc_Pair("\u1E9Czero",null)),null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cy",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair((new sc_Pair("\u1E9Ctimes",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Cc",(new sc_Pair("\u1E9Cd",null)))))),null)))))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cz",(new sc_Pair("\u1E9Cf",(new sc_Pair((new sc_Pair("\u1E9Creverse",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair((new sc_Pair("\u1E9Cappend",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cnil",null)),null)))))),null)))),null)))))),(new sc_Pair((new sc_Pair("\u1E9Cu",(new sc_Pair("\u1E9Cequal",(new sc_Pair((new sc_Pair("\u1E9Cplus",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cdifference",(new sc_Pair("\u1E9Cx",(new sc_Pair("\u1E9Cy",null)))))),null)))))))),(new sc_Pair((new sc_Pair("\u1E9Cw",(new sc_Pair("\u1E9Clessp",(new sc_Pair((new sc_Pair("\u1E9Cremainder",(new sc_Pair("\u1E9Ca",(new sc_Pair("\u1E9Cb",null)))))),(new sc_Pair((new sc_Pair("\u1E9Cmember",(new sc_Pair("\u1E9Ca",(new sc_Pair((new sc_Pair("\u1E9Clength",(new sc_Pair("\u1E9Cb",null)))),null)))))),null)))))))),null))))))))))); - BgL_nboyerzd2benchmarkzd2 = function() { - var args = null; - for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) { - args = sc_cons(arguments[sc_tmp], args); - } - var n; - return ((n = ((args === null)?(0):(args.car))), (BgL_setupzd2boyerzd2()), (BgL_runzd2benchmarkzd2(("nboyer"+(sc_number2string(n))), (1), function() { - return (BgL_testzd2boyerzd2(n)); - }, function(rewrites) { - if ((sc_isNumber(rewrites))) - switch (n) { - case (0): - return (rewrites===(95024)); - break; - case (1): - return (rewrites===(591777)); - break; - case (2): - return (rewrites===(1813975)); - break; - case (3): - return (rewrites===(5375678)); - break; - case (4): - return (rewrites===(16445406)); - break; - case (5): - return (rewrites===(51507739)); - break; - default: - return true; - break; - } - else - return false; - }))); - }; - BgL_setupzd2boyerzd2 = function() { - return true; - }; - BgL_testzd2boyerzd2 = function() { - return true; - }; - translate_term_nboyer = function(term) { - var lst; - return (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), ((lst = (term.cdr)), ((lst === null)?null:(new sc_Pair((translate_term_nboyer((lst.car))), (translate_args_nboyer((lst.cdr)))))))))); - }; - translate_args_nboyer = function(lst) { - var sc_lst_5; - var term; - return ((lst === null)?null:(new sc_Pair(((term = (lst.car)), (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr))))))), ((sc_lst_5 = (lst.cdr)), ((sc_lst_5 === null)?null:(new sc_Pair((translate_term_nboyer((sc_lst_5.car))), (translate_args_nboyer((sc_lst_5.cdr)))))))))); - }; - untranslate_term_nboyer = function(term) { - var optrOpnd; - var tail1131; - var L1127; - var falseHead1130; - var symbol_record; - if (!(term instanceof sc_Pair)) - return term; - else - { - (falseHead1130 = (new sc_Pair(null, null))); - (L1127 = (term.cdr)); - (tail1131 = falseHead1130); - while (!(L1127 === null)) { - { - (tail1131.cdr = (new sc_Pair((untranslate_term_nboyer((L1127.car))), null))); - (tail1131 = (tail1131.cdr)); - (L1127 = (L1127.cdr)); - } - } - (optrOpnd = (falseHead1130.cdr)); - return (new sc_Pair(((symbol_record = (term.car)), (symbol_record[(0)])), optrOpnd)); - } - }; - BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer = function(sym) { - var r; - var x; - return ((x = (sc_assq(sym, BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer))), ((x!== false)?(x.cdr):((r = [sym, null]), (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = (new sc_Pair((new sc_Pair(sym, r)), BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer))), r))); - }; - (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null); - translate_alist_nboyer = function(alist) { - var sc_alist_6; - var term; - return ((alist === null)?null:(new sc_Pair((new sc_Pair((alist.car.car), ((term = (alist.car.cdr)), (!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr))))))))), ((sc_alist_6 = (alist.cdr)), ((sc_alist_6 === null)?null:(new sc_Pair((new sc_Pair((sc_alist_6.car.car), (translate_term_nboyer((sc_alist_6.car.cdr))))), (translate_alist_nboyer((sc_alist_6.cdr)))))))))); - }; - apply_subst_nboyer = function(alist, term) { - var lst; - var temp_temp; - return (!(term instanceof sc_Pair)?((temp_temp = (sc_assq(term, alist))), ((temp_temp!== false)?(temp_temp.cdr):term)):(new sc_Pair((term.car), ((lst = (term.cdr)), ((lst === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (lst.car))), (apply_subst_lst_nboyer(alist, (lst.cdr)))))))))); - }; - apply_subst_lst_nboyer = function(alist, lst) { - var sc_lst_7; - return ((lst === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (lst.car))), ((sc_lst_7 = (lst.cdr)), ((sc_lst_7 === null)?null:(new sc_Pair((apply_subst_nboyer(alist, (sc_lst_7.car))), (apply_subst_lst_nboyer(alist, (sc_lst_7.cdr)))))))))); - }; - tautologyp_nboyer = function(sc_x_11, true_lst, false_lst) { - var tmp1125; - var x; - var tmp1126; - var sc_x_8; - var sc_tmp1125_9; - var sc_tmp1126_10; - var sc_x_11; - var true_lst; - var false_lst; - while (true) { - if ((((sc_tmp1126_10 = (is_term_equal_nboyer(sc_x_11, true_term_nboyer))), ((sc_tmp1126_10!== false)?sc_tmp1126_10:(is_term_member_nboyer(sc_x_11, true_lst))))!== false)) - return true; - else - if ((((sc_tmp1125_9 = (is_term_equal_nboyer(sc_x_11, false_term_nboyer))), ((sc_tmp1125_9!== false)?sc_tmp1125_9:(is_term_member_nboyer(sc_x_11, false_lst))))!== false)) - return false; - else - if (!(sc_x_11 instanceof sc_Pair)) - return false; - else - if (((sc_x_11.car)===if_constructor_nboyer)) - if ((((sc_x_8 = (sc_x_11.cdr.car)), (tmp1126 = (is_term_equal_nboyer(sc_x_8, true_term_nboyer))), ((tmp1126!== false)?tmp1126:(is_term_member_nboyer(sc_x_8, true_lst))))!== false)) - (sc_x_11 = (sc_x_11.cdr.cdr.car)); - else - if ((((x = (sc_x_11.cdr.car)), (tmp1125 = (is_term_equal_nboyer(x, false_term_nboyer))), ((tmp1125!== false)?tmp1125:(is_term_member_nboyer(x, false_lst))))!== false)) - (sc_x_11 = (sc_x_11.cdr.cdr.cdr.car)); - else - if (((tautologyp_nboyer((sc_x_11.cdr.cdr.car), (new sc_Pair((sc_x_11.cdr.car), true_lst)), false_lst))!== false)) - { - (false_lst = (new sc_Pair((sc_x_11.cdr.car), false_lst))); - (sc_x_11 = (sc_x_11.cdr.cdr.cdr.car)); - } - else - return false; - else - return false; - } - }; - (if_constructor_nboyer = "\u1E9C*"); - (rewrite_count_nboyer = (0)); - rewrite_nboyer = function(term) { - var term2; - var sc_term_12; - var lst; - var symbol_record; - var sc_lst_13; - { - (++rewrite_count_nboyer); - if (!(term instanceof sc_Pair)) - return term; - else - { - (sc_term_12 = (new sc_Pair((term.car), ((sc_lst_13 = (term.cdr)), ((sc_lst_13 === null)?null:(new sc_Pair((rewrite_nboyer((sc_lst_13.car))), (rewrite_args_nboyer((sc_lst_13.cdr)))))))))); - (lst = ((symbol_record = (term.car)), (symbol_record[(1)]))); - while (true) { - if ((lst === null)) - return sc_term_12; - else - if ((((term2 = ((lst.car).cdr.car)), (unify_subst_nboyer = null), (one_way_unify1_nboyer(sc_term_12, term2)))!== false)) - return (rewrite_nboyer((apply_subst_nboyer(unify_subst_nboyer, ((lst.car).cdr.cdr.car))))); - else - (lst = (lst.cdr)); - } - } - } - }; - rewrite_args_nboyer = function(lst) { - var sc_lst_14; - return ((lst === null)?null:(new sc_Pair((rewrite_nboyer((lst.car))), ((sc_lst_14 = (lst.cdr)), ((sc_lst_14 === null)?null:(new sc_Pair((rewrite_nboyer((sc_lst_14.car))), (rewrite_args_nboyer((sc_lst_14.cdr)))))))))); - }; - (unify_subst_nboyer = "\u1E9C*"); - one_way_unify1_nboyer = function(term1, term2) { - var lst1; - var lst2; - var temp_temp; - if (!(term2 instanceof sc_Pair)) - { - (temp_temp = (sc_assq(term2, unify_subst_nboyer))); - if ((temp_temp!== false)) - return (is_term_equal_nboyer(term1, (temp_temp.cdr))); - else - if ((sc_isNumber(term2))) - return (sc_isEqual(term1, term2)); - else - { - (unify_subst_nboyer = (new sc_Pair((new sc_Pair(term2, term1)), unify_subst_nboyer))); - return true; - } - } - else - if (!(term1 instanceof sc_Pair)) - return false; - else - if (((term1.car)===(term2.car))) - { - (lst1 = (term1.cdr)); - (lst2 = (term2.cdr)); - while (true) { - if ((lst1 === null)) - return (lst2 === null); - else - if ((lst2 === null)) - return false; - else - if (((one_way_unify1_nboyer((lst1.car), (lst2.car)))!== false)) - { - (lst1 = (lst1.cdr)); - (lst2 = (lst2.cdr)); - } - else - return false; - } - } - else - return false; - }; - (false_term_nboyer = "\u1E9C*"); - (true_term_nboyer = "\u1E9C*"); - trans_of_implies1_nboyer = function(n) { - var sc_n_15; - return ((sc_isEqual(n, (1)))?(sc_list("\u1E9Cimplies", (0), (1))):(sc_list("\u1E9Cand", (sc_list("\u1E9Cimplies", (n-(1)), n)), ((sc_n_15 = (n-(1))), ((sc_isEqual(sc_n_15, (1)))?(sc_list("\u1E9Cimplies", (0), (1))):(sc_list("\u1E9Cand", (sc_list("\u1E9Cimplies", (sc_n_15-(1)), sc_n_15)), (trans_of_implies1_nboyer((sc_n_15-(1))))))))))); - }; - is_term_equal_nboyer = function(x, y) { - var lst1; - var lst2; - var r2; - var r1; - if ((x instanceof sc_Pair)) - if ((y instanceof sc_Pair)) - if ((((r1 = (x.car)), (r2 = (y.car)), (r1===r2))!== false)) - { - (lst1 = (x.cdr)); - (lst2 = (y.cdr)); - while (true) { - if ((lst1 === null)) - return (lst2 === null); - else - if ((lst2 === null)) - return false; - else - if (((is_term_equal_nboyer((lst1.car), (lst2.car)))!== false)) - { - (lst1 = (lst1.cdr)); - (lst2 = (lst2.cdr)); - } - else - return false; - } - } - else - return false; - else - return false; - else - return (sc_isEqual(x, y)); - }; - is_term_member_nboyer = function(x, lst) { - var x; - var lst; - while (true) { - if ((lst === null)) - return false; - else - if (((is_term_equal_nboyer(x, (lst.car)))!== false)) - return true; - else - (lst = (lst.cdr)); - } - }; - BgL_setupzd2boyerzd2 = function() { - var symbol_record; - var value; - var BgL_sc_symbolzd2record_16zd2; - var sym; - var sc_sym_17; - var term; - var lst; - var sc_term_18; - var sc_term_19; - { - (BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null); - (if_constructor_nboyer = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer("\u1E9Cif"))); - (false_term_nboyer = ((sc_term_19 = (new sc_Pair("\u1E9Cf",null))), (!(sc_term_19 instanceof sc_Pair)?sc_term_19:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_19.car))), (translate_args_nboyer((sc_term_19.cdr)))))))); - (true_term_nboyer = ((sc_term_18 = (new sc_Pair("\u1E9Ct",null))), (!(sc_term_18 instanceof sc_Pair)?sc_term_18:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_18.car))), (translate_args_nboyer((sc_term_18.cdr)))))))); - (lst = sc_const_3_nboyer); - while (!(lst === null)) { - { - (term = (lst.car)); - if (((term instanceof sc_Pair)&&(((term.car)==="\u1E9Cequal")&&((term.cdr.car) instanceof sc_Pair)))) - { - (sc_sym_17 = ((term.cdr.car).car)); - (value = (new sc_Pair((!(term instanceof sc_Pair)?term:(new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((term.car))), (translate_args_nboyer((term.cdr)))))), ((sym = ((term.cdr.car).car)), (BgL_sc_symbolzd2record_16zd2 = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sym))), (BgL_sc_symbolzd2record_16zd2[(1)]))))); - (symbol_record = (BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sc_sym_17))); - (symbol_record[(1)] = value); - } - else - (sc_error("ADD-LEMMA did not like term: ", term)); - (lst = (lst.cdr)); - } - } - return true; - } - }; - BgL_testzd2boyerzd2 = function(n) { - var optrOpnd; - var term; - var sc_n_20; - var answer; - var sc_term_21; - var sc_term_22; - { - (rewrite_count_nboyer = (0)); - (term = sc_const_4_nboyer); - (sc_n_20 = n); - while (!(sc_n_20=== 0)) { - { - (term = (sc_list("\u1E9Cor", term, (new sc_Pair("\u1E9Cf",null))))); - (--sc_n_20); - } - } - (sc_term_22 = term); - if (!(sc_term_22 instanceof sc_Pair)) - (optrOpnd = sc_term_22); - else - (optrOpnd = (new sc_Pair((BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer((sc_term_22.car))), (translate_args_nboyer((sc_term_22.cdr)))))); - (sc_term_21 = (apply_subst_nboyer(((const_nboyer === null)?null:(new sc_Pair((new sc_Pair((const_nboyer.car.car), (translate_term_nboyer((const_nboyer.car.cdr))))), (translate_alist_nboyer((const_nboyer.cdr)))))), optrOpnd))); - (answer = (tautologyp_nboyer((rewrite_nboyer(sc_term_21)), null, null))); - (sc_write(rewrite_count_nboyer)); - (sc_display(" rewrites")); - (sc_newline()); - if ((answer!== false)) - return rewrite_count_nboyer; - else - return false; - } - }; -} -/* Exported Variables */ -var BgL_parsezd2ze3nbzd2treesze3; -var BgL_earleyzd2benchmarkzd2; -var BgL_parsezd2ze3parsedzf3zc2; -var test; -var BgL_parsezd2ze3treesz31; -var BgL_makezd2parserzd2; -/* End Exports */ - -var const_earley; -{ - (const_earley = (new sc_Pair((new sc_Pair("\u1E9Cs",(new sc_Pair((new sc_Pair("\u1E9Ca",null)),(new sc_Pair((new sc_Pair("\u1E9Cs",(new sc_Pair("\u1E9Cs",null)))),null)))))),null))); - BgL_makezd2parserzd2 = function(grammar, lexer) { - var i; - var parser_descr; - var def_loop; - var nb_nts; - var names; - var steps; - var predictors; - var enders; - var starters; - var nts; - var sc_names_1; - var sc_steps_2; - var sc_predictors_3; - var sc_enders_4; - var sc_starters_5; - var nb_confs; - var BgL_sc_defzd2loop_6zd2; - var BgL_sc_nbzd2nts_7zd2; - var sc_nts_8; - var BgL_sc_defzd2loop_9zd2; - var ind; - { - ind = function(nt, sc_nts_10) { - var i; - { - (i = ((sc_nts_10.length)-(1))); - while (true) { - if ((i>=(0))) - if ((sc_isEqual((sc_nts_10[i]), nt))) - return i; - else - (--i); - else - return false; - } - } - }; - (sc_nts_8 = ((BgL_sc_defzd2loop_9zd2 = function(defs, sc_nts_11) { - var rule_loop; - var head; - var def; - return ((defs instanceof sc_Pair)?((def = (defs.car)), (head = (def.car)), (rule_loop = function(rules, sc_nts_12) { - var nt; - var l; - var sc_nts_13; - var rule; - if ((rules instanceof sc_Pair)) - { - (rule = (rules.car)); - (l = rule); - (sc_nts_13 = sc_nts_12); - while ((l instanceof sc_Pair)) { - { - (nt = (l.car)); - (l = (l.cdr)); - (sc_nts_13 = (((sc_member(nt, sc_nts_13))!== false)?sc_nts_13:(new sc_Pair(nt, sc_nts_13)))); - } - } - return (rule_loop((rules.cdr), sc_nts_13)); - } - else - return (BgL_sc_defzd2loop_9zd2((defs.cdr), sc_nts_12)); - }), (rule_loop((def.cdr), (((sc_member(head, sc_nts_11))!== false)?sc_nts_11:(new sc_Pair(head, sc_nts_11)))))):(sc_list2vector((sc_reverse(sc_nts_11))))); - }), (BgL_sc_defzd2loop_9zd2(grammar, null)))); - (BgL_sc_nbzd2nts_7zd2 = (sc_nts_8.length)); - (nb_confs = (((BgL_sc_defzd2loop_6zd2 = function(defs, BgL_sc_nbzd2confs_14zd2) { - var rule_loop; - var def; - return ((defs instanceof sc_Pair)?((def = (defs.car)), (rule_loop = function(rules, BgL_sc_nbzd2confs_15zd2) { - var l; - var BgL_sc_nbzd2confs_16zd2; - var rule; - if ((rules instanceof sc_Pair)) - { - (rule = (rules.car)); - (l = rule); - (BgL_sc_nbzd2confs_16zd2 = BgL_sc_nbzd2confs_15zd2); - while ((l instanceof sc_Pair)) { - { - (l = (l.cdr)); - (++BgL_sc_nbzd2confs_16zd2); - } - } - return (rule_loop((rules.cdr), (BgL_sc_nbzd2confs_16zd2+(1)))); - } - else - return (BgL_sc_defzd2loop_6zd2((defs.cdr), BgL_sc_nbzd2confs_15zd2)); - }), (rule_loop((def.cdr), BgL_sc_nbzd2confs_14zd2))):BgL_sc_nbzd2confs_14zd2); - }), (BgL_sc_defzd2loop_6zd2(grammar, (0))))+BgL_sc_nbzd2nts_7zd2)); - (sc_starters_5 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null))); - (sc_enders_4 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null))); - (sc_predictors_3 = (sc_makeVector(BgL_sc_nbzd2nts_7zd2, null))); - (sc_steps_2 = (sc_makeVector(nb_confs, false))); - (sc_names_1 = (sc_makeVector(nb_confs, false))); - (nts = sc_nts_8); - (starters = sc_starters_5); - (enders = sc_enders_4); - (predictors = sc_predictors_3); - (steps = sc_steps_2); - (names = sc_names_1); - (nb_nts = (sc_nts_8.length)); - (i = (nb_nts-(1))); - while ((i>=(0))) { - { - (sc_steps_2[i] = (i-nb_nts)); - (sc_names_1[i] = (sc_list((sc_nts_8[i]), (0)))); - (sc_enders_4[i] = (sc_list(i))); - (--i); - } - } - def_loop = function(defs, conf) { - var rule_loop; - var head; - var def; - return ((defs instanceof sc_Pair)?((def = (defs.car)), (head = (def.car)), (rule_loop = function(rules, conf, rule_num) { - var i; - var sc_i_17; - var nt; - var l; - var sc_conf_18; - var sc_i_19; - var rule; - if ((rules instanceof sc_Pair)) - { - (rule = (rules.car)); - (names[conf] = (sc_list(head, rule_num))); - (sc_i_19 = (ind(head, nts))); - (starters[sc_i_19] = (new sc_Pair(conf, (starters[sc_i_19])))); - (l = rule); - (sc_conf_18 = conf); - while ((l instanceof sc_Pair)) { - { - (nt = (l.car)); - (steps[sc_conf_18] = (ind(nt, nts))); - (sc_i_17 = (ind(nt, nts))); - (predictors[sc_i_17] = (new sc_Pair(sc_conf_18, (predictors[sc_i_17])))); - (l = (l.cdr)); - (++sc_conf_18); - } - } - (steps[sc_conf_18] = ((ind(head, nts))-nb_nts)); - (i = (ind(head, nts))); - (enders[i] = (new sc_Pair(sc_conf_18, (enders[i])))); - return (rule_loop((rules.cdr), (sc_conf_18+(1)), (rule_num+(1)))); - } - else - return (def_loop((defs.cdr), conf)); - }), (rule_loop((def.cdr), conf, (1)))):undefined); - }; - (def_loop(grammar, (sc_nts_8.length))); - (parser_descr = [lexer, sc_nts_8, sc_starters_5, sc_enders_4, sc_predictors_3, sc_steps_2, sc_names_1]); - return function(input) { - var optrOpnd; - var sc_optrOpnd_20; - var sc_optrOpnd_21; - var sc_optrOpnd_22; - var loop1; - var BgL_sc_stateza2_23za2; - var toks; - var BgL_sc_nbzd2nts_24zd2; - var sc_steps_25; - var sc_enders_26; - var state_num; - var BgL_sc_statesza2_27za2; - var states; - var i; - var conf; - var l; - var tok_nts; - var sc_i_28; - var sc_i_29; - var l1; - var l2; - var tok; - var tail1129; - var L1125; - var goal_enders; - var BgL_sc_statesza2_30za2; - var BgL_sc_nbzd2nts_31zd2; - var BgL_sc_nbzd2confs_32zd2; - var nb_toks; - var goal_starters; - var sc_states_33; - var BgL_sc_nbzd2confs_34zd2; - var BgL_sc_nbzd2toks_35zd2; - var sc_toks_36; - var falseHead1128; - var sc_names_37; - var sc_steps_38; - var sc_predictors_39; - var sc_enders_40; - var sc_starters_41; - var sc_nts_42; - var lexer; - var sc_ind_43; - var make_states; - var BgL_sc_confzd2setzd2getza2_44za2; - var conf_set_merge_new_bang; - var conf_set_adjoin; - var BgL_sc_confzd2setzd2adjoinza2_45za2; - var BgL_sc_confzd2setzd2adjoinza2za2_46z00; - var conf_set_union; - var forw; - var is_parsed; - var deriv_trees; - var BgL_sc_derivzd2treesza2_47z70; - var nb_deriv_trees; - var BgL_sc_nbzd2derivzd2treesza2_48za2; - { - sc_ind_43 = function(nt, sc_nts_49) { - var i; - { - (i = ((sc_nts_49.length)-(1))); - while (true) { - if ((i>=(0))) - if ((sc_isEqual((sc_nts_49[i]), nt))) - return i; - else - (--i); - else - return false; - } - } - }; - make_states = function(BgL_sc_nbzd2toks_50zd2, BgL_sc_nbzd2confs_51zd2) { - var v; - var i; - var sc_states_52; - { - (sc_states_52 = (sc_makeVector((BgL_sc_nbzd2toks_50zd2+(1)), false))); - (i = BgL_sc_nbzd2toks_50zd2); - while ((i>=(0))) { - { - (v = (sc_makeVector((BgL_sc_nbzd2confs_51zd2+(1)), false))); - (v[(0)] = (-1)); - (sc_states_52[i] = v); - (--i); - } - } - return sc_states_52; - } - }; - BgL_sc_confzd2setzd2getza2_44za2 = function(state, BgL_sc_statezd2num_53zd2, sc_conf_54) { - var conf_set; - var BgL_sc_confzd2set_55zd2; - return ((BgL_sc_confzd2set_55zd2 = (state[(sc_conf_54+(1))])), ((BgL_sc_confzd2set_55zd2!== false)?BgL_sc_confzd2set_55zd2:((conf_set = (sc_makeVector((BgL_sc_statezd2num_53zd2+(6)), false))), (conf_set[(1)] = (-3)), (conf_set[(2)] = (-1)), (conf_set[(3)] = (-1)), (conf_set[(4)] = (-1)), (state[(sc_conf_54+(1))] = conf_set), conf_set))); - }; - conf_set_merge_new_bang = function(conf_set) { - return ((conf_set[((conf_set[(1)])+(5))] = (conf_set[(4)])), (conf_set[(1)] = (conf_set[(3)])), (conf_set[(3)] = (-1)), (conf_set[(4)] = (-1))); - }; - conf_set_adjoin = function(state, conf_set, sc_conf_56, i) { - var tail; - return ((tail = (conf_set[(3)])), (conf_set[(i+(5))] = (-1)), (conf_set[(tail+(5))] = i), (conf_set[(3)] = i), ((tail<(0))?((conf_set[(0)] = (state[(0)])), (state[(0)] = sc_conf_56)):undefined)); - }; - BgL_sc_confzd2setzd2adjoinza2_45za2 = function(sc_states_57, BgL_sc_statezd2num_58zd2, l, i) { - var conf_set; - var sc_conf_59; - var l1; - var state; - { - (state = (sc_states_57[BgL_sc_statezd2num_58zd2])); - (l1 = l); - while ((l1 instanceof sc_Pair)) { - { - (sc_conf_59 = (l1.car)); - (conf_set = (BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_58zd2, sc_conf_59))); - if (((conf_set[(i+(5))])=== false)) - { - (conf_set_adjoin(state, conf_set, sc_conf_59, i)); - (l1 = (l1.cdr)); - } - else - (l1 = (l1.cdr)); - } - } - return undefined; - } - }; - BgL_sc_confzd2setzd2adjoinza2za2_46z00 = function(sc_states_60, BgL_sc_statesza2_61za2, BgL_sc_statezd2num_62zd2, sc_conf_63, i) { - var BgL_sc_confzd2setza2_64z70; - var BgL_sc_stateza2_65za2; - var conf_set; - var state; - return ((state = (sc_states_60[BgL_sc_statezd2num_62zd2])), ((((conf_set = (state[(sc_conf_63+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)?((BgL_sc_stateza2_65za2 = (BgL_sc_statesza2_61za2[BgL_sc_statezd2num_62zd2])), (BgL_sc_confzd2setza2_64z70 = (BgL_sc_confzd2setzd2getza2_44za2(BgL_sc_stateza2_65za2, BgL_sc_statezd2num_62zd2, sc_conf_63))), (((BgL_sc_confzd2setza2_64z70[(i+(5))])=== false)?(conf_set_adjoin(BgL_sc_stateza2_65za2, BgL_sc_confzd2setza2_64z70, sc_conf_63, i)):undefined), true):false)); - }; - conf_set_union = function(state, conf_set, sc_conf_66, other_set) { - var i; - { - (i = (other_set[(2)])); - while ((i>=(0))) { - if (((conf_set[(i+(5))])=== false)) - { - (conf_set_adjoin(state, conf_set, sc_conf_66, i)); - (i = (other_set[(i+(5))])); - } - else - (i = (other_set[(i+(5))])); - } - return undefined; - } - }; - forw = function(sc_states_67, BgL_sc_statezd2num_68zd2, sc_starters_69, sc_enders_70, sc_predictors_71, sc_steps_72, sc_nts_73) { - var next_set; - var next; - var conf_set; - var ender; - var l; - var starter_set; - var starter; - var sc_l_74; - var sc_loop1_75; - var head; - var BgL_sc_confzd2set_76zd2; - var BgL_sc_statezd2num_77zd2; - var state; - var sc_states_78; - var preds; - var BgL_sc_confzd2set_79zd2; - var step; - var sc_conf_80; - var BgL_sc_nbzd2nts_81zd2; - var sc_state_82; - { - (sc_state_82 = (sc_states_67[BgL_sc_statezd2num_68zd2])); - (BgL_sc_nbzd2nts_81zd2 = (sc_nts_73.length)); - while (true) { - { - (sc_conf_80 = (sc_state_82[(0)])); - if ((sc_conf_80>=(0))) - { - (step = (sc_steps_72[sc_conf_80])); - (BgL_sc_confzd2set_79zd2 = (sc_state_82[(sc_conf_80+(1))])); - (head = (BgL_sc_confzd2set_79zd2[(4)])); - (sc_state_82[(0)] = (BgL_sc_confzd2set_79zd2[(0)])); - (conf_set_merge_new_bang(BgL_sc_confzd2set_79zd2)); - if ((step>=(0))) - { - (sc_l_74 = (sc_starters_69[step])); - while ((sc_l_74 instanceof sc_Pair)) { - { - (starter = (sc_l_74.car)); - (starter_set = (BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, starter))); - if (((starter_set[(BgL_sc_statezd2num_68zd2+(5))])=== false)) - { - (conf_set_adjoin(sc_state_82, starter_set, starter, BgL_sc_statezd2num_68zd2)); - (sc_l_74 = (sc_l_74.cdr)); - } - else - (sc_l_74 = (sc_l_74.cdr)); - } - } - (l = (sc_enders_70[step])); - while ((l instanceof sc_Pair)) { - { - (ender = (l.car)); - if ((((conf_set = (sc_state_82[(ender+(1))])), ((conf_set!== false)?(conf_set[(BgL_sc_statezd2num_68zd2+(5))]):false))!== false)) - { - (next = (sc_conf_80+(1))); - (next_set = (BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, next))); - (conf_set_union(sc_state_82, next_set, next, BgL_sc_confzd2set_79zd2)); - (l = (l.cdr)); - } - else - (l = (l.cdr)); - } - } - } - else - { - (preds = (sc_predictors_71[(step+BgL_sc_nbzd2nts_81zd2)])); - (sc_states_78 = sc_states_67); - (state = sc_state_82); - (BgL_sc_statezd2num_77zd2 = BgL_sc_statezd2num_68zd2); - (BgL_sc_confzd2set_76zd2 = BgL_sc_confzd2set_79zd2); - sc_loop1_75 = function(l) { - var sc_state_83; - var BgL_sc_nextzd2set_84zd2; - var sc_next_85; - var pred_set; - var i; - var pred; - if ((l instanceof sc_Pair)) - { - (pred = (l.car)); - (i = head); - while ((i>=(0))) { - { - (pred_set = ((sc_state_83 = (sc_states_78[i])), (sc_state_83[(pred+(1))]))); - if ((pred_set!== false)) - { - (sc_next_85 = (pred+(1))); - (BgL_sc_nextzd2set_84zd2 = (BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_77zd2, sc_next_85))); - (conf_set_union(state, BgL_sc_nextzd2set_84zd2, sc_next_85, pred_set)); - } - (i = (BgL_sc_confzd2set_76zd2[(i+(5))])); - } - } - return (sc_loop1_75((l.cdr))); - } - else - return undefined; - }; - (sc_loop1_75(preds)); - } - } - else - return undefined; - } - } - } - }; - is_parsed = function(nt, i, j, sc_nts_86, sc_enders_87, sc_states_88) { - var conf_set; - var state; - var sc_conf_89; - var l; - var BgL_sc_ntza2_90za2; - { - (BgL_sc_ntza2_90za2 = (sc_ind_43(nt, sc_nts_86))); - if ((BgL_sc_ntza2_90za2!== false)) - { - (sc_nts_86.length); - (l = (sc_enders_87[BgL_sc_ntza2_90za2])); - while (true) { - if ((l instanceof sc_Pair)) - { - (sc_conf_89 = (l.car)); - if ((((state = (sc_states_88[j])), (conf_set = (state[(sc_conf_89+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)) - return true; - else - (l = (l.cdr)); - } - else - return false; - } - } - else - return false; - } - }; - deriv_trees = function(sc_conf_91, i, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2) { - var sc_loop1_98; - var prev; - var name; - return ((name = (sc_names_94[sc_conf_91])), ((name!== false)?((sc_conf_91=(0))) - if (((k>=i)&&(((sc_state_99 = (sc_states_96[k])), (conf_set = (sc_state_99[(prev+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))) - { - (prev_trees = (deriv_trees(prev, i, k, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2))); - (ender_trees = (deriv_trees(ender, k, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2))); - loop3 = function(l3, l2) { - var l4; - var sc_l2_100; - var ender_tree; - if ((l3 instanceof sc_Pair)) - { - (ender_tree = (sc_list((l3.car)))); - (l4 = prev_trees); - (sc_l2_100 = l2); - while ((l4 instanceof sc_Pair)) { - { - (sc_l2_100 = (new sc_Pair((sc_append((l4.car), ender_tree)), sc_l2_100))); - (l4 = (l4.cdr)); - } - } - return (loop3((l3.cdr), sc_l2_100)); - } - else - return (loop2((ender_set[(k+(5))]), l2)); - }; - return (loop3(ender_trees, l2)); - } - else - (k = (ender_set[(k+(5))])); - else - return (sc_loop1_98((l1.cdr), l2)); - } - }; - return (loop2((ender_set[(2)]), l2)); - } - else - (l1 = (l1.cdr)); - } - else - return l2; - } - }), (sc_loop1_98((sc_enders_92[(sc_steps_93[prev])]), null))))); - }; - BgL_sc_derivzd2treesza2_47z70 = function(nt, i, j, sc_nts_101, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106) { - var conf_set; - var state; - var sc_conf_107; - var l; - var trees; - var BgL_sc_nbzd2nts_108zd2; - var BgL_sc_ntza2_109za2; - { - (BgL_sc_ntza2_109za2 = (sc_ind_43(nt, sc_nts_101))); - if ((BgL_sc_ntza2_109za2!== false)) - { - (BgL_sc_nbzd2nts_108zd2 = (sc_nts_101.length)); - (l = (sc_enders_102[BgL_sc_ntza2_109za2])); - (trees = null); - while ((l instanceof sc_Pair)) { - { - (sc_conf_107 = (l.car)); - if ((((state = (sc_states_106[j])), (conf_set = (state[(sc_conf_107+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)) - { - (l = (l.cdr)); - (trees = (sc_append((deriv_trees(sc_conf_107, i, j, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106, BgL_sc_nbzd2nts_108zd2)), trees))); - } - else - (l = (l.cdr)); - } - } - return trees; - } - else - return false; - } - }; - nb_deriv_trees = function(sc_conf_110, i, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2) { - var sc_loop1_116; - var tmp1124; - var prev; - return ((prev = (sc_conf_110-(1))), ((((tmp1124 = (sc_conf_110=(0))) { - if (((k>=i)&&(((state = (sc_states_114[k])), (conf_set = (state[(prev+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false))) - { - (nb_prev_trees = (nb_deriv_trees(prev, i, k, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2))); - (nb_ender_trees = (nb_deriv_trees(ender, k, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2))); - (k = (ender_set[(k+(5))])); - (n +=(nb_prev_trees*nb_ender_trees)); - } - else - (k = (ender_set[(k+(5))])); - } - return (sc_loop1_116((l.cdr), n)); - } - else - (l = (l.cdr)); - } - else - return sc_n_118; - } - }), (sc_loop1_116((sc_enders_111[(sc_steps_112[prev])]), (0)))))); - }; - BgL_sc_nbzd2derivzd2treesza2_48za2 = function(nt, i, j, sc_nts_119, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123) { - var conf_set; - var state; - var sc_conf_124; - var l; - var nb_trees; - var BgL_sc_nbzd2nts_125zd2; - var BgL_sc_ntza2_126za2; - { - (BgL_sc_ntza2_126za2 = (sc_ind_43(nt, sc_nts_119))); - if ((BgL_sc_ntza2_126za2!== false)) - { - (BgL_sc_nbzd2nts_125zd2 = (sc_nts_119.length)); - (l = (sc_enders_120[BgL_sc_ntza2_126za2])); - (nb_trees = (0)); - while ((l instanceof sc_Pair)) { - { - (sc_conf_124 = (l.car)); - if ((((state = (sc_states_123[j])), (conf_set = (state[(sc_conf_124+(1))])), ((conf_set!== false)?(conf_set[(i+(5))]):false))!== false)) - { - (l = (l.cdr)); - (nb_trees = ((nb_deriv_trees(sc_conf_124, i, j, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123, BgL_sc_nbzd2nts_125zd2))+nb_trees)); - } - else - (l = (l.cdr)); - } - } - return nb_trees; - } - else - return false; - } - }; - (lexer = (parser_descr[(0)])); - (sc_nts_42 = (parser_descr[(1)])); - (sc_starters_41 = (parser_descr[(2)])); - (sc_enders_40 = (parser_descr[(3)])); - (sc_predictors_39 = (parser_descr[(4)])); - (sc_steps_38 = (parser_descr[(5)])); - (sc_names_37 = (parser_descr[(6)])); - (falseHead1128 = (new sc_Pair(null, null))); - (L1125 = (lexer(input))); - (tail1129 = falseHead1128); - while (!(L1125 === null)) { - { - (tok = (L1125.car)); - (l1 = (tok.cdr)); - (l2 = null); - while ((l1 instanceof sc_Pair)) { - { - (sc_i_29 = (sc_ind_43((l1.car), sc_nts_42))); - if ((sc_i_29!== false)) - { - (l1 = (l1.cdr)); - (l2 = (new sc_Pair(sc_i_29, l2))); - } - else - (l1 = (l1.cdr)); - } - } - (sc_optrOpnd_22 = (new sc_Pair((tok.car), (sc_reverse(l2))))); - (sc_optrOpnd_21 = (new sc_Pair(sc_optrOpnd_22, null))); - (tail1129.cdr = sc_optrOpnd_21); - (tail1129 = (tail1129.cdr)); - (L1125 = (L1125.cdr)); - } - } - (sc_optrOpnd_20 = (falseHead1128.cdr)); - (sc_toks_36 = (sc_list2vector(sc_optrOpnd_20))); - (BgL_sc_nbzd2toks_35zd2 = (sc_toks_36.length)); - (BgL_sc_nbzd2confs_34zd2 = (sc_steps_38.length)); - (sc_states_33 = (make_states(BgL_sc_nbzd2toks_35zd2, BgL_sc_nbzd2confs_34zd2))); - (goal_starters = (sc_starters_41[(0)])); - (BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, (0), goal_starters, (0))); - (forw(sc_states_33, (0), sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42)); - (sc_i_28 = (0)); - while ((sc_i_28=(0))) { - { - (states = sc_states_33); - (BgL_sc_statesza2_27za2 = BgL_sc_statesza2_30za2); - (state_num = i); - (sc_enders_26 = sc_enders_40); - (sc_steps_25 = sc_steps_38); - (BgL_sc_nbzd2nts_24zd2 = BgL_sc_nbzd2nts_31zd2); - (toks = sc_toks_36); - (BgL_sc_stateza2_23za2 = (BgL_sc_statesza2_30za2[i])); - loop1 = function() { - var sc_loop1_127; - var prev; - var BgL_sc_statesza2_128za2; - var sc_states_129; - var j; - var i; - var sc_i_130; - var head; - var conf_set; - var sc_conf_131; - { - (sc_conf_131 = (BgL_sc_stateza2_23za2[(0)])); - if ((sc_conf_131>=(0))) - { - (conf_set = (BgL_sc_stateza2_23za2[(sc_conf_131+(1))])); - (head = (conf_set[(4)])); - (BgL_sc_stateza2_23za2[(0)] = (conf_set[(0)])); - (conf_set_merge_new_bang(conf_set)); - (sc_i_130 = head); - while ((sc_i_130>=(0))) { - { - (i = sc_i_130); - (j = state_num); - (sc_states_129 = states); - (BgL_sc_statesza2_128za2 = BgL_sc_statesza2_27za2); - (prev = (sc_conf_131-(1))); - if (((sc_conf_131>=BgL_sc_nbzd2nts_24zd2)&&((sc_steps_25[prev])>=(0)))) - { - sc_loop1_127 = function(l) { - var k; - var ender_set; - var state; - var ender; - var l; - while (true) { - if ((l instanceof sc_Pair)) - { - (ender = (l.car)); - (ender_set = ((state = (sc_states_129[j])), (state[(ender+(1))]))); - if ((ender_set!== false)) - { - (k = (ender_set[(2)])); - while ((k>=(0))) { - { - if ((k>=i)) - if (((BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, k, prev, i))!== false)) - (BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, j, ender, k)); - (k = (ender_set[(k+(5))])); - } - } - return (sc_loop1_127((l.cdr))); - } - else - (l = (l.cdr)); - } - else - return undefined; - } - }; - (sc_loop1_127((sc_enders_26[(sc_steps_25[prev])]))); - } - (sc_i_130 = (conf_set[(sc_i_130+(5))])); - } - } - return (loop1()); - } - else - return undefined; - } - }; - (loop1()); - (--i); - } - } - (optrOpnd = BgL_sc_statesza2_30za2); - return [sc_nts_42, sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_names_37, sc_toks_36, optrOpnd, is_parsed, BgL_sc_derivzd2treesza2_47z70, BgL_sc_nbzd2derivzd2treesza2_48za2]; - } - }; - } - }; - BgL_parsezd2ze3parsedzf3zc2 = function(parse, nt, i, j) { - var is_parsed; - var states; - var enders; - var nts; - return ((nts = (parse[(0)])), (enders = (parse[(2)])), (states = (parse[(7)])), (is_parsed = (parse[(8)])), (is_parsed(nt, i, j, nts, enders, states))); - }; - BgL_parsezd2ze3treesz31 = function(parse, nt, i, j) { - var BgL_sc_derivzd2treesza2_132z70; - var states; - var toks; - var names; - var steps; - var enders; - var nts; - return ((nts = (parse[(0)])), (enders = (parse[(2)])), (steps = (parse[(4)])), (names = (parse[(5)])), (toks = (parse[(6)])), (states = (parse[(7)])), (BgL_sc_derivzd2treesza2_132z70 = (parse[(9)])), (BgL_sc_derivzd2treesza2_132z70(nt, i, j, nts, enders, steps, names, toks, states))); - }; - BgL_parsezd2ze3nbzd2treesze3 = function(parse, nt, i, j) { - var BgL_sc_nbzd2derivzd2treesza2_133za2; - var states; - var toks; - var steps; - var enders; - var nts; - return ((nts = (parse[(0)])), (enders = (parse[(2)])), (steps = (parse[(4)])), (toks = (parse[(6)])), (states = (parse[(7)])), (BgL_sc_nbzd2derivzd2treesza2_133za2 = (parse[(10)])), (BgL_sc_nbzd2derivzd2treesza2_133za2(nt, i, j, nts, enders, steps, toks, states))); - }; - test = function(k) { - var x; - var p; - return ((p = (BgL_makezd2parserzd2(const_earley, function(l) { - var sc_x_134; - var tail1134; - var L1130; - var falseHead1133; - { - (falseHead1133 = (new sc_Pair(null, null))); - (tail1134 = falseHead1133); - (L1130 = l); - while (!(L1130 === null)) { - { - (tail1134.cdr = (new sc_Pair(((sc_x_134 = (L1130.car)), (sc_list(sc_x_134, sc_x_134))), null))); - (tail1134 = (tail1134.cdr)); - (L1130 = (L1130.cdr)); - } - } - return (falseHead1133.cdr); - } - }))), (x = (p((sc_vector2list((sc_makeVector(k, "\u1E9Ca"))))))), (sc_length((BgL_parsezd2ze3treesz31(x, "\u1E9Cs", (0), k))))); - }; - BgL_earleyzd2benchmarkzd2 = function() { - var args = null; - for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) { - args = sc_cons(arguments[sc_tmp], args); - } - var k; - return ((k = ((args === null)?(7):(args.car))), (BgL_runzd2benchmarkzd2("earley", (1), function() { - return (test(k)); - }, function(result) { - return ((sc_display(result)), (sc_newline()), result == 132); - }))); - }; -} - - -/************* END OF GENERATED CODE *************/ -// Invoke this function to run a benchmark. -// The first argument is a string identifying the benchmark. -// The second argument is the number of times to run the benchmark. -// The third argument is a function that runs the benchmark. -// The fourth argument is a unary function that warns if the result -// returned by the benchmark is incorrect. -// -// Example: -// RunBenchmark("new Array()", -// 1, -// function () { new Array(1000000); } -// function (v) { -// return (v instanceof Array) && (v.length == 1000000); -// }); - -SC_DEFAULT_OUT = new sc_GenericOutputPort(function(s) {}); -SC_ERROR_OUT = SC_DEFAULT_OUT; - -function RunBenchmark(name, count, run, warn) { - for (var n = 0; n < count; ++n) { - result = run(); - if (!warn(result)) { - throw new Error("Earley or Boyer did incorrect number of rewrites"); - } - } -} - -var BgL_runzd2benchmarkzd2 = RunBenchmark; diff --git a/build/pgo/js-input/octane/gbemu-part1.js b/build/pgo/js-input/octane/gbemu-part1.js deleted file mode 100644 index 10f19e4a195f..000000000000 --- a/build/pgo/js-input/octane/gbemu-part1.js +++ /dev/null @@ -1,1350 +0,0 @@ -// Portions copyright 2013 Google, Inc - -// Copyright (C) 2010 - 2012 Grant Galitz -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License version 2 as -// published by the Free Software Foundation. -// The full license is available at http://www.gnu.org/licenses/gpl.html -// This program is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. - -// The code has been adapted for use as a benchmark by Google. - -var GameboyBenchmark = new BenchmarkSuite('Gameboy', [26288412], - [new Benchmark('Gameboy', - false, - false, - 20, - runGameboy, - setupGameboy, - tearDownGameboy, - null, - 4)]); - -var decoded_gameboy_rom = null; - -function setupGameboy() { - - // Check if all the types required by the code are supported. - // If not, throw exception and quit. - if (!(typeof Uint8Array != "undefined" && - typeof Int8Array != "undefined" && - typeof Float32Array != "undefined" && - typeof Int32Array != "undefined") ) { - throw "TypedArrayUnsupported"; - } - decoded_gameboy_rom = base64_decode(gameboy_rom); - rom = null; -} - -function runGameboy() { - start(new GameBoyCanvas(), decoded_gameboy_rom); - - gameboy.instructions = 0; - gameboy.totalInstructions = 250000; - - while (gameboy.instructions <= gameboy.totalInstructions) { - gameboy.run(); - GameBoyAudioNode.run(); - } - - resetGlobalVariables(); -} - -function tearDownGameboy() { - decoded_gameboy_rom = null; - expectedGameboyStateStr = null; -} - -var expectedGameboyStateStr = - '{"registerA":160,"registerB":255,"registerC":255,"registerE":11,' + - '"registersHL":51600,"programCounter":24309,"stackPointer":49706,' + - '"sumROM":10171578,"sumMemory":3435856,"sumMBCRam":234598,"sumVRam":0}'; - -// Start of browser emulation. - -var GameBoyWindow = { }; - -function GameBoyContext() { - this.createBuffer = function() { - return new Buffer(); - } - this.createImageData = function (w, h) { - var result = {}; - // The following line was updated since Octane 1.0 to avoid OOB access. - result.data = new Uint8Array(w * h * 4); - return result; - } - this.putImageData = function (buffer, x, y) { - var sum = 0; - for (var i = 0; i < buffer.data.length; i++) { - sum += i * buffer.data[i]; - sum = sum % 1000; - } - } - this.drawImage = function () { } -}; - -function GameBoyCanvas() { - this.getContext = function() { - return new GameBoyContext(); - } - this.width = 160; - this.height = 144; - this.style = { visibility: "visibile" }; -} - -function cout(message, colorIndex) { -} - -function clear_terminal() { -} - -var GameBoyAudioNode = { - bufferSize : 0, - onaudioprocess : null , - connect : function () {}, - run: function() { - var event = {outputBuffer : this.outputBuffer}; - this.onaudioprocess(event); - } -}; - -function GameBoyAudioContext () { - this.createBufferSource = function() { - return { noteOn : function () {}, connect : function() {}}; - } - this.sampleRate = 48000; - this.destination = {} - this.createBuffer = function (channels, len, sampleRate) { - return { gain : 1, - numberOfChannels : 1, - length : 1, - duration : 0.000020833333110203966, - sampleRate : 48000} - } - this.createJavaScriptNode = function (bufferSize, inputChannels, outputChannels) { - GameBoyAudioNode.bufferSize = bufferSize; - GameBoyAudioNode.outputBuffer = { - getChannelData : function (i) {return this.channelData[i];}, - channelData : [] - }; - for (var i = 0; i < outputChannels; i++) { - GameBoyAudioNode.outputBuffer.channelData[i] = new Float32Array(bufferSize); - } - return GameBoyAudioNode; - } -} - -var mock_date_time_counter = 0; - -function new_Date() { - return { - getTime: function() { - mock_date_time_counter += 16; - return mock_date_time_counter; - } - }; -} - -// End of browser emulation. - -// Start of helper functions. - -function checkFinalState() { - function sum(a) { - var result = 0; - for (var i = 0; i < a.length; i++) { - result += a[i]; - } - return result; - } - var state = { - registerA: gameboy.registerA, - registerB: gameboy.registerB, - registerC: gameboy.registerC, - registerE: gameboy.registerE, - registerF: gameboy.registerF, - registersHL: gameboy.registersHL, - programCounter: gameboy.programCounter, - stackPointer: gameboy.stackPointer, - sumROM : sum(gameboy.fromTypedArray(gameboy.ROM)), - sumMemory: sum(gameboy.fromTypedArray(gameboy.memory)), - sumMBCRam: sum(gameboy.fromTypedArray(gameboy.MBCRam)), - sumVRam: sum(gameboy.fromTypedArray(gameboy.VRam)) - }; - var expectedState = JSON.parse(expectedGameboyStateStr); - for (var prop in expectedState) { - if (state[prop] !== expectedState[prop]) { - var stateStr = JSON.stringify(state); - alert("Incorrect final state of processor:\n" + - " actual " + stateStr + "\n" + - " expected " + expectedGameboyStateStr); - } - } -} - - -function resetGlobalVariables () { - //Audio API Event Handler: - audioContextHandle = null; - audioNode = null; - audioSource = null; - launchedContext = false; - audioContextSampleBuffer = []; - resampled = []; - webAudioMinBufferSize = 15000; - webAudioMaxBufferSize = 25000; - webAudioActualSampleRate = 44100; - XAudioJSSampleRate = 0; - webAudioMono = false; - XAudioJSVolume = 1; - resampleControl = null; - audioBufferSize = 0; - resampleBufferStart = 0; - resampleBufferEnd = 0; - resampleBufferSize = 2; - - gameboy = null; //GameBoyCore object. - gbRunInterval = null; //GameBoyCore Timer -} - - -// End of helper functions. - -// Original code from Grant Galitz follows. -// Modifications by Google are marked in comments. - -// Start of js/other/base64.js file. - -var toBase64 = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", - "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", - "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+" , "/", "="]; -var fromBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; -function base64(data) { - try { - // The following line was modified for benchmarking: - var base64 = GameBoyWindow.btoa(data); //Use this native function when it's available, as it's a magnitude faster than the non-native code below. - } - catch (error) { - //Defaulting to non-native base64 encoding... - var base64 = ""; - var dataLength = data.length; - if (dataLength > 0) { - var bytes = [0, 0, 0]; - var index = 0; - var remainder = dataLength % 3; - while (data.length % 3 > 0) { - //Make sure we don't do fuzzy math in the next loop... - data[data.length] = " "; - } - while (index < dataLength) { - //Keep this loop small for speed. - bytes = [data.charCodeAt(index++) & 0xFF, data.charCodeAt(index++) & 0xFF, data.charCodeAt(index++) & 0xFF]; - base64 += toBase64[bytes[0] >> 2] + toBase64[((bytes[0] & 0x3) << 4) | (bytes[1] >> 4)] + toBase64[((bytes[1] & 0xF) << 2) | (bytes[2] >> 6)] + toBase64[bytes[2] & 0x3F]; - } - if (remainder > 0) { - //Fill in the padding and recalulate the trailing six-bit group... - base64[base64.length - 1] = "="; - if (remainder == 2) { - base64[base64.length - 2] = "="; - base64[base64.length - 3] = toBase64[(bytes[0] & 0x3) << 4]; - } - else { - base64[base64.length - 2] = toBase64[(bytes[1] & 0xF) << 2]; - } - } - } - } - return base64; -} -function base64_decode(data) { - try { - // The following line was modified for benchmarking: - var decode64 = GameBoyWindow.atob(data); //Use this native function when it's available, as it's a magnitude faster than the non-native code below. - } - catch (error) { - //Defaulting to non-native base64 decoding... - var decode64 = ""; - var dataLength = data.length; - if (dataLength > 3 && dataLength % 4 == 0) { - var sixbits = [0, 0, 0, 0]; //Declare this out of the loop, to speed up the ops. - var index = 0; - while (index < dataLength) { - //Keep this loop small for speed. - sixbits = [fromBase64.indexOf(data.charAt(index++)), fromBase64.indexOf(data.charAt(index++)), fromBase64.indexOf(data.charAt(index++)), fromBase64.indexOf(data.charAt(index++))]; - decode64 += String.fromCharCode((sixbits[0] << 2) | (sixbits[1] >> 4)) + String.fromCharCode(((sixbits[1] & 0x0F) << 4) | (sixbits[2] >> 2)) + String.fromCharCode(((sixbits[2] & 0x03) << 6) | sixbits[3]); - } - //Check for the '=' character after the loop, so we don't hose it up. - if (sixbits[3] >= 0x40) { - decode64.length -= 1; - if (sixbits[2] >= 0x40) { - decode64.length -= 1; - } - } - } - } - return decode64; -} -function to_little_endian_dword(str) { - return to_little_endian_word(str) + String.fromCharCode((str >> 16) & 0xFF, (str >> 24) & 0xFF); -} -function to_little_endian_word(str) { - return to_byte(str) + String.fromCharCode((str >> 8) & 0xFF); -} -function to_byte(str) { - return String.fromCharCode(str & 0xFF); -} -function arrayToBase64(arrayIn) { - var binString = ""; - var length = arrayIn.length; - for (var index = 0; index < length; ++index) { - if (typeof arrayIn[index] == "number") { - binString += String.fromCharCode(arrayIn[index]); - } - } - return base64(binString); -} -function base64ToArray(b64String) { - var binString = base64_decode(b64String); - var outArray = []; - var length = binString.length; - for (var index = 0; index < length;) { - outArray.push(binString.charCodeAt(index++) & 0xFF); - } - return outArray; -} - -// End of js/other/base64.js file. - -// Start of js/other/resampler.js file. - -//JavaScript Audio Resampler (c) 2011 - Grant Galitz -function Resampler(fromSampleRate, toSampleRate, channels, outputBufferSize, noReturn) { - this.fromSampleRate = fromSampleRate; - this.toSampleRate = toSampleRate; - this.channels = channels | 0; - this.outputBufferSize = outputBufferSize; - this.noReturn = !!noReturn; - this.initialize(); -} -Resampler.prototype.initialize = function () { - //Perform some checks: - if (this.fromSampleRate > 0 && this.toSampleRate > 0 && this.channels > 0) { - if (this.fromSampleRate == this.toSampleRate) { - //Setup a resampler bypass: - this.resampler = this.bypassResampler; //Resampler just returns what was passed through. - this.ratioWeight = 1; - } - else { - //Setup the interpolation resampler: - this.compileInterpolationFunction(); - this.resampler = this.interpolate; //Resampler is a custom quality interpolation algorithm. - this.ratioWeight = this.fromSampleRate / this.toSampleRate; - this.tailExists = false; - this.lastWeight = 0; - this.initializeBuffers(); - } - } - else { - throw(new Error("Invalid settings specified for the resampler.")); - } -} -Resampler.prototype.compileInterpolationFunction = function () { - var toCompile = "var bufferLength = Math.min(buffer.length, this.outputBufferSize);\ - if ((bufferLength % " + this.channels + ") == 0) {\ - if (bufferLength > 0) {\ - var ratioWeight = this.ratioWeight;\ - var weight = 0;"; - for (var channel = 0; channel < this.channels; ++channel) { - toCompile += "var output" + channel + " = 0;" - } - toCompile += "var actualPosition = 0;\ - var amountToNext = 0;\ - var alreadyProcessedTail = !this.tailExists;\ - this.tailExists = false;\ - var outputBuffer = this.outputBuffer;\ - var outputOffset = 0;\ - var currentPosition = 0;\ - do {\ - if (alreadyProcessedTail) {\ - weight = ratioWeight;"; - for (channel = 0; channel < this.channels; ++channel) { - toCompile += "output" + channel + " = 0;" - } - toCompile += "}\ - else {\ - weight = this.lastWeight;"; - for (channel = 0; channel < this.channels; ++channel) { - toCompile += "output" + channel + " = this.lastOutput[" + channel + "];" - } - toCompile += "alreadyProcessedTail = true;\ - }\ - while (weight > 0 && actualPosition < bufferLength) {\ - amountToNext = 1 + actualPosition - currentPosition;\ - if (weight >= amountToNext) {"; - for (channel = 0; channel < this.channels; ++channel) { - toCompile += "output" + channel + " += buffer[actualPosition++] * amountToNext;" - } - toCompile += "currentPosition = actualPosition;\ - weight -= amountToNext;\ - }\ - else {"; - for (channel = 0; channel < this.channels; ++channel) { - toCompile += "output" + channel + " += buffer[actualPosition" + ((channel > 0) ? (" + " + channel) : "") + "] * weight;" - } - toCompile += "currentPosition += weight;\ - weight = 0;\ - break;\ - }\ - }\ - if (weight == 0) {"; - for (channel = 0; channel < this.channels; ++channel) { - toCompile += "outputBuffer[outputOffset++] = output" + channel + " / ratioWeight;" - } - toCompile += "}\ - else {\ - this.lastWeight = weight;"; - for (channel = 0; channel < this.channels; ++channel) { - toCompile += "this.lastOutput[" + channel + "] = output" + channel + ";" - } - toCompile += "this.tailExists = true;\ - break;\ - }\ - } while (actualPosition < bufferLength);\ - return this.bufferSlice(outputOffset);\ - }\ - else {\ - return (this.noReturn) ? 0 : [];\ - }\ - }\ - else {\ - throw(new Error(\"Buffer was of incorrect sample length.\"));\ - }"; - this.interpolate = Function("buffer", toCompile); -} -Resampler.prototype.bypassResampler = function (buffer) { - if (this.noReturn) { - //Set the buffer passed as our own, as we don't need to resample it: - this.outputBuffer = buffer; - return buffer.length; - } - else { - //Just return the buffer passsed: - return buffer; - } -} -Resampler.prototype.bufferSlice = function (sliceAmount) { - if (this.noReturn) { - //If we're going to access the properties directly from this object: - return sliceAmount; - } - else { - //Typed array and normal array buffer section referencing: - try { - return this.outputBuffer.subarray(0, sliceAmount); - } - catch (error) { - try { - //Regular array pass: - this.outputBuffer.length = sliceAmount; - return this.outputBuffer; - } - catch (error) { - //Nightly Firefox 4 used to have the subarray function named as slice: - return this.outputBuffer.slice(0, sliceAmount); - } - } - } -} -Resampler.prototype.initializeBuffers = function () { - //Initialize the internal buffer: - try { - this.outputBuffer = new Float32Array(this.outputBufferSize); - this.lastOutput = new Float32Array(this.channels); - } - catch (error) { - this.outputBuffer = []; - this.lastOutput = []; - } -} - -// End of js/other/resampler.js file. - -// Start of js/other/XAudioServer.js file. - -/*Initialize here first: - Example: - Stereo audio with a sample rate of 70 khz, a minimum buffer of 15000 samples total, a maximum buffer of 25000 samples total and a starting volume level of 1. - var parentObj = this; - this.audioHandle = new XAudioServer(2, 70000, 15000, 25000, function (sampleCount) { - return parentObj.audioUnderRun(sampleCount); - }, 1); - - The callback is passed the number of samples requested, while it can return any number of samples it wants back. -*/ -function XAudioServer(channels, sampleRate, minBufferSize, maxBufferSize, underRunCallback, volume) { - this.audioChannels = (channels == 2) ? 2 : 1; - webAudioMono = (this.audioChannels == 1); - XAudioJSSampleRate = (sampleRate > 0 && sampleRate <= 0xFFFFFF) ? sampleRate : 44100; - webAudioMinBufferSize = (minBufferSize >= (samplesPerCallback << 1) && minBufferSize < maxBufferSize) ? (minBufferSize & ((webAudioMono) ? 0xFFFFFFFF : 0xFFFFFFFE)) : (samplesPerCallback << 1); - webAudioMaxBufferSize = (Math.floor(maxBufferSize) > webAudioMinBufferSize + this.audioChannels) ? (maxBufferSize & ((webAudioMono) ? 0xFFFFFFFF : 0xFFFFFFFE)) : (minBufferSize << 1); - this.underRunCallback = (typeof underRunCallback == "function") ? underRunCallback : function () {}; - XAudioJSVolume = (volume >= 0 && volume <= 1) ? volume : 1; - this.audioType = -1; - this.mozAudioTail = []; - this.audioHandleMoz = null; - this.audioHandleFlash = null; - this.flashInitialized = false; - this.mozAudioFound = false; - this.initializeAudio(); -} -XAudioServer.prototype.MOZWriteAudio = function (buffer) { - //mozAudio: - this.MOZWriteAudioNoCallback(buffer); - this.MOZExecuteCallback(); -} -XAudioServer.prototype.MOZWriteAudioNoCallback = function (buffer) { - //mozAudio: - this.writeMozAudio(buffer); -} -XAudioServer.prototype.callbackBasedWriteAudio = function (buffer) { - //Callback-centered audio APIs: - this.callbackBasedWriteAudioNoCallback(buffer); - this.callbackBasedExecuteCallback(); -} -XAudioServer.prototype.callbackBasedWriteAudioNoCallback = function (buffer) { - //Callback-centered audio APIs: - var length = buffer.length; - for (var bufferCounter = 0; bufferCounter < length && audioBufferSize < webAudioMaxBufferSize;) { - audioContextSampleBuffer[audioBufferSize++] = buffer[bufferCounter++]; - } -} -/*Pass your samples into here! -Pack your samples as a one-dimenional array -With the channel samplea packed uniformly. -examples: - mono - [left, left, left, left] - stereo - [left, right, left, right, left, right, left, right] -*/ -XAudioServer.prototype.writeAudio = function (buffer) { - if (this.audioType == 0) { - this.MOZWriteAudio(buffer); - } - else if (this.audioType == 1) { - this.callbackBasedWriteAudio(buffer); - } - else if (this.audioType == 2) { - if (this.checkFlashInit() || launchedContext) { - this.callbackBasedWriteAudio(buffer); - } - else if (this.mozAudioFound) { - this.MOZWriteAudio(buffer); - } - } -} -/*Pass your samples into here if you don't want automatic callback calling: -Pack your samples as a one-dimenional array -With the channel samplea packed uniformly. -examples: - mono - [left, left, left, left] - stereo - [left, right, left, right, left, right, left, right] -Useful in preventing infinite recursion issues with calling writeAudio inside your callback. -*/ -XAudioServer.prototype.writeAudioNoCallback = function (buffer) { - if (this.audioType == 0) { - this.MOZWriteAudioNoCallback(buffer); - } - else if (this.audioType == 1) { - this.callbackBasedWriteAudioNoCallback(buffer); - } - else if (this.audioType == 2) { - if (this.checkFlashInit() || launchedContext) { - this.callbackBasedWriteAudioNoCallback(buffer); - } - else if (this.mozAudioFound) { - this.MOZWriteAudioNoCallback(buffer); - } - } -} -//Developer can use this to see how many samples to write (example: minimum buffer allotment minus remaining samples left returned from this function to make sure maximum buffering is done...) -//If -1 is returned, then that means metric could not be done. -XAudioServer.prototype.remainingBuffer = function () { - if (this.audioType == 0) { - //mozAudio: - return this.samplesAlreadyWritten - this.audioHandleMoz.mozCurrentSampleOffset(); - } - else if (this.audioType == 1) { - //WebKit Audio: - return (((resampledSamplesLeft() * resampleControl.ratioWeight) >> (this.audioChannels - 1)) << (this.audioChannels - 1)) + audioBufferSize; - } - else if (this.audioType == 2) { - if (this.checkFlashInit() || launchedContext) { - //Webkit Audio / Flash Plugin Audio: - return (((resampledSamplesLeft() * resampleControl.ratioWeight) >> (this.audioChannels - 1)) << (this.audioChannels - 1)) + audioBufferSize; - } - else if (this.mozAudioFound) { - //mozAudio: - return this.samplesAlreadyWritten - this.audioHandleMoz.mozCurrentSampleOffset(); - } - } - //Default return: - return 0; -} -XAudioServer.prototype.MOZExecuteCallback = function () { - //mozAudio: - var samplesRequested = webAudioMinBufferSize - this.remainingBuffer(); - if (samplesRequested > 0) { - this.writeMozAudio(this.underRunCallback(samplesRequested)); - } -} -XAudioServer.prototype.callbackBasedExecuteCallback = function () { - //WebKit /Flash Audio: - var samplesRequested = webAudioMinBufferSize - this.remainingBuffer(); - if (samplesRequested > 0) { - this.callbackBasedWriteAudioNoCallback(this.underRunCallback(samplesRequested)); - } -} -//If you just want your callback called for any possible refill (Execution of callback is still conditional): -XAudioServer.prototype.executeCallback = function () { - if (this.audioType == 0) { - this.MOZExecuteCallback(); - } - else if (this.audioType == 1) { - this.callbackBasedExecuteCallback(); - } - else if (this.audioType == 2) { - if (this.checkFlashInit() || launchedContext) { - this.callbackBasedExecuteCallback(); - } - else if (this.mozAudioFound) { - this.MOZExecuteCallback(); - } - } -} -//DO NOT CALL THIS, the lib calls this internally! -XAudioServer.prototype.initializeAudio = function () { - try { - throw (new Error("Select initializeWebAudio case")); // Line added for benchmarking. - this.preInitializeMozAudio(); - if (navigator.platform == "Linux i686") { - //Block out mozaudio usage for Linux Firefox due to moz bugs: - throw(new Error("")); - } - this.initializeMozAudio(); - } - catch (error) { - try { - this.initializeWebAudio(); - } - catch (error) { - try { - this.initializeFlashAudio(); - } - catch (error) { - throw(new Error("Browser does not support real time audio output.")); - } - } - } -} -XAudioServer.prototype.preInitializeMozAudio = function () { - //mozAudio - Synchronous Audio API - this.audioHandleMoz = new Audio(); - this.audioHandleMoz.mozSetup(this.audioChannels, XAudioJSSampleRate); - this.samplesAlreadyWritten = 0; - var emptySampleFrame = (this.audioChannels == 2) ? [0, 0] : [0]; - var prebufferAmount = 0; - if (navigator.platform != "MacIntel" && navigator.platform != "MacPPC") { //Mac OS X doesn't experience this moz-bug! - while (this.audioHandleMoz.mozCurrentSampleOffset() == 0) { - //Mozilla Audio Bugginess Workaround (Firefox freaks out if we don't give it a prebuffer under certain OSes): - prebufferAmount += this.audioHandleMoz.mozWriteAudio(emptySampleFrame); - } - var samplesToDoubleBuffer = prebufferAmount / this.audioChannels; - //Double the prebuffering for windows: - for (var index = 0; index < samplesToDoubleBuffer; index++) { - this.samplesAlreadyWritten += this.audioHandleMoz.mozWriteAudio(emptySampleFrame); - } - } - this.samplesAlreadyWritten += prebufferAmount; - webAudioMinBufferSize += this.samplesAlreadyWritten; - this.mozAudioFound = true; -} -XAudioServer.prototype.initializeMozAudio = function () { - //Fill in our own buffering up to the minimum specified: - this.writeMozAudio(getFloat32(webAudioMinBufferSize)); - this.audioType = 0; -} -XAudioServer.prototype.initializeWebAudio = function () { - if (launchedContext) { - resetCallbackAPIAudioBuffer(webAudioActualSampleRate, samplesPerCallback); - this.audioType = 1; - } - else { - throw(new Error("")); - } -} -XAudioServer.prototype.initializeFlashAudio = function () { - var existingFlashload = document.getElementById("XAudioJS"); - if (existingFlashload == null) { - var thisObj = this; - var mainContainerNode = document.createElement("div"); - mainContainerNode.setAttribute("style", "position: fixed; bottom: 0px; right: 0px; margin: 0px; padding: 0px; border: none; width: 8px; height: 8px; overflow: hidden; z-index: -1000; "); - var containerNode = document.createElement("div"); - containerNode.setAttribute("style", "position: static; border: none; width: 0px; height: 0px; visibility: hidden; margin: 8px; padding: 0px;"); - containerNode.setAttribute("id", "XAudioJS"); - mainContainerNode.appendChild(containerNode); - document.getElementsByTagName("body")[0].appendChild(mainContainerNode); - swfobject.embedSWF( - "XAudioJS.swf", - "XAudioJS", - "8", - "8", - "9.0.0", - "", - {}, - {"allowscriptaccess":"always"}, - {"style":"position: static; visibility: hidden; margin: 8px; padding: 0px; border: none"}, - function (event) { - if (event.success) { - thisObj.audioHandleFlash = event.ref; - } - else { - thisObj.audioType = 1; - } - } - ); - } - else { - this.audioHandleFlash = existingFlashload; - } - this.audioType = 2; -} -XAudioServer.prototype.changeVolume = function (newVolume) { - if (newVolume >= 0 && newVolume <= 1) { - XAudioJSVolume = newVolume; - if (this.checkFlashInit()) { - this.audioHandleFlash.changeVolume(XAudioJSVolume); - } - if (this.mozAudioFound) { - this.audioHandleMoz.volume = XAudioJSVolume; - } - } -} -//Moz Audio Buffer Writing Handler: -XAudioServer.prototype.writeMozAudio = function (buffer) { - var length = this.mozAudioTail.length; - if (length > 0) { - var samplesAccepted = this.audioHandleMoz.mozWriteAudio(this.mozAudioTail); - this.samplesAlreadyWritten += samplesAccepted; - this.mozAudioTail.splice(0, samplesAccepted); - } - length = Math.min(buffer.length, webAudioMaxBufferSize - this.samplesAlreadyWritten + this.audioHandleMoz.mozCurrentSampleOffset()); - var samplesAccepted = this.audioHandleMoz.mozWriteAudio(buffer); - this.samplesAlreadyWritten += samplesAccepted; - for (var index = 0; length > samplesAccepted; --length) { - //Moz Audio wants us saving the tail: - this.mozAudioTail.push(buffer[index++]); - } -} -//Checks to see if the NPAPI Adobe Flash bridge is ready yet: -XAudioServer.prototype.checkFlashInit = function () { - if (!this.flashInitialized && this.audioHandleFlash && this.audioHandleFlash.initialize) { - this.flashInitialized = true; - this.audioHandleFlash.initialize(this.audioChannels, XAudioJSVolume); - resetCallbackAPIAudioBuffer(44100, samplesPerCallback); - } - return this.flashInitialized; -} -/////////END LIB -function getFloat32(size) { - try { - return new Float32Array(size); - } - catch (error) { - return new Array(size); - } -} -function getFloat32Flat(size) { - try { - var newBuffer = new Float32Array(size); - } - catch (error) { - var newBuffer = new Array(size); - var audioSampleIndice = 0; - do { - newBuffer[audioSampleIndice] = 0; - } while (++audioSampleIndice < size); - } - return newBuffer; -} -//Flash NPAPI Event Handler: -var samplesPerCallback = 2048; //Has to be between 2048 and 4096 (If over, then samples are ignored, if under then silence is added). -var outputConvert = null; -function audioOutputFlashEvent() { //The callback that flash calls... - resampleRefill(); - return outputConvert(); -} -function generateFlashStereoString() { //Convert the arrays to one long string for speed. - var copyBinaryStringLeft = ""; - var copyBinaryStringRight = ""; - for (var index = 0; index < samplesPerCallback && resampleBufferStart != resampleBufferEnd; ++index) { - //Sanitize the buffer: - copyBinaryStringLeft += String.fromCharCode(((Math.min(Math.max(resampled[resampleBufferStart++] + 1, 0), 2) * 0x3FFF) | 0) + 0x3000); - copyBinaryStringRight += String.fromCharCode(((Math.min(Math.max(resampled[resampleBufferStart++] + 1, 0), 2) * 0x3FFF) | 0) + 0x3000); - if (resampleBufferStart == resampleBufferSize) { - resampleBufferStart = 0; - } - } - return copyBinaryStringLeft + copyBinaryStringRight; -} -function generateFlashMonoString() { //Convert the array to one long string for speed. - var copyBinaryString = ""; - for (var index = 0; index < samplesPerCallback && resampleBufferStart != resampleBufferEnd; ++index) { - //Sanitize the buffer: - copyBinaryString += String.fromCharCode(((Math.min(Math.max(resampled[resampleBufferStart++] + 1, 0), 2) * 0x3FFF) | 0) + 0x3000); - if (resampleBufferStart == resampleBufferSize) { - resampleBufferStart = 0; - } - } - return copyBinaryString; -} -//Audio API Event Handler: -var audioContextHandle = null; -var audioNode = null; -var audioSource = null; -var launchedContext = false; -var audioContextSampleBuffer = []; -var resampled = []; -var webAudioMinBufferSize = 15000; -var webAudioMaxBufferSize = 25000; -var webAudioActualSampleRate = 44100; -var XAudioJSSampleRate = 0; -var webAudioMono = false; -var XAudioJSVolume = 1; -var resampleControl = null; -var audioBufferSize = 0; -var resampleBufferStart = 0; -var resampleBufferEnd = 0; -var resampleBufferSize = 2; -function audioOutputEvent(event) { //Web Audio API callback... - var index = 0; - var buffer1 = event.outputBuffer.getChannelData(0); - var buffer2 = event.outputBuffer.getChannelData(1); - resampleRefill(); - if (!webAudioMono) { - //STEREO: - while (index < samplesPerCallback && resampleBufferStart != resampleBufferEnd) { - buffer1[index] = resampled[resampleBufferStart++] * XAudioJSVolume; - buffer2[index++] = resampled[resampleBufferStart++] * XAudioJSVolume; - if (resampleBufferStart == resampleBufferSize) { - resampleBufferStart = 0; - } - } - } - else { - //MONO: - while (index < samplesPerCallback && resampleBufferStart != resampleBufferEnd) { - buffer2[index] = buffer1[index] = resampled[resampleBufferStart++] * XAudioJSVolume; - ++index; - if (resampleBufferStart == resampleBufferSize) { - resampleBufferStart = 0; - } - } - } - //Pad with silence if we're underrunning: - while (index < samplesPerCallback) { - buffer2[index] = buffer1[index] = 0; - ++index; - } -} -function resampleRefill() { - if (audioBufferSize > 0) { - //Resample a chunk of audio: - var resampleLength = resampleControl.resampler(getBufferSamples()); - var resampledResult = resampleControl.outputBuffer; - for (var index2 = 0; index2 < resampleLength; ++index2) { - resampled[resampleBufferEnd++] = resampledResult[index2]; - if (resampleBufferEnd == resampleBufferSize) { - resampleBufferEnd = 0; - } - if (resampleBufferStart == resampleBufferEnd) { - ++resampleBufferStart; - if (resampleBufferStart == resampleBufferSize) { - resampleBufferStart = 0; - } - } - } - audioBufferSize = 0; - } -} -function resampledSamplesLeft() { - return ((resampleBufferStart <= resampleBufferEnd) ? 0 : resampleBufferSize) + resampleBufferEnd - resampleBufferStart; -} -function getBufferSamples() { - //Typed array and normal array buffer section referencing: - try { - return audioContextSampleBuffer.subarray(0, audioBufferSize); - } - catch (error) { - try { - //Regular array pass: - audioContextSampleBuffer.length = audioBufferSize; - return audioContextSampleBuffer; - } - catch (error) { - //Nightly Firefox 4 used to have the subarray function named as slice: - return audioContextSampleBuffer.slice(0, audioBufferSize); - } - } -} -//Initialize WebKit Audio /Flash Audio Buffer: -function resetCallbackAPIAudioBuffer(APISampleRate, bufferAlloc) { - audioContextSampleBuffer = getFloat32(webAudioMaxBufferSize); - audioBufferSize = webAudioMaxBufferSize; - resampleBufferStart = 0; - resampleBufferEnd = 0; - resampleBufferSize = Math.max(webAudioMaxBufferSize * Math.ceil(XAudioJSSampleRate / APISampleRate), samplesPerCallback) << 1; - if (webAudioMono) { - //MONO Handling: - resampled = getFloat32Flat(resampleBufferSize); - resampleControl = new Resampler(XAudioJSSampleRate, APISampleRate, 1, resampleBufferSize, true); - outputConvert = generateFlashMonoString; - } - else { - //STEREO Handling: - resampleBufferSize <<= 1; - resampled = getFloat32Flat(resampleBufferSize); - resampleControl = new Resampler(XAudioJSSampleRate, APISampleRate, 2, resampleBufferSize, true); - outputConvert = generateFlashStereoString; - } -} -//Initialize WebKit Audio: -(function () { - if (!launchedContext) { - try { - // The following line was modified for benchmarking: - audioContextHandle = new GameBoyAudioContext(); //Create a system audio context. - } - catch (error) { - try { - audioContextHandle = new AudioContext(); //Create a system audio context. - } - catch (error) { - return; - } - } - try { - audioSource = audioContextHandle.createBufferSource(); //We need to create a false input to get the chain started. - audioSource.loop = false; //Keep this alive forever (Event handler will know when to ouput.) - XAudioJSSampleRate = webAudioActualSampleRate = audioContextHandle.sampleRate; - audioSource.buffer = audioContextHandle.createBuffer(1, 1, webAudioActualSampleRate); //Create a zero'd input buffer for the input to be valid. - audioNode = audioContextHandle.createJavaScriptNode(samplesPerCallback, 1, 2); //Create 2 outputs and ignore the input buffer (Just copy buffer 1 over if mono) - audioNode.onaudioprocess = audioOutputEvent; //Connect the audio processing event to a handling function so we can manipulate output - audioSource.connect(audioNode); //Send and chain the input to the audio manipulation. - audioNode.connect(audioContextHandle.destination); //Send and chain the output of the audio manipulation to the system audio output. - audioSource.noteOn(0); //Start the loop! - } - catch (error) { - return; - } - launchedContext = true; - } -})(); - -// End of js/other/XAudioServer.js file. - -// Start of js/other/resize.js file. - -//JavaScript Image Resizer (c) 2012 - Grant Galitz -function Resize(widthOriginal, heightOriginal, targetWidth, targetHeight, blendAlpha, interpolationPass) { - this.widthOriginal = Math.abs(parseInt(widthOriginal) || 0); - this.heightOriginal = Math.abs(parseInt(heightOriginal) || 0); - this.targetWidth = Math.abs(parseInt(targetWidth) || 0); - this.targetHeight = Math.abs(parseInt(targetHeight) || 0); - this.colorChannels = (!!blendAlpha) ? 4 : 3; - this.interpolationPass = !!interpolationPass; - this.targetWidthMultipliedByChannels = this.targetWidth * this.colorChannels; - this.originalWidthMultipliedByChannels = this.widthOriginal * this.colorChannels; - this.originalHeightMultipliedByChannels = this.heightOriginal * this.colorChannels; - this.widthPassResultSize = this.targetWidthMultipliedByChannels * this.heightOriginal; - this.finalResultSize = this.targetWidthMultipliedByChannels * this.targetHeight; - this.initialize(); -} -Resize.prototype.initialize = function () { - //Perform some checks: - if (this.widthOriginal > 0 && this.heightOriginal > 0 && this.targetWidth > 0 && this.targetHeight > 0) { - if (this.widthOriginal == this.targetWidth) { - //Bypass the width resizer pass: - this.resizeWidth = this.bypassResizer; - } - else { - //Setup the width resizer pass: - this.ratioWeightWidthPass = this.widthOriginal / this.targetWidth; - if (this.ratioWeightWidthPass < 1 && this.interpolationPass) { - this.initializeFirstPassBuffers(true); - this.resizeWidth = (this.colorChannels == 4) ? this.resizeWidthInterpolatedRGBA : this.resizeWidthInterpolatedRGB; - } - else { - this.initializeFirstPassBuffers(false); - this.resizeWidth = (this.colorChannels == 4) ? this.resizeWidthRGBA : this.resizeWidthRGB; - } - } - if (this.heightOriginal == this.targetHeight) { - //Bypass the height resizer pass: - this.resizeHeight = this.bypassResizer; - } - else { - //Setup the height resizer pass: - this.ratioWeightHeightPass = this.heightOriginal / this.targetHeight; - if (this.ratioWeightHeightPass < 1 && this.interpolationPass) { - this.initializeSecondPassBuffers(true); - this.resizeHeight = this.resizeHeightInterpolated; - } - else { - this.initializeSecondPassBuffers(false); - this.resizeHeight = (this.colorChannels == 4) ? this.resizeHeightRGBA : this.resizeHeightRGB; - } - } - } - else { - throw(new Error("Invalid settings specified for the resizer.")); - } -} -Resize.prototype.resizeWidthRGB = function (buffer) { - var ratioWeight = this.ratioWeightWidthPass; - var weight = 0; - var amountToNext = 0; - var actualPosition = 0; - var currentPosition = 0; - var line = 0; - var pixelOffset = 0; - var outputOffset = 0; - var nextLineOffsetOriginalWidth = this.originalWidthMultipliedByChannels - 2; - var nextLineOffsetTargetWidth = this.targetWidthMultipliedByChannels - 2; - var output = this.outputWidthWorkBench; - var outputBuffer = this.widthBuffer; - do { - for (line = 0; line < this.originalHeightMultipliedByChannels;) { - output[line++] = 0; - output[line++] = 0; - output[line++] = 0; - } - weight = ratioWeight; - do { - amountToNext = 1 + actualPosition - currentPosition; - if (weight >= amountToNext) { - for (line = 0, pixelOffset = actualPosition; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetOriginalWidth) { - output[line++] += buffer[pixelOffset++] * amountToNext; - output[line++] += buffer[pixelOffset++] * amountToNext; - output[line++] += buffer[pixelOffset] * amountToNext; - } - currentPosition = actualPosition = actualPosition + 3; - weight -= amountToNext; - } - else { - for (line = 0, pixelOffset = actualPosition; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetOriginalWidth) { - output[line++] += buffer[pixelOffset++] * weight; - output[line++] += buffer[pixelOffset++] * weight; - output[line++] += buffer[pixelOffset] * weight; - } - currentPosition += weight; - break; - } - } while (weight > 0 && actualPosition < this.originalWidthMultipliedByChannels); - for (line = 0, pixelOffset = outputOffset; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetTargetWidth) { - outputBuffer[pixelOffset++] = output[line++] / ratioWeight; - outputBuffer[pixelOffset++] = output[line++] / ratioWeight; - outputBuffer[pixelOffset] = output[line++] / ratioWeight; - } - outputOffset += 3; - } while (outputOffset < this.targetWidthMultipliedByChannels); - return outputBuffer; -} -Resize.prototype.resizeWidthInterpolatedRGB = function (buffer) { - var ratioWeight = (this.widthOriginal - 1) / this.targetWidth; - var weight = 0; - var finalOffset = 0; - var pixelOffset = 0; - var outputBuffer = this.widthBuffer; - for (var targetPosition = 0; targetPosition < this.targetWidthMultipliedByChannels; targetPosition += 3, weight += ratioWeight) { - //Calculate weightings: - secondWeight = weight % 1; - firstWeight = 1 - secondWeight; - //Interpolate: - for (finalOffset = targetPosition, pixelOffset = Math.floor(weight) * 3; finalOffset < this.widthPassResultSize; pixelOffset += this.originalWidthMultipliedByChannels, finalOffset += this.targetWidthMultipliedByChannels) { - outputBuffer[finalOffset] = (buffer[pixelOffset] * firstWeight) + (buffer[pixelOffset + 3] * secondWeight); - outputBuffer[finalOffset + 1] = (buffer[pixelOffset + 1] * firstWeight) + (buffer[pixelOffset + 4] * secondWeight); - outputBuffer[finalOffset + 2] = (buffer[pixelOffset + 2] * firstWeight) + (buffer[pixelOffset + 5] * secondWeight); - } - } - return outputBuffer; -} -Resize.prototype.resizeWidthRGBA = function (buffer) { - var ratioWeight = this.ratioWeightWidthPass; - var weight = 0; - var amountToNext = 0; - var actualPosition = 0; - var currentPosition = 0; - var line = 0; - var pixelOffset = 0; - var outputOffset = 0; - var nextLineOffsetOriginalWidth = this.originalWidthMultipliedByChannels - 3; - var nextLineOffsetTargetWidth = this.targetWidthMultipliedByChannels - 3; - var output = this.outputWidthWorkBench; - var outputBuffer = this.widthBuffer; - do { - for (line = 0; line < this.originalHeightMultipliedByChannels;) { - output[line++] = 0; - output[line++] = 0; - output[line++] = 0; - output[line++] = 0; - } - weight = ratioWeight; - do { - amountToNext = 1 + actualPosition - currentPosition; - if (weight >= amountToNext) { - for (line = 0, pixelOffset = actualPosition; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetOriginalWidth) { - output[line++] += buffer[pixelOffset++] * amountToNext; - output[line++] += buffer[pixelOffset++] * amountToNext; - output[line++] += buffer[pixelOffset++] * amountToNext; - output[line++] += buffer[pixelOffset] * amountToNext; - } - currentPosition = actualPosition = actualPosition + 4; - weight -= amountToNext; - } - else { - for (line = 0, pixelOffset = actualPosition; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetOriginalWidth) { - output[line++] += buffer[pixelOffset++] * weight; - output[line++] += buffer[pixelOffset++] * weight; - output[line++] += buffer[pixelOffset++] * weight; - output[line++] += buffer[pixelOffset] * weight; - } - currentPosition += weight; - break; - } - } while (weight > 0 && actualPosition < this.originalWidthMultipliedByChannels); - for (line = 0, pixelOffset = outputOffset; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetTargetWidth) { - outputBuffer[pixelOffset++] = output[line++] / ratioWeight; - outputBuffer[pixelOffset++] = output[line++] / ratioWeight; - outputBuffer[pixelOffset++] = output[line++] / ratioWeight; - outputBuffer[pixelOffset] = output[line++] / ratioWeight; - } - outputOffset += 4; - } while (outputOffset < this.targetWidthMultipliedByChannels); - return outputBuffer; -} -Resize.prototype.resizeWidthInterpolatedRGBA = function (buffer) { - var ratioWeight = (this.widthOriginal - 1) / this.targetWidth; - var weight = 0; - var finalOffset = 0; - var pixelOffset = 0; - var outputBuffer = this.widthBuffer; - for (var targetPosition = 0; targetPosition < this.targetWidthMultipliedByChannels; targetPosition += 4, weight += ratioWeight) { - //Calculate weightings: - secondWeight = weight % 1; - firstWeight = 1 - secondWeight; - //Interpolate: - for (finalOffset = targetPosition, pixelOffset = Math.floor(weight) * 4; finalOffset < this.widthPassResultSize; pixelOffset += this.originalWidthMultipliedByChannels, finalOffset += this.targetWidthMultipliedByChannels) { - outputBuffer[finalOffset] = (buffer[pixelOffset] * firstWeight) + (buffer[pixelOffset + 4] * secondWeight); - outputBuffer[finalOffset + 1] = (buffer[pixelOffset + 1] * firstWeight) + (buffer[pixelOffset + 5] * secondWeight); - outputBuffer[finalOffset + 2] = (buffer[pixelOffset + 2] * firstWeight) + (buffer[pixelOffset + 6] * secondWeight); - outputBuffer[finalOffset + 3] = (buffer[pixelOffset + 3] * firstWeight) + (buffer[pixelOffset + 7] * secondWeight); - } - } - return outputBuffer; -} -Resize.prototype.resizeHeightRGB = function (buffer) { - var ratioWeight = this.ratioWeightHeightPass; - var weight = 0; - var amountToNext = 0; - var actualPosition = 0; - var currentPosition = 0; - var pixelOffset = 0; - var outputOffset = 0; - var output = this.outputHeightWorkBench; - var outputBuffer = this.heightBuffer; - do { - for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) { - output[pixelOffset++] = 0; - output[pixelOffset++] = 0; - output[pixelOffset++] = 0; - } - weight = ratioWeight; - do { - amountToNext = 1 + actualPosition - currentPosition; - if (weight >= amountToNext) { - for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) { - output[pixelOffset++] += buffer[actualPosition++] * amountToNext; - output[pixelOffset++] += buffer[actualPosition++] * amountToNext; - output[pixelOffset++] += buffer[actualPosition++] * amountToNext; - } - currentPosition = actualPosition; - weight -= amountToNext; - } - else { - for (pixelOffset = 0, amountToNext = actualPosition; pixelOffset < this.targetWidthMultipliedByChannels;) { - output[pixelOffset++] += buffer[amountToNext++] * weight; - output[pixelOffset++] += buffer[amountToNext++] * weight; - output[pixelOffset++] += buffer[amountToNext++] * weight; - } - currentPosition += weight; - break; - } - } while (weight > 0 && actualPosition < this.widthPassResultSize); - for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) { - outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight); - outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight); - outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight); - } - } while (outputOffset < this.finalResultSize); - return outputBuffer; -} -Resize.prototype.resizeHeightInterpolated = function (buffer) { - var ratioWeight = (this.heightOriginal - 1) / this.targetHeight; - var weight = 0; - var finalOffset = 0; - var pixelOffset = 0; - var pixelOffsetAccumulated = 0; - var pixelOffsetAccumulated2 = 0; - var outputBuffer = this.heightBuffer; - do { - //Calculate weightings: - secondWeight = weight % 1; - firstWeight = 1 - secondWeight; - //Interpolate: - pixelOffsetAccumulated = Math.floor(weight) * this.targetWidthMultipliedByChannels; - pixelOffsetAccumulated2 = pixelOffsetAccumulated + this.targetWidthMultipliedByChannels; - for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels; ++pixelOffset) { - outputBuffer[finalOffset++] = (buffer[pixelOffsetAccumulated + pixelOffset] * firstWeight) + (buffer[pixelOffsetAccumulated2 + pixelOffset] * secondWeight); - } - weight += ratioWeight; - } while (finalOffset < this.finalResultSize); - return outputBuffer; -} -Resize.prototype.resizeHeightRGBA = function (buffer) { - var ratioWeight = this.ratioWeightHeightPass; - var weight = 0; - var amountToNext = 0; - var actualPosition = 0; - var currentPosition = 0; - var pixelOffset = 0; - var outputOffset = 0; - var output = this.outputHeightWorkBench; - var outputBuffer = this.heightBuffer; - do { - for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) { - output[pixelOffset++] = 0; - output[pixelOffset++] = 0; - output[pixelOffset++] = 0; - output[pixelOffset++] = 0; - } - weight = ratioWeight; - do { - amountToNext = 1 + actualPosition - currentPosition; - if (weight >= amountToNext) { - for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) { - output[pixelOffset++] += buffer[actualPosition++] * amountToNext; - output[pixelOffset++] += buffer[actualPosition++] * amountToNext; - output[pixelOffset++] += buffer[actualPosition++] * amountToNext; - output[pixelOffset++] += buffer[actualPosition++] * amountToNext; - } - currentPosition = actualPosition; - weight -= amountToNext; - } - else { - for (pixelOffset = 0, amountToNext = actualPosition; pixelOffset < this.targetWidthMultipliedByChannels;) { - output[pixelOffset++] += buffer[amountToNext++] * weight; - output[pixelOffset++] += buffer[amountToNext++] * weight; - output[pixelOffset++] += buffer[amountToNext++] * weight; - output[pixelOffset++] += buffer[amountToNext++] * weight; - } - currentPosition += weight; - break; - } - } while (weight > 0 && actualPosition < this.widthPassResultSize); - for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) { - outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight); - outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight); - outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight); - outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] / ratioWeight); - } - } while (outputOffset < this.finalResultSize); - return outputBuffer; -} -Resize.prototype.resizeHeightInterpolatedRGBA = function (buffer) { - var ratioWeight = (this.heightOriginal - 1) / this.targetHeight; - var weight = 0; - var finalOffset = 0; - var pixelOffset = 0; - var outputBuffer = this.heightBuffer; - while (pixelOffset < this.finalResultSize) { - //Calculate weightings: - secondWeight = weight % 1; - firstWeight = 1 - secondWeight; - //Interpolate: - for (pixelOffset = Math.floor(weight) * 4; pixelOffset < this.targetWidthMultipliedByChannels; pixelOffset += 4) { - outputBuffer[finalOffset++] = (buffer[pixelOffset] * firstWeight) + (buffer[pixelOffset + 4] * secondWeight); - outputBuffer[finalOffset++] = (buffer[pixelOffset + 1] * firstWeight) + (buffer[pixelOffset + 5] * secondWeight); - outputBuffer[finalOffset++] = (buffer[pixelOffset + 2] * firstWeight) + (buffer[pixelOffset + 6] * secondWeight); - outputBuffer[finalOffset++] = (buffer[pixelOffset + 3] * firstWeight) + (buffer[pixelOffset + 7] * secondWeight); - } - weight += ratioWeight; - } - return outputBuffer; -} -Resize.prototype.resize = function (buffer) { - return this.resizeHeight(this.resizeWidth(buffer)); -} -Resize.prototype.bypassResizer = function (buffer) { - //Just return the buffer passsed: - return buffer; -} -Resize.prototype.initializeFirstPassBuffers = function (BILINEARAlgo) { - //Initialize the internal width pass buffers: - this.widthBuffer = this.generateFloatBuffer(this.widthPassResultSize); - if (!BILINEARAlgo) { - this.outputWidthWorkBench = this.generateFloatBuffer(this.originalHeightMultipliedByChannels); - } -} -Resize.prototype.initializeSecondPassBuffers = function (BILINEARAlgo) { - //Initialize the internal height pass buffers: - this.heightBuffer = this.generateUint8Buffer(this.finalResultSize); - if (!BILINEARAlgo) { - this.outputHeightWorkBench = this.generateFloatBuffer(this.targetWidthMultipliedByChannels); - } -} -Resize.prototype.generateFloatBuffer = function (bufferLength) { - //Generate a float32 typed array buffer: - try { - return new Float32Array(bufferLength); - } - catch (error) { - return []; - } -} -Resize.prototype.generateUint8Buffer = function (bufferLength) { - //Generate a uint8 typed array buffer: - try { - return this.checkForOperaMathBug(new Uint8Array(bufferLength)); - } - catch (error) { - return []; - } -} -Resize.prototype.checkForOperaMathBug = function (typedArray) { - typedArray[0] = -1; - typedArray[0] >>= 0; - if (typedArray[0] != 0xFF) { - return []; - } - else { - return typedArray; - } -} - -// End of js/other/resize.js file. - -// Remaining files are in gbemu-part2.js, since they run in strict mode. - diff --git a/build/pgo/js-input/octane/gbemu-part2.js b/build/pgo/js-input/octane/gbemu-part2.js deleted file mode 100644 index b4c9a8d19da7..000000000000 --- a/build/pgo/js-input/octane/gbemu-part2.js +++ /dev/null @@ -1,9780 +0,0 @@ -// Portions copyright 2013 Google, Inc - -// Copyright (C) 2010 - 2012 Grant Galitz -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License version 2 as -// published by the Free Software Foundation. -// The full license is available at http://www.gnu.org/licenses/gpl.html -// This program is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. - -// The code has been adapted for use as a benchmark by Google. - -// Previous files are in gbemu-part1.js, since they need to run in sloppy mode. - -// Start of js/GameBoyCore.js file. - -"use strict"; -/* - * JavaScript GameBoy Color Emulator - * Copyright (C) 2010 - 2012 Grant Galitz - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * version 2 as published by the Free Software Foundation. - * The full license is available at http://www.gnu.org/licenses/gpl.html - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ -function GameBoyCore(canvas, ROMImage) { - //Params, etc... - this.canvas = canvas; //Canvas DOM object for drawing out the graphics to. - this.drawContext = null; // LCD Context - this.ROMImage = ROMImage; //The game's ROM. - //CPU Registers and Flags: - this.registerA = 0x01; //Register A (Accumulator) - this.FZero = true; //Register F - Result was zero - this.FSubtract = false; //Register F - Subtraction was executed - this.FHalfCarry = true; //Register F - Half carry or half borrow - this.FCarry = true; //Register F - Carry or borrow - this.registerB = 0x00; //Register B - this.registerC = 0x13; //Register C - this.registerD = 0x00; //Register D - this.registerE = 0xD8; //Register E - this.registersHL = 0x014D; //Registers H and L combined - this.stackPointer = 0xFFFE; //Stack Pointer - this.programCounter = 0x0100; //Program Counter - //Some CPU Emulation State Variables: - this.CPUCyclesTotal = 0; //Relative CPU clocking to speed set, rounded appropriately. - this.CPUCyclesTotalBase = 0; //Relative CPU clocking to speed set base. - this.CPUCyclesTotalCurrent = 0; //Relative CPU clocking to speed set, the directly used value. - this.CPUCyclesTotalRoundoff = 0; //Clocking per iteration rounding catch. - this.baseCPUCyclesPerIteration = 0; //CPU clocks per iteration at 1x speed. - this.remainingClocks = 0; //HALT clocking overrun carry over. - this.inBootstrap = true; //Whether we're in the GBC boot ROM. - this.usedBootROM = false; //Updated upon ROM loading... - this.usedGBCBootROM = false; //Did we boot to the GBC boot ROM? - this.halt = false; //Has the CPU been suspended until the next interrupt? - this.skipPCIncrement = false; //Did we trip the DMG Halt bug? - this.stopEmulator = 3; //Has the emulation been paused or a frame has ended? - this.IME = true; //Are interrupts enabled? - this.IRQLineMatched = 0; //CPU IRQ assertion. - this.interruptsRequested = 0; //IF Register - this.interruptsEnabled = 0; //IE Register - this.hdmaRunning = false; //HDMA Transfer Flag - GBC only - this.CPUTicks = 0; //The number of clock cycles emulated. - this.doubleSpeedShifter = 0; //GBC double speed clocking shifter. - this.JoyPad = 0xFF; //Joypad State (two four-bit states actually) - this.CPUStopped = false; //CPU STOP status. - //Main RAM, MBC RAM, GBC Main RAM, VRAM, etc. - this.memoryReader = []; //Array of functions mapped to read back memory - this.memoryWriter = []; //Array of functions mapped to write to memory - this.memoryHighReader = []; //Array of functions mapped to read back 0xFFXX memory - this.memoryHighWriter = []; //Array of functions mapped to write to 0xFFXX memory - this.ROM = []; //The full ROM file dumped to an array. - this.memory = []; //Main Core Memory - this.MBCRam = []; //Switchable RAM (Used by games for more RAM) for the main memory range 0xA000 - 0xC000. - this.VRAM = []; //Extra VRAM bank for GBC. - this.GBCMemory = []; //GBC main RAM Banks - this.MBC1Mode = false; //MBC1 Type (4/32, 16/8) - this.MBCRAMBanksEnabled = false; //MBC RAM Access Control. - this.currMBCRAMBank = 0; //MBC Currently Indexed RAM Bank - this.currMBCRAMBankPosition = -0xA000; //MBC Position Adder; - this.cGBC = false; //GameBoy Color detection. - this.gbcRamBank = 1; //Currently Switched GameBoy Color ram bank - this.gbcRamBankPosition = -0xD000; //GBC RAM offset from address start. - this.gbcRamBankPositionECHO = -0xF000; //GBC RAM (ECHO mirroring) offset from address start. - this.RAMBanks = [0, 1, 2, 4, 16]; //Used to map the RAM banks to maximum size the MBC used can do. - this.ROMBank1offs = 0; //Offset of the ROM bank switching. - this.currentROMBank = 0; //The parsed current ROM bank selection. - this.cartridgeType = 0; //Cartridge Type - this.name = ""; //Name of the game - this.gameCode = ""; //Game code (Suffix for older games) - this.fromSaveState = false; //A boolean to see if this was loaded in as a save state. - this.savedStateFileName = ""; //When loaded in as a save state, this will not be empty. - this.STATTracker = 0; //Tracker for STAT triggering. - this.modeSTAT = 0; //The scan line mode (for lines 1-144 it's 2-3-0, for 145-154 it's 1) - this.spriteCount = 252; //Mode 3 extra clocking counter (Depends on how many sprites are on the current line.). - this.LYCMatchTriggerSTAT = false; //Should we trigger an interrupt if LY==LYC? - this.mode2TriggerSTAT = false; //Should we trigger an interrupt if in mode 2? - this.mode1TriggerSTAT = false; //Should we trigger an interrupt if in mode 1? - this.mode0TriggerSTAT = false; //Should we trigger an interrupt if in mode 0? - this.LCDisOn = false; //Is the emulated LCD controller on? - this.LINECONTROL = []; //Array of functions to handle each scan line we do (onscreen + offscreen) - this.DISPLAYOFFCONTROL = [function (parentObj) { - //Array of line 0 function to handle the LCD controller when it's off (Do nothing!). - }]; - this.LCDCONTROL = null; //Pointer to either LINECONTROL or DISPLAYOFFCONTROL. - this.initializeLCDController(); //Compile the LCD controller functions. - //RTC (Real Time Clock for MBC3): - this.RTCisLatched = false; - this.latchedSeconds = 0; //RTC latched seconds. - this.latchedMinutes = 0; //RTC latched minutes. - this.latchedHours = 0; //RTC latched hours. - this.latchedLDays = 0; //RTC latched lower 8-bits of the day counter. - this.latchedHDays = 0; //RTC latched high-bit of the day counter. - this.RTCSeconds = 0; //RTC seconds counter. - this.RTCMinutes = 0; //RTC minutes counter. - this.RTCHours = 0; //RTC hours counter. - this.RTCDays = 0; //RTC days counter. - this.RTCDayOverFlow = false; //Did the RTC overflow and wrap the day counter? - this.RTCHALT = false; //Is the RTC allowed to clock up? - //Gyro: - this.highX = 127; - this.lowX = 127; - this.highY = 127; - this.lowY = 127; - //Sound variables: - this.audioHandle = null; //XAudioJS handle - this.numSamplesTotal = 0; //Length of the sound buffers. - this.sampleSize = 0; //Length of the sound buffer for one channel. - this.dutyLookup = [ //Map the duty values given to ones we can work with. - [false, false, false, false, false, false, false, true], - [true, false, false, false, false, false, false, true], - [true, false, false, false, false, true, true, true], - [false, true, true, true, true, true, true, false] - ]; - this.currentBuffer = []; //The audio buffer we're working on. - this.bufferContainAmount = 0; //Buffer maintenance metric. - this.LSFR15Table = null; - this.LSFR7Table = null; - this.noiseSampleTable = null; - this.initializeAudioStartState(); - this.soundMasterEnabled = false; //As its name implies - this.channel3PCM = null; //Channel 3 adjusted sample buffer. - //Vin Shit: - this.VinLeftChannelMasterVolume = 8; //Computed post-mixing volume. - this.VinRightChannelMasterVolume = 8; //Computed post-mixing volume. - //Channel paths enabled: - this.leftChannel1 = false; - this.leftChannel2 = false; - this.leftChannel3 = false; - this.leftChannel4 = false; - this.rightChannel1 = false; - this.rightChannel2 = false; - this.rightChannel3 = false; - this.rightChannel4 = false; - //Channel output level caches: - this.channel1currentSampleLeft = 0; - this.channel1currentSampleRight = 0; - this.channel2currentSampleLeft = 0; - this.channel2currentSampleRight = 0; - this.channel3currentSampleLeft = 0; - this.channel3currentSampleRight = 0; - this.channel4currentSampleLeft = 0; - this.channel4currentSampleRight = 0; - this.channel1currentSampleLeftSecondary = 0; - this.channel1currentSampleRightSecondary = 0; - this.channel2currentSampleLeftSecondary = 0; - this.channel2currentSampleRightSecondary = 0; - this.channel3currentSampleLeftSecondary = 0; - this.channel3currentSampleRightSecondary = 0; - this.channel4currentSampleLeftSecondary = 0; - this.channel4currentSampleRightSecondary = 0; - this.channel1currentSampleLeftTrimary = 0; - this.channel1currentSampleRightTrimary = 0; - this.channel2currentSampleLeftTrimary = 0; - this.channel2currentSampleRightTrimary = 0; - this.mixerOutputCache = 0; - //Pre-multipliers to cache some calculations: - this.initializeTiming(); - this.machineOut = 0; //Premultiplier for audio samples per instruction. - //Audio generation counters: - this.audioTicks = 0; //Used to sample the audio system every x CPU instructions. - this.audioIndex = 0; //Used to keep alignment on audio generation. - this.rollover = 0; //Used to keep alignment on the number of samples to output (Realign from counter alias). - //Timing Variables - this.emulatorTicks = 0; //Times for how many instructions to execute before ending the loop. - this.DIVTicks = 56; //DIV Ticks Counter (Invisible lower 8-bit) - this.LCDTicks = 60; //Counter for how many instructions have been executed on a scanline so far. - this.timerTicks = 0; //Counter for the TIMA timer. - this.TIMAEnabled = false; //Is TIMA enabled? - this.TACClocker = 1024; //Timer Max Ticks - this.serialTimer = 0; //Serial IRQ Timer - this.serialShiftTimer = 0; //Serial Transfer Shift Timer - this.serialShiftTimerAllocated = 0; //Serial Transfer Shift Timer Refill - this.IRQEnableDelay = 0; //Are the interrupts on queue to be enabled? - var dateVar = new_Date(); // The line is changed for benchmarking. - this.lastIteration = dateVar.getTime();//The last time we iterated the main loop. - dateVar = new_Date(); // The line is changed for benchmarking. - this.firstIteration = dateVar.getTime(); - this.iterations = 0; - this.actualScanLine = 0; //Actual scan line... - this.lastUnrenderedLine = 0; //Last rendered scan line... - this.queuedScanLines = 0; - this.totalLinesPassed = 0; - this.haltPostClocks = 0; //Post-Halt clocking. - //ROM Cartridge Components: - this.cMBC1 = false; //Does the cartridge use MBC1? - this.cMBC2 = false; //Does the cartridge use MBC2? - this.cMBC3 = false; //Does the cartridge use MBC3? - this.cMBC5 = false; //Does the cartridge use MBC5? - this.cMBC7 = false; //Does the cartridge use MBC7? - this.cSRAM = false; //Does the cartridge use save RAM? - this.cMMMO1 = false; //... - this.cRUMBLE = false; //Does the cartridge use the RUMBLE addressing (modified MBC5)? - this.cCamera = false; //Is the cartridge actually a GameBoy Camera? - this.cTAMA5 = false; //Does the cartridge use TAMA5? (Tamagotchi Cartridge) - this.cHuC3 = false; //Does the cartridge use HuC3 (Hudson Soft / modified MBC3)? - this.cHuC1 = false; //Does the cartridge use HuC1 (Hudson Soft / modified MBC1)? - this.cTIMER = false; //Does the cartridge have an RTC? - this.ROMBanks = [ // 1 Bank = 16 KBytes = 256 Kbits - 2, 4, 8, 16, 32, 64, 128, 256, 512 - ]; - this.ROMBanks[0x52] = 72; - this.ROMBanks[0x53] = 80; - this.ROMBanks[0x54] = 96; - this.numRAMBanks = 0; //How many RAM banks were actually allocated? - ////Graphics Variables - this.currVRAMBank = 0; //Current VRAM bank for GBC. - this.backgroundX = 0; //Register SCX (X-Scroll) - this.backgroundY = 0; //Register SCY (Y-Scroll) - this.gfxWindowDisplay = false; //Is the windows enabled? - this.gfxSpriteShow = false; //Are sprites enabled? - this.gfxSpriteNormalHeight = true; //Are we doing 8x8 or 8x16 sprites? - this.bgEnabled = true; //Is the BG enabled? - this.BGPriorityEnabled = true; //Can we flag the BG for priority over sprites? - this.gfxWindowCHRBankPosition = 0; //The current bank of the character map the window uses. - this.gfxBackgroundCHRBankPosition = 0; //The current bank of the character map the BG uses. - this.gfxBackgroundBankOffset = 0x80; //Fast mapping of the tile numbering/ - this.windowY = 0; //Current Y offset of the window. - this.windowX = 0; //Current X offset of the window. - this.drewBlank = 0; //To prevent the repeating of drawing a blank screen. - this.drewFrame = false; //Throttle how many draws we can do to once per iteration. - this.midScanlineOffset = -1; //mid-scanline rendering offset. - this.pixelEnd = 0; //track the x-coord limit for line rendering (mid-scanline usage). - this.currentX = 0; //The x-coord we left off at for mid-scanline rendering. - //BG Tile Pointer Caches: - this.BGCHRBank1 = null; - this.BGCHRBank2 = null; - this.BGCHRCurrentBank = null; - //Tile Data Cache: - this.tileCache = null; - //Palettes: - this.colors = [0xEFFFDE, 0xADD794, 0x529273, 0x183442]; //"Classic" GameBoy palette colors. - this.OBJPalette = null; - this.BGPalette = null; - this.gbcOBJRawPalette = null; - this.gbcBGRawPalette = null; - this.gbOBJPalette = null; - this.gbBGPalette = null; - this.gbcOBJPalette = null; - this.gbcBGPalette = null; - this.gbBGColorizedPalette = null; - this.gbOBJColorizedPalette = null; - this.cachedBGPaletteConversion = null; - this.cachedOBJPaletteConversion = null; - this.updateGBBGPalette = this.updateGBRegularBGPalette; - this.updateGBOBJPalette = this.updateGBRegularOBJPalette; - this.colorizedGBPalettes = false; - this.BGLayerRender = null; //Reference to the BG rendering function. - this.WindowLayerRender = null; //Reference to the window rendering function. - this.SpriteLayerRender = null; //Reference to the OAM rendering function. - this.frameBuffer = []; //The internal frame-buffer. - this.swizzledFrame = null; //The secondary gfx buffer that holds the converted RGBA values. - this.canvasBuffer = null; //imageData handle - this.pixelStart = 0; //Temp variable for holding the current working framebuffer offset. - //Variables used for scaling in JS: - this.onscreenWidth = this.offscreenWidth = 160; - this.onscreenHeight = this.offScreenheight = 144; - this.offscreenRGBCount = this.onscreenWidth * this.onscreenHeight * 4; - //Initialize the white noise cache tables ahead of time: - this.intializeWhiteNoise(); -} - -// Start of code changed for benchmarking (removed ROM): -GameBoyCore.prototype.GBBOOTROM = []; -GameBoyCore.prototype.GBCBOOTROM = []; -// End of code changed for benchmarking. - -GameBoyCore.prototype.ffxxDump = [ //Dump of the post-BOOT I/O register state (From gambatte): - 0x0F, 0x00, 0x7C, 0xFF, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, - 0x80, 0xBF, 0xF3, 0xFF, 0xBF, 0xFF, 0x3F, 0x00, 0xFF, 0xBF, 0x7F, 0xFF, 0x9F, 0xFF, 0xBF, 0xFF, - 0xFF, 0x00, 0x00, 0xBF, 0x77, 0xF3, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, - 0x91, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7E, 0xFF, 0xFE, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xC1, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, - 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xCE, 0xED, 0x66, 0x66, 0xCC, 0x0D, 0x00, 0x0B, 0x03, 0x73, 0x00, 0x83, 0x00, 0x0C, 0x00, 0x0D, - 0x00, 0x08, 0x11, 0x1F, 0x88, 0x89, 0x00, 0x0E, 0xDC, 0xCC, 0x6E, 0xE6, 0xDD, 0xDD, 0xD9, 0x99, - 0xBB, 0xBB, 0x67, 0x63, 0x6E, 0x0E, 0xEC, 0xCC, 0xDD, 0xDC, 0x99, 0x9F, 0xBB, 0xB9, 0x33, 0x3E, - 0x45, 0xEC, 0x52, 0xFA, 0x08, 0xB7, 0x07, 0x5D, 0x01, 0xFD, 0xC0, 0xFF, 0x08, 0xFC, 0x00, 0xE5, - 0x0B, 0xF8, 0xC2, 0xCE, 0xF4, 0xF9, 0x0F, 0x7F, 0x45, 0x6D, 0x3D, 0xFE, 0x46, 0x97, 0x33, 0x5E, - 0x08, 0xEF, 0xF1, 0xFF, 0x86, 0x83, 0x24, 0x74, 0x12, 0xFC, 0x00, 0x9F, 0xB4, 0xB7, 0x06, 0xD5, - 0xD0, 0x7A, 0x00, 0x9E, 0x04, 0x5F, 0x41, 0x2F, 0x1D, 0x77, 0x36, 0x75, 0x81, 0xAA, 0x70, 0x3A, - 0x98, 0xD1, 0x71, 0x02, 0x4D, 0x01, 0xC1, 0xFF, 0x0D, 0x00, 0xD3, 0x05, 0xF9, 0x00, 0x0B, 0x00 -]; -GameBoyCore.prototype.OPCODE = [ - //NOP - //#0x00: - function (parentObj) { - //Do Nothing... - }, - //LD BC, nn - //#0x01: - function (parentObj) { - parentObj.registerC = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.registerB = parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF); - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - }, - //LD (BC), A - //#0x02: - function (parentObj) { - parentObj.memoryWrite((parentObj.registerB << 8) | parentObj.registerC, parentObj.registerA); - }, - //INC BC - //#0x03: - function (parentObj) { - var temp_var = ((parentObj.registerB << 8) | parentObj.registerC) + 1; - parentObj.registerB = (temp_var >> 8) & 0xFF; - parentObj.registerC = temp_var & 0xFF; - }, - //INC B - //#0x04: - function (parentObj) { - parentObj.registerB = (parentObj.registerB + 1) & 0xFF; - parentObj.FZero = (parentObj.registerB == 0); - parentObj.FHalfCarry = ((parentObj.registerB & 0xF) == 0); - parentObj.FSubtract = false; - }, - //DEC B - //#0x05: - function (parentObj) { - parentObj.registerB = (parentObj.registerB - 1) & 0xFF; - parentObj.FZero = (parentObj.registerB == 0); - parentObj.FHalfCarry = ((parentObj.registerB & 0xF) == 0xF); - parentObj.FSubtract = true; - }, - //LD B, n - //#0x06: - function (parentObj) { - parentObj.registerB = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - }, - //RLCA - //#0x07: - function (parentObj) { - parentObj.FCarry = (parentObj.registerA > 0x7F); - parentObj.registerA = ((parentObj.registerA << 1) & 0xFF) | (parentObj.registerA >> 7); - parentObj.FZero = parentObj.FSubtract = parentObj.FHalfCarry = false; - }, - //LD (nn), SP - //#0x08: - function (parentObj) { - var temp_var = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - parentObj.memoryWrite(temp_var, parentObj.stackPointer & 0xFF); - parentObj.memoryWrite((temp_var + 1) & 0xFFFF, parentObj.stackPointer >> 8); - }, - //ADD HL, BC - //#0x09: - function (parentObj) { - var dirtySum = parentObj.registersHL + ((parentObj.registerB << 8) | parentObj.registerC); - parentObj.FHalfCarry = ((parentObj.registersHL & 0xFFF) > (dirtySum & 0xFFF)); - parentObj.FCarry = (dirtySum > 0xFFFF); - parentObj.registersHL = dirtySum & 0xFFFF; - parentObj.FSubtract = false; - }, - //LD A, (BC) - //#0x0A: - function (parentObj) { - parentObj.registerA = parentObj.memoryRead((parentObj.registerB << 8) | parentObj.registerC); - }, - //DEC BC - //#0x0B: - function (parentObj) { - var temp_var = (((parentObj.registerB << 8) | parentObj.registerC) - 1) & 0xFFFF; - parentObj.registerB = temp_var >> 8; - parentObj.registerC = temp_var & 0xFF; - }, - //INC C - //#0x0C: - function (parentObj) { - parentObj.registerC = (parentObj.registerC + 1) & 0xFF; - parentObj.FZero = (parentObj.registerC == 0); - parentObj.FHalfCarry = ((parentObj.registerC & 0xF) == 0); - parentObj.FSubtract = false; - }, - //DEC C - //#0x0D: - function (parentObj) { - parentObj.registerC = (parentObj.registerC - 1) & 0xFF; - parentObj.FZero = (parentObj.registerC == 0); - parentObj.FHalfCarry = ((parentObj.registerC & 0xF) == 0xF); - parentObj.FSubtract = true; - }, - //LD C, n - //#0x0E: - function (parentObj) { - parentObj.registerC = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - }, - //RRCA - //#0x0F: - function (parentObj) { - parentObj.registerA = (parentObj.registerA >> 1) | ((parentObj.registerA & 1) << 7); - parentObj.FCarry = (parentObj.registerA > 0x7F); - parentObj.FZero = parentObj.FSubtract = parentObj.FHalfCarry = false; - }, - //STOP - //#0x10: - function (parentObj) { - if (parentObj.cGBC) { - if ((parentObj.memory[0xFF4D] & 0x01) == 0x01) { //Speed change requested. - if (parentObj.memory[0xFF4D] > 0x7F) { //Go back to single speed mode. - cout("Going into single clock speed mode.", 0); - parentObj.doubleSpeedShifter = 0; - parentObj.memory[0xFF4D] &= 0x7F; //Clear the double speed mode flag. - } - else { //Go to double speed mode. - cout("Going into double clock speed mode.", 0); - parentObj.doubleSpeedShifter = 1; - parentObj.memory[0xFF4D] |= 0x80; //Set the double speed mode flag. - } - parentObj.memory[0xFF4D] &= 0xFE; //Reset the request bit. - } - else { - parentObj.handleSTOP(); - } - } - else { - parentObj.handleSTOP(); - } - }, - //LD DE, nn - //#0x11: - function (parentObj) { - parentObj.registerE = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.registerD = parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF); - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - }, - //LD (DE), A - //#0x12: - function (parentObj) { - parentObj.memoryWrite((parentObj.registerD << 8) | parentObj.registerE, parentObj.registerA); - }, - //INC DE - //#0x13: - function (parentObj) { - var temp_var = ((parentObj.registerD << 8) | parentObj.registerE) + 1; - parentObj.registerD = (temp_var >> 8) & 0xFF; - parentObj.registerE = temp_var & 0xFF; - }, - //INC D - //#0x14: - function (parentObj) { - parentObj.registerD = (parentObj.registerD + 1) & 0xFF; - parentObj.FZero = (parentObj.registerD == 0); - parentObj.FHalfCarry = ((parentObj.registerD & 0xF) == 0); - parentObj.FSubtract = false; - }, - //DEC D - //#0x15: - function (parentObj) { - parentObj.registerD = (parentObj.registerD - 1) & 0xFF; - parentObj.FZero = (parentObj.registerD == 0); - parentObj.FHalfCarry = ((parentObj.registerD & 0xF) == 0xF); - parentObj.FSubtract = true; - }, - //LD D, n - //#0x16: - function (parentObj) { - parentObj.registerD = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - }, - //RLA - //#0x17: - function (parentObj) { - var carry_flag = (parentObj.FCarry) ? 1 : 0; - parentObj.FCarry = (parentObj.registerA > 0x7F); - parentObj.registerA = ((parentObj.registerA << 1) & 0xFF) | carry_flag; - parentObj.FZero = parentObj.FSubtract = parentObj.FHalfCarry = false; - }, - //JR n - //#0x18: - function (parentObj) { - parentObj.programCounter = (parentObj.programCounter + ((parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24) + 1) & 0xFFFF; - }, - //ADD HL, DE - //#0x19: - function (parentObj) { - var dirtySum = parentObj.registersHL + ((parentObj.registerD << 8) | parentObj.registerE); - parentObj.FHalfCarry = ((parentObj.registersHL & 0xFFF) > (dirtySum & 0xFFF)); - parentObj.FCarry = (dirtySum > 0xFFFF); - parentObj.registersHL = dirtySum & 0xFFFF; - parentObj.FSubtract = false; - }, - //LD A, (DE) - //#0x1A: - function (parentObj) { - parentObj.registerA = parentObj.memoryRead((parentObj.registerD << 8) | parentObj.registerE); - }, - //DEC DE - //#0x1B: - function (parentObj) { - var temp_var = (((parentObj.registerD << 8) | parentObj.registerE) - 1) & 0xFFFF; - parentObj.registerD = temp_var >> 8; - parentObj.registerE = temp_var & 0xFF; - }, - //INC E - //#0x1C: - function (parentObj) { - parentObj.registerE = (parentObj.registerE + 1) & 0xFF; - parentObj.FZero = (parentObj.registerE == 0); - parentObj.FHalfCarry = ((parentObj.registerE & 0xF) == 0); - parentObj.FSubtract = false; - }, - //DEC E - //#0x1D: - function (parentObj) { - parentObj.registerE = (parentObj.registerE - 1) & 0xFF; - parentObj.FZero = (parentObj.registerE == 0); - parentObj.FHalfCarry = ((parentObj.registerE & 0xF) == 0xF); - parentObj.FSubtract = true; - }, - //LD E, n - //#0x1E: - function (parentObj) { - parentObj.registerE = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - }, - //RRA - //#0x1F: - function (parentObj) { - var carry_flag = (parentObj.FCarry) ? 0x80 : 0; - parentObj.FCarry = ((parentObj.registerA & 1) == 1); - parentObj.registerA = (parentObj.registerA >> 1) | carry_flag; - parentObj.FZero = parentObj.FSubtract = parentObj.FHalfCarry = false; - }, - //JR NZ, n - //#0x20: - function (parentObj) { - if (!parentObj.FZero) { - parentObj.programCounter = (parentObj.programCounter + ((parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24) + 1) & 0xFFFF; - parentObj.CPUTicks += 4; - } - else { - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - } - }, - //LD HL, nn - //#0x21: - function (parentObj) { - parentObj.registersHL = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - }, - //LDI (HL), A - //#0x22: - function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerA); - parentObj.registersHL = (parentObj.registersHL + 1) & 0xFFFF; - }, - //INC HL - //#0x23: - function (parentObj) { - parentObj.registersHL = (parentObj.registersHL + 1) & 0xFFFF; - }, - //INC H - //#0x24: - function (parentObj) { - var H = ((parentObj.registersHL >> 8) + 1) & 0xFF; - parentObj.FZero = (H == 0); - parentObj.FHalfCarry = ((H & 0xF) == 0); - parentObj.FSubtract = false; - parentObj.registersHL = (H << 8) | (parentObj.registersHL & 0xFF); - }, - //DEC H - //#0x25: - function (parentObj) { - var H = ((parentObj.registersHL >> 8) - 1) & 0xFF; - parentObj.FZero = (H == 0); - parentObj.FHalfCarry = ((H & 0xF) == 0xF); - parentObj.FSubtract = true; - parentObj.registersHL = (H << 8) | (parentObj.registersHL & 0xFF); - }, - //LD H, n - //#0x26: - function (parentObj) { - parentObj.registersHL = (parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 8) | (parentObj.registersHL & 0xFF); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - }, - //DAA - //#0x27: - function (parentObj) { - if (!parentObj.FSubtract) { - if (parentObj.FCarry || parentObj.registerA > 0x99) { - parentObj.registerA = (parentObj.registerA + 0x60) & 0xFF; - parentObj.FCarry = true; - } - if (parentObj.FHalfCarry || (parentObj.registerA & 0xF) > 0x9) { - parentObj.registerA = (parentObj.registerA + 0x06) & 0xFF; - parentObj.FHalfCarry = false; - } - } - else if (parentObj.FCarry && parentObj.FHalfCarry) { - parentObj.registerA = (parentObj.registerA + 0x9A) & 0xFF; - parentObj.FHalfCarry = false; - } - else if (parentObj.FCarry) { - parentObj.registerA = (parentObj.registerA + 0xA0) & 0xFF; - } - else if (parentObj.FHalfCarry) { - parentObj.registerA = (parentObj.registerA + 0xFA) & 0xFF; - parentObj.FHalfCarry = false; - } - parentObj.FZero = (parentObj.registerA == 0); - }, - //JR Z, n - //#0x28: - function (parentObj) { - if (parentObj.FZero) { - parentObj.programCounter = (parentObj.programCounter + ((parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24) + 1) & 0xFFFF; - parentObj.CPUTicks += 4; - } - else { - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - } - }, - //ADD HL, HL - //#0x29: - function (parentObj) { - parentObj.FHalfCarry = ((parentObj.registersHL & 0xFFF) > 0x7FF); - parentObj.FCarry = (parentObj.registersHL > 0x7FFF); - parentObj.registersHL = (parentObj.registersHL << 1) & 0xFFFF; - parentObj.FSubtract = false; - }, - //LDI A, (HL) - //#0x2A: - function (parentObj) { - parentObj.registerA = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - parentObj.registersHL = (parentObj.registersHL + 1) & 0xFFFF; - }, - //DEC HL - //#0x2B: - function (parentObj) { - parentObj.registersHL = (parentObj.registersHL - 1) & 0xFFFF; - }, - //INC L - //#0x2C: - function (parentObj) { - var L = (parentObj.registersHL + 1) & 0xFF; - parentObj.FZero = (L == 0); - parentObj.FHalfCarry = ((L & 0xF) == 0); - parentObj.FSubtract = false; - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | L; - }, - //DEC L - //#0x2D: - function (parentObj) { - var L = (parentObj.registersHL - 1) & 0xFF; - parentObj.FZero = (L == 0); - parentObj.FHalfCarry = ((L & 0xF) == 0xF); - parentObj.FSubtract = true; - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | L; - }, - //LD L, n - //#0x2E: - function (parentObj) { - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - }, - //CPL - //#0x2F: - function (parentObj) { - parentObj.registerA ^= 0xFF; - parentObj.FSubtract = parentObj.FHalfCarry = true; - }, - //JR NC, n - //#0x30: - function (parentObj) { - if (!parentObj.FCarry) { - parentObj.programCounter = (parentObj.programCounter + ((parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24) + 1) & 0xFFFF; - parentObj.CPUTicks += 4; - } - else { - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - } - }, - //LD SP, nn - //#0x31: - function (parentObj) { - parentObj.stackPointer = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - }, - //LDD (HL), A - //#0x32: - function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerA); - parentObj.registersHL = (parentObj.registersHL - 1) & 0xFFFF; - }, - //INC SP - //#0x33: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer + 1) & 0xFFFF; - }, - //INC (HL) - //#0x34: - function (parentObj) { - var temp_var = (parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) + 1) & 0xFF; - parentObj.FZero = (temp_var == 0); - parentObj.FHalfCarry = ((temp_var & 0xF) == 0); - parentObj.FSubtract = false; - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var); - }, - //DEC (HL) - //#0x35: - function (parentObj) { - var temp_var = (parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) - 1) & 0xFF; - parentObj.FZero = (temp_var == 0); - parentObj.FHalfCarry = ((temp_var & 0xF) == 0xF); - parentObj.FSubtract = true; - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var); - }, - //LD (HL), n - //#0x36: - function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter)); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - }, - //SCF - //#0x37: - function (parentObj) { - parentObj.FCarry = true; - parentObj.FSubtract = parentObj.FHalfCarry = false; - }, - //JR C, n - //#0x38: - function (parentObj) { - if (parentObj.FCarry) { - parentObj.programCounter = (parentObj.programCounter + ((parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24) + 1) & 0xFFFF; - parentObj.CPUTicks += 4; - } - else { - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - } - }, - //ADD HL, SP - //#0x39: - function (parentObj) { - var dirtySum = parentObj.registersHL + parentObj.stackPointer; - parentObj.FHalfCarry = ((parentObj.registersHL & 0xFFF) > (dirtySum & 0xFFF)); - parentObj.FCarry = (dirtySum > 0xFFFF); - parentObj.registersHL = dirtySum & 0xFFFF; - parentObj.FSubtract = false; - }, - //LDD A, (HL) - //#0x3A: - function (parentObj) { - parentObj.registerA = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - parentObj.registersHL = (parentObj.registersHL - 1) & 0xFFFF; - }, - //DEC SP - //#0x3B: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - }, - //INC A - //#0x3C: - function (parentObj) { - parentObj.registerA = (parentObj.registerA + 1) & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) == 0); - parentObj.FSubtract = false; - }, - //DEC A - //#0x3D: - function (parentObj) { - parentObj.registerA = (parentObj.registerA - 1) & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) == 0xF); - parentObj.FSubtract = true; - }, - //LD A, n - //#0x3E: - function (parentObj) { - parentObj.registerA = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - }, - //CCF - //#0x3F: - function (parentObj) { - parentObj.FCarry = !parentObj.FCarry; - parentObj.FSubtract = parentObj.FHalfCarry = false; - }, - //LD B, B - //#0x40: - function (parentObj) { - //Do nothing... - }, - //LD B, C - //#0x41: - function (parentObj) { - parentObj.registerB = parentObj.registerC; - }, - //LD B, D - //#0x42: - function (parentObj) { - parentObj.registerB = parentObj.registerD; - }, - //LD B, E - //#0x43: - function (parentObj) { - parentObj.registerB = parentObj.registerE; - }, - //LD B, H - //#0x44: - function (parentObj) { - parentObj.registerB = parentObj.registersHL >> 8; - }, - //LD B, L - //#0x45: - function (parentObj) { - parentObj.registerB = parentObj.registersHL & 0xFF; - }, - //LD B, (HL) - //#0x46: - function (parentObj) { - parentObj.registerB = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - }, - //LD B, A - //#0x47: - function (parentObj) { - parentObj.registerB = parentObj.registerA; - }, - //LD C, B - //#0x48: - function (parentObj) { - parentObj.registerC = parentObj.registerB; - }, - //LD C, C - //#0x49: - function (parentObj) { - //Do nothing... - }, - //LD C, D - //#0x4A: - function (parentObj) { - parentObj.registerC = parentObj.registerD; - }, - //LD C, E - //#0x4B: - function (parentObj) { - parentObj.registerC = parentObj.registerE; - }, - //LD C, H - //#0x4C: - function (parentObj) { - parentObj.registerC = parentObj.registersHL >> 8; - }, - //LD C, L - //#0x4D: - function (parentObj) { - parentObj.registerC = parentObj.registersHL & 0xFF; - }, - //LD C, (HL) - //#0x4E: - function (parentObj) { - parentObj.registerC = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - }, - //LD C, A - //#0x4F: - function (parentObj) { - parentObj.registerC = parentObj.registerA; - }, - //LD D, B - //#0x50: - function (parentObj) { - parentObj.registerD = parentObj.registerB; - }, - //LD D, C - //#0x51: - function (parentObj) { - parentObj.registerD = parentObj.registerC; - }, - //LD D, D - //#0x52: - function (parentObj) { - //Do nothing... - }, - //LD D, E - //#0x53: - function (parentObj) { - parentObj.registerD = parentObj.registerE; - }, - //LD D, H - //#0x54: - function (parentObj) { - parentObj.registerD = parentObj.registersHL >> 8; - }, - //LD D, L - //#0x55: - function (parentObj) { - parentObj.registerD = parentObj.registersHL & 0xFF; - }, - //LD D, (HL) - //#0x56: - function (parentObj) { - parentObj.registerD = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - }, - //LD D, A - //#0x57: - function (parentObj) { - parentObj.registerD = parentObj.registerA; - }, - //LD E, B - //#0x58: - function (parentObj) { - parentObj.registerE = parentObj.registerB; - }, - //LD E, C - //#0x59: - function (parentObj) { - parentObj.registerE = parentObj.registerC; - }, - //LD E, D - //#0x5A: - function (parentObj) { - parentObj.registerE = parentObj.registerD; - }, - //LD E, E - //#0x5B: - function (parentObj) { - //Do nothing... - }, - //LD E, H - //#0x5C: - function (parentObj) { - parentObj.registerE = parentObj.registersHL >> 8; - }, - //LD E, L - //#0x5D: - function (parentObj) { - parentObj.registerE = parentObj.registersHL & 0xFF; - }, - //LD E, (HL) - //#0x5E: - function (parentObj) { - parentObj.registerE = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - }, - //LD E, A - //#0x5F: - function (parentObj) { - parentObj.registerE = parentObj.registerA; - }, - //LD H, B - //#0x60: - function (parentObj) { - parentObj.registersHL = (parentObj.registerB << 8) | (parentObj.registersHL & 0xFF); - }, - //LD H, C - //#0x61: - function (parentObj) { - parentObj.registersHL = (parentObj.registerC << 8) | (parentObj.registersHL & 0xFF); - }, - //LD H, D - //#0x62: - function (parentObj) { - parentObj.registersHL = (parentObj.registerD << 8) | (parentObj.registersHL & 0xFF); - }, - //LD H, E - //#0x63: - function (parentObj) { - parentObj.registersHL = (parentObj.registerE << 8) | (parentObj.registersHL & 0xFF); - }, - //LD H, H - //#0x64: - function (parentObj) { - //Do nothing... - }, - //LD H, L - //#0x65: - function (parentObj) { - parentObj.registersHL = (parentObj.registersHL & 0xFF) * 0x101; - }, - //LD H, (HL) - //#0x66: - function (parentObj) { - parentObj.registersHL = (parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) << 8) | (parentObj.registersHL & 0xFF); - }, - //LD H, A - //#0x67: - function (parentObj) { - parentObj.registersHL = (parentObj.registerA << 8) | (parentObj.registersHL & 0xFF); - }, - //LD L, B - //#0x68: - function (parentObj) { - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.registerB; - }, - //LD L, C - //#0x69: - function (parentObj) { - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.registerC; - }, - //LD L, D - //#0x6A: - function (parentObj) { - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.registerD; - }, - //LD L, E - //#0x6B: - function (parentObj) { - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.registerE; - }, - //LD L, H - //#0x6C: - function (parentObj) { - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | (parentObj.registersHL >> 8); - }, - //LD L, L - //#0x6D: - function (parentObj) { - //Do nothing... - }, - //LD L, (HL) - //#0x6E: - function (parentObj) { - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - }, - //LD L, A - //#0x6F: - function (parentObj) { - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | parentObj.registerA; - }, - //LD (HL), B - //#0x70: - function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerB); - }, - //LD (HL), C - //#0x71: - function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerC); - }, - //LD (HL), D - //#0x72: - function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerD); - }, - //LD (HL), E - //#0x73: - function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerE); - }, - //LD (HL), H - //#0x74: - function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registersHL >> 8); - }, - //LD (HL), L - //#0x75: - function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registersHL & 0xFF); - }, - //HALT - //#0x76: - function (parentObj) { - //See if there's already an IRQ match: - if ((parentObj.interruptsEnabled & parentObj.interruptsRequested & 0x1F) > 0) { - if (!parentObj.cGBC && !parentObj.usedBootROM) { - //HALT bug in the DMG CPU model (Program Counter fails to increment for one instruction after HALT): - parentObj.skipPCIncrement = true; - } - else { - //CGB gets around the HALT PC bug by doubling the hidden NOP. - parentObj.CPUTicks += 4; - } - } - else { - //CPU is stalled until the next IRQ match: - parentObj.calculateHALTPeriod(); - } - }, - //LD (HL), A - //#0x77: - function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.registerA); - }, - //LD A, B - //#0x78: - function (parentObj) { - parentObj.registerA = parentObj.registerB; - }, - //LD A, C - //#0x79: - function (parentObj) { - parentObj.registerA = parentObj.registerC; - }, - //LD A, D - //#0x7A: - function (parentObj) { - parentObj.registerA = parentObj.registerD; - }, - //LD A, E - //#0x7B: - function (parentObj) { - parentObj.registerA = parentObj.registerE; - }, - //LD A, H - //#0x7C: - function (parentObj) { - parentObj.registerA = parentObj.registersHL >> 8; - }, - //LD A, L - //#0x7D: - function (parentObj) { - parentObj.registerA = parentObj.registersHL & 0xFF; - }, - //LD, A, (HL) - //#0x7E: - function (parentObj) { - parentObj.registerA = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - }, - //LD A, A - //#0x7F: - function (parentObj) { - //Do Nothing... - }, - //ADD A, B - //#0x80: - function (parentObj) { - var dirtySum = parentObj.registerA + parentObj.registerB; - parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADD A, C - //#0x81: - function (parentObj) { - var dirtySum = parentObj.registerA + parentObj.registerC; - parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADD A, D - //#0x82: - function (parentObj) { - var dirtySum = parentObj.registerA + parentObj.registerD; - parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADD A, E - //#0x83: - function (parentObj) { - var dirtySum = parentObj.registerA + parentObj.registerE; - parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADD A, H - //#0x84: - function (parentObj) { - var dirtySum = parentObj.registerA + (parentObj.registersHL >> 8); - parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADD A, L - //#0x85: - function (parentObj) { - var dirtySum = parentObj.registerA + (parentObj.registersHL & 0xFF); - parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADD A, (HL) - //#0x86: - function (parentObj) { - var dirtySum = parentObj.registerA + parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADD A, A - //#0x87: - function (parentObj) { - parentObj.FHalfCarry = ((parentObj.registerA & 0x8) == 0x8); - parentObj.FCarry = (parentObj.registerA > 0x7F); - parentObj.registerA = (parentObj.registerA << 1) & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADC A, B - //#0x88: - function (parentObj) { - var dirtySum = parentObj.registerA + parentObj.registerB + ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (parentObj.registerB & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADC A, C - //#0x89: - function (parentObj) { - var dirtySum = parentObj.registerA + parentObj.registerC + ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (parentObj.registerC & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADC A, D - //#0x8A: - function (parentObj) { - var dirtySum = parentObj.registerA + parentObj.registerD + ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (parentObj.registerD & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADC A, E - //#0x8B: - function (parentObj) { - var dirtySum = parentObj.registerA + parentObj.registerE + ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (parentObj.registerE & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADC A, H - //#0x8C: - function (parentObj) { - var tempValue = (parentObj.registersHL >> 8); - var dirtySum = parentObj.registerA + tempValue + ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (tempValue & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADC A, L - //#0x8D: - function (parentObj) { - var tempValue = (parentObj.registersHL & 0xFF); - var dirtySum = parentObj.registerA + tempValue + ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (tempValue & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADC A, (HL) - //#0x8E: - function (parentObj) { - var tempValue = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - var dirtySum = parentObj.registerA + tempValue + ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (tempValue & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //ADC A, A - //#0x8F: - function (parentObj) { - //shift left register A one bit for some ops here as an optimization: - var dirtySum = (parentObj.registerA << 1) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((((parentObj.registerA << 1) & 0x1E) | ((parentObj.FCarry) ? 1 : 0)) > 0xF); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //SUB A, B - //#0x90: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.registerB; - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //SUB A, C - //#0x91: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.registerC; - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //SUB A, D - //#0x92: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.registerD; - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //SUB A, E - //#0x93: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.registerE; - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //SUB A, H - //#0x94: - function (parentObj) { - var dirtySum = parentObj.registerA - (parentObj.registersHL >> 8); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //SUB A, L - //#0x95: - function (parentObj) { - var dirtySum = parentObj.registerA - (parentObj.registersHL & 0xFF); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //SUB A, (HL) - //#0x96: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //SUB A, A - //#0x97: - function (parentObj) { - //number - same number == 0 - parentObj.registerA = 0; - parentObj.FHalfCarry = parentObj.FCarry = false; - parentObj.FZero = parentObj.FSubtract = true; - }, - //SBC A, B - //#0x98: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.registerB - ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (parentObj.registerB & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = true; - }, - //SBC A, C - //#0x99: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.registerC - ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (parentObj.registerC & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = true; - }, - //SBC A, D - //#0x9A: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.registerD - ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (parentObj.registerD & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = true; - }, - //SBC A, E - //#0x9B: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.registerE - ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (parentObj.registerE & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = true; - }, - //SBC A, H - //#0x9C: - function (parentObj) { - var temp_var = parentObj.registersHL >> 8; - var dirtySum = parentObj.registerA - temp_var - ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (temp_var & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = true; - }, - //SBC A, L - //#0x9D: - function (parentObj) { - var dirtySum = parentObj.registerA - (parentObj.registersHL & 0xFF) - ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (parentObj.registersHL & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = true; - }, - //SBC A, (HL) - //#0x9E: - function (parentObj) { - var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - var dirtySum = parentObj.registerA - temp_var - ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (temp_var & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = true; - }, - //SBC A, A - //#0x9F: - function (parentObj) { - //Optimized SBC A: - if (parentObj.FCarry) { - parentObj.FZero = false; - parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = true; - parentObj.registerA = 0xFF; - } - else { - parentObj.FHalfCarry = parentObj.FCarry = false; - parentObj.FSubtract = parentObj.FZero = true; - parentObj.registerA = 0; - } - }, - //AND B - //#0xA0: - function (parentObj) { - parentObj.registerA &= parentObj.registerB; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FHalfCarry = true; - parentObj.FSubtract = parentObj.FCarry = false; - }, - //AND C - //#0xA1: - function (parentObj) { - parentObj.registerA &= parentObj.registerC; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FHalfCarry = true; - parentObj.FSubtract = parentObj.FCarry = false; - }, - //AND D - //#0xA2: - function (parentObj) { - parentObj.registerA &= parentObj.registerD; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FHalfCarry = true; - parentObj.FSubtract = parentObj.FCarry = false; - }, - //AND E - //#0xA3: - function (parentObj) { - parentObj.registerA &= parentObj.registerE; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FHalfCarry = true; - parentObj.FSubtract = parentObj.FCarry = false; - }, - //AND H - //#0xA4: - function (parentObj) { - parentObj.registerA &= (parentObj.registersHL >> 8); - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FHalfCarry = true; - parentObj.FSubtract = parentObj.FCarry = false; - }, - //AND L - //#0xA5: - function (parentObj) { - parentObj.registerA &= parentObj.registersHL; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FHalfCarry = true; - parentObj.FSubtract = parentObj.FCarry = false; - }, - //AND (HL) - //#0xA6: - function (parentObj) { - parentObj.registerA &= parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FHalfCarry = true; - parentObj.FSubtract = parentObj.FCarry = false; - }, - //AND A - //#0xA7: - function (parentObj) { - //number & same number = same number - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FHalfCarry = true; - parentObj.FSubtract = parentObj.FCarry = false; - }, - //XOR B - //#0xA8: - function (parentObj) { - parentObj.registerA ^= parentObj.registerB; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false; - }, - //XOR C - //#0xA9: - function (parentObj) { - parentObj.registerA ^= parentObj.registerC; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false; - }, - //XOR D - //#0xAA: - function (parentObj) { - parentObj.registerA ^= parentObj.registerD; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false; - }, - //XOR E - //#0xAB: - function (parentObj) { - parentObj.registerA ^= parentObj.registerE; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false; - }, - //XOR H - //#0xAC: - function (parentObj) { - parentObj.registerA ^= (parentObj.registersHL >> 8); - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false; - }, - //XOR L - //#0xAD: - function (parentObj) { - parentObj.registerA ^= (parentObj.registersHL & 0xFF); - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false; - }, - //XOR (HL) - //#0xAE: - function (parentObj) { - parentObj.registerA ^= parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false; - }, - //XOR A - //#0xAF: - function (parentObj) { - //number ^ same number == 0 - parentObj.registerA = 0; - parentObj.FZero = true; - parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false; - }, - //OR B - //#0xB0: - function (parentObj) { - parentObj.registerA |= parentObj.registerB; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false; - }, - //OR C - //#0xB1: - function (parentObj) { - parentObj.registerA |= parentObj.registerC; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false; - }, - //OR D - //#0xB2: - function (parentObj) { - parentObj.registerA |= parentObj.registerD; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false; - }, - //OR E - //#0xB3: - function (parentObj) { - parentObj.registerA |= parentObj.registerE; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false; - }, - //OR H - //#0xB4: - function (parentObj) { - parentObj.registerA |= (parentObj.registersHL >> 8); - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false; - }, - //OR L - //#0xB5: - function (parentObj) { - parentObj.registerA |= (parentObj.registersHL & 0xFF); - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false; - }, - //OR (HL) - //#0xB6: - function (parentObj) { - parentObj.registerA |= parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false; - }, - //OR A - //#0xB7: - function (parentObj) { - //number | same number == same number - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false; - }, - //CP B - //#0xB8: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.registerB; - parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //CP C - //#0xB9: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.registerC; - parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //CP D - //#0xBA: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.registerD; - parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //CP E - //#0xBB: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.registerE; - parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //CP H - //#0xBC: - function (parentObj) { - var dirtySum = parentObj.registerA - (parentObj.registersHL >> 8); - parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //CP L - //#0xBD: - function (parentObj) { - var dirtySum = parentObj.registerA - (parentObj.registersHL & 0xFF); - parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //CP (HL) - //#0xBE: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //CP A - //#0xBF: - function (parentObj) { - parentObj.FHalfCarry = parentObj.FCarry = false; - parentObj.FZero = parentObj.FSubtract = true; - }, - //RET !FZ - //#0xC0: - function (parentObj) { - if (!parentObj.FZero) { - parentObj.programCounter = (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer); - parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF; - parentObj.CPUTicks += 12; - } - }, - //POP BC - //#0xC1: - function (parentObj) { - parentObj.registerC = parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer); - parentObj.registerB = parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF); - parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF; - }, - //JP !FZ, nn - //#0xC2: - function (parentObj) { - if (!parentObj.FZero) { - parentObj.programCounter = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.CPUTicks += 4; - } - else { - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - } - }, - //JP nn - //#0xC3: - function (parentObj) { - parentObj.programCounter = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - }, - //CALL !FZ, nn - //#0xC4: - function (parentObj) { - if (!parentObj.FZero) { - var temp_pc = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF); - parentObj.programCounter = temp_pc; - parentObj.CPUTicks += 12; - } - else { - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - } - }, - //PUSH BC - //#0xC5: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registerB); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registerC); - }, - //ADD, n - //#0xC6: - function (parentObj) { - var dirtySum = parentObj.registerA + parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - parentObj.FHalfCarry = ((dirtySum & 0xF) < (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //RST 0 - //#0xC7: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF); - parentObj.programCounter = 0; - }, - //RET FZ - //#0xC8: - function (parentObj) { - if (parentObj.FZero) { - parentObj.programCounter = (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer); - parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF; - parentObj.CPUTicks += 12; - } - }, - //RET - //#0xC9: - function (parentObj) { - parentObj.programCounter = (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer); - parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF; - }, - //JP FZ, nn - //#0xCA: - function (parentObj) { - if (parentObj.FZero) { - parentObj.programCounter = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.CPUTicks += 4; - } - else { - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - } - }, - //Secondary OP Code Set: - //#0xCB: - function (parentObj) { - var opcode = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - //Increment the program counter to the next instruction: - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - //Get how many CPU cycles the current 0xCBXX op code counts for: - parentObj.CPUTicks += parentObj.SecondaryTICKTable[opcode]; - //Execute secondary OP codes for the 0xCB OP code call. - parentObj.CBOPCODE[opcode](parentObj); - }, - //CALL FZ, nn - //#0xCC: - function (parentObj) { - if (parentObj.FZero) { - var temp_pc = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF); - parentObj.programCounter = temp_pc; - parentObj.CPUTicks += 12; - } - else { - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - } - }, - //CALL nn - //#0xCD: - function (parentObj) { - var temp_pc = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF); - parentObj.programCounter = temp_pc; - }, - //ADC A, n - //#0xCE: - function (parentObj) { - var tempValue = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - var dirtySum = parentObj.registerA + tempValue + ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) + (tempValue & 0xF) + ((parentObj.FCarry) ? 1 : 0) > 0xF); - parentObj.FCarry = (dirtySum > 0xFF); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = false; - }, - //RST 0x8 - //#0xCF: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF); - parentObj.programCounter = 0x8; - }, - //RET !FC - //#0xD0: - function (parentObj) { - if (!parentObj.FCarry) { - parentObj.programCounter = (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer); - parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF; - parentObj.CPUTicks += 12; - } - }, - //POP DE - //#0xD1: - function (parentObj) { - parentObj.registerE = parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer); - parentObj.registerD = parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF); - parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF; - }, - //JP !FC, nn - //#0xD2: - function (parentObj) { - if (!parentObj.FCarry) { - parentObj.programCounter = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.CPUTicks += 4; - } - else { - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - } - }, - //0xD3 - Illegal - //#0xD3: - function (parentObj) { - cout("Illegal op code 0xD3 called, pausing emulation.", 2); - pause(); - }, - //CALL !FC, nn - //#0xD4: - function (parentObj) { - if (!parentObj.FCarry) { - var temp_pc = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF); - parentObj.programCounter = temp_pc; - parentObj.CPUTicks += 12; - } - else { - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - } - }, - //PUSH DE - //#0xD5: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registerD); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registerE); - }, - //SUB A, n - //#0xD6: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) < (dirtySum & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //RST 0x10 - //#0xD7: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF); - parentObj.programCounter = 0x10; - }, - //RET FC - //#0xD8: - function (parentObj) { - if (parentObj.FCarry) { - parentObj.programCounter = (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer); - parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF; - parentObj.CPUTicks += 12; - } - }, - //RETI - //#0xD9: - function (parentObj) { - parentObj.programCounter = (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer); - parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF; - //Immediate for HALT: - parentObj.IRQEnableDelay = (parentObj.IRQEnableDelay == 2 || parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) == 0x76) ? 1 : 2; - }, - //JP FC, nn - //#0xDA: - function (parentObj) { - if (parentObj.FCarry) { - parentObj.programCounter = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.CPUTicks += 4; - } - else { - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - } - }, - //0xDB - Illegal - //#0xDB: - function (parentObj) { - cout("Illegal op code 0xDB called, pausing emulation.", 2); - pause(); - }, - //CALL FC, nn - //#0xDC: - function (parentObj) { - if (parentObj.FCarry) { - var temp_pc = (parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF); - parentObj.programCounter = temp_pc; - parentObj.CPUTicks += 12; - } - else { - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - } - }, - //0xDD - Illegal - //#0xDD: - function (parentObj) { - cout("Illegal op code 0xDD called, pausing emulation.", 2); - pause(); - }, - //SBC A, n - //#0xDE: - function (parentObj) { - var temp_var = parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - var dirtySum = parentObj.registerA - temp_var - ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = ((parentObj.registerA & 0xF) - (temp_var & 0xF) - ((parentObj.FCarry) ? 1 : 0) < 0); - parentObj.FCarry = (dirtySum < 0); - parentObj.registerA = dirtySum & 0xFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = true; - }, - //RST 0x18 - //#0xDF: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF); - parentObj.programCounter = 0x18; - }, - //LDH (n), A - //#0xE0: - function (parentObj) { - parentObj.memoryHighWrite(parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter), parentObj.registerA); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - }, - //POP HL - //#0xE1: - function (parentObj) { - parentObj.registersHL = (parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer); - parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF; - }, - //LD (0xFF00 + C), A - //#0xE2: - function (parentObj) { - parentObj.memoryHighWriter[parentObj.registerC](parentObj, parentObj.registerC, parentObj.registerA); - }, - //0xE3 - Illegal - //#0xE3: - function (parentObj) { - cout("Illegal op code 0xE3 called, pausing emulation.", 2); - pause(); - }, - //0xE4 - Illegal - //#0xE4: - function (parentObj) { - cout("Illegal op code 0xE4 called, pausing emulation.", 2); - pause(); - }, - //PUSH HL - //#0xE5: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registersHL >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registersHL & 0xFF); - }, - //AND n - //#0xE6: - function (parentObj) { - parentObj.registerA &= parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FHalfCarry = true; - parentObj.FSubtract = parentObj.FCarry = false; - }, - //RST 0x20 - //#0xE7: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF); - parentObj.programCounter = 0x20; - }, - //ADD SP, n - //#0xE8: - function (parentObj) { - var temp_value2 = (parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24; - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - var temp_value = (parentObj.stackPointer + temp_value2) & 0xFFFF; - temp_value2 = parentObj.stackPointer ^ temp_value2 ^ temp_value; - parentObj.stackPointer = temp_value; - parentObj.FCarry = ((temp_value2 & 0x100) == 0x100); - parentObj.FHalfCarry = ((temp_value2 & 0x10) == 0x10); - parentObj.FZero = parentObj.FSubtract = false; - }, - //JP, (HL) - //#0xE9: - function (parentObj) { - parentObj.programCounter = parentObj.registersHL; - }, - //LD n, A - //#0xEA: - function (parentObj) { - parentObj.memoryWrite((parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter), parentObj.registerA); - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - }, - //0xEB - Illegal - //#0xEB: - function (parentObj) { - cout("Illegal op code 0xEB called, pausing emulation.", 2); - pause(); - }, - //0xEC - Illegal - //#0xEC: - function (parentObj) { - cout("Illegal op code 0xEC called, pausing emulation.", 2); - pause(); - }, - //0xED - Illegal - //#0xED: - function (parentObj) { - cout("Illegal op code 0xED called, pausing emulation.", 2); - pause(); - }, - //XOR n - //#0xEE: - function (parentObj) { - parentObj.registerA ^= parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FSubtract = parentObj.FHalfCarry = parentObj.FCarry = false; - }, - //RST 0x28 - //#0xEF: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF); - parentObj.programCounter = 0x28; - }, - //LDH A, (n) - //#0xF0: - function (parentObj) { - parentObj.registerA = parentObj.memoryHighRead(parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter)); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - }, - //POP AF - //#0xF1: - function (parentObj) { - var temp_var = parentObj.memoryReader[parentObj.stackPointer](parentObj, parentObj.stackPointer); - parentObj.FZero = (temp_var > 0x7F); - parentObj.FSubtract = ((temp_var & 0x40) == 0x40); - parentObj.FHalfCarry = ((temp_var & 0x20) == 0x20); - parentObj.FCarry = ((temp_var & 0x10) == 0x10); - parentObj.registerA = parentObj.memoryRead((parentObj.stackPointer + 1) & 0xFFFF); - parentObj.stackPointer = (parentObj.stackPointer + 2) & 0xFFFF; - }, - //LD A, (0xFF00 + C) - //#0xF2: - function (parentObj) { - parentObj.registerA = parentObj.memoryHighReader[parentObj.registerC](parentObj, parentObj.registerC); - }, - //DI - //#0xF3: - function (parentObj) { - parentObj.IME = false; - parentObj.IRQEnableDelay = 0; - }, - //0xF4 - Illegal - //#0xF4: - function (parentObj) { - cout("Illegal op code 0xF4 called, pausing emulation.", 2); - pause(); - }, - //PUSH AF - //#0xF5: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.registerA); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, ((parentObj.FZero) ? 0x80 : 0) | ((parentObj.FSubtract) ? 0x40 : 0) | ((parentObj.FHalfCarry) ? 0x20 : 0) | ((parentObj.FCarry) ? 0x10 : 0)); - }, - //OR n - //#0xF6: - function (parentObj) { - parentObj.registerA |= parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.FZero = (parentObj.registerA == 0); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - parentObj.FSubtract = parentObj.FCarry = parentObj.FHalfCarry = false; - }, - //RST 0x30 - //#0xF7: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF); - parentObj.programCounter = 0x30; - }, - //LDHL SP, n - //#0xF8: - function (parentObj) { - var temp_var = (parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) << 24) >> 24; - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - parentObj.registersHL = (parentObj.stackPointer + temp_var) & 0xFFFF; - temp_var = parentObj.stackPointer ^ temp_var ^ parentObj.registersHL; - parentObj.FCarry = ((temp_var & 0x100) == 0x100); - parentObj.FHalfCarry = ((temp_var & 0x10) == 0x10); - parentObj.FZero = parentObj.FSubtract = false; - }, - //LD SP, HL - //#0xF9: - function (parentObj) { - parentObj.stackPointer = parentObj.registersHL; - }, - //LD A, (nn) - //#0xFA: - function (parentObj) { - parentObj.registerA = parentObj.memoryRead((parentObj.memoryRead((parentObj.programCounter + 1) & 0xFFFF) << 8) | parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter)); - parentObj.programCounter = (parentObj.programCounter + 2) & 0xFFFF; - }, - //EI - //#0xFB: - function (parentObj) { - //Immediate for HALT: - parentObj.IRQEnableDelay = (parentObj.IRQEnableDelay == 2 || parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter) == 0x76) ? 1 : 2; - }, - //0xFC - Illegal - //#0xFC: - function (parentObj) { - cout("Illegal op code 0xFC called, pausing emulation.", 2); - pause(); - }, - //0xFD - Illegal - //#0xFD: - function (parentObj) { - cout("Illegal op code 0xFD called, pausing emulation.", 2); - pause(); - }, - //CP n - //#0xFE: - function (parentObj) { - var dirtySum = parentObj.registerA - parentObj.memoryReader[parentObj.programCounter](parentObj, parentObj.programCounter); - parentObj.programCounter = (parentObj.programCounter + 1) & 0xFFFF; - parentObj.FHalfCarry = ((dirtySum & 0xF) > (parentObj.registerA & 0xF)); - parentObj.FCarry = (dirtySum < 0); - parentObj.FZero = (dirtySum == 0); - parentObj.FSubtract = true; - }, - //RST 0x38 - //#0xFF: - function (parentObj) { - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter >> 8); - parentObj.stackPointer = (parentObj.stackPointer - 1) & 0xFFFF; - parentObj.memoryWriter[parentObj.stackPointer](parentObj, parentObj.stackPointer, parentObj.programCounter & 0xFF); - parentObj.programCounter = 0x38; - } -]; -GameBoyCore.prototype.CBOPCODE = [ - //RLC B - //#0x00: - function (parentObj) { - parentObj.FCarry = (parentObj.registerB > 0x7F); - parentObj.registerB = ((parentObj.registerB << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerB == 0); - } - //RLC C - //#0x01: - ,function (parentObj) { - parentObj.FCarry = (parentObj.registerC > 0x7F); - parentObj.registerC = ((parentObj.registerC << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerC == 0); - } - //RLC D - //#0x02: - ,function (parentObj) { - parentObj.FCarry = (parentObj.registerD > 0x7F); - parentObj.registerD = ((parentObj.registerD << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerD == 0); - } - //RLC E - //#0x03: - ,function (parentObj) { - parentObj.FCarry = (parentObj.registerE > 0x7F); - parentObj.registerE = ((parentObj.registerE << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerE == 0); - } - //RLC H - //#0x04: - ,function (parentObj) { - parentObj.FCarry = (parentObj.registersHL > 0x7FFF); - parentObj.registersHL = ((parentObj.registersHL << 1) & 0xFE00) | ((parentObj.FCarry) ? 0x100 : 0) | (parentObj.registersHL & 0xFF); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registersHL < 0x100); - } - //RLC L - //#0x05: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registersHL & 0x80) == 0x80); - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.registersHL << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0); - } - //RLC (HL) - //#0x06: - ,function (parentObj) { - var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - parentObj.FCarry = (temp_var > 0x7F); - temp_var = ((temp_var << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (temp_var == 0); - } - //RLC A - //#0x07: - ,function (parentObj) { - parentObj.FCarry = (parentObj.registerA > 0x7F); - parentObj.registerA = ((parentObj.registerA << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerA == 0); - } - //RRC B - //#0x08: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerB & 0x01) == 0x01); - parentObj.registerB = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerB >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerB == 0); - } - //RRC C - //#0x09: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerC & 0x01) == 0x01); - parentObj.registerC = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerC >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerC == 0); - } - //RRC D - //#0x0A: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerD & 0x01) == 0x01); - parentObj.registerD = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerD >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerD == 0); - } - //RRC E - //#0x0B: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerE & 0x01) == 0x01); - parentObj.registerE = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerE >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerE == 0); - } - //RRC H - //#0x0C: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registersHL & 0x0100) == 0x0100); - parentObj.registersHL = ((parentObj.FCarry) ? 0x8000 : 0) | ((parentObj.registersHL >> 1) & 0xFF00) | (parentObj.registersHL & 0xFF); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registersHL < 0x100); - } - //RRC L - //#0x0D: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registersHL & 0x01) == 0x01); - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.FCarry) ? 0x80 : 0) | ((parentObj.registersHL & 0xFF) >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0); - } - //RRC (HL) - //#0x0E: - ,function (parentObj) { - var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - parentObj.FCarry = ((temp_var & 0x01) == 0x01); - temp_var = ((parentObj.FCarry) ? 0x80 : 0) | (temp_var >> 1); - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (temp_var == 0); - } - //RRC A - //#0x0F: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerA & 0x01) == 0x01); - parentObj.registerA = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerA >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerA == 0); - } - //RL B - //#0x10: - ,function (parentObj) { - var newFCarry = (parentObj.registerB > 0x7F); - parentObj.registerB = ((parentObj.registerB << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerB == 0); - } - //RL C - //#0x11: - ,function (parentObj) { - var newFCarry = (parentObj.registerC > 0x7F); - parentObj.registerC = ((parentObj.registerC << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerC == 0); - } - //RL D - //#0x12: - ,function (parentObj) { - var newFCarry = (parentObj.registerD > 0x7F); - parentObj.registerD = ((parentObj.registerD << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerD == 0); - } - //RL E - //#0x13: - ,function (parentObj) { - var newFCarry = (parentObj.registerE > 0x7F); - parentObj.registerE = ((parentObj.registerE << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerE == 0); - } - //RL H - //#0x14: - ,function (parentObj) { - var newFCarry = (parentObj.registersHL > 0x7FFF); - parentObj.registersHL = ((parentObj.registersHL << 1) & 0xFE00) | ((parentObj.FCarry) ? 0x100 : 0) | (parentObj.registersHL & 0xFF); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registersHL < 0x100); - } - //RL L - //#0x15: - ,function (parentObj) { - var newFCarry = ((parentObj.registersHL & 0x80) == 0x80); - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.registersHL << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0); - } - //RL (HL) - //#0x16: - ,function (parentObj) { - var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - var newFCarry = (temp_var > 0x7F); - temp_var = ((temp_var << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FCarry = newFCarry; - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (temp_var == 0); - } - //RL A - //#0x17: - ,function (parentObj) { - var newFCarry = (parentObj.registerA > 0x7F); - parentObj.registerA = ((parentObj.registerA << 1) & 0xFF) | ((parentObj.FCarry) ? 1 : 0); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerA == 0); - } - //RR B - //#0x18: - ,function (parentObj) { - var newFCarry = ((parentObj.registerB & 0x01) == 0x01); - parentObj.registerB = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerB >> 1); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerB == 0); - } - //RR C - //#0x19: - ,function (parentObj) { - var newFCarry = ((parentObj.registerC & 0x01) == 0x01); - parentObj.registerC = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerC >> 1); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerC == 0); - } - //RR D - //#0x1A: - ,function (parentObj) { - var newFCarry = ((parentObj.registerD & 0x01) == 0x01); - parentObj.registerD = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerD >> 1); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerD == 0); - } - //RR E - //#0x1B: - ,function (parentObj) { - var newFCarry = ((parentObj.registerE & 0x01) == 0x01); - parentObj.registerE = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerE >> 1); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerE == 0); - } - //RR H - //#0x1C: - ,function (parentObj) { - var newFCarry = ((parentObj.registersHL & 0x0100) == 0x0100); - parentObj.registersHL = ((parentObj.FCarry) ? 0x8000 : 0) | ((parentObj.registersHL >> 1) & 0xFF00) | (parentObj.registersHL & 0xFF); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registersHL < 0x100); - } - //RR L - //#0x1D: - ,function (parentObj) { - var newFCarry = ((parentObj.registersHL & 0x01) == 0x01); - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.FCarry) ? 0x80 : 0) | ((parentObj.registersHL & 0xFF) >> 1); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0); - } - //RR (HL) - //#0x1E: - ,function (parentObj) { - var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - var newFCarry = ((temp_var & 0x01) == 0x01); - temp_var = ((parentObj.FCarry) ? 0x80 : 0) | (temp_var >> 1); - parentObj.FCarry = newFCarry; - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (temp_var == 0); - } - //RR A - //#0x1F: - ,function (parentObj) { - var newFCarry = ((parentObj.registerA & 0x01) == 0x01); - parentObj.registerA = ((parentObj.FCarry) ? 0x80 : 0) | (parentObj.registerA >> 1); - parentObj.FCarry = newFCarry; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerA == 0); - } - //SLA B - //#0x20: - ,function (parentObj) { - parentObj.FCarry = (parentObj.registerB > 0x7F); - parentObj.registerB = (parentObj.registerB << 1) & 0xFF; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerB == 0); - } - //SLA C - //#0x21: - ,function (parentObj) { - parentObj.FCarry = (parentObj.registerC > 0x7F); - parentObj.registerC = (parentObj.registerC << 1) & 0xFF; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerC == 0); - } - //SLA D - //#0x22: - ,function (parentObj) { - parentObj.FCarry = (parentObj.registerD > 0x7F); - parentObj.registerD = (parentObj.registerD << 1) & 0xFF; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerD == 0); - } - //SLA E - //#0x23: - ,function (parentObj) { - parentObj.FCarry = (parentObj.registerE > 0x7F); - parentObj.registerE = (parentObj.registerE << 1) & 0xFF; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerE == 0); - } - //SLA H - //#0x24: - ,function (parentObj) { - parentObj.FCarry = (parentObj.registersHL > 0x7FFF); - parentObj.registersHL = ((parentObj.registersHL << 1) & 0xFE00) | (parentObj.registersHL & 0xFF); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registersHL < 0x100); - } - //SLA L - //#0x25: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registersHL & 0x0080) == 0x0080); - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.registersHL << 1) & 0xFF); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0); - } - //SLA (HL) - //#0x26: - ,function (parentObj) { - var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - parentObj.FCarry = (temp_var > 0x7F); - temp_var = (temp_var << 1) & 0xFF; - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (temp_var == 0); - } - //SLA A - //#0x27: - ,function (parentObj) { - parentObj.FCarry = (parentObj.registerA > 0x7F); - parentObj.registerA = (parentObj.registerA << 1) & 0xFF; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerA == 0); - } - //SRA B - //#0x28: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerB & 0x01) == 0x01); - parentObj.registerB = (parentObj.registerB & 0x80) | (parentObj.registerB >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerB == 0); - } - //SRA C - //#0x29: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerC & 0x01) == 0x01); - parentObj.registerC = (parentObj.registerC & 0x80) | (parentObj.registerC >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerC == 0); - } - //SRA D - //#0x2A: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerD & 0x01) == 0x01); - parentObj.registerD = (parentObj.registerD & 0x80) | (parentObj.registerD >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerD == 0); - } - //SRA E - //#0x2B: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerE & 0x01) == 0x01); - parentObj.registerE = (parentObj.registerE & 0x80) | (parentObj.registerE >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerE == 0); - } - //SRA H - //#0x2C: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registersHL & 0x0100) == 0x0100); - parentObj.registersHL = ((parentObj.registersHL >> 1) & 0xFF00) | (parentObj.registersHL & 0x80FF); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registersHL < 0x100); - } - //SRA L - //#0x2D: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registersHL & 0x0001) == 0x0001); - parentObj.registersHL = (parentObj.registersHL & 0xFF80) | ((parentObj.registersHL & 0xFF) >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0); - } - //SRA (HL) - //#0x2E: - ,function (parentObj) { - var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - parentObj.FCarry = ((temp_var & 0x01) == 0x01); - temp_var = (temp_var & 0x80) | (temp_var >> 1); - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (temp_var == 0); - } - //SRA A - //#0x2F: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerA & 0x01) == 0x01); - parentObj.registerA = (parentObj.registerA & 0x80) | (parentObj.registerA >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerA == 0); - } - //SWAP B - //#0x30: - ,function (parentObj) { - parentObj.registerB = ((parentObj.registerB & 0xF) << 4) | (parentObj.registerB >> 4); - parentObj.FZero = (parentObj.registerB == 0); - parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false; - } - //SWAP C - //#0x31: - ,function (parentObj) { - parentObj.registerC = ((parentObj.registerC & 0xF) << 4) | (parentObj.registerC >> 4); - parentObj.FZero = (parentObj.registerC == 0); - parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false; - } - //SWAP D - //#0x32: - ,function (parentObj) { - parentObj.registerD = ((parentObj.registerD & 0xF) << 4) | (parentObj.registerD >> 4); - parentObj.FZero = (parentObj.registerD == 0); - parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false; - } - //SWAP E - //#0x33: - ,function (parentObj) { - parentObj.registerE = ((parentObj.registerE & 0xF) << 4) | (parentObj.registerE >> 4); - parentObj.FZero = (parentObj.registerE == 0); - parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false; - } - //SWAP H - //#0x34: - ,function (parentObj) { - parentObj.registersHL = ((parentObj.registersHL & 0xF00) << 4) | ((parentObj.registersHL & 0xF000) >> 4) | (parentObj.registersHL & 0xFF); - parentObj.FZero = (parentObj.registersHL < 0x100); - parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false; - } - //SWAP L - //#0x35: - ,function (parentObj) { - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.registersHL & 0xF) << 4) | ((parentObj.registersHL & 0xF0) >> 4); - parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0); - parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false; - } - //SWAP (HL) - //#0x36: - ,function (parentObj) { - var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - temp_var = ((temp_var & 0xF) << 4) | (temp_var >> 4); - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var); - parentObj.FZero = (temp_var == 0); - parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false; - } - //SWAP A - //#0x37: - ,function (parentObj) { - parentObj.registerA = ((parentObj.registerA & 0xF) << 4) | (parentObj.registerA >> 4); - parentObj.FZero = (parentObj.registerA == 0); - parentObj.FCarry = parentObj.FHalfCarry = parentObj.FSubtract = false; - } - //SRL B - //#0x38: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerB & 0x01) == 0x01); - parentObj.registerB >>= 1; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerB == 0); - } - //SRL C - //#0x39: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerC & 0x01) == 0x01); - parentObj.registerC >>= 1; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerC == 0); - } - //SRL D - //#0x3A: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerD & 0x01) == 0x01); - parentObj.registerD >>= 1; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerD == 0); - } - //SRL E - //#0x3B: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerE & 0x01) == 0x01); - parentObj.registerE >>= 1; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerE == 0); - } - //SRL H - //#0x3C: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registersHL & 0x0100) == 0x0100); - parentObj.registersHL = ((parentObj.registersHL >> 1) & 0xFF00) | (parentObj.registersHL & 0xFF); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registersHL < 0x100); - } - //SRL L - //#0x3D: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registersHL & 0x0001) == 0x0001); - parentObj.registersHL = (parentObj.registersHL & 0xFF00) | ((parentObj.registersHL & 0xFF) >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0xFF) == 0); - } - //SRL (HL) - //#0x3E: - ,function (parentObj) { - var temp_var = parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL); - parentObj.FCarry = ((temp_var & 0x01) == 0x01); - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, temp_var >> 1); - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (temp_var < 2); - } - //SRL A - //#0x3F: - ,function (parentObj) { - parentObj.FCarry = ((parentObj.registerA & 0x01) == 0x01); - parentObj.registerA >>= 1; - parentObj.FHalfCarry = parentObj.FSubtract = false; - parentObj.FZero = (parentObj.registerA == 0); - } - //BIT 0, B - //#0x40: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerB & 0x01) == 0); - } - //BIT 0, C - //#0x41: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerC & 0x01) == 0); - } - //BIT 0, D - //#0x42: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerD & 0x01) == 0); - } - //BIT 0, E - //#0x43: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerE & 0x01) == 0); - } - //BIT 0, H - //#0x44: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x0100) == 0); - } - //BIT 0, L - //#0x45: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x0001) == 0); - } - //BIT 0, (HL) - //#0x46: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x01) == 0); - } - //BIT 0, A - //#0x47: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerA & 0x01) == 0); - } - //BIT 1, B - //#0x48: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerB & 0x02) == 0); - } - //BIT 1, C - //#0x49: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerC & 0x02) == 0); - } - //BIT 1, D - //#0x4A: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerD & 0x02) == 0); - } - //BIT 1, E - //#0x4B: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerE & 0x02) == 0); - } - //BIT 1, H - //#0x4C: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x0200) == 0); - } - //BIT 1, L - //#0x4D: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x0002) == 0); - } - //BIT 1, (HL) - //#0x4E: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x02) == 0); - } - //BIT 1, A - //#0x4F: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerA & 0x02) == 0); - } - //BIT 2, B - //#0x50: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerB & 0x04) == 0); - } - //BIT 2, C - //#0x51: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerC & 0x04) == 0); - } - //BIT 2, D - //#0x52: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerD & 0x04) == 0); - } - //BIT 2, E - //#0x53: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerE & 0x04) == 0); - } - //BIT 2, H - //#0x54: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x0400) == 0); - } - //BIT 2, L - //#0x55: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x0004) == 0); - } - //BIT 2, (HL) - //#0x56: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x04) == 0); - } - //BIT 2, A - //#0x57: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerA & 0x04) == 0); - } - //BIT 3, B - //#0x58: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerB & 0x08) == 0); - } - //BIT 3, C - //#0x59: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerC & 0x08) == 0); - } - //BIT 3, D - //#0x5A: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerD & 0x08) == 0); - } - //BIT 3, E - //#0x5B: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerE & 0x08) == 0); - } - //BIT 3, H - //#0x5C: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x0800) == 0); - } - //BIT 3, L - //#0x5D: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x0008) == 0); - } - //BIT 3, (HL) - //#0x5E: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x08) == 0); - } - //BIT 3, A - //#0x5F: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerA & 0x08) == 0); - } - //BIT 4, B - //#0x60: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerB & 0x10) == 0); - } - //BIT 4, C - //#0x61: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerC & 0x10) == 0); - } - //BIT 4, D - //#0x62: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerD & 0x10) == 0); - } - //BIT 4, E - //#0x63: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerE & 0x10) == 0); - } - //BIT 4, H - //#0x64: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x1000) == 0); - } - //BIT 4, L - //#0x65: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x0010) == 0); - } - //BIT 4, (HL) - //#0x66: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x10) == 0); - } - //BIT 4, A - //#0x67: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerA & 0x10) == 0); - } - //BIT 5, B - //#0x68: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerB & 0x20) == 0); - } - //BIT 5, C - //#0x69: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerC & 0x20) == 0); - } - //BIT 5, D - //#0x6A: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerD & 0x20) == 0); - } - //BIT 5, E - //#0x6B: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerE & 0x20) == 0); - } - //BIT 5, H - //#0x6C: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x2000) == 0); - } - //BIT 5, L - //#0x6D: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x0020) == 0); - } - //BIT 5, (HL) - //#0x6E: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x20) == 0); - } - //BIT 5, A - //#0x6F: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerA & 0x20) == 0); - } - //BIT 6, B - //#0x70: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerB & 0x40) == 0); - } - //BIT 6, C - //#0x71: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerC & 0x40) == 0); - } - //BIT 6, D - //#0x72: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerD & 0x40) == 0); - } - //BIT 6, E - //#0x73: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerE & 0x40) == 0); - } - //BIT 6, H - //#0x74: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x4000) == 0); - } - //BIT 6, L - //#0x75: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x0040) == 0); - } - //BIT 6, (HL) - //#0x76: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x40) == 0); - } - //BIT 6, A - //#0x77: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerA & 0x40) == 0); - } - //BIT 7, B - //#0x78: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerB & 0x80) == 0); - } - //BIT 7, C - //#0x79: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerC & 0x80) == 0); - } - //BIT 7, D - //#0x7A: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerD & 0x80) == 0); - } - //BIT 7, E - //#0x7B: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerE & 0x80) == 0); - } - //BIT 7, H - //#0x7C: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x8000) == 0); - } - //BIT 7, L - //#0x7D: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registersHL & 0x0080) == 0); - } - //BIT 7, (HL) - //#0x7E: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x80) == 0); - } - //BIT 7, A - //#0x7F: - ,function (parentObj) { - parentObj.FHalfCarry = true; - parentObj.FSubtract = false; - parentObj.FZero = ((parentObj.registerA & 0x80) == 0); - } - //RES 0, B - //#0x80: - ,function (parentObj) { - parentObj.registerB &= 0xFE; - } - //RES 0, C - //#0x81: - ,function (parentObj) { - parentObj.registerC &= 0xFE; - } - //RES 0, D - //#0x82: - ,function (parentObj) { - parentObj.registerD &= 0xFE; - } - //RES 0, E - //#0x83: - ,function (parentObj) { - parentObj.registerE &= 0xFE; - } - //RES 0, H - //#0x84: - ,function (parentObj) { - parentObj.registersHL &= 0xFEFF; - } - //RES 0, L - //#0x85: - ,function (parentObj) { - parentObj.registersHL &= 0xFFFE; - } - //RES 0, (HL) - //#0x86: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xFE); - } - //RES 0, A - //#0x87: - ,function (parentObj) { - parentObj.registerA &= 0xFE; - } - //RES 1, B - //#0x88: - ,function (parentObj) { - parentObj.registerB &= 0xFD; - } - //RES 1, C - //#0x89: - ,function (parentObj) { - parentObj.registerC &= 0xFD; - } - //RES 1, D - //#0x8A: - ,function (parentObj) { - parentObj.registerD &= 0xFD; - } - //RES 1, E - //#0x8B: - ,function (parentObj) { - parentObj.registerE &= 0xFD; - } - //RES 1, H - //#0x8C: - ,function (parentObj) { - parentObj.registersHL &= 0xFDFF; - } - //RES 1, L - //#0x8D: - ,function (parentObj) { - parentObj.registersHL &= 0xFFFD; - } - //RES 1, (HL) - //#0x8E: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xFD); - } - //RES 1, A - //#0x8F: - ,function (parentObj) { - parentObj.registerA &= 0xFD; - } - //RES 2, B - //#0x90: - ,function (parentObj) { - parentObj.registerB &= 0xFB; - } - //RES 2, C - //#0x91: - ,function (parentObj) { - parentObj.registerC &= 0xFB; - } - //RES 2, D - //#0x92: - ,function (parentObj) { - parentObj.registerD &= 0xFB; - } - //RES 2, E - //#0x93: - ,function (parentObj) { - parentObj.registerE &= 0xFB; - } - //RES 2, H - //#0x94: - ,function (parentObj) { - parentObj.registersHL &= 0xFBFF; - } - //RES 2, L - //#0x95: - ,function (parentObj) { - parentObj.registersHL &= 0xFFFB; - } - //RES 2, (HL) - //#0x96: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xFB); - } - //RES 2, A - //#0x97: - ,function (parentObj) { - parentObj.registerA &= 0xFB; - } - //RES 3, B - //#0x98: - ,function (parentObj) { - parentObj.registerB &= 0xF7; - } - //RES 3, C - //#0x99: - ,function (parentObj) { - parentObj.registerC &= 0xF7; - } - //RES 3, D - //#0x9A: - ,function (parentObj) { - parentObj.registerD &= 0xF7; - } - //RES 3, E - //#0x9B: - ,function (parentObj) { - parentObj.registerE &= 0xF7; - } - //RES 3, H - //#0x9C: - ,function (parentObj) { - parentObj.registersHL &= 0xF7FF; - } - //RES 3, L - //#0x9D: - ,function (parentObj) { - parentObj.registersHL &= 0xFFF7; - } - //RES 3, (HL) - //#0x9E: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xF7); - } - //RES 3, A - //#0x9F: - ,function (parentObj) { - parentObj.registerA &= 0xF7; - } - //RES 3, B - //#0xA0: - ,function (parentObj) { - parentObj.registerB &= 0xEF; - } - //RES 4, C - //#0xA1: - ,function (parentObj) { - parentObj.registerC &= 0xEF; - } - //RES 4, D - //#0xA2: - ,function (parentObj) { - parentObj.registerD &= 0xEF; - } - //RES 4, E - //#0xA3: - ,function (parentObj) { - parentObj.registerE &= 0xEF; - } - //RES 4, H - //#0xA4: - ,function (parentObj) { - parentObj.registersHL &= 0xEFFF; - } - //RES 4, L - //#0xA5: - ,function (parentObj) { - parentObj.registersHL &= 0xFFEF; - } - //RES 4, (HL) - //#0xA6: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xEF); - } - //RES 4, A - //#0xA7: - ,function (parentObj) { - parentObj.registerA &= 0xEF; - } - //RES 5, B - //#0xA8: - ,function (parentObj) { - parentObj.registerB &= 0xDF; - } - //RES 5, C - //#0xA9: - ,function (parentObj) { - parentObj.registerC &= 0xDF; - } - //RES 5, D - //#0xAA: - ,function (parentObj) { - parentObj.registerD &= 0xDF; - } - //RES 5, E - //#0xAB: - ,function (parentObj) { - parentObj.registerE &= 0xDF; - } - //RES 5, H - //#0xAC: - ,function (parentObj) { - parentObj.registersHL &= 0xDFFF; - } - //RES 5, L - //#0xAD: - ,function (parentObj) { - parentObj.registersHL &= 0xFFDF; - } - //RES 5, (HL) - //#0xAE: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xDF); - } - //RES 5, A - //#0xAF: - ,function (parentObj) { - parentObj.registerA &= 0xDF; - } - //RES 6, B - //#0xB0: - ,function (parentObj) { - parentObj.registerB &= 0xBF; - } - //RES 6, C - //#0xB1: - ,function (parentObj) { - parentObj.registerC &= 0xBF; - } - //RES 6, D - //#0xB2: - ,function (parentObj) { - parentObj.registerD &= 0xBF; - } - //RES 6, E - //#0xB3: - ,function (parentObj) { - parentObj.registerE &= 0xBF; - } - //RES 6, H - //#0xB4: - ,function (parentObj) { - parentObj.registersHL &= 0xBFFF; - } - //RES 6, L - //#0xB5: - ,function (parentObj) { - parentObj.registersHL &= 0xFFBF; - } - //RES 6, (HL) - //#0xB6: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0xBF); - } - //RES 6, A - //#0xB7: - ,function (parentObj) { - parentObj.registerA &= 0xBF; - } - //RES 7, B - //#0xB8: - ,function (parentObj) { - parentObj.registerB &= 0x7F; - } - //RES 7, C - //#0xB9: - ,function (parentObj) { - parentObj.registerC &= 0x7F; - } - //RES 7, D - //#0xBA: - ,function (parentObj) { - parentObj.registerD &= 0x7F; - } - //RES 7, E - //#0xBB: - ,function (parentObj) { - parentObj.registerE &= 0x7F; - } - //RES 7, H - //#0xBC: - ,function (parentObj) { - parentObj.registersHL &= 0x7FFF; - } - //RES 7, L - //#0xBD: - ,function (parentObj) { - parentObj.registersHL &= 0xFF7F; - } - //RES 7, (HL) - //#0xBE: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) & 0x7F); - } - //RES 7, A - //#0xBF: - ,function (parentObj) { - parentObj.registerA &= 0x7F; - } - //SET 0, B - //#0xC0: - ,function (parentObj) { - parentObj.registerB |= 0x01; - } - //SET 0, C - //#0xC1: - ,function (parentObj) { - parentObj.registerC |= 0x01; - } - //SET 0, D - //#0xC2: - ,function (parentObj) { - parentObj.registerD |= 0x01; - } - //SET 0, E - //#0xC3: - ,function (parentObj) { - parentObj.registerE |= 0x01; - } - //SET 0, H - //#0xC4: - ,function (parentObj) { - parentObj.registersHL |= 0x0100; - } - //SET 0, L - //#0xC5: - ,function (parentObj) { - parentObj.registersHL |= 0x01; - } - //SET 0, (HL) - //#0xC6: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x01); - } - //SET 0, A - //#0xC7: - ,function (parentObj) { - parentObj.registerA |= 0x01; - } - //SET 1, B - //#0xC8: - ,function (parentObj) { - parentObj.registerB |= 0x02; - } - //SET 1, C - //#0xC9: - ,function (parentObj) { - parentObj.registerC |= 0x02; - } - //SET 1, D - //#0xCA: - ,function (parentObj) { - parentObj.registerD |= 0x02; - } - //SET 1, E - //#0xCB: - ,function (parentObj) { - parentObj.registerE |= 0x02; - } - //SET 1, H - //#0xCC: - ,function (parentObj) { - parentObj.registersHL |= 0x0200; - } - //SET 1, L - //#0xCD: - ,function (parentObj) { - parentObj.registersHL |= 0x02; - } - //SET 1, (HL) - //#0xCE: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x02); - } - //SET 1, A - //#0xCF: - ,function (parentObj) { - parentObj.registerA |= 0x02; - } - //SET 2, B - //#0xD0: - ,function (parentObj) { - parentObj.registerB |= 0x04; - } - //SET 2, C - //#0xD1: - ,function (parentObj) { - parentObj.registerC |= 0x04; - } - //SET 2, D - //#0xD2: - ,function (parentObj) { - parentObj.registerD |= 0x04; - } - //SET 2, E - //#0xD3: - ,function (parentObj) { - parentObj.registerE |= 0x04; - } - //SET 2, H - //#0xD4: - ,function (parentObj) { - parentObj.registersHL |= 0x0400; - } - //SET 2, L - //#0xD5: - ,function (parentObj) { - parentObj.registersHL |= 0x04; - } - //SET 2, (HL) - //#0xD6: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x04); - } - //SET 2, A - //#0xD7: - ,function (parentObj) { - parentObj.registerA |= 0x04; - } - //SET 3, B - //#0xD8: - ,function (parentObj) { - parentObj.registerB |= 0x08; - } - //SET 3, C - //#0xD9: - ,function (parentObj) { - parentObj.registerC |= 0x08; - } - //SET 3, D - //#0xDA: - ,function (parentObj) { - parentObj.registerD |= 0x08; - } - //SET 3, E - //#0xDB: - ,function (parentObj) { - parentObj.registerE |= 0x08; - } - //SET 3, H - //#0xDC: - ,function (parentObj) { - parentObj.registersHL |= 0x0800; - } - //SET 3, L - //#0xDD: - ,function (parentObj) { - parentObj.registersHL |= 0x08; - } - //SET 3, (HL) - //#0xDE: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x08); - } - //SET 3, A - //#0xDF: - ,function (parentObj) { - parentObj.registerA |= 0x08; - } - //SET 4, B - //#0xE0: - ,function (parentObj) { - parentObj.registerB |= 0x10; - } - //SET 4, C - //#0xE1: - ,function (parentObj) { - parentObj.registerC |= 0x10; - } - //SET 4, D - //#0xE2: - ,function (parentObj) { - parentObj.registerD |= 0x10; - } - //SET 4, E - //#0xE3: - ,function (parentObj) { - parentObj.registerE |= 0x10; - } - //SET 4, H - //#0xE4: - ,function (parentObj) { - parentObj.registersHL |= 0x1000; - } - //SET 4, L - //#0xE5: - ,function (parentObj) { - parentObj.registersHL |= 0x10; - } - //SET 4, (HL) - //#0xE6: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x10); - } - //SET 4, A - //#0xE7: - ,function (parentObj) { - parentObj.registerA |= 0x10; - } - //SET 5, B - //#0xE8: - ,function (parentObj) { - parentObj.registerB |= 0x20; - } - //SET 5, C - //#0xE9: - ,function (parentObj) { - parentObj.registerC |= 0x20; - } - //SET 5, D - //#0xEA: - ,function (parentObj) { - parentObj.registerD |= 0x20; - } - //SET 5, E - //#0xEB: - ,function (parentObj) { - parentObj.registerE |= 0x20; - } - //SET 5, H - //#0xEC: - ,function (parentObj) { - parentObj.registersHL |= 0x2000; - } - //SET 5, L - //#0xED: - ,function (parentObj) { - parentObj.registersHL |= 0x20; - } - //SET 5, (HL) - //#0xEE: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x20); - } - //SET 5, A - //#0xEF: - ,function (parentObj) { - parentObj.registerA |= 0x20; - } - //SET 6, B - //#0xF0: - ,function (parentObj) { - parentObj.registerB |= 0x40; - } - //SET 6, C - //#0xF1: - ,function (parentObj) { - parentObj.registerC |= 0x40; - } - //SET 6, D - //#0xF2: - ,function (parentObj) { - parentObj.registerD |= 0x40; - } - //SET 6, E - //#0xF3: - ,function (parentObj) { - parentObj.registerE |= 0x40; - } - //SET 6, H - //#0xF4: - ,function (parentObj) { - parentObj.registersHL |= 0x4000; - } - //SET 6, L - //#0xF5: - ,function (parentObj) { - parentObj.registersHL |= 0x40; - } - //SET 6, (HL) - //#0xF6: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x40); - } - //SET 6, A - //#0xF7: - ,function (parentObj) { - parentObj.registerA |= 0x40; - } - //SET 7, B - //#0xF8: - ,function (parentObj) { - parentObj.registerB |= 0x80; - } - //SET 7, C - //#0xF9: - ,function (parentObj) { - parentObj.registerC |= 0x80; - } - //SET 7, D - //#0xFA: - ,function (parentObj) { - parentObj.registerD |= 0x80; - } - //SET 7, E - //#0xFB: - ,function (parentObj) { - parentObj.registerE |= 0x80; - } - //SET 7, H - //#0xFC: - ,function (parentObj) { - parentObj.registersHL |= 0x8000; - } - //SET 7, L - //#0xFD: - ,function (parentObj) { - parentObj.registersHL |= 0x80; - } - //SET 7, (HL) - //#0xFE: - ,function (parentObj) { - parentObj.memoryWriter[parentObj.registersHL](parentObj, parentObj.registersHL, parentObj.memoryReader[parentObj.registersHL](parentObj, parentObj.registersHL) | 0x80); - } - //SET 7, A - //#0xFF: - ,function (parentObj) { - parentObj.registerA |= 0x80; - } -]; -GameBoyCore.prototype.TICKTable = [ //Number of machine cycles for each instruction: -/* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F*/ - 4, 12, 8, 8, 4, 4, 8, 4, 20, 8, 8, 8, 4, 4, 8, 4, //0 - 4, 12, 8, 8, 4, 4, 8, 4, 12, 8, 8, 8, 4, 4, 8, 4, //1 - 8, 12, 8, 8, 4, 4, 8, 4, 8, 8, 8, 8, 4, 4, 8, 4, //2 - 8, 12, 8, 8, 12, 12, 12, 4, 8, 8, 8, 8, 4, 4, 8, 4, //3 - - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, //4 - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, //5 - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, //6 - 8, 8, 8, 8, 8, 8, 4, 8, 4, 4, 4, 4, 4, 4, 8, 4, //7 - - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, //8 - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, //9 - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, //A - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, //B - - 8, 12, 12, 16, 12, 16, 8, 16, 8, 16, 12, 0, 12, 24, 8, 16, //C - 8, 12, 12, 4, 12, 16, 8, 16, 8, 16, 12, 4, 12, 4, 8, 16, //D - 12, 12, 8, 4, 4, 16, 8, 16, 16, 4, 16, 4, 4, 4, 8, 16, //E - 12, 12, 8, 4, 4, 16, 8, 16, 12, 8, 16, 4, 0, 4, 8, 16 //F -]; -GameBoyCore.prototype.SecondaryTICKTable = [ //Number of machine cycles for each 0xCBXX instruction: -/* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F*/ - 8, 8, 8, 8, 8, 8, 16, 8, 8, 8, 8, 8, 8, 8, 16, 8, //0 - 8, 8, 8, 8, 8, 8, 16, 8, 8, 8, 8, 8, 8, 8, 16, 8, //1 - 8, 8, 8, 8, 8, 8, 16, 8, 8, 8, 8, 8, 8, 8, 16, 8, //2 - 8, 8, 8, 8, 8, 8, 16, 8, 8, 8, 8, 8, 8, 8, 16, 8, //3 - - 8, 8, 8, 8, 8, 8, 12, 8, 8, 8, 8, 8, 8, 8, 12, 8, //4 - 8, 8, 8, 8, 8, 8, 12, 8, 8, 8, 8, 8, 8, 8, 12, 8, //5 - 8, 8, 8, 8, 8, 8, 12, 8, 8, 8, 8, 8, 8, 8, 12, 8, //6 - 8, 8, 8, 8, 8, 8, 12, 8, 8, 8, 8, 8, 8, 8, 12, 8, //7 - - 8, 8, 8, 8, 8, 8, 16, 8, 8, 8, 8, 8, 8, 8, 16, 8, //8 - 8, 8, 8, 8, 8, 8, 16, 8, 8, 8, 8, 8, 8, 8, 16, 8, //9 - 8, 8, 8, 8, 8, 8, 16, 8, 8, 8, 8, 8, 8, 8, 16, 8, //A - 8, 8, 8, 8, 8, 8, 16, 8, 8, 8, 8, 8, 8, 8, 16, 8, //B - - 8, 8, 8, 8, 8, 8, 16, 8, 8, 8, 8, 8, 8, 8, 16, 8, //C - 8, 8, 8, 8, 8, 8, 16, 8, 8, 8, 8, 8, 8, 8, 16, 8, //D - 8, 8, 8, 8, 8, 8, 16, 8, 8, 8, 8, 8, 8, 8, 16, 8, //E - 8, 8, 8, 8, 8, 8, 16, 8, 8, 8, 8, 8, 8, 8, 16, 8 //F -]; -GameBoyCore.prototype.saveSRAMState = function () { - if (!this.cBATT || this.MBCRam.length == 0) { - //No battery backup... - return []; - } - else { - //Return the MBC RAM for backup... - return this.fromTypedArray(this.MBCRam); - } -} -GameBoyCore.prototype.saveRTCState = function () { - if (!this.cTIMER) { - //No battery backup... - return []; - } - else { - //Return the MBC RAM for backup... - return [ - this.lastIteration, - this.RTCisLatched, - this.latchedSeconds, - this.latchedMinutes, - this.latchedHours, - this.latchedLDays, - this.latchedHDays, - this.RTCSeconds, - this.RTCMinutes, - this.RTCHours, - this.RTCDays, - this.RTCDayOverFlow, - this.RTCHALT - ]; - } -} -GameBoyCore.prototype.saveState = function () { - return [ - this.fromTypedArray(this.ROM), - this.inBootstrap, - this.registerA, - this.FZero, - this.FSubtract, - this.FHalfCarry, - this.FCarry, - this.registerB, - this.registerC, - this.registerD, - this.registerE, - this.registersHL, - this.stackPointer, - this.programCounter, - this.halt, - this.IME, - this.hdmaRunning, - this.CPUTicks, - this.doubleSpeedShifter, - this.fromTypedArray(this.memory), - this.fromTypedArray(this.MBCRam), - this.fromTypedArray(this.VRAM), - this.currVRAMBank, - this.fromTypedArray(this.GBCMemory), - this.MBC1Mode, - this.MBCRAMBanksEnabled, - this.currMBCRAMBank, - this.currMBCRAMBankPosition, - this.cGBC, - this.gbcRamBank, - this.gbcRamBankPosition, - this.ROMBank1offs, - this.currentROMBank, - this.cartridgeType, - this.name, - this.gameCode, - this.modeSTAT, - this.LYCMatchTriggerSTAT, - this.mode2TriggerSTAT, - this.mode1TriggerSTAT, - this.mode0TriggerSTAT, - this.LCDisOn, - this.gfxWindowCHRBankPosition, - this.gfxWindowDisplay, - this.gfxSpriteShow, - this.gfxSpriteNormalHeight, - this.gfxBackgroundCHRBankPosition, - this.gfxBackgroundBankOffset, - this.TIMAEnabled, - this.DIVTicks, - this.LCDTicks, - this.timerTicks, - this.TACClocker, - this.serialTimer, - this.serialShiftTimer, - this.serialShiftTimerAllocated, - this.IRQEnableDelay, - this.lastIteration, - this.cMBC1, - this.cMBC2, - this.cMBC3, - this.cMBC5, - this.cMBC7, - this.cSRAM, - this.cMMMO1, - this.cRUMBLE, - this.cCamera, - this.cTAMA5, - this.cHuC3, - this.cHuC1, - this.drewBlank, - this.fromTypedArray(this.frameBuffer), - this.bgEnabled, - this.BGPriorityEnabled, - this.channel1FrequencyTracker, - this.channel1FrequencyCounter, - this.channel1totalLength, - this.channel1envelopeVolume, - this.channel1envelopeType, - this.channel1envelopeSweeps, - this.channel1envelopeSweepsLast, - this.channel1consecutive, - this.channel1frequency, - this.channel1SweepFault, - this.channel1ShadowFrequency, - this.channel1timeSweep, - this.channel1lastTimeSweep, - this.channel1numSweep, - this.channel1frequencySweepDivider, - this.channel1decreaseSweep, - this.channel2FrequencyTracker, - this.channel2FrequencyCounter, - this.channel2totalLength, - this.channel2envelopeVolume, - this.channel2envelopeType, - this.channel2envelopeSweeps, - this.channel2envelopeSweepsLast, - this.channel2consecutive, - this.channel2frequency, - this.channel3canPlay, - this.channel3totalLength, - this.channel3patternType, - this.channel3frequency, - this.channel3consecutive, - this.fromTypedArray(this.channel3PCM), - this.channel4FrequencyPeriod, - this.channel4lastSampleLookup, - this.channel4totalLength, - this.channel4envelopeVolume, - this.channel4currentVolume, - this.channel4envelopeType, - this.channel4envelopeSweeps, - this.channel4envelopeSweepsLast, - this.channel4consecutive, - this.channel4BitRange, - this.soundMasterEnabled, - this.VinLeftChannelMasterVolume, - this.VinRightChannelMasterVolume, - this.leftChannel1, - this.leftChannel2, - this.leftChannel3, - this.leftChannel4, - this.rightChannel1, - this.rightChannel2, - this.rightChannel3, - this.rightChannel4, - this.channel1currentSampleLeft, - this.channel1currentSampleRight, - this.channel2currentSampleLeft, - this.channel2currentSampleRight, - this.channel3currentSampleLeft, - this.channel3currentSampleRight, - this.channel4currentSampleLeft, - this.channel4currentSampleRight, - this.channel1currentSampleLeftSecondary, - this.channel1currentSampleRightSecondary, - this.channel2currentSampleLeftSecondary, - this.channel2currentSampleRightSecondary, - this.channel3currentSampleLeftSecondary, - this.channel3currentSampleRightSecondary, - this.channel4currentSampleLeftSecondary, - this.channel4currentSampleRightSecondary, - this.channel1currentSampleLeftTrimary, - this.channel1currentSampleRightTrimary, - this.channel2currentSampleLeftTrimary, - this.channel2currentSampleRightTrimary, - this.mixerOutputCache, - this.channel1DutyTracker, - this.channel1CachedDuty, - this.channel2DutyTracker, - this.channel2CachedDuty, - this.channel1Enabled, - this.channel2Enabled, - this.channel3Enabled, - this.channel4Enabled, - this.sequencerClocks, - this.sequencePosition, - this.channel3Counter, - this.channel4Counter, - this.cachedChannel3Sample, - this.cachedChannel4Sample, - this.channel3FrequencyPeriod, - this.channel3lastSampleLookup, - this.actualScanLine, - this.lastUnrenderedLine, - this.queuedScanLines, - this.RTCisLatched, - this.latchedSeconds, - this.latchedMinutes, - this.latchedHours, - this.latchedLDays, - this.latchedHDays, - this.RTCSeconds, - this.RTCMinutes, - this.RTCHours, - this.RTCDays, - this.RTCDayOverFlow, - this.RTCHALT, - this.usedBootROM, - this.skipPCIncrement, - this.STATTracker, - this.gbcRamBankPositionECHO, - this.numRAMBanks, - this.windowY, - this.windowX, - this.fromTypedArray(this.gbcOBJRawPalette), - this.fromTypedArray(this.gbcBGRawPalette), - this.fromTypedArray(this.gbOBJPalette), - this.fromTypedArray(this.gbBGPalette), - this.fromTypedArray(this.gbcOBJPalette), - this.fromTypedArray(this.gbcBGPalette), - this.fromTypedArray(this.gbBGColorizedPalette), - this.fromTypedArray(this.gbOBJColorizedPalette), - this.fromTypedArray(this.cachedBGPaletteConversion), - this.fromTypedArray(this.cachedOBJPaletteConversion), - this.fromTypedArray(this.BGCHRBank1), - this.fromTypedArray(this.BGCHRBank2), - this.haltPostClocks, - this.interruptsRequested, - this.interruptsEnabled, - this.remainingClocks, - this.colorizedGBPalettes, - this.backgroundY, - this.backgroundX, - this.CPUStopped - ]; -} -GameBoyCore.prototype.returnFromState = function (returnedFrom) { - var index = 0; - var state = returnedFrom.slice(0); - this.ROM = this.toTypedArray(state[index++], "uint8"); - this.ROMBankEdge = Math.floor(this.ROM.length / 0x4000); - this.inBootstrap = state[index++]; - this.registerA = state[index++]; - this.FZero = state[index++]; - this.FSubtract = state[index++]; - this.FHalfCarry = state[index++]; - this.FCarry = state[index++]; - this.registerB = state[index++]; - this.registerC = state[index++]; - this.registerD = state[index++]; - this.registerE = state[index++]; - this.registersHL = state[index++]; - this.stackPointer = state[index++]; - this.programCounter = state[index++]; - this.halt = state[index++]; - this.IME = state[index++]; - this.hdmaRunning = state[index++]; - this.CPUTicks = state[index++]; - this.doubleSpeedShifter = state[index++]; - this.memory = this.toTypedArray(state[index++], "uint8"); - this.MBCRam = this.toTypedArray(state[index++], "uint8"); - this.VRAM = this.toTypedArray(state[index++], "uint8"); - this.currVRAMBank = state[index++]; - this.GBCMemory = this.toTypedArray(state[index++], "uint8"); - this.MBC1Mode = state[index++]; - this.MBCRAMBanksEnabled = state[index++]; - this.currMBCRAMBank = state[index++]; - this.currMBCRAMBankPosition = state[index++]; - this.cGBC = state[index++]; - this.gbcRamBank = state[index++]; - this.gbcRamBankPosition = state[index++]; - this.ROMBank1offs = state[index++]; - this.currentROMBank = state[index++]; - this.cartridgeType = state[index++]; - this.name = state[index++]; - this.gameCode = state[index++]; - this.modeSTAT = state[index++]; - this.LYCMatchTriggerSTAT = state[index++]; - this.mode2TriggerSTAT = state[index++]; - this.mode1TriggerSTAT = state[index++]; - this.mode0TriggerSTAT = state[index++]; - this.LCDisOn = state[index++]; - this.gfxWindowCHRBankPosition = state[index++]; - this.gfxWindowDisplay = state[index++]; - this.gfxSpriteShow = state[index++]; - this.gfxSpriteNormalHeight = state[index++]; - this.gfxBackgroundCHRBankPosition = state[index++]; - this.gfxBackgroundBankOffset = state[index++]; - this.TIMAEnabled = state[index++]; - this.DIVTicks = state[index++]; - this.LCDTicks = state[index++]; - this.timerTicks = state[index++]; - this.TACClocker = state[index++]; - this.serialTimer = state[index++]; - this.serialShiftTimer = state[index++]; - this.serialShiftTimerAllocated = state[index++]; - this.IRQEnableDelay = state[index++]; - this.lastIteration = state[index++]; - this.cMBC1 = state[index++]; - this.cMBC2 = state[index++]; - this.cMBC3 = state[index++]; - this.cMBC5 = state[index++]; - this.cMBC7 = state[index++]; - this.cSRAM = state[index++]; - this.cMMMO1 = state[index++]; - this.cRUMBLE = state[index++]; - this.cCamera = state[index++]; - this.cTAMA5 = state[index++]; - this.cHuC3 = state[index++]; - this.cHuC1 = state[index++]; - this.drewBlank = state[index++]; - this.frameBuffer = this.toTypedArray(state[index++], "int32"); - this.bgEnabled = state[index++]; - this.BGPriorityEnabled = state[index++]; - this.channel1FrequencyTracker = state[index++]; - this.channel1FrequencyCounter = state[index++]; - this.channel1totalLength = state[index++]; - this.channel1envelopeVolume = state[index++]; - this.channel1envelopeType = state[index++]; - this.channel1envelopeSweeps = state[index++]; - this.channel1envelopeSweepsLast = state[index++]; - this.channel1consecutive = state[index++]; - this.channel1frequency = state[index++]; - this.channel1SweepFault = state[index++]; - this.channel1ShadowFrequency = state[index++]; - this.channel1timeSweep = state[index++]; - this.channel1lastTimeSweep = state[index++]; - this.channel1numSweep = state[index++]; - this.channel1frequencySweepDivider = state[index++]; - this.channel1decreaseSweep = state[index++]; - this.channel2FrequencyTracker = state[index++]; - this.channel2FrequencyCounter = state[index++]; - this.channel2totalLength = state[index++]; - this.channel2envelopeVolume = state[index++]; - this.channel2envelopeType = state[index++]; - this.channel2envelopeSweeps = state[index++]; - this.channel2envelopeSweepsLast = state[index++]; - this.channel2consecutive = state[index++]; - this.channel2frequency = state[index++]; - this.channel3canPlay = state[index++]; - this.channel3totalLength = state[index++]; - this.channel3patternType = state[index++]; - this.channel3frequency = state[index++]; - this.channel3consecutive = state[index++]; - this.channel3PCM = this.toTypedArray(state[index++], "int8"); - this.channel4FrequencyPeriod = state[index++]; - this.channel4lastSampleLookup = state[index++]; - this.channel4totalLength = state[index++]; - this.channel4envelopeVolume = state[index++]; - this.channel4currentVolume = state[index++]; - this.channel4envelopeType = state[index++]; - this.channel4envelopeSweeps = state[index++]; - this.channel4envelopeSweepsLast = state[index++]; - this.channel4consecutive = state[index++]; - this.channel4BitRange = state[index++]; - this.soundMasterEnabled = state[index++]; - this.VinLeftChannelMasterVolume = state[index++]; - this.VinRightChannelMasterVolume = state[index++]; - this.leftChannel1 = state[index++]; - this.leftChannel2 = state[index++]; - this.leftChannel3 = state[index++]; - this.leftChannel4 = state[index++]; - this.rightChannel1 = state[index++]; - this.rightChannel2 = state[index++]; - this.rightChannel3 = state[index++]; - this.rightChannel4 = state[index++]; - this.channel1currentSampleLeft = state[index++]; - this.channel1currentSampleRight = state[index++]; - this.channel2currentSampleLeft = state[index++]; - this.channel2currentSampleRight = state[index++]; - this.channel3currentSampleLeft = state[index++]; - this.channel3currentSampleRight = state[index++]; - this.channel4currentSampleLeft = state[index++]; - this.channel4currentSampleRight = state[index++]; - this.channel1currentSampleLeftSecondary = state[index++]; - this.channel1currentSampleRightSecondary = state[index++]; - this.channel2currentSampleLeftSecondary = state[index++]; - this.channel2currentSampleRightSecondary = state[index++]; - this.channel3currentSampleLeftSecondary = state[index++]; - this.channel3currentSampleRightSecondary = state[index++]; - this.channel4currentSampleLeftSecondary = state[index++]; - this.channel4currentSampleRightSecondary = state[index++]; - this.channel1currentSampleLeftTrimary = state[index++]; - this.channel1currentSampleRightTrimary = state[index++]; - this.channel2currentSampleLeftTrimary = state[index++]; - this.channel2currentSampleRightTrimary = state[index++]; - this.mixerOutputCache = state[index++]; - this.channel1DutyTracker = state[index++]; - this.channel1CachedDuty = state[index++]; - this.channel2DutyTracker = state[index++]; - this.channel2CachedDuty = state[index++]; - this.channel1Enabled = state[index++]; - this.channel2Enabled = state[index++]; - this.channel3Enabled = state[index++]; - this.channel4Enabled = state[index++]; - this.sequencerClocks = state[index++]; - this.sequencePosition = state[index++]; - this.channel3Counter = state[index++]; - this.channel4Counter = state[index++]; - this.cachedChannel3Sample = state[index++]; - this.cachedChannel4Sample = state[index++]; - this.channel3FrequencyPeriod = state[index++]; - this.channel3lastSampleLookup = state[index++]; - this.actualScanLine = state[index++]; - this.lastUnrenderedLine = state[index++]; - this.queuedScanLines = state[index++]; - this.RTCisLatched = state[index++]; - this.latchedSeconds = state[index++]; - this.latchedMinutes = state[index++]; - this.latchedHours = state[index++]; - this.latchedLDays = state[index++]; - this.latchedHDays = state[index++]; - this.RTCSeconds = state[index++]; - this.RTCMinutes = state[index++]; - this.RTCHours = state[index++]; - this.RTCDays = state[index++]; - this.RTCDayOverFlow = state[index++]; - this.RTCHALT = state[index++]; - this.usedBootROM = state[index++]; - this.skipPCIncrement = state[index++]; - this.STATTracker = state[index++]; - this.gbcRamBankPositionECHO = state[index++]; - this.numRAMBanks = state[index++]; - this.windowY = state[index++]; - this.windowX = state[index++]; - this.gbcOBJRawPalette = this.toTypedArray(state[index++], "uint8"); - this.gbcBGRawPalette = this.toTypedArray(state[index++], "uint8"); - this.gbOBJPalette = this.toTypedArray(state[index++], "int32"); - this.gbBGPalette = this.toTypedArray(state[index++], "int32"); - this.gbcOBJPalette = this.toTypedArray(state[index++], "int32"); - this.gbcBGPalette = this.toTypedArray(state[index++], "int32"); - this.gbBGColorizedPalette = this.toTypedArray(state[index++], "int32"); - this.gbOBJColorizedPalette = this.toTypedArray(state[index++], "int32"); - this.cachedBGPaletteConversion = this.toTypedArray(state[index++], "int32"); - this.cachedOBJPaletteConversion = this.toTypedArray(state[index++], "int32"); - this.BGCHRBank1 = this.toTypedArray(state[index++], "uint8"); - this.BGCHRBank2 = this.toTypedArray(state[index++], "uint8"); - this.haltPostClocks = state[index++]; - this.interruptsRequested = state[index++]; - this.interruptsEnabled = state[index++]; - this.checkIRQMatching(); - this.remainingClocks = state[index++]; - this.colorizedGBPalettes = state[index++]; - this.backgroundY = state[index++]; - this.backgroundX = state[index++]; - this.CPUStopped = state[index]; - this.fromSaveState = true; - this.TICKTable = this.toTypedArray(this.TICKTable, "uint8"); - this.SecondaryTICKTable = this.toTypedArray(this.SecondaryTICKTable, "uint8"); - this.initializeReferencesFromSaveState(); - this.memoryReadJumpCompile(); - this.memoryWriteJumpCompile(); - this.initLCD(); - this.initSound(); - this.noiseSampleTable = (this.channel4BitRange == 0x7FFF) ? this.LSFR15Table : this.LSFR7Table; - this.channel4VolumeShifter = (this.channel4BitRange == 0x7FFF) ? 15 : 7; -} -GameBoyCore.prototype.returnFromRTCState = function () { - if (typeof this.openRTC == "function" && this.cTIMER) { - var rtcData = this.openRTC(this.name); - var index = 0; - this.lastIteration = rtcData[index++]; - this.RTCisLatched = rtcData[index++]; - this.latchedSeconds = rtcData[index++]; - this.latchedMinutes = rtcData[index++]; - this.latchedHours = rtcData[index++]; - this.latchedLDays = rtcData[index++]; - this.latchedHDays = rtcData[index++]; - this.RTCSeconds = rtcData[index++]; - this.RTCMinutes = rtcData[index++]; - this.RTCHours = rtcData[index++]; - this.RTCDays = rtcData[index++]; - this.RTCDayOverFlow = rtcData[index++]; - this.RTCHALT = rtcData[index]; - } -} - -GameBoyCore.prototype.start = function () { - this.initMemory(); //Write the startup memory. - this.ROMLoad(); //Load the ROM into memory and get cartridge information from it. - this.initLCD(); //Initialize the graphics. - this.initSound(); //Sound object initialization. - this.run(); //Start the emulation. -} -GameBoyCore.prototype.initMemory = function () { - //Initialize the RAM: - this.memory = this.getTypedArray(0x10000, 0, "uint8"); - this.frameBuffer = this.getTypedArray(23040, 0xF8F8F8, "int32"); - this.BGCHRBank1 = this.getTypedArray(0x800, 0, "uint8"); - this.TICKTable = this.toTypedArray(this.TICKTable, "uint8"); - this.SecondaryTICKTable = this.toTypedArray(this.SecondaryTICKTable, "uint8"); - this.channel3PCM = this.getTypedArray(0x20, 0, "int8"); -} -GameBoyCore.prototype.generateCacheArray = function (tileAmount) { - var tileArray = []; - var tileNumber = 0; - while (tileNumber < tileAmount) { - tileArray[tileNumber++] = this.getTypedArray(64, 0, "uint8"); - } - return tileArray; -} -GameBoyCore.prototype.initSkipBootstrap = function () { - //Fill in the boot ROM set register values - //Default values to the GB boot ROM values, then fill in the GBC boot ROM values after ROM loading - var index = 0xFF; - while (index >= 0) { - if (index >= 0x30 && index < 0x40) { - this.memoryWrite(0xFF00 | index, this.ffxxDump[index]); - } - else { - switch (index) { - case 0x00: - case 0x01: - case 0x02: - case 0x05: - case 0x07: - case 0x0F: - case 0xFF: - this.memoryWrite(0xFF00 | index, this.ffxxDump[index]); - break; - default: - this.memory[0xFF00 | index] = this.ffxxDump[index]; - } - } - --index; - } - if (this.cGBC) { - this.memory[0xFF6C] = 0xFE; - this.memory[0xFF74] = 0xFE; - } - else { - this.memory[0xFF48] = 0xFF; - this.memory[0xFF49] = 0xFF; - this.memory[0xFF6C] = 0xFF; - this.memory[0xFF74] = 0xFF; - } - //Start as an unset device: - cout("Starting without the GBC boot ROM.", 0); - this.registerA = (this.cGBC) ? 0x11 : 0x1; - this.registerB = 0; - this.registerC = 0x13; - this.registerD = 0; - this.registerE = 0xD8; - this.FZero = true; - this.FSubtract = false; - this.FHalfCarry = true; - this.FCarry = true; - this.registersHL = 0x014D; - this.LCDCONTROL = this.LINECONTROL; - this.IME = false; - this.IRQLineMatched = 0; - this.interruptsRequested = 225; - this.interruptsEnabled = 0; - this.hdmaRunning = false; - this.CPUTicks = 12; - this.STATTracker = 0; - this.modeSTAT = 1; - this.spriteCount = 252; - this.LYCMatchTriggerSTAT = false; - this.mode2TriggerSTAT = false; - this.mode1TriggerSTAT = false; - this.mode0TriggerSTAT = false; - this.LCDisOn = true; - this.channel1FrequencyTracker = 0x2000; - this.channel1DutyTracker = 0; - this.channel1CachedDuty = this.dutyLookup[2]; - this.channel1totalLength = 0; - this.channel1envelopeVolume = 0; - this.channel1envelopeType = false; - this.channel1envelopeSweeps = 0; - this.channel1envelopeSweepsLast = 0; - this.channel1consecutive = true; - this.channel1frequency = 1985; - this.channel1SweepFault = true; - this.channel1ShadowFrequency = 1985; - this.channel1timeSweep = 1; - this.channel1lastTimeSweep = 0; - this.channel1numSweep = 0; - this.channel1frequencySweepDivider = 0; - this.channel1decreaseSweep = false; - this.channel2FrequencyTracker = 0x2000; - this.channel2DutyTracker = 0; - this.channel2CachedDuty = this.dutyLookup[2]; - this.channel2totalLength = 0; - this.channel2envelopeVolume = 0; - this.channel2envelopeType = false; - this.channel2envelopeSweeps = 0; - this.channel2envelopeSweepsLast = 0; - this.channel2consecutive = true; - this.channel2frequency = 0; - this.channel3canPlay = false; - this.channel3totalLength = 0; - this.channel3patternType = 4; - this.channel3frequency = 0; - this.channel3consecutive = true; - this.channel3Counter = 0x418; - this.channel4FrequencyPeriod = 8; - this.channel4totalLength = 0; - this.channel4envelopeVolume = 0; - this.channel4currentVolume = 0; - this.channel4envelopeType = false; - this.channel4envelopeSweeps = 0; - this.channel4envelopeSweepsLast = 0; - this.channel4consecutive = true; - this.channel4BitRange = 0x7FFF; - this.channel4VolumeShifter = 15; - this.channel1FrequencyCounter = 0x200; - this.channel2FrequencyCounter = 0x200; - this.channel3Counter = 0x800; - this.channel3FrequencyPeriod = 0x800; - this.channel3lastSampleLookup = 0; - this.channel4lastSampleLookup = 0; - this.VinLeftChannelMasterVolume = 1; - this.VinRightChannelMasterVolume = 1; - this.soundMasterEnabled = true; - this.leftChannel1 = true; - this.leftChannel2 = true; - this.leftChannel3 = true; - this.leftChannel4 = true; - this.rightChannel1 = true; - this.rightChannel2 = true; - this.rightChannel3 = false; - this.rightChannel4 = false; - this.DIVTicks = 27044; - this.LCDTicks = 160; - this.timerTicks = 0; - this.TIMAEnabled = false; - this.TACClocker = 1024; - this.serialTimer = 0; - this.serialShiftTimer = 0; - this.serialShiftTimerAllocated = 0; - this.IRQEnableDelay = 0; - this.actualScanLine = 144; - this.lastUnrenderedLine = 0; - this.gfxWindowDisplay = false; - this.gfxSpriteShow = false; - this.gfxSpriteNormalHeight = true; - this.bgEnabled = true; - this.BGPriorityEnabled = true; - this.gfxWindowCHRBankPosition = 0; - this.gfxBackgroundCHRBankPosition = 0; - this.gfxBackgroundBankOffset = 0; - this.windowY = 0; - this.windowX = 0; - this.drewBlank = 0; - this.midScanlineOffset = -1; - this.currentX = 0; -} -GameBoyCore.prototype.initBootstrap = function () { - //Start as an unset device: - cout("Starting the selected boot ROM.", 0); - this.programCounter = 0; - this.stackPointer = 0; - this.IME = false; - this.LCDTicks = 0; - this.DIVTicks = 0; - this.registerA = 0; - this.registerB = 0; - this.registerC = 0; - this.registerD = 0; - this.registerE = 0; - this.FZero = this.FSubtract = this.FHalfCarry = this.FCarry = false; - this.registersHL = 0; - this.leftChannel1 = false; - this.leftChannel2 = false; - this.leftChannel3 = false; - this.leftChannel4 = false; - this.rightChannel1 = false; - this.rightChannel2 = false; - this.rightChannel3 = false; - this.rightChannel4 = false; - this.channel2frequency = this.channel1frequency = 0; - this.channel4consecutive = this.channel2consecutive = this.channel1consecutive = false; - this.VinLeftChannelMasterVolume = 8; - this.VinRightChannelMasterVolume = 8; - this.memory[0xFF00] = 0xF; //Set the joypad state. -} -GameBoyCore.prototype.ROMLoad = function () { - //Load the first two ROM banks (0x0000 - 0x7FFF) into regular gameboy memory: - this.ROM = []; - this.usedBootROM = settings[1]; - var maxLength = this.ROMImage.length; - if (maxLength < 0x4000) { - throw(new Error("ROM image size too small.")); - } - this.ROM = this.getTypedArray(maxLength, 0, "uint8"); - var romIndex = 0; - if (this.usedBootROM) { - if (!settings[11]) { - //Patch in the GBC boot ROM into the memory map: - for (; romIndex < 0x100; ++romIndex) { - this.memory[romIndex] = this.GBCBOOTROM[romIndex]; //Load in the GameBoy Color BOOT ROM. - this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF); //Decode the ROM binary for the switch out. - } - for (; romIndex < 0x200; ++romIndex) { - this.memory[romIndex] = this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF); //Load in the game ROM. - } - for (; romIndex < 0x900; ++romIndex) { - this.memory[romIndex] = this.GBCBOOTROM[romIndex - 0x100]; //Load in the GameBoy Color BOOT ROM. - this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF); //Decode the ROM binary for the switch out. - } - this.usedGBCBootROM = true; - } - else { - //Patch in the GBC boot ROM into the memory map: - for (; romIndex < 0x100; ++romIndex) { - this.memory[romIndex] = this.GBBOOTROM[romIndex]; //Load in the GameBoy Color BOOT ROM. - this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF); //Decode the ROM binary for the switch out. - } - } - for (; romIndex < 0x4000; ++romIndex) { - this.memory[romIndex] = this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF); //Load in the game ROM. - } - } - else { - //Don't load in the boot ROM: - for (; romIndex < 0x4000; ++romIndex) { - this.memory[romIndex] = this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF); //Load in the game ROM. - } - } - //Finish the decoding of the ROM binary: - for (; romIndex < maxLength; ++romIndex) { - this.ROM[romIndex] = (this.ROMImage.charCodeAt(romIndex) & 0xFF); - } - this.ROMBankEdge = Math.floor(this.ROM.length / 0x4000); - //Set up the emulator for the cartidge specifics: - this.interpretCartridge(); - //Check for IRQ matching upon initialization: - this.checkIRQMatching(); -} -GameBoyCore.prototype.getROMImage = function () { - //Return the binary version of the ROM image currently running: - if (this.ROMImage.length > 0) { - return this.ROMImage.length; - } - var length = this.ROM.length; - for (var index = 0; index < length; index++) { - this.ROMImage += String.fromCharCode(this.ROM[index]); - } - return this.ROMImage; -} -GameBoyCore.prototype.interpretCartridge = function () { - // ROM name - for (var index = 0x134; index < 0x13F; index++) { - if (this.ROMImage.charCodeAt(index) > 0) { - this.name += this.ROMImage[index]; - } - } - // ROM game code (for newer games) - for (var index = 0x13F; index < 0x143; index++) { - if (this.ROMImage.charCodeAt(index) > 0) { - this.gameCode += this.ROMImage[index]; - } - } - cout("Game Title: " + this.name + "[" + this.gameCode + "][" + this.ROMImage[0x143] + "]", 0); - cout("Game Code: " + this.gameCode, 0); - // Cartridge type - this.cartridgeType = this.ROM[0x147]; - cout("Cartridge type #" + this.cartridgeType, 0); - //Map out ROM cartridge sub-types. - var MBCType = ""; - switch (this.cartridgeType) { - case 0x00: - //ROM w/o bank switching - if (!settings[9]) { - MBCType = "ROM"; - break; - } - case 0x01: - this.cMBC1 = true; - MBCType = "MBC1"; - break; - case 0x02: - this.cMBC1 = true; - this.cSRAM = true; - MBCType = "MBC1 + SRAM"; - break; - case 0x03: - this.cMBC1 = true; - this.cSRAM = true; - this.cBATT = true; - MBCType = "MBC1 + SRAM + BATT"; - break; - case 0x05: - this.cMBC2 = true; - MBCType = "MBC2"; - break; - case 0x06: - this.cMBC2 = true; - this.cBATT = true; - MBCType = "MBC2 + BATT"; - break; - case 0x08: - this.cSRAM = true; - MBCType = "ROM + SRAM"; - break; - case 0x09: - this.cSRAM = true; - this.cBATT = true; - MBCType = "ROM + SRAM + BATT"; - break; - case 0x0B: - this.cMMMO1 = true; - MBCType = "MMMO1"; - break; - case 0x0C: - this.cMMMO1 = true; - this.cSRAM = true; - MBCType = "MMMO1 + SRAM"; - break; - case 0x0D: - this.cMMMO1 = true; - this.cSRAM = true; - this.cBATT = true; - MBCType = "MMMO1 + SRAM + BATT"; - break; - case 0x0F: - this.cMBC3 = true; - this.cTIMER = true; - this.cBATT = true; - MBCType = "MBC3 + TIMER + BATT"; - break; - case 0x10: - this.cMBC3 = true; - this.cTIMER = true; - this.cBATT = true; - this.cSRAM = true; - MBCType = "MBC3 + TIMER + BATT + SRAM"; - break; - case 0x11: - this.cMBC3 = true; - MBCType = "MBC3"; - break; - case 0x12: - this.cMBC3 = true; - this.cSRAM = true; - MBCType = "MBC3 + SRAM"; - break; - case 0x13: - this.cMBC3 = true; - this.cSRAM = true; - this.cBATT = true; - MBCType = "MBC3 + SRAM + BATT"; - break; - case 0x19: - this.cMBC5 = true; - MBCType = "MBC5"; - break; - case 0x1A: - this.cMBC5 = true; - this.cSRAM = true; - MBCType = "MBC5 + SRAM"; - break; - case 0x1B: - this.cMBC5 = true; - this.cSRAM = true; - this.cBATT = true; - MBCType = "MBC5 + SRAM + BATT"; - break; - case 0x1C: - this.cRUMBLE = true; - MBCType = "RUMBLE"; - break; - case 0x1D: - this.cRUMBLE = true; - this.cSRAM = true; - MBCType = "RUMBLE + SRAM"; - break; - case 0x1E: - this.cRUMBLE = true; - this.cSRAM = true; - this.cBATT = true; - MBCType = "RUMBLE + SRAM + BATT"; - break; - case 0x1F: - this.cCamera = true; - MBCType = "GameBoy Camera"; - break; - case 0x22: - this.cMBC7 = true; - this.cSRAM = true; - this.cBATT = true; - MBCType = "MBC7 + SRAM + BATT"; - break; - case 0xFD: - this.cTAMA5 = true; - MBCType = "TAMA5"; - break; - case 0xFE: - this.cHuC3 = true; - MBCType = "HuC3"; - break; - case 0xFF: - this.cHuC1 = true; - MBCType = "HuC1"; - break; - default: - MBCType = "Unknown"; - cout("Cartridge type is unknown.", 2); - pause(); - } - cout("Cartridge Type: " + MBCType + ".", 0); - // ROM and RAM banks - this.numROMBanks = this.ROMBanks[this.ROM[0x148]]; - cout(this.numROMBanks + " ROM banks.", 0); - switch (this.RAMBanks[this.ROM[0x149]]) { - case 0: - cout("No RAM banking requested for allocation or MBC is of type 2.", 0); - break; - case 2: - cout("1 RAM bank requested for allocation.", 0); - break; - case 3: - cout("4 RAM banks requested for allocation.", 0); - break; - case 4: - cout("16 RAM banks requested for allocation.", 0); - break; - default: - cout("RAM bank amount requested is unknown, will use maximum allowed by specified MBC type.", 0); - } - //Check the GB/GBC mode byte: - if (!this.usedBootROM) { - switch (this.ROM[0x143]) { - case 0x00: //Only GB mode - this.cGBC = false; - cout("Only GB mode detected.", 0); - break; - case 0x32: //Exception to the GBC identifying code: - if (!settings[2] && this.name + this.gameCode + this.ROM[0x143] == "Game and Watch 50") { - this.cGBC = true; - cout("Created a boot exception for Game and Watch Gallery 2 (GBC ID byte is wrong on the cartridge).", 1); - } - else { - this.cGBC = false; - } - break; - case 0x80: //Both GB + GBC modes - this.cGBC = !settings[2]; - cout("GB and GBC mode detected.", 0); - break; - case 0xC0: //Only GBC mode - this.cGBC = true; - cout("Only GBC mode detected.", 0); - break; - default: - this.cGBC = false; - cout("Unknown GameBoy game type code #" + this.ROM[0x143] + ", defaulting to GB mode (Old games don't have a type code).", 1); - } - this.inBootstrap = false; - this.setupRAM(); //CPU/(V)RAM initialization. - this.initSkipBootstrap(); - this.initializeAudioStartState(); // Line added for benchmarking. - } - else { - this.cGBC = this.usedGBCBootROM; //Allow the GBC boot ROM to run in GBC mode... - this.setupRAM(); //CPU/(V)RAM initialization. - this.initBootstrap(); - } - this.initializeModeSpecificArrays(); - //License Code Lookup: - var cOldLicense = this.ROM[0x14B]; - var cNewLicense = (this.ROM[0x144] & 0xFF00) | (this.ROM[0x145] & 0xFF); - if (cOldLicense != 0x33) { - //Old Style License Header - cout("Old style license code: " + cOldLicense, 0); - } - else { - //New Style License Header - cout("New style license code: " + cNewLicense, 0); - } - this.ROMImage = ""; //Memory consumption reduction. -} -GameBoyCore.prototype.disableBootROM = function () { - //Remove any traces of the boot ROM from ROM memory. - for (var index = 0; index < 0x100; ++index) { - this.memory[index] = this.ROM[index]; //Replace the GameBoy or GameBoy Color boot ROM with the game ROM. - } - if (this.usedGBCBootROM) { - //Remove any traces of the boot ROM from ROM memory. - for (index = 0x200; index < 0x900; ++index) { - this.memory[index] = this.ROM[index]; //Replace the GameBoy Color boot ROM with the game ROM. - } - if (!this.cGBC) { - //Clean up the post-boot (GB mode only) state: - this.GBCtoGBModeAdjust(); - } - else { - this.recompileBootIOWriteHandling(); - } - } - else { - this.recompileBootIOWriteHandling(); - } -} -GameBoyCore.prototype.initializeTiming = function () { - //Emulator Timing: - this.baseCPUCyclesPerIteration = 0x80000 / 0x7D * settings[6]; - this.CPUCyclesTotalRoundoff = this.baseCPUCyclesPerIteration % 4; - this.CPUCyclesTotalBase = this.CPUCyclesTotal = (this.baseCPUCyclesPerIteration - this.CPUCyclesTotalRoundoff) | 0; - this.CPUCyclesTotalCurrent = 0; -} -GameBoyCore.prototype.setupRAM = function () { - //Setup the auxilliary/switchable RAM: - if (this.cMBC2) { - this.numRAMBanks = 1 / 16; - } - else if (this.cMBC1 || this.cRUMBLE || this.cMBC3 || this.cHuC3) { - this.numRAMBanks = 4; - } - else if (this.cMBC5) { - this.numRAMBanks = 16; - } - else if (this.cSRAM) { - this.numRAMBanks = 1; - } - if (this.numRAMBanks > 0) { - if (!this.MBCRAMUtilized()) { - //For ROM and unknown MBC cartridges using the external RAM: - this.MBCRAMBanksEnabled = true; - } - //Switched RAM Used - var MBCRam = (typeof this.openMBC == "function") ? this.openMBC(this.name) : []; - if (MBCRam.length > 0) { - //Flash the SRAM into memory: - this.MBCRam = this.toTypedArray(MBCRam, "uint8"); - } - else { - this.MBCRam = this.getTypedArray(this.numRAMBanks * 0x2000, 0, "uint8"); - } - } - cout("Actual bytes of MBC RAM allocated: " + (this.numRAMBanks * 0x2000), 0); - this.returnFromRTCState(); - //Setup the RAM for GBC mode. - if (this.cGBC) { - this.VRAM = this.getTypedArray(0x2000, 0, "uint8"); - this.GBCMemory = this.getTypedArray(0x7000, 0, "uint8"); - } - this.memoryReadJumpCompile(); - this.memoryWriteJumpCompile(); -} -GameBoyCore.prototype.MBCRAMUtilized = function () { - return this.cMBC1 || this.cMBC2 || this.cMBC3 || this.cMBC5 || this.cMBC7 || this.cRUMBLE; -} -GameBoyCore.prototype.recomputeDimension = function () { - initNewCanvas(); - //Cache some dimension info: - this.onscreenWidth = this.canvas.width; - this.onscreenHeight = this.canvas.height; - // The following line was modified for benchmarking: - if (GameBoyWindow && GameBoyWindow.mozRequestAnimationFrame) { - //Firefox slowness hack: - this.canvas.width = this.onscreenWidth = (!settings[12]) ? 160 : this.canvas.width; - this.canvas.height = this.onscreenHeight = (!settings[12]) ? 144 : this.canvas.height; - } - else { - this.onscreenWidth = this.canvas.width; - this.onscreenHeight = this.canvas.height; - } - this.offscreenWidth = (!settings[12]) ? 160 : this.canvas.width; - this.offscreenHeight = (!settings[12]) ? 144 : this.canvas.height; - this.offscreenRGBCount = this.offscreenWidth * this.offscreenHeight * 4; -} -GameBoyCore.prototype.initLCD = function () { - this.recomputeDimension(); - if (this.offscreenRGBCount != 92160) { - //Only create the resizer handle if we need it: - this.compileResizeFrameBufferFunction(); - } - else { - //Resizer not needed: - this.resizer = null; - } - try { - this.canvasOffscreen = new GameBoyCanvas(); // Line modified for benchmarking. - this.canvasOffscreen.width = this.offscreenWidth; - this.canvasOffscreen.height = this.offscreenHeight; - this.drawContextOffscreen = this.canvasOffscreen.getContext("2d"); - this.drawContextOnscreen = this.canvas.getContext("2d"); - //Get a CanvasPixelArray buffer: - try { - this.canvasBuffer = this.drawContextOffscreen.createImageData(this.offscreenWidth, this.offscreenHeight); - } - catch (error) { - cout("Falling back to the getImageData initialization (Error \"" + error.message + "\").", 1); - this.canvasBuffer = this.drawContextOffscreen.getImageData(0, 0, this.offscreenWidth, this.offscreenHeight); - } - var index = this.offscreenRGBCount; - while (index > 0) { - this.canvasBuffer.data[index -= 4] = 0xF8; - this.canvasBuffer.data[index + 1] = 0xF8; - this.canvasBuffer.data[index + 2] = 0xF8; - this.canvasBuffer.data[index + 3] = 0xFF; - } - this.graphicsBlit(); - this.canvas.style.visibility = "visible"; - if (this.swizzledFrame == null) { - this.swizzledFrame = this.getTypedArray(69120, 0xFF, "uint8"); - } - //Test the draw system and browser vblank latching: - this.drewFrame = true; //Copy the latest graphics to buffer. - this.requestDraw(); - } - catch (error) { - throw(new Error("HTML5 Canvas support required: " + error.message + "file: " + error.fileName + ", line: " + error.lineNumber)); - } -} -GameBoyCore.prototype.graphicsBlit = function () { - if (this.offscreenWidth == this.onscreenWidth && this.offscreenHeight == this.onscreenHeight) { - this.drawContextOnscreen.putImageData(this.canvasBuffer, 0, 0); - } - else { - this.drawContextOffscreen.putImageData(this.canvasBuffer, 0, 0); - this.drawContextOnscreen.drawImage(this.canvasOffscreen, 0, 0, this.onscreenWidth, this.onscreenHeight); - } -} -GameBoyCore.prototype.JoyPadEvent = function (key, down) { - if (down) { - this.JoyPad &= 0xFF ^ (1 << key); - if (!this.cGBC && (!this.usedBootROM || !this.usedGBCBootROM)) { - this.interruptsRequested |= 0x10; //A real GBC doesn't set this! - this.remainingClocks = 0; - this.checkIRQMatching(); - } - } - else { - this.JoyPad |= (1 << key); - } - this.memory[0xFF00] = (this.memory[0xFF00] & 0x30) + ((((this.memory[0xFF00] & 0x20) == 0) ? (this.JoyPad >> 4) : 0xF) & (((this.memory[0xFF00] & 0x10) == 0) ? (this.JoyPad & 0xF) : 0xF)); - this.CPUStopped = false; -} -GameBoyCore.prototype.GyroEvent = function (x, y) { - x *= -100; - x += 2047; - this.highX = x >> 8; - this.lowX = x & 0xFF; - y *= -100; - y += 2047; - this.highY = y >> 8; - this.lowY = y & 0xFF; -} -GameBoyCore.prototype.initSound = function () { - this.sampleSize = 0x400000 / 1000 * settings[6]; - this.machineOut = settings[13]; - if (settings[0]) { - try { - var parentObj = this; - this.audioHandle = new XAudioServer(2, 0x400000 / settings[13], 0, Math.max(this.sampleSize * settings[8] / settings[13], 8192) << 1, null, settings[14]); - this.initAudioBuffer(); - } - catch (error) { - cout("Audio system cannot run: " + error.message, 2); - settings[0] = false; - } - } - else if (this.audioHandle) { - //Mute the audio output, as it has an immediate silencing effect: - try { - this.audioHandle.changeVolume(0); - } - catch (error) { } - } -} -GameBoyCore.prototype.changeVolume = function () { - if (settings[0] && this.audioHandle) { - try { - this.audioHandle.changeVolume(settings[14]); - } - catch (error) { } - } -} -GameBoyCore.prototype.initAudioBuffer = function () { - this.audioIndex = 0; - this.bufferContainAmount = Math.max(this.sampleSize * settings[7] / settings[13], 4096) << 1; - this.numSamplesTotal = (this.sampleSize - (this.sampleSize % settings[13])) | 0; - this.currentBuffer = this.getTypedArray(this.numSamplesTotal, 0xF0F0, "int32"); - this.secondaryBuffer = this.getTypedArray((this.numSamplesTotal << 1) / settings[13], 0, "float32"); -} -GameBoyCore.prototype.intializeWhiteNoise = function () { - //Noise Sample Tables: - var randomFactor = 1; - //15-bit LSFR Cache Generation: - this.LSFR15Table = this.getTypedArray(0x80000, 0, "int8"); - var LSFR = 0x7FFF; //Seed value has all its bits set. - var LSFRShifted = 0x3FFF; - for (var index = 0; index < 0x8000; ++index) { - //Normalize the last LSFR value for usage: - randomFactor = 1 - (LSFR & 1); //Docs say it's the inverse. - //Cache the different volume level results: - this.LSFR15Table[0x08000 | index] = randomFactor; - this.LSFR15Table[0x10000 | index] = randomFactor * 0x2; - this.LSFR15Table[0x18000 | index] = randomFactor * 0x3; - this.LSFR15Table[0x20000 | index] = randomFactor * 0x4; - this.LSFR15Table[0x28000 | index] = randomFactor * 0x5; - this.LSFR15Table[0x30000 | index] = randomFactor * 0x6; - this.LSFR15Table[0x38000 | index] = randomFactor * 0x7; - this.LSFR15Table[0x40000 | index] = randomFactor * 0x8; - this.LSFR15Table[0x48000 | index] = randomFactor * 0x9; - this.LSFR15Table[0x50000 | index] = randomFactor * 0xA; - this.LSFR15Table[0x58000 | index] = randomFactor * 0xB; - this.LSFR15Table[0x60000 | index] = randomFactor * 0xC; - this.LSFR15Table[0x68000 | index] = randomFactor * 0xD; - this.LSFR15Table[0x70000 | index] = randomFactor * 0xE; - this.LSFR15Table[0x78000 | index] = randomFactor * 0xF; - //Recompute the LSFR algorithm: - LSFRShifted = LSFR >> 1; - LSFR = LSFRShifted | (((LSFRShifted ^ LSFR) & 0x1) << 14); - } - //7-bit LSFR Cache Generation: - this.LSFR7Table = this.getTypedArray(0x800, 0, "int8"); - LSFR = 0x7F; //Seed value has all its bits set. - for (index = 0; index < 0x80; ++index) { - //Normalize the last LSFR value for usage: - randomFactor = 1 - (LSFR & 1); //Docs say it's the inverse. - //Cache the different volume level results: - this.LSFR7Table[0x080 | index] = randomFactor; - this.LSFR7Table[0x100 | index] = randomFactor * 0x2; - this.LSFR7Table[0x180 | index] = randomFactor * 0x3; - this.LSFR7Table[0x200 | index] = randomFactor * 0x4; - this.LSFR7Table[0x280 | index] = randomFactor * 0x5; - this.LSFR7Table[0x300 | index] = randomFactor * 0x6; - this.LSFR7Table[0x380 | index] = randomFactor * 0x7; - this.LSFR7Table[0x400 | index] = randomFactor * 0x8; - this.LSFR7Table[0x480 | index] = randomFactor * 0x9; - this.LSFR7Table[0x500 | index] = randomFactor * 0xA; - this.LSFR7Table[0x580 | index] = randomFactor * 0xB; - this.LSFR7Table[0x600 | index] = randomFactor * 0xC; - this.LSFR7Table[0x680 | index] = randomFactor * 0xD; - this.LSFR7Table[0x700 | index] = randomFactor * 0xE; - this.LSFR7Table[0x780 | index] = randomFactor * 0xF; - //Recompute the LSFR algorithm: - LSFRShifted = LSFR >> 1; - LSFR = LSFRShifted | (((LSFRShifted ^ LSFR) & 0x1) << 6); - } - if (!this.noiseSampleTable && this.memory.length == 0x10000) { - //If enabling audio for the first time after a game is already running, set up the internal table reference: - this.noiseSampleTable = ((this.memory[0xFF22] & 0x8) == 0x8) ? this.LSFR7Table : this.LSFR15Table; - } -} -GameBoyCore.prototype.audioUnderrunAdjustment = function () { - if (settings[0]) { - var underrunAmount = this.bufferContainAmount - this.audioHandle.remainingBuffer(); - if (underrunAmount > 0) { - this.CPUCyclesTotalCurrent += (underrunAmount >> 1) * this.machineOut; - this.recalculateIterationClockLimit(); - } - } -} -GameBoyCore.prototype.initializeAudioStartState = function () { - this.channel1FrequencyTracker = 0x2000; - this.channel1DutyTracker = 0; - this.channel1CachedDuty = this.dutyLookup[2]; - this.channel1totalLength = 0; - this.channel1envelopeVolume = 0; - this.channel1envelopeType = false; - this.channel1envelopeSweeps = 0; - this.channel1envelopeSweepsLast = 0; - this.channel1consecutive = true; - this.channel1frequency = 0; - this.channel1SweepFault = false; - this.channel1ShadowFrequency = 0; - this.channel1timeSweep = 1; - this.channel1lastTimeSweep = 0; - this.channel1numSweep = 0; - this.channel1frequencySweepDivider = 0; - this.channel1decreaseSweep = false; - this.channel2FrequencyTracker = 0x2000; - this.channel2DutyTracker = 0; - this.channel2CachedDuty = this.dutyLookup[2]; - this.channel2totalLength = 0; - this.channel2envelopeVolume = 0; - this.channel2envelopeType = false; - this.channel2envelopeSweeps = 0; - this.channel2envelopeSweepsLast = 0; - this.channel2consecutive = true; - this.channel2frequency = 0; - this.channel3canPlay = false; - this.channel3totalLength = 0; - this.channel3patternType = 4; - this.channel3frequency = 0; - this.channel3consecutive = true; - this.channel3Counter = 0x800; - this.channel4FrequencyPeriod = 8; - this.channel4totalLength = 0; - this.channel4envelopeVolume = 0; - this.channel4currentVolume = 0; - this.channel4envelopeType = false; - this.channel4envelopeSweeps = 0; - this.channel4envelopeSweepsLast = 0; - this.channel4consecutive = true; - this.channel4BitRange = 0x7FFF; - this.noiseSampleTable = this.LSFR15Table; - this.channel4VolumeShifter = 15; - this.channel1FrequencyCounter = 0x2000; - this.channel2FrequencyCounter = 0x2000; - this.channel3Counter = 0x800; - this.channel3FrequencyPeriod = 0x800; - this.channel3lastSampleLookup = 0; - this.channel4lastSampleLookup = 0; - this.VinLeftChannelMasterVolume = 8; - this.VinRightChannelMasterVolume = 8; - this.mixerOutputCache = 0; - this.sequencerClocks = 0x2000; - this.sequencePosition = 0; - this.channel4FrequencyPeriod = 8; - this.channel4Counter = 8; - this.cachedChannel3Sample = 0; - this.cachedChannel4Sample = 0; - this.channel1Enabled = false; - this.channel2Enabled = false; - this.channel3Enabled = false; - this.channel4Enabled = false; - this.channel1canPlay = false; - this.channel2canPlay = false; - this.channel4canPlay = false; - this.channel1OutputLevelCache(); - this.channel2OutputLevelCache(); - this.channel3OutputLevelCache(); - this.channel4OutputLevelCache(); -} -GameBoyCore.prototype.outputAudio = function () { - var sampleFactor = 0; - var dirtySample = 0; - var averageL = 0; - var averageR = 0; - var destinationPosition = 0; - var divisor1 = settings[13]; - var divisor2 = divisor1 * 0xF0; - for (var sourcePosition = 0; sourcePosition < this.numSamplesTotal;) { - for (sampleFactor = averageL = averageR = 0; sampleFactor < divisor1; ++sampleFactor) { - dirtySample = this.currentBuffer[sourcePosition++]; - averageL += dirtySample >> 9; - averageR += dirtySample & 0x1FF; - } - this.secondaryBuffer[destinationPosition++] = averageL / divisor2 - 1; - this.secondaryBuffer[destinationPosition++] = averageR / divisor2 - 1; - } - this.audioHandle.writeAudioNoCallback(this.secondaryBuffer); -} -//Below are the audio generation functions timed against the CPU: -GameBoyCore.prototype.generateAudio = function (numSamples) { - if (this.soundMasterEnabled && !this.CPUStopped) { - for (var samplesToGenerate = 0; numSamples > 0;) { - samplesToGenerate = (numSamples < this.sequencerClocks) ? numSamples : this.sequencerClocks; - this.sequencerClocks -= samplesToGenerate; - numSamples -= samplesToGenerate; - while (--samplesToGenerate > -1) { - this.computeAudioChannels(); - this.currentBuffer[this.audioIndex++] = this.mixerOutputCache; - if (this.audioIndex == this.numSamplesTotal) { - this.audioIndex = 0; - this.outputAudio(); - } - } - if (this.sequencerClocks == 0) { - this.audioComputeSequencer(); - this.sequencerClocks = 0x2000; - } - } - } - else { - //SILENT OUTPUT: - while (--numSamples > -1) { - this.currentBuffer[this.audioIndex++] = 0xF0F0; - if (this.audioIndex == this.numSamplesTotal) { - this.audioIndex = 0; - this.outputAudio(); - } - } - } -} -//Generate audio, but don't actually output it (Used for when sound is disabled by user/browser): -GameBoyCore.prototype.generateAudioFake = function (numSamples) { - if (this.soundMasterEnabled && !this.CPUStopped) { - while (--numSamples > -1) { - this.computeAudioChannels(); - if (--this.sequencerClocks == 0) { - this.audioComputeSequencer(); - this.sequencerClocks = 0x2000; - } - } - } -} -GameBoyCore.prototype.audioJIT = function () { - //Audio Sample Generation Timing: - if (settings[0]) { - this.generateAudio(this.audioTicks); - } - else { - this.generateAudioFake(this.audioTicks); - } - this.audioTicks = 0; -} -GameBoyCore.prototype.audioComputeSequencer = function () { - switch (this.sequencePosition++) { - case 0: - this.clockAudioLength(); - break; - case 2: - this.clockAudioLength(); - this.clockAudioSweep(); - break; - case 4: - this.clockAudioLength(); - break; - case 6: - this.clockAudioLength(); - this.clockAudioSweep(); - break; - case 7: - this.clockAudioEnvelope(); - this.sequencePosition = 0; - } -} -GameBoyCore.prototype.clockAudioLength = function () { - //Channel 1: - if (this.channel1totalLength > 1) { - --this.channel1totalLength; - } - else if (this.channel1totalLength == 1) { - this.channel1totalLength = 0; - this.channel1EnableCheck(); - this.memory[0xFF26] &= 0xFE; //Channel #1 On Flag Off - } - //Channel 2: - if (this.channel2totalLength > 1) { - --this.channel2totalLength; - } - else if (this.channel2totalLength == 1) { - this.channel2totalLength = 0; - this.channel2EnableCheck(); - this.memory[0xFF26] &= 0xFD; //Channel #2 On Flag Off - } - //Channel 3: - if (this.channel3totalLength > 1) { - --this.channel3totalLength; - } - else if (this.channel3totalLength == 1) { - this.channel3totalLength = 0; - this.channel3EnableCheck(); - this.memory[0xFF26] &= 0xFB; //Channel #3 On Flag Off - } - //Channel 4: - if (this.channel4totalLength > 1) { - --this.channel4totalLength; - } - else if (this.channel4totalLength == 1) { - this.channel4totalLength = 0; - this.channel4EnableCheck(); - this.memory[0xFF26] &= 0xF7; //Channel #4 On Flag Off - } -} -GameBoyCore.prototype.clockAudioSweep = function () { - //Channel 1: - if (!this.channel1SweepFault && this.channel1timeSweep > 0) { - if (--this.channel1timeSweep == 0) { - this.runAudioSweep(); - } - } -} -GameBoyCore.prototype.runAudioSweep = function () { - //Channel 1: - if (this.channel1lastTimeSweep > 0) { - if (this.channel1frequencySweepDivider > 0) { - if (this.channel1numSweep > 0) { - --this.channel1numSweep; - if (this.channel1decreaseSweep) { - this.channel1ShadowFrequency -= this.channel1ShadowFrequency >> this.channel1frequencySweepDivider; - this.channel1frequency = this.channel1ShadowFrequency & 0x7FF; - this.channel1FrequencyTracker = (0x800 - this.channel1frequency) << 2; - } - else { - this.channel1ShadowFrequency += this.channel1ShadowFrequency >> this.channel1frequencySweepDivider; - this.channel1frequency = this.channel1ShadowFrequency; - if (this.channel1ShadowFrequency <= 0x7FF) { - this.channel1FrequencyTracker = (0x800 - this.channel1frequency) << 2; - //Run overflow check twice: - if ((this.channel1ShadowFrequency + (this.channel1ShadowFrequency >> this.channel1frequencySweepDivider)) > 0x7FF) { - this.channel1SweepFault = true; - this.channel1EnableCheck(); - this.memory[0xFF26] &= 0xFE; //Channel #1 On Flag Off - } - } - else { - this.channel1frequency &= 0x7FF; - this.channel1SweepFault = true; - this.channel1EnableCheck(); - this.memory[0xFF26] &= 0xFE; //Channel #1 On Flag Off - } - } - } - this.channel1timeSweep = this.channel1lastTimeSweep; - } - else { - //Channel has sweep disabled and timer becomes a length counter: - this.channel1SweepFault = true; - this.channel1EnableCheck(); - } - } -} -GameBoyCore.prototype.clockAudioEnvelope = function () { - //Channel 1: - if (this.channel1envelopeSweepsLast > -1) { - if (this.channel1envelopeSweeps > 0) { - --this.channel1envelopeSweeps; - } - else { - if (!this.channel1envelopeType) { - if (this.channel1envelopeVolume > 0) { - --this.channel1envelopeVolume; - this.channel1envelopeSweeps = this.channel1envelopeSweepsLast; - this.channel1OutputLevelCache(); - } - else { - this.channel1envelopeSweepsLast = -1; - } - } - else if (this.channel1envelopeVolume < 0xF) { - ++this.channel1envelopeVolume; - this.channel1envelopeSweeps = this.channel1envelopeSweepsLast; - this.channel1OutputLevelCache(); - } - else { - this.channel1envelopeSweepsLast = -1; - } - } - } - //Channel 2: - if (this.channel2envelopeSweepsLast > -1) { - if (this.channel2envelopeSweeps > 0) { - --this.channel2envelopeSweeps; - } - else { - if (!this.channel2envelopeType) { - if (this.channel2envelopeVolume > 0) { - --this.channel2envelopeVolume; - this.channel2envelopeSweeps = this.channel2envelopeSweepsLast; - this.channel2OutputLevelCache(); - } - else { - this.channel2envelopeSweepsLast = -1; - } - } - else if (this.channel2envelopeVolume < 0xF) { - ++this.channel2envelopeVolume; - this.channel2envelopeSweeps = this.channel2envelopeSweepsLast; - this.channel2OutputLevelCache(); - } - else { - this.channel2envelopeSweepsLast = -1; - } - } - } - //Channel 4: - if (this.channel4envelopeSweepsLast > -1) { - if (this.channel4envelopeSweeps > 0) { - --this.channel4envelopeSweeps; - } - else { - if (!this.channel4envelopeType) { - if (this.channel4envelopeVolume > 0) { - this.channel4currentVolume = --this.channel4envelopeVolume << this.channel4VolumeShifter; - this.channel4envelopeSweeps = this.channel4envelopeSweepsLast; - this.channel4UpdateCache(); - } - else { - this.channel4envelopeSweepsLast = -1; - } - } - else if (this.channel4envelopeVolume < 0xF) { - this.channel4currentVolume = ++this.channel4envelopeVolume << this.channel4VolumeShifter; - this.channel4envelopeSweeps = this.channel4envelopeSweepsLast; - this.channel4UpdateCache(); - } - else { - this.channel4envelopeSweepsLast = -1; - } - } - } -} -GameBoyCore.prototype.computeAudioChannels = function () { - //Channel 1 counter: - if (--this.channel1FrequencyCounter == 0) { - this.channel1FrequencyCounter = this.channel1FrequencyTracker; - this.channel1DutyTracker = (this.channel1DutyTracker + 1) & 0x7; - this.channel1OutputLevelTrimaryCache(); - } - //Channel 2 counter: - if (--this.channel2FrequencyCounter == 0) { - this.channel2FrequencyCounter = this.channel2FrequencyTracker; - this.channel2DutyTracker = (this.channel2DutyTracker + 1) & 0x7; - this.channel2OutputLevelTrimaryCache(); - } - //Channel 3 counter: - if (--this.channel3Counter == 0) { - if (this.channel3canPlay) { - this.channel3lastSampleLookup = (this.channel3lastSampleLookup + 1) & 0x1F; - } - this.channel3Counter = this.channel3FrequencyPeriod; - this.channel3UpdateCache(); - } - //Channel 4 counter: - if (--this.channel4Counter == 0) { - this.channel4lastSampleLookup = (this.channel4lastSampleLookup + 1) & this.channel4BitRange; - this.channel4Counter = this.channel4FrequencyPeriod; - this.channel4UpdateCache(); - } -} -GameBoyCore.prototype.channel1EnableCheck = function () { - this.channel1Enabled = ((this.channel1consecutive || this.channel1totalLength > 0) && !this.channel1SweepFault && this.channel1canPlay); - this.channel1OutputLevelSecondaryCache(); -} -GameBoyCore.prototype.channel1VolumeEnableCheck = function () { - this.channel1canPlay = (this.memory[0xFF12] > 7); - this.channel1EnableCheck(); - this.channel1OutputLevelSecondaryCache(); -} -GameBoyCore.prototype.channel1OutputLevelCache = function () { - this.channel1currentSampleLeft = (this.leftChannel1) ? this.channel1envelopeVolume : 0; - this.channel1currentSampleRight = (this.rightChannel1) ? this.channel1envelopeVolume : 0; - this.channel1OutputLevelSecondaryCache(); -} -GameBoyCore.prototype.channel1OutputLevelSecondaryCache = function () { - if (this.channel1Enabled) { - this.channel1currentSampleLeftSecondary = this.channel1currentSampleLeft; - this.channel1currentSampleRightSecondary = this.channel1currentSampleRight; - } - else { - this.channel1currentSampleLeftSecondary = 0; - this.channel1currentSampleRightSecondary = 0; - } - this.channel1OutputLevelTrimaryCache(); -} -GameBoyCore.prototype.channel1OutputLevelTrimaryCache = function () { - if (this.channel1CachedDuty[this.channel1DutyTracker]) { - this.channel1currentSampleLeftTrimary = this.channel1currentSampleLeftSecondary; - this.channel1currentSampleRightTrimary = this.channel1currentSampleRightSecondary; - } - else { - this.channel1currentSampleLeftTrimary = 0; - this.channel1currentSampleRightTrimary = 0; - } - this.mixerOutputLevelCache(); -} -GameBoyCore.prototype.channel2EnableCheck = function () { - this.channel2Enabled = ((this.channel2consecutive || this.channel2totalLength > 0) && this.channel2canPlay); - this.channel2OutputLevelSecondaryCache(); -} -GameBoyCore.prototype.channel2VolumeEnableCheck = function () { - this.channel2canPlay = (this.memory[0xFF17] > 7); - this.channel2EnableCheck(); - this.channel2OutputLevelSecondaryCache(); -} -GameBoyCore.prototype.channel2OutputLevelCache = function () { - this.channel2currentSampleLeft = (this.leftChannel2) ? this.channel2envelopeVolume : 0; - this.channel2currentSampleRight = (this.rightChannel2) ? this.channel2envelopeVolume : 0; - this.channel2OutputLevelSecondaryCache(); -} -GameBoyCore.prototype.channel2OutputLevelSecondaryCache = function () { - if (this.channel2Enabled) { - this.channel2currentSampleLeftSecondary = this.channel2currentSampleLeft; - this.channel2currentSampleRightSecondary = this.channel2currentSampleRight; - } - else { - this.channel2currentSampleLeftSecondary = 0; - this.channel2currentSampleRightSecondary = 0; - } - this.channel2OutputLevelTrimaryCache(); -} -GameBoyCore.prototype.channel2OutputLevelTrimaryCache = function () { - if (this.channel2CachedDuty[this.channel2DutyTracker]) { - this.channel2currentSampleLeftTrimary = this.channel2currentSampleLeftSecondary; - this.channel2currentSampleRightTrimary = this.channel2currentSampleRightSecondary; - } - else { - this.channel2currentSampleLeftTrimary = 0; - this.channel2currentSampleRightTrimary = 0; - } - this.mixerOutputLevelCache(); -} -GameBoyCore.prototype.channel3EnableCheck = function () { - this.channel3Enabled = (/*this.channel3canPlay && */(this.channel3consecutive || this.channel3totalLength > 0)); - this.channel3OutputLevelSecondaryCache(); -} -GameBoyCore.prototype.channel3OutputLevelCache = function () { - this.channel3currentSampleLeft = (this.leftChannel3) ? this.cachedChannel3Sample : 0; - this.channel3currentSampleRight = (this.rightChannel3) ? this.cachedChannel3Sample : 0; - this.channel3OutputLevelSecondaryCache(); -} -GameBoyCore.prototype.channel3OutputLevelSecondaryCache = function () { - if (this.channel3Enabled) { - this.channel3currentSampleLeftSecondary = this.channel3currentSampleLeft; - this.channel3currentSampleRightSecondary = this.channel3currentSampleRight; - } - else { - this.channel3currentSampleLeftSecondary = 0; - this.channel3currentSampleRightSecondary = 0; - } - this.mixerOutputLevelCache(); -} -GameBoyCore.prototype.channel4EnableCheck = function () { - this.channel4Enabled = ((this.channel4consecutive || this.channel4totalLength > 0) && this.channel4canPlay); - this.channel4OutputLevelSecondaryCache(); -} -GameBoyCore.prototype.channel4VolumeEnableCheck = function () { - this.channel4canPlay = (this.memory[0xFF21] > 7); - this.channel4EnableCheck(); - this.channel4OutputLevelSecondaryCache(); -} -GameBoyCore.prototype.channel4OutputLevelCache = function () { - this.channel4currentSampleLeft = (this.leftChannel4) ? this.cachedChannel4Sample : 0; - this.channel4currentSampleRight = (this.rightChannel4) ? this.cachedChannel4Sample : 0; - this.channel4OutputLevelSecondaryCache(); -} -GameBoyCore.prototype.channel4OutputLevelSecondaryCache = function () { - if (this.channel4Enabled) { - this.channel4currentSampleLeftSecondary = this.channel4currentSampleLeft; - this.channel4currentSampleRightSecondary = this.channel4currentSampleRight; - } - else { - this.channel4currentSampleLeftSecondary = 0; - this.channel4currentSampleRightSecondary = 0; - } - this.mixerOutputLevelCache(); -} -GameBoyCore.prototype.mixerOutputLevelCache = function () { - this.mixerOutputCache = ((((this.channel1currentSampleLeftTrimary + this.channel2currentSampleLeftTrimary + this.channel3currentSampleLeftSecondary + this.channel4currentSampleLeftSecondary) * this.VinLeftChannelMasterVolume) << 9) + - ((this.channel1currentSampleRightTrimary + this.channel2currentSampleRightTrimary + this.channel3currentSampleRightSecondary + this.channel4currentSampleRightSecondary) * this.VinRightChannelMasterVolume)); -} -GameBoyCore.prototype.channel3UpdateCache = function () { - this.cachedChannel3Sample = this.channel3PCM[this.channel3lastSampleLookup] >> this.channel3patternType; - this.channel3OutputLevelCache(); -} -GameBoyCore.prototype.channel3WriteRAM = function (address, data) { - if (this.channel3canPlay) { - this.audioJIT(); - //address = this.channel3lastSampleLookup >> 1; - } - this.memory[0xFF30 | address] = data; - address <<= 1; - this.channel3PCM[address] = data >> 4; - this.channel3PCM[address | 1] = data & 0xF; -} -GameBoyCore.prototype.channel4UpdateCache = function () { - this.cachedChannel4Sample = this.noiseSampleTable[this.channel4currentVolume | this.channel4lastSampleLookup]; - this.channel4OutputLevelCache(); -} -GameBoyCore.prototype.run = function () { - //The preprocessing before the actual iteration loop: - if ((this.stopEmulator & 2) == 0) { - if ((this.stopEmulator & 1) == 1) { - if (!this.CPUStopped) { - this.stopEmulator = 0; - this.drewFrame = false; - this.audioUnderrunAdjustment(); - this.clockUpdate(); //RTC clocking. - if (!this.halt) { - this.executeIteration(); - } - else { //Finish the HALT rundown execution. - this.CPUTicks = 0; - this.calculateHALTPeriod(); - if (this.halt) { - this.updateCoreFull(); - } - else { - this.executeIteration(); - } - } - //Request the graphics target to be updated: - this.requestDraw(); - } - else { - this.audioUnderrunAdjustment(); - this.audioTicks += this.CPUCyclesTotal; - this.audioJIT(); - this.stopEmulator |= 1; //End current loop. - } - } - else { //We can only get here if there was an internal error, but the loop was restarted. - cout("Iterator restarted a faulted core.", 2); - pause(); - } - } -} - -GameBoyCore.prototype.executeIteration = function () { - //Iterate the interpreter loop: - var opcodeToExecute = 0; - var timedTicks = 0; - while (this.stopEmulator == 0) { - //Interrupt Arming: - switch (this.IRQEnableDelay) { - case 1: - this.IME = true; - this.checkIRQMatching(); - case 2: - --this.IRQEnableDelay; - } - //Is an IRQ set to fire?: - if (this.IRQLineMatched > 0) { - //IME is true and and interrupt was matched: - this.launchIRQ(); - } - //Fetch the current opcode: - opcodeToExecute = this.memoryReader[this.programCounter](this, this.programCounter); - //Increment the program counter to the next instruction: - this.programCounter = (this.programCounter + 1) & 0xFFFF; - //Check for the program counter quirk: - if (this.skipPCIncrement) { - this.programCounter = (this.programCounter - 1) & 0xFFFF; - this.skipPCIncrement = false; - } - //Get how many CPU cycles the current instruction counts for: - this.CPUTicks = this.TICKTable[opcodeToExecute]; - //Execute the current instruction: - this.OPCODE[opcodeToExecute](this); - //Update the state (Inlined updateCoreFull manually here): - //Update the clocking for the LCD emulation: - this.LCDTicks += this.CPUTicks >> this.doubleSpeedShifter; //LCD Timing - this.LCDCONTROL[this.actualScanLine](this); //Scan Line and STAT Mode Control - //Single-speed relative timing for A/V emulation: - timedTicks = this.CPUTicks >> this.doubleSpeedShifter; //CPU clocking can be updated from the LCD handling. - this.audioTicks += timedTicks; //Audio Timing - this.emulatorTicks += timedTicks; //Emulator Timing - //CPU Timers: - this.DIVTicks += this.CPUTicks; //DIV Timing - if (this.TIMAEnabled) { //TIMA Timing - this.timerTicks += this.CPUTicks; - while (this.timerTicks >= this.TACClocker) { - this.timerTicks -= this.TACClocker; - if (++this.memory[0xFF05] == 0x100) { - this.memory[0xFF05] = this.memory[0xFF06]; - this.interruptsRequested |= 0x4; - this.checkIRQMatching(); - } - } - } - if (this.serialTimer > 0) { //Serial Timing - //IRQ Counter: - this.serialTimer -= this.CPUTicks; - if (this.serialTimer <= 0) { - this.interruptsRequested |= 0x8; - this.checkIRQMatching(); - } - //Bit Shit Counter: - this.serialShiftTimer -= this.CPUTicks; - if (this.serialShiftTimer <= 0) { - this.serialShiftTimer = this.serialShiftTimerAllocated; - this.memory[0xFF01] = ((this.memory[0xFF01] << 1) & 0xFE) | 0x01; //We could shift in actual link data here if we were to implement such!!! - } - } - //End of iteration routine: - if (this.emulatorTicks >= this.CPUCyclesTotal) { - this.iterationEndRoutine(); - } - // Start of code added for benchmarking: - this.instructions += 1; - if (this.instructions > this.totalInstructions) { - this.iterationEndRoutine(); - this.stopEmulator |= 2; - checkFinalState(); - } - // End of code added for benchmarking. - } -} -GameBoyCore.prototype.iterationEndRoutine = function () { - if ((this.stopEmulator & 0x1) == 0) { - this.audioJIT(); //Make sure we at least output once per iteration. - //Update DIV Alignment (Integer overflow safety): - this.memory[0xFF04] = (this.memory[0xFF04] + (this.DIVTicks >> 8)) & 0xFF; - this.DIVTicks &= 0xFF; - //Update emulator flags: - this.stopEmulator |= 1; //End current loop. - this.emulatorTicks -= this.CPUCyclesTotal; - this.CPUCyclesTotalCurrent += this.CPUCyclesTotalRoundoff; - this.recalculateIterationClockLimit(); - } -} -GameBoyCore.prototype.handleSTOP = function () { - this.CPUStopped = true; //Stop CPU until joypad input changes. - this.iterationEndRoutine(); - if (this.emulatorTicks < 0) { - this.audioTicks -= this.emulatorTicks; - this.audioJIT(); - } -} -GameBoyCore.prototype.recalculateIterationClockLimit = function () { - var endModulus = this.CPUCyclesTotalCurrent % 4; - this.CPUCyclesTotal = this.CPUCyclesTotalBase + this.CPUCyclesTotalCurrent - endModulus; - this.CPUCyclesTotalCurrent = endModulus; -} -GameBoyCore.prototype.scanLineMode2 = function () { //OAM Search Period - if (this.STATTracker != 1) { - if (this.mode2TriggerSTAT) { - this.interruptsRequested |= 0x2; - this.checkIRQMatching(); - } - this.STATTracker = 1; - this.modeSTAT = 2; - } -} -GameBoyCore.prototype.scanLineMode3 = function () { //Scan Line Drawing Period - if (this.modeSTAT != 3) { - if (this.STATTracker == 0 && this.mode2TriggerSTAT) { - this.interruptsRequested |= 0x2; - this.checkIRQMatching(); - } - this.STATTracker = 1; - this.modeSTAT = 3; - } -} -GameBoyCore.prototype.scanLineMode0 = function () { //Horizontal Blanking Period - if (this.modeSTAT != 0) { - if (this.STATTracker != 2) { - if (this.STATTracker == 0) { - if (this.mode2TriggerSTAT) { - this.interruptsRequested |= 0x2; - this.checkIRQMatching(); - } - this.modeSTAT = 3; - } - this.incrementScanLineQueue(); - this.updateSpriteCount(this.actualScanLine); - this.STATTracker = 2; - } - if (this.LCDTicks >= this.spriteCount) { - if (this.hdmaRunning) { - this.executeHDMA(); - } - if (this.mode0TriggerSTAT) { - this.interruptsRequested |= 0x2; - this.checkIRQMatching(); - } - this.STATTracker = 3; - this.modeSTAT = 0; - } - } -} -GameBoyCore.prototype.clocksUntilLYCMatch = function () { - if (this.memory[0xFF45] != 0) { - if (this.memory[0xFF45] > this.actualScanLine) { - return 456 * (this.memory[0xFF45] - this.actualScanLine); - } - return 456 * (154 - this.actualScanLine + this.memory[0xFF45]); - } - return (456 * ((this.actualScanLine == 153 && this.memory[0xFF44] == 0) ? 154 : (153 - this.actualScanLine))) + 8; -} -GameBoyCore.prototype.clocksUntilMode0 = function () { - switch (this.modeSTAT) { - case 0: - if (this.actualScanLine == 143) { - this.updateSpriteCount(0); - return this.spriteCount + 5016; - } - this.updateSpriteCount(this.actualScanLine + 1); - return this.spriteCount + 456; - case 2: - case 3: - this.updateSpriteCount(this.actualScanLine); - return this.spriteCount; - case 1: - this.updateSpriteCount(0); - return this.spriteCount + (456 * (154 - this.actualScanLine)); - } -} -GameBoyCore.prototype.updateSpriteCount = function (line) { - this.spriteCount = 252; - if (this.cGBC && this.gfxSpriteShow) { //Is the window enabled and are we in CGB mode? - var lineAdjusted = line + 0x10; - var yoffset = 0; - var yCap = (this.gfxSpriteNormalHeight) ? 0x8 : 0x10; - for (var OAMAddress = 0xFE00; OAMAddress < 0xFEA0 && this.spriteCount < 312; OAMAddress += 4) { - yoffset = lineAdjusted - this.memory[OAMAddress]; - if (yoffset > -1 && yoffset < yCap) { - this.spriteCount += 6; - } - } - } -} -GameBoyCore.prototype.matchLYC = function () { //LYC Register Compare - if (this.memory[0xFF44] == this.memory[0xFF45]) { - this.memory[0xFF41] |= 0x04; - if (this.LYCMatchTriggerSTAT) { - this.interruptsRequested |= 0x2; - this.checkIRQMatching(); - } - } - else { - this.memory[0xFF41] &= 0x7B; - } -} -GameBoyCore.prototype.updateCore = function () { - //Update the clocking for the LCD emulation: - this.LCDTicks += this.CPUTicks >> this.doubleSpeedShifter; //LCD Timing - this.LCDCONTROL[this.actualScanLine](this); //Scan Line and STAT Mode Control - //Single-speed relative timing for A/V emulation: - var timedTicks = this.CPUTicks >> this.doubleSpeedShifter; //CPU clocking can be updated from the LCD handling. - this.audioTicks += timedTicks; //Audio Timing - this.emulatorTicks += timedTicks; //Emulator Timing - //CPU Timers: - this.DIVTicks += this.CPUTicks; //DIV Timing - if (this.TIMAEnabled) { //TIMA Timing - this.timerTicks += this.CPUTicks; - while (this.timerTicks >= this.TACClocker) { - this.timerTicks -= this.TACClocker; - if (++this.memory[0xFF05] == 0x100) { - this.memory[0xFF05] = this.memory[0xFF06]; - this.interruptsRequested |= 0x4; - this.checkIRQMatching(); - } - } - } - if (this.serialTimer > 0) { //Serial Timing - //IRQ Counter: - this.serialTimer -= this.CPUTicks; - if (this.serialTimer <= 0) { - this.interruptsRequested |= 0x8; - this.checkIRQMatching(); - } - //Bit Shit Counter: - this.serialShiftTimer -= this.CPUTicks; - if (this.serialShiftTimer <= 0) { - this.serialShiftTimer = this.serialShiftTimerAllocated; - this.memory[0xFF01] = ((this.memory[0xFF01] << 1) & 0xFE) | 0x01; //We could shift in actual link data here if we were to implement such!!! - } - } -} -GameBoyCore.prototype.updateCoreFull = function () { - //Update the state machine: - this.updateCore(); - //End of iteration routine: - if (this.emulatorTicks >= this.CPUCyclesTotal) { - this.iterationEndRoutine(); - } -} -GameBoyCore.prototype.initializeLCDController = function () { - //Display on hanlding: - var line = 0; - while (line < 154) { - if (line < 143) { - //We're on a normal scan line: - this.LINECONTROL[line] = function (parentObj) { - if (parentObj.LCDTicks < 80) { - parentObj.scanLineMode2(); - } - else if (parentObj.LCDTicks < 252) { - parentObj.scanLineMode3(); - } - else if (parentObj.LCDTicks < 456) { - parentObj.scanLineMode0(); - } - else { - //We're on a new scan line: - parentObj.LCDTicks -= 456; - if (parentObj.STATTracker != 3) { - //Make sure the mode 0 handler was run at least once per scan line: - if (parentObj.STATTracker != 2) { - if (parentObj.STATTracker == 0 && parentObj.mode2TriggerSTAT) { - parentObj.interruptsRequested |= 0x2; - } - parentObj.incrementScanLineQueue(); - } - if (parentObj.hdmaRunning) { - parentObj.executeHDMA(); - } - if (parentObj.mode0TriggerSTAT) { - parentObj.interruptsRequested |= 0x2; - } - } - //Update the scanline registers and assert the LYC counter: - parentObj.actualScanLine = ++parentObj.memory[0xFF44]; - //Perform a LYC counter assert: - if (parentObj.actualScanLine == parentObj.memory[0xFF45]) { - parentObj.memory[0xFF41] |= 0x04; - if (parentObj.LYCMatchTriggerSTAT) { - parentObj.interruptsRequested |= 0x2; - } - } - else { - parentObj.memory[0xFF41] &= 0x7B; - } - parentObj.checkIRQMatching(); - //Reset our mode contingency variables: - parentObj.STATTracker = 0; - parentObj.modeSTAT = 2; - parentObj.LINECONTROL[parentObj.actualScanLine](parentObj); //Scan Line and STAT Mode Control. - } - } - } - else if (line == 143) { - //We're on the last visible scan line of the LCD screen: - this.LINECONTROL[143] = function (parentObj) { - if (parentObj.LCDTicks < 80) { - parentObj.scanLineMode2(); - } - else if (parentObj.LCDTicks < 252) { - parentObj.scanLineMode3(); - } - else if (parentObj.LCDTicks < 456) { - parentObj.scanLineMode0(); - } - else { - //Starting V-Blank: - //Just finished the last visible scan line: - parentObj.LCDTicks -= 456; - if (parentObj.STATTracker != 3) { - //Make sure the mode 0 handler was run at least once per scan line: - if (parentObj.STATTracker != 2) { - if (parentObj.STATTracker == 0 && parentObj.mode2TriggerSTAT) { - parentObj.interruptsRequested |= 0x2; - } - parentObj.incrementScanLineQueue(); - } - if (parentObj.hdmaRunning) { - parentObj.executeHDMA(); - } - if (parentObj.mode0TriggerSTAT) { - parentObj.interruptsRequested |= 0x2; - } - } - //Update the scanline registers and assert the LYC counter: - parentObj.actualScanLine = parentObj.memory[0xFF44] = 144; - //Perform a LYC counter assert: - if (parentObj.memory[0xFF45] == 144) { - parentObj.memory[0xFF41] |= 0x04; - if (parentObj.LYCMatchTriggerSTAT) { - parentObj.interruptsRequested |= 0x2; - } - } - else { - parentObj.memory[0xFF41] &= 0x7B; - } - //Reset our mode contingency variables: - parentObj.STATTracker = 0; - //Update our state for v-blank: - parentObj.modeSTAT = 1; - parentObj.interruptsRequested |= (parentObj.mode1TriggerSTAT) ? 0x3 : 0x1; - parentObj.checkIRQMatching(); - //Attempt to blit out to our canvas: - if (parentObj.drewBlank == 0) { - //Ensure JIT framing alignment: - if (parentObj.totalLinesPassed < 144 || (parentObj.totalLinesPassed == 144 && parentObj.midScanlineOffset > -1)) { - //Make sure our gfx are up-to-date: - parentObj.graphicsJITVBlank(); - //Draw the frame: - parentObj.prepareFrame(); - } - } - else { - //LCD off takes at least 2 frames: - --parentObj.drewBlank; - } - parentObj.LINECONTROL[144](parentObj); //Scan Line and STAT Mode Control. - } - } - } - else if (line < 153) { - //In VBlank - this.LINECONTROL[line] = function (parentObj) { - if (parentObj.LCDTicks >= 456) { - //We're on a new scan line: - parentObj.LCDTicks -= 456; - parentObj.actualScanLine = ++parentObj.memory[0xFF44]; - //Perform a LYC counter assert: - if (parentObj.actualScanLine == parentObj.memory[0xFF45]) { - parentObj.memory[0xFF41] |= 0x04; - if (parentObj.LYCMatchTriggerSTAT) { - parentObj.interruptsRequested |= 0x2; - parentObj.checkIRQMatching(); - } - } - else { - parentObj.memory[0xFF41] &= 0x7B; - } - parentObj.LINECONTROL[parentObj.actualScanLine](parentObj); //Scan Line and STAT Mode Control. - } - } - } - else { - //VBlank Ending (We're on the last actual scan line) - this.LINECONTROL[153] = function (parentObj) { - if (parentObj.LCDTicks >= 8) { - if (parentObj.STATTracker != 4 && parentObj.memory[0xFF44] == 153) { - parentObj.memory[0xFF44] = 0; //LY register resets to 0 early. - //Perform a LYC counter assert: - if (parentObj.memory[0xFF45] == 0) { - parentObj.memory[0xFF41] |= 0x04; - if (parentObj.LYCMatchTriggerSTAT) { - parentObj.interruptsRequested |= 0x2; - parentObj.checkIRQMatching(); - } - } - else { - parentObj.memory[0xFF41] &= 0x7B; - } - parentObj.STATTracker = 4; - } - if (parentObj.LCDTicks >= 456) { - //We reset back to the beginning: - parentObj.LCDTicks -= 456; - parentObj.STATTracker = parentObj.actualScanLine = 0; - parentObj.LINECONTROL[0](parentObj); //Scan Line and STAT Mode Control. - } - } - } - } - ++line; - } -} -GameBoyCore.prototype.DisplayShowOff = function () { - if (this.drewBlank == 0) { - //Output a blank screen to the output framebuffer: - this.clearFrameBuffer(); - this.drewFrame = true; - } - this.drewBlank = 2; -} -GameBoyCore.prototype.executeHDMA = function () { - this.DMAWrite(1); - if (this.halt) { - if ((this.LCDTicks - this.spriteCount) < ((4 >> this.doubleSpeedShifter) | 0x20)) { - //HALT clocking correction: - this.CPUTicks = 4 + ((0x20 + this.spriteCount) << this.doubleSpeedShifter); - this.LCDTicks = this.spriteCount + ((4 >> this.doubleSpeedShifter) | 0x20); - } - } - else { - this.LCDTicks += (4 >> this.doubleSpeedShifter) | 0x20; //LCD Timing Update For HDMA. - } - if (this.memory[0xFF55] == 0) { - this.hdmaRunning = false; - this.memory[0xFF55] = 0xFF; //Transfer completed ("Hidden last step," since some ROMs don't imply this, but most do). - } - else { - --this.memory[0xFF55]; - } -} -GameBoyCore.prototype.clockUpdate = function () { - if (this.cTIMER) { - var dateObj = new_Date(); // The line is changed for benchmarking. - var newTime = dateObj.getTime(); - var timeElapsed = newTime - this.lastIteration; //Get the numnber of milliseconds since this last executed. - this.lastIteration = newTime; - if (this.cTIMER && !this.RTCHALT) { - //Update the MBC3 RTC: - this.RTCSeconds += timeElapsed / 1000; - while (this.RTCSeconds >= 60) { //System can stutter, so the seconds difference can get large, thus the "while". - this.RTCSeconds -= 60; - ++this.RTCMinutes; - if (this.RTCMinutes >= 60) { - this.RTCMinutes -= 60; - ++this.RTCHours; - if (this.RTCHours >= 24) { - this.RTCHours -= 24 - ++this.RTCDays; - if (this.RTCDays >= 512) { - this.RTCDays -= 512; - this.RTCDayOverFlow = true; - } - } - } - } - } - } -} -GameBoyCore.prototype.prepareFrame = function () { - //Copy the internal frame buffer to the output buffer: - this.swizzleFrameBuffer(); - this.drewFrame = true; -} -GameBoyCore.prototype.requestDraw = function () { - if (this.drewFrame) { - this.dispatchDraw(); - } -} -GameBoyCore.prototype.dispatchDraw = function () { - var canvasRGBALength = this.offscreenRGBCount; - if (canvasRGBALength > 0) { - //We actually updated the graphics internally, so copy out: - var frameBuffer = (canvasRGBALength == 92160) ? this.swizzledFrame : this.resizeFrameBuffer(); - var canvasData = this.canvasBuffer.data; - var bufferIndex = 0; - for (var canvasIndex = 0; canvasIndex < canvasRGBALength; ++canvasIndex) { - canvasData[canvasIndex++] = frameBuffer[bufferIndex++]; - canvasData[canvasIndex++] = frameBuffer[bufferIndex++]; - canvasData[canvasIndex++] = frameBuffer[bufferIndex++]; - } - this.graphicsBlit(); - } -} -GameBoyCore.prototype.swizzleFrameBuffer = function () { - //Convert our dirty 24-bit (24-bit, with internal render flags above it) framebuffer to an 8-bit buffer with separate indices for the RGB channels: - var frameBuffer = this.frameBuffer; - var swizzledFrame = this.swizzledFrame; - var bufferIndex = 0; - for (var canvasIndex = 0; canvasIndex < 69120;) { - swizzledFrame[canvasIndex++] = (frameBuffer[bufferIndex] >> 16) & 0xFF; //Red - swizzledFrame[canvasIndex++] = (frameBuffer[bufferIndex] >> 8) & 0xFF; //Green - swizzledFrame[canvasIndex++] = frameBuffer[bufferIndex++] & 0xFF; //Blue - } -} -GameBoyCore.prototype.clearFrameBuffer = function () { - var bufferIndex = 0; - var frameBuffer = this.swizzledFrame; - if (this.cGBC || this.colorizedGBPalettes) { - while (bufferIndex < 69120) { - frameBuffer[bufferIndex++] = 248; - } - } - else { - while (bufferIndex < 69120) { - frameBuffer[bufferIndex++] = 239; - frameBuffer[bufferIndex++] = 255; - frameBuffer[bufferIndex++] = 222; - } - } -} -GameBoyCore.prototype.resizeFrameBuffer = function () { - //Return a reference to the generated resized framebuffer: - return this.resizer.resize(this.swizzledFrame); -} -GameBoyCore.prototype.compileResizeFrameBufferFunction = function () { - if (this.offscreenRGBCount > 0) { - this.resizer = new Resize(160, 144, this.offscreenWidth, this.offscreenHeight, false, true); - } -} -GameBoyCore.prototype.renderScanLine = function (scanlineToRender) { - this.pixelStart = scanlineToRender * 160; - if (this.bgEnabled) { - this.pixelEnd = 160; - this.BGLayerRender(scanlineToRender); - this.WindowLayerRender(scanlineToRender); - } - else { - var pixelLine = (scanlineToRender + 1) * 160; - var defaultColor = (this.cGBC || this.colorizedGBPalettes) ? 0xF8F8F8 : 0xEFFFDE; - for (var pixelPosition = (scanlineToRender * 160) + this.currentX; pixelPosition < pixelLine; pixelPosition++) { - this.frameBuffer[pixelPosition] = defaultColor; - } - } - this.SpriteLayerRender(scanlineToRender); - this.currentX = 0; - this.midScanlineOffset = -1; -} -GameBoyCore.prototype.renderMidScanLine = function () { - if (this.actualScanLine < 144 && this.modeSTAT == 3) { - //TODO: Get this accurate: - if (this.midScanlineOffset == -1) { - this.midScanlineOffset = this.backgroundX & 0x7; - } - if (this.LCDTicks >= 82) { - this.pixelEnd = this.LCDTicks - 74; - this.pixelEnd = Math.min(this.pixelEnd - this.midScanlineOffset - (this.pixelEnd % 0x8), 160); - if (this.bgEnabled) { - this.pixelStart = this.lastUnrenderedLine * 160; - this.BGLayerRender(this.lastUnrenderedLine); - this.WindowLayerRender(this.lastUnrenderedLine); - //TODO: Do midscanline JIT for sprites... - } - else { - var pixelLine = (this.lastUnrenderedLine * 160) + this.pixelEnd; - var defaultColor = (this.cGBC || this.colorizedGBPalettes) ? 0xF8F8F8 : 0xEFFFDE; - for (var pixelPosition = (this.lastUnrenderedLine * 160) + this.currentX; pixelPosition < pixelLine; pixelPosition++) { - this.frameBuffer[pixelPosition] = defaultColor; - } - } - this.currentX = this.pixelEnd; - } - } -} -GameBoyCore.prototype.initializeModeSpecificArrays = function () { - this.LCDCONTROL = (this.LCDisOn) ? this.LINECONTROL : this.DISPLAYOFFCONTROL; - if (this.cGBC) { - this.gbcOBJRawPalette = this.getTypedArray(0x40, 0, "uint8"); - this.gbcBGRawPalette = this.getTypedArray(0x40, 0, "uint8"); - this.gbcOBJPalette = this.getTypedArray(0x20, 0x1000000, "int32"); - this.gbcBGPalette = this.getTypedArray(0x40, 0, "int32"); - this.BGCHRBank2 = this.getTypedArray(0x800, 0, "uint8"); - this.BGCHRCurrentBank = (this.currVRAMBank > 0) ? this.BGCHRBank2 : this.BGCHRBank1; - this.tileCache = this.generateCacheArray(0xF80); - } - else { - this.gbOBJPalette = this.getTypedArray(8, 0, "int32"); - this.gbBGPalette = this.getTypedArray(4, 0, "int32"); - this.BGPalette = this.gbBGPalette; - this.OBJPalette = this.gbOBJPalette; - this.tileCache = this.generateCacheArray(0x700); - this.sortBuffer = this.getTypedArray(0x100, 0, "uint8"); - this.OAMAddressCache = this.getTypedArray(10, 0, "int32"); - } - this.renderPathBuild(); -} -GameBoyCore.prototype.GBCtoGBModeAdjust = function () { - cout("Stepping down from GBC mode.", 0); - this.VRAM = this.GBCMemory = this.BGCHRCurrentBank = this.BGCHRBank2 = null; - this.tileCache.length = 0x700; - if (settings[4]) { - this.gbBGColorizedPalette = this.getTypedArray(4, 0, "int32"); - this.gbOBJColorizedPalette = this.getTypedArray(8, 0, "int32"); - this.cachedBGPaletteConversion = this.getTypedArray(4, 0, "int32"); - this.cachedOBJPaletteConversion = this.getTypedArray(8, 0, "int32"); - this.BGPalette = this.gbBGColorizedPalette; - this.OBJPalette = this.gbOBJColorizedPalette; - this.gbOBJPalette = this.gbBGPalette = null; - this.getGBCColor(); - } - else { - this.gbOBJPalette = this.getTypedArray(8, 0, "int32"); - this.gbBGPalette = this.getTypedArray(4, 0, "int32"); - this.BGPalette = this.gbBGPalette; - this.OBJPalette = this.gbOBJPalette; - } - this.sortBuffer = this.getTypedArray(0x100, 0, "uint8"); - this.OAMAddressCache = this.getTypedArray(10, 0, "int32"); - this.renderPathBuild(); - this.memoryReadJumpCompile(); - this.memoryWriteJumpCompile(); -} -GameBoyCore.prototype.renderPathBuild = function () { - if (!this.cGBC) { - this.BGLayerRender = this.BGGBLayerRender; - this.WindowLayerRender = this.WindowGBLayerRender; - this.SpriteLayerRender = this.SpriteGBLayerRender; - } - else { - this.priorityFlaggingPathRebuild(); - this.SpriteLayerRender = this.SpriteGBCLayerRender; - } -} -GameBoyCore.prototype.priorityFlaggingPathRebuild = function () { - if (this.BGPriorityEnabled) { - this.BGLayerRender = this.BGGBCLayerRender; - this.WindowLayerRender = this.WindowGBCLayerRender; - } - else { - this.BGLayerRender = this.BGGBCLayerRenderNoPriorityFlagging; - this.WindowLayerRender = this.WindowGBCLayerRenderNoPriorityFlagging; - } -} -GameBoyCore.prototype.initializeReferencesFromSaveState = function () { - this.LCDCONTROL = (this.LCDisOn) ? this.LINECONTROL : this.DISPLAYOFFCONTROL; - var tileIndex = 0; - if (!this.cGBC) { - if (this.colorizedGBPalettes) { - this.BGPalette = this.gbBGColorizedPalette; - this.OBJPalette = this.gbOBJColorizedPalette; - this.updateGBBGPalette = this.updateGBColorizedBGPalette; - this.updateGBOBJPalette = this.updateGBColorizedOBJPalette; - - } - else { - this.BGPalette = this.gbBGPalette; - this.OBJPalette = this.gbOBJPalette; - } - this.tileCache = this.generateCacheArray(0x700); - for (tileIndex = 0x8000; tileIndex < 0x9000; tileIndex += 2) { - this.generateGBOAMTileLine(tileIndex); - } - for (tileIndex = 0x9000; tileIndex < 0x9800; tileIndex += 2) { - this.generateGBTileLine(tileIndex); - } - this.sortBuffer = this.getTypedArray(0x100, 0, "uint8"); - this.OAMAddressCache = this.getTypedArray(10, 0, "int32"); - } - else { - this.BGCHRCurrentBank = (this.currVRAMBank > 0) ? this.BGCHRBank2 : this.BGCHRBank1; - this.tileCache = this.generateCacheArray(0xF80); - for (; tileIndex < 0x1800; tileIndex += 0x10) { - this.generateGBCTileBank1(tileIndex); - this.generateGBCTileBank2(tileIndex); - } - } - this.renderPathBuild(); -} -GameBoyCore.prototype.RGBTint = function (value) { - //Adjustment for the GBC's tinting (According to Gambatte): - var r = value & 0x1F; - var g = (value >> 5) & 0x1F; - var b = (value >> 10) & 0x1F; - return ((r * 13 + g * 2 + b) >> 1) << 16 | (g * 3 + b) << 9 | (r * 3 + g * 2 + b * 11) >> 1; -} -GameBoyCore.prototype.getGBCColor = function () { - //GBC Colorization of DMG ROMs: - //BG - for (var counter = 0; counter < 4; counter++) { - var adjustedIndex = counter << 1; - //BG - this.cachedBGPaletteConversion[counter] = this.RGBTint((this.gbcBGRawPalette[adjustedIndex | 1] << 8) | this.gbcBGRawPalette[adjustedIndex]); - //OBJ 1 - this.cachedOBJPaletteConversion[counter] = this.RGBTint((this.gbcOBJRawPalette[adjustedIndex | 1] << 8) | this.gbcOBJRawPalette[adjustedIndex]); - } - //OBJ 2 - for (counter = 4; counter < 8; counter++) { - adjustedIndex = counter << 1; - this.cachedOBJPaletteConversion[counter] = this.RGBTint((this.gbcOBJRawPalette[adjustedIndex | 1] << 8) | this.gbcOBJRawPalette[adjustedIndex]); - } - //Update the palette entries: - this.updateGBBGPalette = this.updateGBColorizedBGPalette; - this.updateGBOBJPalette = this.updateGBColorizedOBJPalette; - this.updateGBBGPalette(this.memory[0xFF47]); - this.updateGBOBJPalette(0, this.memory[0xFF48]); - this.updateGBOBJPalette(1, this.memory[0xFF49]); - this.colorizedGBPalettes = true; -} -GameBoyCore.prototype.updateGBRegularBGPalette = function (data) { - this.gbBGPalette[0] = this.colors[data & 0x03] | 0x2000000; - this.gbBGPalette[1] = this.colors[(data >> 2) & 0x03]; - this.gbBGPalette[2] = this.colors[(data >> 4) & 0x03]; - this.gbBGPalette[3] = this.colors[data >> 6]; -} -GameBoyCore.prototype.updateGBColorizedBGPalette = function (data) { - //GB colorization: - this.gbBGColorizedPalette[0] = this.cachedBGPaletteConversion[data & 0x03] | 0x2000000; - this.gbBGColorizedPalette[1] = this.cachedBGPaletteConversion[(data >> 2) & 0x03]; - this.gbBGColorizedPalette[2] = this.cachedBGPaletteConversion[(data >> 4) & 0x03]; - this.gbBGColorizedPalette[3] = this.cachedBGPaletteConversion[data >> 6]; -} -GameBoyCore.prototype.updateGBRegularOBJPalette = function (index, data) { - this.gbOBJPalette[index | 1] = this.colors[(data >> 2) & 0x03]; - this.gbOBJPalette[index | 2] = this.colors[(data >> 4) & 0x03]; - this.gbOBJPalette[index | 3] = this.colors[data >> 6]; -} -GameBoyCore.prototype.updateGBColorizedOBJPalette = function (index, data) { - //GB colorization: - this.gbOBJColorizedPalette[index | 1] = this.cachedOBJPaletteConversion[index | ((data >> 2) & 0x03)]; - this.gbOBJColorizedPalette[index | 2] = this.cachedOBJPaletteConversion[index | ((data >> 4) & 0x03)]; - this.gbOBJColorizedPalette[index | 3] = this.cachedOBJPaletteConversion[index | (data >> 6)]; -} -GameBoyCore.prototype.updateGBCBGPalette = function (index, data) { - if (this.gbcBGRawPalette[index] != data) { - this.midScanLineJIT(); - //Update the color palette for BG tiles since it changed: - this.gbcBGRawPalette[index] = data; - if ((index & 0x06) == 0) { - //Palette 0 (Special tile Priority stuff) - data = 0x2000000 | this.RGBTint((this.gbcBGRawPalette[index | 1] << 8) | this.gbcBGRawPalette[index & 0x3E]); - index >>= 1; - this.gbcBGPalette[index] = data; - this.gbcBGPalette[0x20 | index] = 0x1000000 | data; - } - else { - //Regular Palettes (No special crap) - data = this.RGBTint((this.gbcBGRawPalette[index | 1] << 8) | this.gbcBGRawPalette[index & 0x3E]); - index >>= 1; - this.gbcBGPalette[index] = data; - this.gbcBGPalette[0x20 | index] = 0x1000000 | data; - } - } -} -GameBoyCore.prototype.updateGBCOBJPalette = function (index, data) { - if (this.gbcOBJRawPalette[index] != data) { - //Update the color palette for OBJ tiles since it changed: - this.gbcOBJRawPalette[index] = data; - if ((index & 0x06) > 0) { - //Regular Palettes (No special crap) - this.midScanLineJIT(); - this.gbcOBJPalette[index >> 1] = 0x1000000 | this.RGBTint((this.gbcOBJRawPalette[index | 1] << 8) | this.gbcOBJRawPalette[index & 0x3E]); - } - } -} -GameBoyCore.prototype.BGGBLayerRender = function (scanlineToRender) { - var scrollYAdjusted = (this.backgroundY + scanlineToRender) & 0xFF; //The line of the BG we're at. - var tileYLine = (scrollYAdjusted & 7) << 3; - var tileYDown = this.gfxBackgroundCHRBankPosition | ((scrollYAdjusted & 0xF8) << 2); //The row of cached tiles we're fetching from. - var scrollXAdjusted = (this.backgroundX + this.currentX) & 0xFF; //The scroll amount of the BG. - var pixelPosition = this.pixelStart + this.currentX; //Current pixel we're working on. - var pixelPositionEnd = this.pixelStart + ((this.gfxWindowDisplay && (scanlineToRender - this.windowY) >= 0) ? Math.min(Math.max(this.windowX, 0) + this.currentX, this.pixelEnd) : this.pixelEnd); //Make sure we do at most 160 pixels a scanline. - var tileNumber = tileYDown + (scrollXAdjusted >> 3); - var chrCode = this.BGCHRBank1[tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - var tile = this.tileCache[chrCode]; - for (var texel = (scrollXAdjusted & 0x7); texel < 8 && pixelPosition < pixelPositionEnd && scrollXAdjusted < 0x100; ++scrollXAdjusted) { - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[tileYLine | texel++]]; - } - var scrollXAdjustedAligned = Math.min(pixelPositionEnd - pixelPosition, 0x100 - scrollXAdjusted) >> 3; - scrollXAdjusted += scrollXAdjustedAligned << 3; - scrollXAdjustedAligned += tileNumber; - while (tileNumber < scrollXAdjustedAligned) { - chrCode = this.BGCHRBank1[++tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - tile = this.tileCache[chrCode]; - texel = tileYLine; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel]]; - } - if (pixelPosition < pixelPositionEnd) { - if (scrollXAdjusted < 0x100) { - chrCode = this.BGCHRBank1[++tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - tile = this.tileCache[chrCode]; - for (texel = tileYLine - 1; pixelPosition < pixelPositionEnd && scrollXAdjusted < 0x100; ++scrollXAdjusted) { - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[++texel]]; - } - } - scrollXAdjustedAligned = ((pixelPositionEnd - pixelPosition) >> 3) + tileYDown; - while (tileYDown < scrollXAdjustedAligned) { - chrCode = this.BGCHRBank1[tileYDown++]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - tile = this.tileCache[chrCode]; - texel = tileYLine; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel]]; - } - if (pixelPosition < pixelPositionEnd) { - chrCode = this.BGCHRBank1[tileYDown]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - tile = this.tileCache[chrCode]; - switch (pixelPositionEnd - pixelPosition) { - case 7: - this.frameBuffer[pixelPosition + 6] = this.BGPalette[tile[tileYLine | 6]]; - case 6: - this.frameBuffer[pixelPosition + 5] = this.BGPalette[tile[tileYLine | 5]]; - case 5: - this.frameBuffer[pixelPosition + 4] = this.BGPalette[tile[tileYLine | 4]]; - case 4: - this.frameBuffer[pixelPosition + 3] = this.BGPalette[tile[tileYLine | 3]]; - case 3: - this.frameBuffer[pixelPosition + 2] = this.BGPalette[tile[tileYLine | 2]]; - case 2: - this.frameBuffer[pixelPosition + 1] = this.BGPalette[tile[tileYLine | 1]]; - case 1: - this.frameBuffer[pixelPosition] = this.BGPalette[tile[tileYLine]]; - } - } - } -} -GameBoyCore.prototype.BGGBCLayerRender = function (scanlineToRender) { - var scrollYAdjusted = (this.backgroundY + scanlineToRender) & 0xFF; //The line of the BG we're at. - var tileYLine = (scrollYAdjusted & 7) << 3; - var tileYDown = this.gfxBackgroundCHRBankPosition | ((scrollYAdjusted & 0xF8) << 2); //The row of cached tiles we're fetching from. - var scrollXAdjusted = (this.backgroundX + this.currentX) & 0xFF; //The scroll amount of the BG. - var pixelPosition = this.pixelStart + this.currentX; //Current pixel we're working on. - var pixelPositionEnd = this.pixelStart + ((this.gfxWindowDisplay && (scanlineToRender - this.windowY) >= 0) ? Math.min(Math.max(this.windowX, 0) + this.currentX, this.pixelEnd) : this.pixelEnd); //Make sure we do at most 160 pixels a scanline. - var tileNumber = tileYDown + (scrollXAdjusted >> 3); - var chrCode = this.BGCHRBank1[tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - var attrCode = this.BGCHRBank2[tileNumber]; - var tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - var palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2); - for (var texel = (scrollXAdjusted & 0x7); texel < 8 && pixelPosition < pixelPositionEnd && scrollXAdjusted < 0x100; ++scrollXAdjusted) { - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[tileYLine | texel++]]; - } - var scrollXAdjustedAligned = Math.min(pixelPositionEnd - pixelPosition, 0x100 - scrollXAdjusted) >> 3; - scrollXAdjusted += scrollXAdjustedAligned << 3; - scrollXAdjustedAligned += tileNumber; - while (tileNumber < scrollXAdjustedAligned) { - chrCode = this.BGCHRBank1[++tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - attrCode = this.BGCHRBank2[tileNumber]; - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2); - texel = tileYLine; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel]]; - } - if (pixelPosition < pixelPositionEnd) { - if (scrollXAdjusted < 0x100) { - chrCode = this.BGCHRBank1[++tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - attrCode = this.BGCHRBank2[tileNumber]; - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2); - for (texel = tileYLine - 1; pixelPosition < pixelPositionEnd && scrollXAdjusted < 0x100; ++scrollXAdjusted) { - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[++texel]]; - } - } - scrollXAdjustedAligned = ((pixelPositionEnd - pixelPosition) >> 3) + tileYDown; - while (tileYDown < scrollXAdjustedAligned) { - chrCode = this.BGCHRBank1[tileYDown]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - attrCode = this.BGCHRBank2[tileYDown++]; - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2); - texel = tileYLine; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel]]; - } - if (pixelPosition < pixelPositionEnd) { - chrCode = this.BGCHRBank1[tileYDown]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - attrCode = this.BGCHRBank2[tileYDown]; - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2); - switch (pixelPositionEnd - pixelPosition) { - case 7: - this.frameBuffer[pixelPosition + 6] = this.gbcBGPalette[palette | tile[tileYLine | 6]]; - case 6: - this.frameBuffer[pixelPosition + 5] = this.gbcBGPalette[palette | tile[tileYLine | 5]]; - case 5: - this.frameBuffer[pixelPosition + 4] = this.gbcBGPalette[palette | tile[tileYLine | 4]]; - case 4: - this.frameBuffer[pixelPosition + 3] = this.gbcBGPalette[palette | tile[tileYLine | 3]]; - case 3: - this.frameBuffer[pixelPosition + 2] = this.gbcBGPalette[palette | tile[tileYLine | 2]]; - case 2: - this.frameBuffer[pixelPosition + 1] = this.gbcBGPalette[palette | tile[tileYLine | 1]]; - case 1: - this.frameBuffer[pixelPosition] = this.gbcBGPalette[palette | tile[tileYLine]]; - } - } - } -} -GameBoyCore.prototype.BGGBCLayerRenderNoPriorityFlagging = function (scanlineToRender) { - var scrollYAdjusted = (this.backgroundY + scanlineToRender) & 0xFF; //The line of the BG we're at. - var tileYLine = (scrollYAdjusted & 7) << 3; - var tileYDown = this.gfxBackgroundCHRBankPosition | ((scrollYAdjusted & 0xF8) << 2); //The row of cached tiles we're fetching from. - var scrollXAdjusted = (this.backgroundX + this.currentX) & 0xFF; //The scroll amount of the BG. - var pixelPosition = this.pixelStart + this.currentX; //Current pixel we're working on. - var pixelPositionEnd = this.pixelStart + ((this.gfxWindowDisplay && (scanlineToRender - this.windowY) >= 0) ? Math.min(Math.max(this.windowX, 0) + this.currentX, this.pixelEnd) : this.pixelEnd); //Make sure we do at most 160 pixels a scanline. - var tileNumber = tileYDown + (scrollXAdjusted >> 3); - var chrCode = this.BGCHRBank1[tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - var attrCode = this.BGCHRBank2[tileNumber]; - var tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - var palette = (attrCode & 0x7) << 2; - for (var texel = (scrollXAdjusted & 0x7); texel < 8 && pixelPosition < pixelPositionEnd && scrollXAdjusted < 0x100; ++scrollXAdjusted) { - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[tileYLine | texel++]]; - } - var scrollXAdjustedAligned = Math.min(pixelPositionEnd - pixelPosition, 0x100 - scrollXAdjusted) >> 3; - scrollXAdjusted += scrollXAdjustedAligned << 3; - scrollXAdjustedAligned += tileNumber; - while (tileNumber < scrollXAdjustedAligned) { - chrCode = this.BGCHRBank1[++tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - attrCode = this.BGCHRBank2[tileNumber]; - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - palette = (attrCode & 0x7) << 2; - texel = tileYLine; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel]]; - } - if (pixelPosition < pixelPositionEnd) { - if (scrollXAdjusted < 0x100) { - chrCode = this.BGCHRBank1[++tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - attrCode = this.BGCHRBank2[tileNumber]; - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - palette = (attrCode & 0x7) << 2; - for (texel = tileYLine - 1; pixelPosition < pixelPositionEnd && scrollXAdjusted < 0x100; ++scrollXAdjusted) { - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[++texel]]; - } - } - scrollXAdjustedAligned = ((pixelPositionEnd - pixelPosition) >> 3) + tileYDown; - while (tileYDown < scrollXAdjustedAligned) { - chrCode = this.BGCHRBank1[tileYDown]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - attrCode = this.BGCHRBank2[tileYDown++]; - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - palette = (attrCode & 0x7) << 2; - texel = tileYLine; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel]]; - } - if (pixelPosition < pixelPositionEnd) { - chrCode = this.BGCHRBank1[tileYDown]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - attrCode = this.BGCHRBank2[tileYDown]; - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - palette = (attrCode & 0x7) << 2; - switch (pixelPositionEnd - pixelPosition) { - case 7: - this.frameBuffer[pixelPosition + 6] = this.gbcBGPalette[palette | tile[tileYLine | 6]]; - case 6: - this.frameBuffer[pixelPosition + 5] = this.gbcBGPalette[palette | tile[tileYLine | 5]]; - case 5: - this.frameBuffer[pixelPosition + 4] = this.gbcBGPalette[palette | tile[tileYLine | 4]]; - case 4: - this.frameBuffer[pixelPosition + 3] = this.gbcBGPalette[palette | tile[tileYLine | 3]]; - case 3: - this.frameBuffer[pixelPosition + 2] = this.gbcBGPalette[palette | tile[tileYLine | 2]]; - case 2: - this.frameBuffer[pixelPosition + 1] = this.gbcBGPalette[palette | tile[tileYLine | 1]]; - case 1: - this.frameBuffer[pixelPosition] = this.gbcBGPalette[palette | tile[tileYLine]]; - } - } - } -} -GameBoyCore.prototype.WindowGBLayerRender = function (scanlineToRender) { - if (this.gfxWindowDisplay) { //Is the window enabled? - var scrollYAdjusted = scanlineToRender - this.windowY; //The line of the BG we're at. - if (scrollYAdjusted >= 0) { - var scrollXRangeAdjusted = (this.windowX > 0) ? (this.windowX + this.currentX) : this.currentX; - var pixelPosition = this.pixelStart + scrollXRangeAdjusted; - var pixelPositionEnd = this.pixelStart + this.pixelEnd; - if (pixelPosition < pixelPositionEnd) { - var tileYLine = (scrollYAdjusted & 0x7) << 3; - var tileNumber = (this.gfxWindowCHRBankPosition | ((scrollYAdjusted & 0xF8) << 2)) + (this.currentX >> 3); - var chrCode = this.BGCHRBank1[tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - var tile = this.tileCache[chrCode]; - var texel = (scrollXRangeAdjusted - this.windowX) & 0x7; - scrollXRangeAdjusted = Math.min(8, texel + pixelPositionEnd - pixelPosition); - while (texel < scrollXRangeAdjusted) { - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[tileYLine | texel++]]; - } - scrollXRangeAdjusted = tileNumber + ((pixelPositionEnd - pixelPosition) >> 3); - while (tileNumber < scrollXRangeAdjusted) { - chrCode = this.BGCHRBank1[++tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - tile = this.tileCache[chrCode]; - texel = tileYLine; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.BGPalette[tile[texel]]; - } - if (pixelPosition < pixelPositionEnd) { - chrCode = this.BGCHRBank1[++tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - tile = this.tileCache[chrCode]; - switch (pixelPositionEnd - pixelPosition) { - case 7: - this.frameBuffer[pixelPosition + 6] = this.BGPalette[tile[tileYLine | 6]]; - case 6: - this.frameBuffer[pixelPosition + 5] = this.BGPalette[tile[tileYLine | 5]]; - case 5: - this.frameBuffer[pixelPosition + 4] = this.BGPalette[tile[tileYLine | 4]]; - case 4: - this.frameBuffer[pixelPosition + 3] = this.BGPalette[tile[tileYLine | 3]]; - case 3: - this.frameBuffer[pixelPosition + 2] = this.BGPalette[tile[tileYLine | 2]]; - case 2: - this.frameBuffer[pixelPosition + 1] = this.BGPalette[tile[tileYLine | 1]]; - case 1: - this.frameBuffer[pixelPosition] = this.BGPalette[tile[tileYLine]]; - } - } - } - } - } -} -GameBoyCore.prototype.WindowGBCLayerRender = function (scanlineToRender) { - if (this.gfxWindowDisplay) { //Is the window enabled? - var scrollYAdjusted = scanlineToRender - this.windowY; //The line of the BG we're at. - if (scrollYAdjusted >= 0) { - var scrollXRangeAdjusted = (this.windowX > 0) ? (this.windowX + this.currentX) : this.currentX; - var pixelPosition = this.pixelStart + scrollXRangeAdjusted; - var pixelPositionEnd = this.pixelStart + this.pixelEnd; - if (pixelPosition < pixelPositionEnd) { - var tileYLine = (scrollYAdjusted & 0x7) << 3; - var tileNumber = (this.gfxWindowCHRBankPosition | ((scrollYAdjusted & 0xF8) << 2)) + (this.currentX >> 3); - var chrCode = this.BGCHRBank1[tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - var attrCode = this.BGCHRBank2[tileNumber]; - var tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - var palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2); - var texel = (scrollXRangeAdjusted - this.windowX) & 0x7; - scrollXRangeAdjusted = Math.min(8, texel + pixelPositionEnd - pixelPosition); - while (texel < scrollXRangeAdjusted) { - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[tileYLine | texel++]]; - } - scrollXRangeAdjusted = tileNumber + ((pixelPositionEnd - pixelPosition) >> 3); - while (tileNumber < scrollXRangeAdjusted) { - chrCode = this.BGCHRBank1[++tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - attrCode = this.BGCHRBank2[tileNumber]; - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2); - texel = tileYLine; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel]]; - } - if (pixelPosition < pixelPositionEnd) { - chrCode = this.BGCHRBank1[++tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - attrCode = this.BGCHRBank2[tileNumber]; - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - palette = ((attrCode & 0x7) << 2) | ((attrCode & 0x80) >> 2); - switch (pixelPositionEnd - pixelPosition) { - case 7: - this.frameBuffer[pixelPosition + 6] = this.gbcBGPalette[palette | tile[tileYLine | 6]]; - case 6: - this.frameBuffer[pixelPosition + 5] = this.gbcBGPalette[palette | tile[tileYLine | 5]]; - case 5: - this.frameBuffer[pixelPosition + 4] = this.gbcBGPalette[palette | tile[tileYLine | 4]]; - case 4: - this.frameBuffer[pixelPosition + 3] = this.gbcBGPalette[palette | tile[tileYLine | 3]]; - case 3: - this.frameBuffer[pixelPosition + 2] = this.gbcBGPalette[palette | tile[tileYLine | 2]]; - case 2: - this.frameBuffer[pixelPosition + 1] = this.gbcBGPalette[palette | tile[tileYLine | 1]]; - case 1: - this.frameBuffer[pixelPosition] = this.gbcBGPalette[palette | tile[tileYLine]]; - } - } - } - } - } -} -GameBoyCore.prototype.WindowGBCLayerRenderNoPriorityFlagging = function (scanlineToRender) { - if (this.gfxWindowDisplay) { //Is the window enabled? - var scrollYAdjusted = scanlineToRender - this.windowY; //The line of the BG we're at. - if (scrollYAdjusted >= 0) { - var scrollXRangeAdjusted = (this.windowX > 0) ? (this.windowX + this.currentX) : this.currentX; - var pixelPosition = this.pixelStart + scrollXRangeAdjusted; - var pixelPositionEnd = this.pixelStart + this.pixelEnd; - if (pixelPosition < pixelPositionEnd) { - var tileYLine = (scrollYAdjusted & 0x7) << 3; - var tileNumber = (this.gfxWindowCHRBankPosition | ((scrollYAdjusted & 0xF8) << 2)) + (this.currentX >> 3); - var chrCode = this.BGCHRBank1[tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - var attrCode = this.BGCHRBank2[tileNumber]; - var tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - var palette = (attrCode & 0x7) << 2; - var texel = (scrollXRangeAdjusted - this.windowX) & 0x7; - scrollXRangeAdjusted = Math.min(8, texel + pixelPositionEnd - pixelPosition); - while (texel < scrollXRangeAdjusted) { - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[tileYLine | texel++]]; - } - scrollXRangeAdjusted = tileNumber + ((pixelPositionEnd - pixelPosition) >> 3); - while (tileNumber < scrollXRangeAdjusted) { - chrCode = this.BGCHRBank1[++tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - attrCode = this.BGCHRBank2[tileNumber]; - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - palette = (attrCode & 0x7) << 2; - texel = tileYLine; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel++]]; - this.frameBuffer[pixelPosition++] = this.gbcBGPalette[palette | tile[texel]]; - } - if (pixelPosition < pixelPositionEnd) { - chrCode = this.BGCHRBank1[++tileNumber]; - if (chrCode < this.gfxBackgroundBankOffset) { - chrCode |= 0x100; - } - attrCode = this.BGCHRBank2[tileNumber]; - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | chrCode]; - palette = (attrCode & 0x7) << 2; - switch (pixelPositionEnd - pixelPosition) { - case 7: - this.frameBuffer[pixelPosition + 6] = this.gbcBGPalette[palette | tile[tileYLine | 6]]; - case 6: - this.frameBuffer[pixelPosition + 5] = this.gbcBGPalette[palette | tile[tileYLine | 5]]; - case 5: - this.frameBuffer[pixelPosition + 4] = this.gbcBGPalette[palette | tile[tileYLine | 4]]; - case 4: - this.frameBuffer[pixelPosition + 3] = this.gbcBGPalette[palette | tile[tileYLine | 3]]; - case 3: - this.frameBuffer[pixelPosition + 2] = this.gbcBGPalette[palette | tile[tileYLine | 2]]; - case 2: - this.frameBuffer[pixelPosition + 1] = this.gbcBGPalette[palette | tile[tileYLine | 1]]; - case 1: - this.frameBuffer[pixelPosition] = this.gbcBGPalette[palette | tile[tileYLine]]; - } - } - } - } - } -} -GameBoyCore.prototype.SpriteGBLayerRender = function (scanlineToRender) { - if (this.gfxSpriteShow) { //Are sprites enabled? - var lineAdjusted = scanlineToRender + 0x10; - var OAMAddress = 0xFE00; - var yoffset = 0; - var xcoord = 1; - var xCoordStart = 0; - var xCoordEnd = 0; - var attrCode = 0; - var palette = 0; - var tile = null; - var data = 0; - var spriteCount = 0; - var length = 0; - var currentPixel = 0; - var linePixel = 0; - //Clear our x-coord sort buffer: - while (xcoord < 168) { - this.sortBuffer[xcoord++] = 0xFF; - } - if (this.gfxSpriteNormalHeight) { - //Draw the visible sprites: - for (var length = this.findLowestSpriteDrawable(lineAdjusted, 0x7); spriteCount < length; ++spriteCount) { - OAMAddress = this.OAMAddressCache[spriteCount]; - yoffset = (lineAdjusted - this.memory[OAMAddress]) << 3; - attrCode = this.memory[OAMAddress | 3]; - palette = (attrCode & 0x10) >> 2; - tile = this.tileCache[((attrCode & 0x60) << 4) | this.memory[OAMAddress | 0x2]]; - linePixel = xCoordStart = this.memory[OAMAddress | 1]; - xCoordEnd = Math.min(168 - linePixel, 8); - xcoord = (linePixel > 7) ? 0 : (8 - linePixel); - for (currentPixel = this.pixelStart + ((linePixel > 8) ? (linePixel - 8) : 0); xcoord < xCoordEnd; ++xcoord, ++currentPixel, ++linePixel) { - if (this.sortBuffer[linePixel] > xCoordStart) { - if (this.frameBuffer[currentPixel] >= 0x2000000) { - data = tile[yoffset | xcoord]; - if (data > 0) { - this.frameBuffer[currentPixel] = this.OBJPalette[palette | data]; - this.sortBuffer[linePixel] = xCoordStart; - } - } - else if (this.frameBuffer[currentPixel] < 0x1000000) { - data = tile[yoffset | xcoord]; - if (data > 0 && attrCode < 0x80) { - this.frameBuffer[currentPixel] = this.OBJPalette[palette | data]; - this.sortBuffer[linePixel] = xCoordStart; - } - } - } - } - } - } - else { - //Draw the visible sprites: - for (var length = this.findLowestSpriteDrawable(lineAdjusted, 0xF); spriteCount < length; ++spriteCount) { - OAMAddress = this.OAMAddressCache[spriteCount]; - yoffset = (lineAdjusted - this.memory[OAMAddress]) << 3; - attrCode = this.memory[OAMAddress | 3]; - palette = (attrCode & 0x10) >> 2; - if ((attrCode & 0x40) == (0x40 & yoffset)) { - tile = this.tileCache[((attrCode & 0x60) << 4) | (this.memory[OAMAddress | 0x2] & 0xFE)]; - } - else { - tile = this.tileCache[((attrCode & 0x60) << 4) | this.memory[OAMAddress | 0x2] | 1]; - } - yoffset &= 0x3F; - linePixel = xCoordStart = this.memory[OAMAddress | 1]; - xCoordEnd = Math.min(168 - linePixel, 8); - xcoord = (linePixel > 7) ? 0 : (8 - linePixel); - for (currentPixel = this.pixelStart + ((linePixel > 8) ? (linePixel - 8) : 0); xcoord < xCoordEnd; ++xcoord, ++currentPixel, ++linePixel) { - if (this.sortBuffer[linePixel] > xCoordStart) { - if (this.frameBuffer[currentPixel] >= 0x2000000) { - data = tile[yoffset | xcoord]; - if (data > 0) { - this.frameBuffer[currentPixel] = this.OBJPalette[palette | data]; - this.sortBuffer[linePixel] = xCoordStart; - } - } - else if (this.frameBuffer[currentPixel] < 0x1000000) { - data = tile[yoffset | xcoord]; - if (data > 0 && attrCode < 0x80) { - this.frameBuffer[currentPixel] = this.OBJPalette[palette | data]; - this.sortBuffer[linePixel] = xCoordStart; - } - } - } - } - } - } - } -} -GameBoyCore.prototype.findLowestSpriteDrawable = function (scanlineToRender, drawableRange) { - var address = 0xFE00; - var spriteCount = 0; - var diff = 0; - while (address < 0xFEA0 && spriteCount < 10) { - diff = scanlineToRender - this.memory[address]; - if ((diff & drawableRange) == diff) { - this.OAMAddressCache[spriteCount++] = address; - } - address += 4; - } - return spriteCount; -} -GameBoyCore.prototype.SpriteGBCLayerRender = function (scanlineToRender) { - if (this.gfxSpriteShow) { //Are sprites enabled? - var OAMAddress = 0xFE00; - var lineAdjusted = scanlineToRender + 0x10; - var yoffset = 0; - var xcoord = 0; - var endX = 0; - var xCounter = 0; - var attrCode = 0; - var palette = 0; - var tile = null; - var data = 0; - var currentPixel = 0; - var spriteCount = 0; - if (this.gfxSpriteNormalHeight) { - for (; OAMAddress < 0xFEA0 && spriteCount < 10; OAMAddress += 4) { - yoffset = lineAdjusted - this.memory[OAMAddress]; - if ((yoffset & 0x7) == yoffset) { - xcoord = this.memory[OAMAddress | 1] - 8; - endX = Math.min(160, xcoord + 8); - attrCode = this.memory[OAMAddress | 3]; - palette = (attrCode & 7) << 2; - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | this.memory[OAMAddress | 2]]; - xCounter = (xcoord > 0) ? xcoord : 0; - xcoord -= yoffset << 3; - for (currentPixel = this.pixelStart + xCounter; xCounter < endX; ++xCounter, ++currentPixel) { - if (this.frameBuffer[currentPixel] >= 0x2000000) { - data = tile[xCounter - xcoord]; - if (data > 0) { - this.frameBuffer[currentPixel] = this.gbcOBJPalette[palette | data]; - } - } - else if (this.frameBuffer[currentPixel] < 0x1000000) { - data = tile[xCounter - xcoord]; - if (data > 0 && attrCode < 0x80) { //Don't optimize for attrCode, as LICM-capable JITs should optimize its checks. - this.frameBuffer[currentPixel] = this.gbcOBJPalette[palette | data]; - } - } - } - ++spriteCount; - } - } - } - else { - for (; OAMAddress < 0xFEA0 && spriteCount < 10; OAMAddress += 4) { - yoffset = lineAdjusted - this.memory[OAMAddress]; - if ((yoffset & 0xF) == yoffset) { - xcoord = this.memory[OAMAddress | 1] - 8; - endX = Math.min(160, xcoord + 8); - attrCode = this.memory[OAMAddress | 3]; - palette = (attrCode & 7) << 2; - if ((attrCode & 0x40) == (0x40 & (yoffset << 3))) { - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | (this.memory[OAMAddress | 0x2] & 0xFE)]; - } - else { - tile = this.tileCache[((attrCode & 0x08) << 8) | ((attrCode & 0x60) << 4) | this.memory[OAMAddress | 0x2] | 1]; - } - xCounter = (xcoord > 0) ? xcoord : 0; - xcoord -= (yoffset & 0x7) << 3; - for (currentPixel = this.pixelStart + xCounter; xCounter < endX; ++xCounter, ++currentPixel) { - if (this.frameBuffer[currentPixel] >= 0x2000000) { - data = tile[xCounter - xcoord]; - if (data > 0) { - this.frameBuffer[currentPixel] = this.gbcOBJPalette[palette | data]; - } - } - else if (this.frameBuffer[currentPixel] < 0x1000000) { - data = tile[xCounter - xcoord]; - if (data > 0 && attrCode < 0x80) { //Don't optimize for attrCode, as LICM-capable JITs should optimize its checks. - this.frameBuffer[currentPixel] = this.gbcOBJPalette[palette | data]; - } - } - } - ++spriteCount; - } - } - } - } -} -//Generate only a single tile line for the GB tile cache mode: -GameBoyCore.prototype.generateGBTileLine = function (address) { - var lineCopy = (this.memory[0x1 | address] << 8) | this.memory[0x9FFE & address]; - var tileBlock = this.tileCache[(address & 0x1FF0) >> 4]; - address = (address & 0xE) << 2; - tileBlock[address | 7] = ((lineCopy & 0x100) >> 7) | (lineCopy & 0x1); - tileBlock[address | 6] = ((lineCopy & 0x200) >> 8) | ((lineCopy & 0x2) >> 1); - tileBlock[address | 5] = ((lineCopy & 0x400) >> 9) | ((lineCopy & 0x4) >> 2); - tileBlock[address | 4] = ((lineCopy & 0x800) >> 10) | ((lineCopy & 0x8) >> 3); - tileBlock[address | 3] = ((lineCopy & 0x1000) >> 11) | ((lineCopy & 0x10) >> 4); - tileBlock[address | 2] = ((lineCopy & 0x2000) >> 12) | ((lineCopy & 0x20) >> 5); - tileBlock[address | 1] = ((lineCopy & 0x4000) >> 13) | ((lineCopy & 0x40) >> 6); - tileBlock[address] = ((lineCopy & 0x8000) >> 14) | ((lineCopy & 0x80) >> 7); -} -//Generate only a single tile line for the GBC tile cache mode (Bank 1): -GameBoyCore.prototype.generateGBCTileLineBank1 = function (address) { - var lineCopy = (this.memory[0x1 | address] << 8) | this.memory[0x9FFE & address]; - address &= 0x1FFE; - var tileBlock1 = this.tileCache[address >> 4]; - var tileBlock2 = this.tileCache[0x200 | (address >> 4)]; - var tileBlock3 = this.tileCache[0x400 | (address >> 4)]; - var tileBlock4 = this.tileCache[0x600 | (address >> 4)]; - address = (address & 0xE) << 2; - var addressFlipped = 0x38 - address; - tileBlock4[addressFlipped] = tileBlock2[address] = tileBlock3[addressFlipped | 7] = tileBlock1[address | 7] = ((lineCopy & 0x100) >> 7) | (lineCopy & 0x1); - tileBlock4[addressFlipped | 1] = tileBlock2[address | 1] = tileBlock3[addressFlipped | 6] = tileBlock1[address | 6] = ((lineCopy & 0x200) >> 8) | ((lineCopy & 0x2) >> 1); - tileBlock4[addressFlipped | 2] = tileBlock2[address | 2] = tileBlock3[addressFlipped | 5] = tileBlock1[address | 5] = ((lineCopy & 0x400) >> 9) | ((lineCopy & 0x4) >> 2); - tileBlock4[addressFlipped | 3] = tileBlock2[address | 3] = tileBlock3[addressFlipped | 4] = tileBlock1[address | 4] = ((lineCopy & 0x800) >> 10) | ((lineCopy & 0x8) >> 3); - tileBlock4[addressFlipped | 4] = tileBlock2[address | 4] = tileBlock3[addressFlipped | 3] = tileBlock1[address | 3] = ((lineCopy & 0x1000) >> 11) | ((lineCopy & 0x10) >> 4); - tileBlock4[addressFlipped | 5] = tileBlock2[address | 5] = tileBlock3[addressFlipped | 2] = tileBlock1[address | 2] = ((lineCopy & 0x2000) >> 12) | ((lineCopy & 0x20) >> 5); - tileBlock4[addressFlipped | 6] = tileBlock2[address | 6] = tileBlock3[addressFlipped | 1] = tileBlock1[address | 1] = ((lineCopy & 0x4000) >> 13) | ((lineCopy & 0x40) >> 6); - tileBlock4[addressFlipped | 7] = tileBlock2[address | 7] = tileBlock3[addressFlipped] = tileBlock1[address] = ((lineCopy & 0x8000) >> 14) | ((lineCopy & 0x80) >> 7); -} -//Generate all the flip combinations for a full GBC VRAM bank 1 tile: -GameBoyCore.prototype.generateGBCTileBank1 = function (vramAddress) { - var address = vramAddress >> 4; - var tileBlock1 = this.tileCache[address]; - var tileBlock2 = this.tileCache[0x200 | address]; - var tileBlock3 = this.tileCache[0x400 | address]; - var tileBlock4 = this.tileCache[0x600 | address]; - var lineCopy = 0; - vramAddress |= 0x8000; - address = 0; - var addressFlipped = 56; - do { - lineCopy = (this.memory[0x1 | vramAddress] << 8) | this.memory[vramAddress]; - tileBlock4[addressFlipped] = tileBlock2[address] = tileBlock3[addressFlipped | 7] = tileBlock1[address | 7] = ((lineCopy & 0x100) >> 7) | (lineCopy & 0x1); - tileBlock4[addressFlipped | 1] = tileBlock2[address | 1] = tileBlock3[addressFlipped | 6] = tileBlock1[address | 6] = ((lineCopy & 0x200) >> 8) | ((lineCopy & 0x2) >> 1); - tileBlock4[addressFlipped | 2] = tileBlock2[address | 2] = tileBlock3[addressFlipped | 5] = tileBlock1[address | 5] = ((lineCopy & 0x400) >> 9) | ((lineCopy & 0x4) >> 2); - tileBlock4[addressFlipped | 3] = tileBlock2[address | 3] = tileBlock3[addressFlipped | 4] = tileBlock1[address | 4] = ((lineCopy & 0x800) >> 10) | ((lineCopy & 0x8) >> 3); - tileBlock4[addressFlipped | 4] = tileBlock2[address | 4] = tileBlock3[addressFlipped | 3] = tileBlock1[address | 3] = ((lineCopy & 0x1000) >> 11) | ((lineCopy & 0x10) >> 4); - tileBlock4[addressFlipped | 5] = tileBlock2[address | 5] = tileBlock3[addressFlipped | 2] = tileBlock1[address | 2] = ((lineCopy & 0x2000) >> 12) | ((lineCopy & 0x20) >> 5); - tileBlock4[addressFlipped | 6] = tileBlock2[address | 6] = tileBlock3[addressFlipped | 1] = tileBlock1[address | 1] = ((lineCopy & 0x4000) >> 13) | ((lineCopy & 0x40) >> 6); - tileBlock4[addressFlipped | 7] = tileBlock2[address | 7] = tileBlock3[addressFlipped] = tileBlock1[address] = ((lineCopy & 0x8000) >> 14) | ((lineCopy & 0x80) >> 7); - address += 8; - addressFlipped -= 8; - vramAddress += 2; - } while (addressFlipped > -1); -} -//Generate only a single tile line for the GBC tile cache mode (Bank 2): -GameBoyCore.prototype.generateGBCTileLineBank2 = function (address) { - var lineCopy = (this.VRAM[0x1 | address] << 8) | this.VRAM[0x1FFE & address]; - var tileBlock1 = this.tileCache[0x800 | (address >> 4)]; - var tileBlock2 = this.tileCache[0xA00 | (address >> 4)]; - var tileBlock3 = this.tileCache[0xC00 | (address >> 4)]; - var tileBlock4 = this.tileCache[0xE00 | (address >> 4)]; - address = (address & 0xE) << 2; - var addressFlipped = 0x38 - address; - tileBlock4[addressFlipped] = tileBlock2[address] = tileBlock3[addressFlipped | 7] = tileBlock1[address | 7] = ((lineCopy & 0x100) >> 7) | (lineCopy & 0x1); - tileBlock4[addressFlipped | 1] = tileBlock2[address | 1] = tileBlock3[addressFlipped | 6] = tileBlock1[address | 6] = ((lineCopy & 0x200) >> 8) | ((lineCopy & 0x2) >> 1); - tileBlock4[addressFlipped | 2] = tileBlock2[address | 2] = tileBlock3[addressFlipped | 5] = tileBlock1[address | 5] = ((lineCopy & 0x400) >> 9) | ((lineCopy & 0x4) >> 2); - tileBlock4[addressFlipped | 3] = tileBlock2[address | 3] = tileBlock3[addressFlipped | 4] = tileBlock1[address | 4] = ((lineCopy & 0x800) >> 10) | ((lineCopy & 0x8) >> 3); - tileBlock4[addressFlipped | 4] = tileBlock2[address | 4] = tileBlock3[addressFlipped | 3] = tileBlock1[address | 3] = ((lineCopy & 0x1000) >> 11) | ((lineCopy & 0x10) >> 4); - tileBlock4[addressFlipped | 5] = tileBlock2[address | 5] = tileBlock3[addressFlipped | 2] = tileBlock1[address | 2] = ((lineCopy & 0x2000) >> 12) | ((lineCopy & 0x20) >> 5); - tileBlock4[addressFlipped | 6] = tileBlock2[address | 6] = tileBlock3[addressFlipped | 1] = tileBlock1[address | 1] = ((lineCopy & 0x4000) >> 13) | ((lineCopy & 0x40) >> 6); - tileBlock4[addressFlipped | 7] = tileBlock2[address | 7] = tileBlock3[addressFlipped] = tileBlock1[address] = ((lineCopy & 0x8000) >> 14) | ((lineCopy & 0x80) >> 7); -} -//Generate all the flip combinations for a full GBC VRAM bank 2 tile: -GameBoyCore.prototype.generateGBCTileBank2 = function (vramAddress) { - var address = vramAddress >> 4; - var tileBlock1 = this.tileCache[0x800 | address]; - var tileBlock2 = this.tileCache[0xA00 | address]; - var tileBlock3 = this.tileCache[0xC00 | address]; - var tileBlock4 = this.tileCache[0xE00 | address]; - var lineCopy = 0; - address = 0; - var addressFlipped = 56; - do { - lineCopy = (this.VRAM[0x1 | vramAddress] << 8) | this.VRAM[vramAddress]; - tileBlock4[addressFlipped] = tileBlock2[address] = tileBlock3[addressFlipped | 7] = tileBlock1[address | 7] = ((lineCopy & 0x100) >> 7) | (lineCopy & 0x1); - tileBlock4[addressFlipped | 1] = tileBlock2[address | 1] = tileBlock3[addressFlipped | 6] = tileBlock1[address | 6] = ((lineCopy & 0x200) >> 8) | ((lineCopy & 0x2) >> 1); - tileBlock4[addressFlipped | 2] = tileBlock2[address | 2] = tileBlock3[addressFlipped | 5] = tileBlock1[address | 5] = ((lineCopy & 0x400) >> 9) | ((lineCopy & 0x4) >> 2); - tileBlock4[addressFlipped | 3] = tileBlock2[address | 3] = tileBlock3[addressFlipped | 4] = tileBlock1[address | 4] = ((lineCopy & 0x800) >> 10) | ((lineCopy & 0x8) >> 3); - tileBlock4[addressFlipped | 4] = tileBlock2[address | 4] = tileBlock3[addressFlipped | 3] = tileBlock1[address | 3] = ((lineCopy & 0x1000) >> 11) | ((lineCopy & 0x10) >> 4); - tileBlock4[addressFlipped | 5] = tileBlock2[address | 5] = tileBlock3[addressFlipped | 2] = tileBlock1[address | 2] = ((lineCopy & 0x2000) >> 12) | ((lineCopy & 0x20) >> 5); - tileBlock4[addressFlipped | 6] = tileBlock2[address | 6] = tileBlock3[addressFlipped | 1] = tileBlock1[address | 1] = ((lineCopy & 0x4000) >> 13) | ((lineCopy & 0x40) >> 6); - tileBlock4[addressFlipped | 7] = tileBlock2[address | 7] = tileBlock3[addressFlipped] = tileBlock1[address] = ((lineCopy & 0x8000) >> 14) | ((lineCopy & 0x80) >> 7); - address += 8; - addressFlipped -= 8; - vramAddress += 2; - } while (addressFlipped > -1); -} -//Generate only a single tile line for the GB tile cache mode (OAM accessible range): -GameBoyCore.prototype.generateGBOAMTileLine = function (address) { - var lineCopy = (this.memory[0x1 | address] << 8) | this.memory[0x9FFE & address]; - address &= 0x1FFE; - var tileBlock1 = this.tileCache[address >> 4]; - var tileBlock2 = this.tileCache[0x200 | (address >> 4)]; - var tileBlock3 = this.tileCache[0x400 | (address >> 4)]; - var tileBlock4 = this.tileCache[0x600 | (address >> 4)]; - address = (address & 0xE) << 2; - var addressFlipped = 0x38 - address; - tileBlock4[addressFlipped] = tileBlock2[address] = tileBlock3[addressFlipped | 7] = tileBlock1[address | 7] = ((lineCopy & 0x100) >> 7) | (lineCopy & 0x1); - tileBlock4[addressFlipped | 1] = tileBlock2[address | 1] = tileBlock3[addressFlipped | 6] = tileBlock1[address | 6] = ((lineCopy & 0x200) >> 8) | ((lineCopy & 0x2) >> 1); - tileBlock4[addressFlipped | 2] = tileBlock2[address | 2] = tileBlock3[addressFlipped | 5] = tileBlock1[address | 5] = ((lineCopy & 0x400) >> 9) | ((lineCopy & 0x4) >> 2); - tileBlock4[addressFlipped | 3] = tileBlock2[address | 3] = tileBlock3[addressFlipped | 4] = tileBlock1[address | 4] = ((lineCopy & 0x800) >> 10) | ((lineCopy & 0x8) >> 3); - tileBlock4[addressFlipped | 4] = tileBlock2[address | 4] = tileBlock3[addressFlipped | 3] = tileBlock1[address | 3] = ((lineCopy & 0x1000) >> 11) | ((lineCopy & 0x10) >> 4); - tileBlock4[addressFlipped | 5] = tileBlock2[address | 5] = tileBlock3[addressFlipped | 2] = tileBlock1[address | 2] = ((lineCopy & 0x2000) >> 12) | ((lineCopy & 0x20) >> 5); - tileBlock4[addressFlipped | 6] = tileBlock2[address | 6] = tileBlock3[addressFlipped | 1] = tileBlock1[address | 1] = ((lineCopy & 0x4000) >> 13) | ((lineCopy & 0x40) >> 6); - tileBlock4[addressFlipped | 7] = tileBlock2[address | 7] = tileBlock3[addressFlipped] = tileBlock1[address] = ((lineCopy & 0x8000) >> 14) | ((lineCopy & 0x80) >> 7); -} -GameBoyCore.prototype.graphicsJIT = function () { - if (this.LCDisOn) { - this.totalLinesPassed = 0; //Mark frame for ensuring a JIT pass for the next framebuffer output. - this.graphicsJITScanlineGroup(); - } -} -GameBoyCore.prototype.graphicsJITVBlank = function () { - //JIT the graphics to v-blank framing: - this.totalLinesPassed += this.queuedScanLines; - this.graphicsJITScanlineGroup(); -} -GameBoyCore.prototype.graphicsJITScanlineGroup = function () { - //Normal rendering JIT, where we try to do groups of scanlines at once: - while (this.queuedScanLines > 0) { - this.renderScanLine(this.lastUnrenderedLine); - if (this.lastUnrenderedLine < 143) { - ++this.lastUnrenderedLine; - } - else { - this.lastUnrenderedLine = 0; - } - --this.queuedScanLines; - } -} -GameBoyCore.prototype.incrementScanLineQueue = function () { - if (this.queuedScanLines < 144) { - ++this.queuedScanLines; - } - else { - this.currentX = 0; - this.midScanlineOffset = -1; - if (this.lastUnrenderedLine < 143) { - ++this.lastUnrenderedLine; - } - else { - this.lastUnrenderedLine = 0; - } - } -} -GameBoyCore.prototype.midScanLineJIT = function () { - this.graphicsJIT(); - this.renderMidScanLine(); -} -//Check for the highest priority IRQ to fire: -GameBoyCore.prototype.launchIRQ = function () { - var bitShift = 0; - var testbit = 1; - do { - //Check to see if an interrupt is enabled AND requested. - if ((testbit & this.IRQLineMatched) == testbit) { - this.IME = false; //Reset the interrupt enabling. - this.interruptsRequested -= testbit; //Reset the interrupt request. - this.IRQLineMatched = 0; //Reset the IRQ assertion. - //Interrupts have a certain clock cycle length: - this.CPUTicks = 20; - //Set the stack pointer to the current program counter value: - this.stackPointer = (this.stackPointer - 1) & 0xFFFF; - this.memoryWriter[this.stackPointer](this, this.stackPointer, this.programCounter >> 8); - this.stackPointer = (this.stackPointer - 1) & 0xFFFF; - this.memoryWriter[this.stackPointer](this, this.stackPointer, this.programCounter & 0xFF); - //Set the program counter to the interrupt's address: - this.programCounter = 0x40 | (bitShift << 3); - //Clock the core for mid-instruction updates: - this.updateCore(); - return; //We only want the highest priority interrupt. - } - testbit = 1 << ++bitShift; - } while (bitShift < 5); -} -/* - Check for IRQs to be fired while not in HALT: -*/ -GameBoyCore.prototype.checkIRQMatching = function () { - if (this.IME) { - this.IRQLineMatched = this.interruptsEnabled & this.interruptsRequested & 0x1F; - } -} -/* - Handle the HALT opcode by predicting all IRQ cases correctly, - then selecting the next closest IRQ firing from the prediction to - clock up to. This prevents hacky looping that doesn't predict, but - instead just clocks through the core update procedure by one which - is very slow. Not many emulators do this because they have to cover - all the IRQ prediction cases and they usually get them wrong. -*/ -GameBoyCore.prototype.calculateHALTPeriod = function () { - //Initialize our variables and start our prediction: - if (!this.halt) { - this.halt = true; - var currentClocks = -1; - var temp_var = 0; - if (this.LCDisOn) { - //If the LCD is enabled, then predict the LCD IRQs enabled: - if ((this.interruptsEnabled & 0x1) == 0x1) { - currentClocks = ((456 * (((this.modeSTAT == 1) ? 298 : 144) - this.actualScanLine)) - this.LCDTicks) << this.doubleSpeedShifter; - } - if ((this.interruptsEnabled & 0x2) == 0x2) { - if (this.mode0TriggerSTAT) { - temp_var = (this.clocksUntilMode0() - this.LCDTicks) << this.doubleSpeedShifter; - if (temp_var <= currentClocks || currentClocks == -1) { - currentClocks = temp_var; - } - } - if (this.mode1TriggerSTAT && (this.interruptsEnabled & 0x1) == 0) { - temp_var = ((456 * (((this.modeSTAT == 1) ? 298 : 144) - this.actualScanLine)) - this.LCDTicks) << this.doubleSpeedShifter; - if (temp_var <= currentClocks || currentClocks == -1) { - currentClocks = temp_var; - } - } - if (this.mode2TriggerSTAT) { - temp_var = (((this.actualScanLine >= 143) ? (456 * (154 - this.actualScanLine)) : 456) - this.LCDTicks) << this.doubleSpeedShifter; - if (temp_var <= currentClocks || currentClocks == -1) { - currentClocks = temp_var; - } - } - if (this.LYCMatchTriggerSTAT && this.memory[0xFF45] <= 153) { - temp_var = (this.clocksUntilLYCMatch() - this.LCDTicks) << this.doubleSpeedShifter; - if (temp_var <= currentClocks || currentClocks == -1) { - currentClocks = temp_var; - } - } - } - } - if (this.TIMAEnabled && (this.interruptsEnabled & 0x4) == 0x4) { - //CPU timer IRQ prediction: - temp_var = ((0x100 - this.memory[0xFF05]) * this.TACClocker) - this.timerTicks; - if (temp_var <= currentClocks || currentClocks == -1) { - currentClocks = temp_var; - } - } - if (this.serialTimer > 0 && (this.interruptsEnabled & 0x8) == 0x8) { - //Serial IRQ prediction: - if (this.serialTimer <= currentClocks || currentClocks == -1) { - currentClocks = this.serialTimer; - } - } - } - else { - var currentClocks = this.remainingClocks; - } - var maxClocks = (this.CPUCyclesTotal - this.emulatorTicks) << this.doubleSpeedShifter; - if (currentClocks >= 0) { - if (currentClocks <= maxClocks) { - //Exit out of HALT normally: - this.CPUTicks = Math.max(currentClocks, this.CPUTicks); - this.updateCoreFull(); - this.halt = false; - this.CPUTicks = 0; - } - else { - //Still in HALT, clock only up to the clocks specified per iteration: - this.CPUTicks = Math.max(maxClocks, this.CPUTicks); - this.remainingClocks = currentClocks - this.CPUTicks; - } - } - else { - //Still in HALT, clock only up to the clocks specified per iteration: - //Will stay in HALT forever (Stuck in HALT forever), but the APU and LCD are still clocked, so don't pause: - this.CPUTicks += maxClocks; - } -} -//Memory Reading: -GameBoyCore.prototype.memoryRead = function (address) { - //Act as a wrapper for reading the returns from the compiled jumps to memory. - return this.memoryReader[address](this, address); //This seems to be faster than the usual if/else. -} -GameBoyCore.prototype.memoryHighRead = function (address) { - //Act as a wrapper for reading the returns from the compiled jumps to memory. - return this.memoryHighReader[address](this, address); //This seems to be faster than the usual if/else. -} -GameBoyCore.prototype.memoryReadJumpCompile = function () { - //Faster in some browsers, since we are doing less conditionals overall by implementing them in advance. - for (var index = 0x0000; index <= 0xFFFF; index++) { - if (index < 0x4000) { - this.memoryReader[index] = this.memoryReadNormal; - } - else if (index < 0x8000) { - this.memoryReader[index] = this.memoryReadROM; - } - else if (index < 0x9800) { - this.memoryReader[index] = (this.cGBC) ? this.VRAMDATAReadCGBCPU : this.VRAMDATAReadDMGCPU; - } - else if (index < 0xA000) { - this.memoryReader[index] = (this.cGBC) ? this.VRAMCHRReadCGBCPU : this.VRAMCHRReadDMGCPU; - } - else if (index >= 0xA000 && index < 0xC000) { - if ((this.numRAMBanks == 1 / 16 && index < 0xA200) || this.numRAMBanks >= 1) { - if (this.cMBC7) { - this.memoryReader[index] = this.memoryReadMBC7; - } - else if (!this.cMBC3) { - this.memoryReader[index] = this.memoryReadMBC; - } - else { - //MBC3 RTC + RAM: - this.memoryReader[index] = this.memoryReadMBC3; - } - } - else { - this.memoryReader[index] = this.memoryReadBAD; - } - } - else if (index >= 0xC000 && index < 0xE000) { - if (!this.cGBC || index < 0xD000) { - this.memoryReader[index] = this.memoryReadNormal; - } - else { - this.memoryReader[index] = this.memoryReadGBCMemory; - } - } - else if (index >= 0xE000 && index < 0xFE00) { - if (!this.cGBC || index < 0xF000) { - this.memoryReader[index] = this.memoryReadECHONormal; - } - else { - this.memoryReader[index] = this.memoryReadECHOGBCMemory; - } - } - else if (index < 0xFEA0) { - this.memoryReader[index] = this.memoryReadOAM; - } - else if (this.cGBC && index >= 0xFEA0 && index < 0xFF00) { - this.memoryReader[index] = this.memoryReadNormal; - } - else if (index >= 0xFF00) { - switch (index) { - case 0xFF00: - //JOYPAD: - this.memoryHighReader[0] = this.memoryReader[0xFF00] = function (parentObj, address) { - return 0xC0 | parentObj.memory[0xFF00]; //Top nibble returns as set. - } - break; - case 0xFF01: - //SB - this.memoryHighReader[0x01] = this.memoryReader[0xFF01] = function (parentObj, address) { - return (parentObj.memory[0xFF02] < 0x80) ? parentObj.memory[0xFF01] : 0xFF; - } - break; - case 0xFF02: - //SC - if (this.cGBC) { - this.memoryHighReader[0x02] = this.memoryReader[0xFF02] = function (parentObj, address) { - return ((parentObj.serialTimer <= 0) ? 0x7C : 0xFC) | parentObj.memory[0xFF02]; - } - } - else { - this.memoryHighReader[0x02] = this.memoryReader[0xFF02] = function (parentObj, address) { - return ((parentObj.serialTimer <= 0) ? 0x7E : 0xFE) | parentObj.memory[0xFF02]; - } - } - break; - case 0xFF04: - //DIV - this.memoryHighReader[0x04] = this.memoryReader[0xFF04] = function (parentObj, address) { - parentObj.memory[0xFF04] = (parentObj.memory[0xFF04] + (parentObj.DIVTicks >> 8)) & 0xFF; - parentObj.DIVTicks &= 0xFF; - return parentObj.memory[0xFF04]; - - } - break; - case 0xFF07: - this.memoryHighReader[0x07] = this.memoryReader[0xFF07] = function (parentObj, address) { - return 0xF8 | parentObj.memory[0xFF07]; - } - break; - case 0xFF0F: - //IF - this.memoryHighReader[0x0F] = this.memoryReader[0xFF0F] = function (parentObj, address) { - return 0xE0 | parentObj.interruptsRequested; - } - break; - case 0xFF10: - this.memoryHighReader[0x10] = this.memoryReader[0xFF10] = function (parentObj, address) { - return 0x80 | parentObj.memory[0xFF10]; - } - break; - case 0xFF11: - this.memoryHighReader[0x11] = this.memoryReader[0xFF11] = function (parentObj, address) { - return 0x3F | parentObj.memory[0xFF11]; - } - break; - case 0xFF13: - this.memoryHighReader[0x13] = this.memoryReader[0xFF13] = this.memoryReadBAD; - break; - case 0xFF14: - this.memoryHighReader[0x14] = this.memoryReader[0xFF14] = function (parentObj, address) { - return 0xBF | parentObj.memory[0xFF14]; - } - break; - case 0xFF16: - this.memoryHighReader[0x16] = this.memoryReader[0xFF16] = function (parentObj, address) { - return 0x3F | parentObj.memory[0xFF16]; - } - break; - case 0xFF18: - this.memoryHighReader[0x18] = this.memoryReader[0xFF18] = this.memoryReadBAD; - break; - case 0xFF19: - this.memoryHighReader[0x19] = this.memoryReader[0xFF19] = function (parentObj, address) { - return 0xBF | parentObj.memory[0xFF19]; - } - break; - case 0xFF1A: - this.memoryHighReader[0x1A] = this.memoryReader[0xFF1A] = function (parentObj, address) { - return 0x7F | parentObj.memory[0xFF1A]; - } - break; - case 0xFF1B: - this.memoryHighReader[0x1B] = this.memoryReader[0xFF1B] = this.memoryReadBAD; - break; - case 0xFF1C: - this.memoryHighReader[0x1C] = this.memoryReader[0xFF1C] = function (parentObj, address) { - return 0x9F | parentObj.memory[0xFF1C]; - } - break; - case 0xFF1D: - this.memoryHighReader[0x1D] = this.memoryReader[0xFF1D] = function (parentObj, address) { - return 0xFF; - } - break; - case 0xFF1E: - this.memoryHighReader[0x1E] = this.memoryReader[0xFF1E] = function (parentObj, address) { - return 0xBF | parentObj.memory[0xFF1E]; - } - break; - case 0xFF1F: - case 0xFF20: - this.memoryHighReader[index & 0xFF] = this.memoryReader[index] = this.memoryReadBAD; - break; - case 0xFF23: - this.memoryHighReader[0x23] = this.memoryReader[0xFF23] = function (parentObj, address) { - return 0xBF | parentObj.memory[0xFF23]; - } - break; - case 0xFF26: - this.memoryHighReader[0x26] = this.memoryReader[0xFF26] = function (parentObj, address) { - parentObj.audioJIT(); - return 0x70 | parentObj.memory[0xFF26]; - } - break; - case 0xFF27: - case 0xFF28: - case 0xFF29: - case 0xFF2A: - case 0xFF2B: - case 0xFF2C: - case 0xFF2D: - case 0xFF2E: - case 0xFF2F: - this.memoryHighReader[index & 0xFF] = this.memoryReader[index] = this.memoryReadBAD; - break; - case 0xFF30: - case 0xFF31: - case 0xFF32: - case 0xFF33: - case 0xFF34: - case 0xFF35: - case 0xFF36: - case 0xFF37: - case 0xFF38: - case 0xFF39: - case 0xFF3A: - case 0xFF3B: - case 0xFF3C: - case 0xFF3D: - case 0xFF3E: - case 0xFF3F: - this.memoryReader[index] = function (parentObj, address) { - return (parentObj.channel3canPlay) ? parentObj.memory[0xFF00 | (parentObj.channel3lastSampleLookup >> 1)] : parentObj.memory[address]; - } - this.memoryHighReader[index & 0xFF] = function (parentObj, address) { - return (parentObj.channel3canPlay) ? parentObj.memory[0xFF00 | (parentObj.channel3lastSampleLookup >> 1)] : parentObj.memory[0xFF00 | address]; - } - break; - case 0xFF41: - this.memoryHighReader[0x41] = this.memoryReader[0xFF41] = function (parentObj, address) { - return 0x80 | parentObj.memory[0xFF41] | parentObj.modeSTAT; - } - break; - case 0xFF42: - this.memoryHighReader[0x42] = this.memoryReader[0xFF42] = function (parentObj, address) { - return parentObj.backgroundY; - } - break; - case 0xFF43: - this.memoryHighReader[0x43] = this.memoryReader[0xFF43] = function (parentObj, address) { - return parentObj.backgroundX; - } - break; - case 0xFF44: - this.memoryHighReader[0x44] = this.memoryReader[0xFF44] = function (parentObj, address) { - return ((parentObj.LCDisOn) ? parentObj.memory[0xFF44] : 0); - } - break; - case 0xFF4A: - //WY - this.memoryHighReader[0x4A] = this.memoryReader[0xFF4A] = function (parentObj, address) { - return parentObj.windowY; - } - break; - case 0xFF4F: - this.memoryHighReader[0x4F] = this.memoryReader[0xFF4F] = function (parentObj, address) { - return parentObj.currVRAMBank; - } - break; - case 0xFF55: - if (this.cGBC) { - this.memoryHighReader[0x55] = this.memoryReader[0xFF55] = function (parentObj, address) { - if (!parentObj.LCDisOn && parentObj.hdmaRunning) { //Undocumented behavior alert: HDMA becomes GDMA when LCD is off (Worms Armageddon Fix). - //DMA - parentObj.DMAWrite((parentObj.memory[0xFF55] & 0x7F) + 1); - parentObj.memory[0xFF55] = 0xFF; //Transfer completed. - parentObj.hdmaRunning = false; - } - return parentObj.memory[0xFF55]; - } - } - else { - this.memoryReader[0xFF55] = this.memoryReadNormal; - this.memoryHighReader[0x55] = this.memoryHighReadNormal; - } - break; - case 0xFF56: - if (this.cGBC) { - this.memoryHighReader[0x56] = this.memoryReader[0xFF56] = function (parentObj, address) { - //Return IR "not connected" status: - return 0x3C | ((parentObj.memory[0xFF56] >= 0xC0) ? (0x2 | (parentObj.memory[0xFF56] & 0xC1)) : (parentObj.memory[0xFF56] & 0xC3)); - } - } - else { - this.memoryReader[0xFF56] = this.memoryReadNormal; - this.memoryHighReader[0x56] = this.memoryHighReadNormal; - } - break; - case 0xFF6C: - if (this.cGBC) { - this.memoryHighReader[0x6C] = this.memoryReader[0xFF6C] = function (parentObj, address) { - return 0xFE | parentObj.memory[0xFF6C]; - } - } - else { - this.memoryHighReader[0x6C] = this.memoryReader[0xFF6C] = this.memoryReadBAD; - } - break; - case 0xFF70: - if (this.cGBC) { - //SVBK - this.memoryHighReader[0x70] = this.memoryReader[0xFF70] = function (parentObj, address) { - return 0x40 | parentObj.memory[0xFF70]; - } - } - else { - this.memoryHighReader[0x70] = this.memoryReader[0xFF70] = this.memoryReadBAD; - } - break; - case 0xFF75: - this.memoryHighReader[0x75] = this.memoryReader[0xFF75] = function (parentObj, address) { - return 0x8F | parentObj.memory[0xFF75]; - } - break; - case 0xFF76: - case 0xFF77: - this.memoryHighReader[index & 0xFF] = this.memoryReader[index] = function (parentObj, address) { - return 0; - } - break; - case 0xFFFF: - //IE - this.memoryHighReader[0xFF] = this.memoryReader[0xFFFF] = function (parentObj, address) { - return parentObj.interruptsEnabled; - } - break; - default: - this.memoryReader[index] = this.memoryReadNormal; - this.memoryHighReader[index & 0xFF] = this.memoryHighReadNormal; - } - } - else { - this.memoryReader[index] = this.memoryReadBAD; - } - } -} -GameBoyCore.prototype.memoryReadNormal = function (parentObj, address) { - return parentObj.memory[address]; -} -GameBoyCore.prototype.memoryHighReadNormal = function (parentObj, address) { - return parentObj.memory[0xFF00 | address]; -} -GameBoyCore.prototype.memoryReadROM = function (parentObj, address) { - return parentObj.ROM[parentObj.currentROMBank + address]; -} -GameBoyCore.prototype.memoryReadMBC = function (parentObj, address) { - //Switchable RAM - if (parentObj.MBCRAMBanksEnabled || settings[10]) { - return parentObj.MBCRam[address + parentObj.currMBCRAMBankPosition]; - } - //cout("Reading from disabled RAM.", 1); - return 0xFF; -} -GameBoyCore.prototype.memoryReadMBC7 = function (parentObj, address) { - //Switchable RAM - if (parentObj.MBCRAMBanksEnabled || settings[10]) { - switch (address) { - case 0xA000: - case 0xA060: - case 0xA070: - return 0; - case 0xA080: - //TODO: Gyro Control Register - return 0; - case 0xA050: - //Y High Byte - return parentObj.highY; - case 0xA040: - //Y Low Byte - return parentObj.lowY; - case 0xA030: - //X High Byte - return parentObj.highX; - case 0xA020: - //X Low Byte: - return parentObj.lowX; - default: - return parentObj.MBCRam[address + parentObj.currMBCRAMBankPosition]; - } - } - //cout("Reading from disabled RAM.", 1); - return 0xFF; -} -GameBoyCore.prototype.memoryReadMBC3 = function (parentObj, address) { - //Switchable RAM - if (parentObj.MBCRAMBanksEnabled || settings[10]) { - switch (parentObj.currMBCRAMBank) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - return parentObj.MBCRam[address + parentObj.currMBCRAMBankPosition]; - break; - case 0x08: - return parentObj.latchedSeconds; - break; - case 0x09: - return parentObj.latchedMinutes; - break; - case 0x0A: - return parentObj.latchedHours; - break; - case 0x0B: - return parentObj.latchedLDays; - break; - case 0x0C: - return (((parentObj.RTCDayOverFlow) ? 0x80 : 0) + ((parentObj.RTCHALT) ? 0x40 : 0)) + parentObj.latchedHDays; - } - } - //cout("Reading from invalid or disabled RAM.", 1); - return 0xFF; -} -GameBoyCore.prototype.memoryReadGBCMemory = function (parentObj, address) { - return parentObj.GBCMemory[address + parentObj.gbcRamBankPosition]; -} -GameBoyCore.prototype.memoryReadOAM = function (parentObj, address) { - return (parentObj.modeSTAT > 1) ? 0xFF : parentObj.memory[address]; -} -GameBoyCore.prototype.memoryReadECHOGBCMemory = function (parentObj, address) { - return parentObj.GBCMemory[address + parentObj.gbcRamBankPositionECHO]; -} -GameBoyCore.prototype.memoryReadECHONormal = function (parentObj, address) { - return parentObj.memory[address - 0x2000]; -} -GameBoyCore.prototype.memoryReadBAD = function (parentObj, address) { - return 0xFF; -} -GameBoyCore.prototype.VRAMDATAReadCGBCPU = function (parentObj, address) { - //CPU Side Reading The VRAM (Optimized for GameBoy Color) - return (parentObj.modeSTAT > 2) ? 0xFF : ((parentObj.currVRAMBank == 0) ? parentObj.memory[address] : parentObj.VRAM[address & 0x1FFF]); -} -GameBoyCore.prototype.VRAMDATAReadDMGCPU = function (parentObj, address) { - //CPU Side Reading The VRAM (Optimized for classic GameBoy) - return (parentObj.modeSTAT > 2) ? 0xFF : parentObj.memory[address]; -} -GameBoyCore.prototype.VRAMCHRReadCGBCPU = function (parentObj, address) { - //CPU Side Reading the Character Data Map: - return (parentObj.modeSTAT > 2) ? 0xFF : parentObj.BGCHRCurrentBank[address & 0x7FF]; -} -GameBoyCore.prototype.VRAMCHRReadDMGCPU = function (parentObj, address) { - //CPU Side Reading the Character Data Map: - return (parentObj.modeSTAT > 2) ? 0xFF : parentObj.BGCHRBank1[address & 0x7FF]; -} -GameBoyCore.prototype.setCurrentMBC1ROMBank = function () { - //Read the cartridge ROM data from RAM memory: - switch (this.ROMBank1offs) { - case 0x00: - case 0x20: - case 0x40: - case 0x60: - //Bank calls for 0x00, 0x20, 0x40, and 0x60 are really for 0x01, 0x21, 0x41, and 0x61. - this.currentROMBank = (this.ROMBank1offs % this.ROMBankEdge) << 14; - break; - default: - this.currentROMBank = ((this.ROMBank1offs % this.ROMBankEdge) - 1) << 14; - } -} -GameBoyCore.prototype.setCurrentMBC2AND3ROMBank = function () { - //Read the cartridge ROM data from RAM memory: - //Only map bank 0 to bank 1 here (MBC2 is like MBC1, but can only do 16 banks, so only the bank 0 quirk appears for MBC2): - this.currentROMBank = Math.max((this.ROMBank1offs % this.ROMBankEdge) - 1, 0) << 14; -} -GameBoyCore.prototype.setCurrentMBC5ROMBank = function () { - //Read the cartridge ROM data from RAM memory: - this.currentROMBank = ((this.ROMBank1offs % this.ROMBankEdge) - 1) << 14; -} -//Memory Writing: -GameBoyCore.prototype.memoryWrite = function (address, data) { - //Act as a wrapper for writing by compiled jumps to specific memory writing functions. - this.memoryWriter[address](this, address, data); -} -//0xFFXX fast path: -GameBoyCore.prototype.memoryHighWrite = function (address, data) { - //Act as a wrapper for writing by compiled jumps to specific memory writing functions. - this.memoryHighWriter[address](this, address, data); -} -GameBoyCore.prototype.memoryWriteJumpCompile = function () { - //Faster in some browsers, since we are doing less conditionals overall by implementing them in advance. - for (var index = 0x0000; index <= 0xFFFF; index++) { - if (index < 0x8000) { - if (this.cMBC1) { - if (index < 0x2000) { - this.memoryWriter[index] = this.MBCWriteEnable; - } - else if (index < 0x4000) { - this.memoryWriter[index] = this.MBC1WriteROMBank; - } - else if (index < 0x6000) { - this.memoryWriter[index] = this.MBC1WriteRAMBank; - } - else { - this.memoryWriter[index] = this.MBC1WriteType; - } - } - else if (this.cMBC2) { - if (index < 0x1000) { - this.memoryWriter[index] = this.MBCWriteEnable; - } - else if (index >= 0x2100 && index < 0x2200) { - this.memoryWriter[index] = this.MBC2WriteROMBank; - } - else { - this.memoryWriter[index] = this.cartIgnoreWrite; - } - } - else if (this.cMBC3) { - if (index < 0x2000) { - this.memoryWriter[index] = this.MBCWriteEnable; - } - else if (index < 0x4000) { - this.memoryWriter[index] = this.MBC3WriteROMBank; - } - else if (index < 0x6000) { - this.memoryWriter[index] = this.MBC3WriteRAMBank; - } - else { - this.memoryWriter[index] = this.MBC3WriteRTCLatch; - } - } - else if (this.cMBC5 || this.cRUMBLE || this.cMBC7) { - if (index < 0x2000) { - this.memoryWriter[index] = this.MBCWriteEnable; - } - else if (index < 0x3000) { - this.memoryWriter[index] = this.MBC5WriteROMBankLow; - } - else if (index < 0x4000) { - this.memoryWriter[index] = this.MBC5WriteROMBankHigh; - } - else if (index < 0x6000) { - this.memoryWriter[index] = (this.cRUMBLE) ? this.RUMBLEWriteRAMBank : this.MBC5WriteRAMBank; - } - else { - this.memoryWriter[index] = this.cartIgnoreWrite; - } - } - else if (this.cHuC3) { - if (index < 0x2000) { - this.memoryWriter[index] = this.MBCWriteEnable; - } - else if (index < 0x4000) { - this.memoryWriter[index] = this.MBC3WriteROMBank; - } - else if (index < 0x6000) { - this.memoryWriter[index] = this.HuC3WriteRAMBank; - } - else { - this.memoryWriter[index] = this.cartIgnoreWrite; - } - } - else { - this.memoryWriter[index] = this.cartIgnoreWrite; - } - } - else if (index < 0x9000) { - this.memoryWriter[index] = (this.cGBC) ? this.VRAMGBCDATAWrite : this.VRAMGBDATAWrite; - } - else if (index < 0x9800) { - this.memoryWriter[index] = (this.cGBC) ? this.VRAMGBCDATAWrite : this.VRAMGBDATAUpperWrite; - } - else if (index < 0xA000) { - this.memoryWriter[index] = (this.cGBC) ? this.VRAMGBCCHRMAPWrite : this.VRAMGBCHRMAPWrite; - } - else if (index < 0xC000) { - if ((this.numRAMBanks == 1 / 16 && index < 0xA200) || this.numRAMBanks >= 1) { - if (!this.cMBC3) { - this.memoryWriter[index] = this.memoryWriteMBCRAM; - } - else { - //MBC3 RTC + RAM: - this.memoryWriter[index] = this.memoryWriteMBC3RAM; - } - } - else { - this.memoryWriter[index] = this.cartIgnoreWrite; - } - } - else if (index < 0xE000) { - if (this.cGBC && index >= 0xD000) { - this.memoryWriter[index] = this.memoryWriteGBCRAM; - } - else { - this.memoryWriter[index] = this.memoryWriteNormal; - } - } - else if (index < 0xFE00) { - if (this.cGBC && index >= 0xF000) { - this.memoryWriter[index] = this.memoryWriteECHOGBCRAM; - } - else { - this.memoryWriter[index] = this.memoryWriteECHONormal; - } - } - else if (index <= 0xFEA0) { - this.memoryWriter[index] = this.memoryWriteOAMRAM; - } - else if (index < 0xFF00) { - if (this.cGBC) { //Only GBC has access to this RAM. - this.memoryWriter[index] = this.memoryWriteNormal; - } - else { - this.memoryWriter[index] = this.cartIgnoreWrite; - } - } - else { - //Start the I/O initialization by filling in the slots as normal memory: - this.memoryWriter[index] = this.memoryWriteNormal; - this.memoryHighWriter[index & 0xFF] = this.memoryHighWriteNormal; - } - } - this.registerWriteJumpCompile(); //Compile the I/O write functions separately... -} -GameBoyCore.prototype.MBCWriteEnable = function (parentObj, address, data) { - //MBC RAM Bank Enable/Disable: - parentObj.MBCRAMBanksEnabled = ((data & 0x0F) == 0x0A); //If lower nibble is 0x0A, then enable, otherwise disable. -} -GameBoyCore.prototype.MBC1WriteROMBank = function (parentObj, address, data) { - //MBC1 ROM bank switching: - parentObj.ROMBank1offs = (parentObj.ROMBank1offs & 0x60) | (data & 0x1F); - parentObj.setCurrentMBC1ROMBank(); -} -GameBoyCore.prototype.MBC1WriteRAMBank = function (parentObj, address, data) { - //MBC1 RAM bank switching - if (parentObj.MBC1Mode) { - //4/32 Mode - parentObj.currMBCRAMBank = data & 0x03; - parentObj.currMBCRAMBankPosition = (parentObj.currMBCRAMBank << 13) - 0xA000; - } - else { - //16/8 Mode - parentObj.ROMBank1offs = ((data & 0x03) << 5) | (parentObj.ROMBank1offs & 0x1F); - parentObj.setCurrentMBC1ROMBank(); - } -} -GameBoyCore.prototype.MBC1WriteType = function (parentObj, address, data) { - //MBC1 mode setting: - parentObj.MBC1Mode = ((data & 0x1) == 0x1); - if (parentObj.MBC1Mode) { - parentObj.ROMBank1offs &= 0x1F; - parentObj.setCurrentMBC1ROMBank(); - } - else { - parentObj.currMBCRAMBank = 0; - parentObj.currMBCRAMBankPosition = -0xA000; - } -} -GameBoyCore.prototype.MBC2WriteROMBank = function (parentObj, address, data) { - //MBC2 ROM bank switching: - parentObj.ROMBank1offs = data & 0x0F; - parentObj.setCurrentMBC2AND3ROMBank(); -} -GameBoyCore.prototype.MBC3WriteROMBank = function (parentObj, address, data) { - //MBC3 ROM bank switching: - parentObj.ROMBank1offs = data & 0x7F; - parentObj.setCurrentMBC2AND3ROMBank(); -} -GameBoyCore.prototype.MBC3WriteRAMBank = function (parentObj, address, data) { - parentObj.currMBCRAMBank = data; - if (data < 4) { - //MBC3 RAM bank switching - parentObj.currMBCRAMBankPosition = (parentObj.currMBCRAMBank << 13) - 0xA000; - } -} -GameBoyCore.prototype.MBC3WriteRTCLatch = function (parentObj, address, data) { - if (data == 0) { - parentObj.RTCisLatched = false; - } - else if (!parentObj.RTCisLatched) { - //Copy over the current RTC time for reading. - parentObj.RTCisLatched = true; - parentObj.latchedSeconds = parentObj.RTCSeconds | 0; - parentObj.latchedMinutes = parentObj.RTCMinutes; - parentObj.latchedHours = parentObj.RTCHours; - parentObj.latchedLDays = (parentObj.RTCDays & 0xFF); - parentObj.latchedHDays = parentObj.RTCDays >> 8; - } -} -GameBoyCore.prototype.MBC5WriteROMBankLow = function (parentObj, address, data) { - //MBC5 ROM bank switching: - parentObj.ROMBank1offs = (parentObj.ROMBank1offs & 0x100) | data; - parentObj.setCurrentMBC5ROMBank(); -} -GameBoyCore.prototype.MBC5WriteROMBankHigh = function (parentObj, address, data) { - //MBC5 ROM bank switching (by least significant bit): - parentObj.ROMBank1offs = ((data & 0x01) << 8) | (parentObj.ROMBank1offs & 0xFF); - parentObj.setCurrentMBC5ROMBank(); -} -GameBoyCore.prototype.MBC5WriteRAMBank = function (parentObj, address, data) { - //MBC5 RAM bank switching - parentObj.currMBCRAMBank = data & 0xF; - parentObj.currMBCRAMBankPosition = (parentObj.currMBCRAMBank << 13) - 0xA000; -} -GameBoyCore.prototype.RUMBLEWriteRAMBank = function (parentObj, address, data) { - //MBC5 RAM bank switching - //Like MBC5, but bit 3 of the lower nibble is used for rumbling and bit 2 is ignored. - parentObj.currMBCRAMBank = data & 0x03; - parentObj.currMBCRAMBankPosition = (parentObj.currMBCRAMBank << 13) - 0xA000; -} -GameBoyCore.prototype.HuC3WriteRAMBank = function (parentObj, address, data) { - //HuC3 RAM bank switching - parentObj.currMBCRAMBank = data & 0x03; - parentObj.currMBCRAMBankPosition = (parentObj.currMBCRAMBank << 13) - 0xA000; -} -GameBoyCore.prototype.cartIgnoreWrite = function (parentObj, address, data) { - //We might have encountered illegal RAM writing or such, so just do nothing... -} -GameBoyCore.prototype.memoryWriteNormal = function (parentObj, address, data) { - parentObj.memory[address] = data; -} -GameBoyCore.prototype.memoryHighWriteNormal = function (parentObj, address, data) { - parentObj.memory[0xFF00 | address] = data; -} -GameBoyCore.prototype.memoryWriteMBCRAM = function (parentObj, address, data) { - if (parentObj.MBCRAMBanksEnabled || settings[10]) { - parentObj.MBCRam[address + parentObj.currMBCRAMBankPosition] = data; - } -} -GameBoyCore.prototype.memoryWriteMBC3RAM = function (parentObj, address, data) { - if (parentObj.MBCRAMBanksEnabled || settings[10]) { - switch (parentObj.currMBCRAMBank) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - parentObj.MBCRam[address + parentObj.currMBCRAMBankPosition] = data; - break; - case 0x08: - if (data < 60) { - parentObj.RTCSeconds = data; - } - else { - cout("(Bank #" + parentObj.currMBCRAMBank + ") RTC write out of range: " + data, 1); - } - break; - case 0x09: - if (data < 60) { - parentObj.RTCMinutes = data; - } - else { - cout("(Bank #" + parentObj.currMBCRAMBank + ") RTC write out of range: " + data, 1); - } - break; - case 0x0A: - if (data < 24) { - parentObj.RTCHours = data; - } - else { - cout("(Bank #" + parentObj.currMBCRAMBank + ") RTC write out of range: " + data, 1); - } - break; - case 0x0B: - parentObj.RTCDays = (data & 0xFF) | (parentObj.RTCDays & 0x100); - break; - case 0x0C: - parentObj.RTCDayOverFlow = (data > 0x7F); - parentObj.RTCHalt = (data & 0x40) == 0x40; - parentObj.RTCDays = ((data & 0x1) << 8) | (parentObj.RTCDays & 0xFF); - break; - default: - cout("Invalid MBC3 bank address selected: " + parentObj.currMBCRAMBank, 0); - } - } -} -GameBoyCore.prototype.memoryWriteGBCRAM = function (parentObj, address, data) { - parentObj.GBCMemory[address + parentObj.gbcRamBankPosition] = data; -} -GameBoyCore.prototype.memoryWriteOAMRAM = function (parentObj, address, data) { - if (parentObj.modeSTAT < 2) { //OAM RAM cannot be written to in mode 2 & 3 - if (parentObj.memory[address] != data) { - parentObj.graphicsJIT(); - parentObj.memory[address] = data; - } - } -} -GameBoyCore.prototype.memoryWriteECHOGBCRAM = function (parentObj, address, data) { - parentObj.GBCMemory[address + parentObj.gbcRamBankPositionECHO] = data; -} -GameBoyCore.prototype.memoryWriteECHONormal = function (parentObj, address, data) { - parentObj.memory[address - 0x2000] = data; -} -GameBoyCore.prototype.VRAMGBDATAWrite = function (parentObj, address, data) { - if (parentObj.modeSTAT < 3) { //VRAM cannot be written to during mode 3 - if (parentObj.memory[address] != data) { - //JIT the graphics render queue: - parentObj.graphicsJIT(); - parentObj.memory[address] = data; - parentObj.generateGBOAMTileLine(address); - } - } -} -GameBoyCore.prototype.VRAMGBDATAUpperWrite = function (parentObj, address, data) { - if (parentObj.modeSTAT < 3) { //VRAM cannot be written to during mode 3 - if (parentObj.memory[address] != data) { - //JIT the graphics render queue: - parentObj.graphicsJIT(); - parentObj.memory[address] = data; - parentObj.generateGBTileLine(address); - } - } -} -GameBoyCore.prototype.VRAMGBCDATAWrite = function (parentObj, address, data) { - if (parentObj.modeSTAT < 3) { //VRAM cannot be written to during mode 3 - if (parentObj.currVRAMBank == 0) { - if (parentObj.memory[address] != data) { - //JIT the graphics render queue: - parentObj.graphicsJIT(); - parentObj.memory[address] = data; - parentObj.generateGBCTileLineBank1(address); - } - } - else { - address &= 0x1FFF; - if (parentObj.VRAM[address] != data) { - //JIT the graphics render queue: - parentObj.graphicsJIT(); - parentObj.VRAM[address] = data; - parentObj.generateGBCTileLineBank2(address); - } - } - } -} -GameBoyCore.prototype.VRAMGBCHRMAPWrite = function (parentObj, address, data) { - if (parentObj.modeSTAT < 3) { //VRAM cannot be written to during mode 3 - address &= 0x7FF; - if (parentObj.BGCHRBank1[address] != data) { - //JIT the graphics render queue: - parentObj.graphicsJIT(); - parentObj.BGCHRBank1[address] = data; - } - } -} -GameBoyCore.prototype.VRAMGBCCHRMAPWrite = function (parentObj, address, data) { - if (parentObj.modeSTAT < 3) { //VRAM cannot be written to during mode 3 - address &= 0x7FF; - if (parentObj.BGCHRCurrentBank[address] != data) { - //JIT the graphics render queue: - parentObj.graphicsJIT(); - parentObj.BGCHRCurrentBank[address] = data; - } - } -} -GameBoyCore.prototype.DMAWrite = function (tilesToTransfer) { - if (!this.halt) { - //Clock the CPU for the DMA transfer (CPU is halted during the transfer): - this.CPUTicks += 4 | ((tilesToTransfer << 5) << this.doubleSpeedShifter); - } - //Source address of the transfer: - var source = (this.memory[0xFF51] << 8) | this.memory[0xFF52]; - //Destination address in the VRAM memory range: - var destination = (this.memory[0xFF53] << 8) | this.memory[0xFF54]; - //Creating some references: - var memoryReader = this.memoryReader; - //JIT the graphics render queue: - this.graphicsJIT(); - var memory = this.memory; - //Determining which bank we're working on so we can optimize: - if (this.currVRAMBank == 0) { - //DMA transfer for VRAM bank 0: - do { - if (destination < 0x1800) { - memory[0x8000 | destination] = memoryReader[source](this, source++); - memory[0x8001 | destination] = memoryReader[source](this, source++); - memory[0x8002 | destination] = memoryReader[source](this, source++); - memory[0x8003 | destination] = memoryReader[source](this, source++); - memory[0x8004 | destination] = memoryReader[source](this, source++); - memory[0x8005 | destination] = memoryReader[source](this, source++); - memory[0x8006 | destination] = memoryReader[source](this, source++); - memory[0x8007 | destination] = memoryReader[source](this, source++); - memory[0x8008 | destination] = memoryReader[source](this, source++); - memory[0x8009 | destination] = memoryReader[source](this, source++); - memory[0x800A | destination] = memoryReader[source](this, source++); - memory[0x800B | destination] = memoryReader[source](this, source++); - memory[0x800C | destination] = memoryReader[source](this, source++); - memory[0x800D | destination] = memoryReader[source](this, source++); - memory[0x800E | destination] = memoryReader[source](this, source++); - memory[0x800F | destination] = memoryReader[source](this, source++); - this.generateGBCTileBank1(destination); - destination += 0x10; - } - else { - destination &= 0x7F0; - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - this.BGCHRBank1[destination++] = memoryReader[source](this, source++); - destination = (destination + 0x1800) & 0x1FF0; - } - source &= 0xFFF0; - --tilesToTransfer; - } while (tilesToTransfer > 0); - } - else { - var VRAM = this.VRAM; - //DMA transfer for VRAM bank 1: - do { - if (destination < 0x1800) { - VRAM[destination] = memoryReader[source](this, source++); - VRAM[destination | 0x1] = memoryReader[source](this, source++); - VRAM[destination | 0x2] = memoryReader[source](this, source++); - VRAM[destination | 0x3] = memoryReader[source](this, source++); - VRAM[destination | 0x4] = memoryReader[source](this, source++); - VRAM[destination | 0x5] = memoryReader[source](this, source++); - VRAM[destination | 0x6] = memoryReader[source](this, source++); - VRAM[destination | 0x7] = memoryReader[source](this, source++); - VRAM[destination | 0x8] = memoryReader[source](this, source++); - VRAM[destination | 0x9] = memoryReader[source](this, source++); - VRAM[destination | 0xA] = memoryReader[source](this, source++); - VRAM[destination | 0xB] = memoryReader[source](this, source++); - VRAM[destination | 0xC] = memoryReader[source](this, source++); - VRAM[destination | 0xD] = memoryReader[source](this, source++); - VRAM[destination | 0xE] = memoryReader[source](this, source++); - VRAM[destination | 0xF] = memoryReader[source](this, source++); - this.generateGBCTileBank2(destination); - destination += 0x10; - } - else { - destination &= 0x7F0; - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - this.BGCHRBank2[destination++] = memoryReader[source](this, source++); - destination = (destination + 0x1800) & 0x1FF0; - } - source &= 0xFFF0; - --tilesToTransfer; - } while (tilesToTransfer > 0); - } - //Update the HDMA registers to their next addresses: - memory[0xFF51] = source >> 8; - memory[0xFF52] = source & 0xF0; - memory[0xFF53] = destination >> 8; - memory[0xFF54] = destination & 0xF0; -} -GameBoyCore.prototype.registerWriteJumpCompile = function () { - //I/O Registers (GB + GBC): - //JoyPad - this.memoryHighWriter[0] = this.memoryWriter[0xFF00] = function (parentObj, address, data) { - parentObj.memory[0xFF00] = (data & 0x30) | ((((data & 0x20) == 0) ? (parentObj.JoyPad >> 4) : 0xF) & (((data & 0x10) == 0) ? (parentObj.JoyPad & 0xF) : 0xF)); - } - //SB (Serial Transfer Data) - this.memoryHighWriter[0x1] = this.memoryWriter[0xFF01] = function (parentObj, address, data) { - if (parentObj.memory[0xFF02] < 0x80) { //Cannot write while a serial transfer is active. - parentObj.memory[0xFF01] = data; - } - } - //DIV - this.memoryHighWriter[0x4] = this.memoryWriter[0xFF04] = function (parentObj, address, data) { - parentObj.DIVTicks &= 0xFF; //Update DIV for realignment. - parentObj.memory[0xFF04] = 0; - } - //TIMA - this.memoryHighWriter[0x5] = this.memoryWriter[0xFF05] = function (parentObj, address, data) { - parentObj.memory[0xFF05] = data; - } - //TMA - this.memoryHighWriter[0x6] = this.memoryWriter[0xFF06] = function (parentObj, address, data) { - parentObj.memory[0xFF06] = data; - } - //TAC - this.memoryHighWriter[0x7] = this.memoryWriter[0xFF07] = function (parentObj, address, data) { - parentObj.memory[0xFF07] = data & 0x07; - parentObj.TIMAEnabled = (data & 0x04) == 0x04; - parentObj.TACClocker = Math.pow(4, ((data & 0x3) != 0) ? (data & 0x3) : 4) << 2; //TODO: Find a way to not make a conditional in here... - } - //IF (Interrupt Request) - this.memoryHighWriter[0xF] = this.memoryWriter[0xFF0F] = function (parentObj, address, data) { - parentObj.interruptsRequested = data; - parentObj.checkIRQMatching(); - } - this.memoryHighWriter[0x10] = this.memoryWriter[0xFF10] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - if (parentObj.channel1decreaseSweep && (data & 0x08) == 0) { - if (parentObj.channel1numSweep != parentObj.channel1frequencySweepDivider) { - parentObj.channel1SweepFault = true; - } - } - parentObj.channel1lastTimeSweep = (data & 0x70) >> 4; - parentObj.channel1frequencySweepDivider = data & 0x07; - parentObj.channel1decreaseSweep = ((data & 0x08) == 0x08); - parentObj.memory[0xFF10] = data; - parentObj.channel1EnableCheck(); - } - } - this.memoryHighWriter[0x11] = this.memoryWriter[0xFF11] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled || !parentObj.cGBC) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - } - else { - data &= 0x3F; - } - parentObj.channel1CachedDuty = parentObj.dutyLookup[data >> 6]; - parentObj.channel1totalLength = 0x40 - (data & 0x3F); - parentObj.memory[0xFF11] = data & 0xC0; - parentObj.channel1EnableCheck(); - } - } - this.memoryHighWriter[0x12] = this.memoryWriter[0xFF12] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - if (parentObj.channel1Enabled && parentObj.channel1envelopeSweeps == 0) { - //Zombie Volume PAPU Bug: - if (((parentObj.memory[0xFF12] ^ data) & 0x8) == 0x8) { - if ((parentObj.memory[0xFF12] & 0x8) == 0) { - if ((parentObj.memory[0xFF12] & 0x7) == 0x7) { - parentObj.channel1envelopeVolume += 2; - } - else { - ++parentObj.channel1envelopeVolume; - } - } - parentObj.channel1envelopeVolume = (16 - parentObj.channel1envelopeVolume) & 0xF; - } - else if ((parentObj.memory[0xFF12] & 0xF) == 0x8) { - parentObj.channel1envelopeVolume = (1 + parentObj.channel1envelopeVolume) & 0xF; - } - parentObj.channel1OutputLevelCache(); - } - parentObj.channel1envelopeType = ((data & 0x08) == 0x08); - parentObj.memory[0xFF12] = data; - parentObj.channel1VolumeEnableCheck(); - } - } - this.memoryHighWriter[0x13] = this.memoryWriter[0xFF13] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - parentObj.channel1frequency = (parentObj.channel1frequency & 0x700) | data; - parentObj.channel1FrequencyTracker = (0x800 - parentObj.channel1frequency) << 2; - parentObj.memory[0xFF13] = data; - } - } - this.memoryHighWriter[0x14] = this.memoryWriter[0xFF14] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - parentObj.channel1consecutive = ((data & 0x40) == 0x0); - parentObj.channel1frequency = ((data & 0x7) << 8) | (parentObj.channel1frequency & 0xFF); - parentObj.channel1FrequencyTracker = (0x800 - parentObj.channel1frequency) << 2; - if (data > 0x7F) { - //Reload 0xFF10: - parentObj.channel1timeSweep = parentObj.channel1lastTimeSweep; - parentObj.channel1numSweep = parentObj.channel1frequencySweepDivider; - //Reload 0xFF12: - var nr12 = parentObj.memory[0xFF12]; - parentObj.channel1envelopeVolume = nr12 >> 4; - parentObj.channel1OutputLevelCache(); - parentObj.channel1envelopeSweepsLast = (nr12 & 0x7) - 1; - if (parentObj.channel1totalLength == 0) { - parentObj.channel1totalLength = 0x40; - } - if (parentObj.channel1lastTimeSweep > 0 || parentObj.channel1frequencySweepDivider > 0) { - parentObj.memory[0xFF26] |= 0x1; - } - else { - parentObj.memory[0xFF26] &= 0xFE; - } - if ((data & 0x40) == 0x40) { - parentObj.memory[0xFF26] |= 0x1; - } - parentObj.channel1ShadowFrequency = parentObj.channel1frequency; - //Reset frequency overflow check + frequency sweep type check: - parentObj.channel1SweepFault = false; - //Supposed to run immediately: - parentObj.runAudioSweep(); - } - parentObj.channel1EnableCheck(); - parentObj.memory[0xFF14] = data & 0x40; - } - } - this.memoryHighWriter[0x16] = this.memoryWriter[0xFF16] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled || !parentObj.cGBC) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - } - else { - data &= 0x3F; - } - parentObj.channel2CachedDuty = parentObj.dutyLookup[data >> 6]; - parentObj.channel2totalLength = 0x40 - (data & 0x3F); - parentObj.memory[0xFF16] = data & 0xC0; - parentObj.channel2EnableCheck(); - } - } - this.memoryHighWriter[0x17] = this.memoryWriter[0xFF17] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - if (parentObj.channel2Enabled && parentObj.channel2envelopeSweeps == 0) { - //Zombie Volume PAPU Bug: - if (((parentObj.memory[0xFF17] ^ data) & 0x8) == 0x8) { - if ((parentObj.memory[0xFF17] & 0x8) == 0) { - if ((parentObj.memory[0xFF17] & 0x7) == 0x7) { - parentObj.channel2envelopeVolume += 2; - } - else { - ++parentObj.channel2envelopeVolume; - } - } - parentObj.channel2envelopeVolume = (16 - parentObj.channel2envelopeVolume) & 0xF; - } - else if ((parentObj.memory[0xFF17] & 0xF) == 0x8) { - parentObj.channel2envelopeVolume = (1 + parentObj.channel2envelopeVolume) & 0xF; - } - parentObj.channel2OutputLevelCache(); - } - parentObj.channel2envelopeType = ((data & 0x08) == 0x08); - parentObj.memory[0xFF17] = data; - parentObj.channel2VolumeEnableCheck(); - } - } - this.memoryHighWriter[0x18] = this.memoryWriter[0xFF18] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - parentObj.channel2frequency = (parentObj.channel2frequency & 0x700) | data; - parentObj.channel2FrequencyTracker = (0x800 - parentObj.channel2frequency) << 2; - parentObj.memory[0xFF18] = data; - } - } - this.memoryHighWriter[0x19] = this.memoryWriter[0xFF19] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - if (data > 0x7F) { - //Reload 0xFF17: - var nr22 = parentObj.memory[0xFF17]; - parentObj.channel2envelopeVolume = nr22 >> 4; - parentObj.channel2OutputLevelCache(); - parentObj.channel2envelopeSweepsLast = (nr22 & 0x7) - 1; - if (parentObj.channel2totalLength == 0) { - parentObj.channel2totalLength = 0x40; - } - if ((data & 0x40) == 0x40) { - parentObj.memory[0xFF26] |= 0x2; - } - } - parentObj.channel2consecutive = ((data & 0x40) == 0x0); - parentObj.channel2frequency = ((data & 0x7) << 8) | (parentObj.channel2frequency & 0xFF); - parentObj.channel2FrequencyTracker = (0x800 - parentObj.channel2frequency) << 2; - parentObj.memory[0xFF19] = data & 0x40; - parentObj.channel2EnableCheck(); - } - } - this.memoryHighWriter[0x1A] = this.memoryWriter[0xFF1A] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - if (!parentObj.channel3canPlay && data >= 0x80) { - parentObj.channel3lastSampleLookup = 0; - parentObj.channel3UpdateCache(); - } - parentObj.channel3canPlay = (data > 0x7F); - if (parentObj.channel3canPlay && parentObj.memory[0xFF1A] > 0x7F && !parentObj.channel3consecutive) { - parentObj.memory[0xFF26] |= 0x4; - } - parentObj.memory[0xFF1A] = data & 0x80; - //parentObj.channel3EnableCheck(); - } - } - this.memoryHighWriter[0x1B] = this.memoryWriter[0xFF1B] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled || !parentObj.cGBC) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - } - parentObj.channel3totalLength = 0x100 - data; - parentObj.memory[0xFF1B] = data; - parentObj.channel3EnableCheck(); - } - } - this.memoryHighWriter[0x1C] = this.memoryWriter[0xFF1C] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - data &= 0x60; - parentObj.memory[0xFF1C] = data; - parentObj.channel3patternType = (data == 0) ? 4 : ((data >> 5) - 1); - } - } - this.memoryHighWriter[0x1D] = this.memoryWriter[0xFF1D] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - parentObj.channel3frequency = (parentObj.channel3frequency & 0x700) | data; - parentObj.channel3FrequencyPeriod = (0x800 - parentObj.channel3frequency) << 1; - parentObj.memory[0xFF1D] = data; - } - } - this.memoryHighWriter[0x1E] = this.memoryWriter[0xFF1E] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - if (data > 0x7F) { - if (parentObj.channel3totalLength == 0) { - parentObj.channel3totalLength = 0x100; - } - parentObj.channel3lastSampleLookup = 0; - if ((data & 0x40) == 0x40) { - parentObj.memory[0xFF26] |= 0x4; - } - } - parentObj.channel3consecutive = ((data & 0x40) == 0x0); - parentObj.channel3frequency = ((data & 0x7) << 8) | (parentObj.channel3frequency & 0xFF); - parentObj.channel3FrequencyPeriod = (0x800 - parentObj.channel3frequency) << 1; - parentObj.memory[0xFF1E] = data & 0x40; - parentObj.channel3EnableCheck(); - } - } - this.memoryHighWriter[0x20] = this.memoryWriter[0xFF20] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled || !parentObj.cGBC) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - } - parentObj.channel4totalLength = 0x40 - (data & 0x3F); - parentObj.memory[0xFF20] = data | 0xC0; - parentObj.channel4EnableCheck(); - } - } - this.memoryHighWriter[0x21] = this.memoryWriter[0xFF21] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - if (parentObj.channel4Enabled && parentObj.channel4envelopeSweeps == 0) { - //Zombie Volume PAPU Bug: - if (((parentObj.memory[0xFF21] ^ data) & 0x8) == 0x8) { - if ((parentObj.memory[0xFF21] & 0x8) == 0) { - if ((parentObj.memory[0xFF21] & 0x7) == 0x7) { - parentObj.channel4envelopeVolume += 2; - } - else { - ++parentObj.channel4envelopeVolume; - } - } - parentObj.channel4envelopeVolume = (16 - parentObj.channel4envelopeVolume) & 0xF; - } - else if ((parentObj.memory[0xFF21] & 0xF) == 0x8) { - parentObj.channel4envelopeVolume = (1 + parentObj.channel4envelopeVolume) & 0xF; - } - parentObj.channel4currentVolume = parentObj.channel4envelopeVolume << parentObj.channel4VolumeShifter; - } - parentObj.channel4envelopeType = ((data & 0x08) == 0x08); - parentObj.memory[0xFF21] = data; - parentObj.channel4UpdateCache(); - parentObj.channel4VolumeEnableCheck(); - } - } - this.memoryHighWriter[0x22] = this.memoryWriter[0xFF22] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - parentObj.channel4FrequencyPeriod = Math.max((data & 0x7) << 4, 8) << (data >> 4); - var bitWidth = (data & 0x8); - if ((bitWidth == 0x8 && parentObj.channel4BitRange == 0x7FFF) || (bitWidth == 0 && parentObj.channel4BitRange == 0x7F)) { - parentObj.channel4lastSampleLookup = 0; - parentObj.channel4BitRange = (bitWidth == 0x8) ? 0x7F : 0x7FFF; - parentObj.channel4VolumeShifter = (bitWidth == 0x8) ? 7 : 15; - parentObj.channel4currentVolume = parentObj.channel4envelopeVolume << parentObj.channel4VolumeShifter; - parentObj.noiseSampleTable = (bitWidth == 0x8) ? parentObj.LSFR7Table : parentObj.LSFR15Table; - } - parentObj.memory[0xFF22] = data; - parentObj.channel4UpdateCache(); - } - } - this.memoryHighWriter[0x23] = this.memoryWriter[0xFF23] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled) { - parentObj.audioJIT(); - parentObj.memory[0xFF23] = data; - parentObj.channel4consecutive = ((data & 0x40) == 0x0); - if (data > 0x7F) { - var nr42 = parentObj.memory[0xFF21]; - parentObj.channel4envelopeVolume = nr42 >> 4; - parentObj.channel4currentVolume = parentObj.channel4envelopeVolume << parentObj.channel4VolumeShifter; - parentObj.channel4envelopeSweepsLast = (nr42 & 0x7) - 1; - if (parentObj.channel4totalLength == 0) { - parentObj.channel4totalLength = 0x40; - } - if ((data & 0x40) == 0x40) { - parentObj.memory[0xFF26] |= 0x8; - } - } - parentObj.channel4EnableCheck(); - } - } - this.memoryHighWriter[0x24] = this.memoryWriter[0xFF24] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled && parentObj.memory[0xFF24] != data) { - parentObj.audioJIT(); - parentObj.memory[0xFF24] = data; - parentObj.VinLeftChannelMasterVolume = ((data >> 4) & 0x07) + 1; - parentObj.VinRightChannelMasterVolume = (data & 0x07) + 1; - parentObj.mixerOutputLevelCache(); - } - } - this.memoryHighWriter[0x25] = this.memoryWriter[0xFF25] = function (parentObj, address, data) { - if (parentObj.soundMasterEnabled && parentObj.memory[0xFF25] != data) { - parentObj.audioJIT(); - parentObj.memory[0xFF25] = data; - parentObj.rightChannel1 = ((data & 0x01) == 0x01); - parentObj.rightChannel2 = ((data & 0x02) == 0x02); - parentObj.rightChannel3 = ((data & 0x04) == 0x04); - parentObj.rightChannel4 = ((data & 0x08) == 0x08); - parentObj.leftChannel1 = ((data & 0x10) == 0x10); - parentObj.leftChannel2 = ((data & 0x20) == 0x20); - parentObj.leftChannel3 = ((data & 0x40) == 0x40); - parentObj.leftChannel4 = (data > 0x7F); - parentObj.channel1OutputLevelCache(); - parentObj.channel2OutputLevelCache(); - parentObj.channel3OutputLevelCache(); - parentObj.channel4OutputLevelCache(); - } - } - this.memoryHighWriter[0x26] = this.memoryWriter[0xFF26] = function (parentObj, address, data) { - parentObj.audioJIT(); - if (!parentObj.soundMasterEnabled && data > 0x7F) { - parentObj.memory[0xFF26] = 0x80; - parentObj.soundMasterEnabled = true; - parentObj.initializeAudioStartState(); - } - else if (parentObj.soundMasterEnabled && data < 0x80) { - parentObj.memory[0xFF26] = 0; - parentObj.soundMasterEnabled = false; - //GBDev wiki says the registers are written with zeros on power off: - for (var index = 0xFF10; index < 0xFF26; index++) { - parentObj.memoryWriter[index](parentObj, index, 0); - } - } - } - //0xFF27 to 0xFF2F don't do anything... - this.memoryHighWriter[0x27] = this.memoryWriter[0xFF27] = this.cartIgnoreWrite; - this.memoryHighWriter[0x28] = this.memoryWriter[0xFF28] = this.cartIgnoreWrite; - this.memoryHighWriter[0x29] = this.memoryWriter[0xFF29] = this.cartIgnoreWrite; - this.memoryHighWriter[0x2A] = this.memoryWriter[0xFF2A] = this.cartIgnoreWrite; - this.memoryHighWriter[0x2B] = this.memoryWriter[0xFF2B] = this.cartIgnoreWrite; - this.memoryHighWriter[0x2C] = this.memoryWriter[0xFF2C] = this.cartIgnoreWrite; - this.memoryHighWriter[0x2D] = this.memoryWriter[0xFF2D] = this.cartIgnoreWrite; - this.memoryHighWriter[0x2E] = this.memoryWriter[0xFF2E] = this.cartIgnoreWrite; - this.memoryHighWriter[0x2F] = this.memoryWriter[0xFF2F] = this.cartIgnoreWrite; - //WAVE PCM RAM: - this.memoryHighWriter[0x30] = this.memoryWriter[0xFF30] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0, data); - } - this.memoryHighWriter[0x31] = this.memoryWriter[0xFF31] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0x1, data); - } - this.memoryHighWriter[0x32] = this.memoryWriter[0xFF32] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0x2, data); - } - this.memoryHighWriter[0x33] = this.memoryWriter[0xFF33] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0x3, data); - } - this.memoryHighWriter[0x34] = this.memoryWriter[0xFF34] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0x4, data); - } - this.memoryHighWriter[0x35] = this.memoryWriter[0xFF35] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0x5, data); - } - this.memoryHighWriter[0x36] = this.memoryWriter[0xFF36] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0x6, data); - } - this.memoryHighWriter[0x37] = this.memoryWriter[0xFF37] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0x7, data); - } - this.memoryHighWriter[0x38] = this.memoryWriter[0xFF38] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0x8, data); - } - this.memoryHighWriter[0x39] = this.memoryWriter[0xFF39] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0x9, data); - } - this.memoryHighWriter[0x3A] = this.memoryWriter[0xFF3A] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0xA, data); - } - this.memoryHighWriter[0x3B] = this.memoryWriter[0xFF3B] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0xB, data); - } - this.memoryHighWriter[0x3C] = this.memoryWriter[0xFF3C] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0xC, data); - } - this.memoryHighWriter[0x3D] = this.memoryWriter[0xFF3D] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0xD, data); - } - this.memoryHighWriter[0x3E] = this.memoryWriter[0xFF3E] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0xE, data); - } - this.memoryHighWriter[0x3F] = this.memoryWriter[0xFF3F] = function (parentObj, address, data) { - parentObj.channel3WriteRAM(0xF, data); - } - //SCY - this.memoryHighWriter[0x42] = this.memoryWriter[0xFF42] = function (parentObj, address, data) { - if (parentObj.backgroundY != data) { - parentObj.midScanLineJIT(); - parentObj.backgroundY = data; - } - } - //SCX - this.memoryHighWriter[0x43] = this.memoryWriter[0xFF43] = function (parentObj, address, data) { - if (parentObj.backgroundX != data) { - parentObj.midScanLineJIT(); - parentObj.backgroundX = data; - } - } - //LY - this.memoryHighWriter[0x44] = this.memoryWriter[0xFF44] = function (parentObj, address, data) { - //Read Only: - if (parentObj.LCDisOn) { - //Gambatte says to do this: - parentObj.modeSTAT = 2; - parentObj.midScanlineOffset = -1; - parentObj.totalLinesPassed = parentObj.currentX = parentObj.queuedScanLines = parentObj.lastUnrenderedLine = parentObj.LCDTicks = parentObj.STATTracker = parentObj.actualScanLine = parentObj.memory[0xFF44] = 0; - } - } - //LYC - this.memoryHighWriter[0x45] = this.memoryWriter[0xFF45] = function (parentObj, address, data) { - if (parentObj.memory[0xFF45] != data) { - parentObj.memory[0xFF45] = data; - if (parentObj.LCDisOn) { - parentObj.matchLYC(); //Get the compare of the first scan line. - } - } - } - //WY - this.memoryHighWriter[0x4A] = this.memoryWriter[0xFF4A] = function (parentObj, address, data) { - if (parentObj.windowY != data) { - parentObj.midScanLineJIT(); - parentObj.windowY = data; - } - } - //WX - this.memoryHighWriter[0x4B] = this.memoryWriter[0xFF4B] = function (parentObj, address, data) { - if (parentObj.memory[0xFF4B] != data) { - parentObj.midScanLineJIT(); - parentObj.memory[0xFF4B] = data; - parentObj.windowX = data - 7; - } - } - this.memoryHighWriter[0x72] = this.memoryWriter[0xFF72] = function (parentObj, address, data) { - parentObj.memory[0xFF72] = data; - } - this.memoryHighWriter[0x73] = this.memoryWriter[0xFF73] = function (parentObj, address, data) { - parentObj.memory[0xFF73] = data; - } - this.memoryHighWriter[0x75] = this.memoryWriter[0xFF75] = function (parentObj, address, data) { - parentObj.memory[0xFF75] = data; - } - this.memoryHighWriter[0x76] = this.memoryWriter[0xFF76] = this.cartIgnoreWrite; - this.memoryHighWriter[0x77] = this.memoryWriter[0xFF77] = this.cartIgnoreWrite; - //IE (Interrupt Enable) - this.memoryHighWriter[0xFF] = this.memoryWriter[0xFFFF] = function (parentObj, address, data) { - parentObj.interruptsEnabled = data; - parentObj.checkIRQMatching(); - } - this.recompileModelSpecificIOWriteHandling(); - this.recompileBootIOWriteHandling(); -} -GameBoyCore.prototype.recompileModelSpecificIOWriteHandling = function () { - if (this.cGBC) { - //GameBoy Color Specific I/O: - //SC (Serial Transfer Control Register) - this.memoryHighWriter[0x2] = this.memoryWriter[0xFF02] = function (parentObj, address, data) { - if (((data & 0x1) == 0x1)) { - //Internal clock: - parentObj.memory[0xFF02] = (data & 0x7F); - parentObj.serialTimer = ((data & 0x2) == 0) ? 4096 : 128; //Set the Serial IRQ counter. - parentObj.serialShiftTimer = parentObj.serialShiftTimerAllocated = ((data & 0x2) == 0) ? 512 : 16; //Set the transfer data shift counter. - } - else { - //External clock: - parentObj.memory[0xFF02] = data; - parentObj.serialShiftTimer = parentObj.serialShiftTimerAllocated = parentObj.serialTimer = 0; //Zero the timers, since we're emulating as if nothing is connected. - } - } - this.memoryHighWriter[0x40] = this.memoryWriter[0xFF40] = function (parentObj, address, data) { - if (parentObj.memory[0xFF40] != data) { - parentObj.midScanLineJIT(); - var temp_var = (data > 0x7F); - if (temp_var != parentObj.LCDisOn) { - //When the display mode changes... - parentObj.LCDisOn = temp_var; - parentObj.memory[0xFF41] &= 0x78; - parentObj.midScanlineOffset = -1; - parentObj.totalLinesPassed = parentObj.currentX = parentObj.queuedScanLines = parentObj.lastUnrenderedLine = parentObj.STATTracker = parentObj.LCDTicks = parentObj.actualScanLine = parentObj.memory[0xFF44] = 0; - if (parentObj.LCDisOn) { - parentObj.modeSTAT = 2; - parentObj.matchLYC(); //Get the compare of the first scan line. - parentObj.LCDCONTROL = parentObj.LINECONTROL; - } - else { - parentObj.modeSTAT = 0; - parentObj.LCDCONTROL = parentObj.DISPLAYOFFCONTROL; - parentObj.DisplayShowOff(); - } - parentObj.interruptsRequested &= 0xFD; - } - parentObj.gfxWindowCHRBankPosition = ((data & 0x40) == 0x40) ? 0x400 : 0; - parentObj.gfxWindowDisplay = ((data & 0x20) == 0x20); - parentObj.gfxBackgroundBankOffset = ((data & 0x10) == 0x10) ? 0 : 0x80; - parentObj.gfxBackgroundCHRBankPosition = ((data & 0x08) == 0x08) ? 0x400 : 0; - parentObj.gfxSpriteNormalHeight = ((data & 0x04) == 0); - parentObj.gfxSpriteShow = ((data & 0x02) == 0x02); - parentObj.BGPriorityEnabled = ((data & 0x01) == 0x01); - parentObj.priorityFlaggingPathRebuild(); //Special case the priority flagging as an optimization. - parentObj.memory[0xFF40] = data; - } - } - this.memoryHighWriter[0x41] = this.memoryWriter[0xFF41] = function (parentObj, address, data) { - parentObj.LYCMatchTriggerSTAT = ((data & 0x40) == 0x40); - parentObj.mode2TriggerSTAT = ((data & 0x20) == 0x20); - parentObj.mode1TriggerSTAT = ((data & 0x10) == 0x10); - parentObj.mode0TriggerSTAT = ((data & 0x08) == 0x08); - parentObj.memory[0xFF41] = data & 0x78; - } - this.memoryHighWriter[0x46] = this.memoryWriter[0xFF46] = function (parentObj, address, data) { - parentObj.memory[0xFF46] = data; - if (data < 0xE0) { - data <<= 8; - address = 0xFE00; - var stat = parentObj.modeSTAT; - parentObj.modeSTAT = 0; - var newData = 0; - do { - newData = parentObj.memoryReader[data](parentObj, data++); - if (newData != parentObj.memory[address]) { - //JIT the graphics render queue: - parentObj.modeSTAT = stat; - parentObj.graphicsJIT(); - parentObj.modeSTAT = 0; - parentObj.memory[address++] = newData; - break; - } - } while (++address < 0xFEA0); - if (address < 0xFEA0) { - do { - parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++); - parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++); - parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++); - parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++); - } while (address < 0xFEA0); - } - parentObj.modeSTAT = stat; - } - } - //KEY1 - this.memoryHighWriter[0x4D] = this.memoryWriter[0xFF4D] = function (parentObj, address, data) { - parentObj.memory[0xFF4D] = (data & 0x7F) | (parentObj.memory[0xFF4D] & 0x80); - } - this.memoryHighWriter[0x4F] = this.memoryWriter[0xFF4F] = function (parentObj, address, data) { - parentObj.currVRAMBank = data & 0x01; - if (parentObj.currVRAMBank > 0) { - parentObj.BGCHRCurrentBank = parentObj.BGCHRBank2; - } - else { - parentObj.BGCHRCurrentBank = parentObj.BGCHRBank1; - } - //Only writable by GBC. - } - this.memoryHighWriter[0x51] = this.memoryWriter[0xFF51] = function (parentObj, address, data) { - if (!parentObj.hdmaRunning) { - parentObj.memory[0xFF51] = data; - } - } - this.memoryHighWriter[0x52] = this.memoryWriter[0xFF52] = function (parentObj, address, data) { - if (!parentObj.hdmaRunning) { - parentObj.memory[0xFF52] = data & 0xF0; - } - } - this.memoryHighWriter[0x53] = this.memoryWriter[0xFF53] = function (parentObj, address, data) { - if (!parentObj.hdmaRunning) { - parentObj.memory[0xFF53] = data & 0x1F; - } - } - this.memoryHighWriter[0x54] = this.memoryWriter[0xFF54] = function (parentObj, address, data) { - if (!parentObj.hdmaRunning) { - parentObj.memory[0xFF54] = data & 0xF0; - } - } - this.memoryHighWriter[0x55] = this.memoryWriter[0xFF55] = function (parentObj, address, data) { - if (!parentObj.hdmaRunning) { - if ((data & 0x80) == 0) { - //DMA - parentObj.DMAWrite((data & 0x7F) + 1); - parentObj.memory[0xFF55] = 0xFF; //Transfer completed. - } - else { - //H-Blank DMA - parentObj.hdmaRunning = true; - parentObj.memory[0xFF55] = data & 0x7F; - } - } - else if ((data & 0x80) == 0) { - //Stop H-Blank DMA - parentObj.hdmaRunning = false; - parentObj.memory[0xFF55] |= 0x80; - } - else { - parentObj.memory[0xFF55] = data & 0x7F; - } - } - this.memoryHighWriter[0x68] = this.memoryWriter[0xFF68] = function (parentObj, address, data) { - parentObj.memory[0xFF69] = parentObj.gbcBGRawPalette[data & 0x3F]; - parentObj.memory[0xFF68] = data; - } - this.memoryHighWriter[0x69] = this.memoryWriter[0xFF69] = function (parentObj, address, data) { - parentObj.updateGBCBGPalette(parentObj.memory[0xFF68] & 0x3F, data); - if (parentObj.memory[0xFF68] > 0x7F) { // high bit = autoincrement - var next = ((parentObj.memory[0xFF68] + 1) & 0x3F); - parentObj.memory[0xFF68] = (next | 0x80); - parentObj.memory[0xFF69] = parentObj.gbcBGRawPalette[next]; - } - else { - parentObj.memory[0xFF69] = data; - } - } - this.memoryHighWriter[0x6A] = this.memoryWriter[0xFF6A] = function (parentObj, address, data) { - parentObj.memory[0xFF6B] = parentObj.gbcOBJRawPalette[data & 0x3F]; - parentObj.memory[0xFF6A] = data; - } - this.memoryHighWriter[0x6B] = this.memoryWriter[0xFF6B] = function (parentObj, address, data) { - parentObj.updateGBCOBJPalette(parentObj.memory[0xFF6A] & 0x3F, data); - if (parentObj.memory[0xFF6A] > 0x7F) { // high bit = autoincrement - var next = ((parentObj.memory[0xFF6A] + 1) & 0x3F); - parentObj.memory[0xFF6A] = (next | 0x80); - parentObj.memory[0xFF6B] = parentObj.gbcOBJRawPalette[next]; - } - else { - parentObj.memory[0xFF6B] = data; - } - } - //SVBK - this.memoryHighWriter[0x70] = this.memoryWriter[0xFF70] = function (parentObj, address, data) { - var addressCheck = (parentObj.memory[0xFF51] << 8) | parentObj.memory[0xFF52]; //Cannot change the RAM bank while WRAM is the source of a running HDMA. - if (!parentObj.hdmaRunning || addressCheck < 0xD000 || addressCheck >= 0xE000) { - parentObj.gbcRamBank = Math.max(data & 0x07, 1); //Bank range is from 1-7 - parentObj.gbcRamBankPosition = ((parentObj.gbcRamBank - 1) << 12) - 0xD000; - parentObj.gbcRamBankPositionECHO = parentObj.gbcRamBankPosition - 0x2000; - } - parentObj.memory[0xFF70] = data; //Bit 6 cannot be written to. - } - this.memoryHighWriter[0x74] = this.memoryWriter[0xFF74] = function (parentObj, address, data) { - parentObj.memory[0xFF74] = data; - } - } - else { - //Fill in the GameBoy Color I/O registers as normal RAM for GameBoy compatibility: - //SC (Serial Transfer Control Register) - this.memoryHighWriter[0x2] = this.memoryWriter[0xFF02] = function (parentObj, address, data) { - if (((data & 0x1) == 0x1)) { - //Internal clock: - parentObj.memory[0xFF02] = (data & 0x7F); - parentObj.serialTimer = 4096; //Set the Serial IRQ counter. - parentObj.serialShiftTimer = parentObj.serialShiftTimerAllocated = 512; //Set the transfer data shift counter. - } - else { - //External clock: - parentObj.memory[0xFF02] = data; - parentObj.serialShiftTimer = parentObj.serialShiftTimerAllocated = parentObj.serialTimer = 0; //Zero the timers, since we're emulating as if nothing is connected. - } - } - this.memoryHighWriter[0x40] = this.memoryWriter[0xFF40] = function (parentObj, address, data) { - if (parentObj.memory[0xFF40] != data) { - parentObj.midScanLineJIT(); - var temp_var = (data > 0x7F); - if (temp_var != parentObj.LCDisOn) { - //When the display mode changes... - parentObj.LCDisOn = temp_var; - parentObj.memory[0xFF41] &= 0x78; - parentObj.midScanlineOffset = -1; - parentObj.totalLinesPassed = parentObj.currentX = parentObj.queuedScanLines = parentObj.lastUnrenderedLine = parentObj.STATTracker = parentObj.LCDTicks = parentObj.actualScanLine = parentObj.memory[0xFF44] = 0; - if (parentObj.LCDisOn) { - parentObj.modeSTAT = 2; - parentObj.matchLYC(); //Get the compare of the first scan line. - parentObj.LCDCONTROL = parentObj.LINECONTROL; - } - else { - parentObj.modeSTAT = 0; - parentObj.LCDCONTROL = parentObj.DISPLAYOFFCONTROL; - parentObj.DisplayShowOff(); - } - parentObj.interruptsRequested &= 0xFD; - } - parentObj.gfxWindowCHRBankPosition = ((data & 0x40) == 0x40) ? 0x400 : 0; - parentObj.gfxWindowDisplay = (data & 0x20) == 0x20; - parentObj.gfxBackgroundBankOffset = ((data & 0x10) == 0x10) ? 0 : 0x80; - parentObj.gfxBackgroundCHRBankPosition = ((data & 0x08) == 0x08) ? 0x400 : 0; - parentObj.gfxSpriteNormalHeight = ((data & 0x04) == 0); - parentObj.gfxSpriteShow = (data & 0x02) == 0x02; - parentObj.bgEnabled = ((data & 0x01) == 0x01); - parentObj.memory[0xFF40] = data; - } - } - this.memoryHighWriter[0x41] = this.memoryWriter[0xFF41] = function (parentObj, address, data) { - parentObj.LYCMatchTriggerSTAT = ((data & 0x40) == 0x40); - parentObj.mode2TriggerSTAT = ((data & 0x20) == 0x20); - parentObj.mode1TriggerSTAT = ((data & 0x10) == 0x10); - parentObj.mode0TriggerSTAT = ((data & 0x08) == 0x08); - parentObj.memory[0xFF41] = data & 0x78; - if ((!parentObj.usedBootROM || !parentObj.usedGBCBootROM) && parentObj.LCDisOn && parentObj.modeSTAT < 2) { - parentObj.interruptsRequested |= 0x2; - parentObj.checkIRQMatching(); - } - } - this.memoryHighWriter[0x46] = this.memoryWriter[0xFF46] = function (parentObj, address, data) { - parentObj.memory[0xFF46] = data; - if (data > 0x7F && data < 0xE0) { //DMG cannot DMA from the ROM banks. - data <<= 8; - address = 0xFE00; - var stat = parentObj.modeSTAT; - parentObj.modeSTAT = 0; - var newData = 0; - do { - newData = parentObj.memoryReader[data](parentObj, data++); - if (newData != parentObj.memory[address]) { - //JIT the graphics render queue: - parentObj.modeSTAT = stat; - parentObj.graphicsJIT(); - parentObj.modeSTAT = 0; - parentObj.memory[address++] = newData; - break; - } - } while (++address < 0xFEA0); - if (address < 0xFEA0) { - do { - parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++); - parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++); - parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++); - parentObj.memory[address++] = parentObj.memoryReader[data](parentObj, data++); - } while (address < 0xFEA0); - } - parentObj.modeSTAT = stat; - } - } - this.memoryHighWriter[0x47] = this.memoryWriter[0xFF47] = function (parentObj, address, data) { - if (parentObj.memory[0xFF47] != data) { - parentObj.midScanLineJIT(); - parentObj.updateGBBGPalette(data); - parentObj.memory[0xFF47] = data; - } - } - this.memoryHighWriter[0x48] = this.memoryWriter[0xFF48] = function (parentObj, address, data) { - if (parentObj.memory[0xFF48] != data) { - parentObj.midScanLineJIT(); - parentObj.updateGBOBJPalette(0, data); - parentObj.memory[0xFF48] = data; - } - } - this.memoryHighWriter[0x49] = this.memoryWriter[0xFF49] = function (parentObj, address, data) { - if (parentObj.memory[0xFF49] != data) { - parentObj.midScanLineJIT(); - parentObj.updateGBOBJPalette(4, data); - parentObj.memory[0xFF49] = data; - } - } - this.memoryHighWriter[0x4D] = this.memoryWriter[0xFF4D] = function (parentObj, address, data) { - parentObj.memory[0xFF4D] = data; - } - this.memoryHighWriter[0x4F] = this.memoryWriter[0xFF4F] = this.cartIgnoreWrite; //Not writable in DMG mode. - this.memoryHighWriter[0x55] = this.memoryWriter[0xFF55] = this.cartIgnoreWrite; - this.memoryHighWriter[0x68] = this.memoryWriter[0xFF68] = this.cartIgnoreWrite; - this.memoryHighWriter[0x69] = this.memoryWriter[0xFF69] = this.cartIgnoreWrite; - this.memoryHighWriter[0x6A] = this.memoryWriter[0xFF6A] = this.cartIgnoreWrite; - this.memoryHighWriter[0x6B] = this.memoryWriter[0xFF6B] = this.cartIgnoreWrite; - this.memoryHighWriter[0x6C] = this.memoryWriter[0xFF6C] = this.cartIgnoreWrite; - this.memoryHighWriter[0x70] = this.memoryWriter[0xFF70] = this.cartIgnoreWrite; - this.memoryHighWriter[0x74] = this.memoryWriter[0xFF74] = this.cartIgnoreWrite; - } -} -GameBoyCore.prototype.recompileBootIOWriteHandling = function () { - //Boot I/O Registers: - if (this.inBootstrap) { - this.memoryHighWriter[0x50] = this.memoryWriter[0xFF50] = function (parentObj, address, data) { - cout("Boot ROM reads blocked: Bootstrap process has ended.", 0); - parentObj.inBootstrap = false; - parentObj.disableBootROM(); //Fill in the boot ROM ranges with ROM bank 0 ROM ranges - parentObj.memory[0xFF50] = data; //Bits are sustained in memory? - } - if (this.cGBC) { - this.memoryHighWriter[0x6C] = this.memoryWriter[0xFF6C] = function (parentObj, address, data) { - if (parentObj.inBootstrap) { - parentObj.cGBC = ((data & 0x1) == 0); - //Exception to the GBC identifying code: - if (parentObj.name + parentObj.gameCode + parentObj.ROM[0x143] == "Game and Watch 50") { - parentObj.cGBC = true; - cout("Created a boot exception for Game and Watch Gallery 2 (GBC ID byte is wrong on the cartridge).", 1); - } - cout("Booted to GBC Mode: " + parentObj.cGBC, 0); - } - parentObj.memory[0xFF6C] = data; - } - } - } - else { - //Lockout the ROMs from accessing the BOOT ROM control register: - this.memoryHighWriter[0x50] = this.memoryWriter[0xFF50] = this.cartIgnoreWrite; - } -} -//Helper Functions -GameBoyCore.prototype.toTypedArray = function (baseArray, memtype) { - try { - // The following line was modified for benchmarking: - if (settings[5] || (memtype != "float32" && GameBoyWindow.opera && this.checkForOperaMathBug())) { - return baseArray; - } - if (!baseArray || !baseArray.length) { - return []; - } - var length = baseArray.length; - switch (memtype) { - case "uint8": - var typedArrayTemp = new Uint8Array(length); - break; - case "int8": - var typedArrayTemp = new Int8Array(length); - break; - case "int32": - var typedArrayTemp = new Int32Array(length); - break; - case "float32": - var typedArrayTemp = new Float32Array(length); - } - for (var index = 0; index < length; index++) { - typedArrayTemp[index] = baseArray[index]; - } - return typedArrayTemp; - } - catch (error) { - cout("Could not convert an array to a typed array: " + error.message, 1); - return baseArray; - } -} -GameBoyCore.prototype.fromTypedArray = function (baseArray) { - try { - if (!baseArray || !baseArray.length) { - return []; - } - var arrayTemp = []; - for (var index = 0; index < baseArray.length; ++index) { - arrayTemp[index] = baseArray[index]; - } - return arrayTemp; - } - catch (error) { - cout("Conversion from a typed array failed: " + error.message, 1); - return baseArray; - } -} -GameBoyCore.prototype.getTypedArray = function (length, defaultValue, numberType) { - try { - if (settings[5]) { - throw(new Error("")); - } - // The following line was modified for benchmarking: - if (numberType != "float32" && GameBoyWindow.opera && this.checkForOperaMathBug()) { - //Caught Opera breaking typed array math: - throw(new Error("")); - } - switch (numberType) { - case "int8": - var arrayHandle = new Int8Array(length); - break; - case "uint8": - var arrayHandle = new Uint8Array(length); - break; - case "int32": - var arrayHandle = new Int32Array(length); - break; - case "float32": - var arrayHandle = new Float32Array(length); - } - if (defaultValue != 0) { - var index = 0; - while (index < length) { - arrayHandle[index++] = defaultValue; - } - } - } - catch (error) { - cout("Could not convert an array to a typed array: " + error.message, 1); - var arrayHandle = []; - var index = 0; - while (index < length) { - arrayHandle[index++] = defaultValue; - } - } - return arrayHandle; -} -GameBoyCore.prototype.checkForOperaMathBug = function () { - var testTypedArray = new Uint8Array(1); - testTypedArray[0] = -1; - testTypedArray[0] >>= 0; - if (testTypedArray[0] != 0xFF) { - cout("Detected faulty math by your browser.", 2); - return true; - } - else { - return false; - } -} - -// End of js/GameBoyCore.js file. - -// Start of js/GameBoyIO.js file. - -"use strict"; -var gameboy = null; //GameBoyCore object. -var gbRunInterval = null; //GameBoyCore Timer -var settings = [ //Some settings. - true, //Turn on sound. - false, //Boot with boot ROM first? (set to false for benchmarking) - false, //Give priority to GameBoy mode - [39, 37, 38, 40, 88, 90, 16, 13], //Keyboard button map. - true, //Colorize GB mode? - false, //Disallow typed arrays? - 4, //Interval for the emulator loop. - 15, //Audio buffer minimum span amount over x interpreter iterations. - 30, //Audio buffer maximum span amount over x interpreter iterations. - false, //Override to allow for MBC1 instead of ROM only (compatibility for broken 3rd-party cartridges). - false, //Override MBC RAM disabling and always allow reading and writing to the banks. - false, //Use the GameBoy boot ROM instead of the GameBoy Color boot ROM. - false, //Scale the canvas in JS, or let the browser scale the canvas? - 0x10, //Internal audio buffer pre-interpolation factor. - 1 //Volume level set. -]; -function start(canvas, ROM) { - clearLastEmulation(); - autoSave(); //If we are about to load a new game, then save the last one... - gameboy = new GameBoyCore(canvas, ROM); - gameboy.openMBC = openSRAM; - gameboy.openRTC = openRTC; - gameboy.start(); - run(); -} -function run() { - if (GameBoyEmulatorInitialized()) { - if (!GameBoyEmulatorPlaying()) { - gameboy.stopEmulator &= 1; - cout("Starting the iterator.", 0); - var dateObj = new_Date(); // The line is changed for benchmarking. - gameboy.firstIteration = dateObj.getTime(); - gameboy.iterations = 0; - // The following lines are commented out for benchmarking. - // gbRunInterval = setInterval(function () { - // if (!document.hidden && !document.msHidden && !document.mozHidden && !document.webkitHidden) { - // gameboy.run(); - // } - // }, settings[6]); - } - else { - cout("The GameBoy core is already running.", 1); - } - } - else { - cout("GameBoy core cannot run while it has not been initialized.", 1); - } -} -function pause() { - if (GameBoyEmulatorInitialized()) { - if (GameBoyEmulatorPlaying()) { - clearLastEmulation(); - } - else { - cout("GameBoy core has already been paused.", 1); - } - } - else { - cout("GameBoy core cannot be paused while it has not been initialized.", 1); - } -} -function clearLastEmulation() { - if (GameBoyEmulatorInitialized() && GameBoyEmulatorPlaying()) { - clearInterval(gbRunInterval); - gameboy.stopEmulator |= 2; - cout("The previous emulation has been cleared.", 0); - } - else { - cout("No previous emulation was found to be cleared.", 0); - } -} -function save() { - if (GameBoyEmulatorInitialized()) { - try { - var state_suffix = 0; - while (findValue("FREEZE_" + gameboy.name + "_" + state_suffix) != null) { - state_suffix++; - } - setValue("FREEZE_" + gameboy.name + "_" + state_suffix, gameboy.saveState()); - cout("Saved the current state as: FREEZE_" + gameboy.name + "_" + state_suffix, 0); - } - catch (error) { - cout("Could not save the current emulation state(\"" + error.message + "\").", 2); - } - } - else { - cout("GameBoy core cannot be saved while it has not been initialized.", 1); - } -} -function saveSRAM() { - if (GameBoyEmulatorInitialized()) { - if (gameboy.cBATT) { - try { - var sram = gameboy.saveSRAMState(); - if (sram.length > 0) { - cout("Saving the SRAM...", 0); - if (findValue("SRAM_" + gameboy.name) != null) { - //Remove the outdated storage format save: - cout("Deleting the old SRAM save due to outdated format.", 0); - deleteValue("SRAM_" + gameboy.name); - } - setValue("B64_SRAM_" + gameboy.name, arrayToBase64(sram)); - } - else { - cout("SRAM could not be saved because it was empty.", 1); - } - } - catch (error) { - cout("Could not save the current emulation state(\"" + error.message + "\").", 2); - } - } - else { - cout("Cannot save a game that does not have battery backed SRAM specified.", 1); - } - saveRTC(); - } - else { - cout("GameBoy core cannot be saved while it has not been initialized.", 1); - } -} -function saveRTC() { //Execute this when SRAM is being saved as well. - if (GameBoyEmulatorInitialized()) { - if (gameboy.cTIMER) { - try { - cout("Saving the RTC...", 0); - setValue("RTC_" + gameboy.name, gameboy.saveRTCState()); - } - catch (error) { - cout("Could not save the RTC of the current emulation state(\"" + error.message + "\").", 2); - } - } - } - else { - cout("GameBoy core cannot be saved while it has not been initialized.", 1); - } -} -function autoSave() { - if (GameBoyEmulatorInitialized()) { - cout("Automatically saving the SRAM.", 0); - saveSRAM(); - saveRTC(); - } -} -function openSRAM(filename) { - try { - if (findValue("B64_SRAM_" + filename) != null) { - cout("Found a previous SRAM state (Will attempt to load).", 0); - return base64ToArray(findValue("B64_SRAM_" + filename)); - } - else if (findValue("SRAM_" + filename) != null) { - cout("Found a previous SRAM state (Will attempt to load).", 0); - return findValue("SRAM_" + filename); - } - else { - cout("Could not find any previous SRAM copy for the current ROM.", 0); - } - } - catch (error) { - cout("Could not open the SRAM of the saved emulation state.", 2); - } - return []; -} -function openRTC(filename) { - try { - if (findValue("RTC_" + filename) != null) { - cout("Found a previous RTC state (Will attempt to load).", 0); - return findValue("RTC_" + filename); - } - else { - cout("Could not find any previous RTC copy for the current ROM.", 0); - } - } - catch (error) { - cout("Could not open the RTC data of the saved emulation state.", 2); - } - return []; -} -function openState(filename, canvas) { - try { - if (findValue(filename) != null) { - try { - clearLastEmulation(); - cout("Attempting to run a saved emulation state.", 0); - gameboy = new GameBoyCore(canvas, ""); - gameboy.savedStateFileName = filename; - gameboy.returnFromState(findValue(filename)); - run(); - } - catch (error) { - alert(error.message + " file: " + error.fileName + " line: " + error.lineNumber); - } - } - else { - cout("Could not find the save state " + filename + "\".", 2); - } - } - catch (error) { - cout("Could not open the saved emulation state.", 2); - } -} -function import_save(blobData) { - blobData = decodeBlob(blobData); - if (blobData && blobData.blobs) { - if (blobData.blobs.length > 0) { - for (var index = 0; index < blobData.blobs.length; ++index) { - cout("Importing blob \"" + blobData.blobs[index].blobID + "\"", 0); - if (blobData.blobs[index].blobContent) { - if (blobData.blobs[index].blobID.substring(0, 5) == "SRAM_") { - setValue("B64_" + blobData.blobs[index].blobID, base64(blobData.blobs[index].blobContent)); - } - else { - setValue(blobData.blobs[index].blobID, JSON.parse(blobData.blobs[index].blobContent)); - } - } - else if (blobData.blobs[index].blobID) { - cout("Save file imported had blob \"" + blobData.blobs[index].blobID + "\" with no blob data interpretable.", 2); - } - else { - cout("Blob chunk information missing completely.", 2); - } - } - } - else { - cout("Could not decode the imported file.", 2); - } - } - else { - cout("Could not decode the imported file.", 2); - } -} -function generateBlob(keyName, encodedData) { - //Append the file format prefix: - var saveString = "EMULATOR_DATA"; - var consoleID = "GameBoy"; - //Figure out the length: - var totalLength = (saveString.length + 4 + (1 + consoleID.length)) + ((1 + keyName.length) + (4 + encodedData.length)); - //Append the total length in bytes: - saveString += to_little_endian_dword(totalLength); - //Append the console ID text's length: - saveString += to_byte(consoleID.length); - //Append the console ID text: - saveString += consoleID; - //Append the blob ID: - saveString += to_byte(keyName.length); - saveString += keyName; - //Now append the save data: - saveString += to_little_endian_dword(encodedData.length); - saveString += encodedData; - return saveString; -} -function generateMultiBlob(blobPairs) { - var consoleID = "GameBoy"; - //Figure out the initial length: - var totalLength = 13 + 4 + 1 + consoleID.length; - //Append the console ID text's length: - var saveString = to_byte(consoleID.length); - //Append the console ID text: - saveString += consoleID; - var keyName = ""; - var encodedData = ""; - //Now append all the blobs: - for (var index = 0; index < blobPairs.length; ++index) { - keyName = blobPairs[index][0]; - encodedData = blobPairs[index][1]; - //Append the blob ID: - saveString += to_byte(keyName.length); - saveString += keyName; - //Now append the save data: - saveString += to_little_endian_dword(encodedData.length); - saveString += encodedData; - //Update the total length: - totalLength += 1 + keyName.length + 4 + encodedData.length; - } - //Now add the prefix: - saveString = "EMULATOR_DATA" + to_little_endian_dword(totalLength) + saveString; - return saveString; -} -function decodeBlob(blobData) { - /*Format is as follows: - - 13 byte string "EMULATOR_DATA" - - 4 byte total size (including these 4 bytes). - - 1 byte Console type ID length - - Console type ID text of 8 bit size - blobs { - - 1 byte blob ID length - - blob ID text (Used to say what the data is (SRAM/freeze state/etc...)) - - 4 byte blob length - - blob length of 32 bit size - } - */ - var length = blobData.length; - var blobProperties = {}; - blobProperties.consoleID = null; - var blobsCount = -1; - blobProperties.blobs = []; - if (length > 17) { - if (blobData.substring(0, 13) == "EMULATOR_DATA") { - var length = Math.min(((blobData.charCodeAt(16) & 0xFF) << 24) | ((blobData.charCodeAt(15) & 0xFF) << 16) | ((blobData.charCodeAt(14) & 0xFF) << 8) | (blobData.charCodeAt(13) & 0xFF), length); - var consoleIDLength = blobData.charCodeAt(17) & 0xFF; - if (length > 17 + consoleIDLength) { - blobProperties.consoleID = blobData.substring(18, 18 + consoleIDLength); - var blobIDLength = 0; - var blobLength = 0; - for (var index = 18 + consoleIDLength; index < length;) { - blobIDLength = blobData.charCodeAt(index++) & 0xFF; - if (index + blobIDLength < length) { - blobProperties.blobs[++blobsCount] = {}; - blobProperties.blobs[blobsCount].blobID = blobData.substring(index, index + blobIDLength); - index += blobIDLength; - if (index + 4 < length) { - blobLength = ((blobData.charCodeAt(index + 3) & 0xFF) << 24) | ((blobData.charCodeAt(index + 2) & 0xFF) << 16) | ((blobData.charCodeAt(index + 1) & 0xFF) << 8) | (blobData.charCodeAt(index) & 0xFF); - index += 4; - if (index + blobLength <= length) { - blobProperties.blobs[blobsCount].blobContent = blobData.substring(index, index + blobLength); - index += blobLength; - } - else { - cout("Blob length check failed, blob determined to be incomplete.", 2); - break; - } - } - else { - cout("Blob was incomplete, bailing out.", 2); - break; - } - } - else { - cout("Blob was incomplete, bailing out.", 2); - break; - } - } - } - } - } - return blobProperties; -} -function matchKey(key) { //Maps a keyboard key to a gameboy key. - //Order: Right, Left, Up, Down, A, B, Select, Start - for (var index = 0; index < settings[3].length; index++) { - if (settings[3][index] == key) { - return index; - } - } - return -1; -} -function GameBoyEmulatorInitialized() { - return (typeof gameboy == "object" && gameboy != null); -} -function GameBoyEmulatorPlaying() { - return ((gameboy.stopEmulator & 2) == 0); -} -function GameBoyKeyDown(e) { - if (GameBoyEmulatorInitialized() && GameBoyEmulatorPlaying()) { - var keycode = matchKey(e.keyCode); - if (keycode >= 0 && keycode < 8) { - gameboy.JoyPadEvent(keycode, true); - try { - e.preventDefault(); - } - catch (error) { } - } - } -} -function GameBoyKeyUp(e) { - if (GameBoyEmulatorInitialized() && GameBoyEmulatorPlaying()) { - var keycode = matchKey(e.keyCode); - if (keycode >= 0 && keycode < 8) { - gameboy.JoyPadEvent(keycode, false); - try { - e.preventDefault(); - } - catch (error) { } - } - } -} -function GameBoyGyroSignalHandler(e) { - if (GameBoyEmulatorInitialized() && GameBoyEmulatorPlaying()) { - if (e.gamma || e.beta) { - gameboy.GyroEvent(e.gamma * Math.PI / 180, e.beta * Math.PI / 180); - } - else { - gameboy.GyroEvent(e.x, e.y); - } - try { - e.preventDefault(); - } - catch (error) { } - } -} -//The emulator will call this to sort out the canvas properties for (re)initialization. -function initNewCanvas() { - if (GameBoyEmulatorInitialized()) { - gameboy.canvas.width = gameboy.canvas.clientWidth; - gameboy.canvas.height = gameboy.canvas.clientHeight; - } -} -//Call this when resizing the canvas: -function initNewCanvasSize() { - if (GameBoyEmulatorInitialized()) { - if (!settings[12]) { - if (gameboy.onscreenWidth != 160 || gameboy.onscreenHeight != 144) { - gameboy.initLCD(); - } - } - else { - if (gameboy.onscreenWidth != gameboy.canvas.clientWidth || gameboy.onscreenHeight != gameboy.canvas.clientHeight) { - gameboy.initLCD(); - } - } - } -} - -// End of js/GameBoyIO.js file. - -// Start of realtime.js file. -// ROM code from Public Domain LPC2000 Demo "realtime" by AGO. - -var gameboy_rom='r+BPyZiEZwA+AeBPySAobeEq6gAgKlYj5WJv6SRmZjjhKuXqACDJ/////////////////////////////////xgHZwCYhGcA2fX6/3/1xdXlIRPKNgHN9f/h0cHx6gAg+hLKtyAC8cnwgLcoF/CC7hjgUT6Q4FOv4FLgVOCAPv/gVfHZ8IG3IALx2fBA7gjgQA8PD+YB7gHgT/CC4FHuEOCCPojgU6/gUuBU4IE+/uBV4ID6NMs86jTL8dkKCgoKbWFkZSBieSBhZ28uIGVtYWlsOmdvYnV6b3ZAeWFob28uY29tCnVybDogc3BlY2N5LmRhLnJ1CgoKCv///////wDDSgnO7WZmzA0ACwNzAIMADAANAAgRH4iJAA7czG7m3d3Zmbu7Z2NuDuzM3dyZn7u5Mz5BR08nUyBSRUFMVElNRSCAAAAAAgEDADMBSTQeIUD/y37I8P/1y4fg//BE/pEg+su+8eD/yT7A4EY+KD0g/cnF1eWvEQPK1RITEhMGAyEAyuXFTgYAIWAMCQkqEhMqEhPB4SMFIOrhrwYIzYsU4dHByf////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAgMFBggJCwwOEBETFBYXGBobHR4fISIjJSYnKSorLC0uLzAxMjM0NTY3ODg5Ojo7PDw9PT4+Pj8/Pz9AQEBAQEBAQEBAPz8/Pz4+PT08PDs7Ojk5ODc2NTU0MzIxMC8uLCsqKSgmJSQjISAfHRwaGRcWFRMSEA8NCwoIBwUEAgH//fz6+ff29PPx8O7t6+ro5+Xk4uHg3t3c2tnY19bU09LR0M/OzczLysnJyMfGxsXFxMPDw8LCwcHBwcDAwMDAwMDAwMDBwcHBwsLDw8PExcXGxsfIycnKy8zNzs/Q0dLT1NXX2Nna3N3e4OHi5OXn6Onr7O7v8fL09vf5+vz9AAEECRAZJDFAUWR5kKnE4QAhRGmQueQRQHGk2RBJhMEAQYTJEFmk8UCR5DmQ6UShAGHEKZD5ZNFAsSSZEIkEgQCBBIkQmSSxQNFk+ZApxGEAoUTpkDnkkUDxpFkQyYRBAMGESRDZpHFAEeS5kGlEIQDhxKmQeWRRQDEkGRAJBAEAAQQJEBkkMUBRZHmQqcThACFEaZC55BFAcaTZEEmEwQBBhMkQWaTxQJHkOZDpRKEAYcQpkPlk0UCxJJkQiQSBAIEEiRCZJLFA0WT5kCnEYQChROmQOeSRQPGkWRDJhEEAwYRJENmkcUAR5LmQaUQhAOHEqZB5ZFFAMSQZEAkEAQAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAgICAgIDAwMDBAQEBAUFBQUGBgYHBwcICAkJCQoKCgsLDAwNDQ4ODw8QEBEREhITExQUFRUWFxcYGRkaGhscHB0eHh8gISEiIyQkJSYnJygpKisrLC0uLzAxMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1FSU1RVVldZWltcXV9gYWJkZWZnaWprbG5vcHJzdHZ3eXp7fX5/gYKEhYeIiouNjpCRk5SWl5manJ2foKKkpaepqqytr7GytLa3ubu9vsDCxMXHycvMztDS1NXX2dvd3+Hi5Obo6uzu8PL09vj6/P4A//z38Ofcz8CvnIdwVzwfAN+8l3BHHO/Aj1wn8Ld8PwC/fDfwp1wPwG8cx3AXvF8AnzzXcAecL8BP3Gfwd/x/AH/8d/Bn3E/AL5wHcNc8nwBfvBdwxxxvwA9cp/A3fL8AP3y38Cdcj8DvHEdwl7zfAB88V3CHnK/Az9zn8Pf8/wD//Pfw59zPwK+ch3BXPB8A37yXcEcc78CPXCfwt3w/AL98N/CnXA/AbxzHcBe8XwCfPNdwB5wvwE/cZ/B3/H8Af/x38GfcT8AvnAdw1zyfAF+8F3DHHG/AD1yn8Dd8vwA/fLfwJ1yPwO8cR3CXvN8AHzxXcIecr8DP3Ofw9/z/AP/////////////////////+/v7+/v79/f39/fz8/Pz8+/v7+vr6+vn5+fj4+Pf39/b29fX19PTz8/Ly8fHw8PDv7u7t7ezs6+vq6uno6Ofn5uXl5OPj4uHh4N/e3t3c3Nva2djY19bV1NTT0tHQz8/OzczLysnIx8bFxMPCwcDAvr28u7q5uLe2tbSzsrGwr62sq6qpqKalpKOioJ+enZyamZiWlZSTkZCPjYyLiYiHhYSCgYB+fXt6eHd1dHJxcG5sa2loZmVjYmBfXVtaWFdVU1JQTk1LSUhGREJBPz08Ojg2NDMxLy0rKigmJCIgHx0bGRcVExEPDQsJBwUDAf9/Px8PBwMBgEAgEAgEAgEAAQEBAQEBAQEBAQEA//////////////+AEAcAAQABAAEBAAEBAAEA/wD//wD//wD/AP+AKwcBAAEAAQD/AP8A/wD/AP8A/wABAAEAAQCARgcBAQEBAQD//////////////wABAQEBAQGAYQf///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AwODw+Pz+/xEAwAGxwj4E9cU+BfUKbwMKZ37+gCALI34LAiN+AwILGOsahhIDHBwcHPE9IN7BIRAAGVRdPgX1Cm8DCmcalhIjfAILfQIDAx0dHR3xPSDnIRgAGVRd8T0grskRAcAB6cI+BPUKbwMKZ37+gCALI34LAiN+AwILGOs+CvUahhIcHBwc8T0g9CN8Agt9AgMD8T0g0MkgIEZJTExFRCAgIFBPTFlHT05TIEhFTElDT1BURVJJTiBBQ1RJT04gIQDADgpwLHQsGhPWICI2ACwNIPE+oOoQyngBCQDlYmsJVF3hDMYKR3AsdCwaG9YgIjYALA0g8a/qEcrJ+hDK/jDI1gTqEMpHPqCQ/lA4Aj5QDgAM1ggw+3ghAcARBAB3xggZDSD5+hHKg+oRykf+UDgCPlAOAAzWCDD7eC4td9YIGQ0g+ckh9grzMf/PzVABr+Am4P/gD+BD4EL2SOBFPkDgQT4E4AfN9RM+CuoAAA4HeeBwJqCvIstsKPsNIPIh/v8yy30g+wEKABH1/yFpAc3kE+cCAVYAEQDBIVt2zeQTrwYYIWsOzYsUIYsOzaQUxwGwAxEAgCGhF8XlzeQT4cERAIjN5BMhAJgRAwABYMDHcc9yIwUg+BQdIPHN9RMhuxUGAc2WE82JEz5E4EGv4EU+A+D/+z4B6hLK4E0QAAB4zccTBSD6zZATxwEACFkhAIhzIwt4sSD5IQDHPv9FdyRwJCJ3JXclcCwg8x5/IQCYx3PPNgDL1DYIx3PLlCPLVCjuPoABDxARIAAhIpjF5XfL1HfLlDwZDSD1POEswQUg7D486jPLr+o0yz3qL8s+oOCCPgLqG8vNiRM+ROBBr+BFPgPg/68+ACEXyyI+CiI+IHev6h7L4ITgluodyz4B6h/L6g/D6g3KBlARnAjNxAjNcwsBLAHFzTsLzQAJwQt4sSDzzZATxwEACFkhAIhzIwt4sSD5zfUTeQYQIYMOzYsUPv/qKcsGgBGwCM3ECM2JEwEsAcXNbAzNAAnBC3ixIPOv6hLKzZATPpDgU/PHAbADEQCIIaEXzeQTzfUTIQIWBgHNlhPNiRM+ROBBr+BFPgPg//sY/j4D6gAgzcRGBgMhF8t+gCJ+gDwifoB3zckP+jDLb/oxy2fNtgs+AeCB8IG3IPv6Dcq3KAPNcwHJ+h3LBgARTg2Hb2AZKmZvTgkq4ItfKjzgjD1PKuCNe4eHg0cRAMUqEhwFIPp5h4eBRxEAxCoSHAUg+n3qMMt86jHLyfCL4I7wjOCP8I3gkBEAw9XlzcoQ4dHwpeaAEhwBAwAJ8JA94JAg6CEAxQYPKk+gXxq3IB95yzegXxq3IBYqT6BfGrcgD3nLN6BfGrcgBiwsLBhHLOXNyhDwlrcoKwYB8KXGP0/LfygBBcXwpMY/Vx4AzZMOe8H18KPGP1ceAM2TDsHhJCJwGAzhJPCjxj8i8KTGPyIsJRbDBg/wjj3gjsLiCz4C6gAgw1JhfBjcHwAL7mpIYL9vBgMhF8t+gCJ+gDwifoB3zckPIcsNEQDGzf4MI+U+A+oAICEgy83+DPocy9YIb+ocy82vYAYDESDLIWIOxeXVzcoQ4fCjxhQi8KQiNg8jVF3hIyMjwQUg5M3ERsE+AeoAIAr+/ygiEQDGbyYAKRnlAwoDbyYAKRleI1bhKmZvxc0xHMwAQMEY2T4B4IHwgbcg+8l+PMjl1c3KEAYB8KVPy38oAQXF8KTLf/UoAi88Vx4AzZMO8XsgAi88xn/B9fCjy3/1KAIvPFceAM2TDvF7KAIvPMZ/wdESE3gSE+EjIyMYsFANAgAIDAYCRCgoFANEKAAUE0QAABQSRAAoFAJVKCjsA1UoAOwTVQAA7BJVACjsAAAEBQAAAAEFAAEBAwIGAQEDBwYCAgAHAwICAAcEAwMBAgYDAwEFBgQEAAECBAQAAwIFBQQFBgUFBAcGMgAAzgAAADIAAM4AAAAyAADOKAAAHhEAChEAAAAACu8AHu8AFAAKFAD2FAAPCgAF6AAC4gAQ3gAQ4gD+CgD74g4C3Q4C4QAC4vIC3fIC4AAM4PsM4PsQ4/sJ3fsJ/wABAQICAwMEBAUFAAAGAQYCBgMGBAYFBgAHAQcCBwMHBAcFBwYICQoKCwsMDA0NDgoPDxAQEQoSEhMTERQVFRYVFxUYCBkIGggb/yAAD/AbD/DlD/9//3+XEQAAAGD/f5cRAAAYAP9/lxEAAIB8lxH/f/9/QHz/f18IAADLI8sSeC9HeS9PAyEAAH2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEn2Pb3yPZwk4BWd9kW+3yxPLEssoyxkJ0BPJ+hfLJgJvfuCcLzzgnn3GQG9+4Jvgn6/gmOCZ4JrgneChPkDgl/oYy29OfcZAb0bFeOCgeeCizdMQ8KPgpvCk4KnwpeCsr+Cg4KI+QOChzdMQ8KPgp/Ck4KrwpeCtwXkvPOCgr+CheOCizdMQ8KPgmfCk4JzwpeCf8Kbgl/Cp4JrwrOCd8KfgmPCq4JvwreCe+hnLJgJvTn3GQG9GxXjgoHkvPOChr+CizdMQ8KPgpvCk4KnwpeCswXngoHjgoa/gos3TEPCj4KfwpOCq8KXgra/goOChPkDgos3TEPCj4JnwpOCc8KXgn/Cm4JfwqeCa8KzgnfCn4JjwquCb8K3gnskq4KAq4KEq4KLwl1/woCYGV8t6ICDLe3soJy88X3qTMAIvPG96g1YlXiVvfiVuZxl8LzwYH3ovPFfLeyjhey88X5IwAi88b3qDViVeJW9+JW5nGXxH8Jhf8KEmBlfLeiAgy3t7KCcvPF96kzACLzxveoNWJV4lb34lbmcZfC88GB96LzxXy3so4XsvPF+SMAIvPG96g1YlXiVvfiVuZxl8T/CZX/CiJgZXy3ogIMt7eygnLzxfepMwAi88b3qDViVeJW9+JW5nGXwvPBgfei88V8t7KOF7LzxfkjACLzxveoNWJV4lb34lbmcZfICB4KPwml/woCYGV8t6ICDLe3soJy88X3qTMAIvPG96g1YlXiVvfiVuZxl8LzwYH3ovPFfLeyjhey88X5IwAi88b3qDViVeJW9+JW5nGXxH8Jtf8KEmBlfLeiAgy3t7KCcvPF96kzACLzxveoNWJV4lb34lbmcZfC88GB96LzxXy3so4XsvPF+SMAIvPG96g1YlXiVvfiVuZxl8T/CcX/CiJgZXy3ogIMt7eygnLzxfepMwAi88b3qDViVeJW9+JW5nGXwvPBgfei88V8t7KOF7LzxfkjACLzxveoNWJV4lb34lbmcZfICB4KTwnV/woCYGV8t6ICDLe3soJy88X3qTMAIvPG96g1YlXiVvfiVuZxl8LzwYH3ovPFfLeyjhey88X5IwAi88b3qDViVeJW9+JW5nGXxH8J5f8KEmBlfLeiAgy3t7KCcvPF96kzACLzxveoNWJV4lb34lbmcZfC88GB96LzxXy3so4XsvPF+SMAIvPG96g1YlXiVvfiVuZxl8T/CfX/CiJgZXy3ogIMt7eygnLzxfepMwAi88b3qDViVeJW9+JW5nGXwvPBgfei88V8t7KOF7LzxfkjACLzxveoNWJV4lb34lbmcZfICB4KXJ9T6D4EDxyfWv4EDxyfXF1eXHKv7/KFD+FiAaTiMqh4eHVF1vJgApKXgGmAlHelRne11vGNzGYBLPeBIcGNN2ACETyjQ1KPc1yfvFBmR2AAUg+8HJ+3YABSD7yfXF1eUqEhMLeLEg+OHRwfHJxeUBAKAhAMDNAxThwcnF5XEjBSD74cHJxdXlAQCAIZXKzQMU4dHBycXV5a/qFcuwIAwaEyIaEzIEDXjqFcvlxRq+EyAPIxq+IAkTIw0gCMHhGBkrGyMjBSDmecFPBBoTIhoTIiEVyzThDSDS+hXL4dHBydVfzXIUuzD60cnF9cH6FMrLD6mAR/CLkR+AR/AFqOoUysHJ9cXltxcXF/aA4Ggq4GkFIPo+5OBH4cHxyfXF5bcXFxf2gOBqKuBrBSD6PuTgSOBJ4cHxyT4Q4ADwAC/LN+bwRz4g4ADwAC/mD7DqFsvJzyEAgK8GIE8+CCINIPwFIPnHIQCABiBPIg0g/AUg+cnFzQMVSs0eFcHJxc0RFUjNGRVLzSMVwcnFBgHNKxXBycUGABj2xQYDGPHFBgLNKxXByfXlh4eAJsBvceHxyfXlh4cmwG9GI04jXiNW4fHJ9cXV5eCDKjzK8BPWIF/wg835FF95xghPezwY6PXF1eXF1c13FdHBex4FIS3LGNUBKssR8NjNlRURGPzNlRURnP/NlRUR9v/NlRUR//8+LzwZOPwCA3ovV3svXxMZyTAwRlBT/zAwUE5UU/8wMExJTkVT/xYFB1dFTENPTUUgVE8WBQgtUkVBTFRJTUUtFgAJREVNTyBNQURFIEVTUEVDSUFMTFkWAQpGT1IgTENQJzIwMDAgUEFSVFn/FgAAR1JFRVRJTlg6ICAgICAgICAgICAWAAFEU0MsUEFOLFNBQixGQVRBTElUWRYAAkpFRkYgRlJPSFdFSU4sSUNBUlVTFgADRE9YLFFVQU5HLEFCWVNTICAgICAWAAQgICAgICAgICAgICAgICAgICAgIBYABUNSRURJVFM6ICAgICAgICAgICAgFgAGQUxMIEdGWCZDT0RFIEJZIEFHTyAWAAdIRUxJQ09QVEVSIDNEIE1PREVMIBYACENSRUFURUQgQlkgQlVTWSAgICAgFgAJICAgICAgICAgICAgICAgICAgICAWAApVU0VEIFNPRlRXQVJFOiAgICAgIBYAC1JHQkRTLE5PJENBU0gsRkFSICAgFgAMICAgICAgICAgICAgICAgICAgICAWAA1DT05UQUNUOiAgICAgICAgICAgIBYADkdPQlVaT1ZAWUFIT08uQ09NICAgFgAPSFRUUDovL1NQRUNDWS5EQS5SVSAWABAgICAgICAgICAgICAgICAgICAgIBYAEVNFRSBZT1UgT04gR0JERVYyMDAw/wAAAAAAAAAAAAAAAAAAAAAICBwUHBQ4KDgoMDBwUCAgKCh8VHxUKCgAAAAAAAAAABQUPip/QT4qfFT+gnxUKCgICDw0fkL8rP6Cfmr8hHhYJCR+Wn5SPCR4SPyU/LRISBgYPCR+Wjwkflr8tH5KNDQQEDgocFAgIAAAAAAAAAAABAQOChwUOCg4KDgoHBQICBAQOCgcFBwUHBQ4KHBQICAAABQUPio8NH5CPCx8VCgoAAAICBwUPDR+QjwsOCgQEAAAAAAAAAAAEBA4KHBQcFAAAAAAAAB8fP6CfHwAAAAAAAAAAAAAAAAwMHhIeEgwMAQEDgoeEjwkeEjwkOCgQEAYGDwkflr+qv6q/LR4SDAwGBg8JHxUPDQ4KHxs/oJ8fBwcPiJ+Wjw0eEj8vP6CfHwcHD4iflo8NE5K/LR4SDAwJCR+Wn5afFT8tP6CfGwQEBwcPiJ8XPyEfnr8tHhIMDAYGDwkeFj8pP66/LR4SDAwPDx+Qv66XFQ4KHBQcFAgIBwcPiJ+Wjwkflr8tPiIcHAcHD4iflr+sn5KfHT4iHBwAAAAAAgIHBQICBAQOCgQEAAACAgcFAgIEBA4KDgocFAAAAAAHBQ4KHBQcFA4KAAAAAAAADw8fkJ8fPyEeHgAAAAAAAA4KBwUHBQ4KHBQAAAYGDwkflr8tHhoEBA4KBAQHBw+In5a/rL8pPi4+IhwcBwcPiJ+Wv66/oL+uvy0SEg4OHxEflr8pP6a/LT4iHBwHBw+In5a5qbgoP6y/IxwcDAweEh8VH5a7qr+uvyEeHgcHD4ifFx8RHhY/Lz+gnx8HBw+Inxc/IT4uOCg4KBAQBwcPiJ+Wvy8/qL+uvyEeHgkJH5a/rr+gv66/LT8tEhIPDx+QjwsOChwUHhY/IR4eDw8fkI+Og4KXFT8tHhIMDAkJH5afFR+Qv66/LT8tEhIICBwUHBQ4KDkpP66fEQ4OCgofFR+Qv6q/rr8tPy0SEgkJH5a/pr+qv6y7qr8tEhIHBw+In5a7qruqvy0+IhwcBwcPiJ+Wv66/IT4uOCgQEAcHD4iflr+uv6q/LT+inZ2HBw+In5a/LT4iPy0/LRISBwcPiJ8XP6Cfnr8tPiIcHB8fP6CfGw4KHBQcFBwUCAgJCR+Wn5a7qruqvy0eEgwMERE7qruqnxUfFR4SHBQICAkJH5aflr+uv6q/KR8VCgoJCR+WnxUOCg8JH5a/LRISCQkflr8tPy0eEhwUHBQICA8PH5C/LT46Dwsflr8hHh4HBw+IjwsOChwUHhYfEQ4OEBA4KDwkHhIPCQeEg4KBAQ4OHxEPDQcFDgoeGj4iHBwGBg8JH5a7qpERAAAAAAAAAAAAAAAAAAAAAB8fP6CfHx81rdPfJJne5X1MAIvPEevyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxnLEcsXlDABhMsRyxeUMAGEyxHLF5QwAYTLEcsXlDABhMsRyxeUMAGEyxHLF5QwAYTLEcsXlDABhMsRyxeUMAGEeRcvT/F5MAIvPIVvJrcBAAA+t7zLEbrLED6/vcsRu8sQPj+8P8sRuj/LEL0/yxG7P8sQeLHIeKHAebcgB3xiV31rX3jLH9L/HD5AlU97lW96lPUwAi88R6/LGTABgB/LGTABgB/LGTABgB/LGTABgB/LGTABgB/LGTABgB/LGTABgB/LGTABgB/LGcsRyxeVMAGFyxHLF5UwAYXLEcsXlTABhcsRyxeVMAGFyxHLF5UwAYXLEcsXlTABhcsRyxeVMAGFyxHLF5UwAYV5Fy9P8XkwAi88hGcuQMMxHMsf0pcdPkCUT3qUZ3uV9TACLzxHr8sZMAGAH8sZMAGAH8sZMAGAH8sZMAGAH8sZMAGAH8sZMAGAH8sZMAGAH8sZMAGAH8sZyxHLF5QwAYTLEcsXlDABhMsRyxeUMAGEyxHLF5QwAYTLEcsXlDABhMsRyxeUMAGEyxHLF5QwAYTLEcsXlDABhHkXL0/xeTACLzyFbyZAwzEcyx/SoRt91r9PfZNvepT1MAIvPEevyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxnLEcsXlTABhcsRyxeVMAGFyxHLF5UwAYXLEcsXlTABhcsRyxeVMAGFyxHLF5UwAYXLEcsXlTABhcsRyxeVMAGFeRcvT/F5MAIvPIRnLr/DMRz//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3q8MAVUZ3tdb3u90pdAfZNPepRfkTA+V3nLPy88g+CDPn+R5YdPbyYARCkpKQkBkVIJweV41kAXb3nWQB8fH+YPZ/CChGd55gcGB/YITwpP8INHLMl5S1+RV3nLPy88g+CDPneR5YdPbyYARCkpKQkBklsJweV41kAXb3nWQB8fH+YPZ/CChGd55gcGB/YITwpP8INHLMmVT3qUX5EwPld5yz8vPIPggz5/keWHT28mAEQpKSkJAR9BCcHleNZAF2951kAfHx/mD2fwgoRneeYHBgf2CE8KT/CDRyzJeUtfkVd5yz8vPIPggz53keWHT28mAEQpKSkJASBKCcHleNZAF2951kAfHx/mD2fwgoRneeYHBgf2CE8KT/CDRyzJfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkfrF3e8t4IAN6LCyAR8sJMAEkyX6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALH6xInvLeCAGessJMAEkgEcALMl+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASV+sXd7y3ggA3osLIBHywEwASXJfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsfrF3e8t4IAZ6ywEwASWARywsyf///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wHRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyLRe7o4A1pXewYHoE8K9XqgTwQK4JF6Hx8f5g9X8JNnTixGLXsfHx/mD1/wgoNne5LRxADB8JGiVy+mX3qhsyJ6L6ZfeqCzItF7ujgDWld7BgegTwr1eqBPBArgkXofHx/mD1fwk2dOLEYtex8fH+YPX/CCg2d7ktHEAMHwkaJXL6ZfeqGzInovpl96oLMi0Xu6OANaV3sGB6BPCvV6oE8ECuCReh8fH+YPV/CTZ04sRi17Hx8f5g9f8IKDZ3uS0cQAwfCRolcvpl96obMiei+mX3qgsyIxDsrh+eEWwxgNIf3Er+oLyuoMyiwsLPCPPcjgj14sGrcqKPDGeeCT+g3Ktygm+gvKPP4DIAI+AeoLyiAH+gzKPOoMyvoMyl8WyvCT1nkSe8bH4JMqTypHKuUmxl+Hh4M8PG8qX1Z5h4eBPDxveE4sh4eARjw8bypmb3y6OAViV31rX3y4OAVgR31pT3q4OAVQR3tZT3iU4JR8h+CV5dXFr+CSzUpifeCS0eHVzUpi0eE+AeCSzUpi8JRfPniTZy5Hr8sdMAGEH8sdMAGEH8sdMAGEH8sdMAGEH8sdMAGEH8sdMAGEH8sdMAGEH8sdMAGEH8sdxkBnCA7KMQDC5fCVb8l7vTBVfZNPepRfkTAkV3nLPy88Rz5/kU3Fh09vJgBEKSkJAfdiCcHlJsLwkm94BoDJeUtfkVd5yz8vPEc+d5FNxYdPbyYARCkpCQH4ZwnB5SbC8JJveAaAyZVPepRfkTAkV3nLPy88Rz5/kU3Fh09vJgBEKSkJAalsCcHlJsLwkm94BoDJeUtfkVd5yz8vPEc+d5FNxYdPbyYARCkpCQGqcQnB5SbC8JJveAaAyYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNg7gwBZOCcSwsDYO4MAWTgnEsLA2DuDAFk4JxLCwNyXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDXEsLIO4MAOTgg1xLCyDuDADk4INcSwsg7gwA5OCDcmDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDIO4MAWTgnEsLAyDuDAFk4JxLCwMg7gwBZOCcSwsDMlxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggxxLCyDuDADk4IMcSwsg7gwA5OCDHEsLIO4MAOTggzJxg+Hh+oawXovpl96obMiei+mX3qgszIkeRgAInAtJCJwLSQicC0kInAtJCJwLSQicC0kInAtJCJwLSQicC0kInAtJCJwLSQicC0kInAtJCJwLSQW/8n///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+qqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVACEzDDPAABIAEjPAMwwAIQAhMwwzwAASABIzwDMMACEAITMMM8AAEgASM8AzDAAhACEzDDPAABIAEjPAMwwAIQAhMwwzwAASABIzwDMMACEAITMMM8AAEgASM8AzDAAhACEzDDPAABIAEjPAMwwAIQAhMwwzwAASABIzwDMMACEAITMMM8AAEgASM8AzDAAhACEzDDPAABIAEjPAMwwAIQAhMwwzwAASABIzwDMMACEAITMMM8AAEgASM8AzDAAhACEzDDPAABIAEjPAMwwAIQAhMwwzwAASABIzwDMMACEAITMMM8AAEgASM8AzDAAhACEzDDPAABIAEjPAMwwAIQj8GH4y/WT7wO+B50CzINkI/Bh+Mv1k+8DvgedAsyDZCPwYfjL9ZPvA74HnQLMg2Qj8GH4y/WT7wO+B50CzINkI/Bh+Mv1k+8DvgedAsyDZCPwYfjL9ZPvA74HnQLMg2Qj8GH4y/WT7wO+B50CzINkI/Bh+Mv1k+8DvgedAsyDZCPwYfjL9ZPvA74HnQLMg2Qj8GH4y/WT7wO+B50CzINkI/Bh+Mv1k+8DvgedAsyDZCPwYfjL9ZPvA74HnQLMg2Qj8GH4y/WT7wO+B50CzINkI/Bh+Mv1k+8DvgedAsyDZCPwYfjL9ZPvA74HnQLMg2Qj8GH4y/WT7wO+B50CzINnMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzzMzMzDMzMzPMzMzMMzMzM8zMzMwzMzMzwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDMDAwMAMDAwMwMDAwAwMDAzAwMDADAwMDPHxAQEBAQEBHx8QEBAQEBDx8QEBAQEBAR8fEBAQEBAQ8fEBAQEBAQEfHxAQEBAQEPHxAQEBAQEBHx8QEBAQEBDx8QEBAQEBAR8fEBAQEBAQ8fEBAQEBAQEfHxAQEBAQEPHxAQEBAQEBHx8QEBAQEBDx8QEBAQEBAR8fEBAQEBAQ8fEBAQEBAQEfHxAQEBAQEPHxAQEBAQEBHx8QEBAQEBDx8QEBAQEBAR8fEBAQEBAQ8fEBAQEBAQEfHxAQEBAQEPHxAQEBAQEBHx8QEBAQEBDx8QEBAQEBAR8fEBAQEBAQ8fEBAQEBAQEfHxAQEBAQEPHxAQEBAQEBHx8QEBAQEBCqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlVVqqpVVaqqVVWqqlUC4XIscAl7InAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJLCwly2XIJGjJycnJyeEicAlyLHAJeyJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSwsJctlyCRoycnJycnhInAJInAJcixwCXsicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCXLZcgkaMnJycnJ4SJwCSJwCSJwCXIscAl7InAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJLCwly2XIJGjJycnJyeEicAkicAkicAkicAlyLHAJeyJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSwsJctlyCRoycnJycnhInAJInAJInAJInAJInAJcixwCXsicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCXLZcgkaMnJycnJ4SJwCSJwCSJwCSJwCSJwCSJwCXIscAl7InAJInAJInAJInAJInAJInAJInAJInAJInAJLCwly2XIJGjJycnJyeEicAkicAkicAkicAkicAkicAkicAlyLHAJeyJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSwsJctlyCRoycnJycnhInAJInAJInAJInAJInAJInAJInAJInAJcixwCXsicAkicAkicAkicAkicAkicAkicAksLCXLZcgkaMnJycnJ4SJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCXIscAl7InAJInAJInAJInAJInAJInAJLCwly2XIJGjJycnJyeEicAkicAkicAkicAkicAkicAkicAkicAkicAkicAlyLHAJeyJwCSJwCSJwCSJwCSJwCSwsJctlyCRoycnJycnhInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJcixwCXsicAkicAkicAkicAksLCXLZcgkaMnJycnJ4SJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCXIscAl7InAJInAJInAJLCwly2XIJGjJycnJyeEicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAlyLHAJeyJwCSJwCSwsJctlyCRoycnJycnhInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJInAJcixwCXsicAksLCXLZcgkaMnJycnJ4SJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCSJwCXIscAl7LCwly2XIJGjJycnJydE+t5LI4IXmB8RSRPCFHx8focjlzTJE4XkicCwicCwicCwicCwicCwicCwicCwicCzJ+ABUXWhHeZAfyx1nATNZCfCCMQCv/qAoAzEAvwH/AOlHPgeQVF1HDjOvyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxkwAYAfyxlHIbRXCeViaz7/AQ8Ayfoay2/6G8uFZ/4UIAU+/y0YBtbsIAU8LOoby3zqGsvNr2AhlEbNyhDwpMagV/Cjxn9f1SGXRs3KEPCkxqBn8KPGf2/RzTEcKAsf2hhZH9oYWcPERny6OAViV31rX+XNmkbh1Xu90sxFe9ZA4Ih9k0884Il6lF/ghjzgij2RMGvgh3nLPy88g+CF8IIBDwBvVHzWQBfLN6GFZ3rmBxdvGAjwij3KAETgivCJX/CGV/CFGASCHSgLy38g+Ffwh4LghR3NYkUY2nvgifCIg1/l5gf2CG8mB1Z7aB8fHx/LHR/LHeYDxkBnrx7/6XnghpPgh3vLPy88geCF8IIBDwBvVHzWQBfLN6GFZ3rmBxdv8Ilf8IZX8IXLfyAHV/CHgh0YAYLghc1iRfCKPcoAROCKGN171kDgiHuVTzzgiXqUX+CGPOCKPZEwa+CHecs/LzyD4IXwggEPAG9UfNZAF8s3oYVneuYHF28YCPCKPcoAROCK8Ilf8IZX8IUYBIIdKAvLfyD4V/CHguCFHc0qRhjae+CJ8IiTX+XmB/YQbyYHVntoHx8fH8sdH8sd5gPGQGc+/1jpeeCGk+CHe8s/LzyB4IXwggEPAG9UfNZAF8s3oYVneuYHF2/wiV/whlfwhct/IAdX8IeCHRgBguCFzSpG8Io9ygBE4IoY3UYAALoAAHzWQMhPHx8f5h9HeeYHKAsE/gUwBvUhylblBT4PkCHJRoRn5fCCZ69vyfCCZ69vIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIsnxAQ8APcqEVz0odj0oOj0idwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwksLCXLZSgCJGgidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwksLCXLZSgCJGgidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwksLCXLZSgCJGgidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkidwkid8kicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCUicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCUicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCUicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCUicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCUicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAksLCUicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAkicAloyfgAVF3wgjEAr/6gKAMxAL8B/wDFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcVia/nJJgJ+4JovPOCYfcZAb37gl+Cbr+CZ4JzgneCePkDgn8n/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Aw=='; - -// End of realtime.js file. diff --git a/build/pgo/js-input/octane/gbemu.html b/build/pgo/js-input/octane/gbemu.html deleted file mode 100644 index 8c9700ca73f9..000000000000 --- a/build/pgo/js-input/octane/gbemu.html +++ /dev/null @@ -1,20 +0,0 @@ - - -Octane - - - - -

Octane

-
-
- - - - - - - - - - diff --git a/build/pgo/js-input/octane/mandreel.html b/build/pgo/js-input/octane/mandreel.html deleted file mode 100644 index bc07a46ffa2d..000000000000 --- a/build/pgo/js-input/octane/mandreel.html +++ /dev/null @@ -1,19 +0,0 @@ - - -Octane - - - - -

Octane

-
-
- - - - - - - - - diff --git a/build/pgo/js-input/octane/mandreel.js b/build/pgo/js-input/octane/mandreel.js deleted file mode 100644 index 82ebd23d36ca..000000000000 --- a/build/pgo/js-input/octane/mandreel.js +++ /dev/null @@ -1,277403 +0,0 @@ -// Portions copyright 2012 Google, Inc. -// Copyright 2012 Onan Games. All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -var MandreelBenchmark = new BenchmarkSuite('Mandreel', [16831872, 49852], - [new Benchmark('Mandreel', - false, - false, - 15, - runMandreel, - setupMandreel, - tearDownMandreel, - RMSMandreel, - 4)]); - -var mandreelSumSquaredPauses = 0; -var mandreelSamples = 0; -var mandreelSampleTimeStart = 0.0; - -function setupMandreel() { - // Check for Typed Arrays support, throw error if not. - if (!(typeof Uint8Array != "undefined" && - typeof Float64Array != "undefined" && - typeof (new Uint8Array(0)).subarray != "undefined")) { - throw "TypedArrayUnsupported"; - } - - my_old_constructors = mandreel_call_constructors; - mandreel_call_constructors = my_mandreel_call_constructors; - startMandreelTimer(); - startApp(); - _mandreelAppAudioReady(); -} - -function runMandreel() { - Mandreel_currentTime = 0; - var sp = g_stack_pointer+800*1024; - for (var i=0;i>2] = 640; - heapU32[(sp+4)>>2] = 480; - __mandreel_internal_SetResolution(sp); - __mandreel_internal_init(g_stack_pointer+800*1024); - __init(g_stack_pointer+800*1024); - for (var i = 0; i < 20; i++) { - render(); - Mandreel_flushTimeouts(); - updateMandreelStats(performance.now()); - } - Mandreel_checkState(); -} - -function updateMandreelStats(time) { - var pause = time - mandreelSampleTimeStart; - mandreelSampleTimeStart = time; - mandreelSumSquaredPauses += (pause * pause); - mandreelSamples++; -} - -function startMandreelTimer() { - mandreelSampleTimeStart = performance.now(); -} - -function RMSMandreel() { - return Math.round(Math.sqrt(mandreelSumSquaredPauses / mandreelSamples) * 100); -} - -function tearDownMandreel() { - my_old_constructors = null; - my_heap = null; - my_heap8 = null; - my_heap32 = null; - - heap = null; - heap8 = null; - heapU8 = null; - heap16 = null; - heapU16 = null; - heap32 = null; - heapU32 = null; - heapFloat = null; - heapDouble = null; - mandreelAppUsePackAsyncTexture = null; - mandreelSumSquaredPauses = 0; - mandreelSamples = 0; -} - -// Mocks for browser functions. - -function Mandreel_setTimeout(cmd, delay) { - timeouts.push(cmd); -} - -function Mandreel_flushTimeouts() { - while (Mandreel_timeouts.length != 0) { - var next = Mandreel_timeouts.pop(); - eval(next); - } -} - -Mandreel_timeouts = new Array(); - -Mandreel_XMLHttpRequest = function() { - this.open = function(type, url, some_bool) { - this.url = url; - } - this.overrideMimeType = function() { - } - this.send = function() { - this.response = null; - this.readyState = 4; - this.status = 0; - this.onreadystatechange(); - } -}; - -function Mandreel_Element(type) { - this.element_type = type; - this.insertBefore = function() { - } -} - - -function Mandreel_Context() { -} - -function Mandreel_Canvas() { -} - -function Mandreel_CanvasDiv() { -} - -Mandreel_document = { - createElement : function(element_type) { - var element = new Mandreel_Element(element_type); - element.parentNode = new Mandreel_Element("dummy_parent"); - return element; - }, - getElementById : function(name) { - if (name === "canvas") { - return new Mandreel_Canvas(); - } else if (name === "canvasDiv") { - return new Mandreel_CanvasDiv(); - } else { - return undefined; - } - }, - getElementsByTagName : function(element) { - if (element === "script") { - return new Array(new this.createElement(element)); - } - } - -}; - -Mandreel_window = { - WebGLRenderingContext: {}, - Float64Array: Float64Array, - Float32Array: Float32Array, - Int32Array: Int32Array, - Uint32Array: Uint32Array, - Int16Array: Int16Array, - Uint16Array: Uint16Array, - Int8Array: Int8Array, - Uint8Array: Uint8Array, - setTimeout: Mandreel_setTimeout, - addEventListener : function () {}, - document: Mandreel_document -}; - -function dump(x) { } - -alert = typeof alert != "undefined" ? alert : function(x) { - print(x); -} - -var my_old_constructors; -var my_heap; -var my_heap8; -var my_heap32; -var my_heapNewPos; - -function my_mandreel_call_constructors(_ptr, size,stackPos) { - my_heapNewPos = heapNewPos; - my_heap = new ArrayBuffer(mandreel_total_memory); - my_heap8 = new Int8Array(my_heap); - my_heap32 = new Int32Array(my_heap); - for (var i=0;i100) - percentage = 100; - - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("loadingScriptUpdate",percentage); - - imandreel_update_load(delta_size,0); -} - -function mandreel_swf_size_loaded(str) -{ - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("scriptLoaded",""); -} - -function mandreelNextDecompress(mandreel_result_lzma) -{ - - if ( mandreelAppStartStateFunc ) - { - var totalBytesLeft = mandreel_result_lzma.totalSize - mandreel_result_lzma.remainingBytes; - - var percentage; - - if (totalBytesLeft == 0) - percentage = 0; - else - percentage = ((100*totalBytesLeft)/mandreel_result_lzma.totalSize)|0; - - mandreelAppStartStateFunc("uncompressingDataUpdate",percentage); - } - - var old_result = mandreel_result_lzma; - mandreel_result_lzma = LZMA.decompress2(mandreel_result_lzma.inStream,mandreel_result_lzma.inStream,mandreel_result_lzma.outStream,mandreel_result_lzma); - - if (mandreel_result_lzma == null) - { - //setTimeout(mandreelLoadScript,10,old_result.my_outStream.data); - - //mandreel_fs_saveFile('data.bin', old_result.my_outStream.arrayBuffer); - //callback(old_result.my_outStream.arrayBuffer); - //alert('done'); - mandreelLoadPackData(old_result.my_outStream.arrayBuffer,true); - } - else - { - Mandreel_setTimeout(mandreelNextDecompress,10,mandreel_result_lzma); - } - - -} - -function mandreel_load_packfile(array_buffer) -{ - if (array_buffer) - { - mandreelLoadPackData(array_buffer,false); - return; - } - - var working_folder = mandreelAppWorkingFolder; - if ( mandreelAppReadDataFromLocalHost ) - working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder; - var packdata_request = new XMLHttpRequest(); - var url = working_folder+mandreel_packfiledata_name; - - packdata_request.open("GET", url, true); - - if("responseType" in packdata_request) - packdata_request.responseType="arraybuffer"; - else - packdata_request.overrideMimeType('text/plain; charset=x-user-defined'); - - var last_loaded_size = 0; - - packdata_request.onreadystatechange = function() - { - if (packdata_request.readyState != 4) return; - - if (packdata_request.status == 200) - { - var buffer; - if (packdata_request.responseType=="arraybuffer") - buffer=packdata_request.response; - else if (packdata_request.mozResponseArrayBuffer != null) - buffer = packdata_request.mozResponseArrayBuffer; - else - buffer=packdata_request.response; - - if (mandreel_packfiledata_compressed) - { - var inStream = { - data: new Uint8Array(buffer), - offset: 0, - readByte: function(){ - return this.data[this.offset ++]; - } - }; - - var outStream = { - data: null, - offset: 0, - binary_mode : true, - writeByte: function(value){ - this.data[this.offset ++] = value; - } - }; - - - var result = LZMA.decompress2(inStream,inStream,outStream,null); - - if (result == null) - mandreelLoadPackData(outStream.arrayBuffer,true); - else - Mandreel_setTimeout(mandreelNextDecompress,10,result); - } - else - mandreelLoadPackData(buffer,true); - } - else - { - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("error","can't load packfile data"); - } - } - packdata_request.onprogress = function(e) - { - var delta_size = e.loaded - last_loaded_size; - last_loaded_size = e.loaded; - var percentage = ((100*e.loaded)/mandreel_packfiledata_size)|0; - - - imandreel_update_load(delta_size,0); - - if (percentage>100) - percentage = 100; - - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("loadingData",percentage); - } - - packdata_request.send(); -} - -function mandreelJsScriptLoaded() -{ - if (mandreelJsScriptLoaded_loaded) - return; - - if (typeof(mandreel_cache_files)=="undefined") - { - Mandreel_setTimeout(mandreelJsScriptLoaded,10); - return; - } - - mandreelJsScriptLoaded_loaded = true; - - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("scriptLoaded",""); - - if (mandreel_packfiledata_name) - { - - mandreel_fs_load_binary(mandreel_packfiledata_name, mandreel_load_packfile); - - - } - else - { - mandreelCacheMandreelFat(); - imandreelJsScriptLoaded(); - } -} - -function imandreelLoadAudio() -{ - g_mandreel_working_folder = mandreelAppWorkingFolder; - if ( mandreelAppReadDataFromLocalHost ) - g_mandreel_working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder; - - // load audio - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("loadingAudio",""); - mandreel_start_audio(mandreelAppHostedAudioServer,mandreelAppHostedAudioUrl,_mandreelAppAudioReady); -} - -var _mandreel_currentPackTexture = ''; - -function imandreel_packasynctexture_loaded(buffer,save_file) -{ - if (save_file) - mandreel_fs_saveFile(_mandreel_currentPackTexture,buffer); - - //mandreelBufferPackAsyncTexture = buffer; - Mandreel_TextureAsync_PackBufferData[_mandreel_currentPackTexture] = buffer; - - imandreelLoadNextTexturePack(); -} - -var mandreel_update_total_size = 0; - -function imandreel_update_load(size, total) -{ - if (total == 0) - total = mandreel_packfiledata_size + mandreel_total_packtexture_size + mandreel_total_pogfile_size + mandreel_jslzma_size + mandreel_swf_size; - - - mandreel_update_total_size+=size; - - var percentage = ((100*mandreel_update_total_size)/total)|0; - - if (percentage>100) - percentage = 100; - if (mandreelAppStartStateFunc) - mandreelAppStartStateFunc("loadingProgress",percentage); - -} - - -function imandreel_packasynctexture_load(array_buffer) -{ - if (array_buffer) - { - imandreel_packasynctexture_loaded(array_buffer, false); - return; - } - - - var working_folder = mandreelAppWorkingFolder; - if ( mandreelAppReadDataFromLocalHost ) - working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder; - var packdata_request = new XMLHttpRequest(); - var url = working_folder+_mandreel_currentPackTexture; - - packdata_request.open("GET", url, true); - - if("responseType" in packdata_request) - packdata_request.responseType="arraybuffer"; - else - packdata_request.overrideMimeType('text/plain; charset=x-user-defined'); - - var last_loaded_size = 0; - - packdata_request.onreadystatechange = function() - { - if (packdata_request.readyState != 4) return; - - if (packdata_request.status == 200) - { - var buffer; - if (packdata_request.responseType=="arraybuffer") - buffer=packdata_request.response; - else if (packdata_request.mozResponseArrayBuffer != null) - buffer = packdata_request.mozResponseArrayBuffer; - else - buffer=packdata_request.response; - - imandreel_packasynctexture_loaded(buffer, true); - } - else - { - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("error","can't load textureasync pack data"); - } - } - packdata_request.onprogress = function(e) - { - var delta_size = e.loaded - last_loaded_size; - last_loaded_size = e.loaded; - mandreel_loaded_packtexture_size+=delta_size; - - imandreel_update_load(delta_size,0); - - var percentage = ((100*mandreel_loaded_packtexture_size)/mandreel_total_packtexture_size)|0; - - if (percentage>100) - percentage = 100; - - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("loadingTextureAsyncPack",percentage); - } - - packdata_request.send(); - -} - -function imandreelLoadNextTexturePack() -{ - if (mandreelAppUsePackAsyncTexture.length) - { - _mandreel_currentPackTexture = mandreelAppUsePackAsyncTexture.pop(); - mandreel_fs_load_binary(_mandreel_currentPackTexture, imandreel_packasynctexture_load); - } - else - imandreelLoadAudio(); -} - -function imandreelJsScriptLoaded() -{ - imandreelLoadNextTexturePack(); -} - -//////////////////////////////////////////// - -function mandreelDecompressJSReady(code, save_file) -{ - if (save_file) - mandreel_fs_saveFile(mandreelAppMandreelJs + ".lzma", code); - - var ga = Mandreel_document.createElement('script'); - ga.type = "text/javascript"; - ga.text = code; - var s = Mandreel_document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - s.parentNode.removeChild(ga); - mandreelJsScriptLoaded(); -} - -function mandreelNextDecompressJS(mandreel_result_lzma) -{ - - if ( mandreelAppStartStateFunc ) - { - var totalBytesLeft = mandreel_result_lzma.totalSize - mandreel_result_lzma.remainingBytes; - - var percentage; - - if (totalBytesLeft == 0) - percentage = 0; - else - percentage = ((100*totalBytesLeft)/mandreel_result_lzma.totalSize)|0; - - mandreelAppStartStateFunc("uncompressingScriptUpdate",percentage); - } - - var old_result = mandreel_result_lzma; - mandreel_result_lzma = LZMA.decompress2(mandreel_result_lzma.inStream,mandreel_result_lzma.inStream,mandreel_result_lzma.outStream,mandreel_result_lzma); - - if (mandreel_result_lzma == null) - { - mandreelDecompressJSReady(old_result.my_outStream.data,true); - } - else - { - Mandreel_setTimeout(mandreelNextDecompressJS,10,mandreel_result_lzma); - } - - -} - -function mandreel_load_compressed_js(code_js) -{ - if (code_js) - { - mandreelDecompressJSReady(code_js,false); - return; - } - var xmlhttp_get = new XMLHttpRequest(); - - var url = mandreelAppMandreelJs + ".lzma"; - if ( mandreelAppReadMandreelJsFromLocalHost ) - url = mandreelAppLocalHost+"/"+url; - - xmlhttp_get.open('GET',url); - - - if("responseType" in xmlhttp_get) - xmlhttp_get.responseType="arraybuffer"; - else - xmlhttp_get.overrideMimeType('text/plain; charset=x-user-defined'); - - var last_loaded_size = 0; - - xmlhttp_get.onreadystatechange = function() - { - if (xmlhttp_get.readyState==4) - { - if (xmlhttp_get.status==200 || xmlhttp_get.status==0) - { - - var inStream = { - data: new Uint8Array(xmlhttp_get.response), - offset: 0, - readByte: function(){ - return this.data[this.offset ++]; - } - }; - - var outStream = { - data: new String(""), - offset: 0, - binary_mode : false, - writeByte: function(value){ - this.data+=String.fromCharCode(value); - } - }; - - - var result = LZMA.decompress2(inStream,inStream,outStream,null); - if (result == null) - mandreelDecompressJSReady(outStream.data,true); - else - Mandreel_setTimeout(mandreelNextDecompressJS,10,result); - } - else - { - alert('error ' + xmlhttp_get.status); - } - } - - } - - xmlhttp_get.onprogress = function(e) - { - var delta_size = e.loaded - last_loaded_size; - last_loaded_size = e.loaded; - - var percentage = ((100*e.loaded)/e.total)|0; - - mandreel_jslzma_size = e.total; - - imandreel_update_load(delta_size,0); - - if (percentage>100) - percentage = 100; - - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("loadingScriptUpdate",percentage); - } - - xmlhttp_get.send(); - -} - -function mandreelLoadMandreelJsScript() -{ - if (mandreelAppMandreelJsCompressed) - { - mandreel_fs_load_text(mandreelAppMandreelJs + ".lzma", mandreel_load_compressed_js); - - } - else - { - var ga = Mandreel_document.createElement('script'); - ga.type = 'text/javascript'; - ga.async = true; - ga.onload = ga.onreadystatechange = mandreelJsScriptLoaded; - var url = mandreelAppMandreelJs; - if ( mandreelAppReadMandreelJsFromLocalHost ) - ga.src = mandreelAppLocalHost+"/"+url; - else - ga.src = url; - var s = Mandreel_document.getElementsByTagName('script')[0]; - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("loadingScript",""); - s.parentNode.insertBefore(ga, s); - } -} - -//////////////////////////////////////////// -function mandreelFatLoaded() -{ - if ( mandreelAppPlatform == "nacl" ) - { - g_mandreel_working_folder = mandreelAppWorkingFolder; - if ( mandreelAppReadDataFromLocalHost ) - g_mandreel_working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder; - - // load audio - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("loadingAudio",""); - _mandreelAppAudioReady(); - } - else - mandreelLoadMandreelJsScript(); -} - -var mandreelFatData = ""; -var mandreelFatPreloadRequest = 0; -//////////////////////////////////////////// - -function mandreel_chanka_fixfile(fileName) -{ - var fileNameNoExt = fileName.toLowerCase(); - fileNameNoExt = fileNameNoExt.replace(/\\/g,"/"); - - fileNameNoExt = fileNameNoExt.substr(1); - - var new_fileName = ''; - - for(var j = 0; j < fileNameNoExt.length; j++) - { - var data = fileNameNoExt.charCodeAt(j); - - if (data != 13) - { - var t = String.fromCharCode(data); - new_fileName+=t; - } - } - - return new_fileName; -} - -function mandreel_removecr(my_string) -{ - var new_string = ''; - for(var j = 0; j < my_string.length; j++) - { - var data = my_string.charCodeAt(j); - - if (data != 13) - { - var t = String.fromCharCode(data); - new_string+=t; - } - } - - return new_string; -} - -function mandreelCacheMandreelFat() -{ - var array_mandreel_fat = new ArrayBuffer(mandreelFatData.length+1); - - - { - var j; - var len = mandreelFatData.length; - var data_char; - - var my_bytes = new Uint8Array(array_mandreel_fat); - - for(j = 0; j < len; j++) - { - data_char = mandreelFatData.charCodeAt(j); - - my_bytes[j] = data_char; - } - my_bytes[j] = 0; - } - - - mandreel_cache_files['mandreel.fat'] = array_mandreel_fat; -} - -function mandreelLoadPackData(data, save_pack) -{ - var files = mandreelFatData.split('\n'); - - var current_dir = ''; - var current_offset = 0; - - if (save_pack) - mandreel_fs_saveFile(mandreel_packfiledata_name,data); - - - for (var i=0;i>2] = mandreelAppCanvasWidth; - heapU32[(sp+4)>>2] = mandreelAppCanvasHeight; - __mandreel_internal_SetResolution(sp); - __mandreel_internal_init(g_stack_pointer+800*1024); - __init(g_stack_pointer+800*1024); - } -} - -//////////////////////////////////////////// -function mandreelAppDraw(elapsed) -{ - if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" ) - { - if ( mandreelAppPlatform == "canvas" && imandreel_ctx_canvas != null ) - { - var canvas = Mandreel_document.getElementById(mandreelAppCanvasName); - imandreel_ctx_canvas.clearRect(0,0,canvas.width,canvas.height); - } - var sp = g_stack_pointer+800*1024; - __mandreel_internal_preupdate(sp); - heapU32[sp>>2] = elapsed; - __draw(sp); - __mandreel_internal_update(sp); - __mandreel_process_async_calls(); - } -} - -//////////////////////////////////////////// -function mandreelAppMouseWheel(delta) -{ - if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" ) - { - var i7 = MandreelLockFrame(); - heap32[(i7+0)>>2] = delta; - __mouseWheelDelta(i7); - MandreelUnlockFrame(); - } -} - -//////////////////////////////////////////// -function mandreelAppMouseMove(x,y) -{ - if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" ) - { - var i7 = MandreelLockFrame(); - heap32[(i7+0)>>2] = x; - heap32[(i7+4)>>2] = y; - __mouseMove(i7); - MandreelUnlockFrame(); - } -} - -//////////////////////////////////////////// -function mandreelAppResize(x,y) -{ - if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" ) - { - var i7 = MandreelLockFrame(); - heap32[(i7+0)>>2] = x; - heap32[(i7+4)>>2] = y; - __resize(i7); - heap32[(i7+0)>>2] = x; - heap32[(i7+4)>>2] = y; - __mandreel_internal_SetResolution(i7); - MandreelUnlockFrame(); - } -} - -//////////////////////////////////////////// -function mandreelAppMouseButton(down,x,y) -{ - if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" ) - { - var i7 = MandreelLockFrame(); - heap32[(i7+0)>>2] = down; - heap32[(i7+4)>>2] = x; - heap32[(i7+8)>>2] = y; - __mouseButton(i7); - MandreelUnlockFrame(); - } -} - -//////////////////////////////////////////// -function mandreelAppMouseDblClick(x,y) -{ - if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" ) - { - var i7 = MandreelLockFrame(); - heap32[(i7+0)>>2] = x; - heap32[(i7+4)>>2] = y; - __mouseDoubleClick(i7); - MandreelUnlockFrame(); - } -} - -//////////////////////////////////////////// -function mandreelAppKeyEvent(down,keyId) -{ - if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" ) - { - var i7 = MandreelLockFrame(); - heap32[(i7+0)>>2] = down; - heap32[(i7+4)>>2] = keyId; - __keyEvent(i7); - MandreelUnlockFrame(); - } -} - -//////////////////////////////////////////// -function mandreelAppGetPlatform() -{ - return mandreelAppPlatform; -} - -//////////////////////////////////////////// -function mandreelAppGetElementAbsolutePos(elementName) -{ - var element = Mandreel_document.getElementById(elementName); - var res = new Object(); - res.x = 0; res.y = 0; - if (element !== null) - { - if (element.getBoundingClientRect) - { - var viewportElement = Mandreel_document.documentElement; - var box = element.getBoundingClientRect(); - var scrollLeft = viewportElement.scrollLeft; - var scrollTop = viewportElement.scrollTop; - res.x = box.left + scrollLeft; - res.y = box.top + scrollTop; - } - else - { //for old browsers - res.x = element.offsetLeft; - res.y = element.offsetTop; - var parentNode = element.parentNode; - var borderWidth = null; - while (offsetParent != null) - { - res.x += offsetParent.offsetLeft; - res.y += offsetParent.offsetTop; - var parentTagName = offsetParent.tagName.toLowerCase(); - if ((__isIEOld && parentTagName != "table") || - ((__isFireFoxNew || __isChrome) && - parentTagName == "td")) - { - borderWidth = kGetBorderWidth(offsetParent); - res.x += borderWidth.left; - res.y += borderWidth.top; - } - - if (offsetParent != Mandreel_document.body && - offsetParent != Mandreel_document.documentElement) - { - res.x -= offsetParent.scrollLeft; - res.y -= offsetParent.scrollTop; - } - - //next lines are necessary to fix the problem - //with offsetParent - if (!__isIE && !__isOperaOld || __isIENew) - { - while (offsetParent != parentNode && - parentNode !== null) { - res.x -= parentNode.scrollLeft; - res.y -= parentNode.scrollTop; - if (__isFireFoxOld || __isWebKit) - { - borderWidth = - kGetBorderWidth(parentNode); - res.x += borderWidth.left; - res.y += borderWidth.top; - } - parentNode = parentNode.parentNode; - } - } - - parentNode = offsetParent.parentNode; - offsetParent = offsetParent.offsetParent; - } - } - } - return res; -} -function __getIEVersion() -{ - var rv = -1; // Return value assumes failure. - if (navigator.appName == 'Microsoft Internet Explorer') - { - var ua = navigator.userAgent; - var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); - if (re.exec(ua) != null) - rv = parseFloat(RegExp.$1); - } - return rv; -} -function __getOperaVersion() -{ - var rv = 0; // Default value - if (Mandreel_window.opera) - { - var sver = Mandreel_window.opera.version(); - rv = parseFloat(sver); - } - return rv; -} -/* The following code was removed for benchmarking: -var __userAgent = navigator.userAgent; -var __isIE = navigator.appVersion.match(/MSIE/) != null; -var __IEVersion = __getIEVersion(); -var __isIENew = __isIE && __IEVersion >= 8; -var __isIEOld = __isIE && !__isIENew; -var __isFireFox = __userAgent.match(/firefox/i) != null; -var __isFireFoxOld = __isFireFox && ((__userAgent.match(/firefox\/2./i) != null) || (__userAgent.match(/firefox\/1./i) != null)); -var __isFireFoxNew = __isFireFox && !__isFireFoxOld; -var __isWebKit = navigator.appVersion.match(/WebKit/) != null; -var __isChrome = navigator.appVersion.match(/Chrome/) != null; -var __isOpera = Mandreel_window.opera != null; -var __operaVersion = __getOperaVersion(); -var __isOperaOld = __isOpera && (__operaVersion < 10); */ -function __parseBorderWidth(width) -{ - var res = 0; - if (typeof(width) == "string" && width != null && width != "" ) - { - var p = width.indexOf("px"); - if (p >= 0) - { - res = parseInt(width.substring(0, p)); - } - else - { - //do not know how to calculate other values (such as 0.5em or 0.1cm) correctly now so just set the width to 1 pixel - res = 1; - } - } - return res; -} -function __getBorderWidth(element) -{ - var res = new Object(); - res.left = 0; res.top = 0; res.right = 0; res.bottom = 0; - if (Mandreel_window.getComputedStyle) - { - //for Firefox - var elStyle = Mandreel_window.getComputedStyle(element, null); - res.left = parseInt(elStyle.borderLeftWidth.slice(0, -2)); - res.top = parseInt(elStyle.borderTopWidth.slice(0, -2)); - res.right = parseInt(elStyle.borderRightWidth.slice(0, -2)); - res.bottom = parseInt(elStyle.borderBottomWidth.slice(0, -2)); - } - else - { - //for other browsers - res.left = __parseBorderWidth(element.style.borderLeftWidth); - res.top = __parseBorderWidth(element.style.borderTopWidth); - res.right = __parseBorderWidth(element.style.borderRightWidth); - res.bottom = __parseBorderWidth(element.style.borderBottomWidth); - } - return res; -} - - -//////////////////////////////////////////// -// WebGL -//////////////////////////////////////////// - var imandreel_gl = null; - var imandreel_ctx_canvas = null; - var imandreel_is_ready = 0; - var imandreel_oldTime = Date_now(); - - function mandreel_wheel(event) { imandreel_onMouseWheel(event);event.preventDefault(); event.returnValue=false; } - - //////////////////////////////////////////// - function mandreelAppStartRenderWebGL() - { -/* The following code was removed for benchmarking: - var canvas = document.getElementById(mandreelAppCanvasName); - - mandreelAppCanvasWidth = canvas.width; - mandreelAppCanvasHeight = canvas.height; - - // Register event handlers - if(window.addEventListener){ window.addEventListener('DOMMouseScroll',mandreel_wheel,false); } window.onmousewheel=document.onmousewheel=mandreel_wheel; - - window.addEventListener('mousedown',imandreel_onMouseDown,false); - window.addEventListener('mouseup',imandreel_onMouseUp,false); - window.addEventListener('mousemove',imandreel_onMouseMove,false); - window.addEventListener('dblclick',imandreel_onMouseDblClick,false); - - document.body.oncontextmenu = function() { return false;}; - - var canvasDiv = document.getElementById(mandreelAppCanvasDiv); - canvasDiv.addEventListener('keydown',imandreel_onKeyDown,false); - canvasDiv.addEventListener('keyup',imandreel_onKeyUp,false); - canvasDiv.focus();*/ - - // Call mandreel app init funtion (__init()) - mandreelAppInit(); - - // Start rendering - imandreel_is_ready = 1; - //imandreel_render(); - } - - //////////////////////////////////////////// - function imandreel_render() - { - if( ABORT ) - return; - - var canvas = Mandreel_document.getElementById(mandreelAppCanvasName); - WebGLUtils.requestAnimationFrame(canvas, imandreel_render); - - - // Reshape - if (canvas.clientWidth != mandreelAppCanvasWidth || canvas.clientHeight != mandreelAppCanvasHeight) - { - mandreelAppCanvasWidth = canvas.clientWidth; - mandreelAppCanvasHeight = canvas.clientHeight; - imandreel_gl.viewport(0, 0, mandreelAppCanvasWidth, mandreelAppCanvasHeight); - } - - // Set the focus to the canvas div - if (mandreelAppForceFocus) - { - var canvasDiv = Mandreel_document.getElementById(mandreelAppCanvasDiv); - canvasDiv.focus(); - } - - // Call mandreel app draw funtion (__draw()) - var nowTime = Date_now(); - if (!g_mandreel_frame_locked) - { - g_mandreel_frame_inframe = true; - if (!_imandreel_pause_game) - mandreelAppDraw(nowTime-imandreel_oldTime); - g_mandreel_frame_inframe = false; - } - imandreel_oldTime = nowTime; - } - - function render() - { - // Call mandreel app draw funtion (__draw()) - var nowTime = Date_now(); - if (!g_mandreel_frame_locked) - { - g_mandreel_frame_inframe = true; - if (!_imandreel_pause_game) - mandreelAppDraw(nowTime-imandreel_oldTime); - g_mandreel_frame_inframe = false; - } - imandreel_oldTime = nowTime; - } - - var imandreel_last_movex = 0; - var imandreel_last_movey = 0; - - //////////////////////////////////////////// - function imandreel_onMouseMove(e) - { - if (!imandreel_is_ready) - return; - - if (_imandreel_pause_game) - return; - - var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName); - var setX = e.clientX - pos.x; - var setY = e.clientY - pos.y; - - if(navigator.pointer && navigator.pointer.isLocked) { - var deltaX = event.movementX || event.webkitMovementX || event.mozMovementX || 0; - var deltaY = event.movementY || event.webkitMovementY || event.mozMovementX || 0; - - setX = imandreel_last_movex+deltaX; - setY = imandreel_last_movey+deltaY; - } - - - imandreel_last_movex = setX; - imandreel_last_movey = setY; - mandreelAppMouseMove(setX,setY); - } - - //////////////////////////////////////////// - function imandreel_onMouseDblClick(e) - { - if (!imandreel_is_ready) - return; - - if (_imandreel_pause_game) - return; - - var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName); - var setX = e.clientX - pos.x; - var setY = e.clientY - pos.y; - mandreelAppMouseDblClick(setX,setY); - } - - //////////////////////////////////////////// - var mandreel_mouse_down = false; - var mandreel_rmouse_down = false; - function imandreel_onMouseDown(e) - { - if (!imandreel_is_ready) - return; - - if (_imandreel_pause_game) - return; - - var rightclick; - if (!e) var e = Mandreel_window.event; - if (e.which) rightclick = (e.which == 3); - else if (e.button) rightclick = (e.button == 2); - - var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName); - var setX = e.clientX - pos.x; - var setY = e.clientY - pos.y; - - if (!rightclick) - { - if (mandreel_mouse_down) - return; - - mandreel_mouse_down = true; - mandreelAppMouseButton(1,setX,setY); - } - else - { - if (mandreel_rmouse_down) - return; - - mandreel_rmouse_down = true; - mandreelAppMouseButton(3,setX,setY); - } - } - - //////////////////////////////////////////// - function imandreel_onMouseUp(e) - { - if (!imandreel_is_ready) - return; - - if (_imandreel_pause_game) - return; - - var rightclick; - if (!e) var e = Mandreel_window.event; - if (e.which) rightclick = (e.which == 3); - else if (e.button) rightclick = (e.button == 2); - - var pos = mandreelAppGetElementAbsolutePos(mandreelAppCanvasName); - var setX = e.clientX - pos.x; - var setY = e.clientY - pos.y; - - - if (!rightclick) - { - if (mandreel_mouse_down == false) - return; - - mandreel_mouse_down = false; - mandreelAppMouseButton(0,setX,setY); - } - else - { - if (mandreel_rmouse_down == false) - return; - - mandreel_rmouse_down = false; - mandreelAppMouseButton(2,setX,setY); - } - } - - //////////////////////////////////////////// - function imandreel_onMouseWheel(e) - { - if (!imandreel_is_ready) - return; - - if (_imandreel_pause_game) - return; - - mandreelAppMouseWheel(e.wheelDelta); - } - - //////////////////////////////////////////// - function imandreel_onKeyUp(e) - { - if (!imandreel_is_ready) - return; - - if (_imandreel_pause_game) - return; - - var KeyID = e.keyCode; - mandreelAppKeyEvent(0,KeyID); - } - - //////////////////////////////////////////// - Mandreel_window.onkeydown = function(e) - { - if (mandreelDisableSpaceKey == false && e.keyCode == 32) - return; - return !(e.keyCode == 32 || e.keyCode == 9); - }; - - //////////////////////////////////////////// - function imandreel_onKeyDown(e) - { - if (e.which === 8) // disable back button on browser - { - e.preventDefault(); - } - if (!imandreel_is_ready) - return; - - if (_imandreel_pause_game) - return; - - var KeyID = e.keyCode; - mandreelAppKeyEvent(1,KeyID); - } - - -//////////////////////////////////////////// -// Flash -//////////////////////////////////////////// - -(function(){ - try { - // Disabling SWFObject's Autohide feature - if (typeof swfobject.switchOffAutoHideShow === "function") { - swfobject.switchOffAutoHideShow(); - } - } catch(e) {} - })(); - -var imandreel_flash_global_sp = 0; -var imandreel_flash_global_sp2 = 0; -var imandreel_flash_current_sp = 0; - -function MandreelInterSwfLoaded2() -{ -} -function MandreelInterSwfLoaded() -{ - appStartState('scriptLoaded'); - var flashMovie = swfobject.getObjectById(mandreelAppCanvasDiv) - dump(flashMovie.width); - flashMovie.MandreelInit(); - - imandreel_flash_global_sp = MandreelInterGetSWF().MandreelInterGetGlobalStack(); - imandreel_flash_global_sp2 = MandreelInterGetSWF().MandreelInterGetGlobalStack2(); - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("ready",mandreelAppCanvasWidth,mandreelAppCanvasHeight); -} - - - -var g_mandreel_swf = null; - -function MandreelInterGetSWF() -{ - if (g_mandreel_swf) - return g_mandreel_swf; - - g_mandreel_swf = swfobject.getObjectById(mandreelAppCanvasDiv) - return g_mandreel_swf; -} - -function MandreelInterWriteInt(ptr, value) -{ - MandreelInterGetSWF().MandreelInterWriteInt(ptr,value); -} - -function MandreelInterWriteFloat(ptr, value) -{ - MandreelInterGetSWF().MandreelInterWriteFloat(ptr,value); -} - -function MandreelInterWriteString(ptr, value) -{ - MandreelInterGetSWF().MandreelInterWriteString(ptr,value); -} - -function MandreelInterWriteWString(ptr, value) -{ - MandreelInterGetSWF().MandreelInterWriteWString(ptr,value); -} - -function MandreelInterCallFunctionRaw(sp, func_name, returnType) -{ - return MandreelInterGetSWF().MandreelInterCallFunctionRaw(sp,func_name,returnType); -} - - -function assert(condition, _text) { -//console.assert(condition, _text); - if (!condition) { - var text = "Assertion failed: " + _text; - alert(text + ':\n' + (new Error).stack); - ABORT = true; - throw "Assertion: " + text; - } - } - - - -function MandreelLockFrame() -{ - MandreelInterGetSWF().MandreelLockFrame(); - - imandreel_flash_current_sp += 300*1024; - - assert(imandreel_flash_current_sp<1024*1024); - - return imandreel_flash_current_sp; -} - -function MandreelPause() -{ - MandreelInterGetSWF().MandreelPause(); -} - -function MandreelResume() -{ - MandreelInterGetSWF().MandreelResume(); -} - - -function MandreelUnlockFrame() -{ - imandreel_flash_current_sp -= 300*1024; - MandreelInterGetSWF().MandreelUnlockFrame(); -} - - - -function MandreelInterCallFunctionAsync(func_name,param) -{ - return MandreelInterGetSWF().MandreelInterCallFunctionAsync(func_name, param); -} - - -function MandreelInterCallFunction(returnType,func_name) -{ - var size_params = 0; - - var i; - var num_params = (arguments.length-2)/2; - num_params|=0; - for (i=2;i=g_mandreel_timestamp_fs) - callback(getReq.result.data); - else - callback(null); - } - else - callback(null); - } - getReq.onerror = function (ev) { - console.log("index.get failed. Error: " + ev.message); - } -} - -function mandreel_fs_get_url(file_name, callback) -{ - if (mandreel_indexedDB.db) - { - callback(null); - return; - } - - - if (g_mandreel_fs == null) - { - callback(null); - return; - } - - g_mandreel_fs.root.getFile(file_name, {}, function(fileEntry) { - - fileEntry.getMetadata(function(metaData){ - var my_seconds = metaData.modificationTime.getTime()/1000; - - if (g_mandreel_timestamp_fs>my_seconds) - { - callback(null); - } - else - { - //alert('mandreel_fscachefile2'); - - - if (Mandreel_window.localStorage.getItem(mandreel_fs_get_key(file_name)) != null) - callback(fileEntry.toURL()); - else - callback(null); - - } - - - }, MandreelFsErrorHandler); - - - }, function(error) {callback(null);}); - - return; - -} - -function mandreel_fs_load_binary(file_name, callback) - { - if (mandreel_indexedDB.db) - { - mandreel_indexedDB.load(file_name,callback); - return; - } - - - if (g_mandreel_fs == null) - { - callback(null); - return; - } - - - g_mandreel_fs.root.getFile(file_name, {}, function(fileEntry) { - - fileEntry.getMetadata(function(metaData){ - var my_seconds = metaData.modificationTime.getTime()/1000; - - if (g_mandreel_timestamp_fs>my_seconds) - { - dump('mandreel_fscachefile1'); - Mandreel_window.localStorage.removeItem(mandreel_fs_get_key(file_name)); - fileEntry.remove(function() { - callback(null); - }, MandreelFsErrorHandler); - - } - else - { - //alert('mandreel_fscachefile2'); - dump('mandreel_fscachefile2 ' + my_seconds); - - fileEntry.file(function(file) { - - var reader = new FileReader(); - - - reader.onloadend = function(e) { - - if (this.result.byteLength && Mandreel_window.localStorage.getItem(mandreel_fs_get_key(file_name)) != null) - { - dump('mandreel_fs_loadFile ' + file_name); - callback(this.result); - } - else - callback(null); - - }; - - - reader.readAsArrayBuffer(file); - - - }, MandreelFsErrorHandler); - - } - - - }, MandreelFsErrorHandler); - - - }, function(error) {dump('mandreel_fscachefile3'); callback(null);}); - - return; - } - - - mandreel_indexedDB.save = function(file_name, data) -{ - var db = mandreel_indexedDB.db; - - - var trans = db.transaction(["cache"], IDBTransaction.READ_WRITE); - var store = trans.objectStore("cache"); - var request = store.put({ - "data": data, - "timeStamp" : Date_now()/1000, - "fileName" : file_name - }); - - request.onsuccess = function(e) { - // Re-render all the todo's - // html5rocks.indexedDB.getAllTodoItems(); - dump('mandreel_indexedDB.save ok '); - }; - - request.onerror = function(e) { - dump('mandreel_indexedDB.save onerror ' + file_name); - dump(e); - }; -} - -function mandreel_fs_get_key(name) -{ - return 'mandreel_fs_' + name; -} - -function mandreel_is_filesystem() -{ - if (mandreel_indexedDB.db) - return false; - - if (!g_mandreel_fs) - return false; - - return true; -} - -function mandreel_is_indexeddb() -{ - if (mandreel_indexedDB.db) - return true; - - return false; -} - - function mandreel_fs_saveFile(name, my_arrayBuffer) -{ - if (mandreel_indexedDB.db) - { - mandreel_indexedDB.save(name,my_arrayBuffer); - return; - } - - if (!g_mandreel_fs) - return; - - Mandreel_window.localStorage.removeItem(mandreel_fs_get_key(name)); - g_mandreel_fs.root.getFile(name, {create: true}, function(fileEntry) { - - // Create a FileWriter object for our FileEntry (log.txt). - fileEntry.createWriter(function(fileWriter) { - - fileWriter.onwriteend = function(e) { - Mandreel_window.localStorage.setItem(mandreel_fs_get_key(name),'valid'); - dump('Write completed.'); - }; - - fileWriter.onerror = function(e) { - dump('Write failed: ' + e.toString()); - }; - - var my_BlobBuilder = Mandreel_window.MozBlobBuilder || Mandreel_window.WebKitBlobBuilder || Mandreel_window.BlobBuilder; - - var bb = new my_BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12. - bb.append(my_arrayBuffer); - fileWriter.write(bb.getBlob('text/plain')); - - - - }, MandreelFsErrorHandler); - - }, MandreelFsErrorHandler); -} - - -function mandreel_fs_load_text(file_name, callback) - { - - if (mandreel_indexedDB.db) - { - mandreel_indexedDB.load(file_name,callback); - return; - } - - if (g_mandreel_fs == null) - { - callback(null); - return; - } - - - g_mandreel_fs.root.getFile(file_name, {}, function(fileEntry) { - - fileEntry.getMetadata(function(metaData){ - var my_seconds = metaData.modificationTime.getTime()/1000; - - if (g_mandreel_timestamp_fs>my_seconds) - { - dump('mandreel_fscachefile1'); - Mandreel_window.localStorage.removeItem(mandreel_fs_get_key(file_name)); - fileEntry.remove(function() { - callback(null); - }, MandreelFsErrorHandler); - - } - else - { - //alert('mandreel_fscachefile2'); - dump('mandreel_fscachefile2 ' + my_seconds); - - fileEntry.file(function(file) { - - var reader = new FileReader(); - - - reader.onloadend = function(e) { - - - if (this.result.length && Mandreel_window.localStorage.getItem(mandreel_fs_get_key(file_name)) != null) - { - dump('mandreel_fs_loadFile ' + file_name); - callback(this.result); - } - else - callback(null); - - }; - - - reader.readAsText(file); - - - }, MandreelFsErrorHandler); - - } - - - }, MandreelFsErrorHandler); - - - }, function(error) {dump('mandreel_fscachefile3'); callback(null);}); - - return; - } - - - // full screen - - -/* The following code was removed for benchmarking: - var __screen = screen; */ - - try - { - (function(global) { - "use strict"; - var elementPrototype = (global.HTMLElement || global.Element)["prototype"]; - - // document.isFullScreen - if(!Mandreel_document.hasOwnProperty("fullscreenEnabled")) { - var getter = (function() { - // These are the functions that match the spec, and should be preferred - if("webkitIsFullScreen" in Mandreel_document) { - return function() { return Mandreel_document.webkitIsFullScreen; } - } - if("mozFullScreen" in Mandreel_document) { - return function() { return Mandreel_document.mozFullScreen; } - } - return function() { return false }; // not supported, never fullscreen - })(); - - Object.defineProperty(Mandreel_document, "fullscreenEnabled", { - enumerable: true, configurable: false, writeable: false, - get: getter - }); - } - - if(!Mandreel_document.hasOwnProperty("fullscreenElement")) { - var getter = (function() { - // These are the functions that match the spec, and should be preferred - if("webkitFullscreenElement" in Mandreel_document) { - return function() { return Mandreel_document.webkitFullscreenElement; } - } - if("mozFullscreenElemen" in Mandreel_document) { - return function() { return Mandreel_document.mozFullscreenElemen; } - } - return function() { return null }; // not supported - })(); - - Object.defineProperty(Mandreel_document, "fullscreenElement", { - enumerable: true, configurable: false, writeable: false, - get: getter - }); - } - - // Document event: fullscreenchange - function fullscreenchange(oldEvent) { - var newEvent = Mandreel_document.createEvent("CustomEvent"); - newEvent.initCustomEvent("fullscreenchange", true, false, null); - // TODO: Any need for variable copy? - Mandreel_document.dispatchEvent(newEvent); - } - Mandreel_document.addEventListener("webkitfullscreenchange", fullscreenchange, false); - Mandreel_document.addEventListener("mozfullscreenchange", fullscreenchange, false); - - // Document event: fullscreenerror - function fullscreenerror(oldEvent) { - var newEvent = Mandreel_document.createEvent("CustomEvent"); - newEvent.initCustomEvent("fullscreenerror", true, false, null); - // TODO: Any need for variable copy? - Mandreel_document.dispatchEvent(newEvent); - } - Mandreel_document.addEventListener("webkitfullscreenerror", fullscreenerror, false); - Mandreel_document.addEventListener("mozfullscreenerror", fullscreenerror, false); - - // element.requestFullScreen - if(!elementPrototype.requestFullScreen) { - elementPrototype.requestFullScreen = (function() { - if(elementPrototype.webkitRequestFullScreen) { - return function() { - this.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); - } - } - - return elementPrototype.mozRequestFullScreen || - function(){ /* unsupported, fail silently */ }; - })(); - } - - // document.cancelFullscreen - if(!Mandreel_document.cancelFullScreen) { - Mandreel_document.cancelFullScreen = (function() { - return Mandreel_document.webkitCancelFullScreen || - Mandreel_document.mozCancelFullScreen || - function(){ /* unsupported, fail silently */ }; - })(); - } - })((typeof(exports) != 'undefined') ? global : Mandreel_window); - } - catch(e) - { - } - - -try - { -var __onErrorFullscreen = function() { - dump("Mouse lock was not successful."); -}; - -Mandreel_document.addEventListener('fullscreenchange', function(e) { - -var width; -var height; - var canvas = Mandreel_document.getElementById(mandreelAppCanvasName); - if(Mandreel_document.fullscreenEnabled) { - - - width = __screen.width; - height = __screen.height; - - } else { - width = mandreelAppWidthSrc; - height = mandreelAppHeightSrc; - } - - canvas.width = width; - canvas.height = height; - mandreelAppResize(width, height); - - if (Mandreel_document.fullscreenEnabled && navigator.pointer) { - navigator.pointer.lock(Mandreel_document.body, function() { - // Locked and ready to play. - }, __onErrorFullscreen); - } -}, false); - -} -catch(e) -{ -} - - - -function mandreelAppFullscreen(enable) -{ - var canvas = Mandreel_document.getElementById(mandreelAppCanvasName); - if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" ) - { - if (canvas) - { - if (enable) - canvas.requestFullScreen(); - else - Mandreel_document.cancelFullScreen(); - } - } -} - - -function mandreelAppDisableForceFocus() -{ - mandreelAppForceFocus = false; -} - -function mandreelAppEnableForceFocus() -{ - mandreelAppForceFocus = true; -} - -var imandreel_base64 = {}; -imandreel_base64.PADCHAR = '='; -imandreel_base64.ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - -imandreel_base64.makeDOMException = function() { - // sadly in FF,Safari,Chrome you can't make a DOMException - var e, tmp; - - try { - return new DOMException(DOMException.INVALID_CHARACTER_ERR); - } catch (tmp) { - // not available, just passback a duck-typed equiv - // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error - // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error/prototype - var ex = new Error("DOM Exception 5"); - - // ex.number and ex.description is IE-specific. - ex.code = ex.number = 5; - ex.name = ex.description = "INVALID_CHARACTER_ERR"; - - // Safari/Chrome output format - ex.toString = function() { return 'Error: ' + ex.name + ': ' + ex.message; }; - return ex; - } -} - -imandreel_base64.getbyte64 = function(s,i) { - // This is oddly fast, except on Chrome/V8. - // Minimal or no improvement in performance by using a - // object with properties mapping chars to value (eg. 'A': 0) - var idx = imandreel_base64.ALPHA.indexOf(s.charAt(i)); - if (idx === -1) { - throw imandreel_base64.makeDOMException(); - } - return idx; -} - -imandreel_base64.decode = function(s) { - // convert to string - s = '' + s; - var getbyte64 = imandreel_base64.getbyte64; - var pads, i, b10; - var imax = s.length - if (imax === 0) { - return s; - } - - if (imax % 4 !== 0) { - throw imandreel_base64.makeDOMException(); - } - - pads = 0 - if (s.charAt(imax - 1) === imandreel_base64.PADCHAR) { - pads = 1; - if (s.charAt(imax - 2) === imandreel_base64.PADCHAR) { - pads = 2; - } - // either way, we want to ignore this last block - imax -= 4; - } - - var x = []; - for (i = 0; i < imax; i += 4) { - b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12) | - (getbyte64(s,i+2) << 6) | getbyte64(s,i+3); - x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 0xff, b10 & 0xff)); - } - - switch (pads) { - case 1: - b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12) | (getbyte64(s,i+2) << 6); - x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 0xff)); - break; - case 2: - b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12); - x.push(String.fromCharCode(b10 >> 16)); - break; - } - return x.join(''); -} - -if (!Mandreel_window.atob) { -Mandreel_window.atob = function(a) { return imandreel_base64.decode(a); } -} - - -function imandreel_interop_callbridge(new_method, sp) -{ - - var n = new Array(); - - for( var i = 2; i < arguments.length; i++ ) - { - - if (typeof arguments[i] == 'string') - n.push(atob(arguments[i])); - else - n.push(arguments[i]); - } - - var total_args = arguments.length-2; - - switch(total_args) - { - case 0: - return Mandreel_window[new_method](sp); - case 1: - return Mandreel_window[new_method](sp, n[0]); - case 2: - return Mandreel_window[new_method](sp, n[0], n[1]); - case 3: - return Mandreel_window[new_method](sp, n[0], n[1], n[2]); - case 4: - return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3]); - case 5: - return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4]); - case 6: - return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5]); - case 7: - return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6]); - case 8: - return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7]); - case 9: - return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8]); - case 10: - return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9]); - case 11: - return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10]); - case 12: - return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11]); - case 13: - return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12]); - case 14: - return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12], n[13]); - case 15: - return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12], n[13], n[14]); - case 16: - return Mandreel_window[new_method](sp, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12], n[13], n[14], n[15]); - break; - } - -} -function imandreel_as3_dump(param) -{ - dump(atob(param)); -} - - -var mandreel_embed_plugin; - -function PluginMandreelInterWriteInt(ptr, value) -{ - mandreel_embed_plugin.MandreelInterCalls("WriteInt", ptr,value); -} - -function PluginMandreelInterWriteFloat(ptr, value) -{ - mandreel_embed_plugin.MandreelInterCalls("WriteFloat", ptr,value); -} - -function PluginMandreelInterWriteString(ptr, value) -{ - mandreel_embed_plugin.MandreelInterCalls("WriteString", ptr,value); -} - -function PluginMandreelInterWriteWString(ptr, value) -{ - mandreel_embed_plugin.MandreelInterCalls("WriteWString", ptr,value); -} - -var mandreel_plugin_current_sp = 0; - -function PluginMandreelLockFrame() -{ - var result = mandreel_embed_plugin.MandreelInterCalls("LockFrame"); - - mandreel_plugin_current_sp+=300*1024; - - assert(mandreel_plugin_current_sp<1024*1024); - - return result+mandreel_plugin_current_sp; -} - -function PluginMandreelPause() -{ - mandreel_embed_plugin.MandreelInterCalls("Pause"); -} - -function PluginMandreelResume() -{ - mandreel_embed_plugin.MandreelInterCalls("Resume"); -} - - -function PluginMandreelUnlockFrame() -{ - mandreel_embed_plugin.MandreelInterCalls("UnlockFrame"); - - mandreel_plugin_current_sp-=300*1024; -} - -function PluginMandreelInterCallFunction() -{ - var total_args = arguments.length; - - switch(total_args) - { - case 0: - return mandreel_embed_plugin.MandreelInterCallFunction(); - case 1: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0]); - case 2: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1]); - case 3: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2]); - case 4: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3]); - case 5: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]); - case 6: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]); - case 7: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6]); - case 8: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7]); - case 9: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8]); - case 10: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9]); - case 11: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10]); - case 12: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11]); - case 13: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12]); - case 14: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12], arguments[13]); - case 15: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12], arguments[13], arguments[14]); - case 16: - return mandreel_embed_plugin.MandreelInterCallFunction(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7], arguments[8], arguments[9], arguments[10], arguments[11], arguments[12], arguments[13], arguments[14], arguments[15]); - break; - } -} - -function mandreel_plugin_draw() -{ - var canvas = Mandreel_document.getElementById('canvasDiv'); - WebGLUtils.requestAnimationFrame(canvas, mandreel_plugin_draw); - mandreel_embed_plugin.MandreelInterCalls("AppDraw"); - -} - -function mandreelInitPluginPlatform(params) -{ - - if ( params.width != null ) - mandreelAppWidthSrc = params.width; - - if ( params.height != null ) - mandreelAppHeightSrc = params.height; - - - mandreel_embed_plugin = Mandreel_document.createElement('embed'); - mandreel_embed_plugin.setAttribute('width',mandreelAppWidthSrc); - mandreel_embed_plugin.setAttribute('height',mandreelAppHeightSrc); - mandreel_embed_plugin.setAttribute('type',"application/halfbrick-npruntime-scriptable-plugin"); - - var div = Mandreel_document.getElementById('canvasDiv'); - - - var oChild=div.firstChild; - - div.replaceChild(mandreel_embed_plugin, oChild); - - var flashElement = Mandreel_document.getElementById('FlashWrapper'); - if ( flashElement != null ) - { - flashElement.style.visibility = "hidden"; - flashElement.style.width = "0px"; - flashElement.style.height = "0px"; - } - - - - - - Mandreel_window.MandreelInterWriteInt = PluginMandreelInterWriteInt; - Mandreel_window.MandreelInterWriteFloat = PluginMandreelInterWriteInt; - Mandreel_window.MandreelInterWriteString = PluginMandreelInterWriteString; - Mandreel_window.MandreelInterWriteWString = PluginMandreelInterWriteWString; - Mandreel_window.MandreelLockFrame = PluginMandreelLockFrame; - Mandreel_window.MandreelUnlockFrame = PluginMandreelUnlockFrame; - Mandreel_window.MandreelInterCallFunction = PluginMandreelInterCallFunction; - Mandreel_window.MandreelPause = PluginMandreelPause; - Mandreel_window.MandreelResume = PluginMandreelResume; - - Mandreel_setTimeout(function () { - - if ( typeof(params.pluginSolutionName) != 'undefined' ) - mandreel_embed_plugin.init(params.pluginDLL, params.pluginWorkingFolder,params.pluginSolutionName); - else - mandreel_embed_plugin.init(params.pluginDLL, params.pluginWorkingFolder); - - - mandreelAppStartStateFunc("ready",mandreelAppWidthSrc,mandreelAppHeightSrc); - - Mandreel_setTimeout("mandreel_plugin_draw()", 16); - }, 100); - -} - - -function MandreelInterSwfProgress(mode, percentage, bytes, totalbytes) -{ - imandreel_update_load(bytes, totalbytes); - if (mode == 'files') - { - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("loadingData",percentage); - } - else if (mode == 'audio') - { - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("loadingAudioUpdate",percentage); - } - else if (mode == 'textureasync') - { - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("loadingTextureAsyncPack",percentage); - } - -} - -function MandreelInterSwfCheckMethod(method) -{ - if (typeof(Mandreel_window[method])=="undefined") - return 0; - else - return 1; -} - -// End of js/mandreelapp.js file. - -// Start of mandreel.js file. - -var mandreel_total_memory = 15908864; -var mandreel_stack_memory = 1048576; -var mandreel_heap_memory = 13591752; //init_memory = 744248 -///////////////////////////////////////////// -// Heap -///////////////////////////////////////////// -var heap; -var heap8; -var heapU8; -var heap16; -var heapU16; -var heap32; -var heapU32; -var heapFloat; -var heapDouble; -var heapNewPos = 512; - -var ABORT = false; - -var g_mandreel_cache_files = false; - - -var g_mandreel_frame_locked = false; -var g_mandreel_frame_inframe = false; - -var mandreel_cache_files = []; -var g_mandreel_working_folder = 'DataPC/'; -var g_mandreel_datafiles_sufix = '.dat'; -var __FUNCTION_TABLE__ = []; -var mandreel_pos_function_table = 1; -function register_delegate(ptr_func) -{ - var functionId = mandreel_pos_function_table; - __FUNCTION_TABLE__[functionId] = ptr_func; - - mandreel_pos_function_table++; - return functionId*4; -} - - -var g_addr_emit = 0; -function emit_start(addr) -{ - g_addr_emit = addr; -} - -function emit_8(data) -{ - heapU8[g_addr_emit] = data; - g_addr_emit++; -} - -function emit_16(data) -{ - heapU16[g_addr_emit>>1] = data; - g_addr_emit+=2; -} - -function emit_32(data) -{ - heapU32[g_addr_emit>>2] = data; - g_addr_emit+=4; -} - -function emit_fill(data, size) -{ - var j; - for (j=0;j>2];sp+=4; - var p1 = heap32[sp>>2];sp+=4; - var line = heap32[sp>>2];sp+=4; - var name = get_string_from_ptr(p0); - var file = get_string_from_ptr(p1); - assert(false, name + file + ' ' + line); -} -__cxa_pure_virtual.__index__ = 0; -function __cxa_pure_virtual() -{ - assert(0); -} - -// operator delete[] -function _ZdaPv(sp) -{ - free(sp); -} - -// operator delete -function _ZdlPv(sp) -{ - free(sp); -} - -// operator new[](unsigned int) -function _Znaj(sp) -{ - malloc(sp); -} -// operator new[](unsigned int) -function _Znwj(sp) -{ - malloc(sp); -} - -function abort(sp) -{ - assert(0); -} - -var r_g0 = 0; -var r_g1 = 0; -var f_g0 = 0; - -//isFinite(aux) -//isNaN(aux) - -var tlsf_ptr = 0; - - -function initHeap() -{ - heap = new ArrayBuffer(mandreel_total_memory); - heap8 = new Int8Array(heap); - heapU8 = new Uint8Array(heap); - heap16 = new Int16Array(heap); - heapU16 = new Uint16Array(heap); - heap32 = new Int32Array(heap); - heapU32 = new Uint32Array(heap); - heapFloat = new Float32Array(heap); - heapDouble = new Float64Array(heap); - - - for (var i=0;imandreel_total_memory) - { - assert(false); - } - - return newOffset; -} - -function assert(condition, _text) { -//console.assert(condition, _text); - if (!condition) { - var text = "Assertion failed: " + _text; - alert(text + ':\n' + (new Error).stack); - ABORT = true; - throw "Assertion: " + text; - } - } - - function my_assert(sp) - { - var p0 = heap32[sp>>2];sp+=4; - var p1 = heap32[sp>>2];sp+=4; - //var name = get_string_from_ptr(p1); - - assert(false, 'hola'); - } - - function WriteHeapDouble(addr, value) - { - //assert((addr&7)==0); - heapDouble[addr>>3] = value; - } - - function WriteHeapU64(addr, value) - { - heap32[addr>>2] = value.l; - heap32[(addr>>2)+1] = value.h; - } - - -var arg_test_local = Malloc(8); -function my_arg_test(sp) -{ - var ptr = heapU32[sp>>2]; - var size = heapU32[(sp+4)>>2]; - - var arg = heapU32[ptr>>2]; - - - if (size == 4) - { - heap32[ptr>>2] = arg+4; - - arg = heap32[arg>>2]; - - heap32[arg_test_local>>2] = arg; - - //dump('my_arg_test ' + arg + ' ' + ptr + '\n'); - - } - else - { - arg = (arg+7) & ~7; - - heap32[ptr>>2] = arg+8; - - //assert((arg&7)==0); - var value0 = heap32[arg>>2]; - var value1 = heap32[(arg+4)>>2]; - //arg = llvm_readDouble(arg); - - //assert((arg_test_local&7)==0); - - heap32[arg_test_local>>2] = value0; - heap32[(arg_test_local+4)>>2] = value1; - - //llvm_writeDouble(arg_test_local,arg); - - //dump('my_arg_test ' + arg + ' ' + ptr + '\n'); - - - } - - - - - r_g0 = arg_test_local; -} - - - - - - -function uint(value) { - if (value >= 0) return value; - return 4294967296 + value; - } - - - -function puts(sp) -{ - var addr = heapU32[sp>>2]; - - var name = get_string_from_ptr(addr); - - name+='\n'; - - dump(name); - -} - -function _Z11print_valued(_stack_pos, value) -{ - dump(value); - dump('\n'); -} - -function _Z11print_labelPKc(_stack_pos, addr) -{ - puts(_stack_pos,addr); - dump('\n'); -} - - - - -function gettimeofday(sp) - { - var ptr = heap32[sp>>2]; - var time_ms = Date_now(); - heap32[ptr>>2] = time_ms/1000; - heap32[(ptr>>2)+1] = (time_ms%1000)*1000; - r_g0 = 0; - } - - - function free(sp) - { - var ptr = heapU32[sp>>2]; - sp-=8; - - heap32[(sp)>>2] = tlsf_ptr; - heap32[(sp+4)>>2] = ptr; - tlsf_free(sp); - } - - function malloc_size(sp) - { - var ptr = heapU32[sp>>2]; - - sp-=4; - - heap32[(sp)>>2] = ptr; - tlsf_block_size(sp); - } - - - function realloc(sp) - { - var ptr = heapU32[sp>>2]; - var size = heapU32[(sp+4)>>2]; - - //assert(ptr == 0); - - sp-=12; - - //dump('realloc ' + sp + ' ' + ptr + ' ' + size + '\n'); - - heap32[(sp)>>2] = tlsf_ptr; - heap32[(sp+4)>>2] = ptr; - heap32[(sp+8)>>2] = size; - tlsf_realloc(sp); - - //dump('return ' + r_g0 + '\n'); - } - - var llvm_double_addr = Malloc(8); - - function llvm_writeDouble(addr,src) - { - //assert((llvm_double_addr&7)==0); - heapDouble[llvm_double_addr>>3] = src; - - //assert((addr&7)==0); - - var val0 = heap32[(llvm_double_addr)>>2]; - var val1 = heap32[(llvm_double_addr+4)>>2]; - - heap32[(addr)>>2] = val0; - heap32[(addr+4)>>2] = val1; - } - - function llvm_readDouble(addr) - { - //assert((addr&7)==0); - - var val0 = heap32[(addr)>>2]; - var val1 = heap32[(addr+4)>>2]; - - heap32[(llvm_double_addr)>>2] = val0; - heap32[(llvm_double_addr+4)>>2] = val1; - - -// assert((llvm_double_addr&7)==0); - var result = heapDouble[llvm_double_addr>>3]; - - - return result; - - } - - function llvm_move_double(addr_dst, addr_src) - { - - var val0 = heapU32[(addr_src)>>2]; - var val1 = heapU32[(addr_src+4)>>2]; - - heapU32[(addr_dst)>>2] = val0; - heapU32[(addr_dst+4)>>2] = val1; - - } - - function llvm_move_float(addr_dst, addr_src) - { - heapU32[(addr_dst)] = heapU32[(addr_src)]; - } - - function malloc(sp) - { - var size = heapU32[sp>>2]; - - if (size == 0) - { - size = 4; - } - - - if (tlsf_ptr == 0) - { - var addr = Malloc(mandreel_heap_memory); - - sp-=8; - heap32[(sp)>>2] = addr; - heap32[(sp+4)>>2] = mandreel_heap_memory; - tlsf_create(sp); - tlsf_ptr = r_g0; - } - - sp-=8; - - heap32[(sp)>>2] = tlsf_ptr; - heap32[(sp+4)>>2] = size; - tlsf_malloc(sp); - - if (r_g0 == 0) - { - dump('malloc failed ' + size + '\n'); - assert(false); - } - } - - - function log10f(sp) - { - var value = heapFloat[sp>>2]; - f_g0 = Math.log(value)/Math.LN10; - } - - function log10(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.log(value)/Math.LN10; - } - -function logf(sp) - { - var value = heapFloat[sp>>2]; - f_g0 = Math.log(value); - } - - function log(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.log(value); - } - - - - function cosf(sp) - { - var value = heapFloat[sp>>2]; - f_g0 = Math.cos(value); - //assert (isNaN(f_g0) == false); - } - - function acosf(sp) - { - var value = heapFloat[sp>>2]; - f_g0 = Math.acos(value); - } - - function asinf(sp) - { - var value = heapFloat[sp>>2]; - f_g0 = Math.asin(value); - } - - function asin(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.asin(value); - } - - function acos(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.acos(value); - } - - function floor(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.floor(value); - } - - function floorf(sp) - { - var value = heapFloat[sp>>2]; - f_g0 = Math.floor(value); - } - - function round(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.round(value); - } - - function roundf(sp) - { - var value = heapFloat[sp>>2]; - f_g0 = Math.round(value); - } - - function ceilf(sp) - { - var value = heapFloat[sp>>2]; - f_g0 = Math.ceil(value); - } - - function ceil(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.ceil(value); - } - - - function exp2(sp) - { - var value = heapDouble[sp>>3]; - - f_g0 = Math.pow(2,value); - } - - function exp2f(sp) - { - var value = heapFloat[sp>>2]; - - f_g0 = Math.pow(2,value); - } - - - - function pow(sp) - { - var value = heapDouble[sp>>3]; - var value2 = heapDouble[(sp+8)>>3]; - f_g0 = Math.pow(value,value2); - } - - function powf(sp) - { - var value = heapFloat[sp>>2]; - var value2 = heapFloat[(sp+4)>>2]; - f_g0 = Math.pow(value,value2); - } - - function cos(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.cos(value); - //assert (isNaN(f_g0) == false); - } - - function tan(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.tan(value); - //assert (isNaN(f_g0) == false); - } - - function sinf(sp) - { - var value = heapFloat[sp>>2]; - f_g0 = Math.sin(value); - - //assert (isNaN(f_g0) == false); - } - - function expf(sp) - { - var value = heapFloat[sp>>2]; - f_g0 = Math.exp(value); - } - - function exp(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.exp(value); - } - - function tanf(sp) - { - var value = heapFloat[sp>>2]; - f_g0 = Math.tan(value); - } - - function atanf(sp) - { - var value = heapFloat[sp>>2]; - f_g0 = Math.atan(value); - } - - function atan(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.atan(value); - } - - function abs(sp) - { - var value = heap32[sp>>2]; - if (value<0) - r_g0 = -value; - else - r_g0 = value; - } - - function sin(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.sin(value); - } - - function sqrtf(sp) - { - var value = heapFloat[sp>>2]; - f_g0 = Math.sqrt(value); - } - - function sqrt(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.sqrt(value); - } - - function fmod(sp) - { - var value = heapDouble[sp>>3];sp+=8; - var value2 = heapDouble[sp>>3]; - f_g0 = value % value2; - } - - function fmodf(sp) - { - var value = heapFloat[sp>>2];sp+=4; - var value2 = heapFloat[sp>>2]; - f_g0 = value % value2; - } - - - function atan2f(sp) - { - var x = heapFloat[sp>>2];sp+=4; - var y = heapFloat[sp>>2]; - f_g0 = Math.atan2(x,y); - } - - function atan2(sp) - { - var x = heapDouble[sp>>3]; - var y = heapDouble[(sp+8)>>3]; - f_g0 = Math.atan2(x,y); - } - - function fabs(sp) - { - var value = heapDouble[sp>>3]; - f_g0 = Math.abs(value); - } - - - function _Z18OutputDebugStringAPKc(sp) - { - puts(sp); - - } - - - function getenv(sp) - { - r_g0 = 0; - } - - - function mandreel_fcmp_ord(X, Y) - { - return (X == X && Y == Y); - } - - function mandreel_fcmp_uno(X, Y) -{ - - return (X != X || Y != Y); -} - -var llvm_errno = Malloc(4); -function _errno(sp) -{ - r_g0 = llvm_errno; -} - - - - -if (!Mandreel_window["dump"]) - Mandreel_window["dump"] = function dump(str){console.log(str)} ; - - - - - function get_string_from_ptr(ptr) - { - var ret = ""; - - if (ptr == 0) - return ret; - - var i = 0; - while (1) { - // if ((ptr.pos + i) >= ptr.slab.length) { return "<< Invalid read: " + (ptr.pos+i) + " : " + ptr.slab.length + " >>"; } else {} - if (heapU8[ptr + i] == 0) - break; - - var t = String.fromCharCode(heapU8[ptr + i]); - ret += t; - i += 1; - } - - return ret; - } - - function fill_ptr_from_string(ptr, v) - { - var j; - var len = v.length; - var data; - - for(j = 0; j < len; j++) - { - data = v.charCodeAt(j); - - heapU8[ptr] = data; - ptr++; - } - heapU8[ptr] = 0; - } - - var file_ids = []; - var current_file_id = 20; - - function create_file_id(buffer) - { - this.buffer = buffer; - this.offset = 0; - this.byteArray = new Uint8Array(buffer); - } - - function mandreel_rewind(sp) - { - var file_id = heap32[sp>>2];sp+=4; - - file_ids[file_id].offset = 0; - - r_g0 = 0; - - //return 0; - } - - - function mandreel_fseek(sp) - { - var file_id = heap32[sp>>2];sp+=4; - var pos = heap32[sp>>2];sp+=4; - var type = heap32[sp>>2];sp+=4; - - if (type == 2) - { - file_ids[file_id].offset = file_ids[file_id].buffer.byteLength + pos; - } - else if (type == 1) - { - file_ids[file_id].offset = file_ids[file_id].offset + pos; - - } - else if (type == 0) - { - file_ids[file_id].offset = pos; - - } - - r_g0 = 0; - - //return 0; - } - - function mandreel_fclose(sp) - { - var file_id = heap32[sp>>2];sp+=4; - - file_ids[file_id] = null; - r_g0 = 0; - //return 0; - } - - - - function mandreel_feof(sp) - { - var file_id = heap32[sp>>2];sp+=4; - - var offset = file_ids[file_id].offset; - var total = file_ids[file_id].buffer.byteLength; - - if (offset>=total) - r_g0 = 1; - else - r_g0 = 0; - - } - - function mandreel_getc(sp) - { - var file_id = heap32[sp>>2];sp+=4; - - - var offset = file_ids[file_id].offset; - - - var buffer = file_ids[file_id].buffer; - - var byteArray = file_ids[file_id].byteArray; - - var total = 1; - - var result; - - if ((offset+total)>buffer.byteLength) - { - result = -1; - } - else - { - result = byteArray[offset]; - file_ids[file_id].offset+=total; - } - - r_g0 = result; - } - - - - function mandreel_fread(sp) - { - var ptr = heap32[sp>>2];sp+=4; - var size = heap32[sp>>2];sp+=4; - var count = heap32[sp>>2];sp+=4; - var file_id = heap32[sp>>2];sp+=4; - - var offset = file_ids[file_id].offset; - - //dump('fread ' + ptr + ' ' + size + ' ' + count + ' ' + file_id + ' ' + offset + '\n'); - - var buffer = file_ids[file_id].buffer; - - var total = size*count; - - if ((offset+total)>buffer.byteLength) - total = buffer.byteLength-offset; - - var byteArray = file_ids[file_id].byteArray; - - - var sub_array = byteArray.subarray(offset, offset+total); - - heapU8.set(sub_array,ptr); - - - //heapU8.set(byteArray, ptr); - //for (var i=0;i>2];sp+=4; - - var value = file_ids[file_id].offset; - //dump('offset ftell ' + value + '\n'); - r_g0 = value; - //return value; - } - - function _Z30mandreel_fopen_enable_checkfatb(sp) - { - } - - function mandreel_ungetc(sp) - { - var my_char = heap32[sp>>2];sp+=4; - var file_id = heap32[sp>>2];sp+=4; - - var offset = file_ids[file_id].offset-1; - - var byteArray = file_ids[file_id].byteArray; - - assert(byteArray[offset] == my_char); - - file_ids[file_id].offset = offset; - - return my_char; - } - function mandreel_fopen(sp) - { - var ptr_name = heap32[sp>>2];sp+=4; - var ptr_flags = heap32[sp>>2];sp+=4; - - - var name = get_string_from_ptr(ptr_name); - var flags = get_string_from_ptr(ptr_flags); - //dump('fopen\n'); - //dump(name); - //dump('\n'); - //dump(flags); - //dump('\n'); - - var buffer; - - var full_name; - - name = name.toLowerCase(); - - name = name.replace(/\\/g,"/"); - - full_name = g_mandreel_working_folder + name + g_mandreel_datafiles_sufix; - - - buffer =mandreel_cache_files[name]; - - if (buffer == null) - { - r_g0 = 0; - return; - } - - - - //dump('\nopening file ' + full_name + ' ' + buffer.byteLength + '\n'); - - - file_ids[current_file_id] = new create_file_id(buffer); - - var old_id = current_file_id; - current_file_id++; - - r_g0 = old_id; - //return old_id; - } - - function llvm_store_unalign32_float(addr, value) - { - heapFloat[0] = value; - var data = heap32[0]; - heap8[addr] = data&0xff; - heap8[addr+1] = (data>>>8)&0xff; - heap8[addr+2] = (data>>>16)&0xff; - heap8[addr+3] = (data>>>24)&0xff; - } - function llvm_store_unalign32(addr, value) - { - heap8[addr] = value&0xff; - heap8[addr+1] = (value>>>8)&0xff; - heap8[addr+2] = (value>>>16)&0xff; - heap8[addr+3] = (value>>>24)&0xff; - } - - function llvm_read_unalign32(addr) - { - var value; - value = heapU8[addr]; - value |= heapU8[addr+1]<<8; - value |= heapU8[addr+2]<<16; - value |= heapU8[addr+3]<<24; - return value; - } - - function llvm_read_unalign32_float(addr) - { - var value; - value = heapU8[addr]; - value |= heapU8[addr+1]<<8; - value |= heapU8[addr+2]<<16; - value |= heapU8[addr+3]<<24; - - heap32[0] = value; - return heapFloat[0]; - } - - function mandreel_getlocalstorage() - { - return Mandreel_window.localStorage; - //return Mandreel_window.sessionStorage; - } - - function mandreel_openls(sp) - { - var ptr_name = heap32[sp>>2];sp+=4; - - var key = get_string_from_ptr(ptr_name); - - var my_localStorage = mandreel_getlocalstorage(); - - var value = my_localStorage.getItem(key); - - if (value == null) - { - r_g0 = -1; - return; - } - - - var length = my_localStorage.getItem(key + '_size'); - - if (length == null) - { - r_g0 = -1; - return; - } - - - - - dump('mandreel_openls ' + key + ' return ' + length); - - - r_g0 = parseInt(length); - - - - return; - - } - - function mandreel_readls(sp) - { - var ptr_name = heap32[sp>>2];sp+=4; - var data_dst = heap32[sp>>2];sp+=4; - var data_len = heap32[sp>>2];sp+=4; - - var key = get_string_from_ptr(ptr_name); - - var my_localStorage = mandreel_getlocalstorage(); - - var value = my_localStorage.getItem(key); - - var data = JSON.parse(value); - - - for (var i=0;i>2];sp+=4; - var key_a = get_string_from_ptr(ptr_name_a); - - var my_localStorage = mandreel_getlocalstorage(); - - my_localStorage.removeItem(key_a); - my_localStorage.removeItem(key_a + '_size'); - r_g0 = 0; - - } - - -function mandreel_renamels(sp) - { - var ptr_name_a = heap32[sp>>2];sp+=4; - var ptr_name_b = heap32[sp>>2];sp+=4; - - var key_a = get_string_from_ptr(ptr_name_a); - var key_b = get_string_from_ptr(ptr_name_b); - - var my_localStorage = mandreel_getlocalstorage(); - - - var value = my_localStorage.getItem(key_a); - var value2 = my_localStorage.getItem(key_a + '_size'); - - if (value != null && value2 != null) - { - my_localStorage.setItem(key_b, value); - my_localStorage.setItem(key_b + '_size', value2); - - my_localStorage.removeItem(key_a); - my_localStorage.removeItem(key_a + '_size'); - - - r_g0 = 0; -} -else - r_g0 = -1; - } - -function mandreel_writels(sp) - { - var ptr_name = heap32[sp>>2];sp+=4; - var data_src = heap32[sp>>2];sp+=4; - var data_len = heap32[sp>>2];sp+=4; - - var key = get_string_from_ptr(ptr_name); - - - - var data = new Uint8Array(heap,data_src,data_len); - - var value = JSON.stringify(data); - - var my_localStorage = mandreel_getlocalstorage(); - - try - { - my_localStorage.setItem(key, value); - } catch(e) - { - dump('error saving ' + key); - dump(e.message); - r_g0 = 0; - return; - } - - try - { - my_localStorage.setItem(key + '_size', data_len); - } catch(e) - { - dump('error saving ' + key); - dump(e.message); - r_g0 = 0; - return; - } - - - r_g0 = data_len; - return; - -} - -function mandreel_call_constructors(_ptr, size,stackPos) -{ -var ptr = _ptr; - -ptr = ptr >> 2; - -for (var i=0;i>2](stackPos); - -ptr+=2; - -} -} - -function get_string_from_wptr(ptr) - { - var ret = ""; - - if (ptr == 0) - return ret; - - assert((ptr&1)==0); - ptr>>=1; - var i = 0; - while (1) { - // if ((ptr.pos + i) >= ptr.slab.length) { return "<< Invalid read: " + (ptr.pos+i) + " : " + ptr.slab.length + " >>"; } else {} - if (heapU16[ptr + i] == 0) - break; - - var t = String.fromCharCode(heapU16[ptr + i]); - // if (t == "\0") { break; } else {} - ret += t; - i += 1; - } - - return ret; - } - - function fill_wptr_from_string(ptr, v) - { - var j; - var len = v.length; - var data; - - assert((ptr&1)==0); - ptr>>=1; - - for(j = 0; j < len; j++) - { - data = v.charCodeAt(j); - - heapU16[ptr] = data; - ptr++; - } - heapU16[ptr] = 0; - } - -function mandreelInterGetParams(sp) -{ - var params = []; - - var offset = 0; - for (i=1;i>2]; - break; - case 'float': - params[i-1] = heapFloat[(sp+offset)>>2]; - break; - case 'string': - params[i-1] = get_string_from_ptr(heap32[(sp+offset)>>2]); - break; - default: - assert(false); - } - offset+=4; - } - - return params; -} - -function mandreelInterRetParam(type, value) -{ - switch(type) - { - case 'int': - r_g0 = value; - break; - case 'float': - f_g0 = value; - break; - default: - assert(false); - } - - return 0; -} - -function MandreelInterGetFunctionPtr(value) -{ - return __FUNCTION_TABLE__[value >> 2]; -} - - -function MandreelInterCallFunction(returnType,func_name) -{ - var size_params = 0; - - var i; - var num_params = (arguments.length-2)/2; - num_params|=0; - for (i=2;i>2] = arguments[i+1]; - break; - case 'float': - heapFloat[(sp+offset)>>2] = arguments[i+1]; - break; - case 'string': - { - heap32[(sp+offset)>>2] = ptr_data; - var string = arguments[i+1]; - fill_ptr_from_string(ptr_data,string); - - ptr_data += ((string.length + 4) & 0xfffffffc); - } - break; - case 'wstring': - { - MandreelInterWriteInt((sp+offset),ptr_data); - var string = arguments[i+1]; - MandreelInterWriteWString(ptr_data,string); - - ptr_data += ((string.length*2 + 4) & 0xfffffffc); - } - break; - default: - assert(false); - } - offset+=4; - } - - Mandreel_window[func_name](sp); - - if (returnType == 'int') - return r_g0; - else if (returnType == 'float') - return f_g0; - else - { - assert(returnType == 'void'); - return; - } -} - - -function MandreelInterCallFunctionPtr(returnType,func_ptr) -{ - var size_params = 0; - - var i; - var num_params = (arguments.length-2)/2; - num_params|=0; - for (i=2;i>2] = arguments[i+1]; - break; - case 'float': - heapFloat[(sp+offset)>>2] = arguments[i+1]; - break; - case 'string': - { - heap32[(sp+offset)>>2] = ptr_data; - var string = arguments[i+1]; - fill_ptr_from_string(ptr_data,string); - - ptr_data += ((string.length + 4) & 0xfffffffc); - } - break; - case 'wstring': - { - MandreelInterWriteInt((sp+offset),ptr_data); - var string = arguments[i+1]; - MandreelInterWriteWString(ptr_data,string); - - ptr_data += ((string.length*2 + 4) & 0xfffffffc); - } - break; - default: - assert(false); - } - offset+=4; - } - - __FUNCTION_TABLE__[(func_ptr)>>2](sp); - - if (returnType == 'int') - return r_g0; - else if (returnType == 'float') - return f_g0; - else - { - assert(returnType == 'void'); - return; - } -} - - -var MANDREEL_HTTP_REQUEST_MODE_GET = 0; -var MANDREEL_HTTP_REQUEST_MODE_POST = 1; -var MANDREEL_HTTP_REQUEST_MODE_PUT = 2; - -var MANDREEL_HTTP_REQUEST_STATUS_ERROR = 0; -var MANDREEL_HTTP_REQUEST_STATUS_BUSY = 1; -var MANDREEL_HTTP_REQUEST_STATUS_FINISHED = 2; -var MANDREEL_HTTP_REQUEST_STATUS_INIT = 3; - - -var mandreel_js_mapping_ids = []; -var mandreel_js_mapping_ids_free = []; - - -function Mandreel_HttpRequest_Create(sp) -{ - var ptr_url = heap32[sp>>2];sp+=4; - var type = heap32[sp>>2];sp+=4; - - - var url = get_string_from_ptr(ptr_url); - - - var str_type = 'GET'; - if (type == MANDREEL_HTTP_REQUEST_MODE_GET) - str_type = 'GET'; - else if (type == MANDREEL_HTTP_REQUEST_MODE_PUT) - str_type = 'PUT'; - else if (type == MANDREEL_HTTP_REQUEST_MODE_POST) - str_type = 'POST'; - - var xmlhttp_get = new XMLHttpRequest(); - xmlhttp_get.open(str_type,url); - - if("responseType" in xmlhttp_get) - xmlhttp_get.responseType="arraybuffer"; - else - { - xmlhttp_get.overrideMimeType('text/plain; charset=x-user-defined'); - } - - if (mandreel_js_mapping_ids_free.length == 0) - mandreel_js_mapping_ids_free.push(mandreel_js_mapping_ids.length); - - var new_id = mandreel_js_mapping_ids_free.pop(); - - var my_state = { - buffer : null, - httpRequest : xmlhttp_get, - status : MANDREEL_HTTP_REQUEST_STATUS_INIT, - offset_read : 0 - }; - - - - mandreel_js_mapping_ids[new_id] = my_state; - - r_g0 = new_id+1; -} - -function Mandreel_HttpRequest_Send(sp) -{ - var _id = heap32[sp>>2];sp+=4; - var ptr_data = heap32[sp>>2];sp+=4; - var id = _id-1; - - var data; - - if (ptr_data) - data = get_string_from_ptr(ptr_data); - else - data = null; - - var my_state = mandreel_js_mapping_ids[id]; - - - my_state.status = MANDREEL_HTTP_REQUEST_STATUS_BUSY; - - my_state.httpRequest.onreadystatechange = function() - { - if (my_state.httpRequest.readyState==4) - { - if (my_state.httpRequest.status==200) - { - var buffer; - - if (my_state.httpRequest.responseType=="arraybuffer") - buffer=my_state.httpRequest.response; - else if (my_state.httpRequest.mozResponseArrayBuffer != null) - buffer = my_state.httpRequest.mozResponseArrayBuffer; - else - buffer=my_state.httpRequest.response; - - my_state.status = MANDREEL_HTTP_REQUEST_STATUS_FINISHED; - my_state.buffer = new Uint8Array(buffer); - //alert(my_state.buffer.length); - - //alert(mandreel_js_mapping_ids[id].buffer); - - } - else - my_state.status = MANDREEL_HTTP_REQUEST_STATUS_ERROR; - } - } - - my_state.httpRequest.send(data); -} - - -function Mandreel_HttpRequest_Status(sp) -{ - var _id = heap32[sp>>2];sp+=4; - var id = _id-1; - - - r_g0 = mandreel_js_mapping_ids[id].status; -} - -function Mandreel_HttpRequest_Read(sp) -{ - var _id = heap32[sp>>2];sp+=4; - var ptr = heap32[sp>>2];sp+=4; - var size = heap32[sp>>2];sp+=4; - var id = _id-1; - - var remaining_bytes = mandreel_js_mapping_ids[id].buffer.length - mandreel_js_mapping_ids[id].offset_read; - - if (size>remaining_bytes) - size = remaining_bytes; - - var sub_array = mandreel_js_mapping_ids[id].buffer.subarray(mandreel_js_mapping_ids[id].offset_read, mandreel_js_mapping_ids[id].offset_read+size); - heapU8.set(sub_array,ptr); - - mandreel_js_mapping_ids[id].offset_read+=size; - - r_g0 = size; -} - -function Mandreel_HttpRequest_BytesAvalable(sp) -{ - var _id = heap32[sp>>2];sp+=4; - var id = _id-1; - - - if (mandreel_js_mapping_ids[id].buffer) - r_g0 = mandreel_js_mapping_ids[id].buffer.length - mandreel_js_mapping_ids[id].offset_read; - else - r_g0 = 0; -} - -function Mandreel_HttpRequest_Close(sp) -{ - var _id = heap32[sp>>2];sp+=4; - var id = _id-1; - - mandreel_js_mapping_ids[id] = null; - mandreel_js_mapping_ids_free.push(id); -} - -function Mandreel_HttpRequest_SetRequestHeader(sp) -{ - var _id = heap32[sp>>2];sp+=4; - var ptr_a = heap32[sp>>2];sp+=4; - var ptr_b = heap32[sp>>2];sp+=4; - var id = _id-1; - - var str_a = get_string_from_ptr(ptr_a); - var str_b = get_string_from_ptr(ptr_b); - - var my_state = mandreel_js_mapping_ids[id]; - - my_state.httpRequest.setRequestHeader(str_a, str_b); -} - - -var Mandreel_TextureAsync_textures = 0; -var Mandreel_TextureAsync_textures_loaded = 0; - -var Mandreel_TextureAsync_PackBufferData = new Array(); - -function Mandreel_TextureAsync_SetData(sp) -{ - var texture_id = heap32[sp>>2];sp+=4; - - var tex = array_ids_ogl[texture_id]; - - if ( mandreelAppPlatform != "canvas" ) - { - imandreel_gl.texImage2D(imandreel_gl.TEXTURE_2D, 0, imandreel_gl.RGBA, imandreel_gl.RGBA, imandreel_gl.UNSIGNED_BYTE, tex.image); - tex.image = null; - } -} - -function Mandreel_TextureAsync_CheckPending(sp) -{ - r_g0 = Mandreel_TextureAsync_textures - Mandreel_TextureAsync_textures_loaded; -} - -function Mandreel_TextureAsync_GetProperties(sp) -{ - var texture_id = heap32[sp>>2];sp+=4; - var ptr_width = heap32[sp>>2];sp+=4; - var ptr_height = heap32[sp>>2];sp+=4; - - var tex = array_ids_ogl[texture_id]; - - if (tex == null || tex.mandreel_width == undefined) - r_g0 = 0; - else - { - heap32[ptr_width>>2] = tex.mandreel_width; - heap32[ptr_height>>2] = tex.mandreel_height; - r_g0 = 1; - } -} - -function mandreel_arrayBufferDataUri(offset, size, buffer) { -var bytes = new Uint8Array(buffer,offset,size) - var ascii = ''; - for (var i=0; i>2];sp+=4; - var texture_id = heap32[sp>>2];sp+=4; - - var name = get_string_from_ptr(ptr_name); - - var nameSrc = name; - - name = name.toLowerCase(); - - - var full_name = g_mandreel_working_folder + name; - - var image = new Image(); - - - Mandreel_TextureAsync_textures++; - - var imgURL = null; - - - - - image.onerror = function() { - dump('error loading texture ' + image.src + '\n'); - Mandreel_TextureAsync_textures_loaded++; - } - image.onload = function() - { - if (imgURL) - { - var URL = Mandreel_window.URL || Mandreel_window.webkitURL; - URL.revokeObjectURL(imgURL); - } - if ( mandreelAppPlatform == "canvas" ) - { - array_ids_ogl[texture_id] = image; - Mandreel_TextureAsync_textures_loaded++; - } - else - { - var tex = array_ids_ogl[texture_id]; - if (tex) - { - tex.image = image; - tex.mandreel_width = image.width; - tex.mandreel_height = image.height; - Mandreel_TextureAsync_textures_loaded++; - - var sp = MandreelLockFrame(); - MandreelInterCallFunction('void',"Mandreel_TextureAsync_Loaded",'int',texture_id,'int',image.width,'int',image.height, sp); - MandreelUnlockFrame(); - } - else - { - dump('texture not valid ' + texture_id + ' ' + name + '\n'); - Mandreel_TextureAsync_textures_loaded++; - } - } - - - } - - var new_sp = sp-4096; - - var packfile = new_sp + 2048; - var offset_ptr = new_sp + 2048+1024; - var size_ptr = new_sp + 2048+1024+4; - - fill_ptr_from_string(new_sp + 1024,name); - - heap32[(new_sp)>>2] = new_sp + 1024; - heap32[(new_sp+4)>>2] = offset_ptr; - heap32[(new_sp+8)>>2] = size_ptr; - heap32[(new_sp+12)>>2] = packfile; - iMandreel_TextureAsync_GetPackOffset(new_sp); - - - var image_src; - - var image_src_valid = true; - - if (r_g0) - { - var packfilename = get_string_from_ptr(packfile); - image_src = mandreel_arrayBufferDataUri(heap32[offset_ptr>>2],heap32[size_ptr>>2],Mandreel_TextureAsync_PackBufferData[packfilename]); - } - else - { - - if (nameSrc.search('http:') != -1 || nameSrc.search('https:') != -1) - { - image.crossOrigin = 'anonymous'; // no credentials flag. Same as - image_src = nameSrc; - } - else - { - if (mandreel_is_filesystem()) - { - image_src_valid = false; - - var new_name = mandreel_texture_async_fix_name(full_name); - mandreel_fs_get_url(new_name, function Mandreel_TextureAsync_Load_FS(data) { - if (data) - { - image.src = data; - } - else - { - var packdata_request = new XMLHttpRequest(); - - packdata_request.open("GET", full_name, true); - - if("responseType" in packdata_request) - packdata_request.responseType="arraybuffer"; - else - packdata_request.overrideMimeType('text/plain; charset=x-user-defined'); - - packdata_request.onreadystatechange = function() - { - if (packdata_request.readyState != 4) return; - - if (packdata_request.status == 200) - { - var buffer; - if (packdata_request.responseType=="arraybuffer") - buffer=packdata_request.response; - else if (packdata_request.mozResponseArrayBuffer != null) - buffer = packdata_request.mozResponseArrayBuffer; - else - buffer=packdata_request.response; - - mandreel_fs_saveFile(new_name, buffer); - - var uri = mandreel_arrayBufferDataUri(0,buffer.byteLength,buffer); - - image.src = uri; - - } - else - { - - Mandreel_TextureAsync_textures_loaded++; - - } - } - - packdata_request.send(); - - } - } - ); - } - else if (mandreel_is_indexeddb()) - { - image_src_valid = false; - - var new_name = mandreel_texture_async_fix_name(full_name); - mandreel_indexedDB.load(new_name,function Mandreel_TextureAsync_Load_IDB(data) { - if (data) - { - var URL = Mandreel_window.URL || Mandreel_window.webkitURL; - - - // Create and revoke ObjectURL - imgURL = URL.createObjectURL(data); - - image.src = imgURL; - } - else - { - var packdata_request = new XMLHttpRequest(); - - packdata_request.open("GET", full_name, true); - - packdata_request.responseType = "blob"; - - - - packdata_request.onreadystatechange = function() - { - if (packdata_request.readyState != 4) return; - - if (packdata_request.status == 200) - { - var buffer=packdata_request.response; - - var URL = Mandreel_window.URL || Mandreel_window.webkitURL; - - // Create and revoke ObjectURL - imgURL = URL.createObjectURL(buffer); - - image.src = imgURL; - - mandreel_fs_saveFile(new_name, buffer); - - } - else - { - - Mandreel_TextureAsync_textures_loaded++; - - } - } - - packdata_request.send(); - } - - } - ); - } - else - image_src = full_name; - } - } - - - if (image_src_valid) - { - setTimeout( function Mandreel_TextureAsync_Load_callback() { - image.src = image_src; - }, 1); - } -} - - - -function __sandbox_OutputDebugString(sp) -{ - puts(sp); -} - - - - -var MANDREELCALLJS_TYPE_RETURN_VOID = 0; -var MANDREELCALLJS_TYPE_INT = 1; -var MANDREELCALLJS_TYPE_FLOAT = 2; -var MANDREELCALLJS_TYPE_STRING = 3; -var MANDREELCALLJS_TYPE_RETURN_INT = 4; -var MANDREELCALLJS_TYPE_RETURN_FLOAT = 5; - -function MandreelInterWriteString(ptr, value) -{ - fill_ptr_from_string(ptr,value); -} - -function MandreelInterWriteWString(ptr, value) -{ - fill_wptr_from_string(ptr, value); -} - -function MandreelInterWriteFloat(ptr, value) -{ - heapFloat[ptr>>2] = value; -} - -function MandreelPause() -{ - _imandreel_pause_game = true; -} - -function MandreelResume() -{ - _imandreel_pause_game = false; -} - - -function MandreelLockFrame() -{ - assert(g_mandreel_frame_inframe == false, "calling lockframe during render frame"); - assert(g_mandreel_frame_locked == false, "calling lockframe twice"); - g_mandreel_frame_locked = true; - - return g_stack_pointer+800*1024; -} - -function MandreelUnlockFrame() -{ - assert(g_mandreel_frame_inframe == false); - g_mandreel_frame_locked = false; -} - - -function MandreelInterWriteInt(ptr, value) -{ - heap32[ptr>>2] = value; -} - -function MandreelInterStringFromWPtr(ptr) -{ - return get_string_from_wptr(ptr); -} - -function MandreelInterStringFromPtr(ptr) -{ - return get_string_from_ptr(ptr); -} - -function mandreel_my_call_external_array(method, params) -{ - var result - var resultString; - try - { - switch(params.length) - { - case 1: - resultString = Mandreel_window[method](params[0]); - break; - case 2: - resultString = Mandreel_window[method](params[0],params[1]); - break; - case 3: - resultString = Mandreel_window[method](params[0],params[1],params[2]); - break; - case 4: - resultString = Mandreel_window[method](params[0],params[1],params[2],params[3]); - break; - case 5: - resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4]); - break; - case 6: - resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5]); - break; - case 7: - resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6]); - break; - case 8: - resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7]); - break; - case 9: - resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8]); - break; - case 10: - resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9]); - break; - case 11: - resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10]); - break; - case 12: - resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11]); - break; - case 13: - resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12]); - break; - case 14: - resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13]); - break; - case 15: - resultString = Mandreel_window[method](params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14]); - break; - default: - assert(false); - } - result = 0; - } catch(e) { dump('error calling ' + method + '\n'); dump(e); result = 1;} - - return [result,resultString]; -} - - -function Mandreel_InterJS_Call(sp) -{ - var new_sp = sp; - var method_ptr = heap32[sp>>2];sp+=4; - var method = get_string_from_ptr(method_ptr); - - var params = new Array(); - - - params.push(new_sp); - - var var_int; - var var_string; - var var_double; - - var return_type; - var return_ptr; - while (true) - { - var my_type = heap32[sp>>2];sp+=4; - - - if (my_type == MANDREELCALLJS_TYPE_RETURN_VOID) - { - return_type = my_type; - break; - } - else if (my_type == MANDREELCALLJS_TYPE_INT) - { - var_int = heap32[sp>>2]; - - params.push(var_int); - sp+=4; - } - else if (my_type == MANDREELCALLJS_TYPE_FLOAT) - { - sp = (sp+7) & ~7; - - var_double = llvm_readDouble(sp); - - params.push(var_double); - sp+=8; - } - else if (my_type == MANDREELCALLJS_TYPE_STRING) - { - var_int = heap32[sp>>2]; - var_string = get_string_from_ptr(var_int); - - params.push(var_string); - sp+=4; - } - else if (my_type == MANDREELCALLJS_TYPE_RETURN_INT) - { - return_type = my_type; - return_ptr = heap32[sp>>2]; - break; - } - else if (my_type == MANDREELCALLJS_TYPE_RETURN_FLOAT) - { - return_type = my_type; - return_ptr = heap32[sp>>2]; - break; - } - else - { - assert(false, "invalid arguments calling Mandreel_InterJS_Call"); - } - } - - var result = mandreel_my_call_external_array(method,params); - - r_g0 = result[0]; - - - if (r_g0 == 0) - { - if (return_type == MANDREELCALLJS_TYPE_RETURN_INT) - { - heap32[return_ptr>>2] = result[1]; - } - else if (return_type == MANDREELCALLJS_TYPE_RETURN_FLOAT) - { - heapFloat[return_ptr>>2] = result[1]; - } - - } -} - -function iMandreelRegisterExternalCallback() -{ -} - -function __mandreel_internal_CreateWindow() -{ -} - -var __mandreel_async_calls_mandreel = []; -var __mandreel_async_calls_js = []; - - -function Mandreel_InterJS_AsyncCall(sp) -{ - var method_ptr = heap32[sp>>2];sp+=4; - var _func_name = get_string_from_ptr(method_ptr); - var param_ptr = heap32[sp>>2];sp+=4; - var _param = get_string_from_ptr(param_ptr); - - __mandreel_async_calls_js.push({func_name:_func_name,param:_param}); -} - - - - -function MandreelInterCallFunctionAsync(_func_name, _param) -{ - __mandreel_async_calls_mandreel.push({func_name:_func_name,param:_param}); - - -} - -function __mandreel_process_async_calls() -{ - if (__mandreel_async_calls_mandreel.length) - { - var temp_list = __mandreel_async_calls_mandreel.slice(0); - - __mandreel_async_calls_mandreel = []; - - for (var i=0;i>2] = str_ptr; - - Mandreel_window[func_name](sp); - } - } - - if (__mandreel_async_calls_js.length) - { - var temp_list = __mandreel_async_calls_js.slice(0); - - __mandreel_async_calls_js = []; - - for (var i=0;i>2];sp+=4; - mandreelAppFullscreen(enable); -} - -var array_ids_ogl = []; - -var max_ogl_id = 8192; - -var array_ids_ogl_enable = []; -var g_current_program_id = 0; - - -var uniformArrays2 = []; -var uniformArrays3 = []; -var uniformArrays4 = []; -var uniformArraysCreated = 0; -var mandreel_draw_enable = true; - - -if (typeof imandreel_gl=="undefined") -{ - alert('using old template, update code'); -} - -function myglCreateUniformArrays() -{ - if ( uniformArraysCreated == 0 ) - { - for(var i=0; i<256;i++ ) - { - uniformArrays2[i] = new Float32Array(i*2); - uniformArrays3[i] = new Float32Array(i*3); - uniformArrays4[i] = new Float32Array(i*4); - } - uniformArraysCreated = 1; - } -} - -var my_super_id = 1; -function myglNewSlot() -{ - //var id = array_ids_ogl_enable.pop(); - var id = my_super_id; - my_super_id++; - return id; -} - -function myglFreeSlot(id) -{ - //array_ids_ogl_enable.push(id); -} - - -function myglCreateProgram(sp) -{ - var id = myglNewSlot(); - var program = imandreel_gl.createProgram(); - - program.uniform_locations_current_id = 0; - program.array_uniform_locations = []; - - array_ids_ogl[id] = program; - - - r_g0 = id; -} - -function myglCreateShader(sp) -{ - var type = heap32[sp>>2];sp+=4; - var id = myglNewSlot(); - - array_ids_ogl[id] = imandreel_gl.createShader(type); - - r_g0 = id; -} - -function myglAttachShader(sp) -{ - var program_id = heap32[sp>>2];sp+=4; - var shader_id = heap32[sp>>2];sp+=4; - - imandreel_gl.attachShader(array_ids_ogl[program_id], array_ids_ogl[shader_id]); -} - -function myglBindAttribLocation(sp) -{ - var program_id = heap32[sp>>2];sp+=4; - var index = heap32[sp>>2];sp+=4; - var ptr_string = heap32[sp>>2];sp+=4; - - var string = get_string_from_ptr(ptr_string); - - imandreel_gl.bindAttribLocation(array_ids_ogl[program_id], index, string); -} - -function myglLinkProgram(sp) -{ - var program_id = heap32[sp>>2];sp+=4; - - imandreel_gl.linkProgram(array_ids_ogl[program_id]); -} - -function myglShaderSource(sp) -{ - var id = heap32[sp>>2];sp+=4; - var ptr_string = heap32[sp>>2];sp+=4; - - var shader = array_ids_ogl[id]; - - var shader_code = get_string_from_ptr(ptr_string); - - //dump(shader_code); - - - imandreel_gl.shaderSource(shader, shader_code); -} - - -function myglDrawArrays(sp) -{ - var mode = heap32[sp>>2];sp+=4; - var first = heap32[sp>>2];sp+=4; - var count = heap32[sp>>2];sp+=4; - - if (mandreel_draw_enable) - imandreel_gl.drawArrays(mode, first, count); - - - //dump('draw arrays ' + mode + ' ' + first + ' ' + count + '\n'); - } - -function myglDrawElements(sp) -{ - var mode = heapU32[sp>>2]; sp+=4; - var count = heapU32[sp>>2]; sp+=4; - var type = heapU32[sp>>2]; sp+=4; - var offset = heapU32[sp>>2]; sp+=4; - - - if (mandreel_draw_enable) - imandreel_gl.drawElements(mode, count, type, offset); - - - -} - -function myglCreateTexture(sp) -{ - var id = myglNewSlot(); - array_ids_ogl[id] = imandreel_gl.createTexture(); - - r_g0 = id; -} - -function myglCreateRenderBuffer(sp) { - var id = myglNewSlot(); - array_ids_ogl[id] = imandreel_gl.createRenderbuffer(); - - r_g0 = id; -} - -function myglCreateFrameBuffer(sp) { - var id = myglNewSlot(); - array_ids_ogl[id] = imandreel_gl.createFramebuffer(); - - r_g0 = id; -} - -function myglBindFramebuffer(sp) -{ - var target = heap32[sp >> 2]; sp += 4; - var framebuffer_id = heap32[sp >> 2]; sp += 4; - - if (framebuffer_id != 0) - { - var framebuffer = array_ids_ogl[framebuffer_id]; - imandreel_gl.bindFramebuffer(target,framebuffer); - } - else - imandreel_gl.bindFramebuffer(target,null); - -} - -function myglBindRenderbuffer(sp) -{ - var target = heap32[sp >> 2]; sp += 4; - var renderbuffer_id = heap32[sp >> 2]; sp += 4; - - var renderbuffer = array_ids_ogl[renderbuffer_id]; - - imandreel_gl.bindRenderbuffer(target,renderbuffer); - -} - - -function myglRenderbufferStorage(sp) { - var target = heap32[sp >> 2]; sp += 4; - var internalformat = heap32[sp >> 2]; sp += 4; - var witdth = heap32[sp >> 2]; sp += 4; - var height = heap32[sp >> 2]; sp += 4; - - imandreel_gl.renderbufferStorage(target, internalformat, witdth, height); - -} - -function myglFramebufferRenderbuffer (sp) -{ - var target = heap32[sp>>2];sp+=4; - var attachment = heap32[sp>>2];sp+=4; - var renderbuffertarget = heap32[sp>>2];sp+=4; - var renderbuffer_id = heap32[sp>>2];sp+=4; - - var renderbuffer = array_ids_ogl[renderbuffer_id]; - - imandreel_gl.framebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer); - -} - -function myglFramebufferTexture2D (sp) -{ - var target = heap32[sp>>2];sp+=4; - var attachment = heap32[sp>>2];sp+=4; - var textarget = heap32[sp>>2];sp+=4; - var texture_id = heap32[sp>>2];sp+=4; - var level = heap32[sp>>2];sp+=4; - - var texture = array_ids_ogl[texture_id]; - - imandreel_gl.framebufferTexture2D(target, attachment, textarget, texture, level); - - -} - -function myglTexImage2D(sp) - { - var target = heap32[sp>>2];sp+=4; - var level = heap32[sp>>2];sp+=4; - var internalFormat = heap32[sp>>2];sp+=4; - var width = heap32[sp>>2];sp+=4; - var height = heap32[sp>>2];sp+=4; - var border = heap32[sp>>2];sp+=4; - var format = heap32[sp>>2];sp+=4; - var type = heap32[sp>>2];sp+=4; - var data = heap32[sp>>2];sp+=4; - - if (level>0 && target==imandreel_gl.TEXTURE_2D) - return; - - if (data == 0) - { - //imandreel_gl.texImage2D(target, level, internalFormat, width, height, border, format, type, null); - var buffer; - var bufferView; - - if (type == imandreel_gl.UNSIGNED_SHORT_5_6_5 || type == imandreel_gl.UNSIGNED_SHORT_4_4_4_4 || type == imandreel_gl.UNSIGNED_SHORT_5_5_5_1) - { - buffer = new ArrayBuffer(width*height*2); - bufferView = new Uint16Array(buffer); - } - else - { - var size; - if (format == imandreel_gl.LUMINANCE) - size = width*height; - else if (format == imandreel_gl.RGB) - size = width*height*3; - else if (format == imandreel_gl.RGBA) - size = width*height*4; - else if (format == imandreel_gl.ALPHA) - size = width*height; - else if (format == imandreel_gl.LUMINANCE_ALPHA) - size = width*height*2; - - buffer = new ArrayBuffer(size); - bufferView = new Uint8Array(buffer); - } - - imandreel_gl.texImage2D(target, level, internalFormat, width, height, border, format, type, bufferView); - return; - } - - - var bufferView; - if (type == imandreel_gl.UNSIGNED_SHORT_5_6_5 || type == imandreel_gl.UNSIGNED_SHORT_4_4_4_4 || type == imandreel_gl.UNSIGNED_SHORT_5_5_5_1) - { - bufferView = new Uint16Array(heap,data,width*height); - } - else if (type == imandreel_gl.UNSIGNED_BYTE) - { - if (format == imandreel_gl.LUMINANCE) - bufferView = new Uint8Array(heap,data,width*height); - else if (format == imandreel_gl.RGB) - bufferView = new Uint8Array(heap,data,width*height*3); - else if (format == imandreel_gl.RGBA) - bufferView = new Uint8Array(heap,data,width*height*4); - else if (format == imandreel_gl.ALPHA) - bufferView = new Uint8Array(heap,data,width*height); - else if (format == imandreel_gl.LUMINANCE_ALPHA) - bufferView = new Uint8Array(heap,data,width*height*2); - else - { - dump('format unknown ' + format + '\n'); - assert(false); - } - } - else - { - dump('type unknown ' + type + '\n'); - assert(false); - } - - imandreel_gl.texImage2D(target, level, internalFormat, width, height, border, format, type, bufferView); - if ((width&(width-1))==0 && (height&(height-1))==0) - { - if (target==imandreel_gl.TEXTURE_2D) - imandreel_gl.generateMipmap(target); -} - } - function myglStencilFunc(sp) - { - var func = heap32[sp>>2];sp+=4; - var ref = heap32[sp>>2];sp+=4; - var mask = heap32[sp>>2];sp+=4; - - imandreel_gl.stencilFunc(func, ref, mask); - } - - function myglStencilFuncSeparate(sp) - { - var face = heap32[sp>>2];sp+=4; - var func = heap32[sp>>2];sp+=4; - var ref = heap32[sp>>2];sp+=4; - var mask = heap32[sp>>2];sp+=4; - - imandreel_gl.stencilFuncSeparate(face,func,ref,mask); - } - - function myglStencilMaskSeparate(sp) - { - var face = heap32[sp>>2];sp+=4; - var mask = heap32[sp>>2];sp+=4; - - imandreel_gl.stencilMaskSeparate(face,mask); - } - - function myglStencilMask(sp) - { - var mask = heap32[sp>>2];sp+=4; - - imandreel_gl.stencilMask(mask); - } - function myglStencilOp (sp) - { - var fail = heap32[sp>>2];sp+=4; - var zfail = heap32[sp>>2];sp+=4; - var zpass = heap32[sp>>2];sp+=4; - - imandreel_gl.stencilOp(fail, zfail, zpass); - } - - function myglStencilOpSeparate (sp) - { - var face = heap32[sp>>2];sp+=4; - var fail = heap32[sp>>2];sp+=4; - var zfail = heap32[sp>>2];sp+=4; - var zpass = heap32[sp>>2];sp+=4; - - imandreel_gl.stencilOpSeparate(face, fail, zfail, zpass); - } - - function myglTexSubImage2D(sp) - { - var target = heap32[sp>>2];sp+=4; - var level = heap32[sp>>2];sp+=4; - var xoffset = heap32[sp>>2];sp+=4; - var yoffset = heap32[sp>>2];sp+=4; - var width = heap32[sp>>2];sp+=4; - var height = heap32[sp>>2];sp+=4; - var format = heap32[sp>>2];sp+=4; - var type = heap32[sp>>2];sp+=4; - var data = heap32[sp>>2];sp+=4; - - - - var bufferView; - if (type == imandreel_gl.UNSIGNED_SHORT_5_6_5 || type == imandreel_gl.UNSIGNED_SHORT_4_4_4_4 || type == imandreel_gl.UNSIGNED_SHORT_5_5_5_1) - { - bufferView = new Uint16Array(heap,data,width*height); - } - else if (type == imandreel_gl.UNSIGNED_BYTE) - { - if (format == imandreel_gl.LUMINANCE) - bufferView = new Uint8Array(heap,data,width*height); - else if (format == imandreel_gl.RGB) - bufferView = new Uint8Array(heap,data,width*height*3); - else if (format == imandreel_gl.RGBA) - bufferView = new Uint8Array(heap,data,width*height*4); - else if (format == imandreel_gl.ALPHA) - bufferView = new Uint8Array(heap,data,width*height); - } - - imandreel_gl.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, bufferView); - } - - - function myglCreateBuffer(sp) -{ - var id = myglNewSlot(); - array_ids_ogl[id] = imandreel_gl.createBuffer(); - - r_g0 = id; -} - -var glBufferDataArray = []; - -function myglBufferData(sp) -{ - var target = heapU32[sp>>2]; sp+=4; - var size = heapU32[sp>>2]; sp+=4; - var data = heapU32[sp>>2]; sp+=4; - var usage = heapU32[sp>>2]; sp+=4; - - if (data == 0) - imandreel_gl.bufferData(target, size, usage); - else - { - if (usage == imandreel_gl.STATIC_DRAW || true) - { - var buffer_data = new Int8Array(heap, data, size); - imandreel_gl.bufferData(target, buffer_data, usage); - } - else - { - var new_size = size/4; - var buffer_data = glBufferDataArray[new_size]; - - if (buffer_data == null) - { - buffer_data = new Int32Array(new_size); - glBufferDataArray[new_size] = buffer_data; - } - - var new_data = data>>2; - - for ( var i = 0 ; i < new_size ; ++i ) - { - buffer_data[i] = heap32[new_data+i]; - } - - imandreel_gl.bufferData(target, buffer_data, usage); - } - } -} - -function myglBufferSubData(sp) -{ - var target = heapU32[sp>>2]; sp+=4; - var offset = heapU32[sp>>2]; sp+=4; - var size = heapU32[sp>>2]; sp+=4; - var data = heapU32[sp>>2]; sp+=4; - - - var buffer_data = new Int8Array(heap, data, size); - imandreel_gl.bufferSubData(target, offset, buffer_data); - -// dump('buffer sub data ' + offset + ' ' + size + ' ' + data + '\n') - -} - - -function myglBindBuffer(sp) -{ - var target = heapU32[sp>>2]; sp+=4; - var id = heapU32[sp>>2]; sp+=4; - - imandreel_gl.bindBuffer(target, array_ids_ogl[id]); -} - - -function myglUseProgram(sp) -{ - var program_id = heap32[sp>>2];sp+=4; - - g_current_program_id = program_id; - - imandreel_gl.useProgram(array_ids_ogl[program_id]); - -} - -function myglDisableVertexAttribArray(sp) -{ - var idx = heapU32[sp>>2];sp+=4; - imandreel_gl.disableVertexAttribArray(idx); -} -function myglEnableVertexAttribArray(sp) -{ - var idx = heapU32[sp>>2];sp+=4; - imandreel_gl.enableVertexAttribArray(idx); -} - -function myglVertexAttribPointer(sp) -{ - var idx = heapU32[sp>>2];sp+=4; - var size = heapU32[sp>>2];sp+=4; - var type = heapU32[sp>>2];sp+=4; - var normalized = heapU32[sp>>2];sp+=4; - var stride = heapU32[sp>>2];sp+=4; - var ptr = heapU32[sp>>2];sp+=4; - - //dump(idx + ' ' + size + ' ' + type + ' ' + normalized + ' ' + stride + ' ' + ptr + '\n'); - - - imandreel_gl.vertexAttribPointer(idx, size, type, normalized, stride, ptr); -} - -function myglPolygonOffset(sp) -{ - var factor = heapFloat[sp>>2]; sp+=4; - var units = heapFloat[sp>>2]; sp+=4; - imandreel_gl.polygonOffset(factor, units); -} - -function myglEnable(sp) - { - var value = heap32[sp>>2];sp+=4; - - imandreel_gl.enable(value); - } - -function myglDisable(sp) - { - var value = heap32[sp>>2];sp+=4; - - imandreel_gl.disable(value); - } - - function myglDepthFunc(sp) - { - var func = heapU32[sp>>2];sp+=4; - - imandreel_gl.depthFunc(func); - - } - - function myglGenerateMipmap(sp) - { - var texture_type = heap32[sp>>2];sp+=4; - imandreel_gl.generateMipmap(texture_type); - } - - function myglPixelStorei (sp) - { - var pname = heap32[sp>>2];sp+=4; - var param = heap32[sp>>2];sp+=4; - imandreel_gl.pixelStorei(pname,param); - } - - - function myglBindTexture(sp) - { - var texture_type = heap32[sp>>2];sp+=4; - var texture_id = heap32[sp>>2];sp+=4; - -if (texture_id == 0) -{ - imandreel_gl.bindTexture(texture_type, null); -} -else -{ - var tex = array_ids_ogl[texture_id]; - imandreel_gl.bindTexture(texture_type, tex); - } - - } - - function myglActiveTexture(sp) -{ - var param = heapU32[sp>>2];sp+=4; - imandreel_gl.activeTexture(param); -} - -function myglCompileShader(sp) -{ - var id = heap32[sp>>2];sp+=4; - - var shader = array_ids_ogl[id]; - - imandreel_gl.compileShader(shader); -} - -function myglGetUniformLocation(sp) -{ - var program_id = heap32[sp>>2];sp+=4; - var ptr_string = heap32[sp>>2];sp+=4; - - var string = get_string_from_ptr(ptr_string); - var program = array_ids_ogl[program_id]; - var result = imandreel_gl.getUniformLocation(program, string); - - if (result != null) - { - program.array_uniform_locations[program.uniform_locations_current_id] = result; - r_g0 = program.uniform_locations_current_id; - program.uniform_locations_current_id++; - } - else - r_g0 = -1; -} - -function myglIsEnabled(sp) -{ - var cap = heap32[sp>>2];sp+=4; - - r_g0 = imandreel_gl.isEnabled(cap); -} - - -function myglUniform1i(sp) -{ - var index = heap32[sp>>2];sp+=4; - var value = heap32[sp>>2];sp+=4; - - var program = array_ids_ogl[g_current_program_id]; - - var uniform_value = program.array_uniform_locations[index]; - - imandreel_gl.uniform1i(uniform_value, value); -} - -function myglUniform2i(sp) -{ - var index = heap32[sp>>2];sp+=4; - var x = heap32[sp>>2];sp+=4; - var y = heap32[sp>>2];sp+=4; - - var program = array_ids_ogl[g_current_program_id]; - - var uniform_value = program.array_uniform_locations[index]; - - imandreel_gl.uniform2i(uniform_value, x,y); -} - -function myglUniform3i(sp) -{ - var index = heap32[sp>>2];sp+=4; - var x = heap32[sp>>2];sp+=4; - var y = heap32[sp>>2];sp+=4; - var z = heap32[sp>>2];sp+=4; - - var program = array_ids_ogl[g_current_program_id]; - - var uniform_value = program.array_uniform_locations[index]; - - imandreel_gl.uniform3i(uniform_value, x,y,z); -} - -function myglUniform4i(sp) -{ - var index = heap32[sp>>2];sp+=4; - var x = heap32[sp>>2];sp+=4; - var y = heap32[sp>>2];sp+=4; - var z = heap32[sp>>2];sp+=4; - var w = heap32[sp>>2];sp+=4; - - var program = array_ids_ogl[g_current_program_id]; - - var uniform_value = program.array_uniform_locations[index]; - - imandreel_gl.uniform4i(uniform_value, x,y,z,w); -} - -function myglUniform1f(sp) -{ - var index = heap32[sp>>2];sp+=4; - var value = heapFloat[sp>>2];sp+=4; - - var program = array_ids_ogl[g_current_program_id]; - - var uniform_value = program.array_uniform_locations[index]; - - imandreel_gl.uniform1f(uniform_value, value); -} - -function myglUniform3f(sp) -{ - var index = heap32[sp>>2];sp+=4; - var x = heapFloat[sp>>2];sp+=4; - var y = heapFloat[sp>>2];sp+=4; - var z = heapFloat[sp>>2];sp+=4; - - var program = array_ids_ogl[g_current_program_id]; - - var uniform_value = program.array_uniform_locations[index]; - - imandreel_gl.uniform3f(uniform_value, x,y,z); -} - -function myglUniform2f(sp) -{ - var index = heap32[sp>>2];sp+=4; - var x = heapFloat[sp>>2];sp+=4; - var y = heapFloat[sp>>2];sp+=4; - - var program = array_ids_ogl[g_current_program_id]; - - var uniform_value = program.array_uniform_locations[index]; - - imandreel_gl.uniform2f(uniform_value, x,y); -} - - -function myglUniform4f(sp) -{ - var index = heap32[sp>>2];sp+=4; - var x = heapFloat[sp>>2];sp+=4; - var y = heapFloat[sp>>2];sp+=4; - var z = heapFloat[sp>>2];sp+=4; - var w = heapFloat[sp>>2];sp+=4; - - var program = array_ids_ogl[g_current_program_id]; - var uniform_value = program.array_uniform_locations[index]; - - imandreel_gl.uniform4f(uniform_value, x,y,z,w); -} - -function myglUniform1fv(sp) -{ - var index = heap32[sp>>2];sp+=4; - var count = heap32[sp>>2];sp+=4; - var data = heap32[sp>>2];sp+=4; - - var new_data = data>>2; - var new_count = count; - var bufferView = new Float32Array(new_count); - - for ( var i = 0 ; i < new_count ; ++i ) - { - bufferView[i] = heapFloat[new_data+i]; - } - - var program = array_ids_ogl[g_current_program_id]; - var uniform_value = program.array_uniform_locations[index]; - imandreel_gl.uniform1fv(uniform_value, bufferView); - - -} - -function myglUniform1iv(sp) -{ - var index = heap32[sp>>2];sp+=4; - var count = heap32[sp>>2];sp+=4; - var data = heap32[sp>>2];sp+=4; - - var new_data = data>>2; - var new_count = count; - var bufferView = new Int32Array(new_count); - - for ( var i = 0 ; i < new_count ; ++i ) - { - bufferView[i] = heap32[new_data+i]; - } - - var program = array_ids_ogl[g_current_program_id]; - var uniform_value = program.array_uniform_locations[index]; - imandreel_gl.uniform1iv(uniform_value, bufferView); -} - -function myglUniform2iv(sp) -{ - var index = heap32[sp>>2];sp+=4; - var count = heap32[sp>>2];sp+=4; - var data = heap32[sp>>2];sp+=4; - - var new_data = data>>2; - var new_count = count*2; - var bufferView = new Int32Array(new_count); - - for ( var i = 0 ; i < new_count ; ++i ) - { - bufferView[i] = heap32[new_data+i]; - } - - var program = array_ids_ogl[g_current_program_id]; - var uniform_value = program.array_uniform_locations[index]; - imandreel_gl.uniform2iv(uniform_value, bufferView); -} - -function myglUniform3iv(sp) -{ - var index = heap32[sp>>2];sp+=4; - var count = heap32[sp>>2];sp+=4; - var data = heap32[sp>>2];sp+=4; - - var new_data = data>>2; - var new_count = count*3; - var bufferView = new Int32Array(new_count); - - for ( var i = 0 ; i < new_count ; ++i ) - { - bufferView[i] = heap32[new_data+i]; - } - - var program = array_ids_ogl[g_current_program_id]; - var uniform_value = program.array_uniform_locations[index]; - imandreel_gl.uniform3iv(uniform_value, bufferView); -} - -function myglUniform4iv(sp) -{ - var index = heap32[sp>>2];sp+=4; - var count = heap32[sp>>2];sp+=4; - var data = heap32[sp>>2];sp+=4; - - var new_data = data>>2; - var new_count = count*4; - var bufferView = new Int32Array(new_count); - - for ( var i = 0 ; i < new_count ; ++i ) - { - bufferView[i] = heap32[new_data+i]; - } - - var program = array_ids_ogl[g_current_program_id]; - var uniform_value = program.array_uniform_locations[index]; - imandreel_gl.uniform4iv(uniform_value, bufferView); -} - - - -function myglUniform3fv(sp) -{ - myglCreateUniformArrays(); - - var index = heap32[sp>>2];sp+=4; - var count = heap32[sp>>2];sp+=4; - var data = heap32[sp>>2];sp+=4; - - var new_data = data>>2; - var new_count = count*3; - var bufferView = uniformArrays3[count]; - - for ( var i = 0 ; i < new_count ; ++i ) - { - bufferView[i] = heapFloat[new_data+i]; - } - - var program = array_ids_ogl[g_current_program_id]; - var uniform_value = program.array_uniform_locations[index]; - imandreel_gl.uniform3fv(uniform_value, bufferView); -} - -function myglUniform2fv(sp) -{ - myglCreateUniformArrays(); - - var index = heap32[sp >> 2]; sp += 4; - var count = heap32[sp >> 2]; sp += 4; - var data = heap32[sp >> 2]; sp += 4; - - var new_data = data>>2; - var new_count = count*2; - var bufferView = uniformArrays2[count]; - - for ( var i = 0 ; i < new_count ; ++i ) - { - bufferView[i] = heapFloat[new_data+i]; - } - - - var program = array_ids_ogl[g_current_program_id]; - var uniform_value = program.array_uniform_locations[index]; - imandreel_gl.uniform2fv(uniform_value, bufferView); -} - - -function myglUniform4fv(sp) -{ - myglCreateUniformArrays(); - - var index = heap32[sp>>2];sp+=4; - var count = heap32[sp>>2];sp+=4; - var data = heap32[sp>>2];sp+=4; - - - var new_data = data>>2; - var new_count = count*4; - var bufferView = uniformArrays4[count]; - - for ( var i = 0 ; i < new_count ; ++i ) - { - bufferView[i] = heapFloat[new_data+i]; - } - - - var program = array_ids_ogl[g_current_program_id]; - var uniform_value = program.array_uniform_locations[index]; - imandreel_gl.uniform4fv(uniform_value, bufferView); -} - - -function myglUniformMatrix4fv(sp) -{ - myglCreateUniformArrays(); - - var index = heap32[sp>>2];sp+=4; - var count = heap32[sp>>2];sp+=4; - var transpose = heap32[sp>>2];sp+=4; - var ptr = heap32[sp>>2];sp+=4; - - var program = array_ids_ogl[g_current_program_id]; - var uniform_value = program.array_uniform_locations[index]; - - //var buffer_data = new Float32Array(heap, ptr, count*16); - for ( var i = 0 ; i < count*16 ; ++i ) - { - uniformArrays4[count*4][i] = heapFloat[(ptr>>2)+i]; - } - - //imandreel_gl.uniformMatrix4fv(uniform_value, transpose, buffer_data); - //imandreel_gl.uniformMatrix4fv(uniform_value, transpose, heapFloat.subarray(ptr/4,(ptr/4)+(count*16))); - imandreel_gl.uniformMatrix4fv(uniform_value, transpose, uniformArrays4[count*4]); -} - -function myglUniformMatrix3fv(sp) -{ - myglCreateUniformArrays(); - - var index = heap32[sp>>2];sp+=4; - var count = heap32[sp>>2];sp+=4; - var transpose = heap32[sp>>2];sp+=4; - var ptr = heap32[sp>>2];sp+=4; - - var program = array_ids_ogl[g_current_program_id]; - var uniform_value = program.array_uniform_locations[index]; - - //var buffer_data = new Float32Array(heap, ptr, count*9); - for ( var i = 0 ; i < count*9 ; ++i ) - { - uniformArrays3[count*3][i] = heapFloat[(ptr>>2)+i]; - } - - //imandreel_gl.uniformMatrix3fv(uniform_value, transpose, buffer_data); - //imandreel_gl.uniformMatrix3fv(uniform_value, transpose, heapFloat.subarray(ptr/4,(ptr/4)+(count*9))); - imandreel_gl.uniformMatrix3fv(uniform_value, transpose, uniformArrays3[count*3]); -} - - - -function myglValidateProgram(sp) -{ - var program_id = heap32[sp>>2];sp+=4; - - imandreel_gl.validateProgram(array_ids_ogl[program_id]); -} - -function myglGetAttribLocation(sp) -{ - var program_id = heap32[sp>>2];sp+=4; - var ptr_string = heap32[sp>>2];sp+=4; - - var string = get_string_from_ptr(ptr_string); - var result = imandreel_gl.getAttribLocation(array_ids_ogl[program_id], string); - - r_g0 = result; -} - -function myglGetProgramInfoLogLength(sp) -{ - var program_id = heap32[sp>>2];sp+=4; - - var info_log = imandreel_gl.getProgramInfoLog(array_ids_ogl[program_id]); - - if (info_log) - r_g0 = info_log.length+1; - else - r_g0 = 0; -} - - -function myglGetProgramInfoLog(sp) -{ - var program_id = heap32[sp>>2];sp+=4; - var ptr_string = heap32[sp>>2];sp+=4; - - var info_log = imandreel_gl.getProgramInfoLog(array_ids_ogl[program_id]); - - fill_ptr_from_string(ptr_string, info_log); -} - -function myglGetShaderInfoLogLength(sp) -{ - var program_id = heap32[sp>>2];sp+=4; - - var info_log = imandreel_gl.getShaderInfoLog(array_ids_ogl[program_id]); - - if (info_log) - r_g0 = info_log.length+1; - else - r_g0 = 0; -} - -function myglGetShaderInfoLog(sp) -{ - var program_id = heap32[sp>>2];sp+=4; - var ptr_string = heap32[sp>>2];sp+=4; - - var info_log = imandreel_gl.getShaderInfoLog(array_ids_ogl[program_id]); - - fill_ptr_from_string(ptr_string, info_log); -} - -function myglViewport(sp) { - var x = heap32[sp >> 2]; sp += 4; - var y = heap32[sp >> 2]; sp += 4; - var width = heap32[sp >> 2]; sp += 4; - var height = heap32[sp >> 2]; sp += 4; - - imandreel_gl.viewport(x,y,width,height); - -} - -function myglScissor(sp) -{ - var x = heap32[sp >> 2]; sp += 4; - var y = heap32[sp >> 2]; sp += 4; - var width = heap32[sp >> 2]; sp += 4; - var height = heap32[sp >> 2]; sp += 4; - - imandreel_gl.scissor(x,y,width,height); -} - - - -function myglClearColor(sp) -{ - var r = heapFloat[sp>>2];sp+=4; - var g = heapFloat[sp>>2];sp+=4; - var b = heapFloat[sp>>2];sp+=4; - var a = heapFloat[sp>>2];sp+=4; - - imandreel_gl.clearColor(r,g,b,a); - - -} - -function myglClearStencil(sp) -{ - var stencil = heap32[sp>>2];sp+=4; - imandreel_gl.clearStencil(stencil); -} - - -function myglClearDepthf(sp) -{ - var depth = heapFloat[sp>>2];sp+=4; - imandreel_gl.clearDepth(depth); -} - -function myglClear(sp) - { - var mask = heap32[sp>>2];sp+=4; - - - //dump('clear ' + mask + '\n'); - if (mandreel_draw_enable) - imandreel_gl.clear(mask); - } - - function myglGetError(sp) - { -// r_g0 = imandreel_gl.getError(); - r_g0 = 0; - } - - function myglGetProgramParameter(sp) - { - var program_id = heap32[sp>>2];sp+=4; - var pname = heap32[sp>>2];sp+=4; - - r_g0 = imandreel_gl.getProgramParameter(array_ids_ogl[program_id], pname); - } - - function myglGetActiveAttrib (sp) - { - var program_id = heap32[sp>>2];sp+=4; - var index = heap32[sp>>2];sp+=4; - var ptr = heap32[sp>>2];sp+=4; - - var result = imandreel_gl.getActiveAttrib(array_ids_ogl[program_id], index); - - if (result != null) - { - heap32[(ptr)>>2] = result.size; - heap32[(ptr+4)>>2] = result.type; - fill_ptr_from_string(ptr+8, result.name); - r_g0 = 0; - } - else - r_g0 = 1; - } - - function myglGetActiveUniform (sp) - { - var program_id = heap32[sp>>2];sp+=4; - var index = heap32[sp>>2];sp+=4; - var ptr = heap32[sp>>2];sp+=4; - - var result = imandreel_gl.getActiveUniform(array_ids_ogl[program_id], index); - - if (result != null) - { - heap32[(ptr)>>2] = result.size; - heap32[(ptr+4)>>2] = result.type; - fill_ptr_from_string(ptr+8, result.name); - r_g0 = 0; - } - else - r_g0 = 1; - } - - function myglTexParameterf (sp) - { - var target = heap32[sp>>2];sp+=4; - var pname = heap32[sp>>2];sp+=4; - var value = heapFloat[sp>>2];sp+=4; - - imandreel_gl.texParameterf(target,pname,value); -} - -function myglTexParameteri (sp) - { - var target = heap32[sp>>2];sp+=4; - var pname = heap32[sp>>2];sp+=4; - var value = heap32[sp>>2];sp+=4; - - imandreel_gl.texParameteri(target,pname,value); -} - -function myglCullFace (sp) - { - var mode = heap32[sp>>2];sp+=4; - imandreel_gl.cullFace(mode); - } - - function myglDepthMask (sp) - { - var flag = heap32[sp>>2];sp+=4; - imandreel_gl.depthMask(flag); - } - - function myglDepthRangef (sp) - { - var zNear = heapFloat[sp>>2];sp+=4; - var zFar = heapFloat[sp>>2];sp+=4; - imandreel_gl.depthRange(zNear, zFar); - } - -function myglFrontFace (sp) - { - var mode = heap32[sp>>2];sp+=4; - imandreel_gl.frontFace(mode); - } - - function myglBlendFunc (sp) - { - var sfactor = heap32[sp>>2];sp+=4; - var dfactor = heap32[sp>>2];sp+=4; - imandreel_gl.blendFunc(sfactor,dfactor); - } - - function myglBlendColor(sp) - { - var red = heapFloat[sp>>2];sp+=4; - var green = heapFloat[sp>>2];sp+=4; - var blue = heapFloat[sp>>2];sp+=4; - var alpha = heapFloat[sp>>2];sp+=4; - imandreel_gl.blendColor(red,green,blue,alpha); - } - - function myglBlendEquation(sp) - { - var mode = heap32[sp>>2];sp+=4; - imandreel_gl.blendEquation(mode); - } - - function myglBlendEquationSeparate(sp) - { - var modeRGB = heap32[sp>>2];sp+=4; - var modeAlpha = heap32[sp>>2];sp+=4; - imandreel_gl.blendEquationSeparate(modeRGB,modeAlpha); - } - - function myglBlendFuncSeparate(sp) - { - var srcRGB = heap32[sp>>2];sp+=4; - var dstRGB = heap32[sp>>2];sp+=4; - var srcAlpha = heap32[sp>>2];sp+=4; - var dstAlpha = heap32[sp>>2];sp+=4; - - imandreel_gl.blendFuncSeparate(srcRGB,dstRGB,srcAlpha,dstAlpha); - } - - - function myglColorMask (sp) - { - var red = heap32[sp>>2];sp+=4; - var green = heap32[sp>>2];sp+=4; - var blue = heap32[sp>>2];sp+=4; - var alpha = heap32[sp>>2];sp+=4; - imandreel_gl.colorMask(red,green,blue,alpha); - } - - function removeByElement(arrayName,arrayElement) - { - for(var i=0; i>2];sp+=4; - r_g0 = imandreel_gl.getParameter(pname); - } - - - function mygetProgramParameter(sp) - { - var program_id = heap32[sp>>2];sp+=4; - var pname = heap32[sp>>2];sp+=4; - r_g0 = imandreel_gl.getProgramParameter(array_ids_ogl[program_id], pname); - } - - function mygetShaderParameter(sp) - { - var shader_id = heap32[sp>>2];sp+=4; - var pname = heap32[sp>>2];sp+=4; - r_g0 = imandreel_gl.getShaderParameter(array_ids_ogl[shader_id], pname); - } - - function myglVertexAttrib1f(sp) - { - var index = heap32[sp>>2];sp+=4; - var x = heapFloat[sp>>2];sp+=4; - imandreel_gl.vertexAttrib1f(index,x); - } - - function myglVertexAttrib2f(sp) - { - var index = heap32[sp>>2];sp+=4; - var x = heapFloat[sp>>2];sp+=4; - var y = heapFloat[sp>>2];sp+=4; - imandreel_gl.vertexAttrib2f(index,x,y); - } - - function myglVertexAttrib3f(sp) - { - var index = heap32[sp>>2];sp+=4; - var x = heapFloat[sp>>2];sp+=4; - var y = heapFloat[sp>>2];sp+=4; - var z = heapFloat[sp>>2];sp+=4; - imandreel_gl.vertexAttrib3f(index,x,y,z); - } - - function myglVertexAttrib4f(sp) - { - var index = heap32[sp>>2];sp+=4; - var x = heapFloat[sp>>2];sp+=4; - var y = heapFloat[sp>>2];sp+=4; - var z = heapFloat[sp>>2];sp+=4; - var w = heapFloat[sp>>2];sp+=4; - imandreel_gl.vertexAttrib4f(index,x,y,z,w); - } - - function myglVertexAttrib1fv(sp) - { - var index = heap32[sp>>2];sp+=4; - var ptr = heap32[sp>>2];sp+=4; - var x = heap32[ptr>>2];ptr+=4; - imandreel_gl.vertexAttrib1f(index,x); - } - - function myglVertexAttrib2fv(sp) - { - var index = heap32[sp>>2];sp+=4; - var ptr = heap32[sp>>2];sp+=4; - var x = heap32[ptr>>2];ptr+=4; - var y = heap32[ptr>>2];ptr+=4; - - imandreel_gl.vertexAttrib2f(index,x,y); - } - - function myglVertexAttrib3fv(sp) - { - var index = heap32[sp>>2];sp+=4; - var ptr = heap32[sp>>2];sp+=4; - var x = heap32[ptr>>2];ptr+=4; - var y = heap32[ptr>>2];ptr+=4; - var z = heap32[ptr>>2];ptr+=4; - - imandreel_gl.vertexAttrib3f(index,x,y,z); - } - - function myglVertexAttrib4fv(sp) - { - var index = heap32[sp>>2];sp+=4; - var ptr = heap32[sp>>2];sp+=4; - var x = heap32[ptr>>2];ptr+=4; - var y = heap32[ptr>>2];ptr+=4; - var z = heap32[ptr>>2];ptr+=4; - var w = heap32[ptr>>2];ptr+=4; - - imandreel_gl.vertexAttrib4f(index,x,y,z,w); - } - - - function myglDeleteTexture (sp) - { - - var texture_id = heap32[sp>>2];sp+=4; - - var texture = array_ids_ogl[texture_id]; - - imandreel_gl.deleteTexture(texture); - - array_ids_ogl[texture_id] = null; - - myglFreeSlot(texture_id); - } - - function myglDeleteBuffer (sp) - { - - var buffer_id = heap32[sp>>2];sp+=4; - - var buffer = array_ids_ogl[buffer_id]; - - imandreel_gl.deleteBuffer(buffer); - - array_ids_ogl[buffer_id] = null; - - myglFreeSlot(buffer_id); - } - - function myglDeleteFrameBuffer (sp) - { - var framebuffer_id = heap32[sp>>2];sp+=4; - - var framebuffer = array_ids_ogl[framebuffer_id]; - - imandreel_gl.deleteFramebuffer(framebuffer); - - array_ids_ogl[framebuffer_id] = null; - - myglFreeSlot(framebuffer_id); - } - - - function myglDeleteProgram (sp) - { - var program_id = heap32[sp>>2];sp+=4; - - var program = array_ids_ogl[program_id]; - - imandreel_gl.deleteProgram(program); - - array_ids_ogl[program_id] = null; - - myglFreeSlot(program_id); - } - - function myglDeleteRenderBuffer (sp) - { - var renderbuffer_id = heap32[sp>>2];sp+=4; - - var renderbuffer = array_ids_ogl[renderbuffer_id]; - - imandreel_gl.deleteRenderbuffer(renderbuffer); - - array_ids_ogl[renderbuffer_id] = null; - - myglFreeSlot(renderbuffer_id); - } - - function myglDeleteShader (sp) - { - var shader_id = heap32[sp>>2];sp+=4; - - var shader = array_ids_ogl[shader_id]; - - imandreel_gl.deleteShader(shader); - - array_ids_ogl[shader_id] = null; - - myglFreeSlot(shader_id); - } - - function myglInit(sp) - { - - for (var i=0;i>2];sp+=4; - var y = heap32[sp>>2];sp+=4; - var width = heap32[sp>>2];sp+=4; - var height = heap32[sp>>2];sp+=4; - var format = heap32[sp>>2];sp+=4; - var type = heap32[sp>>2];sp+=4; - var pixels = heap32[sp>>2];sp+=4; - - var bufferView = new Uint8Array(heap,pixels,width*height*4); - imandreel_gl.readPixels(x,y,width,height,format,type,bufferView); -} - -function mandreel_internal_DrawSprite(sp) -{ - if ( imandreel_ctx_canvas == null ) - { - console.log("Mandreel_2D_DrawSprite error: canvas context is null"); - return; - } - - var hw_id = heap32[sp>>2]; sp+=4; - var u0 = heapFloat[sp>>2]; sp+=4; - var u1 = heapFloat[sp>>2]; sp+=4; - var v0 = heapFloat[sp>>2]; sp+=4; - var v1 = heapFloat[sp>>2]; sp+=4; - //var x = heapFloat[sp>>2]; sp+=4; - //var y = heapFloat[sp>>2]; sp+=4; - var sx = heapFloat[sp>>2]; sp+=4; - var sy = heapFloat[sp>>2]; sp+=4; - //var rot = heapFloat[sp>>2]; sp+=4; - var m11 = heapFloat[sp>>2]; sp+=4; - var m12 = heapFloat[sp>>2]; sp+=4; - var m21 = heapFloat[sp>>2]; sp+=4; - var m22 = heapFloat[sp>>2]; sp+=4; - var tx = heapFloat[sp>>2]; sp+=4; - var ty = heapFloat[sp>>2]; sp+=4; - var color = heap32[sp>>2]; sp+=4; - - //ctx_canvas.fillStyle="#FF0000"; - //ctx_canvas.fillRect(tx,ty,sx,sy); - var texture = array_ids_ogl[hw_id]; - - if ( texture == null ) - { - console.log("Mandreel_2D_DrawSprite error: texture invalid ("+hw_id+") or loading yet..."); - return; - } - - var width = (u1-u0)*texture.width; - var height = (v1-v0)*texture.height; - - if (width == 0) - return; - if (height == 0) - return; - - var x_offset = u0*texture.width; - var y_offset = v0*texture.height; - - //dump(x_offset + ' ' + y_offset + ' ' + texture.width + ' ' + texture.height + ' ' + x + ' ' +y + ' ' + width + ' ' + height + '\n'); - - x_offset = x_offset % texture.width; - y_offset = y_offset % texture.height; - - var scale_x, scale_y; - if (sx<0) - scale_x = -1; - else - scale_x = 1; - if (sy<0) - scale_y = -1; - else - scale_y = 1; - - var simple_draw = false;//scale_x == 1 && scale_y == 1 && rot == 0; - var x_pos = (0.5*sx + tx/* + 240*/); - var y_pos = (/*320*/ + ((0.5*sy + ty) /*+ 160*/)); - var new_sx = sx; - var new_sy = sy; - - imandreel_ctx_canvas.globalAlpha = (color>>>24)/255; - - if (!simple_draw) - { - imandreel_ctx_canvas.save() - /*ctx_canvas.translate(x_pos + new_sx/2, y_pos + new_sy/2) - ctx_canvas.rotate(-rot*Math.PI/180); - ctx_canvas.scale(scale_x, scale_y); - ctx_canvas.translate(-(x_pos + new_sx/2), -(y_pos + new_sy/2))*/ - imandreel_ctx_canvas.setTransform(m11,m12,m21,m22,tx,ty); - } - - /*if (x_offset<0 || y_offset<0 || (x_offset+width)>texture.width || (y_offset+height)>texture.height) - { - dump(x_offset + ' ' + y_offset + ' ' + texture.width + ' ' + texture.height + ' ' + x + ' ' +y + ' ' + width + ' ' + height + '\n'); - }*/ - - if (new_sx<0) - { - x_pos += new_sx; - new_sx = -new_sx; - } - if (new_sy<0) - { - y_pos += new_sy; - new_sy = -new_sy; - } - - //ctx_canvas.drawImage(texture,x_offset,y_offset, width, height, x_pos, y_pos , new_sx, new_sy); - imandreel_ctx_canvas.drawImage(texture,x_offset,y_offset, width, height, 0,0, 1,1); - - if (!simple_draw) - imandreel_ctx_canvas.restore() -} - -function mandreel_internal_UpdateTexture(sp) -{ - if ( imandreel_ctx_canvas == null ) - { - console.log("Mandreel_2D_UpdateTexture error: canvas context is null"); - return; - } - - var hw_id = heap32[sp>>2]; sp+=4; - var dataptr = heap32[sp>>2]; sp+=4; - var width = heap32[sp>>2]; sp+=4; - var height = heap32[sp>>2]; sp+=4; - - var imageData = imandreel_ctx_canvas.getImageData(0,0,width,height); - var data = imageData.data; - for (var y = 0; y < (height*width*4); ++y) - { - data[y] = heapU8[dataptr + y]; - } - imandreel_ctx_canvas.putImageData(imageData,0,0); - - var dataurl = imandreel_ctx_canvas.canvas.toDataURL(); - - var image = new Image(); - image.onerror = function() - { - dump('error updating texture '+hw_id+'\n'); - } - image.onload = function() - { - //dump('texture '+hw_id+' updated\n'+'width '+image.width+' height '+image.height); - array_ids_ogl[hw_id] = image; - } - image.src = dataurl; -} - -function mandreel_internal_WriteFramebuffer(sp) -{ - if ( imandreel_ctx_canvas == null ) - { - console.log("Mandreel_2D_UpdateTexture error: canvas context is null"); - return; - } - - var dataptr = heap32[sp>>2]; sp+=4; - var width = heap32[sp>>2]; sp+=4; - var height = heap32[sp>>2]; sp+=4; - - var imageData = imandreel_ctx_canvas.getImageData(0,0,width,height); - if ( imageData != null ) - { - var data = imageData.data; - if ( data != null ) - { - var size = (height*width*4); - if ( typeof imageData.data.set != "undefined" ) - { - var sub = heapU8.subarray(dataptr,dataptr+size); - imageData.data.set(sub); - } - else - { - for (var y = 0; y < size; ++y) - { - data[y] = heapU8[dataptr + y]; - } - } - - imandreel_ctx_canvas.putImageData(imageData,0,0); - } - else - { - dump("WriteFramebuffer canvas data null"); - } - } - else - { - dump("WriteFramebuffer canvas imageData null"); - } -} -var mandreel_audio_init = null_mandreel_audio; -var mandreel_audio_end = null_mandreel_audio; -var mandreel_audio_update = null_mandreel_audio; -var mandreel_audio_createBuffer = null_mandreel_audio; -var mandreel_audio_playChannel = null_mandreel_audio; -var mandreel_audio_stopChannel = null_mandreel_audio; -var mandreel_audio_setChannelVolume = null_mandreel_audio; -var mandreel_audio_setChannelPan = null_mandreel_audio; -var mandreel_audio_setChannelPitch = null_mandreel_audio; -var mandreel_audio_playMusic = null_mandreel_audio; -var mandreel_audio_stopMusic = null_mandreel_audio; -var mandreel_audio_useMusicFunctions = _mandreel_audio_useMusicFunctions; -var mandreel_audio_checkBuffersPending = null_mandreel_audio; -var mandreel_audio_setMusicVol = null_mandreel_audio; - -var mandreel_audio_startedFunction = 0; - -var MandreelAudioDriver = "null"; - -function mandreel_start_audio(audioServer, audioUrl,startedFunction) -{ - mandreel_audio_startedFunction = startedFunction; - - // Check audio driver data availability - var webAudioDataAvailable = false; - var flashAudioDataAvailable = false; - var flashLiteAudioDataAvailable = false; - var audiotagsDataAvailable = false; - var FatLines = mandreelFatData.split('\n'); - for ( var i=0;i>2];sp+=4; - fill_ptr_from_string(name_ptr, MandreelAudioDriver); -} -var webAudioUseMusicFunctions = true; - -function wa_mandreel_audio_init(sp) -{ -} - -function wa_mandreel_audio_end(sp) -{ -} - -function wa_mandreel_audio_update(sp) -{ -} - -function wa_mandreel_audio_checkBuffersPending(sp) -{ - r_g0 = wa_imp_mandreel_audio_checkBuffersPending(); -} - -function wa_mandreel_audio_createBuffer(sp) -{ - var ptr_fileName = heap32[sp>>2];sp+=4; - var maxChannels = heap32[sp>>2];sp+=4; - var fileName = get_string_from_ptr(ptr_fileName).toLowerCase(); - wa_imp_mandreel_audio_createBuffer(fileName); - - r_g0 = 0; -} - -function wa_mandreel_audio_playChannel(sp) -{ - var ptr_fileName = heap32[sp>>2];sp+=4; - var channel = heap32[sp>>2];sp+=4; - var vol = heapFloat[sp>>2];sp+=4; - var loop = heap32[sp>>2];sp+=4; - var pitch = heapFloat[sp>>2];sp+=4; - var fileName = get_string_from_ptr(ptr_fileName).toLowerCase(); - wa_imp_mandreel_audio_playChannel(fileName,channel,vol,loop,pitch); - r_g0 = 0; -} - -function wa_mandreel_audio_stopChannel(sp) -{ - var ptr_fileName = heap32[sp>>2];sp+=4; - var channel = heap32[sp>>2];sp+=4; - var index = heapFloat[sp>>2];sp+=4; - wa_imp_mandreel_audio_stopChannel(channel); -} - -function wa_mandreel_audio_setChannelVolume(sp) -{ - var channel = heap32[sp>>2];sp+=4; - var vol = heapFloat[sp>>2];sp+=4; - wa_imp_mandreel_audio_setChannelVolume(channel,vol); -} - -function wa_mandreel_audio_setChannelPan(sp) -{ - var channel = heap32[sp>>2];sp+=4; - var pan = heapFloat[sp>>2];sp+=4; - wa_imp_mandreel_audio_setChannelPan(channel,pan); -} - -function wa_mandreel_audio_setChannelPitch(sp) -{ - var channel = heap32[sp>>2];sp+=4; - var pitch = heapFloat[sp>>2];sp+=4; - wa_imp_mandreel_audio_setChannelPitch(channel,pitch); -} - -function wa_mandreel_audio_useMusicFunctions(sp) -{ - r_g0 = webAudioUseMusicFunctions ? 1 : 0; -} - -function wa_mandreel_audio_playMusic(sp) -{ - var ptr_fileName = heap32[sp>>2];sp+=4; - var fileName = get_string_from_ptr(ptr_fileName).toLowerCase(); - wa_imp_mandreel_audio_playMusic(fileName); -} - -function wa_mandreel_audio_stopMusic(sp) -{ - wa_imp_mandreel_audio_stopMusic(); -} - -function wa_mandreel_audio_setMusicVol(sp) -{ - var vol = heapFloat[sp>>2];sp+=4; - wa_imp_mandreel_audio_setMusicVol(vol); -} - -function wa_MainAudioDriver() -{ - mandreel_audio_init = wa_mandreel_audio_init; - mandreel_audio_end = wa_mandreel_audio_end; - mandreel_audio_update = wa_mandreel_audio_update; - mandreel_audio_createBuffer = wa_mandreel_audio_createBuffer; - mandreel_audio_playChannel = wa_mandreel_audio_playChannel; - mandreel_audio_stopChannel = wa_mandreel_audio_stopChannel; - mandreel_audio_setChannelVolume = wa_mandreel_audio_setChannelVolume; - mandreel_audio_setChannelPan = wa_mandreel_audio_setChannelPan; - mandreel_audio_setChannelPitch = wa_mandreel_audio_setChannelPitch; - mandreel_audio_useMusicFunctions = wa_mandreel_audio_useMusicFunctions; - mandreel_audio_playMusic = wa_mandreel_audio_playMusic; - mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic; - mandreel_audio_checkBuffersPending = wa_mandreel_audio_checkBuffersPending; - mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol; - - setTimeout("mandreel_webAudio_PreloadAssets()", 10); -} - - -var webAudioBuffers = new Array(); -var webAudioChannels = new Array(32); -var webAudioGain = new Array(32); -var webAudioContext = 0; - - -function wa_initWebAudio() -{ - if ( preCreatedWebAudioContext != null ) - { - webAudioContext = preCreatedWebAudioContext; - } - else - { - try { webAudioContext = new webkitAudioContext(); } catch(err) { webAudioContext = 0; } - } -} - -function wa_imp_callfunction(params) -{ - if ( params[0] == "#MandreelAudio" ) - { - if ( params[1] == "playChannel" ) - wa_imp_mandreel_audio_playChannel(params[2],params[3],params[4],params[5],params[6],params[7]); - else if ( params[1] == "stopChannel" ) - wa_imp_mandreel_audio_stopChannel(params[2]); - else if ( params[1] == "setChannelVol" ) - wa_imp_mandreel_audio_setChannelVol(params[2],params[3]); - else if ( params[1] == "setChannelPan" ) - wa_imp_mandreel_audio_setChannelPan(params[2],params[3]); - else if ( params[1] == "playMusic" ) - wa_imp_mandreel_audio_playMusic(params[2]); - else if ( params[1] == "stopMusic" ) - wa_imp_mandreel_audio_stopMusic(params[2]); - else if ( params[1] == "setMusicVol" ) - wa_imp_mandreel_audio_setMusicVol(params[2]); - - return true; - } - return false; -} - -function wa_getFileNameNoExt(fileName) -{ - var fileNameNoExt = fileName.toLowerCase(); - var indexDot = fileNameNoExt.lastIndexOf('.'); - if ( indexDot != -1 ) - fileNameNoExt = fileNameNoExt.substr(0,indexDot); - fileNameNoExt = fileNameNoExt.replace(/\\/g,"/"); - if ( fileNameNoExt.length > 0 ) - { - if ( fileNameNoExt.charAt(0) == "/" ) - { - if (fileNameNoExt.length > 1 ) - fileNameNoExt = fileNameNoExt.substr(1,fileNameNoExt.length-1); - else - fileNameNoExt = ""; - } - } - return fileNameNoExt; -} - -var wa_mandreel_cache_audio_files = false; -var wa_mandreel_cache_audio_files_path = ''; - -function mandreel_webAudio_reloadfile(fileName,callback) -{ - var fileNameNoExt = wa_getFileNameNoExt(fileName); - var url = wa_mandreel_cache_audio_files_path+fileNameNoExt+".ogg"; - dump("webAudio: loading buffer ("+fileName+") url("+url+")"); - var request = new XMLHttpRequest(); - request.open("GET", url, true); - request.responseType = "arraybuffer"; - request.onreadystatechange = function() - { - if (request.readyState == 4) - { - - if (request.status == 404) callback(null); - - callback(request.response); - - } - } - request.send(); -} - -Mandreel_window.BlobBuilder = Mandreel_window.MozBlobBuilder || Mandreel_window.WebKitBlobBuilder || Mandreel_window.BlobBuilder; - -function mandreel_webaudio_saveFile(name, my_arrayBuffer) -{ - dump('mandreel_webaudio_saveFile ' + name); - g_mandreel_fs.root.getFile(name, {create: true}, function(fileEntry) { - - // Create a FileWriter object for our FileEntry (log.txt). - fileEntry.createWriter(function(fileWriter) { - - fileWriter.onwriteend = function(e) { - dump('Write completed.'); - }; - - fileWriter.onerror = function(e) { - dump('Write failed: ' + e.toString()); - }; - - var bb = new Mandreel_window.BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12. - bb.append(my_arrayBuffer); - fileWriter.write(bb.getBlob('text/plain')); - - - - }, function(e) { dump('error 1 mandreel_webaudio_saveFile ' + name);MandreelFsErrorHandler(e) }); - - }, function(e) { dump('error 2 mandreel_webaudio_saveFile ' + name);MandreelFsErrorHandler(e) }); -} - -function mandreel_webaudio_loadFile(name, callback, callback2) -{ - g_mandreel_fs.root.getFile(name, {}, function(fileEntry) { - - fileEntry.file(function(file) { - - var reader = new FileReader(); - - - reader.onloadend = function(e) { - - dump('mandreel_fs_loadFile ' + name); - if (this.result.byteLength) - callback(this.result); - else - callback2(this.result); - - }; - - - reader.readAsArrayBuffer(file); - - - - }, function(e) { dump('error 1 webaudio_loadFile ' + name);MandreelFsErrorHandler(e) } ); - - }, function(e) { dump('error 2 webaudio_loadFile ' + name);MandreelFsErrorHandler(e) } ); -} - - -function mandreel_webAudio_cacheFile(fileName, callback) -{ - if (!g_mandreel_fs) - { - mandreel_webAudio_reloadfile(fileName, callback); - - return; - } - fileName = fileName.toLowerCase(); - - fileName = fileName.replace(/\\/g,"/"); - - if (fileName[0] == '/') - fileName = fileName.substring(1); - - dump('chanka name ' + fileName); - - g_mandreel_fs.root.getFile(fileName, {}, function(fileEntry) { - - fileEntry.getMetadata(function(metaData){ - var my_seconds = metaData.modificationTime.getTime()/1000; - - if (g_mandreel_timestamp_fs>my_seconds) - { - dump('mandreel_webAudio_cacheFile1 '); - fileEntry.remove(function() { - mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); } ); - }, function(e) { dump('error 1 mandreel_webAudio_cacheFile ' + fileName);MandreelFsErrorHandler(e); mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); } );}); - - } - else - { - //alert('mandreel_fscachefile2'); - dump('mandreel_webAudio_cacheFile2'); - mandreel_webaudio_loadFile(fileName, function(response) { callback(response); } , - function() { - mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); } ); - } - ); - - - - } - - - }, function(e) { dump('error 2 mandreel_webAudio_cacheFile ' + fileName);MandreelFsErrorHandler(e) }); - - - }, function(error) {dump('mandreel_webAudio_cacheFile3'); mandreel_webAudio_reloadfile(fileName, function(response) { callback(response); if (response) mandreel_webaudio_saveFile(fileName, response); });}); -} - -function mandreel_webAudio_queueLoadBuffer(fileName, callback) -{ - //dump("mandreel_webAudio_queueLoadBuffer "+fileName); - if ( webAudioContext ) - { - var fileNameNoExt = wa_getFileNameNoExt(fileName); - var buffer = webAudioBuffers[fileNameNoExt]; - if ( buffer == null && buffer != "invalid" ) - { - if ( fileNameNoExt != "" ) - { - if (wa_mandreel_cache_audio_files == true) - { - webAudioBuffers[fileNameNoExt] = "invalid"; - - mandreel_webAudio_cacheFile(fileName, function(response) { - - if (callback != null) - callback(); - - if ( response != null ) - webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(response, false); - else - webAudioBuffers[fileNameNoExt] = "invalid"; - } ); - return; - } - - var url = g_mandreel_working_folder+fileNameNoExt+".ogg"; - dump("webAudio: loading buffer ("+fileName+") url("+url+")"); - webAudioBuffers[fileNameNoExt] = "invalid"; - var request = new XMLHttpRequest(); - request.open("GET", url, true); - request.responseType = "arraybuffer"; - request.onreadystatechange = function() - { - if (request.readyState == 4) - { - if (callback != null) - callback(); - - if (request.status == 404) return; - //dump("webAudio: loaded buffer "+request.status); - if ( request.response != null ) - webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(request.response, false); - else - webAudioBuffers[fileNameNoExt] = "invalid"; - } - } - request.send(); - } - else - webAudioBuffers[fileNameNoExt] = "invalid"; - } - } -} - -var webAudioPreloadAudioFiles = new Array(); -var webAudioPreloadBytes = null; -var webAudioPreloadCurrentFile = 0; -var webAudioPreloadAsync = false; - -function webAudioParsePreloadFile(response) -{ - var pos = 4; - var bytes = new Uint8Array(response); - var i = 0; - if ( webAudioPreloadAsync ) - webAudioPreloadBytes = bytes; - while ( pos < bytes.byteLength ) - { - // filename - var fileName = ""; - while ( bytes[pos] != 0 ) - { - fileName += String.fromCharCode(bytes[pos]); - pos++; - } - pos++; - // filesize - var filesize = bytes[pos] | (bytes[pos+1]<<8) | (bytes[pos+2]<<16) | (bytes[pos+3]<<24); - pos += 4; - - // contents - var fileNameNoExt = wa_getFileNameNoExt(fileName); - if ( webAudioPreloadAsync ) - { - var audioFile = - { - fileName : fileNameNoExt, - fileSize : filesize, - position : pos - }; - webAudioPreloadAudioFiles[i] = audioFile; - } - else - { - var bufferdata = new Uint8Array(filesize); - bufferdata.set(bytes.subarray(pos,pos+filesize)); - webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(bufferdata.buffer, false); - dump("preload audio file ("+fileName+")"); - } - - pos += filesize; - i++; - } - if ( webAudioPreloadAsync ) - { - dump("started preloading audio files async"); - setTimeout("mandreel_webAudio_preloadNextAudioFile()",10); - } -} - -function mandreel_webAudio_preloadNextAudioFile() -{ - if ( webAudioPreloadAudioFiles.length > webAudioPreloadCurrentFile ) - { - var audioFile = webAudioPreloadAudioFiles[webAudioPreloadCurrentFile]; - if ( audioFile.fileName == null ) - { - webAudioPreloadCurrentFile++; - setTimeout("mandreel_webAudio_preloadNextAudioFile()",10); - } - else - { - var bufferdata = new Uint8Array(audioFile.fileSize); - bufferdata.set(webAudioPreloadBytes.subarray(audioFile.position,audioFile.position+audioFile.fileSize)); - dump("async preload audio file ("+audioFile.fileName+")"); - webAudioContext.decodeAudioData(bufferdata.buffer,mandreel_webAudio_preloadNextAudioFileOK,mandreel_webAudio_preloadNextAudioFileError); - } - } - else - { - webAudioPreloadAudioFiles = null; - webAudioPreloadBytes = null; - dump("finished preloading audio files async"); - } -} - -function mandreel_webAudio_preloadNextAudioFileOK(audioBuffer) -{ - var audioFile = webAudioPreloadAudioFiles[webAudioPreloadCurrentFile]; - webAudioPreloadCurrentFile++; - if ( audioFile.fileName != null ) - { - webAudioBuffers[audioFile.fileName] = audioBuffer; - setTimeout("mandreel_webAudio_preloadNextAudioFile()",10); - } -} - -function mandreel_webAudio_preloadNextAudioFileError() -{ - var audioFile = webAudioPreloadAudioFiles[webAudioPreloadCurrentFile]; - webAudioPreloadCurrentFile++; - if ( audioFile.fileName != null ) - dump("FAILED async preload audio file ("+audioFile.fileName+")"); - setTimeout("mandreel_webAudio_preloadNextAudioFile()",10); -} - -function mandreel_webAudio_queueLoadPackedBuffers(fileName, callback) -{ - if ( webAudioContext ) - { - // TODO - /*if (wa_mandreel_cache_audio_files == true) - { - webAudioBuffers[fileNameNoExt] = "invalid"; - - mandreel_webAudio_cacheFile(fileName, function(response) { - - if (callback != null) - callback(); - - if ( response != null ) - webAudioBuffers[fileNameNoExt] = webAudioContext.createBuffer(response, true); - else - webAudioBuffers[fileNameNoExt] = "invalid"; - } ); - return; - }*/ - - mandreel_fs_load_binary(fileName, function mandreel_webAudio_queueLoadPackedBuffers_cb(data){ - - if (data) - { - if (callback != null) - callback(); - webAudioParsePreloadFile(data); - } - else - { - var url = g_mandreel_working_folder+fileName; - dump("webAudio: loading preload buffers ("+fileName+") url("+url+")"); - var request = new XMLHttpRequest(); - request.open("GET", url, true); - request.responseType = "arraybuffer"; - var last_loaded_size = 0; - request.onreadystatechange = function() - { - if (request.readyState == 4) - { - if (callback != null) - callback(); - - if (request.status == 404) - return; - if ( request.response != null ) - { - mandreel_fs_saveFile(fileName, request.response); - webAudioParsePreloadFile(request.response); - } - } - } - request.onprogress = function(e) - { - var delta_size = e.loaded - last_loaded_size; - last_loaded_size = e.loaded; - - imandreel_update_load(delta_size,0); - - var percentage = ((100*e.loaded)/mandreel_total_pogfile_size)|0; - - if (percentage>100) - percentage = 100; - - if ( mandreelAppStartStateFunc ) - mandreelAppStartStateFunc("loadingAudioUpdate",percentage); - } - request.send(); - } - }); - } -} - - - -var wa_mandreel_audio_buffers_num = 0; -var wa_mandreel_audio_buffers_loaded = 0; - -function wa_imp_mandreel_audio_checkBuffersPending() -{ - return wa_mandreel_audio_buffers_num - wa_mandreel_audio_buffers_loaded; -} - -function wa_imp_mandreel_audio_createBuffer(fileName) -{ - if ( webAudioContext ) - { - var fileNameNoExt = wa_getFileNameNoExt(fileName); - var buffer = webAudioBuffers[fileNameNoExt]; - if ( buffer == null && buffer != "invalid" ) - { - wa_mandreel_audio_buffers_num++; - mandreel_webAudio_queueLoadBuffer(fileName, function () {wa_mandreel_audio_buffers_loaded++;}); - } - } -} - -function wa_imp_mandreel_audio_playChannel(fileName,channel,vol,loop,pitch) -{ - if ( webAudioContext ) - { - var fileNameNoExt = wa_getFileNameNoExt(fileName); - var buffer = webAudioBuffers[fileNameNoExt]; - if ( buffer == null || buffer == "invalid" ) - { - if ( webAudioPreloadAudioFiles != null ) - { - var i = 0; - while ( i < webAudioPreloadAudioFiles.length ) - { - var audioFile = webAudioPreloadAudioFiles[i]; - if ( audioFile.fileName == fileNameNoExt ) - { - var bufferdata = new Uint8Array(audioFile.fileSize); - bufferdata.set(webAudioPreloadBytes.subarray(audioFile.position,audioFile.position+audioFile.fileSize)); - webAudioBuffers[audioFile.fileName] = webAudioContext.createBuffer(bufferdata.buffer, false); - dump("**** preload audio file ("+audioFile.fileName+"), forced by playChannel"); - audioFile.fileName = null; - i = webAudioPreloadAudioFiles.length; - } - else - { - ++i; - } - } - } - } - if ( buffer == null || buffer == "invalid" ) - { - mandreel_webAudio_queueLoadBuffer(fileName); - buffer = webAudioBuffers[fileNameNoExt]; - } - if ( buffer != null && buffer != "invalid" ) - { - var chn = webAudioContext.createBufferSource(); - var gain = webAudioContext.createGainNode(); - if ( chn && gain ) - { - webAudioChannels[channel] = chn; - webAudioGain[channel] = gain; - chn.buffer = buffer; - chn.connect(gain); - gain.connect(webAudioContext.destination); - var bLoop = loop != 0; - chn.loop = bLoop; - gain.gain.value = vol; - chn.playbackRate.value = pitch; - chn.noteOn(0); - //dump("webAudio: PlayChannel "+channel+" "+fileName+" "+vol+" "+bLoop+" "+pitch); - } - } - } -} - -function wa_imp_mandreel_audio_stopChannel(channel) -{ - if ( webAudioContext ) - { - var chn = webAudioChannels[channel]; - if ( chn != null ) - { - //dump("webAudio: StopChannel "+channel); - chn.noteOff(0); - webAudioChannels[channel] = null; - webAudioGain[channel] = null; - } - } -} - -function wa_imp_mandreel_audio_setChannelVolume(channel,vol) -{ - if ( webAudioContext ) - { - var gain = webAudioGain[channel]; - if ( gain != null ) - gain.gain.value = vol; - } -} - -function wa_imp_mandreel_audio_setChannelPan(channel,pan) -{ - if ( webAudioContext ) - { - } -} - -function wa_imp_mandreel_audio_setChannelPitch(channel,pitch) -{ - if ( webAudioContext ) - { - var chn = webAudioChannels[channel]; - if ( chn != null ) - { - chn.playbackRate.value = pitch; - } - } -} - -var mwebAudioPreloadState = "start"; -//var mwebAudioPreloadRequest = 0; -var mwebAudioPreloadAssets = 0; -var mwebAudioCurrentPreloadAsset = 0; -var mwebAudioAsyncFiles = ''; -var mwebListAudioAsyncFiles =''; -var mwebListAudioAsyncFilesPos = 0; -var mwebTotalPreloadingFiles = 0; -var mwebCurrentPreloadingFiles = 0; -function mwebCallbackAsync() -{ - mwebListAudioAsyncFilesPos++; - if ( mwebListAudioAsyncFilesPos >= mwebListAudioAsyncFiles.length ) - { - mwebListAudioAsyncFiles = null; - mwebAudioAsyncFiles = null; - return; - } - - setTimeout("mandreel_webAudio_queueLoadBuffer(mwebListAudioAsyncFiles[mwebListAudioAsyncFilesPos], mwebCallbackAsync);",10); -} - -function mwebCallbackAsyncPreload() -{ - mwebCurrentPreloadingFiles++; -} - -function mandreel_webAudio_PreloadAssets() -{ - /*if ( mwebAudioPreloadState == "start" ) - { - //dump("webaudio start"); - mwebAudioPreloadRequest = new XMLHttpRequest(); - var url = g_mandreel_working_folder+"mandreel.fat.dat"; - mwebAudioPreloadRequest.open("GET", url, true); - mwebAudioPreloadRequest.onreadystatechange = function() - { - if (mwebAudioPreloadRequest.readyState != 4) return; - if ( mwebAudioPreloadRequest.status != 404 && mwebAudioPreloadRequest.response != null ) - mwebAudioPreloadState = "parseFat"; - else - { - mwebAudioPreloadState = "done"; - dump("error pre-loading audio assets, status("+mwebAudioPreloadRequest.status+")"); - } - } - mwebAudioPreloadState = "loadingFat"; - mwebAudioPreloadRequest.send(); - } - else if ( mwebAudioPreloadState == "parseFat" )*/ - if ( mwebAudioPreloadState == "start" ) - { - //mwebAudioPreloadAssets = mwebAudioPreloadRequest.response.split('\n'); - //mwebAudioPreloadRequest = 0; - mwebAudioPreloadAssets = mandreelFatData.split('\n'); - mwebAudioCurrentPreloadAsset = 0; - mwebAudioPreloadState = "preloading"; - } - else if ( mwebAudioPreloadState == "preloading" ) - { - //dump("webaudio preloading"); - var queued = false; - while ( !queued && mwebAudioPreloadState != "done" ) - { - if ( mwebAudioCurrentPreloadAsset < mwebAudioPreloadAssets.length ) - { - var params = mwebAudioPreloadAssets[mwebAudioCurrentPreloadAsset].split(','); - if ( params[0] == "audiofile" && params[1]) - { - var sync_load = true; - if (params[2] && (params[2]&1) == 0) - sync_load = false; - - if (sync_load) - { - mandreel_webAudio_queueLoadBuffer(params[1],mwebCallbackAsyncPreload); - mwebTotalPreloadingFiles++; - queued = true; - } - - } - else if ( params[0] == "audiopreloadfile" ) - { - mandreel_webAudio_queueLoadPackedBuffers(params[1],mwebCallbackAsyncPreload); - var size_pog_file = parseInt(params[2], 10); - mandreel_total_pogfile_size = size_pog_file; - mwebTotalPreloadingFiles++; - queued = true; - } - else if ( params[0] == "audiopreloadasync" ) - { - webAudioPreloadAsync = true; - } - mwebAudioCurrentPreloadAsset++; - } - else - queued = true; - - if ( mwebAudioCurrentPreloadAsset >= mwebAudioPreloadAssets.length ) - { - if (mwebCurrentPreloadingFiles == mwebTotalPreloadingFiles) - { - mwebAudioPreloadState = "done"; - mwebAudioPreloadAssets = 0; - } - } - } - } - - if ( mwebAudioPreloadState == "done" ) - { - if ( mandreelAppPlatform == "nacl" ) - setTimeout("MandreelAudioStartedNacl()", 10); - else - setTimeout("MandreelAudioStarted()", 10); - } - else - setTimeout("mandreel_webAudio_PreloadAssets()", 10); -} - -var wa_mandreelMusicElement = null; -var wa_mandreelMusicElementFilename = ""; -var wa_mandreelMusicElementVolume = 1.0; -function wa_imp_mandreel_audio_playMusic(fileName) -{ - var fileNameNoExt = wa_getFileNameNoExt(fileName); - var fileNameFull = g_mandreel_working_folder + fileNameNoExt + ".ogg"; - - if ( wa_mandreelMusicElementFilename != fileNameFull ) - { - wa_imp_mandreel_audio_stopMusic(0); - var audio = document.createElement("audio"); - var type = fileNameFull.slice(fileNameFull.lastIndexOf(".")+1); - switch(type){ - case "mp3" : type = "mpeg"; break; - case "ogg" : type = "ogg"; break; - case "wav" : type = "wav"; break; - default : throw("'" + fileNameFull + "' is not a recognized audio file"); - } - - // set correct id for lookup, loading method and data types - audio.setAttribute("type", "audio/" + type); - var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; - if ( is_chrome ) - audio.setAttribute("loop", "loop"); - else - audio.addEventListener('ended', function(){this.currentTime = 0;}, false); - audio.volume = wa_mandreelMusicElementVolume; - audio.setAttribute("autoplay", "true"); - audio.setAttribute("src", fileNameFull); - - - // include into list and document - document.body.appendChild(audio); - wa_mandreelMusicElement = audio; - wa_mandreelMusicElementFilename = fileNameFull; - } -} - -function wa_imp_mandreel_audio_stopMusic() -{ - if ( wa_mandreelMusicElement != null ) - { - document.body.removeChild(wa_mandreelMusicElement); - wa_mandreelMusicElement = null; - wa_mandreelMusicElementFilename = ""; - } -} - -function wa_imp_mandreel_audio_setMusicVol(vol) -{ - wa_mandreelMusicElementVolume = vol; - if ( wa_mandreelMusicElement != null ) - { - wa_mandreelMusicElement.volume = wa_mandreelMusicElementVolume; - } -} - -var mandreel_audio_stream_func_ptr = 0; -function mandreel_audio_stream_process(e) -{ - var l = e.outputBuffer.getChannelData(0); - var l2 = e.outputBuffer.getChannelData(1); - var n = e.outputBuffer.length; - - var offset2 = 0; - var inc = 44.1 / 48.0; - while ( n > 0 ) - { - var n2 = ((n*inc)|0)/4; - if ( n2 > 1024 ) - n2 = 1024; - - var sp = g_stack_pointer+100*1024; - var ptr = g_stack_pointer+200*1024; - var _sp = sp>>2; - heap32[_sp]=ptr; - heap32[_sp+1]=n2*4; - __FUNCTION_TABLE__[(mandreel_audio_stream_func_ptr)>>2](sp); - - var offset = ptr>>2; - var size = n2*4; - /*for (var i=0;i 0 ) - { - var n2 = n; - if ( n2 > 1024 ) - n2 = 1024; - var sp = g_stack_pointer+100*1024; - var ptr = g_stack_pointer+200*1024; - var _sp = sp>>2; - heap32[_sp]=ptr; - heap32[_sp+1]=n2; - __FUNCTION_TABLE__[(mandreel_audio_stream_func_ptr)>>2](sp); - - var offset = ptr>>2; - var size = n2*2; - var buf = heapFloat.subarray(offset,offset+size); - soundData.set(buf,offset2); - /*for (var i=0; i>2]; - var source = webAudioContext.createJavaScriptNode(1024*4, 0, 2); - source.connect(webAudioContext.destination); - source.onaudioprocess = mandreel_audio_stream_process; - } - else - { - mandreel_audio_stream_func_ptr = heap32[sp>>2]; - AudioDataDestination(44100,mandreel_Audio_requestSoundData); - } - __Mandreel_Audio_CreateStream_created = true; - } -} -function mandreel_webAudio_dummyStream() -{ - var sp = g_stack_pointer+100*1024; - var ptr = g_stack_pointer+200*1024; - var _sp = sp>>2; - heap32[_sp]=ptr; - heap32[_sp+1]=4096; - __FUNCTION_TABLE__[(mandreel_audio_stream_func_ptr)>>2](sp); - setTimeout("mandreel_webAudio_dummyStream()",10); -} - -function AudioDataDestination(sampleRate, readFn) -{ - // Initialize the audio output. - var audio = new Audio(); - if ( audio.mozSetup == null ) - { - setTimeout("mandreel_webAudio_dummyStream()",10); - return; - } - audio.mozSetup(2, sampleRate); - - var currentWritePosition = 0; - var prebufferSize = sampleRate / 2; // buffer 500ms - var tail = null, tailPosition; - - // The function called with regular interval to populate - // the audio output buffer. - setInterval(function() { - var written; - // Check if some data was not written in previous attempts. - if(tail) { - written = audio.mozWriteAudio(tail.subarray(tailPosition)); - currentWritePosition += written; - tailPosition += written; - if(tailPosition < tail.length) { - // Not all the data was written, saving the tail... - return; // ... and exit the function. - } - tail = null; - } - - // Check if we need add some data to the audio output. - var currentPosition = audio.mozCurrentSampleOffset(); - var available = currentPosition + prebufferSize - currentWritePosition; - if(available > 0) { - // Request some sound data from the callback function. - var soundData = new Float32Array(available); - readFn(soundData); - - // Writting the data. - written = audio.mozWriteAudio(soundData); - if(written < soundData.length) { - // Not all the data was written, saving the tail. - tail = soundData; - tailPosition = written; - } - currentWritePosition += written; - } - }, 100); -} -var mandreel_flashaudio_server = ""; -var mandreel_flashaudio_lite = false; -var mandreel_flashaudio_musicaudiotag = true; - -function as3Error(str) -{ - var params = str.split(' '); - if ( params[0] == "createdBuffer" ) - mandreel_audio_flash_lastBufferCreatedSwf = parseInt(params[1]); - dump("as3Log: "+str); -} - -function mandreel_audio_getFlashMovieObject(movieName) -{ - if (Mandreel_window.document[movieName]) - { - return Mandreel_window.document[movieName]; - } - if (navigator.appName.indexOf("Microsoft Internet")==-1) - { - if (document.embeds && document.embeds[movieName]) - return document.embeds[movieName]; - } - else - { - return document.getElementById(movieName); - } -} - -function mandreel_sendmsg_flash(msg) -{ - if ( mandreel_flashaudio_server != "" ) - { - var iframeWin = document.getElementById("ninja-iframe").contentWindow; - iframeWin.postMessage(msg,mandreel_flashaudio_server); - } - else - { - var flashMovie=mandreel_audio_getFlashMovieObject("FlashDivAudio"); - if ( flashMovie != null ) - flashMovie.receiveMessage(msg); - else - dump("error: flashMovie not found"); - } -} - -function fl_mandreel_audio_init(sp) -{ - mandreel_sendmsg_flash("init "+g_mandreel_working_folder); -} - -function fl_mandreel_audio_end(sp) -{ -} - -function fl_mandreel_audio_update(sp) -{ -} - -function mandreel_flashaudiolite_createBuffer(fileName) -{ - mandreel_audio_flash_lastBufferCreated++; - mandreel_sendmsg_flash("createBuffer "+wa_getFileNameNoExt(fileName)+" "+mandreel_audio_flash_lastBufferCreated); -} - -var mandreel_audio_flash_lastBufferCreated = 0; -function fl_mandreel_audio_createBuffer(sp) -{ - var ptr_fileName = heap32[sp>>2];sp+=4; - var fileName = get_string_from_ptr(ptr_fileName).toLowerCase(); - mandreel_flashaudiolite_createBuffer(fileName); -} - -function fl_internal_mandreel_audio_checkBuffersPending() -{ - return mandreel_flashaudio_lite && (mandreel_audio_flash_lastBufferCreatedSwf != mandreel_audio_flash_lastBufferCreated); -} - -var mandreel_audio_flash_lastBufferCreatedSwf = 0; -function fl_mandreel_audio_checkBuffersPending(sp) -{ - r_g0 = 0; - if ( fl_internal_mandreel_audio_checkBuffersPending() ) - r_g0 = 1; - dump("fl_mandreel_audio_checkBuffersPending ("+r_g0+") ("+mandreel_audio_flash_lastBufferCreatedSwf+") ("+mandreel_audio_flash_lastBufferCreated+")"); -} - - -function fl_mandreel_audio_playChannel(sp) -{ - var ptr_fileName = heap32[sp>>2];sp+=4; - var channel = heap32[sp>>2];sp+=4; - var vol = heapFloat[sp>>2];sp+=4; - var loop = heap32[sp>>2];sp+=4; - var pitch = heapFloat[sp>>2];sp+=4; - var fileName = get_string_from_ptr(ptr_fileName).toLowerCase(); - mandreel_sendmsg_flash("playChannel "+fileName+" "+channel+" "+loop+" "+vol+" "+pitch); - r_g0 = 0; -} - -function fl_mandreel_audio_stopChannel(sp) -{ - var ptr_fileName = heap32[sp>>2];sp+=4; - var channel = heap32[sp>>2];sp+=4; - var index = heapFloat[sp>>2];sp+=4; - - mandreel_sendmsg_flash("stopChannel "+channel); -} - -function fl_mandreel_audio_setChannelVolume(sp) -{ - var channel = heap32[sp>>2];sp+=4; - var vol = heapFloat[sp>>2];sp+=4; - - mandreel_sendmsg_flash("setChannelVolume "+channel+" "+vol); -} - -function fl_mandreel_audio_setChannelPan(sp) -{ - var channel = heap32[sp>>2];sp+=4; - var pan = heapFloat[sp>>2];sp+=4; - mandreel_sendmsg_flash("setChannelPan "+channel+" "+pan); -} - -function fl_mandreel_audio_setChannelPitch(sp) -{ - var channel = heap32[sp>>2];sp+=4; - var pitch = heapFloat[sp>>2];sp+=4; - mandreel_sendmsg_flash("setChannelPitch "+channel+" "+pitch); -} - - -function mandreel_audio_load_flash() -{ - var failed = ""; - - - try - { - var mandreelAudioSwf = g_mandreel_working_folder+"mandreelaudio.swf"; - if ( mandreel_flashaudio_lite ) - mandreelAudioSwf = g_mandreel_working_folder+"mandreelaudiolite.swf"; - var swf = swfobject.createSWF({ data:mandreelAudioSwf, width:"0", height:"0", allowScriptAccess:"always" }, { menu:"false" }, "FlashDivAudio"); - if ( !swf ) - failed = "swfobject.js not avaiable or Unable to open "+mandreelAudioSwf; - } - catch(err) - { - failed = err; - } - - if (failed == "" && !swfobject.hasFlashPlayerVersion("9.0.0")) - failed = "flash player not found"; - - if ( failed != "" ) - { - dump("Failed to create flash audio driver ("+failed+"). Null driver will be used."); - MandreelAudioDriver = "null"; - null_MainAudioDriver(); - } -} - -function fl_MainAudioDriver(audioServer, audioUrl) -{ - mandreel_flashaudio_server = audioServer; - if ( mandreel_flashaudio_lite ) - mandreel_flashaudio_server = ""; - if ( mandreel_flashaudio_server != "" ) - { - Mandreel_window.addEventListener("message", receiveMessage2, false); - var el = document.createElement("iframe"); - el.setAttribute('id', 'ninja-iframe'); - el.setAttribute('width', '0'); - el.setAttribute('height', '0'); - el.setAttribute('frameborder', '0'); - document.body.appendChild(el); - el.onerror = function(message) { alert(message); }; - el.setAttribute('src', audioServer+audioUrl+"/MandreelAudio.html"); - setTimeout("CheckNinjaFrameReady()", 1000); - } - else - { - setTimeout("mandreel_audio_load_flash()", 10); - } -} -var ninjaLoaded = false; -function CheckNinjaFrameReady() -{ - try - { - mandreel_sendmsg_flash("loadFlash"); - } - catch(err) - { - } - if ( !ninjaLoaded ) - setTimeout("CheckNinjaFrameReady()", 1000); -} - -function fl_map_mandreel_audio_functions() -{ - mandreel_audio_init = fl_mandreel_audio_init; - mandreel_audio_end = fl_mandreel_audio_end; - mandreel_audio_update = fl_mandreel_audio_update; - mandreel_audio_createBuffer = fl_mandreel_audio_createBuffer; - mandreel_audio_playChannel = fl_mandreel_audio_playChannel; - mandreel_audio_stopChannel = fl_mandreel_audio_stopChannel; - mandreel_audio_setChannelVolume = fl_mandreel_audio_setChannelVolume; - mandreel_audio_setChannelPan = fl_mandreel_audio_setChannelPan; - mandreel_audio_setChannelPitch = fl_mandreel_audio_setChannelPitch; - if ( mandreel_flashaudio_musicaudiotag ) - { - mandreel_audio_useMusicFunctions = wa_mandreel_audio_useMusicFunctions; - mandreel_audio_playMusic = wa_mandreel_audio_playMusic; - mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic; - mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol; - } - else - dump("WARNING: flash music functions not supported"); - mandreel_audio_checkBuffersPending = fl_mandreel_audio_checkBuffersPending; -} - -function receiveMessage2(event) -{ - ninjaLoaded = true; - fl_map_mandreel_audio_functions(); - setTimeout("MandreelAudioStarted()", 10); -} - -function mandreel_flashlite_checkPreloadFinished() -{ - if ( !fl_internal_mandreel_audio_checkBuffersPending() ) - MandreelAudioStarted(); - else - setTimeout("mandreel_flashlite_checkPreloadFinished()", 10); -} - -function mandreel_flashlite_startPreload() -{ - mandreel_sendmsg_flash("init "+g_mandreel_working_folder); - // preload sounds - var FatLines = mandreelFatData.split('\n'); - for ( var i=0;i end ) - { - sound.pause(); - maudioChannelEnd[i] = null; - } - } - } - } -} - -function at_mandreel_audio_checkBuffersPending(sp) -{ - r_g0 = 0;//wa_imp_mandreel_audio_checkBuffersPending(); -} - -function at_mandreel_audio_createBuffer(sp) -{ - var ptr_fileName = heap32[sp>>2];sp+=4; - var maxChannels = heap32[sp>>2];sp+=4; - var fileName = get_string_from_ptr(ptr_fileName).toLowerCase(); - //wa_imp_mandreel_audio_createBuffer(fileName); - - r_g0 = 0; -} - -function at_mandreel_audio_playChannel(sp) -{ - var ptr_fileName = heap32[sp>>2];sp+=4; - var channel = heap32[sp>>2];sp+=4; - var vol = heapFloat[sp>>2];sp+=4; - var loop = heap32[sp>>2];sp+=4; - var pitch = heapFloat[sp>>2];sp+=4; - var fileName = get_string_from_ptr(ptr_fileName).toLowerCase(); - at_imp_mandreel_audio_playChannel(fileName,channel,vol,loop,pitch); - r_g0 = 0; -} - -function at_mandreel_audio_stopChannel(sp) -{ - var ptr_fileName = heap32[sp>>2];sp+=4; - var channel = heap32[sp>>2];sp+=4; - var index = heapFloat[sp>>2];sp+=4; - at_imp_mandreel_audio_stopChannel(channel); -} - -function at_mandreel_audio_setChannelVolume(sp) -{ - var channel = heap32[sp>>2];sp+=4; - var vol = heapFloat[sp>>2];sp+=4; - //wa_imp_mandreel_audio_setChannelVolume(channel,vol); -} - -function at_mandreel_audio_setChannelPan(sp) -{ - var channel = heap32[sp>>2];sp+=4; - var pan = heapFloat[sp>>2];sp+=4; - //wa_imp_mandreel_audio_setChannelPan(channel,pan); -} - -function at_mandreel_audio_setChannelPitch(sp) -{ - var channel = heap32[sp>>2];sp+=4; - var pitch = heapFloat[sp>>2];sp+=4; - //wa_imp_mandreel_audio_setChannelPitch(channel,pitch); -} - -function at_mandreel_audio_useMusicFunctions(sp) -{ - r_g0 = 1; -} - -function at_MainAudioDriver() -{ - mandreel_audio_init = at_mandreel_audio_init; - mandreel_audio_end = at_mandreel_audio_end; - mandreel_audio_update = at_mandreel_audio_update; - mandreel_audio_createBuffer = at_mandreel_audio_createBuffer; - mandreel_audio_playChannel = at_mandreel_audio_playChannel; - mandreel_audio_stopChannel = at_mandreel_audio_stopChannel; - mandreel_audio_setChannelVolume = at_mandreel_audio_setChannelVolume; - mandreel_audio_setChannelPan = at_mandreel_audio_setChannelPan; - mandreel_audio_setChannelPitch = at_mandreel_audio_setChannelPitch; - mandreel_audio_useMusicFunctions = at_mandreel_audio_useMusicFunctions; - mandreel_audio_playMusic = wa_mandreel_audio_playMusic; - mandreel_audio_stopMusic = wa_mandreel_audio_stopMusic; - mandreel_audio_checkBuffersPending = at_mandreel_audio_checkBuffersPending; - mandreel_audio_setMusicVol = wa_mandreel_audio_setMusicVol; - - setTimeout("mandreel_audiotag_PreloadAssets()", 10); -} - -var maudiotagPreloadState = "start"; -var maudiotagPreloadAssets = 0; -var maudiotagCurrentPreloadAsset = 0; -var maudiotagPreloadAsync = false; -var maudiotagDurations = Array(); -var maudiotagChannelsCreated = 0; -var maudiotagChannels = Array(); -var maudiotagChannelsLoaded = Array(); -var maudiotagAudioSpriteFound = false; -var maudiotagAvailableChannels = new Array(); -var maudioSecondsPos = new Array(); -var maudioChannelEnd = new Array(); - -function mandreel_audiotag_PreloadAssets() -{ - if ( maudiotagPreloadState == "start" ) - { - maudiotagPreloadAssets = mandreelFatData.split('\n'); - maudiotagCurrentPreloadAsset = 0; - maudiotagPreloadState = "preloading"; - } - else if ( maudiotagPreloadState == "preloading" ) - { - var queued = false; - while ( !queued && maudiotagPreloadState != "done" ) - { - if ( maudiotagCurrentPreloadAsset < maudiotagPreloadAssets.length ) - { - var params = maudiotagPreloadAssets[maudiotagCurrentPreloadAsset].split(','); - if ( params[0] == "audiofile" && params[1]) - { - var duration = params[3]; - var fileNameNoExt = wa_getFileNameNoExt(params[1]); - maudiotagDurations[fileNameNoExt] = duration|0; - dump("audiotag duration ("+params[1]+") "+duration); - } - else if ( params[0] == "audiotagfile" ) - { - var type = params[1]; - var filesize = params[3]; - var numsounds = params[4]; - var at = new Audio(); - if ( !maudiotagAudioSpriteFound && at.canPlayType && at.canPlayType("audio/"+type) != "" ) - { - maudiotagLoadPackFile(params[2],filesize,numsounds,type); - maudiotagAudioSpriteFound = true; - queued = true; - } - } - else if ( params[0] == "audiopreloadasync" ) - { - maudiotagPreloadAsync = true; - } - maudiotagCurrentPreloadAsset++; - } - else - queued = true; - - if ( maudiotagCurrentPreloadAsset >= maudiotagPreloadAssets.length ) - { - maudiotagPreloadState = "done"; - maudiotagPreloadAssets = 0; - } - } - } - - if ( maudiotagPreloadState == "done" ) - { - setTimeout("MandreelAudioStarted()", 10); - } - else - setTimeout("mandreel_audiotag_PreloadAssets()", 10); -} - -function maudiotagLoadPackFile(filename,filesize,numsounds,atype) -{ - dump("audiotag packfile ("+filename+") ("+filesize+") ("+numsounds+")"); - var url = g_mandreel_working_folder+filename; - dump("audiotag: loading packed data ("+filename+") url("+url+")"); - var request = new XMLHttpRequest(); - request.open("GET", url, true); - request.responseType = "arraybuffer"; - request.onreadystatechange = function() - { - if (request.readyState == 4) - { - if (request.status == 404) - return; - if ( request.response != null ) - audiotagParsePreloadFile(request.response,numsounds,atype); - } - } - request.send(); -} - -function audiotagParsePreloadFile(response,numsounds,atype) -{ - var pos = 0; - var bytes = new Uint8Array(response); - var i = 0; - if ( webAudioPreloadAsync ) - webAudioPreloadBytes = bytes; - var secondsPos = 0.0; - while ( pos < bytes.byteLength && i < numsounds) - { - // filename - var fileName = ""; - while ( bytes[pos] != 0 ) - { - fileName += String.fromCharCode(bytes[pos]); - pos++; - } - pos++; - // filesize - var filesize = bytes[pos] | (bytes[pos+1]<<8) | (bytes[pos+2]<<16) | (bytes[pos+3]<<24); - pos += 4; - var fileNameNoExt = wa_getFileNameNoExt(fileName); - var duration = maudiotagDurations[fileNameNoExt]; - dump("afile ("+fileName+") duration("+duration+") posseconds("+secondsPos+")"); - maudioSecondsPos[fileNameNoExt] = secondsPos; - secondsPos += duration / 1000.0; - secondsPos += 0.25; - dump("second "+i+" "+secondsPos); - - i++; - } - - // contents - var contentSize = bytes.byteLength - pos; - var bufferdata = new Uint8Array(contentSize); - bufferdata.set(bytes.subarray(pos,pos+contentSize)); - var ascii = ''; - for (var i=0; i 0 ) - { - var sound = maudiotagAvailableChannels.pop(); - var duration = maudiotagDurations[fileNameNoExt]; - sound.currentTime = time; - console.log("OK "+sound.currentTime); - sound.play(); - maudiotagChannels[channel] = sound; - maudioChannelEnd[channel] = time+(duration/1000.0); - } - } - else - { - console.log("not found play "+fileNameNoExt); - } -} - -function at_imp_mandreel_audio_stopChannel(channel) -{ - var sound = maudiotagChannels[channel]; - if ( sound != null ) - { - sound.pause(); - maudiotagAvailableChannels.push(sound); - maudiotagChannels[channel] = null; - } -} - -var mandreel_flash_socket_callback = null - -function mandreel_flash_sockets_load_flash(callback) -{ - mandreel_flash_socket_callback = callback; - var failed = ""; - try - { - var mandreelSocketsSwf = g_mandreel_working_folder+"mandreelflashsockets.swf"; - var swf = swfobject.createSWF({ data:mandreelSocketsSwf, width:"0", height:"0", allowScriptAccess:"always" }, { menu:"false" }, "FlashDivSockets"); - if ( !swf ) - failed = "Unable to open MandreelFlashSockets.swf"; - } - catch(err) - { - failed = err; - } -} - -var js_mandreel_flash_socket_swf_loaded = false; - -function js_mandreel_flash_socket_ready() -{ - js_mandreel_flash_socket_swf_loaded = true; - if (mandreel_flash_socket_callback) - mandreel_flash_socket_callback(); -} - - -function Mandreel_Socket_InitLibrary(sp) -{ - //mandreel_flash_sockets_load_flash(); -} - - -function mandreel_flash_sockets_getFlashMovieObject(movieName) -{ - if (Mandreel_window.document[movieName]) - { - return Mandreel_window.document[movieName]; - } - if (navigator.appName.indexOf("Microsoft Internet")==-1) - { - if (document.embeds && document.embeds[movieName]) - return document.embeds[movieName]; - } - else - { - return document.getElementById(movieName); - } -} - -function js_mandreel_flash_socket_onError(message) -{ - var id = parseInt(message); - - var sp = g_stack_pointer+512*1024; - - dump('on error ' + id); - - heap32[sp>>2] = id; - mandreel_flash_tcp_onError(sp); - -} -function js_mandreel_flash_socket_onConnect(message) -{ - var id = parseInt(message); - - var sp = g_stack_pointer+512*1024; - - dump('connected ' + id); - - heap32[sp>>2] = id; - mandreel_flash_tcp_onConnect(sp); -} - -function js_mandreel_flash_tcp_receive_callbak(message) -{ - var strings = message.split(' '); - - var id = parseInt(strings[0]); - var data = strings[1]; - - var sp = g_stack_pointer+512*1024; - - var data_ptr = sp + 1024; - fill_ptr_from_string(data_ptr,data); - - heap32[sp>>2] = id; - heap32[(sp+4)>>2] = data_ptr; - mandreel_flash_tcp_receive_callbak(sp); -} - -function js_mandreel_flash_tcp_update(sp) -{ - var id = heap32[sp>>2];sp+=4; - var size = heap32[sp>>2];sp+=4; - - var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets"); - flashMovie.receiveMessage("receive " + id + " " + size); -} - -function js_mandreel_flash_tcp_create(sp) -{ - var id = heap32[sp>>2];sp+=4; - - var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets"); - flashMovie.receiveMessage("create " + id); -} - -function js_mandreel_flash_tcp_connectTo(sp) -{ - var id = heap32[sp>>2];sp+=4; - var ptr_string = heap32[sp>>2];sp+=4; - var port = heap32[sp>>2];sp+=4; - - var server_name = get_string_from_ptr(ptr_string); - - var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets"); - flashMovie.receiveMessage("connect " + id + " " + server_name + " " + port); -} - -function js_mandreel_flash_tcp_close(sp) -{ - var id = heap32[sp>>2];sp+=4; - - - var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets"); - flashMovie.receiveMessage("close " + id); - dump("js_mandreel_flash_tcp_close " + id); -} -function js_mandreel_flash_tcp_write(sp) -{ - var id = heap32[sp>>2];sp+=4; - var ptr = heap32[sp>>2];sp+=4; - - var message = get_string_from_ptr(ptr); - - dump('js_mandreel_flash_tcp_write ' + message); - - var flashMovie=mandreel_flash_sockets_getFlashMovieObject("FlashDivSockets"); - r_g0 = flashMovie.receiveMessage("send " + id + " " + message); -} - - - -function js_mandreel_flash_tcp_dump(msg) -{ - dump(msg); -} - -function _GLOBAL__I_Landscape02Vtx(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = _ZL10raycastBar; - heap32[(g0)] = 8; - r0 = r0 >> 2; - _Znwj(i7); - heap32[(r0+10006)] = r_g0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = 0; - gettimeofday(i7); - heap32[(r0+10001)] = 0; - heap32[(r0+10005)] = 0; - heap32[(r0+10004)] = 9999; - heap32[(r0+10003)] = 0; - heap32[(r0+10002)] = 0; - return; -} - -function _GLOBAL__D_Landscape02Vtx(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = _ZL10raycastBar; - r0 = r0 >> 2; - r0 = heap32[(r0+10006)]; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN15DemoApplication6myinitEv(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN15DemoApplication16getDynamicsWorldEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - r_g0 = r0; - return; -} - -function _ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heapU16[(r0+14)>>1]; - r3 = heapU16[(r1+4)>>1]; - r2 = r2 & r3; - r2 = r2 & 65535; - if(r2 ==0) //_LBB4_2 -{ - r0 = 0; - r_g0 = r0; - return; -} -else{ - r1 = heapU16[(r1+6)>>1]; - r0 = heapU16[(r0+12)>>1]; - r0 = r1 & r0; - r0 = r0 & 65535; - r1 = 0; - r0 = r0 != r1; - r0 = r0 & 1; - r_g0 = r0; - return; -} -} - -function _ZN16btCollisionWorld24ClosestRayResultCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN16btCollisionWorld24ClosestRayResultCallbackE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN16btCollisionWorld24ClosestRayResultCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN16btCollisionWorld24ClosestRayResultCallbackE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN16btCollisionWorld24ClosestRayResultCallback15addSingleResultERNS_14LocalRayResultEb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(fp)]; - f0 = heapFloat[(r0+6)]; - r1 = r1 >> 2; - f1 = heapFloat[(r1+1)]; - if(f0 <=f1) //_LBB7_2 -{ - r2 = heap32[(fp+2)]; - heapFloat[(r1+1)] = f0; - r3 = heap32[(r0)]; - heap32[(r1+2)] = r3; - if(r2 ==0) //_LBB7_4 -{ - r2 = r3 >> 2; - f0 = heapFloat[(r0+2)]; - f1 = heapFloat[(r2+1)]; - f2 = heapFloat[(r0+3)]; - f3 = heapFloat[(r2+2)]; - f4 = heapFloat[(r2+5)]; - f5 = heapFloat[(r2+6)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r0+4)]; - f7 = heapFloat[(r2+3)]; - f8 = heapFloat[(r2+9)]; - f9 = heapFloat[(r2+10)]; - f10 = heapFloat[(r2+11)]; - f11 = heapFloat[(r2+7)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f11*f6; - f1 = f1+f3; - f0 = f0+f2; - f2 = f10*f6; - f3 = f4+f5; - heapFloat[(r1+13)] = f1; - f0 = f0+f2; - heapFloat[(r1+14)] = f3; - heapFloat[(r1+15)] = f0; - heap32[(r1+16)] = 0; -} -else{ - heap32[(r1+13)] = heap32[(r0+2)]; - heap32[(r1+14)] = heap32[(r0+3)]; - heap32[(r1+15)] = heap32[(r0+4)]; - heap32[(r1+16)] = heap32[(r0+5)]; -} - f0 = 1; - f1 = heapFloat[(r0+6)]; - f2 = heapFloat[(r1+9)]; - f3 = heapFloat[(r1+5)]; - f0 = f0-f1; - f3 = f3*f0; - f2 = f2*f1; - f2 = f3+f2; - heapFloat[(r1+17)] = f2; - f2 = heapFloat[(r1+6)]; - f3 = heapFloat[(r1+10)]; - f2 = f2*f0; - f3 = f3*f1; - f2 = f2+f3; - heapFloat[(r1+18)] = f2; - f2 = heapFloat[(r1+7)]; - f3 = heapFloat[(r1+11)]; - f0 = f2*f0; - f1 = f3*f1; - f0 = f0+f1; - heapFloat[(r1+19)] = f0; - f0 = heapFloat[(r0+6)]; - f_g0 = f0; - return; -} -else{ - r0 = _2E_str3; - r1 = _2E_str4; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 250; - _assert(i7); -} -} - -function _ZN20btDefaultMotionStateD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV20btDefaultMotionState; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN20btDefaultMotionStateD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV20btDefaultMotionState; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZNK20btDefaultMotionState17getWorldTransformER11btTransform(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0+17)]; - f1 = heapFloat[(r0+1)]; - f2 = heapFloat[(r0+21)]; - f3 = heapFloat[(r0+5)]; - f4 = heapFloat[(r0+2)]; - f5 = heapFloat[(r0+6)]; - f6 = f1*f0; - f7 = f3*f2; - f8 = heapFloat[(r0+25)]; - f9 = heapFloat[(r0+9)]; - f10 = heapFloat[(r0+18)]; - f11 = heapFloat[(r0+22)]; - f12 = heapFloat[(r0+19)]; - f13 = heapFloat[(r0+13)]; - f14 = heapFloat[(r0+3)]; - f15 = heapFloat[(r0+23)]; - f16 = heapFloat[(r0+30)]; - f17 = heapFloat[(r0+14)]; - f18 = heapFloat[(r0+7)]; - r1 = heap32[(fp+1)]; - f19 = heapFloat[(r0+26)]; - f20 = heapFloat[(r0+31)]; - f21 = heapFloat[(r0+27)]; - f22 = heapFloat[(r0+15)]; - f23 = heapFloat[(r0+11)]; - f24 = heapFloat[(r0+10)]; - f25 = heapFloat[(r0+29)]; - f26 = f4*f0; - f27 = f5*f2; - f6 = f6+f7; - f7 = f9*f8; - r0 = r1 >> 2; - f28 = f14*f0; - f29 = f18*f2; - f26 = f26+f27; - f27 = f24*f8; - f6 = f6+f7; - f7 = f28+f29; - f28 = f23*f8; - f26 = f26+f27; - heapFloat[(r0)] = f6; - f6 = f1*f10; - f27 = f3*f11; - f7 = f7+f28; - heapFloat[(r0+1)] = f26; - heapFloat[(r0+2)] = f7; - f7 = f4*f10; - f26 = f5*f11; - f6 = f6+f27; - f27 = f9*f19; - f28 = f14*f10; - f29 = f18*f11; - f7 = f7+f26; - f26 = f24*f19; - f6 = f6+f27; - heap32[(r0+3)] = 0; - f27 = f28+f29; - f28 = f23*f19; - f7 = f7+f26; - heapFloat[(r0+4)] = f6; - f1 = f1*f12; - f3 = f3*f15; - f6 = f27+f28; - heapFloat[(r0+5)] = f7; - heapFloat[(r0+6)] = f6; - f4 = f4*f12; - f5 = f5*f15; - f1 = f1+f3; - f3 = f9*f21; - f6 = -f25; - f7 = f14*f12; - f9 = f18*f15; - f4 = f4+f5; - f5 = f24*f21; - f1 = f1+f3; - heap32[(r0+7)] = 0; - f3 = f0*f13; - f14 = f2*f17; - f0 = f0*f6; - f2 = f2*f16; - f7 = f7+f9; - f9 = f23*f21; - f4 = f4+f5; - heapFloat[(r0+8)] = f1; - f1 = f10*f13; - f5 = f11*f17; - f10 = f10*f6; - f11 = f11*f16; - f3 = f3+f14; - f14 = f8*f22; - f0 = f0-f2; - f2 = f8*f20; - f7 = f7+f9; - heapFloat[(r0+9)] = f4; - heapFloat[(r0+10)] = f7; - f4 = f12*f13; - f7 = f15*f17; - f6 = f12*f6; - f8 = f15*f16; - f1 = f1+f5; - f5 = f19*f22; - f9 = f10-f11; - f10 = f19*f20; - f3 = f3+f14; - f0 = f0-f2; - f2 = f4+f7; - f4 = f21*f22; - f6 = f6-f8; - f7 = f21*f20; - f1 = f1+f5; - f5 = f9-f10; - f0 = f3+f0; - heap32[(r0+11)] = 0; - f2 = f2+f4; - f3 = f6-f7; - f1 = f1+f5; - heapFloat[(r0+12)] = f0; - f0 = f2+f3; - heapFloat[(r0+13)] = f1; - heapFloat[(r0+14)] = f0; - heap32[(r0+15)] = 0; - return; -} - -function _ZN20btDefaultMotionState17setWorldTransformERK11btTransform(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r0+17)]; - f2 = heapFloat[(r1+1)]; - f3 = heapFloat[(r0+21)]; - f4 = heapFloat[(r0+18)]; - f5 = heapFloat[(r0+22)]; - f6 = f1*f0; - f7 = f3*f2; - f8 = heapFloat[(r1+2)]; - f9 = heapFloat[(r0+25)]; - f10 = heapFloat[(r1+8)]; - f11 = heapFloat[(r0+29)]; - f12 = heapFloat[(r1+4)]; - f13 = heapFloat[(r0+19)]; - f14 = heapFloat[(r1+9)]; - f15 = heapFloat[(r0+30)]; - f16 = heapFloat[(r1+5)]; - f17 = heapFloat[(r0+23)]; - f18 = heapFloat[(r1+10)]; - f19 = heapFloat[(r0+31)]; - f20 = heapFloat[(r1+6)]; - f21 = heapFloat[(r0+27)]; - f22 = heapFloat[(r0+26)]; - f23 = f4*f0; - f24 = f5*f2; - f6 = f6+f7; - f7 = f9*f8; - f25 = heapFloat[(r1+14)]; - f26 = heapFloat[(r1+13)]; - f27 = heapFloat[(r1+12)]; - f28 = f13*f0; - f29 = f17*f2; - f23 = f23+f24; - f24 = f22*f8; - f6 = f6+f7; - f7 = f28+f29; - f28 = f21*f8; - f23 = f23+f24; - heapFloat[(r0+1)] = f6; - f6 = f1*f12; - f24 = f3*f16; - f7 = f7+f28; - heapFloat[(r0+2)] = f23; - heapFloat[(r0+3)] = f7; - f7 = f4*f12; - f23 = f5*f16; - f6 = f6+f24; - f24 = f9*f20; - f28 = f13*f12; - f29 = f17*f16; - f7 = f7+f23; - f23 = f22*f20; - f6 = f6+f24; - heap32[(r0+4)] = 0; - f24 = f28+f29; - f28 = f21*f20; - f7 = f7+f23; - heapFloat[(r0+5)] = f6; - f1 = f1*f10; - f3 = f3*f14; - f6 = f24+f28; - heapFloat[(r0+6)] = f7; - heapFloat[(r0+7)] = f6; - f4 = f4*f10; - f5 = f5*f14; - f1 = f1+f3; - f3 = f9*f18; - f6 = f13*f10; - f7 = f17*f14; - f4 = f4+f5; - f5 = f22*f18; - f1 = f1+f3; - heap32[(r0+8)] = 0; - f0 = f0*f11; - f2 = f2*f15; - f3 = f6+f7; - f6 = f21*f18; - f4 = f4+f5; - heapFloat[(r0+9)] = f1; - f1 = f12*f11; - f5 = f16*f15; - f0 = f0+f2; - f2 = f8*f19; - f3 = f3+f6; - heapFloat[(r0+10)] = f4; - f0 = f0+f2; - heapFloat[(r0+11)] = f3; - f2 = f10*f11; - f3 = f14*f15; - f1 = f1+f5; - f4 = f20*f19; - f1 = f1+f4; - f2 = f2+f3; - f3 = f18*f19; - f0 = f0+f27; - heap32[(r0+12)] = 0; - f2 = f2+f3; - f1 = f1+f26; - heapFloat[(r0+13)] = f0; - f0 = f2+f25; - heapFloat[(r0+14)] = f1; - heapFloat[(r0+15)] = f0; - heap32[(r0+16)] = 0; - return; -} - -function _ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN17btTypedConstraint23solveConstraintObsoleteER11btRigidBodyS1_f(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN13BenchmarkDemo15displayCallbackEv(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN13BenchmarkDemo11exitPhysicsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+9)]; -if(!(r1 <1)) //_LBB15_5 -{ - r1 = 0; -_3: while(true){ - r2 = heap32[(r0+11)]; - r3 = r1 << 2; - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; -if(!(r2 ==0)) //_LBB15_4 -{ - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+1)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r3)>>2](i7); -} - r1 = (r1 + 1)|0; - r2 = heap32[(r0+9)]; - if(r2 >r1) //_LBB15_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - r1 = heap32[(r0+1)]; - r2 = r1 >> 2; - r2 = heap32[(r2+2)]; - r3 = (r2 + -1)|0; -_9: do { -if(!(r3 <0)) //_LBB15_16 -{ - r3 = 1; - r2 = (r3 - r2)|0; -_11: while(true){ - r3 = r1 >> 2; - r3 = heap32[(r3+4)]; - r4 = r2 << 2; - r3 = (r3 - r4)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r4 = heapU8[r3+232]; - r4 = r4 & 2; -if(!(r4 ==0)) //_LBB15_9 -{ - if(r3 !=0) //_LBB15_10 -{ - r4 = r3 >> 2; - r4 = heap32[(r4+118)]; -if(!(r4 ==0)) //_LBB15_9 -{ - r1 = r4 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+1)]; - heap32[(g0)] = r4; - __FUNCTION_TABLE__[(r1)>>2](i7); - r1 = heap32[(r0+1)]; -} -} -} - r4 = r1 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+9)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r4)>>2](i7); - if(r3 !=0) //_LBB15_15 -{ - r1 = r3 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+2)]; - heap32[(g0)] = r3; - __FUNCTION_TABLE__[(r1)>>2](i7); -} - if(r2 ==0) //_LBB15_16 -{ -break _9; -} -else{ - r2 = (r2 + 1)|0; - r1 = heap32[(r0+1)]; -continue _11; -} -} -} -} while(0); - r1 = heap32[(r0+4)]; -_23: do { -if(!(r1 <1)) //_LBB15_21 -{ - r1 = 0; -_25: while(true){ - r2 = heap32[(r0+6)]; - r3 = r1 << 2; - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; -if(!(r2 ==0)) //_LBB15_20 -{ - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+1)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r3)>>2](i7); -} - r1 = (r1 + 1)|0; - r2 = heap32[(r0+4)]; - if(r2 >r1) //_LBB15_18 -{ -continue _25; -} -else{ -break _23; -} -} -} -} while(0); - r1 = heap32[(r0+1)]; -if(!(r1 ==0)) //_LBB15_23 -{ - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+1)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r2)>>2](i7); -} - r1 = heap32[(r0+15)]; -if(!(r1 ==0)) //_LBB15_25 -{ - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+1)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r2)>>2](i7); -} - r1 = heap32[(r0+13)]; -if(!(r1 ==0)) //_LBB15_27 -{ - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+1)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r2)>>2](i7); -} - r1 = heap32[(r0+14)]; -if(!(r1 ==0)) //_LBB15_29 -{ - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+1)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r2)>>2](i7); -} - r0 = heap32[(r0+16)]; -if(!(r0 ==0)) //_LBB15_31 -{ - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); -} - return; -} - -function _ZN7RagDollD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV7RagDoll; - r2 = 0; - r3 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r3)] = r1; - r1 = r2; -_1: while(true){ - r4 = heap32[(r3+1)]; - r5 = r1 << 2; - r6 = r4 >> 2; - r5 = (r0 - r5)|0; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r5 = r5 >> 2; - r6 = heap32[(r6+14)]; - r7 = heap32[(r5+24)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r7; - __FUNCTION_TABLE__[(r6)>>2](i7); - r4 = heap32[(r5+24)]; -if(!(r4 ==0)) //_LBB16_3 -{ - r5 = r4 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+1)]; - heap32[(g0)] = r4; - __FUNCTION_TABLE__[(r5)>>2](i7); -} - r4 = (r2 - r1)|0; - r4 = r4 << 2; - r4 = (r0 + r4)|0; - r1 = (r1 + -1)|0; - r4 = r4 >> 2; - heap32[(r4+24)] = 0; - if(r1 !=-10) //_LBB16_1 -{ -continue _1; -} -else{ -break _1; -} -} - r1 = 2; -_7: while(true){ - r2 = heap32[(r3+1)]; - r4 = r2 >> 2; - r5 = r1 << 2; - r4 = heap32[(r4)]; - r5 = (r0 + r5)|0; - r4 = r4 >> 2; - r5 = r5 >> 2; - r4 = heap32[(r4+21)]; - r6 = heap32[(r5+11)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r6; - __FUNCTION_TABLE__[(r4)>>2](i7); - r2 = heap32[(r5+11)]; - r4 = r2 >> 2; - r4 = heap32[(r4+118)]; - if(r4 !=0) //_LBB16_7 -{ - r2 = r4 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+1)]; - heap32[(g0)] = r4; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = heap32[(r5+11)]; -} -if(!(r2 ==0)) //_LBB16_10 -{ - r4 = r2 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+2)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r4)>>2](i7); -} - heap32[(r5+11)] = 0; - r2 = heap32[(r5)]; -if(!(r2 ==0)) //_LBB16_12 -{ - r4 = r2 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+1)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r4)>>2](i7); -} - r1 = (r1 + 1)|0; - heap32[(r5)] = 0; - if(r1 !=13) //_LBB16_5 -{ -continue _7; -} -else{ -break _7; -} -} - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN7RagDollD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV7RagDoll; - r2 = 0; - r3 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r3)] = r1; - r1 = r2; -_1: while(true){ - r4 = heap32[(r3+1)]; - r5 = r1 << 2; - r6 = r4 >> 2; - r5 = (r0 - r5)|0; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r5 = r5 >> 2; - r6 = heap32[(r6+14)]; - r7 = heap32[(r5+24)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r7; - __FUNCTION_TABLE__[(r6)>>2](i7); - r4 = heap32[(r5+24)]; -if(!(r4 ==0)) //_LBB17_3 -{ - r5 = r4 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+1)]; - heap32[(g0)] = r4; - __FUNCTION_TABLE__[(r5)>>2](i7); -} - r4 = (r2 - r1)|0; - r4 = r4 << 2; - r4 = (r0 + r4)|0; - r1 = (r1 + -1)|0; - r4 = r4 >> 2; - heap32[(r4+24)] = 0; - if(r1 !=-10) //_LBB17_1 -{ -continue _1; -} -else{ -break _1; -} -} - r1 = 2; -_7: while(true){ - r2 = heap32[(r3+1)]; - r4 = r2 >> 2; - r5 = r1 << 2; - r4 = heap32[(r4)]; - r5 = (r0 + r5)|0; - r4 = r4 >> 2; - r5 = r5 >> 2; - r4 = heap32[(r4+21)]; - r6 = heap32[(r5+11)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r6; - __FUNCTION_TABLE__[(r4)>>2](i7); - r2 = heap32[(r5+11)]; - r4 = r2 >> 2; - r4 = heap32[(r4+118)]; - if(r4 !=0) //_LBB17_7 -{ - r2 = r4 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+1)]; - heap32[(g0)] = r4; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = heap32[(r5+11)]; -} -if(!(r2 ==0)) //_LBB17_10 -{ - r4 = r2 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+2)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r4)>>2](i7); -} - heap32[(r5+11)] = 0; - r2 = heap32[(r5)]; -if(!(r2 ==0)) //_LBB17_12 -{ - r4 = r2 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+1)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r4)>>2](i7); -} - r1 = (r1 + 1)|0; - heap32[(r5)] = 0; - if(r1 !=13) //_LBB17_5 -{ -continue _7; -} -else{ -break _7; -} -} - return; -} - -function _ZN13BenchmarkDemoD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV13BenchmarkDemo; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN13BenchmarkDemo11exitPhysicsEv(i7); - r1 = heap32[(r2+11)]; -if(!(r1 ==0)) //_LBB18_4 -{ - r3 = heapU8[r0+48]; -if(!(r3 ==0)) //_LBB18_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+11)] = 0; -} - r1 = 1; - heap8[r0+48] = r1; - heap32[(r2+11)] = 0; - heap32[(r2+9)] = 0; - heap32[(r2+10)] = 0; - r3 = heap32[(r2+6)]; -if(!(r3 ==0)) //_LBB18_8 -{ - r4 = heapU8[r0+28]; -if(!(r4 ==0)) //_LBB18_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+6)] = 0; -} - heap8[r0+28] = r1; - heap32[(r2+6)] = 0; - heap32[(r2+4)] = 0; - heap32[(r2+5)] = 0; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -168;var g0 = i7>>2; // save stack - r0 = heap32[(fp+3)]; -if(!(r0 ==0)) //_LBB19_3 -{ - r1 = r0 >> 2; - r1 = heap32[(r1+1)]; -if(!(r1 !=35)) //_LBB19_3 -{ - r0 = _2E_str5; - r1 = _2E_str6; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 1297; - _assert(i7); -} -} - f0 = heapFloat[(fp+1)]; - r1 = sp + -152; - r2 = r1 >> 2; - heap32[(fp+-38)] = 0; - heap32[(r2+1)] = 0; - heap32[(r2+2)] = 0; - f1 = 0; - heap32[(r2+3)] = 0; -if(!(f0 ==f1)) //_LBB19_5 -{ - r3 = r0 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+8)]; - heap32[(g0)] = r0; - heapFloat[(g0+1)] = f0; - heap32[(g0+2)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); -} - r1 = heap32[(fp)]; - r3 = heap32[(fp+2)]; - r4 = gNumAlignedAllocs; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - heap32[(r4)] = r5; - heap32[(g0)] = 627; - malloc(i7); - r4 = r_g0; - if(r4 !=0) //_LBB19_7 -{ - r5 = 0; - r6 = (r4 + 4)|0; - r5 = (r5 - r6)|0; - r5 = r5 & 15; - r5 = (r4 + r5)|0; - r6 = (r5 + 4)|0; - r5 = r5 >> 2; - heap32[(r5)] = r4; - r4 = r6; -} - r5 = r4 >> 2; - heap32[(r5+41)] = 1065353216; - heap32[(r5+42)] = 1065353216; - heap32[(r5+43)] = 1065353216; - heap32[(r5+44)] = 0; - heap32[(r5+45)] = 0; - heap32[(r5+46)] = 1566444395; - heap32[(r5+47)] = 0; - heap32[(r5+48)] = 0; - heap32[(r5+49)] = 0; - heap32[(r5+50)] = 0; - heap32[(r5+51)] = 1; - heap32[(r5+52)] = -1; - heap32[(r5+53)] = -1; - heap32[(r5+54)] = 1; - heap32[(r5+55)] = 0; - heap32[(r5+56)] = 1056964608; - heap32[(r5+57)] = 0; - heap32[(r5+58)] = 1; - heap32[(r5+59)] = 0; - heap32[(r5+60)] = 1065353216; - heap32[(r5+61)] = 0; - heap32[(r5+62)] = 0; - heap32[(r5+63)] = 0; - heap32[(r5+1)] = 1065353216; - heap32[(r5+2)] = 0; - heap32[(r5+3)] = 0; - heap32[(r5+4)] = 0; - heap32[(r5+5)] = 0; - heap32[(r5+6)] = 1065353216; - heap32[(r5+7)] = 0; - heap32[(r5+8)] = 0; - heap32[(r5+9)] = 0; - heap32[(r5+10)] = 0; - heap32[(r5+11)] = 1065353216; - heap32[(r5+12)] = 0; - heap32[(r5+13)] = 0; - heap32[(r5+14)] = 0; - r6 = _ZTV11btRigidBody; - heap32[(r5+15)] = 0; - r6 = (r6 + 8)|0; - heap32[(r5+16)] = 0; - r7 = 1; - heap32[(r5)] = r6; - heap8[r4+492] = r7; - heap32[(r5+122)] = 0; - heap32[(r5+120)] = 0; - r6 = sp + -136; - heap32[(r5+121)] = 0; - r7 = r6 >> 2; - heapFloat[(fp+-34)] = f0; - heap32[(r7+1)] = 0; - heap32[(r7+18)] = r0; - heap32[(r7+19)] = heap32[(fp+-38)]; - heap32[(r7+20)] = heap32[(r2+1)]; - heap32[(r7+21)] = heap32[(r2+2)]; - heap32[(r7+22)] = heap32[(r2+3)]; - heap32[(r7+23)] = 0; - heap32[(r7+24)] = 0; - heap32[(r7+25)] = 1056964608; - heap32[(r7+26)] = 0; - heap32[(r7+27)] = 1061997773; - r0 = 0; - heap32[(r7+28)] = 1065353216; - heap8[sp+-20] = r0; - heap32[(r7+30)] = 1000593162; - heap32[(r7+31)] = 1008981770; - heap32[(r7+32)] = 1008981770; - heap32[(r7+33)] = 1008981770; - heap32[(r7+2)] = 1065353216; - heap32[(r7+3)] = 0; - heap32[(r7+4)] = 0; - heap32[(r7+5)] = 0; - heap32[(r7+6)] = 0; - heap32[(r7+7)] = 1065353216; - heap32[(r7+8)] = 0; - heap32[(r7+9)] = 0; - heap32[(r7+10)] = 0; - heap32[(r7+11)] = 0; - heap32[(r7+12)] = 1065353216; - heap32[(r7+13)] = 0; - heap32[(r7+14)] = 0; - heap32[(r7+15)] = 0; - heap32[(r7+16)] = 0; - heap32[(r7+17)] = 0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r6; - _ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7); - r0 = r3 >> 2; - heap32[(r5+1)] = heap32[(r0)]; - heap32[(r5+2)] = heap32[(r0+1)]; - heap32[(r5+3)] = heap32[(r0+2)]; - heap32[(r5+4)] = heap32[(r0+3)]; - heap32[(r5+5)] = heap32[(r0+4)]; - heap32[(r5+6)] = heap32[(r0+5)]; - heap32[(r5+7)] = heap32[(r0+6)]; - heap32[(r5+8)] = heap32[(r0+7)]; - heap32[(r5+9)] = heap32[(r0+8)]; - heap32[(r5+10)] = heap32[(r0+9)]; - heap32[(r5+11)] = heap32[(r0+10)]; - heap32[(r5+12)] = heap32[(r0+11)]; - heap32[(r5+13)] = heap32[(r0+12)]; - heap32[(r5+14)] = heap32[(r0+13)]; - heap32[(r5+15)] = heap32[(r0+14)]; - r1 = r1 >> 2; - heap32[(r5+16)] = heap32[(r0+15)]; - heap32[(r5+46)] = heap32[(r1+2)]; - r0 = heap32[(r1+1)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+20)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - __FUNCTION_TABLE__[(r1)>>2](i7); - r_g0 = r4; - return; -} - -function _ZN13BenchmarkDemoD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV13BenchmarkDemo; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN13BenchmarkDemo11exitPhysicsEv(i7); - r1 = heap32[(r2+11)]; -if(!(r1 ==0)) //_LBB20_4 -{ - r3 = heapU8[r0+48]; -if(!(r3 ==0)) //_LBB20_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+11)] = 0; -} - r1 = 1; - heap8[r0+48] = r1; - heap32[(r2+11)] = 0; - heap32[(r2+9)] = 0; - heap32[(r2+10)] = 0; - r3 = heap32[(r2+6)]; -if(!(r3 ==0)) //_LBB20_8 -{ - r4 = heapU8[r0+28]; -if(!(r4 ==0)) //_LBB20_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+6)] = 0; -} - heap8[r0+28] = r1; - heap32[(r2+6)] = 0; - heap32[(r2+4)] = 0; - heap32[(r2+5)] = 0; - return; -} - -function _ZN13BenchmarkDemo20clientMoveAndDisplayEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -128;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+1)]; -if(!(r1 ==0)) //_LBB21_2 -{ - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 1015580809; - heap32[(g0+2)] = 1; - heap32[(g0+3)] = 1015580809; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = heap32[(r0+1)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+5)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r2)>>2](i7); -} - r1 = heap32[(r0+17)]; -if(!(r1 !=7)) //_LBB21_10 -{ - r1 = _ZL10raycastBar; - r2 = r1 >> 2; - r0 = heap32[(r0+1)]; - r3 = heap32[(r2+10006)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = 0; - r3 = 0; - gettimeofday(i7); -_6: while(true){ - r4 = sp + -96; - r5 = r4 >> 2; - heap32[(r5+1)] = 1065353216; - r6 = 1; - heap32[(r5+2)] = 0; - r7 = -1; - heap16[(sp+-84)>>1] = r6; - r6 = _ZTVN16btCollisionWorld24ClosestRayResultCallbackE; - heap16[(sp+-82)>>1] = r7; - r7 = (r1 + r3)|0; - r6 = (r6 + 8)|0; - heap32[(r5+4)] = 0; - r8 = r7 >> 2; - heap32[(fp+-24)] = r6; - heap32[(r5+5)] = heap32[(r8)]; - heap32[(r5+6)] = heap32[(r8+1)]; - heap32[(r5+7)] = heap32[(r8+2)]; - heap32[(r5+8)] = heap32[(r8+3)]; - heap32[(r5+9)] = heap32[(r8+2000)]; - heap32[(r5+10)] = heap32[(r8+2001)]; - heap32[(r5+11)] = heap32[(r8+2002)]; - r9 = r0 >> 2; - heap32[(r5+12)] = heap32[(r8+2003)]; - r9 = heap32[(r9)]; - r9 = r9 >> 2; - r9 = heap32[(r9+7)]; - r10 = (r7 + 8000)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r9)>>2](i7); - r4 = heap32[(r5+2)]; - if(r4 ==0) //_LBB21_6 -{ - r4 = r7 >> 2; - r5 = r7 >> 2; - r9 = r7 >> 2; - r10 = r7 >> 2; - heap32[(r4+6000)] = heap32[(r5+2000)]; - r4 = r7 >> 2; - r5 = r7 >> 2; - heap32[(r9+6001)] = heap32[(r10+2001)]; - r9 = r7 >> 2; - r10 = r7 >> 2; - heap32[(r4+6002)] = heap32[(r5+2002)]; - r4 = r7 >> 2; - heap32[(r9+6003)] = heap32[(r10+2003)]; - r5 = r7 >> 2; - heap32[(r4+8000)] = 1065353216; - r4 = r7 >> 2; - heap32[(r5+8001)] = 0; - heap32[(r4+8002)] = 0; - heap32[(r8+8003)] = 0; -} -else{ - r4 = r7 >> 2; - r9 = r7 >> 2; - heap32[(r4+6000)] = heap32[(r5+17)]; - r4 = r7 >> 2; - heap32[(r9+6001)] = heap32[(r5+18)]; - r9 = r7 >> 2; - heap32[(r4+6002)] = heap32[(r5+19)]; - heap32[(r9+6003)] = heap32[(r5+20)]; - f0 = heapFloat[(r5+13)]; - r4 = r7 >> 2; - heapFloat[(r4+8000)] = f0; - f1 = heapFloat[(r5+14)]; - r9 = r7 >> 2; - heapFloat[(r9+8001)] = f1; - f2 = heapFloat[(r5+15)]; - r7 = r7 >> 2; - f0 = f0*f0; - f1 = f1*f1; - heapFloat[(r7+8002)] = f2; - heap32[(r8+8003)] = heap32[(r5+16)]; - f0 = f0+f1; - f1 = f2*f2; - f0 = f0+f1; - heapFloat[(g0)] = f0; - sqrtf(i7); - f1 = 1; - f0 = f1/f_g0; - f1 = heapFloat[(r4+8000)]; - f1 = f1*f0; - heapFloat[(r4+8000)] = f1; - f1 = heapFloat[(r9+8001)]; - f1 = f1*f0; - heapFloat[(r9+8001)] = f1; - f1 = heapFloat[(r7+8002)]; - f0 = f1*f0; - heapFloat[(r7+8002)] = f0; -} - r3 = (r3 + 16)|0; - heap32[(fp+-24)] = r6; -if(!(r3 !=8000)) //_LBB21_4 -{ -break _6; -} -} - r0 = heap32[(r2+10001)]; - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - gettimeofday(i7); - r3 = heap32[(r2+10006)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 - r5)|0; - r1 = (r1 / 1000)|0; - r3 = (r3 * 1000)|0; - r1 = (r1 + r3)|0; - r0 = (r1 + r0)|0; - heap32[(r2+10001)] = r0; - r1 = heap32[(r2+10000)]; - r1 = (r1 + 1)|0; - heap32[(r2+10000)] = r1; -if(!(r1 <51)) //_LBB21_10 -{ - r3 = heap32[(r2+10004)]; - r3 = r0 < r3 ? r0 : r3; - heap32[(r2+10004)] = r3; - r4 = heap32[(r2+10005)]; - r4 = r0 > r4 ? r0 : r4; - heap32[(r2+10005)] = r4; - r5 = heap32[(r2+10002)]; - r5 = (r0 + r5)|0; - heap32[(r2+10002)] = r5; - r6 = heap32[(r2+10003)]; - r6 = (r6 + 1)|0; - f0 = r5; //fitos r5, f0 - f1 = r6; //fitos r6, f1 - f0 = f0/f1; - heap32[(r2+10003)] = r6; - r5 = _2E_str7; - r1 = (r1 * 500)|0; - f0 = f0; //fstod f0, f0 - heap32[(g0)] = r5; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r0; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r4; - llvm_writeDouble((i7+24),f0); - printf(i7); - heap32[(r2+10001)] = 0; - heap32[(r2+10000)] = 0; -} -} - return; -} - -function _ZN13BenchmarkDemo10createWallERK9btVector3iS2_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; -var __label__ = 0; - i7 = sp + -96;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = gNumAlignedAllocs; - r0 = r0 >> 2; - r1 = r1 >> 2; - r2 = heap32[(r1)]; - f0 = heapFloat[(r0+2)]; - f1 = heapFloat[(r0+1)]; - f2 = heapFloat[(r0)]; - r2 = (r2 + 1)|0; - heap32[(r1)] = r2; - heap32[(g0)] = 71; - malloc(i7); - r1 = r_g0; - r2 = heap32[(fp)]; - if(r1 !=0) //_LBB22_2 -{ - r3 = 0; - r4 = (r1 + 4)|0; - r3 = (r3 - r4)|0; - r3 = r3 & 15; - r3 = (r1 + r3)|0; - r4 = (r3 + 4)|0; - r3 = r3 >> 2; - heap32[(r3)] = r1; - r1 = r4; -} - r3 = r1 >> 2; - heap32[(r3+2)] = 0; - heap32[(r3+3)] = 1065353216; - heap32[(r3+4)] = 1065353216; - heap32[(r3+5)] = 1065353216; - r4 = _ZTV10btBoxShape; - heap32[(r3+6)] = 0; - r4 = (r4 + 8)|0; - heap32[(r3+11)] = 1025758986; - heap32[(r3)] = r4; - f3 = -0.039999999105930328; - f2 = f2+f3; - heap32[(r3+1)] = 0; - f1 = f1+f3; - heapFloat[(r3+7)] = f2; - f0 = f0+f3; - heapFloat[(r3+8)] = f1; - heapFloat[(r3+9)] = f0; - r4 = sp + -16; - heap32[(r3+10)] = 0; - r3 = r4 >> 2; - heap32[(fp+-4)] = 0; - heap32[(r3+1)] = 0; - heap32[(r3+2)] = 0; - heap32[(r3+3)] = 0; - heap32[(g0)] = r1; - heap32[(g0+1)] = 1065353216; - heap32[(g0+2)] = r4; - _ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7); - f4 = heapFloat[(r0+1)]; - f0 = heapFloat[(r0+2)]; - r0 = sp + -80; - r3 = r0 >> 2; - heap32[(fp+-20)] = 1065353216; - heap32[(r3+1)] = 0; - heap32[(r3+2)] = 0; - heap32[(r3+3)] = 0; - heap32[(r3+4)] = 0; - heap32[(r3+5)] = 1065353216; - heap32[(r3+6)] = 0; - heap32[(r3+7)] = 0; - heap32[(r3+8)] = 0; - heap32[(r3+9)] = 0; - heap32[(r3+10)] = 1065353216; - heap32[(r3+11)] = 0; - f1 = f0+f0; - f2 = -12; - heap32[(r3+12)] = 0; - heap32[(r3+13)] = 0; - f2 = f1*f2; - f3 = 0.5; - f3 = f2*f3; - f2 = f4+f4; - r5 = 12; - heap32[(r3+14)] = 0; - heap32[(r3+15)] = 0; -_4: while(true){ -if(!(r5 <1)) //_LBB22_4 -{ - r4 = 0; -_8: while(true){ - r6 = r2 >> 2; - f5 = r4; //fitos r4, f5 - f6 = 0; - f7 = heapFloat[(r6)]; - f8 = heapFloat[(r6+2)]; - f9 = heapFloat[(r6+1)]; - f5 = f5*f1; - f6 = f7+f6; - f5 = f5+f3; - f7 = f9+f4; - heapFloat[(r3+12)] = f6; - f5 = f8+f5; - heapFloat[(r3+13)] = f7; - r6 = _ZL14benchmarkDemo4; - heapFloat[(r3+14)] = f5; - r7 = r6 >> 2; - heap32[(r3+15)] = 0; - r7 = heap32[(r7)]; - r7 = r7 >> 2; - r7 = heap32[(r7+2)]; - heap32[(g0)] = r6; - heap32[(g0+1)] = 1065353216; - heap32[(g0+2)] = r0; - heap32[(g0+3)] = r1; - r4 = (r4 + 1)|0; - __FUNCTION_TABLE__[(r7)>>2](i7); - if(r5 !=r4) //_LBB22_3 -{ -continue _8; -} -else{ -break _8; -} -} -} - r5 = (r5 + -1)|0; - f4 = f4+f2; - f3 = f3+f0; - if(r5 ==0) //_LBB22_8 -{ -break _4; -} -else{ -continue _4; -} -} - return; -} - -function _ZN13BenchmarkDemo19createLargeMeshBodyEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; -var __label__ = 0; - i7 = sp + -80;var g0 = i7>>2; // save stack - r0 = sp + -64; - r1 = r0 >> 2; - heap32[(fp+-16)] = 1065353216; - heap32[(r1+1)] = 0; - heap32[(r1+2)] = 0; - heap32[(r1+3)] = 0; - heap32[(r1+4)] = 0; - heap32[(r1+5)] = 1065353216; - heap32[(r1+6)] = 0; - heap32[(r1+7)] = 0; - heap32[(r1+8)] = 0; - heap32[(r1+9)] = 0; - heap32[(r1+10)] = 1065353216; - heap32[(r1+11)] = 0; - heap32[(r1+12)] = 0; - heap32[(r1+13)] = 0; - r2 = 0; - heap32[(r1+14)] = 0; - heap32[(r1+15)] = 0; -_1: while(true){ - r3 = gNumAlignedAllocs; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r5 = (r4 + 1)|0; - heap32[(r3)] = r5; - heap32[(g0)] = 103; - malloc(i7); - r5 = r_g0; - if(r5 !=0) //_LBB23_3 -{ - r6 = 0; - r7 = (r5 + 4)|0; - r6 = (r6 - r7)|0; - r6 = r6 & 15; - r6 = (r5 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r5; - r5 = r7; -} - r6 = r5 >> 2; - heap32[(r6+1)] = 1065353216; - heap32[(r6+2)] = 1065353216; - r7 = _ZTV26btTriangleIndexVertexArray; - heap32[(r6+3)] = 1065353216; - r7 = (r7 + 8)|0; - heap32[(r6+4)] = 0; - r8 = 1; - heap32[(r6)] = r7; - heap8[r5+36] = r8; - heap32[(r6+8)] = 0; - heap32[(r6+6)] = 0; - r7 = LandscapeVtx; - r9 = r2 << 2; - r10 = LandscapeVtxCount; - r11 = LandscapeIdx; - r12 = LandscapeIdxCount; - r7 = (r7 + r9)|0; - r10 = (r10 + r9)|0; - r11 = (r11 + r9)|0; - r9 = (r12 + r9)|0; - heap32[(r6+7)] = 0; - r7 = r7 >> 2; - heap32[(r6+12)] = 0; - r10 = r10 >> 2; - r11 = r11 >> 2; - r9 = r9 >> 2; - r7 = heap32[(r7)]; - r10 = heap32[(r10)]; - r11 = heap32[(r11)]; - r9 = heap32[(r9)]; - r12 = (r4 + 2)|0; - heap32[(r3)] = r12; - heap32[(g0)] = 51; - malloc(i7); - r12 = r_g0; - r9 = (r9 / 3)|0; - if(r12 !=0) //_LBB23_6 -{ - r13 = 0; - r14 = (r12 + 4)|0; - r13 = (r13 - r14)|0; - r13 = r13 & 15; - r13 = (r12 + r13)|0; - r14 = (r13 + 4)|0; - r13 = r13 >> 2; - heap32[(r13)] = r12; - r12 = r14; -} - heap8[r5+36] = r8; - heap32[(r6+8)] = r12; - heap32[(r6+7)] = 1; - r13 = heap32[(r6+6)]; - r13 = r13 << 5; - r12 = (r12 + r13)|0; - r12 = r12 >> 2; - heap32[(r12)] = r9; - heap32[(r12+1)] = r11; - heap32[(r12+2)] = 6; - heap32[(r12+3)] = r10; - heap32[(r12+4)] = r7; - heap32[(r12+5)] = 12; - heap32[(r12+6)] = 3; - heap32[(r12+7)] = 0; - r7 = heap32[(r6+6)]; - r9 = (r7 + 1)|0; - heap32[(r6+6)] = r9; - r7 = r7 << 5; - r9 = heap32[(r6+8)]; - r7 = (r9 + r7)|0; - r7 = r7 >> 2; - r4 = (r4 + 3)|0; - heap32[(r7+6)] = 3; - heap32[(r3)] = r4; - heap32[(g0)] = 95; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB23_9 -{ - r4 = 0; - r7 = (r3 + 4)|0; - r4 = (r4 - r7)|0; - r4 = r4 & 15; - r4 = (r3 + r4)|0; - r7 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r3; - r3 = r7; -} - r4 = r3 >> 2; - r7 = _ZTV19btTriangleMeshShape; - heap32[(r4+2)] = 0; - r7 = (r7 + 8)|0; - heap32[(r4+3)] = 0; - heap32[(r4)] = r7; - heap32[(r4+12)] = r5; - heap32[(r4+1)] = 21; - r7 = heap32[(r6)]; - r7 = r7 >> 2; - r7 = heap32[(r7+10)]; - heap32[(g0)] = r5; - __FUNCTION_TABLE__[(r7)>>2](i7); - r7 = r_g0; - if(r7 ==0) //_LBB23_12 -{ - heap32[(g0)] = r3; - _ZN19btTriangleMeshShape15recalcLocalAabbEv(i7); -} -else{ - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+12)]; - r7 = (r3 + 16)|0; - r9 = (r3 + 32)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r9; - __FUNCTION_TABLE__[(r6)>>2](i7); -} - r5 = _ZTV22btBvhTriangleMeshShape; - r5 = (r5 + 8)|0; - heap32[(r4)] = r5; - heap32[(r4+13)] = 0; - heap32[(r4+14)] = 0; - r5 = 0; - heap8[r3+60] = r8; - heap8[r3+61] = r5; - heap32[(r4+1)] = 21; - heap32[(g0)] = r3; - _ZN22btBvhTriangleMeshShape17buildOptimizedBvhEv(i7); - heap32[(r1+12)] = 0; - heap32[(r1+13)] = -1043857408; - r4 = _ZL14benchmarkDemo4; - heap32[(r1+14)] = 0; - r5 = r4 >> 2; - heap32[(r1+15)] = 0; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+2)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r0; - heap32[(g0+3)] = r3; - __FUNCTION_TABLE__[(r5)>>2](i7); - r2 = (r2 + 1)|0; - r3 = r_g0 >> 2; - heap32[(r3+56)] = 1063675494; - if(r2 !=8) //_LBB23_1 -{ -continue _1; -} -else{ -break _1; -} -} - return; -} - -function _ZN13BenchmarkDemo11createTest6Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; -var __label__ = 0; - i7 = sp + -112;var g0 = i7>>2; // save stack - r0 = gNumAlignedAllocs; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - heap32[(g0)] = 127; - malloc(i7); - r0 = r_g0; - if(r0 !=0) //_LBB24_2 -{ - r1 = 0; - r2 = (r0 + 4)|0; - r1 = (r1 - r2)|0; - r1 = r1 & 15; - r1 = (r0 + r1)|0; - r2 = (r1 + 4)|0; - r1 = r1 >> 2; - heap32[(r1)] = r0; - r0 = r2; -} - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 0; - r1 = 0; - _ZN17btConvexHullShapeC1EPKfii(i7); -_4: while(true){ - r2 = (r1 * -3)|0; - r3 = _ZL7TaruVtx; - r2 = r2 << 2; - r2 = (r3 + r2)|0; - r3 = sp + -96; - r2 = r2 >> 2; - r4 = r3 >> 2; - heap32[(fp+-24)] = heap32[(r2)]; - heap32[(r4+1)] = heap32[(r2+1)]; - heap32[(r4+2)] = heap32[(r2+2)]; - heap32[(r4+3)] = 0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - r1 = (r1 + -1)|0; - _ZN17btConvexHullShape8addPointERK9btVector3(i7); - if(r1 ==-43) //_LBB24_10 -{ -break _4; -} -else{ -continue _4; -} -} - r1 = sp + -64; - r2 = r1 >> 2; - heap32[(fp+-16)] = 1065353216; - heap32[(r2+1)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - heap32[(r2+4)] = 0; - heap32[(r2+5)] = 1065353216; - heap32[(r2+6)] = 0; - heap32[(r2+7)] = 0; - heap32[(r2+8)] = 0; - heap32[(r2+9)] = 0; - heap32[(r2+10)] = 1065353216; - heap32[(r2+11)] = 0; - heap32[(r2+12)] = 0; - heap32[(r2+13)] = 0; - heap32[(r2+14)] = 0; - r3 = sp + -80; - heap32[(r2+15)] = 0; - r4 = r3 >> 2; - heap32[(fp+-20)] = 0; - heap32[(r4+1)] = 0; - heap32[(r4+2)] = 0; - r5 = r0 >> 2; - heap32[(r4+3)] = 0; - r4 = heap32[(r5)]; - r4 = r4 >> 2; - r4 = heap32[(r4+8)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = 1065353216; - heap32[(g0+2)] = r3; - r3 = 10; - f0 = 20; - f1 = 2; - f2 = -25; - __FUNCTION_TABLE__[(r4)>>2](i7); - r7 = _ZL14benchmarkDemo4; -_7: while(true){ - f3 = 3; - f4 = 25; - f5 = f1+f3; - f4 = f0+f4; - r4 = 0; - r5 = r4; -_9: while(true){ - f6 = r5; //fitos r5, f6 - f6 = f6*f5; - f6 = f6+f2; - f7 = 5; - f6 = f6*f7; - f8 = 0; - f6 = f6+f8; - r6 = r4; -_11: while(true){ - f9 = r6; //fitos r6, f9 - f9 = f9*f5; - f9 = f9+f2; - f9 = f9*f7; - f9 = f9+f8; - heapFloat[(r2+12)] = f9; - heapFloat[(r2+13)] = f4; - heapFloat[(r2+14)] = f6; - r8 = r7 >> 2; - heap32[(r2+15)] = 0; - r8 = heap32[(r8)]; - r8 = r8 >> 2; - r8 = heap32[(r8+2)]; - heap32[(g0)] = r7; - heap32[(g0+1)] = 1065353216; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r0; - r6 = (r6 + 1)|0; - __FUNCTION_TABLE__[(r8)>>2](i7); - if(r6 !=10) //_LBB24_7 -{ -continue _11; -} -else{ -break _11; -} -} - r5 = (r5 + 1)|0; - if(r5 !=10) //_LBB24_6 -{ -continue _9; -} -else{ -break _9; -} -} - f4 = 1.1000000238418579; - f5 = -0.05000000074505806; - f4 = f1*f4; - f1 = f1*f5; - f5 = 9; - f3 = f4+f3; - f1 = f1*f5; - r3 = (r3 + -1)|0; - f0 = f0+f3; - f2 = f1+f2; - f1 = f4; - if(r3 ==0) //_LBB24_11 -{ -break _7; -} -else{ -continue _7; -} -} - _ZN13BenchmarkDemo19createLargeMeshBodyEv(i7); - return; -} - -function _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -168;var g0 = i7>>2; // save stack - r0 = sp + -16; - r1 = r0 >> 2; - heap32[(fp+-4)] = 0; - heap32[(r1+1)] = 0; - r2 = heap32[(fp+2)]; - heap32[(r1+2)] = 0; - r3 = r2 >> 2; - heap32[(r1+3)] = 0; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+8)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = 1065353216; - heap32[(g0+2)] = r0; - r0 = _ZGVZN11btTransform11getIdentityEvE17identityTransform; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = heapU8[r0]; -if(!(r3 !=0)) //_LBB25_4 -{ - r3 = _ZGVZN11btMatrix3x311getIdentityEvE14identityMatrix; - r4 = heapU8[r3]; -if(!(r4 !=0)) //_LBB25_3 -{ - r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0; - r5 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1; - r4 = r4 >> 2; - r6 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2; - r5 = r5 >> 2; - heap32[(r4)] = 1065353216; - r4 = r6 >> 2; - heap32[(r5)] = 1065353216; - r5 = 1; - heap32[(r4)] = 1065353216; - heap8[r3] = r5; -} - r3 = _ZZN11btTransform11getIdentityEvE17identityTransform; - r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0; - r3 = r3 >> 2; - r4 = r4 >> 2; - heap32[(r3)] = heap32[(r4)]; - heap32[(r3+1)] = 0; - heap32[(r3+2)] = 0; - r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1; - heap32[(r3+3)] = 0; - r4 = r4 >> 2; - heap32[(r3+4)] = 0; - heap32[(r3+5)] = heap32[(r4)]; - heap32[(r3+6)] = 0; - heap32[(r3+7)] = 0; - r4 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2; - heap32[(r3+8)] = 0; - r4 = r4 >> 2; - heap32[(r3+9)] = 0; - heap32[(r3+10)] = heap32[(r4)]; - heap32[(r3+11)] = 0; - heap32[(r3+12)] = 0; - heap32[(r3+13)] = 0; - heap32[(r3+14)] = 0; - r4 = 1; - heap32[(r3+15)] = 0; - heap8[r0] = r4; -} - r0 = heap32[(fp)]; - r3 = heap32[(fp+1)]; - heap32[(g0)] = 200; - r4 = _ZTV20btDefaultMotionState; - _Znwj(i7); - r6 = r_g0 >> 2; - r4 = (r4 + 8)|0; - r3 = r3 >> 2; - heap32[(r6)] = r4; - heap32[(r6+1)] = heap32[(r3)]; - heap32[(r6+2)] = heap32[(r3+1)]; - heap32[(r6+3)] = heap32[(r3+2)]; - heap32[(r6+4)] = heap32[(r3+3)]; - heap32[(r6+5)] = heap32[(r3+4)]; - heap32[(r6+6)] = heap32[(r3+5)]; - heap32[(r6+7)] = heap32[(r3+6)]; - heap32[(r6+8)] = heap32[(r3+7)]; - heap32[(r6+9)] = heap32[(r3+8)]; - heap32[(r6+10)] = heap32[(r3+9)]; - heap32[(r6+11)] = heap32[(r3+10)]; - heap32[(r6+12)] = heap32[(r3+11)]; - heap32[(r6+13)] = heap32[(r3+12)]; - heap32[(r6+14)] = heap32[(r3+13)]; - r4 = _ZZN11btTransform11getIdentityEvE17identityTransform; - heap32[(r6+15)] = heap32[(r3+14)]; - r4 = r4 >> 2; - heap32[(r6+16)] = heap32[(r3+15)]; - heap32[(r6+17)] = heap32[(r4)]; - heap32[(r6+18)] = heap32[(r4+1)]; - heap32[(r6+19)] = heap32[(r4+2)]; - heap32[(r6+20)] = heap32[(r4+3)]; - heap32[(r6+21)] = heap32[(r4+4)]; - heap32[(r6+22)] = heap32[(r4+5)]; - heap32[(r6+23)] = heap32[(r4+6)]; - heap32[(r6+24)] = heap32[(r4+7)]; - heap32[(r6+25)] = heap32[(r4+8)]; - heap32[(r6+26)] = heap32[(r4+9)]; - heap32[(r6+27)] = heap32[(r4+10)]; - heap32[(r6+28)] = heap32[(r4+11)]; - heap32[(r6+29)] = heap32[(r4+12)]; - heap32[(r6+30)] = heap32[(r4+13)]; - heap32[(r6+31)] = heap32[(r4+14)]; - heap32[(r6+32)] = heap32[(r4+15)]; - heap32[(r6+33)] = heap32[(r3)]; - heap32[(r6+34)] = heap32[(r3+1)]; - heap32[(r6+35)] = heap32[(r3+2)]; - heap32[(r6+36)] = heap32[(r3+3)]; - heap32[(r6+37)] = heap32[(r3+4)]; - heap32[(r6+38)] = heap32[(r3+5)]; - heap32[(r6+39)] = heap32[(r3+6)]; - heap32[(r6+40)] = heap32[(r3+7)]; - heap32[(r6+41)] = heap32[(r3+8)]; - heap32[(r6+42)] = heap32[(r3+9)]; - heap32[(r6+43)] = heap32[(r3+10)]; - heap32[(r6+44)] = heap32[(r3+11)]; - heap32[(r6+45)] = heap32[(r3+12)]; - heap32[(r6+46)] = heap32[(r3+13)]; - heap32[(r6+47)] = heap32[(r3+14)]; - heap32[(r6+48)] = heap32[(r3+15)]; - r3 = sp + -152; - heap32[(r6+49)] = 0; - r4 = r3 >> 2; - heap32[(fp+-38)] = 1065353216; - heap32[(r4+1)] = r_g0; - heap32[(r4+18)] = r2; - heap32[(r4+19)] = heap32[(fp+-4)]; - heap32[(r4+20)] = heap32[(r1+1)]; - heap32[(r4+21)] = heap32[(r1+2)]; - heap32[(r4+22)] = heap32[(r1+3)]; - heap32[(r4+23)] = 0; - heap32[(r4+24)] = 0; - heap32[(r4+25)] = 1056964608; - heap32[(r4+26)] = 0; - heap32[(r4+27)] = 1061997773; - r1 = 0; - heap32[(r4+28)] = 1065353216; - heap8[sp+-36] = r1; - heap32[(r4+30)] = 1000593162; - heap32[(r4+31)] = 1008981770; - heap32[(r4+32)] = 1008981770; - heap32[(r4+33)] = 1008981770; - heap32[(r4+2)] = 1065353216; - heap32[(r4+3)] = 0; - heap32[(r4+4)] = 0; - heap32[(r4+5)] = 0; - heap32[(r4+6)] = 0; - heap32[(r4+7)] = 1065353216; - heap32[(r4+8)] = 0; - heap32[(r4+9)] = 0; - heap32[(r4+10)] = 0; - heap32[(r4+11)] = 0; - heap32[(r4+12)] = 1065353216; - heap32[(r4+13)] = 0; - heap32[(r4+14)] = 0; - heap32[(r4+15)] = 0; - r2 = gNumAlignedAllocs; - heap32[(r4+16)] = 0; - r2 = r2 >> 2; - heap32[(r4+17)] = 0; - r4 = heap32[(r2)]; - r4 = (r4 + 1)|0; - heap32[(r2)] = r4; - heap32[(g0)] = 627; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB25_6 -{ - r4 = (r2 + 4)|0; - r1 = (r1 - r4)|0; - r1 = r1 & 15; - r1 = (r2 + r1)|0; - r4 = (r1 + 4)|0; - r1 = r1 >> 2; - heap32[(r1)] = r2; - r2 = r4; -} - r1 = r2 >> 2; - heap32[(r1+41)] = 1065353216; - heap32[(r1+42)] = 1065353216; - heap32[(r1+43)] = 1065353216; - heap32[(r1+44)] = 0; - heap32[(r1+45)] = 0; - heap32[(r1+46)] = 1566444395; - heap32[(r1+47)] = 0; - heap32[(r1+48)] = 0; - heap32[(r1+49)] = 0; - heap32[(r1+50)] = 0; - heap32[(r1+51)] = 1; - heap32[(r1+52)] = -1; - heap32[(r1+53)] = -1; - heap32[(r1+54)] = 1; - heap32[(r1+55)] = 0; - heap32[(r1+56)] = 1056964608; - heap32[(r1+57)] = 0; - heap32[(r1+58)] = 1; - heap32[(r1+59)] = 0; - heap32[(r1+60)] = 1065353216; - heap32[(r1+61)] = 0; - heap32[(r1+62)] = 0; - heap32[(r1+63)] = 0; - heap32[(r1+1)] = 1065353216; - heap32[(r1+2)] = 0; - heap32[(r1+3)] = 0; - heap32[(r1+4)] = 0; - heap32[(r1+5)] = 0; - heap32[(r1+6)] = 1065353216; - heap32[(r1+7)] = 0; - heap32[(r1+8)] = 0; - heap32[(r1+9)] = 0; - heap32[(r1+10)] = 0; - heap32[(r1+11)] = 1065353216; - heap32[(r1+12)] = 0; - heap32[(r1+13)] = 0; - heap32[(r1+14)] = 0; - r4 = _ZTV11btRigidBody; - heap32[(r1+15)] = 0; - r4 = (r4 + 8)|0; - heap32[(r1+16)] = 0; - r5 = 1; - heap32[(r1)] = r4; - heap8[r2+492] = r5; - heap32[(r1+122)] = 0; - heap32[(r1+120)] = 0; - heap32[(r1+121)] = 0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - _ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7); - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+20)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); - r_g0 = r2; - return; -} - -function _ZN13BenchmarkDemo11initPhysicsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; -var __label__ = 0; - i7 = sp + -41432;var g0 = i7>>2; // save stack - heap32[(g0)] = 88; - _Znwj(i7); - r0 = r_g0; - r1 = _ZTV31btDefaultCollisionConfiguration; - r2 = gNumAlignedAllocs; - r3 = r0 >> 2; - r1 = (r1 + 8)|0; - r2 = r2 >> 2; - heap32[(r3)] = r1; - r1 = heap32[(r2)]; - r3 = (r1 + 1)|0; - heap32[(r2)] = r3; - heap32[(g0)] = 379; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_2 -{ - r4 = 0; - r5 = (r3 + 4)|0; - r4 = (r4 - r5)|0; - r4 = r4 & 15; - r4 = (r3 + r4)|0; - r5 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r3; - r3 = r5; -} - r4 = r3 >> 2; - heap32[(r4+77)] = 953267991; - r4 = heapU8[r3+332]; - r4 = r4 & 240; - r5 = r0 >> 2; - heap8[r3+332] = r4; - r4 = (r1 + 2)|0; - heap32[(r5+8)] = r3; - heap32[(r2)] = r4; - heap32[(g0)] = 23; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_5 -{ - r4 = 0; - r6 = (r3 + 4)|0; - r4 = (r4 - r6)|0; - r4 = r4 & 15; - r4 = (r3 + r4)|0; - r6 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r3; - r3 = r6; -} - r4 = _ZTV30btGjkEpaPenetrationDepthSolver; - r6 = r3 >> 2; - r4 = (r4 + 8)|0; - heap32[(r6)] = r4; - r4 = (r1 + 3)|0; - heap32[(r5+9)] = r3; - heap32[(r2)] = r4; - heap32[(g0)] = 43; - malloc(i7); - r4 = r_g0; - if(r4 !=0) //_LBB26_8 -{ - r3 = 0; - r6 = (r4 + 4)|0; - r3 = (r3 - r6)|0; - r3 = r3 & 15; - r3 = (r4 + r3)|0; - r6 = r3 >> 2; - heap32[(r6)] = r4; - r4 = (r3 + 4)|0; - r3 = heap32[(r5+9)]; -} - r6 = _ZTVN23btConvexConvexAlgorithm10CreateFuncE; - r7 = heap32[(r5+8)]; - r8 = 0; - r9 = r4 >> 2; - r6 = (r6 + 8)|0; - heap8[r4+4] = r8; - heap32[(r9)] = r6; - heap32[(r9+4)] = 0; - heap32[(r9+5)] = 3; - heap32[(r9+3)] = r7; - heap32[(r9+2)] = r3; - r3 = (r1 + 4)|0; - heap32[(r5+10)] = r4; - heap32[(r2)] = r3; - heap32[(g0)] = 27; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_11 -{ - r4 = (r3 + 4)|0; - r4 = (r8 - r4)|0; - r4 = r4 & 15; - r4 = (r3 + r4)|0; - r6 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r3; - r3 = r6; -} - r4 = _ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE; - r6 = r3 >> 2; - r4 = (r4 + 8)|0; - heap8[r3+4] = r8; - heap32[(r6)] = r4; - r4 = (r1 + 5)|0; - heap32[(r5+11)] = r3; - heap32[(r2)] = r4; - heap32[(g0)] = 27; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_14 -{ - r4 = (r3 + 4)|0; - r4 = (r8 - r4)|0; - r4 = r4 & 15; - r4 = (r3 + r4)|0; - r6 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r3; - r3 = r6; -} - r4 = _ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE; - r6 = r3 >> 2; - r4 = (r4 + 8)|0; - heap8[r3+4] = r8; - heap32[(r6)] = r4; - r4 = (r1 + 6)|0; - heap32[(r5+12)] = r3; - heap32[(r2)] = r4; - heap32[(g0)] = 27; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_17 -{ - r4 = (r3 + 4)|0; - r4 = (r8 - r4)|0; - r4 = r4 & 15; - r4 = (r3 + r4)|0; - r6 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r3; - r3 = r6; -} - r4 = _ZTVN28btCompoundCollisionAlgorithm10CreateFuncE; - r6 = r3 >> 2; - r4 = (r4 + 8)|0; - heap8[r3+4] = r8; - heap32[(r6)] = r4; - r4 = (r1 + 7)|0; - heap32[(r5+13)] = r3; - heap32[(r2)] = r4; - heap32[(g0)] = 27; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_20 -{ - r4 = (r3 + 4)|0; - r4 = (r8 - r4)|0; - r4 = r4 & 15; - r4 = (r3 + r4)|0; - r6 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r3; - r3 = r6; -} - r4 = _ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE; - r6 = r3 >> 2; - r4 = (r4 + 8)|0; - heap8[r3+4] = r8; - heap32[(r6)] = r4; - r4 = (r1 + 8)|0; - heap32[(r5+14)] = r3; - heap32[(r2)] = r4; - heap32[(g0)] = 27; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_23 -{ - r4 = (r3 + 4)|0; - r4 = (r8 - r4)|0; - r4 = r4 & 15; - r4 = (r3 + r4)|0; - r6 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r3; - r3 = r6; -} - r4 = _ZTVN16btEmptyAlgorithm10CreateFuncE; - r6 = r3 >> 2; - r4 = (r4 + 8)|0; - heap8[r3+4] = r8; - heap32[(r6)] = r4; - r4 = (r1 + 9)|0; - heap32[(r5+15)] = r3; - heap32[(r2)] = r4; - heap32[(g0)] = 27; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_26 -{ - r4 = (r3 + 4)|0; - r4 = (r8 - r4)|0; - r4 = r4 & 15; - r4 = (r3 + r4)|0; - r6 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r3; - r3 = r6; -} - r4 = _ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE; - r6 = r3 >> 2; - r4 = (r4 + 8)|0; - heap8[r3+4] = r8; - heap32[(r6)] = r4; - r4 = (r1 + 10)|0; - heap32[(r5+16)] = r3; - heap32[(r2)] = r4; - heap32[(g0)] = 27; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_29 -{ - r4 = (r3 + 4)|0; - r4 = (r8 - r4)|0; - r4 = r4 & 15; - r4 = (r3 + r4)|0; - r6 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r3; - r3 = r6; -} - r4 = _ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE; - r6 = r3 >> 2; - r4 = (r4 + 8)|0; - heap8[r3+4] = r8; - heap32[(r6)] = r4; - r6 = (r1 + 11)|0; - heap32[(r5+18)] = r3; - heap32[(r2)] = r6; - heap32[(g0)] = 27; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_32 -{ - r6 = (r3 + 4)|0; - r6 = (r8 - r6)|0; - r6 = r6 & 15; - r6 = (r3 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r3; - r3 = r7; -} - r6 = r3 >> 2; - heap8[r3+4] = r8; - heap32[(r6)] = r4; - r4 = 1; - heap32[(r5+19)] = r3; - r6 = (r1 + 12)|0; - heap8[r3+4] = r4; - heap32[(r2)] = r6; - heap32[(g0)] = 27; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_35 -{ - r6 = (r3 + 4)|0; - r6 = (r8 - r6)|0; - r6 = r6 & 15; - r6 = (r3 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r3; - r3 = r7; -} - r6 = _ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE; - r7 = r3 >> 2; - r6 = (r6 + 8)|0; - heap8[r3+4] = r8; - heap32[(r7)] = r6; - r6 = (r1 + 13)|0; - heap32[(r5+17)] = r3; - heap32[(r2)] = r6; - heap32[(g0)] = 35; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_38 -{ - r6 = (r3 + 4)|0; - r6 = (r8 - r6)|0; - r6 = r6 & 15; - r6 = (r3 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r3; - r3 = r7; -} - r6 = _ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE; - r7 = r3 >> 2; - r6 = (r6 + 8)|0; - heap8[r3+4] = r8; - heap32[(r7)] = r6; - heap32[(r7+2)] = 1; - heap32[(r7+3)] = 1; - r7 = (r1 + 14)|0; - heap32[(r5+21)] = r3; - heap32[(r2)] = r7; - heap32[(g0)] = 35; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_41 -{ - r7 = (r3 + 4)|0; - r7 = (r8 - r7)|0; - r7 = r7 & 15; - r7 = (r3 + r7)|0; - r9 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r3; - r3 = r9; -} - r7 = r3 >> 2; - heap8[r3+4] = r8; - heap32[(r7)] = r6; - heap32[(r7+2)] = 1; - heap32[(r7+3)] = 1; - heap32[(r5+20)] = r3; - heap8[r3+4] = r4; - r3 = (r1 + 15)|0; - heap8[r0+12] = r4; - heap32[(r2)] = r3; - heap32[(g0)] = 39; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_44 -{ - r6 = (r3 + 4)|0; - r6 = (r8 - r6)|0; - r6 = r6 & 15; - r6 = (r3 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r3; - r3 = r7; -} - r6 = r3 >> 2; - heap32[(r6+1)] = 0; - heap32[(r6+3)] = 0; - heap8[r3+16] = r8; - heap32[(r6)] = 0; - r7 = (r1 + 16)|0; - heap32[(r6+2)] = 0; - heap32[(r2)] = r7; - heap32[(g0)] = 19; - malloc(i7); - r7 = r_g0; - if(r7 !=0) //_LBB26_47 -{ - r9 = (r7 + 4)|0; - r9 = (r8 - r9)|0; - r9 = r9 & 15; - r9 = (r7 + r9)|0; - r10 = (r9 + 4)|0; - r9 = r9 >> 2; - heap32[(r9)] = r7; - r7 = r10; -} - heap32[(r6)] = r7; - heap32[(r6+1)] = 0; - heap32[(r5+2)] = r3; - r3 = (r1 + 17)|0; - heap8[r0+20] = r4; - heap32[(r2)] = r3; - heap32[(g0)] = 39; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_50 -{ - r6 = (r3 + 4)|0; - r6 = (r8 - r6)|0; - r6 = r6 & 15; - r6 = (r3 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r3; - r3 = r7; -} - r6 = r3 >> 2; - heap32[(r6)] = 1140; - r7 = (r1 + 18)|0; - heap32[(r6+1)] = 4096; - heap32[(r2)] = r7; - heap32[(g0)] = 4669459; - malloc(i7); - r7 = r_g0; - if(r7 !=0) //_LBB26_53 -{ - r9 = (r7 + 4)|0; - r9 = (r8 - r9)|0; - r9 = r9 & 15; - r9 = (r7 + r9)|0; - r10 = (r9 + 4)|0; - r9 = r9 >> 2; - heap32[(r9)] = r7; - r7 = r10; -} - heap32[(r6+4)] = r7; - r9 = 4095; - r10 = 1140; - heap32[(r6+3)] = r7; - heap32[(r6+2)] = 4096; - r11 = r7; -_55: while(true){ - r7 = r7 >> 2; - r10 = (r11 + r10)|0; - heap32[(r7)] = r10; - r10 = heap32[(r6)]; - r7 = (r11 + r10)|0; - r9 = (r9 + -1)|0; - r11 = r7; - if(r9 !=0) //_LBB26_55 -{ -continue _55; -} -else{ -break _55; -} -} - r6 = r7 >> 2; - heap32[(r6)] = 0; - heap32[(r5+4)] = r3; - r3 = (r1 + 19)|0; - heap8[r0+28] = r4; - heap32[(r2)] = r3; - heap32[(g0)] = 39; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_58 -{ - r6 = (r3 + 4)|0; - r6 = (r8 - r6)|0; - r6 = r6 & 15; - r6 = (r3 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r3; - r3 = r7; -} - r6 = r3 >> 2; - heap32[(r6)] = 80; - r1 = (r1 + 20)|0; - heap32[(r6+1)] = 4096; - heap32[(r2)] = r1; - heap32[(g0)] = 327699; - malloc(i7); - r1 = r_g0; - if(r1 !=0) //_LBB26_61 -{ - r7 = (r1 + 4)|0; - r7 = (r8 - r7)|0; - r7 = r7 & 15; - r7 = (r1 + r7)|0; - r9 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r1; - r1 = r9; -} - heap32[(r6+4)] = r1; - r7 = 4095; - r9 = 80; - heap32[(r6+3)] = r1; - heap32[(r6+2)] = 4096; - r10 = r1; -_64: while(true){ - r1 = r1 >> 2; - r9 = (r10 + r9)|0; - heap32[(r1)] = r9; - r9 = heap32[(r6)]; - r1 = (r10 + r9)|0; - r7 = (r7 + -1)|0; - r10 = r1; - if(r7 !=0) //_LBB26_63 -{ -continue _64; -} -else{ -break _64; -} -} - r1 = r1 >> 2; - r6 = _ZL14benchmarkDemo4; - heap32[(r1)] = 0; - r1 = r6 >> 2; - heap32[(r5+6)] = r3; - heap32[(r1+16)] = r0; - heap32[(g0)] = 5388; - _Znwj(i7); - r0 = r_g0; - r3 = _ZTV21btCollisionDispatcher; - r5 = heap32[(r1+16)]; - r3 = (r3 + 8)|0; - r7 = r0 >> 2; - heap32[(r7)] = r3; - heap32[(r7+1)] = 2; - heap8[r0+24] = r4; - heap32[(r7+5)] = 0; - r3 = _ZTV16btManifoldResult; - heap32[(r7+3)] = 0; - r3 = (r3 + 8)|0; - heap32[(r7+4)] = 0; - heap32[(r7+7)] = r3; - r3 = _ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo__index__; - heap32[(r7+1346)] = r5; - heap32[(r7+47)] = r3; - r3 = r5 >> 2; - r9 = heap32[(r3)]; - r9 = r9 >> 2; - r9 = heap32[(r9+3)]; - heap32[(g0)] = r5; - __FUNCTION_TABLE__[(r9)>>2](i7); - heap32[(r7+48)] = r_g0; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+2)]; - heap32[(g0)] = r5; - __FUNCTION_TABLE__[(r3)>>2](i7); - r5 = (r0 + 200)|0; - heap32[(r7+49)] = r_g0; -_67: while(true){ - if(r8 >35) //_LBB26_72 -{ -__label__ = 52; -break _67; -} -else{ - r3 = 0; -_70: while(true){ - if(r3 <36) //_LBB26_65 -{ - r7 = r0 >> 2; - r7 = heap32[(r7+1346)]; - r9 = r7 >> 2; - r9 = heap32[(r9)]; - r9 = r9 >> 2; - r9 = heap32[(r9+5)]; - r10 = r3 << 2; - heap32[(g0)] = r7; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r3; - r7 = (r5 + r10)|0; - r7 = r7 >> 2; - __FUNCTION_TABLE__[(r9)>>2](i7); - r9 = r_g0; - heap32[(r7)] = r9; - if(r9 !=0) //_LBB26_67 -{ - r3 = (r3 + 1)|0; -} -else{ -__label__ = 46; -break _67; -} -} -else{ -break _70; -} -} - r8 = (r8 + 1)|0; - r5 = (r5 + 144)|0; -continue _67; -} -} -switch(__label__ ){//multiple entries -case 52: - heap32[(r1+14)] = r0; - heap32[(g0)] = 76; - _Znwj(i7); - r0 = r_g0; - heap32[(g0)] = r0; - _ZN28btHashedOverlappingPairCacheC1Ev(i7); - r3 = heap32[(r2)]; - r5 = (r3 + 1)|0; - heap32[(r2)] = r5; - heap32[(g0)] = 135; - malloc(i7); - r7 = r_g0; - if(r7 !=0) //_LBB26_74 -{ - r8 = 0; - r9 = (r7 + 4)|0; - r8 = (r8 - r9)|0; - r8 = r8 & 15; - r8 = (r7 + r8)|0; - r9 = (r8 + 4)|0; - r8 = r8 >> 2; - heap32[(r8)] = r7; - r7 = r9; -} - r8 = _ZTV20btAxisSweep3InternalItE; - r9 = r7 >> 2; - r8 = (r8 + 8)|0; - r10 = -2; - heap32[(r9)] = r8; - r8 = -1; - heap16[(r7+4)>>1] = r10; - heap16[(r7+6)>>1] = r8; - heap32[(r9+23)] = r0; - r8 = 0; - heap32[(r9+24)] = 0; - heap8[r7+100] = r8; - heap32[(r9+26)] = 0; - heap32[(r9+27)] = 0; - if(r0 ==0) //_LBB26_77 -{ - r5 = (r3 + 2)|0; - heap32[(r2)] = r5; - heap32[(g0)] = 95; - malloc(i7); - r5 = r_g0; - if(r5 !=0) //_LBB26_79 -{ - r0 = 0; - r3 = (r5 + 4)|0; - r0 = (r0 - r3)|0; - r0 = r0 & 15; - r0 = (r5 + r0)|0; - r3 = (r0 + 4)|0; - r0 = r0 >> 2; - heap32[(r0)] = r5; - r5 = r3; -} - heap32[(g0)] = r5; - _ZN28btHashedOverlappingPairCacheC1Ev(i7); - heap32[(r9+23)] = r5; - heap8[r7+100] = r4; - r5 = heap32[(r2)]; -} - r0 = (r5 + 1)|0; - heap32[(r2)] = r0; - heap32[(g0)] = 43; - malloc(i7); - r0 = r_g0; - if(r0 !=0) //_LBB26_83 -{ - r3 = (r0 + 4)|0; - r3 = (r8 - r3)|0; - r3 = r3 & 15; - r3 = (r0 + r3)|0; - r10 = (r3 + 4)|0; - r3 = r3 >> 2; - heap32[(r3)] = r0; - r0 = r10; -} - r3 = _ZTV15btNullPairCache; - r10 = r0 >> 2; - r3 = (r3 + 8)|0; - heap32[(r10)] = r3; - heap8[r0+20] = r4; - heap32[(r10+4)] = 0; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 0; - r3 = (r5 + 2)|0; - heap32[(r9+28)] = r0; - heap32[(r2)] = r3; - heap32[(g0)] = 175; - malloc(i7); - r10 = r_g0; - if(r10 !=0) //_LBB26_86 -{ - r11 = (r10 + 4)|0; - r11 = (r8 - r11)|0; - r11 = r11 & 15; - r11 = (r10 + r11)|0; - r12 = (r11 + 4)|0; - r11 = r11 >> 2; - heap32[(r11)] = r10; - r10 = r12; -} - r11 = _ZTV16btDbvtBroadphase; - r12 = r10 >> 2; - r11 = (r11 + 8)|0; - heap32[(r12)] = r11; -_92: while(true){ - r11 = (r10 + r8)|0; - r13 = r11 >> 2; - heap8[r11+40] = r4; - heap32[(r13+9)] = 0; - heap32[(r13+7)] = 0; - heap32[(r13+8)] = 0; - heap32[(r13+1)] = 0; - heap32[(r13+2)] = 0; - heap32[(r13+3)] = -1; - r8 = (r8 + 40)|0; - heap32[(r13+4)] = 0; - heap32[(r13+5)] = 0; - if(r8 !=80) //_LBB26_88 -{ -continue _92; -} -else{ -break _92; -} -} - r8 = 0; - r11 = r0 == r8; - heap8[r10+153] = r8; - r11 = r11 & 1; - heap8[r10+154] = r4; - heap8[r10+152] = r11; - heap32[(r12+25)] = 0; - heap32[(r12+26)] = 0; - heap32[(r12+31)] = 0; - heap32[(r12+27)] = 1; - heap32[(r12+28)] = 0; - heap32[(r12+29)] = 10; - heap32[(r12+30)] = 1; - heap32[(r12+32)] = 0; - heap32[(r12+33)] = 0; - heap32[(r12+34)] = 0; - if(r0 ==0) //_LBB26_91 -{ - r0 = (r5 + 3)|0; - heap32[(r2)] = r0; - heap32[(g0)] = 95; - malloc(i7); - r0 = r_g0; - if(r0 !=0) //_LBB26_93 -{ - r3 = 0; - r5 = (r0 + 4)|0; - r3 = (r3 - r5)|0; - r3 = r3 & 15; - r3 = (r0 + r3)|0; - r5 = (r3 + 4)|0; - r3 = r3 >> 2; - heap32[(r3)] = r0; - r0 = r5; -} - heap32[(g0)] = r0; - _ZN28btHashedOverlappingPairCacheC1Ev(i7); - r3 = heap32[(r2)]; -} - heap32[(r12+24)] = r0; - heap32[(r12+37)] = 0; - heap32[(r12+35)] = 0; - heap32[(r12+36)] = 0; - heap32[(r12+21)] = 0; - heap32[(r12+22)] = 0; - heap32[(r12+23)] = 0; - heap32[(r9+27)] = r10; - heap8[r10+153] = r4; - heap32[(r9+2)] = -998637568; - heap32[(r9+3)] = -998637568; - heap32[(r9+4)] = -998637568; - heap32[(r9+5)] = 0; - heap32[(r9+6)] = 1148846080; - heap32[(r9+7)] = 1148846080; - heap32[(r9+8)] = 1148846080; - heap32[(r9+9)] = 0; - r0 = heapU16[(r7+6)>>1]; - f0 = uint(r0); //fuitos r0, f0 - f1 = 2000; - f0 = f0/f1; - heapFloat[(r9+10)] = f0; - heapFloat[(r9+11)] = f0; - heapFloat[(r9+12)] = f0; - r0 = (r3 + 1)|0; - heap32[(r9+13)] = 0; - heap32[(r2)] = r0; - heap32[(g0)] = 224083; - malloc(i7); - r0 = r_g0; - if(r0 !=0) //_LBB26_97 -{ - r5 = (r0 + 4)|0; - r5 = (r8 - r5)|0; - r5 = r5 & 15; - r5 = (r0 + r5)|0; - r10 = (r5 + 4)|0; - r5 = r5 >> 2; - heap32[(r5)] = r0; - r0 = r10; -} -_103: while(true){ - r5 = r8 << 6; - r5 = (r0 - r5)|0; - r5 = r5 >> 2; - r8 = (r8 + -1)|0; - heap32[(r5)] = 0; - heap32[(r5+2)] = 0; - if(r8 !=-3501) //_LBB26_98 -{ -continue _103; -} -else{ -break _103; -} -} - r5 = 3501; - heap32[(r9+15)] = r0; - r8 = 0; - heap16[(r7+58)>>1] = r5; - r5 = -112; - r10 = 2; - heap16[(r7+56)>>1] = r8; - heap16[(r7+64)>>1] = r4; -_106: while(true){ - r0 = (r0 - r5)|0; - heap16[(r0)>>1] = r10; - r5 = (r5 + -64)|0; - r0 = heap32[(r9+15)]; - r10 = (r10 + 1)|0; - if(r5 !=-224112) //_LBB26_100 -{ -continue _106; -} -else{ -break _106; -} -} - r3 = (r3 + 2)|0; - heap16[(r0+224048)>>1] = r8; -_109: while(true){ - r0 = (r3 + r8)|0; - heap32[(r2)] = r0; - heap32[(g0)] = 28027; - malloc(i7); - r0 = r_g0; - if(r0 !=0) //_LBB26_104 -{ - r5 = 0; - r10 = (r0 + 4)|0; - r5 = (r5 - r10)|0; - r5 = r5 & 15; - r5 = (r0 + r5)|0; - r10 = (r5 + 4)|0; - r5 = r5 >> 2; - heap32[(r5)] = r0; - r0 = r10; -} - r5 = r8 << 2; - r5 = (r7 + r5)|0; - r5 = r5 >> 2; - r8 = (r8 + 1)|0; - heap32[(r5+20)] = r0; - heap32[(r5+17)] = r0; - if(r8 !=3) //_LBB26_102 -{ -continue _109; -} -else{ -break _109; -} -} - r0 = heap32[(r9+15)]; - r0 = r0 >> 2; - heap32[(r0)] = 0; - r0 = heap32[(r9+15)]; - r3 = 0; - heap16[(r0+48)>>1] = r3; - r0 = heap32[(r9+15)]; - heap16[(r0+54)>>1] = r4; - r0 = heap32[(r9+17)]; - heap16[(r0)>>1] = r3; - r0 = heap32[(r9+17)]; - heap16[(r0+2)>>1] = r3; - r0 = heap32[(r9+17)]; - r5 = heapU16[(r7+6)>>1]; - heap16[(r0+4)>>1] = r5; - r0 = heap32[(r9+17)]; - heap16[(r0+6)>>1] = r3; - r0 = heap32[(r9+15)]; - heap16[(r0+50)>>1] = r3; - r0 = heap32[(r9+15)]; - heap16[(r0+56)>>1] = r4; - r0 = heap32[(r9+18)]; - heap16[(r0)>>1] = r3; - r0 = heap32[(r9+18)]; - heap16[(r0+2)>>1] = r3; - r0 = heap32[(r9+18)]; - r5 = heapU16[(r7+6)>>1]; - heap16[(r0+4)>>1] = r5; - r0 = heap32[(r9+18)]; - heap16[(r0+6)>>1] = r3; - r0 = heap32[(r9+15)]; - heap16[(r0+52)>>1] = r3; - r0 = heap32[(r9+15)]; - heap16[(r0+58)>>1] = r4; - r0 = heap32[(r9+19)]; - heap16[(r0)>>1] = r3; - r0 = heap32[(r9+19)]; - heap16[(r0+2)>>1] = r3; - r0 = heap32[(r9+19)]; - r5 = heapU16[(r7+6)>>1]; - heap16[(r0+4)>>1] = r5; - r0 = heap32[(r9+19)]; - r5 = _ZTV12btAxisSweep3; - r5 = (r5 + 8)|0; - heap16[(r0+6)>>1] = r3; - heap32[(r9)] = r5; - heap32[(r1+13)] = r7; - heap32[(g0)] = 128; - r0 = _ZTV35btSequentialImpulseConstraintSolver; - _Znwj(i7); - r7 = r_g0 >> 2; - r0 = (r0 + 8)|0; - heap32[(r7)] = r0; - heap8[r_g0+20] = r4; - heap32[(r7+4)] = 0; - heap32[(r7+2)] = 0; - heap32[(r7+3)] = 0; - heap8[r_g0+40] = r4; - heap32[(r7+9)] = 0; - heap32[(r7+7)] = 0; - heap32[(r7+8)] = 0; - heap8[r_g0+60] = r4; - heap32[(r7+14)] = 0; - heap32[(r7+12)] = 0; - heap32[(r7+13)] = 0; - heap8[r_g0+80] = r4; - heap32[(r7+19)] = 0; - heap32[(r7+17)] = 0; - heap32[(r7+18)] = 0; - heap8[r_g0+100] = r4; - heap32[(r7+24)] = 0; - heap32[(r7+22)] = 0; - heap32[(r7+23)] = 0; - heap8[r_g0+120] = r4; - heap32[(r7+29)] = 0; - heap32[(r7+27)] = 0; - heap32[(r7+28)] = 0; - heap32[(r7+31)] = 0; - heap32[(r1+15)] = r_g0; - heap32[(g0)] = 272; - _Znwj(i7); - r5 = r_g0; - r7 = heap32[(r1+16)]; - r8 = _ZTV16btCollisionWorld; - r9 = heap32[(r1+15)]; - r10 = heap32[(r1+13)]; - r11 = heap32[(r1+14)]; - r8 = (r8 + 8)|0; - r12 = r5 >> 2; - heap32[(r12)] = r8; - heap8[r5+20] = r4; - heap32[(r12+4)] = 0; - heap32[(r12+2)] = 0; - heap32[(r12+3)] = 0; - heap32[(r12+6)] = r11; - heap32[(r12+7)] = 0; - heap32[(r12+8)] = 0; - heap32[(r12+9)] = 1; - heap32[(r12+10)] = 1065353216; - heap8[r5+44] = r3; - heap32[(r12+12)] = 0; - heap8[r5+52] = r3; - heap8[r5+53] = r4; - heap8[r5+54] = r4; - heap32[(r12+14)] = 1025758986; - heap8[r5+60] = r3; - heap32[(r12+16)] = 0; - heap8[r5+68] = r3; - heap32[(r12+18)] = 0; - heap32[(r12+20)] = r10; - heap32[(r12+21)] = 0; - r8 = r7 >> 2; - heap8[r5+88] = r4; - r8 = heap32[(r8)]; - r8 = r8 >> 2; - r8 = heap32[(r8+4)]; - heap32[(g0)] = r7; - __FUNCTION_TABLE__[(r8)>>2](i7); - heap32[(r12+19)] = r_g0; - heap32[(r12+18)] = r_g0; - heap32[(r12+23)] = 0; - heap32[(r12+24)] = 0; - heap32[(r12+25)] = 0; - heap32[(r12+26)] = 1058642330; - heap32[(r12+27)] = 1065353216; - heap32[(r12+28)] = 1050253722; - heap32[(r12+30)] = 0; - heap32[(r12+32)] = 1101004800; - heap32[(r12+31)] = 10; - heap32[(r12+34)] = 1045220557; - heap32[(r12+35)] = 1036831949; - heap32[(r12+36)] = 0; - heap32[(r12+33)] = 1065353216; - heap32[(r12+37)] = 0; - heap32[(r12+38)] = -1130113270; - heap32[(r12+39)] = 0; - heap32[(r12+40)] = 1062836634; - heap32[(r12+41)] = 260; - r7 = _ZTV23btDiscreteDynamicsWorld; - heap32[(r12+42)] = 2; - r7 = (r7 + 8)|0; - heap32[(r12+43)] = 128; - heap32[(r12)] = r7; - heap32[(r12+44)] = r9; - heap8[r5+200] = r4; - heap32[(r12+49)] = 0; - heap32[(r12+47)] = 0; - heap32[(r12+48)] = 0; - heap8[r5+220] = r4; - heap32[(r12+54)] = 0; - heap32[(r12+52)] = 0; - heap32[(r12+53)] = 0; - heap32[(r12+56)] = 0; - heap32[(r12+57)] = -1054867456; - heap32[(r12+58)] = 0; - heap32[(r12+59)] = 0; - heap32[(r12+60)] = 0; - heap8[r5+246] = r3; - heap8[r5+264] = r4; - heap32[(r12+65)] = 0; - heap32[(r12+63)] = 0; - heap32[(r12+64)] = 0; - heap32[(r12+67)] = 0; - if(r9 !=0) //_LBB26_111 -{ - heap8[r5+245] = r3; - r7 = heap32[(r2)]; -} -else{ - r7 = heap32[(r2)]; - r7 = (r7 + 1)|0; - heap32[(r2)] = r7; - heap32[(g0)] = 147; - malloc(i7); - r8 = r_g0; - if(r8 !=0) //_LBB26_109 -{ - r9 = 0; - r10 = (r8 + 4)|0; - r9 = (r9 - r10)|0; - r9 = r9 & 15; - r9 = (r8 + r9)|0; - r10 = (r9 + 4)|0; - r9 = r9 >> 2; - heap32[(r9)] = r8; - r8 = r10; -} - r9 = r8 >> 2; - heap32[(r9)] = r0; - heap8[r8+20] = r4; - heap32[(r9+4)] = 0; - heap32[(r9+2)] = 0; - heap32[(r9+3)] = 0; - heap8[r8+40] = r4; - heap32[(r9+9)] = 0; - heap32[(r9+7)] = 0; - heap32[(r9+8)] = 0; - heap8[r8+60] = r4; - heap32[(r9+14)] = 0; - heap32[(r9+12)] = 0; - heap32[(r9+13)] = 0; - heap8[r8+80] = r4; - heap32[(r9+19)] = 0; - heap32[(r9+17)] = 0; - heap32[(r9+18)] = 0; - heap8[r8+100] = r4; - heap32[(r9+24)] = 0; - heap32[(r9+22)] = 0; - heap32[(r9+23)] = 0; - heap8[r8+120] = r4; - heap32[(r9+29)] = 0; - heap32[(r9+27)] = 0; - heap32[(r9+28)] = 0; - r0 = r5 >> 2; - heap32[(r9+31)] = 0; - heap32[(r0+44)] = r8; - heap8[r5+245] = r4; -} - r0 = (r7 + 1)|0; - heap32[(r2)] = r0; - heap32[(g0)] = 87; - malloc(i7); - r0 = r_g0; - if(r0 !=0) //_LBB26_114 -{ - r7 = (r0 + 4)|0; - r7 = (r3 - r7)|0; - r7 = r7 & 15; - r7 = (r0 + r7)|0; - r8 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r0; - r0 = r8; -} - r7 = _ZTV25btSimulationIslandManager; - r8 = r0 >> 2; - r7 = (r7 + 8)|0; - heap32[(r8)] = r7; - heap8[r0+20] = r4; - heap32[(r8+4)] = 0; - heap32[(r8+2)] = 0; - heap32[(r8+3)] = 0; - heap8[r0+40] = r4; - heap32[(r8+9)] = 0; - heap32[(r8+7)] = 0; - heap32[(r8+8)] = 0; - heap8[r0+60] = r4; - heap32[(r8+14)] = 0; - heap32[(r8+12)] = 0; - heap32[(r8+13)] = 0; - r7 = r5 >> 2; - heap8[r0+64] = r4; - heap32[(r7+45)] = r0; - heap8[r5+244] = r4; - heap32[(r1+1)] = r5; - r0 = heap32[(r7+41)]; - r0 = r0 | 32; - heap32[(r7+41)] = r0; - heap32[(r7+31)] = 5; - heap32[(r1+2)] = 0; - r0 = heap32[(r1+1)]; - r5 = r0 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+17)]; - r7 = sp + -41280; - r8 = r7 >> 2; - heap32[(fp+-10320)] = 0; - heap32[(r8+1)] = -1054867456; - heap32[(r8+2)] = 0; - heap32[(r8+3)] = 0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - __FUNCTION_TABLE__[(r5)>>2](i7); - r0 = heap32[(r1+17)]; - if(r0 <5) //_LBB26_117 -{ - r0 = heap32[(r2)]; - r5 = (r0 + 1)|0; - heap32[(r2)] = r5; - heap32[(g0)] = 71; - malloc(i7); - r5 = r_g0; - if(r5 !=0) //_LBB26_119 -{ - r7 = 0; - r8 = (r5 + 4)|0; - r7 = (r7 - r8)|0; - r7 = r7 & 15; - r7 = (r5 + r7)|0; - r8 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r5; - r5 = r8; -} - r7 = r5 >> 2; - heap32[(r7+2)] = 0; - heap32[(r7+3)] = 1065353216; - heap32[(r7+4)] = 1065353216; - heap32[(r7+5)] = 1065353216; - r8 = _ZTV10btBoxShape; - heap32[(r7+6)] = 0; - r8 = (r8 + 8)|0; - heap32[(r7+11)] = 1025758986; - heap32[(r7)] = r8; - heap32[(r7+1)] = 0; - heap32[(r7+7)] = 1132066243; - heap32[(r7+8)] = 1112004362; - heap32[(r7+9)] = 1132066243; - heap32[(r7+10)] = 0; - r7 = heap32[(r1+5)]; - r8 = heap32[(r1+4)]; - if(r7 ==r8) //_LBB26_122 -{ - r9 = r8 << 1; - r9 = r8 == 0 ? r4 : r9; -if(!(r7 >=r9)) //_LBB26_121 -{ - if(r9 !=0) //_LBB26_125 -{ - r7 = r9 << 2; - r0 = (r0 + 2)|0; - r7 = r7 | 3; - heap32[(r2)] = r0; - r0 = (r7 + 16)|0; - heap32[(g0)] = r0; - malloc(i7); - r0 = r_g0; - if(r0 !=0) //_LBB26_127 -{ - r7 = 0; - r10 = (r0 + 4)|0; - r7 = (r7 - r10)|0; - r7 = r7 & 15; - r7 = (r0 + r7)|0; - r10 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r0; - r0 = r10; -} -} -else{ - r0 = 0; -} -_138: do { - if(r8 <1) //_LBB26_130 -{ - r10 = heap32[(r1+6)]; -} -else{ - r7 = 0; -_141: while(true){ - r10 = heap32[(r1+6)]; - r11 = r7 << 2; - r12 = (r10 + r11)|0; - r12 = r12 >> 2; - r11 = (r0 + r11)|0; - r12 = heap32[(r12)]; - r7 = (r7 + 1)|0; - r11 = r11 >> 2; - heap32[(r11)] = r12; -if(!(r8 !=r7)) //_LBB26_131 -{ -break _138; -} -} -} -} while(0); - if(r10 !=0) //_LBB26_134 -{ - r7 = heapU8[r6+28]; - if(r7 !=0) //_LBB26_136 -{ - r8 = gNumAlignedFree; - r8 = r8 >> 2; - r7 = heap32[(r8)]; - r7 = (r7 + 1)|0; - r10 = r10 >> 2; - heap32[(r8)] = r7; - r8 = heap32[(r10+-1)]; - heap32[(g0)] = r8; - free(i7); - r8 = heap32[(r1+4)]; -} - heap32[(r1+6)] = 0; -} - heap8[r6+28] = r4; - heap32[(r1+6)] = r0; - heap32[(r1+5)] = r9; -} -} - r0 = r8 << 2; - r7 = heap32[(r1+6)]; - r0 = (r7 + r0)|0; - r0 = r0 >> 2; - heap32[(r0)] = r5; - r0 = heap32[(r1+4)]; - r0 = (r0 + 1)|0; - r7 = _ZGVZN11btTransform11getIdentityEvE17identityTransform; - heap32[(r1+4)] = r0; - r0 = heapU8[r7]; -if(!(r0 !=0)) //_LBB26_143 -{ - r0 = _ZGVZN11btMatrix3x311getIdentityEvE14identityMatrix; - r8 = heapU8[r0]; -if(!(r8 !=0)) //_LBB26_142 -{ - r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0; - r9 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1; - r8 = r8 >> 2; - r10 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2; - r9 = r9 >> 2; - heap32[(r8)] = 1065353216; - r8 = r10 >> 2; - heap32[(r9)] = 1065353216; - heap32[(r8)] = 1065353216; - heap8[r0] = r4; -} - r0 = _ZZN11btTransform11getIdentityEvE17identityTransform; - r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0; - r0 = r0 >> 2; - r8 = r8 >> 2; - heap32[(r0)] = heap32[(r8)]; - heap32[(r0+1)] = 0; - heap32[(r0+2)] = 0; - r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1; - heap32[(r0+3)] = 0; - r8 = r8 >> 2; - heap32[(r0+4)] = 0; - heap32[(r0+5)] = heap32[(r8)]; - heap32[(r0+6)] = 0; - heap32[(r0+7)] = 0; - r8 = _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2; - heap32[(r0+8)] = 0; - r8 = r8 >> 2; - heap32[(r0+9)] = 0; - heap32[(r0+10)] = heap32[(r8)]; - heap32[(r0+11)] = 0; - heap32[(r0+12)] = 0; - heap32[(r0+13)] = 0; - heap32[(r0+14)] = 0; - heap32[(r0+15)] = 0; - heap8[r7] = r4; -} - heap32[(g0)] = 200; - r0 = _ZTV20btDefaultMotionState; - _Znwj(i7); - r8 = r_g0 >> 2; - r0 = (r0 + 8)|0; - heap32[(r8)] = r0; - heap32[(r8+1)] = 1065353216; - heap32[(r8+2)] = 0; - heap32[(r8+3)] = 0; - heap32[(r8+4)] = 0; - heap32[(r8+5)] = 0; - heap32[(r8+6)] = 1065353216; - heap32[(r8+7)] = 0; - heap32[(r8+8)] = 0; - heap32[(r8+9)] = 0; - heap32[(r8+10)] = 0; - heap32[(r8+11)] = 1065353216; - heap32[(r8+12)] = 0; - heap32[(r8+13)] = 0; - heap32[(r8+14)] = -1035468800; - r0 = _ZZN11btTransform11getIdentityEvE17identityTransform; - heap32[(r8+15)] = 0; - r0 = r0 >> 2; - heap32[(r8+16)] = 0; - heap32[(r8+17)] = heap32[(r0)]; - heap32[(r8+18)] = heap32[(r0+1)]; - heap32[(r8+19)] = heap32[(r0+2)]; - heap32[(r8+20)] = heap32[(r0+3)]; - heap32[(r8+21)] = heap32[(r0+4)]; - heap32[(r8+22)] = heap32[(r0+5)]; - heap32[(r8+23)] = heap32[(r0+6)]; - heap32[(r8+24)] = heap32[(r0+7)]; - heap32[(r8+25)] = heap32[(r0+8)]; - heap32[(r8+26)] = heap32[(r0+9)]; - heap32[(r8+27)] = heap32[(r0+10)]; - heap32[(r8+28)] = heap32[(r0+11)]; - heap32[(r8+29)] = heap32[(r0+12)]; - heap32[(r8+30)] = heap32[(r0+13)]; - heap32[(r8+31)] = heap32[(r0+14)]; - heap32[(r8+32)] = heap32[(r0+15)]; - heap32[(r8+33)] = 1065353216; - heap32[(r8+34)] = 0; - heap32[(r8+35)] = 0; - heap32[(r8+36)] = 0; - heap32[(r8+37)] = 0; - heap32[(r8+38)] = 1065353216; - heap32[(r8+39)] = 0; - heap32[(r8+40)] = 0; - heap32[(r8+41)] = 0; - heap32[(r8+42)] = 0; - heap32[(r8+43)] = 1065353216; - heap32[(r8+44)] = 0; - heap32[(r8+45)] = 0; - heap32[(r8+46)] = -1035468800; - heap32[(r8+47)] = 0; - heap32[(r8+48)] = 0; - r0 = sp + -41416; - heap32[(r8+49)] = 0; - r8 = r0 >> 2; - heap32[(fp+-10354)] = 0; - heap32[(r8+1)] = r_g0; - heap32[(r8+18)] = r5; - heap32[(r8+19)] = 0; - heap32[(r8+20)] = 0; - heap32[(r8+21)] = 0; - heap32[(r8+22)] = 0; - heap32[(r8+23)] = 0; - heap32[(r8+24)] = 0; - heap32[(r8+25)] = 1056964608; - heap32[(r8+26)] = 0; - heap32[(r8+27)] = 1061997773; - r5 = 0; - heap32[(r8+28)] = 1065353216; - heap8[sp+-41300] = r5; - heap32[(r8+30)] = 1000593162; - heap32[(r8+31)] = 1008981770; - heap32[(r8+32)] = 1008981770; - heap32[(r8+33)] = 1008981770; - heap32[(r8+2)] = 1065353216; - heap32[(r8+3)] = 0; - heap32[(r8+4)] = 0; - heap32[(r8+5)] = 0; - heap32[(r8+6)] = 0; - heap32[(r8+7)] = 1065353216; - heap32[(r8+8)] = 0; - heap32[(r8+9)] = 0; - heap32[(r8+10)] = 0; - heap32[(r8+11)] = 0; - heap32[(r8+12)] = 1065353216; - heap32[(r8+13)] = 0; - heap32[(r8+14)] = 0; - heap32[(r8+15)] = 0; - heap32[(r8+16)] = 0; - heap32[(r8+17)] = 0; - r7 = heap32[(r2)]; - r7 = (r7 + 1)|0; - heap32[(r2)] = r7; - heap32[(g0)] = 627; - malloc(i7); - r7 = r_g0; - if(r7 !=0) //_LBB26_145 -{ - r8 = (r7 + 4)|0; - r5 = (r5 - r8)|0; - r5 = r5 & 15; - r5 = (r7 + r5)|0; - r8 = (r5 + 4)|0; - r5 = r5 >> 2; - heap32[(r5)] = r7; - r7 = r8; -} - r5 = r7 >> 2; - heap32[(r5+41)] = 1065353216; - heap32[(r5+42)] = 1065353216; - heap32[(r5+43)] = 1065353216; - heap32[(r5+44)] = 0; - heap32[(r5+45)] = 0; - heap32[(r5+46)] = 1566444395; - heap32[(r5+47)] = 0; - heap32[(r5+48)] = 0; - heap32[(r5+49)] = 0; - heap32[(r5+50)] = 0; - heap32[(r5+51)] = 1; - heap32[(r5+52)] = -1; - heap32[(r5+53)] = -1; - heap32[(r5+54)] = 1; - heap32[(r5+55)] = 0; - heap32[(r5+56)] = 1056964608; - heap32[(r5+57)] = 0; - heap32[(r5+58)] = 1; - heap32[(r5+59)] = 0; - heap32[(r5+60)] = 1065353216; - heap32[(r5+61)] = 0; - heap32[(r5+62)] = 0; - heap32[(r5+63)] = 0; - heap32[(r5+1)] = 1065353216; - heap32[(r5+2)] = 0; - heap32[(r5+3)] = 0; - heap32[(r5+4)] = 0; - heap32[(r5+5)] = 0; - heap32[(r5+6)] = 1065353216; - heap32[(r5+7)] = 0; - heap32[(r5+8)] = 0; - heap32[(r5+9)] = 0; - heap32[(r5+10)] = 0; - heap32[(r5+11)] = 1065353216; - heap32[(r5+12)] = 0; - heap32[(r5+13)] = 0; - heap32[(r5+14)] = 0; - r8 = _ZTV11btRigidBody; - heap32[(r5+15)] = 0; - r8 = (r8 + 8)|0; - heap32[(r5+16)] = 0; - heap32[(r5)] = r8; - heap8[r7+492] = r4; - heap32[(r5+122)] = 0; - heap32[(r5+120)] = 0; - heap32[(r5+121)] = 0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r0; - _ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7); - r0 = heap32[(r1+1)]; - r5 = r0 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+20)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - __FUNCTION_TABLE__[(r5)>>2](i7); - r0 = heap32[(r1+17)]; -} -_161: do { - if(r0 >3) //_LBB26_151 -{ - if(r0 >5) //_LBB26_154 -{ - if(r0 ==6) //_LBB26_325 -{ - _ZN13BenchmarkDemo11createTest6Ev(i7); - return; -} -else{ - if(r0 ==7) //_LBB26_326 -{ - _ZN13BenchmarkDemo11createTest6Ev(i7); - r0 = sp + -41264; - heap32[(g0)] = 8; - r1 = r0 >> 2; - _Znwj(i7); - heap32[(r1+10006)] = r_g0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = 0; - gettimeofday(i7); - heap32[(r1+10000)] = 0; - heap32[(r1+10001)] = 0; - heap32[(r1+10005)] = 0; - heap32[(r1+10004)] = 9999; - heap32[(r1+10003)] = 0; - heap32[(r1+10002)] = 0; - heap32[(r1+10007)] = 1092616192; - heap32[(r1+10008)] = 0; - heap32[(r1+10009)] = 0; - heap32[(r1+10010)] = 1112014848; - heap32[(r1+10011)] = 1065353216; - f3 = 0; -_169: while(true){ - f0 = r3; //fitos r3, f0 - f1 = 0.025132741779088974; - f0 = f0*f1; - f1 = 0.5; - f0 = f0*f1; - heapFloat[(g0)] = f0; - sinf(i7); - f2 = 1; - f1 = f_g0/f2; - f2 = f1*f3; - heapFloat[(g0)] = f0; - cosf(i7); - f4 = -f2; - f5 = f_g0*f3; - f6 = f2*f3; - f7 = f4-f2; - f8 = f_g0+f2; - f8 = f8-f6; - f7 = f7-f6; - f9 = f5+f2; - f9 = f9-f6; - f5 = f5+f6; - f6 = f7*f4; - f10 = f8*f_g0; - f5 = f5-f1; - f11 = f9*f_g0; - f7 = f7*f1; - f10 = f6+f10; - f4 = f9*f4; - r2 = r3 << 4; - f0 = f5*f_g0; - f7 = f11-f7; - f9 = f5*f2; - f10 = f10+f4; - f5 = f5*f1; - r2 = (r0 + r2)|0; - f0 = f6+f0; - f1 = f8*f1; - f6 = f7-f9; - f2 = f8*f2; - f5 = f10+f5; - f7 = 2500; - f0 = f0-f1; - f1 = f6+f2; - r2 = r2 >> 2; - f2 = f5*f7; - f0 = f0-f4; - f1 = f1*f7; - heapFloat[(r2+4000)] = f2; - f0 = f0*f7; - heapFloat[(r2+4001)] = f1; - heapFloat[(r2+4002)] = f0; - heap32[(r2+4003)] = 0; - f1 = heapFloat[(r1+10008)]; - heapFloat[(r2)] = f1; - heap32[(r2+1)] = 1112014848; - heap32[(r2+2)] = 0; - f1 = f1+f2; - heap32[(r2+3)] = 0; - f0 = f0+f3; - heapFloat[(r2+2000)] = f1; - heapFloat[(r2+2002)] = f0; - heap32[(r2+2003)] = 0; - heap32[(r2+2001)] = -998637568; - heap32[(r2+8000)] = 1065353216; - heap32[(r2+8001)] = 0; - r3 = (r3 + 1)|0; - heap32[(r2+8002)] = 0; - heap32[(r2+8003)] = 0; -if(!(r3 !=500)) //_LBB26_327 -{ -break _169; -} -} - r2 = _ZL10raycastBar; - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 8000; - memcpy(i7); - r3 = (r2 + 8000)|0; - r4 = (r0 + 8000)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = 8000; - memcpy(i7); - r3 = (r2 + 16000)|0; - r4 = (r0 + 16000)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = 8000; - memcpy(i7); - r3 = (r2 + 24000)|0; - r4 = (r0 + 24000)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = 8000; - memcpy(i7); - r3 = (r2 + 32000)|0; - r0 = (r0 + 32000)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 8000; - memcpy(i7); - r0 = r2 >> 2; - r2 = heap32[(r1+10000)]; - heap32[(r0+10000)] = r2; - r2 = heap32[(r1+10001)]; - heap32[(r0+10001)] = r2; - r2 = heap32[(r1+10002)]; - heap32[(r0+10002)] = r2; - r2 = heap32[(r1+10003)]; - heap32[(r0+10003)] = r2; - r2 = heap32[(r1+10004)]; - heap32[(r0+10004)] = r2; - r2 = heap32[(r1+10005)]; - heap32[(r0+10005)] = r2; - r2 = heap32[(r1+10006)]; - r2 = r2 >> 2; - r3 = heap32[(r0+10006)]; - r4 = heap32[(r2+1)]; - r2 = heap32[(r2)]; - r3 = r3 >> 2; - heap32[(r3)] = r2; - heap32[(r3+1)] = r4; - heap32[(r0+10007)] = heap32[(r1+10007)]; - heap32[(r0+10008)] = heap32[(r1+10008)]; - heap32[(r0+10009)] = heap32[(r1+10009)]; - heap32[(r0+10010)] = heap32[(r1+10010)]; - heap32[(r0+10011)] = heap32[(r1+10011)]; - r0 = heap32[(r1+10006)]; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} -else{ -break _161; -} -} -} -else{ - if(r0 ==4) //_LBB26_291 -{ - r3 = heap32[(r2)]; - r3 = (r3 + 1)|0; - heap32[(r2)] = r3; - heap32[(g0)] = 127; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB26_293 -{ - r3 = 0; - r4 = (r2 + 4)|0; - r3 = (r3 - r4)|0; - r3 = r3 & 15; - r3 = (r2 + r3)|0; - r4 = (r3 + 4)|0; - r3 = r3 >> 2; - heap32[(r3)] = r2; - r2 = r4; -} - heap32[(g0)] = r2; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 0; - r3 = r2 >> 2; - _ZN17btConvexHullShapeC1EPKfii(i7); - r4 = heap32[(r3)]; - r4 = r4 >> 2; - r4 = heap32[(r4+6)]; - r0 = sp + -96; - r5 = r0 >> 2; - heap32[(fp+-24)] = 1065353216; - heap32[(r5+1)] = 1065353216; - heap32[(r5+2)] = 1065353216; - heap32[(r5+3)] = 0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - r0 = 0; - __FUNCTION_TABLE__[(r4)>>2](i7); -_178: while(true){ - r4 = (r0 * -3)|0; - r5 = _ZL7TaruVtx; - r4 = r4 << 2; - r4 = (r5 + r4)|0; - r5 = sp + -80; - r4 = r4 >> 2; - r7 = r5 >> 2; - heap32[(fp+-20)] = heap32[(r4)]; - heap32[(r7+1)] = heap32[(r4+1)]; - heap32[(r7+2)] = heap32[(r4+2)]; - heap32[(r7+3)] = 0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r5; - r0 = (r0 + -1)|0; - _ZN17btConvexHullShape8addPointERK9btVector3(i7); - if(r0 ==-43) //_LBB26_301 -{ -break _178; -} -} - r4 = sp + -160; - r0 = r4 >> 2; - heap32[(fp+-40)] = 1065353216; - heap32[(r0+1)] = 0; - heap32[(r0+2)] = 0; - heap32[(r0+3)] = 0; - heap32[(r0+4)] = 0; - heap32[(r0+5)] = 1065353216; - heap32[(r0+6)] = 0; - heap32[(r0+7)] = 0; - heap32[(r0+8)] = 0; - heap32[(r0+9)] = 0; - heap32[(r0+10)] = 1065353216; - heap32[(r0+11)] = 0; - heap32[(r0+12)] = 0; - heap32[(r0+13)] = 0; - heap32[(r0+14)] = 0; - r5 = sp + -176; - heap32[(r0+15)] = 0; - r7 = r5 >> 2; - heap32[(fp+-44)] = 0; - heap32[(r7+1)] = 0; - heap32[(r7+2)] = 0; - heap32[(r7+3)] = 0; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r7 = heap32[(r3+8)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = 1065353216; - heap32[(g0+2)] = r5; - r3 = 15; - f0 = 3; - f2 = -18; - f3 = 1.5; - __FUNCTION_TABLE__[(r7)>>2](i7); - f1 = f0; -_181: while(true){ - f4 = f3+f0; - r5 = 0; - r7 = r5; -_183: while(true){ - f5 = r7; //fitos r7, f5 - f5 = f5*f4; - f5 = f5+f2; - r8 = r5; -_185: while(true){ - f6 = r8; //fitos r8, f6 - f6 = f6*f4; - f6 = f6+f2; - heapFloat[(r0+12)] = f6; - heapFloat[(r0+13)] = f1; - heapFloat[(r0+14)] = f5; - heap32[(r0+15)] = 0; - r9 = heap32[(r1)]; - r9 = r9 >> 2; - r9 = heap32[(r9+2)]; - heap32[(g0)] = r6; - heap32[(g0+1)] = 1065353216; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r2; - r8 = (r8 + 1)|0; - __FUNCTION_TABLE__[(r9)>>2](i7); -if(!(r8 !=8)) //_LBB26_298 -{ -break _185; -} -} - r7 = (r7 + 1)|0; -if(!(r7 !=8)) //_LBB26_297 -{ -break _183; -} -} - f4 = 1.0099999904632568; - f5 = -0.05000000074505806; - f4 = f3*f4; - f6 = 3; - f3 = f3*f5; - f5 = 7; - f6 = f4+f6; - f3 = f3*f5; - r3 = (r3 + -1)|0; - f1 = f1+f6; - f2 = f3+f2; - f3 = f4; - if(r3 ==0) //_LBB26_165 -{ -break _161; -} -else{ -continue _181; -} -} -} -else{ - if(r0 ==5) //_LBB26_302 -{ - r3 = 10; - f0 = 20; - f1 = 2; - f2 = -25; -_191: while(true){ - f3 = 3; - f4 = 25; - f5 = f1+f3; - f4 = f0+f4; - r0 = 0; - r5 = r0; -_193: while(true){ - f6 = r5; //fitos r5, f6 - f6 = f6*f5; - f6 = f6+f2; - f7 = 5; - f6 = f6*f7; - f8 = 0; - f6 = f6+f8; - r7 = r0; -_195: while(true){ - r8 = _ZL8nextRand; - r8 = r8 >> 2; - r9 = heap32[(r8)]; - r9 = (r9 * 214013)|0; - r9 = (r9 + 2531011)|0; - r10 = sp + -64; - heap32[(r8)] = r9; - r8 = r10 >> 2; - heap32[(fp+-16)] = 1065353216; - heap32[(r8+1)] = 0; - heap32[(r8+2)] = 0; - heap32[(r8+3)] = 0; - heap32[(r8+4)] = 0; - heap32[(r8+5)] = 1065353216; - heap32[(r8+6)] = 0; - heap32[(r8+7)] = 0; - f9 = r7; //fitos r7, f9 - heap32[(r8+8)] = 0; - f9 = f9*f5; - heap32[(r8+9)] = 0; - f9 = f9+f2; - heap32[(r8+10)] = 1065353216; - f9 = f9*f7; - f9 = f9+f8; - heap32[(r8+11)] = 0; - r9 = r9 >>> 16; - heapFloat[(r8+12)] = f9; - r9 = r9 & 32767; - heapFloat[(r8+13)] = f4; - r9 = Math.floor(uint(r9) % uint(9)); - heapFloat[(r8+14)] = f6; - heap32[(r8+15)] = 0; -if(!(uint(r9) >uint(8))) //_LBB26_321 -{ - r8 = r4 << r9; - r11 = r8 & 7; - if(r11 !=0) //_LBB26_309 -{ - r8 = heap32[(r2)]; - r8 = (r8 + 1)|0; - heap32[(r2)] = r8; - r9 = (r9 + 1)|0; - f9 = r9; //fitos r9, f9 - f10 = 0.5; - heap32[(g0)] = 71; - f9 = f9*f10; - f10 = 1.5; - malloc(i7); - r9 = r_g0; - f10 = f9*f10; - if(r9 !=0) //_LBB26_311 -{ - r8 = 0; - r11 = (r9 + 4)|0; - r8 = (r8 - r11)|0; - r8 = r8 & 15; - r8 = (r9 + r8)|0; - r11 = (r8 + 4)|0; - r8 = r8 >> 2; - heap32[(r8)] = r9; - r9 = r11; -} - r8 = r9 >> 2; - heap32[(r8+2)] = 0; - heap32[(r8+3)] = 1065353216; - heap32[(r8+4)] = 1065353216; - heap32[(r8+5)] = 1065353216; - r11 = _ZTV10btBoxShape; - heap32[(r8+6)] = 0; - r11 = (r11 + 8)|0; - heap32[(r8+11)] = 1025758986; - heap32[(r8)] = r11; - f11 = -0.039999999105930328; - f10 = f10+f11; - heap32[(r8+1)] = 0; - heapFloat[(r8+7)] = f10; - heapFloat[(r8+8)] = f10; - heapFloat[(r8+9)] = f10; - heap32[(r8+10)] = 0; - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+2)]; - heap32[(g0)] = r6; - heapFloat[(g0+1)] = f9; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r9; - __FUNCTION_TABLE__[(r8)>>2](i7); -} -else{ - r11 = r8 & 56; - if(r11 !=0) //_LBB26_313 -{ - r8 = heap32[(r2)]; - r8 = (r8 + 1)|0; - heap32[(r2)] = r8; - r9 = (r9 + -2)|0; - heap32[(g0)] = 71; - f9 = r9; //fitos r9, f9 - f10 = 0.5; - malloc(i7); - r9 = r_g0; - f9 = f9*f10; - if(r9 !=0) //_LBB26_315 -{ - r8 = 0; - r11 = (r9 + 4)|0; - r8 = (r8 - r11)|0; - r8 = r8 & 15; - r8 = (r9 + r8)|0; - r11 = (r8 + 4)|0; - r8 = r8 >> 2; - heap32[(r8)] = r9; - r9 = r11; -} - r8 = r9 >> 2; - heap32[(r8+2)] = 0; - heap32[(r8+3)] = 1065353216; - heap32[(r8+4)] = 1065353216; - r11 = _ZTV13btSphereShape; - heap32[(r8+5)] = 1065353216; - r11 = (r11 + 8)|0; - heap32[(r8+6)] = 0; - heap32[(r8)] = r11; - f10 = 1.5; - f10 = f9*f10; - heap32[(r8+1)] = 8; - heapFloat[(r8+7)] = f10; - heapFloat[(r8+11)] = f10; - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+2)]; - heap32[(g0)] = r6; - heapFloat[(g0+1)] = f9; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r9; - __FUNCTION_TABLE__[(r8)>>2](i7); -} -else{ - r8 = r8 & 448; - if(r8 !=0) //_LBB26_317 -{ - r8 = heap32[(r2)]; - r8 = (r8 + 1)|0; - heap32[(r2)] = r8; - r8 = (r9 + -5)|0; - heap32[(g0)] = 75; - f9 = r8; //fitos r8, f9 - f10 = 0.5; - malloc(i7); - r8 = r_g0; - f9 = f9*f10; - if(r8 !=0) //_LBB26_319 -{ - r9 = 0; - r11 = (r8 + 4)|0; - r9 = (r9 - r11)|0; - r9 = r9 & 15; - r9 = (r8 + r9)|0; - r11 = (r9 + 4)|0; - r9 = r9 >> 2; - heap32[(r9)] = r8; - r8 = r11; -} - r9 = r8 >> 2; - heap32[(r9+2)] = 0; - heap32[(r9+3)] = 1065353216; - heap32[(r9+4)] = 1065353216; - heap32[(r9+5)] = 1065353216; - r11 = _ZTV14btCapsuleShape; - heap32[(r9+6)] = 0; - r11 = (r11 + 8)|0; - heap32[(r9+11)] = 1025758986; - heap32[(r9)] = r11; - heap32[(r9+1)] = 10; - heap32[(r9+13)] = 1; - f11 = f9+f9; - f10 = f11*f10; - heapFloat[(r9+7)] = f9; - heapFloat[(r9+8)] = f10; - heapFloat[(r9+9)] = f9; - heap32[(r9+10)] = 0; - r9 = heap32[(r1)]; - r9 = r9 >> 2; - r9 = heap32[(r9+2)]; - heap32[(g0)] = r6; - heapFloat[(g0+1)] = f9; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r8; - __FUNCTION_TABLE__[(r9)>>2](i7); -} -} -} -} - r7 = (r7 + 1)|0; -if(!(r7 !=10)) //_LBB26_305 -{ -break _195; -} -} - r5 = (r5 + 1)|0; -if(!(r5 !=10)) //_LBB26_304 -{ -break _193; -} -} - f4 = 1.1000000238418579; - f5 = -0.05000000074505806; - f4 = f1*f4; - f1 = f1*f5; - f5 = 9; - f3 = f4+f3; - f1 = f1*f5; - r3 = (r3 + -1)|0; - f0 = f0+f3; - f2 = f1+f2; - f1 = f4; -if(!(r3 !=0)) //_LBB26_303 -{ -break _191; -} -} - _ZN13BenchmarkDemo19createLargeMeshBodyEv(i7); - return; -} -else{ -break _161; -} -} -} -} -else{ - if(r0 ==1) //_LBB26_156 -{ - r3 = heap32[(r2)]; - r3 = (r3 + 1)|0; - heap32[(r2)] = r3; - heap32[(g0)] = 71; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB26_158 -{ - r3 = 0; - r4 = (r2 + 4)|0; - r3 = (r3 - r4)|0; - r3 = r3 & 15; - r3 = (r2 + r3)|0; - r4 = (r3 + 4)|0; - r3 = r3 >> 2; - heap32[(r3)] = r2; - r2 = r4; -} - r3 = r2 >> 2; - heap32[(r3+2)] = 0; - heap32[(r3+3)] = 1065353216; - heap32[(r3+4)] = 1065353216; - heap32[(r3+5)] = 1065353216; - r4 = _ZTV10btBoxShape; - heap32[(r3+6)] = 0; - r4 = (r4 + 8)|0; - heap32[(r3+11)] = 1025758986; - heap32[(r3)] = r4; - heap32[(r3+1)] = 0; - heap32[(r3+7)] = 1064682127; - heap32[(r3+8)] = 1064682127; - heap32[(r3+9)] = 1064682127; - r4 = sp + -1152; - heap32[(r3+10)] = 0; - r3 = r4 >> 2; - heap32[(fp+-288)] = 0; - heap32[(r3+1)] = 0; - heap32[(r3+2)] = 0; - heap32[(r3+3)] = 0; - heap32[(g0)] = r2; - heap32[(g0+1)] = 1073741824; - heap32[(g0+2)] = r4; - _ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7); - r3 = sp + -1216; - r4 = r3 >> 2; - heap32[(fp+-304)] = 1065353216; - heap32[(r4+1)] = 0; - heap32[(r4+2)] = 0; - heap32[(r4+3)] = 0; - heap32[(r4+4)] = 0; - heap32[(r4+5)] = 1065353216; - heap32[(r4+6)] = 0; - heap32[(r4+7)] = 0; - heap32[(r4+8)] = 0; - heap32[(r4+9)] = 0; - heap32[(r4+10)] = 1065353216; - heap32[(r4+11)] = 0; - heap32[(r4+12)] = 0; - heap32[(r4+13)] = 0; - r0 = 47; - f0 = -12; - f1 = 2; - heap32[(r4+14)] = 0; - heap32[(r4+15)] = 0; -_225: while(true){ - r5 = 0; - r7 = r5; -_227: while(true){ - f2 = r7; //fitos r7, f2 - f3 = 3; - f2 = f2*f3; - f2 = f2+f0; - r8 = r5; -_229: while(true){ - f4 = r8; //fitos r8, f4 - f4 = f4*f3; - f4 = f4+f0; - heapFloat[(r4+12)] = f4; - heapFloat[(r4+13)] = f1; - heapFloat[(r4+14)] = f2; - heap32[(r4+15)] = 0; - r9 = heap32[(r1)]; - r9 = r9 >> 2; - r9 = heap32[(r9+2)]; - heap32[(g0)] = r6; - heap32[(g0+1)] = 1073741824; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r2; - r8 = (r8 + 1)|0; - __FUNCTION_TABLE__[(r9)>>2](i7); -if(!(r8 !=8)) //_LBB26_161 -{ -break _229; -} -} - r7 = (r7 + 1)|0; -if(!(r7 !=8)) //_LBB26_160 -{ -break _227; -} -} - f2 = -0.34999999403953552; - r0 = (r0 + -1)|0; - f1 = f1+f3; - f0 = f0+f2; - if(r0 ==0) //_LBB26_165 -{ -break _161; -} -else{ -continue _225; -} -} -} -else{ - if(r0 ==2) //_LBB26_166 -{ - r3 = heap32[(r2)]; - r3 = (r3 + 1)|0; - heap32[(r2)] = r3; - heap32[(g0)] = 71; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB26_168 -{ - r4 = 0; - r0 = (r3 + 4)|0; - r4 = (r4 - r0)|0; - r4 = r4 & 15; - r4 = (r3 + r4)|0; - r0 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r3; - r3 = r0; -} - r4 = r3 >> 2; - heap32[(r4+2)] = 0; - heap32[(r4+3)] = 1065353216; - heap32[(r4+4)] = 1065353216; - heap32[(r4+5)] = 1065353216; - r0 = _ZTV10btBoxShape; - heap32[(r4+6)] = 0; - r0 = (r0 + 8)|0; - heap32[(r4+11)] = 1025758986; - heap32[(r4)] = r0; - heap32[(r4+1)] = 0; - heap32[(r4+7)] = 1064682127; - heap32[(r4+8)] = 1064682127; - heap32[(r4+9)] = 1064682127; - r5 = sp + -1024; - heap32[(r4+10)] = 0; - r4 = r5 >> 2; - heap32[(fp+-256)] = 1065353216; - heap32[(r4+1)] = 0; - heap32[(r4+2)] = 0; - heap32[(r4+3)] = 0; - heap32[(r4+4)] = 0; - heap32[(r4+5)] = 1065353216; - heap32[(r4+6)] = 0; - heap32[(r4+7)] = 0; - heap32[(r4+8)] = 0; - heap32[(r4+9)] = 0; - heap32[(r4+10)] = 1065353216; - heap32[(r4+11)] = 0; - heap32[(r4+12)] = 0; - heap32[(r4+13)] = 0; - heap32[(r4+14)] = 0; - r7 = sp + -1040; - heap32[(r4+15)] = 0; - r8 = r7 >> 2; - heap32[(fp+-260)] = 0; - heap32[(r8+1)] = 0; - heap32[(r8+2)] = 0; - heap32[(r8+3)] = 0; - heap32[(g0)] = r3; - heap32[(g0+1)] = 1065353216; - heap32[(g0+2)] = r7; - r7 = 12; - f0 = -12.240598678588867; - f1 = 1; - _ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7); - f2 = f0; - f8 = -20; -_239: while(true){ -if(!(r7 <1)) //_LBB26_173 -{ - f4 = 0; - f3 = f1+f4; - r8 = 0; - r9 = r8; -_243: while(true){ - f5 = r9; //fitos r9, f5 - f6 = 2.0400998592376709; - f5 = f5*f6; - f5 = f5+f0; - f5 = f5+f4; - r10 = r8; -_245: while(true){ - f7 = r10; //fitos r10, f7 - f7 = f7*f6; - f7 = f7+f2; - f7 = f7+f8; - heapFloat[(r4+12)] = f7; - heapFloat[(r4+13)] = f3; - heapFloat[(r4+14)] = f5; - heap32[(r4+15)] = 0; - r11 = heap32[(r1)]; - r11 = r11 >> 2; - r11 = heap32[(r11+2)]; - heap32[(g0)] = r6; - heap32[(g0+1)] = 1065353216; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r3; - r10 = (r10 + 1)|0; - __FUNCTION_TABLE__[(r11)>>2](i7); -if(!(r7 !=r10)) //_LBB26_171 -{ -break _245; -} -} - r9 = (r9 + 1)|0; -if(!(r7 !=r9)) //_LBB26_170 -{ -break _243; -} -} -} - f3 = 2.0400998592376709; - f4 = 1.0199999809265137; - r7 = (r7 + -1)|0; - f1 = f1+f3; - f0 = f0+f4; - f2 = f2+f4; - if(r7 ==0) //_LBB26_176 -{ -break _239; -} -} - r3 = sp + -1136; - r4 = r3 >> 2; - heap32[(fp+-284)] = 1065353216; - heap32[(r4+1)] = 1065353216; - heap32[(r4+2)] = 1065353216; - r5 = sp + -1120; - heap32[(r4+3)] = 0; - r4 = r5 >> 2; - heap32[(fp+-280)] = -1073741824; - heap32[(r4+1)] = 0; - heap32[(r4+2)] = 0; - heap32[(r4+3)] = 0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r3; - r3 = sp + -1104; - _ZN13BenchmarkDemo10createWallERK9btVector3iS2_(i7); - r4 = r3 >> 2; - heap32[(fp+-276)] = 1065353216; - heap32[(r4+1)] = 1065353216; - heap32[(r4+2)] = 1065353216; - r5 = sp + -1088; - heap32[(r4+3)] = 0; - r4 = r5 >> 2; - heap32[(fp+-272)] = 1082130432; - heap32[(r4+1)] = 0; - heap32[(r4+2)] = 0; - heap32[(r4+3)] = 0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r3; - r3 = sp + -1072; - _ZN13BenchmarkDemo10createWallERK9btVector3iS2_(i7); - r4 = r3 >> 2; - heap32[(fp+-268)] = 1065353216; - heap32[(r4+1)] = 1065353216; - heap32[(r4+2)] = 1065353216; - r5 = sp + -1056; - heap32[(r4+3)] = 0; - r4 = r5 >> 2; - heap32[(fp+-264)] = 1092616192; - heap32[(r4+1)] = 0; - heap32[(r4+2)] = 0; - heap32[(r4+3)] = 0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r3; - _ZN13BenchmarkDemo10createWallERK9btVector3iS2_(i7); - r3 = heap32[(r2)]; - r3 = (r3 + 1)|0; - heap32[(r2)] = r3; - heap32[(g0)] = 71; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB26_178 -{ - r3 = 0; - r4 = (r2 + 4)|0; - r3 = (r3 - r4)|0; - r3 = r3 & 15; - r3 = (r2 + r3)|0; - r4 = (r3 + 4)|0; - r3 = r3 >> 2; - heap32[(r3)] = r2; - r2 = r4; -} - r3 = r2 >> 2; - heap32[(r3+2)] = 0; - heap32[(r3+3)] = 1065353216; - heap32[(r3+4)] = 1065353216; - heap32[(r3+5)] = 1065353216; - heap32[(r3+6)] = 0; - heap32[(r3+11)] = 1025758986; - heap32[(r3)] = r0; - heap32[(r3+1)] = 0; - heap32[(r3+7)] = 1064682127; - heap32[(r3+8)] = 1064682127; - heap32[(r3+9)] = 1064682127; - r4 = sp + -944; - heap32[(r3+10)] = 0; - r3 = r4 >> 2; - heap32[(fp+-236)] = 1065353216; - heap32[(r3+1)] = 0; - heap32[(r3+2)] = 0; - heap32[(r3+3)] = 0; - heap32[(r3+4)] = 0; - heap32[(r3+5)] = 1065353216; - heap32[(r3+6)] = 0; - heap32[(r3+7)] = 0; - heap32[(r3+8)] = 0; - heap32[(r3+9)] = 0; - heap32[(r3+10)] = 1065353216; - heap32[(r3+11)] = 0; - heap32[(r3+12)] = 0; - heap32[(r3+13)] = 0; - heap32[(r3+14)] = 0; - r0 = sp + -960; - heap32[(r3+15)] = 0; - r5 = r0 >> 2; - heap32[(fp+-240)] = 0; - heap32[(r5+1)] = 0; - heap32[(r5+2)] = 0; - heap32[(r5+3)] = 0; - heap32[(g0)] = r2; - heap32[(g0+1)] = 1065353216; - heap32[(g0+2)] = r0; - r0 = 8; - f0 = 1; - f1 = 0; - _ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i7); - f2 = f1; - f3 = f0; - f4 = f1; -_253: while(true){ - r5 = 24; -_255: while(true){ - f5 = 9.9312677383422852; - f6 = 0; - f7 = f3*f0; - f8 = f4*f6; - f9 = f3*f5; - f10 = f1*f6; - f7 = f8+f7; - f11 = f2*f5; - f9 = f10+f9; - f12 = f2*f0; - f13 = f1*f0; - f14 = f2*f6; - f7 = f7+f11; - f9 = f9-f12; - f11 = f13+f14; - f12 = f4*f5; - f5 = f1*f5; - f13 = f4*f0; - f11 = f11-f12; - f12 = f4*f4; - f15 = f3*f3; - f16 = f4*f7; - f17 = f1*f9; - f5 = f5+f13; - f13 = f3*f6; - f5 = f5-f13; - f12 = f12+f15; - f15 = f2*f2; - f18 = f3*f7; - f19 = f1*f11; - f16 = f16+f17; - f17 = f2*f11; - f12 = f12+f15; - f15 = f1*f1; - f7 = f2*f7; - f20 = f1*f5; - f18 = f18+f19; - f19 = f4*f5; - f16 = f16-f17; - f5 = f3*f5; - f17 = 2; - f12 = f12+f15; - f7 = f7+f20; - f15 = f3*f9; - f18 = f18-f19; - f9 = f2*f9; - f5 = f16+f5; - f16 = 25; - f12 = f17/f12; - f9 = f18+f9; - f5 = f5+f16; - f7 = f7-f15; - f11 = f4*f11; - f15 = f2*f12; - f16 = f3*f12; - f7 = f7+f11; - f9 = f9+f6; - heapFloat[(r3+12)] = f5; - f5 = f3*f16; - f11 = f2*f15; - f7 = f7+f6; - heapFloat[(r3+13)] = f9; - heapFloat[(r3+14)] = f7; - f7 = 1; - f9 = f5+f11; - f18 = f4*f16; - f19 = f1*f15; - f9 = f7-f9; - heap32[(r3+15)] = 0; - f20 = f4*f15; - f16 = f1*f16; - f21 = f18-f19; - heapFloat[(fp+-236)] = f9; - f9 = f4*f12; - f12 = f20+f16; - heapFloat[(r3+1)] = f21; - f21 = f4*f9; - heapFloat[(r3+2)] = f12; - f11 = f21+f11; - f12 = f18+f19; - heap32[(r3+3)] = 0; - f15 = f3*f15; - f9 = f1*f9; - f11 = f7-f11; - heapFloat[(r3+4)] = f12; - f12 = f15-f9; - heapFloat[(r3+5)] = f11; - heapFloat[(r3+6)] = f12; - f11 = f20-f16; - heap32[(r3+7)] = 0; - f5 = f21+f5; - f9 = f15+f9; - heapFloat[(r3+8)] = f11; - f5 = f7-f5; - heapFloat[(r3+9)] = f9; - heapFloat[(r3+10)] = f5; - heap32[(r3+11)] = 0; - r7 = heap32[(r1)]; - r7 = r7 >> 2; - f5 = 0.99144488573074341; - f7 = 0.13052619993686676; - r7 = heap32[(r7+2)]; - f9 = f1*f5; - f11 = f2*f5; - f12 = f4*f5; - f1 = f1*f7; - f5 = f3*f5; - f1 = f1+f5; - f5 = f10+f12; - f9 = f9-f8; - f3 = f3*f7; - f10 = f10+f11; - f4 = f4*f7; - f3 = f9-f3; - f4 = f10+f4; - f9 = f1+f14; - heap32[(g0)] = r6; - heap32[(g0+1)] = 1065353216; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r2; - f5 = f5+f13; - f7 = f2*f7; - r5 = (r5 + -1)|0; - f1 = f3-f14; - f2 = f4-f13; - f3 = f9-f8; - f4 = f5-f7; - __FUNCTION_TABLE__[(r7)>>2](i7); -if(!(r5 !=0)) //_LBB26_180 -{ -break _255; -} -} - f5 = 0.99785894155502319; - f7 = 0.065403133630752563; - f8 = f4*f5; - f9 = f1*f6; - f10 = f2*f5; - f11 = f1*f7; - f12 = f3*f5; - f1 = f1*f5; - f5 = f4*f6; - f8 = f9+f8; - f13 = f3*f6; - f11 = f11+f12; - f6 = f2*f6; - f9 = f9+f10; - f4 = f4*f7; - f1 = f1-f5; - f3 = f3*f7; - f10 = f11+f6; - f9 = f9+f4; - f1 = f1-f3; - f3 = f8+f13; - f2 = f2*f7; - r0 = (r0 + -1)|0; - f4 = f3-f2; - f3 = f10-f5; - f2 = f9-f13; - f1 = f1-f6; - f0 = f0+f17; - if(r0 ==0) //_LBB26_165 -{ -break _161; -} -else{ -continue _253; -} -} -} -else{ - if(r0 ==3) //_LBB26_183 -{ - r3 = -16; - r0 = 16; - f0 = 0; - f1 = 1; - f2 = f0; -_260: while(true){ - f3 = r3; //fitos r3, f3 - f4 = 6; - f3 = f3*f4; - f5 = 0.5; - f6 = 3.5; - f7 = 4.2000002861022949; - f8 = 5.5999999046325684; - f9 = 2.2749998569488525; - f10 = 0.69999998807907104; - f11 = 5.0750002861022949; - f3 = f3*f5; - f5 = f2+f0; - f6 = f1+f6; - f7 = f1+f7; - f8 = f1+f8; - f9 = f1+f9; - f10 = f1+f10; - f11 = f1+f11; - r5 = 0; -_262: while(true){ - heap32[(g0)] = 136; - _Znwj(i7); - r7 = r_g0; - r8 = _ZTV7RagDoll; - r9 = r7 >> 2; - r10 = heap32[(r1+1)]; - r8 = (r8 + 8)|0; - heap32[(r9)] = r8; - heap32[(r9+1)] = r10; - r8 = heap32[(r2)]; - r9 = (r8 + 1)|0; - heap32[(r2)] = r9; - f12 = r5; //fitos r5, f12 - heap32[(g0)] = 75; - f12 = f12*f4; - malloc(i7); - r9 = r_g0; - f12 = f12+f3; - if(r9 !=0) //_LBB26_187 -{ - r10 = 0; - r11 = (r9 + 4)|0; - r10 = (r10 - r11)|0; - r10 = r10 & 15; - r10 = (r9 + r10)|0; - r11 = (r10 + 4)|0; - r10 = r10 >> 2; - heap32[(r10)] = r9; - r9 = r11; -} - r10 = r9 >> 2; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 1065353216; - heap32[(r10+4)] = 1065353216; - heap32[(r10+5)] = 1065353216; - r11 = _ZTV14btCapsuleShape; - heap32[(r10+6)] = 0; - r11 = (r11 + 8)|0; - heap32[(r10+11)] = 1025758986; - heap32[(r10)] = r11; - heap32[(r10+1)] = 10; - heap32[(r10+13)] = 1; - heap32[(r10+7)] = 1057384039; - heap32[(r10+8)] = 1051931443; - heap32[(r10+9)] = 1057384039; - r12 = r7 >> 2; - heap32[(r10+10)] = 0; - r10 = (r8 + 2)|0; - heap32[(r12+2)] = r9; - heap32[(r2)] = r10; - heap32[(g0)] = 75; - malloc(i7); - r9 = r_g0; - if(r9 !=0) //_LBB26_190 -{ - r10 = 0; - r13 = (r9 + 4)|0; - r10 = (r10 - r13)|0; - r10 = r10 & 15; - r10 = (r9 + r10)|0; - r13 = (r10 + 4)|0; - r10 = r10 >> 2; - heap32[(r10)] = r9; - r9 = r13; -} - r10 = r9 >> 2; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 1065353216; - heap32[(r10+4)] = 1065353216; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+11)] = 1025758986; - heap32[(r10)] = r11; - heap32[(r10+1)] = 10; - heap32[(r10+13)] = 1; - heap32[(r10+7)] = 1057384039; - heap32[(r10+8)] = 1056629064; - heap32[(r10+9)] = 1057384039; - heap32[(r10+10)] = 0; - r10 = (r8 + 3)|0; - heap32[(r12+3)] = r9; - heap32[(r2)] = r10; - heap32[(g0)] = 75; - malloc(i7); - r9 = r_g0; - if(r9 !=0) //_LBB26_193 -{ - r10 = 0; - r13 = (r9 + 4)|0; - r10 = (r10 - r13)|0; - r10 = r10 & 15; - r10 = (r9 + r10)|0; - r13 = (r10 + 4)|0; - r10 = r10 >> 2; - heap32[(r10)] = r9; - r9 = r13; -} - r10 = r9 >> 2; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 1065353216; - heap32[(r10+4)] = 1065353216; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+11)] = 1025758986; - heap32[(r10)] = r11; - heap32[(r10+1)] = 10; - heap32[(r10+13)] = 1; - heap32[(r10+7)] = 1051931443; - heap32[(r10+8)] = 1035154227; - heap32[(r10+9)] = 1051931443; - heap32[(r10+10)] = 0; - r10 = (r8 + 4)|0; - heap32[(r12+4)] = r9; - heap32[(r2)] = r10; - heap32[(g0)] = 75; - malloc(i7); - r9 = r_g0; - if(r9 !=0) //_LBB26_196 -{ - r10 = 0; - r13 = (r9 + 4)|0; - r10 = (r10 - r13)|0; - r10 = r10 & 15; - r10 = (r9 + r10)|0; - r13 = (r10 + 4)|0; - r10 = r10 >> 2; - heap32[(r10)] = r9; - r9 = r13; -} - r10 = r9 >> 2; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 1065353216; - heap32[(r10+4)] = 1065353216; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+11)] = 1025758986; - heap32[(r10)] = r11; - heap32[(r10+1)] = 10; - heap32[(r10+13)] = 1; - heap32[(r10+7)] = 1048240456; - heap32[(r10+8)] = 1061788057; - heap32[(r10+9)] = 1048240456; - heap32[(r10+10)] = 0; - r10 = (r8 + 5)|0; - heap32[(r12+5)] = r9; - heap32[(r2)] = r10; - heap32[(g0)] = 75; - malloc(i7); - r9 = r_g0; - if(r9 !=0) //_LBB26_199 -{ - r10 = 0; - r13 = (r9 + 4)|0; - r10 = (r10 - r13)|0; - r10 = r10 & 15; - r10 = (r9 + r10)|0; - r13 = (r10 + 4)|0; - r10 = r10 >> 2; - heap32[(r10)] = r9; - r9 = r13; -} - r10 = r9 >> 2; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 1065353216; - heap32[(r10+4)] = 1065353216; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+11)] = 1025758986; - heap32[(r10)] = r11; - heap32[(r10+1)] = 10; - heap32[(r10+13)] = 1; - heap32[(r10+7)] = 1043542835; - heap32[(r10+8)] = 1059439248; - heap32[(r10+9)] = 1043542835; - heap32[(r10+10)] = 0; - r10 = (r8 + 6)|0; - heap32[(r12+6)] = r9; - heap32[(r2)] = r10; - heap32[(g0)] = 75; - malloc(i7); - r9 = r_g0; - if(r9 !=0) //_LBB26_202 -{ - r10 = 0; - r13 = (r9 + 4)|0; - r10 = (r10 - r13)|0; - r10 = r10 & 15; - r10 = (r9 + r10)|0; - r13 = (r10 + 4)|0; - r10 = r10 >> 2; - heap32[(r10)] = r9; - r9 = r13; -} - r10 = r9 >> 2; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 1065353216; - heap32[(r10+4)] = 1065353216; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+11)] = 1025758986; - heap32[(r10)] = r11; - heap32[(r10+1)] = 10; - heap32[(r10+13)] = 1; - heap32[(r10+7)] = 1048240456; - heap32[(r10+8)] = 1061788057; - heap32[(r10+9)] = 1048240456; - heap32[(r10+10)] = 0; - r10 = (r8 + 7)|0; - heap32[(r12+7)] = r9; - heap32[(r2)] = r10; - heap32[(g0)] = 75; - malloc(i7); - r9 = r_g0; - if(r9 !=0) //_LBB26_205 -{ - r10 = 0; - r13 = (r9 + 4)|0; - r10 = (r10 - r13)|0; - r10 = r10 & 15; - r10 = (r9 + r10)|0; - r13 = (r10 + 4)|0; - r10 = r10 >> 2; - heap32[(r10)] = r9; - r9 = r13; -} - r10 = r9 >> 2; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 1065353216; - heap32[(r10+4)] = 1065353216; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+11)] = 1025758986; - heap32[(r10)] = r11; - heap32[(r10+1)] = 10; - heap32[(r10+13)] = 1; - heap32[(r10+7)] = 1043542835; - heap32[(r10+8)] = 1059439248; - heap32[(r10+9)] = 1043542835; - heap32[(r10+10)] = 0; - r10 = (r8 + 8)|0; - heap32[(r12+8)] = r9; - heap32[(r2)] = r10; - heap32[(g0)] = 75; - malloc(i7); - r9 = r_g0; - if(r9 !=0) //_LBB26_208 -{ - r10 = 0; - r13 = (r9 + 4)|0; - r10 = (r10 - r13)|0; - r10 = r10 & 15; - r10 = (r9 + r10)|0; - r13 = (r10 + 4)|0; - r10 = r10 >> 2; - heap32[(r10)] = r9; - r9 = r13; -} - r10 = r9 >> 2; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 1065353216; - heap32[(r10+4)] = 1065353216; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+11)] = 1025758986; - heap32[(r10)] = r11; - heap32[(r10+1)] = 10; - heap32[(r10+13)] = 1; - heap32[(r10+7)] = 1043542835; - heap32[(r10+8)] = 1058264843; - heap32[(r10+9)] = 1043542835; - heap32[(r10+10)] = 0; - r10 = (r8 + 9)|0; - heap32[(r12+9)] = r9; - heap32[(r2)] = r10; - heap32[(g0)] = 75; - malloc(i7); - r9 = r_g0; - if(r9 !=0) //_LBB26_211 -{ - r10 = 0; - r13 = (r9 + 4)|0; - r10 = (r10 - r13)|0; - r10 = r10 & 15; - r10 = (r9 + r10)|0; - r13 = (r10 + 4)|0; - r10 = r10 >> 2; - heap32[(r10)] = r9; - r9 = r13; -} - r10 = r9 >> 2; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 1065353216; - heap32[(r10+4)] = 1065353216; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+11)] = 1025758986; - heap32[(r10)] = r11; - heap32[(r10+1)] = 10; - heap32[(r10+13)] = 1; - heap32[(r10+7)] = 1041194025; - heap32[(r10+8)] = 1054867456; - heap32[(r10+9)] = 1041194025; - heap32[(r10+10)] = 0; - r10 = (r8 + 10)|0; - heap32[(r12+10)] = r9; - heap32[(r2)] = r10; - heap32[(g0)] = 75; - malloc(i7); - r9 = r_g0; - if(r9 !=0) //_LBB26_214 -{ - r10 = 0; - r13 = (r9 + 4)|0; - r10 = (r10 - r13)|0; - r10 = r10 & 15; - r10 = (r9 + r10)|0; - r13 = (r10 + 4)|0; - r10 = r10 >> 2; - heap32[(r10)] = r9; - r9 = r13; -} - r10 = r9 >> 2; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 1065353216; - heap32[(r10+4)] = 1065353216; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+11)] = 1025758986; - heap32[(r10)] = r11; - heap32[(r10+1)] = 10; - heap32[(r10+13)] = 1; - heap32[(r10+7)] = 1043542835; - heap32[(r10+8)] = 1058264843; - heap32[(r10+9)] = 1043542835; - heap32[(r10+10)] = 0; - r8 = (r8 + 11)|0; - heap32[(r12+11)] = r9; - heap32[(r2)] = r8; - heap32[(g0)] = 75; - malloc(i7); - r8 = r_g0; - if(r8 !=0) //_LBB26_217 -{ - r9 = 0; - r10 = (r8 + 4)|0; - r9 = (r9 - r10)|0; - r9 = r9 & 15; - r9 = (r8 + r9)|0; - r10 = (r9 + 4)|0; - r9 = r9 >> 2; - heap32[(r9)] = r8; - r8 = r10; -} - r9 = r8 >> 2; - heap32[(r9+2)] = 0; - heap32[(r9+3)] = 1065353216; - heap32[(r9+4)] = 1065353216; - heap32[(r9+5)] = 1065353216; - heap32[(r9+6)] = 0; - heap32[(r9+11)] = 1025758986; - heap32[(r9)] = r11; - heap32[(r9+1)] = 10; - heap32[(r9+13)] = 1; - heap32[(r9+7)] = 1041194025; - heap32[(r9+8)] = 1054867456; - heap32[(r9+9)] = 1041194025; - heap32[(r9+10)] = 0; - heap32[(r12+12)] = r8; - r8 = heap32[(r12+2)]; - r9 = sp + -880; - r10 = r9 >> 2; - heap32[(fp+-220)] = 1065353216; - heap32[(r10+1)] = 0; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = 0; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = 0; - heap32[(r10+9)] = 0; - heap32[(r10+10)] = 1065353216; - f13 = 0; - f13 = f12+f13; - heap32[(r10+11)] = 0; - heapFloat[(r10+12)] = f13; - heapFloat[(r10+13)] = f6; - heapFloat[(r10+14)] = f5; - heap32[(r10+15)] = 0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7); - heap32[(r12+13)] = r_g0; - r8 = heap32[(r12+3)]; - r9 = sp + -816; - r10 = r9 >> 2; - heap32[(fp+-204)] = 1065353216; - heap32[(r10+1)] = 0; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = 0; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = 0; - heap32[(r10+9)] = 0; - heap32[(r10+10)] = 1065353216; - heap32[(r10+11)] = 0; - heapFloat[(r10+12)] = f13; - heapFloat[(r10+13)] = f7; - heapFloat[(r10+14)] = f5; - heap32[(r10+15)] = 0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7); - heap32[(r12+14)] = r_g0; - r8 = heap32[(r12+4)]; - r9 = sp + -752; - r10 = r9 >> 2; - heap32[(fp+-188)] = 1065353216; - heap32[(r10+1)] = 0; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = 0; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = 0; - heap32[(r10+9)] = 0; - heap32[(r10+10)] = 1065353216; - heap32[(r10+11)] = 0; - heapFloat[(r10+12)] = f13; - heapFloat[(r10+13)] = f8; - heapFloat[(r10+14)] = f5; - heap32[(r10+15)] = 0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7); - heap32[(r12+15)] = r_g0; - r8 = heap32[(r12+5)]; - r9 = sp + -688; - r10 = r9 >> 2; - heap32[(fp+-172)] = 1065353216; - heap32[(r10+1)] = 0; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = 0; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = 0; - heap32[(r10+9)] = 0; - f13 = -0.62999999523162842; - heap32[(r10+10)] = 1065353216; - f13 = f12+f13; - heap32[(r10+11)] = 0; - heapFloat[(r10+12)] = f13; - heapFloat[(r10+13)] = f9; - heapFloat[(r10+14)] = f5; - heap32[(r10+15)] = 0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7); - heap32[(r12+16)] = r_g0; - r8 = heap32[(r12+6)]; - r9 = sp + -624; - r10 = r9 >> 2; - heap32[(fp+-156)] = 1065353216; - heap32[(r10+1)] = 0; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = 0; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = 0; - heap32[(r10+9)] = 0; - heap32[(r10+10)] = 1065353216; - heap32[(r10+11)] = 0; - heapFloat[(r10+12)] = f13; - heapFloat[(r10+13)] = f10; - heapFloat[(r10+14)] = f5; - heap32[(r10+15)] = 0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7); - heap32[(r12+17)] = r_g0; - r8 = heap32[(r12+7)]; - r9 = sp + -560; - r10 = r9 >> 2; - heap32[(fp+-140)] = 1065353216; - heap32[(r10+1)] = 0; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = 0; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = 0; - heap32[(r10+9)] = 0; - f13 = 0.62999999523162842; - heap32[(r10+10)] = 1065353216; - f13 = f12+f13; - heap32[(r10+11)] = 0; - heapFloat[(r10+12)] = f13; - heapFloat[(r10+13)] = f9; - heapFloat[(r10+14)] = f5; - heap32[(r10+15)] = 0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7); - heap32[(r12+18)] = r_g0; - r8 = heap32[(r12+8)]; - r9 = sp + -496; - r10 = r9 >> 2; - heap32[(fp+-124)] = 1065353216; - heap32[(r10+1)] = 0; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = 0; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = 0; - heap32[(r10+9)] = 0; - heap32[(r10+10)] = 1065353216; - heap32[(r10+11)] = 0; - heapFloat[(r10+12)] = f13; - heapFloat[(r10+13)] = f10; - heapFloat[(r10+14)] = f5; - heap32[(r10+15)] = 0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7); - heap32[(r12+19)] = r_g0; - r8 = heap32[(r12+9)]; - r9 = sp + -432; - r10 = r9 >> 2; - heap32[(fp+-108)] = -1287930578; - heap32[(r10+1)] = -1082130432; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = 1065353216; - heap32[(r10+5)] = -1287930578; - heap32[(r10+6)] = 0; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = 0; - heap32[(r10+9)] = 0; - f13 = -1.2250000238418579; - heap32[(r10+10)] = 1065353216; - f13 = f12+f13; - heap32[(r10+11)] = 0; - heapFloat[(r10+12)] = f13; - heapFloat[(r10+13)] = f11; - heapFloat[(r10+14)] = f5; - heap32[(r10+15)] = 0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7); - heap32[(r12+20)] = r_g0; - r8 = heap32[(r12+10)]; - r9 = sp + -368; - r10 = r9 >> 2; - heap32[(fp+-92)] = -1287930578; - heap32[(r10+1)] = -1082130432; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = 1065353216; - heap32[(r10+5)] = -1287930578; - heap32[(r10+6)] = 0; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = 0; - heap32[(r10+9)] = 0; - f13 = -2.4500000476837158; - heap32[(r10+10)] = 1065353216; - f13 = f12+f13; - heap32[(r10+11)] = 0; - heapFloat[(r10+12)] = f13; - heapFloat[(r10+13)] = f11; - heapFloat[(r10+14)] = f5; - heap32[(r10+15)] = 0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7); - heap32[(r12+21)] = r_g0; - r8 = heap32[(r12+11)]; - r9 = sp + -304; - r10 = r9 >> 2; - heap32[(fp+-76)] = -1287930578; - heap32[(r10+1)] = 1065353216; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = -1082130432; - heap32[(r10+5)] = -1287930578; - heap32[(r10+6)] = 0; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = -2147483648; - heap32[(r10+9)] = 0; - f13 = 1.2250000238418579; - heap32[(r10+10)] = 1065353216; - f13 = f12+f13; - heap32[(r10+11)] = 0; - heapFloat[(r10+12)] = f13; - heapFloat[(r10+13)] = f11; - heapFloat[(r10+14)] = f5; - heap32[(r10+15)] = 0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7); - heap32[(r12+22)] = r_g0; - r8 = heap32[(r12+12)]; - r9 = sp + -240; - r10 = r9 >> 2; - heap32[(fp+-60)] = -1287930578; - heap32[(r10+1)] = 1065353216; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = -1082130432; - heap32[(r10+5)] = -1287930578; - heap32[(r10+6)] = 0; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = -2147483648; - heap32[(r10+9)] = 0; - f13 = 2.4500000476837158; - heap32[(r10+10)] = 1065353216; - f12 = f12+f13; - heap32[(r10+11)] = 0; - heapFloat[(r10+12)] = f12; - heapFloat[(r10+13)] = f11; - heapFloat[(r10+14)] = f5; - heap32[(r10+15)] = 0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - _ZN7RagDoll20localCreateRigidBodyEfRK11btTransformP16btCollisionShape(i7); - r9 = 0; - heap32[(r12+23)] = r_g0; -_297: while(true){ - r8 = r9 << 2; - r8 = (r7 - r8)|0; - r8 = r8 >> 2; - r10 = heap32[(r8+13)]; - r10 = r10 >> 2; - heap32[(r10+109)] = 1028443341; - heap32[(r10+110)] = 1062836634; - r10 = heap32[(r8+13)]; - r10 = r10 >> 2; - heap32[(r10+55)] = 1061997773; - r8 = heap32[(r8+13)]; - r8 = r8 >> 2; - r9 = (r9 + -1)|0; - heap32[(r8+116)] = 1070386381; - heap32[(r8+117)] = 1075838976; -if(!(r9 !=-11)) //_LBB26_219 -{ -break _297; -} -} - heap32[(g0)] = 748; - _Znwj(i7); - r8 = r_g0; - r9 = heap32[(r12+14)]; - r10 = heap32[(r12+13)]; - r11 = r8 >> 2; - heap32[(r11+1)] = 4; - heap32[(r11+2)] = -1; - r13 = 0; - heap32[(r11+3)] = -1; - heap8[r8+16] = r13; - heap32[(r11+5)] = r10; - heap32[(r11+6)] = r9; - r9 = _ZTV17btHingeConstraint; - heap32[(r11+7)] = 0; - r9 = (r9 + 8)|0; - heap32[(r11+8)] = 1050253722; - heap32[(r11)] = r9; - heap32[(r11+135)] = -1287930578; - heap32[(r11+136)] = 0; - heap32[(r11+137)] = 1065353216; - heap32[(r11+138)] = 0; - heap32[(r11+139)] = -2147483648; - heap32[(r11+140)] = 1065353216; - heap32[(r11+141)] = 0; - heap32[(r11+142)] = 0; - heap32[(r11+143)] = -1082130432; - heap32[(r11+144)] = -2147483648; - heap32[(r11+145)] = -1287930578; - heap32[(r11+146)] = 0; - heap32[(r11+147)] = 0; - heap32[(r11+148)] = 1057384039; - heap32[(r11+149)] = 0; - heap32[(r11+150)] = 0; - heap32[(r11+151)] = -1287930578; - heap32[(r11+152)] = 0; - heap32[(r11+153)] = 1065353216; - heap32[(r11+154)] = 0; - heap32[(r11+155)] = -2147483648; - heap32[(r11+156)] = 1065353216; - heap32[(r11+157)] = 0; - heap32[(r11+158)] = 0; - heap32[(r11+159)] = -1082130432; - heap32[(r11+160)] = -2147483648; - heap32[(r11+161)] = -1287930578; - heap32[(r11+162)] = 0; - heap32[(r11+163)] = 0; - heap32[(r11+164)] = -1090099609; - heap32[(r11+165)] = 0; - heap32[(r11+166)] = 0; - heap8[r8+720] = r13; - heap8[r8+721] = r13; - heap8[r8+723] = r13; - heap8[r8+724] = r4; - heap8[r8+725] = r13; - heap32[(r11+183)] = 0; - heap32[(r11+172)] = 1065353216; - heap32[(r11+173)] = -1082130432; - heap32[(r11+170)] = 1050253722; - heap32[(r11+171)] = 1065353216; - heap32[(r11+169)] = 1063675494; - heap8[r8+722] = r13; - heap32[(r11+179)] = 1065353216; - heap32[(g0)] = -1085730853; - heap32[(g0+1)] = 1086918619; - fmodf(i7); - f12 = f_g0; - f13 = -3.1415927410125732; - if(f12 >=f13) //_LBB26_222 -{ - f14 = 3.1415927410125732; - if(f12 >f14) //_LBB26_224 -{ - f14 = -6.2831854820251465; - f12 = f12+f14; -} -} -else{ - f14 = 6.2831854820251465; - f12 = f12+f14; -} - r10 = r8 >> 2; - heapFloat[(r10+172)] = f12; - heap32[(g0)] = 1070141403; - heap32[(g0+1)] = 1086918619; - fmodf(i7); - f12 = f_g0; - if(f12 >=f13) //_LBB26_227 -{ - f14 = 3.1415927410125732; - if(f12 >f14) //_LBB26_229 -{ - f14 = -6.2831854820251465; - f12 = f12+f14; -} -} -else{ - f14 = 6.2831854820251465; - f12 = f12+f14; -} - heapFloat[(r10+173)] = f12; - heap32[(r10+169)] = 1063675494; - heap32[(r10+170)] = 1050253722; - heap32[(r10+171)] = 1065353216; - heap32[(r12+24)] = r8; - r10 = heap32[(r12+1)]; - r11 = r10 >> 2; - r11 = heap32[(r11)]; - r11 = r11 >> 2; - r11 = heap32[(r11+13)]; - heap32[(g0)] = r10; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r11)>>2](i7); - heap32[(g0)] = 596; - _Znwj(i7); - r10 = heap32[(r12+15)]; - r11 = heap32[(r12+14)]; - r14 = r_g0 >> 2; - heap32[(r14+1)] = 5; - heap32[(r14+2)] = -1; - heap32[(r14+3)] = -1; - heap8[r_g0+16] = r13; - heap32[(r14+5)] = r11; - heap32[(r14+6)] = r10; - heap32[(r14+7)] = 0; - r10 = _ZTV21btConeTwistConstraint; - heap32[(r14+8)] = 1050253722; - r10 = (r10 + 8)|0; - heap32[(r14)] = r10; - heap32[(r14+72)] = -1287930578; - heap32[(r14+73)] = -1082130432; - heap32[(r14+74)] = 0; - heap32[(r14+75)] = 0; - heap32[(r14+76)] = 1065353216; - heap32[(r14+77)] = -1287930578; - heap32[(r14+78)] = 0; - heap32[(r14+79)] = 0; - heap32[(r14+80)] = -2147483648; - heap32[(r14+81)] = 0; - heap32[(r14+82)] = 1065353216; - heap32[(r14+83)] = 0; - heap32[(r14+84)] = 0; - heap32[(r14+85)] = 1065772647; - heap32[(r14+86)] = 0; - heap32[(r14+87)] = 0; - heap32[(r14+88)] = -1287930578; - heap32[(r14+89)] = -1082130432; - heap32[(r14+90)] = 0; - heap32[(r14+91)] = 0; - heap32[(r14+92)] = 1065353216; - heap32[(r14+93)] = -1287930578; - heap32[(r14+94)] = 0; - heap32[(r14+95)] = 0; - heap32[(r14+96)] = -2147483648; - heap32[(r14+97)] = 0; - heap32[(r14+98)] = 1065353216; - heap32[(r14+99)] = 0; - heap32[(r14+100)] = 0; - heap32[(r14+101)] = -1090854584; - heap32[(r14+102)] = 0; - heap32[(r14+103)] = 0; - heap8[r_g0+540] = r13; - heap32[(r14+128)] = 0; - heap32[(r14+140)] = -1082130432; - heap32[(r14+107)] = 1008981770; - heap32[(r14+111)] = 1028443341; - heap32[(r14+145)] = 0; - heap32[(r14+146)] = 0; - heap32[(r14+147)] = 1060320051; - heap32[(r14+148)] = 0; - heap32[(r14+108)] = 1061752795; - heap32[(r14+109)] = 1061752795; - heap32[(r14+110)] = 1070141403; - heap32[(r14+104)] = 1065353216; - heap32[(r14+105)] = 1050253722; - heap32[(r14+106)] = 1065353216; - heap32[(r12+25)] = r_g0; - r11 = heap32[(r12+1)]; - r14 = r11 >> 2; - r14 = heap32[(r14)]; - r14 = r14 >> 2; - r14 = heap32[(r14+13)]; - heap32[(g0)] = r11; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r14)>>2](i7); - heap32[(g0)] = 596; - _Znwj(i7); - r11 = heap32[(r12+16)]; - r14 = heap32[(r12+13)]; - r15 = r_g0 >> 2; - heap32[(r15+1)] = 5; - heap32[(r15+2)] = -1; - heap32[(r15+3)] = -1; - heap8[r_g0+16] = r13; - heap32[(r15+5)] = r14; - heap32[(r15+6)] = r11; - heap32[(r15+7)] = 0; - heap32[(r15+8)] = 1050253722; - heap32[(r15)] = r10; - heap32[(r15+72)] = -1087044364; - heap32[(r15+73)] = -1087044366; - heap32[(r15+74)] = 0; - heap32[(r15+75)] = 0; - heap32[(r15+76)] = 1060439282; - heap32[(r15+77)] = -1087044364; - heap32[(r15+78)] = 0; - heap32[(r15+79)] = 0; - heap32[(r15+80)] = -2147483648; - heap32[(r15+81)] = 0; - heap32[(r15+82)] = 1065353216; - heap32[(r15+83)] = 0; - heap32[(r15+84)] = -1088338002; - heap32[(r15+85)] = -1095552205; - heap32[(r15+86)] = 0; - heap32[(r15+87)] = 0; - heap32[(r15+88)] = -1087044364; - heap32[(r15+89)] = -1087044366; - heap32[(r15+90)] = 0; - heap32[(r15+91)] = 0; - heap32[(r15+92)] = 1060439282; - heap32[(r15+93)] = -1087044364; - heap32[(r15+94)] = 0; - heap32[(r15+95)] = 0; - heap32[(r15+96)] = -2147483648; - heap32[(r15+97)] = 0; - heap32[(r15+98)] = 1065353216; - heap32[(r15+99)] = 0; - heap32[(r15+100)] = 0; - heap32[(r15+101)] = 1061788057; - heap32[(r15+102)] = 0; - heap32[(r15+103)] = 0; - heap8[r_g0+540] = r13; - heap32[(r15+128)] = 0; - heap32[(r15+140)] = -1082130432; - heap32[(r15+107)] = 1008981770; - heap32[(r15+111)] = 1028443341; - heap32[(r15+145)] = 0; - heap32[(r15+146)] = 0; - heap32[(r15+147)] = 1060320051; - heap32[(r15+148)] = 0; - heap32[(r15+108)] = 1061752795; - heap32[(r15+109)] = 1061752795; - heap32[(r15+110)] = 0; - heap32[(r15+104)] = 1065353216; - heap32[(r15+105)] = 1050253722; - heap32[(r15+106)] = 1065353216; - heap32[(r12+26)] = r_g0; - r11 = heap32[(r12+1)]; - r14 = r11 >> 2; - r14 = heap32[(r14)]; - r14 = r14 >> 2; - r14 = heap32[(r14+13)]; - heap32[(g0)] = r11; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r14)>>2](i7); - heap32[(g0)] = 748; - _Znwj(i7); - r8 = r_g0; - r11 = heap32[(r12+17)]; - r14 = heap32[(r12+16)]; - r15 = r8 >> 2; - heap32[(r15+1)] = 4; - heap32[(r15+2)] = -1; - heap32[(r15+3)] = -1; - heap8[r8+16] = r13; - heap32[(r15+5)] = r14; - heap32[(r15+6)] = r11; - heap32[(r15+7)] = 0; - heap32[(r15+8)] = 1050253722; - heap32[(r15)] = r9; - heap32[(r15+135)] = -1287930578; - heap32[(r15+136)] = 0; - heap32[(r15+137)] = 1065353216; - heap32[(r15+138)] = 0; - heap32[(r15+139)] = -2147483648; - heap32[(r15+140)] = 1065353216; - heap32[(r15+141)] = 0; - heap32[(r15+142)] = 0; - heap32[(r15+143)] = -1082130432; - heap32[(r15+144)] = -2147483648; - heap32[(r15+145)] = -1287930578; - heap32[(r15+146)] = 0; - heap32[(r15+147)] = 0; - heap32[(r15+148)] = -1085695591; - heap32[(r15+149)] = 0; - heap32[(r15+150)] = 0; - heap32[(r15+151)] = -1287930578; - heap32[(r15+152)] = 0; - heap32[(r15+153)] = 1065353216; - heap32[(r15+154)] = 0; - heap32[(r15+155)] = -2147483648; - heap32[(r15+156)] = 1065353216; - heap32[(r15+157)] = 0; - heap32[(r15+158)] = 0; - heap32[(r15+159)] = -1082130432; - heap32[(r15+160)] = -2147483648; - heap32[(r15+161)] = -1287930578; - heap32[(r15+162)] = 0; - heap32[(r15+163)] = 0; - heap32[(r15+164)] = 1059439248; - heap32[(r15+165)] = 0; - heap32[(r15+166)] = 0; - heap8[r8+720] = r13; - heap8[r8+721] = r13; - heap8[r8+723] = r13; - heap8[r8+724] = r4; - heap8[r8+725] = r13; - heap32[(r15+183)] = 0; - heap32[(r15+172)] = 1065353216; - heap32[(r15+173)] = -1082130432; - heap32[(r15+170)] = 1050253722; - heap32[(r15+171)] = 1065353216; - heap32[(r15+169)] = 1063675494; - heap8[r8+722] = r13; - heap32[(r15+179)] = 1065353216; - heap32[(g0)] = 0; - heap32[(g0+1)] = 1086918619; - fmodf(i7); - f12 = f_g0; - if(f12 >=f13) //_LBB26_232 -{ - f14 = 3.1415927410125732; - if(f12 >f14) //_LBB26_234 -{ - f14 = -6.2831854820251465; - f12 = f12+f14; -} -} -else{ - f14 = 6.2831854820251465; - f12 = f12+f14; -} - r11 = r8 >> 2; - heapFloat[(r11+172)] = f12; - heap32[(g0)] = 1070141403; - heap32[(g0+1)] = 1086918619; - fmodf(i7); - f12 = f_g0; - if(f12 >=f13) //_LBB26_237 -{ - f14 = 3.1415927410125732; - if(f12 >f14) //_LBB26_239 -{ - f14 = -6.2831854820251465; - f12 = f12+f14; -} -} -else{ - f14 = 6.2831854820251465; - f12 = f12+f14; -} - heapFloat[(r11+173)] = f12; - heap32[(r11+169)] = 1063675494; - heap32[(r11+170)] = 1050253722; - heap32[(r11+171)] = 1065353216; - heap32[(r12+27)] = r8; - r11 = heap32[(r12+1)]; - r14 = r11 >> 2; - r14 = heap32[(r14)]; - r14 = r14 >> 2; - r14 = heap32[(r14+13)]; - heap32[(g0)] = r11; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r14)>>2](i7); - heap32[(g0)] = 596; - _Znwj(i7); - r11 = heap32[(r12+18)]; - r14 = heap32[(r12+13)]; - r15 = r_g0 >> 2; - heap32[(r15+1)] = 5; - heap32[(r15+2)] = -1; - heap32[(r15+3)] = -1; - heap8[r_g0+16] = r13; - heap32[(r15+5)] = r14; - heap32[(r15+6)] = r11; - heap32[(r15+7)] = 0; - heap32[(r15+8)] = 1050253722; - heap32[(r15)] = r10; - heap32[(r15+72)] = 1060439283; - heap32[(r15+73)] = -1087044365; - heap32[(r15+74)] = 0; - heap32[(r15+75)] = 0; - heap32[(r15+76)] = 1060439283; - heap32[(r15+77)] = 1060439283; - heap32[(r15+78)] = 0; - heap32[(r15+79)] = 0; - heap32[(r15+80)] = -2147483648; - heap32[(r15+81)] = 0; - heap32[(r15+82)] = 1065353216; - heap32[(r15+83)] = 0; - heap32[(r15+84)] = 1059145646; - heap32[(r15+85)] = -1095552205; - heap32[(r15+86)] = 0; - heap32[(r15+87)] = 0; - heap32[(r15+88)] = 1060439283; - heap32[(r15+89)] = -1087044365; - heap32[(r15+90)] = 0; - heap32[(r15+91)] = 0; - heap32[(r15+92)] = 1060439283; - heap32[(r15+93)] = 1060439283; - heap32[(r15+94)] = 0; - heap32[(r15+95)] = 0; - heap32[(r15+96)] = -2147483648; - heap32[(r15+97)] = 0; - heap32[(r15+98)] = 1065353216; - heap32[(r15+99)] = 0; - heap32[(r15+100)] = 0; - heap32[(r15+101)] = 1061788057; - heap32[(r15+102)] = 0; - heap32[(r15+103)] = 0; - heap8[r_g0+540] = r13; - heap32[(r15+128)] = 0; - heap32[(r15+140)] = -1082130432; - heap32[(r15+107)] = 1008981770; - heap32[(r15+111)] = 1028443341; - heap32[(r15+145)] = 0; - heap32[(r15+146)] = 0; - heap32[(r15+147)] = 1060320051; - heap32[(r15+148)] = 0; - heap32[(r15+108)] = 1061752795; - heap32[(r15+109)] = 1061752795; - heap32[(r15+110)] = 0; - heap32[(r15+104)] = 1065353216; - heap32[(r15+105)] = 1050253722; - heap32[(r15+106)] = 1065353216; - heap32[(r12+28)] = r_g0; - r11 = heap32[(r12+1)]; - r14 = r11 >> 2; - r14 = heap32[(r14)]; - r14 = r14 >> 2; - r14 = heap32[(r14+13)]; - heap32[(g0)] = r11; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r14)>>2](i7); - heap32[(g0)] = 748; - _Znwj(i7); - r8 = r_g0; - r11 = heap32[(r12+19)]; - r14 = heap32[(r12+18)]; - r15 = r8 >> 2; - heap32[(r15+1)] = 4; - heap32[(r15+2)] = -1; - heap32[(r15+3)] = -1; - heap8[r8+16] = r13; - heap32[(r15+5)] = r14; - heap32[(r15+6)] = r11; - heap32[(r15+7)] = 0; - heap32[(r15+8)] = 1050253722; - heap32[(r15)] = r9; - heap32[(r15+135)] = -1287930578; - heap32[(r15+136)] = 0; - heap32[(r15+137)] = 1065353216; - heap32[(r15+138)] = 0; - heap32[(r15+139)] = -2147483648; - heap32[(r15+140)] = 1065353216; - heap32[(r15+141)] = 0; - heap32[(r15+142)] = 0; - heap32[(r15+143)] = -1082130432; - heap32[(r15+144)] = -2147483648; - heap32[(r15+145)] = -1287930578; - heap32[(r15+146)] = 0; - heap32[(r15+147)] = 0; - heap32[(r15+148)] = -1085695591; - heap32[(r15+149)] = 0; - heap32[(r15+150)] = 0; - heap32[(r15+151)] = -1287930578; - heap32[(r15+152)] = 0; - heap32[(r15+153)] = 1065353216; - heap32[(r15+154)] = 0; - heap32[(r15+155)] = -2147483648; - heap32[(r15+156)] = 1065353216; - heap32[(r15+157)] = 0; - heap32[(r15+158)] = 0; - heap32[(r15+159)] = -1082130432; - heap32[(r15+160)] = -2147483648; - heap32[(r15+161)] = -1287930578; - heap32[(r15+162)] = 0; - heap32[(r15+163)] = 0; - heap32[(r15+164)] = 1059439248; - heap32[(r15+165)] = 0; - heap32[(r15+166)] = 0; - heap8[r8+720] = r13; - heap8[r8+721] = r13; - heap8[r8+723] = r13; - heap8[r8+724] = r4; - heap8[r8+725] = r13; - heap32[(r15+183)] = 0; - heap32[(r15+172)] = 1065353216; - heap32[(r15+173)] = -1082130432; - heap32[(r15+170)] = 1050253722; - heap32[(r15+171)] = 1065353216; - heap32[(r15+169)] = 1063675494; - heap8[r8+722] = r13; - heap32[(r15+179)] = 1065353216; - heap32[(g0)] = 0; - heap32[(g0+1)] = 1086918619; - fmodf(i7); - f12 = f_g0; - if(f12 >=f13) //_LBB26_242 -{ - f14 = 3.1415927410125732; - if(f12 >f14) //_LBB26_244 -{ - f14 = -6.2831854820251465; - f12 = f12+f14; -} -} -else{ - f14 = 6.2831854820251465; - f12 = f12+f14; -} - r11 = r8 >> 2; - heapFloat[(r11+172)] = f12; - heap32[(g0)] = 1070141403; - heap32[(g0+1)] = 1086918619; - fmodf(i7); - f12 = f_g0; - if(f12 >=f13) //_LBB26_247 -{ - f14 = 3.1415927410125732; - if(f12 >f14) //_LBB26_249 -{ - f14 = -6.2831854820251465; - f12 = f12+f14; -} -} -else{ - f14 = 6.2831854820251465; - f12 = f12+f14; -} - heapFloat[(r11+173)] = f12; - heap32[(r11+169)] = 1063675494; - heap32[(r11+170)] = 1050253722; - heap32[(r11+171)] = 1065353216; - heap32[(r12+29)] = r8; - r11 = heap32[(r12+1)]; - r14 = r11 >> 2; - r14 = heap32[(r14)]; - r14 = r14 >> 2; - r14 = heap32[(r14+13)]; - heap32[(g0)] = r11; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r14)>>2](i7); - heap32[(g0)] = 596; - _Znwj(i7); - r11 = heap32[(r12+20)]; - r14 = heap32[(r12+14)]; - r15 = r_g0 >> 2; - heap32[(r15+1)] = 5; - heap32[(r15+2)] = -1; - heap32[(r15+3)] = -1; - heap8[r_g0+16] = r13; - heap32[(r15+5)] = r14; - heap32[(r15+6)] = r11; - heap32[(r15+7)] = 0; - heap32[(r15+8)] = 1050253722; - heap32[(r15)] = r10; - heap32[(r15+72)] = -1082130432; - heap32[(r15+73)] = 867941678; - heap32[(r15+74)] = -2147483648; - heap32[(r15+75)] = 0; - heap32[(r15+76)] = -1279541970; - heap32[(r15+77)] = -1082130432; - heap32[(r15+78)] = 0; - heap32[(r15+79)] = 0; - heap32[(r15+80)] = -2147483648; - heap32[(r15+81)] = 0; - heap32[(r15+82)] = 1065353216; - heap32[(r15+83)] = 0; - heap32[(r15+84)] = -1087163597; - heap32[(r15+85)] = 1057384039; - heap32[(r15+86)] = 0; - heap32[(r15+87)] = 0; - heap32[(r15+88)] = -1287930578; - heap32[(r15+89)] = -1082130432; - heap32[(r15+90)] = 0; - heap32[(r15+91)] = 0; - heap32[(r15+92)] = 1065353216; - heap32[(r15+93)] = -1287930578; - heap32[(r15+94)] = 0; - heap32[(r15+95)] = 0; - heap32[(r15+96)] = -2147483648; - heap32[(r15+97)] = 0; - heap32[(r15+98)] = 1065353216; - heap32[(r15+99)] = 0; - heap32[(r15+100)] = 0; - heap32[(r15+101)] = -1088338002; - heap32[(r15+102)] = 0; - heap32[(r15+103)] = 0; - heap8[r_g0+540] = r13; - heap32[(r15+128)] = 0; - heap32[(r15+140)] = -1082130432; - heap32[(r15+107)] = 1008981770; - heap32[(r15+111)] = 1028443341; - heap32[(r15+145)] = 0; - heap32[(r15+146)] = 0; - heap32[(r15+147)] = 1060320051; - heap32[(r15+148)] = 0; - heap32[(r15+108)] = 1070141403; - heap32[(r15+109)] = 1070141403; - heap32[(r15+110)] = 0; - heap32[(r15+104)] = 1065353216; - heap32[(r15+105)] = 1050253722; - heap32[(r15+106)] = 1065353216; - heap32[(r12+30)] = r_g0; - r11 = heap32[(r12+1)]; - r14 = r11 >> 2; - r14 = heap32[(r14)]; - r14 = r14 >> 2; - r14 = heap32[(r14+13)]; - heap32[(g0)] = r11; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r14)>>2](i7); - heap32[(g0)] = 748; - _Znwj(i7); - r8 = r_g0; - r11 = heap32[(r12+21)]; - r14 = heap32[(r12+20)]; - r15 = r8 >> 2; - heap32[(r15+1)] = 4; - heap32[(r15+2)] = -1; - heap32[(r15+3)] = -1; - heap8[r8+16] = r13; - heap32[(r15+5)] = r14; - heap32[(r15+6)] = r11; - heap32[(r15+7)] = 0; - heap32[(r15+8)] = 1050253722; - heap32[(r15)] = r9; - heap32[(r15+135)] = -1287930578; - heap32[(r15+136)] = 0; - heap32[(r15+137)] = 1065353216; - heap32[(r15+138)] = 0; - heap32[(r15+139)] = -2147483648; - heap32[(r15+140)] = 1065353216; - heap32[(r15+141)] = 0; - heap32[(r15+142)] = 0; - heap32[(r15+143)] = -1082130432; - heap32[(r15+144)] = -2147483648; - heap32[(r15+145)] = -1287930578; - heap32[(r15+146)] = 0; - heap32[(r15+147)] = 0; - heap32[(r15+148)] = 1059145646; - heap32[(r15+149)] = 0; - heap32[(r15+150)] = 0; - heap32[(r15+151)] = -1287930578; - heap32[(r15+152)] = 0; - heap32[(r15+153)] = 1065353216; - heap32[(r15+154)] = 0; - heap32[(r15+155)] = -2147483648; - heap32[(r15+156)] = 1065353216; - heap32[(r15+157)] = 0; - heap32[(r15+158)] = 0; - heap32[(r15+159)] = -1082130432; - heap32[(r15+160)] = -2147483648; - heap32[(r15+161)] = -1287930578; - heap32[(r15+162)] = 0; - heap32[(r15+163)] = 0; - heap32[(r15+164)] = -1090854584; - heap32[(r15+165)] = 0; - heap32[(r15+166)] = 0; - heap8[r8+720] = r13; - heap8[r8+721] = r13; - heap8[r8+723] = r13; - heap8[r8+724] = r4; - heap8[r8+725] = r13; - heap32[(r15+183)] = 0; - heap32[(r15+172)] = 1065353216; - heap32[(r15+173)] = -1082130432; - heap32[(r15+170)] = 1050253722; - heap32[(r15+171)] = 1065353216; - heap32[(r15+169)] = 1063675494; - heap8[r8+722] = r13; - heap32[(r15+179)] = 1065353216; - heap32[(g0)] = -1077342245; - heap32[(g0+1)] = 1086918619; - fmodf(i7); - f12 = f_g0; - if(f12 >=f13) //_LBB26_252 -{ - f14 = 3.1415927410125732; - if(f12 >f14) //_LBB26_254 -{ - f14 = -6.2831854820251465; - f12 = f12+f14; -} -} -else{ - f14 = 6.2831854820251465; - f12 = f12+f14; -} - r11 = r8 >> 2; - heapFloat[(r11+172)] = f12; - heap32[(g0)] = 0; - heap32[(g0+1)] = 1086918619; - fmodf(i7); - f12 = f_g0; - if(f12 >=f13) //_LBB26_257 -{ - f14 = 3.1415927410125732; - if(f12 >f14) //_LBB26_259 -{ - f14 = -6.2831854820251465; - f12 = f12+f14; -} -} -else{ - f14 = 6.2831854820251465; - f12 = f12+f14; -} - heapFloat[(r11+173)] = f12; - heap32[(r11+169)] = 1063675494; - heap32[(r11+170)] = 1050253722; - heap32[(r11+171)] = 1065353216; - heap32[(r12+31)] = r8; - r11 = heap32[(r12+1)]; - r14 = r11 >> 2; - r14 = heap32[(r14)]; - r14 = r14 >> 2; - r14 = heap32[(r14+13)]; - heap32[(g0)] = r11; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r14)>>2](i7); - heap32[(g0)] = 596; - _Znwj(i7); - r11 = heap32[(r12+22)]; - r14 = heap32[(r12+14)]; - r15 = r_g0 >> 2; - heap32[(r15+1)] = 5; - heap32[(r15+2)] = -1; - heap32[(r15+3)] = -1; - heap8[r_g0+16] = r13; - heap32[(r15+5)] = r14; - heap32[(r15+6)] = r11; - heap32[(r15+7)] = 0; - heap32[(r15+8)] = 1050253722; - heap32[(r15)] = r10; - heap32[(r15+72)] = 1065353216; - heap32[(r15+73)] = 0; - heap32[(r15+74)] = 0; - heap32[(r15+75)] = 0; - heap32[(r15+76)] = 0; - heap32[(r15+77)] = 1065353216; - heap32[(r15+78)] = 0; - heap32[(r15+79)] = 0; - heap32[(r15+80)] = -2147483648; - heap32[(r15+81)] = 0; - heap32[(r15+82)] = 1065353216; - heap32[(r15+83)] = 0; - heap32[(r15+84)] = 1060320051; - heap32[(r15+85)] = 1057384039; - heap32[(r15+86)] = 0; - heap32[(r15+87)] = 0; - heap32[(r15+88)] = -1287930578; - heap32[(r15+89)] = -1082130432; - heap32[(r15+90)] = 0; - heap32[(r15+91)] = 0; - heap32[(r15+92)] = 1065353216; - heap32[(r15+93)] = -1287930578; - heap32[(r15+94)] = 0; - heap32[(r15+95)] = 0; - heap32[(r15+96)] = -2147483648; - heap32[(r15+97)] = 0; - heap32[(r15+98)] = 1065353216; - heap32[(r15+99)] = 0; - heap32[(r15+100)] = 0; - heap32[(r15+101)] = -1088338002; - heap32[(r15+102)] = 0; - heap32[(r15+103)] = 0; - heap8[r_g0+540] = r13; - heap32[(r15+128)] = 0; - heap32[(r15+140)] = -1082130432; - heap32[(r15+107)] = 1008981770; - heap32[(r15+111)] = 1028443341; - heap32[(r15+145)] = 0; - heap32[(r15+146)] = 0; - heap32[(r15+147)] = 1060320051; - heap32[(r15+148)] = 0; - heap32[(r15+108)] = 1070141403; - heap32[(r15+109)] = 1070141403; - heap32[(r15+110)] = 0; - heap32[(r15+104)] = 1065353216; - heap32[(r15+105)] = 1050253722; - heap32[(r15+106)] = 1065353216; - heap32[(r12+32)] = r_g0; - r10 = heap32[(r12+1)]; - r11 = r10 >> 2; - r11 = heap32[(r11)]; - r11 = r11 >> 2; - r11 = heap32[(r11+13)]; - heap32[(g0)] = r10; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r11)>>2](i7); - heap32[(g0)] = 748; - _Znwj(i7); - r8 = r_g0; - r10 = heap32[(r12+23)]; - r11 = heap32[(r12+22)]; - r14 = r8 >> 2; - heap32[(r14+1)] = 4; - heap32[(r14+2)] = -1; - heap32[(r14+3)] = -1; - heap8[r8+16] = r13; - heap32[(r14+5)] = r11; - heap32[(r14+6)] = r10; - heap32[(r14+7)] = 0; - heap32[(r14+8)] = 1050253722; - heap32[(r14)] = r9; - heap32[(r14+135)] = -1287930578; - heap32[(r14+136)] = 0; - heap32[(r14+137)] = 1065353216; - heap32[(r14+138)] = 0; - heap32[(r14+139)] = -2147483648; - heap32[(r14+140)] = 1065353216; - heap32[(r14+141)] = 0; - heap32[(r14+142)] = 0; - heap32[(r14+143)] = -1082130432; - heap32[(r14+144)] = -2147483648; - heap32[(r14+145)] = -1287930578; - heap32[(r14+146)] = 0; - heap32[(r14+147)] = 0; - heap32[(r14+148)] = 1059145646; - heap32[(r14+149)] = 0; - heap32[(r14+150)] = 0; - heap32[(r14+151)] = -1287930578; - heap32[(r14+152)] = 0; - heap32[(r14+153)] = 1065353216; - heap32[(r14+154)] = 0; - heap32[(r14+155)] = -2147483648; - heap32[(r14+156)] = 1065353216; - heap32[(r14+157)] = 0; - heap32[(r14+158)] = 0; - heap32[(r14+159)] = -1082130432; - heap32[(r14+160)] = -2147483648; - heap32[(r14+161)] = -1287930578; - heap32[(r14+162)] = 0; - heap32[(r14+163)] = 0; - heap32[(r14+164)] = -1090854584; - heap32[(r14+165)] = 0; - heap32[(r14+166)] = 0; - heap8[r8+720] = r13; - heap8[r8+721] = r13; - heap8[r8+723] = r13; - heap8[r8+724] = r4; - heap8[r8+725] = r13; - heap32[(r14+183)] = 0; - heap32[(r14+172)] = 1065353216; - heap32[(r14+173)] = -1082130432; - heap32[(r14+170)] = 1050253722; - heap32[(r14+171)] = 1065353216; - heap32[(r14+169)] = 1063675494; - heap8[r8+722] = r13; - heap32[(r14+179)] = 1065353216; - heap32[(g0)] = -1077342245; - heap32[(g0+1)] = 1086918619; - fmodf(i7); - f12 = f_g0; - if(f12 >=f13) //_LBB26_262 -{ - f14 = 3.1415927410125732; - if(f12 >f14) //_LBB26_264 -{ - f14 = -6.2831854820251465; - f12 = f12+f14; -} -} -else{ - f14 = 6.2831854820251465; - f12 = f12+f14; -} - r9 = r8 >> 2; - heapFloat[(r9+172)] = f12; - heap32[(g0)] = 0; - heap32[(g0+1)] = 1086918619; - fmodf(i7); - f12 = f_g0; - if(f12 >=f13) //_LBB26_267 -{ - f13 = 3.1415927410125732; - if(f12 >f13) //_LBB26_269 -{ - f13 = -6.2831854820251465; - f12 = f12+f13; -} -} -else{ - f13 = 6.2831854820251465; - f12 = f12+f13; -} - heapFloat[(r9+173)] = f12; - heap32[(r9+169)] = 1063675494; - heap32[(r9+170)] = 1050253722; - heap32[(r9+171)] = 1065353216; - heap32[(r12+33)] = r8; - r9 = heap32[(r12+1)]; - r10 = r9 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+13)]; - heap32[(g0)] = r9; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r10)>>2](i7); - r8 = heap32[(r1+10)]; - r9 = heap32[(r1+9)]; - if(r8 ==r9) //_LBB26_272 -{ - r10 = r9 << 1; - r10 = r9 == 0 ? r4 : r10; -if(!(r8 >=r10)) //_LBB26_271 -{ - if(r10 !=0) //_LBB26_275 -{ - r8 = heap32[(r2)]; - r11 = r10 << 2; - r8 = (r8 + 1)|0; - r11 = r11 | 3; - heap32[(r2)] = r8; - r8 = (r11 + 16)|0; - heap32[(g0)] = r8; - malloc(i7); - r8 = r_g0; - if(r8 !=0) //_LBB26_277 -{ - r11 = (r8 + 4)|0; - r11 = (r13 - r11)|0; - r11 = r11 & 15; - r11 = (r8 + r11)|0; - r12 = (r11 + 4)|0; - r11 = r11 >> 2; - heap32[(r11)] = r8; - r8 = r12; -} -} -else{ - r8 = 0; -} -_358: do { - if(r9 <1) //_LBB26_280 -{ - r11 = heap32[(r1+11)]; -} -else{ -_360: while(true){ - r11 = heap32[(r1+11)]; - r12 = r13 << 2; - r14 = (r11 + r12)|0; - r14 = r14 >> 2; - r12 = (r8 + r12)|0; - r14 = heap32[(r14)]; - r13 = (r13 + 1)|0; - r12 = r12 >> 2; - heap32[(r12)] = r14; -if(!(r9 !=r13)) //_LBB26_281 -{ -break _358; -} -} -} -} while(0); - if(r11 !=0) //_LBB26_284 -{ - r12 = heapU8[r6+48]; - if(r12 !=0) //_LBB26_286 -{ - r9 = gNumAlignedFree; - r9 = r9 >> 2; - r12 = heap32[(r9)]; - r12 = (r12 + 1)|0; - r11 = r11 >> 2; - heap32[(r9)] = r12; - r9 = heap32[(r11+-1)]; - heap32[(g0)] = r9; - free(i7); - r9 = heap32[(r1+9)]; -} - heap32[(r1+11)] = 0; -} - heap8[r6+48] = r4; - heap32[(r1+11)] = r8; - heap32[(r1+10)] = r10; -} -} - r8 = r9 << 2; - r9 = heap32[(r1+11)]; - r8 = (r9 + r8)|0; - r8 = r8 >> 2; - heap32[(r8)] = r7; - r7 = heap32[(r1+9)]; - r5 = (r5 + 1)|0; - r7 = (r7 + 1)|0; - heap32[(r1+9)] = r7; -if(!(r0 !=r5)) //_LBB26_185 -{ -break _262; -} -} - f3 = 7; - f4 = -2; - r0 = (r0 + -1)|0; - f1 = f1+f3; - f2 = f2+f4; - r3 = (r3 + 1)|0; - if(r0 ==0) //_LBB26_165 -{ -break _161; -} -else{ -continue _260; -} -} -} -} -} -} -} while(0); - return; -break; -case 46: - r0 = _2E_str674; - r1 = _2E_str573; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 53; - _assert(i7); -break; -} -} - -function _GLOBAL__D__Z6mymainiPPc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = _ZL14benchmarkDemo4; - r1 = _ZTV13BenchmarkDemo; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN13BenchmarkDemo11exitPhysicsEv(i7); - r1 = heap32[(r2+11)]; -if(!(r1 ==0)) //_LBB27_4 -{ - r3 = heapU8[r0+48]; -if(!(r3 ==0)) //_LBB27_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+11)] = 0; -} - r1 = 1; - heap8[r0+48] = r1; - heap32[(r2+11)] = 0; - heap32[(r2+9)] = 0; - heap32[(r2+10)] = 0; - r3 = heap32[(r2+6)]; -if(!(r3 ==0)) //_LBB27_8 -{ - r4 = heapU8[r0+28]; -if(!(r4 ==0)) //_LBB27_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+6)] = 0; -} - heap8[r0+28] = r1; - heap32[(r2+6)] = 0; - heap32[(r2+4)] = 0; - heap32[(r2+5)] = 0; - return; -} - -function _ZN14BenchmarkDemo4D1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV14BenchmarkDemo4; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN13BenchmarkDemoD2Ev(i7); - return; -} - -function _ZN14BenchmarkDemo4D0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV14BenchmarkDemo4; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN13BenchmarkDemoD2Ev(i7); - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function __draw(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = _ZL14benchmarkDemo4; - heap32[(g0)] = r0; - _ZN13BenchmarkDemo20clientMoveAndDisplayEv(i7); - return; -} - -function _ZN13BenchmarkDemoD2Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV13BenchmarkDemo; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN13BenchmarkDemo11exitPhysicsEv(i7); - r1 = heap32[(r2+11)]; -if(!(r1 ==0)) //_LBB31_4 -{ - r3 = heapU8[r0+48]; -if(!(r3 ==0)) //_LBB31_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+11)] = 0; -} - r1 = 1; - heap8[r0+48] = r1; - heap32[(r2+11)] = 0; - heap32[(r2+9)] = 0; - heap32[(r2+10)] = 0; - r3 = heap32[(r2+6)]; -if(!(r3 ==0)) //_LBB31_8 -{ - r4 = heapU8[r0+28]; -if(!(r4 ==0)) //_LBB31_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+6)] = 0; -} - heap8[r0+28] = r1; - heap32[(r2+6)] = 0; - heap32[(r2+4)] = 0; - heap32[(r2+5)] = 0; - return; -} - -function __init(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = gDisableDeactivation; - r1 = 1; - heap8[r0] = r1; - _ZN13BenchmarkDemo11initPhysicsEv(i7); - return; -} - -function _ZN15btNullPairCache23getOverlappingPairArrayEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = (r0 + 4)|0; - r_g0 = r0; - return; -} - -function _ZN15btNullPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZNK15btNullPairCache22getNumOverlappingPairsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN15btNullPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN15btNullPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN15btNullPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN15btNullPairCache8findPairEP17btBroadphaseProxyS1_(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN15btNullPairCache18hasDeferredRemovalEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 1; - r_g0 = r0; - return; -} - -function _ZN15btNullPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN15btNullPairCache18addOverlappingPairEP17btBroadphaseProxyS1_(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN15btNullPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN15btNullPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN15btNullPairCache20sortOverlappingPairsEP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN15btNullPairCache26getOverlappingPairArrayPtrEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+4)]; - r_g0 = r0; - return; -} - -function _ZNK15btNullPairCache26getOverlappingPairArrayPtrEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+4)]; - r_g0 = r0; - return; -} - -function _ZN15btNullPairCacheD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV15btNullPairCache; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+4)]; -if(!(r1 ==0)) //_LBB48_4 -{ - r3 = heapU8[r0+20]; -if(!(r3 ==0)) //_LBB48_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+4)] = 0; -} - r1 = 1; - heap8[r0+20] = r1; - heap32[(r2+4)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - return; -} - -function _ZN15btNullPairCacheD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV15btNullPairCache; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+4)]; -if(!(r1 ==0)) //_LBB49_4 -{ - r3 = heapU8[r0+20]; -if(!(r3 ==0)) //_LBB49_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+4)] = 0; -} - r1 = 1; - heap8[r0+20] = r1; - heap32[(r2+4)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp+2)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - heap32[(r1)] = heap32[(r0+4)]; - heap32[(r1+1)] = heap32[(r0+5)]; - r2 = heap32[(fp+3)]; - heap32[(r1+2)] = heap32[(r0+6)]; - r2 = r2 >> 2; - heap32[(r1+3)] = heap32[(r0+7)]; - heap32[(r2)] = heap32[(r0+8)]; - heap32[(r2+1)] = heap32[(r0+9)]; - heap32[(r2+2)] = heap32[(r0+10)]; - heap32[(r2+3)] = heap32[(r0+11)]; - return; -} - -function _ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+23)]; - r_g0 = r0; - return; -} - -function _ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+23)]; - r_g0 = r0; - return; -} - -function _ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - heap32[(r1)] = heap32[(r0+2)]; - heap32[(r1+1)] = heap32[(r0+3)]; - r2 = heap32[(fp+2)]; - heap32[(r1+2)] = heap32[(r0+4)]; - r2 = r2 >> 2; - heap32[(r1+3)] = heap32[(r0+5)]; - heap32[(r2)] = heap32[(r0+6)]; - heap32[(r2+1)] = heap32[(r0+7)]; - heap32[(r2+2)] = heap32[(r0+8)]; - heap32[(r2+3)] = heap32[(r0+9)]; - return; -} - -function _ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU16[(r0+56)>>1]; -if(!(r1 !=0)) //_LBB54_6 -{ - r1 = 1; - heap16[(r0+64)>>1] = r1; - r2 = heapU16[(r0+58)>>1]; - if(uint(r2) >uint(1)) //_LBB54_3 -{ - r3 = 2; -_5: while(true){ - r2 = r1 & 65535; - r4 = r0 >> 2; - r2 = r2 << 6; - r4 = heap32[(r4+15)]; - r2 = (r4 + r2)|0; - heap16[(r2+48)>>1] = r3; - r1 = (r1 + 1)|0; - r2 = heapU16[(r0+58)>>1]; - r3 = (r3 + 1)|0; - r4 = r1 & 65535; -if(!(uint(r2) >uint(r4))) //_LBB54_4 -{ -break _5; -} -} -} - r1 = r2 & 65535; - r0 = r0 >> 2; - r1 = r1 << 6; - r0 = heap32[(r0+15)]; - r0 = (r1 + r0)|0; - r1 = 0; - heap16[(r0+-16)>>1] = r1; -} - return; -} - -function _ZN20btAxisSweep3InternalItE10printStatsEv(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+27)]; - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - r5 = heap32[(fp+3)]; - if(r2 !=0) //_LBB56_2 -{ - r0 = r2 >> 2; - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r0 = heap32[(r0+7)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - __FUNCTION_TABLE__[(r0)>>2](i7); - return; -} -else{ - r2 = heapU16[(r0+56)>>1]; - r2 = r2 << 1; - r2 = r2 | 1; -if(!(r2 ==1)) //_LBB56_18 -{ - r2 = 1; - r6 = 2; -_6: while(true){ - r7 = r6; - r6 = r2 & 65535; - r8 = heap32[(r1+17)]; - r6 = r6 << 2; - r9 = heapU8[r8+r6]; - r9 = r9 & 1; -if(!(r9 ==0)) //_LBB56_17 -{ - r6 = (r8 + r6)|0; - r6 = heapU16[(r6+2)>>1]; - r8 = heap32[(r1+15)]; - r6 = r6 << 6; - r6 = (r8 + r6)|0; - r8 = r3 >> 2; - r9 = r6 >> 2; - f0 = heapFloat[(r8)]; - f1 = heapFloat[(r9+8)]; - if(f0 >f1) //_LBB56_8 -{ -__label__ = 8; -} -else{ - r10 = r4 >> 2; - f0 = heapFloat[(r10)]; - f1 = heapFloat[(r9+4)]; - if(f0 f1) //_LBB56_12 -{ -__label__ = 11; -} -else{ - r11 = r4 >> 2; - f0 = heapFloat[(r11+2)]; - f1 = heapFloat[(r9+6)]; - if(f0 f1)) //_LBB56_17 -{ - r8 = r4 >> 2; - f0 = heapFloat[(r8+1)]; - f1 = heapFloat[(r9+5)]; -if(!(f0 > 2; - r8 = heap32[(r8)]; - r8 = r8 >> 2; - r8 = heap32[(r8+2)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r6; - __FUNCTION_TABLE__[(r8)>>2](i7); -} -} -} -} - r8 = heapU16[(r0+56)>>1]; - r6 = (r7 + 1)|0; - r2 = (r2 + 1)|0; - r8 = r8 << 1; - r7 = r7 & 65535; - r8 = r8 | 1; -if(!(uint(r7) >2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+27)]; - r3 = heap32[(fp+3)]; - if(r2 !=0) //_LBB57_2 -{ - r0 = heap32[(fp+1)]; - r1 = heap32[(fp+2)]; - r4 = heap32[(fp+4)]; - r5 = heap32[(fp+5)]; - r6 = r2 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+6)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r4; - heap32[(g0+5)] = r5; - __FUNCTION_TABLE__[(r6)>>2](i7); - return; -} -else{ - r2 = heapU16[(r0+56)>>1]; - r2 = r2 << 1; - r2 = r2 | 1; -if(!(r2 ==1)) //_LBB57_7 -{ - r2 = 1; - r4 = 2; -_6: while(true){ - r5 = r2 & 65535; - r6 = heap32[(r1+17)]; - r5 = r5 << 2; - r7 = heapU8[r6+r5]; - r7 = r7 & 1; -if(!(r7 ==0)) //_LBB57_6 -{ - r7 = r3 >> 2; - r7 = heap32[(r7)]; - r7 = r7 >> 2; - r5 = (r6 + r5)|0; - r5 = heapU16[(r5+2)>>1]; - r6 = heap32[(r7+2)]; - r7 = heap32[(r1+15)]; - r5 = r5 << 6; - r5 = (r7 + r5)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - __FUNCTION_TABLE__[(r6)>>2](i7); -} - r5 = heapU16[(r0+56)>>1]; - r6 = (r4 + 1)|0; - r2 = (r2 + 1)|0; - r5 = r5 << 1; - r7 = r4 & 65535; - r5 = r5 | 1; - r4 = r6; -if(!(uint(r7) >2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - f0 = heapFloat[(fp+2)]; - f1 = heapFloat[(r1+2)]; - f2 = heapFloat[(fp+4)]; - f3 = heapFloat[(r1+4)]; - f4 = heapFloat[(fp+3)]; - f5 = heapFloat[(r1+3)]; - f0 = f0-f1; - f1 = heapFloat[(r1+10)]; - f2 = f2-f3; - f3 = heapFloat[(r1+12)]; - f4 = f4-f5; - f5 = heapFloat[(r1+11)]; - f0 = f0*f1; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+5)]; - f1 = f2*f3; - f2 = f4*f5; - f3 = 0; - if(f0 >f3) //_LBB58_2 -{ - r3 = heapU16[(r0+6)>>1]; - f4 = r3; //fitos r3, f4 - if(f0 >1]; - r4 = Math.floor(f0); - r3 = r3 & r4; - r3 = r3 | r2; -} -else{ - r4 = heapU16[(r0+4)>>1]; - r3 = r4 & r3; - r3 = r3 | r2; -} -} -else{ - r3 = r2; -} - heap16[(r1)>>1] = r3; - if(f2 >f3) //_LBB58_7 -{ - r3 = heapU16[(r0+6)>>1]; - f0 = r3; //fitos r3, f0 - if(f2 >1]; - r4 = Math.floor(f2); - r3 = r3 & r4; - r3 = r3 | r2; -} -else{ - r4 = heapU16[(r0+4)>>1]; - r3 = r4 & r3; - r3 = r3 | r2; -} -} -else{ - r3 = r2; -} - heap16[(r1+2)>>1] = r3; - if(f1 >f3) //_LBB58_12 -{ - r3 = heapU16[(r0+6)>>1]; - f0 = r3; //fitos r3, f0 - if(f1 >1]; - r3 = Math.floor(f1); - r0 = r0 & r3; - r2 = r0 | r2; -} -else{ - r0 = heapU16[(r0+4)>>1]; - r0 = r0 & r3; - r2 = r0 | r2; -} -} - heap16[(r1+4)>>1] = r2; - return; -} - -function _ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; - var r24; - var r25; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp+1)]; - r2 = (r0 + r1)|0; - r3 = r2 >>> 31; - r4 = heap32[(fp)]; - r2 = (r2 + r3)|0; - r3 = r4 >> 2; - r2 = r2 & 536870910; - r5 = heap32[(r3+3)]; - r2 = r2 << 3; - r2 = (r5 + r2)|0; - r2 = r2 >> 2; - r5 = heap32[(r2)]; - r6 = heap32[(r2+1)]; - r2 = heap32[(r2+2)]; - r7 = r1; - r8 = r0; -_1: while(true){ - r9 = heap32[(r3+3)]; - r10 = r7 << 4; - r10 = (r9 + r10)|0; - r11 = 0; -_3: while(true){ - r12 = r11 << 4; - r12 = (r10 + r12)|0; - r12 = r12 >> 2; - r13 = r11 << 2; - r14 = heap32[(r12)]; - if(r14 !=0) //_LBB59_5 -{ - r15 = r14 >> 2; - r15 = heap32[(r15+3)]; -} -else{ - r15 = -1; -} - if(r5 !=0) //_LBB59_8 -{ - r16 = r5 >> 2; - r16 = heap32[(r16+3)]; -} -else{ - r16 = -1; -} - r17 = r13 << 2; - r17 = (r10 + r17)|0; - r17 = r17 >> 2; - r17 = heap32[(r17+1)]; - if(r17 !=0) //_LBB59_11 -{ - r18 = r17 >> 2; - r18 = heap32[(r18+3)]; -} -else{ - r18 = -1; -} - if(r6 !=0) //_LBB59_14 -{ - r19 = r6 >> 2; - r19 = heap32[(r19+3)]; -} -else{ - r19 = -1; -} -_21: do { -if(!(r15 >r16)) //_LBB59_2 -{ -if(!(r14 !=r5)) //_LBB59_18 -{ - if(r18 >r19) //_LBB59_2 -{ -break _21; -} -} - if(r14 !=r5) //_LBB59_22 -{ -break _3; -} -else{ - if(r17 !=r6) //_LBB59_22 -{ -break _3; -} -else{ - r15 = r13 << 2; - r15 = (r10 + r15)|0; - r15 = r15 >> 2; - r15 = heap32[(r15+2)]; -if(!(uint(r15) >uint(r2))) //_LBB59_2 -{ -break _3; -} -} -} -} -} while(0); - r11 = (r11 + 1)|0; -continue _3; -} - r18 = r8 << 4; - r15 = (r7 + r11)|0; - r9 = (r9 + r18)|0; - r16 = 0; -_30: while(true){ - r19 = r16 << 2; - if(r5 !=0) //_LBB59_25 -{ - r20 = r5 >> 2; - r20 = heap32[(r20+3)]; -} -else{ - r20 = -1; -} - r21 = r19 << 2; - r21 = (r9 + r21)|0; - r21 = r21 >> 2; - r21 = heap32[(r21)]; - if(r21 !=0) //_LBB59_28 -{ - r22 = r21 >> 2; - r22 = heap32[(r22+3)]; -} -else{ - r22 = -1; -} - if(r6 !=0) //_LBB59_31 -{ - r23 = r6 >> 2; - r23 = heap32[(r23+3)]; -} -else{ - r23 = -1; -} - r24 = r19 << 2; - r24 = (r9 + r24)|0; - r24 = r24 >> 2; - r24 = heap32[(r24+1)]; - if(r24 !=0) //_LBB59_34 -{ - r25 = r24 >> 2; - r25 = heap32[(r25+3)]; -} -else{ - r25 = -1; -} -_48: do { -if(!(r20 >r22)) //_LBB59_21 -{ -if(!(r5 !=r21)) //_LBB59_38 -{ - if(r23 >r25) //_LBB59_21 -{ -break _48; -} -} - if(r5 !=r21) //_LBB59_41 -{ -break _30; -} -else{ - if(r6 !=r24) //_LBB59_41 -{ -break _30; -} -else{ - r20 = r19 << 2; - r20 = (r9 + r20)|0; - r20 = r20 >> 2; - r20 = heap32[(r20+2)]; -if(!(uint(r2) >uint(r20))) //_LBB59_21 -{ -break _30; -} -} -} -} -} while(0); - r16 = (r16 + -1)|0; -continue _30; -} - r20 = (r8 + r16)|0; - if(r15 <=r20) //_LBB59_43 -{ - r13 = r13 << 2; - r10 = (r10 + r13)|0; - r10 = r10 >> 2; - r13 = heap32[(r12+3)]; - r15 = heap32[(r10+2)]; - r19 = r19 << 2; - r19 = (r9 + r19)|0; - heap32[(r10)] = r21; - r20 = r16 << 4; - r19 = r19 >> 2; - heap32[(r10+1)] = r24; - r19 = heap32[(r19+2)]; - r9 = (r9 + r20)|0; - r9 = r9 >> 2; - heap32[(r10+2)] = r19; - r9 = heap32[(r9+3)]; - heap32[(r12+3)] = r9; - r9 = heap32[(r3+3)]; - r9 = (r9 + r18)|0; - r9 = (r9 + r20)|0; - r9 = r9 >> 2; - heap32[(r9)] = r14; - r7 = (r7 + r11)|0; - r8 = (r8 + r16)|0; - heap32[(r9+1)] = r17; - r7 = (r7 + 1)|0; - r8 = (r8 + -1)|0; - heap32[(r9+2)] = r15; - heap32[(r9+3)] = r13; -} -else{ - r7 = r15; - r8 = r20; -} - if(r7 <=r8) //_LBB59_1 -{ -continue _1; -} -else{ -break _1; -} -} -if(!(r8 <=r1)) //_LBB59_47 -{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r8; - _ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7); -} -if(!(r7 >=r0)) //_LBB59_49 -{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r0; - _ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7); -} - return; -} - -function _ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = r0 << 2; - r2 = (r1 + r2)|0; - r3 = heap32[(fp+2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+17)]; - r3 = r3 << 2; - r4 = (r2 + r3)|0; - r2 = heapU16[(r2+r3)>>1]; - r3 = heapU16[(r4+-4)>>1]; -if(!(uint(r2) >=uint(r3))) //_LBB60_14 -{ - r1 = r1 >> 2; - r2 = heap32[(fp+3)]; - r3 = heap32[(r1+15)]; - r5 = heapU16[(r4+2)>>1]; - r6 = 1; - r7 = r6 << r0; - r7 = r7 & 3; - r6 = r6 << r7; - r5 = r5 << 6; - r5 = (r3 + r5)|0; - r6 = r6 & 3; - r0 = r0 << 1; - r8 = (r5 + 48)|0; - r7 = r7 << 1; - r9 = (r5 + 54)|0; - r6 = r6 << 1; - r10 = (r8 + r0)|0; - r11 = (r9 + r7)|0; - r12 = (r8 + r7)|0; - r9 = (r9 + r6)|0; - r8 = (r8 + r6)|0; - r4 = (r4 + 2)|0; -_3: while(true){ - r13 = heapU8[r4+-6]; - r14 = heapU16[(r4+-4)>>1]; - r13 = r13 & 1; - if(r13 ==0) //_LBB60_11 -{ - r13 = r14 << 6; - r3 = (r3 + r13)|0; - r3 = (r3 + r0)|0; - r13 = heapU16[(r3+48)>>1]; - r13 = (r13 + 1)|0; - heap16[(r3+48)>>1] = r13; -} -else{ -if(!(r2 ==0)) //_LBB60_10 -{ - r13 = r14 << 6; - r13 = (r3 + r13)|0; - r15 = (r13 + r7)|0; - r16 = heapU16[(r11)>>1]; - r17 = heapU16[(r15+48)>>1]; -if(!(uint(r16) >1]; - r16 = heapU16[(r12)>>1]; -if(!(uint(r15) >1]; - r17 = heapU16[(r15+48)>>1]; -if(!(uint(r16) >1]; - r16 = heapU16[(r8)>>1]; -if(!(uint(r15) > 2; - r16 = heap32[(r16)]; - r16 = r16 >> 2; - r16 = heap32[(r16+2)]; - heap32[(g0)] = r15; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r13; - __FUNCTION_TABLE__[(r16)>>2](i7); - r15 = heap32[(r1+24)]; -if(!(r15 ==0)) //_LBB60_10 -{ - r16 = r15 >> 2; - r16 = heap32[(r16)]; - r16 = r16 >> 2; - r16 = heap32[(r16+2)]; - heap32[(g0)] = r15; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r13; - __FUNCTION_TABLE__[(r16)>>2](i7); -} -} -} -} -} -} - r14 = r14 << 6; - r3 = (r3 + r14)|0; - r3 = (r3 + r0)|0; - r14 = heapU16[(r3+54)>>1]; - r14 = (r14 + 1)|0; - heap16[(r3+54)>>1] = r14; -} - r3 = heapU16[(r10)>>1]; - r3 = (r3 + -1)|0; - heap16[(r10)>>1] = r3; - r3 = heapU16[(r4+-2)>>1]; - r13 = heapU16[(r4)>>1]; - r14 = heapU16[(r4+-4)>>1]; - r15 = heapU16[(r4+-6)>>1]; - heap16[(r4+-2)>>1] = r15; - heap16[(r4)>>1] = r14; - heap16[(r4+-6)>>1] = r3; - heap16[(r4+-4)>>1] = r13; - r13 = heapU16[(r4+-10)>>1]; - if(uint(r3) >=uint(r13)) //_LBB60_14 -{ -break _3; -} -else{ - r3 = heap32[(r1+15)]; - r4 = (r4 + -4)|0; -continue _3; -} -} -} - return; -} - -function _ZN20btAxisSweep3InternalItE9sortMaxUpEitP12btDispatcherb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = r0 << 2; - r2 = (r1 + r2)|0; - r2 = r2 >> 2; - r3 = heap32[(fp+2)]; - r4 = 1; - r2 = heap32[(r2+17)]; - r3 = r3 << 2; - r2 = (r2 + r3)|0; - r3 = r4 << r0; - r3 = r3 & 3; - r1 = r1 >> 2; - r5 = heapU16[(r2+2)>>1]; - r4 = r4 << r3; - r6 = heap32[(r1+15)]; - r5 = r5 << 6; - r4 = r4 & 3; - r5 = (r6 + r5)|0; - r3 = r3 << 1; - r6 = (r5 + 48)|0; - r4 = r4 << 1; - r5 = (r5 + 54)|0; - r0 = r0 << 1; - r7 = heap32[(fp+3)]; - r8 = (r5 + r3)|0; - r9 = (r6 + r3)|0; - r10 = (r5 + r4)|0; - r6 = (r6 + r4)|0; - r5 = (r5 + r0)|0; - r2 = (r2 + 4)|0; -_1: while(true){ - r11 = heapU16[(r2+2)>>1]; - if(r11 ==0) //_LBB61_14 -{ -break _1; -} -else{ - r12 = heapU16[(r2)>>1]; - r13 = heapU16[(r2+-4)>>1]; - if(uint(r13) >=uint(r12)) //_LBB61_1 -{ - r13 = heap32[(r1+15)]; - r11 = r11 & 65535; - r12 = r12 & 1; - if(r12 != 0) //_LBB61_10 -{ - r11 = r11 << 6; - r11 = (r13 + r11)|0; - r11 = (r11 + r0)|0; - r12 = heapU16[(r11+54)>>1]; - r12 = (r12 + -1)|0; - heap16[(r11+54)>>1] = r12; -} -else{ -if(!(r7 ==0)) //_LBB61_9 -{ - r12 = r11 << 6; - r12 = (r13 + r12)|0; - r14 = (r12 + r3)|0; - r15 = heapU16[(r8)>>1]; - r16 = heapU16[(r14+48)>>1]; -if(!(uint(r15) >1]; - r15 = heapU16[(r9)>>1]; -if(!(uint(r14) >1]; - r16 = heapU16[(r14+48)>>1]; -if(!(uint(r15) >1]; - r15 = heapU16[(r6)>>1]; -if(!(uint(r14) > 2; - r15 = heap32[(r15)]; - r15 = r15 >> 2; - r16 = heapU16[(r2+-2)>>1]; - r15 = heap32[(r15+2)]; - r16 = r16 << 6; - r16 = (r13 + r16)|0; - heap32[(g0)] = r14; - heap32[(g0+1)] = r16; - heap32[(g0+2)] = r12; - __FUNCTION_TABLE__[(r15)>>2](i7); - r14 = heap32[(r1+24)]; -if(!(r14 ==0)) //_LBB61_9 -{ - r15 = r14 >> 2; - r15 = heap32[(r15)]; - r15 = r15 >> 2; - r15 = heap32[(r15+2)]; - heap32[(g0)] = r14; - heap32[(g0+1)] = r16; - heap32[(g0+2)] = r12; - __FUNCTION_TABLE__[(r15)>>2](i7); -} -} -} -} -} -} - r11 = r11 << 6; - r11 = (r13 + r11)|0; - r11 = (r11 + r0)|0; - r12 = heapU16[(r11+48)>>1]; - r12 = (r12 + -1)|0; - heap16[(r11+48)>>1] = r12; -} - r11 = heapU16[(r5)>>1]; - r11 = (r11 + 1)|0; - heap16[(r5)>>1] = r11; - r11 = heapU16[(r2+-2)>>1]; - r12 = heapU16[(r2+-4)>>1]; - r13 = heapU16[(r2+2)>>1]; - r14 = heapU16[(r2)>>1]; - heap16[(r2+-4)>>1] = r14; - heap16[(r2+-2)>>1] = r13; - r13 = (r2 + 4)|0; - heap16[(r2)>>1] = r12; - heap16[(r2+2)>>1] = r11; - r2 = r13; -continue _1; -} -else{ -break _1; -} -} -} - return; -} - -function _ZN20btAxisSweep3InternalItE9sortMinUpEitP12btDispatcherb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = r0 << 2; - r2 = (r1 + r2)|0; - r2 = r2 >> 2; - r3 = heap32[(fp+2)]; - r2 = heap32[(r2+17)]; - r3 = r3 << 2; - r2 = (r2 + r3)|0; - r1 = r1 >> 2; - r3 = heapU16[(r2+2)>>1]; - r4 = 1; - r5 = r4 << r0; - r6 = heap32[(r1+15)]; - r3 = r3 << 6; - r5 = r5 & 3; - r3 = (r6 + r3)|0; - r0 = r0 << 1; - r3 = (r3 + r0)|0; - r4 = r4 << r5; - r6 = heap32[(fp+3)]; - r7 = heap32[(fp+4)]; - r3 = (r3 + 48)|0; - r4 = r4 & 3; - r2 = (r2 + 4)|0; -_1: while(true){ - r8 = heapU16[(r2+2)>>1]; - if(r8 ==0) //_LBB62_14 -{ -break _1; -} -else{ - r9 = heapU16[(r2)>>1]; - r10 = heapU16[(r2+-4)>>1]; - if(uint(r10) >=uint(r9)) //_LBB62_1 -{ - r10 = heap32[(r1+15)]; - r8 = r8 & 65535; - r9 = r9 & 1; - if(r9 ==0) //_LBB62_10 -{ - r8 = r8 << 6; - r8 = (r10 + r8)|0; - r8 = (r8 + r0)|0; - r9 = heapU16[(r8+48)>>1]; - r9 = (r9 + -1)|0; - heap16[(r8+48)>>1] = r9; -} -else{ -if(!(r7 ==0)) //_LBB62_9 -{ - r9 = heapU16[(r2+-2)>>1]; - r9 = r9 << 6; - r11 = r8 << 6; - r9 = (r10 + r9)|0; - r12 = r5 << 1; - r11 = (r10 + r11)|0; - r13 = (r9 + r12)|0; - r12 = (r11 + r12)|0; - r14 = heapU16[(r13+54)>>1]; - r15 = heapU16[(r12+48)>>1]; -if(!(uint(r14) >1]; - r13 = heapU16[(r13+48)>>1]; -if(!(uint(r12) >1]; - r15 = heapU16[(r12+48)>>1]; -if(!(uint(r14) >1]; - r13 = heapU16[(r13+48)>>1]; -if(!(uint(r12) > 2; - r13 = heap32[(r13)]; - r13 = r13 >> 2; - r13 = heap32[(r13+3)]; - heap32[(g0)] = r12; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r11; - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r13)>>2](i7); - r12 = heap32[(r1+24)]; -if(!(r12 ==0)) //_LBB62_9 -{ - r13 = r12 >> 2; - r13 = heap32[(r13)]; - r13 = r13 >> 2; - r13 = heap32[(r13+3)]; - heap32[(g0)] = r12; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r11; - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r13)>>2](i7); -} -} -} -} -} -} - r8 = r8 << 6; - r8 = (r10 + r8)|0; - r8 = (r8 + r0)|0; - r9 = heapU16[(r8+54)>>1]; - r9 = (r9 + -1)|0; - heap16[(r8+54)>>1] = r9; -} - r8 = heapU16[(r3)>>1]; - r8 = (r8 + 1)|0; - heap16[(r3)>>1] = r8; - r8 = heapU16[(r2+-2)>>1]; - r9 = heapU16[(r2+-4)>>1]; - r10 = heapU16[(r2+2)>>1]; - r11 = heapU16[(r2)>>1]; - heap16[(r2+-4)>>1] = r11; - heap16[(r2+-2)>>1] = r10; - r10 = (r2 + 4)|0; - heap16[(r2)>>1] = r9; - heap16[(r2+2)>>1] = r8; - r2 = r10; -continue _1; -} -else{ -break _1; -} -} -} - return; -} - -function _ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = r0 << 2; - r2 = (r1 + r2)|0; - r3 = heap32[(fp+2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+17)]; - r4 = r3 << 2; - r5 = (r2 + r4)|0; - r4 = heapU16[(r2+r4)>>1]; - r6 = heapU16[(r5+-4)>>1]; -if(!(uint(r4) >=uint(r6))) //_LBB63_14 -{ - r1 = r1 >> 2; - r4 = heap32[(fp+3)]; - r6 = heap32[(fp+4)]; - r7 = heap32[(r1+15)]; - r3 = r3 << 2; - r2 = (r2 + r3)|0; - r2 = heapU16[(r2+2)>>1]; - r3 = 1; - r8 = r3 << r0; - r2 = r2 << 6; - r8 = r8 & 3; - r2 = (r7 + r2)|0; - r0 = r0 << 1; - r3 = r3 << r8; - r2 = (r2 + r0)|0; - r3 = r3 & 3; - r2 = (r2 + 54)|0; - r5 = (r5 + 2)|0; -_3: while(true){ - r9 = heapU8[r5+-6]; - r10 = heapU16[(r5+-4)>>1]; - r9 = r9 & 1; - if(r9 != 0) //_LBB63_11 -{ - r9 = r10 << 6; - r7 = (r7 + r9)|0; - r7 = (r7 + r0)|0; - r9 = heapU16[(r7+54)>>1]; - r9 = (r9 + 1)|0; - heap16[(r7+54)>>1] = r9; -} -else{ -if(!(r6 ==0)) //_LBB63_10 -{ - r9 = heapU16[(r5)>>1]; - r9 = r9 << 6; - r11 = r10 << 6; - r9 = (r7 + r9)|0; - r12 = r8 << 1; - r11 = (r7 + r11)|0; - r13 = (r9 + r12)|0; - r12 = (r11 + r12)|0; - r14 = heapU16[(r13+54)>>1]; - r15 = heapU16[(r12+48)>>1]; -if(!(uint(r14) >1]; - r13 = heapU16[(r13+48)>>1]; -if(!(uint(r12) >1]; - r15 = heapU16[(r12+48)>>1]; -if(!(uint(r14) >1]; - r13 = heapU16[(r13+48)>>1]; -if(!(uint(r12) > 2; - r13 = heap32[(r13)]; - r13 = r13 >> 2; - r13 = heap32[(r13+3)]; - heap32[(g0)] = r12; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r11; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r13)>>2](i7); - r12 = heap32[(r1+24)]; -if(!(r12 ==0)) //_LBB63_10 -{ - r13 = r12 >> 2; - r13 = heap32[(r13)]; - r13 = r13 >> 2; - r13 = heap32[(r13+3)]; - heap32[(g0)] = r12; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r11; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r13)>>2](i7); -} -} -} -} -} -} - r10 = r10 << 6; - r7 = (r7 + r10)|0; - r7 = (r7 + r0)|0; - r10 = heapU16[(r7+48)>>1]; - r10 = (r10 + 1)|0; - heap16[(r7+48)>>1] = r10; -} - r7 = heapU16[(r2)>>1]; - r7 = (r7 + -1)|0; - heap16[(r2)>>1] = r7; - r7 = heapU16[(r5+-2)>>1]; - r9 = heapU16[(r5)>>1]; - r10 = heapU16[(r5+-4)>>1]; - r11 = heapU16[(r5+-6)>>1]; - heap16[(r5+-2)>>1] = r11; - heap16[(r5)>>1] = r10; - heap16[(r5+-6)>>1] = r7; - heap16[(r5+-4)>>1] = r9; - r9 = heapU16[(r5+-10)>>1]; - if(uint(r7) >=uint(r9)) //_LBB63_14 -{ -break _3; -} -else{ - r7 = heap32[(r1+15)]; - r5 = (r5 + -4)|0; -continue _3; -} -} -} - return; -} - -function _ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp+1)]; - r2 = r0 >> 2; - r3 = r1 >> 2; - heap32[(r3+4)] = heap32[(r2)]; - heap32[(r3+5)] = heap32[(r2+1)]; - r4 = heap32[(fp+3)]; - heap32[(r3+6)] = heap32[(r2+2)]; - heap32[(r3+7)] = heap32[(r2+3)]; - r5 = r4 >> 2; - heap32[(r3+8)] = heap32[(r5)]; - heap32[(r3+9)] = heap32[(r5+1)]; - r6 = heap32[(fp)]; - heap32[(r3+10)] = heap32[(r5+2)]; - heap32[(r3+11)] = heap32[(r5+3)]; - r7 = r6 >> 2; - r1 = heapU16[(r1+12)>>1]; - r8 = heap32[(r7+15)]; - f0 = heapFloat[(r2)]; - f1 = heapFloat[(r2+1)]; - f2 = heapFloat[(r2+2)]; - r2 = sp + -6; - heap32[(g0)] = r6; - heap32[(g0+1)] = r2; - heapFloat[(g0+2)] = f0; - heapFloat[(g0+3)] = f1; - heapFloat[(g0+4)] = f2; - heap32[(g0+5)] = 0; - _ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7); - f0 = heapFloat[(r5)]; - f1 = heapFloat[(r5+1)]; - f2 = heapFloat[(r5+2)]; - r1 = r1 << 6; - r5 = sp + -12; - r1 = (r8 + r1)|0; - heap32[(g0)] = r6; - heap32[(g0+1)] = r5; - heapFloat[(g0+2)] = f0; - heapFloat[(g0+3)] = f1; - heapFloat[(g0+4)] = f2; - heap32[(g0+5)] = 1; - r8 = heap32[(fp+4)]; - r1 = (r1 + 48)|0; - r9 = 0; - _ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7); - r10 = r9; -_1: while(true){ - r11 = r9 << 2; - r12 = r9 << 1; - r13 = (r1 - r12)|0; - r11 = (r6 - r11)|0; - r14 = heapU16[(r13)>>1]; - r13 = heapU16[(r13+6)>>1]; - r11 = r11 >> 2; - r15 = (r2 - r12)|0; - r12 = (r5 - r12)|0; - r16 = heap32[(r11+17)]; - r17 = r14 << 2; - r18 = r13 << 2; - r15 = heapU16[(r15)>>1]; - r19 = heapU16[(r16+r17)>>1]; - r20 = heapU16[(r16+r18)>>1]; - r12 = heapU16[(r12)>>1]; - heap16[(r16+r17)>>1] = r15; - r11 = heap32[(r11+17)]; - r15 = (r15 - r19)|0; - heap16[(r11+r18)>>1] = r12; -if(!(r15 >-1)) //_LBB64_3 -{ - heap32[(g0)] = r6; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r14; - heap32[(g0+3)] = 1; - _ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7); -} - r11 = (r12 - r20)|0; -if(!(r11 <1)) //_LBB64_5 -{ - heap32[(g0)] = r6; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r13; - heap32[(g0+3)] = 1; - _ZN20btAxisSweep3InternalItE9sortMaxUpEitP12btDispatcherb(i7); -} -if(!(r15 <1)) //_LBB64_7 -{ - heap32[(g0)] = r6; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r14; - heap32[(g0+3)] = r8; - heap32[(g0+4)] = 1; - _ZN20btAxisSweep3InternalItE9sortMinUpEitP12btDispatcherb(i7); -} -if(!(r11 >-1)) //_LBB64_9 -{ - heap32[(g0)] = r6; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r13; - heap32[(g0+3)] = r8; - heap32[(g0+4)] = 1; - _ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7); -} - r9 = (r9 + -1)|0; - r10 = (r10 + 1)|0; - if(r9 !=-3) //_LBB64_1 -{ -continue _1; -} -else{ -break _1; -} -} - r1 = heap32[(r7+27)]; -if(!(r1 ==0)) //_LBB64_12 -{ - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - r3 = heap32[(r3+15)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r0; - heap32[(g0+3)] = r4; - heap32[(g0+4)] = r8; - __FUNCTION_TABLE__[(r2)>>2](i7); -} - return; -} - -function _ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+27)]; - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; -if(!(r2 ==0)) //_LBB65_2 -{ - r5 = r2 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r6 = r3 >> 2; - r5 = heap32[(r5+3)]; - r6 = heap32[(r6+15)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r5)>>2](i7); -} - r2 = heap32[(r1+23)]; - r5 = r2 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r3 = r3 >> 2; - r3 = heap32[(r3+3)]; - r6 = heap32[(r1+15)]; - r5 = heap32[(r5+14)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r5)>>2](i7); - r2 = r_g0; -if(!(r2 !=0)) //_LBB65_4 -{ - r2 = heap32[(r1+23)]; - r5 = r2 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+4)]; - r7 = r3 & 65535; - r7 = r7 << 6; - r7 = (r6 + r7)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r5)>>2](i7); -} - r2 = heap32[(r1+15)]; - r5 = heapU16[(r0+56)>>1]; - r7 = heapU16[(r2+54)>>1]; - r7 = (r7 + -2)|0; - heap16[(r2+54)>>1] = r7; - r2 = heap32[(r1+15)]; - r7 = heapU16[(r2+56)>>1]; - r7 = (r7 + -2)|0; - r8 = r3 & 65535; - heap16[(r2+56)>>1] = r7; - r2 = heap32[(r1+15)]; - r7 = r8 << 6; - r9 = heapU16[(r2+58)>>1]; - r6 = (r6 + r7)|0; - r5 = r5 << 1; - r6 = (r6 + 54)|0; - r10 = 0; - r9 = (r9 + -2)|0; - heap16[(r2+58)>>1] = r9; - r2 = r10; -_7: while(true){ - r9 = r2 << 2; - r9 = (r0 + r9)|0; - r9 = r9 >> 2; - r11 = heapU16[(r6)>>1]; - r12 = heapU16[(r0+6)>>1]; - r9 = heap32[(r9+17)]; - r13 = r11 << 2; - heap16[(r9+r13)>>1] = r12; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r11; - heap32[(g0+3)] = 0; - _ZN20btAxisSweep3InternalItE9sortMaxUpEitP12btDispatcherb(i7); - r11 = heapU16[(r6+-6)>>1]; - r12 = heapU16[(r0+6)>>1]; - r13 = r11 << 2; - heap16[(r9+r13)>>1] = r12; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r11; - heap32[(g0+3)] = r4; - heap32[(g0+4)] = 0; - r11 = r5 << 2; - _ZN20btAxisSweep3InternalItE9sortMinUpEitP12btDispatcherb(i7); - r9 = (r9 + r11)|0; - heap16[(r9+-2)>>1] = r10; - r11 = heapU16[(r0+6)>>1]; - r2 = (r2 + 1)|0; - r6 = (r6 + 2)|0; - heap16[(r9+-4)>>1] = r11; - if(r2 !=3) //_LBB65_5 -{ -continue _7; -} -else{ -break _7; -} -} -if(!(r8 ==0)) //_LBB65_8 -{ - r2 = heapU16[(r0+58)>>1]; - if(uint(r2) >uint(r8)) //_LBB65_9 -{ - r1 = heap32[(r1+15)]; - r2 = heapU16[(r0+64)>>1]; - r1 = (r1 + r7)|0; - heap16[(r1+48)>>1] = r2; - heap16[(r0+64)>>1] = r3; - r1 = heapU16[(r0+56)>>1]; - r1 = (r1 + -1)|0; - heap16[(r0+56)>>1] = r1; - return; -} -} - r0 = _2E_str11; - r1 = _2E_str112; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 495; - _assert(i7); -} - -function _ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -56;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r1+1)]; - f2 = heapFloat[(r1+2)]; - r1 = heap32[(fp)]; - r2 = sp + -6; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heapFloat[(g0+2)] = f0; - heapFloat[(g0+3)] = f1; - heapFloat[(g0+4)] = f2; - heap32[(g0+5)] = 0; - r2 = heap32[(fp+2)]; - _ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7); - r3 = r2 >> 2; - f0 = heapFloat[(r3)]; - f1 = heapFloat[(r3+1)]; - f2 = heapFloat[(r3+2)]; - r3 = sp + -12; - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - heapFloat[(g0+2)] = f0; - heapFloat[(g0+3)] = f1; - heapFloat[(g0+4)] = f2; - heap32[(g0+5)] = 1; - _ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(i7); - r3 = heapU16[(r1+64)>>1]; - if(r3 !=0) //_LBB66_2 -{ - r4 = heap32[(fp+4)]; - r5 = heap32[(fp+5)]; - r6 = heap32[(fp+6)]; - r7 = heap32[(fp+7)]; - r8 = heap32[(fp+8)]; - r9 = r1 >> 2; - r10 = r3 << 6; - r11 = heap32[(r9+15)]; - r10 = (r11 + r10)|0; - r11 = heapU16[(r10+48)>>1]; - heap16[(r1+64)>>1] = r11; - r11 = heapU16[(r1+56)>>1]; - r11 = (r11 + 1)|0; - r12 = r10 >> 2; - heap16[(r1+56)>>1] = r11; - heap32[(r12+3)] = r3; - heap32[(r12)] = r4; - heap16[(r10+4)>>1] = r5; - heap16[(r10+6)>>1] = r6; - heap32[(r12+2)] = r8; - r8 = heap32[(r9+15)]; - r11 = heapU16[(r1+56)>>1]; - r11 = r11 << 1; - r12 = heapU16[(r8+54)>>1]; - r13 = r11 & 65534; - r12 = (r12 + 2)|0; - r14 = (r13 + -1)|0; - heap16[(r8+54)>>1] = r12; - r8 = r14 << 2; - r12 = heap32[(r9+17)]; - r14 = (r12 + r8)|0; - r15 = r13 | 1; - r14 = heapU16[(r14+2)>>1]; - r16 = heapU16[(r12+r8)>>1]; - r15 = r15 << 2; - r17 = (r12 + r15)|0; - heap16[(r12+r15)>>1] = r16; - heap16[(r17+2)>>1] = r14; - r12 = heap32[(r9+17)]; - r14 = heapU16[(sp+-6)>>1]; - heap16[(r12+r8)>>1] = r14; - r12 = heap32[(r9+17)]; - r12 = (r12 + r8)|0; - heap16[(r12+2)>>1] = r3; - r12 = heap32[(r9+17)]; - r14 = heapU16[(sp+-12)>>1]; - r13 = r13 << 2; - heap16[(r12+r13)>>1] = r14; - r12 = heap32[(r9+17)]; - r12 = (r12 + r13)|0; - r14 = (r11 + -1)|0; - heap16[(r12+2)>>1] = r3; - heap16[(r10+48)>>1] = r14; - heap16[(r10+54)>>1] = r11; - r12 = heap32[(r9+15)]; - r16 = heapU16[(r12+56)>>1]; - r16 = (r16 + 2)|0; - heap16[(r12+56)>>1] = r16; - r12 = heap32[(r9+18)]; - r16 = (r12 + r8)|0; - r16 = heapU16[(r16+2)>>1]; - r17 = heapU16[(r12+r8)>>1]; - r18 = (r12 + r15)|0; - heap16[(r12+r15)>>1] = r17; - heap16[(r18+2)>>1] = r16; - r12 = heap32[(r9+18)]; - r16 = heapU16[(sp+-4)>>1]; - heap16[(r12+r8)>>1] = r16; - r12 = heap32[(r9+18)]; - r12 = (r12 + r8)|0; - heap16[(r12+2)>>1] = r3; - r12 = heap32[(r9+18)]; - r16 = heapU16[(sp+-10)>>1]; - heap16[(r12+r13)>>1] = r16; - r12 = heap32[(r9+18)]; - r12 = (r12 + r13)|0; - heap16[(r12+2)>>1] = r3; - heap16[(r10+50)>>1] = r14; - heap16[(r10+56)>>1] = r11; - r12 = heap32[(r9+15)]; - r16 = heapU16[(r12+58)>>1]; - r16 = (r16 + 2)|0; - heap16[(r12+58)>>1] = r16; - r12 = heap32[(r9+19)]; - r16 = (r12 + r8)|0; - r16 = heapU16[(r16+2)>>1]; - r17 = heapU16[(r12+r8)>>1]; - r18 = (r12 + r15)|0; - heap16[(r12+r15)>>1] = r17; - heap16[(r18+2)>>1] = r16; - r12 = heap32[(r9+19)]; - r15 = heapU16[(sp+-2)>>1]; - heap16[(r12+r8)>>1] = r15; - r12 = heap32[(r9+19)]; - r8 = (r12 + r8)|0; - heap16[(r8+2)>>1] = r3; - r8 = heap32[(r9+19)]; - r12 = heapU16[(sp+-8)>>1]; - heap16[(r8+r13)>>1] = r12; - r8 = heap32[(r9+19)]; - r8 = (r8 + r13)|0; - heap16[(r8+2)>>1] = r3; - heap16[(r10+52)>>1] = r14; - heap16[(r10+58)>>1] = r11; - r8 = heapU16[(r10+48)>>1]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = 0; - _ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7); - r8 = heapU16[(r10+54)>>1]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = 0; - _ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7); - r8 = heapU16[(r10+50)>>1]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 1; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = 0; - _ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7); - r8 = heapU16[(r10+56)>>1]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 1; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = 0; - _ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7); - r8 = heapU16[(r10+52)>>1]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 2; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = 1; - _ZN20btAxisSweep3InternalItE11sortMinDownEitP12btDispatcherb(i7); - r8 = heapU16[(r10+58)>>1]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 2; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = 1; - _ZN20btAxisSweep3InternalItE11sortMaxDownEitP12btDispatcherb(i7); - updateMandreelStats(performance.now()); - r1 = heap32[(r9+27)]; - r8 = heap32[(r9+15)]; -if(!(r1 ==0)) //_LBB66_4 -{ - r9 = heap32[(fp+3)]; - r10 = r1 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+2)]; - r11 = r3 << 6; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r9; - heap32[(g0+4)] = r4; - heap32[(g0+5)] = r5; - heap32[(g0+6)] = r6; - heap32[(g0+7)] = r7; - heap32[(g0+8)] = 0; - r0 = (r8 + r11)|0; - r0 = r0 >> 2; - __FUNCTION_TABLE__[(r10)>>2](i7); - heap32[(r0+15)] = r_g0; -} - r0 = r3 << 6; - r0 = (r8 + r0)|0; - r_g0 = r0; - return; -} -else{ - r0 = _2E_str213; - r1 = _2E_str112; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 483; - _assert(i7); -} -} - -function _ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+1)]; - r3 = heap32[(fp+1)]; -_1: do { -if(!(r2 >r3)) //_LBB67_20 -{ -if(!(r2 >=r3)) //_LBB67_20 -{ - r4 = heap32[(r1+2)]; -if(!(r4 >=r3)) //_LBB67_18 -{ - if(r3 !=0) //_LBB67_5 -{ - r4 = gNumAlignedAllocs; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r6 = r3 << 4; - r5 = (r5 + 1)|0; - r6 = r6 | 3; - heap32[(r4)] = r5; - r4 = (r6 + 16)|0; - heap32[(g0)] = r4; - malloc(i7); - r4 = r_g0; - if(r4 !=0) //_LBB67_7 -{ - r5 = 0; - r6 = (r4 + 4)|0; - r5 = (r5 - r6)|0; - r5 = r5 & 15; - r5 = (r4 + r5)|0; - r6 = (r5 + 4)|0; - r5 = r5 >> 2; - heap32[(r5)] = r4; - r4 = r6; -} -} -else{ - r4 = 0; -} - r5 = (r0 + 12)|0; - if(r2 <1) //_LBB67_10 -{ - r6 = r5 >> 2; - r8 = heap32[(r6)]; -} -else{ - r6 = 0; - r7 = (r6 - r2)|0; -_14: while(true){ - r8 = r5 >> 2; - r8 = heap32[(r8)]; - r9 = r6 << 4; - r10 = (r8 - r9)|0; - r10 = r10 >> 2; - r9 = (r4 - r9)|0; - r11 = heap32[(r10)]; - r9 = r9 >> 2; - heap32[(r9)] = r11; - r11 = heap32[(r10+1)]; - heap32[(r9+1)] = r11; - r11 = heap32[(r10+2)]; - heap32[(r9+2)] = r11; - r10 = heap32[(r10+3)]; - r6 = (r6 + -1)|0; - heap32[(r9+3)] = r10; -if(!(r7 !=r6)) //_LBB67_11 -{ -break _14; -} -} - r5 = (r0 + 12)|0; -} -if(!(r8 ==0)) //_LBB67_17 -{ - r6 = heapU8[r0+16]; -if(!(r6 ==0)) //_LBB67_16 -{ - r6 = gNumAlignedFree; - r6 = r6 >> 2; - r7 = heap32[(r6)]; - r7 = (r7 + 1)|0; - r8 = r8 >> 2; - heap32[(r6)] = r7; - r6 = heap32[(r8+-1)]; - heap32[(g0)] = r6; - free(i7); -} - r6 = r5 >> 2; - heap32[(r6)] = 0; -} - r6 = 1; - r5 = r5 >> 2; - heap8[r0+16] = r6; - heap32[(r5)] = r4; - heap32[(r1+2)] = r3; - if(r2 >=r3) //_LBB67_20 -{ -break _1; -} -} - r0 = heap32[(fp+2)]; -_25: while(true){ - r4 = r0 >> 2; - r5 = r2 << 4; - r6 = heap32[(r1+3)]; - r5 = (r6 + r5)|0; - r6 = heap32[(r4)]; - r5 = r5 >> 2; - heap32[(r5)] = r6; - r6 = heap32[(r4+1)]; - heap32[(r5+1)] = r6; - r6 = heap32[(r4+2)]; - heap32[(r5+2)] = r6; - r4 = heap32[(r4+3)]; - r2 = (r2 + 1)|0; - heap32[(r5+3)] = r4; - if(r3 !=r2) //_LBB67_19 -{ -continue _25; -} -else{ -break _1; -} -} -} -} -} while(0); - heap32[(r1+1)] = r3; - return; -} - -function _ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; -var __label__ = 0; - i7 = sp + -48;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+23)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+14)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = r_g0; -if(!(r1 ==0)) //_LBB68_22 -{ - r1 = heap32[(fp+1)]; - r2 = heap32[(r0+23)]; - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+7)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = r_g0; - r3 = r2 >> 2; - r3 = heap32[(r3+1)]; - if(r3 >1) //_LBB68_3 -{ - r3 = (r3 + -1)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r3; - r3 = r2 >> 2; - _ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7); - r3 = heap32[(r3+1)]; -} - r4 = sp + -32; - r5 = r4 >> 2; - heap32[(fp+-8)] = 0; - heap32[(r5+1)] = 0; - heap32[(r5+2)] = 0; - heap32[(r5+3)] = 0; - r5 = heap32[(r0+26)]; - r3 = (r3 - r5)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - r3 = 0; - _ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(i7); - heap32[(r0+26)] = 0; - r4 = r3; - r5 = r3; - r6 = r3; - r7 = r3; -_6: while(true){ - r8 = r2 >> 2; - r9 = heap32[(r8+1)]; - if(r9 >r7) //_LBB68_5 -{ - r8 = heap32[(r8+3)]; - r9 = r7 << 4; - r9 = (r8 + r9)|0; - r9 = r9 >> 2; - r10 = heap32[(r9)]; - r11 = r7 << 2; - r12 = heap32[(r9+1)]; - if(r10 !=r5) //_LBB68_7 -{ -__label__ = 6; -} -else{ - if(r12 ==r6) //_LBB68_13 -{ - r4 = heap32[(r9+2)]; - if(r4 ==0) //_LBB68_15 -{ -__label__ = 13; -} -else{ -__label__ = 12; -break _6; -} -} -else{ -__label__ = 6; -} -} -if (__label__ == 6){ - r5 = (r12 + 54)|0; - r6 = (r10 + 48)|0; - r9 = 0; -_14: while(true){ - if(r9 <3) //_LBB68_8 -{ - r13 = heapU16[(r6+6)>>1]; - r14 = heapU16[(r5+-6)>>1]; - if(uint(r13) >1]; - r14 = heapU16[(r6)>>1]; - if(uint(r13) > 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+8)]; - r6 = (r8 + r3)|0; - r9 = r11 << 2; - heap32[(g0)] = r4; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r1; - r4 = (r8 + r9)|0; - r4 = r4 >> 2; - __FUNCTION_TABLE__[(r5)>>2](i7); - heap32[(r4)] = 0; - heap32[(r4+1)] = 0; - r4 = heap32[(r0+26)]; - r4 = (r4 + 1)|0; - r5 = gOverlappingPairs; - r5 = r5 >> 2; - heap32[(r0+26)] = r4; - r6 = heap32[(r5)]; - r6 = (r6 + -1)|0; - heap32[(r5)] = r6; -} - r7 = (r7 + 1)|0; - r3 = (r3 + 16)|0; - r5 = r10; - r6 = r12; -} -else{ -__label__ = 16; -break _6; -} -} -switch(__label__ ){//multiple entries -case 16: - if(r9 >1) //_LBB68_20 -{ - r4 = (r9 + -1)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r4; - _ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7); - r9 = heap32[(r8+1)]; - r4 = heap32[(r0+26)]; -} - r1 = sp + -16; - r3 = r1 >> 2; - heap32[(fp+-4)] = 0; - heap32[(r3+1)] = 0; - heap32[(r3+2)] = 0; - heap32[(r3+3)] = 0; - r3 = (r9 - r4)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r1; - _ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(i7); - heap32[(r0+26)] = 0; -break; -case 12: - r8 = _2E_str314; - r0 = _2E_str112; - heap32[(g0)] = r8; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 687; - _assert(i7); -break; -} -} - return; -} - -function _ZN20btAxisSweep3InternalItED2Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV20btAxisSweep3InternalItE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+27)]; -if(!(r1 ==0)) //_LBB69_5 -{ - r1 = heap32[(r2+28)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+28)]; -if(!(r1 ==0)) //_LBB69_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+27)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+27)]; -if(!(r1 ==0)) //_LBB69_5 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - r1 = 0; -_8: while(true){ - r3 = r1 << 2; - r3 = (r0 + r3)|0; - r3 = r3 >> 2; - r3 = heap32[(r3+22)]; -if(!(r3 ==0)) //_LBB69_8 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - r1 = (r1 + -1)|0; - if(r1 !=-3) //_LBB69_6 -{ -continue _8; -} -else{ -break _8; -} -} - r1 = heap32[(r2+15)]; -if(!(r1 ==0)) //_LBB69_11 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r0 = heapU8[r0+100]; -if(!(r0 ==0)) //_LBB69_14 -{ - r0 = heap32[(r2+23)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+23)]; -if(!(r0 ==0)) //_LBB69_14 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r2 = heap32[(r1)]; - r2 = (r2 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r2; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} -} - return; -} - -function _ZN20btAxisSweep3InternalItED1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - heap32[(g0)] = r0; - _ZN20btAxisSweep3InternalItED2Ev(i7); - return; -} - -function _ZN20btAxisSweep3InternalItED0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV20btAxisSweep3InternalItE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+27)]; -if(!(r1 ==0)) //_LBB71_5 -{ - r1 = heap32[(r2+28)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+28)]; -if(!(r1 ==0)) //_LBB71_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+27)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+27)]; -if(!(r1 ==0)) //_LBB71_5 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - r1 = 0; -_8: while(true){ - r3 = r1 << 2; - r3 = (r0 + r3)|0; - r3 = r3 >> 2; - r3 = heap32[(r3+22)]; -if(!(r3 ==0)) //_LBB71_8 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - r1 = (r1 + -1)|0; - if(r1 !=-3) //_LBB71_6 -{ -continue _8; -} -else{ -break _8; -} -} - r1 = heap32[(r2+15)]; -if(!(r1 ==0)) //_LBB71_11 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r0 = heapU8[r0+100]; -if(!(r0 ==0)) //_LBB71_14 -{ - r0 = heap32[(r2+23)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+23)]; -if(!(r0 ==0)) //_LBB71_14 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} -} - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); - return; -} - -function _ZN12btAxisSweep3D0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV12btAxisSweep3; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN20btAxisSweep3InternalItED2Ev(i7); -if(!(r0 ==0)) //_LBB72_2 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZN12btAxisSweep3D1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV12btAxisSweep3; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN20btAxisSweep3InternalItED2Ev(i7); - return; -} - -function _ZN20btCollisionAlgorithmD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV20btCollisionAlgorithm; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN20btCollisionAlgorithmD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV20btCollisionAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3_(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+3)]; - r2 = heap32[(fp+1)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZN6btDbvt8ICollide7DescentEPK10btDbvtNode(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 1; - r_g0 = r0; - return; -} - -function _ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 1; - r_g0 = r0; - return; -} - -function _ZL10insertleafP6btDbvtP10btDbvtNodeS2_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+2)]; - r0 = r0 >> 2; - r2 = heap32[(r0)]; - if(r2 !=0) //_LBB80_2 -{ - r2 = heap32[(fp+1)]; - r3 = r2 >> 2; - r3 = heap32[(r3+10)]; - if(r3 !=0) //_LBB80_4 -{ - r4 = r1 >> 2; - f0 = heapFloat[(r4+2)]; - f1 = heapFloat[(r4+6)]; - f2 = heapFloat[(r4+1)]; - f3 = heapFloat[(r4+5)]; - f4 = heapFloat[(r4)]; - f5 = heapFloat[(r4+4)]; - f0 = f0+f1; - f1 = f2+f3; - f2 = f4+f5; -_5: while(true){ - r4 = r2 >> 2; - r4 = heap32[(r4+9)]; - r4 = r4 >> 2; - f3 = heapFloat[(r4)]; - f4 = heapFloat[(r4+4)]; - f5 = heapFloat[(r4+2)]; - f6 = heapFloat[(r4+6)]; - f7 = heapFloat[(r4+1)]; - f8 = heapFloat[(r4+5)]; - f3 = f3+f4; - f4 = f5+f6; - f5 = f7+f8; - f3 = f2-f3; - f4 = f0-f4; - f5 = f1-f5; - f6 = 0; - if(f3 > 2; - f5 = heapFloat[(r3)]; - f7 = heapFloat[(r3+4)]; - f8 = heapFloat[(r3+2)]; - f9 = heapFloat[(r3+6)]; - f10 = heapFloat[(r3+1)]; - f11 = heapFloat[(r3+5)]; - f5 = f5+f7; - f7 = f8+f9; - f8 = f10+f11; - f5 = f2-f5; - f3 = f3+f4; - f4 = f0-f7; - f7 = f1-f8; - if(f5 = f4; - r3 = r3 & 1; - r3 = r3 << 2; - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - r2 = heap32[(r2+9)]; - r3 = r2 >> 2; - r3 = heap32[(r3+10)]; -if(!(r3 !=0)) //_LBB80_5 -{ -break _5; -} -} -} - r3 = r2 >> 2; - r4 = heap32[(r0+1)]; - r5 = heap32[(r3+8)]; - if(r4 ==0) //_LBB80_26 -{ - r4 = gNumAlignedAllocs; - r4 = r4 >> 2; - r6 = heap32[(r4)]; - r6 = (r6 + 1)|0; - heap32[(r4)] = r6; - heap32[(g0)] = 63; - malloc(i7); - r4 = r_g0; - if(r4 !=0) //_LBB80_28 -{ - r6 = 0; - r7 = (r4 + 4)|0; - r6 = (r6 - r7)|0; - r6 = r6 & 15; - r6 = (r4 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r4; - r4 = r7; -} -} -else{ - heap32[(r0+1)] = 0; -} - r6 = r4 >> 2; - heap32[(r6+8)] = r5; - heap32[(r6+9)] = 0; - heap32[(r6+10)] = 0; - r7 = r1 >> 2; - f0 = heapFloat[(r7)]; - f1 = heapFloat[(r3)]; - f0 = f0 < f1 ? f0 : f1; - heapFloat[(r6)] = f0; - f0 = heapFloat[(r7+4)]; - f1 = heapFloat[(r3+4)]; - f0 = f0 > f1 ? f0 : f1; - heapFloat[(r6+4)] = f0; - f0 = heapFloat[(r7+1)]; - f1 = heapFloat[(r3+1)]; - f0 = f0 < f1 ? f0 : f1; - heapFloat[(r6+1)] = f0; - f0 = heapFloat[(r7+5)]; - f1 = heapFloat[(r3+5)]; - f0 = f0 > f1 ? f0 : f1; - heapFloat[(r6+5)] = f0; - f0 = heapFloat[(r7+2)]; - f1 = heapFloat[(r3+2)]; - f0 = f0 < f1 ? f0 : f1; - heapFloat[(r6+2)] = f0; - f0 = heapFloat[(r7+6)]; - f1 = heapFloat[(r3+6)]; - f0 = f0 > f1 ? f0 : f1; - heapFloat[(r6+6)] = f0; -_31: do { - if(r5 ==0) //_LBB80_38 -{ - heap32[(r6+9)] = r2; - heap32[(r3+8)] = r4; - heap32[(r6+10)] = r1; - heap32[(r7+8)] = r4; - heap32[(r0)] = r4; -} -else{ - r0 = heap32[(r3+8)]; - r0 = r0 >> 2; - r0 = heap32[(r0+10)]; - r0 = r0 == r2; - r0 = r0 & 1; - r0 = r0 << 2; - r0 = (r5 + r0)|0; - r0 = r0 >> 2; - heap32[(r0+9)] = r4; - heap32[(r6+9)] = r2; - heap32[(r3+8)] = r4; - heap32[(r6+10)] = r1; - heap32[(r7+8)] = r4; - f0 = heapFloat[(r6)]; -_34: while(true){ - r0 = r5; - r1 = r0 >> 2; - f1 = heapFloat[(r1)]; -if(!(f1 >f0)) //_LBB80_37 -{ - r2 = r4 >> 2; - f0 = heapFloat[(r1+1)]; - f1 = heapFloat[(r2+1)]; -if(!(f0 >f1)) //_LBB80_37 -{ - f0 = heapFloat[(r1+2)]; - f1 = heapFloat[(r2+2)]; -if(!(f0 >f1)) //_LBB80_37 -{ - f0 = heapFloat[(r1+4)]; - f1 = heapFloat[(r2+4)]; -if(!(f0 =f1) //_LBB80_39 -{ -break _31; -} -} -} -} -} -} - r2 = heap32[(r1+10)]; - r3 = heap32[(r1+9)]; - r2 = r2 >> 2; - r3 = r3 >> 2; - f0 = heapFloat[(r3)]; - f1 = heapFloat[(r2)]; - f0 = f0 < f1 ? f0 : f1; - heapFloat[(r1)] = f0; - f1 = heapFloat[(r3+4)]; - f2 = heapFloat[(r2+4)]; - f1 = f1 > f2 ? f1 : f2; - heapFloat[(r1+4)] = f1; - f1 = heapFloat[(r3+1)]; - f2 = heapFloat[(r2+1)]; - f1 = f1 < f2 ? f1 : f2; - heapFloat[(r1+1)] = f1; - f1 = heapFloat[(r3+5)]; - f2 = heapFloat[(r2+5)]; - f1 = f1 > f2 ? f1 : f2; - heapFloat[(r1+5)] = f1; - f1 = heapFloat[(r3+2)]; - f2 = heapFloat[(r2+2)]; - f1 = f1 < f2 ? f1 : f2; - heapFloat[(r1+2)] = f1; - f1 = heapFloat[(r3+6)]; - f2 = heapFloat[(r2+6)]; - f1 = f1 > f2 ? f1 : f2; - heapFloat[(r1+6)] = f1; - r5 = heap32[(r1+8)]; - r4 = r0; - if(r5 ==0) //_LBB80_39 -{ -break _31; -} -} -} -} while(0); - return; -} -else{ - r2 = r1 >> 2; - heap32[(r0)] = r1; - heap32[(r2+8)] = 0; - return; -} -} - -function _ZL10removeleafP6btDbvtP10btDbvtNode(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r0 = r0 >> 2; - r2 = heap32[(r0)]; - if(r2 !=r1) //_LBB81_2 -{ - r2 = r1 >> 2; - r2 = heap32[(r2+8)]; - r3 = r2 >> 2; - r4 = heap32[(r3+10)]; - r1 = r4 != r1; - r1 = r1 & 1; - r1 = r1 << 2; - r1 = (r2 + r1)|0; - r1 = r1 >> 2; - r3 = heap32[(r3+8)]; - r1 = heap32[(r1+9)]; -_3: do { - if(r3 ==0) //_LBB81_11 -{ - r3 = r1 >> 2; - heap32[(r0)] = r1; - heap32[(r3+8)] = 0; - r3 = heap32[(r0+1)]; -if(!(r3 ==0)) //_LBB81_13 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r4 = heap32[(r1)]; - r4 = (r4 + 1)|0; - r3 = r3 >> 2; - heap32[(r1)] = r4; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r0+1)] = r2; - r3 = heap32[(r0)]; -} -else{ - r4 = r3 >> 2; - r4 = heap32[(r4+10)]; - r4 = r4 == r2; - r4 = r4 & 1; - r4 = r4 << 2; - r4 = (r3 + r4)|0; - r4 = r4 >> 2; - r5 = r1 >> 2; - heap32[(r4+9)] = r1; - heap32[(r5+8)] = r3; - r1 = heap32[(r0+1)]; -if(!(r1 ==0)) //_LBB81_5 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r1 = r1 >> 2; - heap32[(r4)] = r5; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r0+1)] = r2; -_12: while(true){ - if(r3 !=0) //_LBB81_6 -{ - r1 = r3 >> 2; - r2 = heap32[(r1+10)]; - r4 = heap32[(r1+9)]; - r2 = r2 >> 2; - r4 = r4 >> 2; - f0 = heapFloat[(r1+6)]; - f1 = heapFloat[(r1)]; - f2 = heapFloat[(r1+1)]; - f3 = heapFloat[(r1+2)]; - f4 = heapFloat[(r1+4)]; - f5 = heapFloat[(r1+5)]; - f6 = heapFloat[(r4)]; - f7 = heapFloat[(r2)]; - f6 = f6 < f7 ? f6 : f7; - heapFloat[(r1)] = f6; - f7 = heapFloat[(r4+4)]; - f8 = heapFloat[(r2+4)]; - f7 = f7 > f8 ? f7 : f8; - heapFloat[(r1+4)] = f7; - f8 = heapFloat[(r4+1)]; - f9 = heapFloat[(r2+1)]; - f8 = f8 < f9 ? f8 : f9; - heapFloat[(r1+1)] = f8; - f9 = heapFloat[(r4+5)]; - f10 = heapFloat[(r2+5)]; - f9 = f9 > f10 ? f9 : f10; - heapFloat[(r1+5)] = f9; - f10 = heapFloat[(r4+2)]; - f11 = heapFloat[(r2+2)]; - f10 = f10 < f11 ? f10 : f11; - heapFloat[(r1+2)] = f10; - f11 = heapFloat[(r4+6)]; - f12 = heapFloat[(r2+6)]; - f11 = f11 > f12 ? f11 : f12; - heapFloat[(r1+6)] = f11; -if(!(f0 !=f11)) //_LBB81_8 -{ - r2 = f1 == f6; - r4 = f2 == f8; - r2 = r2 & r4; - r4 = f3 == f10; - r2 = r2 & r4; - r4 = f4 == f7; - r2 = r2 & r4; - r4 = f5 == f9; - r2 = r2 & r4; - if(r2 != 0) //_LBB81_14 -{ -break _3; -} -} - r3 = heap32[(r1+8)]; -} -else{ -break _12; -} -} - r0 = heap32[(r0)]; - r_g0 = r0; - return; -} -} while(0); - r_g0 = r3; - return; -} -else{ - heap32[(r0)] = 0; - r0 = 0; - r_g0 = r0; - return; -} -} - -function _ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMmRK9btVector3f(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - f0 = heapFloat[(r0)]; - r2 = heap32[(fp)]; - r3 = heap32[(fp+3)]; - f1 = heapFloat[(fp+4)]; - r4 = r1 >> 2; - f2 = heapFloat[(r4)]; - if(f2 <=f0) //_LBB82_2 -{ - f2 = heapFloat[(r0+1)]; - f3 = heapFloat[(r4+1)]; - if(f3 <=f2) //_LBB82_4 -{ - f3 = heapFloat[(r4+2)]; - f4 = heapFloat[(r0+2)]; -if(!(f3 >f4)) //_LBB82_3 -{ - f3 = heapFloat[(r4+4)]; - f4 = heapFloat[(r0+4)]; -if(!(f3 > 2; - heapFloat[(r0+6)] = f1; - f6 = heapFloat[(r3)]; - f7 = 0; - if(f6 <=f7) //_LBB82_10 -{ - f0 = f0+f6; - heapFloat[(r0)] = f0; -} -else{ - f0 = f4+f6; - heapFloat[(r0+4)] = f0; -} - f0 = heapFloat[(r3+1)]; - if(f0 <=f7) //_LBB82_13 -{ - f0 = f2+f0; - heapFloat[(r0+1)] = f0; -} -else{ - f0 = f5+f0; - heapFloat[(r0+5)] = f0; -} - f0 = heapFloat[(r3+2)]; - if(f0 <=f7) //_LBB82_16 -{ - f0 = f3+f0; - heapFloat[(r0+2)] = f0; -} -else{ - f0 = f1+f0; - heapFloat[(r0+6)] = f0; -} - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - _ZL10removeleafP6btDbvtP10btDbvtNode(i7); - r3 = r_g0; -_22: do { - if(r3 !=0) //_LBB82_19 -{ - r5 = r2 >> 2; - r6 = heap32[(r5+2)]; - if(r6 <0) //_LBB82_24 -{ - r5 = heap32[(r5)]; -} -else{ - r7 = -1; -_27: while(true){ - r5 = r3; - r7 = (r7 + 1)|0; - if(r6 >r7) //_LBB82_23 -{ - r3 = r5 >> 2; - r3 = heap32[(r3+8)]; - if(r3 ==0) //_LBB82_22 -{ -break _22; -} -else{ -continue _27; -} -} -else{ -break _22; -} -} -} -} -else{ - r5 = 0; -} -} while(0); - heap32[(r4)] = heap32[(r0)]; - heap32[(r4+1)] = heap32[(r0+1)]; - heap32[(r4+2)] = heap32[(r0+2)]; - heap32[(r4+3)] = heap32[(r0+3)]; - heap32[(r4+4)] = heap32[(r0+4)]; - heap32[(r4+5)] = heap32[(r0+5)]; - heap32[(r4+6)] = heap32[(r0+6)]; - heap32[(r4+7)] = heap32[(r0+7)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r1; - _ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7); - r0 = 1; - r_g0 = r0; - return; -} - -function _ZL17recursedeletenodeP6btDbvtP10btDbvtNode(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = r0 >> 2; - r3 = heap32[(r2+10)]; -if(!(r3 ==0)) //_LBB83_2 -{ - r3 = heap32[(r2+9)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - _ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7); - r2 = heap32[(r2+10)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - _ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7); -} - r1 = r1 >> 2; - r2 = heap32[(r1)]; -if(!(r2 !=r0)) //_LBB83_4 -{ - heap32[(r1)] = 0; -} - r2 = heap32[(r1+1)]; -if(!(r2 ==0)) //_LBB83_6 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r2 = r2 >> 2; - heap32[(r3)] = r4; - r2 = heap32[(r2+-1)]; - heap32[(g0)] = r2; - free(i7); -} - heap32[(r1+1)] = r0; - return; -} - -function _ZN6btDbvt19optimizeIncrementalEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - if(r0 <0) //_LBB84_2 -{ - r0 = r1 >> 2; - r0 = heap32[(r0+3)]; -} - r2 = r1 >> 2; - r3 = heap32[(r2)]; -_4: do { -if(!(r3 ==0)) //_LBB84_20 -{ -if(!(r0 <1)) //_LBB84_20 -{ -_6: while(true){ - r3 = 0; - r4 = r1; -_8: while(true){ - r4 = r4 >> 2; - r4 = heap32[(r4)]; - r5 = r4 >> 2; - r6 = heap32[(r5+10)]; - if(r6 !=0) //_LBB84_6 -{ - r6 = heap32[(r5+8)]; - if(uint(r6) >uint(r4)) //_LBB84_8 -{ - r7 = r6 >> 2; - r8 = heap32[(r7+10)]; - r8 = r8 == r4; - r8 = r8 & 1; - r9 = (r6 + 36)|0; - r10 = r8 << 2; - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - r11 = heap32[(r11)]; - if(r11 ==r4) //_LBB84_10 -{ - r8 = r8 ^ 1; - r8 = r8 << 2; - r9 = (r9 + r8)|0; - r9 = r9 >> 2; - r9 = heap32[(r9)]; - r11 = heap32[(r7+8)]; - if(r11 ==0) //_LBB84_12 -{ - heap32[(r2)] = r4; -} -else{ - r12 = r11 >> 2; - r12 = heap32[(r12+10)]; - r12 = r12 == r6; - r12 = r12 & 1; - r12 = r12 << 2; - r12 = (r11 + r12)|0; - r12 = r12 >> 2; - heap32[(r12+9)] = r4; -} - r12 = r9 >> 2; - heap32[(r12+8)] = r4; - heap32[(r7+8)] = r4; - heap32[(r5+8)] = r11; - r11 = heap32[(r5+9)]; - heap32[(r7+9)] = r11; - r11 = heap32[(r5+10)]; - heap32[(r7+10)] = r11; - r11 = heap32[(r5+9)]; - r11 = r11 >> 2; - heap32[(r11+8)] = r6; - r11 = heap32[(r5+10)]; - r4 = (r4 + 36)|0; - r10 = (r4 + r10)|0; - r11 = r11 >> 2; - r4 = (r4 + r8)|0; - r8 = r10 >> 2; - heap32[(r11+8)] = r6; - r4 = r4 >> 2; - heap32[(r8)] = r6; - heap32[(r4)] = r9; - f0 = heapFloat[(r7+7)]; - f1 = heapFloat[(r7+6)]; - f2 = heapFloat[(r7+5)]; - f3 = heapFloat[(r7+4)]; - f4 = heapFloat[(r7+3)]; - f5 = heapFloat[(r7+2)]; - f6 = heapFloat[(r7+1)]; - f7 = heapFloat[(r7)]; - heap32[(r7)] = heap32[(r5)]; - heap32[(r7+1)] = heap32[(r5+1)]; - heap32[(r7+2)] = heap32[(r5+2)]; - heap32[(r7+3)] = heap32[(r5+3)]; - heap32[(r7+4)] = heap32[(r5+4)]; - heap32[(r7+5)] = heap32[(r5+5)]; - heap32[(r7+6)] = heap32[(r5+6)]; - heap32[(r7+7)] = heap32[(r5+7)]; - heapFloat[(r5)] = f7; - heapFloat[(r5+1)] = f6; - heapFloat[(r5+2)] = f5; - heapFloat[(r5+3)] = f4; - heapFloat[(r5+4)] = f3; - heapFloat[(r5+5)] = f2; - heapFloat[(r5+6)] = f1; - heapFloat[(r5+7)] = f0; -} -else{ -break _6; -} -} -else{ - r6 = r4; -} - r4 = heap32[(r2+4)]; - r4 = r4 >>> r3; - r4 = r4 & 1; - r4 = r4 << 2; - r4 = (r6 + r4)|0; - r3 = (r3 + 1)|0; - r4 = (r4 + 36)|0; - r3 = r3 & 31; -} -else{ -break _8; -} -} - heap32[(g0)] = r1; - heap32[(g0+1)] = r4; - _ZL10removeleafP6btDbvtP10btDbvtNode(i7); - r3 = r_g0; - if(r3 !=0) //_LBB84_18 -{ - r3 = heap32[(r2)]; -} -else{ - r3 = 0; -} - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - _ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7); - r3 = heap32[(r2+4)]; - r0 = (r0 + -1)|0; - r3 = (r3 + 1)|0; - heap32[(r2+4)] = r3; -if(!(r0 !=0)) //_LBB84_5 -{ -break _4; -} -} - r4 = _2E_str22; - r0 = _2E_str1118; - heap32[(g0)] = r4; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 379; - _assert(i7); -} -} -} while(0); - return; -} - -function _ZN18btDbvtTreeColliderD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btDbvtTreeCollider; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN18btDbvtTreeColliderD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btDbvtTreeCollider; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp+2)]; -if(!(r0 ==r1)) //_LBB87_2 -{ - r2 = heap32[(fp)]; - r2 = r2 >> 2; - r3 = heap32[(r2+1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+24)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r1 = r1 >> 2; - r0 = r0 >> 2; - r4 = heap32[(r4+2)]; - r1 = heap32[(r1+9)]; - r0 = heap32[(r0+9)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r1; - __FUNCTION_TABLE__[(r4)>>2](i7); - r0 = heap32[(r2+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0+30)]; - r1 = (r1 + 1)|0; - heap32[(r0+30)] = r1; -} - return; -} - -function _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r1 = heap32[(r1+2)]; - r2 = r2 >> 2; - r1 = r1 >> 2; - r2 = heap32[(r2+2)]; - r1 = heap32[(r1+12)]; - r3 = heap32[(fp+1)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r1; - __FUNCTION_TABLE__[(r2)>>2](i7); - return; -} - -function _ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp+2)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - heap32[(r1)] = heap32[(r0+4)]; - heap32[(r1+1)] = heap32[(r0+5)]; - r2 = heap32[(fp+3)]; - heap32[(r1+2)] = heap32[(r0+6)]; - r2 = r2 >> 2; - heap32[(r1+3)] = heap32[(r0+7)]; - heap32[(r2)] = heap32[(r0+8)]; - heap32[(r2+1)] = heap32[(r0+9)]; - heap32[(r2+2)] = heap32[(r0+10)]; - heap32[(r2+3)] = heap32[(r0+11)]; - return; -} - -function _ZN19BroadphaseRayTesterD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV19BroadphaseRayTester; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN19BroadphaseRayTesterD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV19BroadphaseRayTester; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - r1 = r0 >> 2; - r2 = heap32[(fp+1)]; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r2 = r2 >> 2; - r1 = heap32[(r1+2)]; - r2 = heap32[(r2+9)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZN20BroadphaseAabbTesterD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV20BroadphaseAabbTester; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN20BroadphaseAabbTesterD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV20BroadphaseAabbTester; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - r1 = r0 >> 2; - r2 = heap32[(fp+1)]; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r2 = r2 >> 2; - r1 = heap32[(r1+2)]; - r2 = heap32[(r2+9)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZN16btDbvtBroadphase23getOverlappingPairCacheEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+24)]; - r_g0 = r0; - return; -} - -function _ZNK16btDbvtBroadphase23getOverlappingPairCacheEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+24)]; - r_g0 = r0; - return; -} - -function _ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+1)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r0 = heap32[(r0+11)]; - if(r1 ==0) //_LBB98_4 -{ - if(r0 !=0) //_LBB98_6 -{ - r0 = r0 >> 2; - f0 = heapFloat[(r0)]; - f2 = heapFloat[(r0+1)]; - f4 = heapFloat[(r0+2)]; - f6 = heapFloat[(r0+3)]; - f1 = heapFloat[(r0+4)]; - f3 = heapFloat[(r0+5)]; - f5 = heapFloat[(r0+6)]; - f7 = heapFloat[(r0+7)]; -} -else{ - f6 = 0; - f4 = f6; - f2 = f6; - f0 = f6; - f1 = f6; - f3 = f6; - f5 = f6; - f7 = f6; -} -} -else{ - if(r0 ==0) //_LBB98_3 -{ - r0 = r1 >> 2; - f0 = heapFloat[(r0)]; - f2 = heapFloat[(r0+1)]; - f4 = heapFloat[(r0+2)]; - f6 = heapFloat[(r0+3)]; - f1 = heapFloat[(r0+4)]; - f3 = heapFloat[(r0+5)]; - f5 = heapFloat[(r0+6)]; - f7 = heapFloat[(r0+7)]; -} -else{ - r1 = r1 >> 2; - r0 = r0 >> 2; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r0)]; - f2 = heapFloat[(r1+4)]; - f3 = heapFloat[(r0+4)]; - f4 = heapFloat[(r1+1)]; - f5 = heapFloat[(r0+1)]; - f6 = heapFloat[(r1+5)]; - f7 = heapFloat[(r0+5)]; - f8 = heapFloat[(r1+2)]; - f9 = heapFloat[(r0+2)]; - f10 = heapFloat[(r1+6)]; - f11 = heapFloat[(r0+6)]; - f0 = f0 < f1 ? f0 : f1; - f1 = f2 > f3 ? f2 : f3; - f2 = f4 < f5 ? f4 : f5; - f3 = f6 > f7 ? f6 : f7; - f4 = f8 < f9 ? f8 : f9; - f5 = f10 > f11 ? f10 : f11; -} -} - r0 = r2 >> 2; - heapFloat[(r0)] = f0; - heapFloat[(r0+1)] = f2; - heapFloat[(r0+2)] = f4; - r1 = r3 >> 2; - heapFloat[(r0+3)] = f6; - heapFloat[(r1)] = f1; - heapFloat[(r1+1)] = f3; - heapFloat[(r1+2)] = f5; - heapFloat[(r1+3)] = f7; - return; -} - -function _ZN16btDbvtBroadphase10printStatsEv(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN16btDbvtBroadphase9resetPoolEP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = 0; - r3 = heap32[(r1+14)]; - r4 = heap32[(r1+4)]; - r3 = (r2 - r3)|0; -if(!(r4 !=r3)) //_LBB100_18 -{ - r3 = heap32[(r1+1)]; -if(!(r3 ==0)) //_LBB100_3 -{ - r4 = (r0 + 4)|0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r3; - _ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7); -} - r3 = heap32[(r1+2)]; -if(!(r3 ==0)) //_LBB100_5 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r1+2)] = 0; - heap32[(r1+3)] = -1; - r3 = heap32[(r1+9)]; -if(!(r3 ==0)) //_LBB100_9 -{ - r4 = heapU8[r0+40]; -if(!(r4 ==0)) //_LBB100_8 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r1+9)] = 0; -} - r3 = 1; - heap8[r0+40] = r3; - heap32[(r1+9)] = 0; - heap32[(r1+7)] = 0; - heap32[(r1+8)] = 0; - heap32[(r1+5)] = 0; - r4 = heap32[(r1+11)]; -if(!(r4 ==0)) //_LBB100_11 -{ - r5 = (r0 + 44)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - _ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7); -} - r4 = heap32[(r1+12)]; -if(!(r4 ==0)) //_LBB100_13 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r6 = heap32[(r5)]; - r6 = (r6 + 1)|0; - r4 = r4 >> 2; - heap32[(r5)] = r6; - r4 = heap32[(r4+-1)]; - heap32[(g0)] = r4; - free(i7); -} - heap32[(r1+12)] = 0; - heap32[(r1+13)] = -1; - r4 = heap32[(r1+19)]; -if(!(r4 ==0)) //_LBB100_17 -{ - r5 = heapU8[r0+80]; -if(!(r5 ==0)) //_LBB100_16 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r6 = heap32[(r5)]; - r6 = (r6 + 1)|0; - r4 = r4 >> 2; - heap32[(r5)] = r6; - r4 = heap32[(r4+-1)]; - heap32[(g0)] = r4; - free(i7); -} - heap32[(r1+19)] = 0; -} - heap8[r0+80] = r3; - heap32[(r1+19)] = 0; - heap32[(r1+17)] = 0; - heap32[(r1+18)] = 0; - heap32[(r1+15)] = 0; - heap8[r0+153] = r2; - heap8[r0+154] = r3; - heap32[(r1+26)] = 0; - heap32[(r1+31)] = 0; - heap32[(r1+27)] = 1; - heap32[(r1+28)] = 0; - heap32[(r1+29)] = 10; - heap32[(r1+30)] = 1; - heap32[(r1+32)] = 0; - heap32[(r1+33)] = 0; - heap32[(r1+34)] = 0; - heap32[(r1+37)] = 0; - heap32[(r1+35)] = 0; - heap32[(r1+36)] = 0; - heap32[(r1+21)] = 0; - heap32[(r1+22)] = 0; - heap32[(r1+23)] = 0; -} - return; -} - -function _ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; -_1: do { -if(!(r0 ==0)) //_LBB101_57 -{ - r1 = heap32[(fp+2)]; -if(!(r1 ==0)) //_LBB101_57 -{ - r2 = heap32[(fp)]; - r3 = r2 >> 2; - r4 = heap32[(r3+6)]; -if(!(r4 >127)) //_LBB101_17 -{ - r5 = heap32[(r3+7)]; -if(!(r5 >127)) //_LBB101_17 -{ - r5 = gNumAlignedAllocs; - r5 = r5 >> 2; - r6 = heap32[(r5)]; - r6 = (r6 + 1)|0; - heap32[(r5)] = r6; - heap32[(g0)] = 1043; - malloc(i7); - r5 = r_g0; - if(r5 !=0) //_LBB101_6 -{ - r6 = 0; - r7 = (r5 + 4)|0; - r6 = (r6 - r7)|0; - r6 = r6 & 15; - r6 = (r5 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r5; - r5 = r7; -} - r6 = (r2 + 32)|0; - if(r4 <1) //_LBB101_9 -{ - r4 = r6 >> 2; - r8 = heap32[(r4)]; -} -else{ - r7 = 0; -_13: while(true){ - r8 = r6 >> 2; - r8 = heap32[(r8)]; - r9 = r7 << 3; - r10 = (r8 + r9)|0; - r10 = r10 >> 2; - r9 = (r5 + r9)|0; - r11 = heap32[(r10+1)]; - r10 = heap32[(r10)]; - r9 = r9 >> 2; - r7 = (r7 + 1)|0; - heap32[(r9)] = r10; - heap32[(r9+1)] = r11; -if(!(r4 !=r7)) //_LBB101_10 -{ -break _13; -} -} - r6 = (r2 + 32)|0; -} -if(!(r8 ==0)) //_LBB101_16 -{ - r4 = heapU8[r2+36]; -if(!(r4 ==0)) //_LBB101_15 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r7 = heap32[(r4)]; - r7 = (r7 + 1)|0; - r8 = r8 >> 2; - heap32[(r4)] = r7; - r4 = heap32[(r8+-1)]; - heap32[(g0)] = r4; - free(i7); -} - r4 = r6 >> 2; - heap32[(r4)] = 0; -} - r4 = 1; - r6 = r6 >> 2; - heap8[r2+36] = r4; - heap32[(r6)] = r5; - heap32[(r3+7)] = 128; -} -} - r4 = heap32[(fp+3)]; - heap32[(r3+6)] = 128; - r5 = heap32[(r3+8)]; - r5 = r5 >> 2; - r6 = 1; - r7 = 124; - heap32[(r5)] = r0; - heap32[(r5+1)] = r1; -_24: while(true){ - r0 = r6; - r6 = (r0 + -1)|0; - r1 = heap32[(r3+8)]; - r5 = r6 << 3; - r5 = (r1 + r5)|0; - r5 = r5 >> 2; - r8 = heap32[(r5)]; - r5 = heap32[(r5+1)]; - if(r6 >r7) //_LBB101_20 -{ - r7 = heap32[(r3+6)]; - r9 = r7 << 1; -_28: do { -if(!(r7 >r9)) //_LBB101_38 -{ -if(!(r7 >=r9)) //_LBB101_38 -{ - r10 = heap32[(r3+7)]; - if(r10 > 2; - r11 = heap32[(r10)]; - r12 = r7 << 4; - r11 = (r11 + 1)|0; - r12 = r12 | 3; - heap32[(r10)] = r11; - r10 = (r12 + 16)|0; - heap32[(g0)] = r10; - malloc(i7); - r10 = r_g0; - if(r10 !=0) //_LBB101_28 -{ - r11 = 0; - r12 = (r10 + 4)|0; - r11 = (r11 - r12)|0; - r11 = r11 & 15; - r11 = (r10 + r11)|0; - r12 = (r11 + 4)|0; - r11 = r11 >> 2; - heap32[(r11)] = r10; - r10 = r12; -} -} -else{ - r10 = 0; -} -if(!(r7 <1)) //_LBB101_32 -{ - r11 = (r1 + 4)|0; - r12 = (r10 + 4)|0; - r13 = r7; -_40: while(true){ - r14 = r11 >> 2; - r15 = heap32[(r14)]; - r14 = heap32[(r14+-1)]; - r16 = r12 >> 2; - r13 = (r13 + -1)|0; - r11 = (r11 + 8)|0; - r12 = (r12 + 8)|0; - heap32[(r16+-1)] = r14; - heap32[(r16)] = r15; -if(!(r13 !=0)) //_LBB101_31 -{ -break _40; -} -} -} -if(!(r1 ==0)) //_LBB101_36 -{ - r11 = heapU8[r2+36]; -if(!(r11 ==0)) //_LBB101_35 -{ - r11 = gNumAlignedFree; - r11 = r11 >> 2; - r12 = heap32[(r11)]; - r12 = (r12 + 1)|0; - r1 = r1 >> 2; - heap32[(r11)] = r12; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r3+8)] = 0; -} - r1 = 1; - heap8[r2+36] = r1; - heap32[(r3+8)] = r10; - heap32[(r3+7)] = r9; -if(!(r7 > 2; - r9 = r5 >> 2; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r9+4)]; -if(!(f0 >f1)) //_LBB101_41 -{ - f0 = heapFloat[(r1+4)]; - f1 = heapFloat[(r9)]; -if(!(f0 f1)) //_LBB101_41 -{ - f0 = heapFloat[(r1+5)]; - f1 = heapFloat[(r9+1)]; -if(!(f0 f1)) //_LBB101_41 -{ - f0 = heapFloat[(r1+6)]; - f1 = heapFloat[(r9+2)]; -if(!(f0 > 2; - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r0 = heap32[(r0+2)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r5; - __FUNCTION_TABLE__[(r0)>>2](i7); -} -else{ - r5 = r0 << 3; - r6 = heap32[(r3+8)]; - r6 = (r6 + r5)|0; - r1 = heap32[(r9+9)]; - r6 = r6 >> 2; - heap32[(r6+-2)] = r8; - heap32[(r6+-1)] = r1; - r6 = heap32[(r3+8)]; - r5 = (r6 + r5)|0; - r1 = heap32[(r9+10)]; - r5 = r5 >> 2; - r6 = (r0 + 1)|0; - heap32[(r5)] = r8; - heap32[(r5+1)] = r1; -} -} -else{ - r6 = heap32[(r3+8)]; - if(r10 ==0) //_LBB101_52 -{ - r8 = r0 << 3; - r6 = (r6 + r8)|0; - r6 = r6 >> 2; - r9 = heap32[(r1+9)]; - heap32[(r6+-2)] = r9; - heap32[(r6+-1)] = r5; - r6 = heap32[(r3+8)]; - r6 = (r6 + r8)|0; - r8 = heap32[(r1+10)]; - r9 = r6 >> 2; - r6 = (r0 + 1)|0; - heap32[(r9)] = r8; - heap32[(r9+1)] = r5; -} -else{ - r5 = r0 << 3; - r6 = (r6 + r5)|0; - r8 = heap32[(r9+9)]; - r10 = heap32[(r1+9)]; - r6 = r6 >> 2; - heap32[(r6+-2)] = r10; - heap32[(r6+-1)] = r8; - r6 = heap32[(r3+8)]; - r6 = (r6 + r5)|0; - r8 = heap32[(r9+9)]; - r10 = heap32[(r1+10)]; - r6 = r6 >> 2; - heap32[(r6)] = r10; - heap32[(r6+1)] = r8; - r6 = heap32[(r3+8)]; - r6 = (r5 + r6)|0; - r8 = heap32[(r9+10)]; - r10 = heap32[(r1+9)]; - r6 = r6 >> 2; - heap32[(r6+2)] = r10; - heap32[(r6+3)] = r8; - r6 = heap32[(r3+8)]; - r6 = (r5 + r6)|0; - r5 = heap32[(r9+10)]; - r1 = heap32[(r1+10)]; - r8 = r6 >> 2; - r6 = (r0 + 3)|0; - heap32[(r8+4)] = r1; - heap32[(r8+5)] = r5; -} -} -} -} -} -} -} -} -} -else{ - r5 = r8 >> 2; - r8 = heap32[(r5+10)]; - if(r8 !=0) //_LBB101_42 -{ - r6 = r0 << 3; - r8 = heap32[(r3+8)]; - r8 = (r8 + r6)|0; - r1 = heap32[(r5+9)]; - r8 = r8 >> 2; - heap32[(r8+-2)] = r1; - heap32[(r8+-1)] = r1; - r8 = heap32[(r3+8)]; - r8 = (r8 + r6)|0; - r1 = heap32[(r5+10)]; - r8 = r8 >> 2; - heap32[(r8)] = r1; - heap32[(r8+1)] = r1; - r8 = heap32[(r3+8)]; - r6 = (r6 + r8)|0; - r8 = heap32[(r5+10)]; - r5 = heap32[(r5+9)]; - r1 = r6 >> 2; - r6 = (r0 + 2)|0; - heap32[(r1+2)] = r5; - heap32[(r1+3)] = r8; -} -} - if(r6 !=0) //_LBB101_18 -{ -continue _24; -} -else{ -break _1; -} -} -} -} -} while(0); - return; -} - -function _ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; -if(!(r0 ==0)) //_LBB102_46 -{ - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = gNumAlignedAllocs; - r1 = r1 >> 2; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r1+1)]; - f2 = heapFloat[(r1+2)]; - f3 = heapFloat[(r1+4)]; - f4 = heapFloat[(r1+5)]; - f5 = heapFloat[(r1+6)]; - r1 = (r4 + 1)|0; - heap32[(r3)] = r1; - heap32[(g0)] = 275; - malloc(i7); - r1 = r_g0; - if(r1 !=0) //_LBB102_3 -{ - r4 = 0; - r5 = (r1 + 4)|0; - r4 = (r4 - r5)|0; - r4 = r4 & 15; - r4 = (r1 + r4)|0; - r5 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r1; - r1 = r5; -} - r4 = 1; - r5 = 64; - r6 = r1 >> 2; - heap32[(r6)] = r0; -_6: while(true){ - r0 = r4; - r4 = (r0 + -1)|0; - r6 = r4 << 2; - r6 = (r1 + r6)|0; - r6 = r6 >> 2; - r6 = heap32[(r6)]; - r7 = r6 >> 2; - f6 = heapFloat[(r7)]; - if(f6 <=f3) //_LBB102_7 -{ - f6 = heapFloat[(r7+4)]; -if(!(f6 f4)) //_LBB102_6 -{ - f6 = heapFloat[(r7+5)]; -if(!(f6 f5)) //_LBB102_6 -{ - f6 = heapFloat[(r7+6)]; -if(!(f6 > 2; - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r0 = heap32[(r0+3)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r6; - __FUNCTION_TABLE__[(r0)>>2](i7); -} -else{ - r6 = heap32[(r7+9)]; - if(r5 ==r4) //_LBB102_15 -{ - r8 = 1; - r9 = r4 << 1; - r8 = r4 == 0 ? r8 : r9; -if(!(r5 >=r8)) //_LBB102_14 -{ - if(r8 !=0) //_LBB102_18 -{ - r5 = heap32[(r3)]; - r9 = r8 << 2; - r5 = (r5 + 1)|0; - r9 = r9 | 3; - heap32[(r3)] = r5; - r5 = (r9 + 16)|0; - heap32[(g0)] = r5; - malloc(i7); - r9 = r_g0; - if(r9 !=0) //_LBB102_20 -{ - r5 = 0; - r10 = (r9 + 4)|0; - r5 = (r5 - r10)|0; - r5 = r5 & 15; - r5 = (r9 + r5)|0; - r10 = (r5 + 4)|0; - r5 = r5 >> 2; - heap32[(r5)] = r9; - r9 = r10; -} -} -else{ - r9 = 0; -} -if(!(r4 <1)) //_LBB102_24 -{ - r4 = (r0 + -1)|0; - r5 = r1; - r10 = r9; -_28: while(true){ - r11 = r5 >> 2; - r4 = (r4 + -1)|0; - r12 = (r10 + 4)|0; - r5 = (r5 + 4)|0; - r10 = r10 >> 2; - r11 = heap32[(r11)]; - heap32[(r10)] = r11; - r10 = r12; -if(!(r4 !=0)) //_LBB102_23 -{ -break _28; -} -} -} - if(r1 !=0) //_LBB102_26 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r1 = r1 >> 2; - heap32[(r4)] = r5; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); - r5 = r8; - r1 = r9; -} -else{ - r5 = r8; - r1 = r9; -} -} -} - r4 = r0 << 2; - r8 = (r1 + r4)|0; - r8 = r8 >> 2; - heap32[(r8+-1)] = r6; - r6 = heap32[(r7+10)]; - if(r5 ==r0) //_LBB102_29 -{ - r7 = 1; - r8 = r0 << 1; - r7 = r0 == 0 ? r7 : r8; -if(!(r5 >=r7)) //_LBB102_28 -{ - if(r7 !=0) //_LBB102_32 -{ - r5 = heap32[(r3)]; - r8 = r7 << 2; - r5 = (r5 + 1)|0; - r8 = r8 | 3; - heap32[(r3)] = r5; - r5 = (r8 + 16)|0; - heap32[(g0)] = r5; - malloc(i7); - r8 = r_g0; - if(r8 !=0) //_LBB102_34 -{ - r5 = 0; - r9 = (r8 + 4)|0; - r5 = (r5 - r9)|0; - r5 = r5 & 15; - r5 = (r8 + r5)|0; - r9 = (r5 + 4)|0; - r5 = r5 >> 2; - heap32[(r5)] = r8; - r8 = r9; -} -} -else{ - r8 = 0; -} -_43: do { -if(!(r0 <1)) //_LBB102_38 -{ - r5 = r1; - r9 = r8; - r10 = r0; -_45: while(true){ - r11 = r5 >> 2; - r10 = (r10 + -1)|0; - r12 = (r9 + 4)|0; - r5 = (r5 + 4)|0; - r9 = r9 >> 2; - r11 = heap32[(r11)]; - heap32[(r9)] = r11; - r9 = r12; -if(!(r10 !=0)) //_LBB102_37 -{ -break _43; -} -} -} -} while(0); - if(r1 !=0) //_LBB102_40 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r9 = heap32[(r5)]; - r9 = (r9 + 1)|0; - r1 = r1 >> 2; - heap32[(r5)] = r9; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); - r5 = r7; - r1 = r8; -} -else{ - r5 = r7; - r1 = r8; -} -} -} - r7 = (r1 + r4)|0; - r4 = (r0 + 1)|0; - r0 = r7 >> 2; - heap32[(r0)] = r6; -} -} -} -} -} -} -} -if(!(r4 >0)) //_LBB102_5 -{ -break _6; -} -} -if(!(r1 ==0)) //_LBB102_46 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r2 = heap32[(r0)]; - r2 = (r2 + 1)|0; - r1 = r1 >> 2; - heap32[(r0)] = r2; - r0 = heap32[(r1+-1)]; - heap32[(g0)] = r0; - free(i7); -} -} - return; -} - -function _ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -56;var g0 = i7>>2; // save stack - r0 = _ZTV20BroadphaseAabbTester; - r1 = sp + -8; - r0 = (r0 + 8)|0; - r2 = heap32[(fp+1)]; - r3 = r1 >> 2; - r4 = heap32[(fp+3)]; - heap32[(fp+-2)] = r0; - r0 = sp + -40; - r2 = r2 >> 2; - heap32[(r3+1)] = r4; - r3 = r0 >> 2; - heap32[(fp+-10)] = heap32[(r2)]; - heap32[(r3+1)] = heap32[(r2+1)]; - r4 = heap32[(fp+2)]; - heap32[(r3+2)] = heap32[(r2+2)]; - r4 = r4 >> 2; - heap32[(r3+3)] = heap32[(r2+3)]; - heap32[(r3+4)] = heap32[(r4)]; - heap32[(r3+5)] = heap32[(r4+1)]; - r2 = heap32[(fp)]; - heap32[(r3+6)] = heap32[(r4+2)]; - r2 = r2 >> 2; - heap32[(r3+7)] = heap32[(r4+3)]; - r3 = heap32[(r2+1)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r1; - _ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7); - r2 = heap32[(r2+11)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r1; - _ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7); - return; -} - -function _ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; -var __label__ = 0; - i7 = sp + -64;var g0 = i7>>2; // save stack - r0 = gNumAlignedAllocs; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = (r1 + 1)|0; - heap32[(r0)] = r2; - heap32[(g0)] = 83; - malloc(i7); - r2 = r_g0; - r3 = heap32[(fp)]; - r4 = heap32[(fp+1)]; - r5 = heap32[(fp+2)]; - r6 = heap32[(fp+4)]; - r7 = heap32[(fp+5)]; - r8 = heap32[(fp+6)]; - if(r2 !=0) //_LBB104_2 -{ - r9 = 0; - r10 = (r2 + 4)|0; - r9 = (r9 - r10)|0; - r9 = r9 & 15; - r9 = (r2 + r9)|0; - r10 = (r9 + 4)|0; - r9 = r9 >> 2; - heap32[(r9)] = r2; - r2 = r10; -} - r9 = r2 >> 2; - heap32[(r9)] = r6; - heap16[(r2+4)>>1] = r7; - r4 = r4 >> 2; - heap16[(r2+6)>>1] = r8; - f0 = heapFloat[(r4)]; - heapFloat[(r9+4)] = f0; - f1 = heapFloat[(r4+1)]; - heapFloat[(r9+5)] = f1; - f2 = heapFloat[(r4+2)]; - heapFloat[(r9+6)] = f2; - f3 = heapFloat[(r4+3)]; - r4 = r5 >> 2; - heapFloat[(r9+7)] = f3; - f4 = heapFloat[(r4)]; - heapFloat[(r9+8)] = f4; - f5 = heapFloat[(r4+1)]; - heapFloat[(r9+9)] = f5; - f6 = heapFloat[(r4+2)]; - heapFloat[(r9+10)] = f6; - f7 = heapFloat[(r4+3)]; - heapFloat[(r9+11)] = f7; - heap32[(r9+2)] = 0; - heap32[(r9+14)] = 0; - r4 = sp + -32; - heap32[(r9+13)] = 0; - r5 = r4 >> 2; - heapFloat[(fp+-8)] = f0; - heapFloat[(r5+1)] = f1; - heapFloat[(r5+2)] = f2; - heapFloat[(r5+3)] = f3; - heapFloat[(r5+4)] = f4; - heapFloat[(r5+5)] = f5; - heapFloat[(r5+6)] = f6; - r6 = r3 >> 2; - heapFloat[(r5+7)] = f7; - r5 = heap32[(r6+26)]; - heap32[(r9+15)] = r5; - r5 = heap32[(r6+37)]; - r5 = (r5 + 1)|0; - heap32[(r6+37)] = r5; - heap32[(r9+3)] = r5; - r5 = heap32[(r6+2)]; - r7 = (r3 + 4)|0; - if(r5 ==0) //_LBB104_5 -{ - r5 = (r1 + 2)|0; - heap32[(r0)] = r5; - heap32[(g0)] = 63; - malloc(i7); - r5 = r_g0; - if(r5 !=0) //_LBB104_7 -{ - r0 = 0; - r1 = (r5 + 4)|0; - r0 = (r0 - r1)|0; - r0 = r0 & 15; - r0 = (r5 + r0)|0; - r1 = (r0 + 4)|0; - r0 = r0 >> 2; - heap32[(r0)] = r5; - r5 = r1; -} -} -else{ - heap32[(r6+2)] = 0; -} - r0 = r5 >> 2; - heap32[(r0+8)] = 0; - heap32[(r0+9)] = r2; - heap32[(r0+10)] = 0; - heapFloat[(r0)] = f0; - heapFloat[(r0+1)] = f1; - heapFloat[(r0+2)] = f2; - heapFloat[(r0+3)] = f3; - heapFloat[(r0+4)] = f4; - heapFloat[(r0+5)] = f5; - heapFloat[(r0+6)] = f6; - heapFloat[(r0+7)] = f7; - r0 = heap32[(r6+1)]; - heap32[(g0)] = r7; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r5; - _ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7); - r0 = heap32[(r6+4)]; - r0 = (r0 + 1)|0; - heap32[(r6+4)] = r0; - heap32[(r9+12)] = r5; - r0 = heap32[(r6+26)]; - r0 = r0 << 2; - r0 = (r3 + r0)|0; - r0 = r0 >> 2; - heap32[(r9+13)] = 0; - r1 = heap32[(r0+21)]; - heap32[(r9+14)] = r1; -if(!(r1 ==0)) //_LBB104_10 -{ - r1 = r1 >> 2; - heap32[(r1+13)] = r2; -} - heap32[(r0+21)] = r2; - r0 = heapU8[r3+153]; -if(!(r0 !=0)) //_LBB104_12 -{ - r0 = _ZTV18btDbvtTreeCollider; - r0 = (r0 + 8)|0; - r1 = sp + -48; - r5 = r1 >> 2; - heap32[(fp+-12)] = r0; - heap32[(r5+1)] = r3; - heap32[(r5+2)] = r2; - r3 = heap32[(r6+1)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - _ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7); - r3 = heap32[(r6+11)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - _ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7); - heap32[(fp+-12)] = r0; -} - r_g0 = r2; - return; -} - -function _ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; -if(!(r0 ==0)) //_LBB105_43 -{ - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - f0 = heapFloat[(fp+4)]; - r4 = heap32[(fp+5)]; - r5 = heap32[(fp+6)]; - r6 = heap32[(fp+7)]; - r7 = gNumAlignedAllocs; - r7 = r7 >> 2; - r8 = heap32[(r7)]; - r8 = (r8 + 1)|0; - heap32[(r7)] = r8; - heap32[(g0)] = 531; - malloc(i7); - r8 = r_g0; - if(r8 !=0) //_LBB105_3 -{ - r9 = 0; - r10 = (r8 + 4)|0; - r9 = (r9 - r10)|0; - r9 = r9 & 15; - r9 = (r8 + r9)|0; - r10 = (r9 + 4)|0; - r9 = r9 >> 2; - heap32[(r9)] = r8; - r8 = r10; -} - r9 = 0; -_6: while(true){ - r10 = r9 << 2; - r10 = (r8 + r10)|0; - r9 = (r9 + 1)|0; - r10 = r10 >> 2; - heap32[(r10)] = 0; -if(!(r9 !=128)) //_LBB105_5 -{ -break _6; -} -} - r9 = 128; - r10 = 1; - r11 = 126; - r12 = r8 >> 2; - heap32[(r12)] = r0; - r0 = r9; - r12 = r10; -_9: while(true){ - r13 = r12; - r12 = (r13 + -1)|0; - r14 = r12 << 2; - r14 = (r8 + r14)|0; - r14 = r14 >> 2; - r14 = heap32[(r14)]; - r15 = r14 >> 2; - r16 = r5 >> 2; - f1 = heapFloat[(r15+2)]; - f2 = heapFloat[(r16+2)]; - f3 = heapFloat[(r15+1)]; - f4 = heapFloat[(r16+1)]; - f5 = heapFloat[(r15)]; - f6 = heapFloat[(r16)]; - r16 = sp + -32; - f5 = f5-f6; - r17 = r16 >> 2; - f3 = f3-f4; - heapFloat[(fp+-8)] = f5; - f1 = f1-f2; - heapFloat[(r17+1)] = f3; - heapFloat[(r17+2)] = f1; - heap32[(r17+3)] = 0; - r18 = r4 >> 2; - f1 = heapFloat[(r15+6)]; - f2 = heapFloat[(r18+2)]; - f3 = heapFloat[(r15+5)]; - f4 = heapFloat[(r18+1)]; - f5 = heapFloat[(r15+4)]; - f6 = heapFloat[(r18)]; - f5 = f5-f6; - f3 = f3-f4; - heapFloat[(r17+4)] = f5; - f1 = f1-f2; - heapFloat[(r17+5)] = f3; - heapFloat[(r17+6)] = f1; - r18 = r3 >> 2; - heap32[(r17+7)] = 0; - r17 = heap32[(r18)]; - r19 = heap32[(r18+1)]; - r20 = (r10 - r19)|0; - r21 = r17 << 4; - r20 = r20 << 4; - r21 = (r16 + r21)|0; - r20 = (r16 + r20)|0; - r22 = r1 >> 2; - r21 = r21 >> 2; - r20 = r20 >> 2; - r23 = r2 >> 2; - f1 = heapFloat[(r21)]; - f2 = heapFloat[(r22)]; - f3 = heapFloat[(r20+1)]; - f4 = heapFloat[(r22+1)]; - f1 = f1-f2; - f5 = heapFloat[(r23)]; - f3 = f3-f4; - f6 = heapFloat[(r23+1)]; - f1 = f1*f5; - f3 = f3*f6; -if(!(f1 >f3)) //_LBB105_9 -{ - r17 = (r10 - r17)|0; - r17 = r17 << 4; - r19 = r19 << 4; - r17 = (r16 + r17)|0; - r19 = (r16 + r19)|0; - r17 = r17 >> 2; - r19 = r19 >> 2; - f7 = heapFloat[(r17)]; - f8 = heapFloat[(r19+1)]; - f2 = f7-f2; - f4 = f8-f4; - f2 = f2*f5; - f4 = f4*f6; - if(f4 <=f2) //_LBB105_10 -{ - r17 = heap32[(r18+2)]; - r18 = 1; - r18 = (r18 - r17)|0; - r18 = r18 << 4; - r18 = (r16 + r18)|0; - r18 = r18 >> 2; - f5 = heapFloat[(r18+2)]; - f6 = heapFloat[(r22+2)]; - f5 = f5-f6; - f7 = heapFloat[(r23+2)]; - f1 = f1 < f4 ? f4 : f1; - f4 = f5*f7; -if(!(f1 >f4)) //_LBB105_9 -{ - r17 = r17 << 4; - r16 = (r16 + r17)|0; - r16 = r16 >> 2; - f5 = heapFloat[(r16+2)]; - f5 = f5-f6; - f2 = f3 < f2 ? f3 : f2; - f3 = f5*f7; -if(!(f3 >f2)) //_LBB105_9 -{ - f1 = f1 < f3 ? f3 : f1; -if(!(f1 >=f0)) //_LBB105_9 -{ - f1 = f4 < f2 ? f4 : f2; - f2 = 0; -if(!(f1 <=f2)) //_LBB105_9 -{ - r16 = heap32[(r15+10)]; - if(r16 ==0) //_LBB105_39 -{ - r13 = r6 >> 2; - r13 = heap32[(r13)]; - r13 = r13 >> 2; - r13 = heap32[(r13+3)]; - heap32[(g0)] = r6; - heap32[(g0+1)] = r14; - __FUNCTION_TABLE__[(r13)>>2](i7); -} -else{ - if(r12 >r11) //_LBB105_17 -{ - r14 = r0 << 1; -_23: do { - if(r0 <=r14) //_LBB105_19 -{ -if(!(r0 >=r14)) //_LBB105_18 -{ - if(r9 > 2; - heap32[(r11)] = r9; - r9 = r12; -} -} -else{ - r9 = 0; -} -if(!(r0 <1)) //_LBB105_30 -{ - r11 = r8; - r12 = r9; - r16 = r0; -_35: while(true){ - r17 = r11 >> 2; - r16 = (r16 + -1)|0; - r18 = (r12 + 4)|0; - r11 = (r11 + 4)|0; - r12 = r12 >> 2; - r17 = heap32[(r17)]; - heap32[(r12)] = r17; - r12 = r18; -if(!(r16 !=0)) //_LBB105_29 -{ -break _35; -} -} -} -if(!(r8 ==0)) //_LBB105_32 -{ - r11 = gNumAlignedFree; - r11 = r11 >> 2; - r12 = heap32[(r11)]; - r12 = (r12 + 1)|0; - r8 = r8 >> 2; - heap32[(r11)] = r12; - r8 = heap32[(r8+-1)]; - heap32[(g0)] = r8; - free(i7); -} - if(r0 > 2; - heap32[(r12)] = 0; -if(!(r11 !=0)) //_LBB105_36 -{ -break _23; -} -} -} -} -} while(0); - r11 = (r14 + -2)|0; -} -else{ - r14 = r0; -} - r0 = r13 << 2; - r0 = (r8 + r0)|0; - r0 = r0 >> 2; - r12 = heap32[(r15+9)]; - heap32[(r0+-1)] = r12; - r15 = heap32[(r15+10)]; - r12 = (r13 + 1)|0; - heap32[(r0)] = r15; - r0 = r14; -} -} -} -} -} -} -} -if(!(r12 !=0)) //_LBB105_7 -{ -break _9; -} -} -if(!(r8 ==0)) //_LBB105_43 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - r2 = r8 >> 2; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} -} - return; -} - -function _ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var f0; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = _ZTV19BroadphaseRayTester; - r1 = sp + -8; - r0 = (r0 + 8)|0; - r2 = heap32[(fp+3)]; - r3 = heap32[(fp)]; - r4 = r1 >> 2; - heap32[(fp+-2)] = r0; - heap32[(r4+1)] = r2; - r0 = r2 >> 2; - r3 = r3 >> 2; - f0 = heapFloat[(r0+8)]; - r4 = heap32[(r3+1)]; - r5 = heap32[(fp+1)]; - r6 = (r2 + 4)|0; - r2 = (r2 + 20)|0; - r7 = heap32[(fp+4)]; - r8 = heap32[(fp+5)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r2; - heapFloat[(g0+4)] = f0; - heap32[(g0+5)] = r7; - heap32[(g0+6)] = r8; - heap32[(g0+7)] = r1; - _ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(i7); - f0 = heapFloat[(r0+8)]; - r0 = heap32[(r3+11)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r2; - heapFloat[(g0+4)] = f0; - heap32[(g0+5)] = r7; - heap32[(g0+6)] = r8; - heap32[(g0+7)] = r1; - _ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(i7); - return; -} - -function _ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(fp)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(r1+12)]; - r5 = heap32[(r1+15)]; - if(r5 !=2) //_LBB107_4 -{ - r5 = (r2 + 4)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - r5 = r2 >> 2; - _ZL10removeleafP6btDbvtP10btDbvtNode(i7); - r6 = heap32[(r5+2)]; -if(!(r6 ==0)) //_LBB107_6 -{ - r7 = gNumAlignedFree; - r7 = r7 >> 2; - r8 = heap32[(r7)]; - r8 = (r8 + 1)|0; - r6 = r6 >> 2; - heap32[(r7)] = r8; - r6 = heap32[(r6+-1)]; - heap32[(g0)] = r6; - free(i7); -} - heap32[(r5+2)] = r4; - r4 = heap32[(r5+4)]; - r4 = (r4 + -1)|0; - heap32[(r5+4)] = r4; -} -else{ - r5 = (r2 + 44)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - r5 = r2 >> 2; - _ZL10removeleafP6btDbvtP10btDbvtNode(i7); - r6 = heap32[(r5+12)]; -if(!(r6 ==0)) //_LBB107_3 -{ - r7 = gNumAlignedFree; - r7 = r7 >> 2; - r8 = heap32[(r7)]; - r8 = (r8 + 1)|0; - r6 = r6 >> 2; - heap32[(r7)] = r8; - r6 = heap32[(r6+-1)]; - heap32[(g0)] = r6; - free(i7); -} - heap32[(r5+12)] = r4; - r4 = heap32[(r5+14)]; - r4 = (r4 + -1)|0; - heap32[(r5+14)] = r4; -} - r4 = heap32[(r1+13)]; - r5 = heap32[(r1+14)]; - if(r4 ==0) //_LBB107_9 -{ - r4 = heap32[(r1+15)]; - r4 = r4 << 2; - r4 = (r2 + r4)|0; - r4 = r4 >> 2; - heap32[(r4+21)] = r5; -} -else{ - r4 = r4 >> 2; - heap32[(r4+14)] = r5; -} - r4 = heap32[(r1+14)]; -if(!(r4 ==0)) //_LBB107_12 -{ - r4 = r4 >> 2; - r5 = heap32[(r1+13)]; - heap32[(r4+13)] = r5; -} - r4 = r2 >> 2; - r4 = heap32[(r4+24)]; - r5 = r4 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+4)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r3; - __FUNCTION_TABLE__[(r5)>>2](i7); -if(!(r0 ==0)) //_LBB107_14 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r3 = heap32[(r0)]; - r3 = (r3 + 1)|0; - heap32[(r0)] = r3; - r0 = heap32[(r1+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = 1; - heap8[r2+154] = r0; - return; -} - -function _ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; -var __label__ = 0; - i7 = sp + -48;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+4)]; - r3 = heap32[(r1+28)]; - r2 = (r3 * r2)|0; - r2 = (r2 / 100)|0; - r3 = (r0 + 4)|0; - r2 = (r2 + 1)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - _ZN6btDbvt19optimizeIncrementalEi(i7); - r2 = heap32[(r1+31)]; -if(!(r2 ==0)) //_LBB108_2 -{ - r2 = heap32[(r1+14)]; - r4 = heap32[(r1+27)]; - r2 = (r4 * r2)|0; - r4 = (r2 / 100)|0; - r5 = (r0 + 44)|0; - r4 = (r4 + 1)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - _ZN6btDbvt19optimizeIncrementalEi(i7); - r2 = (r2 / -100)|0; - r4 = heap32[(r1+31)]; - r2 = (r2 + r4)|0; - r2 = (r2 + -1)|0; - r4 = 0; - r2 = r2 < 0 ? r4 : r2; - heap32[(r1+31)] = r2; -} - r2 = heap32[(r1+26)]; - r2 = (r2 + 1)|0; - r4 = r2 >>> 31; - r4 = (r2 + r4)|0; - r4 = r4 & -2; - r2 = (r2 - r4)|0; - r4 = r2 << 2; - r4 = (r0 + r4)|0; - r4 = r4 >> 2; - heap32[(r1+26)] = r2; - r2 = heap32[(r4+21)]; -if(!(r2 ==0)) //_LBB108_20 -{ - r4 = (r0 + 44)|0; -_6: while(true){ - r5 = r2 >> 2; - r6 = heap32[(r5+13)]; - r7 = heap32[(r5+14)]; - if(r6 ==0) //_LBB108_6 -{ - r6 = heap32[(r5+15)]; - r6 = r6 << 2; - r6 = (r0 + r6)|0; - r6 = r6 >> 2; - heap32[(r6+21)] = r7; -} -else{ - r6 = r6 >> 2; - heap32[(r6+14)] = r7; -} - r6 = heap32[(r5+14)]; -if(!(r6 ==0)) //_LBB108_9 -{ - r6 = r6 >> 2; - r8 = heap32[(r5+13)]; - heap32[(r6+13)] = r8; -} - heap32[(r5+13)] = 0; - r6 = heap32[(r1+23)]; - heap32[(r5+14)] = r6; - r6 = heap32[(r1+23)]; -if(!(r6 ==0)) //_LBB108_11 -{ - r6 = r6 >> 2; - heap32[(r6+13)] = r2; -} - heap32[(r1+23)] = r2; - r6 = heap32[(r5+12)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r6; - _ZL10removeleafP6btDbvtP10btDbvtNode(i7); - r8 = heap32[(r1+2)]; -if(!(r8 ==0)) //_LBB108_13 -{ - r9 = gNumAlignedFree; - r9 = r9 >> 2; - r10 = heap32[(r9)]; - r10 = (r10 + 1)|0; - r8 = r8 >> 2; - heap32[(r9)] = r10; - r8 = heap32[(r8+-1)]; - heap32[(g0)] = r8; - free(i7); -} - heap32[(r1+2)] = r6; - r6 = heap32[(r1+4)]; - r6 = (r6 + -1)|0; - heap32[(r1+4)] = r6; - r6 = heap32[(r1+12)]; - f0 = heapFloat[(r5+4)]; - f1 = heapFloat[(r5+5)]; - f2 = heapFloat[(r5+6)]; - f3 = heapFloat[(r5+7)]; - f4 = heapFloat[(r5+8)]; - f5 = heapFloat[(r5+9)]; - f6 = heapFloat[(r5+10)]; - f7 = heapFloat[(r5+11)]; - if(r6 ==0) //_LBB108_15 -{ - r6 = gNumAlignedAllocs; - r6 = r6 >> 2; - r8 = heap32[(r6)]; - r8 = (r8 + 1)|0; - heap32[(r6)] = r8; - heap32[(g0)] = 63; - malloc(i7); - r6 = r_g0; - if(r6 !=0) //_LBB108_17 -{ - r8 = 0; - r9 = (r6 + 4)|0; - r8 = (r8 - r9)|0; - r8 = r8 & 15; - r8 = (r6 + r8)|0; - r9 = (r8 + 4)|0; - r8 = r8 >> 2; - heap32[(r8)] = r6; - r6 = r9; -} -} -else{ - heap32[(r1+12)] = 0; -} - r8 = r6 >> 2; - heap32[(r8+8)] = 0; - heap32[(r8+9)] = r2; - heap32[(r8+10)] = 0; - heapFloat[(r8)] = f0; - heapFloat[(r8+1)] = f1; - heapFloat[(r8+2)] = f2; - heapFloat[(r8+3)] = f3; - heapFloat[(r8+4)] = f4; - heapFloat[(r8+5)] = f5; - heapFloat[(r8+6)] = f6; - heapFloat[(r8+7)] = f7; - r2 = heap32[(r1+11)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r6; - _ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7); - r2 = heap32[(r1+14)]; - r2 = (r2 + 1)|0; - heap32[(r1+14)] = r2; - heap32[(r5+12)] = r6; - heap32[(r5+15)] = 2; - r2 = r7; -if(!(r7 !=0)) //_LBB108_4 -{ -break _6; -} -} - r2 = heap32[(r1+14)]; - r4 = 1; - heap32[(r1+31)] = r2; - heap8[r0+154] = r4; -} - r2 = _ZTV18btDbvtTreeCollider; - r4 = sp + -32; - r2 = (r2 + 8)|0; - r5 = r4 >> 2; - heap32[(fp+-8)] = r2; - heap32[(r5+1)] = r0; - r5 = heapU8[r0+153]; -if(!(r5 ==0)) //_LBB108_23 -{ - r5 = heap32[(r1+11)]; - r6 = heap32[(r1+1)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r4; - _ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7); - r5 = heapU8[r0+153]; -if(!(r5 ==0)) //_LBB108_23 -{ - r5 = heap32[(r1+1)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r4; - _ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7); -} -} - r3 = heap32[(fp+1)]; - heap32[(fp+-8)] = r2; - r2 = heapU8[r0+154]; -_32: do { -if(!(r2 ==0)) //_LBB108_40 -{ - r2 = heap32[(r1+24)]; - r4 = r2 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+7)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r4)>>2](i7); - r2 = r_g0; - r4 = r2 >> 2; - r4 = heap32[(r4+1)]; -if(!(r4 <1)) //_LBB108_40 -{ - r5 = heap32[(r1+29)]; - r5 = (r5 * r4)|0; - r6 = heap32[(r1+30)]; - r5 = (r5 / 100)|0; - r5 = r6 > r5 ? r6 : r5; - r5 = r4 < r5 ? r4 : r5; - if(r5 >0) //_LBB108_27 -{ - r4 = 0; -_37: while(true){ - r6 = r2 >> 2; - r7 = heap32[(r1+36)]; - r7 = (r7 + r4)|0; - r8 = heap32[(r6+1)]; - r7 = (r7 % r8)|0; - r8 = heap32[(r6+3)]; - r7 = r7 << 4; - r7 = (r8 + r7)|0; - r7 = r7 >> 2; - r8 = heap32[(r7+1)]; - r7 = heap32[(r7)]; - r9 = r8 >> 2; - r10 = r7 >> 2; - r9 = heap32[(r9+12)]; - r10 = heap32[(r10+12)]; - r10 = r10 >> 2; - r9 = r9 >> 2; - f0 = heapFloat[(r10)]; - f1 = heapFloat[(r9+4)]; - if(f0 >f1) //_LBB108_35 -{ -__label__ = 32; -} -else{ - f0 = heapFloat[(r10+4)]; - f1 = heapFloat[(r9)]; - if(f0 f1) //_LBB108_35 -{ -__label__ = 32; -} -else{ - f0 = heapFloat[(r10+5)]; - f1 = heapFloat[(r9+1)]; - if(f0 f1) //_LBB108_35 -{ -__label__ = 32; -} -else{ - f0 = heapFloat[(r10+6)]; - f1 = heapFloat[(r9+2)]; - if(f0 > 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+3)]; - heap32[(g0)] = r9; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r3; - r5 = (r5 + -1)|0; - r4 = (r4 + -1)|0; - __FUNCTION_TABLE__[(r10)>>2](i7); -} - r4 = (r4 + 1)|0; -if(!(r4 >> 1; - r0 = r0 >>> 1; - heap32[(r1+33)] = r4; - heap32[(r1+32)] = r0; - r0 = heap32[(r1+24)]; - r4 = r0 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+14)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r4)>>2](i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB108_65 -{ - r0 = heap32[(r1+24)]; - r4 = r0 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+7)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r4)>>2](i7); - r0 = r_g0; - r4 = r0 >> 2; - r4 = heap32[(r4+1)]; -if(!(r4 <2)) //_LBB108_46 -{ - r4 = (r4 + -1)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r4; - _ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7); -} - r4 = r2; - r5 = r2; - r6 = r2; - r7 = r2; -_61: while(true){ - r8 = r0 >> 2; - r9 = heap32[(r8+1)]; - if(r9 >r7) //_LBB108_47 -{ - r8 = heap32[(r8+3)]; - r9 = r7 << 4; - r9 = (r8 + r9)|0; - r9 = r9 >> 2; - r10 = heap32[(r9)]; - r11 = r7 << 2; - r12 = heap32[(r9+1)]; - if(r10 !=r4) //_LBB108_49 -{ -__label__ = 46; -} -else{ - if(r12 ==r5) //_LBB108_56 -{ - r4 = heap32[(r9+2)]; - if(r4 ==0) //_LBB108_58 -{ -__label__ = 54; -} -else{ -__label__ = 53; -break _61; -} -} -else{ -__label__ = 46; -} -} -if (__label__ == 46){ - r4 = r12 >> 2; - r5 = r10 >> 2; - r4 = heap32[(r4+12)]; - r5 = heap32[(r5+12)]; - r5 = r5 >> 2; - r4 = r4 >> 2; - f0 = heapFloat[(r5)]; - f1 = heapFloat[(r4+4)]; - if(f0 >f1) //_LBB108_58 -{ -__label__ = 54; -} -else{ - f0 = heapFloat[(r5+4)]; - f1 = heapFloat[(r4)]; - if(f0 f1) //_LBB108_58 -{ -__label__ = 54; -} -else{ - f0 = heapFloat[(r5+5)]; - f1 = heapFloat[(r4+1)]; - if(f0 f1) //_LBB108_58 -{ -__label__ = 54; -} -else{ - f0 = heapFloat[(r5+6)]; - f1 = heapFloat[(r4+2)]; - if(f0 > 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+8)]; - r9 = (r8 + r2)|0; - r11 = r11 << 2; - heap32[(g0)] = r4; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r3; - r4 = (r8 + r11)|0; - r4 = r4 >> 2; - __FUNCTION_TABLE__[(r5)>>2](i7); - r6 = (r6 + 1)|0; - heap32[(r4)] = 0; - heap32[(r4+1)] = 0; -} - r7 = (r7 + 1)|0; - r2 = (r2 + 16)|0; - r4 = r10; - r5 = r12; -} -else{ -__label__ = 57; -break _61; -} -} -switch(__label__ ){//multiple entries -case 57: - if(r9 >1) //_LBB108_63 -{ - r9 = (r9 + -1)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r9; - _ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7); - r9 = heap32[(r8+1)]; -} - r1 = sp + -16; - r2 = r1 >> 2; - heap32[(fp+-4)] = 0; - heap32[(r2+1)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - r2 = (r9 - r6)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r1; - _ZN20btAlignedObjectArrayI16btBroadphasePairE6resizeEiRKS0_(i7); -break; -case 53: - r8 = _2E_str314; - r0 = _2E_str18; - heap32[(g0)] = r8; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 469; - _assert(i7); -break; -} -} - return; -} - -function _ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; -var __label__ = 0; - i7 = sp + -88;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0)]; - r1 = sp + -32; - heapFloat[(fp+-8)] = f0; - f1 = heapFloat[(r0+1)]; - r2 = r1 >> 2; - heapFloat[(r2+1)] = f1; - f2 = heapFloat[(r0+2)]; - heapFloat[(r2+2)] = f2; - f3 = heapFloat[(r0+3)]; - r3 = heap32[(fp+3)]; - r3 = r3 >> 2; - heapFloat[(r2+3)] = f3; - f4 = heapFloat[(r3)]; - heapFloat[(r2+4)] = f4; - f5 = heapFloat[(r3+1)]; - heapFloat[(r2+5)] = f5; - f6 = heapFloat[(r3+2)]; - heapFloat[(r2+6)] = f6; - f7 = heapFloat[(r3+3)]; - r4 = heap32[(fp+1)]; - r5 = heap32[(fp)]; - r6 = r4 >> 2; - heapFloat[(r2+7)] = f7; - r7 = heap32[(r6+15)]; -_1: do { - if(r7 !=2) //_LBB109_9 -{ - r2 = r5 >> 2; - r8 = heap32[(r2+32)]; - r8 = (r8 + 1)|0; - heap32[(r2+32)] = r8; - r8 = heap32[(r6+12)]; - r7 = r8 >> 2; - f8 = heapFloat[(r7)]; -if(!(f8 >f4)) //_LBB109_24 -{ - f8 = heapFloat[(r7+4)]; -if(!(f8 f5)) //_LBB109_24 -{ - f8 = heapFloat[(r7+5)]; -if(!(f8 f6)) //_LBB109_24 -{ - f8 = heapFloat[(r7+6)]; -if(!(f8 > 2; - heapFloat[(fp+-12)] = f1; - f2 = f2*f7; - heapFloat[(r9+1)] = f4; - heapFloat[(r9+2)] = f2; - heap32[(r9+3)] = 0; - f0 = f6-f0; - f6 = 0; -if(!(f0 >=f6)) //_LBB109_17 -{ - f0 = -f1; - heapFloat[(fp+-12)] = f0; -} - f0 = f5-f3; -if(!(f0 >=f6)) //_LBB109_19 -{ - f0 = -f4; - heapFloat[(r9+1)] = f0; -} - f0 = f8-f9; -if(!(f0 >=f6)) //_LBB109_21 -{ - f0 = -f2; - heapFloat[(r9+2)] = f0; -} - r9 = (r5 + 4)|0; - heap32[(g0)] = r9; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = 1028443341; - _ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMmRK9btVector3f(i7); - r8 = r_g0; - if(r8 !=0) //_LBB109_23 -{ - r7 = heap32[(r2+33)]; - r8 = 1; - r7 = (r7 + 1)|0; - heap32[(r2+33)] = r7; -break _1; -} -else{ - r8 = 0; -break _1; -} -} -} -} -} -} -} - r1 = (r5 + 4)|0; - heap32[(g0)] = r1; - heap32[(g0+1)] = r8; - _ZL10removeleafP6btDbvtP10btDbvtNode(i7); - r9 = r_g0; -_23: do { - if(r9 !=0) //_LBB109_26 -{ - r11 = heap32[(r2+3)]; - if(r11 <0) //_LBB109_31 -{ - r10 = heap32[(r2+1)]; -} -else{ - r12 = -1; -_28: while(true){ - r10 = r9; - r12 = (r12 + 1)|0; - if(r11 >r12) //_LBB109_30 -{ - r9 = r10 >> 2; - r9 = heap32[(r9+8)]; - if(r9 ==0) //_LBB109_29 -{ -break _23; -} -} -else{ -break _23; -} -} -} -} -else{ - r10 = 0; -} -} while(0); - heapFloat[(r7)] = f0; - heapFloat[(r7+1)] = f1; - heapFloat[(r7+2)] = f2; - heapFloat[(r7+3)] = f3; - heapFloat[(r7+4)] = f4; - heapFloat[(r7+5)] = f5; - heapFloat[(r7+6)] = f6; - heapFloat[(r7+7)] = f7; - heap32[(g0)] = r1; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r8; - _ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7); - r1 = heap32[(r2+33)]; - r8 = 1; - r1 = (r1 + 1)|0; - heap32[(r2+33)] = r1; -} -else{ - r1 = heap32[(r6+12)]; - r7 = (r5 + 44)|0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r1; - r7 = r5 >> 2; - _ZL10removeleafP6btDbvtP10btDbvtNode(i7); - r8 = heap32[(r7+12)]; -if(!(r8 ==0)) //_LBB109_3 -{ - r9 = gNumAlignedFree; - r9 = r9 >> 2; - r10 = heap32[(r9)]; - r10 = (r10 + 1)|0; - r8 = r8 >> 2; - heap32[(r9)] = r10; - r8 = heap32[(r8+-1)]; - heap32[(g0)] = r8; - free(i7); -} - heap32[(r7+12)] = r1; - r1 = heap32[(r7+14)]; - r1 = (r1 + -1)|0; - heap32[(r7+14)] = r1; - r1 = heap32[(r7+2)]; - r8 = (r5 + 4)|0; - if(r1 ==0) //_LBB109_5 -{ - r1 = gNumAlignedAllocs; - r1 = r1 >> 2; - r9 = heap32[(r1)]; - r9 = (r9 + 1)|0; - heap32[(r1)] = r9; - heap32[(g0)] = 63; - malloc(i7); - r1 = r_g0; - if(r1 !=0) //_LBB109_7 -{ - r9 = 0; - r10 = (r1 + 4)|0; - r9 = (r9 - r10)|0; - r9 = r9 & 15; - r9 = (r1 + r9)|0; - r10 = (r9 + 4)|0; - r9 = r9 >> 2; - heap32[(r9)] = r1; - r1 = r10; -} -} -else{ - heap32[(r7+2)] = 0; -} - r9 = r1 >> 2; - heap32[(r9+8)] = 0; - heap32[(r9+9)] = r4; - heap32[(r9+10)] = 0; - heap32[(r9)] = heap32[(fp+-8)]; - heap32[(r9+1)] = heap32[(r2+1)]; - heap32[(r9+2)] = heap32[(r2+2)]; - heap32[(r9+3)] = heap32[(r2+3)]; - heapFloat[(r9+4)] = f4; - heapFloat[(r9+5)] = f5; - heapFloat[(r9+6)] = f6; - heapFloat[(r9+7)] = f7; - r2 = heap32[(r7+1)]; - heap32[(g0)] = r8; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r1; - _ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i7); - r2 = heap32[(r7+4)]; - r2 = (r2 + 1)|0; - r8 = 1; - heap32[(r7+4)] = r2; - heap32[(r6+12)] = r1; -} -} while(0); - r1 = heap32[(r6+13)]; - r2 = heap32[(r6+14)]; - if(r1 ==0) //_LBB109_35 -{ - r1 = heap32[(r6+15)]; - r1 = r1 << 2; - r1 = (r5 + r1)|0; - r1 = r1 >> 2; - heap32[(r1+21)] = r2; -} -else{ - r1 = r1 >> 2; - heap32[(r1+14)] = r2; -} - r1 = heap32[(r6+14)]; -if(!(r1 ==0)) //_LBB109_38 -{ - r1 = r1 >> 2; - r2 = heap32[(r6+13)]; - heap32[(r1+13)] = r2; -} - heap32[(r6+4)] = heap32[(r0)]; - heap32[(r6+5)] = heap32[(r0+1)]; - heap32[(r6+6)] = heap32[(r0+2)]; - heap32[(r6+7)] = heap32[(r0+3)]; - heap32[(r6+8)] = heap32[(r3)]; - heap32[(r6+9)] = heap32[(r3+1)]; - heap32[(r6+10)] = heap32[(r3+2)]; - r0 = r5 >> 2; - heap32[(r6+11)] = heap32[(r3+3)]; - r1 = heap32[(r0+26)]; - heap32[(r6+15)] = r1; - r1 = heap32[(r0+26)]; - r1 = r1 << 2; - r1 = (r5 + r1)|0; - r1 = r1 >> 2; - heap32[(r6+13)] = 0; - r2 = heap32[(r1+21)]; - heap32[(r6+14)] = r2; - r2 = heap32[(r1+21)]; -if(!(r2 ==0)) //_LBB109_40 -{ - r2 = r2 >> 2; - heap32[(r2+13)] = r4; -} - r2 = r8 & 1; - heap32[(r1+21)] = r4; -if(!(r2 ==0)) //_LBB109_43 -{ - r1 = 1; - heap8[r5+154] = r1; - r1 = heapU8[r5+153]; -if(!(r1 !=0)) //_LBB109_43 -{ - r1 = _ZTV18btDbvtTreeCollider; - r2 = sp + -64; - r1 = (r1 + 8)|0; - r3 = r2 >> 2; - heap32[(fp+-16)] = r1; - heap32[(r3+1)] = r5; - r1 = heap32[(r6+12)]; - r3 = heap32[(r0+11)]; - r4 = (r5 + 44)|0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r2; - _ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7); - r1 = heap32[(r6+12)]; - r0 = heap32[(r0+1)]; - r3 = (r5 + 4)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r2; - _ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7); -} -} - return; -} - -function _ZN16btDbvtBroadphaseD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV16btDbvtBroadphase; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heapU8[r0+152]; -if(!(r1 ==0)) //_LBB110_3 -{ - r1 = heap32[(r2+24)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+24)]; -if(!(r1 ==0)) //_LBB110_3 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r3 = heap32[(r2)]; - r3 = (r3 + 1)|0; - r1 = r1 >> 2; - heap32[(r2)] = r3; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - r1 = (r0 + 4)|0; -if(!(r1 ==0)) //_LBB110_15 -{ - r2 = (r1 + 80)|0; -if(!(r2 ==r1)) //_LBB110_15 -{ - r1 = (r0 + 44)|0; - r2 = 0; -_8: while(true){ - r3 = (r0 + r2)|0; - r4 = r3 >> 2; - r5 = heap32[(r4+11)]; -if(!(r5 ==0)) //_LBB110_8 -{ - r6 = (r1 + r2)|0; - heap32[(g0)] = r6; - heap32[(g0+1)] = r5; - _ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7); -} - r5 = heap32[(r4+12)]; -if(!(r5 ==0)) //_LBB110_10 -{ - r6 = gNumAlignedFree; - r6 = r6 >> 2; - r7 = heap32[(r6)]; - r7 = (r7 + 1)|0; - r5 = r5 >> 2; - heap32[(r6)] = r7; - r5 = heap32[(r5+-1)]; - heap32[(g0)] = r5; - free(i7); -} - heap32[(r4+12)] = 0; - heap32[(r4+13)] = -1; - r5 = heap32[(r4+19)]; -if(!(r5 ==0)) //_LBB110_14 -{ - r6 = heapU8[r3+80]; -if(!(r6 ==0)) //_LBB110_13 -{ - r6 = gNumAlignedFree; - r6 = r6 >> 2; - r7 = heap32[(r6)]; - r7 = (r7 + 1)|0; - r5 = r5 >> 2; - heap32[(r6)] = r7; - r5 = heap32[(r5+-1)]; - heap32[(g0)] = r5; - free(i7); -} - heap32[(r4+19)] = 0; -} - r5 = 1; - heap32[(r4+15)] = 0; - heap8[r3+80] = r5; - heap32[(r4+19)] = 0; - r2 = (r2 + -40)|0; - heap32[(r4+17)] = 0; - heap32[(r4+18)] = 0; - if(r2 !=-80) //_LBB110_6 -{ -continue _8; -} -else{ -break _8; -} -} -} -} - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN16btDbvtBroadphaseD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV16btDbvtBroadphase; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heapU8[r0+152]; -if(!(r1 ==0)) //_LBB111_3 -{ - r1 = heap32[(r2+24)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+24)]; -if(!(r1 ==0)) //_LBB111_3 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r3 = heap32[(r2)]; - r3 = (r3 + 1)|0; - r1 = r1 >> 2; - heap32[(r2)] = r3; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - r1 = (r0 + 4)|0; -if(!(r1 ==0)) //_LBB111_15 -{ - r2 = (r1 + 80)|0; -if(!(r2 ==r1)) //_LBB111_15 -{ - r1 = (r0 + 44)|0; - r2 = 0; -_8: while(true){ - r3 = (r0 + r2)|0; - r4 = r3 >> 2; - r5 = heap32[(r4+11)]; -if(!(r5 ==0)) //_LBB111_8 -{ - r6 = (r1 + r2)|0; - heap32[(g0)] = r6; - heap32[(g0+1)] = r5; - _ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i7); -} - r5 = heap32[(r4+12)]; -if(!(r5 ==0)) //_LBB111_10 -{ - r6 = gNumAlignedFree; - r6 = r6 >> 2; - r7 = heap32[(r6)]; - r7 = (r7 + 1)|0; - r5 = r5 >> 2; - heap32[(r6)] = r7; - r5 = heap32[(r5+-1)]; - heap32[(g0)] = r5; - free(i7); -} - heap32[(r4+12)] = 0; - heap32[(r4+13)] = -1; - r5 = heap32[(r4+19)]; -if(!(r5 ==0)) //_LBB111_14 -{ - r6 = heapU8[r3+80]; -if(!(r6 ==0)) //_LBB111_13 -{ - r6 = gNumAlignedFree; - r6 = r6 >> 2; - r7 = heap32[(r6)]; - r7 = (r7 + 1)|0; - r5 = r5 >> 2; - heap32[(r6)] = r7; - r5 = heap32[(r5+-1)]; - heap32[(g0)] = r5; - free(i7); -} - heap32[(r4+19)] = 0; -} - r5 = 1; - heap32[(r4+15)] = 0; - heap8[r3+80] = r5; - heap32[(r4+19)] = 0; - r2 = (r2 + -40)|0; - heap32[(r4+17)] = 0; - heap32[(r4+18)] = 0; - if(r2 !=-80) //_LBB111_6 -{ -continue _8; -} -else{ -break _8; -} -} -} -} - return; -} - -function _ZN12btDispatcherD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV12btDispatcher; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN12btDispatcherD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV12btDispatcher; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+60]; - if(r1 !=0) //_LBB114_2 -{ - r1 = heap32[(fp+2)]; - r1 = r1 >> 2; - f0 = heapFloat[(r1)]; - r0 = r0 >> 2; - f1 = heapFloat[(r0+5)]; - if(f0 <=f1) //_LBB114_4 -{ - f1 = heapFloat[(r1+1)]; - f2 = heapFloat[(r0+6)]; - if(f1 <=f2) //_LBB114_6 -{ - f2 = heapFloat[(r1+2)]; - f3 = heapFloat[(r0+7)]; - if(f2 <=f3) //_LBB114_8 -{ - f3 = heapFloat[(r0+1)]; - if(f0 >=f3) //_LBB114_10 -{ - f4 = heapFloat[(r0+2)]; - if(f1 >=f4) //_LBB114_12 -{ - f5 = heapFloat[(r0+3)]; - if(f2 >=f5) //_LBB114_14 -{ - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+3)]; - f2 = f2-f5; - f5 = heapFloat[(r0+11)]; - f1 = f1-f4; - f4 = heapFloat[(r0+10)]; - f0 = f0-f3; - f3 = heapFloat[(r0+9)]; - f2 = f2*f5; - f1 = f1*f4; - f0 = f0*f3; - if(r2 ==0) //_LBB114_16 -{ - r0 = Math.floor(f0); - r2 = Math.floor(f1); - r0 = r0 & 65534; - r3 = Math.floor(f2); - r2 = r2 & 65534; - heap16[(r1)>>1] = r0; - r0 = r3 & 65534; -} -else{ - f3 = 1; - f0 = f0+f3; - f1 = f1+f3; - r0 = Math.floor(f0); - f0 = f2+f3; - r2 = Math.floor(f1); - r0 = r0 | 1; - r3 = Math.floor(f0); - r2 = r2 | 1; - heap16[(r1)>>1] = r0; - r0 = r3 | 1; -} - heap16[(r1+2)>>1] = r2; - heap16[(r1+4)>>1] = r0; - return; -} -else{ - r0 = _2E_str9; - r1 = _2E_str313; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 361; - _assert(i7); -} -} -else{ - r0 = _2E_str820; - r1 = _2E_str313; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 360; - _assert(i7); -} -} -else{ - r0 = _2E_str717; - r1 = _2E_str313; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 359; - _assert(i7); -} -} -else{ - r0 = _2E_str616; - r1 = _2E_str313; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 357; - _assert(i7); -} -} -else{ - r0 = _2E_str515; - r1 = _2E_str313; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 356; - _assert(i7); -} -} -else{ - r0 = _2E_str414; - r1 = _2E_str313; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 355; - _assert(i7); -} -} -else{ - r0 = _2E_str212; - r1 = _2E_str313; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 353; - _assert(i7); -} -} - -function _ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = r0 >> 2; - r3 = heap32[(r2+2)]; -if(!(r3 >=r1)) //_LBB115_16 -{ - if(r1 !=0) //_LBB115_3 -{ - r3 = gNumAlignedAllocs; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r5 = r1 << 4; - r4 = (r4 + 1)|0; - r5 = r5 | 3; - heap32[(r3)] = r4; - r3 = (r5 + 16)|0; - heap32[(g0)] = r3; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB115_5 -{ - r4 = 0; - r5 = (r3 + 4)|0; - r4 = (r4 - r5)|0; - r4 = r4 & 15; - r4 = (r3 + r4)|0; - r5 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r3; - r3 = r5; -} -} -else{ - r3 = 0; -} - r4 = heap32[(r2+1)]; - r5 = (r0 + 12)|0; - if(r4 <1) //_LBB115_8 -{ - r4 = r5 >> 2; - r7 = heap32[(r4)]; -} -else{ - r6 = 0; -_11: while(true){ - r7 = r5 >> 2; - r7 = heap32[(r7)]; - r8 = r6 << 4; - r9 = heapU16[(r7+r8)>>1]; - r10 = (r7 + r8)|0; - heap16[(r3+r8)>>1] = r9; - r8 = (r3 + r8)|0; - r9 = heapU16[(r10+2)>>1]; - heap16[(r8+2)>>1] = r9; - r9 = heapU16[(r10+4)>>1]; - heap16[(r8+4)>>1] = r9; - r9 = heapU16[(r10+6)>>1]; - heap16[(r8+6)>>1] = r9; - r9 = heapU16[(r10+8)>>1]; - heap16[(r8+8)>>1] = r9; - r9 = heapU16[(r10+10)>>1]; - r10 = r10 >> 2; - heap16[(r8+10)>>1] = r9; - r6 = (r6 + 1)|0; - r8 = r8 >> 2; - r9 = heap32[(r10+3)]; - heap32[(r8+3)] = r9; -if(!(r4 !=r6)) //_LBB115_9 -{ -break _11; -} -} - r5 = (r0 + 12)|0; -} -if(!(r7 ==0)) //_LBB115_15 -{ - r4 = heapU8[r0+16]; -if(!(r4 ==0)) //_LBB115_14 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r6 = heap32[(r4)]; - r6 = (r6 + 1)|0; - r7 = r7 >> 2; - heap32[(r4)] = r6; - r4 = heap32[(r7+-1)]; - heap32[(g0)] = r4; - free(i7); -} - r4 = r5 >> 2; - heap32[(r4)] = 0; -} - r4 = 1; - r5 = r5 >> 2; - heap8[r0+16] = r4; - heap32[(r5)] = r3; - heap32[(r2+2)] = r1; -} - return; -} - -function _ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = (r0 + 4)|0; - r_g0 = r0; - return; -} - -function _ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - heap32[(r0+6)] = r1; - return; -} - -function _ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - heap32[(r0+18)] = r1; - return; -} - -function _ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0+2)]; -if(!(r1 ==0)) //_LBB120_2 -{ - r2 = heap32[(fp+2)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = r2 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+13)]; - r3 = heap32[(r0+2)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r1)>>2](i7); - heap32[(r0+2)] = 0; -} - return; -} - -function _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - r2 = heap32[(r0+1)]; - r3 = r1 >> 2; - r4 = heap32[(r3)]; - if(r4 ==r2) //_LBB123_2 -{ -__label__ = 2; -} -else{ - r3 = heap32[(r3+1)]; - if(r3 !=r2) //_LBB123_3 -{ -__label__ = 3; -} -else{ -__label__ = 2; -} -} -if (__label__ == 2){ - r2 = heap32[(r0+2)]; - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+8)]; - r0 = heap32[(r0+3)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); -} - r0 = 0; - r_g0 = r0; - return; -} - -function _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - r0 = heap32[(r0+1)]; - r1 = r1 >> 2; - r2 = heap32[(r1)]; - if(r2 ==r0) //_LBB126_2 -{ - r0 = 1; - r_g0 = r0; - return; -} -else{ - r1 = heap32[(r1+1)]; - r0 = r1 == r0; - r0 = r0 & 1; - r_g0 = r0; - return; -} -} - -function _ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+4)]; - r_g0 = r0; - return; -} - -function _ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+4)]; - r_g0 = r0; - return; -} - -function _ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+2)]; - r_g0 = r0; - return; -} - -function _ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = 0; - r4 = r3; -_1: while(true){ - r5 = r4 << 2; -_3: while(true){ - r6 = r0 >> 2; - r7 = heap32[(r6+2)]; - if(r7 >r4) //_LBB130_1 -{ - r7 = r1 >> 2; - r7 = heap32[(r7)]; - r7 = r7 >> 2; - r8 = heap32[(r6+4)]; - r7 = heap32[(r7+2)]; - r9 = (r8 + r3)|0; - heap32[(g0)] = r1; - heap32[(g0+1)] = r9; - __FUNCTION_TABLE__[(r7)>>2](i7); - r7 = r_g0; - if(r7 ==0) //_LBB130_3 -{ -break _3; -} -else{ - r7 = r5 << 2; - r6 = heap32[(r6)]; - r7 = (r8 + r7)|0; - r7 = r7 >> 2; - r6 = r6 >> 2; - r6 = heap32[(r6+3)]; - r8 = heap32[(r7+1)]; - r7 = heap32[(r7)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r2; - r7 = gOverlappingPairs; - r7 = r7 >> 2; - __FUNCTION_TABLE__[(r6)>>2](i7); - r6 = heap32[(r7)]; - r6 = (r6 + -1)|0; - heap32[(r7)] = r6; -continue _3; -} -} -else{ -break _1; -} -} - r4 = (r4 + 1)|0; - r3 = (r3 + 16)|0; -continue _1; -} - return; -} - -function _ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback; - r1 = sp + -8; - r0 = (r0 + 8)|0; - r2 = heap32[(fp)]; - r3 = r1 >> 2; - r4 = heap32[(fp+1)]; - heap32[(fp+-2)] = r0; - r0 = r2 >> 2; - heap32[(r3+1)] = r4; - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r0 = heap32[(r0+12)]; - r3 = heap32[(fp+2)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r3; - __FUNCTION_TABLE__[(r0)>>2](i7); - return; -} - -function _ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback; - r1 = sp + -16; - r0 = (r0 + 8)|0; - r2 = r1 >> 2; - r3 = heap32[(fp+1)]; - heap32[(fp+-4)] = r0; - r0 = heap32[(fp)]; - heap32[(r2+1)] = r3; - r3 = heap32[(fp+2)]; - heap32[(r2+2)] = r0; - r4 = r0 >> 2; - heap32[(r2+3)] = r3; - r2 = heap32[(r4)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r3; - __FUNCTION_TABLE__[(r2)>>2](i7); - return; -} - -function _ZN28btHashedOverlappingPairCacheD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV28btHashedOverlappingPairCache; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+16)]; -if(!(r1 ==0)) //_LBB133_4 -{ - r3 = heapU8[r0+68]; -if(!(r3 ==0)) //_LBB133_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+16)] = 0; -} - r1 = 1; - heap8[r0+68] = r1; - heap32[(r2+16)] = 0; - heap32[(r2+14)] = 0; - heap32[(r2+15)] = 0; - r3 = heap32[(r2+11)]; -if(!(r3 ==0)) //_LBB133_8 -{ - r4 = heapU8[r0+48]; -if(!(r4 ==0)) //_LBB133_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+11)] = 0; -} - heap8[r0+48] = r1; - heap32[(r2+11)] = 0; - heap32[(r2+9)] = 0; - heap32[(r2+10)] = 0; - r3 = heap32[(r2+4)]; -if(!(r3 ==0)) //_LBB133_12 -{ - r4 = heapU8[r0+20]; -if(!(r4 ==0)) //_LBB133_11 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+4)] = 0; -} - heap8[r0+20] = r1; - heap32[(r2+4)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN28btHashedOverlappingPairCacheD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV28btHashedOverlappingPairCache; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+16)]; -if(!(r1 ==0)) //_LBB134_4 -{ - r3 = heapU8[r0+68]; -if(!(r3 ==0)) //_LBB134_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+16)] = 0; -} - r1 = 1; - heap8[r0+68] = r1; - heap32[(r2+16)] = 0; - heap32[(r2+14)] = 0; - heap32[(r2+15)] = 0; - r3 = heap32[(r2+11)]; -if(!(r3 ==0)) //_LBB134_8 -{ - r4 = heapU8[r0+48]; -if(!(r4 ==0)) //_LBB134_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+11)] = 0; -} - heap8[r0+48] = r1; - heap32[(r2+11)] = 0; - heap32[(r2+9)] = 0; - heap32[(r2+10)] = 0; - r3 = heap32[(r2+4)]; -if(!(r3 ==0)) //_LBB134_12 -{ - r4 = heapU8[r0+20]; -if(!(r4 ==0)) //_LBB134_11 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+4)] = 0; -} - heap8[r0+20] = r1; - heap32[(r2+4)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - return; -} - -function _ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = gAddedPairs; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = heap32[(fp)]; - r1 = (r1 + 1)|0; - r3 = r2 >> 2; - heap32[(r0)] = r1; - r0 = heap32[(r3+6)]; - r1 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - if(r0 ==0) //_LBB135_2 -{ - r0 = heapU16[(r4+6)>>1]; - r5 = heapU16[(r1+4)>>1]; - r0 = r0 & r5; - r0 = r0 & 65535; - if(r0 ==0) //_LBB135_25 -{ -__label__ = 23; -} -else{ - r0 = heapU16[(r1+6)>>1]; - r5 = heapU16[(r4+4)>>1]; - r0 = r0 & r5; - r0 = r0 & 65535; - r5 = 0; - r0 = r0 != r5; - r0 = r0 & 1; -__label__ = 4; -} -} -else{ - r5 = r0 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r5)>>2](i7); - r0 = r_g0; -__label__ = 4; -} -if (__label__ == 4){ - r0 = r0 & 255; -if(!(r0 ==0)) //_LBB135_25 -{ - r0 = r1 >> 2; - r5 = r4 >> 2; - r0 = heap32[(r0+3)]; - r5 = heap32[(r5+3)]; - r6 = r0 > r5 ? r1 : r4; - r0 = r0 > r5 ? r4 : r1; - r1 = r6 >> 2; - r4 = heap32[(r1+3)]; - r5 = r0 >> 2; - r7 = heap32[(r5+3)]; - r8 = r4 << 16; - r8 = r8 | r7; - r9 = r8 << 15; - r9 = r9 ^ -1; - r8 = (r8 + r9)|0; - r9 = r8 >> 10; - r8 = r9 ^ r8; - r8 = (r8 * 9)|0; - r9 = r8 >> 6; - r8 = r9 ^ r8; - r9 = r8 << 11; - r9 = r9 ^ -1; - r8 = (r8 + r9)|0; - r9 = heap32[(r3+3)]; - r10 = r8 >> 16; - r8 = r10 ^ r8; - r10 = (r9 + -1)|0; - r10 = r8 & r10; - r11 = heap32[(r3+11)]; - r12 = r10 << 2; - r11 = (r11 + r12)|0; -_8: while(true){ - r11 = r11 >> 2; - r11 = heap32[(r11)]; - if(r11 ==-1) //_LBB135_14 -{ -__label__ = 13; -break _8; -} -else{ - r12 = heap32[(r3+4)]; - r13 = r11 << 4; - r12 = (r12 + r13)|0; - r13 = r12 >> 2; - r14 = heap32[(r13)]; - r14 = r14 >> 2; - r14 = heap32[(r14+3)]; -if(!(r14 !=r7)) //_LBB135_6 -{ - r13 = heap32[(r13+1)]; - r13 = r13 >> 2; - r13 = heap32[(r13+3)]; -if(!(r13 !=r4)) //_LBB135_6 -{ -__label__ = 10; -break _8; -} -} - r12 = heap32[(r3+16)]; - r11 = r11 << 2; - r11 = (r12 + r11)|0; -} -} -_14: do { -switch(__label__ ){//multiple entries -case 13: - r4 = heap32[(r3+2)]; -__label__ = 14; -break _14; -break; -case 10: - r4 = heap32[(r3+2)]; - if(r4 >r11) //_LBB135_12 -{ - if(r12 !=0) //_LBB135_24 -{ -__label__ = 22; -} -else{ -__label__ = 14; -} -} -else{ - r0 = _2E_str222; - r1 = _2E_str323; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 250; - _assert(i7); -} -break; -} -} while(0); -if (__label__ == 14){ - r12 = (r2 + 4)|0; - heap32[(g0)] = r12; - _ZN20btAlignedObjectArrayI16btBroadphasePairE21expandNonInitializingEv(i7); - r12 = r_g0; - r7 = heap32[(r3+18)]; -if(!(r7 ==0)) //_LBB135_17 -{ - r11 = r7 >> 2; - r11 = heap32[(r11)]; - r11 = r11 >> 2; - r11 = heap32[(r11+2)]; - heap32[(g0)] = r7; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r6; - __FUNCTION_TABLE__[(r11)>>2](i7); -} - r7 = heap32[(r3+3)]; - if(r9 =r1) //_LBB135_22 -{ - r1 = r12 >> 2; - heap32[(r1)] = r6; - heap32[(r1+1)] = r0; -} -else{ - r1 = r12 >> 2; - heap32[(r1)] = r0; - heap32[(r1+1)] = r6; -} - r0 = r12 >> 2; - heap32[(r0+2)] = 0; - heap32[(r0+3)] = 0; - r0 = r10 << 2; - r1 = heap32[(r3+11)]; - r1 = (r1 + r0)|0; - r1 = r1 >> 2; - r2 = r4 << 2; - r5 = heap32[(r3+16)]; - r2 = (r5 + r2)|0; - r1 = heap32[(r1)]; - r2 = r2 >> 2; - heap32[(r2)] = r1; - r1 = heap32[(r3+11)]; - r0 = (r1 + r0)|0; - r0 = r0 >> 2; - heap32[(r0)] = r4; -} - r_g0 = r12; - return; -} -} - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = gRemovePairs; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+1)]; - r1 = (r1 + 1)|0; - r4 = r3 >> 2; - heap32[(r0)] = r1; - r0 = r2 >> 2; - r1 = heap32[(r4+3)]; - r0 = heap32[(r0+3)]; - r4 = r1 > r0 ? r3 : r2; - r0 = r1 > r0 ? r2 : r3; - r1 = r4 >> 2; - r1 = heap32[(r1+3)]; - r2 = r0 >> 2; - r2 = heap32[(r2+3)]; - r3 = r1 << 16; - r3 = r3 | r2; - r5 = r3 << 15; - r5 = r5 ^ -1; - r3 = (r3 + r5)|0; - r5 = r3 >> 10; - r3 = r5 ^ r3; - r3 = (r3 * 9)|0; - r5 = r3 >> 6; - r3 = r5 ^ r3; - r5 = r3 << 11; - r6 = heap32[(fp)]; - r5 = r5 ^ -1; - r7 = r6 >> 2; - r3 = (r3 + r5)|0; - r5 = r3 >> 16; - r8 = heap32[(r7+3)]; - r3 = r5 ^ r3; - r5 = (r8 + -1)|0; - r3 = r3 & r5; - r5 = heap32[(r7+11)]; - r3 = r3 << 2; - r8 = heap32[(fp+3)]; - r5 = (r5 + r3)|0; -_1: while(true){ - r5 = r5 >> 2; - r5 = heap32[(r5)]; - if(r5 ==-1) //_LBB136_35 -{ -__label__ = 33; -break _1; -} -else{ - r9 = heap32[(r7+4)]; - r10 = r5 << 4; - r9 = (r9 + r10)|0; - r10 = r9 >> 2; - r11 = heap32[(r10)]; - r11 = r11 >> 2; - r11 = heap32[(r11+3)]; -if(!(r11 !=r2)) //_LBB136_1 -{ - r11 = heap32[(r10+1)]; - r11 = r11 >> 2; - r11 = heap32[(r11+3)]; -if(!(r11 !=r1)) //_LBB136_1 -{ -__label__ = 5; -break _1; -} -} - r9 = heap32[(r7+16)]; - r5 = r5 << 2; - r5 = (r9 + r5)|0; -continue _1; -} -} -if (__label__ == 5){ - r11 = heap32[(r7+2)]; - if(r11 >r5) //_LBB136_7 -{ -if(!(r9 ==0)) //_LBB136_35 -{ - r5 = heap32[(r7)]; - r5 = r5 >> 2; - r5 = heap32[(r5+8)]; - heap32[(g0)] = r6; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - __FUNCTION_TABLE__[(r5)>>2](i7); - r5 = heap32[(r10)]; - r5 = r5 >> 2; - r5 = heap32[(r5+3)]; - if(r5 ==r2) //_LBB136_10 -{ - r2 = heap32[(r10+1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+3)]; - if(r2 ==r1) //_LBB136_12 -{ - r1 = heap32[(r7+4)]; - r1 = (r9 - r1)|0; - r1 = r1 >> 4; - r2 = heap32[(r7+2)]; - if(r2 >r1) //_LBB136_14 -{ - r2 = heap32[(r7+11)]; - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - r3 = heap32[(r2)]; - if(r3 ==-1) //_LBB136_17 -{ - r0 = _2E_str727; - r1 = _2E_str121; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 304; - _assert(i7); -} -else{ - r5 = heap32[(r10+3)]; - r6 = heap32[(r7+16)]; - if(r3 ==r1) //_LBB136_21 -{ -__label__ = 20; -} -else{ -_22: while(true){ - r9 = r3; - r3 = r9 << 2; - r3 = (r6 + r3)|0; - r10 = r3 >> 2; - r3 = heap32[(r10)]; -if(!(r3 !=r1)) //_LBB136_18 -{ -break _22; -} -} - if(r9 ==-1) //_LBB136_21 -{ -__label__ = 20; -} -else{ - r2 = r1 << 2; - r2 = (r6 + r2)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - heap32[(r10)] = r2; -__label__ = 21; -} -} -if (__label__ == 20){ - r3 = r1 << 2; - r3 = (r6 + r3)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(r2)] = r3; -} - r2 = heap32[(r7+2)]; - r3 = heap32[(r7+18)]; -if(!(r3 ==0)) //_LBB136_24 -{ - r6 = r3 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+3)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r8; - __FUNCTION_TABLE__[(r6)>>2](i7); -} - r0 = (r2 + -1)|0; - if(r0 !=r1) //_LBB136_26 -{ - r3 = heap32[(r7+4)]; - r4 = r2 << 4; - r3 = (r3 + r4)|0; - r3 = r3 >> 2; - r6 = heap32[(r3+-3)]; - r3 = heap32[(r3+-4)]; - r6 = r6 >> 2; - r3 = r3 >> 2; - r6 = heap32[(r6+3)]; - r3 = heap32[(r3+3)]; - r6 = r6 << 16; - r3 = r3 | r6; - r6 = r3 << 15; - r6 = r6 ^ -1; - r3 = (r3 + r6)|0; - r6 = r3 >> 10; - r3 = r6 ^ r3; - r3 = (r3 * 9)|0; - r6 = r3 >> 6; - r3 = r6 ^ r3; - r6 = r3 << 11; - r6 = r6 ^ -1; - r3 = (r3 + r6)|0; - r6 = r3 >> 16; - r8 = heap32[(r7+3)]; - r3 = r6 ^ r3; - r6 = (r8 + -1)|0; - r3 = r3 & r6; - r6 = heap32[(r7+11)]; - r3 = r3 << 2; - r6 = (r6 + r3)|0; - r6 = r6 >> 2; - r8 = heap32[(r6)]; - if(r8 ==-1) //_LBB136_29 -{ - r0 = _2E_str727; - r1 = _2E_str121; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 345; - _assert(i7); -} -else{ - r9 = heap32[(r7+16)]; - if(r8 ==r0) //_LBB136_33 -{ -__label__ = 31; -} -else{ -_38: while(true){ - r10 = r8; - r8 = r10 << 2; - r8 = (r9 + r8)|0; - r11 = r8 >> 2; - r8 = heap32[(r11)]; -if(!(r8 !=r0)) //_LBB136_30 -{ -break _38; -} -} - if(r10 ==-1) //_LBB136_33 -{ -__label__ = 31; -} -else{ - r2 = r2 << 2; - r2 = (r9 + r2)|0; - r2 = r2 >> 2; - r2 = heap32[(r2+-1)]; - heap32[(r11)] = r2; -__label__ = 32; -} -} -if (__label__ == 31){ - r0 = r2 << 2; - r0 = (r9 + r0)|0; - r0 = r0 >> 2; - r0 = heap32[(r0+-1)]; - heap32[(r6)] = r0; -} - r0 = heap32[(r7+4)]; - r2 = (r0 + r4)|0; - r4 = r1 << 4; - r2 = r2 >> 2; - r0 = (r0 + r4)|0; - r4 = heap32[(r2+-4)]; - r0 = r0 >> 2; - heap32[(r0)] = r4; - r4 = heap32[(r2+-3)]; - heap32[(r0+1)] = r4; - r4 = heap32[(r2+-2)]; - heap32[(r0+2)] = r4; - r2 = heap32[(r2+-1)]; - heap32[(r0+3)] = r2; - r0 = heap32[(r7+11)]; - r0 = (r0 + r3)|0; - r0 = r0 >> 2; - r2 = r1 << 2; - r4 = heap32[(r7+16)]; - r2 = (r4 + r2)|0; - r0 = heap32[(r0)]; - r2 = r2 >> 2; - heap32[(r2)] = r0; - r0 = heap32[(r7+11)]; - r0 = (r0 + r3)|0; - r0 = r0 >> 2; - heap32[(r0)] = r1; -} -} - r0 = heap32[(r7+2)]; - r0 = (r0 + -1)|0; - heap32[(r7+2)] = r0; - r_g0 = r5; - return; -} -} -else{ - r0 = _2E_str626; - r1 = _2E_str121; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 300; - _assert(i7); -} -} -else{ - r0 = _2E_str525; - r3 = _2E_str121; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = 297; - _assert(i7); -} -} -else{ - r0 = _2E_str424; - r1 = _2E_str121; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 296; - _assert(i7); -} -} -} -else{ - r0 = _2E_str222; - r1 = _2E_str323; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 250; - _assert(i7); -} -} - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = gFindPairs; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r1 = (r1 + 1)|0; - r4 = r2 >> 2; - heap32[(r0)] = r1; - r0 = r3 >> 2; - r1 = heap32[(r4+3)]; - r0 = heap32[(r0+3)]; - r4 = r1 > r0 ? r2 : r3; - r0 = r1 > r0 ? r3 : r2; - r1 = r4 >> 2; - r1 = heap32[(r1+3)]; - r0 = r0 >> 2; - r0 = heap32[(r0+3)]; - r2 = r1 << 16; - r2 = r2 | r0; - r3 = r2 << 15; - r3 = r3 ^ -1; - r2 = (r2 + r3)|0; - r3 = r2 >> 10; - r2 = r3 ^ r2; - r2 = (r2 * 9)|0; - r3 = r2 >> 6; - r2 = r3 ^ r2; - r3 = r2 << 11; - r4 = heap32[(fp)]; - r3 = r3 ^ -1; - r4 = r4 >> 2; - r2 = (r2 + r3)|0; - r3 = r2 >> 16; - r5 = heap32[(r4+3)]; - r2 = r3 ^ r2; - r3 = (r5 + -1)|0; - r2 = r2 & r3; - r3 = heap32[(r4+9)]; -_1: do { -if(!(r3 <=r2)) //_LBB137_9 -{ - r3 = heap32[(r4+11)]; - r2 = r2 << 2; - r2 = (r3 + r2)|0; -_3: while(true){ - r2 = r2 >> 2; - r2 = heap32[(r2)]; - if(r2 ==-1) //_LBB137_9 -{ -break _1; -} -else{ - r3 = heap32[(r4+4)]; - r5 = r2 << 4; - r3 = (r3 + r5)|0; - r5 = r3 >> 2; - r6 = heap32[(r5)]; - r6 = r6 >> 2; - r6 = heap32[(r6+3)]; -if(!(r6 !=r0)) //_LBB137_2 -{ - r5 = heap32[(r5+1)]; - r5 = r5 >> 2; - r5 = heap32[(r5+3)]; -if(!(r5 !=r1)) //_LBB137_2 -{ -break _3; -} -} - r3 = heap32[(r4+16)]; - r2 = r2 << 2; - r2 = (r3 + r2)|0; -} -} - r0 = heap32[(r4+2)]; - if(r0 >r2) //_LBB137_8 -{ - r_g0 = r3; - return; -} -else{ - r3 = _2E_str222; - r0 = _2E_str121; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 165; - _assert(i7); -} -} -} while(0); - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = sp + -24; - r1 = 1; - r2 = r0 >> 2; - heap8[sp+-8] = r1; - heap32[(r2+3)] = 0; - r3 = heap32[(fp)]; - heap32[(r2+1)] = 0; - r4 = r3 >> 2; - heap32[(r2+2)] = 0; - r5 = heap32[(r4+2)]; -_1: do { - if(r5 >0) //_LBB138_2 -{ - r6 = heap32[(fp+1)]; - r7 = 0; - r5 = r7; -_3: while(true){ - r8 = heap32[(r4+4)]; - if(r7 ==r5) //_LBB138_5 -{ - r9 = 1; - r10 = r5 << 1; - r10 = r5 == 0 ? r9 : r10; -if(!(r7 >=r10)) //_LBB138_4 -{ - if(r10 !=0) //_LBB138_8 -{ - r7 = gNumAlignedAllocs; - r7 = r7 >> 2; - r11 = heap32[(r7)]; - r12 = r10 << 4; - r11 = (r11 + 1)|0; - r12 = r12 | 3; - heap32[(r7)] = r11; - r7 = (r12 + 16)|0; - heap32[(g0)] = r7; - malloc(i7); - r7 = r_g0; - if(r7 !=0) //_LBB138_10 -{ - r11 = 0; - r12 = (r7 + 4)|0; - r11 = (r11 - r12)|0; - r11 = r11 & 15; - r11 = (r7 + r11)|0; - r12 = (r11 + 4)|0; - r11 = r11 >> 2; - heap32[(r11)] = r7; - r7 = r12; -} -} -else{ - r7 = 0; -} - if(r5 <1) //_LBB138_13 -{ - r13 = heap32[(r2+3)]; -} -else{ - r11 = 0; - r12 = (r11 - r5)|0; -_16: while(true){ - r13 = heap32[(r2+3)]; - r14 = r11 << 4; - r15 = (r13 - r14)|0; - r15 = r15 >> 2; - r14 = (r7 - r14)|0; - r16 = heap32[(r15)]; - r14 = r14 >> 2; - heap32[(r14)] = r16; - r16 = heap32[(r15+1)]; - heap32[(r14+1)] = r16; - r16 = heap32[(r15+2)]; - heap32[(r14+2)] = r16; - r15 = heap32[(r15+3)]; - r11 = (r11 + -1)|0; - heap32[(r14+3)] = r15; -if(!(r12 !=r11)) //_LBB138_14 -{ -break _16; -} -} -} - if(r13 !=0) //_LBB138_17 -{ - r11 = heapU8[sp+-8]; - if(r11 !=0) //_LBB138_19 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r11 = heap32[(r5)]; - r11 = (r11 + 1)|0; - r12 = r13 >> 2; - heap32[(r5)] = r11; - r5 = heap32[(r12+-1)]; - heap32[(g0)] = r5; - free(i7); - r5 = heap32[(r2+1)]; -} - heap32[(r2+3)] = 0; -} - heap8[sp+-8] = r9; - heap32[(r2+3)] = r7; - heap32[(r2+2)] = r10; -} -} - r7 = r1 << 4; - r7 = (r8 + r7)|0; - r7 = r7 >> 2; - r5 = r5 << 4; - r8 = heap32[(r2+3)]; - r5 = (r8 + r5)|0; - r8 = heap32[(r7+-4)]; - r5 = r5 >> 2; - heap32[(r5)] = r8; - r8 = heap32[(r7+-3)]; - heap32[(r5+1)] = r8; - r8 = heap32[(r7+-2)]; - heap32[(r5+2)] = r8; - r7 = heap32[(r7+-1)]; - heap32[(r5+3)] = r7; - r5 = heap32[(r2+1)]; - r5 = (r5 + 1)|0; - heap32[(r2+1)] = r5; - r7 = heap32[(r4+2)]; - if(r7 <=r1) //_LBB138_24 -{ -break _3; -} -else{ - r7 = heap32[(r2+2)]; - r1 = (r1 + 1)|0; -} -} - if(r5 >0) //_LBB138_26 -{ - r1 = 0; -_29: while(true){ - r5 = heap32[(r2+3)]; - r7 = r1 << 4; - r8 = heap32[(r4)]; - r5 = (r5 + r7)|0; - r5 = r5 >> 2; - r7 = r8 >> 2; - r7 = heap32[(r7+3)]; - r8 = heap32[(r5+1)]; - r5 = heap32[(r5)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r7)>>2](i7); - r5 = heap32[(r2+1)]; - r1 = (r1 + 1)|0; - if(r5 >r1) //_LBB138_27 -{ -continue _29; -} -else{ -break _1; -} -} -} -} -else{ - r5 = 0; -} -} while(0); - r1 = heap32[(r4+14)]; - if(r1 >0) //_LBB138_30 -{ - r5 = 0; -_35: while(true){ - r1 = r5 << 2; - r6 = heap32[(r4+16)]; - r1 = (r6 + r1)|0; - r5 = (r5 + 1)|0; - r1 = r1 >> 2; - heap32[(r1)] = -1; - r1 = heap32[(r4+14)]; -if(!(r1 >r5)) //_LBB138_31 -{ -break _35; -} -} - r5 = heap32[(r2+1)]; -} - if(r5 >1) //_LBB138_35 -{ - r5 = (r5 + -1)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r5; - _ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i7); - r5 = heap32[(r2+1)]; -} -_42: do { -if(!(r5 <1)) //_LBB138_39 -{ - r0 = 0; -_44: while(true){ - r1 = heap32[(r2+3)]; - r5 = r0 << 4; - r6 = heap32[(r4)]; - r1 = (r1 + r5)|0; - r1 = r1 >> 2; - r5 = r6 >> 2; - r5 = heap32[(r5+2)]; - r6 = heap32[(r1+1)]; - r1 = heap32[(r1)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r6; - r0 = (r0 + 1)|0; - __FUNCTION_TABLE__[(r5)>>2](i7); - r1 = heap32[(r2+1)]; - if(r1 >r0) //_LBB138_38 -{ -continue _44; -} -else{ -break _42; -} -} -} -} while(0); - r0 = heap32[(r2+3)]; -if(!(r0 ==0)) //_LBB138_42 -{ - r1 = heapU8[sp+-8]; -if(!(r1 ==0)) //_LBB138_42 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r2 = heap32[(r1)]; - r2 = (r2 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r2; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} -} - return; -} - -function _ZN20btAlignedObjectArrayI16btBroadphasePairE21expandNonInitializingEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+2)]; - r3 = heap32[(r1+1)]; - if(r2 ==r3) //_LBB139_2 -{ - r4 = 1; - r5 = r3 << 1; - r5 = r3 == 0 ? r4 : r5; - if(r2 >=r5) //_LBB139_1 -{ -__label__ = 1; -} -else{ - if(r5 !=0) //_LBB139_5 -{ - r2 = gNumAlignedAllocs; - r2 = r2 >> 2; - r6 = heap32[(r2)]; - r7 = r5 << 4; - r6 = (r6 + 1)|0; - r7 = r7 | 3; - heap32[(r2)] = r6; - r2 = (r7 + 16)|0; - heap32[(g0)] = r2; - malloc(i7); - r6 = r_g0; - if(r6 !=0) //_LBB139_7 -{ - r2 = 0; - r7 = (r6 + 4)|0; - r2 = (r2 - r7)|0; - r2 = r2 & 15; - r2 = (r6 + r2)|0; - r7 = (r2 + 4)|0; - r2 = r2 >> 2; - heap32[(r2)] = r6; - r6 = r7; -} -} -else{ - r6 = 0; -} - r7 = (r0 + 12)|0; - if(r3 <1) //_LBB139_10 -{ - r2 = r7 >> 2; - r9 = heap32[(r2)]; -} -else{ - r2 = 0; - r8 = (r2 - r3)|0; -_12: while(true){ - r9 = r7 >> 2; - r9 = heap32[(r9)]; - r10 = r2 << 4; - r11 = (r9 - r10)|0; - r11 = r11 >> 2; - r10 = (r6 - r10)|0; - r12 = heap32[(r11)]; - r10 = r10 >> 2; - heap32[(r10)] = r12; - r12 = heap32[(r11+1)]; - heap32[(r10+1)] = r12; - r12 = heap32[(r11+2)]; - heap32[(r10+2)] = r12; - r11 = heap32[(r11+3)]; - r2 = (r2 + -1)|0; - heap32[(r10+3)] = r11; -if(!(r8 !=r2)) //_LBB139_11 -{ -break _12; -} -} - r7 = (r0 + 12)|0; -} - if(r9 !=0) //_LBB139_15 -{ - r2 = heapU8[r0+16]; - if(r2 !=0) //_LBB139_17 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r8 = heap32[(r2)]; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r2)] = r8; - r2 = heap32[(r9+-1)]; - heap32[(g0)] = r2; - free(i7); - r2 = heap32[(r1+1)]; -} -else{ - r2 = r3; -} - r8 = r7 >> 2; - heap32[(r8)] = 0; -} -else{ - r2 = r3; -} - r7 = r7 >> 2; - heap8[r0+16] = r4; - heap32[(r7)] = r6; - heap32[(r1+2)] = r5; -__label__ = 19; -} -} -else{ -__label__ = 1; -} -if (__label__ == 1){ - r2 = r3; -} - r0 = (r2 + 1)|0; - heap32[(r1+1)] = r0; - r0 = heap32[(r1+3)]; - r1 = r3 << 4; - r0 = (r0 + r1)|0; - r_g0 = r0; - return; -} - -function _ZN28btHashedOverlappingPairCache10growTablesEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+9)]; - r3 = heap32[(r1+3)]; -_1: do { -if(!(r2 >=r3)) //_LBB140_48 -{ -_3: do { -if(!(r2 >r3)) //_LBB140_20 -{ - r4 = heap32[(r1+10)]; -if(!(r4 >=r3)) //_LBB140_18 -{ - if(r3 !=0) //_LBB140_5 -{ - r4 = gNumAlignedAllocs; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r6 = r3 << 2; - r5 = (r5 + 1)|0; - r6 = r6 | 3; - heap32[(r4)] = r5; - r4 = (r6 + 16)|0; - heap32[(g0)] = r4; - malloc(i7); - r4 = r_g0; - if(r4 !=0) //_LBB140_7 -{ - r5 = 0; - r6 = (r4 + 4)|0; - r5 = (r5 - r6)|0; - r5 = r5 & 15; - r5 = (r4 + r5)|0; - r6 = (r5 + 4)|0; - r5 = r5 >> 2; - heap32[(r5)] = r4; - r4 = r6; -} -} -else{ - r4 = 0; -} - r5 = (r0 + 44)|0; - if(r2 <1) //_LBB140_10 -{ - r6 = r5 >> 2; - r7 = heap32[(r6)]; -} -else{ - r6 = 0; -_15: while(true){ - r7 = r5 >> 2; - r7 = heap32[(r7)]; - r8 = r6 << 2; - r9 = (r7 + r8)|0; - r9 = r9 >> 2; - r8 = (r4 + r8)|0; - r9 = heap32[(r9)]; - r6 = (r6 + 1)|0; - r8 = r8 >> 2; - heap32[(r8)] = r9; -if(!(r2 !=r6)) //_LBB140_11 -{ -break _15; -} -} - r5 = (r0 + 44)|0; -} -if(!(r7 ==0)) //_LBB140_17 -{ - r6 = heapU8[r0+48]; -if(!(r6 ==0)) //_LBB140_16 -{ - r6 = gNumAlignedFree; - r6 = r6 >> 2; - r8 = heap32[(r6)]; - r8 = (r8 + 1)|0; - r7 = r7 >> 2; - heap32[(r6)] = r8; - r6 = heap32[(r7+-1)]; - heap32[(g0)] = r6; - free(i7); -} - r6 = r5 >> 2; - heap32[(r6)] = 0; -} - r6 = 1; - r5 = r5 >> 2; - heap8[r0+48] = r6; - heap32[(r5)] = r4; - heap32[(r1+10)] = r3; -} - r4 = r2; -_26: while(true){ - r5 = r4 << 2; - r6 = heap32[(r1+11)]; - r5 = (r6 + r5)|0; - r4 = (r4 + 1)|0; - r5 = r5 >> 2; - heap32[(r5)] = 0; -if(!(r3 !=r4)) //_LBB140_19 -{ -break _3; -} -} -} -} while(0); - heap32[(r1+9)] = r3; - r4 = heap32[(r1+14)]; -_29: do { -if(!(r4 >r3)) //_LBB140_39 -{ -if(!(r4 >=r3)) //_LBB140_39 -{ - r5 = heap32[(r1+15)]; -if(!(r5 >=r3)) //_LBB140_38 -{ - if(r3 !=0) //_LBB140_25 -{ - r5 = gNumAlignedAllocs; - r5 = r5 >> 2; - r6 = heap32[(r5)]; - r7 = r3 << 2; - r6 = (r6 + 1)|0; - r7 = r7 | 3; - heap32[(r5)] = r6; - r5 = (r7 + 16)|0; - heap32[(g0)] = r5; - malloc(i7); - r5 = r_g0; - if(r5 !=0) //_LBB140_27 -{ - r6 = 0; - r7 = (r5 + 4)|0; - r6 = (r6 - r7)|0; - r6 = r6 & 15; - r6 = (r5 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r5; - r5 = r7; -} -} -else{ - r5 = 0; -} - r6 = (r0 + 64)|0; - if(r4 <1) //_LBB140_30 -{ - r7 = r6 >> 2; - r8 = heap32[(r7)]; -} -else{ - r7 = 0; -_42: while(true){ - r8 = r6 >> 2; - r8 = heap32[(r8)]; - r9 = r7 << 2; - r10 = (r8 + r9)|0; - r10 = r10 >> 2; - r9 = (r5 + r9)|0; - r10 = heap32[(r10)]; - r7 = (r7 + 1)|0; - r9 = r9 >> 2; - heap32[(r9)] = r10; -if(!(r4 !=r7)) //_LBB140_31 -{ -break _42; -} -} - r6 = (r0 + 64)|0; -} -if(!(r8 ==0)) //_LBB140_37 -{ - r7 = heapU8[r0+68]; -if(!(r7 ==0)) //_LBB140_36 -{ - r7 = gNumAlignedFree; - r7 = r7 >> 2; - r9 = heap32[(r7)]; - r9 = (r9 + 1)|0; - r8 = r8 >> 2; - heap32[(r7)] = r9; - r7 = heap32[(r8+-1)]; - heap32[(g0)] = r7; - free(i7); -} - r7 = r6 >> 2; - heap32[(r7)] = 0; -} - r7 = 1; - r6 = r6 >> 2; - heap8[r0+68] = r7; - heap32[(r6)] = r5; - heap32[(r1+15)] = r3; - if(r4 >=r3) //_LBB140_39 -{ -break _29; -} -} -_52: while(true){ - r0 = r4 << 2; - r5 = heap32[(r1+16)]; - r0 = (r5 + r0)|0; - r4 = (r4 + 1)|0; - r0 = r0 >> 2; - heap32[(r0)] = 0; -if(!(r3 !=r4)) //_LBB140_38 -{ -break _29; -} -} -} -} -} while(0); - heap32[(r1+14)] = r3; -_55: do { -if(!(r3 <1)) //_LBB140_45 -{ - r0 = 0; -_57: while(true){ - r4 = r0 << 2; - r5 = heap32[(r1+11)]; - r4 = (r5 + r4)|0; - r0 = (r0 + 1)|0; - r4 = r4 >> 2; - heap32[(r4)] = -1; -if(!(r3 !=r0)) //_LBB140_41 -{ -break _57; -} -} -if(!(r3 <1)) //_LBB140_45 -{ - r0 = 0; -_61: while(true){ - r4 = r0 << 2; - r5 = heap32[(r1+16)]; - r4 = (r5 + r4)|0; - r0 = (r0 + 1)|0; - r4 = r4 >> 2; - heap32[(r4)] = -1; -if(!(r3 !=r0)) //_LBB140_44 -{ -break _55; -} -} -} -} -} while(0); -if(!(r2 <1)) //_LBB140_48 -{ - r0 = 0; -_65: while(true){ - r3 = heap32[(r1+4)]; - r4 = r0 << 4; - r3 = (r3 + r4)|0; - r3 = r3 >> 2; - r4 = heap32[(r3+1)]; - r3 = heap32[(r3)]; - r4 = r4 >> 2; - r3 = r3 >> 2; - r4 = heap32[(r4+3)]; - r4 = r4 << 16; - r3 = heap32[(r3+3)]; - r3 = r4 | r3; - r4 = r3 << 15; - r4 = r4 ^ -1; - r3 = (r3 + r4)|0; - r4 = r3 >> 10; - r3 = r4 ^ r3; - r3 = (r3 * 9)|0; - r4 = r3 >> 6; - r3 = r4 ^ r3; - r4 = r3 << 11; - r4 = r4 ^ -1; - r3 = (r3 + r4)|0; - r4 = r3 >> 16; - r5 = heap32[(r1+3)]; - r3 = r4 ^ r3; - r4 = (r5 + -1)|0; - r3 = r3 & r4; - r3 = r3 << 2; - r4 = heap32[(r1+11)]; - r4 = (r4 + r3)|0; - r4 = r4 >> 2; - r5 = r0 << 2; - r6 = heap32[(r1+16)]; - r5 = (r6 + r5)|0; - r4 = heap32[(r4)]; - r5 = r5 >> 2; - heap32[(r5)] = r4; - r4 = heap32[(r1+11)]; - r3 = (r4 + r3)|0; - r4 = (r0 + 1)|0; - r3 = r3 >> 2; - heap32[(r3)] = r0; - r0 = r4; - if(r2 !=r4) //_LBB140_47 -{ -continue _65; -} -else{ -break _1; -} -} -} -} -} while(0); - return; -} - -function _ZN28btHashedOverlappingPairCacheC1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV28btHashedOverlappingPairCache; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - r3 = 1; - heap32[(r2)] = r1; - heap8[r0+20] = r3; - heap32[(r2+4)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - r1 = 0; - heap32[(r2+6)] = 0; - heap8[r0+28] = r1; - heap8[r0+48] = r3; - heap32[(r2+11)] = 0; - heap32[(r2+9)] = 0; - heap32[(r2+10)] = 0; - heap8[r0+68] = r3; - heap32[(r2+16)] = 0; - heap32[(r2+14)] = 0; - r4 = gNumAlignedAllocs; - heap32[(r2+15)] = 0; - r4 = r4 >> 2; - heap32[(r2+18)] = 0; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - heap32[(r4)] = r5; - heap32[(g0)] = 51; - malloc(i7); - r4 = r_g0; - if(r4 !=0) //_LBB141_2 -{ - r5 = (r4 + 4)|0; - r1 = (r1 - r5)|0; - r1 = r1 & 15; - r1 = (r4 + r1)|0; - r5 = (r1 + 4)|0; - r1 = r1 >> 2; - heap32[(r1)] = r4; - r4 = r5; -} - heap8[r0+20] = r3; - heap32[(r2+4)] = r4; - heap32[(r2+3)] = 2; - heap32[(g0)] = r0; - _ZN28btHashedOverlappingPairCache10growTablesEv(i7); - return; -} - -function _ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 84; - r_g0 = r0; - return; -} - -function _ZNK14btQuantizedBvh9serializeEPvP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r0 = r0 >> 2; - r2 = r1 >> 2; - heap32[(r0+4)] = heap32[(r2+5)]; - heap32[(r0+5)] = heap32[(r2+6)]; - heap32[(r0+6)] = heap32[(r2+7)]; - heap32[(r0+7)] = heap32[(r2+8)]; - heap32[(r0)] = heap32[(r2+1)]; - heap32[(r0+1)] = heap32[(r2+2)]; - heap32[(r0+2)] = heap32[(r2+3)]; - heap32[(r0+3)] = heap32[(r2+4)]; - heap32[(r0+8)] = heap32[(r2+9)]; - heap32[(r0+9)] = heap32[(r2+10)]; - heap32[(r0+10)] = heap32[(r2+11)]; - heap32[(r0+11)] = heap32[(r2+12)]; - r3 = heap32[(r2+14)]; - heap32[(r0+12)] = r3; - r1 = heapU8[r1+60]; - heap32[(r0+13)] = r1; - r1 = heap32[(r2+22)]; - r3 = heap32[(fp+2)]; - heap32[(r0+14)] = r1; - r1 = heap32[(r2+22)]; - if(r1 !=0) //_LBB143_2 -{ - r1 = r3 >> 2; - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+7)]; - r5 = heap32[(r2+24)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r_g0; - heap32[(r0+16)] = r4; -if(!(r4 ==0)) //_LBB143_7 -{ - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r5 = heap32[(r2+22)]; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = 48; - heap32[(g0+2)] = r5; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r_g0; -if(!(r5 <1)) //_LBB143_6 -{ - r6 = r4 >> 2; - r7 = 0; - r6 = heap32[(r6+2)]; - r5 = (r7 - r5)|0; -_6: while(true){ - r8 = (r7 * -12)|0; - r8 = r8 << 2; - r9 = r7 << 6; - r10 = heap32[(r2+24)]; - r8 = (r6 + r8)|0; - r10 = (r10 - r9)|0; - r8 = r8 >> 2; - r10 = r10 >> 2; - heap32[(r8+4)] = heap32[(r10+4)]; - heap32[(r8+5)] = heap32[(r10+5)]; - heap32[(r8+6)] = heap32[(r10+6)]; - heap32[(r8+7)] = heap32[(r10+7)]; - r10 = heap32[(r2+24)]; - r10 = (r10 - r9)|0; - r10 = r10 >> 2; - heap32[(r8)] = heap32[(r10)]; - heap32[(r8+1)] = heap32[(r10+1)]; - heap32[(r8+2)] = heap32[(r10+2)]; - heap32[(r8+3)] = heap32[(r10+3)]; - r10 = heap32[(r2+24)]; - r10 = (r10 - r9)|0; - r10 = r10 >> 2; - r10 = heap32[(r10+8)]; - heap32[(r8+8)] = r10; - r10 = heap32[(r2+24)]; - r10 = (r10 - r9)|0; - r10 = r10 >> 2; - r10 = heap32[(r10+9)]; - heap32[(r8+9)] = r10; - r10 = heap32[(r2+24)]; - r9 = (r10 - r9)|0; - r9 = r9 >> 2; - r9 = heap32[(r9+10)]; - r7 = (r7 + -1)|0; - heap32[(r8+10)] = r9; -if(!(r5 !=r7)) //_LBB143_5 -{ -break _6; -} -} -} - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - r5 = heap32[(r2+24)]; - r6 = _2E_str32; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = 1497453121; - heap32[(g0+4)] = r5; - __FUNCTION_TABLE__[(r1)>>2](i7); -} -} -else{ - heap32[(r0+16)] = 0; -} - r1 = heap32[(r2+32)]; - heap32[(r0+15)] = r1; - r1 = heap32[(r2+32)]; - if(r1 !=0) //_LBB143_9 -{ - r1 = r3 >> 2; - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+7)]; - r5 = heap32[(r2+34)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r_g0; - heap32[(r0+17)] = r4; -if(!(r4 ==0)) //_LBB143_14 -{ - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r5 = heap32[(r2+32)]; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = 16; - heap32[(g0+2)] = r5; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r_g0; -_14: do { -if(!(r5 <1)) //_LBB143_13 -{ - r6 = r4 >> 2; - r7 = 0; - r6 = heap32[(r6+2)]; - r5 = (r7 - r5)|0; -_16: while(true){ - r8 = r7 << 4; - r9 = heap32[(r2+34)]; - r9 = (r9 - r8)|0; - r9 = r9 >> 2; - r10 = (r6 - r8)|0; - r9 = heap32[(r9+3)]; - r11 = r10 >> 2; - heap32[(r11+3)] = r9; - r9 = heap32[(r2+34)]; - r9 = (r9 - r8)|0; - r9 = heapU16[(r9+6)>>1]; - heap16[(r10+6)>>1] = r9; - r9 = heap32[(r2+34)]; - r9 = (r9 - r8)|0; - r9 = heapU16[(r9+8)>>1]; - heap16[(r10+8)>>1] = r9; - r9 = heap32[(r2+34)]; - r9 = (r9 - r8)|0; - r9 = heapU16[(r9+10)>>1]; - heap16[(r10+10)>>1] = r9; - r9 = heap32[(r2+34)]; - r9 = (r9 - r8)|0; - r9 = heapU16[(r9)>>1]; - heap16[(r10)>>1] = r9; - r9 = heap32[(r2+34)]; - r9 = (r9 - r8)|0; - r9 = heapU16[(r9+2)>>1]; - heap16[(r10+2)>>1] = r9; - r9 = heap32[(r2+34)]; - r8 = (r9 - r8)|0; - r8 = heapU16[(r8+4)>>1]; - r7 = (r7 + -1)|0; - heap16[(r10+4)>>1] = r8; -if(!(r5 !=r7)) //_LBB143_12 -{ -break _14; -} -} -} -} while(0); - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - r5 = heap32[(r2+34)]; - r6 = _2E_str133; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = 1497453121; - heap32[(g0+4)] = r5; - __FUNCTION_TABLE__[(r1)>>2](i7); -} -} -else{ - heap32[(r0+17)] = 0; -} - r1 = heap32[(r2+36)]; - heap32[(r0+19)] = r1; - r1 = heap32[(r2+38)]; - heap32[(r0+20)] = r1; - r1 = heap32[(r2+38)]; - if(r1 !=0) //_LBB143_16 -{ - r1 = r3 >> 2; - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+7)]; - r5 = heap32[(r2+40)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r_g0; - heap32[(r0+18)] = r4; -if(!(r4 ==0)) //_LBB143_21 -{ - r0 = heap32[(r1)]; - r0 = r0 >> 2; - r4 = heap32[(r2+38)]; - r0 = heap32[(r0+4)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = 20; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r0)>>2](i7); - r0 = r_g0; -_24: do { -if(!(r4 <1)) //_LBB143_20 -{ - r5 = r0 >> 2; - r6 = 0; - r5 = heap32[(r5+2)]; - r4 = (r6 - r4)|0; -_26: while(true){ - r7 = r6 << 5; - r8 = heap32[(r2+40)]; - r9 = (r6 * -10)|0; - r8 = (r8 - r7)|0; - r8 = heapU16[(r8+6)>>1]; - r9 = r9 << 1; - r9 = (r5 + r9)|0; - heap16[(r9+14)>>1] = r8; - r8 = heap32[(r2+40)]; - r8 = (r8 - r7)|0; - r8 = heapU16[(r8+8)>>1]; - heap16[(r9+16)>>1] = r8; - r8 = heap32[(r2+40)]; - r8 = (r8 - r7)|0; - r8 = heapU16[(r8+10)>>1]; - heap16[(r9+18)>>1] = r8; - r8 = heap32[(r2+40)]; - r8 = (r8 - r7)|0; - r8 = heapU16[(r8)>>1]; - heap16[(r9+8)>>1] = r8; - r8 = heap32[(r2+40)]; - r8 = (r8 - r7)|0; - r8 = heapU16[(r8+2)>>1]; - heap16[(r9+10)>>1] = r8; - r8 = heap32[(r2+40)]; - r8 = (r8 - r7)|0; - r8 = heapU16[(r8+4)>>1]; - heap16[(r9+12)>>1] = r8; - r8 = heap32[(r2+40)]; - r9 = (r6 * -5)|0; - r8 = (r8 - r7)|0; - r9 = r9 << 2; - r8 = r8 >> 2; - r9 = (r5 + r9)|0; - r8 = heap32[(r8+3)]; - r9 = r9 >> 2; - heap32[(r9)] = r8; - r8 = heap32[(r2+40)]; - r7 = (r8 - r7)|0; - r7 = r7 >> 2; - r7 = heap32[(r7+4)]; - r6 = (r6 + -1)|0; - heap32[(r9+1)] = r7; -if(!(r4 !=r6)) //_LBB143_19 -{ -break _24; -} -} -} -} while(0); - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - r2 = heap32[(r2+40)]; - r4 = _2E_str234; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = 1497453121; - heap32[(g0+4)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); -} -} -else{ - heap32[(r0+18)] = 0; -} - r0 = _2E_str335; - r_g0 = r0; - return; -} - -function _ZN14btQuantizedBvhD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - heap32[(g0)] = r0; - _ZN14btQuantizedBvhD2Ev(i7); - return; -} - -function _ZN14btQuantizedBvhD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV14btQuantizedBvh; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+40)]; -if(!(r1 ==0)) //_LBB145_4 -{ - r3 = heapU8[r0+164]; -if(!(r3 ==0)) //_LBB145_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+40)] = 0; -} - r1 = 1; - heap8[r0+164] = r1; - heap32[(r2+40)] = 0; - heap32[(r2+38)] = 0; - heap32[(r2+39)] = 0; - r3 = heap32[(r2+34)]; -if(!(r3 ==0)) //_LBB145_8 -{ - r4 = heapU8[r0+140]; -if(!(r4 ==0)) //_LBB145_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+34)] = 0; -} - heap8[r0+140] = r1; - heap32[(r2+34)] = 0; - heap32[(r2+32)] = 0; - heap32[(r2+33)] = 0; - r3 = heap32[(r2+29)]; -if(!(r3 ==0)) //_LBB145_12 -{ - r4 = heapU8[r0+120]; -if(!(r4 ==0)) //_LBB145_11 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+29)] = 0; -} - heap8[r0+120] = r1; - heap32[(r2+29)] = 0; - heap32[(r2+27)] = 0; - heap32[(r2+28)] = 0; - r3 = heap32[(r2+24)]; -if(!(r3 ==0)) //_LBB145_16 -{ - r4 = heapU8[r0+100]; -if(!(r4 ==0)) //_LBB145_15 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+24)] = 0; -} - heap8[r0+100] = r1; - heap32[(r2+24)] = 0; - heap32[(r2+22)] = 0; - heap32[(r2+23)] = 0; - r3 = heap32[(r2+19)]; -if(!(r3 ==0)) //_LBB145_20 -{ - r4 = heapU8[r0+80]; -if(!(r4 ==0)) //_LBB145_19 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+19)] = 0; -} - heap8[r0+80] = r1; - heap32[(r2+19)] = 0; - heap32[(r2+17)] = 0; - heap32[(r2+18)] = 0; -if(!(r0 ==0)) //_LBB145_22 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZNK14btQuantizedBvh9serializeEPvjb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+38)]; - r3 = heap32[(r1+42)]; - if(r3 ==r2) //_LBB146_2 -{ - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+3)]; - r5 = _ZTV14btQuantizedBvh; - r6 = r3 >> 2; - r5 = (r5 + 8)|0; - heap32[(r1+42)] = r2; - heap32[(r6)] = r5; - r2 = 0; - heap32[(r6+13)] = 277; - r5 = 1; - heap8[r3+60] = r2; - heap8[r3+80] = r5; - heap32[(r6+19)] = 0; - heap32[(r6+17)] = 0; - heap32[(r6+18)] = 0; - heap8[r3+100] = r5; - heap32[(r6+24)] = 0; - heap32[(r6+22)] = 0; - heap32[(r6+23)] = 0; - heap8[r3+120] = r5; - heap32[(r6+29)] = 0; - heap32[(r6+27)] = 0; - heap32[(r6+28)] = 0; - heap8[r3+140] = r5; - heap32[(r6+34)] = 0; - heap32[(r6+32)] = 0; - heap32[(r6+33)] = 0; - heap32[(r6+36)] = 0; - heap8[r3+164] = r5; - heap32[(r6+40)] = 0; - heap32[(r6+38)] = 0; - heap32[(r6+39)] = 0; - heap32[(r6+42)] = 0; - heap32[(r6+1)] = -8388609; - heap32[(r6+2)] = -8388609; - heap32[(r6+3)] = -8388609; - heap32[(r6+4)] = 0; - heap32[(r6+5)] = 2139095039; - heap32[(r6+6)] = 2139095039; - heap32[(r6+7)] = 2139095039; - heap32[(r6+8)] = 0; - r7 = heap32[(r1+14)]; - if(r4 ==0) //_LBB146_4 -{ - heap32[(r6+14)] = r7; - heap32[(r6+1)] = heap32[(r1+1)]; - heap32[(r6+2)] = heap32[(r1+2)]; - heap32[(r6+3)] = heap32[(r1+3)]; - heap32[(r6+4)] = heap32[(r1+4)]; - heap32[(r6+5)] = heap32[(r1+5)]; - heap32[(r6+6)] = heap32[(r1+6)]; - heap32[(r6+7)] = heap32[(r1+7)]; - heap32[(r6+8)] = heap32[(r1+8)]; - heap32[(r6+9)] = heap32[(r1+9)]; - heap32[(r6+10)] = heap32[(r1+10)]; - heap32[(r6+11)] = heap32[(r1+11)]; - heap32[(r6+12)] = heap32[(r1+12)]; - r7 = heap32[(r1+36)]; - heap32[(r6+36)] = r7; - r7 = heap32[(r1+42)]; -} -else{ - r8 = r7 << 8; - r9 = r7 >>> 8; - r10 = r7 << 24; - r8 = r8 & 16711680; - r9 = r9 & 65280; - r7 = r7 >>> 24; - r8 = r10 | r8; - r7 = r9 | r7; - r7 = r8 | r7; - heap32[(r6+14)] = r7; - r7 = heapU8[r0+7]; - heap8[r3+4] = r7; - r7 = heapU8[r0+6]; - heap8[r3+5] = r7; - r7 = heapU8[r0+5]; - heap8[r3+6] = r7; - r7 = heapU8[r0+4]; - heap8[r3+7] = r7; - r7 = heapU8[r0+11]; - heap8[r3+8] = r7; - r7 = heapU8[r0+10]; - heap8[r3+9] = r7; - r7 = heapU8[r0+9]; - heap8[r3+10] = r7; - r7 = heapU8[r0+8]; - heap8[r3+11] = r7; - r7 = heapU8[r0+15]; - heap8[r3+12] = r7; - r7 = heapU8[r0+14]; - heap8[r3+13] = r7; - r7 = heapU8[r0+13]; - heap8[r3+14] = r7; - r7 = heapU8[r0+12]; - heap8[r3+15] = r7; - r7 = heapU8[r0+19]; - heap8[r3+16] = r7; - r7 = heapU8[r0+18]; - heap8[r3+17] = r7; - r7 = heapU8[r0+17]; - heap8[r3+18] = r7; - r7 = heapU8[r0+16]; - heap8[r3+19] = r7; - r7 = heapU8[r0+23]; - heap8[r3+20] = r7; - r7 = heapU8[r0+22]; - heap8[r3+21] = r7; - r7 = heapU8[r0+21]; - heap8[r3+22] = r7; - r7 = heapU8[r0+20]; - heap8[r3+23] = r7; - r7 = heapU8[r0+27]; - heap8[r3+24] = r7; - r7 = heapU8[r0+26]; - heap8[r3+25] = r7; - r7 = heapU8[r0+25]; - heap8[r3+26] = r7; - r7 = heapU8[r0+24]; - heap8[r3+27] = r7; - r7 = heapU8[r0+31]; - heap8[r3+28] = r7; - r7 = heapU8[r0+30]; - heap8[r3+29] = r7; - r7 = heapU8[r0+29]; - heap8[r3+30] = r7; - r7 = heapU8[r0+28]; - heap8[r3+31] = r7; - r7 = heapU8[r0+35]; - heap8[r3+32] = r7; - r7 = heapU8[r0+34]; - heap8[r3+33] = r7; - r7 = heapU8[r0+33]; - heap8[r3+34] = r7; - r7 = heapU8[r0+32]; - heap8[r3+35] = r7; - r7 = heapU8[r0+39]; - heap8[r3+36] = r7; - r7 = heapU8[r0+38]; - heap8[r3+37] = r7; - r7 = heapU8[r0+37]; - heap8[r3+38] = r7; - r7 = heapU8[r0+36]; - heap8[r3+39] = r7; - r7 = heapU8[r0+43]; - heap8[r3+40] = r7; - r7 = heapU8[r0+42]; - heap8[r3+41] = r7; - r7 = heapU8[r0+41]; - heap8[r3+42] = r7; - r7 = heapU8[r0+40]; - heap8[r3+43] = r7; - r7 = heapU8[r0+47]; - heap8[r3+44] = r7; - r7 = heapU8[r0+46]; - heap8[r3+45] = r7; - r7 = heapU8[r0+45]; - heap8[r3+46] = r7; - r7 = heapU8[r0+44]; - heap8[r3+47] = r7; - r7 = heapU8[r0+51]; - heap8[r3+48] = r7; - r7 = heapU8[r0+50]; - heap8[r3+49] = r7; - r7 = heapU8[r0+49]; - heap8[r3+50] = r7; - r7 = heapU8[r0+48]; - heap8[r3+51] = r7; - r7 = heap32[(r1+36)]; - r8 = r7 << 8; - r9 = r7 >>> 8; - r10 = r7 << 24; - r8 = r8 & 16711680; - r9 = r9 & 65280; - r7 = r7 >>> 24; - r8 = r10 | r8; - r7 = r9 | r7; - r7 = r8 | r7; - heap32[(r6+36)] = r7; - r7 = heap32[(r1+42)]; - r8 = r7 << 8; - r9 = r7 >>> 8; - r10 = r7 << 24; - r8 = r8 & 16711680; - r9 = r9 & 65280; - r7 = r7 >>> 24; - r8 = r10 | r8; - r7 = r9 | r7; - r7 = r8 | r7; -} - heap32[(r6+42)] = r7; - r7 = heapU8[r0+60]; - heap8[r3+60] = r7; - r7 = (r3 + 172)|0; - r8 = heap32[(r1+14)]; - r0 = heapU8[r0+60]; - if(r0 ==0) //_LBB146_20 -{ - r0 = 0; - heap8[r3+100] = r0; - heap32[(r6+24)] = r7; - heap32[(r6+22)] = r8; - heap32[(r6+23)] = r8; -_9: do { - if(r4 !=0) //_LBB146_22 -{ -if(!(r8 <1)) //_LBB146_29 -{ - r5 = (r5 - r8)|0; -_12: while(true){ - r2 = r0 << 6; - r9 = heap32[(r1+24)]; - r9 = (r9 - r2)|0; - r10 = heapU8[r9+3]; - r7 = (r7 - r2)|0; - heap8[r7] = r10; - r10 = heapU8[r9+2]; - heap8[r7+1] = r10; - r10 = heapU8[r9+1]; - heap8[r7+2] = r10; - r10 = heapU8[r9]; - heap8[r7+3] = r10; - r10 = heapU8[r9+7]; - heap8[r7+4] = r10; - r10 = heapU8[r9+6]; - heap8[r7+5] = r10; - r10 = heapU8[r9+5]; - heap8[r7+6] = r10; - r10 = heapU8[r9+4]; - heap8[r7+7] = r10; - r10 = heapU8[r9+11]; - heap8[r7+8] = r10; - r10 = heapU8[r9+10]; - heap8[r7+9] = r10; - r10 = heapU8[r9+9]; - heap8[r7+10] = r10; - r10 = heapU8[r9+8]; - heap8[r7+11] = r10; - r10 = heapU8[r9+15]; - heap8[r7+12] = r10; - r10 = heapU8[r9+14]; - heap8[r7+13] = r10; - r10 = heapU8[r9+13]; - heap8[r7+14] = r10; - r9 = heapU8[r9+12]; - heap8[r7+15] = r9; - r7 = heap32[(r1+24)]; - r7 = (r7 - r2)|0; - r9 = heap32[(r6+24)]; - r10 = heapU8[r7+19]; - r9 = (r9 - r2)|0; - heap8[r9+16] = r10; - r10 = heapU8[r7+18]; - heap8[r9+17] = r10; - r10 = heapU8[r7+17]; - heap8[r9+18] = r10; - r10 = heapU8[r7+16]; - heap8[r9+19] = r10; - r10 = heapU8[r7+23]; - heap8[r9+20] = r10; - r10 = heapU8[r7+22]; - heap8[r9+21] = r10; - r10 = heapU8[r7+21]; - heap8[r9+22] = r10; - r10 = heapU8[r7+20]; - heap8[r9+23] = r10; - r10 = heapU8[r7+27]; - heap8[r9+24] = r10; - r10 = heapU8[r7+26]; - heap8[r9+25] = r10; - r10 = heapU8[r7+25]; - heap8[r9+26] = r10; - r10 = heapU8[r7+24]; - heap8[r9+27] = r10; - r10 = heapU8[r7+31]; - heap8[r9+28] = r10; - r10 = heapU8[r7+30]; - heap8[r9+29] = r10; - r10 = heapU8[r7+29]; - heap8[r9+30] = r10; - r7 = heapU8[r7+28]; - heap8[r9+31] = r7; - r7 = heap32[(r1+24)]; - r7 = (r7 - r2)|0; - r7 = r7 >> 2; - r7 = heap32[(r7+8)]; - r9 = r7 << 8; - r10 = r7 >>> 8; - r11 = heap32[(r6+24)]; - r12 = r7 << 24; - r9 = r9 & 16711680; - r10 = r10 & 65280; - r7 = r7 >>> 24; - r11 = (r11 - r2)|0; - r9 = r12 | r9; - r7 = r10 | r7; - r10 = r11 >> 2; - r7 = r9 | r7; - heap32[(r10+8)] = r7; - r7 = heap32[(r1+24)]; - r7 = (r7 - r2)|0; - r7 = r7 >> 2; - r7 = heap32[(r7+9)]; - r9 = r7 << 8; - r10 = r7 >>> 8; - r11 = heap32[(r6+24)]; - r12 = r7 << 24; - r9 = r9 & 16711680; - r10 = r10 & 65280; - r7 = r7 >>> 24; - r11 = (r11 - r2)|0; - r9 = r12 | r9; - r7 = r10 | r7; - r10 = r11 >> 2; - r7 = r9 | r7; - heap32[(r10+9)] = r7; - r7 = heap32[(r1+24)]; - r7 = (r7 - r2)|0; - r7 = r7 >> 2; - r7 = heap32[(r7+10)]; - r9 = r7 << 8; - r10 = r7 >>> 8; - r11 = heap32[(r6+24)]; - r12 = r7 << 24; - r9 = r9 & 16711680; - r10 = r10 & 65280; - r7 = r7 >>> 24; - r2 = (r11 - r2)|0; - r9 = r12 | r9; - r7 = r10 | r7; - r2 = r2 >> 2; - r7 = r9 | r7; - heap32[(r2+10)] = r7; - if(r5 ==r0) //_LBB146_29 -{ -break _9; -} -else{ - r7 = heap32[(r6+24)]; - r0 = (r0 + -1)|0; -} -} -} -} -else{ - if(r8 >0) //_LBB146_26 -{ - r5 = (r5 - r8)|0; - r0 = 0; -_17: while(true){ - r2 = r0 << 6; - r9 = heap32[(r1+24)]; - r7 = (r7 - r2)|0; - r9 = (r9 - r2)|0; - r7 = r7 >> 2; - r9 = r9 >> 2; - heap32[(r7)] = heap32[(r9)]; - heap32[(r7+1)] = heap32[(r9+1)]; - heap32[(r7+2)] = heap32[(r9+2)]; - heap32[(r7+3)] = heap32[(r9+3)]; - r7 = heap32[(r6+24)]; - r9 = heap32[(r1+24)]; - r7 = (r7 - r2)|0; - r9 = (r9 - r2)|0; - r7 = r7 >> 2; - r9 = r9 >> 2; - heap32[(r7+4)] = heap32[(r9+4)]; - heap32[(r7+5)] = heap32[(r9+5)]; - heap32[(r7+6)] = heap32[(r9+6)]; - heap32[(r7+7)] = heap32[(r9+7)]; - r7 = heap32[(r1+24)]; - r7 = (r7 - r2)|0; - r7 = r7 >> 2; - r9 = heap32[(r6+24)]; - r9 = (r9 - r2)|0; - r7 = heap32[(r7+8)]; - r9 = r9 >> 2; - heap32[(r9+8)] = r7; - r7 = heap32[(r1+24)]; - r7 = (r7 - r2)|0; - r7 = r7 >> 2; - r9 = heap32[(r6+24)]; - r9 = (r9 - r2)|0; - r7 = heap32[(r7+9)]; - r9 = r9 >> 2; - heap32[(r9+9)] = r7; - r7 = heap32[(r1+24)]; - r7 = (r7 - r2)|0; - r7 = r7 >> 2; - r9 = heap32[(r6+24)]; - r2 = (r9 - r2)|0; - r7 = heap32[(r7+10)]; - r2 = r2 >> 2; - heap32[(r2+10)] = r7; - if(r5 ==r0) //_LBB146_29 -{ -break _9; -} -else{ - r7 = heap32[(r6+24)]; - r0 = (r0 + -1)|0; -} -} -} -} -} while(0); - r5 = heap32[(r6+24)]; -if(!(r5 ==0)) //_LBB146_33 -{ - r0 = heapU8[r3+100]; -if(!(r0 ==0)) //_LBB146_32 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r2 = heap32[(r0)]; - r2 = (r2 + 1)|0; - r5 = r5 >> 2; - heap32[(r0)] = r2; - r5 = heap32[(r5+-1)]; - heap32[(g0)] = r5; - free(i7); -} - heap32[(r6+24)] = 0; -} - r5 = r8 << 6; - r0 = 0; - heap8[r3+100] = r0; - heap32[(r6+24)] = 0; - heap32[(r6+22)] = 0; - heap32[(r6+23)] = 0; -} -else{ - heap8[r3+140] = r2; - heap32[(r6+34)] = r7; - heap32[(r6+32)] = r8; - heap32[(r6+33)] = r8; -_28: do { - if(r4 !=0) //_LBB146_8 -{ -if(!(r8 <1)) //_LBB146_15 -{ - r5 = (r5 - r8)|0; -_31: while(true){ - r0 = heap32[(r1+34)]; - r9 = r2 << 4; - r0 = (r0 - r9)|0; - r0 = heapU16[(r0)>>1]; - r10 = r0 << 8; - r0 = r0 << 24; - r10 = r10 & 16711680; - r0 = r0 | r10; - r7 = (r7 - r9)|0; - r0 = r0 >>> 16; - heap16[(r7)>>1] = r0; - r7 = heap32[(r1+34)]; - r7 = (r7 - r9)|0; - r7 = heapU16[(r7+2)>>1]; - r0 = r7 << 8; - r7 = r7 << 24; - r0 = r0 & 16711680; - r10 = heap32[(r6+34)]; - r7 = r7 | r0; - r0 = (r10 - r9)|0; - r7 = r7 >>> 16; - heap16[(r0+2)>>1] = r7; - r7 = heap32[(r1+34)]; - r7 = (r7 - r9)|0; - r7 = heapU16[(r7+4)>>1]; - r0 = r7 << 8; - r7 = r7 << 24; - r0 = r0 & 16711680; - r10 = heap32[(r6+34)]; - r7 = r7 | r0; - r0 = (r10 - r9)|0; - r7 = r7 >>> 16; - heap16[(r0+4)>>1] = r7; - r7 = heap32[(r1+34)]; - r7 = (r7 - r9)|0; - r7 = heapU16[(r7+6)>>1]; - r0 = r7 << 8; - r7 = r7 << 24; - r0 = r0 & 16711680; - r10 = heap32[(r6+34)]; - r7 = r7 | r0; - r0 = (r10 - r9)|0; - r7 = r7 >>> 16; - heap16[(r0+6)>>1] = r7; - r7 = heap32[(r1+34)]; - r7 = (r7 - r9)|0; - r7 = heapU16[(r7+8)>>1]; - r0 = r7 << 8; - r7 = r7 << 24; - r0 = r0 & 16711680; - r10 = heap32[(r6+34)]; - r7 = r7 | r0; - r0 = (r10 - r9)|0; - r7 = r7 >>> 16; - heap16[(r0+8)>>1] = r7; - r7 = heap32[(r1+34)]; - r7 = (r7 - r9)|0; - r7 = heapU16[(r7+10)>>1]; - r0 = r7 << 8; - r7 = r7 << 24; - r0 = r0 & 16711680; - r10 = heap32[(r6+34)]; - r7 = r7 | r0; - r0 = (r10 - r9)|0; - r7 = r7 >>> 16; - heap16[(r0+10)>>1] = r7; - r7 = heap32[(r1+34)]; - r7 = (r7 - r9)|0; - r7 = r7 >> 2; - r7 = heap32[(r7+3)]; - r0 = r7 << 8; - r10 = r7 >>> 8; - r11 = heap32[(r6+34)]; - r12 = r7 << 24; - r0 = r0 & 16711680; - r10 = r10 & 65280; - r7 = r7 >>> 24; - r9 = (r11 - r9)|0; - r0 = r12 | r0; - r7 = r10 | r7; - r9 = r9 >> 2; - r7 = r0 | r7; - heap32[(r9+3)] = r7; - if(r5 ==r2) //_LBB146_15 -{ -break _28; -} -else{ - r7 = heap32[(r6+34)]; - r2 = (r2 + -1)|0; -} -} -} -} -else{ - if(r8 >0) //_LBB146_12 -{ - r5 = (r5 - r8)|0; - r0 = 0; -_36: while(true){ - r2 = r0 << 4; - r9 = heap32[(r1+34)]; - r9 = (r9 - r2)|0; - r9 = heapU16[(r9)>>1]; - r7 = (r7 - r2)|0; - heap16[(r7)>>1] = r9; - r7 = heap32[(r1+34)]; - r7 = (r7 - r2)|0; - r9 = heap32[(r6+34)]; - r7 = heapU16[(r7+2)>>1]; - r9 = (r9 - r2)|0; - heap16[(r9+2)>>1] = r7; - r7 = heap32[(r1+34)]; - r7 = (r7 - r2)|0; - r9 = heap32[(r6+34)]; - r7 = heapU16[(r7+4)>>1]; - r9 = (r9 - r2)|0; - heap16[(r9+4)>>1] = r7; - r7 = heap32[(r1+34)]; - r7 = (r7 - r2)|0; - r9 = heap32[(r6+34)]; - r7 = heapU16[(r7+6)>>1]; - r9 = (r9 - r2)|0; - heap16[(r9+6)>>1] = r7; - r7 = heap32[(r1+34)]; - r7 = (r7 - r2)|0; - r9 = heap32[(r6+34)]; - r7 = heapU16[(r7+8)>>1]; - r9 = (r9 - r2)|0; - heap16[(r9+8)>>1] = r7; - r7 = heap32[(r1+34)]; - r7 = (r7 - r2)|0; - r9 = heap32[(r6+34)]; - r7 = heapU16[(r7+10)>>1]; - r9 = (r9 - r2)|0; - heap16[(r9+10)>>1] = r7; - r7 = heap32[(r1+34)]; - r7 = (r7 - r2)|0; - r7 = r7 >> 2; - r9 = heap32[(r6+34)]; - r2 = (r9 - r2)|0; - r7 = heap32[(r7+3)]; - r2 = r2 >> 2; - heap32[(r2+3)] = r7; - if(r5 ==r0) //_LBB146_15 -{ -break _28; -} -else{ - r7 = heap32[(r6+34)]; - r0 = (r0 + -1)|0; -} -} -} -} -} while(0); - r5 = heap32[(r6+34)]; -if(!(r5 ==0)) //_LBB146_19 -{ - r7 = heapU8[r3+140]; -if(!(r7 ==0)) //_LBB146_18 -{ - r7 = gNumAlignedFree; - r7 = r7 >> 2; - r0 = heap32[(r7)]; - r0 = (r0 + 1)|0; - r5 = r5 >> 2; - heap32[(r7)] = r0; - r5 = heap32[(r5+-1)]; - heap32[(g0)] = r5; - free(i7); -} - heap32[(r6+34)] = 0; -} - r5 = r8 << 4; - r7 = 0; - heap8[r3+140] = r7; - heap32[(r6+34)] = 0; - heap32[(r6+32)] = 0; - heap32[(r6+33)] = 0; -} - r0 = heap32[(r6+40)]; - r2 = heap32[(r1+42)]; -if(!(r0 ==0)) //_LBB146_38 -{ - r7 = heapU8[r3+164]; -if(!(r7 ==0)) //_LBB146_37 -{ - r7 = gNumAlignedFree; - r7 = r7 >> 2; - r8 = heap32[(r7)]; - r8 = (r8 + 1)|0; - r0 = r0 >> 2; - heap32[(r7)] = r8; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - heap32[(r6+40)] = 0; -} - r0 = (r5 + r3)|0; - r0 = (r0 + 172)|0; - r5 = 0; - heap8[r3+164] = r5; - heap32[(r6+40)] = r0; - heap32[(r6+38)] = r2; - heap32[(r6+39)] = r2; - r2 = heap32[(r1+42)]; -_53: do { - if(r4 !=0) //_LBB146_40 -{ -if(!(r2 <1)) //_LBB146_46 -{ -__label__ = 41; //SET chanka -_55: while(true){ - r2 = r5 << 5; - r4 = heap32[(r1+40)]; - r4 = heapU16[(r4+r2)>>1]; - r7 = r4 << 8; - r4 = r4 << 24; - r7 = r7 & 16711680; - r4 = r4 | r7; - r4 = r4 >>> 16; - heap16[(r0+r2)>>1] = r4; - r0 = heap32[(r1+40)]; - r0 = (r0 + r2)|0; - r0 = heapU16[(r0+2)>>1]; - r4 = r0 << 8; - r0 = r0 << 24; - r4 = r4 & 16711680; - r7 = heap32[(r6+40)]; - r0 = r0 | r4; - r4 = (r7 + r2)|0; - r0 = r0 >>> 16; - heap16[(r4+2)>>1] = r0; - r0 = heap32[(r1+40)]; - r0 = (r0 + r2)|0; - r0 = heapU16[(r0+4)>>1]; - r4 = r0 << 8; - r0 = r0 << 24; - r4 = r4 & 16711680; - r7 = heap32[(r6+40)]; - r0 = r0 | r4; - r4 = (r7 + r2)|0; - r0 = r0 >>> 16; - heap16[(r4+4)>>1] = r0; - r0 = heap32[(r1+40)]; - r0 = (r0 + r2)|0; - r0 = heapU16[(r0+6)>>1]; - r4 = r0 << 8; - r0 = r0 << 24; - r4 = r4 & 16711680; - r7 = heap32[(r6+40)]; - r0 = r0 | r4; - r4 = (r7 + r2)|0; - r0 = r0 >>> 16; - heap16[(r4+6)>>1] = r0; - r0 = heap32[(r1+40)]; - r0 = (r0 + r2)|0; - r0 = heapU16[(r0+8)>>1]; - r4 = r0 << 8; - r0 = r0 << 24; - r4 = r4 & 16711680; - r7 = heap32[(r6+40)]; - r0 = r0 | r4; - r4 = (r7 + r2)|0; - r0 = r0 >>> 16; - heap16[(r4+8)>>1] = r0; - r0 = heap32[(r1+40)]; - r0 = (r0 + r2)|0; - r0 = heapU16[(r0+10)>>1]; - r4 = r0 << 8; - r0 = r0 << 24; - r4 = r4 & 16711680; - r7 = heap32[(r6+40)]; - r0 = r0 | r4; - r4 = (r7 + r2)|0; - r0 = r0 >>> 16; - heap16[(r4+10)>>1] = r0; - r0 = heap32[(r1+40)]; - r0 = (r0 + r2)|0; - r0 = r0 >> 2; - r0 = heap32[(r0+3)]; - r4 = r0 << 8; - r7 = r0 >>> 8; - r8 = heap32[(r6+40)]; - r9 = r0 << 24; - r4 = r4 & 16711680; - r7 = r7 & 65280; - r0 = r0 >>> 24; - r8 = (r8 + r2)|0; - r4 = r9 | r4; - r0 = r7 | r0; - r7 = r8 >> 2; - r0 = r4 | r0; - heap32[(r7+3)] = r0; - r0 = heap32[(r1+40)]; - r0 = (r0 + r2)|0; - r0 = r0 >> 2; - r0 = heap32[(r0+4)]; - r4 = r0 << 8; - r7 = r0 >>> 8; - r8 = heap32[(r6+40)]; - r9 = r0 << 24; - r4 = r4 & 16711680; - r7 = r7 & 65280; - r0 = r0 >>> 24; - r2 = (r8 + r2)|0; - r4 = r9 | r4; - r0 = r7 | r0; - r5 = (r5 + 1)|0; - r2 = r2 >> 2; - r0 = r4 | r0; - heap32[(r2+4)] = r0; - r0 = heap32[(r1+42)]; - if(r0 <=r5) //_LBB146_46 -{ -break _53; -} -else{ - r0 = heap32[(r6+40)]; -} -} -} -} -else{ - if(r2 >0) //_LBB146_43 -{ - r2 = 0; -_60: while(true){ - r4 = r2 << 5; - r5 = heap32[(r1+40)]; - r5 = heapU16[(r5+r4)>>1]; - heap16[(r0+r4)>>1] = r5; - r0 = heap32[(r1+40)]; - r0 = (r0 + r4)|0; - r5 = heap32[(r6+40)]; - r0 = heapU16[(r0+2)>>1]; - r5 = (r5 + r4)|0; - heap16[(r5+2)>>1] = r0; - r0 = heap32[(r1+40)]; - r0 = (r0 + r4)|0; - r5 = heap32[(r6+40)]; - r0 = heapU16[(r0+4)>>1]; - r5 = (r5 + r4)|0; - heap16[(r5+4)>>1] = r0; - r0 = heap32[(r1+40)]; - r0 = (r0 + r4)|0; - r5 = heap32[(r6+40)]; - r0 = heapU16[(r0+6)>>1]; - r5 = (r5 + r4)|0; - heap16[(r5+6)>>1] = r0; - r0 = heap32[(r1+40)]; - r0 = (r0 + r4)|0; - r5 = heap32[(r6+40)]; - r0 = heapU16[(r0+8)>>1]; - r5 = (r5 + r4)|0; - heap16[(r5+8)>>1] = r0; - r0 = heap32[(r1+40)]; - r0 = (r0 + r4)|0; - r5 = heap32[(r6+40)]; - r0 = heapU16[(r0+10)>>1]; - r5 = (r5 + r4)|0; - heap16[(r5+10)>>1] = r0; - r0 = heap32[(r1+40)]; - r0 = (r0 + r4)|0; - r0 = r0 >> 2; - r5 = heap32[(r6+40)]; - r5 = (r5 + r4)|0; - r0 = heap32[(r0+3)]; - r5 = r5 >> 2; - heap32[(r5+3)] = r0; - r0 = heap32[(r1+40)]; - r0 = (r0 + r4)|0; - r0 = r0 >> 2; - r5 = heap32[(r6+40)]; - r5 = (r5 + r4)|0; - r0 = heap32[(r0+4)]; - r5 = r5 >> 2; - heap32[(r5+4)] = r0; - r0 = heap32[(r6+40)]; - r0 = (r0 + r4)|0; - r0 = r0 >> 2; - heap32[(r0+5)] = 0; - r0 = heap32[(r6+40)]; - r0 = (r0 + r4)|0; - r0 = r0 >> 2; - heap32[(r0+6)] = 0; - r0 = heap32[(r6+40)]; - r0 = (r0 + r4)|0; - r2 = (r2 + 1)|0; - r0 = r0 >> 2; - heap32[(r0+7)] = 0; - r0 = heap32[(r1+42)]; - if(r0 <=r2) //_LBB146_46 -{ -break _53; -} -else{ - r0 = heap32[(r6+40)]; -} -} -} -} -} while(0); - r0 = heap32[(r6+40)]; -if(!(r0 ==0)) //_LBB146_50 -{ - r1 = heapU8[r3+164]; -if(!(r1 ==0)) //_LBB146_49 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r2 = heap32[(r1)]; - r2 = (r2 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r2; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - heap32[(r6+40)] = 0; -} - r0 = 0; - heap8[r3+164] = r0; - heap32[(r6+40)] = 0; - heap32[(r6+38)] = 0; - heap32[(r6+39)] = 0; - heap32[(r6)] = 0; - r0 = 1; - r_g0 = r0; - return; -} -else{ - r0 = _2E_str638; - r1 = _2E_str537; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 847; - _assert(i7); -} -} - -function _ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r1 = r1 >> 2; - r2 = r0 >> 2; - heap32[(r2+5)] = heap32[(r1+4)]; - heap32[(r2+6)] = heap32[(r1+5)]; - heap32[(r2+7)] = heap32[(r1+6)]; - heap32[(r2+8)] = heap32[(r1+7)]; - heap32[(r2+1)] = heap32[(r1)]; - heap32[(r2+2)] = heap32[(r1+1)]; - heap32[(r2+3)] = heap32[(r1+2)]; - heap32[(r2+4)] = heap32[(r1+3)]; - heap32[(r2+9)] = heap32[(r1+8)]; - heap32[(r2+10)] = heap32[(r1+9)]; - heap32[(r2+11)] = heap32[(r1+10)]; - heap32[(r2+12)] = heap32[(r1+11)]; - r3 = heap32[(r1+12)]; - heap32[(r2+14)] = r3; - r3 = 0; - r4 = heap32[(r1+13)]; - r4 = r4 != r3; - r4 = r4 & 1; - heap8[r0+60] = r4; - r4 = heap32[(r2+22)]; - r5 = heap32[(r1+14)]; -if(!(r4 >=r5)) //_LBB147_17 -{ - r6 = heap32[(r2+23)]; -if(!(r6 >=r5)) //_LBB147_17 -{ - if(r5 !=0) //_LBB147_4 -{ - r6 = gNumAlignedAllocs; - r6 = r6 >> 2; - r7 = heap32[(r6)]; - r7 = (r7 + 1)|0; - r8 = r5 << 6; - heap32[(r6)] = r7; - r6 = r8 | 19; - heap32[(g0)] = r6; - malloc(i7); - r6 = r_g0; - if(r6 !=0) //_LBB147_6 -{ - r7 = 0; - r8 = (r6 + 4)|0; - r7 = (r7 - r8)|0; - r7 = r7 & 15; - r7 = (r6 + r7)|0; - r8 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r6; - r6 = r8; -} -} -else{ - r6 = 0; -} - r7 = (r0 + 96)|0; - if(r4 <1) //_LBB147_9 -{ - r4 = r7 >> 2; - r9 = heap32[(r4)]; -} -else{ - r8 = 0; -_12: while(true){ - r9 = r7 >> 2; - r9 = heap32[(r9)]; - r10 = (r6 + r8)|0; - r11 = (r9 + r8)|0; - heap32[(g0)] = r10; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = 64; - r4 = (r4 + -1)|0; - r8 = (r8 + 64)|0; - memcpy(i7); -if(!(r4 !=0)) //_LBB147_10 -{ -break _12; -} -} - r7 = (r0 + 96)|0; -} -if(!(r9 ==0)) //_LBB147_16 -{ - r4 = heapU8[r0+100]; -if(!(r4 ==0)) //_LBB147_15 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r8 = heap32[(r4)]; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r4)] = r8; - r4 = heap32[(r9+-1)]; - heap32[(g0)] = r4; - free(i7); -} - r4 = r7 >> 2; - heap32[(r4)] = 0; -} - r4 = 1; - r7 = r7 >> 2; - heap8[r0+100] = r4; - heap32[(r7)] = r6; - heap32[(r2+23)] = r5; -} -} - heap32[(r2+22)] = r5; -_23: do { -if(!(r5 <1)) //_LBB147_20 -{ - r4 = 0; - r6 = heap32[(r1+16)]; - r5 = (r4 - r5)|0; -_25: while(true){ - r7 = (r4 * -12)|0; - r7 = r7 << 2; - r8 = r4 << 6; - r9 = heap32[(r2+24)]; - r7 = (r6 + r7)|0; - r9 = (r9 - r8)|0; - r7 = r7 >> 2; - r9 = r9 >> 2; - heap32[(r9+4)] = heap32[(r7+4)]; - heap32[(r9+5)] = heap32[(r7+5)]; - heap32[(r9+6)] = heap32[(r7+6)]; - heap32[(r9+7)] = heap32[(r7+7)]; - r9 = heap32[(r2+24)]; - r9 = (r9 - r8)|0; - r9 = r9 >> 2; - heap32[(r9)] = heap32[(r7)]; - heap32[(r9+1)] = heap32[(r7+1)]; - heap32[(r9+2)] = heap32[(r7+2)]; - heap32[(r9+3)] = heap32[(r7+3)]; - r9 = heap32[(r2+24)]; - r9 = (r9 - r8)|0; - r10 = heap32[(r7+8)]; - r9 = r9 >> 2; - heap32[(r9+8)] = r10; - r9 = heap32[(r2+24)]; - r9 = (r9 - r8)|0; - r10 = heap32[(r7+9)]; - r9 = r9 >> 2; - heap32[(r9+9)] = r10; - r9 = heap32[(r2+24)]; - r8 = (r9 - r8)|0; - r7 = heap32[(r7+10)]; - r4 = (r4 + -1)|0; - r8 = r8 >> 2; - heap32[(r8+10)] = r7; - if(r5 !=r4) //_LBB147_19 -{ -continue _25; -} -else{ -break _23; -} -} -} -} while(0); - r4 = heap32[(r2+32)]; - r5 = heap32[(r1+15)]; -_28: do { -if(!(r4 >=r5)) //_LBB147_23 -{ - r6 = (r0 + 124)|0; - heap32[(g0)] = r6; - heap32[(g0+1)] = r5; - r6 = (r5 - r4)|0; - r4 = r4 << 4; - _ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7); -_30: while(true){ - r7 = heap32[(r2+34)]; - r7 = (r7 + r4)|0; - r7 = r7 >> 2; - r6 = (r6 + -1)|0; - r4 = (r4 + 16)|0; - heap32[(r7)] = 0; - heap32[(r7+1)] = 0; - heap32[(r7+2)] = 0; - heap32[(r7+3)] = 0; - if(r6 !=0) //_LBB147_22 -{ -continue _30; -} -else{ -break _28; -} -} -} -} while(0); - heap32[(r2+32)] = r5; -_33: do { -if(!(r5 <1)) //_LBB147_26 -{ - r4 = 0; - r6 = heap32[(r1+17)]; - r5 = (r4 - r5)|0; -_35: while(true){ - r7 = r4 << 4; - r8 = (r6 - r7)|0; - r9 = r8 >> 2; - r10 = heap32[(r2+34)]; - r10 = (r10 - r7)|0; - r9 = heap32[(r9+3)]; - r10 = r10 >> 2; - heap32[(r10+3)] = r9; - r9 = heap32[(r2+34)]; - r10 = heapU16[(r8+6)>>1]; - r9 = (r9 - r7)|0; - heap16[(r9+6)>>1] = r10; - r9 = heap32[(r2+34)]; - r10 = heapU16[(r8+8)>>1]; - r9 = (r9 - r7)|0; - heap16[(r9+8)>>1] = r10; - r9 = heap32[(r2+34)]; - r10 = heapU16[(r8+10)>>1]; - r9 = (r9 - r7)|0; - heap16[(r9+10)>>1] = r10; - r9 = heap32[(r2+34)]; - r10 = heapU16[(r8)>>1]; - r9 = (r9 - r7)|0; - heap16[(r9)>>1] = r10; - r9 = heap32[(r2+34)]; - r10 = heapU16[(r8+2)>>1]; - r9 = (r9 - r7)|0; - heap16[(r9+2)>>1] = r10; - r9 = heap32[(r2+34)]; - r8 = heapU16[(r8+4)>>1]; - r4 = (r4 + -1)|0; - r7 = (r9 - r7)|0; - heap16[(r7+4)>>1] = r8; - if(r5 !=r4) //_LBB147_25 -{ -continue _35; -} -else{ -break _33; -} -} -} -} while(0); - r4 = heap32[(r1+19)]; - heap32[(r2+36)] = r4; - r4 = heap32[(r2+38)]; - r5 = heap32[(r1+20)]; -if(!(r4 >=r5)) //_LBB147_43 -{ - r6 = heap32[(r2+39)]; -if(!(r6 >=r5)) //_LBB147_43 -{ - if(r5 !=0) //_LBB147_30 -{ - r6 = gNumAlignedAllocs; - r6 = r6 >> 2; - r7 = heap32[(r6)]; - r7 = (r7 + 1)|0; - r8 = r5 << 5; - heap32[(r6)] = r7; - r6 = r8 | 19; - heap32[(g0)] = r6; - malloc(i7); - r6 = r_g0; - if(r6 !=0) //_LBB147_32 -{ - r7 = 0; - r8 = (r6 + 4)|0; - r7 = (r7 - r8)|0; - r7 = r7 & 15; - r7 = (r6 + r7)|0; - r8 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r6; - r6 = r8; -} -} -else{ - r6 = 0; -} - r7 = (r0 + 160)|0; - if(r4 <1) //_LBB147_35 -{ - r4 = r7 >> 2; - r9 = heap32[(r4)]; -} -else{ - r8 = 0; -_49: while(true){ - r9 = r7 >> 2; - r9 = heap32[(r9)]; - r10 = (r9 + r8)|0; - r10 = r10 >> 2; - r11 = (r6 + r8)|0; - r4 = (r4 + -1)|0; - r8 = (r8 + 32)|0; - r12 = heap32[(r10)]; - r11 = r11 >> 2; - r13 = heap32[(r10+1)]; - r14 = heap32[(r10+2)]; - r15 = heap32[(r10+3)]; - r16 = heap32[(r10+4)]; - r17 = heap32[(r10+5)]; - r18 = heap32[(r10+6)]; - r10 = heap32[(r10+7)]; - heap32[(r11)] = r12; - heap32[(r11+1)] = r13; - heap32[(r11+2)] = r14; - heap32[(r11+3)] = r15; - heap32[(r11+4)] = r16; - heap32[(r11+5)] = r17; - heap32[(r11+6)] = r18; - heap32[(r11+7)] = r10; -if(!(r4 !=0)) //_LBB147_36 -{ -break _49; -} -} - r7 = (r0 + 160)|0; -} -if(!(r9 ==0)) //_LBB147_42 -{ - r4 = heapU8[r0+164]; -if(!(r4 ==0)) //_LBB147_41 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r8 = heap32[(r4)]; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r4)] = r8; - r4 = heap32[(r9+-1)]; - heap32[(g0)] = r4; - free(i7); -} - r4 = r7 >> 2; - heap32[(r4)] = 0; -} - r4 = 1; - r7 = r7 >> 2; - heap8[r0+164] = r4; - heap32[(r7)] = r6; - heap32[(r2+39)] = r5; -} -} - heap32[(r2+38)] = r5; -_60: do { -if(!(r5 <1)) //_LBB147_46 -{ - r0 = heap32[(r1+18)]; - r1 = (r3 - r5)|0; -_62: while(true){ - r4 = (r3 * -10)|0; - r4 = r4 << 1; - r4 = (r0 + r4)|0; - r5 = r3 << 5; - r6 = heap32[(r2+40)]; - r7 = heapU16[(r4+14)>>1]; - r6 = (r6 - r5)|0; - heap16[(r6+6)>>1] = r7; - r6 = heap32[(r2+40)]; - r7 = heapU16[(r4+16)>>1]; - r6 = (r6 - r5)|0; - heap16[(r6+8)>>1] = r7; - r6 = heap32[(r2+40)]; - r7 = heapU16[(r4+18)>>1]; - r6 = (r6 - r5)|0; - heap16[(r6+10)>>1] = r7; - r6 = heap32[(r2+40)]; - r7 = heapU16[(r4+8)>>1]; - r6 = (r6 - r5)|0; - heap16[(r6)>>1] = r7; - r6 = heap32[(r2+40)]; - r7 = heapU16[(r4+10)>>1]; - r6 = (r6 - r5)|0; - heap16[(r6+2)>>1] = r7; - r6 = (r3 * -5)|0; - r7 = heap32[(r2+40)]; - r4 = heapU16[(r4+12)>>1]; - r6 = r6 << 2; - r7 = (r7 - r5)|0; - r6 = (r0 + r6)|0; - heap16[(r7+4)>>1] = r4; - r4 = r6 >> 2; - r6 = heap32[(r2+40)]; - r6 = (r6 - r5)|0; - r7 = heap32[(r4)]; - r6 = r6 >> 2; - heap32[(r6+3)] = r7; - r6 = heap32[(r2+40)]; - r5 = (r6 - r5)|0; - r4 = heap32[(r4+1)]; - r3 = (r3 + -1)|0; - r5 = r5 >> 2; - heap32[(r5+4)] = r4; - if(r1 !=r3) //_LBB147_45 -{ -continue _62; -} -else{ -break _60; -} -} -} -} while(0); - return; -} - -function _ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var f0; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - f0 = llvm_readDouble((r0+32)); - r2 = r1 >> 2; - f0 = f0; //fdtos f0, f0 - heapFloat[(r2+5)] = f0; - f0 = llvm_readDouble((r0+40)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r2+6)] = f0; - f0 = llvm_readDouble((r0+48)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r2+7)] = f0; - f0 = llvm_readDouble((r0+56)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r2+8)] = f0; - f0 = llvm_readDouble((r0)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r2+1)] = f0; - f0 = llvm_readDouble((r0+8)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r2+2)] = f0; - f0 = llvm_readDouble((r0+16)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r2+3)] = f0; - f0 = llvm_readDouble((r0+24)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r2+4)] = f0; - f0 = llvm_readDouble((r0+64)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r2+9)] = f0; - f0 = llvm_readDouble((r0+72)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r2+10)] = f0; - f0 = llvm_readDouble((r0+80)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r2+11)] = f0; - f0 = llvm_readDouble((r0+88)); - f0 = f0; //fdtos f0, f0 - r0 = r0 >> 2; - heapFloat[(r2+12)] = f0; - r3 = heap32[(r0+24)]; - heap32[(r2+14)] = r3; - r3 = 0; - r4 = heap32[(r0+25)]; - r4 = r4 != r3; - r4 = r4 & 1; - heap8[r1+60] = r4; - r4 = heap32[(r2+22)]; - r5 = heap32[(r0+26)]; -if(!(r4 >=r5)) //_LBB148_17 -{ - r6 = heap32[(r2+23)]; -if(!(r6 >=r5)) //_LBB148_17 -{ - if(r5 !=0) //_LBB148_4 -{ - r6 = gNumAlignedAllocs; - r6 = r6 >> 2; - r7 = heap32[(r6)]; - r7 = (r7 + 1)|0; - r8 = r5 << 6; - heap32[(r6)] = r7; - r6 = r8 | 19; - heap32[(g0)] = r6; - malloc(i7); - r6 = r_g0; - if(r6 !=0) //_LBB148_6 -{ - r7 = 0; - r8 = (r6 + 4)|0; - r7 = (r7 - r8)|0; - r7 = r7 & 15; - r7 = (r6 + r7)|0; - r8 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r6; - r6 = r8; -} -} -else{ - r6 = 0; -} - r7 = (r1 + 96)|0; - if(r4 <1) //_LBB148_9 -{ - r4 = r7 >> 2; - r9 = heap32[(r4)]; -} -else{ - r8 = 0; -_12: while(true){ - r9 = r7 >> 2; - r9 = heap32[(r9)]; - r10 = (r6 + r8)|0; - r11 = (r9 + r8)|0; - heap32[(g0)] = r10; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = 64; - r4 = (r4 + -1)|0; - r8 = (r8 + 64)|0; - memcpy(i7); -if(!(r4 !=0)) //_LBB148_10 -{ -break _12; -} -} - r7 = (r1 + 96)|0; -} -if(!(r9 ==0)) //_LBB148_16 -{ - r4 = heapU8[r1+100]; -if(!(r4 ==0)) //_LBB148_15 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r8 = heap32[(r4)]; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r4)] = r8; - r4 = heap32[(r9+-1)]; - heap32[(g0)] = r4; - free(i7); -} - r4 = r7 >> 2; - heap32[(r4)] = 0; -} - r4 = 1; - r7 = r7 >> 2; - heap8[r1+100] = r4; - heap32[(r7)] = r6; - heap32[(r2+23)] = r5; -} -} - heap32[(r2+22)] = r5; -_23: do { -if(!(r5 <1)) //_LBB148_20 -{ - r4 = 0; - r6 = heap32[(r0+28)]; - r5 = (r4 - r5)|0; -_25: while(true){ - r7 = (r4 * -10)|0; - r7 = r7 << 3; - r8 = (r6 + r7)|0; - r9 = r4 << 6; - r10 = heap32[(r2+24)]; - f0 = llvm_readDouble((r8+32)); - r10 = (r10 - r9)|0; - r10 = r10 >> 2; - f0 = f0; //fdtos f0, f0 - heapFloat[(r10+4)] = f0; - f0 = llvm_readDouble((r8+40)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r10+5)] = f0; - f0 = llvm_readDouble((r8+48)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r10+6)] = f0; - f0 = llvm_readDouble((r8+56)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r10+7)] = f0; - r10 = heap32[(r2+24)]; - f0 = llvm_readDouble((r6+r7)); - r7 = (r10 - r9)|0; - r7 = r7 >> 2; - f0 = f0; //fdtos f0, f0 - heapFloat[(r7)] = f0; - f0 = llvm_readDouble((r8+8)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r7+1)] = f0; - f0 = llvm_readDouble((r8+16)); - f0 = f0; //fdtos f0, f0 - heapFloat[(r7+2)] = f0; - r10 = (r4 * -20)|0; - f0 = llvm_readDouble((r8+24)); - r8 = r10 << 2; - f0 = f0; //fdtos f0, f0 - r8 = (r6 + r8)|0; - heapFloat[(r7+3)] = f0; - r7 = r8 >> 2; - r8 = heap32[(r2+24)]; - r8 = (r8 - r9)|0; - r10 = heap32[(r7+16)]; - r8 = r8 >> 2; - heap32[(r8+8)] = r10; - r8 = heap32[(r2+24)]; - r8 = (r8 - r9)|0; - r10 = heap32[(r7+17)]; - r8 = r8 >> 2; - heap32[(r8+9)] = r10; - r8 = heap32[(r2+24)]; - r8 = (r8 - r9)|0; - r7 = heap32[(r7+18)]; - r4 = (r4 + -1)|0; - r8 = r8 >> 2; - heap32[(r8+10)] = r7; - if(r5 !=r4) //_LBB148_19 -{ -continue _25; -} -else{ -break _23; -} -} -} -} while(0); - r4 = heap32[(r2+32)]; - r5 = heap32[(r0+27)]; -_28: do { -if(!(r4 >=r5)) //_LBB148_23 -{ - r6 = (r1 + 124)|0; - heap32[(g0)] = r6; - heap32[(g0+1)] = r5; - r6 = (r5 - r4)|0; - r4 = r4 << 4; - _ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7); -_30: while(true){ - r7 = heap32[(r2+34)]; - r7 = (r7 + r4)|0; - r7 = r7 >> 2; - r6 = (r6 + -1)|0; - r4 = (r4 + 16)|0; - heap32[(r7)] = 0; - heap32[(r7+1)] = 0; - heap32[(r7+2)] = 0; - heap32[(r7+3)] = 0; - if(r6 !=0) //_LBB148_22 -{ -continue _30; -} -else{ -break _28; -} -} -} -} while(0); - heap32[(r2+32)] = r5; -_33: do { -if(!(r5 <1)) //_LBB148_26 -{ - r4 = 0; - r6 = heap32[(r0+29)]; - r5 = (r4 - r5)|0; -_35: while(true){ - r7 = r4 << 4; - r8 = (r6 - r7)|0; - r9 = r8 >> 2; - r10 = heap32[(r2+34)]; - r10 = (r10 - r7)|0; - r9 = heap32[(r9+3)]; - r10 = r10 >> 2; - heap32[(r10+3)] = r9; - r9 = heap32[(r2+34)]; - r10 = heapU16[(r8+6)>>1]; - r9 = (r9 - r7)|0; - heap16[(r9+6)>>1] = r10; - r9 = heap32[(r2+34)]; - r10 = heapU16[(r8+8)>>1]; - r9 = (r9 - r7)|0; - heap16[(r9+8)>>1] = r10; - r9 = heap32[(r2+34)]; - r10 = heapU16[(r8+10)>>1]; - r9 = (r9 - r7)|0; - heap16[(r9+10)>>1] = r10; - r9 = heap32[(r2+34)]; - r10 = heapU16[(r8)>>1]; - r9 = (r9 - r7)|0; - heap16[(r9)>>1] = r10; - r9 = heap32[(r2+34)]; - r10 = heapU16[(r8+2)>>1]; - r9 = (r9 - r7)|0; - heap16[(r9+2)>>1] = r10; - r9 = heap32[(r2+34)]; - r8 = heapU16[(r8+4)>>1]; - r4 = (r4 + -1)|0; - r7 = (r9 - r7)|0; - heap16[(r7+4)>>1] = r8; - if(r5 !=r4) //_LBB148_25 -{ -continue _35; -} -else{ -break _33; -} -} -} -} while(0); - r4 = heap32[(r0+30)]; - heap32[(r2+36)] = r4; - r4 = heap32[(r2+38)]; - r5 = heap32[(r0+31)]; -if(!(r4 >=r5)) //_LBB148_43 -{ - r6 = heap32[(r2+39)]; -if(!(r6 >=r5)) //_LBB148_43 -{ - if(r5 !=0) //_LBB148_30 -{ - r6 = gNumAlignedAllocs; - r6 = r6 >> 2; - r7 = heap32[(r6)]; - r7 = (r7 + 1)|0; - r8 = r5 << 5; - heap32[(r6)] = r7; - r6 = r8 | 19; - heap32[(g0)] = r6; - malloc(i7); - r6 = r_g0; - if(r6 !=0) //_LBB148_32 -{ - r7 = 0; - r8 = (r6 + 4)|0; - r7 = (r7 - r8)|0; - r7 = r7 & 15; - r7 = (r6 + r7)|0; - r8 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r6; - r6 = r8; -} -} -else{ - r6 = 0; -} - r7 = (r1 + 160)|0; - if(r4 <1) //_LBB148_35 -{ - r4 = r7 >> 2; - r9 = heap32[(r4)]; -} -else{ - r8 = 0; -_49: while(true){ - r9 = r7 >> 2; - r9 = heap32[(r9)]; - r10 = (r9 + r8)|0; - r10 = r10 >> 2; - r11 = (r6 + r8)|0; - r4 = (r4 + -1)|0; - r8 = (r8 + 32)|0; - r12 = heap32[(r10)]; - r11 = r11 >> 2; - r13 = heap32[(r10+1)]; - r14 = heap32[(r10+2)]; - r15 = heap32[(r10+3)]; - r16 = heap32[(r10+4)]; - r17 = heap32[(r10+5)]; - r18 = heap32[(r10+6)]; - r10 = heap32[(r10+7)]; - heap32[(r11)] = r12; - heap32[(r11+1)] = r13; - heap32[(r11+2)] = r14; - heap32[(r11+3)] = r15; - heap32[(r11+4)] = r16; - heap32[(r11+5)] = r17; - heap32[(r11+6)] = r18; - heap32[(r11+7)] = r10; -if(!(r4 !=0)) //_LBB148_36 -{ -break _49; -} -} - r7 = (r1 + 160)|0; -} -if(!(r9 ==0)) //_LBB148_42 -{ - r4 = heapU8[r1+164]; -if(!(r4 ==0)) //_LBB148_41 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r8 = heap32[(r4)]; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r4)] = r8; - r4 = heap32[(r9+-1)]; - heap32[(g0)] = r4; - free(i7); -} - r4 = r7 >> 2; - heap32[(r4)] = 0; -} - r4 = 1; - r7 = r7 >> 2; - heap8[r1+164] = r4; - heap32[(r7)] = r6; - heap32[(r2+39)] = r5; -} -} - heap32[(r2+38)] = r5; -_60: do { -if(!(r5 <1)) //_LBB148_46 -{ - r0 = heap32[(r0+32)]; - r1 = (r3 - r5)|0; -_62: while(true){ - r4 = (r3 * -10)|0; - r4 = r4 << 1; - r4 = (r0 + r4)|0; - r5 = r3 << 5; - r6 = heap32[(r2+40)]; - r7 = heapU16[(r4+14)>>1]; - r6 = (r6 - r5)|0; - heap16[(r6+6)>>1] = r7; - r6 = heap32[(r2+40)]; - r7 = heapU16[(r4+16)>>1]; - r6 = (r6 - r5)|0; - heap16[(r6+8)>>1] = r7; - r6 = heap32[(r2+40)]; - r7 = heapU16[(r4+18)>>1]; - r6 = (r6 - r5)|0; - heap16[(r6+10)>>1] = r7; - r6 = heap32[(r2+40)]; - r7 = heapU16[(r4+8)>>1]; - r6 = (r6 - r5)|0; - heap16[(r6)>>1] = r7; - r6 = heap32[(r2+40)]; - r7 = heapU16[(r4+10)>>1]; - r6 = (r6 - r5)|0; - heap16[(r6+2)>>1] = r7; - r6 = (r3 * -5)|0; - r7 = heap32[(r2+40)]; - r4 = heapU16[(r4+12)>>1]; - r6 = r6 << 2; - r7 = (r7 - r5)|0; - r6 = (r0 + r6)|0; - heap16[(r7+4)>>1] = r4; - r4 = r6 >> 2; - r6 = heap32[(r2+40)]; - r6 = (r6 - r5)|0; - r7 = heap32[(r4)]; - r6 = r6 >> 2; - heap32[(r6+3)] = r7; - r6 = heap32[(r2+40)]; - r5 = (r6 - r5)|0; - r4 = heap32[(r4+1)]; - r3 = (r3 + -1)|0; - r5 = r5 >> 2; - heap32[(r5+4)] = r4; - if(r1 !=r3) //_LBB148_45 -{ -continue _62; -} -else{ -break _60; -} -} -} -} while(0); - return; -} - -function _ZN14btQuantizedBvhD2Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV14btQuantizedBvh; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+40)]; -if(!(r1 ==0)) //_LBB149_4 -{ - r3 = heapU8[r0+164]; -if(!(r3 ==0)) //_LBB149_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+40)] = 0; -} - r1 = 1; - heap8[r0+164] = r1; - heap32[(r2+40)] = 0; - heap32[(r2+38)] = 0; - heap32[(r2+39)] = 0; - r3 = heap32[(r2+34)]; -if(!(r3 ==0)) //_LBB149_8 -{ - r4 = heapU8[r0+140]; -if(!(r4 ==0)) //_LBB149_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+34)] = 0; -} - heap8[r0+140] = r1; - heap32[(r2+34)] = 0; - heap32[(r2+32)] = 0; - heap32[(r2+33)] = 0; - r3 = heap32[(r2+29)]; -if(!(r3 ==0)) //_LBB149_12 -{ - r4 = heapU8[r0+120]; -if(!(r4 ==0)) //_LBB149_11 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+29)] = 0; -} - heap8[r0+120] = r1; - heap32[(r2+29)] = 0; - heap32[(r2+27)] = 0; - heap32[(r2+28)] = 0; - r3 = heap32[(r2+24)]; -if(!(r3 ==0)) //_LBB149_16 -{ - r4 = heapU8[r0+100]; -if(!(r4 ==0)) //_LBB149_15 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+24)] = 0; -} - heap8[r0+100] = r1; - heap32[(r2+24)] = 0; - heap32[(r2+22)] = 0; - heap32[(r2+23)] = 0; - r3 = heap32[(r2+19)]; -if(!(r3 ==0)) //_LBB149_20 -{ - r4 = heapU8[r0+80]; -if(!(r4 ==0)) //_LBB149_19 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+19)] = 0; -} - heap8[r0+80] = r1; - heap32[(r2+19)] = 0; - heap32[(r2+17)] = 0; - heap32[(r2+18)] = 0; - return; -} - -function _ZNK14btQuantizedBvh26walkStacklessQuantizedTreeEP21btNodeOverlapCallbackPtS2_ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+60]; - if(r1 !=0) //_LBB150_2 -{ - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - r4 = heap32[(fp+4)]; - r5 = heap32[(fp+5)]; - r0 = r0 >> 2; - r0 = heap32[(r0+34)]; - r6 = r4 << 4; - r7 = (r5 - r4)|0; - r0 = (r0 + r6)|0; - r6 = 0; -_3: while(true){ - if(r4 >1]; - r9 = heapU16[(r0+6)>>1]; - r10 = heapU16[(r3)>>1]; - r11 = heapU16[(r0)>>1]; - r8 = uint(r8) > uint(r9); - r9 = uint(r10) < uint(r11); - r10 = heapU16[(r2+4)>>1]; - r11 = heapU16[(r0+10)>>1]; - r8 = r8 | r9; - r9 = uint(r10) > uint(r11); - r10 = heapU16[(r3+4)>>1]; - r11 = heapU16[(r0+4)>>1]; - r8 = r8 | r9; - r9 = uint(r10) < uint(r11); - r10 = heapU16[(r2+2)>>1]; - r11 = heapU16[(r0+8)>>1]; - r8 = r8 | r9; - r9 = uint(r10) > uint(r11); - r10 = heapU16[(r3+2)>>1]; - r11 = heapU16[(r0+2)>>1]; - r12 = r0 >> 2; - r8 = r8 | r9; - r9 = uint(r10) < uint(r11); - r10 = heap32[(r12+3)]; - r6 = (r6 + 1)|0; - r8 = r8 | r9; - if(r10 <0) //_LBB150_10 -{ -__label__ = 10; -} -else{ - if(r8 != 0) //_LBB150_10 -{ -__label__ = 10; -} -else{ - if(r10 >-1) //_LBB150_9 -{ - r8 = r1 >> 2; - r8 = heap32[(r8)]; - r8 = r8 >> 2; - r8 = heap32[(r8+2)]; - r12 = r10 >> 21; - r10 = r10 & 2097151; - heap32[(g0)] = r1; - heap32[(g0+1)] = r12; - heap32[(g0+2)] = r10; - __FUNCTION_TABLE__[(r8)>>2](i7); -__label__ = 11; -} -else{ -__label__ = 8; -break _3; -} -} -} -if (__label__ == 10){ - r9 = 0; - r9 = r10 < r9; - r8 = r9 & r8; - if(r8 != 0) //_LBB150_12 -{ - r8 = heap32[(r12+3)]; - if(r8 <0) //_LBB150_14 -{ - r9 = r8 << 4; - r0 = (r0 - r9)|0; - r4 = (r4 - r8)|0; -continue _3; -} -else{ -__label__ = 13; -break _3; -} -} -} - r0 = (r0 + 16)|0; - r4 = (r4 + 1)|0; -} -else{ -__label__ = 4; -break _3; -} -} -else{ -__label__ = 16; -break _3; -} -} -switch(__label__ ){//multiple entries -case 16: - r0 = maxIterations; - r0 = r0 >> 2; - r1 = heap32[(r0)]; -if(!(r1 >=r6)) //_LBB150_18 -{ - heap32[(r0)] = r6; -} - return; -break; -case 13: - r0 = _2E_str941; - r1 = _2E_str313; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 75; - _assert(i7); -break; -case 8: - r0 = _2E_str739; - r1 = _2E_str313; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 80; - _assert(i7); -break; -case 4: - r0 = _2E_str1143; - r1 = _2E_str537; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 703; - _assert(i7); -break; -} -} -else{ - r0 = _2E_str212; - r1 = _2E_str537; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 669; - _assert(i7); -} -} - -function _ZNK14btQuantizedBvh17quantizeWithClampEPtRK9btVector3i(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; - var f4; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+60]; - if(r1 !=0) //_LBB151_2 -{ - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - r2 = r2 >> 2; - f0 = heapFloat[(r2)]; - r4 = sp + -16; - heapFloat[(fp+-4)] = f0; - f1 = heapFloat[(r2+1)]; - r5 = r4 >> 2; - heapFloat[(r5+1)] = f1; - f2 = heapFloat[(r2+2)]; - heapFloat[(r5+2)] = f2; - f3 = heapFloat[(r2+3)]; - r2 = r0 >> 2; - heapFloat[(r5+3)] = f3; - f4 = heapFloat[(r2+1)]; - if(f0 =f0)) //_LBB151_16 -{ - heapFloat[(fp+-4)] = f4; -} - f0 = heapFloat[(r2+6)]; -if(!(f0 >=f1)) //_LBB151_18 -{ - heapFloat[(r5+1)] = f0; -} - f0 = heapFloat[(r2+7)]; -if(!(f0 >=f2)) //_LBB151_20 -{ - heapFloat[(r5+2)] = f0; -} - f0 = heapFloat[(r2+8)]; -if(!(f0 >=f3)) //_LBB151_22 -{ - heapFloat[(r5+3)] = f0; -} - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r3; - _ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7); - return; -} -else{ - r0 = _2E_str212; - r1 = _2E_str313; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 420; - _assert(i7); -} -} - -function _ZNK14btQuantizedBvh42walkRecursiveQuantizedTreeAgainstQueryAabbEPK18btQuantizedBvhNodeP21btNodeOverlapCallbackPtS5_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - r4 = heap32[(fp+4)]; -_1: while(true){ - r5 = heapU8[r0+60]; - if(r5 !=0) //_LBB152_3 -{ - r5 = heapU16[(r3)>>1]; - r6 = heapU16[(r1+6)>>1]; - if(uint(r5) >uint(r6)) //_LBB152_14 -{ -__label__ = 14; -break _1; -} -else{ - r5 = heapU16[(r4)>>1]; - r6 = heapU16[(r1)>>1]; - r5 = r5 & 65535; - r6 = r6 & 65535; - if(uint(r5) >1]; - r6 = heapU16[(r1+10)>>1]; - r5 = r5 & 65535; - r6 = r6 & 65535; - if(uint(r5) >uint(r6)) //_LBB152_14 -{ -__label__ = 14; -break _1; -} -else{ - r5 = heapU16[(r4+4)>>1]; - r6 = heapU16[(r1+4)>>1]; - r5 = r5 & 65535; - r6 = r6 & 65535; - if(uint(r5) >1]; - r6 = heapU16[(r1+8)>>1]; - r5 = r5 & 65535; - r6 = r6 & 65535; - if(uint(r5) >uint(r6)) //_LBB152_14 -{ -__label__ = 14; -break _1; -} -else{ - r5 = heapU16[(r4+2)>>1]; - r6 = heapU16[(r1+2)>>1]; - r5 = r5 & 65535; - r6 = r6 & 65535; - if(uint(r5) > 2; - r6 = heap32[(r5+3)]; - if(r6 <0) //_LBB152_11 -{ - r6 = (r1 + 16)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r4; - _ZNK14btQuantizedBvh42walkRecursiveQuantizedTreeAgainstQueryAabbEPK18btQuantizedBvhNodeP21btNodeOverlapCallbackPtS5_(i7); - r5 = heap32[(r5+7)]; - if(r5 <0) //_LBB152_13 -{ - r6 = 1; - r5 = (r6 - r5)|0; - r5 = r5 << 4; - r1 = (r1 + r5)|0; -continue _1; -} -else{ - r1 = (r1 + 32)|0; -continue _1; -} -} -else{ -__label__ = 10; -break _1; -} -} -} -} -} -} -} -} -else{ -__label__ = 2; -break _1; -} -} -switch(__label__ ){//multiple entries -case 14: - return; -break; -case 2: - r0 = _2E_str212; - r1 = _2E_str537; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 419; - _assert(i7); -break; -case 10: - r0 = r2 >> 2; - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r0 = heap32[(r0+2)]; - r1 = r6 >> 21; - r3 = r6 & 2097151; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r3; - __FUNCTION_TABLE__[(r0)>>2](i7); - return; -break; -} -} - -function _ZNK14btQuantizedBvh26reportAabbOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - r4 = heapU8[r0+60]; -_1: do { - if(r4 ==0) //_LBB153_20 -{ - r0 = r0 >> 2; - r4 = heap32[(r0+24)]; - r5 = 0; - r6 = r5; -_3: while(true){ - r7 = heap32[(r0+14)]; - if(r7 >r5) //_LBB153_21 -{ - if(r7 >r6) //_LBB153_23 -{ - r7 = r2 >> 2; - r8 = r4 >> 2; - r6 = (r6 + 1)|0; - f0 = heapFloat[(r7)]; - f1 = heapFloat[(r8+4)]; - if(f0 >f1) //_LBB153_26 -{ -__label__ = 26; -} -else{ - r9 = r3 >> 2; - f0 = heapFloat[(r9)]; - f1 = heapFloat[(r8)]; - if(f0 f1) //_LBB153_30 -{ -__label__ = 29; -} -else{ - r10 = r3 >> 2; - f0 = heapFloat[(r10+2)]; - f1 = heapFloat[(r8+2)]; - if(f0 > 2; - f0 = heapFloat[(r7+1)]; - f1 = heapFloat[(r8+1)]; - r7 = 0; - r10 = heap32[(r8+8)]; - r11 = -1; - r9 = f0 < f1 ? r7 : r9; - r7 = r10 == r11; - r12 = r9 & 255; -if(!(r12 ==0)) //_LBB153_35 -{ - r10 = r10 != r11; - r10 = r10 & 1; - if(r10 ==0) //_LBB153_36 -{ - r10 = r1 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+2)]; - r11 = heap32[(r8+10)]; - r12 = heap32[(r8+9)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r12; - heap32[(g0+2)] = r11; - __FUNCTION_TABLE__[(r10)>>2](i7); -} -} -} -else{ - r7 = heap32[(r8+8)]; - r9 = -1; - r7 = r7 == r9; - r9 = 0; -} - r9 = r9 & 255; -if(!(r9 !=0)) //_LBB153_39 -{ - r7 = r7 & 1; - if(r7 ==0) //_LBB153_40 -{ - r7 = heap32[(r8+8)]; - r8 = r7 << 6; - r4 = (r4 + r8)|0; - r5 = (r7 + r5)|0; -continue _3; -} -} - r4 = (r4 + 64)|0; - r5 = (r5 + 1)|0; -} -else{ -__label__ = 22; -break _3; -} -} -else{ -__label__ = 40; -break _3; -} -} -switch(__label__ ){//multiple entries -case 40: - r0 = maxIterations; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - if(r1 >=r6) //_LBB153_17 -{ -break _1; -} -else{ - heap32[(r0)] = r6; - return; -} -break; -case 22: - r0 = _2E_str1921; - r1 = _2E_str537; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 367; - _assert(i7); -break; -} -} -else{ - r4 = sp + -6; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = 0; - _ZNK14btQuantizedBvh17quantizeWithClampEPtRK9btVector3i(i7); - r2 = sp + -12; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = 1; - r3 = r0 >> 2; - _ZNK14btQuantizedBvh17quantizeWithClampEPtRK9btVector3i(i7); - r5 = heap32[(r3+36)]; - if(r5 ==2) //_LBB153_18 -{ - r3 = heap32[(r3+34)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r4; - heap32[(g0+4)] = r2; - _ZNK14btQuantizedBvh42walkRecursiveQuantizedTreeAgainstQueryAabbEPK18btQuantizedBvhNodeP21btNodeOverlapCallbackPtS5_(i7); - return; -} -else{ - if(r5 ==1) //_LBB153_5 -{ - r5 = heapU8[r0+60]; - if(r5 ==0) //_LBB153_7 -{ - r2 = _2E_str212; - r3 = _2E_str537; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = 735; - _assert(i7); -} -else{ - r5 = heap32[(r3+38)]; - if(r5 >0) //_LBB153_8 -{ - r5 = 0; -_42: while(true){ - r6 = heap32[(r3+40)]; - r7 = r5 << 5; - r8 = (r6 + r7)|0; - r9 = heapU16[(sp+-6)>>1]; - r10 = heapU16[(r8+6)>>1]; -if(!(uint(r9) >uint(r10))) //_LBB153_16 -{ - r9 = heapU16[(sp+-12)>>1]; - r6 = heapU16[(r6+r7)>>1]; - r7 = r9 & 65535; - r6 = r6 & 65535; -if(!(uint(r7) >1]; - r7 = heapU16[(r8+10)>>1]; - r6 = r6 & 65535; - r7 = r7 & 65535; -if(!(uint(r6) >uint(r7))) //_LBB153_16 -{ - r6 = heapU16[(sp+-8)>>1]; - r7 = heapU16[(r8+4)>>1]; - r6 = r6 & 65535; - r7 = r7 & 65535; -if(!(uint(r6) >1]; - r7 = heapU16[(r8+8)>>1]; - r6 = r6 & 65535; - r7 = r7 & 65535; -if(!(uint(r6) >uint(r7))) //_LBB153_16 -{ - r6 = heapU16[(sp+-10)>>1]; - r7 = heapU16[(r8+2)>>1]; - r6 = r6 & 65535; - r7 = r7 & 65535; -if(!(uint(r6) > 2; - r7 = heap32[(r6+3)]; - r6 = heap32[(r6+4)]; - r6 = (r6 + r7)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r2; - heap32[(g0+4)] = r7; - heap32[(g0+5)] = r6; - _ZNK14btQuantizedBvh26walkStacklessQuantizedTreeEP21btNodeOverlapCallbackPtS2_ii(i7); -} -} -} -} -} -} - r5 = (r5 + 1)|0; - r6 = heap32[(r3+38)]; - if(r6 >r5) //_LBB153_9 -{ -continue _42; -} -else{ -break _1; -} -} -} -else{ -break _1; -} -} -} -else{ - if(r5 !=0) //_LBB153_19 -{ - r0 = _2E_str10; - r1 = _2E_str537; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 341; - _assert(i7); -} -else{ - r3 = heap32[(r3+14)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r2; - heap32[(g0+4)] = 0; - heap32[(g0+5)] = r3; - _ZNK14btQuantizedBvh26walkStacklessQuantizedTreeEP21btNodeOverlapCallbackPtS2_ii(i7); - return; -} -} -} -} -} while(0); - return; -} - -function _ZN14btQuantizedBvh9buildTreeEii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; - var r24; - var r25; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; -var __label__ = 0; - i7 = sp + -112;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp+2)]; - r2 = (r1 - r0)|0; - if(r2 >0) //_LBB154_2 -{ - r3 = heap32[(fp)]; - r4 = r3 >> 2; - r5 = heap32[(r4+14)]; - if(r2 !=1) //_LBB154_7 -{ -_5: do { - if(r0 > 2; - f0 = heapFloat[(r9)]; - f5 = heapFloat[(r9+1)]; - f8 = heapFloat[(r9+2)]; - f4 = heapFloat[(r9+4)]; - f6 = heapFloat[(r9+5)]; - f7 = heapFloat[(r9+6)]; -} -else{ - r9 = heap32[(r4+29)]; - r10 = r7 << 4; - r11 = (r9 + r10)|0; - r9 = heapU16[(r9+r10)>>1]; - r10 = heapU16[(r11+2)>>1]; - r12 = heapU16[(r11+4)>>1]; - r13 = heapU16[(r11+6)>>1]; - r14 = heapU16[(r11+8)>>1]; - r11 = heapU16[(r11+10)>>1]; - f0 = uint(r9); //fuitos r9, f0 - f4 = heapFloat[(r4+9)]; - f5 = uint(r13); //fuitos r13, f5 - f6 = uint(r10); //fuitos r10, f6 - f7 = heapFloat[(r4+10)]; - f8 = uint(r14); //fuitos r14, f8 - f9 = uint(r12); //fuitos r12, f9 - f10 = heapFloat[(r4+11)]; - f11 = uint(r11); //fuitos r11, f11 - f0 = f0/f4; - f12 = heapFloat[(r4+1)]; - f4 = f5/f4; - f5 = f6/f7; - f6 = heapFloat[(r4+2)]; - f7 = f8/f7; - f8 = f9/f10; - f9 = heapFloat[(r4+3)]; - f10 = f11/f10; - f0 = f0+f12; - f5 = f5+f6; - f8 = f8+f9; - f4 = f4+f12; - f6 = f7+f6; - f7 = f10+f9; -} - f0 = f4+f0; - f4 = 0.5; - f5 = f6+f5; - f6 = f7+f8; - f0 = f0*f4; - f5 = f5*f4; - f6 = f6*f4; - r7 = (r7 + 1)|0; - f3 = f3+f0; - f2 = f2+f5; - f1 = f1+f6; -if(!(r1 !=r7)) //_LBB154_10 -{ -break _7; -} -} - f0 = r2; //fitos r2, f0 - if(r0 > 2; - f8 = heapFloat[(r7)]; - f10 = heapFloat[(r7+1)]; - f13 = heapFloat[(r7+2)]; - f9 = heapFloat[(r7+4)]; - f11 = heapFloat[(r7+5)]; - f12 = heapFloat[(r7+6)]; -} -else{ - r7 = heap32[(r4+29)]; - r9 = r6 << 4; - r10 = (r7 + r9)|0; - r7 = heapU16[(r7+r9)>>1]; - r9 = heapU16[(r10+2)>>1]; - r11 = heapU16[(r10+4)>>1]; - r12 = heapU16[(r10+6)>>1]; - r13 = heapU16[(r10+8)>>1]; - r10 = heapU16[(r10+10)>>1]; - f8 = uint(r7); //fuitos r7, f8 - f9 = heapFloat[(r4+9)]; - f10 = uint(r12); //fuitos r12, f10 - f11 = uint(r9); //fuitos r9, f11 - f12 = heapFloat[(r4+10)]; - f13 = uint(r13); //fuitos r13, f13 - f14 = uint(r11); //fuitos r11, f14 - f15 = heapFloat[(r4+11)]; - f16 = uint(r10); //fuitos r10, f16 - f8 = f8/f9; - f17 = heapFloat[(r4+1)]; - f9 = f10/f9; - f10 = f11/f12; - f11 = heapFloat[(r4+2)]; - f12 = f13/f12; - f13 = f14/f15; - f14 = heapFloat[(r4+3)]; - f15 = f16/f15; - f8 = f8+f17; - f10 = f10+f11; - f13 = f13+f14; - f9 = f9+f17; - f11 = f12+f11; - f12 = f15+f14; -} - f8 = f9+f8; - f9 = f11+f10; - f10 = f12+f13; - f8 = f8*f4; - f9 = f9*f4; - f10 = f10*f4; - f8 = f8-f6; - f9 = f9-f7; - f10 = f10-f5; - f8 = f8*f8; - f9 = f9*f9; - f10 = f10*f10; - r6 = (r6 + 1)|0; - f3 = f3+f8; - f2 = f2+f9; - f1 = f1+f10; -if(!(r1 !=r6)) //_LBB154_17 -{ -break _5; -} -} -} -else{ - f1 = 0; - f2 = f1; - f3 = f1; -} -} -else{ - f0 = r2; //fitos r2, f0 - f1 = 0; - f2 = f1; - f3 = f1; -} -} while(0); - f4 = -1; - f5 = 1; - f0 = f0+f4; - f0 = f5/f0; - f3 = f3*f0; - f2 = f2*f0; - f0 = f1*f0; - if(f3 >=f2) //_LBB154_23 -{ - r6 = 2; - r7 = 0; - r6 = f3 < f0 ? r6 : r7; -} -else{ - r6 = 2; - r7 = 1; - r6 = f2 < f0 ? r6 : r7; -} - r7 = sp + -32; - r8 = r7 >> 2; - heap32[(fp+-8)] = 0; - heap32[(r8+1)] = 0; - heap32[(r8+2)] = 0; - heap32[(r8+3)] = 0; - if(r0 > 2; - f3 = heapFloat[(r11)]; - f6 = heapFloat[(r11+1)]; - f9 = heapFloat[(r11+2)]; - f4 = heapFloat[(r11+4)]; - f7 = heapFloat[(r11+5)]; - f8 = heapFloat[(r11+6)]; -} -else{ - r11 = heap32[(r4+29)]; - r12 = r10 << 4; - r13 = (r11 + r12)|0; - r11 = heapU16[(r11+r12)>>1]; - r12 = heapU16[(r13+2)>>1]; - r14 = heapU16[(r13+4)>>1]; - r15 = heapU16[(r13+6)>>1]; - r16 = heapU16[(r13+8)>>1]; - r13 = heapU16[(r13+10)>>1]; - f3 = uint(r11); //fuitos r11, f3 - f4 = heapFloat[(r4+9)]; - f6 = uint(r15); //fuitos r15, f6 - f7 = uint(r12); //fuitos r12, f7 - f8 = heapFloat[(r4+10)]; - f9 = uint(r16); //fuitos r16, f9 - f10 = uint(r14); //fuitos r14, f10 - f11 = heapFloat[(r4+11)]; - f12 = uint(r13); //fuitos r13, f12 - f3 = f3/f4; - f13 = heapFloat[(r4+1)]; - f4 = f6/f4; - f6 = f7/f8; - f7 = heapFloat[(r4+2)]; - f8 = f9/f8; - f9 = f10/f11; - f10 = heapFloat[(r4+3)]; - f11 = f12/f11; - f3 = f3+f13; - f6 = f6+f7; - f9 = f9+f10; - f4 = f4+f13; - f7 = f8+f7; - f8 = f11+f10; -} - f3 = f4+f3; - f4 = 0.5; - f6 = f7+f6; - f7 = f8+f9; - f3 = f3*f4; - f6 = f6*f4; - f4 = f7*f4; - r10 = (r10 + 1)|0; - f2 = f2+f3; - f1 = f1+f6; - f0 = f0+f4; -if(!(r1 !=r10)) //_LBB154_27 -{ -break _31; -} -} - heapFloat[(r8+2)] = f0; - heapFloat[(r8+1)] = f1; - heapFloat[(fp+-8)] = f2; -} -else{ - f0 = 0; - f1 = f0; - f2 = f0; -} - f3 = r2; //fitos r2, f3 - f3 = f5/f3; - f2 = f2*f3; - f1 = f1*f3; - heapFloat[(fp+-8)] = f2; - f0 = f0*f3; - heapFloat[(r8+1)] = f1; - heapFloat[(r8+2)] = f0; -_40: do { - if(r0 > 2; - f0 = heapFloat[(r6)]; - r6 = r0 << 4; - r7 = (r0 - r1)|0; - r9 = r0 << 6; - r10 = r6 | 12; - r11 = 0; - r12 = r9; - r6 = r0; -_42: while(true){ - r13 = heapU8[r3+60]; - if(r13 ==0) //_LBB154_37 -{ - r14 = r11 << 4; - r15 = heap32[(r4+19)]; - r15 = (r15 + r9)|0; - r14 = r14 << 2; - r14 = (r15 - r14)|0; - r14 = r14 >> 2; - f1 = heapFloat[(r14)]; - f3 = heapFloat[(r14+1)]; - f6 = heapFloat[(r14+2)]; - f2 = heapFloat[(r14+4)]; - f4 = heapFloat[(r14+5)]; - f5 = heapFloat[(r14+6)]; -} -else{ - r14 = heap32[(r4+29)]; - r14 = (r14 + r10)|0; - r15 = r11 << 4; - r14 = (r14 - r15)|0; - r15 = heapU16[(r14+-12)>>1]; - r16 = heapU16[(r14+-10)>>1]; - r17 = heapU16[(r14+-8)>>1]; - r18 = heapU16[(r14+-6)>>1]; - r19 = heapU16[(r14+-4)>>1]; - r14 = heapU16[(r14+-2)>>1]; - f1 = uint(r15); //fuitos r15, f1 - f2 = heapFloat[(r4+9)]; - f3 = uint(r18); //fuitos r18, f3 - f4 = uint(r16); //fuitos r16, f4 - f5 = heapFloat[(r4+10)]; - f6 = uint(r19); //fuitos r19, f6 - f7 = uint(r17); //fuitos r17, f7 - f8 = heapFloat[(r4+11)]; - f9 = uint(r14); //fuitos r14, f9 - f1 = f1/f2; - f10 = heapFloat[(r4+1)]; - f2 = f3/f2; - f3 = f4/f5; - f4 = heapFloat[(r4+2)]; - f5 = f6/f5; - f6 = f7/f8; - f7 = heapFloat[(r4+3)]; - f8 = f9/f8; - f1 = f1+f10; - f3 = f3+f4; - f6 = f6+f7; - f2 = f2+f10; - f4 = f5+f4; - f5 = f8+f7; -} - f1 = f2+f1; - f2 = 0.5; - r14 = sp + -48; - f3 = f4+f3; - f1 = f1*f2; - f4 = f5+f6; - r15 = r14 >> 2; - f3 = f3*f2; - heapFloat[(fp+-12)] = f1; - f1 = f4*f2; - heapFloat[(r15+1)] = f3; - r14 = (r14 + r8)|0; - heapFloat[(r15+2)] = f1; - r14 = r14 >> 2; - heap32[(r15+3)] = 0; - f1 = heapFloat[(r14)]; - if(f1 >f0) //_LBB154_40 -{ - if(r13 ==0) //_LBB154_42 -{ - r13 = r11 << 4; - r14 = heap32[(r4+19)]; - r15 = (r14 + r9)|0; - r13 = r13 << 2; - r13 = (r15 - r13)|0; - r13 = r13 >> 2; - r15 = heap32[(r13+15)]; - r16 = heap32[(r13+14)]; - r17 = heap32[(r13+13)]; - r18 = heap32[(r13+12)]; - r19 = heap32[(r13+11)]; - r20 = heap32[(r13+10)]; - r21 = heap32[(r13+9)]; - r22 = heap32[(r13+8)]; - f1 = heapFloat[(r13+7)]; - f2 = heapFloat[(r13+6)]; - f3 = heapFloat[(r13+5)]; - f4 = heapFloat[(r13+4)]; - f5 = heapFloat[(r13+3)]; - f6 = heapFloat[(r13+2)]; - f7 = heapFloat[(r13+1)]; - f8 = heapFloat[(r13)]; - r13 = r6 << 6; - r23 = (r14 + r12)|0; - r14 = (r14 + r13)|0; - heap32[(g0)] = r23; - heap32[(g0+1)] = r14; - heap32[(g0+2)] = 64; - memcpy(i7); - r14 = heap32[(r4+19)]; - r13 = (r14 + r13)|0; - r13 = r13 >> 2; - heapFloat[(r13)] = f8; - heapFloat[(r13+1)] = f7; - heapFloat[(r13+2)] = f6; - heapFloat[(r13+3)] = f5; - heapFloat[(r13+4)] = f4; - heapFloat[(r13+5)] = f3; - heapFloat[(r13+6)] = f2; - heapFloat[(r13+7)] = f1; - heap32[(r13+8)] = r22; - heap32[(r13+9)] = r21; - heap32[(r13+10)] = r20; - heap32[(r13+11)] = r19; - heap32[(r13+12)] = r18; - heap32[(r13+13)] = r17; - heap32[(r13+14)] = r16; - heap32[(r13+15)] = r15; -} -else{ - r13 = heap32[(r4+29)]; - r14 = (r13 + r10)|0; - r15 = r11 << 4; - r14 = (r14 - r15)|0; - r15 = r6 << 4; - r16 = r14 >> 2; - r17 = heap32[(r16)]; - r18 = heapU16[(r14+-2)>>1]; - r19 = heapU16[(r14+-4)>>1]; - r20 = heapU16[(r14+-6)>>1]; - r21 = heapU16[(r14+-8)>>1]; - r22 = heapU16[(r14+-10)>>1]; - r23 = heapU16[(r13+r15)>>1]; - r24 = heapU16[(r14+-12)>>1]; - r13 = (r13 + r15)|0; - heap16[(r14+-12)>>1] = r23; - r23 = heapU16[(r13+2)>>1]; - heap16[(r14+-10)>>1] = r23; - r23 = heapU16[(r13+4)>>1]; - heap16[(r14+-8)>>1] = r23; - r23 = heapU16[(r13+6)>>1]; - heap16[(r14+-6)>>1] = r23; - r23 = heapU16[(r13+8)>>1]; - heap16[(r14+-4)>>1] = r23; - r23 = heapU16[(r13+10)>>1]; - r13 = r13 >> 2; - heap16[(r14+-2)>>1] = r23; - r13 = heap32[(r13+3)]; - heap32[(r16)] = r13; - r13 = heap32[(r4+29)]; - r14 = (r13 + r15)|0; - heap16[(r13+r15)>>1] = r24; - heap16[(r14+2)>>1] = r22; - heap16[(r14+4)>>1] = r21; - heap16[(r14+6)>>1] = r20; - heap16[(r14+8)>>1] = r19; - r13 = r14 >> 2; - heap16[(r14+10)>>1] = r18; - heap32[(r13+3)] = r17; -} - r6 = (r6 + 1)|0; -} - r11 = (r11 + -1)|0; - r12 = (r12 + 64)|0; -if(!(r7 !=r11)) //_LBB154_35 -{ -break _40; -} -} -} -else{ - r6 = r0; -} -} while(0); - r7 = (r2 / 3)|0; - r8 = (r7 + r0)|0; - if(r8 >=r6) //_LBB154_48 -{ -__label__ = 46; -} -else{ - r8 = (r1 + -1)|0; - r7 = (r8 - r7)|0; - if(r7 <=r6) //_LBB154_48 -{ -__label__ = 46; -} -else{ -__label__ = 47; -} -} -if (__label__ == 46){ - r6 = r2 >> 1; - r6 = (r6 + r0)|0; -} -if(!(r6 ==r0)) //_LBB154_51 -{ - if(r6 !=r1) //_LBB154_52 -{ - r2 = heap32[(r4+14)]; - heap32[(fp+-21)] = r2; - r2 = heapU8[r3+60]; - if(r2 ==0) //_LBB154_54 -{ - r2 = heap32[(fp+-21)]; - r2 = r2 << 6; - r7 = heap32[(r4+24)]; - r2 = (r7 + r2)|0; - r2 = r2 >> 2; - heap32[(r2)] = heap32[(r4+5)]; - heap32[(r2+1)] = heap32[(r4+6)]; - heap32[(r2+2)] = heap32[(r4+7)]; - heap32[(r2+3)] = heap32[(r4+8)]; -} -else{ - r2 = heap32[(r4+34)]; - r7 = heap32[(fp+-21)]; - r7 = r7 << 4; - r2 = (r2 + r7)|0; - r7 = (r3 + 20)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = 0; - _ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7); -} - r2 = heap32[(r4+14)]; - r7 = heapU8[r3+60]; - if(r7 ==0) //_LBB154_57 -{ - r2 = r2 << 6; - r7 = heap32[(r4+24)]; - r2 = (r7 + r2)|0; - r2 = r2 >> 2; - heap32[(r2+4)] = heap32[(r4+1)]; - heap32[(r2+5)] = heap32[(r4+2)]; - heap32[(r2+6)] = heap32[(r4+3)]; - heap32[(r2+7)] = heap32[(r4+4)]; -} -else{ - r7 = heap32[(r4+34)]; - r2 = r2 << 4; - r2 = (r7 + r2)|0; - r2 = (r2 + 6)|0; - r7 = (r3 + 4)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = 1; - _ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7); -} -_73: do { -if(!(r0 >=r1)) //_LBB154_95 -{ - r2 = r0; -_75: while(true){ - r7 = heapU8[r3+60]; -_77: do { - if(r7 ==0) //_LBB154_69 -{ - r7 = heap32[(r4+19)]; - r8 = r2 << 6; - r7 = (r7 + r8)|0; - r7 = r7 >> 2; - f0 = heapFloat[(r7+4)]; - r8 = sp + -80; - heapFloat[(fp+-20)] = f0; - f1 = heapFloat[(r7+5)]; - r8 = r8 >> 2; - heapFloat[(r8+1)] = f1; - f2 = heapFloat[(r7+6)]; - heapFloat[(r8+2)] = f2; - f3 = heapFloat[(r7+7)]; - heapFloat[(r8+3)] = f3; - f4 = heapFloat[(r7)]; - r8 = sp + -64; - heapFloat[(fp+-16)] = f4; - f5 = heapFloat[(r7+1)]; - r8 = r8 >> 2; - heapFloat[(r8+1)] = f5; - f6 = heapFloat[(r7+2)]; - heapFloat[(r8+2)] = f6; - f7 = heapFloat[(r7+3)]; - heapFloat[(r8+3)] = f7; - r7 = heap32[(r4+14)]; - r8 = heap32[(r4+24)]; - r7 = r7 << 6; - r8 = (r8 + r7)|0; - r8 = r8 >> 2; - f8 = heapFloat[(r8)]; -if(!(f4 >=f8)) //_LBB154_71 -{ - heapFloat[(r8)] = f4; -} - f4 = heapFloat[(r8+1)]; -if(!(f5 >=f4)) //_LBB154_73 -{ - heapFloat[(r8+1)] = f5; -} - f4 = heapFloat[(r8+2)]; -if(!(f6 >=f4)) //_LBB154_75 -{ - heapFloat[(r8+2)] = f6; -} - f4 = heapFloat[(r8+3)]; -if(!(f7 >=f4)) //_LBB154_77 -{ - heapFloat[(r8+3)] = f7; -} - r8 = heap32[(r4+24)]; - r7 = (r8 + r7)|0; - r7 = r7 >> 2; - f4 = heapFloat[(r7+4)]; -if(!(f4 >=f0)) //_LBB154_79 -{ - heapFloat[(r7+4)] = f0; -} - f0 = heapFloat[(r7+5)]; -if(!(f0 >=f1)) //_LBB154_81 -{ - heapFloat[(r7+5)] = f1; -} - f0 = heapFloat[(r7+6)]; -if(!(f0 >=f2)) //_LBB154_83 -{ - heapFloat[(r7+6)] = f2; -} - f0 = heapFloat[(r7+7)]; - if(f0 >=f3) //_LBB154_94 -{ -break _77; -} -else{ - heapFloat[(r7+7)] = f3; -} -} -else{ - r7 = heap32[(r4+29)]; - r8 = r2 << 4; - r9 = (r7 + r8)|0; - r10 = sp + -80; - r11 = heapU16[(r9+10)>>1]; - r12 = heapU16[(r9+8)>>1]; - r13 = heapU16[(r9+6)>>1]; - f0 = heapFloat[(r4+11)]; - f1 = heapFloat[(r4+10)]; - f2 = heapFloat[(r4+9)]; - r14 = r10 >> 2; - f3 = uint(r13); //fuitos r13, f3 - heap32[(r14+3)] = 0; - f3 = f3/f2; - f4 = heapFloat[(r4+1)]; - f3 = f3+f4; - f5 = uint(r12); //fuitos r12, f5 - heapFloat[(fp+-20)] = f3; - f3 = f5/f1; - f5 = heapFloat[(r4+2)]; - f3 = f3+f5; - f6 = uint(r11); //fuitos r11, f6 - heapFloat[(r14+1)] = f3; - f3 = f6/f0; - f6 = heapFloat[(r4+3)]; - f3 = f3+f6; - heapFloat[(r14+2)] = f3; - r7 = heapU16[(r7+r8)>>1]; - r8 = sp + -64; - f3 = uint(r7); //fuitos r7, f3 - r7 = heapU16[(r9+4)>>1]; - r9 = heapU16[(r9+2)>>1]; - f7 = uint(r9); //fuitos r9, f7 - f2 = f3/f2; - r9 = r8 >> 2; - f3 = uint(r7); //fuitos r7, f3 - f1 = f7/f1; - f2 = f2+f4; - heap32[(r9+3)] = 0; - f0 = f3/f0; - f1 = f1+f5; - heapFloat[(fp+-16)] = f2; - f0 = f0+f6; - heapFloat[(r9+1)] = f1; - heapFloat[(r9+2)] = f0; - r7 = heap32[(r4+14)]; - r9 = sp + -6; - heap32[(g0)] = r3; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = 0; - _ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7); - r8 = sp + -12; - heap32[(g0)] = r3; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = 1; - _ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7); - r8 = heapU16[(sp+-6)>>1]; - r9 = heap32[(r4+34)]; - r7 = r7 << 4; - r10 = heapU16[(r9+r7)>>1]; - if(uint(r10) >uint(r8)) //_LBB154_63 -{ - heap16[(r9+r7)>>1] = r8; - r9 = heap32[(r4+34)]; -} - r8 = (r9 + r7)|0; - r10 = heapU16[(sp+-12)>>1]; - r11 = heapU16[(r8+6)>>1]; - if(uint(r11) >1] = r10; - r9 = heap32[(r4+34)]; -} - r8 = (r9 + r7)|0; - r10 = heapU16[(sp+-4)>>1]; - r11 = heapU16[(r8+2)>>1]; - if(uint(r11) >uint(r10)) //_LBB154_89 -{ - heap16[(r8+2)>>1] = r10; - r9 = heap32[(r4+34)]; -} - r8 = (r9 + r7)|0; - r10 = heapU16[(sp+-10)>>1]; - r11 = heapU16[(r8+8)>>1]; - if(uint(r11) >1] = r10; - r9 = heap32[(r4+34)]; -} - r8 = (r9 + r7)|0; - r10 = heapU16[(sp+-2)>>1]; - r11 = heapU16[(r8+4)>>1]; - if(uint(r11) >uint(r10)) //_LBB154_92 -{ - heap16[(r8+4)>>1] = r10; - r9 = heap32[(r4+34)]; -} - r7 = (r9 + r7)|0; - r8 = heapU16[(sp+-8)>>1]; - r9 = heapU16[(r7+10)>>1]; - if(uint(r9) >1] = r8; -} -} -} while(0); - r2 = (r2 + 1)|0; -if(!(r1 !=r2)) //_LBB154_60 -{ -break _73; -} -} -} -} while(0); - r2 = heap32[(r4+14)]; - r7 = (r2 + 1)|0; - heap32[(r4+14)] = r7; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r6; - _ZN14btQuantizedBvh9buildTreeEii(i7); - r0 = heap32[(r4+14)]; - heap32[(fp+-23)] = r0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r1; - _ZN14btQuantizedBvh9buildTreeEii(i7); - r0 = heap32[(r4+14)]; - r0 = (r0 - r5)|0; - heap32[(fp+-22)] = r0; - r0 = heapU8[r3+60]; -_120: do { -if(!(r0 ==0)) //_LBB154_143 -{ - r0 = heap32[(fp+-22)]; - r0 = r0 << 4; -if(!(r0 <2049)) //_LBB154_142 -{ - r0 = heap32[(r4+34)]; - r1 = heap32[(fp+-23)]; - r1 = r1 << 4; - heap32[(fp+-24)] = r1; - r2 = r2 << 4; - r1 = (r0 + r1)|0; - r2 = (r0 + r2)|0; - r5 = r1 >> 2; - r6 = r2 >> 2; - r5 = heap32[(r5+3)]; - r8 = 0; - r6 = heap32[(r6+7)]; - r9 = 1; - r10 = (r8 - r6)|0; - r6 = r6 < 0 ? r10 : r9; - r10 = r6 << 4; -if(!(r10 >2048)) //_LBB154_119 -{ - r10 = heap32[(r4+39)]; - r11 = heap32[(r4+38)]; - if(r10 ==r11) //_LBB154_100 -{ - r12 = r11 << 1; - r12 = r11 == 0 ? r9 : r12; - if(r10 >=r12) //_LBB154_99 -{ -__label__ = 92; -} -else{ - if(r12 !=0) //_LBB154_103 -{ - r10 = gNumAlignedAllocs; - r10 = r10 >> 2; - r13 = heap32[(r10)]; - r13 = (r13 + 1)|0; - r14 = r12 << 5; - heap32[(r10)] = r13; - r10 = r14 | 19; - heap32[(g0)] = r10; - malloc(i7); - r13 = r_g0; - if(r13 !=0) //_LBB154_105 -{ - r10 = 0; - r14 = (r13 + 4)|0; - r10 = (r10 - r14)|0; - r10 = r10 & 15; - r10 = (r13 + r10)|0; - r14 = (r10 + 4)|0; - r10 = r10 >> 2; - heap32[(r10)] = r13; - r13 = r14; -} -} -else{ - r13 = 0; -} - r14 = (r3 + 160)|0; - if(r11 <1) //_LBB154_108 -{ - r10 = r14 >> 2; - r16 = heap32[(r10)]; -} -else{ - r10 = 0; - r15 = r11; -_137: while(true){ - r16 = r14 >> 2; - r16 = heap32[(r16)]; - r17 = (r16 + r10)|0; - r17 = r17 >> 2; - r18 = (r13 + r10)|0; - r15 = (r15 + -1)|0; - r10 = (r10 + 32)|0; - r19 = heap32[(r17)]; - r18 = r18 >> 2; - r20 = heap32[(r17+1)]; - r21 = heap32[(r17+2)]; - r22 = heap32[(r17+3)]; - r23 = heap32[(r17+4)]; - r24 = heap32[(r17+5)]; - r25 = heap32[(r17+6)]; - r17 = heap32[(r17+7)]; - heap32[(r18)] = r19; - heap32[(r18+1)] = r20; - heap32[(r18+2)] = r21; - heap32[(r18+3)] = r22; - heap32[(r18+4)] = r23; - heap32[(r18+5)] = r24; - heap32[(r18+6)] = r25; - heap32[(r18+7)] = r17; -if(!(r15 !=0)) //_LBB154_109 -{ -break _137; -} -} - r14 = (r3 + 160)|0; -} - if(r16 !=0) //_LBB154_113 -{ - r10 = heapU8[r3+164]; - if(r10 !=0) //_LBB154_115 -{ - r10 = gNumAlignedFree; - r10 = r10 >> 2; - r15 = heap32[(r10)]; - r15 = (r15 + 1)|0; - r16 = r16 >> 2; - heap32[(r10)] = r15; - r10 = heap32[(r16+-1)]; - heap32[(g0)] = r10; - free(i7); - r10 = heap32[(r4+38)]; -} -else{ - r10 = r11; -} - r15 = r14 >> 2; - heap32[(r15)] = 0; -} -else{ - r10 = r11; -} - r14 = r14 >> 2; - heap8[r3+164] = r9; - heap32[(r14)] = r13; - heap32[(r4+39)] = r12; -__label__ = 110; -} -} -else{ -__label__ = 92; -} -if (__label__ == 92){ - r10 = r11; -} - r10 = (r10 + 1)|0; - heap32[(r4+38)] = r10; - r10 = heap32[(r4+40)]; - r12 = heapU16[(r2+16)>>1]; - r11 = r11 << 5; - heap16[(r10+r11)>>1] = r12; - r10 = (r10 + r11)|0; - r11 = heapU16[(r2+18)>>1]; - heap16[(r10+2)>>1] = r11; - r11 = heapU16[(r2+20)>>1]; - heap16[(r10+4)>>1] = r11; - r11 = heapU16[(r2+22)>>1]; - heap16[(r10+6)>>1] = r11; - r11 = heapU16[(r2+24)>>1]; - heap16[(r10+8)>>1] = r11; - r2 = heapU16[(r2+26)>>1]; - r11 = r10 >> 2; - heap16[(r10+10)>>1] = r2; - heap32[(r11+3)] = r7; - heap32[(r11+4)] = r6; -} - r2 = (r8 - r5)|0; - r2 = r5 < 0 ? r2 : r9; - r5 = r2 << 4; -if(!(r5 >2048)) //_LBB154_141 -{ - r5 = heap32[(r4+39)]; - r6 = heap32[(r4+38)]; - if(r5 ==r6) //_LBB154_122 -{ - r7 = r6 << 1; - r7 = r6 == 0 ? r9 : r7; - if(r5 >=r7) //_LBB154_121 -{ -__label__ = 113; -} -else{ - if(r7 !=0) //_LBB154_125 -{ - r5 = gNumAlignedAllocs; - r5 = r5 >> 2; - r10 = heap32[(r5)]; - r10 = (r10 + 1)|0; - r11 = r7 << 5; - heap32[(r5)] = r10; - r5 = r11 | 19; - heap32[(g0)] = r5; - malloc(i7); - r10 = r_g0; - if(r10 !=0) //_LBB154_127 -{ - r5 = (r10 + 4)|0; - r5 = (r8 - r5)|0; - r5 = r5 & 15; - r5 = (r10 + r5)|0; - r11 = (r5 + 4)|0; - r5 = r5 >> 2; - heap32[(r5)] = r10; - r10 = r11; -} -} -else{ - r10 = 0; -} - r11 = (r3 + 160)|0; - if(r6 <1) //_LBB154_130 -{ - r5 = r11 >> 2; - r12 = heap32[(r5)]; -} -else{ - r5 = r6; -_166: while(true){ - r12 = r11 >> 2; - r12 = heap32[(r12)]; - r13 = (r12 + r8)|0; - r13 = r13 >> 2; - r14 = (r10 + r8)|0; - r5 = (r5 + -1)|0; - r8 = (r8 + 32)|0; - r15 = heap32[(r13)]; - r14 = r14 >> 2; - r16 = heap32[(r13+1)]; - r17 = heap32[(r13+2)]; - r18 = heap32[(r13+3)]; - r19 = heap32[(r13+4)]; - r20 = heap32[(r13+5)]; - r21 = heap32[(r13+6)]; - r13 = heap32[(r13+7)]; - heap32[(r14)] = r15; - heap32[(r14+1)] = r16; - heap32[(r14+2)] = r17; - heap32[(r14+3)] = r18; - heap32[(r14+4)] = r19; - heap32[(r14+5)] = r20; - heap32[(r14+6)] = r21; - heap32[(r14+7)] = r13; -if(!(r5 !=0)) //_LBB154_131 -{ -break _166; -} -} - r11 = (r3 + 160)|0; -} - if(r12 !=0) //_LBB154_135 -{ - r5 = heapU8[r3+164]; - if(r5 !=0) //_LBB154_137 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r8 = heap32[(r5)]; - r8 = (r8 + 1)|0; - r12 = r12 >> 2; - heap32[(r5)] = r8; - r5 = heap32[(r12+-1)]; - heap32[(g0)] = r5; - free(i7); - r5 = heap32[(r4+38)]; -} -else{ - r5 = r6; -} - r8 = r11 >> 2; - heap32[(r8)] = 0; -} -else{ - r5 = r6; -} - r8 = r11 >> 2; - heap8[r3+164] = r9; - heap32[(r8)] = r10; - heap32[(r4+39)] = r7; -__label__ = 131; -} -} -else{ -__label__ = 113; -} -if (__label__ == 113){ - r5 = r6; -} - r5 = (r5 + 1)|0; - heap32[(r4+38)] = r5; - r5 = heap32[(r4+40)]; - r7 = heap32[(fp+-24)]; - r0 = heapU16[(r0+r7)>>1]; - r6 = r6 << 5; - heap16[(r5+r6)>>1] = r0; - r0 = (r5 + r6)|0; - r5 = heapU16[(r1+2)>>1]; - heap16[(r0+2)>>1] = r5; - r5 = heapU16[(r1+4)>>1]; - heap16[(r0+4)>>1] = r5; - r5 = heapU16[(r1+6)>>1]; - heap16[(r0+6)>>1] = r5; - r5 = heapU16[(r1+8)>>1]; - heap16[(r0+8)>>1] = r5; - r1 = heapU16[(r1+10)>>1]; - r5 = r0 >> 2; - heap16[(r0+10)>>1] = r1; - r0 = heap32[(fp+-23)]; - heap32[(r5+3)] = r0; - heap32[(r5+4)] = r2; -} - r0 = heap32[(r4+38)]; - heap32[(r4+42)] = r0; - r0 = heapU8[r3+60]; - if(r0 ==0) //_LBB154_143 -{ -break _120; -} -} - r0 = heap32[(fp+-21)]; - r0 = r0 << 4; - r4 = heap32[(r4+34)]; - r4 = (r4 + r0)|0; - r0 = 0; - r4 = r4 >> 2; - r1 = heap32[(fp+-22)]; - r0 = (r0 - r1)|0; - heap32[(r4+3)] = r0; - return; -} -} while(0); - r0 = heap32[(fp+-21)]; - r0 = r0 << 6; - r1 = heap32[(r4+24)]; - r0 = (r1 + r0)|0; - r0 = r0 >> 2; - r1 = heap32[(fp+-22)]; - heap32[(r0+8)] = r1; - return; -} -} - r0 = _2E_str21; - r1 = _2E_str537; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 278; - _assert(i7); -} -else{ - r1 = heapU8[r3+60]; - if(r1 ==0) //_LBB154_5 -{ - r1 = heap32[(r4+24)]; - r2 = heap32[(r4+19)]; - r3 = r5 << 6; - r0 = r0 << 6; - r1 = (r1 + r3)|0; - r0 = (r2 + r0)|0; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 64; - memcpy(i7); -} -else{ - r0 = r0 << 4; - r1 = heap32[(r4+29)]; - r2 = heap32[(r4+34)]; - r3 = heapU16[(r1+r0)>>1]; - r5 = r5 << 4; - r0 = (r1 + r0)|0; - heap16[(r2+r5)>>1] = r3; - r1 = (r2 + r5)|0; - r2 = heapU16[(r0+2)>>1]; - heap16[(r1+2)>>1] = r2; - r2 = heapU16[(r0+4)>>1]; - heap16[(r1+4)>>1] = r2; - r2 = heapU16[(r0+6)>>1]; - heap16[(r1+6)>>1] = r2; - r2 = heapU16[(r0+8)>>1]; - heap16[(r1+8)>>1] = r2; - r2 = heapU16[(r0+10)>>1]; - r0 = r0 >> 2; - heap16[(r1+10)>>1] = r2; - r1 = r1 >> 2; - r0 = heap32[(r0+3)]; - heap32[(r1+3)] = r0; -} - r0 = heap32[(r4+14)]; - r0 = (r0 + 1)|0; - heap32[(r4+14)] = r0; - return; -} -} -else{ - r0 = _2E_str2246; - r1 = _2E_str537; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 127; - _assert(i7); -} -} - -function _ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; -var __label__ = 0; - i7 = sp + -96;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+60]; - if(r1 !=0) //_LBB155_2 -{ - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - r4 = heap32[(fp+4)]; - r5 = heap32[(fp+5)]; - r6 = heap32[(fp+6)]; - r3 = r3 >> 2; - r2 = r2 >> 2; - f0 = heapFloat[(r3)]; - f1 = heapFloat[(r2)]; - f2 = heapFloat[(r3+1)]; - f3 = heapFloat[(r2+1)]; - f0 = f0-f1; - r7 = r0 >> 2; - f1 = f2-f3; - f2 = heapFloat[(r3+2)]; - f3 = heapFloat[(r2+2)]; - r8 = heap32[(r7+34)]; - f2 = f2-f3; - f3 = f0*f0; - f4 = f1*f1; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - heapFloat[(g0)] = f3; - sqrtf(i7); - f4 = 1; - f3 = f4/f_g0; - f5 = heapFloat[(r3)]; - f6 = heapFloat[(r2)]; - f7 = heapFloat[(r3+1)]; - f8 = heapFloat[(r2+1)]; - f0 = f0*f3; - f9 = f5-f6; - f1 = f1*f3; - f10 = f7-f8; - f11 = heapFloat[(r3+2)]; - f12 = heapFloat[(r2+2)]; - f2 = f2*f3; - f3 = f11-f12; - f9 = f0*f9; - f10 = f1*f10; - f9 = f9+f10; - f3 = f2*f3; - f3 = f9+f3; - f9 = 0; - if(f0 !=f9) //_LBB155_4 -{ - f0 = f4/f0; -} -else{ - f0 = 999999984306749440; -} - if(f1 !=f9) //_LBB155_7 -{ - f1 = f4/f1; -} -else{ - f1 = 999999984306749440; -} - if(f2 !=f9) //_LBB155_10 -{ - f2 = f4/f2; -} -else{ - f2 = 999999984306749440; -} - r9 = heapU8[r0+60]; - if(r9 !=0) //_LBB155_13 -{ - r4 = r4 >> 2; - r5 = r5 >> 2; - r9 = f0 < f9; - r10 = f1 < f9; - r11 = f2 < f9; - f4 = heapFloat[(r2+3)]; - f10 = heapFloat[(r3+3)]; - f13 = f5 < f6 ? f5 : f6; - f14 = heapFloat[(r4)]; - f15 = f7 < f8 ? f7 : f8; - f16 = heapFloat[(r4+1)]; - f17 = f11 < f12 ? f11 : f12; - f18 = heapFloat[(r4+2)]; - f5 = f6 < f5 ? f5 : f6; - f6 = heapFloat[(r5)]; - f7 = f8 < f7 ? f7 : f8; - f8 = heapFloat[(r5+1)]; - f11 = f12 < f11 ? f11 : f12; - f12 = heapFloat[(r5+2)]; - r3 = r9 & 1; - r9 = r10 & 1; - r10 = r11 & 1; - f19 = f10 < f4 ? f10 : f4; - f4 = f4 < f10 ? f10 : f4; - f10 = f13+f14; - f13 = f15+f16; - f14 = f17+f18; - f5 = f5+f6; - f6 = f7+f8; - f7 = f11+f12; - r11 = sp + -16; - r12 = r11 >> 2; - heapFloat[(fp+-4)] = f10; - heapFloat[(r12+1)] = f13; - heapFloat[(r12+2)] = f14; - heapFloat[(r12+3)] = f19; - f8 = heapFloat[(r7+1)]; - if(f10 =f10)) //_LBB155_27 -{ - heapFloat[(fp+-4)] = f8; -} - f8 = heapFloat[(r7+6)]; -if(!(f8 >=f13)) //_LBB155_29 -{ - heapFloat[(r12+1)] = f8; -} - f8 = heapFloat[(r7+7)]; -if(!(f8 >=f14)) //_LBB155_31 -{ - heapFloat[(r12+2)] = f8; -} - f8 = heapFloat[(r7+8)]; -if(!(f8 >=f19)) //_LBB155_33 -{ - heapFloat[(r12+3)] = f8; -} - r12 = sp + -38; - heap32[(g0)] = r0; - heap32[(g0+1)] = r12; - heap32[(g0+2)] = r11; - heap32[(g0+3)] = 0; - _ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7); - r11 = heapU8[r0+60]; - if(r11 !=0) //_LBB155_35 -{ - r11 = sp + -32; - r12 = r11 >> 2; - heapFloat[(fp+-8)] = f5; - heapFloat[(r12+1)] = f6; - heapFloat[(r12+2)] = f7; - heapFloat[(r12+3)] = f4; - f8 = heapFloat[(r7+1)]; - if(f5 =f5)) //_LBB155_49 -{ - heapFloat[(fp+-8)] = f8; -} - f5 = heapFloat[(r7+6)]; -if(!(f5 >=f6)) //_LBB155_51 -{ - heapFloat[(r12+1)] = f5; -} - f5 = heapFloat[(r7+7)]; -if(!(f5 >=f7)) //_LBB155_53 -{ - heapFloat[(r12+2)] = f5; -} - f5 = heapFloat[(r7+8)]; -if(!(f5 >=f4)) //_LBB155_55 -{ - heapFloat[(r12+3)] = f5; -} - r12 = sp + -44; - heap32[(g0)] = r0; - heap32[(g0+1)] = r12; - heap32[(g0+2)] = r11; - heap32[(g0+3)] = 1; - r0 = r3 ^ 1; - r11 = r9 ^ 1; - r12 = r10 ^ 1; - r13 = 0; - _ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7); - r14 = r13; -_66: while(true){ - if(r13 > 2; - r16 = heap32[(r15+3)]; - r14 = (r14 + 1)|0; - r16 = r16 >>> 31; - r17 = heapU16[(sp+-38)>>1]; - r18 = heapU16[(r8+6)>>1]; - if(uint(r17) >uint(r18)) //_LBB155_64 -{ -__label__ = 55; -} -else{ - r17 = heapU16[(r8)>>1]; - r18 = heapU16[(sp+-44)>>1]; - r18 = r18 & 65535; - r17 = r17 & 65535; - if(uint(r18) >1]; - r19 = heapU16[(r8+10)>>1]; - r18 = r18 & 65535; - r19 = r19 & 65535; - if(uint(r18) >uint(r19)) //_LBB155_64 -{ -__label__ = 55; -} -else{ - r18 = heapU16[(r8+4)>>1]; - r19 = heapU16[(sp+-40)>>1]; - r19 = r19 & 65535; - r18 = r18 & 65535; - if(uint(r19) >1]; - r20 = heapU16[(r8+8)>>1]; - r19 = r19 & 65535; - r20 = r20 & 65535; - if(uint(r19) >uint(r20)) //_LBB155_64 -{ -__label__ = 55; -} -else{ - r19 = heapU16[(r8+2)>>1]; - r20 = heapU16[(sp+-42)>>1]; - r20 = r20 & 65535; - r19 = r19 & 65535; - if(uint(r20) >=uint(r19)) //_LBB155_65 -{ - f4 = uint(r17); //fuitos r17, f4 - f5 = heapFloat[(r7+9)]; - f6 = uint(r19); //fuitos r19, f6 - f7 = heapFloat[(r7+10)]; - f4 = f4/f5; - f8 = heapFloat[(r7+1)]; - f10 = heapFloat[(r7+11)]; - f11 = heapFloat[(r7+2)]; - f12 = heapFloat[(r7+3)]; - r17 = sp + -80; - f13 = uint(r18); //fuitos r18, f13 - f6 = f6/f7; - f4 = f4+f8; - f13 = f13/f10; - r18 = r17 >> 2; - f6 = f6+f11; - heapFloat[(fp+-20)] = f4; - f13 = f13+f12; - heapFloat[(r18+1)] = f6; - heapFloat[(r18+2)] = f13; - heap32[(r18+3)] = 0; - r19 = heapU16[(r8+10)>>1]; - r20 = heapU16[(r8+8)>>1]; - r21 = heapU16[(r8+6)>>1]; - heap32[(r18+7)] = 0; - f14 = heapFloat[(r5)]; - f4 = f4-f14; - heapFloat[(fp+-20)] = f4; - f4 = heapFloat[(r5+1)]; - f4 = f6-f4; - heapFloat[(r18+1)] = f4; - f4 = heapFloat[(r5+2)]; - f6 = uint(r21); //fuitos r21, f6 - f4 = f13-f4; - f5 = f6/f5; - heapFloat[(r18+2)] = f4; - f4 = f5+f8; - f5 = heapFloat[(r4)]; - f6 = uint(r20); //fuitos r20, f6 - f4 = f4-f5; - f5 = f6/f7; - heapFloat[(r18+4)] = f4; - f4 = f5+f11; - f5 = heapFloat[(r4+1)]; - f6 = uint(r19); //fuitos r19, f6 - f4 = f4-f5; - f5 = f6/f10; - heapFloat[(r18+5)] = f4; - r19 = r3 << 4; - r20 = r11 << 4; - f4 = f5+f12; - f5 = heapFloat[(r4+2)]; - r19 = (r17 + r19)|0; - r20 = (r17 + r20)|0; - f4 = f4-f5; - r19 = r19 >> 2; - heapFloat[(r18+6)] = f4; - r18 = r20 >> 2; - f4 = heapFloat[(r19)]; - f5 = heapFloat[(r2)]; - f6 = heapFloat[(r18+1)]; - f7 = heapFloat[(r2+1)]; - f4 = f4-f5; - f6 = f6-f7; - f4 = f4*f0; - f6 = f6*f1; - if(f4 >f6) //_LBB155_64 -{ -__label__ = 55; -} -else{ - r18 = r0 << 4; - r19 = r9 << 4; - r18 = (r17 + r18)|0; - r19 = (r17 + r19)|0; - r18 = r18 >> 2; - r19 = r19 >> 2; - f8 = heapFloat[(r18)]; - f10 = heapFloat[(r19+1)]; - f5 = f8-f5; - f7 = f10-f7; - f5 = f5*f0; - f7 = f7*f1; - if(f7 >f5) //_LBB155_64 -{ -__label__ = 55; -} -else{ - r18 = r12 << 4; - r18 = (r17 + r18)|0; - r18 = r18 >> 2; - f8 = heapFloat[(r18+2)]; - f10 = heapFloat[(r2+2)]; - f8 = f8-f10; - f4 = f4 < f7 ? f7 : f4; - f7 = f8*f2; - if(f4 >f7) //_LBB155_64 -{ -__label__ = 55; -} -else{ - r18 = r10 << 4; - r17 = (r17 + r18)|0; - r17 = r17 >> 2; - f8 = heapFloat[(r17+2)]; - f8 = f8-f10; - f5 = f6 < f5 ? f6 : f5; - f6 = f8*f2; - if(f6 >f5) //_LBB155_64 -{ -__label__ = 55; -} -else{ - f4 = f4 < f6 ? f6 : f4; - f5 = f7 < f5 ? f7 : f5; - r17 = f4 >= f3; - r18 = f5 <= f9; - r17 = r17 | r18; - r18 = r17 & 1; - r17 = r18 ^ 1; - if(r16 != 0) //_LBB155_71 -{ -__label__ = 65; -} -else{ - if(r18 ==0) //_LBB155_72 -{ - r18 = heap32[(r15+3)]; - if(r18 >-1) //_LBB155_74 -{ - r19 = r1 >> 2; - r19 = heap32[(r19)]; - r19 = r19 >> 2; - r19 = heap32[(r19+2)]; - r20 = r18 >> 21; - r18 = r18 & 2097151; - heap32[(g0)] = r1; - heap32[(g0+1)] = r20; - heap32[(g0+2)] = r18; - __FUNCTION_TABLE__[(r19)>>2](i7); -__label__ = 65; -} -else{ -__label__ = 63; -break _66; -} -} -else{ -__label__ = 65; -} -} -} -} -} -} -} -else{ -__label__ = 55; -} -} -} -} -} -} -if (__label__ == 55){ - r17 = 0; -} -if(!(r17 !=0)) //_LBB155_77 -{ - if(r16 != 0) //_LBB155_78 -{ - r15 = heap32[(r15+3)]; - if(r15 <0) //_LBB155_80 -{ - r16 = r15 << 4; - r8 = (r8 - r16)|0; - r13 = (r13 - r15)|0; -continue _66; -} -else{ -__label__ = 69; -break _66; -} -} -} - r8 = (r8 + 16)|0; - r13 = (r13 + 1)|0; -} -else{ -__label__ = 48; -break _66; -} -} -else{ -__label__ = 72; -break _66; -} -} -switch(__label__ ){//multiple entries -case 72: - r0 = maxIterations; - r0 = r0 >> 2; - r1 = heap32[(r0)]; -if(!(r1 >=r14)) //_LBB155_84 -{ - heap32[(r0)] = r14; -} - return; -break; -case 69: - r0 = _2E_str941; - r1 = _2E_str313; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 75; - _assert(i7); -break; -case 63: - r0 = _2E_str739; - r1 = _2E_str313; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 80; - _assert(i7); -break; -case 48: - r0 = _2E_str1143; - r1 = _2E_str537; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 606; - _assert(i7); -break; -} -} -} - r0 = _2E_str212; - r1 = _2E_str313; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 420; - _assert(i7); -} -else{ - r0 = _2E_str212; - r1 = _2E_str537; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 543; - _assert(i7); -} -} - -function _ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; -var __label__ = 0; - i7 = sp + -48;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+60]; - if(r1 ==0) //_LBB156_2 -{ - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - r4 = heap32[(fp+4)]; - r5 = heap32[(fp+5)]; - r3 = r3 >> 2; - r2 = r2 >> 2; - f0 = heapFloat[(r2)]; - f1 = heapFloat[(r3)]; - f2 = heapFloat[(r3+1)]; - f3 = heapFloat[(r2+1)]; - r4 = r4 >> 2; - r5 = r5 >> 2; - f4 = f1-f0; - r0 = r0 >> 2; - f5 = f2-f3; - f6 = heapFloat[(r3+2)]; - f7 = heapFloat[(r2+2)]; - r6 = heap32[(r0+24)]; - f8 = f6-f7; - f9 = f4*f4; - f10 = f5*f5; - f11 = heapFloat[(r4)]; - f12 = heapFloat[(r4+1)]; - f13 = heapFloat[(r4+2)]; - f14 = heapFloat[(r5)]; - f15 = heapFloat[(r5+1)]; - f16 = heapFloat[(r5+2)]; - f9 = f9+f10; - f10 = f8*f8; - f9 = f9+f10; - heapFloat[(g0)] = f9; - sqrtf(i7); - f10 = 1; - f9 = f10/f_g0; - f17 = heapFloat[(r3)]; - f18 = heapFloat[(r2)]; - f19 = heapFloat[(r3+1)]; - f20 = heapFloat[(r2+1)]; - f4 = f4*f9; - f17 = f17-f18; - f5 = f5*f9; - f18 = f19-f20; - f19 = heapFloat[(r3+2)]; - f20 = heapFloat[(r2+2)]; - f8 = f8*f9; - f9 = f19-f20; - f17 = f4*f17; - f18 = f5*f18; - f19 = f1 < f0 ? f1 : f0; - f20 = f2 < f3 ? f2 : f3; - f21 = f6 < f7 ? f6 : f7; - f0 = f0 < f1 ? f1 : f0; - f1 = f3 < f2 ? f2 : f3; - f2 = f7 < f6 ? f6 : f7; - f3 = f17+f18; - f6 = f8*f9; - f7 = f19+f11; - f9 = f20+f12; - f11 = f21+f13; - f0 = f0+f14; - f1 = f1+f15; - f2 = f2+f16; - f3 = f3+f6; - f6 = 0; - if(f4 !=f6) //_LBB156_4 -{ - f4 = f10/f4; -} -else{ - f4 = 999999984306749440; -} - if(f5 !=f6) //_LBB156_7 -{ - f5 = f10/f5; -} -else{ - f5 = 999999984306749440; -} - if(f8 !=f6) //_LBB156_10 -{ - f8 = f10/f8; -} -else{ - f8 = 999999984306749440; -} - r3 = f4 < f6; - r7 = f5 < f6; - r8 = f8 < f6; - r3 = r3 & 1; - r7 = r7 & 1; - r8 = r8 & 1; - r9 = r3 ^ 1; - r10 = r7 ^ 1; - r11 = r8 ^ 1; - r12 = 0; - r13 = r12; -_15: while(true){ - r14 = heap32[(r0+14)]; - if(r14 >r12) //_LBB156_12 -{ - if(r14 >r13) //_LBB156_14 -{ - r14 = r6 >> 2; - f10 = heapFloat[(r14)]; - r15 = sp + -32; - heapFloat[(fp+-8)] = f10; - r16 = r15 >> 2; - f12 = heapFloat[(r14+1)]; - heapFloat[(r16+1)] = f12; - f13 = heapFloat[(r14+2)]; - heapFloat[(r16+2)] = f13; - heap32[(r16+3)] = heap32[(r14+3)]; - f14 = heapFloat[(r14+4)]; - heapFloat[(r16+4)] = f14; - f15 = heapFloat[(r14+5)]; - heapFloat[(r16+5)] = f15; - f16 = heapFloat[(r14+6)]; - heapFloat[(r16+6)] = f16; - heap32[(r16+7)] = heap32[(r14+7)]; - f17 = heapFloat[(r5)]; - f10 = f10-f17; - heapFloat[(fp+-8)] = f10; - f10 = heapFloat[(r5+1)]; - f10 = f12-f10; - heapFloat[(r16+1)] = f10; - f10 = heapFloat[(r5+2)]; - f10 = f13-f10; - heapFloat[(r16+2)] = f10; - f10 = heapFloat[(r4)]; - f10 = f14-f10; - heapFloat[(r16+4)] = f10; - f10 = heapFloat[(r4+1)]; - f10 = f15-f10; - heapFloat[(r16+5)] = f10; - f10 = heapFloat[(r4+2)]; - r13 = (r13 + 1)|0; - f10 = f16-f10; - heapFloat[(r16+6)] = f10; - f10 = heapFloat[(r14+4)]; - if(f7 >f10) //_LBB156_17 -{ -__label__ = 17; -} -else{ - f10 = heapFloat[(r14)]; - if(f0 f10) //_LBB156_21 -{ -__label__ = 20; -} -else{ - f10 = heapFloat[(r14+2)]; - if(f2 f10) //_LBB156_32 -{ -__label__ = 30; -} -else{ - f10 = heapFloat[(r14+1)]; - if(f1 > 2; - r17 = r17 >> 2; - f10 = heapFloat[(r16)]; - f12 = heapFloat[(r2)]; - f13 = heapFloat[(r17+1)]; - f14 = heapFloat[(r2+1)]; - f10 = f10-f12; - f13 = f13-f14; - f10 = f10*f4; - f13 = f13*f5; - if(f10 >f13) //_LBB156_32 -{ -__label__ = 30; -} -else{ - r16 = r9 << 4; - r17 = r7 << 4; - r16 = (r15 + r16)|0; - r17 = (r15 + r17)|0; - r16 = r16 >> 2; - r17 = r17 >> 2; - f15 = heapFloat[(r16)]; - f16 = heapFloat[(r17+1)]; - f12 = f15-f12; - f14 = f16-f14; - f12 = f12*f4; - f14 = f14*f5; - if(f14 >f12) //_LBB156_32 -{ -__label__ = 30; -} -else{ - r16 = r11 << 4; - r16 = (r15 + r16)|0; - r16 = r16 >> 2; - f15 = heapFloat[(r16+2)]; - f16 = heapFloat[(r2+2)]; - f15 = f15-f16; - f10 = f10 < f14 ? f14 : f10; - f14 = f15*f8; - if(f10 >f14) //_LBB156_32 -{ -__label__ = 30; -} -else{ - r16 = r8 << 4; - r15 = (r15 + r16)|0; - r15 = r15 >> 2; - f15 = heapFloat[(r15+2)]; - f15 = f15-f16; - f12 = f13 < f12 ? f13 : f12; - f13 = f15*f8; - if(f13 >f12) //_LBB156_32 -{ -__label__ = 30; -} -else{ - f10 = f10 < f13 ? f13 : f10; - f12 = f14 < f12 ? f14 : f12; - r15 = f10 >= f3; - r16 = f12 <= f6; - r15 = r15 | r16; - r16 = r15 & 1; - r17 = heap32[(r14+8)]; - r18 = -1; - r16 = r16 ^ 1; - r19 = r17 == r18; - if(r15 != 0) //_LBB156_31 -{ -__label__ = 32; -} -else{ - r15 = r17 != r18; - r15 = r15 & 1; - if(r15 ==0) //_LBB156_33 -{ - r15 = r1 >> 2; - r15 = heap32[(r15)]; - r15 = r15 >> 2; - r15 = heap32[(r15+2)]; - r17 = heap32[(r14+10)]; - r18 = heap32[(r14+9)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r18; - heap32[(g0+2)] = r17; - __FUNCTION_TABLE__[(r15)>>2](i7); -__label__ = 32; -} -else{ -__label__ = 32; -} -} -} -} -} -} -} -} -} -if (__label__ == 30){ - r16 = heap32[(r14+8)]; - r19 = -1; - r19 = r16 == r19; - r16 = 0; -} -if(!(r16 !=0)) //_LBB156_36 -{ - r15 = r19 & 1; - if(r15 ==0) //_LBB156_37 -{ - r14 = heap32[(r14+8)]; - r15 = r14 << 6; - r6 = (r6 + r15)|0; - r12 = (r14 + r12)|0; -continue _15; -} -} - r6 = (r6 + 64)|0; - r12 = (r12 + 1)|0; -} -else{ -__label__ = 13; -break _15; -} -} -else{ -__label__ = 37; -break _15; -} -} -switch(__label__ ){//multiple entries -case 37: - r0 = maxIterations; - r0 = r0 >> 2; - r1 = heap32[(r0)]; -if(!(r1 >=r13)) //_LBB156_41 -{ - heap32[(r0)] = r13; -} - return; -break; -case 13: - r0 = _2E_str1921; - r1 = _2E_str537; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 490; - _assert(i7); -break; -} -} -else{ - r0 = _2E_str1844; - r1 = _2E_str537; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 451; - _assert(i7); -} -} - -function _ZN30btActivatingCollisionAlgorithmD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV30btActivatingCollisionAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN30btActivatingCollisionAlgorithmD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV30btActivatingCollisionAlgorithm; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var f0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - f0 = 1; - f_g0 = f0; - return; -} - -function _ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+3)]; -if(!(r2 ==0)) //_LBB160_23 -{ - r0 = heapU8[r0+8]; -if(!(r0 ==0)) //_LBB160_23 -{ - r0 = heap32[(fp+1)]; - r3 = r0 >> 2; - r4 = heap32[(r3+2)]; - r5 = heap32[(r3+1)]; - if(r4 ==r5) //_LBB160_4 -{ - r6 = 1; - r7 = r5 << 1; - r7 = r5 == 0 ? r6 : r7; -if(!(r4 >=r7)) //_LBB160_3 -{ - if(r7 !=0) //_LBB160_7 -{ - r2 = gNumAlignedAllocs; - r2 = r2 >> 2; - r4 = heap32[(r2)]; - r8 = r7 << 2; - r4 = (r4 + 1)|0; - r8 = r8 | 3; - heap32[(r2)] = r4; - r2 = (r8 + 16)|0; - heap32[(g0)] = r2; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB160_9 -{ - r4 = 0; - r8 = (r2 + 4)|0; - r4 = (r4 - r8)|0; - r4 = r4 & 15; - r4 = (r2 + r4)|0; - r8 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r2; - r2 = r8; -} -} -else{ - r2 = 0; -} - r4 = (r0 + 12)|0; - if(r5 <1) //_LBB160_12 -{ - r8 = r4 >> 2; - r9 = heap32[(r8)]; -} -else{ - r8 = 0; -_15: while(true){ - r9 = r4 >> 2; - r9 = heap32[(r9)]; - r10 = r8 << 2; - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - r10 = (r2 + r10)|0; - r11 = heap32[(r11)]; - r8 = (r8 + 1)|0; - r10 = r10 >> 2; - heap32[(r10)] = r11; -if(!(r5 !=r8)) //_LBB160_13 -{ -break _15; -} -} - r4 = (r0 + 12)|0; -} - if(r9 !=0) //_LBB160_17 -{ - r8 = heapU8[r0+16]; - if(r8 !=0) //_LBB160_19 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r8 = heap32[(r5)]; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r5)] = r8; - r5 = heap32[(r9+-1)]; - heap32[(g0)] = r5; - free(i7); - r5 = heap32[(r3+1)]; -} - r8 = r4 >> 2; - heap32[(r8)] = 0; -} - r4 = r4 >> 2; - heap8[r0+16] = r6; - heap32[(r4)] = r2; - heap32[(r3+2)] = r7; - r2 = heap32[(r1+3)]; -} -} - r0 = r5 << 2; - r1 = heap32[(r3+3)]; - r0 = (r1 + r0)|0; - r0 = r0 >> 2; - heap32[(r0)] = r2; - r0 = heap32[(r3+1)]; - r0 = (r0 + 1)|0; - heap32[(r3+1)] = r0; -} -} - return; -} - -function _ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; -var __label__ = 0; - i7 = sp + -176;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1+3)]; -if(!(r1 ==0)) //_LBB161_8 -{ - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+3)]; - r5 = heap32[(fp+4)]; - r3 = r3 >> 2; - r2 = r2 >> 2; - r6 = heap32[(r3+48)]; - r7 = heap32[(r2+48)]; - r8 = sp + -136; - r9 = r5 >> 2; - r10 = r8 >> 2; - heap32[(r9+1)] = r1; - heap32[(r10+33)] = 0; - heap32[(r10+32)] = 1566444395; - heap32[(fp+-34)] = heap32[(r2+1)]; - heap32[(r10+1)] = heap32[(r2+2)]; - heap32[(r10+2)] = heap32[(r2+3)]; - heap32[(r10+3)] = heap32[(r2+4)]; - heap32[(r10+4)] = heap32[(r2+5)]; - heap32[(r10+5)] = heap32[(r2+6)]; - heap32[(r10+6)] = heap32[(r2+7)]; - heap32[(r10+7)] = heap32[(r2+8)]; - heap32[(r10+8)] = heap32[(r2+9)]; - heap32[(r10+9)] = heap32[(r2+10)]; - heap32[(r10+10)] = heap32[(r2+11)]; - heap32[(r10+11)] = heap32[(r2+12)]; - heap32[(r10+12)] = heap32[(r2+13)]; - heap32[(r10+13)] = heap32[(r2+14)]; - heap32[(r10+14)] = heap32[(r2+15)]; - heap32[(r10+15)] = heap32[(r2+16)]; - heap32[(r10+16)] = heap32[(r3+1)]; - heap32[(r10+17)] = heap32[(r3+2)]; - heap32[(r10+18)] = heap32[(r3+3)]; - heap32[(r10+19)] = heap32[(r3+4)]; - heap32[(r10+20)] = heap32[(r3+5)]; - heap32[(r10+21)] = heap32[(r3+6)]; - heap32[(r10+22)] = heap32[(r3+7)]; - heap32[(r10+23)] = heap32[(r3+8)]; - heap32[(r10+24)] = heap32[(r3+9)]; - heap32[(r10+25)] = heap32[(r3+10)]; - heap32[(r10+26)] = heap32[(r3+11)]; - heap32[(r10+27)] = heap32[(r3+12)]; - heap32[(r10+28)] = heap32[(r3+13)]; - heap32[(r10+29)] = heap32[(r3+14)]; - r1 = _ZTV16btBoxBoxDetector; - heap32[(r10+30)] = heap32[(r3+15)]; - r2 = sp + -152; - r1 = (r1 + 8)|0; - heap32[(r10+31)] = heap32[(r3+16)]; - r3 = r2 >> 2; - heap32[(fp+-38)] = r1; - heap32[(r3+1)] = r7; - r1 = r4 >> 2; - heap32[(r3+2)] = r6; - r1 = heap32[(r1+5)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r1; - heap32[(g0+4)] = 0; - _ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7); - r0 = heapU8[r0+8]; -if(!(r0 ==0)) //_LBB161_8 -{ - r0 = heap32[(r9+1)]; - if(r0 !=0) //_LBB161_4 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+279)]; -if(!(r2 ==0)) //_LBB161_8 -{ - r1 = heap32[(r1+277)]; - r2 = heap32[(r9+34)]; - if(r1 ==r2) //_LBB161_7 -{ - r1 = (r5 + 8)|0; - r2 = (r5 + 72)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); -} -else{ - r1 = (r5 + 72)|0; - r5 = (r5 + 8)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r5; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); - return; -} -} -} -else{ - r0 = _2E_str59; - r5 = _2E_str160; - heap32[(g0)] = r0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = 101; - _assert(i7); -} -} -} - return; -} - -function _ZN26btBoxBoxCollisionAlgorithmD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV26btBoxBoxCollisionAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heapU8[r0+8]; -if(!(r1 ==0)) //_LBB162_3 -{ - r1 = heap32[(r2+3)]; -if(!(r1 ==0)) //_LBB162_3 -{ - r3 = heap32[(r2+1)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r1; - __FUNCTION_TABLE__[(r4)>>2](i7); -} -} - r1 = _ZTV30btActivatingCollisionAlgorithm; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN26btBoxBoxCollisionAlgorithmD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV26btBoxBoxCollisionAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r0 = heapU8[r0+8]; -if(!(r0 ==0)) //_LBB163_3 -{ - r0 = heap32[(r2+3)]; -if(!(r0 ==0)) //_LBB163_3 -{ - r1 = heap32[(r2+1)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); -} -} - r0 = _ZTV30btActivatingCollisionAlgorithm; - r0 = (r0 + 8)|0; - heap32[(r2)] = r0; - return; -} - -function _ZN16btBoxBoxDetectorD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV16btBoxBoxDetector; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN16btBoxBoxDetectorD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV16btBoxBoxDetector; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; - var r24; - var r25; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -808;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = sp + -640; - heap32[(fp+-160)] = heap32[(r1)]; - r3 = sp + -688; - heap32[(fp+-172)] = heap32[(r1+16)]; - r4 = r2 >> 2; - r5 = r3 >> 2; - heap32[(r4+1)] = heap32[(r1+1)]; - heap32[(r5+1)] = heap32[(r1+17)]; - heap32[(r4+2)] = heap32[(r1+2)]; - heap32[(r5+2)] = heap32[(r1+18)]; - heap32[(r4+4)] = heap32[(r1+4)]; - heap32[(r5+4)] = heap32[(r1+20)]; - heap32[(r4+5)] = heap32[(r1+5)]; - heap32[(r5+5)] = heap32[(r1+21)]; - heap32[(r4+6)] = heap32[(r1+6)]; - heap32[(r5+6)] = heap32[(r1+22)]; - heap32[(r4+8)] = heap32[(r1+8)]; - heap32[(r5+8)] = heap32[(r1+24)]; - heap32[(r4+9)] = heap32[(r1+9)]; - heap32[(r5+9)] = heap32[(r1+25)]; - r6 = heap32[(fp)]; - heap32[(r4+10)] = heap32[(r1+10)]; - r6 = r6 >> 2; - heap32[(r5+10)] = heap32[(r1+26)]; - r7 = heap32[(r6+2)]; - r8 = r7 >> 2; - r9 = heap32[(r8)]; - r9 = r9 >> 2; - r9 = heap32[(r9+11)]; - f0 = heapFloat[(r8+7)]; - f1 = heapFloat[(r8+8)]; - f2 = heapFloat[(r8+9)]; - heap32[(g0)] = r7; - __FUNCTION_TABLE__[(r9)>>2](i7); - f3 = f_g0; - r9 = heap32[(r8)]; - r9 = r9 >> 2; - r9 = heap32[(r9+11)]; - heap32[(g0)] = r7; - __FUNCTION_TABLE__[(r9)>>2](i7); - f4 = f_g0; - r8 = heap32[(r8)]; - r8 = r8 >> 2; - r8 = heap32[(r8+11)]; - heap32[(g0)] = r7; - __FUNCTION_TABLE__[(r8)>>2](i7); - f5 = f_g0; - r6 = heap32[(r6+1)]; - r7 = r6 >> 2; - r8 = heap32[(r7)]; - r8 = r8 >> 2; - f6 = heapFloat[(r7+8)]; - r8 = heap32[(r8+11)]; - f7 = heapFloat[(r7+9)]; - f8 = heapFloat[(r7+7)]; - heap32[(g0)] = r6; - __FUNCTION_TABLE__[(r8)>>2](i7); - f9 = f_g0; - r8 = heap32[(r7)]; - r8 = r8 >> 2; - r8 = heap32[(r8+11)]; - heap32[(g0)] = r6; - __FUNCTION_TABLE__[(r8)>>2](i7); - f10 = f_g0; - r7 = heap32[(r7)]; - r7 = r7 >> 2; - r7 = heap32[(r7+11)]; - heap32[(g0)] = r6; - __FUNCTION_TABLE__[(r7)>>2](i7); - f8 = f8+f_g0; - f6 = f6+f10; - f8 = f8+f8; - f10 = 0.5; - heapFloat[(fp+-187)] = f10; - f11 = heapFloat[(r1+30)]; - f12 = heapFloat[(r1+14)]; - f13 = heapFloat[(r1+29)]; - f14 = heapFloat[(r1+13)]; - f15 = heapFloat[(r1+28)]; - f16 = heapFloat[(r1+12)]; - f17 = heapFloat[(fp+-160)]; - f18 = heapFloat[(r4+4)]; - f19 = heapFloat[(r4+8)]; - f20 = heapFloat[(r4+1)]; - f21 = heapFloat[(r4+5)]; - f22 = heapFloat[(r4+9)]; - f23 = heapFloat[(r4+2)]; - f24 = heapFloat[(r4+6)]; - f25 = heapFloat[(r4+10)]; - r4 = sp + -236; - f7 = f7+f9; - f6 = f6+f6; - f8 = f8*f10; - heapFloat[(fp+-179)] = f8; - f0 = f0+f5; - f5 = f7+f7; - f6 = f6*f10; - heapFloat[(fp+-178)] = f6; - r6 = r4 >> 2; - heapFloat[(fp+-59)] = f8; - f1 = f1+f4; - f0 = f0+f0; - f4 = f5*f10; - heapFloat[(fp+-177)] = f4; - heapFloat[(r6+1)] = f6; - r7 = sp + -248; - heap32[(fp+-186)] = r7; - f2 = f2+f3; - f1 = f1+f1; - f0 = f0*f10; - heapFloat[(fp+-181)] = f0; - heapFloat[(r6+2)] = f4; - f2 = f2+f2; - f1 = f1*f10; - heapFloat[(fp+-182)] = f1; - r6 = r7 >> 2; - heapFloat[(fp+-62)] = f0; - f0 = f2*f10; - heapFloat[(fp+-180)] = f0; - heapFloat[(r6+1)] = f1; - heapFloat[(r6+2)] = f0; - f0 = f15-f16; - heapFloat[(fp+-183)] = f0; - f1 = f13-f14; - heapFloat[(fp+-184)] = f1; - f2 = heapFloat[(fp+-172)]; - heapFloat[(fp+-194)] = f2; - f3 = heapFloat[(r5+4)]; - heapFloat[(fp+-195)] = f3; - f4 = heapFloat[(r5+1)]; - heapFloat[(fp+-191)] = f4; - f5 = heapFloat[(r5+5)]; - heapFloat[(fp+-192)] = f5; - f6 = heapFloat[(r5+2)]; - heapFloat[(fp+-188)] = f6; - f7 = heapFloat[(r5+6)]; - heapFloat[(fp+-189)] = f7; - f8 = f11-f12; - heapFloat[(fp+-185)] = f8; - f9 = heapFloat[(r5+8)]; - heapFloat[(fp+-196)] = f9; - f10 = heapFloat[(r5+9)]; - heapFloat[(fp+-193)] = f10; - f11 = heapFloat[(r5+10)]; - heapFloat[(fp+-190)] = f11; - f12 = f17*f2; - f13 = f18*f3; - f14 = f17*f0; - f15 = f18*f1; - f16 = f20*f0; - f26 = f21*f1; - f0 = f23*f0; - heapFloat[(fp+-198)] = f0; - f1 = f24*f1; - f27 = f17*f4; - f28 = f18*f5; - f17 = f17*f6; - f18 = f18*f7; - f29 = f20*f2; - f30 = f21*f3; - f0 = f20*f4; - heapFloat[(fp+-197)] = f0; - f0 = f21*f5; - f20 = f20*f6; - f21 = f21*f7; - f2 = f23*f2; - f3 = f24*f3; - f4 = f23*f4; - f5 = f24*f5; - f6 = f23*f6; - f7 = f24*f7; - f12 = f12+f13; - f13 = f19*f9; - f14 = f14+f15; - f15 = f19*f8; - f16 = f16+f26; - f23 = f22*f8; - f24 = heapFloat[(fp+-198)]; - f1 = f24+f1; - f8 = f25*f8; - f24 = f27+f28; - f26 = f19*f10; - f17 = f17+f18; - f18 = f19*f11; - f19 = f29+f30; - f27 = f22*f9; - f28 = heapFloat[(fp+-197)]; - f0 = f28+f0; - f28 = f22*f10; - f20 = f20+f21; - f21 = f22*f11; - f2 = f2+f3; - f3 = f25*f9; - f4 = f4+f5; - f5 = f25*f10; - f6 = f6+f7; - f7 = f25*f11; - f9 = f12+f13; - r5 = heap32[(fp+2)]; - r6 = (r2 + 4)|0; - r7 = (r3 + 4)|0; - r8 = (r2 + 8)|0; - r9 = (r3 + 8)|0; - r10 = (r0 + 112)|0; - r0 = (r0 + 48)|0; - f10 = f14+f15; - f11 = f16+f23; - f1 = f1+f8; - f8 = f24+f26; - f12 = f17+f18; - f13 = f19+f27; - f0 = f0+f28; - f14 = f20+f21; - f2 = f2+f3; - f3 = f4+f5; - f4 = f6+f7; - f5 = 0; - if(f9 f5)) //_LBB166_268 -{ - f23 = -3.4028234663852886e+038; - if(f22 >f23) //_LBB166_33 -{ - f23 = 0; - r11 = f10 < f23; - r13 = sp + -640; - r11 = r11 & 1; - r12 = 1; - f23 = f22; -} -else{ - r11 = 0; - r12 = r11; - r13 = r11; -} - if(f11 f5)) //_LBB166_268 -{ - if(f22 >f23) //_LBB166_40 -{ - f23 = 0; - r11 = f11 < f23; - r11 = r11 & 1; - r12 = 2; - f23 = f22; - r13 = r6; -} - if(f1 f5)) //_LBB166_268 -{ - if(f22 >f23) //_LBB166_47 -{ - f23 = 0; - r11 = f1 < f23; - r11 = r11 & 1; - r12 = 3; - f23 = f22; - r13 = r8; -} - f24 = heapFloat[(fp+-183)]; - f22 = heapFloat[(fp+-194)]; - f22 = f22*f24; - f25 = heapFloat[(fp+-184)]; - f24 = heapFloat[(fp+-195)]; - f24 = f24*f25; - f22 = f22+f24; - f25 = heapFloat[(fp+-185)]; - f24 = heapFloat[(fp+-196)]; - f24 = f24*f25; - f22 = f22+f24; - if(f22 f5)) //_LBB166_268 -{ - if(f24 >f23) //_LBB166_54 -{ - f23 = 0; - r11 = f22 < f23; - r13 = sp + -688; - r11 = r11 & 1; - r12 = 4; - f23 = f24; -} - f24 = heapFloat[(fp+-183)]; - f22 = heapFloat[(fp+-191)]; - f22 = f22*f24; - f25 = heapFloat[(fp+-184)]; - f24 = heapFloat[(fp+-192)]; - f24 = f24*f25; - f22 = f22+f24; - f25 = heapFloat[(fp+-185)]; - f24 = heapFloat[(fp+-193)]; - f24 = f24*f25; - f22 = f22+f24; - if(f22 f5)) //_LBB166_268 -{ - if(f24 >f23) //_LBB166_61 -{ - f23 = 0; - r11 = f22 < f23; - r11 = r11 & 1; - r12 = 5; - f23 = f24; - r13 = r7; -} - f24 = heapFloat[(fp+-183)]; - f22 = heapFloat[(fp+-188)]; - f22 = f22*f24; - f25 = heapFloat[(fp+-184)]; - f24 = heapFloat[(fp+-189)]; - f24 = f24*f25; - f22 = f22+f24; - f25 = heapFloat[(fp+-185)]; - f24 = heapFloat[(fp+-190)]; - f24 = f24*f25; - f22 = f22+f24; - if(f22 f5)) //_LBB166_268 -{ - if(f24 >f23) //_LBB166_68 -{ - f23 = 0; - r11 = f22 < f23; - r11 = r11 & 1; - r12 = 6; - f23 = f24; - r13 = r9; -} - f22 = f1*f13; - f24 = f11*f2; - f25 = 9.9999997473787516e-006; - f22 = f22-f24; - f6 = f6+f25; - f7 = f7+f25; - f15 = f15+f25; - heapFloat[(fp+-183)] = f15; - f15 = f16+f25; - f16 = f17+f25; - f17 = f18+f25; - f18 = f19+f25; - heapFloat[(fp+-184)] = f18; - f18 = f20+f25; - heapFloat[(fp+-185)] = f18; - f18 = f21+f25; - if(f22 f20)) //_LBB166_268 -{ - f21 = f2*f2; - f21 = f21+f5; - f24 = f13*f13; - heapFloat[(fp+-188)] = f24; - f24 = f21+f24; - heapFloat[(g0)] = f24; - sqrtf(i7); - f24 = f_g0; - if(f24 >f20) //_LBB166_75 -{ - f25 = f19/f24; - f19 = 1.0499999523162842; - f19 = f25*f19; - if(f19 <=f23) //_LBB166_74 -{ -__label__ = 69; -} -else{ - f19 = 0; - f23 = -f2; - r11 = f22 < f19; - f19 = f19/f24; - f22 = f23/f24; - f24 = f13/f24; - r11 = r11 & 1; - r12 = 7; - r13 = 0; - f23 = f25; -__label__ = 72; -} -} -else{ -__label__ = 69; -} -if (__label__ == 69){ - f19 = f5; - f22 = f5; - f24 = f5; -} - f25 = f1*f0; - f26 = f11*f3; - f25 = f25-f26; - if(f25 f20)) //_LBB166_268 -{ - f26 = f3*f3; - f27 = 0; - f26 = f26+f27; - f28 = f0*f0; - heapFloat[(fp+-189)] = f28; - f28 = f26+f28; - heapFloat[(g0)] = f28; - sqrtf(i7); - f28 = f_g0; - if(f28 >f20) //_LBB166_83 -{ - f5 = f5/f28; - f29 = 1.0499999523162842; - f29 = f5*f29; -if(!(f29 <=f23)) //_LBB166_82 -{ - f19 = 0; - f22 = -f3; - r11 = f25 < f19; - f19 = f19/f28; - f22 = f22/f28; - f24 = f0/f28; - r11 = r11 & 1; - r12 = 8; - r13 = 0; - f23 = f5; -} -} - f5 = f1*f14; - f25 = f11*f4; - f5 = f5-f25; - if(f5 f20)) //_LBB166_268 -{ - f28 = f4*f4; - f28 = f28+f27; - f29 = f14*f14; - heapFloat[(fp+-190)] = f29; - f29 = f28+f29; - heapFloat[(g0)] = f29; - sqrtf(i7); - f29 = f_g0; - if(f29 >f20) //_LBB166_91 -{ - f25 = f25/f29; - f30 = 1.0499999523162842; - f30 = f25*f30; -if(!(f30 <=f23)) //_LBB166_90 -{ - f19 = 0; - f22 = -f4; - r11 = f5 < f19; - f19 = f19/f29; - f22 = f22/f29; - f24 = f14/f29; - r11 = r11 & 1; - r12 = 9; - r13 = 0; - f23 = f25; -} -} - f5 = f10*f2; - f25 = f1*f9; - f5 = f5-f25; - if(f5 f20)) //_LBB166_268 -{ - f29 = f9*f9; - f21 = f21+f29; - heapFloat[(g0)] = f21; - sqrtf(i7); - f21 = f_g0; - if(f21 >f20) //_LBB166_99 -{ - f25 = f25/f21; - f30 = 1.0499999523162842; - f30 = f25*f30; -if(!(f30 <=f23)) //_LBB166_98 -{ - f22 = 0; - f23 = -f9; - r11 = f5 < f22; - f19 = f2/f21; - f22 = f22/f21; - f24 = f23/f21; - r11 = r11 & 1; - r12 = 10; - r13 = 0; - f23 = f25; -} -} - f2 = f10*f3; - f5 = f1*f8; - f2 = f2-f5; - if(f2 f20)) //_LBB166_268 -{ - f21 = f8*f8; - f25 = f26+f21; - heapFloat[(g0)] = f25; - sqrtf(i7); - f25 = f_g0; - if(f25 >f20) //_LBB166_107 -{ - f5 = f5/f25; - f26 = 1.0499999523162842; - f26 = f5*f26; -if(!(f26 <=f23)) //_LBB166_106 -{ - f22 = 0; - f23 = -f8; - r11 = f2 < f22; - f19 = f3/f25; - f22 = f22/f25; - f24 = f23/f25; - r11 = r11 & 1; - r12 = 11; - r13 = 0; - f23 = f5; -} -} - f2 = f10*f4; - f1 = f1*f12; - f1 = f2-f1; - if(f1 f20)) //_LBB166_268 -{ - f3 = f12*f12; - f5 = f28+f3; - heapFloat[(g0)] = f5; - sqrtf(i7); - f5 = f_g0; - if(f5 >f20) //_LBB166_115 -{ - f2 = f2/f5; - f25 = 1.0499999523162842; - f25 = f2*f25; -if(!(f25 <=f23)) //_LBB166_114 -{ - f22 = 0; - f23 = -f12; - r11 = f1 < f22; - f19 = f4/f5; - f22 = f22/f5; - f24 = f23/f5; - r11 = r11 & 1; - r12 = 12; - r13 = 0; - f23 = f2; -} -} - f1 = f11*f9; - f2 = f10*f13; - f1 = f1-f2; - if(f1 f20)) //_LBB166_268 -{ - f4 = heapFloat[(fp+-188)]; - f4 = f4+f29; - f4 = f4+f27; - heapFloat[(g0)] = f4; - sqrtf(i7); - f4 = f_g0; - if(f4 >f20) //_LBB166_123 -{ - f2 = f2/f4; - f5 = 1.0499999523162842; - f5 = f2*f5; -if(!(f5 <=f23)) //_LBB166_122 -{ - f23 = 0; - f19 = -f13; - r11 = f1 < f23; - f19 = f19/f4; - f22 = f9/f4; - f24 = f23/f4; - r11 = r11 & 1; - r12 = 13; - r13 = 0; - f23 = f2; -} -} - f1 = f11*f8; - f2 = f10*f0; - f1 = f1-f2; - if(f1 f20)) //_LBB166_268 -{ - f4 = heapFloat[(fp+-189)]; - f4 = f4+f21; - f4 = f4+f27; - heapFloat[(g0)] = f4; - sqrtf(i7); - f4 = f_g0; - if(f4 >f20) //_LBB166_131 -{ - f2 = f2/f4; - f5 = 1.0499999523162842; - f5 = f2*f5; -if(!(f5 <=f23)) //_LBB166_130 -{ - f23 = 0; - f19 = -f0; - r11 = f1 < f23; - f19 = f19/f4; - f22 = f8/f4; - f24 = f23/f4; - r11 = r11 & 1; - r12 = 14; - r13 = 0; - f23 = f2; -} -} - f0 = f11*f12; - f1 = f10*f14; - f0 = f0-f1; - if(f0 f20)) //_LBB166_268 -{ - f2 = heapFloat[(fp+-190)]; - f2 = f2+f3; - f2 = f2+f27; - heapFloat[(g0)] = f2; - sqrtf(i7); - f2 = f_g0; - if(f2 <=f20) //_LBB166_140 -{ -__label__ = 128; -} -else{ - f1 = f1/f2; - heapFloat[(fp+-183)] = f1; - f3 = 1.0499999523162842; - f1 = f1*f3; - if(f1 <=f23) //_LBB166_140 -{ -__label__ = 128; -} -else{ - f23 = 0; - f19 = -f14; - r11 = f0 < f23; - f19 = f19/f2; - f22 = f12/f2; - f24 = f23/f2; - r11 = r11 & 1; - r13 = sp + -704; - r12 = 15; -__label__ = 132; -} -} -if (__label__ == 128){ - if(r12 ==0) //_LBB166_268 -{ -break _41; -} -else{ - if(r13 !=0) //_LBB166_143 -{ - r13 = r13 >> 2; - f0 = heapFloat[(r13)]; - r6 = sp + -704; - heapFloat[(fp+-176)] = f0; - f1 = heapFloat[(r13+4)]; - r6 = r6 >> 2; - heapFloat[(r6+1)] = f1; - f19 = heapFloat[(r13+8)]; - heapFloat[(r6+2)] = f19; - heapFloat[(fp+-183)] = f23; -__label__ = 133; -} -else{ - r13 = sp + -704; - heapFloat[(fp+-183)] = f23; -__label__ = 132; -} -} -} -if (__label__ == 132){ - r6 = sp + -640; - r6 = r6 >> 2; - f0 = heapFloat[(fp+-160)]; - f1 = heapFloat[(r6+1)]; - f2 = heapFloat[(r6+2)]; - f0 = f0*f19; - f1 = f1*f22; - f0 = f0+f1; - f1 = f2*f24; - f0 = f0+f1; - r7 = r13 >> 2; - heapFloat[(r7)] = f0; - f1 = heapFloat[(r6+4)]; - f2 = heapFloat[(r6+5)]; - f3 = heapFloat[(r6+6)]; - f1 = f1*f19; - f2 = f2*f22; - r7 = sp + -704; - f1 = f1+f2; - f2 = f3*f24; - f1 = f1+f2; - r7 = r7 >> 2; - heapFloat[(r7+1)] = f1; - f2 = heapFloat[(r6+8)]; - f3 = heapFloat[(r6+9)]; - f4 = heapFloat[(r6+10)]; - f19 = f2*f19; - f2 = f3*f22; - f19 = f19+f2; - f2 = f4*f24; - f19 = f19+f2; - heapFloat[(r7+2)] = f19; -} - if(r11 !=0) //_LBB166_147 -{ - f0 = -f0; - r6 = sp + -704; - f1 = -f1; - r6 = r6 >> 2; - heapFloat[(fp+-176)] = f0; - f19 = -f19; - heapFloat[(r6+1)] = f1; - heapFloat[(r6+2)] = f19; -} - if(r12 <7) //_LBB166_153 -{ - if(r12 >3) //_LBB166_155 -{ - f0 = -f0; - f1 = -f1; - f19 = -f19; - r1 = r0; - r0 = r10; -} -else{ - r3 = sp + -640; - r2 = sp + -688; - r4 = sp + -236; - heap32[(fp+-186)] = r4; - r4 = sp + -248; - r1 = r10; -} - r6 = r2 >> 2; - f2 = heapFloat[(r6)]; - f3 = heapFloat[(r6+4)]; - f4 = heapFloat[(r6+8)]; - f2 = f2*f0; - f3 = f3*f1; - f2 = f2+f3; - f3 = f4*f19; - f2 = f2+f3; - heapFloat[(fp+-66)] = f2; - f3 = heapFloat[(r6+1)]; - f4 = heapFloat[(r6+5)]; - f5 = heapFloat[(r6+9)]; - f3 = f3*f0; - f4 = f4*f1; - r7 = sp + -264; - f3 = f3+f4; - f4 = f5*f19; - f3 = f3+f4; - r8 = r7 >> 2; - heapFloat[(r8+1)] = f3; - f4 = heapFloat[(r6+2)]; - f5 = heapFloat[(r6+6)]; - f6 = heapFloat[(r6+10)]; - f4 = f4*f0; - f5 = f5*f1; - f4 = f4+f5; - f5 = f6*f19; - f4 = f4+f5; - heapFloat[(r8+2)] = f4; - if(f2 > 2; - r0 = r0 >> 2; - r11 = r11 >> 2; - r13 = r13 >> 2; - f2 = heapFloat[(r11)]; - f3 = heapFloat[(r13)]; - f4 = heapFloat[(r1)]; - f5 = heapFloat[(r0)]; - r7 = (r7 + r10)|0; - f4 = f4-f5; - f3 = f2*f3; - r7 = r7 >> 2; - f5 = heapFloat[(r7)]; - if(f5 > 2; - r6 = r6 >> 2; - f5 = heapFloat[(r1+1)]; - f6 = heapFloat[(r0+1)]; - f7 = heapFloat[(r7)]; - f8 = heapFloat[(r6)]; - f9 = heapFloat[(r1+2)]; - f10 = heapFloat[(r0+2)]; - f5 = f5-f6; - f6 = f2*f7; - f7 = f9-f10; - f2 = f2*f8; - f3 = f4+f3; - f4 = f5+f6; - f2 = f7+f2; -} -else{ - r7 = r6 | 4; - r6 = r6 | 8; - r7 = r7 << 2; - r6 = r6 << 2; - r7 = (r2 + r7)|0; - r6 = (r2 + r6)|0; - r7 = r7 >> 2; - r6 = r6 >> 2; - f5 = heapFloat[(r1+1)]; - f6 = heapFloat[(r0+1)]; - f7 = heapFloat[(r7)]; - f8 = heapFloat[(r6)]; - f9 = heapFloat[(r1+2)]; - f10 = heapFloat[(r0+2)]; - f5 = f5-f6; - f6 = f2*f7; - f7 = f9-f10; - f2 = f2*f8; - f3 = f4-f3; - f4 = f5-f6; - f2 = f7-f2; -} - r1 = -1; - r6 = -4; - r6 = r12 < 4 ? r1 : r6; - r6 = (r6 + r12)|0; - if(r6 ==1) //_LBB166_178 -{ - r7 = 0; - r10 = 2; -} -else{ - if(r6 !=0) //_LBB166_179 -{ - r7 = 0; - r10 = 1; -} -else{ - r7 = 1; - r10 = 2; -} -} - r11 = r8 | 4; - r13 = r7 | 4; - r14 = r8 | 8; - r15 = r9 | 4; - r16 = r7 | 8; - r17 = r10 | 4; - r7 = r7 << 2; - r13 = r13 << 2; - r11 = r11 << 2; - r8 = r8 << 2; - r18 = r9 | 8; - r19 = (r3 + r7)|0; - r13 = (r3 + r13)|0; - r16 = r16 << 2; - r20 = r10 << 2; - r17 = r17 << 2; - r10 = r10 | 8; - r21 = (r2 + r8)|0; - r11 = (r2 + r11)|0; - r14 = r14 << 2; - r15 = r15 << 2; - r9 = r9 << 2; - r19 = r19 >> 2; - r13 = r13 >> 2; - r16 = (r3 + r16)|0; - r22 = (r3 + r20)|0; - r17 = (r3 + r17)|0; - r10 = r10 << 2; - r21 = r21 >> 2; - heap32[(fp+-178)] = r21; - r11 = r11 >> 2; - heap32[(fp+-177)] = r11; - r14 = (r2 + r14)|0; - r23 = (r2 + r9)|0; - r15 = (r2 + r15)|0; - r18 = r18 << 2; - r16 = r16 >> 2; - r22 = r22 >> 2; - r17 = r17 >> 2; - r3 = (r3 + r10)|0; - r10 = r14 >> 2; - heap32[(fp+-179)] = r10; - r14 = r23 >> 2; - heap32[(fp+-180)] = r14; - r15 = r15 >> 2; - r2 = (r2 + r18)|0; - f5 = heapFloat[(r19)]; - f6 = heapFloat[(r21)]; - f7 = heapFloat[(r13)]; - f8 = heapFloat[(r11)]; - f9 = heapFloat[(r22)]; - f10 = heapFloat[(r14)]; - f11 = heapFloat[(r17)]; - f12 = heapFloat[(r15)]; - r3 = r3 >> 2; - r2 = r2 >> 2; - r8 = (r4 + r8)|0; - f13 = f5*f6; - f14 = f7*f8; - f15 = heapFloat[(r16)]; - f16 = heapFloat[(r10)]; - f17 = heapFloat[(r3)]; - f18 = heapFloat[(r2)]; - r3 = r8 >> 2; - r4 = (r4 + r9)|0; - f6 = f9*f6; - f8 = f11*f8; - f21 = f3*f5; - f22 = f4*f7; - f13 = f13+f14; - f14 = f15*f16; - f5 = f5*f10; - f7 = f7*f12; - f13 = f13+f14; - f14 = heapFloat[(r3)]; - r3 = r4 >> 2; - f23 = f3*f9; - f24 = f4*f11; - f6 = f6+f8; - f8 = f17*f16; - f9 = f9*f10; - f10 = f11*f12; - f11 = f21+f22; - f12 = f2*f15; - f5 = f5+f7; - f7 = f15*f18; - f6 = f6+f8; - f8 = f11+f12; - f11 = f14*f13; - f5 = f5+f7; - f7 = heapFloat[(r3)]; - f12 = f23+f24; - f15 = f2*f17; - f9 = f9+f10; - f10 = f17*f18; - f9 = f9+f10; - f10 = f12+f15; - f12 = f14*f6; - f14 = f8-f11; - f15 = f7*f5; - r3 = sp + -296; - f16 = f10-f12; - f7 = f7*f9; - f17 = f14-f15; - r4 = r3 >> 2; - f18 = f16-f7; - heapFloat[(fp+-74)] = f17; - f14 = f14+f15; - heapFloat[(r4+1)] = f18; - f11 = f8+f11; - f16 = f16+f7; - heapFloat[(r4+2)] = f14; - f12 = f10+f12; - f14 = f11+f15; - heapFloat[(r4+3)] = f16; - f16 = f12+f7; - heapFloat[(r4+4)] = f14; - f11 = f11-f15; - heapFloat[(r4+5)] = f16; - r8 = heap32[(fp+-186)]; - r7 = (r8 + r7)|0; - f7 = f12-f7; - heapFloat[(r4+6)] = f11; - r9 = sp + -304; - r8 = (r8 + r20)|0; - r7 = r7 >> 2; - heapFloat[(r4+7)] = f7; - r4 = sp + -368; - r10 = 0; - r11 = 4; - r13 = r9 >> 2; - r8 = r8 >> 2; - heap32[(fp+-76)] = heap32[(r7)]; - heap32[(r13+1)] = heap32[(r8)]; - r7 = r10; -_217: while(true){ - if(r7 <2) //_LBB166_199 -{ - r18 = 0; - r17 = (r18 - r7)|0; - r14 = r1; - r8 = r4; -_220: while(true){ - r4 = r8; - if(r14 >1) //_LBB166_196 -{ -break _220; -} -else{ - f7 = r14; //fitos r14, f7 - r16 = (r3 + 8)|0; - r8 = r18; - r10 = r18; - r13 = r4; -_223: while(true){ - if(r11 >0) //_LBB166_181 -{ - r19 = (r3 + r8)|0; - r20 = (r16 + r8)|0; - r21 = r7 << 2; - r22 = (r9 + r21)|0; - r23 = (r19 + r21)|0; - r22 = r22 >> 2; - r23 = r23 >> 2; - f11 = heapFloat[(r22)]; - f12 = heapFloat[(r23)]; - f14 = f7*f12; - if(f14 > 2; - r25 = r19 >> 2; - r10 = (r10 + 1)|0; - heap32[(r24)] = heap32[(r25)]; - heap32[(r24+1)] = heap32[(r25+1)]; - r24 = r10 & 8; - if(r24 ==0) //_LBB166_185 -{ - r13 = (r13 + 8)|0; - f12 = heapFloat[(r23)]; - f11 = heapFloat[(r22)]; -} -else{ -__label__ = 179; -break _217; -} -} - r20 = r11 > 1 ? r20 : r3; - r23 = (r20 + r21)|0; - r23 = r23 >> 2; - f14 = heapFloat[(r23)]; - f15 = f7*f12; - f16 = f7*f14; - r23 = f15 < f11; - r24 = f16 < f11; - r23 = r23 ^ r24; - if(r23 != 0) //_LBB166_188 -{ - r23 = r17 << 2; - r19 = (r19 + r23)|0; - r20 = (r20 + r23)|0; - r19 = r19 >> 2; - r20 = r20 >> 2; - f15 = heapFloat[(r19+1)]; - f16 = heapFloat[(r20+1)]; - f11 = f7*f11; - f16 = f16-f15; - f14 = f14-f12; - f14 = f16/f14; - f11 = f11-f12; - r19 = (r13 + r23)|0; - f11 = f14*f11; - r19 = r19 >> 2; - f11 = f15+f11; - heapFloat[(r19+1)] = f11; - r19 = (r13 + r21)|0; - f11 = heapFloat[(r22)]; - r10 = (r10 + 1)|0; - r19 = r19 >> 2; - f11 = f7*f11; - heapFloat[(r19)] = f11; - r19 = r10 & 8; - if(r19 ==0) //_LBB166_190 -{ - r13 = (r13 + 8)|0; -} -else{ -__label__ = 179; -break _217; -} -} - r11 = (r11 + -1)|0; - r8 = (r8 + 8)|0; -} -else{ -break _223; -} -} - r3 = sp + -368; - r8 = sp + -128; - r8 = r4 == r3 ? r8 : r3; - r14 = (r14 + 2)|0; - r3 = r4; - r11 = r10; -} -} - r7 = (r7 + 1)|0; -} -else{ -__label__ = 177; -break _217; -} -} -if (__label__ == 177){ - r4 = r3; -} - r1 = sp + -368; -if(!(r4 ==r1)) //_LBB166_202 -{ - r3 = r10 << 3; - heap32[(g0)] = r1; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r3; - memcpy(i7); -} - if(r10 <1) //_LBB166_268 -{ -break _41; -} -else{ - f7 = f13*f9; - f11 = f5*f6; - f12 = 1; - f7 = f7-f11; - r3 = r6 << 2; - f7 = f12/f7; - r4 = heap32[(fp+-186)]; - r3 = (r4 + r3)|0; - f6 = f6*f7; - r3 = r3 >> 2; - f11 = f13*f7; - f5 = f5*f7; - f7 = f9*f7; - f6 = -f6; - f9 = heapFloat[(r3)]; - r3 = heap32[(fp+-178)]; - f13 = heapFloat[(r3)]; - r3 = heap32[(fp+-180)]; - f14 = heapFloat[(r3)]; - r3 = heap32[(fp+-177)]; - f15 = heapFloat[(r3)]; - f16 = heapFloat[(r15)]; - r3 = heap32[(fp+-179)]; - f17 = heapFloat[(r3)]; - f18 = heapFloat[(r2)]; - r2 = (r1 + 4)|0; - r3 = 0; -_243: while(true){ - r4 = r2 >> 2; - f21 = heapFloat[(r4+-1)]; - f22 = heapFloat[(r4)]; - f23 = f21-f8; - f24 = f22-f10; - f25 = f23*f7; - f26 = f24*f5; - f25 = f25-f26; - f23 = f23*f6; - f24 = f24*f11; - r4 = (r3 * 3)|0; - f26 = f15*f25; - f23 = f23+f24; - f24 = f13*f25; - r6 = sp + -464; - r4 = r4 << 2; - f25 = f17*f25; - f26 = f4+f26; - f28 = f16*f23; - f24 = f3+f24; - f29 = f14*f23; - r4 = (r6 + r4)|0; - f24 = f24+f29; - f26 = f26+f28; - f25 = f2+f25; - f23 = f18*f23; - f28 = f0*f24; - f29 = f1*f26; - f23 = f25+f23; - r4 = r4 >> 2; - heapFloat[(r4)] = f24; - f24 = f28+f29; - f25 = f19*f23; - r7 = sp + -496; - r8 = r3 << 2; - r8 = (r7 + r8)|0; - heapFloat[(r4+1)] = f26; - f24 = f24+f25; - f24 = f9-f24; - r8 = r8 >> 2; - heapFloat[(r4+2)] = f23; - heapFloat[(r8)] = f24; - if(f24 >=f27) //_LBB166_206 -{ - r4 = r3 << 3; - r8 = r4 | 4; - r4 = (r1 + r4)|0; - r8 = (r1 + r8)|0; - r4 = r4 >> 2; - r3 = (r3 + 1)|0; - r8 = r8 >> 2; - heapFloat[(r4)] = f21; - heapFloat[(r8)] = f22; -} - r10 = (r10 + -1)|0; - r2 = (r2 + 8)|0; -if(!(r10 !=0)) //_LBB166_204 -{ -break _243; -} -} - if(r3 <1) //_LBB166_268 -{ -break _41; -} -else{ - r2 = 4; - r2 = r3 < 4 ? r3 : r2; - r4 = 1; - r8 = r2 < 1 ? r4 : r2; - if(r3 >r8) //_LBB166_215 -{ -_252: do { - if(r3 >1) //_LBB166_217 -{ - f0 = heapFloat[(fp+-124)]; - r9 = 1; - r7 = 0; -_254: while(true){ - r10 = sp + -496; - r11 = r9 << 2; - r10 = (r10 + r11)|0; - r10 = r10 >> 2; - f1 = heapFloat[(r10)]; - r10 = (r9 + 1)|0; - r7 = f1 > f0 ? r9 : r7; - f0 = f1 > f0 ? f1 : f0; - r9 = r10; -if(!(r3 !=r10)) //_LBB166_218 -{ -break _252; -} -} -} -else{ - r7 = 0; -} -} while(0); -_258: do { - if(r3 ==1) //_LBB166_224 -{ - r9 = r1 >> 2; - f0 = heapFloat[(fp+-92)]; - f1 = heapFloat[(r9+1)]; -__label__ = 214; -break _258; -} -else{ - if(r3 ==2) //_LBB166_225 -{ - r9 = r1 >> 2; - f0 = heapFloat[(fp+-92)]; - f1 = heapFloat[(r9+2)]; - f2 = heapFloat[(r9+1)]; - f12 = heapFloat[(r9+3)]; - f0 = f0+f1; - f1 = f2+f12; - f2 = heapFloat[(fp+-187)]; - f0 = f0*f2; - f1 = f1*f2; -__label__ = 214; -break _258; -} -else{ - r9 = (r3 + -1)|0; -_264: do { - if(r9 >0) //_LBB166_223 -{ - r10 = (r1 + 8)|0; - f0 = 0; - f1 = f0; - f2 = f0; -_266: while(true){ - r11 = r10 >> 2; - f3 = heapFloat[(r11+-2)]; - f4 = heapFloat[(r11+1)]; - f5 = heapFloat[(r11)]; - f6 = heapFloat[(r11+-1)]; - f7 = f3*f4; - f8 = f5*f6; - f3 = f3+f5; - f5 = f7-f8; - f4 = f6+f4; - f3 = f3*f5; - f4 = f4*f5; - r9 = (r9 + -1)|0; - f2 = f2+f5; - f1 = f3+f1; - f0 = f4+f0; - r10 = (r10 + 8)|0; -if(!(r9 !=0)) //_LBB166_226 -{ -break _264; -} -} -} -else{ - f0 = f27; - f1 = f27; - f2 = f27; -} -} while(0); - r9 = r3 << 3; - r9 = (r9 + r1)|0; - r9 = r9 >> 2; - r10 = r1 >> 2; - f3 = heapFloat[(r9+-2)]; - f4 = heapFloat[(r10+1)]; - f5 = heapFloat[(fp+-92)]; - f6 = heapFloat[(r9+-1)]; - f7 = f3*f4; - f8 = f5*f6; - f7 = f7-f8; - f2 = f2+f7; - if(f2 f20) //_LBB166_232 -{ - f8 = 3; - f2 = f2*f8; - f2 = f12/f2; -} -else{ - f2 = 999999984306749440; -} - if(r3 >0) //_LBB166_235 -{ - f3 = f3+f5; - f4 = f6+f4; - f3 = f3*f7; - f4 = f4*f7; - f1 = f3+f1; - f3 = f4+f0; - f0 = f1*f2; - f1 = f3*f2; -__label__ = 214; -} -else{ - r1 = 0; -__label__ = 219; -} -} -} -} while(0); -if (__label__ == 214){ - r1 = (r1 + 4)|0; - r9 = sp + -32; - r10 = r3; -_283: while(true){ - r11 = r1 >> 2; - f2 = heapFloat[(r11+-1)]; - f3 = heapFloat[(r11)]; - f3 = f3-f1; - f2 = f2-f0; - heapFloat[(g0)] = f3; - heapFloat[(g0+1)] = f2; - r10 = (r10 + -1)|0; - r1 = (r1 + 8)|0; - r11 = (r9 + 4)|0; - r9 = r9 >> 2; - atan2f(i7); - heapFloat[(r9)] = f_g0; - r9 = r11; -if(!(r10 !=0)) //_LBB166_237 -{ -break _283; -} -} - r1 = sp + -64; - r9 = r3; -_286: while(true){ - r9 = (r9 + -1)|0; - r10 = (r1 + 4)|0; - r1 = r1 >> 2; - heap32[(r1)] = 1; - r1 = r10; -if(!(r9 !=0)) //_LBB166_239 -{ -break _286; -} -} - r1 = 1; -} - r9 = sp + -64; - r10 = r7 << 2; - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - f0 = 6.2831854820251465; - f1 = r8; //fitos r8, f1 - f1 = f0/f1; - heap32[(r11)] = 0; - heap32[(fp+-144)] = r7; - f6 = 0; -_290: while(true){ - if(r4 > 2; - f2 = r4; //fitos r4, f2 - f2 = f2*f1; - f3 = heapFloat[(r13)]; - f2 = f2+f3; - f3 = 3.1415927410125732; - if(f2 >f3) //_LBB166_244 -{ - f4 = -6.2831854820251465; - f2 = f2+f4; -} - r13 = sp + -576; - r14 = r4 << 2; - r13 = (r13 + r14)|0; - r13 = r13 >> 2; - r14 = r1 & 1; - heap32[(r13)] = r7; - if(r14 ==0) //_LBB166_259 -{ -__label__ = 233; -break _290; -} -else{ - f4 = 1000000000; - r14 = 0; - r15 = r7; -_297: while(true){ - r16 = r14 << 2; - r17 = (r9 + r16)|0; - r17 = r17 >> 2; - r17 = heap32[(r17)]; - if(r17 !=0) //_LBB166_249 -{ - r16 = (r11 + r16)|0; - r16 = r16 >> 2; - f5 = heapFloat[(r16)]; - f5 = f5-f2; - if(f5 f3) //_LBB166_254 -{ - f5 = f0-f5; -} -if(!(f5 >=f4)) //_LBB166_248 -{ - heap32[(r13)] = r14; - r15 = r14; - f4 = f5; -} -} - r14 = (r14 + 1)|0; -if(!(r3 !=r14)) //_LBB166_247 -{ -break _297; -} -} - if(r15 !=r7) //_LBB166_260 -{ - r11 = r15 << 2; - r11 = (r9 + r11)|0; - r4 = (r4 + 1)|0; - r11 = r11 >> 2; - heap32[(r11)] = 0; -} -else{ -__label__ = 233; -break _290; -} -} -} -else{ -__label__ = 236; -break _290; -} -} -switch(__label__ ){//multiple entries -case 233: - r0 = _2E_str65; - r1 = _2E_str166; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 248; - _assert(i7); -break; -case 236: - if(r8 >0) //_LBB166_267 -{ - r1 = 0; -_315: while(true){ - r3 = sp + -576; - r4 = r1 << 2; - r3 = (r3 + r4)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r4 = (r3 * 3)|0; - r4 = r4 << 2; - r4 = (r6 + r4)|0; - r4 = r4 >> 2; - f0 = heapFloat[(r4)]; - f1 = heapFloat[(r0)]; - f0 = f0+f1; - heapFloat[(fp+-148)] = f0; - r7 = sp + -592; - f1 = heapFloat[(r4+1)]; - f2 = heapFloat[(r0+1)]; - f1 = f1+f2; - r8 = r7 >> 2; - heapFloat[(r8+1)] = f1; - f2 = heapFloat[(r4+2)]; - f3 = heapFloat[(r0+2)]; - f2 = f2+f3; - r4 = sp + -496; - r3 = r3 << 2; - r3 = (r4 + r3)|0; - r4 = r5 >> 2; - heapFloat[(r8+2)] = f2; - r4 = heap32[(r4)]; - r3 = r3 >> 2; - r8 = sp + -704; - f3 = heapFloat[(r3)]; - r3 = r4 >> 2; - r4 = r8 >> 2; - r3 = heap32[(r3+4)]; - f4 = -f3; - f5 = heapFloat[(r4+2)]; - if(r12 >3) //_LBB166_265 -{ - f6 = heapFloat[(fp+-176)]; - f7 = heapFloat[(r4+1)]; - f8 = f6*f3; - r4 = sp + -160; - f9 = f7*f3; - f0 = f0-f8; - r7 = r4 >> 2; - f3 = f5*f3; - f1 = f1-f9; - heapFloat[(fp+-40)] = f0; - f0 = f2-f3; - heapFloat[(r7+1)] = f1; - heapFloat[(r7+2)] = f0; - r8 = sp + -144; - f0 = -f6; - heap32[(r7+3)] = 0; - r7 = r8 >> 2; - f1 = -f7; - heapFloat[(fp+-36)] = f0; - f0 = -f5; - heapFloat[(r7+1)] = f1; - heapFloat[(r7+2)] = f0; - heap32[(r7+3)] = 0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r4; - heapFloat[(g0+3)] = f4; - __FUNCTION_TABLE__[(r3)>>2](i7); -} -else{ - f0 = heapFloat[(r4+1)]; - f1 = heapFloat[(fp+-176)]; - r4 = sp + -176; - f1 = -f1; - r8 = r4 >> 2; - f0 = -f0; - heapFloat[(fp+-44)] = f1; - f1 = -f5; - heapFloat[(r8+1)] = f0; - heapFloat[(r8+2)] = f1; - heap32[(r8+3)] = 0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r7; - heapFloat[(g0+3)] = f4; - __FUNCTION_TABLE__[(r3)>>2](i7); -} - r1 = (r1 + 1)|0; - if(r1 >=r2) //_LBB166_268 -{ -break _41; -} -else{ -continue _315; -} -} -} -else{ -break _41; -} -break; -} -} -else{ - if(r12 <4) //_LBB166_212 -{ - r1 = (r6 + 8)|0; - r2 = sp + -496; -_324: while(true){ - r4 = r1 >> 2; - f12 = heapFloat[(r4+-2)]; - f20 = heapFloat[(r0)]; - f12 = f12+f20; - heapFloat[(fp+-132)] = f12; - r6 = sp + -528; - f12 = heapFloat[(r4+-1)]; - f20 = heapFloat[(r0+1)]; - r7 = r6 >> 2; - f12 = f12+f20; - heapFloat[(r7+1)] = f12; - f12 = heapFloat[(r4)]; - f20 = heapFloat[(r0+2)]; - f12 = f12+f20; - heapFloat[(r7+2)] = f12; - r4 = r5 >> 2; - r4 = heap32[(r4)]; - r7 = sp + -704; - r7 = r7 >> 2; - r4 = r4 >> 2; - r8 = r2 >> 2; - f12 = heapFloat[(r8)]; - f20 = heapFloat[(r7+2)]; - f27 = heapFloat[(r7+1)]; - f0 = heapFloat[(fp+-176)]; - r4 = heap32[(r4+4)]; - r7 = sp + -208; - f0 = -f0; - r8 = r7 >> 2; - f27 = -f27; - heapFloat[(fp+-52)] = f0; - f20 = -f20; - heapFloat[(r8+1)] = f27; - heapFloat[(r8+2)] = f20; - heap32[(r8+3)] = 0; - f12 = -f12; - heap32[(g0)] = r5; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r6; - heapFloat[(g0+3)] = f12; - r3 = (r3 + -1)|0; - r2 = (r2 + 4)|0; - r1 = (r1 + 12)|0; - __FUNCTION_TABLE__[(r4)>>2](i7); - if(r3 ==0) //_LBB166_268 -{ -break _41; -} -else{ -continue _324; -} -} -} -else{ - r1 = (r6 + 8)|0; -_327: while(true){ - r2 = r7 >> 2; - r4 = r1 >> 2; - f12 = heapFloat[(r2)]; - f20 = heapFloat[(fp+-176)]; - f27 = heapFloat[(r4+-2)]; - f0 = heapFloat[(r0)]; - f27 = f27+f0; - f0 = f20*f12; - r2 = sp + -704; - f27 = f27-f0; - heapFloat[(fp+-136)] = f27; - r2 = r2 >> 2; - f27 = heapFloat[(r2+1)]; - f0 = heapFloat[(r4+-1)]; - f1 = heapFloat[(r0+1)]; - r6 = sp + -544; - f0 = f0+f1; - f1 = f27*f12; - r8 = r6 >> 2; - f0 = f0-f1; - heapFloat[(r8+1)] = f0; - f0 = heapFloat[(r2+2)]; - f1 = heapFloat[(r4)]; - f2 = heapFloat[(r0+2)]; - f1 = f1+f2; - f2 = f0*f12; - f1 = f1-f2; - r2 = r5 >> 2; - heapFloat[(r8+2)] = f1; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - r4 = sp + -192; - f20 = -f20; - r8 = r4 >> 2; - f27 = -f27; - heapFloat[(fp+-48)] = f20; - f20 = -f0; - heapFloat[(r8+1)] = f27; - heapFloat[(r8+2)] = f20; - heap32[(r8+3)] = 0; - f12 = -f12; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r6; - heapFloat[(g0+3)] = f12; - r3 = (r3 + -1)|0; - r7 = (r7 + 4)|0; - r1 = (r1 + 12)|0; - __FUNCTION_TABLE__[(r2)>>2](i7); - if(r3 ==0) //_LBB166_268 -{ -break _41; -} -else{ -continue _327; -} -} -} -} -} -} -} -else{ - r0 = sp + -688; - r2 = r0 >> 2; - f20 = heapFloat[(fp+-172)]; - f27 = heapFloat[(r2+4)]; - f2 = heapFloat[(r2+5)]; - f3 = heapFloat[(r2+1)]; - f4 = f0*f20; - f5 = f1*f27; - f6 = heapFloat[(r2+8)]; - f7 = heapFloat[(r2+9)]; - f8 = heapFloat[(r2+6)]; - f9 = heapFloat[(r2+2)]; - f4 = f4+f5; - f5 = f19*f6; - f10 = f0*f3; - f11 = f1*f2; - f12 = heapFloat[(r2+10)]; - f4 = f4+f5; - f5 = f10+f11; - f10 = f19*f7; - f11 = f0*f9; - f13 = f1*f8; - f14 = 0; - f15 = -1; - f16 = 1; - f5 = f5+f10; - f4 = f4 > f14 ? f15 : f16; - f10 = f11+f13; - f11 = f19*f12; - f13 = heapFloat[(fp+-181)]; - f4 = f13*f4; - f10 = f10+f11; - f5 = f5 > f14 ? f15 : f16; - f11 = heapFloat[(fp+-182)]; - f5 = f11*f5; - r2 = sp + -640; - f20 = f4*f20; - f11 = heapFloat[(r1+28)]; - f10 = f10 > f14 ? f15 : f16; - r3 = r2 >> 2; - f13 = heapFloat[(fp+-180)]; - f10 = f13*f10; - f27 = f4*f27; - f13 = heapFloat[(r1+29)]; - f20 = f11+f20; - f3 = f5*f3; - r4 = (r12 + -7)|0; - f11 = heapFloat[(r3+4)]; - f17 = heapFloat[(fp+-160)]; - f18 = heapFloat[(r3+8)]; - f21 = heapFloat[(r3+5)]; - f22 = heapFloat[(r3+1)]; - f23 = heapFloat[(r3+9)]; - f24 = heapFloat[(r3+6)]; - f25 = heapFloat[(r3+2)]; - f26 = heapFloat[(r3+10)]; - f4 = f4*f6; - f6 = heapFloat[(r1+30)]; - f27 = f13+f27; - f2 = f5*f2; - f20 = f20+f3; - f3 = f10*f9; - f9 = heapFloat[(r1+12)]; - heapFloat[(fp+-182)] = f9; - f9 = heapFloat[(r1+13)]; - heapFloat[(fp+-181)] = f9; - f9 = heapFloat[(r1+14)]; - heapFloat[(fp+-180)] = f9; - r3 = (r4 / 3)|0; - r4 = (r4 % 3)|0; - r10 = sp + -512; - f20 = f20+f3; - f3 = f6+f4; - f4 = f5*f7; - f27 = f27+f2; - f2 = f10*f8; - r3 = r3 << 2; - r4 = r4 << 2; - f27 = f27+f2; - r12 = r10 >> 2; - heapFloat[(fp+-128)] = f20; - f2 = f3+f4; - f3 = f10*f12; - r2 = (r2 + r3)|0; - r0 = (r0 + r4)|0; - f2 = f2+f3; - heapFloat[(r12+1)] = f27; - r2 = r2 >> 2; - heapFloat[(r12+2)] = f2; - r0 = r0 >> 2; - f3 = heapFloat[(r2)]; - f4 = heapFloat[(r0)]; - f5 = heapFloat[(r2+4)]; - f6 = heapFloat[(r0+4)]; - f7 = heapFloat[(r2+8)]; - f8 = heapFloat[(r0+8)]; - f9 = f3*f4; - f10 = f5*f6; - f9 = f9+f10; - f10 = f7*f8; - f9 = f9+f10; - f10 = f9*f9; - f10 = f16-f10; - f12 = 9.9999997473787516e-005; - if(f10 >f12) //_LBB166_151 -{ - f12 = f0*f17; - f13 = f1*f11; - f12 = f12+f13; - f13 = f19*f18; - f28 = f0*f22; - f29 = f1*f21; - f12 = f12+f13; - f13 = f28+f29; - f28 = f19*f23; - f29 = f0*f25; - f30 = f1*f24; - f13 = f13+f28; - f12 = f12 > f14 ? f16 : f15; - f28 = f29+f30; - f29 = f19*f26; - f30 = heapFloat[(fp+-179)]; - f12 = f30*f12; - f28 = f28+f29; - f13 = f13 > f14 ? f16 : f15; - f29 = heapFloat[(fp+-178)]; - f13 = f29*f13; - f17 = f12*f17; - f11 = f12*f11; - f12 = f12*f18; - f14 = f28 > f14 ? f16 : f15; - f15 = heapFloat[(fp+-177)]; - f14 = f15*f14; - f15 = heapFloat[(fp+-182)]; - f15 = f15+f17; - f17 = f13*f22; - f18 = heapFloat[(fp+-181)]; - f11 = f18+f11; - f18 = f13*f21; - f21 = heapFloat[(fp+-180)]; - f12 = f21+f12; - f13 = f13*f23; - f15 = f15+f17; - f17 = f14*f25; - f11 = f11+f18; - f18 = f14*f24; - f12 = f12+f13; - f14 = f14*f26; - f13 = f15+f17; - f11 = f11+f18; - f14 = f12+f14; - f12 = f20-f13; - f11 = f27-f11; - f14 = f2-f14; - f3 = f3*f12; - f5 = f5*f11; - f3 = f3+f5; - f5 = f7*f14; - f7 = f4*f12; - f11 = f6*f11; - f3 = f3+f5; - f5 = f7+f11; - f14 = f8*f14; - f3 = f9*f3; - f14 = f5+f14; - f14 = f3-f14; - f3 = f16/f10; - f14 = f14*f3; -} - f3 = f4*f14; - f20 = f20+f3; - f3 = f6*f14; - f4 = f8*f14; - f27 = f27+f3; - heapFloat[(fp+-128)] = f20; - f20 = f2+f4; - heapFloat[(r12+1)] = f27; - r0 = r5 >> 2; - heapFloat[(r12+2)] = f20; - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r0 = heap32[(r0+4)]; - r2 = sp + -224; - f0 = -f0; - r3 = r2 >> 2; - f1 = -f1; - heapFloat[(fp+-56)] = f0; - f0 = -f19; - heapFloat[(r3+1)] = f1; - heapFloat[(r3+2)] = f0; - heap32[(r3+3)] = 0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r10; - f0 = heapFloat[(fp+-183)]; - heapFloat[(g0+3)] = f0; - __FUNCTION_TABLE__[(r0)>>2](i7); - return; -} -} -} -} -} -} -} -} -} -} -} -} -} -} -} -} -} while(0); - return; -} - -function _ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = sp + -8; - r1 = heap32[(fp)]; - r2 = heap32[(fp+1)]; - r3 = r0 >> 2; - r4 = heap32[(fp+3)]; - heap32[(fp+-2)] = r1; - r5 = heap32[(fp+2)]; - r6 = r2 >> 2; - heap32[(r3+1)] = r4; - r3 = heap32[(r6+48)]; - r4 = r5 >> 2; - r3 = r3 >> 2; - r4 = heap32[(r4+48)]; - r3 = heap32[(r3+1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+1)]; - r3 = (r3 * 144)|0; - r1 = (r1 + r3)|0; - r3 = r4 << 2; - r1 = (r1 + r3)|0; - r1 = r1 >> 2; - r1 = heap32[(r1+50)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+2)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r5; - __FUNCTION_TABLE__[(r3)>>2](i7); - return; -} - -function _ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r0 = heap32[(r0+51)]; - r1 = r0 & 4; -if(!(r1 !=0)) //_LBB168_4 -{ - r1 = heap32[(fp+2)]; - r1 = r1 >> 2; - r1 = heap32[(r1+51)]; - r2 = r1 & 4; -if(!(r2 !=0)) //_LBB168_4 -{ - r0 = r0 & 3; - if(r0 ==0) //_LBB168_5 -{ - r0 = 1; - r_g0 = r0; - return; -} -else{ - r0 = r1 & 3; - r1 = 0; - r0 = r0 == r1; - r0 = r0 & 1; - r_g0 = r0; - return; -} -} -} - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN23btCollisionPairCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV23btCollisionPairCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN23btCollisionPairCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV23btCollisionPairCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+2)]; - r2 = r1 >> 2; - r2 = heap32[(r2+47)]; - r0 = heap32[(r0+1)]; - r3 = heap32[(fp+1)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = _ZTV23btCollisionPairCallback; - r1 = sp + -16; - r0 = (r0 + 8)|0; - r2 = r1 >> 2; - r3 = heap32[(fp+2)]; - heap32[(fp+-4)] = r0; - r0 = heap32[(fp+1)]; - r4 = heap32[(fp)]; - heap32[(r2+1)] = r3; - r3 = r0 >> 2; - heap32[(r2+2)] = r4; - r2 = heap32[(r3)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - r3 = heap32[(fp+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r3; - __FUNCTION_TABLE__[(r2)>>2](i7); - return; -} - -function _ZNK21btCollisionDispatcher15getNumManifoldsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+3)]; - r_g0 = r0; - return; -} - -function _ZN21btCollisionDispatcher26getInternalManifoldPointerEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+5)]; - r_g0 = r0; - return; -} - -function _ZN21btCollisionDispatcher26getManifoldByIndexInternalEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - r0 = heap32[(r0+5)]; - r1 = r1 << 2; - r0 = (r0 + r1)|0; - r0 = r0 >> 2; - r0 = heap32[(r0)]; - r_g0 = r0; - return; -} - -function _ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; -if(!(r0 ==0)) //_LBB176_5 -{ - r1 = heap32[(fp)]; - r1 = r1 >> 2; - r1 = heap32[(r1+48)]; - r1 = r1 >> 2; - r2 = heap32[(r1+4)]; -if(!(uint(r2) >uint(r0))) //_LBB176_4 -{ - r3 = heap32[(r1)]; - r4 = heap32[(r1+1)]; - r3 = (r3 * r4)|0; - r2 = (r2 + r3)|0; -if(!(uint(r2) <=uint(r0))) //_LBB176_4 -{ - r2 = r0 >> 2; - r3 = heap32[(r1+3)]; - heap32[(r2)] = r3; - heap32[(r1+3)] = r0; - r0 = heap32[(r1+2)]; - r0 = (r0 + 1)|0; - heap32[(r1+2)] = r0; - return; -} -} - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r2 = heap32[(r1)]; - r2 = (r2 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r2; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = gNumManifold; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = heap32[(fp)]; - r1 = (r1 + -1)|0; - r3 = r2 >> 2; - heap32[(r0)] = r1; - r0 = heap32[(r3)]; - r0 = r0 >> 2; - r0 = heap32[(r0+5)]; - r1 = heap32[(fp+1)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - __FUNCTION_TABLE__[(r0)>>2](i7); - r0 = r1 >> 2; - r2 = heap32[(r3+3)]; - r4 = heap32[(r0+284)]; - if(r2 >r4) //_LBB177_2 -{ - r2 = (r2 + -1)|0; - r5 = r4 << 2; - r6 = heap32[(r3+5)]; - r2 = r2 << 2; - r7 = (r6 + r5)|0; - r6 = (r6 + r2)|0; - r7 = r7 >> 2; - r6 = r6 >> 2; - r8 = heap32[(r7)]; - r6 = heap32[(r6)]; - heap32[(r7)] = r6; - r6 = heap32[(r3+5)]; - r2 = (r6 + r2)|0; - r2 = r2 >> 2; - heap32[(r2)] = r8; - r2 = heap32[(r3+5)]; - r2 = (r2 + r5)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - heap32[(r2+284)] = r4; - r2 = heap32[(r3+3)]; - r2 = (r2 + -1)|0; - heap32[(r3+3)] = r2; -if(!(r1 ==0)) //_LBB177_7 -{ - r2 = heap32[(r3+49)]; - r2 = r2 >> 2; - r3 = heap32[(r2+4)]; -if(!(uint(r3) >uint(r1))) //_LBB177_6 -{ - r4 = heap32[(r2)]; - r5 = heap32[(r2+1)]; - r4 = (r4 * r5)|0; - r3 = (r3 + r4)|0; -if(!(uint(r3) <=uint(r1))) //_LBB177_6 -{ - r3 = heap32[(r2+3)]; - heap32[(r0)] = r3; - heap32[(r2+3)] = r1; - r0 = heap32[(r2+2)]; - r0 = (r0 + 1)|0; - heap32[(r2+2)] = r0; - return; -} -} - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r2 = heap32[(r1)]; - r2 = (r2 + 1)|0; - heap32[(r1)] = r2; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} -else{ - r0 = _2E_str472; - r1 = _2E_str573; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 120; - _assert(i7); -} -} - -function _ZN21btCollisionDispatcherD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV21btCollisionDispatcher; - r2 = _ZTV16btManifoldResult; - r3 = r0 >> 2; - r1 = (r1 + 8)|0; - r2 = (r2 + 8)|0; - heap32[(r3)] = r1; - heap32[(r3+7)] = r2; - r1 = heap32[(r3+5)]; -if(!(r1 ==0)) //_LBB178_4 -{ - r2 = heapU8[r0+24]; -if(!(r2 ==0)) //_LBB178_3 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r4 = heap32[(r2)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r2)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r3+5)] = 0; -} - r1 = 1; - heap8[r0+24] = r1; - heap32[(r3+5)] = 0; - r0 = _ZTV12btDispatcher; - heap32[(r3+3)] = 0; - r0 = (r0 + 8)|0; - heap32[(r3+4)] = 0; - heap32[(r3)] = r0; - return; -} - -function _ZN21btCollisionDispatcherD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV21btCollisionDispatcher; - r2 = _ZTV16btManifoldResult; - r3 = r0 >> 2; - r1 = (r1 + 8)|0; - r2 = (r2 + 8)|0; - heap32[(r3)] = r1; - heap32[(r3+7)] = r2; - r1 = heap32[(r3+5)]; -if(!(r1 ==0)) //_LBB179_4 -{ - r2 = heapU8[r0+24]; -if(!(r2 ==0)) //_LBB179_3 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r4 = heap32[(r2)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r2)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r3+5)] = 0; -} - r1 = 1; - heap8[r0+24] = r1; - heap32[(r3+5)] = 0; - r1 = _ZTV12btDispatcher; - heap32[(r3+3)] = 0; - r1 = (r1 + 8)|0; - heap32[(r3+4)] = 0; - heap32[(r3)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN21btCollisionDispatcher14getNewManifoldEPvS0_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = gNumManifold; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - r2 = heap32[(fp)]; - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - heap32[(r0)] = r1; - r0 = heapU8[r2+4]; - r0 = r0 & 2; - if(r0 !=0) //_LBB180_2 -{ - r0 = r4 >> 2; - r0 = heap32[(r0+48)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = 1017370378; - __FUNCTION_TABLE__[(r1)>>2](i7); - f0 = f_g0; - r0 = r3 >> 2; - heapFloat[(fp+-2)] = f0; - r0 = heap32[(r0+48)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = 1017370378; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = sp + -4; - r1 = sp + -8; - r0 = f_g0 < f0 ? r0 : r1; - heapFloat[(fp+-1)] = f_g0; -} -else{ - r0 = gContactBreakingThreshold; -} - r1 = r2 >> 2; - r5 = heap32[(r1+49)]; - r6 = r3 >> 2; - r7 = r4 >> 2; - r5 = r5 >> 2; - r0 = r0 >> 2; - f0 = heapFloat[(r6+46)]; - f1 = heapFloat[(r7+46)]; - r6 = heap32[(r5+2)]; - f2 = heapFloat[(r0)]; - f0 = f0 < f1 ? f0 : f1; -_5: do { - if(r6 ==0) //_LBB180_9 -{ - r0 = gNumAlignedAllocs; - r0 = r0 >> 2; - r5 = heap32[(r0)]; - r5 = (r5 + 1)|0; - heap32[(r0)] = r5; - heap32[(g0)] = 1159; - malloc(i7); - r0 = r_g0; - if(r0 !=0) //_LBB180_11 -{ - r5 = 0; - r6 = (r0 + 4)|0; - r5 = (r5 - r6)|0; - r5 = r5 & 15; - r5 = (r0 + r5)|0; - r6 = (r5 + 4)|0; - r5 = r5 >> 2; - heap32[(r5)] = r0; - r0 = r6; -} -else{ -break _5; -} -} -else{ - r0 = heap32[(r5)]; - if(r0 >1139) //_LBB180_6 -{ - if(r6 >0) //_LBB180_8 -{ - r0 = heap32[(r5+3)]; - r7 = r0 >> 2; - r7 = heap32[(r7)]; - r6 = (r6 + -1)|0; - heap32[(r5+3)] = r7; - heap32[(r5+2)] = r6; -} -else{ - r1 = _2E_str371; - r2 = _2E_str169; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 70; - _assert(i7); -} -} -else{ - r1 = _2E_str270; - r2 = _2E_str169; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 69; - _assert(i7); -} -} -} while(0); - r5 = r0 >> 2; - heap32[(r5)] = 1; - heap32[(r5+28)] = 0; - r6 = 0; - heap32[(r5+29)] = 0; - heap8[r0+120] = r6; - heap32[(r5+31)] = 0; - heap32[(r5+32)] = 0; - heap32[(r5+33)] = 0; - heap32[(r5+34)] = 0; - heap32[(r5+35)] = 0; - heap32[(r5+36)] = 0; - heap32[(r5+37)] = 0; - heap32[(r5+97)] = 0; - heap32[(r5+98)] = 0; - heap8[r0+396] = r6; - heap32[(r5+100)] = 0; - heap32[(r5+101)] = 0; - heap32[(r5+102)] = 0; - heap32[(r5+103)] = 0; - heap32[(r5+104)] = 0; - heap32[(r5+105)] = 0; - heap32[(r5+106)] = 0; - heap32[(r5+166)] = 0; - heap32[(r5+167)] = 0; - heap8[r0+672] = r6; - heap32[(r5+169)] = 0; - heap32[(r5+170)] = 0; - heap32[(r5+171)] = 0; - heap32[(r5+172)] = 0; - heap32[(r5+173)] = 0; - heap32[(r5+174)] = 0; - heap32[(r5+175)] = 0; - heap32[(r5+235)] = 0; - heap32[(r5+236)] = 0; - heap8[r0+948] = r6; - heap32[(r5+238)] = 0; - heap32[(r5+239)] = 0; - heap32[(r5+240)] = 0; - heap32[(r5+241)] = 0; - heap32[(r5+242)] = 0; - heap32[(r5+243)] = 0; - heap32[(r5+244)] = 0; - heap32[(r5+277)] = r3; - heap32[(r5+278)] = r4; - heap32[(r5+279)] = 0; - heapFloat[(r5+280)] = f2; - heapFloat[(r5+281)] = f0; - r3 = heap32[(r1+3)]; - heap32[(r5+284)] = r3; - r3 = heap32[(r1+4)]; - r4 = heap32[(r1+3)]; - if(r3 ==r4) //_LBB180_14 -{ - r5 = 1; - r7 = r4 << 1; - r7 = r4 == 0 ? r5 : r7; -if(!(r3 >=r7)) //_LBB180_13 -{ - if(r7 !=0) //_LBB180_17 -{ - r3 = gNumAlignedAllocs; - r3 = r3 >> 2; - r8 = heap32[(r3)]; - r9 = r7 << 2; - r8 = (r8 + 1)|0; - r9 = r9 | 3; - heap32[(r3)] = r8; - r3 = (r9 + 16)|0; - heap32[(g0)] = r3; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB180_19 -{ - r8 = (r3 + 4)|0; - r8 = (r6 - r8)|0; - r8 = r8 & 15; - r8 = (r3 + r8)|0; - r9 = (r8 + 4)|0; - r8 = r8 >> 2; - heap32[(r8)] = r3; - r3 = r9; -} -} -else{ - r3 = 0; -} - r8 = (r2 + 20)|0; - if(r4 <1) //_LBB180_22 -{ - r6 = r8 >> 2; - r9 = heap32[(r6)]; -} -else{ -_26: while(true){ - r9 = r8 >> 2; - r9 = heap32[(r9)]; - r10 = r6 << 2; - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - r10 = (r3 + r10)|0; - r11 = heap32[(r11)]; - r6 = (r6 + 1)|0; - r10 = r10 >> 2; - heap32[(r10)] = r11; -if(!(r4 !=r6)) //_LBB180_23 -{ -break _26; -} -} - r8 = (r2 + 20)|0; -} - if(r9 !=0) //_LBB180_27 -{ - r6 = heapU8[r2+24]; - if(r6 !=0) //_LBB180_29 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r6 = heap32[(r4)]; - r6 = (r6 + 1)|0; - r9 = r9 >> 2; - heap32[(r4)] = r6; - r4 = heap32[(r9+-1)]; - heap32[(g0)] = r4; - free(i7); - r4 = heap32[(r1+3)]; -} - r6 = r8 >> 2; - heap32[(r6)] = 0; -} - r6 = r8 >> 2; - heap8[r2+24] = r5; - heap32[(r6)] = r3; - heap32[(r1+4)] = r7; -} -} - r2 = r4 << 2; - r3 = heap32[(r1+5)]; - r2 = (r3 + r2)|0; - r2 = r2 >> 2; - heap32[(r2)] = r0; - r2 = heap32[(r1+3)]; - r2 = (r2 + 1)|0; - heap32[(r1+3)] = r2; - r_g0 = r0; - return; -} - -function _ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0+279)]; -if(!(r1 <1)) //_LBB181_3 -{ - r2 = 0; -_3: while(true){ - r2 = (r2 + 1)|0; - if(r1 >r2) //_LBB181_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - heap32[(r0+279)] = 0; - return; -} - -function _ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - if(r0 !=0) //_LBB182_2 -{ - r1 = heap32[(fp+2)]; - if(r1 !=0) //_LBB182_4 -{ - r2 = heap32[(fp)]; - r2 = r2 >> 2; - r3 = heap32[(r2+1)]; - r4 = r3 & 1; -if(!(r4 != 0)) //_LBB182_8 -{ - r4 = heapU8[r0+204]; - r4 = r4 & 3; -if(!(r4 ==0)) //_LBB182_8 -{ - r4 = heapU8[r1+204]; - r4 = r4 & 3; -if(!(r4 ==0)) //_LBB182_8 -{ - r3 = r3 | 1; - heap32[(r2+1)] = r3; - r2 = _2E_str977; - heap32[(g0)] = r2; - printf(i7); -} -} -} - r2 = r0 >> 2; - r3 = heap32[(r2+54)]; - if(r3 ==2) //_LBB182_10 -{ -__label__ = 10; -} -else{ - if(r3 !=5) //_LBB182_12 -{ -__label__ = 12; -} -else{ -__label__ = 10; -} -} -_12: do { -if (__label__ == 10){ - r3 = r1 >> 2; - r3 = heap32[(r3+54)]; -if(!(r3 ==2)) //_LBB182_16 -{ -if(!(r3 ==5)) //_LBB182_16 -{ -break _12; -} -} - r0 = 0; - r_g0 = r0; - return; -} -} while(0); - r3 = heap32[(r2+63)]; - if(r3 !=0) //_LBB182_14 -{ - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - r0 = 0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r0 = r_g0 == r0; -} -else{ - r0 = 0; -} - r0 = r0 & 1; - r0 = r0 ^ 1; - r_g0 = r0; - return; -} -else{ - r0 = _2E_str876; - r1 = _2E_str573; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 167; - _assert(i7); -} -} -else{ - r0 = _2E_str775; - r1 = _2E_str573; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 166; - _assert(i7); -} -} - -function _ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+48)]; - r0 = r0 >> 2; - r1 = heap32[(r0+2)]; - r2 = heap32[(fp+1)]; - if(r1 ==0) //_LBB183_7 -{ - r0 = gNumAlignedAllocs; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = (r2 + 19)|0; - heap32[(g0)] = r0; - malloc(i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB183_9 -{ - r1 = 0; - r2 = (r0 + 4)|0; - r1 = (r1 - r2)|0; - r1 = r1 & 15; - r1 = (r0 + r1)|0; - r2 = r1 >> 2; - heap32[(r2)] = r0; - r0 = (r1 + 4)|0; -} - r_g0 = r0; - return; -} -else{ -if(!(r2 ==0)) //_LBB183_4 -{ - r3 = heap32[(r0)]; -if(!(r3 >=r2)) //_LBB183_4 -{ - r0 = _2E_str270; - r1 = _2E_str169; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 69; - _assert(i7); -} -} - if(r1 >0) //_LBB183_6 -{ - r2 = heap32[(r0+3)]; - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r1 = (r1 + -1)|0; - heap32[(r0+3)] = r3; - heap32[(r0+2)] = r1; - r_g0 = r2; - return; -} -else{ - r0 = _2E_str371; - r1 = _2E_str169; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 70; - _assert(i7); -} -} -} - -function _ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -184;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r1 = r1 >> 2; - r2 = r0 >> 2; - r3 = heap32[(r2)]; - r4 = heap32[(r1)]; - r5 = heap32[(r1+1)]; - r3 = r3 >> 2; - r4 = r4 >> 2; - r5 = r5 >> 2; - r4 = heap32[(r4)]; - r5 = heap32[(r5)]; - r3 = heap32[(r3+6)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r5; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = r_g0; -_1: do { -if(!(r3 ==0)) //_LBB184_8 -{ - r3 = heap32[(fp+2)]; - r6 = heap32[(r1+2)]; - if(r6 ==0) //_LBB184_3 -{ - r6 = heap32[(r2)]; - r6 = r6 >> 2; - r6 = heap32[(r6+2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = 0; - __FUNCTION_TABLE__[(r6)>>2](i7); - r6 = r_g0; - heap32[(r1+2)] = r6; - if(r6 ==0) //_LBB184_8 -{ -break _1; -} -} - r0 = _ZTV16btManifoldResult; - r1 = sp + -160; - r0 = (r0 + 8)|0; - r2 = r1 >> 2; - heap32[(fp+-40)] = r0; - heap32[(r2+1)] = 0; - heap32[(r2+34)] = r4; - r0 = r4 >> 2; - heap32[(r2+35)] = r5; - heap32[(r2+2)] = heap32[(r0+1)]; - heap32[(r2+3)] = heap32[(r0+2)]; - heap32[(r2+4)] = heap32[(r0+3)]; - heap32[(r2+5)] = heap32[(r0+4)]; - heap32[(r2+6)] = heap32[(r0+5)]; - heap32[(r2+7)] = heap32[(r0+6)]; - heap32[(r2+8)] = heap32[(r0+7)]; - heap32[(r2+9)] = heap32[(r0+8)]; - heap32[(r2+10)] = heap32[(r0+9)]; - heap32[(r2+11)] = heap32[(r0+10)]; - heap32[(r2+12)] = heap32[(r0+11)]; - heap32[(r2+13)] = heap32[(r0+12)]; - heap32[(r2+14)] = heap32[(r0+13)]; - heap32[(r2+15)] = heap32[(r0+14)]; - heap32[(r2+16)] = heap32[(r0+15)]; - r7 = r5 >> 2; - heap32[(r2+17)] = heap32[(r0+16)]; - heap32[(r2+18)] = heap32[(r7+1)]; - heap32[(r2+19)] = heap32[(r7+2)]; - heap32[(r2+20)] = heap32[(r7+3)]; - heap32[(r2+21)] = heap32[(r7+4)]; - heap32[(r2+22)] = heap32[(r7+5)]; - heap32[(r2+23)] = heap32[(r7+6)]; - heap32[(r2+24)] = heap32[(r7+7)]; - heap32[(r2+25)] = heap32[(r7+8)]; - heap32[(r2+26)] = heap32[(r7+9)]; - heap32[(r2+27)] = heap32[(r7+10)]; - heap32[(r2+28)] = heap32[(r7+11)]; - heap32[(r2+29)] = heap32[(r7+12)]; - heap32[(r2+30)] = heap32[(r7+13)]; - heap32[(r2+31)] = heap32[(r7+14)]; - heap32[(r2+32)] = heap32[(r7+15)]; - r0 = r6 >> 2; - heap32[(r2+33)] = heap32[(r7+16)]; - r0 = heap32[(r0)]; - r2 = r3 >> 2; - r7 = heap32[(r2+2)]; - if(r7 !=1) //_LBB184_6 -{ - r0 = r0 >> 2; - r0 = heap32[(r0+3)]; - heap32[(g0)] = r6; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r1; - __FUNCTION_TABLE__[(r0)>>2](i7); - f0 = f_g0; - f1 = heapFloat[(r2+3)]; -if(!(f1 <=f0)) //_LBB184_8 -{ - heapFloat[(r2+3)] = f0; -} -} -else{ - r0 = r0 >> 2; - r0 = heap32[(r0+2)]; - heap32[(g0)] = r6; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r1; - __FUNCTION_TABLE__[(r0)>>2](i7); - return; -} -} -} while(0); - return; -} - -function _ZN17btCollisionObject24checkCollideWithOverrideEPS_(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 1; - r_g0 = r0; - return; -} - -function _ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - heap32[(r0+48)] = r1; - heap32[(r0+50)] = r1; - return; -} - -function _ZNK17btCollisionObject28calculateSerializeBufferSizeEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 248; - r_g0 = r0; - return; -} - -function _ZN17btCollisionObjectD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV17btCollisionObject; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN17btCollisionObjectD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV17btCollisionObject; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; -if(!(r0 ==0)) //_LBB189_2 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZNK17btCollisionObject9serializeEPvP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = r0 >> 2; - r1 = r1 >> 2; - heap32[(r1+4)] = heap32[(r2+1)]; - heap32[(r1+5)] = heap32[(r2+2)]; - heap32[(r1+6)] = heap32[(r2+3)]; - heap32[(r1+7)] = heap32[(r2+4)]; - heap32[(r1+8)] = heap32[(r2+5)]; - heap32[(r1+9)] = heap32[(r2+6)]; - heap32[(r1+10)] = heap32[(r2+7)]; - heap32[(r1+11)] = heap32[(r2+8)]; - heap32[(r1+12)] = heap32[(r2+9)]; - heap32[(r1+13)] = heap32[(r2+10)]; - heap32[(r1+14)] = heap32[(r2+11)]; - heap32[(r1+15)] = heap32[(r2+12)]; - heap32[(r1+16)] = heap32[(r2+13)]; - heap32[(r1+17)] = heap32[(r2+14)]; - heap32[(r1+18)] = heap32[(r2+15)]; - heap32[(r1+19)] = heap32[(r2+16)]; - heap32[(r1+20)] = heap32[(r2+17)]; - heap32[(r1+21)] = heap32[(r2+18)]; - heap32[(r1+22)] = heap32[(r2+19)]; - heap32[(r1+23)] = heap32[(r2+20)]; - heap32[(r1+24)] = heap32[(r2+21)]; - heap32[(r1+25)] = heap32[(r2+22)]; - heap32[(r1+26)] = heap32[(r2+23)]; - heap32[(r1+27)] = heap32[(r2+24)]; - heap32[(r1+28)] = heap32[(r2+25)]; - heap32[(r1+29)] = heap32[(r2+26)]; - heap32[(r1+30)] = heap32[(r2+27)]; - heap32[(r1+31)] = heap32[(r2+28)]; - heap32[(r1+32)] = heap32[(r2+29)]; - heap32[(r1+33)] = heap32[(r2+30)]; - heap32[(r1+34)] = heap32[(r2+31)]; - heap32[(r1+35)] = heap32[(r2+32)]; - heap32[(r1+36)] = heap32[(r2+33)]; - heap32[(r1+37)] = heap32[(r2+34)]; - heap32[(r1+38)] = heap32[(r2+35)]; - heap32[(r1+39)] = heap32[(r2+36)]; - heap32[(r1+40)] = heap32[(r2+37)]; - heap32[(r1+41)] = heap32[(r2+38)]; - heap32[(r1+42)] = heap32[(r2+39)]; - heap32[(r1+43)] = heap32[(r2+40)]; - heap32[(r1+44)] = heap32[(r2+41)]; - heap32[(r1+45)] = heap32[(r2+42)]; - heap32[(r1+46)] = heap32[(r2+43)]; - heap32[(r1+47)] = heap32[(r2+44)]; - r3 = heap32[(r2+45)]; - heap32[(r1+55)] = r3; - r3 = heap32[(fp+2)]; - heap32[(r1+48)] = heap32[(r2+46)]; - heap32[(r1)] = 0; - r4 = r3 >> 2; - r5 = heap32[(r4)]; - r5 = r5 >> 2; - r5 = heap32[(r5+7)]; - r6 = heap32[(r2+48)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r6; - __FUNCTION_TABLE__[(r5)>>2](i7); - heap32[(r1+1)] = r_g0; - heap32[(r1+2)] = 0; - r5 = heap32[(r2+51)]; - heap32[(r1+56)] = r5; - r5 = heap32[(r2+52)]; - heap32[(r1+57)] = r5; - r5 = heap32[(r2+53)]; - heap32[(r1+58)] = r5; - r5 = heap32[(r2+54)]; - heap32[(r1+59)] = r5; - r5 = heap32[(r2+54)]; - heap32[(r1+59)] = r5; - heap32[(r1+49)] = heap32[(r2+55)]; - heap32[(r1+50)] = heap32[(r2+56)]; - heap32[(r1+51)] = heap32[(r2+57)]; - r5 = heap32[(r2+58)]; - heap32[(r1+60)] = r5; - r5 = heap32[(r4)]; - r5 = r5 >> 2; - r5 = heap32[(r5+10)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - __FUNCTION_TABLE__[(r5)>>2](i7); - r0 = r_g0; - r5 = heap32[(r4)]; - r5 = r5 >> 2; - r5 = heap32[(r5+7)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - __FUNCTION_TABLE__[(r5)>>2](i7); - r5 = r_g0; - heap32[(r1+3)] = r5; -if(!(r5 ==0)) //_LBB190_2 -{ - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+12)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - __FUNCTION_TABLE__[(r4)>>2](i7); -} - heap32[(r1+52)] = heap32[(r2+60)]; - heap32[(r1+53)] = heap32[(r2+61)]; - heap32[(r1+54)] = heap32[(r2+62)]; - heap32[(r1+54)] = heap32[(r2+62)]; - r0 = heap32[(r2+63)]; - heap32[(r1+61)] = r0; - r0 = _2E_str78; - r_g0 = r0; - return; -} - -function _ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - r3 = heap32[(fp+1)]; - __FUNCTION_TABLE__[(r2)>>2](i7); - r4 = r3 >> 2; - r5 = heap32[(r4)]; - r5 = r5 >> 2; - r5 = heap32[(r5+4)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r5)>>2](i7); - r2 = r_g0; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r5 = r2 >> 2; - r1 = heap32[(r1+5)]; - r5 = heap32[(r5+2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r3; - __FUNCTION_TABLE__[(r1)>>2](i7); - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+5)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r_g0; - heap32[(g0+3)] = 1245859651; - heap32[(g0+4)] = r0; - __FUNCTION_TABLE__[(r4)>>2](i7); - return; -} - -function _ZN16btManifoldResult20setShapeIdentifiersAEii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - heap32[(r0+36)] = r1; - heap32[(r0+38)] = r2; - return; -} - -function _ZN16btManifoldResult20setShapeIdentifiersBEii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - heap32[(r0+37)] = r1; - heap32[(r0+39)] = r2; - return; -} - -function _ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - heap32[(r0+21)] = r1; - return; -} - -function _ZN16btCollisionWorld14getDebugDrawerEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+21)]; - r_g0 = r0; - return; -} - -function _ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heapU16[(r0+10)>>1]; - r3 = heapU16[(r1+4)>>1]; - r2 = r2 & r3; - r2 = r2 & 65535; - if(r2 ==0) //_LBB196_2 -{ - r0 = 0; - r_g0 = r0; - return; -} -else{ - r1 = heapU16[(r1+6)>>1]; - r0 = heapU16[(r0+8)>>1]; - r0 = r1 & r0; - r0 = r0 & 65535; - r1 = 0; - r0 = r0 != r1; - r0 = r0 & 1; - r_g0 = r0; - return; -} -} - -function _ZN12btConvexCast10CastResult9DebugDrawEf(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN12btConvexCast10CastResultD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN12btConvexCast10CastResultE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN12btConvexCast10CastResultD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN12btConvexCast10CastResultE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + -56;var g0 = i7>>2; // save stack - r0 = sp + -8; - r1 = heap32[(fp+3)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp)]; - r4 = r0 >> 2; - r5 = heap32[(fp+4)]; - heap32[(fp+-2)] = r1; - r1 = r2 >> 2; - heap32[(r4+1)] = r5; - r2 = r3 >> 2; - r3 = heap32[(r2+12)]; - f0 = heapFloat[(r2+22)]; - f1 = heapFloat[(r1)]; - f2 = heapFloat[(r2+18)]; - f3 = heapFloat[(r2+14)]; - f4 = heapFloat[(r2+23)]; - f5 = heapFloat[(r1+1)]; - f6 = heapFloat[(r2+19)]; - f7 = heapFloat[(r2+15)]; - f8 = heapFloat[(r2+24)]; - f9 = heapFloat[(r1+2)]; - f10 = heapFloat[(r2+20)]; - f11 = heapFloat[(r2+16)]; - r1 = sp + -40; - f3 = f3*f1; - f7 = f7*f5; - r4 = r1 >> 2; - heap32[(fp+-10)] = r3; - f2 = f2*f1; - f6 = f6*f5; - f3 = f3+f7; - f7 = f11*f9; - f0 = f0*f1; - f1 = f4*f5; - f2 = f2+f6; - f4 = f10*f9; - f3 = f3+f7; - heap32[(r4+1)] = r0; - f0 = f0+f1; - f1 = f8*f9; - f2 = f2+f4; - heapFloat[(r4+2)] = f3; - f0 = f0+f1; - heapFloat[(r4+3)] = f2; - heapFloat[(r4+4)] = f0; - heap32[(r4+5)] = 0; - heap32[(r4+6)] = heap32[(fp+2)]; - r0 = heap32[(r2+11)]; - r2 = r0 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r2)>>2](i7); - return; -} - -function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + -56;var g0 = i7>>2; // save stack - r0 = sp + -8; - r1 = heap32[(fp+3)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp)]; - r4 = r0 >> 2; - r5 = heap32[(fp+4)]; - heap32[(fp+-2)] = r1; - r1 = r2 >> 2; - heap32[(r4+1)] = r5; - r2 = r3 >> 2; - r3 = heap32[(r2+12)]; - f0 = heapFloat[(r2+22)]; - f1 = heapFloat[(r1)]; - f2 = heapFloat[(r2+18)]; - f3 = heapFloat[(r2+14)]; - f4 = heapFloat[(r2+23)]; - f5 = heapFloat[(r1+1)]; - f6 = heapFloat[(r2+19)]; - f7 = heapFloat[(r2+15)]; - f8 = heapFloat[(r2+24)]; - f9 = heapFloat[(r1+2)]; - f10 = heapFloat[(r2+20)]; - f11 = heapFloat[(r2+16)]; - r1 = sp + -40; - f3 = f3*f1; - f7 = f7*f5; - r4 = r1 >> 2; - heap32[(fp+-10)] = r3; - f2 = f2*f1; - f6 = f6*f5; - f3 = f3+f7; - f7 = f11*f9; - f0 = f0*f1; - f1 = f4*f5; - f2 = f2+f6; - f4 = f10*f9; - f3 = f3+f7; - heap32[(r4+1)] = r0; - f0 = f0+f1; - f1 = f8*f9; - f2 = f2+f4; - heapFloat[(r4+2)] = f3; - f0 = f0+f1; - heapFloat[(r4+3)] = f2; - heapFloat[(r4+4)] = f0; - heap32[(r4+5)] = 0; - heap32[(r4+6)] = heap32[(fp+2)]; - r0 = heap32[(r2+11)]; - r2 = r0 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r2)>>2](i7); - return; -} - -function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = sp + -8; - r0 = r0 >> 2; - heap32[(fp+-2)] = -1; - r2 = heap32[(fp+1)]; - r3 = r1 >> 2; - r4 = heap32[(r0+6)]; - r5 = r2 >> 2; - heap32[(r3+1)] = r4; - r3 = heap32[(r5+1)]; -if(!(r3 !=0)) //_LBB205_2 -{ - heap32[(r5+1)] = r1; -} - r1 = heap32[(fp+2)]; - r3 = heap32[(r0+5)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+3)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r1; - __FUNCTION_TABLE__[(r4)>>2](i7); - r1 = heap32[(r0+5)]; - r1 = r1 >> 2; - heap32[(r0+1)] = heap32[(r1+1)]; - return; -} - -function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -72;var g0 = i7>>2; // save stack - r0 = sp + -8; - r1 = heap32[(fp+4)]; - r2 = heap32[(fp)]; - r3 = r0 >> 2; - r4 = heap32[(fp+5)]; - heap32[(fp+-2)] = r1; - r1 = r2 >> 2; - heap32[(r3+1)] = r4; - r2 = heap32[(r1+52)]; - f0 = heapFloat[(fp+3)]; - r3 = r2 >> 2; - f1 = heapFloat[(r3+1)]; - if(f1 > 2; - heap32[(fp+-14)] = r1; - r1 = r4 >> 2; - heap32[(r7+1)] = r0; - heap32[(r7+2)] = heap32[(r1)]; - heap32[(r7+3)] = heap32[(r1+1)]; - heap32[(r7+4)] = heap32[(r1+2)]; - r0 = r5 >> 2; - heap32[(r7+5)] = heap32[(r1+3)]; - heap32[(r7+6)] = heap32[(r0)]; - heap32[(r7+7)] = heap32[(r0+1)]; - heap32[(r7+8)] = heap32[(r0+2)]; - heap32[(r7+9)] = heap32[(r0+3)]; - heapFloat[(r7+10)] = f0; - r0 = heap32[(r3)]; - r0 = r0 >> 2; - r0 = heap32[(r0+3)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r0)>>2](i7); - return; -} -} - -function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -72;var g0 = i7>>2; // save stack - r0 = sp + -8; - r1 = heap32[(fp+4)]; - r2 = heap32[(fp)]; - r3 = r0 >> 2; - r4 = heap32[(fp+5)]; - heap32[(fp+-2)] = r1; - r1 = r2 >> 2; - heap32[(r3+1)] = r4; - r2 = heap32[(r1+52)]; - f0 = heapFloat[(fp+3)]; - r3 = r2 >> 2; - f1 = heapFloat[(r3+1)]; - if(f1 > 2; - heap32[(fp+-14)] = r1; - r1 = r4 >> 2; - heap32[(r7+1)] = r0; - heap32[(r7+2)] = heap32[(r1)]; - heap32[(r7+3)] = heap32[(r1+1)]; - heap32[(r7+4)] = heap32[(r1+2)]; - r0 = r5 >> 2; - heap32[(r7+5)] = heap32[(r1+3)]; - heap32[(r7+6)] = heap32[(r0)]; - heap32[(r7+7)] = heap32[(r0+1)]; - heap32[(r7+8)] = heap32[(r0+2)]; - heap32[(r7+9)] = heap32[(r0+3)]; - heapFloat[(r7+10)] = f0; - r0 = heap32[(r3)]; - r0 = r0 >> 2; - r0 = heap32[(r0+3)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = 0; - __FUNCTION_TABLE__[(r0)>>2](i7); - return; -} -} - -function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultERNS_17LocalConvexResultEb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = sp + -8; - r0 = r0 >> 2; - heap32[(fp+-2)] = -1; - r2 = heap32[(fp+1)]; - r3 = r1 >> 2; - r4 = heap32[(r0+4)]; - r5 = r2 >> 2; - heap32[(r3+1)] = r4; - r3 = heap32[(r5+1)]; -if(!(r3 !=0)) //_LBB210_2 -{ - heap32[(r5+1)] = r1; -} - r1 = heap32[(fp+2)]; - r3 = heap32[(r0+3)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+3)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r1; - __FUNCTION_TABLE__[(r4)>>2](i7); - r1 = heap32[(r0+3)]; - r1 = r1 >> 2; - heap32[(r0+1)] = heap32[(r1+1)]; - return; -} - -function _ZN17DebugDrawcallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = _ZTV17DebugDrawcallback; - r1 = heap32[(fp)]; - r1 = r1 >> 2; - r2 = (r0 + 8)|0; - r3 = _ZTV31btInternalTriangleIndexCallback; - r0 = (r0 + 32)|0; - heap32[(r1)] = r2; - r2 = _ZTV18btTriangleCallback; - r3 = (r3 + 8)|0; - heap32[(r1+1)] = r0; - r0 = (r2 + 8)|0; - heap32[(r1+1)] = r3; - heap32[(r1)] = r0; - return; -} - -function _ZN17DebugDrawcallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = _ZTV17DebugDrawcallback; - r1 = heap32[(fp)]; - r2 = r1 >> 2; - r3 = (r0 + 8)|0; - r4 = _ZTV31btInternalTriangleIndexCallback; - r0 = (r0 + 32)|0; - heap32[(r2)] = r3; - r3 = _ZTV18btTriangleCallback; - r4 = (r4 + 8)|0; - heap32[(r2+1)] = r0; - r0 = (r3 + 8)|0; - heap32[(r2+1)] = r4; - heap32[(r2)] = r0; - heap32[(g0)] = r1; - _ZdlPv(i7); - return; -} - -function _ZN17DebugDrawcallback15processTriangleEP9btVector3ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; -var __label__ = 0; - i7 = sp + -112;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = r0 >> 2; - r1 = r1 >> 2; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r2+7)]; - f2 = heapFloat[(r1+1)]; - f3 = heapFloat[(r2+8)]; - f4 = heapFloat[(r2+11)]; - f5 = heapFloat[(r2+12)]; - f6 = f1*f0; - f7 = f3*f2; - f8 = heapFloat[(r1+2)]; - f9 = heapFloat[(r2+9)]; - f10 = heapFloat[(r2+15)]; - f11 = heapFloat[(r2+16)]; - f12 = heapFloat[(r2+13)]; - f13 = f4*f0; - f14 = f5*f2; - f6 = f6+f7; - f7 = f9*f8; - f15 = heapFloat[(r2+17)]; - f0 = f10*f0; - f2 = f11*f2; - f13 = f13+f14; - f14 = f12*f8; - f6 = f6+f7; - f7 = heapFloat[(r2+19)]; - f16 = heapFloat[(r2+21)]; - f17 = heapFloat[(r2+20)]; - r3 = sp + -32; - f13 = f13+f14; - f0 = f0+f2; - f2 = f15*f8; - f6 = f6+f7; - f0 = f0+f2; - r4 = r3 >> 2; - f2 = f13+f17; - heapFloat[(fp+-8)] = f6; - f0 = f0+f16; - heapFloat[(r4+1)] = f2; - heapFloat[(r4+2)] = f0; - heap32[(r4+3)] = 0; - f8 = heapFloat[(r1+4)]; - f13 = heapFloat[(r1+5)]; - f14 = heapFloat[(r1+6)]; - f18 = f1*f8; - f19 = f3*f13; - f20 = f4*f8; - f21 = f5*f13; - f18 = f18+f19; - f19 = f9*f14; - f18 = f18+f19; - f8 = f10*f8; - f13 = f11*f13; - f19 = f20+f21; - f20 = f12*f14; - f18 = f18+f7; - r4 = sp + -48; - f19 = f19+f20; - f8 = f8+f13; - f13 = f15*f14; - f14 = f19+f17; - f8 = f8+f13; - r5 = r4 >> 2; - heapFloat[(fp+-12)] = f18; - f8 = f8+f16; - heapFloat[(r5+1)] = f14; - heapFloat[(r5+2)] = f8; - heap32[(r5+3)] = 0; - f13 = heapFloat[(r1+8)]; - f19 = heapFloat[(r1+9)]; - f20 = heapFloat[(r1+10)]; - f1 = f1*f13; - f3 = f3*f19; - f4 = f4*f13; - f5 = f5*f19; - f1 = f1+f3; - f3 = f9*f20; - f1 = f1+f3; - f3 = f10*f13; - f9 = f11*f19; - f4 = f4+f5; - f5 = f12*f20; - r1 = sp + -64; - f4 = f4+f5; - f1 = f1+f7; - f3 = f3+f9; - f5 = f15*f20; - f3 = f3+f5; - f4 = f4+f17; - r5 = r1 >> 2; - heapFloat[(fp+-16)] = f1; - f5 = f6+f18; - f3 = f3+f16; - heapFloat[(r5+1)] = f4; - f7 = f2+f14; - heapFloat[(r5+2)] = f3; - f5 = f5+f1; - f9 = 0.3333333432674408; - r6 = sp + -80; - f10 = f0+f8; - f7 = f7+f4; - f8 = f8-f0; - f4 = f4-f2; - f11 = f18-f6; - f0 = f3-f0; - f2 = f14-f2; - f1 = f1-f6; - f5 = f5*f9; - heap32[(r5+3)] = 0; - f3 = f10+f3; - f6 = f2*f0; - f10 = f8*f4; - f8 = f8*f1; - f0 = f11*f0; - r5 = r6 >> 2; - f7 = f7*f9; - heapFloat[(fp+-20)] = f5; - f5 = f6-f10; - f0 = f8-f0; - f4 = f11*f4; - f1 = f2*f1; - f2 = f3*f9; - heapFloat[(r5+1)] = f7; - f1 = f4-f1; - heapFloat[(r5+2)] = f2; - f2 = f5*f5; - f3 = f0*f0; - heap32[(r5+3)] = 0; - f2 = f2+f3; - f3 = f1*f1; - f2 = f2+f3; - heapFloat[(g0)] = f2; - r7 = sp + -96; - sqrtf(i7); - r8 = r7 >> 2; - heap32[(fp+-24)] = 1065353216; - heap32[(r8+1)] = 1065353216; - heap32[(r8+2)] = 0; - heap32[(r8+3)] = 0; - r8 = heap32[(r2+2)]; - r9 = r8 >> 2; - f3 = 1; - r9 = heap32[(r9)]; - f2 = f3/f_g0; - r9 = r9 >> 2; - r9 = heap32[(r9+2)]; - f3 = f5*f2; - f4 = heapFloat[(fp+-20)]; - f5 = heapFloat[(r5+2)]; - f6 = heapFloat[(r5+1)]; - r5 = sp + -16; - f0 = f0*f2; - f3 = f4+f3; - f1 = f1*f2; - r10 = r5 >> 2; - f0 = f6+f0; - heapFloat[(fp+-4)] = f3; - f1 = f5+f1; - heapFloat[(r10+1)] = f0; - heapFloat[(r10+2)] = f1; - heap32[(r10+3)] = 0; - heap32[(g0)] = r8; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r7; - __FUNCTION_TABLE__[(r9)>>2](i7); - r5 = heap32[(r2+2)]; - r6 = r5 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+2)]; - r0 = (r0 + 12)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r0; - __FUNCTION_TABLE__[(r6)>>2](i7); - r5 = heap32[(r2+2)]; - r6 = r5 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+2)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r0; - __FUNCTION_TABLE__[(r6)>>2](i7); - r2 = heap32[(r2+2)]; - r4 = r2 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+2)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r0; - __FUNCTION_TABLE__[(r4)>>2](i7); - return; -} - -function _ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+2)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZThn4_N17DebugDrawcallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = _ZTV17DebugDrawcallback; - r1 = heap32[(fp)]; - r1 = r1 >> 2; - r2 = (r0 + 8)|0; - r3 = _ZTV31btInternalTriangleIndexCallback; - r0 = (r0 + 32)|0; - heap32[(r1+-1)] = r2; - r2 = _ZTV18btTriangleCallback; - r3 = (r3 + 8)|0; - heap32[(r1)] = r0; - r0 = (r2 + 8)|0; - heap32[(r1)] = r3; - heap32[(r1+-1)] = r0; - return; -} - -function _ZThn4_N17DebugDrawcallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV17DebugDrawcallback; - r2 = r0 >> 2; - r3 = (r1 + 8)|0; - r4 = _ZTV31btInternalTriangleIndexCallback; - r1 = (r1 + 32)|0; - heap32[(r2+-1)] = r3; - r3 = _ZTV18btTriangleCallback; - r4 = (r4 + 8)|0; - heap32[(r2)] = r1; - r1 = (r3 + 8)|0; - heap32[(r2)] = r4; - heap32[(r2+-1)] = r1; - r0 = (r0 + -4)|0; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1+-1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+2)]; - r0 = (r0 + -4)|0; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZN16btCollisionWorldD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - heap32[(g0)] = r0; - _ZN16btCollisionWorldD2Ev(i7); - return; -} - -function _ZN16btCollisionWorldD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV16btCollisionWorld; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+4)]; - r3 = heap32[(r2+2)]; - if(r3 >0) //_LBB219_2 -{ - r3 = 0; -_3: while(true){ - r4 = r3 << 2; - r1 = (r1 + r4)|0; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r4 = heap32[(r1+47)]; -if(!(r4 ==0)) //_LBB219_5 -{ - r5 = heap32[(r2+20)]; - r6 = r5 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+9)]; - heap32[(g0)] = r5; - __FUNCTION_TABLE__[(r6)>>2](i7); - r6 = r_g0 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+10)]; - r7 = heap32[(r2+6)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r7; - __FUNCTION_TABLE__[(r6)>>2](i7); - r5 = heap32[(r2+20)]; - r6 = r5 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+3)]; - r7 = heap32[(r2+6)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r7; - __FUNCTION_TABLE__[(r6)>>2](i7); - heap32[(r1+47)] = 0; -} - r3 = (r3 + 1)|0; - r1 = heap32[(r2+4)]; - r4 = heap32[(r2+2)]; - if(r4 >r3) //_LBB219_3 -{ -continue _3; -} -else{ -break _3; -} -} -} -if(!(r1 ==0)) //_LBB219_10 -{ - r3 = heapU8[r0+20]; -if(!(r3 ==0)) //_LBB219_9 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+4)] = 0; -} - r1 = 1; - heap8[r0+20] = r1; - heap32[(r2+4)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN16btCollisionWorld11updateAabbsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; -var __label__ = 0; - i7 = sp + -64;var g0 = i7>>2; // save stack - r0 = _2E_str1998; - r1 = heap32[(fp)]; - heap32[(g0)] = r0; - r0 = r1 >> 2; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r2 = heap32[(r0+2)]; -if(!(r2 <1)) //_LBB220_14 -{ - r2 = 0; -_3: while(true){ - r3 = heap32[(r0+4)]; - r4 = r2 << 2; - r3 = (r3 + r4)|0; - r3 = r3 >> 2; - r2 = (r2 + 1)|0; - r3 = heap32[(r3)]; - r4 = heapU8[r1+88]; - if(r4 !=0) //_LBB220_5 -{ -__label__ = 5; -} -else{ - r4 = r3 >> 2; - r4 = heap32[(r4+54)]; - if(r4 ==2) //_LBB220_13 -{ -__label__ = 13; -} -else{ - if(r4 ==5) //_LBB220_13 -{ -__label__ = 13; -} -else{ -__label__ = 5; -} -} -} -_8: do { -if (__label__ == 5){ - r4 = r3 >> 2; - r5 = heap32[(r4+48)]; - r6 = r5 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+2)]; - r7 = sp + -40; - r8 = sp + -24; - r9 = (r3 + 4)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r7; - __FUNCTION_TABLE__[(r6)>>2](i7); - f0 = -0.019999999552965164; - f1 = heapFloat[(fp+-6)]; - f1 = f1+f0; - r5 = r8 >> 2; - heapFloat[(fp+-6)] = f1; - f2 = heapFloat[(r5+1)]; - f2 = f2+f0; - heapFloat[(r5+1)] = f2; - f3 = heapFloat[(r5+2)]; - f0 = f3+f0; - heapFloat[(r5+2)] = f0; - f3 = 0.019999999552965164; - f4 = heapFloat[(fp+-10)]; - f4 = f4+f3; - r5 = r7 >> 2; - heapFloat[(fp+-10)] = f4; - f5 = heapFloat[(r5+1)]; - f5 = f5+f3; - heapFloat[(r5+1)] = f5; - f6 = heapFloat[(r5+2)]; - f3 = f6+f3; - heapFloat[(r5+2)] = f3; - r5 = heap32[(r0+20)]; - r3 = heapU8[r3+204]; - r3 = r3 & 1; -if(!(r3 != 0)) //_LBB220_10 -{ - f1 = f4-f1; - f2 = f5-f2; - f0 = f3-f0; - f1 = f1*f1; - f2 = f2*f2; - f1 = f1+f2; - f0 = f0*f0; - f0 = f1+f0; - f1 = 999999995904; -if(!(f0 > 2; - heap8[r4] = r5; - r4 = heap32[(r6)]; - r4 = r4 >> 2; - r4 = heap32[(r4+9)]; - r5 = _2E_str1594; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - __FUNCTION_TABLE__[(r4)>>2](i7); - r3 = heap32[(r0+21)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+9)]; - r5 = _2E_str1695; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - __FUNCTION_TABLE__[(r4)>>2](i7); - r3 = heap32[(r0+21)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+9)]; - r5 = _2E_str1796; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - __FUNCTION_TABLE__[(r4)>>2](i7); - r3 = heap32[(r0+21)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+9)]; - r5 = _2E_str1897; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - __FUNCTION_TABLE__[(r4)>>2](i7); -break _8; -} -} -} -} - r3 = r5 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - r6 = heap32[(r0+6)]; - r4 = heap32[(r4+47)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = r6; - __FUNCTION_TABLE__[(r3)>>2](i7); -} -} while(0); - r3 = heap32[(r0+2)]; - if(r3 >r2) //_LBB220_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - r0 = _ZN15CProfileManager11CurrentNodeE; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r3 = (r3 + -1)|0; - heap32[(r2+4)] = r3; -_21: do { -if(!(r3 !=0)) //_LBB220_20 -{ - r3 = heap32[(r2+1)]; - if(r3 !=0) //_LBB220_17 -{ - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 * 1000000)|0; - r1 = (r1 + r3)|0; - r3 = heap32[(r2+3)]; - r1 = (r1 - r3)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r2+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r2+2)] = f0; - r1 = heap32[(r2+4)]; - if(r1 !=0) //_LBB220_20 -{ -break _21; -} -else{ - r1 = heap32[(r0)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r0)] = r1; -} -} while(0); - return; -} - -function _ZN16btCollisionWorld14debugDrawWorldEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var f0; -var __label__ = 0; - i7 = sp + -104;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; -_1: do { -if(!(r2 ==0)) //_LBB221_10 -{ - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r3 = r_g0 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+12)]; - heap32[(g0)] = r_g0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = r_g0 & 8; -if(!(r2 ==0)) //_LBB221_10 -{ - r2 = heap32[(r1+6)]; - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+9)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = r_g0; - r3 = sp + -16; - r4 = r3 >> 2; - heap32[(fp+-4)] = 0; - heap32[(r4+1)] = 0; - r5 = 0; - heap32[(r4+2)] = 0; - heap32[(r4+3)] = 0; -_4: while(true){ - if(r5 > 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+10)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - __FUNCTION_TABLE__[(r6)>>2](i7); - r4 = r_g0; - r6 = r4 >> 2; - r6 = heap32[(r6+279)]; - r7 = 36; - r8 = 68; - r9 = 0; -_7: while(true){ - if(r9 > 2; - r10 = heap32[(r10+279)]; - if(r10 >r9) //_LBB221_6 -{ - r10 = (r9 * 69)|0; - r11 = (r4 + r7)|0; - r12 = (r4 + r8)|0; - r13 = heap32[(r1)]; - r13 = r13 >> 2; - r13 = heap32[(r13+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r13)>>2](i7); - r14 = r_g0 >> 2; - r15 = r10 << 2; - r10 = r10 << 2; - r14 = heap32[(r14)]; - r15 = (r4 + r15)|0; - r10 = (r4 + r10)|0; - r14 = r14 >> 2; - r15 = r15 >> 2; - r10 = r10 >> 2; - r14 = heap32[(r14+8)]; - r15 = heap32[(r15+37)]; - f0 = heapFloat[(r10+21)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r12; - heapFloat[(g0+3)] = f0; - heap32[(g0+4)] = r15; - heap32[(g0+5)] = r3; - r9 = (r9 + 1)|0; - r8 = (r8 + 276)|0; - r7 = (r7 + 276)|0; - __FUNCTION_TABLE__[(r14)>>2](i7); -} -else{ -break _4; -} -} -else{ -break _7; -} -} - r5 = (r5 + 1)|0; -} -else{ -break _1; -} -} - r0 = _2E_str382; - r1 = _2E_str483; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 122; - _assert(i7); -} -} -} while(0); - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; -_14: do { -if(!(r2 ==0)) //_LBB221_13 -{ - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r3 = r_g0 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+12)]; - heap32[(g0)] = r_g0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = r_g0 & 3; -if(!(r2 ==0)) //_LBB221_13 -{ - r2 = heap32[(r1+2)]; - if(r2 >0) //_LBB221_14 -{ - r2 = 0; -_18: while(true){ - r3 = heap32[(r1+4)]; - r4 = r2 << 2; - r3 = (r3 + r4)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r4 = heapU8[r3+204]; - r4 = r4 & 32; -if(!(r4 !=0)) //_LBB221_34 -{ - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r_g0; -if(!(r4 ==0)) //_LBB221_31 -{ - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r4)>>2](i7); - r5 = r_g0 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+12)]; - heap32[(g0)] = r_g0; - __FUNCTION_TABLE__[(r5)>>2](i7); - r4 = r_g0 & 1; -if(!(r4 ==0)) //_LBB221_31 -{ - r4 = sp + -32; - r5 = r4 >> 2; - heap32[(fp+-8)] = 1065353216; - heap32[(r5+1)] = 1065353216; - heap32[(r5+2)] = 1065353216; - r6 = r3 >> 2; - heap32[(r5+3)] = 0; - r7 = heap32[(r6+54)]; -_25: do { - if(r7 >2) //_LBB221_21 -{ - if(r7 ==3) //_LBB221_26 -{ - heap32[(fp+-8)] = 0; - heap32[(r5+1)] = 1065353216; - heap32[(r5+2)] = 1065353216; - heap32[(r5+3)] = 0; -__label__ = 30; -break _25; -} -else{ - if(r7 ==4) //_LBB221_27 -{ - heap32[(fp+-8)] = 1065353216; - heap32[(r5+1)] = 0; - heap32[(r5+2)] = 0; - heap32[(r5+3)] = 0; -__label__ = 30; -break _25; -} -else{ - if(r7 ==5) //_LBB221_28 -{ - heap32[(fp+-8)] = 1065353216; - heap32[(r5+1)] = 1065353216; - heap32[(r5+2)] = 0; - heap32[(r5+3)] = 0; -__label__ = 30; -break _25; -} -else{ -__label__ = 29; -break _25; -} -} -} -} -else{ - if(r7 ==1) //_LBB221_24 -{ - heap32[(fp+-8)] = 1065353216; - heap32[(r5+1)] = 1065353216; - heap32[(r5+2)] = 1065353216; - heap32[(r5+3)] = 0; -__label__ = 30; -} -else{ - if(r7 ==2) //_LBB221_25 -{ - heap32[(fp+-8)] = 0; - heap32[(r5+1)] = 1065353216; - heap32[(r5+2)] = 0; - heap32[(r5+3)] = 0; -__label__ = 30; -} -else{ -__label__ = 29; -} -} -} -} while(0); -if (__label__ == 29){ - heap32[(fp+-8)] = 1065353216; - heap32[(r5+1)] = 0; - heap32[(r5+2)] = 0; - heap32[(r5+3)] = 0; -} - r5 = heap32[(r1)]; - r5 = r5 >> 2; - r5 = heap32[(r5+6)]; - r6 = heap32[(r6+48)]; - r7 = (r3 + 4)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r5)>>2](i7); -} -} - r4 = heap32[(r1+21)]; -if(!(r4 ==0)) //_LBB221_34 -{ - r5 = r4 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+12)]; - heap32[(g0)] = r4; - __FUNCTION_TABLE__[(r5)>>2](i7); - r4 = r_g0 & 2; -if(!(r4 ==0)) //_LBB221_34 -{ - r4 = sp + -80; - r5 = r4 >> 2; - heap32[(fp+-20)] = 1065353216; - heap32[(r5+1)] = 0; - heap32[(r5+2)] = 0; - r6 = r3 >> 2; - heap32[(r5+3)] = 0; - r5 = heap32[(r6+48)]; - r6 = r5 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+2)]; - r3 = (r3 + 4)|0; - r7 = sp + -48; - r8 = sp + -64; - heap32[(g0)] = r5; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = r8; - __FUNCTION_TABLE__[(r6)>>2](i7); - r3 = heap32[(r1+21)]; - r5 = r3 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+13)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r5)>>2](i7); -} -} -} - r2 = (r2 + 1)|0; - r3 = heap32[(r1+2)]; - if(r3 >r2) //_LBB221_15 -{ -continue _18; -} -else{ -break _14; -} -} -} -} -} -} while(0); - return; -} - -function _ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; -var __label__ = 0; - i7 = sp + -1376;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r3 = r_g0 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+14)]; - r4 = heap32[(fp+1)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = 1065353216; - r2 = heap32[(fp+2)]; - r5 = r2 >> 2; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = heap32[(r5+1)]; - r6 = heap32[(fp+3)]; -_1: do { - if(r3 >10) //_LBB222_6 -{ - if(r3 >27) //_LBB222_9 -{ - if(r3 ==28) //_LBB222_23 -{ - f0 = heapFloat[(r5+14)]; - f1 = heapFloat[(r5+13)]; - f2 = heapFloat[(r5+16)]; - f3 = heapFloat[(r5+12)]; - f4 = f0*f2; - f5 = f1*f2; - f2 = f3*f2; - f6 = 0; - if(f0 > 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - f9 = 100; - __FUNCTION_TABLE__[(r2)>>2](i7); - r3 = r4 >> 2; - f8 = f8*f9; - r4 = r_g0 >> 2; - f10 = f2-f0; - f11 = heapFloat[(r3)]; - f12 = f5-f8; - f13 = heapFloat[(r3+1)]; - r4 = heap32[(r4)]; - f14 = heapFloat[(r3+4)]; - f15 = heapFloat[(r3+5)]; - f16 = f11*f10; - f17 = f13*f12; - f18 = f4-f6; - f19 = heapFloat[(r3+2)]; - r4 = r4 >> 2; - f20 = heapFloat[(r3+8)]; - f21 = heapFloat[(r3+9)]; - f22 = heapFloat[(r3+6)]; - f23 = f14*f10; - f24 = f15*f12; - f16 = f16+f17; - f17 = f19*f18; - f25 = heapFloat[(r3+10)]; - r4 = heap32[(r4+2)]; - f10 = f20*f10; - f12 = f21*f12; - f23 = f23+f24; - f24 = f22*f18; - f16 = f16+f17; - f17 = heapFloat[(r3+12)]; - f26 = heapFloat[(r3+14)]; - f27 = heapFloat[(r3+13)]; - f0 = f2+f0; - f8 = f5+f8; - r5 = sp + -64; - f23 = f23+f24; - f10 = f10+f12; - f12 = f25*f18; - f16 = f16+f17; - f6 = f4+f6; - f10 = f10+f12; - f11 = f11*f0; - f12 = f13*f8; - r7 = r5 >> 2; - f13 = f23+f27; - heapFloat[(fp+-16)] = f16; - f14 = f14*f0; - f15 = f15*f8; - f11 = f11+f12; - f12 = f19*f6; - f10 = f10+f26; - heapFloat[(r7+1)] = f13; - f11 = f11+f12; - heapFloat[(r7+2)] = f10; - f0 = f20*f0; - f8 = f21*f8; - f10 = f14+f15; - f12 = f22*f6; - r8 = sp + -48; - f10 = f10+f12; - f0 = f0+f8; - f6 = f25*f6; - f8 = f11+f17; - heap32[(r7+3)] = 0; - f0 = f0+f6; - r7 = r8 >> 2; - f6 = f10+f27; - heapFloat[(fp+-12)] = f8; - f0 = f0+f26; - heapFloat[(r7+1)] = f6; - heapFloat[(r7+2)] = f0; - heap32[(r7+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r4)>>2](i7); - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - f0 = f1*f9; - f1 = f3*f9; - f3 = f7*f9; - r1 = r_g0 >> 2; - f6 = f2-f0; - f7 = heapFloat[(r3)]; - f8 = f5-f1; - f9 = heapFloat[(r3+1)]; - r1 = heap32[(r1)]; - f10 = heapFloat[(r3+4)]; - f11 = heapFloat[(r3+5)]; - f12 = f7*f6; - f13 = f9*f8; - f14 = f4-f3; - f15 = heapFloat[(r3+2)]; - r1 = r1 >> 2; - f16 = heapFloat[(r3+8)]; - f17 = heapFloat[(r3+9)]; - f18 = heapFloat[(r3+6)]; - f19 = f10*f6; - f20 = f11*f8; - f12 = f12+f13; - f13 = f15*f14; - f21 = heapFloat[(r3+10)]; - r1 = heap32[(r1+2)]; - f6 = f16*f6; - f8 = f17*f8; - f19 = f19+f20; - f20 = f18*f14; - f12 = f12+f13; - f13 = heapFloat[(r3+12)]; - f22 = heapFloat[(r3+14)]; - f23 = heapFloat[(r3+13)]; - f0 = f2+f0; - f1 = f5+f1; - r2 = sp + -32; - f2 = f19+f20; - f5 = f6+f8; - f6 = f21*f14; - f8 = f12+f13; - f3 = f4+f3; - f4 = f5+f6; - f5 = f7*f0; - f6 = f9*f1; - r3 = r2 >> 2; - f2 = f2+f23; - heapFloat[(fp+-8)] = f8; - f7 = f10*f0; - f8 = f11*f1; - f5 = f5+f6; - f6 = f15*f3; - f4 = f4+f22; - heapFloat[(r3+1)] = f2; - f2 = f5+f6; - heapFloat[(r3+2)] = f4; - f0 = f16*f0; - f1 = f17*f1; - f4 = f7+f8; - f5 = f18*f3; - r4 = sp + -16; - f4 = f4+f5; - f0 = f0+f1; - f1 = f21*f3; - f2 = f2+f13; - heap32[(r3+3)] = 0; - f0 = f0+f1; - r3 = r4 >> 2; - f1 = f4+f23; - heapFloat[(fp+-4)] = f2; - f0 = f0+f22; - heapFloat[(r3+1)] = f1; - heapFloat[(r3+2)] = f0; - heap32[(r3+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r4; -__label__ = 30; -break _1; -} -else{ - if(r3 !=31) //_LBB222_32 -{ -__label__ = 32; -break _1; -} -else{ - r2 = heap32[(r5+4)]; - r3 = (r2 + -1)|0; - if(r3 <0) //_LBB222_42 -{ -__label__ = 40; -break _1; -} -else{ - r3 = 1; - r2 = (r3 - r2)|0; -_18: while(true){ - r3 = r2; - r2 = (r3 * -20)|0; - r7 = heap32[(r5+6)]; - r2 = r2 << 2; - r2 = (r7 + r2)|0; - r2 = r2 >> 2; - r7 = r4 >> 2; - r8 = heap32[(r1)]; - f0 = heapFloat[(r2)]; - f1 = heapFloat[(r7)]; - f2 = heapFloat[(r2+4)]; - f3 = heapFloat[(r7+1)]; - r8 = r8 >> 2; - f4 = heapFloat[(r2+1)]; - f5 = heapFloat[(r2+5)]; - f6 = f0*f1; - f7 = f2*f3; - f8 = heapFloat[(r2+8)]; - f9 = heapFloat[(r7+2)]; - f10 = heapFloat[(r7+8)]; - f11 = heapFloat[(r2+2)]; - f12 = heapFloat[(r7+4)]; - f13 = heapFloat[(r2+12)]; - f14 = heapFloat[(r7+9)]; - f15 = heapFloat[(r2+6)]; - f16 = heapFloat[(r7+5)]; - f17 = heapFloat[(r2+13)]; - f18 = heapFloat[(r2+9)]; - f19 = heapFloat[(r7+10)]; - f20 = heapFloat[(r2+10)]; - f21 = heapFloat[(r7+6)]; - f22 = heapFloat[(r2+14)]; - r8 = heap32[(r8+6)]; - f23 = f4*f1; - f24 = f5*f3; - f6 = f6+f7; - f7 = f8*f9; - r2 = heap32[(r2+16)]; - f25 = heapFloat[(r7+14)]; - f26 = heapFloat[(r7+13)]; - f27 = heapFloat[(r7+12)]; - r7 = sp + -688; - f28 = f11*f1; - f29 = f15*f3; - f23 = f23+f24; - f24 = f18*f9; - f6 = f6+f7; - r9 = r7 >> 2; - f7 = f28+f29; - f28 = f20*f9; - f23 = f23+f24; - heapFloat[(fp+-172)] = f6; - f6 = f0*f12; - f24 = f2*f16; - f7 = f7+f28; - heapFloat[(r9+1)] = f23; - heapFloat[(r9+2)] = f7; - f7 = f4*f12; - f23 = f5*f16; - f6 = f6+f24; - f24 = f8*f21; - f28 = f11*f12; - f29 = f15*f16; - f7 = f7+f23; - f23 = f18*f21; - f6 = f6+f24; - heap32[(r9+3)] = 0; - f24 = f28+f29; - f28 = f20*f21; - f7 = f7+f23; - heapFloat[(r9+4)] = f6; - f0 = f0*f10; - f2 = f2*f14; - f6 = f24+f28; - heapFloat[(r9+5)] = f7; - heapFloat[(r9+6)] = f6; - f4 = f4*f10; - f5 = f5*f14; - f0 = f0+f2; - f2 = f8*f19; - f6 = f11*f10; - f7 = f15*f14; - f4 = f4+f5; - f5 = f18*f19; - f0 = f0+f2; - heap32[(r9+7)] = 0; - f1 = f1*f13; - f2 = f3*f17; - f3 = f6+f7; - f6 = f20*f19; - f4 = f4+f5; - heapFloat[(r9+8)] = f0; - f0 = f12*f13; - f5 = f16*f17; - f1 = f1+f2; - f2 = f9*f22; - f3 = f3+f6; - heapFloat[(r9+9)] = f4; - f1 = f1+f2; - heapFloat[(r9+10)] = f3; - f2 = f10*f13; - f3 = f14*f17; - f0 = f0+f5; - f4 = f21*f22; - f0 = f0+f4; - f2 = f2+f3; - f3 = f19*f22; - f1 = f1+f27; - heap32[(r9+11)] = 0; - f2 = f2+f3; - f0 = f0+f26; - heapFloat[(r9+12)] = f1; - f1 = f2+f25; - heapFloat[(r9+13)] = f0; - heapFloat[(r9+14)] = f1; - heap32[(r9+15)] = 0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r6; - r2 = (r3 + 1)|0; - __FUNCTION_TABLE__[(r8)>>2](i7); - if(r3 ==0) //_LBB222_42 -{ -__label__ = 40; -break _1; -} -else{ -continue _18; -} -} -} -} -} -} -else{ - if(r3 ==11) //_LBB222_20 -{ - r2 = r4 >> 2; - r3 = heap32[(r5+17)]; - f0 = heapFloat[(r5+14)]; - f1 = heapFloat[(r5+15)]; - f2 = heapFloat[(r2+12)]; - f3 = heapFloat[(r2+13)]; - f4 = heapFloat[(r2+14)]; - r4 = sp + -880; - r5 = r4 >> 2; - heap32[(fp+-220)] = 0; - heap32[(r5+1)] = 0; - r7 = r3 << 2; - r4 = (r4 + r7)|0; - f5 = 0.5; - heap32[(r5+2)] = 0; - r4 = r4 >> 2; - f1 = f1*f5; - heap32[(r5+3)] = 0; - r8 = sp + -896; - heapFloat[(r4)] = f1; - r4 = (r3 + 1)|0; - r4 = (r4 % 3)|0; - r9 = r8 >> 2; - heap32[(fp+-224)] = 0; - heap32[(r9+1)] = 0; - r4 = r4 << 2; - r8 = (r8 + r4)|0; - heap32[(r9+2)] = 0; - r8 = r8 >> 2; - heap32[(r9+3)] = 0; - r3 = (r3 + 2)|0; - r10 = sp + -912; - heapFloat[(r8)] = f0; - r3 = (r3 % 3)|0; - r8 = r10 >> 2; - heap32[(fp+-228)] = 0; - r3 = r3 << 2; - heap32[(r8+1)] = 0; - r3 = (r10 + r3)|0; - heap32[(r8+2)] = 0; - r3 = r3 >> 2; - heap32[(r8+3)] = 0; - heapFloat[(r3)] = f0; - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); - f1 = heapFloat[(r5+1)]; - f5 = heapFloat[(fp+-220)]; - f6 = heapFloat[(r9+1)]; - f7 = heapFloat[(fp+-224)]; - r10 = r_g0 >> 2; - f8 = heapFloat[(r5+2)]; - f9 = heapFloat[(r9+2)]; - f10 = heapFloat[(r2)]; - f11 = f7-f5; - f12 = heapFloat[(r2+1)]; - f13 = f6-f1; - f14 = heapFloat[(r2+4)]; - f15 = heapFloat[(r2+5)]; - r5 = heap32[(r10)]; - f16 = heapFloat[(r2+2)]; - f17 = f9-f8; - f18 = f10*f11; - f19 = f12*f13; - f20 = heapFloat[(r2+8)]; - f21 = heapFloat[(r2+9)]; - f22 = heapFloat[(r2+6)]; - r5 = r5 >> 2; - f23 = f14*f11; - f24 = f15*f13; - f18 = f18+f19; - f19 = f16*f17; - f25 = heapFloat[(r2+10)]; - r5 = heap32[(r5+2)]; - f18 = f18+f19; - f11 = f20*f11; - f13 = f21*f13; - f19 = f23+f24; - f23 = f22*f17; - r9 = sp + -416; - f19 = f19+f23; - f11 = f11+f13; - f13 = f25*f17; - f17 = f2+f18; - f11 = f11+f13; - f10 = f10*f5; - f12 = f12*f1; - r10 = r9 >> 2; - f13 = f3+f19; - heapFloat[(fp+-104)] = f17; - f14 = f14*f5; - f15 = f15*f1; - f10 = f10+f12; - f12 = f16*f8; - f11 = f4+f11; - heapFloat[(r10+1)] = f13; - f10 = f10+f12; - heapFloat[(r10+2)] = f11; - f11 = f20*f5; - f12 = f21*f1; - f13 = f14+f15; - f14 = f22*f8; - r11 = sp + -400; - f13 = f13+f14; - f11 = f11+f12; - f12 = f25*f8; - f10 = f2+f10; - heap32[(r10+3)] = 0; - f11 = f11+f12; - r10 = r11 >> 2; - f12 = f3+f13; - heapFloat[(fp+-100)] = f10; - f10 = f4+f11; - heapFloat[(r10+1)] = f12; - heapFloat[(r10+2)] = f10; - heap32[(r10+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r5)>>2](i7); - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); - f10 = -f5; - f11 = -f1; - f12 = -f8; - r5 = r_g0 >> 2; - f13 = heapFloat[(r2)]; - f7 = f10-f7; - f14 = heapFloat[(r2+1)]; - f6 = f11-f6; - f15 = heapFloat[(r2+4)]; - f16 = heapFloat[(r2+5)]; - r5 = heap32[(r5)]; - f17 = heapFloat[(r2+2)]; - f9 = f12-f9; - f18 = f13*f7; - f19 = f14*f6; - f20 = heapFloat[(r2+8)]; - f21 = heapFloat[(r2+9)]; - f22 = heapFloat[(r2+6)]; - r5 = r5 >> 2; - f23 = f15*f7; - f24 = f16*f6; - f18 = f18+f19; - f19 = f17*f9; - f25 = heapFloat[(r2+10)]; - r5 = heap32[(r5+2)]; - f18 = f18+f19; - f7 = f20*f7; - f6 = f21*f6; - f19 = f23+f24; - f23 = f22*f9; - r9 = sp + -384; - f19 = f19+f23; - f6 = f7+f6; - f7 = f25*f9; - f9 = f2+f18; - f6 = f6+f7; - f7 = f13*f5; - f13 = f14*f1; - r10 = r9 >> 2; - f14 = f3+f19; - heapFloat[(fp+-96)] = f9; - f9 = f15*f5; - f15 = f16*f1; - f7 = f7+f13; - f13 = f17*f8; - f6 = f4+f6; - heapFloat[(r10+1)] = f14; - f7 = f7+f13; - heapFloat[(r10+2)] = f6; - f6 = f20*f5; - f13 = f21*f1; - f9 = f9+f15; - f14 = f22*f8; - r11 = sp + -368; - f9 = f9+f14; - f6 = f6+f13; - f13 = f25*f8; - f7 = f2+f7; - heap32[(r10+3)] = 0; - f6 = f6+f13; - r10 = r11 >> 2; - f9 = f3+f9; - heapFloat[(fp+-92)] = f7; - f6 = f4+f6; - heapFloat[(r10+1)] = f9; - heapFloat[(r10+2)] = f6; - heap32[(r10+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r5)>>2](i7); - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); - f6 = heapFloat[(r8+1)]; - f7 = heapFloat[(fp+-228)]; - f9 = heapFloat[(r8+2)]; - r5 = r_g0 >> 2; - f13 = heapFloat[(r2)]; - f14 = f7-f5; - f15 = heapFloat[(r2+1)]; - f16 = f6-f1; - f17 = heapFloat[(r2+4)]; - f18 = heapFloat[(r2+5)]; - r5 = heap32[(r5)]; - f19 = heapFloat[(r2+2)]; - f20 = f9-f8; - f21 = f13*f14; - f22 = f15*f16; - f23 = heapFloat[(r2+8)]; - f24 = heapFloat[(r2+9)]; - f25 = heapFloat[(r2+6)]; - r5 = r5 >> 2; - f26 = f17*f14; - f27 = f18*f16; - f21 = f21+f22; - f22 = f19*f20; - f28 = heapFloat[(r2+10)]; - r5 = heap32[(r5+2)]; - f21 = f21+f22; - f14 = f23*f14; - f16 = f24*f16; - f22 = f26+f27; - f26 = f25*f20; - r8 = sp + -352; - f22 = f22+f26; - f14 = f14+f16; - f16 = f28*f20; - f20 = f2+f21; - f14 = f14+f16; - f13 = f13*f5; - f15 = f15*f1; - r9 = r8 >> 2; - f16 = f3+f22; - heapFloat[(fp+-88)] = f20; - f17 = f17*f5; - f18 = f18*f1; - f13 = f13+f15; - f15 = f19*f8; - f14 = f4+f14; - heapFloat[(r9+1)] = f16; - f13 = f13+f15; - heapFloat[(r9+2)] = f14; - f14 = f23*f5; - f15 = f24*f1; - f16 = f17+f18; - f17 = f25*f8; - r10 = sp + -336; - f16 = f16+f17; - f14 = f14+f15; - f15 = f28*f8; - f13 = f2+f13; - heap32[(r9+3)] = 0; - f14 = f14+f15; - r9 = r10 >> 2; - f15 = f3+f16; - heapFloat[(fp+-84)] = f13; - f13 = f4+f14; - heapFloat[(r9+1)] = f15; - heapFloat[(r9+2)] = f13; - heap32[(r9+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r5)>>2](i7); - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r5 = r_g0 >> 2; - f13 = heapFloat[(r2)]; - f7 = f10-f7; - f10 = heapFloat[(r2+1)]; - f6 = f11-f6; - f11 = heapFloat[(r2+4)]; - f14 = heapFloat[(r2+5)]; - r5 = heap32[(r5)]; - f15 = heapFloat[(r2+2)]; - f9 = f12-f9; - f12 = f13*f7; - f16 = f10*f6; - f17 = heapFloat[(r2+8)]; - f18 = heapFloat[(r2+9)]; - f19 = heapFloat[(r2+6)]; - r5 = r5 >> 2; - f20 = f11*f7; - f21 = f14*f6; - f12 = f12+f16; - f16 = f15*f9; - f22 = heapFloat[(r2+10)]; - r5 = heap32[(r5+2)]; - f12 = f12+f16; - f7 = f17*f7; - f6 = f18*f6; - f16 = f20+f21; - f20 = f19*f9; - r8 = sp + -320; - f16 = f16+f20; - f6 = f7+f6; - f7 = f22*f9; - f9 = f2+f12; - f6 = f6+f7; - f7 = f13*f5; - f10 = f10*f1; - r9 = r8 >> 2; - f12 = f3+f16; - heapFloat[(fp+-80)] = f9; - f9 = f11*f5; - f11 = f14*f1; - f7 = f7+f10; - f10 = f15*f8; - f6 = f4+f6; - heapFloat[(r9+1)] = f12; - f7 = f7+f10; - heapFloat[(r9+2)] = f6; - f6 = f17*f5; - f10 = f18*f1; - f9 = f9+f11; - f11 = f19*f8; - r10 = sp + -304; - f9 = f9+f11; - f6 = f6+f10; - f10 = f22*f8; - f7 = f2+f7; - heap32[(r9+3)] = 0; - f6 = f6+f10; - r9 = r10 >> 2; - f9 = f3+f9; - heapFloat[(fp+-76)] = f7; - f6 = f4+f6; - heapFloat[(r9+1)] = f9; - heapFloat[(r9+2)] = f6; - heap32[(r9+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r6; - r3 = sp + -928; - __FUNCTION_TABLE__[(r5)>>2](i7); - r5 = r3 >> 2; - heap32[(fp+-232)] = 0; - heap32[(r5+1)] = 0; - r3 = (r3 + r7)|0; - heap32[(r5+2)] = 0; - r3 = r3 >> 2; - heap32[(r5+3)] = 0; - r7 = sp + -944; - heap32[(r3)] = 1065353216; - r3 = r7 >> 2; - heap32[(fp+-236)] = 0; - heap32[(r3+1)] = 0; - r4 = (r7 + r4)|0; - heap32[(r3+2)] = 0; - r4 = r4 >> 2; - heap32[(r3+3)] = 0; - heap32[(r4)] = 1065353216; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r1 = r_g0 >> 2; - r1 = heap32[(r1)]; - f6 = heapFloat[(r2)]; - f7 = heapFloat[(fp+-236)]; - f9 = heapFloat[(r2+1)]; - f10 = heapFloat[(r3+1)]; - f11 = heapFloat[(r2+4)]; - f12 = heapFloat[(r2+5)]; - r1 = r1 >> 2; - f13 = heapFloat[(r2+2)]; - f14 = heapFloat[(r3+2)]; - f15 = f6*f7; - f16 = f9*f10; - f17 = heapFloat[(r2+8)]; - f18 = heapFloat[(r2+9)]; - f19 = heapFloat[(r2+10)]; - f20 = heapFloat[(r2+6)]; - r1 = heap32[(r1+15)]; - f21 = f11*f7; - f22 = f12*f10; - f15 = f15+f16; - f16 = f13*f14; - r2 = sp + -288; - f7 = f17*f7; - f10 = f18*f10; - f21 = f21+f22; - f22 = f20*f14; - f15 = f15+f16; - r3 = r2 >> 2; - f7 = f7+f10; - f10 = f19*f14; - f14 = f21+f22; - heapFloat[(fp+-72)] = f15; - f7 = f7+f10; - heapFloat[(r3+1)] = f14; - heapFloat[(r3+2)] = f7; - heap32[(r3+3)] = 0; - f7 = heapFloat[(fp+-232)]; - f10 = heapFloat[(r5+1)]; - f14 = heapFloat[(r5+2)]; - f15 = f6*f7; - f16 = f9*f10; - f21 = f11*f7; - f22 = f12*f10; - f15 = f15+f16; - f16 = f13*f14; - r3 = sp + -272; - f7 = f17*f7; - f10 = f18*f10; - f21 = f21+f22; - f22 = f20*f14; - f15 = f15+f16; - f6 = f6*f5; - f9 = f9*f1; - r4 = r3 >> 2; - f7 = f7+f10; - f10 = f19*f14; - f14 = f21+f22; - heapFloat[(fp+-68)] = f15; - f11 = f11*f5; - f12 = f12*f1; - f6 = f6+f9; - f9 = f13*f8; - f7 = f7+f10; - heapFloat[(r4+1)] = f14; - f6 = f6+f9; - heapFloat[(r4+2)] = f7; - f5 = f17*f5; - f1 = f18*f1; - f7 = f11+f12; - f9 = f20*f8; - r5 = sp + -256; - f7 = f7+f9; - f1 = f5+f1; - f5 = f19*f8; - f2 = f2-f6; - heap32[(r4+3)] = 0; - f1 = f1+f5; - r4 = r5 >> 2; - f3 = f3-f7; - heapFloat[(fp+-64)] = f2; - f1 = f4-f1; - heapFloat[(r4+1)] = f3; - heapFloat[(r4+2)] = f1; - heap32[(r4+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r3; -} -else{ - if(r3 ==13) //_LBB222_21 -{ - r3 = heap32[(r5)]; - r3 = r3 >> 2; - r7 = heap32[(r5+13)]; - r3 = heap32[(r3+21)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r3)>>2](i7); - f0 = f_g0; - r3 = sp + -240; - f1 = heapFloat[(r5+8)]; - f2 = heapFloat[(r5+9)]; - f3 = heapFloat[(r5+7)]; - r8 = r3 >> 2; - heap32[(r8+3)] = heap32[(r5+10)]; - r9 = heap32[(r5)]; - r9 = r9 >> 2; - r9 = heap32[(r9+11)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r9)>>2](i7); - f4 = f_g0; - r9 = heap32[(r5)]; - r9 = r9 >> 2; - r9 = heap32[(r9+11)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r9)>>2](i7); - f5 = f_g0; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+11)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r5)>>2](i7); - f3 = f3+f_g0; - r2 = r7 << 2; - f1 = f1+f5; - heapFloat[(fp+-60)] = f3; - r3 = (r3 + r2)|0; - f2 = f2+f4; - heapFloat[(r8+1)] = f1; - r3 = r3 >> 2; - heapFloat[(r8+2)] = f2; - r4 = r4 >> 2; - f1 = heapFloat[(r3)]; - f2 = heapFloat[(r4+12)]; - f3 = heapFloat[(r4+13)]; - f4 = heapFloat[(r4+14)]; - r3 = sp + -960; - r5 = r3 >> 2; - heap32[(fp+-240)] = 0; - heap32[(r5+1)] = 0; - r3 = (r3 + r2)|0; - heap32[(r5+2)] = 0; - r3 = r3 >> 2; - heap32[(r5+3)] = 0; - r8 = sp + -976; - heapFloat[(r3)] = f1; - r3 = (r7 + 1)|0; - r3 = (r3 % 3)|0; - r7 = r8 >> 2; - heap32[(fp+-244)] = 0; - heap32[(r7+1)] = 0; - r3 = r3 << 2; - r8 = (r8 + r3)|0; - heap32[(r7+2)] = 0; - r8 = r8 >> 2; - heap32[(r7+3)] = 0; - heapFloat[(r8)] = f0; - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r8)>>2](i7); - f1 = heapFloat[(r5+1)]; - f5 = heapFloat[(r7+1)]; - f6 = heapFloat[(fp+-240)]; - f7 = heapFloat[(fp+-244)]; - r9 = r_g0 >> 2; - f8 = heapFloat[(r5+2)]; - f9 = heapFloat[(r7+2)]; - f10 = f7-f6; - f11 = heapFloat[(r4)]; - f12 = f5-f1; - f13 = heapFloat[(r4+1)]; - r5 = heap32[(r9)]; - f14 = heapFloat[(r4+4)]; - f15 = heapFloat[(r4+5)]; - f16 = f11*f10; - f17 = f13*f12; - f18 = f9-f8; - f19 = heapFloat[(r4+2)]; - r5 = r5 >> 2; - f20 = heapFloat[(r4+8)]; - f21 = heapFloat[(r4+9)]; - f22 = heapFloat[(r4+6)]; - f23 = f14*f10; - f24 = f15*f12; - f16 = f16+f17; - f17 = f19*f18; - f16 = f16+f17; - f17 = heapFloat[(r4+10)]; - r5 = heap32[(r5+2)]; - f10 = f20*f10; - f12 = f21*f12; - f23 = f23+f24; - f24 = f22*f18; - f25 = f6+f7; - f26 = f1+f5; - r7 = sp + -224; - f23 = f23+f24; - f10 = f10+f12; - f12 = f17*f18; - f16 = f2+f16; - f18 = f8+f9; - f10 = f10+f12; - f11 = f11*f25; - f12 = f13*f26; - r9 = r7 >> 2; - f13 = f3+f23; - heapFloat[(fp+-56)] = f16; - f14 = f14*f25; - f15 = f15*f26; - f11 = f11+f12; - f12 = f19*f18; - f10 = f4+f10; - heapFloat[(r9+1)] = f13; - f11 = f11+f12; - heapFloat[(r9+2)] = f10; - f10 = f20*f25; - f12 = f21*f26; - f13 = f14+f15; - f14 = f22*f18; - r10 = sp + -208; - f13 = f13+f14; - f10 = f10+f12; - f12 = f17*f18; - f11 = f2+f11; - heap32[(r9+3)] = 0; - f10 = f10+f12; - r9 = r10 >> 2; - f12 = f3+f13; - heapFloat[(fp+-52)] = f11; - f10 = f4+f10; - heapFloat[(r9+1)] = f12; - heapFloat[(r9+2)] = f10; - heap32[(r9+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r5)>>2](i7); - r5 = heap32[(r1)]; - r5 = r5 >> 2; - r5 = heap32[(r5+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r5)>>2](i7); - f10 = -f6; - f11 = -f1; - f12 = -f8; - r7 = r_g0 >> 2; - f10 = f10-f7; - f13 = heapFloat[(r4)]; - f11 = f11-f5; - f14 = heapFloat[(r4+1)]; - r7 = heap32[(r7)]; - f15 = heapFloat[(r4+4)]; - f16 = heapFloat[(r4+5)]; - f17 = f13*f10; - f18 = f14*f11; - f12 = f12-f9; - f19 = heapFloat[(r4+2)]; - r7 = r7 >> 2; - f20 = heapFloat[(r4+8)]; - f21 = heapFloat[(r4+9)]; - f22 = heapFloat[(r4+6)]; - f23 = f15*f10; - f24 = f16*f11; - f17 = f17+f18; - f18 = f19*f12; - f17 = f17+f18; - f18 = heapFloat[(r4+10)]; - r7 = heap32[(r7+2)]; - f10 = f20*f10; - f11 = f21*f11; - f23 = f23+f24; - f24 = f22*f12; - f7 = f6-f7; - f5 = f1-f5; - r8 = sp + -192; - f23 = f23+f24; - f10 = f10+f11; - f11 = f18*f12; - f12 = f2+f17; - f9 = f8-f9; - f10 = f10+f11; - f11 = f13*f7; - f13 = f14*f5; - r9 = r8 >> 2; - f14 = f3+f23; - heapFloat[(fp+-48)] = f12; - f12 = f15*f7; - f15 = f16*f5; - f11 = f11+f13; - f13 = f19*f9; - f10 = f4+f10; - heapFloat[(r9+1)] = f14; - f11 = f11+f13; - heapFloat[(r9+2)] = f10; - f7 = f20*f7; - f5 = f21*f5; - f10 = f12+f15; - f12 = f22*f9; - r10 = sp + -176; - f10 = f10+f12; - f5 = f7+f5; - f7 = f18*f9; - f9 = f2+f11; - heap32[(r9+3)] = 0; - f5 = f5+f7; - r9 = r10 >> 2; - f7 = f3+f10; - heapFloat[(fp+-44)] = f9; - f5 = f4+f5; - heapFloat[(r9+1)] = f7; - heapFloat[(r9+2)] = f5; - heap32[(r9+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r6; - r5 = sp + -992; - __FUNCTION_TABLE__[(r7)>>2](i7); - r7 = r5 >> 2; - heap32[(fp+-248)] = 0; - heap32[(r7+1)] = 0; - r2 = (r5 + r2)|0; - heap32[(r7+2)] = 0; - r2 = r2 >> 2; - heap32[(r7+3)] = 0; - r5 = sp + -1008; - heap32[(r2)] = 1065353216; - r2 = r5 >> 2; - heap32[(fp+-252)] = 0; - heap32[(r2+1)] = 0; - r3 = (r5 + r3)|0; - heap32[(r2+2)] = 0; - r3 = r3 >> 2; - heap32[(r2+3)] = 0; - heap32[(r3)] = 1065353216; - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r5 = r_g0 >> 2; - r5 = heap32[(r5)]; - f5 = heapFloat[(r4)]; - f7 = heapFloat[(fp+-252)]; - f9 = heapFloat[(r4+1)]; - f10 = heapFloat[(r2+1)]; - f11 = heapFloat[(r4+4)]; - f12 = heapFloat[(r4+5)]; - r5 = r5 >> 2; - f13 = heapFloat[(r4+2)]; - f14 = heapFloat[(r2+2)]; - f15 = f5*f7; - f16 = f9*f10; - f17 = heapFloat[(r4+8)]; - f18 = heapFloat[(r4+9)]; - f19 = heapFloat[(r4+10)]; - f20 = heapFloat[(r4+6)]; - r2 = heap32[(r5+15)]; - f21 = f11*f7; - f22 = f12*f10; - f15 = f15+f16; - f16 = f13*f14; - r5 = sp + -160; - f23 = f17*f7; - f24 = f18*f10; - f21 = f21+f22; - f22 = f20*f14; - f15 = f15+f16; - r8 = r5 >> 2; - f16 = f23+f24; - f23 = f19*f14; - f21 = f21+f22; - heapFloat[(fp+-40)] = f15; - f15 = f16+f23; - heapFloat[(r8+1)] = f21; - heapFloat[(r8+2)] = f15; - heap32[(r8+3)] = 0; - f15 = heapFloat[(fp+-248)]; - f16 = heapFloat[(r7+1)]; - f21 = heapFloat[(r7+2)]; - f22 = f5*f15; - f23 = f9*f16; - f24 = f11*f15; - f25 = f12*f16; - f22 = f22+f23; - f23 = f13*f21; - r7 = sp + -144; - f26 = f17*f15; - f27 = f18*f16; - f24 = f24+f25; - f25 = f20*f21; - f22 = f22+f23; - f5 = f5*f6; - f9 = f9*f1; - r8 = r7 >> 2; - f23 = f26+f27; - f26 = f19*f21; - f24 = f24+f25; - heapFloat[(fp+-36)] = f22; - f11 = f11*f6; - f12 = f12*f1; - f5 = f5+f9; - f9 = f13*f8; - f13 = f23+f26; - heapFloat[(r8+1)] = f24; - f5 = f5+f9; - heapFloat[(r8+2)] = f13; - f9 = f17*f6; - f13 = f18*f1; - f11 = f11+f12; - f12 = f20*f8; - r9 = sp + -128; - f11 = f11+f12; - f9 = f9+f13; - f12 = f19*f8; - f5 = f2-f5; - heap32[(r8+3)] = 0; - f9 = f9+f12; - r8 = r9 >> 2; - f11 = f3-f11; - heapFloat[(fp+-32)] = f5; - f5 = f4-f9; - heapFloat[(r8+1)] = f11; - heapFloat[(r8+2)] = f5; - heap32[(r8+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = r5; - heapFloat[(g0+4)] = f0; - heapFloat[(g0+5)] = f0; - heap32[(g0+6)] = 0; - heap32[(g0+7)] = 1086918619; - heap32[(g0+8)] = r6; - heap32[(g0+9)] = 0; - heap32[(g0+10)] = 1092616192; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r1 = r_g0 >> 2; - f5 = heapFloat[(r4)]; - f9 = heapFloat[(r4+1)]; - r1 = heap32[(r1)]; - f11 = heapFloat[(r4+4)]; - f12 = heapFloat[(r4+5)]; - f13 = heapFloat[(r4+2)]; - r1 = r1 >> 2; - f17 = f5*f7; - f18 = f9*f10; - f19 = heapFloat[(r4+8)]; - f20 = heapFloat[(r4+9)]; - f22 = heapFloat[(r4+10)]; - f23 = heapFloat[(r4+6)]; - r1 = heap32[(r1+15)]; - f24 = f11*f7; - f25 = f12*f10; - f17 = f17+f18; - f18 = f13*f14; - r2 = sp + -112; - f7 = f19*f7; - f10 = f20*f10; - f24 = f24+f25; - f25 = f23*f14; - f17 = f17+f18; - r3 = r2 >> 2; - f7 = f7+f10; - f10 = f22*f14; - f14 = f24+f25; - heapFloat[(fp+-28)] = f17; - f17 = f5*f15; - f18 = f9*f16; - f7 = f7+f10; - heapFloat[(r3+1)] = f14; - heapFloat[(r3+2)] = f7; - f7 = f11*f15; - f10 = f12*f16; - f14 = f17+f18; - f17 = f13*f21; - r4 = sp + -96; - f15 = f19*f15; - f16 = f20*f16; - f7 = f7+f10; - f10 = f23*f21; - f14 = f14+f17; - heap32[(r3+3)] = 0; - f5 = f5*f6; - f9 = f9*f1; - r3 = r4 >> 2; - f15 = f15+f16; - f16 = f22*f21; - f7 = f7+f10; - heapFloat[(fp+-24)] = f14; - f10 = f11*f6; - f11 = f12*f1; - f5 = f5+f9; - f9 = f13*f8; - f12 = f15+f16; - heapFloat[(r3+1)] = f7; - f5 = f5+f9; - heapFloat[(r3+2)] = f12; - f6 = f19*f6; - f1 = f20*f1; - f7 = f10+f11; - f9 = f23*f8; - r5 = sp + -80; - f7 = f7+f9; - f1 = f6+f1; - f6 = f22*f8; - f2 = f2+f5; - heap32[(r3+3)] = 0; - f1 = f1+f6; - r3 = r5 >> 2; - f3 = f3+f7; - heapFloat[(fp+-20)] = f2; - f1 = f4+f1; - heapFloat[(r3+1)] = f3; - heapFloat[(r3+2)] = f1; - heap32[(r3+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r4; -} -else{ -__label__ = 32; -break _1; -} -} - heap32[(g0+3)] = r2; - heapFloat[(g0+4)] = f0; - heapFloat[(g0+5)] = f0; - heap32[(g0+6)] = 0; - heap32[(g0+7)] = 1086918619; - heap32[(g0+8)] = r6; - heap32[(g0+9)] = 0; - heap32[(g0+10)] = 1092616192; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} -} -else{ - if(r3 >8) //_LBB222_4 -{ - if(r3 ==9) //_LBB222_16 -{ - r2 = heap32[(r5+23)]; - r3 = (r2 + -1)|0; - if(r3 <0) //_LBB222_42 -{ -__label__ = 40; -break _1; -} -else{ - r3 = 1; - r2 = (r3 - r2)|0; -_32: while(true){ - r3 = r2; - r2 = heap32[(r5+25)]; - r7 = r3 << 4; - r8 = heap32[(r1)]; - r2 = (r2 - r7)|0; - r2 = r2 >> 2; - r7 = r8 >> 2; - r7 = heap32[(r7+4)]; - f0 = heapFloat[(r2)]; - f1 = heapFloat[(r2+1)]; - f2 = heapFloat[(r2+2)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r7)>>2](i7); - r7 = r4 >> 2; - r8 = r_g0 >> 2; - r8 = heap32[(r8)]; - f3 = heapFloat[(r7+1)]; - f4 = 0; - f5 = heapFloat[(r7)]; - f6 = heapFloat[(r7+2)]; - r8 = r8 >> 2; - f7 = f3*f4; - f8 = f5*f4; - f9 = heapFloat[(r7+8)]; - f10 = heapFloat[(r7+9)]; - f11 = heapFloat[(r7+10)]; - f12 = heapFloat[(r7+4)]; - f13 = heapFloat[(r7+5)]; - f14 = heapFloat[(r7+6)]; - r8 = heap32[(r8+4)]; - f15 = f5+f7; - f16 = f6*f4; - f17 = heapFloat[(r7+14)]; - f18 = heapFloat[(r7+13)]; - f19 = heapFloat[(r7+12)]; - r7 = sp + -608; - f20 = f8+f3; - f15 = f15+f16; - f7 = f8+f7; - r9 = r7 >> 2; - f8 = f20+f16; - heapFloat[(fp+-152)] = f15; - f15 = f13*f4; - f7 = f7+f6; - heapFloat[(r9+1)] = f8; - f8 = f12*f4; - heapFloat[(r9+2)] = f7; - f7 = f12+f15; - f16 = f14*f4; - f20 = f8+f13; - f7 = f7+f16; - heap32[(r9+3)] = 0; - f8 = f8+f15; - f15 = f20+f16; - heapFloat[(r9+4)] = f7; - f7 = f10*f4; - f8 = f8+f14; - heapFloat[(r9+5)] = f15; - f15 = f9*f4; - heapFloat[(r9+6)] = f8; - f8 = f9+f7; - f4 = f11*f4; - f16 = f15+f10; - f8 = f8+f4; - heap32[(r9+7)] = 0; - f7 = f15+f7; - f5 = f5*f0; - f3 = f3*f1; - f4 = f16+f4; - heapFloat[(r9+8)] = f8; - f8 = f12*f0; - f12 = f13*f1; - f3 = f5+f3; - f5 = f6*f2; - f6 = f7+f11; - heapFloat[(r9+9)] = f4; - f3 = f3+f5; - heapFloat[(r9+10)] = f6; - f0 = f9*f0; - f1 = f10*f1; - f4 = f8+f12; - f5 = f14*f2; - f4 = f4+f5; - f0 = f0+f1; - f1 = f11*f2; - f2 = f3+f19; - heap32[(r9+11)] = 0; - f0 = f0+f1; - f1 = f4+f18; - heapFloat[(r9+12)] = f2; - f0 = f0+f17; - heapFloat[(r9+13)] = f1; - heapFloat[(r9+14)] = f0; - heap32[(r9+15)] = 0; - r9 = heap32[(r5+30)]; - r10 = r3 << 2; - r9 = (r9 - r10)|0; - r9 = r9 >> 2; - f0 = heapFloat[(r9)]; - heap32[(g0)] = r_g0; - heapFloat[(g0+1)] = f0; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = r6; - r2 = (r3 + 1)|0; - __FUNCTION_TABLE__[(r8)>>2](i7); - if(r3 ==0) //_LBB222_42 -{ -__label__ = 40; -break _1; -} -else{ -continue _32; -} -} -} -} -else{ - if(r3 ==10) //_LBB222_19 -{ - r3 = heap32[(r5+13)]; - r5 = (r3 + 2)|0; - r5 = (r5 % 3)|0; - r7 = r3 << 2; - r2 = (r2 + 28)|0; - r5 = r5 << 2; - r8 = (r2 + r7)|0; - r2 = (r2 + r5)|0; - r8 = r8 >> 2; - r2 = r2 >> 2; - f0 = heapFloat[(r8)]; - f1 = heapFloat[(r2)]; - r2 = sp + -720; - r8 = r2 >> 2; - heap32[(fp+-180)] = 0; - heap32[(r8+1)] = 0; - r9 = (r2 + r7)|0; - heap32[(r8+2)] = 0; - r9 = r9 >> 2; - f2 = -f0; - heap32[(r8+3)] = 0; - r10 = sp + -736; - heapFloat[(r9)] = f2; - heap32[(fp+-184)] = 0; - r9 = r10 >> 2; - heap32[(r9+1)] = 0; - r7 = (r10 + r7)|0; - heap32[(r9+2)] = 0; - r7 = r7 >> 2; - heap32[(r9+3)] = 0; - heapFloat[(r7)] = f0; - r4 = r4 >> 2; - f0 = heapFloat[(r4)]; - r7 = sp + -800; - heapFloat[(fp+-200)] = f0; - r11 = r7 >> 2; - f2 = heapFloat[(r4+1)]; - heapFloat[(r11+1)] = f2; - f3 = heapFloat[(r4+2)]; - heapFloat[(r11+2)] = f3; - heap32[(r11+3)] = heap32[(r4+3)]; - f4 = heapFloat[(r4+4)]; - heapFloat[(r11+4)] = f4; - f5 = heapFloat[(r4+5)]; - heapFloat[(r11+5)] = f5; - f6 = heapFloat[(r4+6)]; - heapFloat[(r11+6)] = f6; - heap32[(r11+7)] = heap32[(r4+7)]; - f7 = heapFloat[(r4+8)]; - heapFloat[(r11+8)] = f7; - f8 = heapFloat[(r4+9)]; - heapFloat[(r11+9)] = f8; - f9 = heapFloat[(r4+10)]; - heapFloat[(r11+10)] = f9; - heap32[(r11+11)] = heap32[(r4+11)]; - f10 = heapFloat[(fp+-180)]; - f11 = heapFloat[(r8+1)]; - f12 = heapFloat[(r8+2)]; - f0 = f0*f10; - f2 = f2*f11; - f4 = f4*f10; - f5 = f5*f11; - f0 = f0+f2; - f2 = f3*f12; - f3 = f7*f10; - f7 = f8*f11; - f4 = f4+f5; - f5 = f6*f12; - f0 = f0+f2; - f2 = heapFloat[(r4+12)]; - f6 = heapFloat[(r4+13)]; - f8 = heapFloat[(r4+14)]; - f4 = f4+f5; - f3 = f3+f7; - f5 = f9*f12; - f0 = f0+f2; - f2 = f3+f5; - f3 = f4+f6; - heapFloat[(r11+12)] = f0; - f0 = f2+f8; - heapFloat[(r11+13)] = f3; - heapFloat[(r11+14)] = f0; - heap32[(r11+15)] = 0; - r11 = heap32[(r1)]; - r11 = r11 >> 2; - r11 = heap32[(r11+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r11)>>2](i7); - r12 = r_g0 >> 2; - r12 = heap32[(r12)]; - r12 = r12 >> 2; - r12 = heap32[(r12+4)]; - heap32[(g0)] = r_g0; - heapFloat[(g0+1)] = f1; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r12)>>2](i7); - f0 = heapFloat[(r4)]; - r7 = sp + -864; - heapFloat[(fp+-216)] = f0; - r11 = r7 >> 2; - f2 = heapFloat[(r4+1)]; - heapFloat[(r11+1)] = f2; - f3 = heapFloat[(r4+2)]; - heapFloat[(r11+2)] = f3; - heap32[(r11+3)] = heap32[(r4+3)]; - f4 = heapFloat[(r4+4)]; - heapFloat[(r11+4)] = f4; - f5 = heapFloat[(r4+5)]; - heapFloat[(r11+5)] = f5; - f6 = heapFloat[(r4+6)]; - heapFloat[(r11+6)] = f6; - heap32[(r11+7)] = heap32[(r4+7)]; - f7 = heapFloat[(r4+8)]; - heapFloat[(r11+8)] = f7; - f8 = heapFloat[(r4+9)]; - heapFloat[(r11+9)] = f8; - f9 = heapFloat[(r4+10)]; - heapFloat[(r11+10)] = f9; - heap32[(r11+11)] = heap32[(r4+11)]; - f10 = heapFloat[(fp+-184)]; - f11 = heapFloat[(r9+1)]; - f12 = heapFloat[(r9+2)]; - f0 = f0*f10; - f2 = f2*f11; - f4 = f4*f10; - f5 = f5*f11; - f0 = f0+f2; - f2 = f3*f12; - f3 = f7*f10; - f7 = f8*f11; - f4 = f4+f5; - f5 = f6*f12; - f0 = f0+f2; - f2 = heapFloat[(r4+12)]; - f6 = heapFloat[(r4+13)]; - f8 = heapFloat[(r4+14)]; - f4 = f4+f5; - f3 = f3+f7; - f5 = f9*f12; - f0 = f0+f2; - f2 = f3+f5; - f3 = f4+f6; - heapFloat[(r11+12)] = f0; - f0 = f2+f8; - heapFloat[(r11+13)] = f3; - heapFloat[(r11+14)] = f0; - heap32[(r11+15)] = 0; - r11 = heap32[(r1)]; - r11 = r11 >> 2; - r11 = heap32[(r11+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r11)>>2](i7); - r12 = r_g0 >> 2; - r12 = heap32[(r12)]; - r12 = r12 >> 2; - r12 = heap32[(r12+4)]; - r3 = (r3 + 1)|0; - heap32[(g0)] = r_g0; - heapFloat[(g0+1)] = f1; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = r6; - r3 = (r3 % 3)|0; - __FUNCTION_TABLE__[(r12)>>2](i7); - r3 = r3 << 2; - r7 = (r2 + r3)|0; - f0 = heapFloat[(r4+12)]; - f2 = heapFloat[(r4+13)]; - f3 = heapFloat[(r4+14)]; - r3 = (r10 + r3)|0; - r7 = r7 >> 2; - heapFloat[(r7)] = f1; - r3 = r3 >> 2; - heapFloat[(r3)] = f1; - r11 = heap32[(r1)]; - r11 = r11 >> 2; - r11 = heap32[(r11+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r11)>>2](i7); - r12 = r_g0 >> 2; - f4 = heapFloat[(fp+-184)]; - f5 = heapFloat[(r4)]; - f6 = heapFloat[(r9+1)]; - f7 = heapFloat[(r4+1)]; - r12 = heap32[(r12)]; - f8 = heapFloat[(r4+4)]; - f9 = heapFloat[(r4+5)]; - f10 = f5*f4; - f11 = f7*f6; - f12 = heapFloat[(r9+2)]; - f13 = heapFloat[(r4+2)]; - r12 = r12 >> 2; - f14 = heapFloat[(r4+8)]; - f15 = heapFloat[(r4+9)]; - f16 = heapFloat[(r4+6)]; - f17 = f8*f4; - f18 = f9*f6; - f10 = f10+f11; - f11 = f13*f12; - f10 = f10+f11; - f11 = heapFloat[(r4+10)]; - r12 = heap32[(r12+2)]; - f4 = f14*f4; - f6 = f15*f6; - f17 = f17+f18; - f18 = f16*f12; - r13 = sp + -544; - f17 = f17+f18; - f4 = f4+f6; - f6 = f11*f12; - f10 = f0+f10; - f4 = f4+f6; - r14 = r13 >> 2; - f6 = f2+f17; - heapFloat[(fp+-136)] = f10; - f4 = f3+f4; - heapFloat[(r14+1)] = f6; - heapFloat[(r14+2)] = f4; - heap32[(r14+3)] = 0; - f4 = heapFloat[(fp+-180)]; - f6 = heapFloat[(r8+1)]; - f10 = heapFloat[(r8+2)]; - f5 = f5*f4; - f7 = f7*f6; - f8 = f8*f4; - f9 = f9*f6; - f5 = f5+f7; - f7 = f13*f10; - f5 = f5+f7; - f4 = f14*f4; - f6 = f15*f6; - f7 = f8+f9; - f8 = f16*f10; - r14 = sp + -528; - f7 = f7+f8; - f4 = f4+f6; - f6 = f11*f10; - f5 = f0+f5; - f4 = f4+f6; - r15 = r14 >> 2; - f6 = f2+f7; - heapFloat[(fp+-132)] = f5; - f4 = f3+f4; - heapFloat[(r15+1)] = f6; - heapFloat[(r15+2)] = f4; - heap32[(r15+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r14; - heap32[(g0+2)] = r13; - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r12)>>2](i7); - f4 = -f1; - heapFloat[(r7)] = f4; - heapFloat[(r3)] = f4; - r11 = heap32[(r1)]; - r11 = r11 >> 2; - r11 = heap32[(r11+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r11)>>2](i7); - r12 = r_g0 >> 2; - f5 = heapFloat[(fp+-184)]; - f6 = heapFloat[(r4)]; - f7 = heapFloat[(r9+1)]; - f8 = heapFloat[(r4+1)]; - r12 = heap32[(r12)]; - f9 = heapFloat[(r4+4)]; - f10 = heapFloat[(r4+5)]; - f11 = f6*f5; - f12 = f8*f7; - f13 = heapFloat[(r9+2)]; - f14 = heapFloat[(r4+2)]; - r12 = r12 >> 2; - f15 = heapFloat[(r4+8)]; - f16 = heapFloat[(r4+9)]; - f17 = heapFloat[(r4+6)]; - f18 = f9*f5; - f19 = f10*f7; - f11 = f11+f12; - f12 = f14*f13; - f11 = f11+f12; - f12 = heapFloat[(r4+10)]; - r12 = heap32[(r12+2)]; - f5 = f15*f5; - f7 = f16*f7; - f18 = f18+f19; - f19 = f17*f13; - r13 = sp + -512; - f18 = f18+f19; - f5 = f5+f7; - f7 = f12*f13; - f11 = f0+f11; - f5 = f5+f7; - r14 = r13 >> 2; - f7 = f2+f18; - heapFloat[(fp+-128)] = f11; - f5 = f3+f5; - heapFloat[(r14+1)] = f7; - heapFloat[(r14+2)] = f5; - heap32[(r14+3)] = 0; - f5 = heapFloat[(fp+-180)]; - f7 = heapFloat[(r8+1)]; - f11 = heapFloat[(r8+2)]; - f6 = f6*f5; - f8 = f8*f7; - f9 = f9*f5; - f10 = f10*f7; - f6 = f6+f8; - f8 = f14*f11; - f6 = f6+f8; - f5 = f15*f5; - f7 = f16*f7; - f8 = f9+f10; - f9 = f17*f11; - r14 = sp + -496; - f8 = f8+f9; - f5 = f5+f7; - f7 = f12*f11; - f6 = f0+f6; - f5 = f5+f7; - r15 = r14 >> 2; - f7 = f2+f8; - heapFloat[(fp+-124)] = f6; - f5 = f3+f5; - heapFloat[(r15+1)] = f7; - heapFloat[(r15+2)] = f5; - heap32[(r15+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r14; - heap32[(g0+2)] = r13; - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r12)>>2](i7); - heap32[(r7)] = 0; - r2 = (r2 + r5)|0; - r5 = (r10 + r5)|0; - heap32[(r3)] = 0; - r2 = r2 >> 2; - heapFloat[(r2)] = f1; - r3 = r5 >> 2; - heapFloat[(r3)] = f1; - r5 = heap32[(r1)]; - r5 = r5 >> 2; - r5 = heap32[(r5+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r5)>>2](i7); - r7 = r_g0 >> 2; - f1 = heapFloat[(fp+-184)]; - f5 = heapFloat[(r4)]; - f6 = heapFloat[(r9+1)]; - f7 = heapFloat[(r4+1)]; - r7 = heap32[(r7)]; - f8 = heapFloat[(r4+4)]; - f9 = heapFloat[(r4+5)]; - f10 = f5*f1; - f11 = f7*f6; - f12 = heapFloat[(r9+2)]; - f13 = heapFloat[(r4+2)]; - r7 = r7 >> 2; - f14 = heapFloat[(r4+8)]; - f15 = heapFloat[(r4+9)]; - f16 = heapFloat[(r4+6)]; - f17 = f8*f1; - f18 = f9*f6; - f10 = f10+f11; - f11 = f13*f12; - f10 = f10+f11; - f11 = heapFloat[(r4+10)]; - r7 = heap32[(r7+2)]; - f1 = f14*f1; - f6 = f15*f6; - f17 = f17+f18; - f18 = f16*f12; - r10 = sp + -480; - f17 = f17+f18; - f1 = f1+f6; - f6 = f11*f12; - f10 = f0+f10; - f1 = f1+f6; - r11 = r10 >> 2; - f6 = f2+f17; - heapFloat[(fp+-120)] = f10; - f1 = f3+f1; - heapFloat[(r11+1)] = f6; - heapFloat[(r11+2)] = f1; - heap32[(r11+3)] = 0; - f1 = heapFloat[(fp+-180)]; - f6 = heapFloat[(r8+1)]; - f10 = heapFloat[(r8+2)]; - f5 = f5*f1; - f7 = f7*f6; - f8 = f8*f1; - f9 = f9*f6; - f5 = f5+f7; - f7 = f13*f10; - f5 = f5+f7; - f1 = f14*f1; - f6 = f15*f6; - f7 = f8+f9; - f8 = f16*f10; - r11 = sp + -464; - f7 = f7+f8; - f1 = f1+f6; - f6 = f11*f10; - f5 = f0+f5; - f1 = f1+f6; - r12 = r11 >> 2; - f6 = f2+f7; - heapFloat[(fp+-116)] = f5; - f1 = f3+f1; - heapFloat[(r12+1)] = f6; - heapFloat[(r12+2)] = f1; - heap32[(r12+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r7)>>2](i7); - heapFloat[(r2)] = f4; - heapFloat[(r3)] = f4; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r1 = r_g0 >> 2; - f1 = heapFloat[(fp+-184)]; - f4 = heapFloat[(r4)]; - f5 = heapFloat[(r9+1)]; - f6 = heapFloat[(r4+1)]; - r1 = heap32[(r1)]; - f7 = heapFloat[(r4+4)]; - f8 = heapFloat[(r4+5)]; - f9 = f4*f1; - f10 = f6*f5; - f11 = heapFloat[(r9+2)]; - f12 = heapFloat[(r4+2)]; - r1 = r1 >> 2; - f13 = heapFloat[(r4+8)]; - f14 = heapFloat[(r4+9)]; - f15 = heapFloat[(r4+6)]; - f16 = f7*f1; - f17 = f8*f5; - f9 = f9+f10; - f10 = f12*f11; - f9 = f9+f10; - f10 = heapFloat[(r4+10)]; - r1 = heap32[(r1+2)]; - f1 = f13*f1; - f5 = f14*f5; - f16 = f16+f17; - f17 = f15*f11; - r2 = sp + -448; - f16 = f16+f17; - f1 = f1+f5; - f5 = f10*f11; - f9 = f0+f9; - f1 = f1+f5; - r3 = r2 >> 2; - f5 = f2+f16; - heapFloat[(fp+-112)] = f9; - f1 = f3+f1; - heapFloat[(r3+1)] = f5; - heapFloat[(r3+2)] = f1; - heap32[(r3+3)] = 0; - f1 = heapFloat[(fp+-180)]; - f5 = heapFloat[(r8+1)]; - f9 = heapFloat[(r8+2)]; - f4 = f4*f1; - f6 = f6*f5; - f7 = f7*f1; - f8 = f8*f5; - f4 = f4+f6; - f6 = f12*f9; - f4 = f4+f6; - f1 = f13*f1; - f5 = f14*f5; - f6 = f7+f8; - f7 = f15*f9; - r3 = sp + -432; - f6 = f6+f7; - f1 = f1+f5; - f5 = f10*f9; - f0 = f0+f4; - f1 = f1+f5; - r4 = r3 >> 2; - f2 = f2+f6; - heapFloat[(fp+-108)] = f0; - f0 = f3+f1; - heapFloat[(r4+1)] = f2; - heapFloat[(r4+2)] = f0; - heap32[(r4+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r3; -__label__ = 30; -break _1; -} -else{ -__label__ = 32; -break _1; -} -} -} -else{ - if(r3 ==0) //_LBB222_14 -{ - r3 = sp + -704; - f0 = heapFloat[(r5+8)]; - f1 = heapFloat[(r5+9)]; - f2 = heapFloat[(r5+7)]; - r7 = r3 >> 2; - heap32[(r7+3)] = heap32[(r5+10)]; - r8 = heap32[(r5)]; - r8 = r8 >> 2; - r8 = heap32[(r8+11)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r8)>>2](i7); - f3 = f_g0; - r8 = heap32[(r5)]; - r8 = r8 >> 2; - r8 = heap32[(r8+11)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r8)>>2](i7); - f4 = f_g0; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+11)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r5)>>2](i7); - f2 = f2+f_g0; - f0 = f0+f4; - heapFloat[(fp+-176)] = f2; - f1 = f1+f3; - heapFloat[(r7+1)] = f0; - heapFloat[(r7+2)] = f1; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r1 = r_g0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - f0 = heapFloat[(r7+2)]; - f1 = heapFloat[(r7+1)]; - f2 = heapFloat[(fp+-176)]; - r1 = heap32[(r1+18)]; - r2 = sp + -624; - f2 = -f2; - r5 = r2 >> 2; - f1 = -f1; - heapFloat[(fp+-156)] = f2; - f0 = -f0; - heapFloat[(r5+1)] = f1; - heapFloat[(r5+2)] = f0; - heap32[(r5+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r4; - heap32[(g0+4)] = r6; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} -else{ - if(r3 ==8) //_LBB222_15 -{ - r3 = heap32[(r5)]; - r3 = r3 >> 2; - r3 = heap32[(r3+11)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r3)>>2](i7); - f0 = f_g0; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r1 = r_g0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+4)]; - heap32[(g0)] = r_g0; - heapFloat[(g0+1)] = f0; - heap32[(g0+2)] = r4; -__label__ = 31; -} -else{ -__label__ = 32; -} -} -} -} -} while(0); -_41: do { -switch(__label__ ){//multiple entries -case 30: - heap32[(g0+2)] = r2; -__label__ = 31; -break _41; -break; -case 32: - r7 = (r3 + -21)|0; - if(uint(r7) > 2; - heap32[(fp+-256)] = 1566444395; - heap32[(r7+1)] = 1566444395; - heap32[(r7+2)] = 1566444395; - r8 = sp + -1040; - heap32[(r7+3)] = 0; - r7 = r8 >> 2; - heap32[(fp+-260)] = -581039253; - heap32[(r7+1)] = -581039253; - heap32[(r7+2)] = -581039253; - heap32[(r7+3)] = 0; - r7 = heap32[(r1)]; - r7 = r7 >> 2; - r7 = heap32[(r7+4)]; - r9 = _ZTV17DebugDrawcallback; - heap32[(g0)] = r0; - r10 = sp + -1136; - r11 = (r9 + 8)|0; - __FUNCTION_TABLE__[(r7)>>2](i7); - r12 = r10 >> 2; - r9 = (r9 + 32)|0; - heap32[(fp+-284)] = r11; - heap32[(r12+1)] = r9; - r13 = r6 >> 2; - heap32[(r12+2)] = r_g0; - heap32[(r12+3)] = heap32[(r13)]; - heap32[(r12+4)] = heap32[(r13+1)]; - heap32[(r12+5)] = heap32[(r13+2)]; - r7 = r4 >> 2; - heap32[(r12+6)] = heap32[(r13+3)]; - heap32[(r12+7)] = heap32[(r7)]; - heap32[(r12+8)] = heap32[(r7+1)]; - heap32[(r12+9)] = heap32[(r7+2)]; - heap32[(r12+10)] = heap32[(r7+3)]; - heap32[(r12+11)] = heap32[(r7+4)]; - heap32[(r12+12)] = heap32[(r7+5)]; - heap32[(r12+13)] = heap32[(r7+6)]; - heap32[(r12+14)] = heap32[(r7+7)]; - heap32[(r12+15)] = heap32[(r7+8)]; - heap32[(r12+16)] = heap32[(r7+9)]; - heap32[(r12+17)] = heap32[(r7+10)]; - heap32[(r12+18)] = heap32[(r7+11)]; - heap32[(r12+19)] = heap32[(r7+12)]; - heap32[(r12+20)] = heap32[(r7+13)]; - heap32[(r12+21)] = heap32[(r7+14)]; - heap32[(r12+22)] = heap32[(r7+15)]; - r7 = heap32[(r5)]; - r7 = r7 >> 2; - r7 = heap32[(r7+15)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r3; - __FUNCTION_TABLE__[(r7)>>2](i7); - r3 = r10 | 4; - r7 = _ZTV31btInternalTriangleIndexCallback; - heap32[(fp+-284)] = r11; - r8 = _ZTV18btTriangleCallback; - r3 = r3 >> 2; - r7 = (r7 + 8)|0; - heap32[(r12+1)] = r9; - r8 = (r8 + 8)|0; - heap32[(r3)] = r7; - heap32[(fp+-284)] = r8; - r3 = heap32[(r5+1)]; -} - if(r3 ==3) //_LBB222_37 -{ - r3 = sp + -1152; - r7 = r3 >> 2; - heap32[(fp+-288)] = 1566444395; - heap32[(r7+1)] = 1566444395; - heap32[(r7+2)] = 1566444395; - r8 = sp + -1168; - heap32[(r7+3)] = 0; - r7 = r8 >> 2; - heap32[(fp+-292)] = -581039253; - heap32[(r7+1)] = -581039253; - heap32[(r7+2)] = -581039253; - heap32[(r7+3)] = 0; - r7 = heap32[(r1)]; - r7 = r7 >> 2; - r7 = heap32[(r7+4)]; - r9 = _ZTV17DebugDrawcallback; - heap32[(g0)] = r0; - r10 = sp + -1264; - r11 = (r9 + 8)|0; - __FUNCTION_TABLE__[(r7)>>2](i7); - r12 = r10 >> 2; - r9 = (r9 + 32)|0; - heap32[(fp+-316)] = r11; - heap32[(r12+1)] = r9; - r13 = r6 >> 2; - heap32[(r12+2)] = r_g0; - heap32[(r12+3)] = heap32[(r13)]; - heap32[(r12+4)] = heap32[(r13+1)]; - heap32[(r12+5)] = heap32[(r13+2)]; - r7 = r4 >> 2; - heap32[(r12+6)] = heap32[(r13+3)]; - heap32[(r12+7)] = heap32[(r7)]; - heap32[(r12+8)] = heap32[(r7+1)]; - heap32[(r12+9)] = heap32[(r7+2)]; - heap32[(r12+10)] = heap32[(r7+3)]; - heap32[(r12+11)] = heap32[(r7+4)]; - heap32[(r12+12)] = heap32[(r7+5)]; - heap32[(r12+13)] = heap32[(r7+6)]; - heap32[(r12+14)] = heap32[(r7+7)]; - heap32[(r12+15)] = heap32[(r7+8)]; - heap32[(r12+16)] = heap32[(r7+9)]; - heap32[(r12+17)] = heap32[(r7+10)]; - heap32[(r12+18)] = heap32[(r7+11)]; - heap32[(r12+19)] = heap32[(r7+12)]; - heap32[(r12+20)] = heap32[(r7+13)]; - heap32[(r12+21)] = heap32[(r7+14)]; - heap32[(r12+22)] = heap32[(r7+15)]; - r7 = heap32[(r5+22)]; - r13 = r7 >> 2; - r13 = heap32[(r13)]; - r13 = r13 >> 2; - r13 = heap32[(r13+2)]; - r14 = (r10 + 4)|0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r14; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r3; - __FUNCTION_TABLE__[(r13)>>2](i7); - r3 = r10 | 4; - r7 = _ZTV31btInternalTriangleIndexCallback; - heap32[(fp+-316)] = r11; - r8 = _ZTV18btTriangleCallback; - r3 = r3 >> 2; - r7 = (r7 + 8)|0; - heap32[(r12+1)] = r9; - r8 = (r8 + 8)|0; - heap32[(r3)] = r7; - heap32[(fp+-316)] = r8; - r3 = heap32[(r5+1)]; -} - if(r3 >6) //_LBB222_42 -{ -__label__ = 40; -} -else{ - r3 = heap32[(r5)]; - r3 = r3 >> 2; - r3 = heap32[(r3+22)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = r_g0; - if(r3 <1) //_LBB222_42 -{ -__label__ = 40; -} -else{ - r3 = 0; -_52: while(true){ - r7 = heap32[(r5)]; - r7 = r7 >> 2; - r7 = heap32[(r7+23)]; - r8 = sp + -1296; - r9 = sp + -1280; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r8; - __FUNCTION_TABLE__[(r7)>>2](i7); - r7 = r4 >> 2; - r9 = r9 >> 2; - f0 = heapFloat[(fp+-320)]; - f1 = heapFloat[(r7)]; - f2 = heapFloat[(r9+1)]; - f3 = heapFloat[(r7+1)]; - f4 = heapFloat[(r7+4)]; - f5 = heapFloat[(r7+5)]; - f6 = f1*f0; - f7 = f3*f2; - f8 = heapFloat[(r9+2)]; - f9 = heapFloat[(r7+2)]; - f10 = heapFloat[(r7+8)]; - f11 = heapFloat[(r7+9)]; - f12 = heapFloat[(r7+6)]; - f13 = f4*f0; - f14 = f5*f2; - f6 = f6+f7; - f7 = f9*f8; - f15 = heapFloat[(r7+10)]; - f0 = f10*f0; - f2 = f11*f2; - f13 = f13+f14; - f14 = f12*f8; - f6 = f6+f7; - f7 = heapFloat[(r7+12)]; - f16 = heapFloat[(r7+14)]; - f17 = heapFloat[(r7+13)]; - r7 = sp + -1312; - f13 = f13+f14; - f0 = f0+f2; - f2 = f15*f8; - f6 = f6+f7; - f0 = f0+f2; - r9 = r7 >> 2; - f2 = f13+f17; - heapFloat[(fp+-328)] = f6; - f0 = f0+f16; - heapFloat[(r9+1)] = f2; - heapFloat[(r9+2)] = f0; - heap32[(r9+3)] = 0; - r8 = r8 >> 2; - f0 = heapFloat[(fp+-324)]; - f2 = heapFloat[(r8+1)]; - f6 = heapFloat[(r8+2)]; - f1 = f1*f0; - f3 = f3*f2; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f9*f6; - f1 = f1+f3; - f0 = f10*f0; - f2 = f11*f2; - f3 = f4+f5; - f4 = f12*f6; - r8 = sp + -1328; - f3 = f3+f4; - f0 = f0+f2; - f2 = f15*f6; - f1 = f1+f7; - f0 = f0+f2; - r9 = r8 >> 2; - f2 = f3+f17; - heapFloat[(fp+-332)] = f1; - f0 = f0+f16; - heapFloat[(r9+1)] = f2; - heapFloat[(r9+2)] = f0; - heap32[(r9+3)] = 0; - r9 = heap32[(r1)]; - r9 = r9 >> 2; - r9 = heap32[(r9+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r9)>>2](i7); - r10 = r_g0 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+2)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r10)>>2](i7); - r7 = heap32[(r5)]; - r7 = r7 >> 2; - r7 = heap32[(r7+22)]; - r3 = (r3 + 1)|0; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r7)>>2](i7); - r7 = r_g0; - if(r7 >r3) //_LBB222_41 -{ -continue _52; -} -else{ -__label__ = 40; -break _41; -} -} -} -} -break; -} -} while(0); -switch(__label__ ){//multiple entries -case 31: - heap32[(g0+3)] = r6; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -break; -case 40: - return; -break; -} -} - -function _ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; -var __label__ = 0; - i7 = sp + -280;var g0 = i7>>2; // save stack - r0 = _ZTV19btSingleRayCallback; - r1 = heap32[(fp+1)]; - r0 = (r0 + 8)|0; - r2 = sp + -256; - r3 = r1 >> 2; - heap32[(fp+-64)] = r0; - r0 = r2 >> 2; - f0 = heapFloat[(r3)]; - heapFloat[(r0+9)] = f0; - f1 = heapFloat[(r3+1)]; - heapFloat[(r0+10)] = f1; - f2 = heapFloat[(r3+2)]; - heapFloat[(r0+11)] = f2; - r4 = heap32[(fp+2)]; - f3 = heapFloat[(r3+3)]; - r3 = r4 >> 2; - heapFloat[(r0+12)] = f3; - f4 = heapFloat[(r3)]; - heapFloat[(r0+13)] = f4; - f5 = heapFloat[(r3+1)]; - heapFloat[(r0+14)] = f5; - f6 = heapFloat[(r3+2)]; - heapFloat[(r0+15)] = f6; - f7 = heapFloat[(r3+3)]; - r3 = heap32[(fp)]; - heapFloat[(r0+16)] = f7; - r5 = heap32[(fp+3)]; - heap32[(r0+53)] = r3; - heap32[(r0+54)] = r5; - heap32[(r0+17)] = 1065353216; - heap32[(r0+18)] = 0; - heap32[(r0+19)] = 0; - heap32[(r0+20)] = 0; - heap32[(r0+21)] = 0; - heap32[(r0+22)] = 1065353216; - heap32[(r0+23)] = 0; - heap32[(r0+24)] = 0; - heap32[(r0+25)] = 0; - heap32[(r0+26)] = 0; - heap32[(r0+27)] = 1065353216; - heap32[(r0+28)] = 0; - heapFloat[(r0+29)] = f0; - heapFloat[(r0+30)] = f1; - heapFloat[(r0+31)] = f2; - heapFloat[(r0+32)] = f3; - heap32[(r0+33)] = 1065353216; - heap32[(r0+34)] = 0; - heap32[(r0+35)] = 0; - heap32[(r0+36)] = 0; - heap32[(r0+37)] = 0; - heap32[(r0+38)] = 1065353216; - heap32[(r0+39)] = 0; - heap32[(r0+40)] = 0; - heap32[(r0+41)] = 0; - heap32[(r0+42)] = 0; - heap32[(r0+43)] = 1065353216; - heap32[(r0+44)] = 0; - heapFloat[(r0+45)] = f4; - f0 = f4-f0; - heapFloat[(r0+46)] = f5; - f1 = f5-f1; - heapFloat[(r0+47)] = f6; - f2 = f6-f2; - f3 = f0*f0; - f4 = f1*f1; - heapFloat[(r0+48)] = f7; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - heapFloat[(g0)] = f3; - f3 = 1; - sqrtf(i7); - f4 = f3/f_g0; - f0 = f0*f4; - f1 = f1*f4; - f2 = f2*f4; - f4 = 0; - if(f0 !=f4) //_LBB223_2 -{ - f5 = f3/f0; -} -else{ - f5 = 999999984306749440; -} - heapFloat[(r0+1)] = f5; - if(f1 !=f4) //_LBB223_5 -{ - f6 = f3/f1; -} -else{ - f6 = 999999984306749440; -} - heapFloat[(r0+2)] = f6; - if(f2 !=f4) //_LBB223_8 -{ - f3 = f3/f2; -} -else{ - f3 = 999999984306749440; -} - r5 = f5 < f4; - r6 = f6 < f4; - r5 = r5 & 1; - heapFloat[(r0+3)] = f3; - r7 = f3 < f4; - r6 = r6 & 1; - heap32[(r0+5)] = r5; - r5 = r7 & 1; - heap32[(r0+6)] = r6; - heap32[(r0+7)] = r5; - f3 = heapFloat[(r0+14)]; - f4 = heapFloat[(r0+10)]; - f5 = heapFloat[(r0+13)]; - f6 = heapFloat[(r0+9)]; - f5 = f5-f6; - f3 = f3-f4; - f4 = heapFloat[(r0+15)]; - f6 = heapFloat[(r0+11)]; - f0 = f0*f5; - f1 = f1*f3; - f3 = f4-f6; - f0 = f0+f1; - f1 = f2*f3; - f0 = f0+f1; - r3 = r3 >> 2; - heapFloat[(r0+8)] = f0; - r0 = heap32[(r3+20)]; - r3 = r0 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+6)]; - r5 = sp + -32; - r6 = r5 >> 2; - heap32[(fp+-8)] = 0; - heap32[(r6+1)] = 0; - heap32[(r6+2)] = 0; - r7 = sp + -16; - heap32[(r6+3)] = 0; - r6 = r7 >> 2; - heap32[(fp+-4)] = 0; - heap32[(r6+1)] = 0; - heap32[(r6+2)] = 0; - heap32[(r6+3)] = 0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r2; - heap32[(g0+4)] = r7; - heap32[(g0+5)] = r5; - __FUNCTION_TABLE__[(r3)>>2](i7); - return; -} - -function _ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; -var __label__ = 0; - i7 = sp + -136;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - if(r0 !=0) //_LBB224_2 -{ - r1 = heap32[(fp)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - r4 = r1 >> 2; - r5 = heap32[(r4+2)]; - r6 = 0; -_3: while(true){ - if(r5 >r6) //_LBB224_3 -{ - r7 = heap32[(r4+4)]; - r8 = r6 << 2; - r7 = (r7 + r8)|0; - r7 = r7 >> 2; - r7 = heap32[(r7)]; - if(r7 ==r0) //_LBB224_6 -{ -__label__ = 6; -break _3; -} -else{ - r6 = (r6 + 1)|0; -} -} -else{ -__label__ = 8; -break _3; -} -} -if (__label__ == 6){ -if(!(r5 ==r6)) //_LBB224_8 -{ - r0 = _2E_str988; - r1 = _2E_str887; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 114; - _assert(i7); -} -} - r6 = heap32[(r4+3)]; - if(r6 ==r5) //_LBB224_10 -{ - r7 = 1; - r8 = r5 << 1; - r8 = r5 == 0 ? r7 : r8; -if(!(r6 >=r8)) //_LBB224_9 -{ - if(r8 !=0) //_LBB224_13 -{ - r6 = gNumAlignedAllocs; - r6 = r6 >> 2; - r9 = heap32[(r6)]; - r10 = r8 << 2; - r9 = (r9 + 1)|0; - r10 = r10 | 3; - heap32[(r6)] = r9; - r6 = (r10 + 16)|0; - heap32[(g0)] = r6; - malloc(i7); - r6 = r_g0; - if(r6 !=0) //_LBB224_15 -{ - r9 = 0; - r10 = (r6 + 4)|0; - r9 = (r9 - r10)|0; - r9 = r9 & 15; - r9 = (r6 + r9)|0; - r10 = (r9 + 4)|0; - r9 = r9 >> 2; - heap32[(r9)] = r6; - r6 = r10; -} -} -else{ - r6 = 0; -} -_19: do { - if(r5 <1) //_LBB224_18 -{ - r10 = heap32[(r4+4)]; -} -else{ - r9 = 0; -_22: while(true){ - r10 = heap32[(r4+4)]; - r11 = r9 << 2; - r12 = (r10 + r11)|0; - r12 = r12 >> 2; - r11 = (r6 + r11)|0; - r12 = heap32[(r12)]; - r9 = (r9 + 1)|0; - r11 = r11 >> 2; - heap32[(r11)] = r12; -if(!(r5 !=r9)) //_LBB224_19 -{ -break _19; -} -} -} -} while(0); - if(r10 !=0) //_LBB224_22 -{ - r9 = heapU8[r1+20]; - if(r9 !=0) //_LBB224_24 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r9 = heap32[(r5)]; - r9 = (r9 + 1)|0; - r10 = r10 >> 2; - heap32[(r5)] = r9; - r5 = heap32[(r10+-1)]; - heap32[(g0)] = r5; - free(i7); - r5 = heap32[(r4+2)]; -} - heap32[(r4+4)] = 0; -} - heap8[r1+20] = r7; - heap32[(r4+4)] = r6; - heap32[(r4+3)] = r8; -} -} - r1 = r5 << 2; - r5 = heap32[(r4+4)]; - r1 = (r5 + r1)|0; - r1 = r1 >> 2; - heap32[(r1)] = r0; - r1 = heap32[(r4+2)]; - r1 = (r1 + 1)|0; - r5 = sp + -64; - r6 = r0 >> 2; - heap32[(r4+2)] = r1; - r1 = r5 >> 2; - heap32[(fp+-16)] = heap32[(r6+1)]; - heap32[(r1+1)] = heap32[(r6+2)]; - heap32[(r1+2)] = heap32[(r6+3)]; - heap32[(r1+3)] = heap32[(r6+4)]; - heap32[(r1+4)] = heap32[(r6+5)]; - heap32[(r1+5)] = heap32[(r6+6)]; - heap32[(r1+6)] = heap32[(r6+7)]; - heap32[(r1+7)] = heap32[(r6+8)]; - heap32[(r1+8)] = heap32[(r6+9)]; - heap32[(r1+9)] = heap32[(r6+10)]; - heap32[(r1+10)] = heap32[(r6+11)]; - heap32[(r1+11)] = heap32[(r6+12)]; - heap32[(r1+12)] = heap32[(r6+13)]; - heap32[(r1+13)] = heap32[(r6+14)]; - heap32[(r1+14)] = heap32[(r6+15)]; - heap32[(r1+15)] = heap32[(r6+16)]; - r1 = heap32[(r6+48)]; - r7 = r1 >> 2; - r7 = heap32[(r7)]; - r7 = r7 >> 2; - r7 = heap32[(r7+2)]; - r8 = sp + -80; - r9 = sp + -96; - heap32[(g0)] = r1; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r9; - __FUNCTION_TABLE__[(r7)>>2](i7); - r1 = heap32[(r4+20)]; - r5 = r1 >> 2; - r7 = heap32[(r6+48)]; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r7 = r7 >> 2; - r5 = heap32[(r5+2)]; - r7 = heap32[(r7+1)]; - r4 = heap32[(r4+6)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = r0; - heap32[(g0+5)] = r2; - heap32[(g0+6)] = r3; - heap32[(g0+7)] = r4; - heap32[(g0+8)] = 0; - __FUNCTION_TABLE__[(r5)>>2](i7); - heap32[(r6+47)] = r_g0; - return; -} -else{ - r0 = _2E_str786; - r1 = _2E_str887; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 111; - _assert(i7); -} -} - -function _ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(r1+47)]; - r3 = heap32[(fp)]; -if(!(r2 ==0)) //_LBB225_2 -{ - r4 = r3 >> 2; - r5 = heap32[(r4+20)]; - r6 = r5 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+9)]; - heap32[(g0)] = r5; - __FUNCTION_TABLE__[(r6)>>2](i7); - r6 = r_g0 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+10)]; - r7 = heap32[(r4+6)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r7; - __FUNCTION_TABLE__[(r6)>>2](i7); - r5 = heap32[(r4+20)]; - r6 = r5 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+3)]; - r4 = heap32[(r4+6)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r6)>>2](i7); - heap32[(r1+47)] = 0; -} - r1 = r3 >> 2; - r2 = heap32[(r1+2)]; - r3 = 0; -_4: while(true){ - if(r2 >r3) //_LBB225_3 -{ - r4 = heap32[(r1+4)]; - r5 = r3 << 2; - r4 = (r4 + r5)|0; - r4 = r4 >> 2; - r4 = heap32[(r4)]; - if(r4 !=r0) //_LBB225_5 -{ - r3 = (r3 + 1)|0; -continue _4; -} -else{ -__label__ = 7; -break _4; -} -} -else{ -__label__ = 6; -break _4; -} -} -if (__label__ == 6){ - r3 = r2; -} -if(!(r2 <=r3)) //_LBB225_10 -{ - r0 = (r2 + -1)|0; - r2 = r3 << 2; - r3 = heap32[(r1+4)]; - r0 = r0 << 2; - r2 = (r3 + r2)|0; - r3 = (r3 + r0)|0; - r2 = r2 >> 2; - r3 = r3 >> 2; - r4 = heap32[(r2)]; - r3 = heap32[(r3)]; - heap32[(r2)] = r3; - r2 = heap32[(r1+4)]; - r0 = (r2 + r0)|0; - r0 = r0 >> 2; - heap32[(r0)] = r4; - r0 = heap32[(r1+2)]; - r0 = (r0 + -1)|0; - heap32[(r1+2)] = r0; -} - return; -} - -function _ZN16btCollisionWorld33performDiscreteCollisionDetectionEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = _2E_str1190; - r1 = heap32[(fp)]; - heap32[(g0)] = r0; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r0 = r1 >> 2; - r2 = heap32[(r0)]; - r2 = r2 >> 2; - r2 = heap32[(r2+2)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = _2E_str1291; - heap32[(g0)] = r2; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r2 = heap32[(r0+20)]; - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+8)]; - r4 = heap32[(r0+6)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r4; - r2 = _ZN15CProfileManager11CurrentNodeE; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = r2 >> 2; - r3 = heap32[(r2)]; - r4 = r3 >> 2; - r5 = heap32[(r4+4)]; - r5 = (r5 + -1)|0; - heap32[(r4+4)] = r5; -_1: do { -if(!(r5 !=0)) //_LBB226_6 -{ - r5 = heap32[(r4+1)]; - if(r5 !=0) //_LBB226_3 -{ - r3 = sp + -24; - heap32[(g0)] = r3; - heap32[(g0+1)] = 0; - r5 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r5 = r5 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r3 = r3 >> 2; - r6 = heap32[(fp+-6)]; - r7 = heap32[(r5)]; - r6 = (r6 - r7)|0; - r3 = heap32[(r3+1)]; - r5 = heap32[(r5+1)]; - r3 = (r3 - r5)|0; - r5 = (r6 * 1000000)|0; - r3 = (r3 + r5)|0; - r5 = heap32[(r4+3)]; - r3 = (r3 - r5)|0; - f0 = uint(r3); //fuitos r3, f0 - f1 = 1000; - f2 = heapFloat[(r4+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r4+2)] = f0; - r3 = heap32[(r4+4)]; - if(r3 !=0) //_LBB226_6 -{ -break _1; -} -else{ - r3 = heap32[(r2)]; -} -} - r3 = r3 >> 2; - r3 = heap32[(r3+5)]; - heap32[(r2)] = r3; -} -} while(0); - r3 = heap32[(r0+6)]; - r4 = _2E_str1392; - heap32[(g0)] = r4; - _ZN15CProfileManager13Start_ProfileEPKc(i7); -if(!(r3 ==0)) //_LBB226_8 -{ - r4 = heap32[(r0+20)]; - r5 = r3 >> 2; - r6 = r4 >> 2; - r5 = heap32[(r5)]; - r6 = heap32[(r6)]; - r5 = r5 >> 2; - r6 = r6 >> 2; - r5 = heap32[(r5+8)]; - r0 = heap32[(r0+6)]; - r6 = heap32[(r6+9)]; - heap32[(g0)] = r4; - __FUNCTION_TABLE__[(r6)>>2](i7); - r1 = (r1 + 28)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r0; - __FUNCTION_TABLE__[(r5)>>2](i7); -} - r0 = heap32[(r2)]; - r1 = r0 >> 2; - r3 = heap32[(r1+4)]; - r3 = (r3 + -1)|0; - heap32[(r1+4)] = r3; -_11: do { - if(r3 ==0) //_LBB226_10 -{ - r3 = heap32[(r1+1)]; - if(r3 !=0) //_LBB226_12 -{ - r0 = sp + -16; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r0 = r0 >> 2; - r4 = heap32[(fp+-4)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r0 = heap32[(r0+1)]; - r3 = heap32[(r3+1)]; - r0 = (r0 - r3)|0; - r3 = (r4 * 1000000)|0; - r0 = (r0 + r3)|0; - r3 = heap32[(r1+3)]; - r0 = (r0 - r3)|0; - f0 = uint(r0); //fuitos r0, f0 - f1 = 1000; - f2 = heapFloat[(r1+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r1+2)] = f0; - r0 = heap32[(r2)]; - r1 = heap32[(r1+4)]; -if(!(r1 ==0)) //_LBB226_14 -{ -break _11; -} -} - r0 = r0 >> 2; - r0 = heap32[(r0+5)]; - heap32[(r2)] = r0; -} -} while(0); - r1 = r0 >> 2; - r3 = heap32[(r1+4)]; - r3 = (r3 + -1)|0; - heap32[(r1+4)] = r3; -_17: do { -if(!(r3 !=0)) //_LBB226_21 -{ - r3 = heap32[(r1+1)]; - if(r3 !=0) //_LBB226_18 -{ - r0 = sp + -8; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r0 = r0 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r0 = heap32[(r0+1)]; - r3 = heap32[(r3+1)]; - r0 = (r0 - r3)|0; - r3 = (r4 * 1000000)|0; - r0 = (r0 + r3)|0; - r3 = heap32[(r1+3)]; - r0 = (r0 - r3)|0; - f0 = uint(r0); //fuitos r0, f0 - f1 = 1000; - f2 = heapFloat[(r1+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r1+2)] = f0; - r0 = heap32[(r1+4)]; - if(r0 !=0) //_LBB226_21 -{ -break _17; -} -else{ - r0 = heap32[(r2)]; -} -} - r0 = r0 >> 2; - r0 = heap32[(r0+5)]; - heap32[(r2)] = r0; -} -} while(0); - return; -} - -function _ZN16btCollisionWorld9serializeEP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+8)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = heap32[(fp)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - _ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(i7); - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+9)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZN21btSingleSweepCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV21btSingleSweepCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN21btSingleSweepCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV21btSingleSweepCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+46)]; - r3 = r2 >> 2; - f0 = heapFloat[(r3+1)]; - f1 = 0; - if(f0 !=f1) //_LBB230_2 -{ - r4 = heap32[(fp+1)]; - r4 = r4 >> 2; - r4 = heap32[(r4)]; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r5 = r4 >> 2; - r3 = heap32[(r3+2)]; - r6 = heap32[(r5+47)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r6; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = r_g0; - if(r2 !=0) //_LBB230_4 -{ - f0 = heapFloat[(r1+47)]; - r2 = heap32[(r1+46)]; - r3 = heap32[(r5+48)]; - r1 = heap32[(r1+48)]; - r5 = (r0 + 36)|0; - r0 = (r0 + 100)|0; - r6 = (r4 + 4)|0; - heap32[(g0)] = r1; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r0; - heap32[(g0+3)] = r4; - heap32[(g0+4)] = r3; - heap32[(g0+5)] = r6; - heap32[(g0+6)] = r2; - heapFloat[(g0+7)] = f0; - _ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(i7); - r0 = 1; - r_g0 = r0; - return; -} -else{ - r0 = 1; -} -} -else{ - r0 = 0; -} - r0 = r0 & 255; - r_g0 = r0; - return; -} - -function _ZN19btSingleRayCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV19btSingleRayCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN19btSingleRayCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV19btSingleRayCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN19btSingleRayCallback7processEPK17btBroadphaseProxy(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+54)]; - r3 = r2 >> 2; - f0 = heapFloat[(r3+1)]; - f1 = 0; - if(f0 !=f1) //_LBB233_2 -{ - r4 = heap32[(fp+1)]; - r4 = r4 >> 2; - r4 = heap32[(r4)]; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r5 = r4 >> 2; - r3 = heap32[(r3+2)]; - r6 = heap32[(r5+47)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r6; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = r_g0; - if(r2 !=0) //_LBB233_4 -{ - r1 = heap32[(r1+54)]; - r2 = heap32[(r5+48)]; - r3 = (r0 + 68)|0; - r0 = (r0 + 132)|0; - r5 = (r4 + 4)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r2; - heap32[(g0+4)] = r5; - heap32[(g0+5)] = r1; - _ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(i7); - r0 = 1; - r_g0 = r0; - return; -} -else{ - r0 = 1; -} -} -else{ - r0 = 0; -} - r0 = r0 & 255; - r_g0 = r0; - return; -} - -function _ZN16btCollisionWorldD2Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV16btCollisionWorld; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+4)]; - r3 = heap32[(r2+2)]; - if(r3 >0) //_LBB234_2 -{ - r3 = 0; -_3: while(true){ - r4 = r3 << 2; - r1 = (r1 + r4)|0; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r4 = heap32[(r1+47)]; -if(!(r4 ==0)) //_LBB234_5 -{ - r5 = heap32[(r2+20)]; - r6 = r5 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+9)]; - heap32[(g0)] = r5; - __FUNCTION_TABLE__[(r6)>>2](i7); - r6 = r_g0 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+10)]; - r7 = heap32[(r2+6)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r7; - __FUNCTION_TABLE__[(r6)>>2](i7); - r5 = heap32[(r2+20)]; - r6 = r5 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+3)]; - r7 = heap32[(r2+6)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r7; - __FUNCTION_TABLE__[(r6)>>2](i7); - heap32[(r1+47)] = 0; -} - r3 = (r3 + 1)|0; - r1 = heap32[(r2+4)]; - r4 = heap32[(r2+2)]; - if(r4 >r3) //_LBB234_3 -{ -continue _3; -} -else{ -break _3; -} -} -} -if(!(r1 ==0)) //_LBB234_10 -{ - r3 = heapU8[r0+20]; -if(!(r3 ==0)) //_LBB234_9 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+4)] = 0; -} - r1 = 1; - heap8[r0+20] = r1; - heap32[(r2+4)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - return; -} - -function _ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; - var r24; - var r25; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+2)]; -if(!(r1 <1)) //_LBB235_110 -{ - r1 = heap32[(fp+1)]; - heap32[(fp+-2)] = r1; - r1 = 0; -_3: while(true){ - r2 = heap32[(r0+4)]; - r3 = r1 << 2; - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r3 = r2 >> 2; - r4 = heap32[(r3+58)]; -if(!(r4 !=1)) //_LBB235_4 -{ - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+6)]; - heap32[(g0)] = r2; - r2 = heap32[(fp+-2)]; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r3)>>2](i7); -} - r1 = (r1 + 1)|0; - r2 = heap32[(r0+2)]; -if(!(r2 >r1)) //_LBB235_2 -{ -break _3; -} -} -if(!(r2 <1)) //_LBB235_110 -{ - r1 = 0; - r2 = r1; - r3 = r1; - r4 = r1; - r5 = r1; - r6 = r1; - heap32[(fp+-1)] = r1; - r7 = r1; - r8 = r1; - r9 = r1; - r10 = r1; - r11 = r1; - r12 = r1; -_10: while(true){ - r13 = heap32[(r0+4)]; - r14 = r12 << 2; - r13 = (r13 + r14)|0; - r13 = r13 >> 2; - r13 = heap32[(r13)]; - r13 = r13 >> 2; - r13 = heap32[(r13+48)]; - r14 = r13 << 15; - r14 = r14 ^ -1; - r14 = (r13 + r14)|0; - r15 = r14 >> 10; - r14 = r15 ^ r14; - r14 = (r14 * 9)|0; - r15 = r14 >> 6; - r14 = r15 ^ r14; - r15 = r14 << 11; - r15 = r15 ^ -1; - r14 = (r14 + r15)|0; - r15 = r14 >> 16; - r14 = r15 ^ r14; - r15 = (r4 + -1)|0; - r15 = r14 & r15; - r12 = (r12 + 1)|0; -_12: do { - if(uint(r10) <=uint(r15)) //_LBB235_20 -{ -__label__ = 19; -} -else{ - r16 = r15 << 2; - r17 = (r8 + r16)|0; -_14: while(true){ - r17 = r17 >> 2; - r17 = heap32[(r17)]; - if(r17 ==-1) //_LBB235_14 -{ -__label__ = 13; -break _14; -} -else{ - r18 = r17 << 3; - r18 = (r11 + r18)|0; - r18 = r18 >> 2; - r18 = heap32[(r18)]; - if(r13 !=r18) //_LBB235_9 -{ - r17 = r17 << 2; - r17 = (r6 + r17)|0; -} -else{ -__label__ = 12; -break _14; -} -} -} -if (__label__ == 12){ - r17 = r17 << 2; - r17 = (r3 + r17)|0; -if(!(r17 ==0)) //_LBB235_14 -{ -__label__ = 89; -break _12; -} -} - if(uint(r10) <=uint(r15)) //_LBB235_20 -{ -__label__ = 19; -} -else{ - r16 = (r8 + r16)|0; -_22: while(true){ - r16 = r16 >> 2; - r16 = heap32[(r16)]; - if(r16 ==-1) //_LBB235_20 -{ -__label__ = 19; -break _12; -} -else{ - r17 = r16 << 3; - r17 = (r11 + r17)|0; - r17 = r17 >> 2; - r17 = heap32[(r17)]; - if(r13 !=r17) //_LBB235_16 -{ - r16 = r16 << 2; - r16 = (r6 + r16)|0; -} -else{ -break _22; -} -} -} - r14 = r16 << 2; - r14 = (r3 + r14)|0; - r14 = r14 >> 2; - heap32[(r14)] = r13; - r16 = r4; - r17 = r5; -__label__ = 88; -} -} -} while(0); -if (__label__ == 19){ - if(r4 ==r5) //_LBB235_22 -{ - r16 = 1; - r17 = r5 << 1; - r16 = r5 == 0 ? r16 : r17; - if(r4 >=r16) //_LBB235_21 -{ -__label__ = 20; -} -else{ - if(r16 !=0) //_LBB235_25 -{ - r17 = gNumAlignedAllocs; - r17 = r17 >> 2; - r18 = heap32[(r17)]; - r19 = r16 << 2; - r18 = (r18 + 1)|0; - r19 = r19 | 3; - heap32[(r17)] = r18; - r17 = (r19 + 16)|0; - heap32[(g0)] = r17; - malloc(i7); - r17 = r_g0; - if(r17 !=0) //_LBB235_27 -{ - r18 = 0; - r19 = (r17 + 4)|0; - r18 = (r18 - r19)|0; - r18 = r18 & 15; - r18 = (r17 + r18)|0; - r19 = (r18 + 4)|0; - r18 = r18 >> 2; - heap32[(r18)] = r17; - r17 = r19; -} -} -else{ - r17 = 0; -} -_37: do { -if(!(r5 <1)) //_LBB235_31 -{ - r18 = r17; - r19 = r3; - r20 = r5; -_39: while(true){ - r21 = r19 >> 2; - r20 = (r20 + -1)|0; - r19 = (r19 + 4)|0; - r22 = (r18 + 4)|0; - r18 = r18 >> 2; - r21 = heap32[(r21)]; - heap32[(r18)] = r21; - r18 = r22; -if(!(r20 !=0)) //_LBB235_30 -{ -break _37; -} -} -} -} while(0); - if(r3 !=0) //_LBB235_33 -{ - r18 = gNumAlignedFree; - r18 = r18 >> 2; - r19 = heap32[(r18)]; - r19 = (r19 + 1)|0; - r3 = r3 >> 2; - heap32[(r18)] = r19; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); - r3 = r17; -__label__ = 32; -} -else{ - r3 = r17; -__label__ = 32; -} -} -} -else{ -__label__ = 20; -} -if (__label__ == 20){ - r16 = r4; -} - r18 = r5 << 2; - r19 = (r3 + r18)|0; - r17 = (r5 + 1)|0; - r19 = r19 >> 2; - heap32[(r19)] = r13; - if(r1 ==r2) //_LBB235_36 -{ - r19 = 1; - r20 = r2 << 1; - r19 = r2 == 0 ? r19 : r20; -if(!(r1 >=r19)) //_LBB235_35 -{ - if(r19 !=0) //_LBB235_39 -{ - r1 = gNumAlignedAllocs; - r1 = r1 >> 2; - r20 = heap32[(r1)]; - r21 = r19 << 3; - r20 = (r20 + 1)|0; - r21 = r21 | 3; - heap32[(r1)] = r20; - r1 = (r21 + 16)|0; - heap32[(g0)] = r1; - malloc(i7); - r20 = r_g0; - if(r20 !=0) //_LBB235_41 -{ - r1 = 0; - r21 = (r20 + 4)|0; - r1 = (r1 - r21)|0; - r1 = r1 & 15; - r1 = (r20 + r1)|0; - r21 = (r1 + 4)|0; - r1 = r1 >> 2; - heap32[(r1)] = r20; - r20 = r21; -} -} -else{ - r20 = 0; -} -_56: do { -if(!(r2 <1)) //_LBB235_45 -{ - r1 = (r11 + 4)|0; - r21 = (r20 + 4)|0; - r22 = r2; -_58: while(true){ - r23 = r1 >> 2; - r24 = heap32[(r23)]; - r23 = heap32[(r23+-1)]; - r25 = r21 >> 2; - r22 = (r22 + -1)|0; - r1 = (r1 + 8)|0; - r21 = (r21 + 8)|0; - heap32[(r25+-1)] = r23; - heap32[(r25)] = r24; -if(!(r22 !=0)) //_LBB235_44 -{ -break _56; -} -} -} -} while(0); - if(r11 !=0) //_LBB235_47 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r21 = heap32[(r1)]; - r21 = (r21 + 1)|0; - r11 = r11 >> 2; - heap32[(r1)] = r21; - r1 = heap32[(r11+-1)]; - heap32[(g0)] = r1; - free(i7); - r1 = r19; - r11 = r20; -} -else{ - r1 = r19; - r11 = r20; -} -} -} - r19 = r2 << 3; - r19 = (r11 + r19)|0; - r2 = (r2 + 1)|0; - r19 = r19 >> 2; - heap32[(r19)] = r13; - if(r4 > 2; - r9 = heap32[(r4)]; - r15 = r16 << 2; - r9 = (r9 + 1)|0; - r15 = r15 | 3; - heap32[(r4)] = r9; - r4 = (r15 + 16)|0; - heap32[(g0)] = r4; - malloc(i7); - r4 = r_g0; - if(r4 !=0) //_LBB235_60 -{ - r9 = 0; - r15 = (r4 + 4)|0; - r9 = (r9 - r15)|0; - r9 = r9 & 15; - r9 = (r4 + r9)|0; - r15 = (r9 + 4)|0; - r9 = r9 >> 2; - heap32[(r9)] = r4; - r4 = r15; -} -} -else{ - r4 = 0; -} -_78: do { -if(!(r10 <1)) //_LBB235_64 -{ - r9 = r4; - r15 = r8; - r19 = r10; -_80: while(true){ - r20 = r15 >> 2; - r19 = (r19 + -1)|0; - r15 = (r15 + 4)|0; - r21 = (r9 + 4)|0; - r9 = r9 >> 2; - r20 = heap32[(r20)]; - heap32[(r9)] = r20; - r9 = r21; -if(!(r19 !=0)) //_LBB235_63 -{ -break _78; -} -} -} -} while(0); - if(r8 !=0) //_LBB235_66 -{ - r9 = gNumAlignedFree; - r9 = r9 >> 2; - r15 = heap32[(r9)]; - r15 = (r15 + 1)|0; - r8 = r8 >> 2; - heap32[(r9)] = r15; - r8 = heap32[(r8+-1)]; - heap32[(g0)] = r8; - free(i7); - r8 = r4; - r9 = r16; -} -else{ - r8 = r4; - r9 = r16; -} -} - r4 = r10; -_87: while(true){ - r15 = r4 << 2; - r15 = (r8 + r15)|0; - r4 = (r4 + 1)|0; - r15 = r15 >> 2; - heap32[(r15)] = 0; -if(!(r16 !=r4)) //_LBB235_68 -{ -break _69; -} -} -} -} while(0); -_90: do { - if(r7 <=r16) //_LBB235_71 -{ -if(!(r7 >=r16)) //_LBB235_70 -{ - r4 = heap32[(fp+-1)]; - if(r4 > 2; - r15 = heap32[(r4)]; - r19 = r16 << 2; - r15 = (r15 + 1)|0; - r19 = r19 | 3; - heap32[(r4)] = r15; - r4 = (r19 + 16)|0; - heap32[(g0)] = r4; - malloc(i7); - r4 = r_g0; - if(r4 !=0) //_LBB235_78 -{ - r15 = 0; - r19 = (r4 + 4)|0; - r15 = (r15 - r19)|0; - r15 = r15 & 15; - r15 = (r4 + r15)|0; - r19 = (r15 + 4)|0; - r15 = r15 >> 2; - heap32[(r15)] = r4; - r4 = r19; -} -} -else{ - r4 = 0; -} -_100: do { -if(!(r7 <1)) //_LBB235_82 -{ - r15 = r4; - r19 = r6; - r20 = r7; -_102: while(true){ - r21 = r19 >> 2; - r20 = (r20 + -1)|0; - r19 = (r19 + 4)|0; - r22 = (r15 + 4)|0; - r15 = r15 >> 2; - r21 = heap32[(r21)]; - heap32[(r15)] = r21; - r15 = r22; -if(!(r20 !=0)) //_LBB235_81 -{ -break _100; -} -} -} -} while(0); -if(!(r6 ==0)) //_LBB235_84 -{ - r15 = gNumAlignedFree; - r15 = r15 >> 2; - r19 = heap32[(r15)]; - r19 = (r19 + 1)|0; - r6 = r6 >> 2; - heap32[(r15)] = r19; - r6 = heap32[(r6+-1)]; - heap32[(g0)] = r6; - free(i7); -} - if(r7 > 2; - heap32[(r4)] = 0; -if(!(r16 !=r7)) //_LBB235_87 -{ -break _90; -} -} -} -} -} while(0); -_114: do { -if(!(r16 <1)) //_LBB235_94 -{ - r4 = r8; - r7 = r16; -_116: while(true){ - r7 = (r7 + -1)|0; - r15 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = -1; - r4 = r15; -if(!(r7 !=0)) //_LBB235_90 -{ -break _116; -} -} -if(!(r16 <1)) //_LBB235_94 -{ - r4 = r6; - r7 = r16; -_120: while(true){ - r7 = (r7 + -1)|0; - r15 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = -1; - r4 = r15; -if(!(r7 !=0)) //_LBB235_93 -{ -break _114; -} -} -} -} -} while(0); -_123: do { - if(r10 >0) //_LBB235_96 -{ - r4 = (r16 + -1)|0; - r7 = 0; -_125: while(true){ - r15 = r7 << 3; - r15 = (r11 + r15)|0; - r15 = r15 >> 2; - r15 = heap32[(r15)]; - r19 = r15 << 15; - r19 = r19 ^ -1; - r15 = (r15 + r19)|0; - r19 = r15 >> 10; - r15 = r19 ^ r15; - r15 = (r15 * 9)|0; - r19 = r15 >> 6; - r15 = r19 ^ r15; - r19 = r15 << 11; - r19 = r19 ^ -1; - r15 = (r15 + r19)|0; - r19 = r15 >> 16; - r15 = r19 ^ r15; - r15 = r15 & r4; - r15 = r15 << 2; - r15 = (r8 + r15)|0; - r15 = r15 >> 2; - r19 = r7 << 2; - r19 = (r6 + r19)|0; - r20 = heap32[(r15)]; - r19 = r19 >> 2; - r21 = (r7 + 1)|0; - heap32[(r19)] = r20; - heap32[(r15)] = r7; - r7 = r21; - if(r10 ==r21) //_LBB235_95 -{ -break _123; -} -} -} -} while(0); - r7 = r16; - r10 = r16; -} - r4 = (r16 + -1)|0; - r15 = r14 & r4; -} - r4 = r15 << 2; - r4 = (r8 + r4)|0; - r4 = r4 >> 2; - r14 = (r6 + r18)|0; - r14 = r14 >> 2; - r15 = heap32[(r4)]; - heap32[(r14)] = r15; - heap32[(r4)] = r5; -__label__ = 88; -} -if (__label__ == 88){ - r4 = r13 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+14)]; - heap32[(g0)] = r13; - r5 = heap32[(fp+-2)]; - heap32[(g0+1)] = r5; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r16; - r5 = r17; -} - r13 = heap32[(r0+2)]; -if(!(r13 >r12)) //_LBB235_7 -{ -break _10; -} -} -if(!(r11 ==0)) //_LBB235_104 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - r2 = r11 >> 2; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} -if(!(r3 ==0)) //_LBB235_106 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - r2 = r3 >> 2; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} -if(!(r6 ==0)) //_LBB235_108 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - r2 = r6 >> 2; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} -if(!(r8 ==0)) //_LBB235_110 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - r2 = r8 >> 2; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} -} -} - return; -} - -function _ZNK11btMatrix3x311getRotationER12btQuaternion(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r1+5)]; - f2 = heapFloat[(r1+10)]; - f3 = f0+f1; - f3 = f3+f2; - r2 = heap32[(fp+1)]; - f4 = 0; - if(f3 <=f4) //_LBB236_2 -{ - if(f0 >=f1) //_LBB236_4 -{ - r1 = 2; - r3 = 0; - r1 = f0 < f2 ? r1 : r3; -} -else{ - r1 = 2; - r3 = 1; - r1 = f1 < f2 ? r1 : r3; -} - r3 = (r1 + 1)|0; - r3 = (r3 % 3)|0; - r4 = (r1 + 2)|0; - r4 = (r4 % 3)|0; - r5 = r1 << 4; - r6 = r3 << 4; - r7 = r4 << 4; - r5 = (r0 + r5)|0; - r1 = r1 << 2; - r6 = (r0 + r6)|0; - r3 = r3 << 2; - r0 = (r0 + r7)|0; - r4 = r4 << 2; - r7 = (r5 + r1)|0; - r8 = (r6 + r3)|0; - r7 = r7 >> 2; - r8 = r8 >> 2; - r9 = (r0 + r4)|0; - r9 = r9 >> 2; - f0 = heapFloat[(r7)]; - f1 = heapFloat[(r8)]; - f2 = heapFloat[(r9)]; - f0 = f0-f1; - f0 = f0-f2; - f1 = 1; - f0 = f0+f1; - r7 = sp + -16; - heapFloat[(g0)] = f0; - r8 = (r7 + r1)|0; - f0 = 0.5; - sqrtf(i7); - r9 = (r0 + r3)|0; - r10 = (r6 + r4)|0; - r8 = r8 >> 2; - f2 = f_g0*f0; - r9 = r9 >> 2; - heapFloat[(r8)] = f2; - r8 = r10 >> 2; - f2 = heapFloat[(r9)]; - f3 = heapFloat[(r8)]; - f2 = f2-f3; - f0 = f0/f_g0; - r6 = (r6 + r1)|0; - r8 = (r5 + r3)|0; - r9 = r7 >> 2; - f1 = f2*f0; - r6 = r6 >> 2; - heapFloat[(r9+3)] = f1; - r8 = r8 >> 2; - f1 = heapFloat[(r6)]; - f2 = heapFloat[(r8)]; - r3 = (r7 + r3)|0; - f1 = f1+f2; - r0 = (r0 + r1)|0; - r1 = (r5 + r4)|0; - r3 = r3 >> 2; - f1 = f1*f0; - r0 = r0 >> 2; - heapFloat[(r3)] = f1; - r1 = r1 >> 2; - f1 = heapFloat[(r0)]; - f2 = heapFloat[(r1)]; - r0 = (r7 + r4)|0; - f1 = f1+f2; - r0 = r0 >> 2; - f0 = f1*f0; - heapFloat[(r0)] = f0; - f1 = heapFloat[(fp+-4)]; - f3 = heapFloat[(r9+1)]; - f0 = heapFloat[(r9+2)]; - f2 = heapFloat[(r9+3)]; -} -else{ - f0 = 1; - f0 = f3+f0; - heapFloat[(g0)] = f0; - r0 = sp + -16; - f0 = 0.5; - sqrtf(i7); - f2 = f_g0*f0; - r0 = r0 >> 2; - heapFloat[(r0+3)] = f2; - f3 = heapFloat[(r1+9)]; - f4 = heapFloat[(r1+6)]; - f3 = f3-f4; - f0 = f0/f_g0; - f1 = f3*f0; - heapFloat[(fp+-4)] = f1; - f3 = heapFloat[(r1+2)]; - f4 = heapFloat[(r1+8)]; - f3 = f3-f4; - f3 = f3*f0; - heapFloat[(r0+1)] = f3; - f4 = heapFloat[(r1+4)]; - f5 = heapFloat[(r1+1)]; - f4 = f4-f5; - f0 = f4*f0; - heapFloat[(r0+2)] = f0; -} - r0 = r2 >> 2; - heapFloat[(r0)] = f1; - heapFloat[(r0+1)] = f3; - heapFloat[(r0+2)] = f0; - heapFloat[(r0+3)] = f2; - return; -} - -function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1E_0v(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1E_0v(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; -var __label__ = 0; - i7 = sp + -80;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0+4)]; - f1 = heapFloat[(r0+9)]; - f2 = heapFloat[(r0+6)]; - f3 = heapFloat[(r0+8)]; - f4 = heapFloat[(r0+5)]; - f5 = heapFloat[(r0+10)]; - f6 = f4*f5; - f7 = f2*f1; - f8 = f2*f3; - f9 = f0*f5; - f10 = heapFloat[(r0)]; - f11 = heapFloat[(r0+1)]; - f6 = f6-f7; - f7 = f8-f9; - f8 = f0*f1; - f9 = f4*f3; - f12 = heapFloat[(r0+2)]; - f8 = f8-f9; - f9 = f10*f6; - f13 = f11*f7; - f9 = f9+f13; - f13 = f12*f8; - r0 = heap32[(fp+1)]; - f14 = 1; - f9 = f9+f13; - r0 = r0 >> 2; - f9 = f14/f9; - f13 = f12*f1; - f15 = f11*f5; - f5 = f10*f5; - f16 = f12*f3; - f13 = f13-f15; - f5 = f5-f16; - f15 = f11*f2; - f16 = f12*f4; - f12 = f12*f0; - f2 = f10*f2; - f3 = f11*f3; - f1 = f10*f1; - f6 = f6*f9; - f17 = heapFloat[(r0)]; - f7 = f7*f9; - f18 = heapFloat[(r0+1)]; - f15 = f15-f16; - f2 = f12-f2; - f12 = f13*f9; - f5 = f5*f9; - f1 = f3-f1; - f3 = f10*f4; - f0 = f11*f0; - f4 = f6*f17; - f10 = f7*f18; - f8 = f8*f9; - f11 = heapFloat[(r0+2)]; - f13 = heapFloat[(r0+8)]; - f15 = f15*f9; - f16 = heapFloat[(r0+4)]; - f19 = heapFloat[(r0+9)]; - f2 = f2*f9; - f20 = heapFloat[(r0+5)]; - f0 = f3-f0; - f1 = f1*f9; - f3 = heapFloat[(r0+10)]; - f21 = heapFloat[(r0+6)]; - f22 = f12*f17; - f23 = f5*f18; - f4 = f4+f10; - f10 = f8*f11; - f0 = f0*f9; - r0 = sp + -48; - f9 = f15*f17; - f17 = f2*f18; - f18 = f22+f23; - f22 = f1*f11; - f4 = f4+f10; - r1 = r0 >> 2; - f9 = f9+f17; - f10 = f0*f11; - f11 = f18+f22; - heapFloat[(fp+-12)] = f4; - f4 = f6*f16; - f17 = f7*f20; - f9 = f9+f10; - heapFloat[(r1+1)] = f11; - heapFloat[(r1+2)] = f9; - f9 = f12*f16; - f10 = f5*f20; - f4 = f4+f17; - f11 = f8*f21; - f16 = f15*f16; - f17 = f2*f20; - f9 = f9+f10; - f10 = f1*f21; - f4 = f4+f11; - heap32[(r1+3)] = 0; - f11 = f16+f17; - f16 = f0*f21; - f9 = f9+f10; - heapFloat[(r1+4)] = f4; - f4 = f6*f13; - f6 = f7*f19; - f7 = f11+f16; - heapFloat[(r1+5)] = f9; - heapFloat[(r1+6)] = f7; - f7 = f12*f13; - f5 = f5*f19; - f4 = f4+f6; - f6 = f8*f3; - f8 = f15*f13; - f2 = f2*f19; - f5 = f7+f5; - f1 = f1*f3; - f4 = f4+f6; - heap32[(r1+7)] = 0; - f2 = f8+f2; - f0 = f0*f3; - f1 = f5+f1; - heapFloat[(r1+8)] = f4; - f0 = f2+f0; - heapFloat[(r1+9)] = f1; - heapFloat[(r1+10)] = f0; - heap32[(r1+11)] = 0; - r1 = sp + -64; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - _ZNK11btMatrix3x311getRotationER12btQuaternion(i7); - r0 = r1 >> 2; - f0 = heapFloat[(fp+-16)]; - f1 = heapFloat[(r0+1)]; - f2 = heapFloat[(r0+2)]; - f3 = f0*f0; - f4 = f1*f1; - f5 = heapFloat[(r0+3)]; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - f4 = f5*f5; - f3 = f3+f4; - heapFloat[(g0)] = f3; - sqrtf(i7); - f3 = f_g0; - f4 = 0; - if(f3 !=f4) //_LBB245_2 -{ - r1 = heap32[(fp+2)]; - r2 = heap32[(fp+3)]; - f3 = f14/f3; - f0 = f0*f3; - f1 = f1*f3; - heapFloat[(fp+-16)] = f0; - f2 = f2*f3; - heapFloat[(r0+1)] = f1; - f4 = -1; - f3 = f5*f3; - heapFloat[(r0+2)] = f2; - f4 = f3 < f4 ? f4 : f3; - heapFloat[(r0+3)] = f3; - f3 = f4 > f14 ? f14 : f4; - heapFloat[(g0)] = f3; - acosf(i7); - r0 = r2 >> 2; - f3 = f_g0+f_g0; - r1 = r1 >> 2; - heapFloat[(r0)] = f3; - heapFloat[(r1)] = f0; - f0 = f0*f0; - f3 = f1*f1; - heapFloat[(r1+1)] = f1; - f0 = f0+f3; - f1 = f2*f2; - f0 = f0+f1; - heapFloat[(r1+2)] = f2; - heap32[(r1+3)] = 0; - f1 = 1.4210854715202004e-014; - if(f0 >=f1) //_LBB245_4 -{ - heapFloat[(g0)] = f0; - sqrtf(i7); - f0 = f14/f_g0; - f1 = heapFloat[(r1)]; - f1 = f1*f0; - heapFloat[(r1)] = f1; - f1 = heapFloat[(r1+1)]; - f1 = f1*f0; - heapFloat[(r1+1)] = f1; - f1 = heapFloat[(r1+2)]; - f0 = f1*f0; - heapFloat[(r1+2)] = f0; - return; -} -else{ - heap32[(r1)] = 1065353216; - heap32[(r1+1)] = 0; - heap32[(r1+2)] = 0; - heap32[(r1+3)] = 0; - return; -} -} -else{ - r0 = _2E_str584; - r1 = _2E_str685; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 188; - _assert(i7); -} -} - -function _ZNK16btCollisionWorld15convexSweepTestEPK13btConvexShapeRK11btTransformS5_RNS_20ConvexResultCallbackEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; -var __label__ = 0; - i7 = sp + -528;var g0 = i7>>2; // save stack - r0 = _2E_str1089; - r1 = heap32[(fp+2)]; - heap32[(g0)] = r0; - r0 = sp + -112; - r1 = r1 >> 2; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r2 = r0 >> 2; - heap32[(fp+-28)] = heap32[(r1)]; - heap32[(r2+1)] = heap32[(r1+1)]; - heap32[(r2+2)] = heap32[(r1+2)]; - heap32[(r2+3)] = heap32[(r1+3)]; - heap32[(r2+4)] = heap32[(r1+4)]; - heap32[(r2+5)] = heap32[(r1+5)]; - heap32[(r2+6)] = heap32[(r1+6)]; - heap32[(r2+7)] = heap32[(r1+7)]; - heap32[(r2+8)] = heap32[(r1+8)]; - heap32[(r2+9)] = heap32[(r1+9)]; - heap32[(r2+10)] = heap32[(r1+10)]; - heap32[(r2+11)] = heap32[(r1+11)]; - heap32[(r2+12)] = heap32[(r1+12)]; - heap32[(r2+13)] = heap32[(r1+13)]; - r3 = heap32[(fp+3)]; - heap32[(r2+14)] = heap32[(r1+14)]; - r4 = sp + -176; - r3 = r3 >> 2; - heap32[(r2+15)] = heap32[(r1+15)]; - r2 = r4 >> 2; - heap32[(fp+-44)] = heap32[(r3)]; - heap32[(r2+1)] = heap32[(r3+1)]; - heap32[(r2+2)] = heap32[(r3+2)]; - heap32[(r2+3)] = heap32[(r3+3)]; - heap32[(r2+4)] = heap32[(r3+4)]; - heap32[(r2+5)] = heap32[(r3+5)]; - heap32[(r2+6)] = heap32[(r3+6)]; - heap32[(r2+7)] = heap32[(r3+7)]; - heap32[(r2+8)] = heap32[(r3+8)]; - heap32[(r2+9)] = heap32[(r3+9)]; - heap32[(r2+10)] = heap32[(r3+10)]; - heap32[(r2+11)] = heap32[(r3+11)]; - heap32[(r2+12)] = heap32[(r3+12)]; - heap32[(r2+13)] = heap32[(r3+13)]; - heap32[(r2+14)] = heap32[(r3+14)]; - heap32[(r2+15)] = heap32[(r3+15)]; - r2 = sp + -24; - r5 = sp + -28; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r5; - _ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7); - r2 = r2 >> 2; - f0 = heapFloat[(r2+2)]; - f1 = heapFloat[(fp+-7)]; - f2 = heapFloat[(r2+1)]; - f3 = heapFloat[(fp+-6)]; - r2 = sp + -424; - f3 = f3*f1; - r5 = r2 >> 2; - f2 = f2*f1; - heapFloat[(fp+-106)] = f3; - f0 = f0*f1; - heapFloat[(r5+1)] = f2; - heapFloat[(r5+2)] = f0; - r6 = sp + -440; - heap32[(r5+3)] = 0; - r5 = r6 >> 2; - heap32[(fp+-110)] = 0; - heap32[(r5+1)] = 0; - heap32[(r5+2)] = 0; - r7 = sp + -504; - heap32[(r5+3)] = 0; - r5 = r7 >> 2; - heap32[(fp+-126)] = 1065353216; - heap32[(r5+1)] = 0; - heap32[(r5+2)] = 0; - heap32[(r5+3)] = 0; - heap32[(r5+4)] = 0; - heap32[(r5+5)] = 1065353216; - heap32[(r5+6)] = 0; - heap32[(r5+7)] = 0; - heap32[(r5+8)] = 0; - heap32[(r5+9)] = 0; - heap32[(r5+10)] = 1065353216; - heap32[(r5+11)] = 0; - heap32[(r5+12)] = 0; - heap32[(r5+13)] = 0; - heap32[(r5+14)] = 0; - heap32[(r5+15)] = 0; - r8 = sp + -48; - heap32[(g0)] = r0; - heap32[(g0+1)] = r8; - _ZNK11btMatrix3x311getRotationER12btQuaternion(i7); - r8 = r8 >> 2; - f0 = heapFloat[(fp+-12)]; - f1 = heapFloat[(r8+1)]; - f2 = heapFloat[(r8+2)]; - f3 = f0*f0; - f4 = f1*f1; - f5 = heapFloat[(r8+3)]; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - f4 = f5*f5; - f6 = 2; - f3 = f3+f4; - f3 = f6/f3; - f4 = f2*f3; - f6 = f1*f3; - f7 = f1*f6; - f2 = f2*f4; - f8 = f7+f2; - f9 = 1; - f10 = f0*f6; - f11 = f5*f4; - f8 = f9-f8; - f12 = f0*f4; - f6 = f5*f6; - f13 = f10-f11; - heapFloat[(fp+-126)] = f8; - f3 = f0*f3; - f8 = f12+f6; - heapFloat[(r5+1)] = f13; - f0 = f0*f3; - heapFloat[(r5+2)] = f8; - f2 = f0+f2; - f8 = f10+f11; - heap32[(r5+3)] = 0; - f1 = f1*f4; - f3 = f5*f3; - f2 = f9-f2; - heapFloat[(r5+4)] = f8; - f4 = f1-f3; - heapFloat[(r5+5)] = f2; - heapFloat[(r5+6)] = f4; - f2 = f12-f6; - heap32[(r5+7)] = 0; - f0 = f0+f7; - f1 = f1+f3; - heapFloat[(r5+8)] = f2; - f0 = f9-f0; - heapFloat[(r5+9)] = f1; - heapFloat[(r5+10)] = f0; - heap32[(r5+11)] = 0; - r5 = heap32[(fp+1)]; - r8 = sp + -192; - r9 = sp + -208; - heap32[(g0)] = r5; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r2; - heap32[(g0+4)] = r8; - heap32[(g0+5)] = r9; - r2 = _ZTV21btSingleSweepCallback; - r6 = sp + -408; - r2 = (r2 + 8)|0; - _ZNK16btCollisionShape21calculateTemporalAabbERK11btTransformRK9btVector3S5_fRS3_S6_(i7); - r7 = r6 >> 2; - heap32[(fp+-102)] = r2; - heap32[(r7+9)] = heap32[(r1)]; - heap32[(r7+10)] = heap32[(r1+1)]; - heap32[(r7+11)] = heap32[(r1+2)]; - heap32[(r7+12)] = heap32[(r1+3)]; - heap32[(r7+13)] = heap32[(r1+4)]; - heap32[(r7+14)] = heap32[(r1+5)]; - heap32[(r7+15)] = heap32[(r1+6)]; - heap32[(r7+16)] = heap32[(r1+7)]; - heap32[(r7+17)] = heap32[(r1+8)]; - heap32[(r7+18)] = heap32[(r1+9)]; - heap32[(r7+19)] = heap32[(r1+10)]; - heap32[(r7+20)] = heap32[(r1+11)]; - f0 = heapFloat[(r1+12)]; - heapFloat[(r7+21)] = f0; - f1 = heapFloat[(r1+13)]; - heapFloat[(r7+22)] = f1; - f2 = heapFloat[(r1+14)]; - heapFloat[(r7+23)] = f2; - heap32[(r7+24)] = heap32[(r1+15)]; - heap32[(r7+25)] = heap32[(r3)]; - heap32[(r7+26)] = heap32[(r3+1)]; - heap32[(r7+27)] = heap32[(r3+2)]; - heap32[(r7+28)] = heap32[(r3+3)]; - heap32[(r7+29)] = heap32[(r3+4)]; - heap32[(r7+30)] = heap32[(r3+5)]; - heap32[(r7+31)] = heap32[(r3+6)]; - heap32[(r7+32)] = heap32[(r3+7)]; - heap32[(r7+33)] = heap32[(r3+8)]; - heap32[(r7+34)] = heap32[(r3+9)]; - heap32[(r7+35)] = heap32[(r3+10)]; - heap32[(r7+36)] = heap32[(r3+11)]; - f3 = heapFloat[(r3+12)]; - heapFloat[(r7+37)] = f3; - f4 = heapFloat[(r3+13)]; - heapFloat[(r7+38)] = f4; - f5 = heapFloat[(r3+14)]; - heapFloat[(r7+39)] = f5; - r1 = heap32[(fp)]; - heap32[(r7+40)] = heap32[(r3+15)]; - r3 = heap32[(fp+4)]; - heap32[(r7+45)] = r1; - heap32[(r7+46)] = r3; - f0 = f3-f0; - f1 = f4-f1; - heap32[(r7+47)] = heap32[(fp+5)]; - f2 = f5-f2; - heap32[(r7+48)] = r5; - f3 = f0*f0; - f4 = f1*f1; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - heapFloat[(g0)] = f3; - sqrtf(i7); - f3 = f9/f_g0; - f4 = f0*f3; - f5 = f2*f3; - f3 = f1*f3; - f6 = 0; - if(f4 !=f6) //_LBB246_2 -{ - f7 = f9/f4; -} -else{ - f7 = 999999984306749440; -} - heapFloat[(r7+1)] = f7; - if(f3 !=f6) //_LBB246_5 -{ - f8 = f9/f3; -} -else{ - f8 = 999999984306749440; -} - heapFloat[(r7+2)] = f8; - if(f5 !=f6) //_LBB246_8 -{ - f9 = f9/f5; -} -else{ - f9 = 999999984306749440; -} - r3 = f7 < f6; - r5 = f8 < f6; - r3 = r3 & 1; - heapFloat[(r7+3)] = f9; - r10 = f9 < f6; - f0 = f4*f0; - f1 = f3*f1; - r5 = r5 & 1; - heap32[(r7+5)] = r3; - f0 = f0+f1; - f1 = f5*f2; - r3 = r10 & 1; - heap32[(r7+6)] = r5; - f0 = f0+f1; - heap32[(r7+7)] = r3; - r1 = r1 >> 2; - heapFloat[(r7+8)] = f0; - r1 = heap32[(r1+20)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+6)]; - r0 = (r0 + 48)|0; - r4 = (r4 + 48)|0; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r6; - heap32[(g0+4)] = r8; - heap32[(g0+5)] = r9; - r0 = _ZN15CProfileManager11CurrentNodeE; - __FUNCTION_TABLE__[(r3)>>2](i7); - r0 = r0 >> 2; - heap32[(fp+-102)] = r2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r3 = (r3 + -1)|0; - heap32[(r2+4)] = r3; -_13: do { -if(!(r3 !=0)) //_LBB246_15 -{ - r3 = heap32[(r2+1)]; - if(r3 !=0) //_LBB246_12 -{ - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 * 1000000)|0; - r1 = (r1 + r3)|0; - r3 = heap32[(r2+3)]; - r1 = (r1 - r3)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r2+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r2+2)] = f0; - r1 = heap32[(r2+4)]; - if(r1 !=0) //_LBB246_15 -{ -break _13; -} -else{ - r1 = heap32[(r0)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r0)] = r1; -} -} while(0); - return; -} - -function _ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -1472;var g0 = i7>>2; // save stack - r0 = heap32[(fp+4)]; - r1 = r0 >> 2; - r2 = heap32[(r1+1)]; - r3 = heap32[(fp)]; - r4 = heap32[(fp+1)]; - r5 = heap32[(fp+2)]; - r6 = heap32[(fp+3)]; - r7 = heap32[(fp+5)]; - r8 = heap32[(fp+6)]; - f0 = heapFloat[(fp+7)]; -_1: do { - if(r2 >19) //_LBB247_6 -{ - r9 = (r2 + -21)|0; - if(uint(r9) >uint(8)) //_LBB247_30 -{ - if(r2 !=31) //_LBB247_5 -{ -break _1; -} -else{ - r0 = _2E_str1493; - heap32[(g0)] = r0; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r0 = heap32[(r1+4)]; -if(!(r0 <1)) //_LBB247_34 -{ - r0 = 0; -_8: while(true){ - r2 = (r0 * 20)|0; - r9 = heap32[(r1+6)]; - r2 = r2 << 2; - r2 = (r9 + r2)|0; - r2 = r2 >> 2; - r9 = r7 >> 2; - f1 = heapFloat[(r2)]; - f2 = heapFloat[(r9)]; - f3 = heapFloat[(r2+4)]; - f4 = heapFloat[(r9+1)]; - f5 = heapFloat[(r2+1)]; - f6 = heapFloat[(r2+5)]; - f7 = f1*f2; - f8 = f3*f4; - f9 = heapFloat[(r2+8)]; - f10 = heapFloat[(r9+2)]; - f11 = heapFloat[(r9+8)]; - f12 = heapFloat[(r2+2)]; - f13 = heapFloat[(r9+4)]; - f14 = heapFloat[(r2+12)]; - f15 = heapFloat[(r9+9)]; - f16 = heapFloat[(r2+6)]; - f17 = heapFloat[(r9+5)]; - f18 = heapFloat[(r2+13)]; - f19 = heapFloat[(r2+9)]; - f20 = heapFloat[(r9+10)]; - f21 = heapFloat[(r2+10)]; - f22 = heapFloat[(r9+6)]; - f23 = heapFloat[(r2+14)]; - f24 = f5*f2; - f25 = f6*f4; - f7 = f7+f8; - f8 = f9*f10; - r2 = heap32[(r2+16)]; - f26 = heapFloat[(r9+14)]; - f27 = heapFloat[(r9+13)]; - f28 = heapFloat[(r9+12)]; - r9 = sp + -1408; - f29 = f12*f2; - f30 = f16*f4; - f24 = f24+f25; - f25 = f19*f10; - f7 = f7+f8; - r10 = r9 >> 2; - f8 = f29+f30; - f29 = f21*f10; - f24 = f24+f25; - heapFloat[(fp+-352)] = f7; - f7 = f1*f13; - f25 = f3*f17; - f8 = f8+f29; - heapFloat[(r10+1)] = f24; - heapFloat[(r10+2)] = f8; - f8 = f5*f13; - f24 = f6*f17; - f7 = f7+f25; - f25 = f9*f22; - f29 = f12*f13; - f30 = f16*f17; - f8 = f8+f24; - f24 = f19*f22; - f7 = f7+f25; - heap32[(r10+3)] = 0; - f25 = f29+f30; - f29 = f21*f22; - f8 = f8+f24; - heapFloat[(r10+4)] = f7; - f1 = f1*f11; - f3 = f3*f15; - f7 = f25+f29; - heapFloat[(r10+5)] = f8; - heapFloat[(r10+6)] = f7; - f5 = f5*f11; - f6 = f6*f15; - f1 = f1+f3; - f3 = f9*f20; - f7 = f12*f11; - f8 = f16*f15; - f5 = f5+f6; - f6 = f19*f20; - f1 = f1+f3; - heap32[(r10+7)] = 0; - f2 = f2*f14; - f3 = f4*f18; - f4 = f7+f8; - f7 = f21*f20; - f5 = f5+f6; - heapFloat[(r10+8)] = f1; - f1 = f13*f14; - f6 = f17*f18; - f2 = f2+f3; - f3 = f10*f23; - f4 = f4+f7; - heapFloat[(r10+9)] = f5; - f2 = f2+f3; - heapFloat[(r10+10)] = f4; - f3 = f11*f14; - f4 = f15*f18; - f1 = f1+f6; - f5 = f22*f23; - f1 = f1+f5; - f3 = f3+f4; - f4 = f20*f23; - f2 = f2+f28; - heap32[(r10+11)] = 0; - f3 = f3+f4; - f1 = f1+f27; - heapFloat[(r10+12)] = f2; - f2 = f3+f26; - heapFloat[(r10+13)] = f1; - heapFloat[(r10+14)] = f2; - r11 = r6 >> 2; - heap32[(r10+15)] = 0; - r10 = heap32[(r11+48)]; - r12 = 1; - heap32[(r11+48)] = r2; - r13 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder; - r14 = -1; - heap16[(sp+-1424)>>1] = r12; - r12 = sp + -1432; - heap16[(sp+-1422)>>1] = r14; - r13 = (r13 + 8)|0; - r14 = r12 >> 2; - heap32[(fp+-358)] = r13; - heap32[(r14+3)] = r8; - r15 = r8 >> 2; - heap32[(r14+4)] = r0; - heap32[(r14+1)] = heap32[(r15+1)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r6; - heap32[(g0+4)] = r2; - heap32[(g0+5)] = r9; - heap32[(g0+6)] = r12; - heapFloat[(g0+7)] = f0; - _ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(i7); - r0 = (r0 + 1)|0; - heap32[(r11+48)] = r10; - heap32[(fp+-358)] = r13; - r2 = heap32[(r1+4)]; -if(!(r2 >r0)) //_LBB247_33 -{ -break _8; -} -} -} - r0 = _ZN15CProfileManager11CurrentNodeE; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r3 = (r3 + -1)|0; - heap32[(r2+4)] = r3; - if(r3 !=0) //_LBB247_5 -{ -break _1; -} -else{ - r3 = heap32[(r2+1)]; - if(r3 !=0) //_LBB247_37 -{ - r1 = sp + -24; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-6)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 * 1000000)|0; - r1 = (r1 + r3)|0; - r3 = heap32[(r2+3)]; - r1 = (r1 - r3)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r2+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r2+2)] = f0; - r1 = heap32[(r2+4)]; - if(r1 !=0) //_LBB247_5 -{ -break _1; -} -else{ - r1 = heap32[(r0)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r0)] = r1; - return; -} -} -} -else{ - if(r2 !=21) //_LBB247_11 -{ - r2 = r5 >> 2; - r9 = r7 >> 2; - f0 = heapFloat[(r9)]; - f1 = heapFloat[(r2)]; - f2 = heapFloat[(r9+4)]; - f3 = heapFloat[(r2+4)]; - r10 = r4 >> 2; - f4 = heapFloat[(r2+1)]; - f5 = heapFloat[(r2+5)]; - f6 = f1*f0; - f7 = f3*f2; - f8 = heapFloat[(r9+8)]; - f9 = heapFloat[(r2+8)]; - f10 = heapFloat[(r9+2)]; - f11 = heapFloat[(r2+2)]; - f12 = heapFloat[(r9+1)]; - f13 = heapFloat[(r2+12)]; - f14 = heapFloat[(r10+12)]; - f15 = heapFloat[(r9+6)]; - f16 = heapFloat[(r2+6)]; - f17 = heapFloat[(r9+5)]; - f18 = heapFloat[(r2+13)]; - f19 = heapFloat[(r10+13)]; - f20 = heapFloat[(r9+13)]; - f21 = heapFloat[(r2+10)]; - f22 = heapFloat[(r9+10)]; - f23 = heapFloat[(r2+9)]; - f24 = heapFloat[(r9+9)]; - f25 = heapFloat[(r2+14)]; - heapFloat[(fp+-360)] = f25; - f26 = heapFloat[(r10+14)]; - f27 = heapFloat[(r9+14)]; - f28 = heapFloat[(r9+12)]; - heapFloat[(fp+-359)] = f28; - f29 = f4*f0; - f30 = f5*f2; - f6 = f6+f7; - f7 = f9*f8; - r2 = sp + -1056; - f25 = f11*f0; - f28 = f16*f2; - f29 = f29+f30; - f30 = f23*f8; - f6 = f6+f7; - r9 = r2 >> 2; - f7 = f25+f28; - f25 = f21*f8; - f28 = f29+f30; - heapFloat[(fp+-264)] = f6; - f6 = f1*f12; - f29 = f3*f17; - f7 = f7+f25; - heapFloat[(r9+1)] = f28; - heapFloat[(r9+2)] = f7; - f7 = f4*f12; - f25 = f5*f17; - f6 = f6+f29; - f28 = f9*f24; - f29 = f11*f12; - f30 = f16*f17; - f7 = f7+f25; - f25 = f23*f24; - f6 = f6+f28; - heap32[(r9+3)] = 0; - f28 = f29+f30; - f29 = f21*f24; - f7 = f7+f25; - heapFloat[(r9+4)] = f6; - f1 = f1*f10; - f3 = f3*f15; - f6 = f28+f29; - heapFloat[(r9+5)] = f7; - heapFloat[(r9+6)] = f6; - f4 = f4*f10; - f5 = f5*f15; - f1 = f1+f3; - f3 = f9*f22; - f6 = f11*f10; - f7 = f16*f15; - f4 = f4+f5; - f5 = f23*f22; - f1 = f1+f3; - heap32[(r9+7)] = 0; - f3 = f6+f7; - f6 = f21*f22; - f4 = f4+f5; - heapFloat[(r9+8)] = f1; - f1 = f3+f6; - heapFloat[(r9+9)] = f4; - heapFloat[(r9+10)] = f1; - heap32[(r9+11)] = 0; - heap32[(r9+12)] = 0; - heap32[(r9+13)] = 0; - heap32[(r9+14)] = 0; - heap32[(r9+15)] = 0; - r9 = heap32[(r1)]; - r9 = r9 >> 2; - r9 = heap32[(r9+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r9)>>2](i7); - r9 = sp + -1280; - heap32[(g0)] = r9; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - heap32[(g0+4)] = r7; - heapFloat[(g0+5)] = f_g0; - r4 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0; - _ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i7); - r4 = (r4 + 8)|0; - r5 = r9 >> 2; - heap32[(fp+-320)] = r4; - heap32[(r5+52)] = r8; - heap32[(r5+53)] = r6; - r4 = r8 >> 2; - heap32[(r5+54)] = r0; - r6 = r3 >> 2; - heap32[(r5+50)] = heap32[(r4+1)]; - r4 = heap32[(r6)]; - r4 = r4 >> 2; - r4 = heap32[(r4+2)]; - f28 = heapFloat[(fp+-359)]; - f1 = -f28; - r5 = sp + -1296; - r6 = sp + -1312; - f3 = f0*f14; - f4 = f2*f19; - f5 = f0*f1; - f6 = f2*f20; - f3 = f3+f4; - f4 = f8*f26; - f5 = f5-f6; - f6 = f8*f27; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r6; - f7 = f12*f14; - f9 = f17*f19; - f11 = f12*f1; - f16 = f17*f20; - f3 = f3+f4; - f4 = f5-f6; - f5 = f10*f14; - f6 = f15*f19; - f1 = f10*f1; - f14 = f15*f20; - f7 = f7+f9; - f9 = f24*f26; - f11 = f11-f16; - f16 = f24*f27; - f3 = f3+f4; - __FUNCTION_TABLE__[(r4)>>2](i7); - r2 = sp + -1328; - f0 = f0*f13; - f2 = f2*f18; - f10 = f10*f13; - f15 = f15*f18; - f12 = f12*f13; - f13 = f17*f18; - f5 = f5+f6; - f6 = f22*f26; - f1 = f1-f14; - f14 = f22*f27; - f7 = f7+f9; - f9 = f11-f16; - f7 = f7+f9; - f0 = f0+f2; - f25 = heapFloat[(fp+-360)]; - f2 = f8*f25; - f8 = f10+f15; - f10 = f22*f25; - f11 = f12+f13; - f12 = f24*f25; - r3 = r2 >> 2; - heapFloat[(fp+-332)] = f3; - f5 = f5+f6; - f1 = f1-f14; - f0 = f0+f2; - f2 = f8+f10; - f6 = f11+f12; - f5 = f5+f1; - heapFloat[(r3+1)] = f7; - f0 = f0+f4; - f1 = f2+f1; - f2 = f6+f9; - heapFloat[(r3+2)] = f5; - heap32[(r3+3)] = 0; - if(f0 > 2; - heapFloat[(fp+-336)] = f3; - heapFloat[(r7+1)] = f7; - heapFloat[(r7+2)] = f5; - heap32[(r7+3)] = 0; - if(f3 > 2; - heapFloat[(fp+-332)] = f0; - f0 = heapFloat[(r5+1)]; - f0 = f6+f0; - heapFloat[(r3+1)] = f0; - f0 = heapFloat[(r5+2)]; - f0 = f8+f0; - heapFloat[(r3+2)] = f0; - f0 = heapFloat[(fp+-328)]; - f0 = f3+f0; - r3 = r6 >> 2; - heapFloat[(fp+-336)] = f0; - f0 = heapFloat[(r3+1)]; - f0 = f7+f0; - heapFloat[(r7+1)] = f0; - f0 = heapFloat[(r3+2)]; - f0 = f5+f0; - heapFloat[(r7+2)] = f0; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+15)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} -else{ - r2 = r7 >> 2; - r9 = r4 >> 2; - f0 = heapFloat[(r2+12)]; - f0 = -f0; - f1 = heapFloat[(r2)]; - f2 = heapFloat[(r9+12)]; - f3 = heapFloat[(r2+4)]; - f4 = heapFloat[(r2+13)]; - f5 = heapFloat[(r9+13)]; - f6 = heapFloat[(r2+1)]; - f7 = heapFloat[(r2+5)]; - f8 = f1*f2; - f9 = f3*f5; - f10 = f1*f0; - f11 = f3*f4; - f12 = heapFloat[(r2+8)]; - f13 = heapFloat[(r2+14)]; - f14 = heapFloat[(r9+14)]; - f15 = heapFloat[(r2+9)]; - f16 = heapFloat[(r2+2)]; - f17 = heapFloat[(r2+6)]; - f18 = f6*f2; - f19 = f7*f5; - f20 = f6*f0; - f21 = f7*f4; - f8 = f8+f9; - f9 = f12*f14; - f10 = f10-f11; - f11 = f12*f13; - f22 = heapFloat[(r2+10)]; - f2 = f16*f2; - f5 = f17*f5; - f0 = f16*f0; - f4 = f17*f4; - f18 = f18+f19; - f19 = f15*f14; - f20 = f20-f21; - f21 = f15*f13; - f8 = f8+f9; - f9 = f10-f11; - r2 = sp + -656; - f2 = f2+f5; - f5 = f22*f14; - f0 = f0-f4; - f4 = f22*f13; - f10 = f18+f19; - f11 = f20-f21; - f8 = f8+f9; - r9 = r2 >> 2; - f2 = f2+f5; - f0 = f0-f4; - f4 = f10+f11; - heapFloat[(fp+-164)] = f8; - f2 = f2+f0; - heapFloat[(r9+1)] = f4; - heapFloat[(r9+2)] = f2; - r10 = r5 >> 2; - heap32[(r9+3)] = 0; - f2 = heapFloat[(r10+12)]; - f4 = heapFloat[(r10+13)]; - f5 = heapFloat[(r10+14)]; - f8 = f1*f2; - f10 = f3*f4; - f13 = f6*f2; - f14 = f7*f4; - f8 = f8+f10; - f10 = f12*f5; - f8 = f8+f10; - f2 = f16*f2; - f4 = f17*f4; - f10 = f13+f14; - f13 = f15*f5; - r9 = sp + -672; - f10 = f10+f13; - f2 = f2+f4; - f4 = f22*f5; - f5 = f8+f9; - f2 = f2+f4; - r11 = r9 >> 2; - f4 = f10+f11; - heapFloat[(fp+-168)] = f5; - f0 = f2+f0; - heapFloat[(r11+1)] = f4; - heapFloat[(r11+2)] = f0; - heap32[(r11+3)] = 0; - f0 = heapFloat[(r10)]; - f2 = heapFloat[(r10+4)]; - f4 = heapFloat[(r10+1)]; - f5 = heapFloat[(r10+5)]; - f8 = heapFloat[(r10+8)]; - f9 = f0*f1; - f10 = f2*f3; - f11 = heapFloat[(r10+2)]; - f13 = heapFloat[(r10+6)]; - f14 = heapFloat[(r10+10)]; - f18 = heapFloat[(r10+9)]; - f19 = f4*f1; - f20 = f5*f3; - f9 = f9+f10; - f10 = f8*f12; - r10 = sp + -736; - f1 = f11*f1; - f3 = f13*f3; - f19 = f19+f20; - f20 = f18*f12; - f9 = f9+f10; - r11 = r10 >> 2; - f1 = f1+f3; - f3 = f14*f12; - f10 = f19+f20; - heapFloat[(fp+-184)] = f9; - f9 = f0*f6; - f12 = f2*f7; - f1 = f1+f3; - heapFloat[(r11+1)] = f10; - heapFloat[(r11+2)] = f1; - f1 = f4*f6; - f3 = f5*f7; - f9 = f9+f12; - f10 = f8*f15; - f6 = f11*f6; - f7 = f13*f7; - f1 = f1+f3; - f3 = f18*f15; - f9 = f9+f10; - heap32[(r11+3)] = 0; - f6 = f6+f7; - f7 = f14*f15; - f1 = f1+f3; - heapFloat[(r11+4)] = f9; - f0 = f0*f16; - f2 = f2*f17; - f3 = f6+f7; - heapFloat[(r11+5)] = f1; - heapFloat[(r11+6)] = f3; - f1 = f4*f16; - f3 = f5*f17; - f0 = f0+f2; - f2 = f8*f22; - f4 = f11*f16; - f5 = f13*f17; - f1 = f1+f3; - f3 = f18*f22; - f0 = f0+f2; - heap32[(r11+7)] = 0; - f2 = f4+f5; - f4 = f14*f22; - f1 = f1+f3; - heapFloat[(r11+8)] = f0; - f0 = f2+f4; - heapFloat[(r11+9)] = f1; - heapFloat[(r11+10)] = f0; - heap32[(r11+11)] = 0; - heap32[(r11+12)] = 0; - heap32[(r11+13)] = 0; - heap32[(r11+14)] = 0; - heap32[(r11+15)] = 0; - r11 = heap32[(r1)]; - r11 = r11 >> 2; - r11 = heap32[(r11+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r11)>>2](i7); - r11 = sp + -960; - heap32[(g0)] = r11; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - heap32[(g0+4)] = r7; - heapFloat[(g0+5)] = f_g0; - r4 = _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback; - _ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i7); - r4 = (r4 + 8)|0; - r5 = r11 >> 2; - heap32[(fp+-240)] = r4; - heap32[(r5+52)] = r8; - heap32[(r5+53)] = r6; - r4 = r8 >> 2; - heap32[(r5+54)] = r0; - r0 = r3 >> 2; - heap32[(r5+50)] = heap32[(r4+1)]; - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r0 = heap32[(r0+2)]; - r4 = sp + -976; - r5 = sp + -992; - heap32[(g0)] = r3; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - __FUNCTION_TABLE__[(r0)>>2](i7); - r0 = _ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback; - r3 = sp + -16; - r6 = heap32[(r1+12)]; - r0 = (r0 + 8)|0; - r7 = r3 >> 2; - heap32[(fp+-4)] = r0; - heap32[(r7+1)] = r6; - heap32[(r7+2)] = r11; - r0 = heap32[(r1+13)]; - r1 = heapU8[r0+60]; - if(r1 ==0) //_LBB247_10 -{ - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r9; - heap32[(g0+4)] = r4; - heap32[(g0+5)] = r5; - _ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7); - return; -} -else{ - r1 = r0 >> 2; - r1 = heap32[(r1+14)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r9; - heap32[(g0+4)] = r4; - heap32[(g0+5)] = r5; - heap32[(g0+6)] = r1; - _ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7); - return; -} -} -} -} -else{ - r1 = _ZTVN12btConvexCast10CastResultE; - r2 = sp + -200; - r1 = (r1 + 8)|0; - r9 = r2 >> 2; - heap32[(fp+-50)] = r1; - heap32[(r9+42)] = 0; - r1 = sp + -560; - r10 = r8 >> 2; - heapFloat[(r9+43)] = f0; - r11 = r1 >> 2; - heap32[(r9+41)] = heap32[(r10+1)]; - r12 = _ZTV30btGjkEpaPenetrationDepthSolver; - r13 = 0; - heap32[(r11+77)] = 953267991; - r11 = _ZTV27btContinuousConvexCollision; - r12 = (r12 + 8)|0; - heap8[sp+-228] = r13; - r13 = sp + -592; - r11 = (r11 + 8)|0; - heap32[(fp+-142)] = r12; - r12 = r13 >> 2; - heap32[(fp+-148)] = r11; - r11 = sp + -568; - heap32[(r12+1)] = r1; - heap32[(r12+2)] = r11; - heap32[(r12+3)] = r3; - heap32[(r12+4)] = r0; - heap32[(g0)] = r13; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = r7; - heap32[(g0+5)] = r2; - _ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB247_5 -{ - f0 = heapFloat[(r9+33)]; - f1 = heapFloat[(r9+34)]; - f2 = heapFloat[(r9+35)]; - f0 = f0*f0; - f1 = f1*f1; - f0 = f0+f1; - f1 = f2*f2; - f0 = f0+f1; - f1 = 9.9999997473787516e-005; -if(!(f0 <=f1)) //_LBB247_5 -{ - f1 = heapFloat[(r9+41)]; - f2 = heapFloat[(r10+1)]; -if(!(f1 >=f2)) //_LBB247_5 -{ - heapFloat[(g0)] = f0; - sqrtf(i7); - f1 = 1; - f2 = heapFloat[(r9+33)]; - f0 = f1/f_g0; - f1 = f2*f0; - heapFloat[(r9+33)] = f1; - f2 = heapFloat[(r9+34)]; - f2 = f2*f0; - heapFloat[(r9+34)] = f2; - f3 = heapFloat[(r9+35)]; - f0 = f3*f0; - heapFloat[(r9+35)] = f0; - r0 = sp + -640; - f3 = heapFloat[(r9+41)]; - r1 = r0 >> 2; - heap32[(fp+-160)] = r6; - heap32[(r1+1)] = 0; - heapFloat[(r1+2)] = f1; - heapFloat[(r1+3)] = f2; - heapFloat[(r1+4)] = f0; - heap32[(r1+5)] = heap32[(r9+36)]; - heap32[(r1+6)] = heap32[(r9+37)]; - heap32[(r1+7)] = heap32[(r9+38)]; - heap32[(r1+8)] = heap32[(r9+39)]; - heap32[(r1+9)] = heap32[(r9+40)]; - heapFloat[(r1+10)] = f3; - r1 = heap32[(r10)]; - r1 = r1 >> 2; - r1 = heap32[(r1+3)]; - heap32[(g0)] = r8; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r1)>>2](i7); -} -} -} -} -} while(0); - return; -} - -function _ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; -var __label__ = 0; - i7 = sp + -1120;var g0 = i7>>2; // save stack - r0 = sp + -104; - r1 = r0 >> 2; - heap32[(r1+2)] = 0; - heap32[(r1+3)] = 1065353216; - heap32[(r1+4)] = 1065353216; - r2 = _ZTV13btSphereShape; - heap32[(r1+5)] = 1065353216; - r2 = (r2 + 8)|0; - heap32[(r1+6)] = 0; - heap32[(fp+-26)] = r2; - heap32[(r1+1)] = 8; - r2 = heap32[(fp+3)]; - heap32[(r1+7)] = 0; - r3 = r2 >> 2; - heap32[(r1+11)] = 0; - r1 = heap32[(r3+1)]; - r4 = heap32[(fp)]; - r5 = heap32[(fp+1)]; - r6 = heap32[(fp+2)]; - r7 = heap32[(fp+4)]; - r8 = heap32[(fp+5)]; - if(r1 >19) //_LBB248_6 -{ - r0 = (r1 + -21)|0; - if(uint(r0) >uint(8)) //_LBB248_25 -{ -if(!(r1 !=31)) //_LBB248_29 -{ - r0 = heap32[(r3+4)]; -if(!(r0 <1)) //_LBB248_29 -{ - r0 = 0; -_8: while(true){ - r1 = (r0 * 20)|0; - r2 = heap32[(r3+6)]; - r1 = r1 << 2; - r1 = (r2 + r1)|0; - r1 = r1 >> 2; - r2 = r7 >> 2; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r2)]; - f2 = heapFloat[(r1+4)]; - f3 = heapFloat[(r2+1)]; - f4 = heapFloat[(r1+1)]; - f5 = heapFloat[(r1+5)]; - f6 = f0*f1; - f7 = f2*f3; - f8 = heapFloat[(r1+8)]; - f9 = heapFloat[(r2+2)]; - f10 = heapFloat[(r2+8)]; - f11 = heapFloat[(r1+2)]; - f12 = heapFloat[(r2+4)]; - f13 = heapFloat[(r1+12)]; - f14 = heapFloat[(r2+9)]; - f15 = heapFloat[(r1+6)]; - f16 = heapFloat[(r2+5)]; - f17 = heapFloat[(r1+13)]; - f18 = heapFloat[(r1+9)]; - f19 = heapFloat[(r2+10)]; - f20 = heapFloat[(r1+10)]; - f21 = heapFloat[(r2+6)]; - f22 = heapFloat[(r1+14)]; - f23 = f4*f1; - f24 = f5*f3; - f6 = f6+f7; - f7 = f8*f9; - r1 = heap32[(r1+16)]; - f25 = heapFloat[(r2+14)]; - f26 = heapFloat[(r2+13)]; - f27 = heapFloat[(r2+12)]; - r2 = sp + -1056; - f28 = f11*f1; - f29 = f15*f3; - f23 = f23+f24; - f24 = f18*f9; - f6 = f6+f7; - r9 = r2 >> 2; - f7 = f28+f29; - f28 = f20*f9; - f23 = f23+f24; - heapFloat[(fp+-264)] = f6; - f6 = f0*f12; - f24 = f2*f16; - f7 = f7+f28; - heapFloat[(r9+1)] = f23; - heapFloat[(r9+2)] = f7; - f7 = f4*f12; - f23 = f5*f16; - f6 = f6+f24; - f24 = f8*f21; - f28 = f11*f12; - f29 = f15*f16; - f7 = f7+f23; - f23 = f18*f21; - f6 = f6+f24; - heap32[(r9+3)] = 0; - f24 = f28+f29; - f28 = f20*f21; - f7 = f7+f23; - heapFloat[(r9+4)] = f6; - f0 = f0*f10; - f2 = f2*f14; - f6 = f24+f28; - heapFloat[(r9+5)] = f7; - heapFloat[(r9+6)] = f6; - f4 = f4*f10; - f5 = f5*f14; - f0 = f0+f2; - f2 = f8*f19; - f6 = f11*f10; - f7 = f15*f14; - f4 = f4+f5; - f5 = f18*f19; - f0 = f0+f2; - heap32[(r9+7)] = 0; - f1 = f1*f13; - f2 = f3*f17; - f3 = f6+f7; - f6 = f20*f19; - f4 = f4+f5; - heapFloat[(r9+8)] = f0; - f0 = f12*f13; - f5 = f16*f17; - f1 = f1+f2; - f2 = f9*f22; - f3 = f3+f6; - heapFloat[(r9+9)] = f4; - f1 = f1+f2; - heapFloat[(r9+10)] = f3; - f2 = f10*f13; - f3 = f14*f17; - f0 = f0+f5; - f4 = f21*f22; - f0 = f0+f4; - f2 = f2+f3; - f3 = f19*f22; - f1 = f1+f27; - heap32[(r9+11)] = 0; - f2 = f2+f3; - f0 = f0+f26; - heapFloat[(r9+12)] = f1; - f1 = f2+f25; - heapFloat[(r9+13)] = f0; - heapFloat[(r9+14)] = f1; - r10 = r6 >> 2; - heap32[(r9+15)] = 0; - r9 = sp + -1088; - r11 = heap32[(r10+48)]; - r12 = r9 >> 2; - heap32[(r10+48)] = r1; - r13 = 1; - heap32[(r12+2)] = 0; - r14 = -1; - heap16[(sp+-1076)>>1] = r13; - heap16[(sp+-1074)>>1] = r14; - r13 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2; - heap32[(r12+4)] = 0; - r13 = (r13 + 8)|0; - heap32[(fp+-272)] = r13; - heap32[(r12+5)] = r8; - r14 = r8 >> 2; - heap32[(r12+6)] = r0; - heap32[(r12+1)] = heap32[(r14+1)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r1; - heap32[(g0+4)] = r2; - heap32[(g0+5)] = r9; - _ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(i7); - r0 = (r0 + 1)|0; - heap32[(r10+48)] = r11; - heap32[(fp+-272)] = r13; - r1 = heap32[(r3+4)]; -if(!(r1 >r0)) //_LBB248_28 -{ -break _8; -} -} -} -} - return; -} -else{ - if(r1 !=21) //_LBB248_12 -{ - r1 = r7 >> 2; - r4 = r4 >> 2; - f0 = heapFloat[(r1+12)]; - f1 = heapFloat[(r1+13)]; - f2 = heapFloat[(r1+4)]; - f3 = heapFloat[(r4+13)]; - f4 = heapFloat[(r1)]; - f5 = -f0; - f6 = heapFloat[(r4+12)]; - f7 = heapFloat[(r1+5)]; - f8 = heapFloat[(r1+1)]; - f9 = f4*f6; - f10 = f2*f3; - f11 = f4*f5; - f12 = f2*f1; - f13 = heapFloat[(r1+14)]; - f14 = heapFloat[(r1+8)]; - f15 = heapFloat[(r4+14)]; - r4 = r5 >> 2; - f16 = heapFloat[(r1+9)]; - f17 = heapFloat[(r1+6)]; - f18 = heapFloat[(r1+2)]; - r5 = r8 >> 2; - f9 = f9+f10; - f10 = f14*f15; - f11 = f11-f12; - f12 = f14*f13; - f19 = f8*f6; - f20 = f7*f3; - f21 = f8*f5; - f22 = f7*f1; - f23 = heapFloat[(r4+12)]; - f24 = heapFloat[(r4+13)]; - f25 = heapFloat[(r1+10)]; - f26 = heapFloat[(r4+14)]; - r4 = sp + -960; - r7 = heap32[(r5+4)]; - f9 = f9+f10; - f10 = f11-f12; - f6 = f18*f6; - f3 = f17*f3; - f11 = f19+f20; - f12 = f16*f15; - f5 = f18*f5; - f19 = f17*f1; - f20 = f21-f22; - f21 = f16*f13; - f9 = f9+f10; - f3 = f6+f3; - f6 = f25*f15; - f11 = f11+f12; - f12 = f20-f21; - r0 = r4 >> 2; - f5 = f5-f19; - f15 = f25*f13; - f11 = f11+f12; - heapFloat[(r0+1)] = f9; - f19 = f4*f23; - f20 = f2*f24; - f3 = f3+f6; - f5 = f5-f15; - f3 = f3+f5; - heapFloat[(r0+2)] = f11; - f6 = f19+f20; - f15 = f14*f26; - f19 = f8*f23; - f20 = f7*f24; - f6 = f6+f15; - heapFloat[(r0+3)] = f3; - f15 = f18*f23; - f21 = f17*f24; - f19 = f19+f20; - f20 = f16*f26; - f6 = f6+f10; - f10 = f19+f20; - heap32[(r0+4)] = 0; - f15 = f15+f21; - f19 = f25*f26; - f15 = f15+f19; - f10 = f10+f12; - heapFloat[(r0+5)] = f6; - f5 = f15+f5; - heapFloat[(r0+6)] = f10; - heapFloat[(r0+7)] = f5; - r9 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0; - heap32[(r0+8)] = 0; - r9 = (r9 + 8)|0; - heap32[(r0+9)] = r7; - heap32[(fp+-240)] = r9; - heap32[(r0+11)] = r8; - heap32[(r0+12)] = r6; - heap32[(r0+13)] = r2; - heapFloat[(r0+14)] = f4; - heapFloat[(r0+15)] = f8; - heapFloat[(r0+16)] = f18; - heap32[(r0+17)] = heap32[(r1+3)]; - heapFloat[(r0+18)] = f2; - heapFloat[(r0+19)] = f7; - heapFloat[(r0+20)] = f17; - heap32[(r0+21)] = heap32[(r1+7)]; - heapFloat[(r0+22)] = f14; - heapFloat[(r0+23)] = f16; - heapFloat[(r0+24)] = f25; - heap32[(r0+25)] = heap32[(r1+11)]; - heapFloat[(r0+26)] = f0; - heapFloat[(r0+27)] = f1; - heapFloat[(r0+28)] = f13; - heap32[(r0+29)] = heap32[(r1+15)]; - r1 = sp + -976; - heap32[(r0+10)] = heap32[(r5+1)]; - r5 = r1 >> 2; - heapFloat[(fp+-244)] = f9; - heapFloat[(r5+1)] = f11; - heapFloat[(r5+2)] = f3; - heap32[(r5+3)] = 0; -if(!(f6 >=f9)) //_LBB248_14 -{ - heapFloat[(fp+-244)] = f6; -} -if(!(f10 >=f11)) //_LBB248_16 -{ - heapFloat[(r5+1)] = f10; -} -if(!(f5 >=f3)) //_LBB248_18 -{ - heapFloat[(r5+2)] = f5; -} - r5 = sp + -992; - r6 = r5 >> 2; - heapFloat[(fp+-248)] = f9; - heapFloat[(r6+1)] = f11; - heapFloat[(r6+2)] = f3; - heap32[(r6+3)] = 0; -if(!(f9 >=f6)) //_LBB248_20 -{ - heapFloat[(fp+-248)] = f6; -} -if(!(f11 >=f10)) //_LBB248_22 -{ - heapFloat[(r6+1)] = f10; -} -if(!(f3 >=f5)) //_LBB248_24 -{ - heapFloat[(r6+2)] = f5; -} - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+15)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r5; - r1 = _ZTV18btTriangleCallback; - r1 = (r1 + 8)|0; - __FUNCTION_TABLE__[(r3)>>2](i7); - heap32[(fp+-240)] = r1; - return; -} -else{ - r1 = r7 >> 2; - r4 = r4 >> 2; - f0 = heapFloat[(r1+12)]; - f1 = heapFloat[(r1+13)]; - f2 = heapFloat[(r1+4)]; - f3 = heapFloat[(r4+13)]; - f4 = heapFloat[(r1)]; - f5 = heapFloat[(r4+12)]; - f6 = -f0; - f7 = heapFloat[(r1+5)]; - f8 = heapFloat[(r1+1)]; - f9 = heapFloat[(r1+14)]; - f10 = heapFloat[(r1+8)]; - f11 = heapFloat[(r4+14)]; - f12 = f4*f5; - f13 = f2*f3; - f14 = f4*f6; - f15 = f2*f1; - f16 = heapFloat[(r1+9)]; - f17 = heapFloat[(r1+6)]; - f18 = heapFloat[(r1+2)]; - f19 = f8*f5; - f20 = f7*f3; - f21 = f8*f6; - f22 = f7*f1; - f12 = f12+f13; - f13 = f10*f11; - f14 = f14-f15; - f15 = f10*f9; - f23 = heapFloat[(r1+10)]; - f5 = f18*f5; - f3 = f17*f3; - f6 = f18*f6; - f24 = f17*f1; - f19 = f19+f20; - f20 = f16*f11; - f21 = f21-f22; - f22 = f16*f9; - f12 = f12+f13; - f13 = f14-f15; - r4 = sp + -704; - f12 = f12+f13; - f3 = f5+f3; - f5 = f23*f11; - f6 = f6-f24; - f11 = f23*f9; - f14 = f19+f20; - f15 = f21-f22; - r7 = r4 >> 2; - heapFloat[(fp+-176)] = f12; - f14 = f14+f15; - f3 = f3+f5; - f5 = f6-f11; - heapFloat[(r7+1)] = f14; - f3 = f3+f5; - heapFloat[(r7+2)] = f3; - r5 = r5 >> 2; - heap32[(r7+3)] = 0; - f6 = heapFloat[(r5+12)]; - f11 = heapFloat[(r5+13)]; - f19 = heapFloat[(r5+14)]; - f20 = f4*f6; - f21 = f2*f11; - f22 = f8*f6; - f24 = f7*f11; - f20 = f20+f21; - f21 = f10*f19; - f20 = f20+f21; - f6 = f18*f6; - f11 = f17*f11; - f21 = f22+f24; - f22 = f16*f19; - r5 = sp + -720; - f21 = f21+f22; - f13 = f20+f13; - f6 = f6+f11; - f11 = f23*f19; - f6 = f6+f11; - r7 = r5 >> 2; - heapFloat[(fp+-180)] = f13; - f11 = f21+f15; - heapFloat[(r7+1)] = f11; - f5 = f6+f5; - heapFloat[(r7+2)] = f5; - r0 = sp + -840; - r9 = r8 >> 2; - heap32[(r7+3)] = 0; - r7 = r0 >> 2; - r10 = heap32[(r9+4)]; - heapFloat[(r7+1)] = f12; - heapFloat[(r7+2)] = f14; - heapFloat[(r7+3)] = f3; - heap32[(r7+4)] = 0; - heapFloat[(r7+5)] = f13; - heapFloat[(r7+6)] = f11; - heapFloat[(r7+7)] = f5; - r11 = _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback; - heap32[(r7+8)] = 0; - r11 = (r11 + 8)|0; - heap32[(r7+9)] = r10; - heap32[(fp+-210)] = r11; - heap32[(r7+11)] = r8; - heap32[(r7+12)] = r6; - heap32[(r7+13)] = r2; - heapFloat[(r7+14)] = f4; - heapFloat[(r7+15)] = f8; - heapFloat[(r7+16)] = f18; - heap32[(r7+17)] = heap32[(r1+3)]; - heapFloat[(r7+18)] = f2; - heapFloat[(r7+19)] = f7; - heapFloat[(r7+20)] = f17; - heap32[(r7+21)] = heap32[(r1+7)]; - heapFloat[(r7+22)] = f10; - heapFloat[(r7+23)] = f16; - heapFloat[(r7+24)] = f23; - heap32[(r7+25)] = heap32[(r1+11)]; - heapFloat[(r7+26)] = f0; - heapFloat[(r7+27)] = f1; - heapFloat[(r7+28)] = f9; - heap32[(r7+29)] = heap32[(r1+15)]; - r1 = _ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback; - heap32[(r7+10)] = heap32[(r9+1)]; - r2 = sp + -48; - r6 = heap32[(r3+12)]; - r1 = (r1 + 8)|0; - r7 = r2 >> 2; - heap32[(fp+-12)] = r1; - heap32[(r7+1)] = r6; - heap32[(r7+2)] = r0; - r1 = heap32[(r3+13)]; - r3 = sp + -32; - r6 = r3 >> 2; - heap32[(fp+-8)] = 0; - heap32[(r6+1)] = 0; - heap32[(r6+2)] = 0; - r7 = sp + -16; - heap32[(r6+3)] = 0; - r6 = r7 >> 2; - heap32[(fp+-4)] = 0; - heap32[(r6+1)] = 0; - heap32[(r6+2)] = 0; - heap32[(r6+3)] = 0; - r6 = heapU8[r1+60]; - if(r6 ==0) //_LBB248_10 -{ - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - heap32[(g0+4)] = r7; - heap32[(g0+5)] = r3; - _ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7); -} -else{ - r6 = r1 >> 2; - r6 = heap32[(r6+14)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - heap32[(g0+4)] = r7; - heap32[(g0+5)] = r3; - heap32[(g0+6)] = r6; - _ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i7); -} - r1 = _ZTV18btTriangleCallback; - r1 = (r1 + 8)|0; - heap32[(fp+-210)] = r1; - return; -} -} -} -else{ - r1 = _ZTVN12btConvexCast10CastResultE; - r3 = sp + -280; - r1 = (r1 + 8)|0; - r9 = r3 >> 2; - heap32[(fp+-70)] = r1; - heap32[(r9+42)] = 0; - r1 = sp + -640; - r10 = r8 >> 2; - heap32[(r9+43)] = 0; - r11 = r1 >> 2; - heap32[(r9+41)] = heap32[(r10+1)]; - r12 = _ZTV22btSubsimplexConvexCast; - r13 = 0; - heap32[(r11+77)] = 953267991; - r11 = sp + -656; - r12 = (r12 + 8)|0; - heap8[sp+-308] = r13; - r13 = r11 >> 2; - heap32[(fp+-164)] = r12; - heap32[(r13+1)] = r1; - heap32[(r13+2)] = r0; - heap32[(r13+3)] = r2; - heap32[(g0)] = r11; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = r7; - heap32[(g0+5)] = r3; - _ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7); - r1 = r_g0; -if(!(r1 ==0)) //_LBB248_5 -{ - f0 = heapFloat[(r9+33)]; - f1 = heapFloat[(r9+34)]; - f2 = heapFloat[(r9+35)]; - f3 = f0*f0; - f4 = f1*f1; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - f4 = 9.9999997473787516e-005; -if(!(f3 <=f4)) //_LBB248_5 -{ - f3 = heapFloat[(r9+41)]; - f4 = heapFloat[(r10+1)]; -if(!(f3 >=f4)) //_LBB248_5 -{ - r1 = r4 >> 2; - f4 = heapFloat[(r1+4)]; - f5 = heapFloat[(r1)]; - f6 = heapFloat[(r1+5)]; - f7 = heapFloat[(r1+1)]; - f8 = heapFloat[(r1+8)]; - f9 = heapFloat[(r1+9)]; - f4 = f4*f0; - f6 = f6*f1; - f10 = heapFloat[(r1+6)]; - f11 = heapFloat[(r1+2)]; - f5 = f5*f0; - f7 = f7*f1; - f12 = heapFloat[(r1+10)]; - f0 = f8*f0; - f1 = f9*f1; - f4 = f4+f6; - f6 = f10*f2; - f5 = f5+f7; - f7 = f11*f2; - f4 = f4+f6; - f5 = f5+f7; - f0 = f0+f1; - f1 = f12*f2; - f0 = f0+f1; - f1 = f5*f5; - f2 = f4*f4; - heap32[(r9+36)] = 0; - f1 = f1+f2; - f2 = f0*f0; - f1 = f1+f2; - heapFloat[(g0)] = f1; - f1 = 1; - sqrtf(i7); - f1 = f1/f_g0; - f2 = f5*f1; - f4 = f4*f1; - heapFloat[(r9+33)] = f2; - f0 = f0*f1; - heapFloat[(r9+34)] = f4; - r1 = sp + -688; - heapFloat[(r9+35)] = f0; - r2 = r1 >> 2; - heap32[(fp+-172)] = r6; - heap32[(r2+1)] = 0; - heapFloat[(r2+2)] = f2; - heapFloat[(r2+3)] = f4; - heapFloat[(r2+4)] = f0; - heap32[(r2+5)] = 0; - heapFloat[(r2+6)] = f3; - r2 = heap32[(r10)]; - r2 = r2 >> 2; - r2 = heap32[(r2+3)]; - heap32[(g0)] = r8; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r2)>>2](i7); -} -} -} - r1 = _ZTV12btConvexCast; - r1 = (r1 + 8)|0; - heap32[(fp+-164)] = r1; - return; -} -} - -function _ZN22btCompoundLeafCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV22btCompoundLeafCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN22btCompoundLeafCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV22btCompoundLeafCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + -136;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+1)]; - r3 = heap32[(fp+1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+48)]; - r4 = r3 >> 2; - r4 = heap32[(r4+9)]; - r2 = r2 >> 2; - r2 = heap32[(r2+6)]; - r5 = (r4 * 80)|0; - r6 = heap32[(r1+4)]; - r2 = (r2 + r5)|0; - r5 = r6 >> 2; - r2 = r2 >> 2; - r5 = heap32[(r5+5)]; - r2 = heap32[(r2+16)]; -if(!(r5 ==0)) //_LBB251_3 -{ - r6 = r5 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+12)]; - heap32[(g0)] = r5; - __FUNCTION_TABLE__[(r6)>>2](i7); - r5 = r_g0 & 2; -if(!(r5 ==0)) //_LBB251_3 -{ - r5 = heap32[(r1+1)]; - r6 = sp + -112; - r5 = r5 >> 2; - r7 = r6 >> 2; - heap32[(fp+-28)] = heap32[(r5+1)]; - heap32[(r7+1)] = heap32[(r5+2)]; - heap32[(r7+2)] = heap32[(r5+3)]; - heap32[(r7+3)] = heap32[(r5+4)]; - heap32[(r7+4)] = heap32[(r5+5)]; - heap32[(r7+5)] = heap32[(r5+6)]; - heap32[(r7+6)] = heap32[(r5+7)]; - heap32[(r7+7)] = heap32[(r5+8)]; - heap32[(r7+8)] = heap32[(r5+9)]; - heap32[(r7+9)] = heap32[(r5+10)]; - heap32[(r7+10)] = heap32[(r5+11)]; - heap32[(r7+11)] = heap32[(r5+12)]; - heap32[(r7+12)] = heap32[(r5+13)]; - heap32[(r7+13)] = heap32[(r5+14)]; - heap32[(r7+14)] = heap32[(r5+15)]; - heap32[(r7+15)] = heap32[(r5+16)]; - r5 = (r3 + 16)|0; - r7 = sp + -32; - r8 = sp + -48; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = 0; - heap32[(g0+3)] = r6; - heap32[(g0+4)] = r7; - heap32[(g0+5)] = r8; - _Z15btTransformAabbRK9btVector3S1_fRK11btTransformRS_S5_(i7); - r1 = heap32[(r1+4)]; - r1 = r1 >> 2; - r3 = heap32[(r1+5)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+13)]; - r5 = sp + -16; - r6 = r5 >> 2; - heap32[(fp+-4)] = 1065353216; - heap32[(r6+1)] = 0; - heap32[(r6+2)] = 0; - heap32[(r6+3)] = 0; - r1 = heap32[(r1+5)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r5; - __FUNCTION_TABLE__[(r3)>>2](i7); -} -} - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r4; - _ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i7); - return; -} - -function _ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+3)]; -if(!(r1 <1)) //_LBB252_5 -{ - r1 = heap32[(fp+1)]; - r2 = 0; -_3: while(true){ - r3 = heap32[(r0+5)]; - r4 = r2 << 2; - r3 = (r3 + r4)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; -if(!(r3 ==0)) //_LBB252_4 -{ - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r1; - __FUNCTION_TABLE__[(r4)>>2](i7); -} - r2 = (r2 + 1)|0; - r3 = heap32[(r0+3)]; - if(r3 >r2) //_LBB252_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - return; -} - -function _ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+28]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r4 = r1 == 0 ? r2 : r3; - r5 = r4 >> 2; - r6 = heap32[(r5+48)]; - r7 = r6 >> 2; - r8 = heap32[(r7+1)]; - if(r8 ==31) //_LBB253_2 -{ - r0 = r0 >> 2; - r8 = heap32[(r0+3)]; -_3: do { - if(r8 >0) //_LBB253_4 -{ - r9 = heap32[(fp+3)]; - r10 = heap32[(fp+4)]; - r1 = r1 == 0 ? r3 : r2; - r2 = 0; - f0 = 1; -_5: while(true){ - r3 = (r2 * 20)|0; - r11 = heap32[(r7+6)]; - r3 = r3 << 2; - r3 = (r11 + r3)|0; - r3 = r3 >> 2; - f1 = heapFloat[(r3)]; - f2 = heapFloat[(r5+1)]; - f3 = heapFloat[(r3+4)]; - f4 = heapFloat[(r5+2)]; - f5 = heapFloat[(r3+1)]; - f6 = heapFloat[(r3+5)]; - f7 = f1*f2; - f8 = f3*f4; - f9 = heapFloat[(r3+8)]; - f10 = heapFloat[(r5+3)]; - f11 = heapFloat[(r5+10)]; - f12 = heapFloat[(r3+13)]; - f13 = heapFloat[(r5+6)]; - f14 = heapFloat[(r3+6)]; - f15 = heapFloat[(r5+9)]; - f16 = heapFloat[(r3+12)]; - f17 = heapFloat[(r5+5)]; - f18 = heapFloat[(r3+2)]; - f19 = heapFloat[(r3+14)]; - f20 = heapFloat[(r5+11)]; - f21 = heapFloat[(r3+10)]; - f22 = heapFloat[(r5+7)]; - f23 = heapFloat[(r3+9)]; - r3 = heap32[(r3+16)]; - f24 = f5*f2; - f25 = f6*f4; - f7 = f7+f8; - f8 = f9*f10; - f26 = heapFloat[(r5+16)]; - heapFloat[(fp+-1)] = f26; - f27 = heapFloat[(r5+15)]; - f28 = heapFloat[(r5+14)]; - f29 = heapFloat[(r5+13)]; - f26 = heapFloat[(r5+12)]; - heapFloat[(fp+-2)] = f26; - f26 = heapFloat[(r5+8)]; - heapFloat[(fp+-3)] = f26; - f26 = heapFloat[(r5+4)]; - heapFloat[(fp+-4)] = f26; - f30 = f18*f2; - f26 = f14*f4; - f24 = f24+f25; - f25 = f23*f10; - f7 = f7+f8; - f8 = f30+f26; - f26 = f21*f10; - f24 = f24+f25; - heapFloat[(r5+1)] = f7; - f7 = f1*f17; - f25 = f3*f13; - f8 = f8+f26; - heapFloat[(r5+2)] = f24; - heapFloat[(r5+3)] = f8; - f8 = f5*f17; - f24 = f6*f13; - f7 = f7+f25; - f25 = f9*f22; - f26 = f18*f17; - f30 = f14*f13; - f8 = f8+f24; - f24 = f23*f22; - f7 = f7+f25; - heap32[(r5+4)] = 0; - f25 = f26+f30; - f26 = f21*f22; - f8 = f8+f24; - heapFloat[(r5+5)] = f7; - f1 = f1*f15; - f3 = f3*f11; - f7 = f25+f26; - heapFloat[(r5+6)] = f8; - heapFloat[(r5+7)] = f7; - f5 = f5*f15; - f6 = f6*f11; - f1 = f1+f3; - f3 = f9*f20; - f7 = f18*f15; - f8 = f14*f11; - f5 = f5+f6; - f6 = f23*f20; - f1 = f1+f3; - heap32[(r5+8)] = 0; - f3 = f2*f16; - f9 = f4*f12; - f7 = f7+f8; - f8 = f21*f20; - f5 = f5+f6; - heapFloat[(r5+9)] = f1; - f1 = f17*f16; - f6 = f13*f12; - f3 = f3+f9; - f9 = f10*f19; - f7 = f7+f8; - heapFloat[(r5+10)] = f5; - f3 = f3+f9; - heapFloat[(r5+11)] = f7; - f5 = f15*f16; - f7 = f11*f12; - f1 = f1+f6; - f6 = f22*f19; - f1 = f1+f6; - f5 = f5+f7; - f6 = f20*f19; - f3 = f3+f29; - heap32[(r5+12)] = 0; - f5 = f5+f6; - f1 = f1+f28; - heapFloat[(r5+13)] = f3; - f3 = f5+f27; - heapFloat[(r5+14)] = f1; - heapFloat[(r5+15)] = f3; - heap32[(r5+16)] = 0; - heap32[(r5+48)] = r3; - r3 = heap32[(r0+5)]; - r11 = r2 << 2; - r3 = (r3 + r11)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r11 = r3 >> 2; - r11 = heap32[(r11)]; - r11 = r11 >> 2; - r11 = heap32[(r11+3)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r9; - heap32[(g0+4)] = r10; - __FUNCTION_TABLE__[(r11)>>2](i7); - heap32[(r5+48)] = r6; - heapFloat[(r5+1)] = f2; - heapFloat[(r5+2)] = f4; - heapFloat[(r5+3)] = f10; - f26 = heapFloat[(fp+-4)]; - heapFloat[(r5+4)] = f26; - heapFloat[(r5+5)] = f17; - heapFloat[(r5+6)] = f13; - heapFloat[(r5+7)] = f22; - f26 = heapFloat[(fp+-3)]; - heapFloat[(r5+8)] = f26; - heapFloat[(r5+9)] = f15; - heapFloat[(r5+10)] = f11; - heapFloat[(r5+11)] = f20; - f26 = heapFloat[(fp+-2)]; - heapFloat[(r5+12)] = f26; - heapFloat[(r5+13)] = f29; - heapFloat[(r5+14)] = f28; - r2 = (r2 + 1)|0; - f0 = f_g0 < f0 ? f_g0 : f0; - heapFloat[(r5+15)] = f27; - f26 = heapFloat[(fp+-1)]; - heapFloat[(r5+16)] = f26; -if(!(r8 !=r2)) //_LBB253_5 -{ -break _3; -} -} -} -else{ - f0 = 1; -} -} while(0); - f_g0 = f0; - return; -} -else{ - r0 = _2E_str99; - r1 = _2E_str1100; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 308; - _assert(i7); -} -} - -function _Z15btTransformAabbRK9btVector3S1_fRK11btTransformRS_S5_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - f0 = heapFloat[(r0)]; - f1 = heapFloat[(r1)]; - if(f0 <=f1) //_LBB254_2 -{ - f2 = heapFloat[(r0+1)]; - f3 = heapFloat[(r1+1)]; - if(f2 <=f3) //_LBB254_4 -{ - f4 = heapFloat[(r0+2)]; - f5 = heapFloat[(r1+2)]; - if(f4 <=f5) //_LBB254_6 -{ - f6 = heapFloat[(fp+2)]; - r0 = heap32[(fp+3)]; - r1 = heap32[(fp+4)]; - r2 = heap32[(fp+5)]; - f7 = f1-f0; - f8 = 0.5; - f9 = f3-f2; - f10 = f5-f4; - r0 = r0 >> 2; - f4 = f5+f4; - f2 = f3+f2; - f0 = f1+f0; - f1 = f7*f8; - f3 = f9*f8; - f5 = f10*f8; - f7 = heapFloat[(r0+10)]; - f1 = f1+f6; - f3 = f3+f6; - f5 = f5+f6; - f4 = f4*f8; - f2 = f2*f8; - f0 = f0*f8; - f6 = 0; - if(f7 > 2; - f1 = f1+f3; - f2 = f8*f5; - f3 = f4+f7; - f4 = f10+f11; - f5 = f12-f6; - f0 = f0+f9; - f1 = f1+f2; - f2 = f3-f4; - heapFloat[(r0)] = f5; - f5 = f0-f1; - heapFloat[(r0+1)] = f2; - heapFloat[(r0+2)] = f5; - r1 = r2 >> 2; - f2 = f12+f6; - heap32[(r0+3)] = 0; - f3 = f3+f4; - heapFloat[(r1)] = f2; - f0 = f0+f1; - heapFloat[(r1+1)] = f3; - heapFloat[(r1+2)] = f0; - heap32[(r1+3)] = 0; - return; -} -else{ - r0 = _2E_str5104; - r1 = _2E_str3102; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 199; - _assert(i7); -} -} -else{ - r0 = _2E_str4103; - r1 = _2E_str3102; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 198; - _assert(i7); -} -} -else{ - r0 = _2E_str2101; - r1 = _2E_str3102; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 197; - _assert(i7); -} -} - -function _ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -264;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - if(r0 >-1) //_LBB255_2 -{ - r1 = heap32[(fp)]; - r1 = r1 >> 2; - r2 = heap32[(r1+1)]; - r2 = r2 >> 2; - r3 = heap32[(r2+48)]; - r3 = r3 >> 2; - r4 = heap32[(r3+4)]; - if(r4 >r0) //_LBB255_4 -{ - r4 = heap32[(fp+1)]; - r3 = heap32[(r3+6)]; - r5 = (r0 * 80)|0; - r3 = (r3 + r5)|0; - r3 = r3 >> 2; - f0 = heapFloat[(r2+1)]; - f1 = heapFloat[(r3)]; - f2 = heapFloat[(r2+2)]; - f3 = heapFloat[(r3+4)]; - f4 = heapFloat[(r3+1)]; - f5 = heapFloat[(r3+5)]; - f6 = heapFloat[(r2+3)]; - f7 = heapFloat[(r3+8)]; - f8 = f1*f0; - f9 = f3*f2; - f10 = heapFloat[(r2+5)]; - f11 = heapFloat[(r2+6)]; - f12 = heapFloat[(r2+9)]; - f13 = heapFloat[(r3+12)]; - f14 = heapFloat[(r3+2)]; - f15 = heapFloat[(r2+10)]; - f16 = heapFloat[(r3+13)]; - f17 = heapFloat[(r3+6)]; - f18 = heapFloat[(r2+7)]; - f19 = heapFloat[(r3+14)]; - f20 = heapFloat[(r2+11)]; - f21 = heapFloat[(r3+10)]; - f22 = heapFloat[(r3+9)]; - f23 = heapFloat[(r2+4)]; - f24 = heapFloat[(r2+8)]; - heapFloat[(fp+-59)] = f24; - f24 = heapFloat[(r2+12)]; - heapFloat[(fp+-57)] = f24; - f24 = heapFloat[(r2+13)]; - f25 = heapFloat[(r2+14)]; - f26 = heapFloat[(r2+15)]; - f27 = heapFloat[(r2+16)]; - heapFloat[(fp+-58)] = f27; - f27 = heapFloat[(r2+17)]; - heapFloat[(fp+-42)] = f27; - f27 = heapFloat[(r2+18)]; - heapFloat[(fp+-41)] = f27; - f27 = heapFloat[(r2+19)]; - heapFloat[(fp+-44)] = f27; - f27 = heapFloat[(r2+20)]; - heapFloat[(fp+-43)] = f27; - f27 = heapFloat[(r2+21)]; - heapFloat[(fp+-46)] = f27; - f27 = heapFloat[(r2+22)]; - heapFloat[(fp+-45)] = f27; - f27 = heapFloat[(r2+23)]; - heapFloat[(fp+-48)] = f27; - f27 = heapFloat[(r2+24)]; - heapFloat[(fp+-47)] = f27; - f27 = heapFloat[(r2+25)]; - heapFloat[(fp+-50)] = f27; - f27 = heapFloat[(r2+26)]; - heapFloat[(fp+-49)] = f27; - f27 = heapFloat[(r2+27)]; - heapFloat[(fp+-52)] = f27; - f27 = heapFloat[(r2+28)]; - heapFloat[(fp+-51)] = f27; - f27 = heapFloat[(r2+29)]; - heapFloat[(fp+-54)] = f27; - f27 = heapFloat[(r2+30)]; - heapFloat[(fp+-53)] = f27; - f27 = heapFloat[(r2+31)]; - heapFloat[(fp+-56)] = f27; - f27 = heapFloat[(r2+32)]; - heapFloat[(fp+-55)] = f27; - f27 = f4*f0; - f28 = f5*f2; - f8 = f8+f9; - f9 = f7*f6; - r2 = sp + -96; - f29 = f14*f0; - f30 = f17*f2; - f27 = f27+f28; - f28 = f22*f6; - f8 = f8+f9; - r3 = r2 >> 2; - f9 = f29+f30; - f29 = f21*f6; - f27 = f27+f28; - heapFloat[(fp+-24)] = f8; - f8 = f1*f10; - f28 = f3*f11; - f9 = f9+f29; - heapFloat[(r3+1)] = f27; - heapFloat[(r3+2)] = f9; - f9 = f4*f10; - f27 = f5*f11; - f8 = f8+f28; - f28 = f7*f18; - f29 = f14*f10; - f30 = f17*f11; - f9 = f9+f27; - f27 = f22*f18; - f8 = f8+f28; - heap32[(r3+3)] = 0; - f28 = f29+f30; - f29 = f21*f18; - f9 = f9+f27; - heapFloat[(r3+4)] = f8; - f1 = f1*f12; - f3 = f3*f15; - f8 = f28+f29; - heapFloat[(r3+5)] = f9; - heapFloat[(r3+6)] = f8; - f4 = f4*f12; - f5 = f5*f15; - f1 = f1+f3; - f3 = f7*f20; - f7 = f14*f12; - f8 = f17*f15; - f4 = f4+f5; - f5 = f22*f20; - f1 = f1+f3; - heap32[(r3+7)] = 0; - f3 = f0*f13; - f9 = f2*f16; - f7 = f7+f8; - f8 = f21*f20; - f4 = f4+f5; - heapFloat[(r3+8)] = f1; - f1 = f10*f13; - f5 = f11*f16; - f3 = f3+f9; - f9 = f6*f19; - f7 = f7+f8; - heapFloat[(r3+9)] = f4; - f3 = f3+f9; - heapFloat[(r3+10)] = f7; - f4 = f12*f13; - f7 = f15*f16; - f1 = f1+f5; - f5 = f18*f19; - f1 = f1+f5; - f4 = f4+f7; - f5 = f20*f19; - f3 = f3+f24; - heap32[(r3+11)] = 0; - f4 = f4+f5; - f1 = f1+f25; - heapFloat[(r3+12)] = f3; - f3 = f4+f26; - heapFloat[(r3+13)] = f1; - heapFloat[(r3+14)] = f3; - r5 = r4 >> 2; - heap32[(r3+15)] = 0; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+2)]; - r6 = sp + -112; - r7 = sp + -128; - heap32[(g0)] = r4; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r7; - __FUNCTION_TABLE__[(r5)>>2](i7); - r2 = heap32[(r1+2)]; - r5 = r2 >> 2; - r5 = heap32[(r5+48)]; - r8 = r5 >> 2; - r8 = heap32[(r8)]; - r8 = r8 >> 2; - r8 = heap32[(r8+2)]; - r2 = (r2 + 4)|0; - r9 = sp + -144; - r10 = sp + -160; - heap32[(g0)] = r5; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r10; - __FUNCTION_TABLE__[(r8)>>2](i7); - f1 = heapFloat[(fp+-28)]; - f3 = heapFloat[(fp+-40)]; - if(f1 >f3) //_LBB255_7 -{ -__label__ = 7; -} -else{ - f1 = heapFloat[(fp+-32)]; - f3 = heapFloat[(fp+-36)]; - if(f1 > 2; - r8 = r10 >> 2; - f1 = heapFloat[(r5+2)]; - f3 = heapFloat[(r8+2)]; - if(f1 >f3) //_LBB255_11 -{ -__label__ = 10; -} -else{ - r11 = r7 >> 2; - r12 = r9 >> 2; - f1 = heapFloat[(r11+2)]; - f3 = heapFloat[(r12+2)]; - if(f1 f3)) //_LBB255_24 -{ - r5 = r7 >> 2; - r8 = r9 >> 2; - f1 = heapFloat[(r5+1)]; - f3 = heapFloat[(r8+1)]; -if(!(f1 > 2; - heap32[(r2+1)] = heap32[(fp+-24)]; - heap32[(r2+2)] = heap32[(r3+1)]; - heap32[(r2+3)] = heap32[(r3+2)]; - heap32[(r2+4)] = heap32[(r3+3)]; - heap32[(r2+5)] = heap32[(r3+4)]; - heap32[(r2+6)] = heap32[(r3+5)]; - heap32[(r2+7)] = heap32[(r3+6)]; - heap32[(r2+8)] = heap32[(r3+7)]; - heap32[(r2+9)] = heap32[(r3+8)]; - heap32[(r2+10)] = heap32[(r3+9)]; - heap32[(r2+11)] = heap32[(r3+10)]; - heap32[(r2+12)] = heap32[(r3+11)]; - heap32[(r2+13)] = heap32[(r3+12)]; - heap32[(r2+14)] = heap32[(r3+13)]; - heap32[(r2+15)] = heap32[(r3+14)]; - heap32[(r2+16)] = heap32[(r3+15)]; - r2 = heap32[(r1+1)]; - r2 = r2 >> 2; - heap32[(r2+17)] = heap32[(fp+-24)]; - heap32[(r2+18)] = heap32[(r3+1)]; - heap32[(r2+19)] = heap32[(r3+2)]; - heap32[(r2+20)] = heap32[(r3+3)]; - heap32[(r2+21)] = heap32[(r3+4)]; - heap32[(r2+22)] = heap32[(r3+5)]; - heap32[(r2+23)] = heap32[(r3+6)]; - heap32[(r2+24)] = heap32[(r3+7)]; - heap32[(r2+25)] = heap32[(r3+8)]; - heap32[(r2+26)] = heap32[(r3+9)]; - heap32[(r2+27)] = heap32[(r3+10)]; - heap32[(r2+28)] = heap32[(r3+11)]; - heap32[(r2+29)] = heap32[(r3+12)]; - heap32[(r2+30)] = heap32[(r3+13)]; - heap32[(r2+31)] = heap32[(r3+14)]; - heap32[(r2+32)] = heap32[(r3+15)]; - r2 = heap32[(r1+1)]; - r2 = r2 >> 2; - r3 = heap32[(r2+48)]; - heap32[(r2+48)] = r4; - r2 = heap32[(r1+6)]; - r4 = r0 << 2; - r2 = (r2 + r4)|0; - r2 = r2 >> 2; - r5 = heap32[(r2)]; -if(!(r5 !=0)) //_LBB255_17 -{ - r5 = heap32[(r1+3)]; - r8 = r5 >> 2; - r8 = heap32[(r8)]; - r8 = r8 >> 2; - r8 = heap32[(r8+2)]; - r11 = heap32[(r1+7)]; - r12 = heap32[(r1+2)]; - r13 = heap32[(r1+1)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r13; - heap32[(g0+2)] = r12; - heap32[(g0+3)] = r11; - __FUNCTION_TABLE__[(r8)>>2](i7); - heap32[(r2)] = r_g0; -} - r2 = heap32[(r1+5)]; - r5 = r2 >> 2; - r8 = heap32[(r5)]; - r5 = heap32[(r5+34)]; - r11 = heap32[(r1+1)]; - if(r5 !=r11) //_LBB255_19 -{ - r5 = r8 >> 2; - r5 = heap32[(r5+3)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = -1; - heap32[(g0+2)] = r0; - __FUNCTION_TABLE__[(r5)>>2](i7); -} -else{ - r8 = r8 >> 2; - r8 = heap32[(r8+2)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = -1; - heap32[(g0+2)] = r0; - __FUNCTION_TABLE__[(r8)>>2](i7); -} - r0 = heap32[(r1+6)]; - r0 = (r0 + r4)|0; - r0 = r0 >> 2; - r0 = heap32[(r0)]; - r2 = r0 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+2)]; - r4 = heap32[(r1+5)]; - r5 = heap32[(r1+4)]; - r8 = heap32[(r1+2)]; - r11 = heap32[(r1+1)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r5; - heap32[(g0+4)] = r4; - __FUNCTION_TABLE__[(r2)>>2](i7); - r0 = heap32[(r1+4)]; - r0 = r0 >> 2; - r0 = heap32[(r0+5)]; -if(!(r0 ==0)) //_LBB255_23 -{ - r2 = r0 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r0 = r_g0 & 2; -if(!(r0 ==0)) //_LBB255_23 -{ - r0 = heap32[(r1+4)]; - r0 = r0 >> 2; - r2 = heap32[(r0+5)]; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+13)]; - r4 = sp + -32; - r5 = r4 >> 2; - heap32[(fp+-8)] = 1065353216; - heap32[(r5+1)] = 1065353216; - heap32[(r5+2)] = 1065353216; - heap32[(r5+3)] = 0; - r0 = heap32[(r0+5)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r2)>>2](i7); - r0 = heap32[(r1+4)]; - r0 = r0 >> 2; - r2 = heap32[(r0+5)]; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+13)]; - r4 = sp + -16; - r5 = r4 >> 2; - heap32[(fp+-4)] = 1065353216; - heap32[(r5+1)] = 1065353216; - heap32[(r5+2)] = 1065353216; - heap32[(r5+3)] = 0; - r0 = heap32[(r0+5)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r2)>>2](i7); -} -} - r0 = heap32[(r1+1)]; - r0 = r0 >> 2; - heap32[(r0+48)] = r3; - r0 = heap32[(r1+1)]; - r0 = r0 >> 2; - heapFloat[(r0+1)] = f0; - heapFloat[(r0+2)] = f2; - heapFloat[(r0+3)] = f6; - heapFloat[(r0+4)] = f23; - heapFloat[(r0+5)] = f10; - heapFloat[(r0+6)] = f11; - heapFloat[(r0+7)] = f18; - f0 = heapFloat[(fp+-59)]; - heapFloat[(r0+8)] = f0; - heapFloat[(r0+9)] = f12; - heapFloat[(r0+10)] = f15; - heapFloat[(r0+11)] = f20; - f0 = heapFloat[(fp+-57)]; - heapFloat[(r0+12)] = f0; - heapFloat[(r0+13)] = f24; - heapFloat[(r0+14)] = f25; - heapFloat[(r0+15)] = f26; - f0 = heapFloat[(fp+-58)]; - heapFloat[(r0+16)] = f0; - r0 = heap32[(r1+1)]; - r0 = r0 >> 2; - f0 = heapFloat[(fp+-42)]; - heapFloat[(r0+17)] = f0; - f0 = heapFloat[(fp+-41)]; - heapFloat[(r0+18)] = f0; - f0 = heapFloat[(fp+-44)]; - heapFloat[(r0+19)] = f0; - f0 = heapFloat[(fp+-43)]; - heapFloat[(r0+20)] = f0; - f0 = heapFloat[(fp+-46)]; - heapFloat[(r0+21)] = f0; - f0 = heapFloat[(fp+-45)]; - heapFloat[(r0+22)] = f0; - f0 = heapFloat[(fp+-48)]; - heapFloat[(r0+23)] = f0; - f0 = heapFloat[(fp+-47)]; - heapFloat[(r0+24)] = f0; - f0 = heapFloat[(fp+-50)]; - heapFloat[(r0+25)] = f0; - f0 = heapFloat[(fp+-49)]; - heapFloat[(r0+26)] = f0; - f0 = heapFloat[(fp+-52)]; - heapFloat[(r0+27)] = f0; - f0 = heapFloat[(fp+-51)]; - heapFloat[(r0+28)] = f0; - f0 = heapFloat[(fp+-54)]; - heapFloat[(r0+29)] = f0; - f0 = heapFloat[(fp+-53)]; - heapFloat[(r0+30)] = f0; - f0 = heapFloat[(fp+-56)]; - heapFloat[(r0+31)] = f0; - f0 = heapFloat[(fp+-55)]; - heapFloat[(r0+32)] = f0; -} -} -} - return; -} -else{ - r0 = _2E_str7106; - r1 = _2E_str1100; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 119; - _assert(i7); -} -} -else{ - r0 = _2E_str6105; - r1 = _2E_str1100; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 117; - _assert(i7); -} -} - -function _ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+28]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r4 = r1 == 0 ? r2 : r3; - r5 = r4 >> 2; - r6 = heap32[(r5+48)]; - r6 = r6 >> 2; - r7 = heap32[(r6+1)]; - if(r7 ==31) //_LBB256_2 -{ - r7 = r0 >> 2; - r8 = heap32[(r7+3)]; - r9 = heap32[(r6+4)]; -_3: do { -if(!(r8 >r9)) //_LBB256_21 -{ -if(!(r8 >=r9)) //_LBB256_21 -{ - r10 = heap32[(r7+4)]; -if(!(r10 >=r9)) //_LBB256_20 -{ - if(r9 !=0) //_LBB256_7 -{ - r10 = gNumAlignedAllocs; - r10 = r10 >> 2; - r11 = heap32[(r10)]; - r12 = r9 << 2; - r11 = (r11 + 1)|0; - r12 = r12 | 3; - heap32[(r10)] = r11; - r10 = (r12 + 16)|0; - heap32[(g0)] = r10; - malloc(i7); - r10 = r_g0; - if(r10 !=0) //_LBB256_9 -{ - r11 = 0; - r12 = (r10 + 4)|0; - r11 = (r11 - r12)|0; - r11 = r11 & 15; - r11 = (r10 + r11)|0; - r12 = (r11 + 4)|0; - r11 = r11 >> 2; - heap32[(r11)] = r10; - r10 = r12; -} -} -else{ - r10 = 0; -} - r11 = (r0 + 20)|0; - if(r8 <1) //_LBB256_12 -{ - r12 = r11 >> 2; - r13 = heap32[(r12)]; -} -else{ - r12 = 0; -_16: while(true){ - r13 = r11 >> 2; - r13 = heap32[(r13)]; - r14 = r12 << 2; - r15 = (r13 + r14)|0; - r15 = r15 >> 2; - r14 = (r10 + r14)|0; - r15 = heap32[(r15)]; - r12 = (r12 + 1)|0; - r14 = r14 >> 2; - heap32[(r14)] = r15; -if(!(r8 !=r12)) //_LBB256_13 -{ -break _16; -} -} - r11 = (r0 + 20)|0; -} -if(!(r13 ==0)) //_LBB256_19 -{ - r12 = heapU8[r0+24]; -if(!(r12 ==0)) //_LBB256_18 -{ - r12 = gNumAlignedFree; - r12 = r12 >> 2; - r14 = heap32[(r12)]; - r14 = (r14 + 1)|0; - r13 = r13 >> 2; - heap32[(r12)] = r14; - r12 = heap32[(r13+-1)]; - heap32[(g0)] = r12; - free(i7); -} - r12 = r11 >> 2; - heap32[(r12)] = 0; -} - r12 = 1; - r11 = r11 >> 2; - heap8[r0+24] = r12; - heap32[(r11)] = r10; - heap32[(r7+4)] = r9; - if(r8 >=r9) //_LBB256_21 -{ -break _3; -} -} -_26: while(true){ - r0 = r8 << 2; - r10 = heap32[(r7+5)]; - r0 = (r10 + r0)|0; - r8 = (r8 + 1)|0; - r0 = r0 >> 2; - heap32[(r0)] = 0; -if(!(r9 !=r8)) //_LBB256_20 -{ -break _3; -} -} -} -} -} while(0); - heap32[(r7+3)] = r9; -_29: do { -if(!(r9 <1)) //_LBB256_27 -{ - r0 = r1 == 0 ? r3 : r2; - r1 = 0; -_31: while(true){ - r2 = heap32[(r6+16)]; - if(r2 ==0) //_LBB256_25 -{ - r2 = (r1 * 20)|0; - r2 = r2 << 2; - r3 = heap32[(r6+6)]; - r2 = (r3 + r2)|0; - r2 = r2 >> 2; - r3 = heap32[(r5+48)]; - r2 = heap32[(r2+16)]; - heap32[(r5+48)] = r2; - r2 = heap32[(r7+1)]; - r8 = r2 >> 2; - r8 = heap32[(r8)]; - r8 = r8 >> 2; - r8 = heap32[(r8+2)]; - r10 = heap32[(r7+8)]; - r11 = heap32[(r7+5)]; - r12 = r1 << 2; - heap32[(g0)] = r2; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r0; - heap32[(g0+3)] = r10; - r2 = (r11 + r12)|0; - r2 = r2 >> 2; - __FUNCTION_TABLE__[(r8)>>2](i7); - heap32[(r2)] = r_g0; - heap32[(r5+48)] = r3; -} -else{ - r2 = r1 << 2; - r3 = heap32[(r7+5)]; - r2 = (r3 + r2)|0; - r2 = r2 >> 2; - heap32[(r2)] = 0; -} - r1 = (r1 + 1)|0; -if(!(r9 !=r1)) //_LBB256_23 -{ -break _29; -} -} -} -} while(0); - return; -} -else{ - r0 = _2E_str99; - r1 = _2E_str1100; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 44; - _assert(i7); -} -} - -function _ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; -var __label__ = 0; - i7 = sp + -328;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heapU8[r0+28]; - r4 = r3 == 0 ? r1 : r2; - r5 = r4 >> 2; - r6 = heap32[(r5+48)]; - r6 = r6 >> 2; - r7 = heap32[(r6+1)]; - if(r7 ==31) //_LBB257_2 -{ - r7 = r0 >> 2; - r8 = heap32[(r6+17)]; - r9 = heap32[(r7+10)]; -if(!(r8 ==r9)) //_LBB257_9 -{ - r8 = heap32[(r7+3)]; -if(!(r8 <1)) //_LBB257_8 -{ - r9 = 0; -_7: while(true){ - r10 = heap32[(r7+5)]; - r11 = r9 << 2; - r10 = (r10 + r11)|0; - r10 = r10 >> 2; - r10 = heap32[(r10)]; -if(!(r10 ==0)) //_LBB257_7 -{ - r12 = r10 >> 2; - r12 = heap32[(r12)]; - r12 = r12 >> 2; - r12 = heap32[(r12)]; - heap32[(g0)] = r10; - __FUNCTION_TABLE__[(r12)>>2](i7); - r10 = heap32[(r7+1)]; - r12 = r10 >> 2; - r13 = heap32[(r7+5)]; - r11 = (r13 + r11)|0; - r12 = heap32[(r12)]; - r12 = r12 >> 2; - r11 = r11 >> 2; - r12 = heap32[(r12+13)]; - r11 = heap32[(r11)]; - heap32[(g0)] = r10; - heap32[(g0+1)] = r11; - __FUNCTION_TABLE__[(r12)>>2](i7); -} - r9 = (r9 + 1)|0; -if(!(r8 !=r9)) //_LBB257_5 -{ -break _7; -} -} -} - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - _ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i7); -} - r0 = heap32[(fp+3)]; - r8 = heap32[(fp+4)]; - r1 = r3 == 0 ? r2 : r1; - r2 = _ZTV22btCompoundLeafCallback; - r3 = heap32[(r6+16)]; - r9 = heap32[(r7+8)]; - r10 = heap32[(r7+5)]; - r11 = heap32[(r7+1)]; - r12 = sp + -32; - r2 = (r2 + 8)|0; - r13 = r12 >> 2; - heap32[(fp+-8)] = r2; - heap32[(r13+1)] = r4; - heap32[(r13+2)] = r1; - heap32[(r13+3)] = r11; - heap32[(r13+4)] = r0; - heap32[(r13+5)] = r8; - heap32[(r13+6)] = r10; - r0 = sp + -56; - r2 = 1; - heap32[(r13+7)] = r9; - r4 = r0 >> 2; - heap8[sp+-40] = r2; - heap32[(r4+3)] = 0; - r9 = (r8 + 72)|0; - r10 = (r8 + 8)|0; - r11 = 0; - heap32[(r4+1)] = 0; - heap32[(r4+2)] = 0; -_14: while(true){ - r13 = heap32[(r7+3)]; - if(r13 >r11) //_LBB257_10 -{ - r13 = heap32[(r7+5)]; - r14 = r11 << 2; - r13 = (r13 + r14)|0; - r13 = r13 >> 2; - r13 = heap32[(r13)]; -if(!(r13 ==0)) //_LBB257_27 -{ - r14 = r13 >> 2; - r14 = heap32[(r14)]; - r14 = r14 >> 2; - r14 = heap32[(r14+4)]; - heap32[(g0)] = r13; - heap32[(g0+1)] = r0; - r13 = 0; - __FUNCTION_TABLE__[(r14)>>2](i7); -_19: while(true){ - r14 = heap32[(r4+3)]; - r15 = heap32[(r4+1)]; - if(r15 >r13) //_LBB257_12 -{ - r15 = r13 << 2; - r14 = (r14 + r15)|0; - r14 = r14 >> 2; - r14 = heap32[(r14)]; - r15 = r14 >> 2; - r16 = heap32[(r15+279)]; -if(!(r16 ==0)) //_LBB257_20 -{ - r16 = r8 >> 2; - heap32[(r16+1)] = r14; - if(r14 !=0) //_LBB257_15 -{ - r17 = heap32[(r15+279)]; -if(!(r17 ==0)) //_LBB257_19 -{ - r15 = heap32[(r15+277)]; - r17 = heap32[(r16+34)]; - if(r15 ==r17) //_LBB257_18 -{ - heap32[(g0)] = r14; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r9; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); -} -else{ - heap32[(g0)] = r14; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r10; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); -} -} - heap32[(r16+1)] = 0; -} -else{ -__label__ = 14; -break _14; -} -} - r13 = (r13 + 1)|0; -} -else{ -break _19; -} -} -if(!(r14 ==0)) //_LBB257_26 -{ - r13 = heapU8[sp+-40]; -if(!(r13 ==0)) //_LBB257_25 -{ - r13 = gNumAlignedFree; - r13 = r13 >> 2; - r15 = heap32[(r13)]; - r15 = (r15 + 1)|0; - r14 = r14 >> 2; - heap32[(r13)] = r15; - r13 = heap32[(r14+-1)]; - heap32[(g0)] = r13; - free(i7); -} - heap32[(r4+3)] = 0; -} - r13 = 1; - heap8[sp+-40] = r13; - heap32[(r4+3)] = 0; - heap32[(r4+1)] = 0; - heap32[(r4+2)] = 0; -} - r11 = (r11 + 1)|0; -} -else{ -__label__ = 29; -break _14; -} -} -switch(__label__ ){//multiple entries -case 29: - heap8[sp+-40] = r2; - heap32[(r4+3)] = 0; - heap32[(r4+1)] = 0; - heap32[(r4+2)] = 0; -_42: do { - if(r3 ==0) //_LBB257_31 -{ - if(r13 <1) //_LBB257_50 -{ -__label__ = 49; -} -else{ - r0 = 0; -_45: while(true){ - r3 = (r0 * 20)|0; - r4 = heap32[(r6+6)]; - r3 = r3 << 2; - r3 = (r4 + r3)|0; - r3 = r3 >> 2; - r3 = heap32[(r3+16)]; - heap32[(g0)] = r12; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r0; - r0 = (r0 + 1)|0; - _ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i7); -if(!(r13 !=r0)) //_LBB257_33 -{ -__label__ = 34; -break _42; -} -} -} -} -else{ - r13 = r1 >> 2; - f0 = heapFloat[(r5+1)]; - f1 = heapFloat[(r13+1)]; - f2 = heapFloat[(r5+5)]; - f3 = heapFloat[(r13+5)]; - f4 = heapFloat[(r13+2)]; - f5 = heapFloat[(r13+6)]; - f6 = f1*f0; - f7 = f3*f2; - f8 = heapFloat[(r5+9)]; - f9 = heapFloat[(r13+9)]; - f10 = heapFloat[(r5+2)]; - f11 = heapFloat[(r5+6)]; - f12 = heapFloat[(r5+3)]; - f13 = heapFloat[(r13+13)]; - f14 = heapFloat[(r13+3)]; - f15 = heapFloat[(r5+7)]; - f16 = heapFloat[(r5+14)]; - f17 = heapFloat[(r13+14)]; - f18 = heapFloat[(r13+7)]; - f19 = heapFloat[(r5+10)]; - f20 = heapFloat[(r5+15)]; - f21 = heapFloat[(r5+11)]; - f22 = heapFloat[(r13+15)]; - f23 = heapFloat[(r13+11)]; - f24 = heapFloat[(r13+10)]; - f25 = heapFloat[(r5+13)]; - f26 = f4*f0; - f27 = f5*f2; - f6 = f6+f7; - f7 = f9*f8; - r0 = sp + -152; - f28 = f14*f0; - f29 = f18*f2; - f26 = f26+f27; - f27 = f24*f8; - f6 = f6+f7; - r4 = r0 >> 2; - f7 = f28+f29; - f28 = f23*f8; - f26 = f26+f27; - heapFloat[(fp+-38)] = f6; - f6 = f1*f10; - f27 = f3*f11; - f7 = f7+f28; - heapFloat[(r4+1)] = f26; - heapFloat[(r4+2)] = f7; - f7 = f4*f10; - f26 = f5*f11; - f6 = f6+f27; - f27 = f9*f19; - f28 = f14*f10; - f29 = f18*f11; - f7 = f7+f26; - f26 = f24*f19; - f6 = f6+f27; - heap32[(r4+3)] = 0; - f27 = f28+f29; - f28 = f23*f19; - f7 = f7+f26; - heapFloat[(r4+4)] = f6; - f1 = f1*f12; - f3 = f3*f15; - f6 = f27+f28; - heapFloat[(r4+5)] = f7; - heapFloat[(r4+6)] = f6; - f4 = f4*f12; - f5 = f5*f15; - f1 = f1+f3; - f3 = f9*f21; - f6 = -f25; - f7 = f14*f12; - f9 = f18*f15; - f4 = f4+f5; - f5 = f24*f21; - f1 = f1+f3; - heap32[(r4+7)] = 0; - f3 = f0*f13; - f14 = f2*f17; - f0 = f0*f6; - f2 = f2*f16; - f7 = f7+f9; - f9 = f23*f21; - f4 = f4+f5; - heapFloat[(r4+8)] = f1; - f1 = f10*f13; - f5 = f11*f17; - f10 = f10*f6; - f11 = f11*f16; - f3 = f3+f14; - f14 = f8*f22; - f0 = f0-f2; - f2 = f8*f20; - f7 = f7+f9; - heapFloat[(r4+9)] = f4; - heapFloat[(r4+10)] = f7; - f4 = f12*f13; - f7 = f15*f17; - f6 = f12*f6; - f8 = f15*f16; - f1 = f1+f5; - f5 = f19*f22; - f9 = f10-f11; - f10 = f19*f20; - f3 = f3+f14; - f0 = f0-f2; - f2 = f4+f7; - f4 = f21*f22; - f6 = f6-f8; - f7 = f21*f20; - f1 = f1+f5; - f5 = f9-f10; - f0 = f3+f0; - heap32[(r4+11)] = 0; - f2 = f2+f4; - f3 = f6-f7; - f1 = f1+f5; - heapFloat[(r4+12)] = f0; - f0 = f2+f3; - heapFloat[(r4+13)] = f1; - heapFloat[(r4+14)] = f0; - heap32[(r4+15)] = 0; - r13 = heap32[(r13+48)]; - r4 = r13 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+2)]; - r8 = sp + -72; - r9 = sp + -88; - heap32[(g0)] = r13; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r9; - r13 = sp + -184; - __FUNCTION_TABLE__[(r4)>>2](i7); - r0 = r13 >> 2; - r4 = r8 >> 2; - heap32[(fp+-46)] = heap32[(fp+-18)]; - heap32[(r0+1)] = heap32[(r4+1)]; - heap32[(r0+2)] = heap32[(r4+2)]; - heap32[(r0+3)] = heap32[(r4+3)]; - r4 = r9 >> 2; - heap32[(r0+4)] = heap32[(fp+-22)]; - heap32[(r0+5)] = heap32[(r4+1)]; - heap32[(r0+6)] = heap32[(r4+2)]; - r3 = r3 >> 2; - heap32[(r0+7)] = heap32[(r4+3)]; - r0 = heap32[(r3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r13; - heap32[(g0+2)] = r12; - _ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i7); -__label__ = 34; -} -} while(0); -_48: do { -if (__label__ == 34){ - r0 = heap32[(r7+3)]; -if(!(r0 <1)) //_LBB257_50 -{ - r3 = 0; - r4 = (r1 + 4)|0; - r0 = (r3 - r0)|0; -_51: while(true){ - r8 = heap32[(r7+5)]; - r9 = r3 << 2; - r8 = (r8 - r9)|0; - r8 = r8 >> 2; - r8 = heap32[(r8)]; -_53: do { -if(!(r8 ==0)) //_LBB257_49 -{ - r8 = (r3 * -20)|0; - r10 = heap32[(r6+6)]; - r8 = r8 << 2; - r8 = (r10 + r8)|0; - r8 = r8 >> 2; - f0 = heapFloat[(r5+1)]; - f1 = heapFloat[(r8)]; - f2 = heapFloat[(r5+2)]; - f3 = heapFloat[(r8+4)]; - f4 = heapFloat[(r8+1)]; - f5 = heapFloat[(r8+5)]; - f6 = f1*f0; - f7 = f3*f2; - f8 = heapFloat[(r5+3)]; - f9 = heapFloat[(r8+8)]; - f10 = heapFloat[(r5+5)]; - f11 = heapFloat[(r5+6)]; - f12 = heapFloat[(r5+9)]; - f13 = heapFloat[(r8+12)]; - f14 = heapFloat[(r8+2)]; - f15 = heapFloat[(r5+10)]; - f16 = heapFloat[(r8+13)]; - f17 = heapFloat[(r8+6)]; - r10 = heap32[(r8+16)]; - f18 = heapFloat[(r5+7)]; - f19 = heapFloat[(r8+14)]; - f20 = heapFloat[(r5+11)]; - f21 = heapFloat[(r8+10)]; - f22 = heapFloat[(r8+9)]; - f23 = f4*f0; - f24 = f5*f2; - f6 = f6+f7; - f7 = f9*f8; - f25 = heapFloat[(r5+13)]; - f26 = heapFloat[(r5+14)]; - f27 = heapFloat[(r5+15)]; - r8 = sp + -248; - f28 = f14*f0; - f29 = f17*f2; - f23 = f23+f24; - f24 = f22*f8; - f6 = f6+f7; - r11 = r8 >> 2; - f7 = f28+f29; - f28 = f21*f8; - f23 = f23+f24; - heapFloat[(fp+-62)] = f6; - f6 = f1*f10; - f24 = f3*f11; - f7 = f7+f28; - heapFloat[(r11+1)] = f23; - heapFloat[(r11+2)] = f7; - f7 = f4*f10; - f23 = f5*f11; - f6 = f6+f24; - f24 = f9*f18; - f28 = f14*f10; - f29 = f17*f11; - f7 = f7+f23; - f23 = f22*f18; - f6 = f6+f24; - heap32[(r11+3)] = 0; - f24 = f28+f29; - f28 = f21*f18; - f7 = f7+f23; - heapFloat[(r11+4)] = f6; - f1 = f1*f12; - f3 = f3*f15; - f6 = f24+f28; - heapFloat[(r11+5)] = f7; - heapFloat[(r11+6)] = f6; - f4 = f4*f12; - f5 = f5*f15; - f1 = f1+f3; - f3 = f9*f20; - f6 = f14*f12; - f7 = f17*f15; - f4 = f4+f5; - f5 = f22*f20; - f1 = f1+f3; - heap32[(r11+7)] = 0; - f0 = f0*f13; - f2 = f2*f16; - f3 = f6+f7; - f6 = f21*f20; - f4 = f4+f5; - heapFloat[(r11+8)] = f1; - f1 = f10*f13; - f5 = f11*f16; - f0 = f0+f2; - f2 = f8*f19; - f3 = f3+f6; - heapFloat[(r11+9)] = f4; - f0 = f0+f2; - heapFloat[(r11+10)] = f3; - f2 = f12*f13; - f3 = f15*f16; - f1 = f1+f5; - f4 = f18*f19; - f1 = f1+f4; - f2 = f2+f3; - f3 = f20*f19; - f0 = f0+f25; - heap32[(r11+11)] = 0; - f2 = f2+f3; - f1 = f1+f26; - heapFloat[(r11+12)] = f0; - f0 = f2+f27; - heapFloat[(r11+13)] = f1; - heapFloat[(r11+14)] = f0; - r12 = r10 >> 2; - heap32[(r11+15)] = 0; - r11 = heap32[(r12)]; - r11 = r11 >> 2; - r11 = heap32[(r11+2)]; - r12 = sp + -264; - r13 = sp + -280; - heap32[(g0)] = r10; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r12; - heap32[(g0+3)] = r13; - __FUNCTION_TABLE__[(r11)>>2](i7); - r8 = r1 >> 2; - r8 = heap32[(r8+48)]; - r10 = r8 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+2)]; - r11 = sp + -296; - r14 = sp + -312; - heap32[(g0)] = r8; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r11; - heap32[(g0+3)] = r14; - __FUNCTION_TABLE__[(r10)>>2](i7); - f0 = heapFloat[(fp+-66)]; - f1 = heapFloat[(fp+-78)]; - if(f0 >f1) //_LBB257_40 -{ -__label__ = 40; -} -else{ - f0 = heapFloat[(fp+-70)]; - f1 = heapFloat[(fp+-74)]; - if(f0 > 2; - r12 = r14 >> 2; - f0 = heapFloat[(r10+2)]; - f1 = heapFloat[(r12+2)]; - if(f0 >f1) //_LBB257_44 -{ -__label__ = 43; -} -else{ - r14 = r13 >> 2; - r15 = r11 >> 2; - f0 = heapFloat[(r14+2)]; - f1 = heapFloat[(r15+2)]; - if(f0 f1)) //_LBB257_48 -{ - r10 = r13 >> 2; - r11 = r11 >> 2; - f0 = heapFloat[(r10+1)]; - f1 = heapFloat[(r11+1)]; -if(!(f0 > 2; - r8 = heap32[(r8)]; - r10 = r8 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10)]; - heap32[(g0)] = r8; - __FUNCTION_TABLE__[(r10)>>2](i7); - r8 = heap32[(r7+1)]; - r10 = r8 >> 2; - r11 = heap32[(r7+5)]; - r11 = (r11 - r9)|0; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r11 = r11 >> 2; - r10 = heap32[(r10+13)]; - r11 = heap32[(r11)]; - heap32[(g0)] = r8; - heap32[(g0+1)] = r11; - __FUNCTION_TABLE__[(r10)>>2](i7); - r8 = heap32[(r7+5)]; - r8 = (r8 - r9)|0; - r8 = r8 >> 2; - heap32[(r8)] = 0; -} -} while(0); - r3 = (r3 + -1)|0; -if(!(r0 !=r3)) //_LBB257_36 -{ -break _48; -} -} -} -} -} while(0); - return; -break; -case 14: - r14 = _2E_str59; - r0 = _2E_str160; - heap32[(g0)] = r14; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 101; - _assert(i7); -break; -} -} -else{ - r0 = _2E_str99; - r1 = _2E_str1100; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 199; - _assert(i7); -} -} - -function _ZN28btCompoundCollisionAlgorithmD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV28btCompoundCollisionAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+3)]; -if(!(r1 <1)) //_LBB258_5 -{ - r3 = 0; -_3: while(true){ - r4 = heap32[(r2+5)]; - r5 = r3 << 2; - r4 = (r4 + r5)|0; - r4 = r4 >> 2; - r4 = heap32[(r4)]; -if(!(r4 ==0)) //_LBB258_4 -{ - r6 = r4 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6)]; - heap32[(g0)] = r4; - __FUNCTION_TABLE__[(r6)>>2](i7); - r4 = heap32[(r2+1)]; - r6 = r4 >> 2; - r7 = heap32[(r2+5)]; - r5 = (r7 + r5)|0; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r5 = r5 >> 2; - r6 = heap32[(r6+13)]; - r5 = heap32[(r5)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - __FUNCTION_TABLE__[(r6)>>2](i7); -} - r3 = (r3 + 1)|0; - if(r1 !=r3) //_LBB258_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - r1 = heap32[(r2+5)]; -if(!(r1 ==0)) //_LBB258_9 -{ - r3 = heapU8[r0+24]; -if(!(r3 ==0)) //_LBB258_8 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+5)] = 0; -} - r1 = 1; - heap8[r0+24] = r1; - heap32[(r2+5)] = 0; - r1 = _ZTV30btActivatingCollisionAlgorithm; - heap32[(r2+3)] = 0; - r1 = (r1 + 8)|0; - heap32[(r2+4)] = 0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN28btCompoundCollisionAlgorithmD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV28btCompoundCollisionAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+3)]; -if(!(r1 <1)) //_LBB259_5 -{ - r3 = 0; -_3: while(true){ - r4 = heap32[(r2+5)]; - r5 = r3 << 2; - r4 = (r4 + r5)|0; - r4 = r4 >> 2; - r4 = heap32[(r4)]; -if(!(r4 ==0)) //_LBB259_4 -{ - r6 = r4 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6)]; - heap32[(g0)] = r4; - __FUNCTION_TABLE__[(r6)>>2](i7); - r4 = heap32[(r2+1)]; - r6 = r4 >> 2; - r7 = heap32[(r2+5)]; - r5 = (r7 + r5)|0; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r5 = r5 >> 2; - r6 = heap32[(r6+13)]; - r5 = heap32[(r5)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - __FUNCTION_TABLE__[(r6)>>2](i7); -} - r3 = (r3 + 1)|0; - if(r1 !=r3) //_LBB259_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - r1 = heap32[(r2+5)]; -if(!(r1 ==0)) //_LBB259_9 -{ - r3 = heapU8[r0+24]; -if(!(r3 ==0)) //_LBB259_8 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+5)] = 0; -} - r1 = 1; - heap8[r0+24] = r1; - heap32[(r2+5)] = 0; - r0 = _ZTV30btActivatingCollisionAlgorithm; - heap32[(r2+3)] = 0; - r0 = (r0 + 8)|0; - heap32[(r2+4)] = 0; - heap32[(r2)] = r0; - return; -} - -function _ZNK21btConvexInternalShape15getLocalScalingEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = (r0 + 12)|0; - r_g0 = r0; - return; -} - -function _ZN21btConvexInternalShape9setMarginEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - heap32[(r0+11)] = heap32[(fp+1)]; - return; -} - -function _ZNK21btConvexInternalShape9getMarginEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var f0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0+11)]; - f_g0 = f0; - return; -} - -function _ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 52; - r_g0 = r0; - return; -} - -function _ZNK15btTriangleShape14getNumVerticesEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 3; - r_g0 = r0; - return; -} - -function _ZNK15btTriangleShape9getVertexEiR9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r0 = r0 << 4; - r2 = heap32[(fp+2)]; - r0 = (r1 + r0)|0; - r1 = r2 >> 2; - r0 = r0 >> 2; - heap32[(r1)] = heap32[(r0+13)]; - heap32[(r1+1)] = heap32[(r0+14)]; - heap32[(r1+2)] = heap32[(r0+15)]; - heap32[(r1+3)] = heap32[(r0+16)]; - return; -} - -function _ZNK15btTriangleShape11getNumEdgesEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 3; - r_g0 = r0; - return; -} - -function _ZNK15btTriangleShape7getEdgeEiR9btVector3S1_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+24)]; - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+24)]; - r2 = (r3 + 1)|0; - r2 = (r2 % 3)|0; - r3 = heap32[(fp+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+18)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp+2)]; - r2 = r0 >> 2; - r1 = r1 >> 2; - f0 = heapFloat[(r2+13)]; - f1 = heapFloat[(r1)]; - f2 = heapFloat[(r2+17)]; - f3 = heapFloat[(r2+21)]; - f4 = heapFloat[(r2+14)]; - f5 = heapFloat[(r1+1)]; - f6 = heapFloat[(r2+18)]; - f7 = heapFloat[(r2+22)]; - f0 = f1*f0; - f4 = f5*f4; - f8 = heapFloat[(r2+15)]; - f9 = heapFloat[(r1+2)]; - f10 = heapFloat[(r2+19)]; - f11 = heapFloat[(r2+23)]; - f2 = f1*f2; - f6 = f5*f6; - f1 = f1*f3; - f3 = f5*f7; - f0 = f0+f4; - f4 = f9*f8; - f2 = f2+f6; - f5 = f9*f10; - f1 = f1+f3; - f3 = f9*f11; - f0 = f0+f4; - f2 = f2+f5; - r1 = heap32[(fp)]; - f1 = f1+f3; - if(f0 >=f2) //_LBB269_2 -{ - r2 = 2; - r3 = 0; - r2 = f0 < f1 ? r2 : r3; -} -else{ - r2 = 2; - r3 = 1; - r2 = f2 < f1 ? r2 : r3; -} - r2 = r2 << 4; - r0 = (r0 + r2)|0; - r1 = r1 >> 2; - r0 = r0 >> 2; - heap32[(r1)] = heap32[(r0+13)]; - heap32[(r1+1)] = heap32[(r0+14)]; - heap32[(r1+2)] = heap32[(r0+15)]; - heap32[(r1+3)] = heap32[(r0+16)]; - return; -} - -function _ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+3)]; -if(!(r0 <1)) //_LBB270_6 -{ - r1 = heap32[(fp)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r2 = (r2 + 8)|0; - r3 = (r3 + 12)|0; -_3: while(true){ - r4 = r1 >> 2; - r5 = r2 >> 2; - f0 = heapFloat[(r4+13)]; - f1 = heapFloat[(r5+-2)]; - f2 = heapFloat[(r4+17)]; - f3 = heapFloat[(r4+21)]; - f4 = heapFloat[(r4+14)]; - f5 = heapFloat[(r5+-1)]; - f6 = heapFloat[(r4+18)]; - f7 = heapFloat[(r4+22)]; - f0 = f1*f0; - f4 = f5*f4; - f8 = heapFloat[(r4+15)]; - f9 = heapFloat[(r5)]; - f10 = heapFloat[(r4+19)]; - f11 = heapFloat[(r4+23)]; - f2 = f1*f2; - f6 = f5*f6; - f1 = f1*f3; - f3 = f5*f7; - f0 = f0+f4; - f4 = f9*f8; - f2 = f2+f6; - f5 = f9*f10; - f1 = f1+f3; - f3 = f9*f11; - f0 = f0+f4; - f2 = f2+f5; - f1 = f1+f3; - if(f0 >=f2) //_LBB270_4 -{ - r4 = 2; - r5 = 0; - r4 = f0 < f1 ? r4 : r5; -} -else{ - r4 = 2; - r5 = 1; - r4 = f2 < f1 ? r4 : r5; -} - r4 = r4 << 4; - r4 = (r1 + r4)|0; - r5 = r3 >> 2; - r4 = r4 >> 2; - heap32[(r5+-3)] = heap32[(r4+13)]; - heap32[(r5+-2)] = heap32[(r4+14)]; - r0 = (r0 + -1)|0; - r2 = (r2 + 16)|0; - r3 = (r3 + 16)|0; - heap32[(r5+-1)] = heap32[(r4+15)]; - heap32[(r5)] = heap32[(r4+16)]; - if(r0 !=0) //_LBB270_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - return; -} - -function _ZNK15btTriangleShape8getPlaneER9btVector3S1_i(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+28)]; - r2 = heap32[(fp+3)]; - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZNK15btTriangleShape12getNumPlanesEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 1; - r_g0 = r0; - return; -} - -function _ZNK15btTriangleShape7getNameEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = _2E_str109; - r_g0 = r0; - return; -} - -function _ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 2; - r_g0 = r0; - return; -} - -function _ZN24btConvexTriangleCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV24btConvexTriangleCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - r1 = heap32[(r0+12)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+5)]; - r3 = heap32[(r0+16)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = heap32[(r0+12)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - r3 = heap32[(r0+16)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - r1 = _ZTV18btTriangleCallback; - r1 = (r1 + 8)|0; - __FUNCTION_TABLE__[(r2)>>2](i7); - heap32[(r0)] = r1; - return; -} - -function _ZN24btConvexTriangleCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV24btConvexTriangleCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+12)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+5)]; - r4 = heap32[(r2+16)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r4; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+12)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - r4 = heap32[(r2+16)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r4; - r1 = _ZTV18btTriangleCallback; - r1 = (r1 + 8)|0; - __FUNCTION_TABLE__[(r3)>>2](i7); - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; -var __label__ = 0; - i7 = sp + -240;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+13)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(r0+12)]; - r4 = heap32[(r0+2)]; -if(!(r1 ==0)) //_LBB277_4 -{ - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; -if(!(r1 ==0)) //_LBB277_4 -{ - r5 = r1 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+12)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r5)>>2](i7); - r1 = r_g0 & 1; -if(!(r1 ==0)) //_LBB277_4 -{ - r1 = sp + -112; - r5 = r1 >> 2; - heap32[(fp+-28)] = 1065353216; - heap32[(r5+1)] = 1065353216; - heap32[(r5+2)] = 0; - heap32[(r5+3)] = 0; - r5 = heap32[(r0+13)]; - r5 = r5 >> 2; - r6 = r4 >> 2; - r7 = r2 >> 2; - r8 = heap32[(r5+5)]; - r8 = r8 >> 2; - f0 = heapFloat[(r7+4)]; - f1 = heapFloat[(r6+1)]; - f2 = heapFloat[(r7+5)]; - f3 = heapFloat[(r6+2)]; - r8 = heap32[(r8)]; - f4 = heapFloat[(r6+5)]; - f5 = heapFloat[(r6+6)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r7+6)]; - f7 = heapFloat[(r6+3)]; - r8 = r8 >> 2; - f8 = heapFloat[(r6+9)]; - f9 = heapFloat[(r6+10)]; - f10 = heapFloat[(r6+7)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f7 = heapFloat[(r6+11)]; - r8 = heap32[(r8+2)]; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f10*f6; - f1 = f1+f3; - f3 = heapFloat[(r6+13)]; - f8 = heapFloat[(r6+15)]; - f9 = heapFloat[(r6+14)]; - r9 = sp + -96; - f4 = f4+f5; - f0 = f0+f2; - f2 = f7*f6; - f1 = f1+f3; - f0 = f0+f2; - r10 = r9 >> 2; - f2 = f4+f9; - heapFloat[(fp+-24)] = f1; - f0 = f0+f8; - heapFloat[(r10+1)] = f2; - heapFloat[(r10+2)] = f0; - heap32[(r10+3)] = 0; - f0 = heapFloat[(r7)]; - f1 = heapFloat[(r6+1)]; - f2 = heapFloat[(r7+1)]; - f3 = heapFloat[(r6+2)]; - f4 = heapFloat[(r6+5)]; - f5 = heapFloat[(r6+6)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r7+2)]; - f7 = heapFloat[(r6+3)]; - f8 = heapFloat[(r6+9)]; - f9 = heapFloat[(r6+10)]; - f10 = heapFloat[(r6+7)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f7 = heapFloat[(r6+11)]; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f10*f6; - f1 = f1+f3; - f3 = heapFloat[(r6+13)]; - f8 = heapFloat[(r6+15)]; - f9 = heapFloat[(r6+14)]; - r10 = sp + -80; - f4 = f4+f5; - f0 = f0+f2; - f2 = f7*f6; - f1 = f1+f3; - f0 = f0+f2; - r11 = r10 >> 2; - f2 = f4+f9; - heapFloat[(fp+-20)] = f1; - f0 = f0+f8; - heapFloat[(r11+1)] = f2; - heapFloat[(r11+2)] = f0; - heap32[(r11+3)] = 0; - r5 = heap32[(r5+5)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r1; - __FUNCTION_TABLE__[(r8)>>2](i7); - r5 = heap32[(r0+13)]; - r5 = r5 >> 2; - r8 = heap32[(r5+5)]; - r8 = r8 >> 2; - f0 = heapFloat[(r7+8)]; - f1 = heapFloat[(r6+1)]; - f2 = heapFloat[(r7+9)]; - f3 = heapFloat[(r6+2)]; - r8 = heap32[(r8)]; - f4 = heapFloat[(r6+5)]; - f5 = heapFloat[(r6+6)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r7+10)]; - f7 = heapFloat[(r6+3)]; - r8 = r8 >> 2; - f8 = heapFloat[(r6+9)]; - f9 = heapFloat[(r6+10)]; - f10 = heapFloat[(r6+7)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f7 = heapFloat[(r6+11)]; - r8 = heap32[(r8+2)]; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f10*f6; - f1 = f1+f3; - f3 = heapFloat[(r6+13)]; - f8 = heapFloat[(r6+15)]; - f9 = heapFloat[(r6+14)]; - r9 = sp + -64; - f4 = f4+f5; - f0 = f0+f2; - f2 = f7*f6; - f1 = f1+f3; - f0 = f0+f2; - r10 = r9 >> 2; - f2 = f4+f9; - heapFloat[(fp+-16)] = f1; - f0 = f0+f8; - heapFloat[(r10+1)] = f2; - heapFloat[(r10+2)] = f0; - heap32[(r10+3)] = 0; - f0 = heapFloat[(r7+4)]; - f1 = heapFloat[(r6+1)]; - f2 = heapFloat[(r7+5)]; - f3 = heapFloat[(r6+2)]; - f4 = heapFloat[(r6+5)]; - f5 = heapFloat[(r6+6)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r7+6)]; - f7 = heapFloat[(r6+3)]; - f8 = heapFloat[(r6+9)]; - f9 = heapFloat[(r6+10)]; - f10 = heapFloat[(r6+7)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f7 = heapFloat[(r6+11)]; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f10*f6; - f1 = f1+f3; - f3 = heapFloat[(r6+13)]; - f8 = heapFloat[(r6+15)]; - f9 = heapFloat[(r6+14)]; - r10 = sp + -48; - f4 = f4+f5; - f0 = f0+f2; - f2 = f7*f6; - f1 = f1+f3; - f0 = f0+f2; - r11 = r10 >> 2; - f2 = f4+f9; - heapFloat[(fp+-12)] = f1; - f0 = f0+f8; - heapFloat[(r11+1)] = f2; - heapFloat[(r11+2)] = f0; - heap32[(r11+3)] = 0; - r5 = heap32[(r5+5)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r1; - __FUNCTION_TABLE__[(r8)>>2](i7); - r5 = heap32[(r0+13)]; - r5 = r5 >> 2; - r8 = heap32[(r5+5)]; - r8 = r8 >> 2; - f0 = heapFloat[(r7)]; - f1 = heapFloat[(r6+1)]; - f2 = heapFloat[(r7+1)]; - f3 = heapFloat[(r6+2)]; - r8 = heap32[(r8)]; - f4 = heapFloat[(r6+5)]; - f5 = heapFloat[(r6+6)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r7+2)]; - f7 = heapFloat[(r6+3)]; - r8 = r8 >> 2; - f8 = heapFloat[(r6+9)]; - f9 = heapFloat[(r6+10)]; - f10 = heapFloat[(r6+7)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f7 = heapFloat[(r6+11)]; - r8 = heap32[(r8+2)]; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f10*f6; - f1 = f1+f3; - f3 = heapFloat[(r6+13)]; - f8 = heapFloat[(r6+15)]; - f9 = heapFloat[(r6+14)]; - r9 = sp + -32; - f4 = f4+f5; - f0 = f0+f2; - f2 = f7*f6; - f1 = f1+f3; - f0 = f0+f2; - r10 = r9 >> 2; - f2 = f4+f9; - heapFloat[(fp+-8)] = f1; - f0 = f0+f8; - heapFloat[(r10+1)] = f2; - heapFloat[(r10+2)] = f0; - heap32[(r10+3)] = 0; - f0 = heapFloat[(r7+8)]; - f1 = heapFloat[(r6+1)]; - f2 = heapFloat[(r7+9)]; - f3 = heapFloat[(r6+2)]; - f4 = heapFloat[(r6+5)]; - f5 = heapFloat[(r6+6)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r7+10)]; - f7 = heapFloat[(r6+3)]; - f8 = heapFloat[(r6+9)]; - f9 = heapFloat[(r6+10)]; - f10 = heapFloat[(r6+7)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f7 = heapFloat[(r6+11)]; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f10*f6; - f1 = f1+f3; - f3 = heapFloat[(r6+13)]; - f8 = heapFloat[(r6+15)]; - f9 = heapFloat[(r6+14)]; - r6 = sp + -16; - f4 = f4+f5; - f0 = f0+f2; - f2 = f7*f6; - f1 = f1+f3; - f0 = f0+f2; - r7 = r6 >> 2; - f2 = f4+f9; - heapFloat[(fp+-4)] = f1; - f0 = f0+f8; - heapFloat[(r7+1)] = f2; - heapFloat[(r7+2)] = f0; - heap32[(r7+3)] = 0; - r5 = heap32[(r5+5)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r1; - __FUNCTION_TABLE__[(r8)>>2](i7); -} -} -} - r1 = heap32[(r0+1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+48)]; - r1 = r1 >> 2; - r1 = heap32[(r1+1)]; -if(!(r1 >19)) //_LBB277_9 -{ - r1 = heap32[(fp+2)]; - r5 = heap32[(fp+3)]; - r6 = sp + -216; - r7 = r6 >> 2; - heap32[(r7+2)] = 0; - heap32[(r7+3)] = 1065353216; - heap32[(r7+4)] = 1065353216; - r8 = _ZTV15btTriangleShape; - heap32[(r7+5)] = 1065353216; - r8 = (r8 + 8)|0; - heap32[(r7+6)] = 0; - heap32[(fp+-54)] = r8; - r2 = r2 >> 2; - heap32[(r7+1)] = 1; - heap32[(r7+13)] = heap32[(r2)]; - heap32[(r7+14)] = heap32[(r2+1)]; - heap32[(r7+15)] = heap32[(r2+2)]; - heap32[(r7+16)] = heap32[(r2+3)]; - heap32[(r7+17)] = heap32[(r2+4)]; - heap32[(r7+18)] = heap32[(r2+5)]; - heap32[(r7+19)] = heap32[(r2+6)]; - heap32[(r7+20)] = heap32[(r2+7)]; - heap32[(r7+21)] = heap32[(r2+8)]; - heap32[(r7+22)] = heap32[(r2+9)]; - heap32[(r7+23)] = heap32[(r2+10)]; - heap32[(r7+24)] = heap32[(r2+11)]; - r2 = r4 >> 2; - heap32[(r7+11)] = heap32[(r0+14)]; - r4 = heap32[(r2+48)]; - heap32[(r2+48)] = r6; - r6 = r3 >> 2; - r7 = heap32[(r6)]; - r7 = r7 >> 2; - r7 = heap32[(r7+2)]; - r8 = heap32[(r0+16)]; - r9 = heap32[(r0+2)]; - r10 = heap32[(r0+1)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r8; - __FUNCTION_TABLE__[(r7)>>2](i7); - r7 = r_g0; - r8 = heap32[(r0+11)]; - r9 = r8 >> 2; - r10 = heap32[(r9)]; - r9 = heap32[(r9+34)]; - r11 = heap32[(r0+2)]; - if(r9 !=r11) //_LBB277_7 -{ - r9 = r10 >> 2; - r9 = heap32[(r9+3)]; - heap32[(g0)] = r8; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r5; - __FUNCTION_TABLE__[(r9)>>2](i7); -} -else{ - r10 = r10 >> 2; - r10 = heap32[(r10+2)]; - heap32[(g0)] = r8; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r5; - __FUNCTION_TABLE__[(r10)>>2](i7); -} - r1 = r7 >> 2; - r5 = heap32[(r1)]; - r5 = r5 >> 2; - r5 = heap32[(r5+2)]; - r8 = heap32[(r0+11)]; - r9 = heap32[(r0+13)]; - r10 = heap32[(r0+2)]; - r0 = heap32[(r0+1)]; - heap32[(g0)] = r7; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r9; - heap32[(g0+4)] = r8; - __FUNCTION_TABLE__[(r5)>>2](i7); - r0 = heap32[(r1)]; - r0 = r0 >> 2; - r0 = heap32[(r0)]; - heap32[(g0)] = r7; - __FUNCTION_TABLE__[(r0)>>2](i7); - r0 = heap32[(r6)]; - r0 = r0 >> 2; - r0 = heap32[(r0+13)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r7; - __FUNCTION_TABLE__[(r0)>>2](i7); - heap32[(r2+48)] = r4; -} - return; -} - -function _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -800;var g0 = i7>>2; // save stack - r0 = sp + -64; - r1 = r0 >> 2; - heap32[(fp+-16)] = 1065353216; - heap32[(r1+1)] = 0; - heap32[(r1+2)] = 0; - heap32[(r1+3)] = 0; - heap32[(r1+4)] = 0; - heap32[(r1+5)] = 1065353216; - heap32[(r1+6)] = 0; - heap32[(r1+7)] = 0; - heap32[(r1+8)] = 0; - heap32[(r1+9)] = 0; - heap32[(r1+10)] = 1065353216; - heap32[(r1+11)] = 0; - heap32[(r1+12)] = 0; - heap32[(r1+13)] = 0; - r2 = _ZTVN12btConvexCast10CastResultE; - heap32[(r1+14)] = 0; - r3 = sp + -240; - r2 = (r2 + 8)|0; - heap32[(r1+15)] = 0; - r1 = r3 >> 2; - heap32[(fp+-60)] = r2; - r2 = heap32[(fp)]; - heap32[(r1+42)] = 0; - r4 = r2 >> 2; - heap32[(r1+43)] = 0; - r5 = sp + -296; - heap32[(r1+41)] = heap32[(r4+50)]; - r6 = r5 >> 2; - f0 = heapFloat[(r4+49)]; - heap32[(r6+2)] = 0; - heap32[(r6+3)] = 1065353216; - heap32[(r6+4)] = 1065353216; - r7 = _ZTV13btSphereShape; - heap32[(r6+5)] = 1065353216; - r7 = (r7 + 8)|0; - heap32[(r6+6)] = 0; - heap32[(fp+-74)] = r7; - heap32[(r6+1)] = 8; - r7 = sp + -400; - heapFloat[(r6+7)] = f0; - r8 = r7 >> 2; - heapFloat[(r6+11)] = f0; - heap32[(r8+2)] = 0; - heap32[(r8+3)] = 1065353216; - heap32[(r8+4)] = 1065353216; - heap32[(r8+5)] = 1065353216; - r6 = _ZTV15btTriangleShape; - heap32[(r8+6)] = 0; - r6 = (r6 + 8)|0; - heap32[(r8+11)] = 1025758986; - r9 = heap32[(fp+1)]; - heap32[(fp+-100)] = r6; - r6 = r9 >> 2; - heap32[(r8+1)] = 1; - heap32[(r8+13)] = heap32[(r6)]; - heap32[(r8+14)] = heap32[(r6+1)]; - heap32[(r8+15)] = heap32[(r6+2)]; - heap32[(r8+16)] = heap32[(r6+3)]; - heap32[(r8+17)] = heap32[(r6+4)]; - heap32[(r8+18)] = heap32[(r6+5)]; - heap32[(r8+19)] = heap32[(r6+6)]; - heap32[(r8+20)] = heap32[(r6+7)]; - heap32[(r8+21)] = heap32[(r6+8)]; - heap32[(r8+22)] = heap32[(r6+9)]; - r9 = sp + -760; - heap32[(r8+23)] = heap32[(r6+10)]; - r10 = r9 >> 2; - heap32[(r8+24)] = heap32[(r6+11)]; - r6 = _ZTV22btSubsimplexConvexCast; - r8 = 0; - heap32[(r10+77)] = 953267991; - r10 = sp + -776; - r6 = (r6 + 8)|0; - heap8[sp+-428] = r8; - r8 = r10 >> 2; - heap32[(fp+-194)] = r6; - heap32[(r8+1)] = r9; - heap32[(r8+2)] = r5; - heap32[(r8+3)] = r7; - r5 = (r2 + 4)|0; - r2 = (r2 + 68)|0; - heap32[(g0)] = r10; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r0; - heap32[(g0+4)] = r0; - heap32[(g0+5)] = r3; - _ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB280_3 -{ - f0 = heapFloat[(r1+41)]; - f1 = heapFloat[(r4+50)]; -if(!(f1 <=f0)) //_LBB280_3 -{ - heapFloat[(r4+50)] = f0; -} -} - return; -} - -function _ZN15btTriangleShapeD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV13btConvexShape; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN15btTriangleShapeD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV13btConvexShape; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; -if(!(r0 ==0)) //_LBB282_2 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = _2E_str10; - r1 = _2E_str3112; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 125; - _assert(i7); -} - -function _ZNK21btConvexInternalShape9serializeEPvP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+10)]; - r3 = heap32[(fp)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+7)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - r5 = heap32[(fp+1)]; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r_g0; - r5 = r5 >> 2; - heap32[(r5)] = r4; -if(!(r4 ==0)) //_LBB284_2 -{ - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+12)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); -} - r0 = r3 >> 2; - r1 = heap32[(r0+1)]; - heap32[(r5+1)] = r1; - heap32[(r5+7)] = heap32[(r0+7)]; - heap32[(r5+8)] = heap32[(r0+8)]; - heap32[(r5+9)] = heap32[(r0+9)]; - heap32[(r5+10)] = heap32[(r0+10)]; - heap32[(r5+3)] = heap32[(r0+3)]; - heap32[(r5+4)] = heap32[(r0+4)]; - heap32[(r5+5)] = heap32[(r0+5)]; - heap32[(r5+6)] = heap32[(r0+6)]; - heap32[(r5+11)] = heap32[(r0+11)]; - r0 = _2E_str1110; - r_g0 = r0; - return; -} - -function _ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0+23)]; - f1 = heapFloat[(r0+15)]; - f2 = heapFloat[(r0+19)]; - f3 = heapFloat[(r0+22)]; - f4 = heapFloat[(r0+14)]; - f5 = heapFloat[(r0+18)]; - f5 = f5-f4; - f0 = f0-f1; - f1 = f2-f1; - f2 = f3-f4; - f3 = heapFloat[(r0+21)]; - f4 = heapFloat[(r0+13)]; - f6 = heapFloat[(r0+17)]; - f3 = f3-f4; - f4 = f6-f4; - r0 = heap32[(fp+2)]; - f6 = f5*f0; - f7 = f1*f2; - f6 = f6-f7; - f1 = f1*f3; - f0 = f4*f0; - r0 = r0 >> 2; - f0 = f1-f0; - heapFloat[(r0)] = f6; - f1 = f4*f2; - f2 = f5*f3; - f1 = f1-f2; - heapFloat[(r0+1)] = f0; - heapFloat[(r0+2)] = f1; - f2 = f6*f6; - f0 = f0*f0; - heap32[(r0+3)] = 0; - f0 = f2+f0; - f1 = f1*f1; - f0 = f0+f1; - heapFloat[(g0)] = f0; - sqrtf(i7); - f1 = 1; - f0 = f1/f_g0; - f1 = heapFloat[(r0)]; - f1 = f1*f0; - heapFloat[(r0)] = f1; - f2 = heapFloat[(r0+1)]; - f2 = f2*f0; - heapFloat[(r0+1)] = f2; - f3 = heapFloat[(r0+2)]; - f0 = f3*f0; - heapFloat[(r0+2)] = f0; - r1 = heap32[(fp+1)]; -if(!(r1 ==0)) //_LBB285_2 -{ - f1 = -f1; - f2 = -f2; - heapFloat[(r0)] = f1; - f0 = -f0; - heapFloat[(r0+1)] = f2; - heapFloat[(r0+2)] = f0; -} - return; -} - -function _ZNK15btTriangleShape8isInsideERK9btVector3f(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; -var __label__ = 0; - i7 = sp + -48;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - f0 = heapFloat[(r1+19)]; - f1 = heapFloat[(r1+15)]; - f2 = heapFloat[(r1+23)]; - f3 = heapFloat[(r1+17)]; - f4 = heapFloat[(r1+13)]; - f5 = heapFloat[(r1+21)]; - f6 = heapFloat[(r1+22)]; - f7 = heapFloat[(r1+14)]; - f8 = heapFloat[(r1+18)]; - f0 = f0-f1; - f6 = f6-f7; - f3 = f3-f4; - f1 = f2-f1; - f2 = f8-f7; - f4 = f5-f4; - f5 = f2*f1; - f7 = f0*f6; - f0 = f0*f4; - f1 = f3*f1; - f5 = f5-f7; - f0 = f0-f1; - f1 = f3*f6; - f2 = f2*f4; - f1 = f1-f2; - f2 = f5*f5; - f3 = f0*f0; - f2 = f2+f3; - f3 = f1*f1; - f2 = f2+f3; - heapFloat[(g0)] = f2; - sqrtf(i7); - r2 = heap32[(fp+1)]; - f3 = 1; - r2 = r2 >> 2; - f2 = f3/f_g0; - f4 = f5*f2; - f5 = heapFloat[(r2)]; - f6 = heapFloat[(r1+13)]; - f0 = f0*f2; - f7 = heapFloat[(r2+1)]; - f8 = heapFloat[(r1+14)]; - f1 = f1*f2; - f2 = heapFloat[(r2+2)]; - f9 = heapFloat[(r1+15)]; - f5 = f5*f4; - f7 = f7*f0; - f6 = f6*f4; - f8 = f8*f0; - f5 = f5+f7; - f2 = f2*f1; - f6 = f6+f8; - f7 = f9*f1; - f8 = heapFloat[(fp+2)]; - f2 = f5+f2; - f5 = f6+f7; - f2 = f2-f5; - f5 = -f8; -_1: do { - if(f2 > 2; - r4 = heap32[(r4+23)]; - r5 = sp + -32; - r6 = sp + -16; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r5; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r5 >> 2; - r5 = r6 >> 2; - f2 = heapFloat[(r4+2)]; - f6 = heapFloat[(r5+2)]; - f7 = heapFloat[(r4+1)]; - f8 = heapFloat[(r5+1)]; - f9 = heapFloat[(fp+-8)]; - f10 = heapFloat[(fp+-4)]; - f2 = f2-f6; - f6 = f9-f10; - f7 = f7-f8; - f8 = f7*f1; - f9 = f2*f0; - f2 = f2*f4; - f10 = f6*f1; - f8 = f8-f9; - f2 = f2-f10; - f6 = f6*f0; - f7 = f7*f4; - f6 = f6-f7; - f7 = f8*f8; - f9 = f2*f2; - f7 = f7+f9; - f9 = f6*f6; - f7 = f7+f9; - heapFloat[(g0)] = f7; - sqrtf(i7); - f7 = f3/f_g0; - f9 = heapFloat[(r2)]; - f8 = f8*f7; - f10 = heapFloat[(fp+-4)]; - f11 = heapFloat[(r2+1)]; - f2 = f2*f7; - f12 = heapFloat[(r5+1)]; - f9 = f9*f8; - f11 = f11*f2; - f13 = heapFloat[(r2+2)]; - f6 = f6*f7; - f7 = heapFloat[(r5+2)]; - f8 = f10*f8; - f2 = f12*f2; - f9 = f9+f11; - f10 = f13*f6; - f2 = f8+f2; - f6 = f7*f6; - f7 = f9+f10; - f2 = f2+f6; - f2 = f7-f2; - if(f2 >2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0+23)]; - f1 = heapFloat[(r0+15)]; - f2 = heapFloat[(r0+19)]; - f3 = heapFloat[(r0+22)]; - f4 = heapFloat[(r0+14)]; - f5 = heapFloat[(r0+18)]; - f5 = f5-f4; - f0 = f0-f1; - f1 = f2-f1; - f2 = f3-f4; - f3 = heapFloat[(r0+21)]; - f4 = heapFloat[(r0+13)]; - f6 = heapFloat[(r0+17)]; - f3 = f3-f4; - f4 = f6-f4; - r1 = heap32[(fp+2)]; - f6 = f5*f0; - f7 = f1*f2; - f6 = f6-f7; - r1 = r1 >> 2; - f1 = f1*f3; - f0 = f4*f0; - f0 = f1-f0; - heapFloat[(r1)] = f6; - f1 = f4*f2; - f2 = f5*f3; - f1 = f1-f2; - heapFloat[(r1+1)] = f0; - heapFloat[(r1+2)] = f1; - f2 = f6*f6; - f0 = f0*f0; - heap32[(r1+3)] = 0; - f0 = f2+f0; - f1 = f1*f1; - f0 = f0+f1; - heapFloat[(g0)] = f0; - sqrtf(i7); - f1 = 1; - f0 = f1/f_g0; - f1 = heapFloat[(r1)]; - f1 = f1*f0; - heapFloat[(r1)] = f1; - f1 = heapFloat[(r1+1)]; - f1 = f1*f0; - heapFloat[(r1+1)] = f1; - f1 = heapFloat[(r1+2)]; - r2 = heap32[(fp+3)]; - f0 = f1*f0; - r2 = r2 >> 2; - heapFloat[(r1+2)] = f0; - heap32[(r2)] = heap32[(r0+13)]; - heap32[(r2+1)] = heap32[(r0+14)]; - heap32[(r2+2)] = heap32[(r0+15)]; - heap32[(r2+3)] = heap32[(r0+16)]; - return; -} - -function _ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -440;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = heapU8[r0+8]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = r0 == 0 ? r1 : r2; - r3 = r3 >> 2; - f0 = heapFloat[(r3+30)]; - f1 = heapFloat[(r3+14)]; - f2 = heapFloat[(r3+29)]; - f3 = heapFloat[(r3+13)]; - f4 = f2-f3; - f5 = f0-f1; - f6 = heapFloat[(r3+31)]; - f7 = heapFloat[(r3+15)]; - f8 = f6-f7; - f4 = f4*f4; - f5 = f5*f5; - f9 = heapFloat[(r3+62)]; - f4 = f4+f5; - f5 = f8*f8; - f8 = f9*f9; - f4 = f4+f5; -if(!(f8 >f4)) //_LBB288_23 -{ - r0 = r0 == 0 ? r2 : r1; - r0 = r0 >> 2; - r1 = heap32[(r0+48)]; - r2 = r1 >> 2; - r4 = heap32[(r2+1)]; - r4 = (r4 + -21)|0; -if(!(uint(r4) >uint(8))) //_LBB288_23 -{ - f4 = heapFloat[(r0+13)]; - f5 = heapFloat[(r0+3)]; - f8 = heapFloat[(r0+2)]; - f4 = -f4; - f9 = heapFloat[(r0+1)]; - f10 = heapFloat[(r0+7)]; - f11 = heapFloat[(r0+6)]; - f12 = heapFloat[(r0+14)]; - f13 = heapFloat[(r0+5)]; - f14 = heapFloat[(r3+3)]; - f15 = heapFloat[(r3+7)]; - f16 = heapFloat[(r3+2)]; - f17 = heapFloat[(r3+6)]; - f18 = heapFloat[(r3+1)]; - f19 = heapFloat[(r3+5)]; - f20 = heapFloat[(r3+19)]; - heapFloat[(fp+-63)] = f20; - f21 = heapFloat[(r3+23)]; - f22 = heapFloat[(r3+18)]; - f23 = heapFloat[(r3+22)]; - f24 = heapFloat[(r3+17)]; - f25 = heapFloat[(r3+21)]; - f26 = f5*f3; - heapFloat[(fp+-65)] = f26; - f27 = f10*f1; - f28 = f8*f3; - heapFloat[(fp+-66)] = f28; - f29 = f11*f1; - f3 = f9*f3; - heapFloat[(fp+-64)] = f3; - f1 = f13*f1; - f30 = heapFloat[(r0+11)]; - f3 = heapFloat[(r0+10)]; - f20 = heapFloat[(r0+15)]; - f26 = heapFloat[(r0+9)]; - f28 = f5*f2; - heapFloat[(fp+-67)] = f28; - f28 = f10*f0; - heapFloat[(fp+-69)] = f28; - f28 = f5*f4; - heapFloat[(fp+-68)] = f28; - f28 = f10*f12; - heapFloat[(fp+-71)] = f28; - f28 = f8*f2; - heapFloat[(fp+-70)] = f28; - f28 = f11*f0; - heapFloat[(fp+-73)] = f28; - f28 = f8*f4; - heapFloat[(fp+-72)] = f28; - f28 = f11*f12; - heapFloat[(fp+-78)] = f28; - f2 = f9*f2; - heapFloat[(fp+-74)] = f2; - f0 = f13*f0; - heapFloat[(fp+-76)] = f0; - f4 = f9*f4; - heapFloat[(fp+-75)] = f4; - f12 = f13*f12; - heapFloat[(fp+-77)] = f12; - f0 = heapFloat[(r3+11)]; - f2 = heapFloat[(r3+10)]; - f4 = heapFloat[(r3+9)]; - f12 = heapFloat[(r3+27)]; - f28 = heapFloat[(r3+26)]; - heapFloat[(fp+-62)] = f28; - f28 = heapFloat[(r3+25)]; - heapFloat[(fp+-61)] = f28; - f28 = heapFloat[(fp+-65)]; - f27 = f28+f27; - heapFloat[(fp+-65)] = f27; - f27 = f30*f7; - heapFloat[(fp+-99)] = f27; - f28 = heapFloat[(fp+-66)]; - f28 = f28+f29; - heapFloat[(fp+-66)] = f28; - f29 = f3*f7; - heapFloat[(fp+-98)] = f29; - f27 = heapFloat[(fp+-64)]; - f1 = f27+f1; - heapFloat[(fp+-80)] = f1; - f7 = f26*f7; - heapFloat[(fp+-97)] = f7; - f27 = f14*f5; - heapFloat[(fp+-64)] = f27; - f1 = f15*f10; - heapFloat[(fp+-82)] = f1; - f1 = f16*f5; - heapFloat[(fp+-79)] = f1; - f1 = f17*f10; - heapFloat[(fp+-84)] = f1; - f1 = f18*f5; - heapFloat[(fp+-81)] = f1; - f1 = f19*f10; - heapFloat[(fp+-86)] = f1; - f1 = f14*f8; - heapFloat[(fp+-83)] = f1; - f1 = f15*f11; - heapFloat[(fp+-88)] = f1; - f1 = f16*f8; - heapFloat[(fp+-85)] = f1; - f1 = f17*f11; - heapFloat[(fp+-92)] = f1; - f1 = f18*f8; - heapFloat[(fp+-87)] = f1; - f1 = f19*f11; - heapFloat[(fp+-93)] = f1; - f14 = f14*f9; - heapFloat[(fp+-89)] = f14; - f15 = f15*f13; - heapFloat[(fp+-94)] = f15; - f16 = f16*f9; - heapFloat[(fp+-90)] = f16; - f17 = f17*f13; - heapFloat[(fp+-95)] = f17; - f18 = f18*f9; - heapFloat[(fp+-91)] = f18; - f19 = f19*f13; - heapFloat[(fp+-96)] = f19; - f1 = heapFloat[(fp+-67)]; - f7 = heapFloat[(fp+-69)]; - f1 = f1+f7; - f7 = f30*f6; - f14 = heapFloat[(fp+-68)]; - f15 = heapFloat[(fp+-71)]; - f14 = f14-f15; - f15 = f30*f20; - f16 = heapFloat[(fp+-70)]; - f17 = heapFloat[(fp+-73)]; - f16 = f16+f17; - f17 = f3*f6; - f18 = heapFloat[(fp+-72)]; - f19 = heapFloat[(fp+-78)]; - f18 = f18-f19; - f19 = f3*f20; - f27 = heapFloat[(fp+-74)]; - f28 = heapFloat[(fp+-76)]; - f27 = f27+f28; - f6 = f26*f6; - f28 = heapFloat[(fp+-75)]; - f29 = heapFloat[(fp+-77)]; - f28 = f28-f29; - f20 = f26*f20; - f29 = heapFloat[(fp+-63)]; - f29 = f29*f5; - heapFloat[(fp+-67)] = f29; - f29 = f21*f10; - heapFloat[(fp+-69)] = f29; - f29 = f22*f5; - heapFloat[(fp+-68)] = f29; - f29 = f23*f10; - f5 = f24*f5; - heapFloat[(fp+-70)] = f5; - f5 = f25*f10; - heapFloat[(fp+-101)] = f5; - f10 = heapFloat[(fp+-63)]; - f5 = f10*f8; - heapFloat[(fp+-71)] = f5; - f5 = f21*f11; - heapFloat[(fp+-73)] = f5; - f5 = f22*f8; - heapFloat[(fp+-72)] = f5; - f5 = f23*f11; - heapFloat[(fp+-100)] = f5; - f8 = f24*f8; - heapFloat[(fp+-74)] = f8; - f5 = f25*f11; - heapFloat[(fp+-102)] = f5; - f8 = f10*f9; - heapFloat[(fp+-75)] = f8; - f5 = f21*f13; - heapFloat[(fp+-103)] = f5; - f8 = f22*f9; - heapFloat[(fp+-78)] = f8; - f5 = f23*f13; - heapFloat[(fp+-104)] = f5; - f8 = f24*f9; - heapFloat[(fp+-76)] = f8; - f5 = f25*f13; - heapFloat[(fp+-105)] = f5; - f8 = heapFloat[(fp+-65)]; - f9 = heapFloat[(fp+-99)]; - f8 = f8+f9; - heapFloat[(fp+-77)] = f8; - f9 = f14-f15; - f1 = f1+f7; - heapFloat[(fp+-63)] = f1; - f7 = heapFloat[(fp+-66)]; - f10 = heapFloat[(fp+-98)]; - f7 = f7+f10; - heapFloat[(fp+-98)] = f7; - f10 = f18-f19; - f11 = f16+f17; - heapFloat[(fp+-65)] = f11; - f13 = heapFloat[(fp+-80)]; - f14 = heapFloat[(fp+-97)]; - f1 = f13+f14; - heapFloat[(fp+-80)] = f1; - f5 = f28-f20; - f6 = f27+f6; - heapFloat[(fp+-66)] = f6; - f7 = heapFloat[(fp+-64)]; - f8 = heapFloat[(fp+-82)]; - f1 = f7+f8; - heapFloat[(fp+-64)] = f1; - f1 = f0*f30; - heapFloat[(fp+-82)] = f1; - f6 = heapFloat[(fp+-79)]; - f7 = heapFloat[(fp+-84)]; - f1 = f6+f7; - heapFloat[(fp+-79)] = f1; - f1 = f2*f30; - heapFloat[(fp+-84)] = f1; - f6 = heapFloat[(fp+-81)]; - f7 = heapFloat[(fp+-86)]; - f1 = f6+f7; - heapFloat[(fp+-81)] = f1; - f1 = f4*f30; - heapFloat[(fp+-86)] = f1; - f6 = heapFloat[(fp+-83)]; - f7 = heapFloat[(fp+-88)]; - f1 = f6+f7; - heapFloat[(fp+-83)] = f1; - f1 = f0*f3; - heapFloat[(fp+-88)] = f1; - f6 = heapFloat[(fp+-85)]; - f7 = heapFloat[(fp+-92)]; - f1 = f6+f7; - heapFloat[(fp+-85)] = f1; - f1 = f2*f3; - heapFloat[(fp+-92)] = f1; - f6 = heapFloat[(fp+-87)]; - f7 = heapFloat[(fp+-93)]; - f1 = f6+f7; - heapFloat[(fp+-87)] = f1; - f1 = f4*f3; - heapFloat[(fp+-93)] = f1; - f6 = heapFloat[(fp+-89)]; - f7 = heapFloat[(fp+-94)]; - f1 = f6+f7; - heapFloat[(fp+-89)] = f1; - f0 = f0*f26; - f6 = heapFloat[(fp+-90)]; - f7 = heapFloat[(fp+-95)]; - f6 = f6+f7; - f2 = f2*f26; - f7 = heapFloat[(fp+-91)]; - f8 = heapFloat[(fp+-96)]; - f7 = f7+f8; - f4 = f4*f26; - f8 = heapFloat[(fp+-67)]; - f11 = heapFloat[(fp+-69)]; - f8 = f8+f11; - f11 = f12*f30; - f13 = heapFloat[(fp+-68)]; - f13 = f13+f29; - f28 = heapFloat[(fp+-62)]; - f14 = f28*f30; - f15 = heapFloat[(fp+-70)]; - f16 = heapFloat[(fp+-101)]; - f15 = f15+f16; - f28 = heapFloat[(fp+-61)]; - f16 = f28*f30; - f17 = heapFloat[(fp+-71)]; - f18 = heapFloat[(fp+-73)]; - f17 = f17+f18; - f18 = f12*f3; - f19 = heapFloat[(fp+-72)]; - f20 = heapFloat[(fp+-100)]; - f19 = f19+f20; - f28 = heapFloat[(fp+-62)]; - f20 = f28*f3; - f21 = heapFloat[(fp+-74)]; - f22 = heapFloat[(fp+-102)]; - f21 = f21+f22; - f28 = heapFloat[(fp+-61)]; - f3 = f28*f3; - f22 = heapFloat[(fp+-75)]; - f23 = heapFloat[(fp+-103)]; - f22 = f22+f23; - f12 = f12*f26; - f23 = heapFloat[(fp+-78)]; - f24 = heapFloat[(fp+-104)]; - f23 = f23+f24; - f28 = heapFloat[(fp+-62)]; - f24 = f28*f26; - f25 = heapFloat[(fp+-76)]; - f27 = heapFloat[(fp+-105)]; - f25 = f25+f27; - f28 = heapFloat[(fp+-61)]; - f26 = f28*f26; - f27 = heapFloat[(fp+-77)]; - f27 = f27+f9; - f28 = heapFloat[(fp+-98)]; - f28 = f28+f10; - f29 = heapFloat[(fp+-80)]; - f29 = f29+f5; - f30 = heapFloat[(fp+-64)]; - f1 = heapFloat[(fp+-82)]; - f1 = f30+f1; - heapFloat[(fp+-61)] = f1; - f1 = heapFloat[(fp+-79)]; - f30 = heapFloat[(fp+-84)]; - f1 = f1+f30; - heapFloat[(fp+-62)] = f1; - f1 = heapFloat[(fp+-81)]; - f30 = heapFloat[(fp+-86)]; - f1 = f1+f30; - heapFloat[(fp+-64)] = f1; - f1 = heapFloat[(fp+-83)]; - f30 = heapFloat[(fp+-88)]; - f1 = f1+f30; - heapFloat[(fp+-67)] = f1; - f1 = heapFloat[(fp+-85)]; - f30 = heapFloat[(fp+-92)]; - f1 = f1+f30; - heapFloat[(fp+-68)] = f1; - f1 = heapFloat[(fp+-87)]; - f30 = heapFloat[(fp+-93)]; - f1 = f1+f30; - f30 = heapFloat[(fp+-89)]; - f0 = f30+f0; - f2 = f6+f2; - f4 = f7+f4; - f6 = heapFloat[(fp+-63)]; - f6 = f6+f9; - f7 = heapFloat[(fp+-65)]; - f7 = f7+f10; - f9 = heapFloat[(fp+-66)]; - f5 = f9+f5; - f8 = f8+f11; - f9 = f13+f14; - f10 = f15+f16; - f11 = f17+f18; - f13 = f19+f20; - f3 = f21+f3; - f12 = f22+f12; - f14 = f23+f24; - f15 = f25+f26; - r0 = sp + -16; - r4 = r0 >> 2; - heapFloat[(fp+-4)] = f29; - heapFloat[(r4+1)] = f28; - heapFloat[(r4+2)] = f27; - heap32[(r4+3)] = 0; - if(f5 > 2; - heapFloat[(fp+-8)] = f29; - heapFloat[(r6+1)] = f28; - heapFloat[(r6+2)] = f27; - heap32[(r6+3)] = 0; - if(f29 > 2; - heap32[(fp+-60)] = r4; - heapFloat[(r6+1)] = f4; - heapFloat[(r6+2)] = f2; - heapFloat[(r6+3)] = f0; - heap32[(r6+4)] = 0; - heapFloat[(r6+5)] = f1; - f0 = heapFloat[(fp+-68)]; - heapFloat[(r6+6)] = f0; - f0 = heapFloat[(fp+-67)]; - heapFloat[(r6+7)] = f0; - heap32[(r6+8)] = 0; - f0 = heapFloat[(fp+-64)]; - heapFloat[(r6+9)] = f0; - f0 = heapFloat[(fp+-62)]; - heapFloat[(r6+10)] = f0; - f0 = heapFloat[(fp+-61)]; - heapFloat[(r6+11)] = f0; - heap32[(r6+12)] = 0; - heapFloat[(r6+13)] = f29; - heapFloat[(r6+14)] = f28; - heapFloat[(r6+15)] = f27; - heap32[(r6+16)] = 0; - heapFloat[(r6+17)] = f15; - heapFloat[(r6+18)] = f14; - heapFloat[(r6+19)] = f12; - heap32[(r6+20)] = 0; - heapFloat[(r6+21)] = f3; - heapFloat[(r6+22)] = f13; - heapFloat[(r6+23)] = f11; - heap32[(r6+24)] = 0; - heapFloat[(r6+25)] = f10; - heapFloat[(r6+26)] = f9; - heapFloat[(r6+27)] = f8; - heap32[(r6+28)] = 0; - heapFloat[(r6+29)] = f5; - heapFloat[(r6+30)] = f7; - heapFloat[(r6+31)] = f6; - heap32[(r6+32)] = 0; - heapFloat[(r6+49)] = f22; - heap32[(r6+50)] = heap32[(r3+60)]; -if(!(r1 ==0)) //_LBB288_23 -{ - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+15)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r0; - heap32[(g0+3)] = r5; - __FUNCTION_TABLE__[(r2)>>2](i7); - f0 = heapFloat[(r6+50)]; - f1 = heapFloat[(r3+60)]; -if(!(f0 >=f1)) //_LBB288_23 -{ - heapFloat[(r3+60)] = f0; - f_g0 = f0; - return; -} -} -} -} - f0 = 1; - f_g0 = f0; - return; -} - -function _ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -80;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+8]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+1)]; - r4 = r1 == 0 ? r2 : r3; - r5 = r4 >> 2; - r5 = heap32[(r5+48)]; - r6 = r5 >> 2; - r7 = heap32[(r6+1)]; - r7 = (r7 + -21)|0; -if(!(uint(r7) >uint(8))) //_LBB289_8 -{ - r1 = r1 == 0 ? r3 : r2; - r2 = r1 >> 2; - r2 = heap32[(r2+48)]; - r2 = r2 >> 2; - r2 = heap32[(r2+1)]; -if(!(r2 >19)) //_LBB289_8 -{ - r2 = heap32[(fp+3)]; - r3 = heap32[(fp+4)]; - r7 = heap32[(r6)]; - r7 = r7 >> 2; - r7 = heap32[(r7+11)]; - heap32[(g0)] = r5; - r8 = r0 >> 2; - __FUNCTION_TABLE__[(r7)>>2](i7); - f0 = f_g0; - r7 = r3 >> 2; - r9 = heap32[(r8+19)]; - heap32[(r7+1)] = r9; - heap32[(r8+16)] = r2; - heapFloat[(r8+17)] = f0; - heap32[(r8+14)] = r3; - r2 = heap32[(r8+4)]; - r9 = heap32[(r8+5)]; - r9 = r9 >> 2; - r2 = r2 >> 2; - f1 = heapFloat[(r9+1)]; - f2 = heapFloat[(r2+1)]; - f3 = heapFloat[(r9+5)]; - f4 = heapFloat[(r2+5)]; - f5 = heapFloat[(r2+2)]; - f6 = heapFloat[(r2+6)]; - f7 = f2*f1; - f8 = f4*f3; - f9 = heapFloat[(r9+9)]; - f10 = heapFloat[(r2+9)]; - f11 = heapFloat[(r9+2)]; - f12 = heapFloat[(r9+6)]; - f13 = heapFloat[(r9+3)]; - f14 = heapFloat[(r2+13)]; - f15 = heapFloat[(r2+3)]; - f16 = heapFloat[(r9+7)]; - f17 = heapFloat[(r9+14)]; - f18 = heapFloat[(r2+14)]; - f19 = heapFloat[(r2+7)]; - f20 = heapFloat[(r9+10)]; - f21 = heapFloat[(r9+15)]; - f22 = heapFloat[(r9+11)]; - f23 = heapFloat[(r2+15)]; - f24 = heapFloat[(r2+11)]; - f25 = heapFloat[(r2+10)]; - f26 = heapFloat[(r9+13)]; - f27 = f5*f1; - f28 = f6*f3; - f7 = f7+f8; - f8 = f10*f9; - r9 = sp + -64; - f29 = f15*f1; - f30 = f19*f3; - f27 = f27+f28; - f28 = f25*f9; - f7 = f7+f8; - r10 = r9 >> 2; - f8 = f29+f30; - f29 = f24*f9; - f27 = f27+f28; - heapFloat[(fp+-16)] = f7; - f7 = f2*f11; - f28 = f4*f12; - f8 = f8+f29; - heapFloat[(r10+1)] = f27; - heapFloat[(r10+2)] = f8; - f8 = f5*f11; - f27 = f6*f12; - f7 = f7+f28; - f28 = f10*f20; - f29 = f15*f11; - f30 = f19*f12; - f8 = f8+f27; - f27 = f25*f20; - f7 = f7+f28; - heap32[(r10+3)] = 0; - f28 = f29+f30; - f29 = f24*f20; - f8 = f8+f27; - heapFloat[(r10+4)] = f7; - f2 = f2*f13; - f4 = f4*f16; - f7 = f28+f29; - heapFloat[(r10+5)] = f8; - heapFloat[(r10+6)] = f7; - f5 = f5*f13; - f6 = f6*f16; - f2 = f2+f4; - f4 = f10*f22; - f7 = -f26; - f8 = f15*f13; - f10 = f19*f16; - f5 = f5+f6; - f6 = f25*f22; - f2 = f2+f4; - heap32[(r10+7)] = 0; - f4 = f1*f14; - f15 = f3*f18; - f1 = f1*f7; - f3 = f3*f17; - f8 = f8+f10; - f10 = f24*f22; - f5 = f5+f6; - heapFloat[(r10+8)] = f2; - f2 = f11*f14; - f6 = f12*f18; - f11 = f11*f7; - f12 = f12*f17; - f4 = f4+f15; - f15 = f9*f23; - f1 = f1-f3; - f3 = f9*f21; - f8 = f8+f10; - heapFloat[(r10+9)] = f5; - heapFloat[(r10+10)] = f8; - f5 = f13*f14; - f8 = f16*f18; - f7 = f13*f7; - f9 = f16*f17; - f2 = f2+f6; - f6 = f20*f23; - f10 = f11-f12; - f11 = f20*f21; - f4 = f4+f15; - f1 = f1-f3; - f3 = f5+f8; - f5 = f22*f23; - f7 = f7-f9; - f8 = f22*f21; - f2 = f2+f6; - f6 = f10-f11; - f1 = f4+f1; - heap32[(r10+11)] = 0; - f3 = f3+f5; - f4 = f7-f8; - f2 = f2+f6; - heapFloat[(r10+12)] = f1; - f1 = f3+f4; - heapFloat[(r10+13)] = f2; - heapFloat[(r10+14)] = f1; - heap32[(r10+15)] = 0; - r2 = heap32[(r2+48)]; - r10 = r2 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+2)]; - r11 = (r0 + 40)|0; - r12 = (r0 + 24)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r12; - heap32[(g0+3)] = r11; - __FUNCTION_TABLE__[(r10)>>2](i7); - f1 = heapFloat[(r8+10)]; - f1 = f1+f0; - heapFloat[(r8+10)] = f1; - f1 = heapFloat[(r8+11)]; - f1 = f1+f0; - heapFloat[(r8+11)] = f1; - f1 = heapFloat[(r8+12)]; - f1 = f1+f0; - heapFloat[(r8+12)] = f1; - f1 = heapFloat[(r8+6)]; - f1 = f1-f0; - heapFloat[(r8+6)] = f1; - f1 = heapFloat[(r8+7)]; - f1 = f1-f0; - heapFloat[(r8+7)] = f1; - f1 = heapFloat[(r8+8)]; - f0 = f1-f0; - heapFloat[(r8+8)] = f0; - r2 = heap32[(r8+19)]; - r2 = r2 >> 2; - heap32[(r2+277)] = r1; - heap32[(r2+278)] = r4; - r1 = heap32[(r6)]; - r1 = r1 >> 2; - r1 = heap32[(r1+15)]; - r0 = (r0 + 12)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r12; - heap32[(g0+3)] = r11; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r7+1)]; - if(r0 !=0) //_LBB289_4 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+279)]; -if(!(r2 ==0)) //_LBB289_8 -{ - r1 = heap32[(r1+277)]; - r2 = heap32[(r7+34)]; - if(r1 ==r2) //_LBB289_7 -{ - r1 = (r3 + 8)|0; - r2 = (r3 + 72)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); -} -else{ - r1 = (r3 + 72)|0; - r3 = (r3 + 8)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r3; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); - return; -} -} -} -else{ - r0 = _2E_str59; - r3 = _2E_str160; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = 101; - _assert(i7); -} -} -} - return; -} - -function _ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+19)]; -if(!(r1 ==0)) //_LBB290_22 -{ - r2 = heap32[(fp+1)]; - r3 = r2 >> 2; - r4 = heap32[(r3+2)]; - r5 = heap32[(r3+1)]; - if(r4 ==r5) //_LBB290_3 -{ - r6 = 1; - r7 = r5 << 1; - r7 = r5 == 0 ? r6 : r7; -if(!(r4 >=r7)) //_LBB290_2 -{ - if(r7 !=0) //_LBB290_6 -{ - r1 = gNumAlignedAllocs; - r1 = r1 >> 2; - r4 = heap32[(r1)]; - r8 = r7 << 2; - r4 = (r4 + 1)|0; - r8 = r8 | 3; - heap32[(r1)] = r4; - r1 = (r8 + 16)|0; - heap32[(g0)] = r1; - malloc(i7); - r1 = r_g0; - if(r1 !=0) //_LBB290_8 -{ - r4 = 0; - r8 = (r1 + 4)|0; - r4 = (r4 - r8)|0; - r4 = r4 & 15; - r4 = (r1 + r4)|0; - r8 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r1; - r1 = r8; -} -} -else{ - r1 = 0; -} - r4 = (r2 + 12)|0; - if(r5 <1) //_LBB290_11 -{ - r8 = r4 >> 2; - r9 = heap32[(r8)]; -} -else{ - r8 = 0; -_14: while(true){ - r9 = r4 >> 2; - r9 = heap32[(r9)]; - r10 = r8 << 2; - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - r10 = (r1 + r10)|0; - r11 = heap32[(r11)]; - r8 = (r8 + 1)|0; - r10 = r10 >> 2; - heap32[(r10)] = r11; -if(!(r5 !=r8)) //_LBB290_12 -{ -break _14; -} -} - r4 = (r2 + 12)|0; -} - if(r9 !=0) //_LBB290_16 -{ - r8 = heapU8[r2+16]; - if(r8 !=0) //_LBB290_18 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r8 = heap32[(r5)]; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r5)] = r8; - r5 = heap32[(r9+-1)]; - heap32[(g0)] = r5; - free(i7); - r5 = heap32[(r3+1)]; -} - r8 = r4 >> 2; - heap32[(r8)] = 0; -} - r4 = r4 >> 2; - heap8[r2+16] = r6; - heap32[(r4)] = r1; - heap32[(r3+2)] = r7; - r1 = heap32[(r0+19)]; -} -} - r0 = r5 << 2; - r2 = heap32[(r3+3)]; - r0 = (r2 + r0)|0; - r0 = r0 >> 2; - heap32[(r0)] = r1; - r0 = heap32[(r3+1)]; - r0 = (r0 + 1)|0; - heap32[(r3+1)] = r0; -} - return; -} - -function _ZN33btConvexConcaveCollisionAlgorithmD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV33btConvexConcaveCollisionAlgorithm; - r2 = _ZTV24btConvexTriangleCallback; - r1 = (r1 + 8)|0; - r3 = r0 >> 2; - r2 = (r2 + 8)|0; - heap32[(r3)] = r1; - heap32[(r3+3)] = r2; - r1 = heap32[(r3+15)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+5)]; - r4 = heap32[(r3+19)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r4; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = heap32[(r3+15)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - r4 = heap32[(r3+19)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r4; - r1 = _ZTV18btTriangleCallback; - r4 = _ZTV30btActivatingCollisionAlgorithm; - r1 = (r1 + 8)|0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = (r4 + 8)|0; - heap32[(r3+3)] = r1; - heap32[(r3)] = r2; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN33btConvexConcaveCollisionAlgorithmD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV33btConvexConcaveCollisionAlgorithm; - r2 = _ZTV24btConvexTriangleCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - r2 = (r2 + 8)|0; - heap32[(r0)] = r1; - heap32[(r0+3)] = r2; - r1 = heap32[(r0+15)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+5)]; - r3 = heap32[(r0+19)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = heap32[(r0+15)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - r3 = heap32[(r0+19)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - r1 = _ZTV18btTriangleCallback; - r3 = _ZTV30btActivatingCollisionAlgorithm; - r1 = (r1 + 8)|0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = (r3 + 8)|0; - heap32[(r0+3)] = r1; - heap32[(r0)] = r2; - return; -} - -function _ZN23btConvexConvexAlgorithm10CreateFuncD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN23btConvexConvexAlgorithm10CreateFuncE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN23btConvexConvexAlgorithm10CreateFuncD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN23btConvexConvexAlgorithm10CreateFuncE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 36; - r1 = heap32[(fp)]; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = r1 >> 2; - r3 = _ZTV20btCollisionAlgorithm; - r4 = heap32[(r1+5)]; - r5 = heap32[(r1+4)]; - r6 = heap32[(r0+1)]; - r7 = heap32[(r1+2)]; - r1 = heap32[(r1+3)]; - r8 = r_g0 >> 2; - r3 = (r3 + 8)|0; - heap32[(r8)] = r3; - r0 = heap32[(r0)]; - r3 = _ZTV23btConvexConvexAlgorithm; - r3 = (r3 + 8)|0; - heap32[(r8+1)] = r0; - heap32[(r8)] = r3; - heap32[(r8+2)] = r1; - r0 = 0; - heap32[(r8+3)] = r7; - heap8[r_g0+16] = r0; - heap32[(r8+5)] = r6; - heap8[r_g0+24] = r0; - heap32[(r8+7)] = r5; - heap32[(r8+8)] = r4; - return; -} - -function _ZN24btPerturbedContactResultD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV24btPerturbedContactResult; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN24btPerturbedContactResultD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV24btPerturbedContactResult; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -104;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(fp+2)]; - r2 = r2 >> 2; - f0 = heapFloat[(r1+2)]; - heapFloat[(fp+-5)] = f0; - f1 = heapFloat[(r1+1)]; - heapFloat[(fp+-6)] = f1; - f2 = heapFloat[(fp+3)]; - f3 = heapFloat[(r1)]; - heapFloat[(fp+-7)] = f3; - f4 = heapFloat[(r2+2)]; - heapFloat[(fp+-11)] = f4; - f0 = f0*f2; - f5 = heapFloat[(r2+1)]; - heapFloat[(fp+-12)] = f5; - f1 = f1*f2; - f6 = heapFloat[(r2)]; - heapFloat[(fp+-13)] = f6; - f2 = f3*f2; - r1 = heap32[(fp)]; - f0 = f4+f0; - heapFloat[(fp+-8)] = f0; - f0 = f5+f1; - heapFloat[(fp+-9)] = f0; - f0 = f6+f2; - heapFloat[(fp+-10)] = f0; - r2 = heapU8[r1+356]; - if(r2 ==0) //_LBB298_2 -{ - r2 = r1 >> 2; - f3 = heapFloat[(r2+69)]; - f3 = -f3; - f0 = heapFloat[(r2+57)]; - f1 = heapFloat[(r2+58)]; - f2 = heapFloat[(r2+61)]; - f4 = heapFloat[(r2+70)]; - f5 = heapFloat[(r2+62)]; - f6 = heapFloat[(r2+77)]; - f7 = heapFloat[(r2+78)]; - f8 = heapFloat[(r2+73)]; - f9 = heapFloat[(r2+65)]; - f10 = heapFloat[(r2+74)]; - f11 = heapFloat[(r2+66)]; - f12 = heapFloat[(r2+71)]; - f13 = heapFloat[(r2+59)]; - f14 = heapFloat[(r2+63)]; - f15 = f0*f3; - f16 = f2*f4; - f17 = f1*f3; - f18 = f5*f4; - f19 = heapFloat[(r2+81)]; - f20 = heapFloat[(r2+82)]; - f21 = heapFloat[(r2+79)]; - f22 = heapFloat[(r2+67)]; - f23 = heapFloat[(r2+75)]; - f24 = f0*f6; - f25 = f1*f7; - f26 = f2*f6; - f27 = f5*f7; - f28 = f0*f8; - heapFloat[(fp+-14)] = f28; - f28 = f1*f10; - heapFloat[(fp+-15)] = f28; - f29 = f2*f8; - f28 = f5*f10; - f15 = f15-f16; - f16 = f9*f12; - f17 = f17-f18; - f18 = f11*f12; - f3 = f13*f3; - heapFloat[(fp+-16)] = f3; - f3 = f14*f4; - heapFloat[(fp+-20)] = f3; - f4 = f15-f16; - f15 = f17-f18; - f16 = heapFloat[(r2+83)]; - f0 = f0*f19; - f1 = f1*f20; - f2 = f2*f19; - f5 = f5*f20; - f17 = f24+f25; - heapFloat[(fp+-17)] = f17; - f3 = f13*f21; - heapFloat[(fp+-21)] = f3; - f17 = f26+f27; - heapFloat[(fp+-18)] = f17; - f18 = f14*f21; - f24 = f9*f6; - heapFloat[(fp+-19)] = f24; - f25 = f11*f7; - f26 = heapFloat[(fp+-14)]; - f27 = heapFloat[(fp+-15)]; - f26 = f26+f27; - f27 = f13*f23; - f28 = f29+f28; - f29 = f14*f23; - f30 = f9*f8; - f3 = f11*f10; - f17 = heapFloat[(fp+-16)]; - f24 = heapFloat[(fp+-20)]; - f17 = f17-f24; - f12 = f22*f12; - f12 = f17-f12; - f0 = f0+f1; - f1 = f13*f16; - f2 = f2+f5; - f5 = f14*f16; - f9 = f9*f19; - f11 = f11*f20; - f17 = heapFloat[(fp+-17)]; - f13 = heapFloat[(fp+-21)]; - f13 = f17+f13; - f14 = f26+f27; - f17 = heapFloat[(fp+-18)]; - f17 = f17+f18; - f18 = f28+f29; - f24 = heapFloat[(fp+-19)]; - f24 = f24+f25; - f25 = f22*f21; - f6 = f6*f4; - f7 = f7*f15; - f3 = f30+f3; - f26 = f22*f23; - f8 = f8*f4; - f10 = f10*f15; - f0 = f0+f1; - f1 = f2+f5; - f2 = f9+f11; - f5 = f22*f16; - f4 = f19*f4; - f9 = f20*f15; - f11 = heapFloat[(fp+-13)]; - f13 = f13*f11; - f15 = heapFloat[(fp+-12)]; - f17 = f17*f15; - f19 = f24+f25; - f3 = f3+f26; - f6 = f6+f7; - f7 = f21*f12; - f14 = f14*f11; - f18 = f18*f15; - f8 = f8+f10; - f10 = f23*f12; - f2 = f2+f5; - f0 = f0*f11; - f1 = f1*f15; - f4 = f4+f9; - f5 = f16*f12; - f9 = f13+f17; - f11 = heapFloat[(fp+-11)]; - f12 = f19*f11; - f6 = f6+f7; - f7 = heapFloat[(r2+86)]; - f13 = f14+f18; - f3 = f3*f11; - f8 = f8+f10; - f10 = heapFloat[(r2+85)]; - f14 = heapFloat[(r2+87)]; - f4 = f4+f5; - f0 = f0+f1; - f1 = f2*f11; - f2 = f9+f12; - f5 = f6+f7; - f3 = f13+f3; - f6 = f8+f10; - f3 = f3+f6; - f2 = f2+f5; - f0 = f0+f1; - f1 = f4+f14; - r2 = sp + -16; - f4 = heapFloat[(fp+-10)]; - f4 = f4-f3; - f5 = heapFloat[(fp+-9)]; - f5 = f5-f2; - f0 = f0+f1; - f1 = heapFloat[(fp+-7)]; - f1 = f4*f1; - f4 = heapFloat[(fp+-6)]; - f4 = f5*f4; - f5 = heapFloat[(fp+-8)]; - f5 = f5-f0; - r2 = r2 >> 2; - heapFloat[(fp+-4)] = f3; - heapFloat[(r2+1)] = f2; - f3 = f1+f4; - f1 = heapFloat[(fp+-5)]; - f1 = f5*f1; - f3 = f3+f1; - heapFloat[(r2+2)] = f0; - heap32[(r2+3)] = 0; -} -else{ - r2 = r1 >> 2; - f0 = heapFloat[(r2+53)]; - f0 = -f0; - f1 = heapFloat[(r2+41)]; - f2 = heapFloat[(r2+42)]; - f3 = heapFloat[(r2+45)]; - f4 = heapFloat[(r2+54)]; - f5 = heapFloat[(r2+46)]; - f6 = heapFloat[(r2+77)]; - f7 = heapFloat[(r2+78)]; - f8 = heapFloat[(r2+73)]; - f9 = heapFloat[(r2+49)]; - f10 = heapFloat[(r2+74)]; - f11 = heapFloat[(r2+50)]; - f12 = heapFloat[(r2+55)]; - f13 = heapFloat[(r2+43)]; - f14 = heapFloat[(r2+47)]; - f15 = f1*f0; - f16 = f3*f4; - f17 = f2*f0; - f18 = f5*f4; - f19 = heapFloat[(r2+81)]; - f20 = heapFloat[(r2+82)]; - f21 = heapFloat[(r2+79)]; - f22 = heapFloat[(r2+51)]; - f23 = heapFloat[(r2+75)]; - f24 = f1*f8; - f25 = f2*f10; - f26 = f3*f8; - f27 = f5*f10; - f28 = f1*f6; - heapFloat[(fp+-14)] = f28; - f29 = f2*f7; - f30 = f3*f6; - f28 = f5*f7; - f15 = f15-f16; - f16 = f9*f12; - f17 = f17-f18; - f18 = f11*f12; - f0 = f13*f0; - heapFloat[(fp+-15)] = f0; - f0 = f14*f4; - heapFloat[(fp+-16)] = f0; - f4 = f15-f16; - f15 = f17-f18; - f16 = heapFloat[(r2+83)]; - f0 = f24+f25; - heapFloat[(fp+-17)] = f0; - f17 = f13*f23; - f0 = f26+f27; - heapFloat[(fp+-18)] = f0; - f18 = f14*f23; - f24 = f9*f8; - f25 = f11*f10; - f26 = heapFloat[(fp+-14)]; - f26 = f26+f29; - f27 = f13*f21; - f28 = f30+f28; - f29 = f14*f21; - f30 = f9*f6; - f0 = f11*f7; - f1 = f1*f19; - heapFloat[(fp+-14)] = f1; - f2 = f2*f20; - f1 = f3*f19; - heapFloat[(fp+-19)] = f1; - f3 = f5*f20; - f5 = heapFloat[(fp+-15)]; - f1 = heapFloat[(fp+-16)]; - f1 = f5-f1; - f5 = f22*f12; - f1 = f1-f5; - f5 = heapFloat[(fp+-17)]; - f5 = f5+f17; - f12 = f26+f27; - f17 = heapFloat[(fp+-18)]; - f17 = f17+f18; - f18 = f28+f29; - f24 = f24+f25; - f25 = f22*f23; - f8 = f8*f4; - f10 = f10*f15; - f0 = f30+f0; - f26 = f22*f21; - f6 = f6*f4; - f7 = f7*f15; - f27 = heapFloat[(fp+-14)]; - f2 = f27+f2; - f13 = f13*f16; - f27 = heapFloat[(fp+-19)]; - f3 = f27+f3; - f14 = f14*f16; - f9 = f9*f19; - f11 = f11*f20; - f2 = f2+f13; - f3 = f3+f14; - f13 = heapFloat[(fp+-10)]; - f5 = f5*f13; - f14 = heapFloat[(fp+-9)]; - f17 = f17*f14; - f24 = f24+f25; - f0 = f0+f26; - f8 = f8+f10; - f10 = f23*f1; - f12 = f12*f13; - f18 = f18*f14; - f6 = f6+f7; - f7 = f21*f1; - f9 = f9+f11; - f11 = f22*f16; - f4 = f19*f4; - f15 = f20*f15; - f9 = f9+f11; - f5 = f5+f17; - f11 = heapFloat[(fp+-8)]; - f17 = f24*f11; - f8 = f8+f10; - f10 = heapFloat[(r2+85)]; - f12 = f12+f18; - f0 = f0*f11; - f6 = f6+f7; - f7 = heapFloat[(r2+86)]; - f2 = f2*f13; - f3 = f3*f14; - f4 = f4+f15; - f1 = f16*f1; - f13 = heapFloat[(r2+87)]; - f1 = f4+f1; - f4 = f5+f17; - f5 = f8+f10; - f0 = f12+f0; - f6 = f6+f7; - f2 = f2+f3; - f3 = f9*f11; - f4 = f4+f5; - f0 = f0+f6; - f2 = f2+f3; - f1 = f1+f13; - f3 = heapFloat[(fp+-13)]; - f3 = f4-f3; - f5 = heapFloat[(fp+-12)]; - f5 = f0-f5; - f1 = f2+f1; - f2 = heapFloat[(fp+-7)]; - f3 = f3*f2; - f6 = heapFloat[(fp+-6)]; - f5 = f5*f6; - f7 = heapFloat[(fp+-11)]; - f7 = f1-f7; - f3 = f3+f5; - f5 = heapFloat[(fp+-5)]; - f7 = f7*f5; - f3 = f3+f7; - f2 = f2*f3; - r2 = sp + -16; - f6 = f6*f3; - f2 = f4+f2; - f4 = f5*f3; - r2 = r2 >> 2; - f0 = f0+f6; - heapFloat[(fp+-4)] = f2; - f1 = f1+f4; - heapFloat[(r2+1)] = f0; - heapFloat[(r2+2)] = f1; - heap32[(r2+3)] = 0; -} - r1 = r1 >> 2; - r1 = heap32[(r1+40)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - r3 = sp + -16; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r3; - heapFloat[(g0+3)] = f3; - __FUNCTION_TABLE__[(r2)>>2](i7); - return; -} - -function _ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+5)]; -if(!(r2 ==0)) //_LBB299_23 -{ - r0 = heapU8[r0+16]; -if(!(r0 ==0)) //_LBB299_23 -{ - r0 = heap32[(fp+1)]; - r3 = r0 >> 2; - r4 = heap32[(r3+2)]; - r5 = heap32[(r3+1)]; - if(r4 ==r5) //_LBB299_4 -{ - r6 = 1; - r7 = r5 << 1; - r7 = r5 == 0 ? r6 : r7; -if(!(r4 >=r7)) //_LBB299_3 -{ - if(r7 !=0) //_LBB299_7 -{ - r2 = gNumAlignedAllocs; - r2 = r2 >> 2; - r4 = heap32[(r2)]; - r8 = r7 << 2; - r4 = (r4 + 1)|0; - r8 = r8 | 3; - heap32[(r2)] = r4; - r2 = (r8 + 16)|0; - heap32[(g0)] = r2; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB299_9 -{ - r4 = 0; - r8 = (r2 + 4)|0; - r4 = (r4 - r8)|0; - r4 = r4 & 15; - r4 = (r2 + r4)|0; - r8 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r2; - r2 = r8; -} -} -else{ - r2 = 0; -} - r4 = (r0 + 12)|0; - if(r5 <1) //_LBB299_12 -{ - r8 = r4 >> 2; - r9 = heap32[(r8)]; -} -else{ - r8 = 0; -_15: while(true){ - r9 = r4 >> 2; - r9 = heap32[(r9)]; - r10 = r8 << 2; - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - r10 = (r2 + r10)|0; - r11 = heap32[(r11)]; - r8 = (r8 + 1)|0; - r10 = r10 >> 2; - heap32[(r10)] = r11; -if(!(r5 !=r8)) //_LBB299_13 -{ -break _15; -} -} - r4 = (r0 + 12)|0; -} - if(r9 !=0) //_LBB299_17 -{ - r8 = heapU8[r0+16]; - if(r8 !=0) //_LBB299_19 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r8 = heap32[(r5)]; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r5)] = r8; - r5 = heap32[(r9+-1)]; - heap32[(g0)] = r5; - free(i7); - r5 = heap32[(r3+1)]; -} - r8 = r4 >> 2; - heap32[(r8)] = 0; -} - r4 = r4 >> 2; - heap8[r0+16] = r6; - heap32[(r4)] = r2; - heap32[(r3+2)] = r7; - r2 = heap32[(r1+5)]; -} -} - r0 = r5 << 2; - r1 = heap32[(r3+3)]; - r0 = (r1 + r0)|0; - r0 = r0 >> 2; - heap32[(r0)] = r2; - r0 = heap32[(r3+1)]; - r0 = (r0 + 1)|0; - heap32[(r3+1)] = r0; -} -} - return; -} - -function _ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -1240;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(fp+2)]; - r3 = r2 >> 2; - f0 = heapFloat[(r1+29)]; - f1 = heapFloat[(r1+13)]; - f2 = heapFloat[(r1+30)]; - f3 = heapFloat[(r1+14)]; - f0 = f0-f1; - f1 = f2-f3; - f2 = heapFloat[(r1+31)]; - f3 = heapFloat[(r1+15)]; - f2 = f2-f3; - f0 = f0*f0; - f1 = f1*f1; - f3 = heapFloat[(r1+62)]; - f0 = f0+f1; - f1 = f2*f2; - f2 = f3*f3; - f0 = f0+f1; -if(!(f2 <=f0)) //_LBB300_2 -{ - f0 = heapFloat[(r3+31)]; - f1 = heapFloat[(r3+15)]; - f2 = heapFloat[(r3+30)]; - f3 = heapFloat[(r3+14)]; - f4 = heapFloat[(r3+29)]; - f5 = heapFloat[(r3+13)]; - f0 = f0-f1; - f1 = f2-f3; - f2 = f4-f5; - f2 = f2*f2; - f1 = f1*f1; - f3 = heapFloat[(r3+62)]; - f1 = f2+f1; - f0 = f0*f0; - f2 = f3*f3; - f0 = f1+f0; - if(f2 >f0) //_LBB300_16 -{ - f0 = 1; - f_g0 = f0; - return; -} -} - r4 = sp + -56; - r5 = heap32[(r1+48)]; - f0 = heapFloat[(r3+61)]; - r6 = r4 >> 2; - heap32[(r6+2)] = 0; - heap32[(r6+3)] = 1065353216; - heap32[(r6+4)] = 1065353216; - r7 = _ZTV13btSphereShape; - heap32[(r6+5)] = 1065353216; - r7 = (r7 + 8)|0; - heap32[(r6+6)] = 0; - heap32[(fp+-14)] = r7; - heap32[(r6+1)] = 8; - r8 = _ZTVN12btConvexCast10CastResultE; - heapFloat[(r6+7)] = f0; - r9 = sp + -232; - r8 = (r8 + 8)|0; - heapFloat[(r6+11)] = f0; - r6 = r9 >> 2; - heap32[(fp+-58)] = r8; - heap32[(r6+41)] = 1566444395; - r10 = sp + -592; - heap32[(r6+42)] = 0; - r11 = r10 >> 2; - heap32[(r6+43)] = 0; - r12 = _ZTV15btGjkConvexCast; - r13 = 0; - heap32[(r11+77)] = 953267991; - r11 = sp + -608; - r12 = (r12 + 8)|0; - heap8[sp+-260] = r13; - r13 = r11 >> 2; - heap32[(fp+-152)] = r12; - heap32[(r13+1)] = r10; - heap32[(r13+2)] = r5; - heap32[(r13+3)] = r4; - r4 = (r2 + 68)|0; - r2 = (r2 + 4)|0; - r5 = (r0 + 68)|0; - r0 = (r0 + 4)|0; - heap32[(g0)] = r11; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r2; - heap32[(g0+4)] = r4; - heap32[(g0+5)] = r9; - _ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7); - r9 = r_g0; - if(r9 !=0) //_LBB300_4 -{ - f0 = heapFloat[(r6+41)]; - f1 = heapFloat[(r1+60)]; -if(!(f1 <=f0)) //_LBB300_6 -{ - heapFloat[(r1+60)] = f0; -} - f1 = heapFloat[(r3+60)]; -if(!(f1 <=f0)) //_LBB300_8 -{ - heapFloat[(r3+60)] = f0; -} - f1 = 1; - if(f0 >=f1) //_LBB300_3 -{ -__label__ = 3; -} -else{ -__label__ = 9; -} -} -else{ -__label__ = 3; -} -if (__label__ == 3){ - f0 = 1; -} - r6 = _ZTV12btConvexCast; - r9 = _ZTV13btConvexShape; - r6 = (r6 + 8)|0; - r9 = (r9 + 8)|0; - heap32[(fp+-152)] = r6; - heap32[(fp+-14)] = r9; - r6 = sp + -664; - r9 = heap32[(r3+48)]; - f1 = heapFloat[(r1+61)]; - r10 = r6 >> 2; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 1065353216; - heap32[(r10+4)] = 1065353216; - heap32[(r10+5)] = 1065353216; - heap32[(r10+6)] = 0; - heap32[(fp+-166)] = r7; - heap32[(r10+1)] = 8; - heapFloat[(r10+7)] = f1; - r7 = sp + -840; - heapFloat[(r10+11)] = f1; - r10 = r7 >> 2; - heap32[(fp+-210)] = r8; - heap32[(r10+41)] = 1566444395; - r8 = sp + -1200; - heap32[(r10+42)] = 0; - r11 = r8 >> 2; - heap32[(r10+43)] = 0; - heap32[(r11+77)] = 953267991; - r11 = heapU8[sp+-868]; - r11 = r11 & 240; - r13 = sp + -1216; - heap8[sp+-868] = r11; - r11 = r13 >> 2; - heap32[(fp+-304)] = r12; - heap32[(r11+1)] = r8; - heap32[(r11+2)] = r6; - heap32[(r11+3)] = r9; - heap32[(g0)] = r13; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r2; - heap32[(g0+4)] = r4; - heap32[(g0+5)] = r7; - _ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB300_15 -{ - f1 = heapFloat[(r10+41)]; - f2 = heapFloat[(r1+60)]; -if(!(f2 <=f1)) //_LBB300_12 -{ - heapFloat[(r1+60)] = f1; -} - f2 = heapFloat[(r3+60)]; -if(!(f2 <=f1)) //_LBB300_14 -{ - heapFloat[(r3+60)] = f1; -} - f0 = f1 < f0 ? f1 : f0; -} - f_g0 = f0; - return; -} - -function _ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -816;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+5)]; - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - r5 = heap32[(fp+3)]; - r6 = heap32[(fp+4)]; - if(r2 ==0) //_LBB301_2 -{ - r2 = heap32[(r1+1)]; - r7 = r2 >> 2; - r7 = heap32[(r7)]; - r7 = r7 >> 2; - r7 = heap32[(r7+3)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r7)>>2](i7); - r2 = r_g0; - r7 = 1; - heap32[(r1+5)] = r2; - heap8[r0+16] = r7; -} - r7 = r6 >> 2; - r8 = r3 >> 2; - heap32[(r7+1)] = r2; - r2 = r4 >> 2; - r9 = heap32[(r8+48)]; - r10 = heap32[(r2+48)]; - r11 = r9 >> 2; - r12 = heap32[(r11+1)]; - if(r12 !=10) //_LBB301_5 -{ -__label__ = 4; -} -else{ - r12 = r10 >> 2; - r13 = heap32[(r12+1)]; - if(r13 ==10) //_LBB301_6 -{ - r0 = heap32[(r11)]; - r0 = r0 >> 2; - r0 = heap32[(r0+7)]; - heap32[(g0)] = r9; - __FUNCTION_TABLE__[(r0)>>2](i7); - r0 = heap32[(r12)]; - r0 = r0 >> 2; - r0 = heap32[(r0+7)]; - heap32[(g0)] = r10; - __FUNCTION_TABLE__[(r0)>>2](i7); - r0 = heap32[(r11+13)]; - r5 = heap32[(r12+13)]; - r11 = r5 << 2; - r12 = r0 << 2; - r3 = (r3 + r12)|0; - r4 = (r4 + r11)|0; - r3 = r3 >> 2; - r4 = r4 >> 2; - r5 = (r5 + 2)|0; - r0 = (r0 + 2)|0; - f0 = heapFloat[(r3+1)]; - f1 = heapFloat[(r4+1)]; - f2 = heapFloat[(r3+5)]; - f3 = heapFloat[(r4+5)]; - r5 = (r5 % 3)|0; - r0 = (r0 % 3)|0; - f4 = heapFloat[(r3+9)]; - f5 = heapFloat[(r4+9)]; - f6 = f0*f1; - f7 = f2*f3; - f8 = heapFloat[(r2+13)]; - f9 = heapFloat[(r8+13)]; - f10 = heapFloat[(r2+14)]; - f11 = heapFloat[(r8+14)]; - f8 = f8-f9; - f9 = f10-f11; - r3 = (r10 + 28)|0; - r4 = r5 << 2; - r5 = (r9 + 28)|0; - r0 = r0 << 2; - f6 = f6+f7; - f7 = f4*f5; - f10 = heapFloat[(r2+15)]; - f11 = heapFloat[(r8+15)]; - f10 = f10-f11; - f6 = f6+f7; - r1 = heap32[(r1+5)]; - r4 = (r3 + r4)|0; - r3 = (r3 + r11)|0; - r0 = (r5 + r0)|0; - r5 = (r5 + r12)|0; - f7 = f0*f8; - f11 = f2*f9; - f12 = f1*f8; - f13 = f3*f9; - r1 = r1 >> 2; - r4 = r4 >> 2; - r3 = r3 >> 2; - r0 = r0 >> 2; - r5 = r5 >> 2; - f14 = 1; - f15 = f6*f6; - f7 = f7+f11; - f11 = f4*f10; - f12 = f12+f13; - f13 = f5*f10; - f15 = f14-f15; - f16 = heapFloat[(r1+280)]; - f17 = heapFloat[(r4)]; - f18 = heapFloat[(r3)]; - f19 = heapFloat[(r0)]; - f20 = heapFloat[(r5)]; - f7 = f7+f11; - f11 = f12+f13; - f12 = 0; - if(f15 !=f12) //_LBB301_8 -{ - f13 = f11*f6; - f13 = f7-f13; - f13 = f13/f15; - f15 = -f20; - if(f13 >=f15) //_LBB301_10 -{ - if(f13 >f20) //_LBB301_12 -{ - f15 = f20; -} -else{ - f15 = f13; -} -} -} -else{ - f15 = 0; -} - f13 = f15*f6; - f11 = f13-f11; - f13 = -f18; - if(f11 >=f13) //_LBB301_19 -{ - if(f11 >f18) //_LBB301_21 -{ - f13 = f6*f18; - f6 = f13+f7; - f15 = -f20; - if(f6 >=f15) //_LBB301_23 -{ - if(f6 >f20) //_LBB301_25 -{ - f13 = f18; - f15 = f20; -} -else{ - f13 = f18; - f15 = f6; -} -} -else{ - f13 = f18; -} -} -else{ - f13 = f11; -} -} -else{ - f6 = f6*f13; - f6 = f6+f7; - f15 = -f20; - if(f6 >=f15) //_LBB301_16 -{ - if(f6 >f20) //_LBB301_18 -{ - f15 = f20; -} -else{ - f15 = f6; -} -} -} - f6 = f0*f15; - f7 = f2*f15; - f1 = f1*f13; - f6 = f8-f6; - f3 = f3*f13; - f7 = f9-f7; - f8 = f4*f15; - f6 = f6+f1; - f7 = f7+f3; - f5 = f5*f13; - f8 = f10-f8; - f8 = f8+f5; - f9 = f6*f6; - f10 = f7*f7; - f9 = f9+f10; - f10 = f8*f8; - f9 = f9+f10; - heapFloat[(g0)] = f9; - sqrtf(i7); - f10 = f_g0-f19; - f10 = f10-f17; -if(!(f10 >f16)) //_LBB301_36 -{ - f11 = 1.4210854715202004e-014; - if(f9 >f11) //_LBB301_34 -{ - heapFloat[(g0)] = f9; - f0 = -1; - sqrtf(i7); - f0 = f0/f_g0; - f9 = f6*f0; - r0 = sp + -16; - f6 = f7*f0; - r0 = r0 >> 2; - heapFloat[(fp+-4)] = f9; - f12 = f8*f0; - heapFloat[(r0+1)] = f6; - heapFloat[(r0+2)] = f12; - heap32[(r0+3)] = 0; -} -else{ - if(f4 > 2; - heapFloat[(fp+-4)] = f9; - heapFloat[(r0+1)] = f6; - heap32[(r0+2)] = 0; -} -else{ - f0 = f2*f2; - f6 = f4*f4; - f0 = f0+f6; - heapFloat[(g0)] = f0; - sqrtf(i7); - r0 = sp + -16; - f0 = f14/f_g0; - f6 = -f4; - f6 = f0*f6; - r0 = r0 >> 2; - heap32[(fp+-4)] = 0; - f9 = 0; - f12 = f2*f0; - heapFloat[(r0+1)] = f6; - heapFloat[(r0+2)] = f12; -} -} - f0 = heapFloat[(r2+13)]; - f2 = heapFloat[(r2+14)]; - f4 = heapFloat[(r2+15)]; - f0 = f0+f1; - f1 = f9*f17; - r0 = sp + -32; - f2 = f2+f3; - f3 = f6*f17; - f0 = f0+f1; - r0 = r0 >> 2; - f1 = f4+f5; - f4 = f12*f17; - f2 = f2+f3; - heapFloat[(fp+-8)] = f0; - f0 = f1+f4; - heapFloat[(r0+1)] = f2; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; -} -if(!(f10 >=f16)) //_LBB301_40 -{ - r0 = sp + -16; - r1 = r0 >> 2; - f0 = heapFloat[(fp+-4)]; - f1 = heapFloat[(r1+1)]; - f2 = heapFloat[(r1+2)]; - f0 = f0*f0; - f1 = f1*f1; - f0 = f0+f1; - f1 = f2*f2; - f0 = f0+f1; - f1 = 1.4210854715202004e-014; - if(f0 >=f1) //_LBB301_39 -{ - r1 = heap32[(r7)]; - r1 = r1 >> 2; - r1 = heap32[(r1+4)]; - r2 = sp + -32; - heap32[(g0)] = r6; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - heapFloat[(g0+3)] = f10; - __FUNCTION_TABLE__[(r1)>>2](i7); -} -else{ - r0 = _2E_str4119; - r1 = _2E_str5120; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 325; - _assert(i7); -} -} - r0 = heap32[(r7+1)]; - if(r0 !=0) //_LBB301_42 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+279)]; - if(r2 ==0) //_LBB301_47 -{ -__label__ = 44; -} -else{ - r1 = heap32[(r1+277)]; - r2 = heap32[(r7+34)]; - if(r1 ==r2) //_LBB301_46 -{ -__label__ = 43; -} -else{ - r1 = (r6 + 72)|0; - r2 = (r6 + 8)|0; -__label__ = 42; -} -} -} -else{ - r0 = _2E_str59; - r1 = _2E_str160; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 101; - _assert(i7); -} -} -else{ -__label__ = 4; -} -} -if (__label__ == 4){ - r3 = sp + -168; - r4 = r3 >> 2; - heap32[(r4+32)] = 1566444395; - heap32[(r4+33)] = 0; - r12 = _ZTV17btGjkPairDetector; - r13 = heap32[(r1+2)]; - r14 = heap32[(r1+3)]; - r15 = sp + -248; - r12 = (r12 + 8)|0; - heap32[(fp+-62)] = r12; - r12 = r15 >> 2; - heap32[(r12+1)] = 0; - heap32[(r12+2)] = 1065353216; - heap32[(r12+3)] = 0; - heap32[(r12+4)] = 0; - heap32[(r12+5)] = r14; - heap32[(r12+6)] = r13; - heap32[(r12+7)] = r9; - heap32[(r12+8)] = r10; - r13 = heap32[(r11+1)]; - heap32[(r12+9)] = r13; - r13 = r10 >> 2; - r14 = heap32[(r13+1)]; - heap32[(r12+10)] = r14; - r14 = heap32[(r11)]; - r14 = r14 >> 2; - r14 = heap32[(r14+11)]; - heap32[(g0)] = r9; - __FUNCTION_TABLE__[(r14)>>2](i7); - heapFloat[(r12+11)] = f_g0; - r14 = heap32[(r13)]; - r14 = r14 >> 2; - r14 = heap32[(r14+11)]; - heap32[(g0)] = r10; - __FUNCTION_TABLE__[(r14)>>2](i7); - r14 = 0; - heapFloat[(r12+12)] = f_g0; - heap8[sp+-196] = r14; - heap32[(r12+15)] = -1; - heap32[(r12+18)] = 1; - heap32[(r12+7)] = r9; - heap32[(r12+8)] = r10; - r16 = heap32[(r11)]; - r16 = r16 >> 2; - r17 = heapU8[r5+40]; - r16 = heap32[(r16+11)]; - heap32[(g0)] = r9; - __FUNCTION_TABLE__[(r16)>>2](i7); - f0 = f_g0; - r16 = heap32[(r13)]; - r16 = r16 >> 2; - r16 = heap32[(r16+11)]; - heap32[(g0)] = r10; - __FUNCTION_TABLE__[(r16)>>2](i7); - f0 = f0+f_g0; - r16 = heap32[(r1+5)]; - if(r17 ==0) //_LBB301_49 -{ - r16 = (r16 + 1120)|0; -} -else{ - r16 = (r16 + 1124)|0; -} - r16 = r16 >> 2; - f1 = heapFloat[(r16)]; - f0 = f0+f1; - f0 = f0*f0; - r5 = r5 >> 2; - heapFloat[(r4+32)] = f0; - r16 = heap32[(r5+11)]; - heap32[(r4+33)] = r16; - heap32[(fp+-42)] = heap32[(r8+1)]; - heap32[(r4+1)] = heap32[(r8+2)]; - heap32[(r4+2)] = heap32[(r8+3)]; - heap32[(r4+3)] = heap32[(r8+4)]; - heap32[(r4+4)] = heap32[(r8+5)]; - heap32[(r4+5)] = heap32[(r8+6)]; - heap32[(r4+6)] = heap32[(r8+7)]; - heap32[(r4+7)] = heap32[(r8+8)]; - heap32[(r4+8)] = heap32[(r8+9)]; - heap32[(r4+9)] = heap32[(r8+10)]; - heap32[(r4+10)] = heap32[(r8+11)]; - heap32[(r4+11)] = heap32[(r8+12)]; - heap32[(r4+12)] = heap32[(r8+13)]; - heap32[(r4+13)] = heap32[(r8+14)]; - heap32[(r4+14)] = heap32[(r8+15)]; - heap32[(r4+15)] = heap32[(r8+16)]; - heap32[(r4+16)] = heap32[(r2+1)]; - heap32[(r4+17)] = heap32[(r2+2)]; - heap32[(r4+18)] = heap32[(r2+3)]; - heap32[(r4+19)] = heap32[(r2+4)]; - heap32[(r4+20)] = heap32[(r2+5)]; - heap32[(r4+21)] = heap32[(r2+6)]; - heap32[(r4+22)] = heap32[(r2+7)]; - heap32[(r4+23)] = heap32[(r2+8)]; - heap32[(r4+24)] = heap32[(r2+9)]; - heap32[(r4+25)] = heap32[(r2+10)]; - heap32[(r4+26)] = heap32[(r2+11)]; - heap32[(r4+27)] = heap32[(r2+12)]; - heap32[(r4+28)] = heap32[(r2+13)]; - heap32[(r4+29)] = heap32[(r2+14)]; - heap32[(r4+30)] = heap32[(r2+15)]; - heap32[(r4+31)] = heap32[(r2+16)]; - r16 = heap32[(r5+5)]; - heap32[(g0)] = r15; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r16; - heap32[(g0+4)] = 0; - _ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7); - r16 = heap32[(r1+7)]; -_63: do { -if(!(r16 ==0)) //_LBB301_73 -{ - r16 = heap32[(r7+1)]; - r16 = r16 >> 2; - r16 = heap32[(r16+279)]; - r17 = heap32[(r1+8)]; -if(!(r16 >=r17)) //_LBB301_73 -{ - f0 = heapFloat[(r12+1)]; - f1 = heapFloat[(r12+2)]; - f2 = heapFloat[(r12+3)]; - f0 = f0*f0; - f1 = f1*f1; - f0 = f0+f1; - f1 = f2*f2; - f0 = f0+f1; - heapFloat[(g0)] = f0; - sqrtf(i7); - f1 = 1; - heapFloat[(fp+-169)] = f1; - f2 = heapFloat[(r12+3)]; - f0 = f1/f_g0; - f1 = heapFloat[(r12+2)]; - f3 = heapFloat[(r12+1)]; - f2 = f2*f0; - heapFloat[(fp+-171)] = f2; - f1 = f1*f0; - heapFloat[(fp+-170)] = f1; - f0 = f3*f0; - heapFloat[(fp+-174)] = f0; - f0 = 0; - heapFloat[(fp+-175)] = f0; - if(f2 > 2; - r11 = heap32[(r11+4)]; - heap32[(g0)] = r9; - __FUNCTION_TABLE__[(r11)>>2](i7); - f0 = f_g0; - heapFloat[(fp+-194)] = f0; - r9 = heap32[(r13)]; - r9 = r9 >> 2; - r9 = heap32[(r9+4)]; - heap32[(g0)] = r10; - __FUNCTION_TABLE__[(r9)>>2](i7); - f1 = f_g0; - heapFloat[(fp+-195)] = f1; - r9 = f0 < f1; - f2 = 0.019999999552965164; - f3 = f0 < f1 ? f0 : f1; - r9 = r9 & 1; - f2 = f2/f3; - if(f0 >=f1) //_LBB301_60 -{ - f0 = heapFloat[(r4+16)]; - heapFloat[(fp+-176)] = f0; - f0 = heapFloat[(r4+17)]; - heapFloat[(fp+-177)] = f0; - f0 = heapFloat[(r4+18)]; - heapFloat[(fp+-178)] = f0; - f0 = heapFloat[(r4+19)]; - heapFloat[(fp+-179)] = f0; - f0 = heapFloat[(r4+20)]; - heapFloat[(fp+-180)] = f0; - f0 = heapFloat[(r4+21)]; - heapFloat[(fp+-181)] = f0; - f0 = heapFloat[(r4+22)]; - heapFloat[(fp+-182)] = f0; - f0 = heapFloat[(r4+23)]; - heapFloat[(fp+-183)] = f0; - f0 = heapFloat[(r4+24)]; - heapFloat[(fp+-184)] = f0; - f0 = heapFloat[(r4+25)]; - heapFloat[(fp+-185)] = f0; - f0 = heapFloat[(r4+26)]; - heapFloat[(fp+-186)] = f0; - f0 = heapFloat[(r4+27)]; - heapFloat[(fp+-187)] = f0; - f0 = heapFloat[(r4+28)]; - heapFloat[(fp+-188)] = f0; - f0 = heapFloat[(r4+29)]; - heapFloat[(fp+-189)] = f0; - f0 = heapFloat[(r4+30)]; - heapFloat[(fp+-190)] = f0; - f0 = heapFloat[(r4+31)]; - heapFloat[(fp+-191)] = f0; -} -else{ - f0 = heapFloat[(fp+-42)]; - heapFloat[(fp+-176)] = f0; - f0 = heapFloat[(r4+1)]; - heapFloat[(fp+-177)] = f0; - f0 = heapFloat[(r4+2)]; - heapFloat[(fp+-178)] = f0; - f0 = heapFloat[(r4+3)]; - heapFloat[(fp+-179)] = f0; - f0 = heapFloat[(r4+4)]; - heapFloat[(fp+-180)] = f0; - f0 = heapFloat[(r4+5)]; - heapFloat[(fp+-181)] = f0; - f0 = heapFloat[(r4+6)]; - heapFloat[(fp+-182)] = f0; - f0 = heapFloat[(r4+7)]; - heapFloat[(fp+-183)] = f0; - f0 = heapFloat[(r4+8)]; - heapFloat[(fp+-184)] = f0; - f0 = heapFloat[(r4+9)]; - heapFloat[(fp+-185)] = f0; - f0 = heapFloat[(r4+10)]; - heapFloat[(fp+-186)] = f0; - f0 = heapFloat[(r4+11)]; - heapFloat[(fp+-187)] = f0; - f0 = heapFloat[(r4+12)]; - heapFloat[(fp+-188)] = f0; - f0 = heapFloat[(r4+13)]; - heapFloat[(fp+-189)] = f0; - f0 = heapFloat[(r4+14)]; - heapFloat[(fp+-190)] = f0; - f0 = heapFloat[(r4+15)]; - heapFloat[(fp+-191)] = f0; -} - f0 = heapFloat[(fp+-173)]; - f0 = f0*f0; - f1 = heapFloat[(fp+-172)]; - f1 = f1*f1; - f3 = 0.5; - heapFloat[(fp+-193)] = f3; - f4 = heapFloat[(fp+-174)]; - f4 = f4*f4; - f5 = heapFloat[(fp+-170)]; - f5 = f5*f5; - f0 = f0+f1; - f1 = heapFloat[(fp+-175)]; - f1 = f1*f1; - f6 = 0.39269909262657166; - f7 = 0.19634954631328583; - f3 = f2*f3; - f4 = f4+f5; - f5 = heapFloat[(fp+-171)]; - f5 = f5*f5; - f0 = f0+f1; - heapFloat[(fp+-196)] = f0; - f0 = f2 > f6 ? f7 : f3; - heapFloat[(fp+-197)] = f0; - f0 = f4+f5; - heapFloat[(fp+-192)] = f0; -_78: while(true){ - r10 = heap32[(r1+7)]; - if(r10 >r14) //_LBB301_62 -{ - f0 = 1.1920928955078125e-007; - f1 = heapFloat[(fp+-196)]; -if(!(f1 <=f0)) //_LBB301_71 -{ - f0 = f1; - heapFloat[(g0)] = f0; - sqrtf(i7); - f0 = f_g0; - f1 = 0; - if(f0 !=f1) //_LBB301_65 -{ - f2 = heapFloat[(fp+-197)]; - heapFloat[(g0)] = f2; - sinf(i7); - f3 = f_g0; - heapFloat[(g0)] = f2; - cosf(i7); - f2 = f_g0; - r10 = heap32[(r1+7)]; - f4 = heapFloat[(fp+-192)]; - heapFloat[(g0)] = f4; - sqrtf(i7); - f4 = f_g0; - if(f4 !=f1) //_LBB301_67 -{ - f0 = f3/f0; - f3 = heapFloat[(fp+-175)]; - f3 = f3*f0; - f5 = heapFloat[(fp+-172)]; - f5 = f5*f0; - f6 = heapFloat[(fp+-173)]; - f0 = f6*f0; - f6 = 6.2831854820251465; - f7 = r10; //fitos r10, f7 - f8 = r14; //fitos r14, f8 - f6 = f6/f7; - f6 = f8*f6; - f7 = heapFloat[(fp+-193)]; - f6 = f6*f7; - heapFloat[(g0)] = f6; - sinf(i7); - heapFloat[(g0)] = f6; - f4 = f_g0/f4; - f6 = heapFloat[(fp+-171)]; - f6 = f6*f4; - f7 = heapFloat[(fp+-170)]; - f7 = f7*f4; - f8 = heapFloat[(fp+-174)]; - f4 = f8*f4; - cosf(i7); - f8 = f_g0; - f10 = heapFloat[(fp+-195)]; - f9 = heapFloat[(fp+-194)]; - if(f9 >=f10) //_LBB301_69 -{ - f9 = heapFloat[(r8+1)]; - heapFloat[(fp+-155)] = f9; - heapFloat[(fp+-42)] = f9; - f9 = heapFloat[(r8+2)]; - heapFloat[(fp+-156)] = f9; - heapFloat[(r4+1)] = f9; - f9 = heapFloat[(r8+3)]; - heapFloat[(fp+-157)] = f9; - heapFloat[(r4+2)] = f9; - f9 = heapFloat[(r8+4)]; - heapFloat[(fp+-163)] = f9; - heapFloat[(r4+3)] = f9; - f9 = heapFloat[(r8+5)]; - heapFloat[(fp+-158)] = f9; - heapFloat[(r4+4)] = f9; - f9 = heapFloat[(r8+6)]; - heapFloat[(fp+-159)] = f9; - heapFloat[(r4+5)] = f9; - f9 = heapFloat[(r8+7)]; - heapFloat[(fp+-160)] = f9; - heapFloat[(r4+6)] = f9; - f9 = heapFloat[(r8+8)]; - heapFloat[(fp+-162)] = f9; - heapFloat[(r4+7)] = f9; - f9 = heapFloat[(r8+9)]; - heapFloat[(fp+-161)] = f9; - f10 = f8*f2; - f11 = f0*f4; - f12 = f8*f0; - f13 = f2*f4; - f14 = f8*f5; - f15 = f2*f7; - heapFloat[(r4+8)] = f9; - f9 = f10+f11; - f10 = f5*f7; - f11 = f8*f3; - f2 = f2*f6; - f12 = f12-f13; - f13 = f3*f7; - f14 = f14-f15; - f15 = f0*f6; - f16 = heapFloat[(r8+10)]; - heapFloat[(fp+-164)] = f16; - f9 = f9+f10; - f10 = f3*f6; - f2 = f11-f2; - f11 = f5*f4; - f12 = f12-f13; - f5 = f5*f6; - f13 = f14-f15; - f3 = f3*f4; - f9 = f9+f10; - f5 = f12+f5; - f3 = f13+f3; - heapFloat[(r4+9)] = f16; - f2 = f2-f11; - f0 = f0*f7; - f0 = f2+f0; - f2 = heapFloat[(r8+11)]; - heapFloat[(fp+-166)] = f2; - f10 = f9*f7; - f11 = f3*f8; - f12 = f9*f4; - f13 = f5*f8; - heapFloat[(r4+10)] = f2; - f2 = f10+f11; - f10 = f0*f4; - f11 = f12+f13; - f12 = f3*f6; - f13 = f9*f6; - f14 = f0*f8; - f17 = heapFloat[(r8+12)]; - f8 = f9*f8; - f9 = f5*f4; - f2 = f2+f10; - f10 = f5*f6; - f11 = f11+f12; - f12 = f0*f7; - f13 = f13+f14; - f5 = f5*f7; - f10 = f2-f10; - f2 = f11-f12; - heapFloat[(r4+11)] = f17; - f8 = f8-f9; - f7 = f3*f7; - f5 = f13+f5; - f3 = f3*f4; - f4 = heapFloat[(r8+13)]; - heapFloat[(fp+-165)] = f4; - f3 = f5-f3; - f5 = f8-f7; - f0 = f0*f6; - f6 = f2*f2; - f7 = f10*f10; - f5 = f5-f0; - heapFloat[(r4+12)] = f4; - f0 = f6+f7; - f4 = f3*f3; - f6 = heapFloat[(r8+14)]; - heapFloat[(fp+-167)] = f6; - f0 = f0+f4; - f4 = f5*f5; - heapFloat[(r4+13)] = f6; - f6 = 2; - f0 = f0+f4; - f0 = f6/f0; - f4 = heapFloat[(r8+15)]; - heapFloat[(fp+-168)] = f4; - f6 = f3*f0; - f7 = f10*f0; - heapFloat[(r4+14)] = f4; - f16 = heapFloat[(r8+16)]; - f4 = f10*f7; - f3 = f3*f6; - f8 = f4+f3; - f9 = f2*f7; - f11 = f5*f6; - heapFloat[(r4+15)] = f16; - f12 = heapFloat[(fp+-169)]; - f8 = f12-f8; - f13 = heapFloat[(r2+1)]; - f14 = f9-f11; - f15 = heapFloat[(r2+5)]; - f18 = f2*f6; - f7 = f5*f7; - f19 = f2*f0; - f20 = heapFloat[(r2+2)]; - f21 = heapFloat[(r2+6)]; - f0 = f13*f8; - f22 = f15*f14; - f23 = f18+f7; - f24 = heapFloat[(r2+9)]; - f25 = f2*f19; - f26 = heapFloat[(r2+3)]; - f27 = heapFloat[(r2+7)]; - f28 = heapFloat[(r2+11)]; - f29 = heapFloat[(r2+10)]; - f2 = f20*f8; - f30 = f21*f14; - f0 = f0+f22; - f22 = f24*f23; - f3 = f25+f3; - f0 = f0+f22; - f8 = f26*f8; - f14 = f27*f14; - f2 = f2+f30; - f22 = f29*f23; - f9 = f9+f11; - f11 = f12-f3; - f2 = f2+f22; - heapFloat[(r4+16)] = f0; - f6 = f10*f6; - f10 = f5*f19; - f3 = f8+f14; - f5 = f28*f23; - f8 = f6-f10; - f3 = f3+f5; - heapFloat[(r4+17)] = f2; - f5 = f13*f9; - f14 = f15*f11; - heapFloat[(r4+18)] = f3; - f19 = f20*f9; - f22 = f21*f11; - f5 = f5+f14; - f14 = f24*f8; - f5 = f5+f14; - heap32[(r4+19)] = 0; - f9 = f26*f9; - f11 = f27*f11; - f14 = f19+f22; - f19 = f29*f8; - f18 = f18-f7; - f10 = f6+f10; - f4 = f25+f4; - f6 = f14+f19; - heapFloat[(r4+20)] = f5; - f7 = f9+f11; - f8 = f28*f8; - f4 = f12-f4; - f7 = f7+f8; - heapFloat[(r4+21)] = f6; - f8 = f13*f18; - f9 = f15*f10; - heapFloat[(r4+22)] = f7; - f11 = f20*f18; - f12 = f21*f10; - f8 = f8+f9; - f9 = f24*f4; - f9 = f8+f9; - heap32[(r4+23)] = 0; - f8 = f26*f18; - f13 = f27*f10; - f10 = f11+f12; - f11 = f29*f4; - f10 = f10+f11; - heapFloat[(r4+24)] = f9; - f8 = f8+f13; - f4 = f28*f4; - f11 = f8+f4; - heapFloat[(r4+25)] = f10; - heapFloat[(r4+26)] = f11; - heap32[(r4+27)] = 0; - f12 = heapFloat[(r4+28)]; - f13 = heapFloat[(r4+29)]; - f14 = heapFloat[(r4+30)]; - f15 = heapFloat[(r4+31)]; - f8 = f1; - f4 = f1; -} -else{ - f1 = f8*f2; - f9 = f0*f4; - f10 = f8*f0; - f11 = f2*f4; - f12 = f8*f5; - f13 = f2*f7; - f1 = f1+f9; - f9 = f5*f7; - f14 = f8*f3; - f2 = f2*f6; - f10 = f10-f11; - f11 = f3*f7; - f12 = f12-f13; - f13 = f0*f6; - f1 = f1+f9; - f9 = f3*f6; - f2 = f14-f2; - f14 = f5*f4; - f10 = f10-f11; - f5 = f5*f6; - f11 = f12-f13; - f3 = f3*f4; - f1 = f1+f9; - f5 = f10+f5; - f3 = f11+f3; - f2 = f2-f14; - f0 = f0*f7; - f0 = f2+f0; - f2 = f1*f7; - f9 = f3*f8; - f10 = f1*f4; - f11 = f5*f8; - f2 = f2+f9; - f9 = f0*f4; - f10 = f10+f11; - f11 = f3*f6; - f12 = f1*f6; - f13 = f0*f8; - f1 = f1*f8; - f8 = f5*f4; - f2 = f2+f9; - f9 = f5*f6; - f10 = f10+f11; - f11 = f0*f7; - f12 = f12+f13; - f5 = f5*f7; - f2 = f2-f9; - f9 = f10-f11; - f1 = f1-f8; - f7 = f3*f7; - f5 = f12+f5; - f3 = f3*f4; - f3 = f5-f3; - f1 = f1-f7; - f0 = f0*f6; - f4 = f9*f9; - f5 = f2*f2; - f0 = f1-f0; - f1 = f4+f5; - f4 = f3*f3; - f1 = f1+f4; - f4 = f0*f0; - f5 = 2; - f1 = f1+f4; - f1 = f5/f1; - f4 = f3*f1; - f5 = f2*f1; - f6 = f2*f5; - f3 = f3*f4; - f7 = f6+f3; - f8 = f9*f5; - f10 = f0*f4; - f11 = heapFloat[(fp+-169)]; - f7 = f11-f7; - f12 = heapFloat[(r8+1)]; - f13 = f8-f10; - f14 = heapFloat[(r8+5)]; - f15 = f9*f4; - f5 = f0*f5; - f1 = f9*f1; - f16 = heapFloat[(r8+2)]; - f17 = heapFloat[(r8+6)]; - f18 = f12*f7; - f19 = f14*f13; - f20 = f15+f5; - f21 = heapFloat[(r8+9)]; - f9 = f9*f1; - f22 = heapFloat[(r8+3)]; - f23 = heapFloat[(r8+7)]; - f24 = heapFloat[(r8+11)]; - f25 = heapFloat[(r8+10)]; - f26 = f16*f7; - f27 = f17*f13; - f18 = f18+f19; - f19 = f21*f20; - f3 = f9+f3; - f18 = f18+f19; - heapFloat[(fp+-155)] = f18; - f7 = f22*f7; - f13 = f23*f13; - f19 = f26+f27; - f26 = f25*f20; - f8 = f8+f10; - f3 = f11-f3; - f10 = f19+f26; - heapFloat[(fp+-156)] = f10; - heapFloat[(fp+-42)] = f18; - f2 = f2*f4; - f0 = f0*f1; - f1 = f7+f13; - f4 = f24*f20; - f7 = f2-f0; - f1 = f1+f4; - heapFloat[(fp+-157)] = f1; - heapFloat[(r4+1)] = f10; - f4 = f12*f8; - f10 = f14*f3; - heapFloat[(r4+2)] = f1; - f1 = f16*f8; - f13 = f17*f3; - f4 = f4+f10; - f10 = f21*f7; - f4 = f4+f10; - heapFloat[(fp+-158)] = f4; - heap32[(r4+3)] = 0; - f8 = f22*f8; - f3 = f23*f3; - f1 = f1+f13; - f10 = f25*f7; - f5 = f15-f5; - f0 = f2+f0; - f2 = f9+f6; - f1 = f1+f10; - heapFloat[(fp+-159)] = f1; - heapFloat[(r4+4)] = f4; - f3 = f8+f3; - f4 = f24*f7; - f2 = f11-f2; - f3 = f3+f4; - heapFloat[(fp+-160)] = f3; - heapFloat[(r4+5)] = f1; - f1 = f12*f5; - f4 = f14*f0; - heapFloat[(r4+6)] = f3; - f3 = f16*f5; - f6 = f17*f0; - f1 = f1+f4; - f4 = f21*f2; - f1 = f1+f4; - heapFloat[(fp+-161)] = f1; - heap32[(r4+7)] = 0; - f4 = f22*f5; - f0 = f23*f0; - f3 = f3+f6; - f5 = f25*f2; - f3 = f3+f5; - heapFloat[(fp+-164)] = f3; - heapFloat[(r4+8)] = f1; - f0 = f4+f0; - f1 = f24*f2; - f0 = f0+f1; - heapFloat[(fp+-166)] = f0; - heapFloat[(r4+9)] = f3; - heapFloat[(r4+10)] = f0; - heap32[(r4+11)] = 0; - f0 = heapFloat[(r2+1)]; - heapFloat[(r4+16)] = f0; - f2 = heapFloat[(r2+2)]; - heapFloat[(r4+17)] = f2; - f3 = heapFloat[(r2+3)]; - heapFloat[(r4+18)] = f3; - f4 = heapFloat[(r2+4)]; - heapFloat[(r4+19)] = f4; - f5 = heapFloat[(r2+5)]; - heapFloat[(r4+20)] = f5; - f6 = heapFloat[(r2+6)]; - heapFloat[(r4+21)] = f6; - f7 = heapFloat[(r2+7)]; - heapFloat[(r4+22)] = f7; - f8 = heapFloat[(r2+8)]; - heapFloat[(r4+23)] = f8; - f9 = heapFloat[(r2+9)]; - heapFloat[(r4+24)] = f9; - f10 = heapFloat[(r2+10)]; - heapFloat[(r4+25)] = f10; - f11 = heapFloat[(r2+11)]; - heapFloat[(r4+26)] = f11; - f1 = heapFloat[(r2+12)]; - heapFloat[(r4+27)] = f1; - f12 = heapFloat[(r2+13)]; - heapFloat[(r4+28)] = f12; - f13 = heapFloat[(r2+14)]; - heapFloat[(r4+29)] = f13; - f14 = heapFloat[(r2+15)]; - heapFloat[(r4+30)] = f14; - f15 = heapFloat[(r2+16)]; - heapFloat[(r4+31)] = f15; - f16 = heapFloat[(r4+12)]; - heapFloat[(fp+-165)] = f16; - f16 = heapFloat[(r4+13)]; - heapFloat[(fp+-167)] = f16; - f16 = heapFloat[(r4+14)]; - heapFloat[(fp+-168)] = f16; - f16 = heapFloat[(r4+15)]; - f17 = 0; - heapFloat[(fp+-162)] = f17; - heapFloat[(fp+-163)] = f17; -} - r10 = _ZTV24btPerturbedContactResult; - r11 = sp + -616; - r12 = heap32[(r5+5)]; - r10 = (r10 + 8)|0; - r13 = r11 >> 2; - heap32[(fp+-154)] = r10; - heap32[(r13+40)] = r6; - f18 = heapFloat[(fp+-155)]; - heapFloat[(r13+41)] = f18; - f18 = heapFloat[(fp+-156)]; - heapFloat[(r13+42)] = f18; - f18 = heapFloat[(fp+-157)]; - heapFloat[(r13+43)] = f18; - f22 = heapFloat[(fp+-163)]; - heapFloat[(r13+44)] = f22; - f18 = heapFloat[(fp+-158)]; - heapFloat[(r13+45)] = f18; - f18 = heapFloat[(fp+-159)]; - heapFloat[(r13+46)] = f18; - f18 = heapFloat[(fp+-160)]; - heapFloat[(r13+47)] = f18; - f22 = heapFloat[(fp+-162)]; - heapFloat[(r13+48)] = f22; - f18 = heapFloat[(fp+-161)]; - heapFloat[(r13+49)] = f18; - f18 = heapFloat[(fp+-164)]; - heapFloat[(r13+50)] = f18; - f18 = heapFloat[(fp+-166)]; - heapFloat[(r13+51)] = f18; - heapFloat[(r13+52)] = f17; - f17 = heapFloat[(fp+-165)]; - heapFloat[(r13+53)] = f17; - f17 = heapFloat[(fp+-167)]; - heapFloat[(r13+54)] = f17; - f17 = heapFloat[(fp+-168)]; - heapFloat[(r13+55)] = f17; - heapFloat[(r13+56)] = f16; - heapFloat[(r13+57)] = f0; - heapFloat[(r13+58)] = f2; - heapFloat[(r13+59)] = f3; - heapFloat[(r13+60)] = f4; - heapFloat[(r13+61)] = f5; - heapFloat[(r13+62)] = f6; - heapFloat[(r13+63)] = f7; - heapFloat[(r13+64)] = f8; - heapFloat[(r13+65)] = f9; - heapFloat[(r13+66)] = f10; - heapFloat[(r13+67)] = f11; - heapFloat[(r13+68)] = f1; - heapFloat[(r13+69)] = f12; - heapFloat[(r13+70)] = f13; - heapFloat[(r13+71)] = f14; - heapFloat[(r13+72)] = f15; - f0 = heapFloat[(fp+-176)]; - heapFloat[(r13+73)] = f0; - f0 = heapFloat[(fp+-177)]; - heapFloat[(r13+74)] = f0; - f0 = heapFloat[(fp+-178)]; - heapFloat[(r13+75)] = f0; - f0 = heapFloat[(fp+-179)]; - heapFloat[(r13+76)] = f0; - f0 = heapFloat[(fp+-180)]; - heapFloat[(r13+77)] = f0; - f0 = heapFloat[(fp+-181)]; - heapFloat[(r13+78)] = f0; - f0 = heapFloat[(fp+-182)]; - heapFloat[(r13+79)] = f0; - f0 = heapFloat[(fp+-183)]; - heapFloat[(r13+80)] = f0; - f0 = heapFloat[(fp+-184)]; - heapFloat[(r13+81)] = f0; - f0 = heapFloat[(fp+-185)]; - heapFloat[(r13+82)] = f0; - f0 = heapFloat[(fp+-186)]; - heapFloat[(r13+83)] = f0; - f0 = heapFloat[(fp+-187)]; - heapFloat[(r13+84)] = f0; - f0 = heapFloat[(fp+-188)]; - heapFloat[(r13+85)] = f0; - f0 = heapFloat[(fp+-189)]; - heapFloat[(r13+86)] = f0; - f0 = heapFloat[(fp+-190)]; - heapFloat[(r13+87)] = f0; - f0 = heapFloat[(fp+-191)]; - heapFloat[(r13+88)] = f0; - heap8[sp+-260] = r9; - heap32[(r13+90)] = r12; - heap32[(g0)] = r15; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r11; - heap32[(g0+3)] = r12; - heap32[(g0+4)] = 0; - _ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7); -} -else{ -break _78; -} -} -else{ -break _78; -} -} - r14 = (r14 + 1)|0; -} -else{ -break _63; -} -} - r0 = _2E_str115; - r1 = _2E_str685; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 61; - _assert(i7); -} -} -} while(0); - r0 = heapU8[r0+16]; - if(r0 ==0) //_LBB301_47 -{ -__label__ = 44; -} -else{ - r0 = heap32[(r7+1)]; - if(r0 !=0) //_LBB301_76 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+279)]; - if(r2 ==0) //_LBB301_47 -{ -__label__ = 44; -} -else{ - r1 = heap32[(r1+277)]; - r2 = heap32[(r7+34)]; - if(r1 ==r2) //_LBB301_79 -{ -__label__ = 43; -} -else{ - r1 = (r6 + 72)|0; - r6 = (r6 + 8)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r6; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); - return; -} -} -} -else{ - r0 = _2E_str59; - r6 = _2E_str160; - heap32[(g0)] = r0; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = 101; - _assert(i7); -} -} -} -switch(__label__ ){//multiple entries -case 44: - return; -break; -case 43: - r1 = (r6 + 8)|0; - r2 = (r6 + 72)|0; -break; -} - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); - return; -} - -function _ZN23btConvexConvexAlgorithmD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV23btConvexConvexAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heapU8[r0+16]; -if(!(r1 ==0)) //_LBB302_3 -{ - r1 = heap32[(r2+5)]; -if(!(r1 ==0)) //_LBB302_3 -{ - r3 = heap32[(r2+1)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r1; - __FUNCTION_TABLE__[(r4)>>2](i7); -} -} - r1 = _ZTV30btActivatingCollisionAlgorithm; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN23btConvexConvexAlgorithmD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV23btConvexConvexAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r0 = heapU8[r0+16]; -if(!(r0 ==0)) //_LBB303_3 -{ - r0 = heap32[(r2+5)]; -if(!(r0 ==0)) //_LBB303_3 -{ - r1 = heap32[(r2+1)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); -} -} - r0 = _ZTV30btActivatingCollisionAlgorithm; - r0 = (r0 + 8)|0; - heap32[(r2)] = r0; - return; -} - -function _ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var f0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - f0 = 1; - f_g0 = f0; - return; -} - -function _ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+3)]; -if(!(r2 ==0)) //_LBB305_23 -{ - r0 = heapU8[r0+8]; -if(!(r0 ==0)) //_LBB305_23 -{ - r0 = heap32[(fp+1)]; - r3 = r0 >> 2; - r4 = heap32[(r3+2)]; - r5 = heap32[(r3+1)]; - if(r4 ==r5) //_LBB305_4 -{ - r6 = 1; - r7 = r5 << 1; - r7 = r5 == 0 ? r6 : r7; -if(!(r4 >=r7)) //_LBB305_3 -{ - if(r7 !=0) //_LBB305_7 -{ - r2 = gNumAlignedAllocs; - r2 = r2 >> 2; - r4 = heap32[(r2)]; - r8 = r7 << 2; - r4 = (r4 + 1)|0; - r8 = r8 | 3; - heap32[(r2)] = r4; - r2 = (r8 + 16)|0; - heap32[(g0)] = r2; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB305_9 -{ - r4 = 0; - r8 = (r2 + 4)|0; - r4 = (r4 - r8)|0; - r4 = r4 & 15; - r4 = (r2 + r4)|0; - r8 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r2; - r2 = r8; -} -} -else{ - r2 = 0; -} - r4 = (r0 + 12)|0; - if(r5 <1) //_LBB305_12 -{ - r8 = r4 >> 2; - r9 = heap32[(r8)]; -} -else{ - r8 = 0; -_15: while(true){ - r9 = r4 >> 2; - r9 = heap32[(r9)]; - r10 = r8 << 2; - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - r10 = (r2 + r10)|0; - r11 = heap32[(r11)]; - r8 = (r8 + 1)|0; - r10 = r10 >> 2; - heap32[(r10)] = r11; -if(!(r5 !=r8)) //_LBB305_13 -{ -break _15; -} -} - r4 = (r0 + 12)|0; -} - if(r9 !=0) //_LBB305_17 -{ - r8 = heapU8[r0+16]; - if(r8 !=0) //_LBB305_19 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r8 = heap32[(r5)]; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r5)] = r8; - r5 = heap32[(r9+-1)]; - heap32[(g0)] = r5; - free(i7); - r5 = heap32[(r3+1)]; -} - r8 = r4 >> 2; - heap32[(r8)] = 0; -} - r4 = r4 >> 2; - heap8[r0+16] = r6; - heap32[(r4)] = r2; - heap32[(r3+2)] = r7; - r2 = heap32[(r1+3)]; -} -} - r0 = r5 << 2; - r1 = heap32[(r3+3)]; - r0 = (r1 + r0)|0; - r0 = r0 >> 2; - heap32[(r0)] = r2; - r0 = heap32[(r3+1)]; - r0 = (r0 + 1)|0; - heap32[(r3+1)] = r0; -} -} - return; -} - -function _ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -136;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0)]; - f1 = heapFloat[(r0+1)]; - f2 = heapFloat[(r0+2)]; - f3 = f0*f0; - f4 = f1*f1; - f5 = heapFloat[(r0+3)]; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - f4 = f5*f5; - f6 = 2; - f3 = f3+f4; - f3 = f6/f3; - r0 = heap32[(fp)]; - f4 = f2*f3; - f6 = f1*f3; - r1 = heapU8[r0+16]; - r2 = heap32[(fp+3)]; - r3 = heap32[(fp+2)]; - f3 = f0*f3; - r4 = r1 == 0 ? r3 : r2; - f7 = f1*f6; - f2 = f2*f4; - r4 = r4 >> 2; - f8 = f0*f3; - f9 = 1; - f10 = f7+f2; - f11 = f0*f6; - f12 = f5*f4; - f2 = f8+f2; - f10 = f9-f10; - f13 = heapFloat[(r4+1)]; - heapFloat[(fp+-17)] = f13; - f13 = heapFloat[(r4+5)]; - heapFloat[(fp+-18)] = f13; - f14 = f11+f12; - f13 = heapFloat[(r4+2)]; - heapFloat[(fp+-19)] = f13; - f13 = heapFloat[(r4+6)]; - heapFloat[(fp+-20)] = f13; - f0 = f0*f4; - f6 = f5*f6; - f11 = f11-f12; - f2 = f9-f2; - f12 = heapFloat[(r4+9)]; - heapFloat[(fp+-24)] = f12; - f15 = heapFloat[(r4+10)]; - heapFloat[(fp+-25)] = f15; - r1 = r1 == 0 ? r2 : r3; - f1 = f1*f4; - f3 = f5*f3; - f13 = heapFloat[(fp+-17)]; - f4 = f10*f13; - f13 = heapFloat[(fp+-19)]; - f5 = f14*f13; - f13 = heapFloat[(fp+-18)]; - f16 = f10*f13; - f13 = heapFloat[(fp+-20)]; - f17 = f14*f13; - f18 = f0-f6; - f19 = heapFloat[(r4+3)]; - heapFloat[(fp+-26)] = f19; - f20 = heapFloat[(r4+7)]; - heapFloat[(fp+-27)] = f20; - r1 = r1 >> 2; - f0 = f0+f6; - f6 = f1-f3; - f1 = f1+f3; - f3 = heapFloat[(r4+11)]; - heapFloat[(fp+-21)] = f3; - f7 = f8+f7; - f13 = heapFloat[(fp+-17)]; - f8 = f11*f13; - f13 = heapFloat[(fp+-19)]; - f21 = f2*f13; - f13 = heapFloat[(fp+-18)]; - f22 = f11*f13; - f13 = heapFloat[(fp+-20)]; - f23 = f2*f13; - f4 = f4+f5; - f5 = f18*f19; - f16 = f16+f17; - f17 = f18*f20; - f10 = f10*f12; - f14 = f14*f15; - f7 = f9-f7; - f9 = heapFloat[(r1+2)]; - f24 = heapFloat[(r1+6)]; - f25 = heapFloat[(r1+1)]; - f26 = heapFloat[(r1+5)]; - f4 = f4+f5; - f5 = f16+f17; - r2 = heap32[(r1+48)]; - f13 = heapFloat[(fp+-17)]; - f16 = f0*f13; - f13 = heapFloat[(fp+-19)]; - f17 = f6*f13; - f13 = heapFloat[(fp+-18)]; - f27 = f0*f13; - f13 = heapFloat[(fp+-20)]; - f28 = f6*f13; - f8 = f8+f21; - f21 = f1*f19; - f22 = f22+f23; - f23 = f1*f20; - f11 = f11*f12; - f2 = f2*f15; - f10 = f10+f14; - f14 = f18*f3; - f18 = heapFloat[(r1+3)]; - f29 = heapFloat[(r1+7)]; - f8 = f8+f21; - f21 = f22+f23; - f22 = heapFloat[(r1+10)]; - f23 = heapFloat[(r1+9)]; - r2 = r2 >> 2; - f10 = f10+f14; - r3 = heap32[(r4+48)]; - f14 = f16+f17; - f16 = f7*f19; - f17 = f27+f28; - f27 = f7*f20; - f0 = f0*f12; - f6 = f6*f15; - f2 = f11+f2; - f1 = f1*f3; - f11 = f25*f4; - f28 = f26*f5; - f30 = f9*f4; - f3 = f24*f5; - f12 = heapFloat[(r1+11)]; - f14 = f14+f16; - f16 = f17+f27; - f1 = f2+f1; - r5 = r3 >> 2; - f2 = heapFloat[(r2+12)]; - f0 = f0+f6; - f6 = heapFloat[(fp+-21)]; - f7 = f7*f6; - f17 = f25*f8; - f27 = f26*f21; - f6 = f9*f8; - f13 = f24*f21; - f11 = f11+f28; - f28 = f23*f10; - f3 = f30+f3; - f30 = f22*f10; - f4 = f18*f4; - f5 = f29*f5; - f0 = f0+f7; - r5 = heap32[(r5)]; - f7 = f25*f14; - f15 = f26*f16; - f19 = f9*f14; - f20 = f24*f16; - f17 = f17+f27; - f27 = f23*f1; - f6 = f6+f13; - f13 = f22*f1; - f8 = f18*f8; - f21 = f29*f21; - f11 = f11+f28; - f2 = -f2; - f3 = f3+f30; - f28 = heapFloat[(r2+13)]; - f4 = f4+f5; - f5 = f12*f10; - r5 = r5 >> 2; - f10 = f17+f27; - f6 = f6+f13; - f7 = f7+f15; - f13 = f23*f0; - f15 = f19+f20; - f17 = f22*f0; - f14 = f18*f14; - f16 = f29*f16; - f8 = f8+f21; - f1 = f12*f1; - f11 = f11*f2; - f3 = f3*f28; - f4 = f4+f5; - f5 = heapFloat[(r2+14)]; - f19 = heapFloat[(r4+13)]; - heapFloat[(fp+-22)] = f19; - f19 = heapFloat[(r4+14)]; - heapFloat[(fp+-23)] = f19; - f20 = heapFloat[(r4+15)]; - heapFloat[(fp+-28)] = f20; - f21 = heapFloat[(r1+14)]; - f27 = heapFloat[(r1+15)]; - heapFloat[(fp+-29)] = f27; - f7 = f7+f13; - f13 = f15+f17; - f1 = f8+f1; - f8 = heapFloat[(r1+13)]; - r4 = heap32[(r5+15)]; - f14 = f14+f16; - f0 = f12*f0; - f10 = f10*f2; - f6 = f6*f28; - f3 = f11-f3; - f4 = f4*f5; - r5 = sp + -16; - f0 = f14+f0; - f2 = f7*f2; - f7 = f13*f28; - f6 = f10-f6; - f1 = f1*f5; - f3 = f3-f4; - r6 = r5 >> 2; - f2 = f2-f7; - f0 = f0*f5; - f1 = f6-f1; - heapFloat[(fp+-4)] = f3; - f0 = f2-f0; - heapFloat[(r6+1)] = f1; - heapFloat[(r6+2)] = f0; - heap32[(r6+3)] = 0; - r6 = sp + -32; - heap32[(g0)] = r6; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r5; - f13 = heapFloat[(fp+-17)]; - f0 = f13*f9; - f13 = heapFloat[(fp+-18)]; - f1 = f13*f24; - f13 = heapFloat[(fp+-19)]; - f2 = f13*f9; - f13 = heapFloat[(fp+-20)]; - f3 = f13*f24; - f13 = heapFloat[(fp+-17)]; - f4 = f13*f25; - f13 = heapFloat[(fp+-18)]; - f5 = f13*f26; - f13 = heapFloat[(fp+-19)]; - f6 = f13*f25; - f13 = heapFloat[(fp+-20)]; - f7 = f13*f26; - __FUNCTION_TABLE__[(r4)>>2](i7); - f8 = -f8; - r3 = r6 >> 2; - f13 = heapFloat[(fp+-17)]; - f10 = f13*f18; - f13 = heapFloat[(fp+-18)]; - f11 = f13*f29; - f13 = heapFloat[(fp+-19)]; - f13 = f13*f18; - f14 = heapFloat[(fp+-20)]; - f14 = f14*f29; - f0 = f0+f1; - f1 = heapFloat[(fp+-24)]; - f15 = f1*f22; - f2 = f2+f3; - f3 = heapFloat[(fp+-25)]; - f16 = f3*f22; - f19 = heapFloat[(fp+-26)]; - f17 = f19*f9; - f20 = heapFloat[(fp+-27)]; - f28 = f20*f24; - f4 = f4+f5; - f5 = f1*f23; - f6 = f6+f7; - f7 = f3*f23; - f30 = f19*f25; - f1 = f20*f26; - f10 = f10+f11; - f11 = heapFloat[(fp+-24)]; - f11 = f11*f12; - f13 = f13+f14; - f3 = f3*f12; - f14 = f19*f18; - f19 = f20*f29; - f0 = f0+f15; - f15 = heapFloat[(fp+-8)]; - f4 = f4+f5; - f2 = f2+f16; - f5 = heapFloat[(r3+1)]; - f6 = f6+f7; - f7 = f17+f28; - f16 = heapFloat[(fp+-21)]; - f17 = f16*f22; - f20 = heapFloat[(fp+-22)]; - f28 = f9*f20; - f16 = heapFloat[(fp+-23)]; - f16 = f24*f16; - f9 = f9*f8; - f24 = f24*f21; - f1 = f30+f1; - f30 = heapFloat[(fp+-21)]; - f20 = f30*f23; - f27 = heapFloat[(fp+-22)]; - f27 = f25*f27; - f30 = heapFloat[(fp+-23)]; - f30 = f26*f30; - f25 = f25*f8; - f26 = f26*f21; - f10 = f10+f11; - f3 = f13+f3; - f11 = f14+f19; - f13 = heapFloat[(fp+-21)]; - f13 = f13*f12; - f14 = heapFloat[(fp+-22)]; - f14 = f18*f14; - f19 = heapFloat[(fp+-23)]; - f19 = f29*f19; - f8 = f18*f8; - f18 = f29*f21; - f0 = f0*f15; - f2 = f2*f5; - f7 = f7+f17; - f17 = heapFloat[(r3+2)]; - f1 = f1+f20; - f16 = f28+f16; - f20 = heapFloat[(fp+-28)]; - f21 = f22*f20; - f9 = f9-f24; - f24 = heapFloat[(fp+-29)]; - f22 = f22*f24; - f4 = f4*f15; - f6 = f6*f5; - f27 = f27+f30; - f28 = f23*f20; - f25 = f25-f26; - f23 = f23*f24; - f11 = f11+f13; - f10 = f10*f15; - f3 = f3*f5; - f5 = f14+f19; - f13 = f12*f20; - f8 = f8-f18; - f12 = f12*f24; - f0 = f0+f2; - f2 = f7*f17; - f7 = f16+f21; - f9 = f9-f22; - f4 = f4+f6; - f1 = f1*f17; - f6 = f27+f28; - f14 = f25-f23; - f3 = f10+f3; - f10 = f11*f17; - f5 = f5+f13; - f8 = f8-f12; - f0 = f0+f2; - f2 = f7+f9; - f1 = f4+f1; - f4 = f6+f14; - f3 = f3+f10; - f5 = f5+f8; - f0 = f0+f2; - f2 = heapFloat[(r2+13)]; - f1 = f1+f4; - f4 = heapFloat[(r2+12)]; - f6 = f4*f1; - f7 = f2*f0; - f3 = f3+f5; - f5 = heapFloat[(r2+14)]; - r0 = r0 >> 2; - f6 = f6+f7; - f7 = f5*f3; - r0 = heap32[(r0+3)]; - f6 = f6+f7; - f7 = heapFloat[(r2+16)]; - f6 = f6-f7; - r3 = r0 >> 2; - r4 = heap32[(fp+4)]; - f7 = heapFloat[(r1+9)]; - f8 = heapFloat[(r1+10)]; - f9 = heapFloat[(r1+11)]; - f10 = heapFloat[(r1+15)]; - f11 = heapFloat[(r1+5)]; - f12 = heapFloat[(r1+6)]; - f13 = heapFloat[(r1+7)]; - f14 = heapFloat[(r1+14)]; - f15 = heapFloat[(r1+1)]; - f16 = heapFloat[(r1+2)]; - f17 = heapFloat[(r1+3)]; - f18 = heapFloat[(r1+13)]; - f19 = heapFloat[(r3+280)]; - r3 = r4 >> 2; - heap32[(r3+1)] = r0; -if(!(f19 <=f6)) //_LBB306_2 -{ - f5 = f5*f6; - f2 = f2*f6; - f4 = f4*f6; - f3 = f3-f5; - f0 = f0-f2; - f1 = f1-f4; - f2 = heapFloat[(r2+12)]; - f4 = heapFloat[(r1+1)]; - f5 = heapFloat[(r2+13)]; - f19 = heapFloat[(r1+2)]; - f20 = heapFloat[(r1+5)]; - f21 = heapFloat[(r1+6)]; - f4 = f4*f2; - f19 = f19*f5; - f22 = heapFloat[(r2+14)]; - f23 = heapFloat[(r1+3)]; - f24 = heapFloat[(r1+9)]; - f25 = heapFloat[(r1+10)]; - f26 = heapFloat[(r1+11)]; - f27 = heapFloat[(r1+7)]; - f20 = f20*f2; - f21 = f21*f5; - f4 = f4+f19; - f19 = f23*f22; - r0 = sp + -48; - f2 = f24*f2; - f5 = f25*f5; - f20 = f20+f21; - f21 = f27*f22; - f4 = f4+f19; - f15 = f15*f1; - f16 = f16*f0; - r1 = r0 >> 2; - f2 = f2+f5; - f5 = f26*f22; - f19 = f20+f21; - heapFloat[(fp+-12)] = f4; - f4 = f11*f1; - f11 = f12*f0; - f12 = f15+f16; - f15 = f17*f3; - f2 = f2+f5; - heapFloat[(r1+1)] = f19; - heapFloat[(r1+2)] = f2; - f1 = f7*f1; - f0 = f8*f0; - f2 = f4+f11; - f4 = f13*f3; - f5 = f12+f15; - r2 = sp + -64; - f0 = f1+f0; - f1 = f9*f3; - f2 = f2+f4; - f3 = f5+f18; - heap32[(r1+3)] = 0; - r1 = r2 >> 2; - f0 = f0+f1; - f1 = f2+f14; - heapFloat[(fp+-16)] = f3; - f0 = f0+f10; - heapFloat[(r1+1)] = f1; - heapFloat[(r1+2)] = f0; - heap32[(r1+3)] = 0; - r1 = heap32[(r3)]; - r1 = r1 >> 2; - r1 = heap32[(r1+4)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - heapFloat[(g0+3)] = f6; - __FUNCTION_TABLE__[(r1)>>2](i7); -} - return; -} - -function _ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; -var __label__ = 0; - i7 = sp + -56;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+3)]; -if(!(r2 ==0)) //_LBB307_23 -{ - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+4)]; - r5 = heapU8[r0+16]; - r6 = r5 == 0 ? r2 : r3; - r5 = r5 == 0 ? r3 : r2; - r6 = r6 >> 2; - r5 = r5 >> 2; - r6 = heap32[(r6+48)]; - r5 = heap32[(r5+48)]; - r7 = sp + -32; - r8 = r7 >> 2; - heap32[(fp+-8)] = 0; - heap32[(r8+1)] = 0; - heap32[(r8+2)] = 0; - heap32[(r8+3)] = 1065353216; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r4; - r7 = r4 >> 2; - _ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(i7); - r8 = heap32[(r7+1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+279)]; - r9 = heap32[(r1+6)]; -_3: do { -if(!(r8 >=r9)) //_LBB307_15 -{ - r5 = r5 >> 2; - f0 = heapFloat[(r5+14)]; - f1 = 0; - if(f0 > 2; - r8 = heap32[(r8)]; - r8 = r8 >> 2; - r8 = heap32[(r8+4)]; - heap32[(g0)] = r6; - f4 = f3*f3; - f5 = f2*f2; - __FUNCTION_TABLE__[(r8)>>2](i7); - f6 = f_g0; - f4 = f4+f5; - f5 = f0*f0; - f4 = f4+f5; - heapFloat[(g0)] = f4; - sqrtf(i7); - f4 = f_g0; - if(f4 !=f1) //_LBB307_10 -{ - f1 = 0.019999999552965164; - f1 = f1/f6; - f5 = 0.5; - f6 = 0.39269909262657166; - f7 = 0.19634954631328583; - f8 = f1*f5; - f1 = f1 > f6 ? f7 : f8; - heapFloat[(g0)] = f1; - sinf(i7); - heapFloat[(g0)] = f1; - f1 = f_g0/f4; - f0 = f0*f1; - f2 = f2*f1; - f1 = f3*f1; - r6 = 0; - cosf(i7); - f3 = f_g0; -_15: while(true){ - r8 = heap32[(r1+5)]; - if(r8 >r6) //_LBB307_11 -{ - f4 = heapFloat[(r5+12)]; - f6 = heapFloat[(r5+13)]; - f7 = heapFloat[(r5+14)]; - f4 = f4*f4; - f6 = f6*f6; - f4 = f4+f6; - f6 = f7*f7; - f4 = f4+f6; - heapFloat[(g0)] = f4; - sqrtf(i7); - f4 = f_g0; - f6 = 0; - if(f4 !=f6) //_LBB307_13 -{ - f6 = 6.2831854820251465; - f7 = r8; //fitos r8, f7 - f8 = r6; //fitos r6, f8 - f6 = f6/f7; - f6 = f8*f6; - f6 = f6*f5; - heapFloat[(g0)] = f6; - sinf(i7); - f7 = f_g0; - heapFloat[(g0)] = f6; - cosf(i7); - f4 = f7/f4; - f7 = heapFloat[(r5+12)]; - f7 = f7*f4; - f8 = heapFloat[(r5+13)]; - f8 = f8*f4; - f9 = heapFloat[(r5+14)]; - f10 = f_g0*f3; - f11 = f1*f7; - f12 = f_g0*f1; - f13 = f3*f7; - f4 = f9*f4; - f9 = f10+f11; - f10 = f2*f8; - f11 = f12-f13; - f12 = f0*f8; - f13 = f_g0*f2; - f14 = f3*f8; - f9 = f9+f10; - f10 = f0*f4; - f11 = f11-f12; - f12 = f2*f4; - f13 = f13-f14; - f14 = f1*f4; - f15 = f_g0*f0; - f16 = f3*f4; - f9 = f9+f10; - f10 = f11+f12; - f11 = f13-f14; - f12 = f0*f7; - f13 = f15-f16; - f14 = f2*f7; - f11 = f11+f12; - f12 = f9*f7; - f15 = f10*f_g0; - f13 = f13-f14; - f14 = f1*f8; - f13 = f13+f14; - f14 = f9*f8; - f16 = f11*f_g0; - f12 = f12+f15; - f15 = f11*f4; - f17 = f9*f4; - f18 = f13*f_g0; - f14 = f14+f16; - f16 = f13*f7; - f12 = f12+f15; - f15 = f13*f8; - r8 = sp + -16; - f6 = f9*f_g0; - f9 = f10*f7; - f17 = f17+f18; - f18 = f10*f8; - f14 = f14+f16; - f10 = f10*f4; - f12 = f12-f15; - r9 = r8 >> 2; - f6 = f6-f9; - f8 = f11*f8; - f9 = f17+f18; - f7 = f11*f7; - f10 = f14-f10; - heapFloat[(fp+-4)] = f12; - f6 = f6-f8; - f4 = f13*f4; - f7 = f9-f7; - heapFloat[(r9+1)] = f10; - f4 = f6-f4; - heapFloat[(r9+2)] = f7; - heapFloat[(r9+3)] = f4; - heap32[(g0)] = r0; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r4; - r6 = (r6 + 1)|0; - _ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(i7); -} -else{ -break _15; -} -} -else{ -break _3; -} -} -} - r0 = _2E_str115; - r1 = _2E_str685; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 61; - _assert(i7); -} -} while(0); - r0 = heapU8[r0+8]; -if(!(r0 ==0)) //_LBB307_23 -{ - r0 = heap32[(r1+3)]; - r0 = r0 >> 2; - r0 = heap32[(r0+279)]; -if(!(r0 ==0)) //_LBB307_23 -{ - r0 = heap32[(r7+1)]; - if(r0 !=0) //_LBB307_19 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+279)]; -if(!(r2 ==0)) //_LBB307_23 -{ - r1 = heap32[(r1+277)]; - r2 = heap32[(r7+34)]; - if(r1 ==r2) //_LBB307_22 -{ - r1 = (r4 + 8)|0; - r2 = (r4 + 72)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); -} -else{ - r1 = (r4 + 72)|0; - r4 = (r4 + 8)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r4; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); - return; -} -} -} -else{ - r0 = _2E_str59; - r4 = _2E_str160; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = 101; - _assert(i7); -} -} -} -} - return; -} - -function _ZN31btConvexPlaneCollisionAlgorithmD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV31btConvexPlaneCollisionAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heapU8[r0+8]; -if(!(r1 ==0)) //_LBB308_3 -{ - r1 = heap32[(r2+3)]; -if(!(r1 ==0)) //_LBB308_3 -{ - r2 = heap32[(r2+1)]; - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); -} -} - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN31btConvexPlaneCollisionAlgorithmD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV31btConvexPlaneCollisionAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r0 = heapU8[r0+8]; -if(!(r0 ==0)) //_LBB309_3 -{ - r0 = heap32[(r2+3)]; -if(!(r0 ==0)) //_LBB309_3 -{ - r1 = heap32[(r2+1)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); -} -} - return; -} - -function _ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+4)]; - r_g0 = r0; - return; -} - -function _ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+6)]; - r_g0 = r0; - return; -} - -function _ZN31btDefaultCollisionConfiguration17getStackAllocatorEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+2)]; - r_g0 = r0; - return; -} - -function _ZN31btDefaultCollisionConfiguration16getSimplexSolverEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+8)]; - r_g0 = r0; - return; -} - -function _ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 28; - r1 = heap32[(fp)]; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r3 = r1 >> 2; - r4 = _ZTV20btCollisionAlgorithm; - r5 = heap32[(r3+3)]; - r3 = heap32[(r3+2)]; - r1 = heapU8[r1+4]; - r6 = r2 >> 2; - r4 = (r4 + 8)|0; - heap32[(r6)] = r4; - r0 = heap32[(r0)]; - r4 = _ZTV31btConvexPlaneCollisionAlgorithm; - r4 = (r4 + 8)|0; - heap32[(r6+1)] = r0; - r7 = 0; - heap32[(r6)] = r4; - r4 = heap32[(fp+2)]; - r8 = heap32[(fp+3)]; - heap8[r2+8] = r7; - heap32[(r6+3)] = 0; - if(r1 !=0) //_LBB316_3 -{ - r1 = 1; - r6 = r2 >> 2; - heap8[r2+16] = r1; - heap32[(r6+5)] = r3; - r3 = r0 >> 2; - heap32[(r6+6)] = r5; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+6)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r3)>>2](i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB316_5 -{ - r0 = heap32[(r6+1)]; - r3 = r0 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r3)>>2](i7); - heap32[(r6+3)] = r_g0; - heap8[r2+8] = r1; -} -} -else{ - r1 = r2 >> 2; - heap8[r2+16] = r7; - heap32[(r1+5)] = r3; - r3 = r0 >> 2; - heap32[(r1+6)] = r5; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+6)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r8; - __FUNCTION_TABLE__[(r3)>>2](i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB316_5 -{ - r0 = heap32[(r1+1)]; - r3 = r0 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r8; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = 1; - heap32[(r1+3)] = r_g0; - heap8[r2+8] = r3; -} -} - r_g0 = r2; - return; -} - -function _ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 80; - r1 = _ZTV20btCollisionAlgorithm; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r1 = (r1 + 8)|0; - r3 = r2 >> 2; - heap32[(r3)] = r1; - r1 = heap32[(r0)]; - r4 = _ZTV33btConvexConcaveCollisionAlgorithm; - r4 = (r4 + 8)|0; - heap32[(r3+1)] = r1; - r1 = 0; - heap32[(r3)] = r4; - heap8[r2+8] = r1; - r1 = _ZTV24btConvexTriangleCallback; - r0 = heap32[(r0)]; - r1 = (r1 + 8)|0; - heap32[(r3+3)] = r1; - heap32[(r3+15)] = r0; - r1 = heap32[(fp+2)]; - heap32[(r3+16)] = 0; - r4 = heap32[(fp+3)]; - heap32[(r3+4)] = r1; - r5 = r0 >> 2; - heap32[(r3+5)] = r4; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r5)>>2](i7); - heap32[(r3+19)] = r_g0; - r1 = heap32[(r3+15)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+5)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r_g0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r_g0 = r2; - return; -} - -function _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 80; - r1 = _ZTV20btCollisionAlgorithm; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r1 = (r1 + 8)|0; - r3 = r2 >> 2; - heap32[(r3)] = r1; - r1 = heap32[(r0)]; - r4 = _ZTV33btConvexConcaveCollisionAlgorithm; - r4 = (r4 + 8)|0; - heap32[(r3+1)] = r1; - r1 = 1; - heap32[(r3)] = r4; - heap8[r2+8] = r1; - r1 = _ZTV24btConvexTriangleCallback; - r0 = heap32[(r0)]; - r1 = (r1 + 8)|0; - heap32[(r3+3)] = r1; - heap32[(r3+15)] = r0; - r1 = heap32[(fp+3)]; - heap32[(r3+16)] = 0; - r4 = heap32[(fp+2)]; - heap32[(r3+4)] = r1; - r5 = r0 >> 2; - heap32[(r3+5)] = r4; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r5)>>2](i7); - heap32[(r3+19)] = r_g0; - r1 = heap32[(r3+15)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+5)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r_g0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r_g0 = r2; - return; -} - -function _ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN28btCompoundCollisionAlgorithm10CreateFuncE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN28btCompoundCollisionAlgorithm10CreateFuncE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 44; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = r_g0; - r2 = _ZTV20btCollisionAlgorithm; - r3 = r1 >> 2; - r2 = (r2 + 8)|0; - heap32[(r3)] = r2; - r2 = heap32[(r0)]; - r4 = _ZTV28btCompoundCollisionAlgorithm; - r4 = (r4 + 8)|0; - heap32[(r3+1)] = r2; - r2 = 1; - heap32[(r3)] = r4; - heap8[r1+24] = r2; - heap32[(r3+5)] = 0; - heap32[(r3+3)] = 0; - r2 = 0; - heap32[(r3+4)] = 0; - heap8[r1+28] = r2; - r0 = heap32[(r0+1)]; - r4 = heap32[(fp+2)]; - heap32[(r3+8)] = r0; - r0 = r4 >> 2; - heap8[r1+36] = r2; - r0 = heap32[(r0+48)]; - r0 = r0 >> 2; - r2 = heap32[(r0+1)]; - if(r2 ==31) //_LBB325_2 -{ - r2 = heap32[(fp+3)]; - r3 = r1 >> 2; - r0 = heap32[(r0+17)]; - heap32[(r3+10)] = r0; - heap32[(g0)] = r1; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r2; - _ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i7); - r_g0 = r1; - return; -} -else{ - r0 = _2E_str99; - r1 = _2E_str1100; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 32; - _assert(i7); -} -} - -function _ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 44; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = r_g0; - r2 = _ZTV20btCollisionAlgorithm; - r3 = r1 >> 2; - r2 = (r2 + 8)|0; - heap32[(r3)] = r2; - r2 = heap32[(r0)]; - r4 = _ZTV28btCompoundCollisionAlgorithm; - r4 = (r4 + 8)|0; - heap32[(r3+1)] = r2; - r2 = 1; - heap32[(r3)] = r4; - heap8[r1+24] = r2; - heap32[(r3+5)] = 0; - heap32[(r3+3)] = 0; - heap32[(r3+4)] = 0; - heap8[r1+28] = r2; - r0 = heap32[(r0+1)]; - r2 = heap32[(fp+3)]; - r4 = 0; - heap32[(r3+8)] = r0; - r0 = r2 >> 2; - heap8[r1+36] = r4; - r0 = heap32[(r0+48)]; - r0 = r0 >> 2; - r3 = heap32[(r0+1)]; - if(r3 ==31) //_LBB328_2 -{ - r3 = heap32[(fp+2)]; - r4 = r1 >> 2; - r0 = heap32[(r0+17)]; - heap32[(r4+10)] = r0; - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r2; - _ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i7); - r_g0 = r1; - return; -} -else{ - r0 = _2E_str99; - r1 = _2E_str1100; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 32; - _assert(i7); -} -} - -function _ZN16btEmptyAlgorithm10CreateFuncD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN16btEmptyAlgorithm10CreateFuncE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN16btEmptyAlgorithm10CreateFuncD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN16btEmptyAlgorithm10CreateFuncE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 8; - r1 = _ZTV20btCollisionAlgorithm; - __FUNCTION_TABLE__[(r2)>>2](i7); - r3 = r_g0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r3)] = r1; - r0 = heap32[(r0)]; - r1 = _ZTV16btEmptyAlgorithm; - r1 = (r1 + 8)|0; - heap32[(r3+1)] = r0; - heap32[(r3)] = r1; - return; -} - -function _ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 16; - r1 = _ZTV20btCollisionAlgorithm; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r3 = r2 >> 2; - r1 = (r1 + 8)|0; - heap32[(r3)] = r1; - r0 = heap32[(r0)]; - r1 = _ZTV32btSphereSphereCollisionAlgorithm; - r1 = (r1 + 8)|0; - heap32[(r3+1)] = r0; - r4 = 0; - heap32[(r3)] = r1; - heap8[r2+8] = r4; - r1 = r0 >> 2; - heap32[(r3+3)] = 0; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+3)]; - r4 = heap32[(fp+2)]; - r5 = heap32[(fp+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r5; - __FUNCTION_TABLE__[(r1)>>2](i7); - r1 = 1; - heap32[(r3+3)] = r_g0; - heap8[r2+8] = r1; - r_g0 = r2; - return; -} - -function _ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 20; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = r_g0; - r2 = heap32[(fp)]; - r3 = _ZTV20btCollisionAlgorithm; - r4 = heap32[(r0+1)]; - r2 = heapU8[r2+4]; - r5 = r1 >> 2; - r3 = (r3 + 8)|0; - heap32[(r5)] = r3; - r0 = heap32[(r0)]; - r3 = _ZTV34btSphereTriangleCollisionAlgorithm; - r3 = (r3 + 8)|0; - heap32[(r5+1)] = r0; - r6 = 0; - heap32[(r5)] = r3; - heap8[r1+8] = r6; - heap32[(r5+3)] = r4; - heap8[r1+16] = r2; -if(!(r4 !=0)) //_LBB337_2 -{ - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - r4 = r0 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - r0 = r1 >> 2; - __FUNCTION_TABLE__[(r4)>>2](i7); - r3 = 1; - heap32[(r0+3)] = r_g0; - heap8[r1+8] = r3; -} - r_g0 = r1; - return; -} - -function _ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 16; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = r_g0; - r2 = _ZTV20btCollisionAlgorithm; - r3 = r1 >> 2; - r2 = (r2 + 8)|0; - heap32[(r3)] = r2; - r0 = heap32[(r0)]; - r2 = _ZTV26btBoxBoxCollisionAlgorithm; - r2 = (r2 + 8)|0; - heap32[(r3+1)] = r0; - r4 = 0; - heap32[(r3)] = r2; - heap8[r1+8] = r4; - r2 = r0 >> 2; - heap32[(r3+3)] = 0; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+6)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r2)>>2](i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB340_2 -{ - r0 = r1 >> 2; - r2 = heap32[(r0+1)]; - r5 = r2 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+3)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r5)>>2](i7); - r3 = 1; - heap32[(r0+3)] = r_g0; - heap8[r1+8] = r3; -} - r_g0 = r1; - return; -} - -function _ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = heap32[(fp+2)]; - if(r0 !=8) //_LBB341_3 -{ -__label__ = 3; -} -else{ - if(r2 !=8) //_LBB341_3 -{ -__label__ = 3; -} -else{ - r0 = (r1 + 64)|0; -__label__ = 30; -} -} -_4: do { -if (__label__ == 3){ -if(!(r0 !=8)) //_LBB341_6 -{ -if(!(r2 !=1)) //_LBB341_6 -{ - r0 = (r1 + 72)|0; -break _4; -} -} -if(!(r0 !=1)) //_LBB341_9 -{ -if(!(r2 !=8)) //_LBB341_9 -{ - r0 = (r1 + 76)|0; -break _4; -} -} - r3 = r2 | r0; - if(r3 !=0) //_LBB341_11 -{ -if(!(r0 >19)) //_LBB341_14 -{ -if(!(r2 !=28)) //_LBB341_14 -{ - r0 = (r1 + 84)|0; -break _4; -} -} -if(!(r2 >19)) //_LBB341_17 -{ -if(!(r0 !=28)) //_LBB341_17 -{ - r0 = (r1 + 80)|0; -break _4; -} -} -_24: do { - if(r0 >19) //_LBB341_21 -{ - if(r2 <20) //_LBB341_23 -{ - r3 = (r0 + -21)|0; - if(uint(r3) 19) //_LBB341_20 -{ - r0 = (r2 + -21)|0; - if(uint(r0) > 2; - r0 = heap32[(r0)]; - r_g0 = r0; - return; -} - -function _ZN31btDefaultCollisionConfigurationD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV31btDefaultCollisionConfiguration; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heapU8[r0+12]; -_1: do { -if(!(r1 ==0)) //_LBB342_13 -{ - r1 = heap32[(r2+2)]; - r3 = r1 >> 2; - r4 = heap32[(r3+2)]; - if(r4 ==0) //_LBB342_3 -{ - r1 = heapU8[r1+16]; -if(!(r1 !=0)) //_LBB342_6 -{ - r1 = heap32[(r3)]; -if(!(r1 ==0)) //_LBB342_6 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r1 = r1 >> 2; - heap32[(r4)] = r5; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - heap32[(r3)] = 0; - heap32[(r3+2)] = 0; - r1 = heap32[(r2+2)]; - r3 = r1 >> 2; - r4 = heap32[(r3+2)]; - if(r4 ==0) //_LBB342_8 -{ - r1 = heapU8[r1+16]; -if(!(r1 !=0)) //_LBB342_11 -{ - r1 = heap32[(r3)]; -if(!(r1 ==0)) //_LBB342_11 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r1 = r1 >> 2; - heap32[(r4)] = r5; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - heap32[(r3)] = 0; - heap32[(r3+2)] = 0; - r1 = heap32[(r2+2)]; - if(r1 ==0) //_LBB342_13 -{ -break _1; -} -else{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -break _1; -} -} -} - r0 = _2E_str128; - r1 = _2E_str1129; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 49; - _assert(i7); -} -} while(0); - r1 = heapU8[r0+28]; -if(!(r1 ==0)) //_LBB342_19 -{ - r1 = heap32[(r2+6)]; - r3 = r1 >> 2; - r3 = heap32[(r3+4)]; - if(r3 !=0) //_LBB342_16 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r4 = heap32[(r1)]; - r4 = (r4 + 1)|0; - r3 = r3 >> 2; - heap32[(r1)] = r4; - r1 = heap32[(r3+-1)]; - heap32[(g0)] = r1; - free(i7); - r1 = heap32[(r2+6)]; -} -if(!(r1 ==0)) //_LBB342_19 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - r1 = heapU8[r0+20]; -if(!(r1 ==0)) //_LBB342_25 -{ - r1 = heap32[(r2+4)]; - r3 = r1 >> 2; - r3 = heap32[(r3+4)]; - if(r3 !=0) //_LBB342_22 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r4 = heap32[(r1)]; - r4 = (r4 + 1)|0; - r3 = r3 >> 2; - heap32[(r1)] = r4; - r1 = heap32[(r3+-1)]; - heap32[(g0)] = r1; - free(i7); - r1 = heap32[(r2+4)]; -} -if(!(r1 ==0)) //_LBB342_25 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - r1 = heap32[(r2+10)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+10)]; -if(!(r1 ==0)) //_LBB342_27 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+11)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+11)]; -if(!(r1 ==0)) //_LBB342_29 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+12)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+12)]; -if(!(r1 ==0)) //_LBB342_31 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+13)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+13)]; -if(!(r1 ==0)) //_LBB342_33 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+14)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+14)]; -if(!(r1 ==0)) //_LBB342_35 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+15)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+15)]; -if(!(r1 ==0)) //_LBB342_37 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+16)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+16)]; -if(!(r1 ==0)) //_LBB342_39 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+18)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+18)]; -if(!(r1 ==0)) //_LBB342_41 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+19)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+19)]; -if(!(r1 ==0)) //_LBB342_43 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+17)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+17)]; -if(!(r1 ==0)) //_LBB342_45 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+21)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+21)]; -if(!(r1 ==0)) //_LBB342_47 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+20)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+20)]; -if(!(r1 ==0)) //_LBB342_49 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+8)]; -if(!(r1 ==0)) //_LBB342_51 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - r1 = heap32[(r2+9)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+9)]; -if(!(r1 ==0)) //_LBB342_53 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r3 = heap32[(r2)]; - r3 = (r3 + 1)|0; - r1 = r1 >> 2; - heap32[(r2)] = r3; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN31btDefaultCollisionConfigurationD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - heap32[(g0)] = r0; - _ZN31btDefaultCollisionConfigurationD2Ev(i7); - return; -} - -function _ZN31btDefaultCollisionConfigurationD2Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV31btDefaultCollisionConfiguration; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heapU8[r0+12]; -_1: do { -if(!(r1 ==0)) //_LBB344_13 -{ - r1 = heap32[(r2+2)]; - r3 = r1 >> 2; - r4 = heap32[(r3+2)]; - if(r4 ==0) //_LBB344_3 -{ - r1 = heapU8[r1+16]; -if(!(r1 !=0)) //_LBB344_6 -{ - r1 = heap32[(r3)]; -if(!(r1 ==0)) //_LBB344_6 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r1 = r1 >> 2; - heap32[(r4)] = r5; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - heap32[(r3)] = 0; - heap32[(r3+2)] = 0; - r1 = heap32[(r2+2)]; - r3 = r1 >> 2; - r4 = heap32[(r3+2)]; - if(r4 ==0) //_LBB344_8 -{ - r1 = heapU8[r1+16]; -if(!(r1 !=0)) //_LBB344_11 -{ - r1 = heap32[(r3)]; -if(!(r1 ==0)) //_LBB344_11 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r1 = r1 >> 2; - heap32[(r4)] = r5; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - heap32[(r3)] = 0; - heap32[(r3+2)] = 0; - r1 = heap32[(r2+2)]; - if(r1 ==0) //_LBB344_13 -{ -break _1; -} -else{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -break _1; -} -} -} - r0 = _2E_str128; - r1 = _2E_str1129; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 49; - _assert(i7); -} -} while(0); - r1 = heapU8[r0+28]; -if(!(r1 ==0)) //_LBB344_19 -{ - r1 = heap32[(r2+6)]; - r3 = r1 >> 2; - r3 = heap32[(r3+4)]; - if(r3 !=0) //_LBB344_16 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r4 = heap32[(r1)]; - r4 = (r4 + 1)|0; - r3 = r3 >> 2; - heap32[(r1)] = r4; - r1 = heap32[(r3+-1)]; - heap32[(g0)] = r1; - free(i7); - r1 = heap32[(r2+6)]; -} -if(!(r1 ==0)) //_LBB344_19 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - r0 = heapU8[r0+20]; -if(!(r0 ==0)) //_LBB344_25 -{ - r0 = heap32[(r2+4)]; - r1 = r0 >> 2; - r1 = heap32[(r1+4)]; - if(r1 !=0) //_LBB344_22 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r3 = heap32[(r0)]; - r3 = (r3 + 1)|0; - r1 = r1 >> 2; - heap32[(r0)] = r3; - r0 = heap32[(r1+-1)]; - heap32[(g0)] = r0; - free(i7); - r0 = heap32[(r2+4)]; -} -if(!(r0 ==0)) //_LBB344_25 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} -} - r0 = heap32[(r2+10)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+10)]; -if(!(r0 ==0)) //_LBB344_27 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = heap32[(r2+11)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+11)]; -if(!(r0 ==0)) //_LBB344_29 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = heap32[(r2+12)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+12)]; -if(!(r0 ==0)) //_LBB344_31 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = heap32[(r2+13)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+13)]; -if(!(r0 ==0)) //_LBB344_33 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = heap32[(r2+14)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+14)]; -if(!(r0 ==0)) //_LBB344_35 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = heap32[(r2+15)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+15)]; -if(!(r0 ==0)) //_LBB344_37 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = heap32[(r2+16)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+16)]; -if(!(r0 ==0)) //_LBB344_39 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = heap32[(r2+18)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+18)]; -if(!(r0 ==0)) //_LBB344_41 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = heap32[(r2+19)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+19)]; -if(!(r0 ==0)) //_LBB344_43 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = heap32[(r2+17)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+17)]; -if(!(r0 ==0)) //_LBB344_45 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = heap32[(r2+21)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+21)]; -if(!(r0 ==0)) //_LBB344_47 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = heap32[(r2+20)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+20)]; -if(!(r0 ==0)) //_LBB344_49 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = heap32[(r2+8)]; -if(!(r0 ==0)) //_LBB344_51 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - r0 = heap32[(r2+9)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+9)]; -if(!(r0 ==0)) //_LBB344_53 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r2 = heap32[(r1)]; - r2 = (r2 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r2; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var f0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - f0 = 1; - f_g0 = f0; - return; -} - -function _ZN16btEmptyAlgorithmD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV16btEmptyAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN16btEmptyAlgorithmD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV16btEmptyAlgorithm; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN16btManifoldResultD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV16btManifoldResult; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN16btManifoldResultD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV16btManifoldResult; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN16btManifoldResult15addContactPointERK9btVector3S2_f(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -304;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+1)]; - if(r1 !=0) //_LBB352_2 -{ - f0 = heapFloat[(fp+3)]; - r2 = r1 >> 2; - f1 = heapFloat[(r2+280)]; -if(!(f1 > 2; - r4 = r4 >> 2; - f1 = heapFloat[(r3+2)]; - heapFloat[(fp+-71)] = f1; - f2 = heapFloat[(r3+1)]; - f3 = heapFloat[(r3)]; - f4 = heapFloat[(r4+2)]; - f1 = f1*f0; - f5 = heapFloat[(r4+1)]; - f6 = f2*f0; - f7 = heapFloat[(r4)]; - f8 = f3*f0; - r5 = heap32[(r2+277)]; - r6 = heap32[(r0+34)]; - f1 = f4+f1; - f6 = f5+f6; - f8 = f7+f8; - if(r5 ==r6) //_LBB352_5 -{ - f9 = heapFloat[(r0+14)]; - f10 = heapFloat[(r0+15)]; - f11 = heapFloat[(r0+30)]; - f13 = heapFloat[(r0+31)]; - f14 = heapFloat[(r0+4)]; - f9 = f8-f9; - f15 = heapFloat[(r0+3)]; - f12 = heapFloat[(r0+2)]; - f16 = heapFloat[(r0+8)]; - f10 = f6-f10; - f17 = heapFloat[(r0+7)]; - f18 = heapFloat[(r0+6)]; - f19 = heapFloat[(r0+16)]; - f20 = heapFloat[(r0+20)]; - f11 = f7-f11; - f21 = heapFloat[(r0+19)]; - f22 = heapFloat[(r0+18)]; - f23 = heapFloat[(r0+24)]; - f13 = f5-f13; - f24 = heapFloat[(r0+23)]; - f25 = heapFloat[(r0+22)]; - f26 = heapFloat[(r0+32)]; - f14 = f14*f9; - f16 = f16*f10; - f27 = heapFloat[(r0+12)]; - f19 = f1-f19; - f28 = heapFloat[(r0+11)]; - f29 = heapFloat[(r0+10)]; - f15 = f15*f9; - f17 = f17*f10; - f9 = f12*f9; - f10 = f18*f10; - f12 = f20*f11; - f18 = f23*f13; - f20 = heapFloat[(r0+28)]; - f23 = f4-f26; - f26 = heapFloat[(r0+27)]; - f30 = heapFloat[(r0+26)]; - f21 = f21*f11; - f24 = f24*f13; - f11 = f22*f11; - f13 = f25*f13; - f14 = f14+f16; - f16 = f27*f19; - f15 = f15+f17; - f17 = f28*f19; - f9 = f9+f10; - f10 = f29*f19; - f12 = f12+f18; - f18 = f20*f23; - f19 = f21+f24; - f20 = f26*f23; - f11 = f11+f13; - f21 = f30*f23; - f13 = f14+f16; - f14 = f15+f17; - f9 = f9+f10; - f10 = f12+f18; - f15 = f19+f20; - f11 = f11+f21; -} -else{ - f9 = heapFloat[(r0+30)]; - f10 = heapFloat[(r0+31)]; - f11 = heapFloat[(r0+14)]; - f12 = heapFloat[(r0+15)]; - f13 = heapFloat[(r0+20)]; - f9 = f8-f9; - f14 = heapFloat[(r0+19)]; - f15 = heapFloat[(r0+18)]; - f16 = heapFloat[(r0+24)]; - f10 = f6-f10; - f17 = heapFloat[(r0+23)]; - f18 = heapFloat[(r0+22)]; - f19 = heapFloat[(r0+32)]; - f20 = heapFloat[(r0+4)]; - f11 = f7-f11; - f21 = heapFloat[(r0+3)]; - f22 = heapFloat[(r0+2)]; - f23 = heapFloat[(r0+8)]; - f12 = f5-f12; - f24 = heapFloat[(r0+7)]; - f25 = heapFloat[(r0+6)]; - f26 = heapFloat[(r0+16)]; - f13 = f13*f9; - f16 = f16*f10; - f27 = heapFloat[(r0+28)]; - f19 = f1-f19; - f28 = heapFloat[(r0+27)]; - f29 = heapFloat[(r0+26)]; - f14 = f14*f9; - f17 = f17*f10; - f9 = f15*f9; - f10 = f18*f10; - f15 = f20*f11; - f18 = f23*f12; - f20 = heapFloat[(r0+12)]; - f23 = f4-f26; - f26 = heapFloat[(r0+11)]; - f30 = heapFloat[(r0+10)]; - f21 = f21*f11; - f24 = f24*f12; - f11 = f22*f11; - f12 = f25*f12; - f13 = f13+f16; - f16 = f27*f19; - f14 = f14+f17; - f17 = f28*f19; - f9 = f9+f10; - f10 = f29*f19; - f15 = f15+f18; - f18 = f20*f23; - f19 = f21+f24; - f20 = f26*f23; - f11 = f11+f12; - f12 = f30*f23; - f13 = f13+f16; - f14 = f14+f17; - f9 = f9+f10; - f10 = f15+f18; - f15 = f19+f20; - f11 = f11+f12; -} - r7 = sp + -280; - r8 = r7 >> 2; - heapFloat[(fp+-70)] = f9; - heapFloat[(r8+1)] = f14; - heapFloat[(r8+2)] = f13; - heap32[(r8+3)] = 0; - heapFloat[(r8+4)] = f11; - heapFloat[(r8+5)] = f15; - heapFloat[(r8+6)] = f10; - heap32[(r8+7)] = 0; - heapFloat[(r8+16)] = f3; - heapFloat[(r8+17)] = f2; - f2 = heapFloat[(fp+-71)]; - heapFloat[(r8+18)] = f2; - heap32[(r8+19)] = heap32[(r3+3)]; - heapFloat[(r8+20)] = f0; - heap32[(r8+21)] = 0; - heap32[(r8+22)] = 0; - heap32[(r8+27)] = 0; - r3 = 0; - heap32[(r8+28)] = 0; - heap8[sp+-164] = r3; - heap32[(r8+30)] = 0; - heap32[(r8+31)] = 0; - heap32[(r8+32)] = 0; - heap32[(r8+33)] = 0; - heap32[(r8+34)] = 0; - heap32[(r8+35)] = 0; - heap32[(r8+36)] = 0; - heap32[(r8+52)] = 0; - heap32[(r8+60)] = 0; - heap32[(r8+68)] = 0; - heapFloat[(r8+12)] = f8; - heapFloat[(r8+13)] = f6; - heapFloat[(r8+14)] = f1; - heap32[(r8+15)] = 0; - heapFloat[(r8+8)] = f7; - heapFloat[(r8+9)] = f5; - heapFloat[(r8+10)] = f4; - heap32[(r8+11)] = heap32[(r4+3)]; - r4 = heap32[(r2+279)]; -_9: do { - if(r4 >0) //_LBB352_8 -{ - f1 = heapFloat[(r2+280)]; - f1 = f1*f1; - r10 = 0; - r9 = -1; -_11: while(true){ - r11 = (r10 * 69)|0; - r11 = r11 << 2; - r11 = (r1 + r11)|0; - r11 = r11 >> 2; - f2 = heapFloat[(r11+1)]; - f3 = heapFloat[(r11+2)]; - f2 = f2-f9; - f3 = f3-f14; - f4 = heapFloat[(r11+3)]; - f4 = f4-f13; - f2 = f2*f2; - f3 = f3*f3; - f2 = f2+f3; - f3 = f4*f4; - f2 = f2+f3; - r11 = (r10 + 1)|0; - r9 = f2 < f1 ? r10 : r9; - f1 = f2 < f1 ? f2 : f1; - r10 = r11; -if(!(r4 !=r11)) //_LBB352_9 -{ -break _9; -} -} -} -else{ - r9 = -1; -} -} while(0); - r4 = heap32[(r0+35)]; - r4 = r4 >> 2; - r10 = r6 >> 2; - f1 = heapFloat[(r10+56)]; - f2 = heapFloat[(r4+56)]; - f1 = f1*f2; - f2 = -10; - f1 = f1 < f2 ? f2 : f1; - f2 = 10; - f1 = f1 > f2 ? f2 : f1; - heapFloat[(r8+21)] = f1; - f1 = heapFloat[(r10+57)]; - f2 = heapFloat[(r4+57)]; - f1 = f1*f2; - heapFloat[(r8+22)] = f1; - if(r5 ==r6) //_LBB352_12 -{ - r4 = heap32[(r0+36)]; - heap32[(r8+23)] = r4; - r4 = heap32[(r0+37)]; - heap32[(r8+24)] = r4; - r4 = heap32[(r0+38)]; - heap32[(r8+25)] = r4; - r0 = heap32[(r0+39)]; - heap32[(r8+26)] = r0; -} -else{ - r4 = heap32[(r0+37)]; - heap32[(r8+23)] = r4; - r4 = heap32[(r0+36)]; - heap32[(r8+24)] = r4; - r4 = heap32[(r0+39)]; - heap32[(r8+25)] = r4; - r0 = heap32[(r0+38)]; - heap32[(r8+26)] = r0; -} - f1 = heapFloat[(r2+280)]; - if(r9 <0) //_LBB352_19 -{ - if(f1 >=f0) //_LBB352_21 -{ - r0 = heap32[(r2+279)]; - if(r0 !=4) //_LBB352_49 -{ - r4 = (r0 + 1)|0; - heap32[(r2+279)] = r4; -} -else{ - f1 = heapFloat[(r2+21)]; - r0 = -1; - f2 = heapFloat[(r2+90)]; - f3 = f1 < f0 ? f1 : f0; - r4 = 1; - f4 = heapFloat[(r2+159)]; - f5 = f2 < f3 ? f2 : f3; - r5 = 2; - f6 = heapFloat[(r2+228)]; - f7 = f4 < f5 ? f4 : f5; - if(f6 >=f7) //_LBB352_24 -{ - r6 = f1 >= f0 ? r0 : r3; - r6 = f2 < f3 ? r4 : r6; - r6 = f4 < f5 ? r5 : r6; - if(r6 ==0) //_LBB352_26 -{ - f0 = heapFloat[(r2+210)]; - f1 = heapFloat[(r2+141)]; - f2 = heapFloat[(r2+209)]; - f3 = heapFloat[(r2+140)]; - f4 = heapFloat[(r2+208)]; - f5 = heapFloat[(r2+139)]; - f6 = heapFloat[(r2+72)]; - f7 = heapFloat[(r2+71)]; - f8 = heapFloat[(r2+70)]; - f10 = 0; - r6 = r3; -__label__ = 28; -} -else{ -__label__ = 26; -} -} -else{ - r6 = 3; -__label__ = 26; -} -if (__label__ == 26){ - f6 = heapFloat[(r2+72)]; - f0 = heapFloat[(r2+210)]; - f1 = heapFloat[(r2+141)]; - f8 = heapFloat[(r2+70)]; - f2 = heapFloat[(r2+209)]; - f3 = heapFloat[(r2+140)]; - f7 = heapFloat[(r2+71)]; - f4 = heapFloat[(r2+208)]; - f5 = heapFloat[(r2+139)]; - f10 = f13-f6; - f11 = f2-f3; - f12 = f9-f8; - f15 = f0-f1; - f16 = f14-f7; - f17 = f4-f5; - f18 = f16*f15; - f19 = f10*f11; - f10 = f10*f17; - f15 = f12*f15; - f18 = f18-f19; - f10 = f10-f15; - f11 = f12*f11; - f12 = f16*f17; - f11 = f11-f12; - f12 = f18*f18; - f10 = f10*f10; - f10 = f12+f10; - f11 = f11*f11; - f10 = f10+f11; - if(r6 ==1) //_LBB352_29 -{ - f11 = heapFloat[(r2+3)]; - f12 = heapFloat[(r2+2)]; - f15 = heapFloat[(r2+1)]; - f16 = 0; - r6 = r4; -__label__ = 30; -} -else{ -__label__ = 28; -} -} -if (__label__ == 28){ - f11 = heapFloat[(r2+3)]; - f15 = heapFloat[(r2+1)]; - f12 = heapFloat[(r2+2)]; - f16 = f13-f11; - f17 = f2-f3; - f18 = f9-f15; - f19 = f0-f1; - f20 = f14-f12; - f21 = f4-f5; - f22 = f20*f19; - f23 = f16*f17; - f16 = f16*f21; - f19 = f18*f19; - f22 = f22-f23; - f16 = f16-f19; - f17 = f18*f17; - f18 = f20*f21; - f17 = f17-f18; - f18 = f22*f22; - f16 = f16*f16; - f16 = f18+f16; - f17 = f17*f17; - f16 = f16+f17; - if(r6 ==2) //_LBB352_32 -{ - f0 = 0; -__label__ = 32; -} -else{ -__label__ = 30; -} -} -if (__label__ == 30){ - f17 = f13-f11; - f2 = f2-f7; - f18 = f9-f15; - f0 = f0-f6; - f19 = f14-f12; - f4 = f4-f8; - f20 = f19*f0; - f21 = f17*f2; - f17 = f17*f4; - f0 = f18*f0; - f20 = f20-f21; - f0 = f17-f0; - f2 = f18*f2; - f4 = f19*f4; - f2 = f2-f4; - f4 = f20*f20; - f0 = f0*f0; - f0 = f4+f0; - f2 = f2*f2; - f0 = f0+f2; - if(r6 ==3) //_LBB352_35 -{ - f1 = 0; -__label__ = 34; -} -else{ -__label__ = 32; -} -} -if (__label__ == 32){ - f2 = f13-f11; - f3 = f3-f7; - f4 = f9-f15; - f1 = f1-f6; - f6 = f14-f12; - f5 = f5-f8; - f7 = f6*f1; - f8 = f2*f3; - f2 = f2*f5; - f1 = f4*f1; - f7 = f7-f8; - f1 = f2-f1; - f2 = f4*f3; - f3 = f6*f5; - f2 = f2-f3; - f3 = f7*f7; - f1 = f1*f1; - f1 = f3+f1; - f2 = f2*f2; - f1 = f1+f2; - f2 = 0; - if(f1 f2 ? f10 : f2; - r0 = f10 <= f2 ? r0 : r2; - f2 = f16 > f3 ? f16 : f3; - r0 = f16 > f3 ? r4 : r0; - f3 = f0 > f2 ? f0 : f2; - r2 = 3; - r0 = f0 > f2 ? r5 : r0; - r0 = f1 > f3 ? r2 : r0; -} - r0 = r0 < 0 ? r3 : r0; - r0 = (r0 * 276)|0; - r0 = (r1 + r0)|0; - r1 = r0 >> 2; - r1 = heap32[(r1+28)]; - if(r1 ==0) //_LBB352_52 -{ - r0 = (r0 + 4)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = 276; - memcpy(i7); -} -else{ - r0 = _2E_str4438; - r7 = _2E_str3437; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = 190; - _assert(i7); -} -} -else{ - r1 = _2E_str2149; - r2 = _2E_str3437; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 168; - _assert(i7); -} -} -else{ - if(f1 >=f0) //_LBB352_16 -{ - r2 = (r9 * 276)|0; - r1 = (r1 + r2)|0; - r2 = r1 >> 2; - r3 = heap32[(r2+37)]; - if(r3 >-1) //_LBB352_18 -{ - f0 = heapFloat[(r2+53)]; - f1 = heapFloat[(r2+61)]; - f9 = heapFloat[(r2+69)]; - r0 = heap32[(r2+28)]; - r1 = (r1 + 4)|0; - heap32[(g0)] = r1; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = 276; - memcpy(i7); - heap32[(r2+28)] = r0; - heapFloat[(r2+29)] = f0; - heapFloat[(r2+31)] = f1; - heapFloat[(r2+32)] = f9; - heapFloat[(r2+53)] = f0; - heapFloat[(r2+61)] = f1; - heapFloat[(r2+69)] = f9; - heap32[(r2+37)] = r3; - return; -} -else{ - r1 = _2E_str3150; - r2 = _2E_str483; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 177; - _assert(i7); -} -} -else{ - r1 = _2E_str2149; - r2 = _2E_str483; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 165; - _assert(i7); -} -} -} - return; -} -else{ - r0 = _2E_str59; - r1 = _2E_str5152; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 64; - _assert(i7); -} -} - -function _ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0+2)]; -if(!(r1 <1)) //_LBB353_10 -{ - r1 = heap32[(fp)]; - r2 = 0; - r3 = r2; -_3: while(true){ - r4 = heap32[(r0+4)]; - r5 = r2 << 2; - r4 = (r4 + r5)|0; - r4 = r4 >> 2; - r4 = heap32[(r4)]; - r5 = (r2 + 1)|0; - r6 = heapU8[r4+204]; - r6 = r6 & 3; - if(r6 !=0) //_LBB353_8 -{ - r2 = r4 >> 2; - heap32[(r2+52)] = -1; - heap32[(r2+53)] = -2; -} -else{ - r6 = r1 >> 2; - r7 = heap32[(r6+4)]; - r8 = r3 << 3; - r9 = (r7 + r8)|0; - r9 = r9 >> 2; - r9 = heap32[(r9)]; - if(r9 ==r3) //_LBB353_5 -{ - r10 = r3; -} -else{ - r10 = r3; -_11: while(true){ - r9 = r9 << 3; - r10 = r10 << 3; - r9 = (r7 + r9)|0; - r7 = (r7 + r10)|0; - r9 = r9 >> 2; - r7 = r7 >> 2; - r10 = heap32[(r9)]; - heap32[(r7)] = r10; - r10 = heap32[(r9)]; - r7 = heap32[(r6+4)]; - r9 = r10 << 3; - r9 = (r7 + r9)|0; - r9 = r9 >> 2; - r9 = heap32[(r9)]; -if(!(r9 !=r10)) //_LBB353_6 -{ -break _11; -} -} -} - r4 = r4 >> 2; - heap32[(r4+52)] = r10; - r6 = heap32[(r6+4)]; - r6 = (r6 + r8)|0; - r6 = r6 >> 2; - r3 = (r3 + 1)|0; - heap32[(r6+1)] = r2; - heap32[(r4+53)] = -1; -} - r4 = heap32[(r0+2)]; - r2 = r5; - if(r4 >r5) //_LBB353_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - return; -} - -function _ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp+1)]; - r2 = (r0 + r1)|0; - r3 = r2 >>> 31; - r4 = heap32[(fp)]; - r2 = (r2 + r3)|0; - r3 = r4 >> 2; - r2 = r2 & 2147483646; - r5 = heap32[(r3+3)]; - r2 = r2 << 1; - r2 = (r5 + r2)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r5 = r1; - r6 = r0; -_1: while(true){ - r7 = r2 >> 2; - r8 = heap32[(r7+277)]; - r8 = r8 >> 2; - r9 = heap32[(r3+3)]; - r8 = heap32[(r8+52)]; -_3: while(true){ - r10 = r5 << 2; - r10 = (r9 + r10)|0; - r10 = r10 >> 2; - r11 = heap32[(r10)]; - r12 = r11 >> 2; - r13 = heap32[(r12+277)]; - r13 = r13 >> 2; - r13 = heap32[(r13+52)]; - if(r13 <0) //_LBB354_5 -{ - r13 = heap32[(r12+278)]; - r13 = r13 >> 2; - r13 = heap32[(r13+52)]; -} - if(r8 <0) //_LBB354_8 -{ - r12 = heap32[(r7+278)]; - r12 = r12 >> 2; - r12 = heap32[(r12+52)]; -} -else{ - r12 = r8; -} - if(r13 > 2; - r13 = heap32[(r13)]; - if(r8 <0) //_LBB354_13 -{ - r14 = heap32[(r7+278)]; - r14 = r14 >> 2; - r14 = heap32[(r14+52)]; -} -else{ - r14 = r8; -} - r15 = r13 >> 2; - r16 = heap32[(r15+277)]; - r16 = r16 >> 2; - r16 = heap32[(r16+52)]; - if(r16 <0) //_LBB354_16 -{ - r16 = heap32[(r15+278)]; - r16 = r16 >> 2; - r16 = heap32[(r16+52)]; -} - if(r14 > 2; - heap32[(r7)] = r11; -} - if(r5 <=r6) //_LBB354_1 -{ -continue _1; -} -else{ -break _1; -} -} -if(!(r6 <=r1)) //_LBB354_24 -{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r6; - _ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i7); -} -if(!(r5 >=r0)) //_LBB354_26 -{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r0; - _ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i7); -} - return; -} - -function _ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r0 = r0 >> 2; - r2 = heap32[(r0+2)]; -_1: do { - if(r2 >0) //_LBB355_2 -{ - r3 = 0; - r2 = r3; -_3: while(true){ - r4 = heap32[(r0+4)]; - r5 = r3 << 2; - r4 = (r4 + r5)|0; - r4 = r4 >> 2; - r4 = heap32[(r4)]; - r3 = (r3 + 1)|0; - r5 = heapU8[r4+204]; - r5 = r5 & 3; - if(r5 ==0) //_LBB355_5 -{ - r5 = (r2 + 1)|0; - r6 = r4 >> 2; - heap32[(r6+52)] = r2; - r2 = r5; -} - r4 = r4 >> 2; - heap32[(r4+53)] = -1; - heap32[(r4+60)] = 1065353216; - r4 = heap32[(r0+2)]; - if(r4 >r3) //_LBB355_3 -{ -continue _3; -} -else{ -break _1; -} -} -} -else{ - r2 = 0; -} -} while(0); - r3 = r1 >> 2; - r4 = heap32[(r3+2)]; -_10: do { -if(!(r4 >r2)) //_LBB355_26 -{ -if(!(r4 >=r2)) //_LBB355_26 -{ - r5 = heap32[(r3+3)]; -if(!(r5 >=r2)) //_LBB355_25 -{ - if(r2 !=0) //_LBB355_12 -{ - r5 = gNumAlignedAllocs; - r5 = r5 >> 2; - r6 = heap32[(r5)]; - r7 = r2 << 3; - r6 = (r6 + 1)|0; - r7 = r7 | 3; - heap32[(r5)] = r6; - r5 = (r7 + 16)|0; - heap32[(g0)] = r5; - malloc(i7); - r5 = r_g0; - if(r5 !=0) //_LBB355_14 -{ - r6 = 0; - r7 = (r5 + 4)|0; - r6 = (r6 - r7)|0; - r6 = r6 & 15; - r6 = (r5 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r5; - r5 = r7; -} -} -else{ - r5 = 0; -} - r6 = (r1 + 16)|0; - if(r4 <1) //_LBB355_17 -{ - r7 = r6 >> 2; - r8 = heap32[(r7)]; -} -else{ - r7 = 0; -_23: while(true){ - r8 = r6 >> 2; - r8 = heap32[(r8)]; - r9 = r7 << 3; - r10 = (r8 + r9)|0; - r10 = r10 >> 2; - r9 = (r5 + r9)|0; - r11 = heap32[(r10+1)]; - r10 = heap32[(r10)]; - r9 = r9 >> 2; - r7 = (r7 + 1)|0; - heap32[(r9)] = r10; - heap32[(r9+1)] = r11; -if(!(r4 !=r7)) //_LBB355_18 -{ -break _23; -} -} - r6 = (r1 + 16)|0; -} -if(!(r8 ==0)) //_LBB355_24 -{ - r7 = heapU8[r1+20]; -if(!(r7 ==0)) //_LBB355_23 -{ - r7 = gNumAlignedFree; - r7 = r7 >> 2; - r9 = heap32[(r7)]; - r9 = (r9 + 1)|0; - r8 = r8 >> 2; - heap32[(r7)] = r9; - r7 = heap32[(r8+-1)]; - heap32[(g0)] = r7; - free(i7); -} - r7 = r6 >> 2; - heap32[(r7)] = 0; -} - r7 = 1; - r6 = r6 >> 2; - heap8[r1+20] = r7; - heap32[(r6)] = r5; - heap32[(r3+3)] = r2; - if(r4 >=r2) //_LBB355_26 -{ -break _10; -} -} -_33: while(true){ - r1 = r4 << 3; - r5 = heap32[(r3+4)]; - r1 = (r5 + r1)|0; - r1 = r1 >> 2; - r4 = (r4 + 1)|0; - heap32[(r1)] = 0; - heap32[(r1+1)] = 0; - if(r2 !=r4) //_LBB355_25 -{ -continue _33; -} -else{ -break _10; -} -} -} -} -} while(0); - heap32[(r3+2)] = r2; -_36: do { -if(!(r2 <1)) //_LBB355_29 -{ - r1 = 0; -_38: while(true){ - r4 = r1 << 3; - r5 = heap32[(r3+4)]; - r5 = (r5 + r4)|0; - r5 = r5 >> 2; - heap32[(r5)] = r1; - r5 = heap32[(r3+4)]; - r4 = (r5 + r4)|0; - r1 = (r1 + 1)|0; - r4 = r4 >> 2; - heap32[(r4+1)] = 1; - if(r2 !=r1) //_LBB355_28 -{ -continue _38; -} -else{ -break _36; -} -} -} -} while(0); - r0 = heap32[(r0+20)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+9)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = r_g0; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+9)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = r_g0; -_41: do { -if(!(r2 <1)) //_LBB355_46 -{ - r0 = (r0 + 4)|0; -_43: while(true){ - r1 = r0 >> 2; - r4 = heap32[(r1+-1)]; - r4 = r4 >> 2; - r4 = heap32[(r4)]; -if(!(r4 ==0)) //_LBB355_45 -{ - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; -if(!(r1 ==0)) //_LBB355_45 -{ - r4 = r4 >> 2; - r5 = heap32[(r4+51)]; - r5 = r5 & 7; -if(!(r5 !=0)) //_LBB355_45 -{ - r5 = heapU8[r1+204]; - r5 = r5 & 7; -if(!(r5 !=0)) //_LBB355_45 -{ - r4 = heap32[(r4+52)]; - r5 = heap32[(r3+4)]; - r6 = r4 << 3; - r6 = (r5 + r6)|0; - r6 = r6 >> 2; - r1 = r1 >> 2; - r6 = heap32[(r6)]; - r1 = heap32[(r1+52)]; -if(!(r6 ==r4)) //_LBB355_37 -{ -_51: while(true){ - r6 = r6 << 3; - r4 = r4 << 3; - r6 = (r5 + r6)|0; - r4 = (r5 + r4)|0; - r5 = r6 >> 2; - r4 = r4 >> 2; - r6 = heap32[(r5)]; - heap32[(r4)] = r6; - r4 = heap32[(r5)]; - r5 = heap32[(r3+4)]; - r6 = r4 << 3; - r6 = (r5 + r6)|0; - r6 = r6 >> 2; - r6 = heap32[(r6)]; -if(!(r6 !=r4)) //_LBB355_38 -{ -break _51; -} -} -} - r6 = r1 << 3; - r6 = (r5 + r6)|0; - r6 = r6 >> 2; - r6 = heap32[(r6)]; -_54: do { -if(!(r6 ==r1)) //_LBB355_41 -{ -_55: while(true){ - r6 = r6 << 3; - r1 = r1 << 3; - r6 = (r5 + r6)|0; - r1 = (r5 + r1)|0; - r5 = r6 >> 2; - r1 = r1 >> 2; - r6 = heap32[(r5)]; - heap32[(r1)] = r6; - r1 = heap32[(r5)]; - r5 = heap32[(r3+4)]; - r6 = r1 << 3; - r6 = (r5 + r6)|0; - r6 = r6 >> 2; - r6 = heap32[(r6)]; -if(!(r6 !=r1)) //_LBB355_42 -{ -break _54; -} -} -} -} while(0); -if(!(r4 ==r1)) //_LBB355_45 -{ - r4 = r4 << 3; - r5 = (r5 + r4)|0; - r5 = r5 >> 2; - heap32[(r5)] = r1; - r5 = heap32[(r3+4)]; - r1 = r1 << 3; - r1 = (r5 + r1)|0; - r4 = (r5 + r4)|0; - r1 = r1 >> 2; - r4 = r4 >> 2; - r5 = heap32[(r1+1)]; - r4 = heap32[(r4+1)]; - r4 = (r4 + r5)|0; - heap32[(r1+1)] = r4; -} -} -} -} -} - r2 = (r2 + -1)|0; - r0 = (r0 + 16)|0; - if(r2 !=0) //_LBB355_31 -{ -continue _43; -} -else{ -break _41; -} -} -} -} while(0); - return; -} - -function _ZN25btSimulationIslandManagerD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV25btSimulationIslandManager; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+14)]; -if(!(r1 ==0)) //_LBB356_4 -{ - r3 = heapU8[r0+60]; -if(!(r3 ==0)) //_LBB356_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+14)] = 0; -} - r1 = 1; - heap8[r0+60] = r1; - heap32[(r2+14)] = 0; - heap32[(r2+12)] = 0; - heap32[(r2+13)] = 0; - r3 = heap32[(r2+9)]; -if(!(r3 ==0)) //_LBB356_8 -{ - r4 = heapU8[r0+40]; -if(!(r4 ==0)) //_LBB356_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+9)] = 0; -} - heap8[r0+40] = r1; - heap32[(r2+9)] = 0; - heap32[(r2+7)] = 0; - heap32[(r2+8)] = 0; - r3 = heap32[(r2+4)]; -if(!(r3 ==0)) //_LBB356_12 -{ - r4 = heapU8[r0+20]; -if(!(r4 ==0)) //_LBB356_11 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+4)] = 0; -} - heap8[r0+20] = r1; - heap32[(r2+4)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN25btSimulationIslandManagerD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV25btSimulationIslandManager; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+14)]; -if(!(r1 ==0)) //_LBB357_4 -{ - r3 = heapU8[r0+60]; -if(!(r3 ==0)) //_LBB357_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+14)] = 0; -} - r1 = 1; - heap8[r0+60] = r1; - heap32[(r2+14)] = 0; - heap32[(r2+12)] = 0; - heap32[(r2+13)] = 0; - r3 = heap32[(r2+9)]; -if(!(r3 ==0)) //_LBB357_8 -{ - r4 = heapU8[r0+40]; -if(!(r4 ==0)) //_LBB357_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+9)] = 0; -} - heap8[r0+40] = r1; - heap32[(r2+9)] = 0; - heap32[(r2+7)] = 0; - heap32[(r2+8)] = 0; - r3 = heap32[(r2+4)]; -if(!(r3 ==0)) //_LBB357_12 -{ - r4 = heapU8[r0+20]; -if(!(r4 ==0)) //_LBB357_11 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+4)] = 0; -} - heap8[r0+20] = r1; - heap32[(r2+4)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - return; -} - -function _ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var f0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - f0 = 1; - f_g0 = f0; - return; -} - -function _ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+3)]; -if(!(r2 ==0)) //_LBB359_23 -{ - r0 = heapU8[r0+8]; -if(!(r0 ==0)) //_LBB359_23 -{ - r0 = heap32[(fp+1)]; - r3 = r0 >> 2; - r4 = heap32[(r3+2)]; - r5 = heap32[(r3+1)]; - if(r4 ==r5) //_LBB359_4 -{ - r6 = 1; - r7 = r5 << 1; - r7 = r5 == 0 ? r6 : r7; -if(!(r4 >=r7)) //_LBB359_3 -{ - if(r7 !=0) //_LBB359_7 -{ - r2 = gNumAlignedAllocs; - r2 = r2 >> 2; - r4 = heap32[(r2)]; - r8 = r7 << 2; - r4 = (r4 + 1)|0; - r8 = r8 | 3; - heap32[(r2)] = r4; - r2 = (r8 + 16)|0; - heap32[(g0)] = r2; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB359_9 -{ - r4 = 0; - r8 = (r2 + 4)|0; - r4 = (r4 - r8)|0; - r4 = r4 & 15; - r4 = (r2 + r4)|0; - r8 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r2; - r2 = r8; -} -} -else{ - r2 = 0; -} - r4 = (r0 + 12)|0; - if(r5 <1) //_LBB359_12 -{ - r8 = r4 >> 2; - r9 = heap32[(r8)]; -} -else{ - r8 = 0; -_15: while(true){ - r9 = r4 >> 2; - r9 = heap32[(r9)]; - r10 = r8 << 2; - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - r10 = (r2 + r10)|0; - r11 = heap32[(r11)]; - r8 = (r8 + 1)|0; - r10 = r10 >> 2; - heap32[(r10)] = r11; -if(!(r5 !=r8)) //_LBB359_13 -{ -break _15; -} -} - r4 = (r0 + 12)|0; -} - if(r9 !=0) //_LBB359_17 -{ - r8 = heapU8[r0+16]; - if(r8 !=0) //_LBB359_19 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r8 = heap32[(r5)]; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r5)] = r8; - r5 = heap32[(r9+-1)]; - heap32[(g0)] = r5; - free(i7); - r5 = heap32[(r3+1)]; -} - r8 = r4 >> 2; - heap32[(r8)] = 0; -} - r4 = r4 >> 2; - heap8[r0+16] = r6; - heap32[(r4)] = r2; - heap32[(r3+2)] = r7; - r2 = heap32[(r1+3)]; -} -} - r0 = r5 << 2; - r1 = heap32[(r3+3)]; - r0 = (r1 + r0)|0; - r0 = r0 >> 2; - heap32[(r0)] = r2; - r0 = heap32[(r3+1)]; - r0 = (r0 + 1)|0; - heap32[(r3+1)] = r0; -} -} - return; -} - -function _ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; -var __label__ = 0; - i7 = sp + -48;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+3)]; -_1: do { -if(!(r0 ==0)) //_LBB360_10 -{ - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+4)]; - r4 = r3 >> 2; - r1 = r1 >> 2; - heap32[(r4+1)] = r0; - r0 = r2 >> 2; - f0 = heapFloat[(r1+14)]; - f1 = heapFloat[(r0+14)]; - f2 = heapFloat[(r1+13)]; - f3 = heapFloat[(r0+13)]; - f0 = f0-f1; - f1 = f2-f3; - f2 = heapFloat[(r1+15)]; - f3 = heapFloat[(r0+15)]; - f2 = f2-f3; - r1 = heap32[(r1+48)]; - r2 = heap32[(r0+48)]; - f3 = f1*f1; - f4 = f0*f0; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - heapFloat[(g0)] = f3; - sqrtf(i7); - f3 = f_g0; - r1 = r1 >> 2; - r2 = r2 >> 2; - f4 = heapFloat[(r1+7)]; - f5 = heapFloat[(r1+3)]; - f6 = heapFloat[(r2+7)]; - f7 = heapFloat[(r2+3)]; - f6 = f6*f7; - f4 = f4*f5; - f4 = f4+f6; -_3: do { - if(f4 >=f3) //_LBB360_11 -{ - r1 = sp + -16; - r2 = r1 >> 2; - heap32[(fp+-4)] = 1065353216; - heap32[(r2+1)] = 0; - f4 = f3-f4; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - f5 = 1.1920928955078125e-007; - if(f3 >f5) //_LBB360_13 -{ - f5 = 1; - f3 = f5/f3; - f1 = f1*f3; - f0 = f0*f3; - heapFloat[(fp+-4)] = f1; - f2 = f2*f3; - heapFloat[(r2+1)] = f0; - heapFloat[(r2+2)] = f2; - heap32[(r2+3)] = 0; -} -else{ - f1 = 1; - f0 = 0; - f2 = f0; -} - f1 = f1*f6; - f3 = heapFloat[(r0+13)]; - f5 = heapFloat[(r0+15)]; - f7 = heapFloat[(r0+14)]; - r0 = sp + -32; - f0 = f0*f6; - f1 = f3+f1; - f2 = f2*f6; - r2 = r0 >> 2; - f0 = f7+f0; - heapFloat[(fp+-8)] = f1; - f1 = f5+f2; - heapFloat[(r2+1)] = f0; - heapFloat[(r2+2)] = f1; - heap32[(r2+3)] = 0; - r2 = heap32[(r4)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r0; - heapFloat[(g0+3)] = f4; - __FUNCTION_TABLE__[(r2)>>2](i7); - r0 = heap32[(r4+1)]; - if(r0 !=0) //_LBB360_16 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+279)]; - if(r2 ==0) //_LBB360_10 -{ -break _1; -} -else{ - r1 = heap32[(r1+277)]; - r2 = heap32[(r4+34)]; - if(r1 ==r2) //_LBB360_19 -{ - r1 = (r3 + 8)|0; - r2 = (r3 + 72)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); - return; -} -else{ - r1 = (r3 + 72)|0; - r3 = (r3 + 8)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; -__label__ = 8; -break _3; -} -} -} -else{ -__label__ = 3; -} -} -else{ - r0 = heap32[(r4+1)]; - if(r0 !=0) //_LBB360_4 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+279)]; - if(r2 ==0) //_LBB360_10 -{ -break _1; -} -else{ - r1 = heap32[(r1+277)]; - r4 = heap32[(r4+34)]; - if(r1 ==r4) //_LBB360_9 -{ - r4 = (r3 + 8)|0; - r3 = (r3 + 72)|0; -} -else{ - r4 = (r3 + 72)|0; - r3 = (r3 + 8)|0; -} - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; -__label__ = 8; -} -} -else{ -__label__ = 3; -} -} -} while(0); -switch(__label__ ){//multiple entries -case 8: - heap32[(g0+2)] = r3; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); - return; -break; -case 3: - r0 = _2E_str59; - r3 = _2E_str160; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = 101; - _assert(i7); -break; -} -} -} while(0); - return; -} - -function _ZN32btSphereSphereCollisionAlgorithmD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV32btSphereSphereCollisionAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heapU8[r0+8]; -if(!(r1 ==0)) //_LBB361_3 -{ - r1 = heap32[(r2+3)]; -if(!(r1 ==0)) //_LBB361_3 -{ - r3 = heap32[(r2+1)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r1; - __FUNCTION_TABLE__[(r4)>>2](i7); -} -} - r1 = _ZTV30btActivatingCollisionAlgorithm; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN32btSphereSphereCollisionAlgorithmD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV32btSphereSphereCollisionAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r0 = heapU8[r0+8]; -if(!(r0 ==0)) //_LBB362_3 -{ - r0 = heap32[(r2+3)]; -if(!(r0 ==0)) //_LBB362_3 -{ - r1 = heap32[(r2+1)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); -} -} - r0 = _ZTV30btActivatingCollisionAlgorithm; - r0 = (r0 + 8)|0; - heap32[(r2)] = r0; - return; -} - -function _ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var f0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - f0 = 1; - f_g0 = f0; - return; -} - -function _ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+3)]; -if(!(r2 ==0)) //_LBB364_23 -{ - r0 = heapU8[r0+8]; -if(!(r0 ==0)) //_LBB364_23 -{ - r0 = heap32[(fp+1)]; - r3 = r0 >> 2; - r4 = heap32[(r3+2)]; - r5 = heap32[(r3+1)]; - if(r4 ==r5) //_LBB364_4 -{ - r6 = 1; - r7 = r5 << 1; - r7 = r5 == 0 ? r6 : r7; -if(!(r4 >=r7)) //_LBB364_3 -{ - if(r7 !=0) //_LBB364_7 -{ - r2 = gNumAlignedAllocs; - r2 = r2 >> 2; - r4 = heap32[(r2)]; - r8 = r7 << 2; - r4 = (r4 + 1)|0; - r8 = r8 | 3; - heap32[(r2)] = r4; - r2 = (r8 + 16)|0; - heap32[(g0)] = r2; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB364_9 -{ - r4 = 0; - r8 = (r2 + 4)|0; - r4 = (r4 - r8)|0; - r4 = r4 & 15; - r4 = (r2 + r4)|0; - r8 = (r4 + 4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r2; - r2 = r8; -} -} -else{ - r2 = 0; -} - r4 = (r0 + 12)|0; - if(r5 <1) //_LBB364_12 -{ - r8 = r4 >> 2; - r9 = heap32[(r8)]; -} -else{ - r8 = 0; -_15: while(true){ - r9 = r4 >> 2; - r9 = heap32[(r9)]; - r10 = r8 << 2; - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - r10 = (r2 + r10)|0; - r11 = heap32[(r11)]; - r8 = (r8 + 1)|0; - r10 = r10 >> 2; - heap32[(r10)] = r11; -if(!(r5 !=r8)) //_LBB364_13 -{ -break _15; -} -} - r4 = (r0 + 12)|0; -} - if(r9 !=0) //_LBB364_17 -{ - r8 = heapU8[r0+16]; - if(r8 !=0) //_LBB364_19 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r8 = heap32[(r5)]; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r5)] = r8; - r5 = heap32[(r9+-1)]; - heap32[(g0)] = r5; - free(i7); - r5 = heap32[(r3+1)]; -} - r8 = r4 >> 2; - heap32[(r8)] = 0; -} - r4 = r4 >> 2; - heap8[r0+16] = r6; - heap32[(r4)] = r2; - heap32[(r3+2)] = r7; - r2 = heap32[(r1+3)]; -} -} - r0 = r5 << 2; - r1 = heap32[(r3+3)]; - r0 = (r1 + r0)|0; - r0 = r0 >> 2; - heap32[(r0)] = r2; - r0 = heap32[(r3+1)]; - r0 = (r0 + 1)|0; - heap32[(r3+1)] = r0; -} -} - return; -} - -function _ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var f0; -var __label__ = 0; - i7 = sp + -176;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+3)]; -if(!(r2 ==0)) //_LBB365_8 -{ - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - r5 = heap32[(fp+3)]; - r6 = heap32[(fp+4)]; - r7 = heapU8[r0+16]; - r8 = r7 == 0 ? r4 : r3; - r3 = r7 == 0 ? r3 : r4; - r4 = r8 >> 2; - r3 = r3 >> 2; - r7 = heap32[(r4+48)]; - r8 = heap32[(r3+48)]; - r9 = r6 >> 2; - heap32[(r9+1)] = r2; - r1 = heap32[(r1+3)]; - r1 = r1 >> 2; - f0 = heapFloat[(r1+280)]; - r1 = _ZTV22SphereTriangleDetector; - r2 = sp + -16; - r1 = (r1 + 8)|0; - r10 = r2 >> 2; - heap32[(fp+-4)] = r1; - heap32[(r10+1)] = r8; - r1 = sp + -152; - heap32[(r10+2)] = r7; - r7 = r1 >> 2; - heapFloat[(r10+3)] = f0; - heap32[(r7+33)] = 0; - heap32[(r7+32)] = 1566444395; - heap32[(fp+-38)] = heap32[(r3+1)]; - heap32[(r7+1)] = heap32[(r3+2)]; - heap32[(r7+2)] = heap32[(r3+3)]; - heap32[(r7+3)] = heap32[(r3+4)]; - heap32[(r7+4)] = heap32[(r3+5)]; - heap32[(r7+5)] = heap32[(r3+6)]; - heap32[(r7+6)] = heap32[(r3+7)]; - heap32[(r7+7)] = heap32[(r3+8)]; - heap32[(r7+8)] = heap32[(r3+9)]; - heap32[(r7+9)] = heap32[(r3+10)]; - heap32[(r7+10)] = heap32[(r3+11)]; - heap32[(r7+11)] = heap32[(r3+12)]; - heap32[(r7+12)] = heap32[(r3+13)]; - heap32[(r7+13)] = heap32[(r3+14)]; - heap32[(r7+14)] = heap32[(r3+15)]; - heap32[(r7+15)] = heap32[(r3+16)]; - heap32[(r7+16)] = heap32[(r4+1)]; - heap32[(r7+17)] = heap32[(r4+2)]; - heap32[(r7+18)] = heap32[(r4+3)]; - heap32[(r7+19)] = heap32[(r4+4)]; - heap32[(r7+20)] = heap32[(r4+5)]; - heap32[(r7+21)] = heap32[(r4+6)]; - heap32[(r7+22)] = heap32[(r4+7)]; - heap32[(r7+23)] = heap32[(r4+8)]; - heap32[(r7+24)] = heap32[(r4+9)]; - heap32[(r7+25)] = heap32[(r4+10)]; - heap32[(r7+26)] = heap32[(r4+11)]; - heap32[(r7+27)] = heap32[(r4+12)]; - heap32[(r7+28)] = heap32[(r4+13)]; - heap32[(r7+29)] = heap32[(r4+14)]; - heap32[(r7+30)] = heap32[(r4+15)]; - heap32[(r7+31)] = heap32[(r4+16)]; - r3 = r5 >> 2; - r4 = heapU8[r0+16]; - r3 = heap32[(r3+5)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r4; - _ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7); - r0 = heapU8[r0+8]; -if(!(r0 ==0)) //_LBB365_8 -{ - r0 = heap32[(r9+1)]; - if(r0 !=0) //_LBB365_4 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+279)]; -if(!(r2 ==0)) //_LBB365_8 -{ - r1 = heap32[(r1+277)]; - r2 = heap32[(r9+34)]; - if(r1 ==r2) //_LBB365_7 -{ - r1 = (r6 + 8)|0; - r2 = (r6 + 72)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); -} -else{ - r1 = (r6 + 72)|0; - r6 = (r6 + 8)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r6; - _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7); - return; -} -} -} -else{ - r0 = _2E_str59; - r6 = _2E_str160; - heap32[(g0)] = r0; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = 101; - _assert(i7); -} -} -} - return; -} - -function _ZN34btSphereTriangleCollisionAlgorithmD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV34btSphereTriangleCollisionAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heapU8[r0+8]; -if(!(r1 ==0)) //_LBB366_3 -{ - r1 = heap32[(r2+3)]; -if(!(r1 ==0)) //_LBB366_3 -{ - r3 = heap32[(r2+1)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r1; - __FUNCTION_TABLE__[(r4)>>2](i7); -} -} - r1 = _ZTV30btActivatingCollisionAlgorithm; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN34btSphereTriangleCollisionAlgorithmD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV34btSphereTriangleCollisionAlgorithm; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r0 = heapU8[r0+8]; -if(!(r0 ==0)) //_LBB367_3 -{ - r0 = heap32[(r2+3)]; -if(!(r0 ==0)) //_LBB367_3 -{ - r1 = heap32[(r2+1)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); -} -} - r0 = _ZTV30btActivatingCollisionAlgorithm; - r0 = (r0 + 8)|0; - heap32[(r2)] = r0; - return; -} - -function _ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp+1)]; - r2 = (r0 + r1)|0; - r3 = r2 >>> 31; - r4 = heap32[(fp)]; - r2 = (r2 + r3)|0; - r3 = r4 >> 2; - r2 = r2 & 1073741822; - r5 = heap32[(r3+3)]; - r2 = r2 << 2; - r2 = (r5 + r2)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r5 = r1; - r6 = r0; -_1: while(true){ - r7 = heap32[(r3+3)]; - r8 = r5 << 3; - r8 = (r7 + r8)|0; - r8 = r8 >> 2; - r8 = heap32[(r8)]; - if(r8 > 2; - r8 = heap32[(r8+2)]; - r5 = (r5 + 1)|0; - if(r8 > 2; - r9 = heap32[(r9)]; -_7: do { - if(r2 > 2; - r9 = heap32[(r9+-2)]; - r6 = (r6 + -1)|0; - if(r2 > 2; - r7 = r7 >> 2; - r12 = heap32[(r10+1)]; - r7 = heap32[(r7+1)]; - heap32[(r10)] = r9; - heap32[(r10+1)] = r7; - r7 = heap32[(r3+3)]; - r7 = (r7 + r11)|0; - r7 = r7 >> 2; - r5 = (r5 + 1)|0; - r6 = (r6 + -1)|0; - heap32[(r7)] = r8; - heap32[(r7+1)] = r12; -} - if(r5 <=r6) //_LBB368_1 -{ -continue _1; -} -else{ -break _1; -} -} -if(!(r6 <=r1)) //_LBB368_13 -{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r6; - _ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i7); -} -if(!(r5 >=r0)) //_LBB368_15 -{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r0; - _ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i7); -} - return; -} - -function _ZN22SphereTriangleDetectorD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV22SphereTriangleDetector; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN22SphereTriangleDetectorD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV22SphereTriangleDetector; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -144;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+2)]; - r1 = r1 >> 2; - f0 = heapFloat[(r1+19)]; - f1 = heapFloat[(r1+15)]; - f2 = heapFloat[(r1+23)]; - f3 = heapFloat[(r1+17)]; - f4 = heapFloat[(r1+13)]; - f5 = heapFloat[(r1+21)]; - f6 = heapFloat[(r1+22)]; - f7 = heapFloat[(r1+14)]; - f8 = heapFloat[(r1+18)]; - f0 = f0-f1; - f6 = f6-f7; - f3 = f3-f4; - f1 = f2-f1; - f2 = f8-f7; - f4 = f5-f4; - r2 = heap32[(fp+1)]; - r3 = heap32[(r0+1)]; - f5 = f2*f1; - f7 = f0*f6; - f0 = f0*f4; - f1 = f3*f1; - r2 = r2 >> 2; - r3 = r3 >> 2; - f5 = f5-f7; - f0 = f0-f1; - f1 = f3*f6; - f2 = f2*f4; - f3 = heapFloat[(r0+3)]; - f1 = f1-f2; - f2 = f5*f5; - f4 = f0*f0; - f6 = heapFloat[(r3+7)]; - f7 = heapFloat[(r3+3)]; - f8 = heapFloat[(r2+18)]; - f9 = heapFloat[(r2+22)]; - f10 = heapFloat[(r2+26)]; - f11 = heapFloat[(r2+17)]; - f12 = heapFloat[(r2+21)]; - f13 = heapFloat[(r2+25)]; - f14 = heapFloat[(r2+16)]; - f15 = heapFloat[(r2+12)]; - f16 = heapFloat[(r2+28)]; - f17 = heapFloat[(r2+20)]; - f18 = heapFloat[(r2+13)]; - f19 = heapFloat[(r2+29)]; - f20 = heapFloat[(r2+24)]; - f21 = heapFloat[(r2+14)]; - f22 = heapFloat[(r2+30)]; - f2 = f2+f4; - f4 = f1*f1; - f15 = f15-f16; - f16 = f18-f19; - f2 = f2+f4; - f4 = f21-f22; - heapFloat[(g0)] = f2; - f2 = f11*f15; - f11 = f12*f16; - f12 = f14*f15; - f14 = f17*f16; - sqrtf(i7); - f18 = 1; - heapFloat[(fp+-25)] = f18; - f8 = f8*f15; - f9 = f9*f16; - f2 = f2+f11; - f11 = f13*f4; - f12 = f12+f14; - f13 = f20*f4; - f14 = f18/f_g0; - f2 = f2+f11; - f11 = heapFloat[(r1+14)]; - f12 = f12+f13; - f13 = heapFloat[(r1+13)]; - f8 = f8+f9; - f4 = f10*f4; - f5 = f5*f14; - f9 = f12-f13; - heapFloat[(fp+-28)] = f9; - f0 = f0*f14; - f10 = f2-f11; - heapFloat[(fp+-29)] = f10; - f4 = f8+f4; - f8 = heapFloat[(r1+15)]; - f1 = f1*f14; - f14 = f4-f8; - heapFloat[(fp+-27)] = f14; - f9 = f9*f5; - f10 = f10*f0; - f9 = f9+f10; - f10 = f14*f1; - f9 = f9+f10; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+4)]; - f6 = f6*f7; - heapFloat[(fp+-26)] = f6; - f6 = 0; - if(f9 =f6) //_LBB371_31 -{ -__label__ = 29; -} -else{ -__label__ = 4; -} -} -_6: do { -if (__label__ == 4){ - f7 = heapFloat[(fp+-26)]; - f3 = f7+f3; - heapFloat[(fp+-30)] = f3; -if(!(f3 <=f9)) //_LBB371_31 -{ - f3 = heapFloat[(r1+19)]; - f7 = heapFloat[(r1+23)]; - f10 = heapFloat[(r1+17)]; - f14 = heapFloat[(r1+21)]; - f15 = heapFloat[(r1+18)]; - f16 = heapFloat[(r1+22)]; - f17 = f7-f3; - f18 = f14-f10; - f19 = f3-f8; - f8 = f8-f7; - f20 = f16-f15; - f21 = f10-f13; - f22 = f15-f11; - f13 = f13-f14; - f11 = f11-f16; - f23 = f20*f1; - f24 = f17*f0; - f17 = f17*f5; - f25 = f18*f1; - f26 = f22*f1; - f27 = f19*f0; - f19 = f19*f5; - f28 = f21*f1; - f29 = f11*f1; - f30 = f8*f0; - f8 = f8*f5; - heapFloat[(fp+-31)] = f8; - f8 = f13*f1; - f23 = f23-f24; - f10 = f12-f10; - f17 = f17-f25; - f15 = f2-f15; - f18 = f18*f0; - f20 = f20*f5; - f24 = f26-f27; - f19 = f19-f28; - f21 = f21*f0; - f22 = f22*f5; - f25 = f29-f30; - f14 = f12-f14; - f26 = heapFloat[(fp+-31)]; - f8 = f26-f8; - f16 = f2-f16; - f13 = f13*f0; - f11 = f11*f5; - f10 = f23*f10; - f15 = f17*f15; - f17 = f18-f20; - f3 = f4-f3; - f18 = heapFloat[(fp+-28)]; - f18 = f24*f18; - f20 = heapFloat[(fp+-29)]; - f19 = f19*f20; - f20 = f21-f22; - f14 = f25*f14; - f8 = f8*f16; - f11 = f13-f11; - f7 = f4-f7; - f10 = f10+f15; - f3 = f17*f3; - f13 = f18+f19; - f15 = heapFloat[(fp+-27)]; - f15 = f20*f15; - f8 = f14+f8; - f7 = f11*f7; - f3 = f10+f3; - f10 = f13+f15; - f7 = f8+f7; - if(f3 <=f6) //_LBB371_9 -{ -__label__ = 8; -} -else{ - f8 = 0; - if(f10 <=f8) //_LBB371_9 -{ -__label__ = 8; -} -else{ - if(f7 >f8) //_LBB371_12 -{ -__label__ = 11; -} -else{ -__label__ = 8; -} -} -} -_12: do { -if (__label__ == 8){ -if(!(f10 >f6)) //_LBB371_13 -{ -if(!(f3 >f6)) //_LBB371_13 -{ -if(!(f7 >f6)) //_LBB371_13 -{ -__label__ = 11; -break _12; -} -} -} - r1 = heap32[(r0+2)]; - r5 = r1 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+22)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r5)>>2](i7); - r1 = r_g0; - if(r1 <1) //_LBB371_31 -{ -break _6; -} -else{ - f0 = heapFloat[(fp+-30)]; - f5 = f0*f0; - r1 = 0; - r5 = r1; -_19: while(true){ - r6 = heap32[(r0+2)]; - r7 = r6 >> 2; - r7 = heap32[(r7)]; - r7 = r7 >> 2; - r7 = heap32[(r7+23)]; - r8 = sp + -32; - r9 = sp + -16; - heap32[(g0)] = r6; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r8; - __FUNCTION_TABLE__[(r7)>>2](i7); - r6 = r8 >> 2; - r7 = r9 >> 2; - f7 = heapFloat[(r7+1)]; - f8 = heapFloat[(r6+1)]; - f9 = heapFloat[(fp+-4)]; - f10 = heapFloat[(fp+-8)]; - f11 = f2-f7; - f8 = f8-f7; - f13 = f12-f9; - f10 = f10-f9; - f14 = heapFloat[(r7+2)]; - f15 = heapFloat[(r6+2)]; - f16 = f4-f14; - f15 = f15-f14; - f17 = f10*f13; - f18 = f8*f11; - f17 = f17+f18; - f18 = f15*f16; - f17 = f17+f18; - r1 = (r1 + 1)|0; - if(f17 >f6) //_LBB371_17 -{ - f18 = f10*f10; - f19 = f8*f8; - f18 = f18+f19; - f19 = f15*f15; - f18 = f18+f19; - if(f17 >=f18) //_LBB371_19 -{ - f13 = f13-f10; - f11 = f11-f8; - f16 = f16-f15; - f17 = heapFloat[(fp+-25)]; -} -else{ - f17 = f17/f18; - f18 = f10*f17; - f19 = f8*f17; - f20 = f15*f17; - f13 = f13-f18; - f11 = f11-f19; - f16 = f16-f20; -} -} -else{ - f17 = f6; -} - f13 = f13*f13; - f11 = f11*f11; - f11 = f13+f11; - f13 = f16*f16; - f11 = f11+f13; - if(f11 > 2; - r7 = heap32[(r7)]; - r7 = r7 >> 2; - r7 = heap32[(r7+22)]; - heap32[(g0)] = r6; - __FUNCTION_TABLE__[(r7)>>2](i7); - r6 = r_g0; -if(!(r6 >r1)) //_LBB371_15 -{ -break _19; -} -} - r0 = r5 & 255; - if(r0 ==0) //_LBB371_31 -{ -break _6; -} -else{ -__label__ = 23; -} -} -} -} while(0); -if (__label__ == 11){ - f6 = f1*f9; - f0 = f0*f9; - f1 = f5*f9; - f3 = f4-f6; - f0 = f2-f0; - f1 = f12-f1; -} - f2 = f2-f0; - f5 = f12-f1; - f4 = f4-f3; - f6 = f5*f5; - f7 = f2*f2; - f6 = f6+f7; - f7 = f4*f4; - f6 = f6+f7; - f7 = heapFloat[(fp+-26)]; - f7 = f7*f7; - if(f7 <=f6) //_LBB371_27 -{ - f6 = 0; - f5 = f5*f6; - f2 = f2*f6; - f2 = f5+f2; - f4 = f4*f6; - f2 = f2+f4; - if(f2 >=f6) //_LBB371_31 -{ -break _6; -} -} -else{ - heapFloat[(g0)] = f6; - sqrtf(i7); - f7 = f_g0; - heapFloat[(g0)] = f6; - f6 = 1; - sqrtf(i7); - f9 = heapFloat[(fp+-26)]; - f7 = f9-f7; - f6 = f6/f_g0; - f5 = f5*f6; - f2 = f2*f6; - f4 = f4*f6; - f6 = -f7; -} - if(r4 ==0) //_LBB371_30 -{ - r0 = r3 >> 2; - f7 = heapFloat[(r2+16)]; - f8 = heapFloat[(r2+17)]; - r0 = heap32[(r0)]; - f9 = heapFloat[(r2+20)]; - f10 = heapFloat[(r2+21)]; - f11 = f7*f1; - f12 = f8*f0; - f13 = heapFloat[(r2+18)]; - r0 = r0 >> 2; - f14 = heapFloat[(r2+24)]; - f15 = heapFloat[(r2+25)]; - f16 = heapFloat[(r2+22)]; - f17 = f9*f1; - f18 = f10*f0; - f11 = f11+f12; - f12 = f13*f3; - f19 = heapFloat[(r2+26)]; - r0 = heap32[(r0+4)]; - f1 = f14*f1; - f0 = f15*f0; - f17 = f17+f18; - f18 = f16*f3; - f11 = f11+f12; - f12 = heapFloat[(r2+28)]; - f20 = heapFloat[(r2+30)]; - f21 = heapFloat[(r2+29)]; - r1 = sp + -64; - f17 = f17+f18; - f0 = f1+f0; - f1 = f19*f3; - f3 = f11+f12; - f0 = f0+f1; - r2 = r1 >> 2; - f1 = f17+f21; - heapFloat[(fp+-16)] = f3; - f3 = f7*f5; - f7 = f8*f2; - f0 = f0+f20; - heapFloat[(r2+1)] = f1; - heapFloat[(r2+2)] = f0; - f0 = f9*f5; - f1 = f10*f2; - f3 = f3+f7; - f7 = f13*f4; - r4 = sp + -48; - f5 = f14*f5; - f2 = f15*f2; - f0 = f0+f1; - f1 = f16*f4; - f3 = f3+f7; - heap32[(r2+3)] = 0; - r2 = r4 >> 2; - f2 = f5+f2; - f4 = f19*f4; - f0 = f0+f1; - heapFloat[(fp+-12)] = f3; - f1 = f2+f4; - heapFloat[(r2+1)] = f0; - heapFloat[(r2+2)] = f1; - heap32[(r2+3)] = 0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - heapFloat[(g0+3)] = f6; - __FUNCTION_TABLE__[(r0)>>2](i7); -} -else{ - f7 = heapFloat[(r2+16)]; - f8 = heapFloat[(r2+17)]; - f9 = heapFloat[(r2+20)]; - f10 = heapFloat[(r2+21)]; - f11 = f7*f5; - f12 = f8*f2; - f13 = heapFloat[(r2+18)]; - f14 = heapFloat[(r2+24)]; - f15 = heapFloat[(r2+25)]; - f16 = heapFloat[(r2+22)]; - f17 = f9*f5; - f18 = f10*f2; - f11 = f11+f12; - f12 = f13*f4; - f19 = heapFloat[(r2+26)]; - f11 = f11+f12; - f5 = f14*f5; - f2 = f15*f2; - f12 = f17+f18; - f17 = f16*f4; - r0 = sp + -80; - f12 = f12+f17; - f2 = f5+f2; - f4 = f19*f4; - f5 = -f11; - f2 = f2+f4; - r1 = r0 >> 2; - f4 = -f12; - heapFloat[(fp+-20)] = f5; - f5 = -f2; - heapFloat[(r1+1)] = f4; - heapFloat[(r1+2)] = f5; - f4 = f7*f1; - f5 = f8*f0; - heap32[(r1+3)] = 0; - f7 = f9*f1; - f8 = f10*f0; - f4 = f4+f5; - f5 = f13*f3; - f1 = f14*f1; - f0 = f15*f0; - f7 = f7+f8; - f8 = f16*f3; - f4 = f4+f5; - f5 = heapFloat[(r2+28)]; - f0 = f1+f0; - f1 = f19*f3; - f3 = f7+f8; - f7 = heapFloat[(r2+29)]; - f8 = heapFloat[(r2+30)]; - f4 = f4+f5; - f5 = f11*f6; - r2 = sp + -96; - f0 = f0+f1; - f1 = f3+f7; - f3 = f12*f6; - f4 = f4+f5; - r1 = r2 >> 2; - f0 = f0+f8; - f2 = f2*f6; - f1 = f1+f3; - heapFloat[(fp+-24)] = f4; - f0 = f0+f2; - heapFloat[(r1+1)] = f1; - heapFloat[(r1+2)] = f0; - r4 = r3 >> 2; - heap32[(r1+3)] = 0; - r1 = heap32[(r4)]; - r1 = r1 >> 2; - r1 = heap32[(r1+4)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - heapFloat[(g0+3)] = f6; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} -} -} -} while(0); - return; -} - -function _ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f1; - var f2; - var f3; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f1 = heapFloat[(r1+7)]; - f2 = heapFloat[(r1+8)]; - f3 = heapFloat[(r1+9)]; - r0 = heap32[(fp+1)]; - r1 = heap32[(fp+2)]; - r2 = heap32[(fp+3)]; - heapFloat[(g0)] = f1; - heapFloat[(g0+1)] = f2; - heapFloat[(g0+2)] = f3; - heapFloat[(g0+3)] = f_g0; - heap32[(g0+4)] = r0; - heap32[(g0+5)] = r1; - heap32[(g0+6)] = r2; - _Z15btTransformAabbRK9btVector3fRK11btTransformRS_S5_(i7); - return; -} - -function _Z15btTransformAabbRK9btVector3fRK11btTransformRS_S5_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+4)]; - r0 = r0 >> 2; - f0 = heapFloat[(fp+2)]; - f1 = heapFloat[(fp+3)]; - f2 = heapFloat[(fp+1)]; - f3 = heapFloat[(fp)]; - f4 = heapFloat[(r0+10)]; - r1 = heap32[(fp+5)]; - r2 = heap32[(fp+6)]; - f0 = f0+f1; - f2 = f2+f1; - f1 = f3+f1; - f3 = 0; - if(f4 > 2; - f1 = f1+f2; - f0 = f4*f0; - f2 = f7-f3; - f0 = f1+f0; - f1 = f8-f5; - heapFloat[(r0)] = f2; - f2 = f9-f0; - heapFloat[(r0+1)] = f1; - heapFloat[(r0+2)] = f2; - r1 = r2 >> 2; - f1 = f7+f3; - heap32[(r0+3)] = 0; - f2 = f8+f5; - heapFloat[(r1)] = f1; - f0 = f9+f0; - heapFloat[(r1+1)] = f2; - heapFloat[(r1+2)] = f0; - heap32[(r1+3)] = 0; - return; -} - -function _ZNK10btBoxShape24localGetSupportingVertexERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - f0 = heapFloat[(r1+7)]; - f1 = heapFloat[(r1+8)]; - f2 = heapFloat[(r1+9)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f3 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f4 = f_g0; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+11)]; - heap32[(g0)] = r0; - r0 = heap32[(fp+2)]; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = r0 >> 2; - f0 = f0+f_g0; - r1 = heap32[(fp)]; - f1 = f1+f4; - f4 = 0; - f5 = -f0; - f6 = heapFloat[(r0)]; - f7 = heapFloat[(r0+2)]; - f8 = heapFloat[(r0+1)]; - f2 = f2+f3; - f3 = -f1; - r0 = r1 >> 2; - f0 = f6 < f4 ? f5 : f0; - f5 = -f2; - f1 = f8 < f4 ? f3 : f1; - heapFloat[(r0)] = f0; - f0 = f7 < f4 ? f5 : f2; - heapFloat[(r0+1)] = f1; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; - return; -} - -function _ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(fp+2)]; - r1 = r1 >> 2; - f0 = heapFloat[(r0+7)]; - r2 = heap32[(fp)]; - f1 = heapFloat[(r0+9)]; - f2 = heapFloat[(r0+8)]; - f3 = 0; - f4 = -f0; - f5 = heapFloat[(r1)]; - f6 = heapFloat[(r1+2)]; - f7 = heapFloat[(r1+1)]; - f8 = -f2; - r0 = r2 >> 2; - f0 = f5 < f3 ? f4 : f0; - f4 = -f1; - f2 = f7 < f3 ? f8 : f2; - heapFloat[(r0)] = f0; - f0 = f6 < f3 ? f4 : f1; - heapFloat[(r0+1)] = f2; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; - return; -} - -function _ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+3)]; -if(!(r0 <1)) //_LBB376_3 -{ - r1 = heap32[(fp)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r3 = (r3 + 8)|0; - r2 = (r2 + 8)|0; - f3 = 0; -_3: while(true){ - r4 = r1 >> 2; - r5 = r2 >> 2; - f0 = heapFloat[(r4+7)]; - f1 = heapFloat[(r4+9)]; - f2 = heapFloat[(r4+8)]; - f4 = -f0; - f5 = heapFloat[(r5+-2)]; - f6 = heapFloat[(r5)]; - f7 = heapFloat[(r5+-1)]; - f8 = -f2; - r4 = r3 >> 2; - f0 = f5 < f3 ? f4 : f0; - f4 = -f1; - f2 = f7 < f3 ? f8 : f2; - heapFloat[(r4+-2)] = f0; - f0 = f6 < f3 ? f4 : f1; - heapFloat[(r4+-1)] = f2; - r0 = (r0 + -1)|0; - r3 = (r3 + 16)|0; - r2 = (r2 + 16)|0; - heapFloat[(r4)] = f0; - heap32[(r4+1)] = 0; - if(r0 !=0) //_LBB376_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - return; -} - -function _ZN10btBoxShape9setMarginEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f0 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f1 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f2 = f_g0; - f3 = heapFloat[(r1+9)]; - f4 = heapFloat[(r1+8)]; - f5 = heapFloat[(r1+7)]; - heap32[(r1+11)] = heap32[(fp+1)]; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f6 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f7 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - f2 = f5+f2; - __FUNCTION_TABLE__[(r2)>>2](i7); - f1 = f4+f1; - f2 = f2-f_g0; - f0 = f3+f0; - f1 = f1-f7; - heapFloat[(r1+7)] = f2; - f0 = f0-f6; - heapFloat[(r1+8)] = f1; - heapFloat[(r1+9)] = f0; - heap32[(r1+10)] = 0; - return; -} - -function _ZNK10btBoxShape8getPlaneER9btVector3S1_i(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -64;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+28)]; - r3 = sp + -32; - r4 = heap32[(fp+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r3 >> 2; - r3 = heap32[(fp+1)]; - f0 = heapFloat[(r2+2)]; - f1 = heapFloat[(r2+1)]; - f2 = heapFloat[(fp+-8)]; - r2 = r3 >> 2; - heapFloat[(r2)] = f2; - heapFloat[(r2+1)] = f1; - heapFloat[(r2+2)] = f0; - heap32[(r2+3)] = 0; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+15)]; - r2 = sp + -16; - f2 = -f2; - r3 = r2 >> 2; - f1 = -f1; - heapFloat[(fp+-4)] = f2; - f0 = -f0; - heapFloat[(r3+1)] = f1; - heapFloat[(r3+2)] = f0; - heap32[(r3+3)] = 0; - r3 = sp + -48; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - r0 = heap32[(fp+2)]; - r0 = r0 >> 2; - __FUNCTION_TABLE__[(r1)>>2](i7); - r1 = r3 >> 2; - heap32[(r0)] = heap32[(fp+-12)]; - heap32[(r0+1)] = heap32[(r1+1)]; - heap32[(r0+2)] = heap32[(r1+2)]; - heap32[(r0+3)] = heap32[(r1+3)]; - return; -} - -function _ZNK10btBoxShape12getNumPlanesEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 6; - r_g0 = r0; - return; -} - -function _ZNK10btBoxShape14getNumVerticesEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 8; - r_g0 = r0; - return; -} - -function _ZNK10btBoxShape11getNumEdgesEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 12; - r_g0 = r0; - return; -} - -function _ZNK10btBoxShape9getVertexEiR9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >>> 1; - r2 = heap32[(fp)]; - r2 = r2 >> 2; - r1 = r1 & 1; - r3 = r0 >>> 2; - r0 = r0 & 1; - r4 = 0; - f0 = 1; - f1 = 0; - r3 = r3 & 1; - r5 = r1 ^ 1; - f0 = r0 == r4 ? f0 : f1; - f1 = heapFloat[(r2+7)]; - f2 = r0; //fitos r0, f2 - r0 = heap32[(fp+2)]; - r4 = r3 ^ 1; - f3 = r5; //fitos r5, f3 - f4 = heapFloat[(r2+8)]; - f5 = r1; //fitos r1, f5 - f6 = heapFloat[(r2+9)]; - f0 = f1*f0; - f1 = f1*f2; - f2 = r4; //fitos r4, f2 - f7 = r3; //fitos r3, f7 - r0 = r0 >> 2; - f3 = f4*f3; - f4 = f4*f5; - f0 = f0-f1; - f1 = f6*f2; - f2 = f6*f7; - f3 = f3-f4; - heapFloat[(r0)] = f0; - f0 = f1-f2; - heapFloat[(r0+1)] = f3; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; - return; -} - -function _ZNK10btBoxShape8isInsideERK9btVector3f(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; - var f1; - var f2; - var f3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r1 = r1 >> 2; - r0 = r0 >> 2; - f0 = heapFloat[(r0)]; - f1 = heapFloat[(fp+2)]; - f2 = heapFloat[(r1+7)]; - f3 = f2+f1; -if(!(f0 >f3)) //_LBB383_6 -{ - f2 = -f2; - f2 = f2-f1; -if(!(f0 f3)) //_LBB383_6 -{ - f0 = -f0; - f0 = f0-f1; -if(!(f2 f3)) //_LBB383_6 -{ - f0 = -f0; - f0 = f0-f1; - r0 = f2 >= f0; - r0 = r0 & 1; - r_g0 = r0; - return; -} -} -} -} -} - r0 = 0; - r_g0 = r0; - return; -} - -function _ZNK10btBoxShape7getNameEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = _2E_str173; - r_g0 = r0; - return; -} - -function _ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 6; - r_g0 = r0; - return; -} - -function _ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - f0 = heapFloat[(r1+7)]; - f1 = heapFloat[(r1+8)]; - f2 = heapFloat[(r1+9)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f3 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+11)]; - heap32[(g0)] = r0; - f1 = f1+f_g0; - f2 = f2+f3; - __FUNCTION_TABLE__[(r1)>>2](i7); - f0 = f0+f_g0; - f1 = f1+f1; - f2 = f2+f2; - f0 = f0+f0; - f3 = heapFloat[(fp+1)]; - f4 = 12; - f1 = f1*f1; - f2 = f2*f2; - f0 = f0*f0; - r0 = heap32[(fp+2)]; - f3 = f3/f4; - f4 = f1+f2; - f2 = f0+f2; - r0 = r0 >> 2; - f4 = f3*f4; - f0 = f0+f1; - f1 = f3*f2; - heapFloat[(r0)] = f4; - f0 = f3*f0; - heapFloat[(r0+1)] = f1; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; - return; -} - -function _ZNK10btBoxShape16getPlaneEquationER9btVector4i(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+2)]; - r2 = heap32[(fp+1)]; - f0 = heapFloat[(r0+8)]; -_1: do { - if(r1 >2) //_LBB387_4 -{ - if(r1 ==3) //_LBB387_13 -{ - r2 = r2 >> 2; - heap32[(r2)] = 0; - heap32[(r2+1)] = -1082130432; -__label__ = 11; -break _1; -} -else{ - f0 = heapFloat[(r0+9)]; - if(r1 ==4) //_LBB387_14 -{ - r2 = r2 >> 2; - heap32[(r2)] = 0; - heap32[(r2+1)] = 0; - f0 = -f0; - heap32[(r2+2)] = 1065353216; - heapFloat[(r2+3)] = f0; - return; -} -else{ - if(r1 ==5) //_LBB387_15 -{ - r0 = r2 >> 2; - heap32[(r0)] = 0; - heap32[(r0+1)] = 0; - f0 = -f0; - heap32[(r0+2)] = -1082130432; - heapFloat[(r0+3)] = f0; - return; -} -else{ -__label__ = 16; -break _1; -} -} -} -} -else{ - f1 = heapFloat[(r0+7)]; - if(r1 ==0) //_LBB387_7 -{ - r2 = r2 >> 2; - heap32[(r2)] = 1065353216; -} -else{ - if(r1 ==1) //_LBB387_9 -{ - r2 = r2 >> 2; - heap32[(r2)] = -1082130432; -} -else{ - if(r1 ==2) //_LBB387_10 -{ - r2 = r2 >> 2; - heap32[(r2)] = 0; - heap32[(r2+1)] = 1065353216; -__label__ = 11; -break _1; -} -else{ -__label__ = 16; -break _1; -} -} -} - heap32[(r2+1)] = 0; - f0 = -f1; -__label__ = 12; -} -} while(0); -switch(__label__ ){//multiple entries -case 11: - f0 = -f0; -break; -case 16: - r0 = _2E_str10; - r1 = _2E_str2175; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 182; - _assert(i7); -break; -} - heap32[(r2+2)] = 0; - heapFloat[(r2+3)] = f0; - return; -} - -function _ZNK10btBoxShape7getEdgeEiR9btVector3S1_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; -_1: do { - if(r0 >5) //_LBB388_8 -{ - if(r0 >8) //_LBB388_12 -{ - if(r0 ==9) //_LBB388_24 -{ - r0 = 4; - r4 = 6; -__label__ = 28; -break _1; -} -else{ - if(r0 ==10) //_LBB388_25 -{ - r0 = 5; - r4 = 7; -__label__ = 28; -break _1; -} -else{ - if(r0 ==11) //_LBB388_26 -{ - r0 = 6; - r4 = 7; -__label__ = 28; -break _1; -} -else{ -__label__ = 27; -break _1; -} -} -} -} -else{ - if(r0 ==6) //_LBB388_21 -{ - r0 = 2; - r4 = 6; -__label__ = 28; -break _1; -} -else{ - if(r0 ==7) //_LBB388_22 -{ - r0 = 3; - r4 = 7; -__label__ = 28; -break _1; -} -else{ - if(r0 ==8) //_LBB388_23 -{ - r0 = 4; - r4 = 5; -__label__ = 28; -break _1; -} -else{ -__label__ = 27; -break _1; -} -} -} -} -} -else{ - if(r0 >2) //_LBB388_5 -{ - if(r0 ==3) //_LBB388_18 -{ - r0 = 2; - r4 = 3; -__label__ = 28; -break _1; -} -else{ - if(r0 ==4) //_LBB388_19 -{ - r0 = 0; - r4 = 4; -__label__ = 28; -break _1; -} -else{ - if(r0 ==5) //_LBB388_20 -{ - r0 = 1; - r4 = 5; -__label__ = 28; -break _1; -} -else{ -__label__ = 27; -break _1; -} -} -} -} -else{ - if(r0 ==0) //_LBB388_15 -{ - r0 = 0; - r4 = 1; -__label__ = 28; -break _1; -} -else{ - if(r0 ==1) //_LBB388_16 -{ - r0 = 0; - r4 = 2; -__label__ = 28; -} -else{ - if(r0 ==2) //_LBB388_17 -{ - r0 = 1; - r4 = 3; -__label__ = 28; -} -else{ -__label__ = 27; -} -} -} -} -} -} while(0); -switch(__label__ ){//multiple entries -case 28: - r5 = r1 >> 2; - r6 = heap32[(r5)]; - r6 = r6 >> 2; - r6 = heap32[(r6+24)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - __FUNCTION_TABLE__[(r6)>>2](i7); - r0 = heap32[(r5)]; - r0 = r0 >> 2; - r0 = heap32[(r0+24)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r3; - __FUNCTION_TABLE__[(r0)>>2](i7); - return; -break; -case 27: - r0 = _2E_str10; - r1 = _2E_str2175; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 246; - _assert(i7); -break; -} -} - -function _ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp+2)]; -_1: do { - if(r0 >2) //_LBB389_4 -{ - if(r0 ==3) //_LBB389_12 -{ - r1 = r1 >> 2; - heap32[(r1)] = 0; - heap32[(r1+1)] = -1082130432; -__label__ = 9; -break _1; -} -else{ - if(r0 ==4) //_LBB389_13 -{ - r1 = r1 >> 2; - heap32[(r1)] = 0; - heap32[(r1+1)] = 0; - heap32[(r1+2)] = 1065353216; - heap32[(r1+3)] = 0; - return; -} -else{ - if(r0 ==5) //_LBB389_14 -{ - r0 = r1 >> 2; - heap32[(r0)] = 0; - heap32[(r0+1)] = 0; - heap32[(r0+2)] = -1082130432; - heap32[(r0+3)] = 0; - return; -} -else{ -__label__ = 15; -break _1; -} -} -} -} -else{ - if(r0 ==0) //_LBB389_7 -{ - r1 = r1 >> 2; - heap32[(r1)] = 1065353216; -} -else{ - if(r0 ==1) //_LBB389_10 -{ - r1 = r1 >> 2; - heap32[(r1)] = -1082130432; -} -else{ - if(r0 ==2) //_LBB389_11 -{ - r1 = r1 >> 2; - heap32[(r1)] = 0; - heap32[(r1+1)] = 1065353216; -__label__ = 9; -break _1; -} -else{ -__label__ = 15; -break _1; -} -} -} - heap32[(r1+1)] = 0; -__label__ = 9; -} -} while(0); -switch(__label__ ){//multiple entries -case 9: - heap32[(r1+2)] = 0; - heap32[(r1+3)] = 0; - return; -break; -case 15: - r0 = _2E_str10; - r1 = _2E_str2175; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 309; - _assert(i7); -break; -} -} - -function _ZN10btBoxShape15setLocalScalingERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f0 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f1 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f2 = f_g0; - r0 = heap32[(fp+1)]; - f3 = heapFloat[(r1+9)]; - f4 = heapFloat[(r1+8)]; - f5 = heapFloat[(r1+7)]; - r0 = r0 >> 2; - f3 = f3+f0; - f6 = heapFloat[(r1+5)]; - f4 = f4+f1; - f7 = heapFloat[(r1+4)]; - f5 = f5+f2; - f8 = heapFloat[(r1+3)]; - f9 = heapFloat[(r0+2)]; - f3 = f3/f6; - f4 = f4/f7; - f5 = f5/f8; - f6 = 0; - if(f9 >2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV13btConvexShape; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; -if(!(r0 ==0)) //_LBB391_2 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZN10btBoxShapeD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV13btConvexShape; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZNK14btConcaveShape9getMarginEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var f0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0+3)]; - f_g0 = f0; - return; -} - -function _ZN14btConcaveShape9setMarginEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - heap32[(r0+3)] = heap32[(fp+1)]; - return; -} - -function _ZNK22btBvhTriangleMeshShape7getNameEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = _2E_str181; - r_g0 = r0; - return; -} - -function _ZNK22btBvhTriangleMeshShape28calculateSerializeBufferSizeEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 60; - r_g0 = r0; - return; -} - -function _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -120;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+1)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - r3 = heap32[(fp+1)]; - r4 = sp + -52; - r5 = sp + -56; - r6 = sp + -60; - r7 = sp + -64; - r8 = sp + -68; - r9 = sp + -72; - r10 = sp + -76; - r11 = sp + -80; - heap32[(g0)] = r1; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r6; - heap32[(g0+4)] = r7; - heap32[(g0+5)] = r8; - heap32[(g0+6)] = r9; - heap32[(g0+7)] = r10; - heap32[(g0+8)] = r11; - heap32[(g0+9)] = r3; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = heap32[(fp+-20)]; - r2 = (r1 + -2)|0; - if(uint(r2) > 2; - r8 = heap32[(r8+-1)]; -} -else{ - r8 = (r4 - r5)|0; - r8 = heapU16[(r8+-2)>>1]; -} - r9 = heap32[(fp+-16)]; - r10 = heap32[(fp+-13)]; - r8 = (r9 * r8)|0; - r9 = heap32[(fp+-15)]; - if(r9 !=0) //_LBB399_8 -{ - r9 = (r10 + r8)|0; - r11 = r6 >> 2; - f0 = llvm_readDouble((r9+16)); - f1 = llvm_readDouble((r9+8)); - f2 = llvm_readDouble((r10+r8)); - f0 = f0; //fdtos f0, f0 - f3 = heapFloat[(r11+3)]; - f1 = f1; //fdtos f1, f1 - f4 = heapFloat[(r11+2)]; - f2 = f2; //fdtos f2, f2 - f5 = heapFloat[(r11+1)]; - f0 = f0*f3; - f1 = f1*f4; - f2 = f2*f5; -} -else{ - r8 = (r10 + r8)|0; - r8 = r8 >> 2; - r10 = r6 >> 2; - f0 = heapFloat[(r8+2)]; - f1 = heapFloat[(r10+3)]; - f2 = heapFloat[(r8+1)]; - f3 = heapFloat[(r10+2)]; - f4 = heapFloat[(r8)]; - f5 = heapFloat[(r10+1)]; - f0 = f0*f1; - f1 = f2*f3; - f2 = f4*f5; -} - r8 = sp + -48; - r9 = r7 << 2; - r10 = r7 << 2; - r9 = (r8 + r9)|0; - r11 = r7 << 2; - r10 = (r8 + r10)|0; - r9 = r9 >> 2; - r7 = r7 << 2; - r11 = (r8 + r11)|0; - r10 = r10 >> 2; - heapFloat[(r9+-4)] = f2; - r7 = (r8 + r7)|0; - r9 = r11 >> 2; - heapFloat[(r10+-3)] = f1; - r5 = (r5 + 2)|0; - r7 = r7 >> 2; - heapFloat[(r9+-2)] = f0; - heap32[(r7+-1)] = 0; -if(!(r5 !=0)) //_LBB399_3 -{ -break _3; -} -} - r1 = heap32[(r0+2)]; - r4 = r1 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+2)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r2; - __FUNCTION_TABLE__[(r4)>>2](i7); - r0 = heap32[(r0+1)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+6)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} -else{ - r0 = _2E_str6187; - r1 = _2E_str7188; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 130; - _assert(i7); -} -} - -function _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -120;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+1)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - r3 = heap32[(fp+1)]; - r4 = sp + -52; - r5 = sp + -56; - r6 = sp + -60; - r7 = sp + -64; - r8 = sp + -68; - r9 = sp + -72; - r10 = sp + -76; - r11 = sp + -80; - heap32[(g0)] = r1; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r6; - heap32[(g0+4)] = r7; - heap32[(g0+5)] = r8; - heap32[(g0+6)] = r9; - heap32[(g0+7)] = r10; - heap32[(g0+8)] = r11; - heap32[(g0+9)] = r3; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = heap32[(fp+-20)]; - r2 = (r1 + -2)|0; - if(uint(r2) > 2; - r8 = heap32[(r8+-1)]; -} -else{ - r8 = (r4 - r5)|0; - r8 = heapU16[(r8+-2)>>1]; -} - r9 = heap32[(fp+-16)]; - r10 = heap32[(fp+-13)]; - r8 = (r9 * r8)|0; - r9 = heap32[(fp+-15)]; - if(r9 !=0) //_LBB402_8 -{ - r9 = (r10 + r8)|0; - r11 = r6 >> 2; - f0 = llvm_readDouble((r9+16)); - f1 = llvm_readDouble((r9+8)); - f2 = llvm_readDouble((r10+r8)); - f0 = f0; //fdtos f0, f0 - f3 = heapFloat[(r11+3)]; - f1 = f1; //fdtos f1, f1 - f4 = heapFloat[(r11+2)]; - f2 = f2; //fdtos f2, f2 - f5 = heapFloat[(r11+1)]; - f0 = f0*f3; - f1 = f1*f4; - f2 = f2*f5; -} -else{ - r8 = (r10 + r8)|0; - r8 = r8 >> 2; - r10 = r6 >> 2; - f0 = heapFloat[(r8+2)]; - f1 = heapFloat[(r10+3)]; - f2 = heapFloat[(r8+1)]; - f3 = heapFloat[(r10+2)]; - f4 = heapFloat[(r8)]; - f5 = heapFloat[(r10+1)]; - f0 = f0*f1; - f1 = f2*f3; - f2 = f4*f5; -} - r8 = sp + -48; - r9 = r7 << 2; - r10 = r7 << 2; - r9 = (r8 + r9)|0; - r11 = r7 << 2; - r10 = (r8 + r10)|0; - r9 = r9 >> 2; - r7 = r7 << 2; - r11 = (r8 + r11)|0; - r10 = r10 >> 2; - heapFloat[(r9+-4)] = f2; - r7 = (r8 + r7)|0; - r9 = r11 >> 2; - heapFloat[(r10+-3)] = f1; - r5 = (r5 + 2)|0; - r7 = r7 >> 2; - heapFloat[(r9+-2)] = f0; - heap32[(r7+-1)] = 0; -if(!(r5 !=0)) //_LBB402_3 -{ -break _3; -} -} - r1 = heap32[(r0+2)]; - r4 = r1 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+2)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r2; - __FUNCTION_TABLE__[(r4)>>2](i7); - r0 = heap32[(r0+1)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+6)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} -else{ - r0 = _2E_str6187; - r1 = _2E_str7188; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 199; - _assert(i7); -} -} - -function _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -72;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+1)]; - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - r4 = heap32[(fp+1)]; - r5 = sp + -4; - r6 = sp + -8; - r7 = sp + -12; - r8 = sp + -16; - r9 = sp + -20; - r10 = sp + -24; - r11 = sp + -28; - r12 = sp + -32; - heap32[(g0)] = r2; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = r8; - heap32[(g0+5)] = r9; - heap32[(g0+6)] = r10; - heap32[(g0+7)] = r11; - heap32[(g0+8)] = r12; - heap32[(g0+9)] = r4; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = heap32[(fp+-8)]; - r3 = (r2 + -2)|0; - if(uint(r3) > 2; - r9 = heap32[(r9)]; -} -else{ - r9 = (r5 - r8)|0; - r9 = heapU16[(r9+-4)>>1]; -} - r11 = heap32[(fp+-4)]; - r12 = heap32[(fp+-1)]; - r9 = (r11 * r9)|0; - r11 = heap32[(fp+-3)]; - if(r11 !=0) //_LBB405_8 -{ - r11 = (r12 + r9)|0; - r13 = r6 >> 2; - f0 = llvm_readDouble((r11+16)); - f1 = llvm_readDouble((r11+8)); - f2 = llvm_readDouble((r12+r9)); - f0 = f0; //fdtos f0, f0 - f3 = heapFloat[(r13+3)]; - f1 = f1; //fdtos f1, f1 - f4 = heapFloat[(r13+2)]; - f2 = f2; //fdtos f2, f2 - f5 = heapFloat[(r13+1)]; - f0 = f0*f3; - f1 = f1*f4; - f2 = f2*f5; -} -else{ - r9 = (r12 + r9)|0; - r9 = r9 >> 2; - r12 = r6 >> 2; - f0 = heapFloat[(r9+2)]; - f1 = heapFloat[(r12+3)]; - f2 = heapFloat[(r9+1)]; - f3 = heapFloat[(r12+2)]; - f4 = heapFloat[(r9)]; - f5 = heapFloat[(r12+1)]; - f0 = f0*f1; - f1 = f2*f3; - f2 = f4*f5; -} - r9 = r10 << 2; - r11 = r10 << 2; - r9 = (r0 + r9)|0; - r12 = r10 << 2; - r11 = (r0 + r11)|0; - r9 = r9 >> 2; - r10 = r10 << 2; - r12 = (r0 + r12)|0; - r11 = r11 >> 2; - heapFloat[(r9+11)] = f2; - r9 = (r0 + r10)|0; - r10 = r12 >> 2; - heapFloat[(r11+12)] = f1; - r8 = (r8 + 2)|0; - r9 = r9 >> 2; - heapFloat[(r10+13)] = f0; - heap32[(r9+14)] = 0; -if(!(r8 !=6)) //_LBB405_3 -{ -break _3; -} -} - r2 = heap32[(r1+2)]; - r5 = r2 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+2)]; - r0 = (r0 + 12)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r3; - __FUNCTION_TABLE__[(r5)>>2](i7); - r0 = heap32[(r1+1)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+6)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} -else{ - r0 = _2E_str6187; - r1 = _2E_str7188; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 280; - _assert(i7); -} -} - -function _ZNK22btBvhTriangleMeshShape18serializeSingleBvhEP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+13)]; -if(!(r1 ==0)) //_LBB406_2 -{ - r2 = heap32[(fp+1)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = r2 >> 2; - r4 = heap32[(r3)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r4)>>2](i7); - r1 = r_g0; - r4 = heap32[(r0+13)]; - r5 = r4 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r6 = r1 >> 2; - r5 = heap32[(r5+4)]; - r6 = heap32[(r6+2)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r2; - __FUNCTION_TABLE__[(r5)>>2](i7); - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+5)]; - r0 = heap32[(r0+13)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r_g0; - heap32[(g0+3)] = 1213612625; - heap32[(g0+4)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); -} - return; -} - -function _ZNK22btBvhTriangleMeshShape30serializeSingleTriangleInfoMapEP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+14)]; -if(!(r1 ==0)) //_LBB407_2 -{ - r2 = heap32[(fp+1)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+2)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = r2 >> 2; - r4 = heap32[(r3)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r4)>>2](i7); - r1 = r_g0; - r4 = heap32[(r0+14)]; - r5 = r4 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r6 = r1 >> 2; - r5 = heap32[(r5+3)]; - r6 = heap32[(r6+2)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r2; - __FUNCTION_TABLE__[(r5)>>2](i7); - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+5)]; - r0 = heap32[(r0+14)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r_g0; - heap32[(g0+3)] = 1346456916; - heap32[(g0+4)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); -} - return; -} - -function _ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = _2E_str10; - r1 = _2E_str5186; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 43; - _assert(i7); -} - -function _ZNK22btBvhTriangleMeshShape9serializeEPvP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+10)]; - r3 = heap32[(fp)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+7)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - r5 = heap32[(fp+1)]; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r_g0; - r6 = r5 >> 2; - heap32[(r6)] = r4; -if(!(r4 ==0)) //_LBB409_2 -{ - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+12)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r4)>>2](i7); -} - r2 = r3 >> 2; - r3 = heap32[(r2+1)]; - heap32[(r6+1)] = r3; - r3 = heap32[(r2+12)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+14)]; - r5 = (r5 + 12)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r0; - __FUNCTION_TABLE__[(r4)>>2](i7); - heap32[(r6+13)] = heap32[(r2+3)]; - r3 = heap32[(r2+13)]; - if(r3 ==0) //_LBB409_4 -{ -__label__ = 4; -} -else{ - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+13)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = r_g0 & 1; - if(r3 ==0) //_LBB409_5 -{ - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+6)]; - r4 = heap32[(r2+13)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = r_g0; - if(r3 ==0) //_LBB409_7 -{ - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+7)]; - r4 = heap32[(r2+13)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - __FUNCTION_TABLE__[(r3)>>2](i7); - heap32[(r6+10)] = r_g0; - heap32[(r6+11)] = 0; - r3 = heap32[(r2+13)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+3)]; - heap32[(g0)] = r3; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r4)>>2](i7); - r3 = r_g0; - r4 = heap32[(r2+13)]; - r5 = r4 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r7 = r3 >> 2; - r5 = heap32[(r5+4)]; - r7 = heap32[(r7+2)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r0; - __FUNCTION_TABLE__[(r5)>>2](i7); - r5 = heap32[(r1)]; - r5 = r5 >> 2; - r5 = heap32[(r5+5)]; - r7 = heap32[(r2+13)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r_g0; - heap32[(g0+3)] = 1213612625; - heap32[(g0+4)] = r7; - __FUNCTION_TABLE__[(r5)>>2](i7); -__label__ = 8; -} -else{ - heap32[(r6+10)] = r3; - heap32[(r6+11)] = 0; -__label__ = 8; -} -} -else{ -__label__ = 4; -} -} -if (__label__ == 4){ - heap32[(r6+10)] = 0; - heap32[(r6+11)] = 0; -} - r3 = heap32[(r2+14)]; - if(r3 ==0) //_LBB409_10 -{ -__label__ = 10; -} -else{ - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+13)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = r_g0 & 2; - if(r3 ==0) //_LBB409_12 -{ - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+6)]; - r4 = heap32[(r2+14)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = r_g0; - if(r3 ==0) //_LBB409_14 -{ - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+7)]; - r4 = heap32[(r2+14)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - __FUNCTION_TABLE__[(r3)>>2](i7); - heap32[(r6+12)] = r_g0; - r3 = heap32[(r2+14)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+2)]; - heap32[(g0)] = r3; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r4)>>2](i7); - r3 = r_g0; - r4 = heap32[(r2+14)]; - r5 = r4 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r6 = r3 >> 2; - r5 = heap32[(r5+3)]; - r6 = heap32[(r6+2)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r0; - __FUNCTION_TABLE__[(r5)>>2](i7); - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - r2 = heap32[(r2+14)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r_g0; - heap32[(g0+3)] = 1346456916; - heap32[(g0+4)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); -__label__ = 11; -} -else{ - heap32[(r6+12)] = r3; -__label__ = 11; -} -} -else{ -__label__ = 10; -} -} -if (__label__ == 10){ - heap32[(r6+12)] = 0; -} - r0 = _2E_str8189; - r_g0 = r0; - return; -} - -function _ZN22btBvhTriangleMeshShape17buildOptimizedBvhEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; -var __label__ = 0; - i7 = sp + -72;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+61]; -if(!(r1 ==0)) //_LBB410_3 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+13)]; - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r1+13)]; -if(!(r1 ==0)) //_LBB410_3 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r3 = heap32[(r2)]; - r3 = (r3 + 1)|0; - r1 = r1 >> 2; - heap32[(r2)] = r3; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - r1 = gNumAlignedAllocs; - r1 = r1 >> 2; - r2 = heap32[(r1)]; - r2 = (r2 + 1)|0; - heap32[(r1)] = r2; - heap32[(g0)] = 191; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB410_5 -{ - r3 = 0; - r4 = (r2 + 4)|0; - r3 = (r3 - r4)|0; - r3 = r3 & 15; - r3 = (r2 + r3)|0; - r4 = (r3 + 4)|0; - r3 = r3 >> 2; - heap32[(r3)] = r2; - r2 = r4; -} - r3 = r2 >> 2; - r4 = 1; - heap32[(r3+13)] = 277; - heap8[r2+80] = r4; - heap32[(r3+19)] = 0; - heap32[(r3+17)] = 0; - heap32[(r3+18)] = 0; - heap8[r2+100] = r4; - heap32[(r3+24)] = 0; - heap32[(r3+22)] = 0; - heap32[(r3+23)] = 0; - heap8[r2+120] = r4; - heap32[(r3+29)] = 0; - heap32[(r3+27)] = 0; - heap32[(r3+28)] = 0; - heap8[r2+140] = r4; - heap32[(r3+34)] = 0; - heap32[(r3+32)] = 0; - heap32[(r3+33)] = 0; - heap32[(r3+36)] = 0; - heap8[r2+164] = r4; - heap32[(r3+40)] = 0; - heap32[(r3+38)] = 0; - heap32[(r3+39)] = 0; - heap32[(r3+42)] = 0; - heap32[(r3+1)] = -8388609; - heap32[(r3+2)] = -8388609; - heap32[(r3+3)] = -8388609; - heap32[(r3+4)] = 0; - heap32[(r3+5)] = 2139095039; - heap32[(r3+6)] = 2139095039; - r5 = _ZTV14btOptimizedBvh; - heap32[(r3+7)] = 2139095039; - r5 = (r5 + 8)|0; - heap32[(r3+8)] = 0; - r6 = r0 >> 2; - heap32[(r3)] = r5; - heap32[(r6+13)] = r2; - r5 = heap32[(r6+12)]; - r7 = heapU8[r0+60]; - heap8[r2+60] = r7; - if(r7 ==0) //_LBB410_11 -{ - r6 = _ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback; - r7 = sp + -24; - r6 = (r6 + 8)|0; - r8 = r7 >> 2; - r9 = (r2 + 64)|0; - heap32[(fp+-6)] = r6; - r6 = sp + -40; - heap32[(r8+1)] = r9; - r8 = r6 >> 2; - heap32[(fp+-10)] = -581039253; - heap32[(r8+1)] = -581039253; - heap32[(r8+2)] = -581039253; - r9 = sp + -56; - heap32[(r8+3)] = 0; - r8 = r9 >> 2; - heap32[(fp+-14)] = 1566444395; - heap32[(r8+1)] = 1566444395; - heap32[(r8+2)] = 1566444395; - r10 = r5 >> 2; - heap32[(r8+3)] = 0; - r8 = heap32[(r10)]; - r8 = r8 >> 2; - r8 = heap32[(r8+2)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r9; - __FUNCTION_TABLE__[(r8)>>2](i7); - r5 = heap32[(r3+17)]; - r6 = heap32[(r3+22)]; - r7 = r5 << 1; -if(!(r6 >=r7)) //_LBB410_26 -{ - r8 = heap32[(r3+23)]; -if(!(r8 >=r7)) //_LBB410_26 -{ - if(r7 !=0) //_LBB410_15 -{ - r8 = heap32[(r1)]; - r8 = (r8 + 1)|0; - r9 = r5 << 7; - heap32[(r1)] = r8; - r8 = r9 | 19; - heap32[(g0)] = r8; - malloc(i7); - r8 = r_g0; - if(r8 !=0) //_LBB410_17 -{ - r9 = 0; - r10 = (r8 + 4)|0; - r9 = (r9 - r10)|0; - r9 = r9 & 15; - r9 = (r8 + r9)|0; - r10 = (r9 + 4)|0; - r9 = r9 >> 2; - heap32[(r9)] = r8; - r8 = r10; -} -} -else{ - r8 = 0; -} -if(!(r6 <1)) //_LBB410_21 -{ - r9 = 0; -_20: while(true){ - r10 = heap32[(r3+24)]; - r11 = (r8 + r9)|0; - r10 = (r10 + r9)|0; - heap32[(g0)] = r11; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = 64; - r6 = (r6 + -1)|0; - r9 = (r9 + 64)|0; - memcpy(i7); -if(!(r6 !=0)) //_LBB410_20 -{ -break _20; -} -} -} - r6 = heap32[(r3+24)]; -if(!(r6 ==0)) //_LBB410_25 -{ - r9 = heapU8[r2+100]; -if(!(r9 ==0)) //_LBB410_24 -{ - r9 = gNumAlignedFree; - r9 = r9 >> 2; - r10 = heap32[(r9)]; - r10 = (r10 + 1)|0; - r6 = r6 >> 2; - heap32[(r9)] = r10; - r6 = heap32[(r6+-1)]; - heap32[(g0)] = r6; - free(i7); -} - heap32[(r3+24)] = 0; -} - r6 = 1; - heap8[r2+100] = r6; - heap32[(r3+24)] = r8; - heap32[(r3+23)] = r7; -} -} - r6 = _ZTV31btInternalTriangleIndexCallback; - r6 = (r6 + 8)|0; - heap32[(r3+22)] = r7; - heap32[(fp+-6)] = r6; -} -else{ - r7 = (r2 + 4)|0; - r8 = (r2 + 20)|0; - f0 = -1; - f1 = heapFloat[(r6+6)]; - f2 = heapFloat[(r6+5)]; - f3 = heapFloat[(r6+4)]; - f3 = f3+f0; - f2 = f2+f0; - heapFloat[(r3+1)] = f3; - f0 = f1+f0; - heapFloat[(r3+2)] = f2; - heapFloat[(r3+3)] = f0; - heap32[(r3+4)] = 0; - f1 = 1; - f4 = heapFloat[(r6+10)]; - f5 = heapFloat[(r6+9)]; - f6 = heapFloat[(r6+8)]; - f6 = f6+f1; - f5 = f5+f1; - heapFloat[(r3+5)] = f6; - f1 = f4+f1; - heapFloat[(r3+6)] = f5; - heapFloat[(r3+7)] = f1; - f4 = 65533; - f3 = f6-f3; - f2 = f5-f2; - f3 = f4/f3; - heap32[(r3+8)] = 0; - f0 = f1-f0; - f1 = f4/f2; - heapFloat[(r3+9)] = f3; - f0 = f4/f0; - heapFloat[(r3+10)] = f1; - heapFloat[(r3+11)] = f0; - r6 = _ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback; - heap32[(r3+12)] = 0; - r9 = sp + -16; - r6 = (r6 + 8)|0; - heap8[r2+60] = r4; - r10 = r9 >> 2; - r11 = (r2 + 104)|0; - heap32[(fp+-4)] = r6; - heap32[(r10+1)] = r11; - r6 = r5 >> 2; - heap32[(r10+2)] = r2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+2)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = r8; - __FUNCTION_TABLE__[(r6)>>2](i7); - r5 = heap32[(r3+27)]; - r6 = heap32[(r3+32)]; - r7 = r5 << 1; -_31: do { -if(!(r6 >=r7)) //_LBB410_10 -{ - r8 = (r2 + 124)|0; - heap32[(g0)] = r8; - heap32[(g0+1)] = r7; - r8 = (r7 - r6)|0; - r6 = r6 << 4; - _ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7); -_33: while(true){ - r9 = heap32[(r3+34)]; - r9 = (r9 + r6)|0; - r9 = r9 >> 2; - r8 = (r8 + -1)|0; - r6 = (r6 + 16)|0; - heap32[(r9)] = 0; - heap32[(r9+1)] = 0; - heap32[(r9+2)] = 0; - heap32[(r9+3)] = 0; -if(!(r8 !=0)) //_LBB410_9 -{ -break _31; -} -} -} -} while(0); - r6 = _ZTV31btInternalTriangleIndexCallback; - r6 = (r6 + 8)|0; - heap32[(r3+32)] = r7; - heap32[(fp+-4)] = r6; -} - heap32[(r3+14)] = 0; - heap32[(g0)] = r2; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r5; - _ZN14btQuantizedBvh9buildTreeEii(i7); - r5 = heapU8[r2+60]; -if(!(r5 ==0)) //_LBB410_41 -{ - r5 = heap32[(r3+38)]; -if(!(r5 !=0)) //_LBB410_41 -{ - r6 = heap32[(r3+39)]; - if(r6 !=r5) //_LBB410_31 -{ -__label__ = 29; -} -else{ - if(r6 <1) //_LBB410_32 -{ - r6 = heap32[(r1)]; - r6 = (r6 + 1)|0; - heap32[(r1)] = r6; - heap32[(g0)] = 51; - malloc(i7); - r1 = r_g0; - if(r1 !=0) //_LBB410_34 -{ - r6 = 0; - r7 = (r1 + 4)|0; - r6 = (r6 - r7)|0; - r6 = r6 & 15; - r6 = (r1 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r1; - r1 = r7; -} - r6 = heap32[(r3+40)]; -if(!(r6 ==0)) //_LBB410_39 -{ - r7 = heapU8[r2+164]; -if(!(r7 ==0)) //_LBB410_38 -{ - r7 = gNumAlignedFree; - r7 = r7 >> 2; - r8 = heap32[(r7)]; - r8 = (r8 + 1)|0; - r6 = r6 >> 2; - heap32[(r7)] = r8; - r6 = heap32[(r6+-1)]; - heap32[(g0)] = r6; - free(i7); -} - heap32[(r3+40)] = 0; -} - r6 = 1; - heap8[r2+164] = r6; - heap32[(r3+40)] = r1; - heap32[(r3+39)] = 1; - r6 = heap32[(r3+38)]; - r6 = (r6 + 1)|0; -__label__ = 37; -} -else{ -__label__ = 29; -} -} -if (__label__ == 29){ - r1 = heap32[(r3+40)]; - r6 = r4; -} - heap32[(r3+38)] = r6; - r6 = heap32[(r3+34)]; - r7 = heapU16[(r6)>>1]; - r5 = r5 << 5; - heap16[(r1+r5)>>1] = r7; - r1 = (r1 + r5)|0; - r5 = heapU16[(r6+2)>>1]; - heap16[(r1+2)>>1] = r5; - r5 = heapU16[(r6+4)>>1]; - heap16[(r1+4)>>1] = r5; - r5 = heapU16[(r6+6)>>1]; - heap16[(r1+6)>>1] = r5; - r5 = heapU16[(r6+8)>>1]; - heap16[(r1+8)>>1] = r5; - r5 = heapU16[(r6+10)>>1]; - r6 = r1 >> 2; - heap16[(r1+10)>>1] = r5; - heap32[(r6+3)] = 0; - r1 = heap32[(r3+34)]; - r1 = r1 >> 2; - r1 = heap32[(r1+3)]; - r5 = 0; - r5 = (r5 - r1)|0; - r1 = r1 < 0 ? r5 : r4; - heap32[(r6+4)] = r1; -} -} - r1 = heap32[(r3+38)]; - heap32[(r3+42)] = r1; - r1 = heap32[(r3+29)]; -if(!(r1 ==0)) //_LBB410_45 -{ - r4 = heapU8[r2+120]; -if(!(r4 ==0)) //_LBB410_44 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r1 = r1 >> 2; - heap32[(r4)] = r5; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r3+29)] = 0; -} - r1 = 1; - heap8[r2+120] = r1; - heap32[(r3+29)] = 0; - heap32[(r3+27)] = 0; - heap32[(r3+28)] = 0; - r4 = heap32[(r3+19)]; -if(!(r4 ==0)) //_LBB410_49 -{ - r5 = heapU8[r2+80]; -if(!(r5 ==0)) //_LBB410_48 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r6 = heap32[(r5)]; - r6 = (r6 + 1)|0; - r4 = r4 >> 2; - heap32[(r5)] = r6; - r4 = heap32[(r4+-1)]; - heap32[(g0)] = r4; - free(i7); -} - heap32[(r3+19)] = 0; -} - heap8[r2+80] = r1; - heap32[(r3+19)] = 0; - heap32[(r3+17)] = 0; - heap32[(r3+18)] = 0; - heap8[r0+61] = r1; - return; -} - -function _ZN22btBvhTriangleMeshShape15setLocalScalingERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; - var f1; - var f2; - var f3; - var f4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+7)]; - heap32[(g0)] = r0; - r3 = heap32[(fp+1)]; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0 >> 2; - r3 = r3 >> 2; - f0 = heapFloat[(r3)]; - f1 = heapFloat[(r2)]; - f2 = heapFloat[(r2+1)]; - f3 = heapFloat[(r3+1)]; - f1 = f1-f0; - f2 = f2-f3; - f3 = heapFloat[(r2+2)]; - f4 = heapFloat[(r3+2)]; - f3 = f3-f4; - f1 = f1*f1; - f2 = f2*f2; - f1 = f1+f2; - f2 = f3*f3; - f1 = f1+f2; - f2 = 1.1920928955078125e-007; -if(!(f1 <=f2)) //_LBB411_2 -{ - r1 = heap32[(r1+12)]; - r1 = r1 >> 2; - heapFloat[(r1+1)] = f0; - heap32[(r1+2)] = heap32[(r3+1)]; - heap32[(r1+3)] = heap32[(r3+2)]; - heap32[(r1+4)] = heap32[(r3+3)]; - heap32[(g0)] = r0; - _ZN19btTriangleMeshShape15recalcLocalAabbEv(i7); - heap32[(g0)] = r0; - _ZN22btBvhTriangleMeshShape17buildOptimizedBvhEv(i7); -} - return; -} - -function _ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -80;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = _ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback; - r2 = sp + -64; - r3 = heap32[(r0+12)]; - r1 = (r1 + 8)|0; - r4 = r2 >> 2; - heap32[(fp+-16)] = r1; - r1 = heap32[(fp+1)]; - heap32[(r4+1)] = r3; - heap32[(r4+2)] = r1; - r0 = heap32[(r0+13)]; - r1 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r3; - _ZNK14btQuantizedBvh26reportAabbOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_(i7); - return; -} - -function _ZN22btBvhTriangleMeshShapeD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV22btBvhTriangleMeshShape; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heapU8[r0+61]; - if(r1 ==0) //_LBB413_3 -{ -__label__ = 3; -} -else{ - r1 = heap32[(r2+13)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+13)]; - if(r1 ==0) //_LBB413_3 -{ -__label__ = 3; -} -else{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r3 = heap32[(r0)]; - r3 = (r3 + 1)|0; - r1 = r1 >> 2; - heap32[(r0)] = r3; - r0 = heap32[(r1+-1)]; - r1 = _ZTV14btConcaveShape; - heap32[(g0)] = r0; - r0 = (r1 + 8)|0; - free(i7); - heap32[(r2)] = r0; -__label__ = 4; -} -} -if (__label__ == 3){ - r1 = _ZTV14btConcaveShape; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - if(r0 ==0) //_LBB413_5 -{ -__label__ = 5; -} -else{ -__label__ = 4; -} -} -if (__label__ == 4){ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZN22btBvhTriangleMeshShapeD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV22btBvhTriangleMeshShape; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r0 = heapU8[r0+61]; -if(!(r0 ==0)) //_LBB414_3 -{ - r0 = heap32[(r2+13)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = heap32[(r2+13)]; -if(!(r0 ==0)) //_LBB414_3 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} -} - r0 = _ZTV14btConcaveShape; - r0 = (r0 + 8)|0; - heap32[(r2)] = r0; - return; -} - -function _ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN14btCapsuleShape9setMarginEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f0 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f1 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f2 = f_g0; - f3 = heapFloat[(r1+9)]; - f4 = heapFloat[(r1+8)]; - f5 = heapFloat[(r1+7)]; - heap32[(r1+11)] = heap32[(fp+1)]; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f6 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f7 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - f2 = f5+f2; - __FUNCTION_TABLE__[(r2)>>2](i7); - f1 = f4+f1; - f2 = f2-f_g0; - f0 = f3+f0; - f1 = f1-f7; - heapFloat[(r1+7)] = f2; - f0 = f0-f6; - heapFloat[(r1+8)] = f1; - heapFloat[(r1+9)] = f0; - heap32[(r1+10)] = 0; - return; -} - -function _ZNK14btCapsuleShape7getNameEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = _2E_str194; - r_g0 = r0; - return; -} - -function _ZNK14btCapsuleShape7getAabbERK11btTransformR9btVector3S4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+13)]; - r3 = (r2 + 2)|0; - r3 = (r3 % 3)|0; - r4 = (r0 + 28)|0; - r3 = r3 << 2; - r3 = (r4 + r3)|0; - r3 = r3 >> 2; - f0 = heapFloat[(r3)]; - r3 = sp + -16; - r5 = r3 >> 2; - heapFloat[(fp+-4)] = f0; - r2 = r2 << 2; - heapFloat[(r5+1)] = f0; - r4 = (r4 + r2)|0; - heapFloat[(r5+2)] = f0; - r4 = r4 >> 2; - heap32[(r5+3)] = 0; - r2 = (r3 + r2)|0; - f1 = heapFloat[(r4)]; - r2 = r2 >> 2; - f0 = f0+f1; - heapFloat[(r2)] = f0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f0 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f1 = f_g0; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - f3 = heapFloat[(fp+-4)]; - f2 = f3+f_g0; - heapFloat[(fp+-4)] = f2; - f3 = heapFloat[(r5+1)]; - f1 = f3+f1; - heapFloat[(r5+1)] = f1; - f3 = heapFloat[(r5+2)]; - r0 = heap32[(fp+1)]; - f0 = f3+f0; - r0 = r0 >> 2; - heapFloat[(r5+2)] = f0; - f3 = heapFloat[(r0+10)]; - r1 = heap32[(fp+2)]; - r2 = heap32[(fp+3)]; - f4 = 0; - if(f3 > 2; - f1 = f2+f1; - f0 = f3*f0; - f2 = f7-f4; - f0 = f1+f0; - f1 = f8-f5; - heapFloat[(r0)] = f2; - f2 = f9-f0; - heapFloat[(r0+1)] = f1; - heapFloat[(r0+2)] = f2; - r1 = r2 >> 2; - f1 = f7+f4; - heap32[(r0+3)] = 0; - f2 = f8+f5; - heapFloat[(r1)] = f1; - f0 = f9+f0; - heapFloat[(r1+1)] = f2; - heapFloat[(r1+2)] = f0; - heap32[(r1+3)] = 0; - return; -} - -function _ZNK14btCapsuleShape28calculateSerializeBufferSizeEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 60; - r_g0 = r0; - return; -} - -function _ZNK14btCapsuleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = heap32[(fp+3)]; -if(!(r0 <1)) //_LBB420_9 -{ - r1 = heap32[(fp)]; - r2 = r1 >> 2; - r3 = heap32[(r2+13)]; - r4 = (r3 + 2)|0; - r4 = (r4 % 3)|0; - r4 = r4 << 2; - r4 = (r1 + r4)|0; - r4 = r4 >> 2; - r5 = heap32[(fp+1)]; - r6 = heap32[(fp+2)]; - f0 = heapFloat[(r4+7)]; - r0 = (r0 + -1)|0; - r4 = (r5 + 8)|0; - r5 = (r6 + 8)|0; -_3: while(true){ - r6 = sp + -16; - heap32[(fp+-4)] = 0; - r7 = r6 >> 2; - r3 = r3 << 2; - heap32[(r7+1)] = 0; - r6 = (r6 + r3)|0; - r3 = (r1 + r3)|0; - heap32[(r7+2)] = 0; - r6 = r6 >> 2; - r3 = r3 >> 2; - heap32[(r7+3)] = 0; - heap32[(r6)] = heap32[(r3+7)]; - r3 = heap32[(r2)]; - r3 = r3 >> 2; - r3 = heap32[(r3+11)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = r4 >> 2; - f2 = heapFloat[(r3+-1)]; - f3 = heapFloat[(r2+4)]; - f4 = heapFloat[(r3+-2)]; - f5 = heapFloat[(r2+3)]; - f6 = heapFloat[(r3)]; - f7 = heapFloat[(r2+5)]; - f3 = f2*f3; - f5 = f4*f5; - f7 = f6*f7; - f8 = heapFloat[(r7+1)]; - f3 = f3*f0; - f9 = heapFloat[(fp+-4)]; - f5 = f5*f0; - f10 = heapFloat[(r7+2)]; - f7 = f7*f0; - f3 = f8+f3; - f8 = f2*f_g0; - f5 = f9+f5; - f9 = f4*f_g0; - f3 = f3-f8; - f5 = f5-f9; - f7 = f10+f7; - f1 = f6*f_g0; - f1 = f7-f1; - f4 = f4*f5; - f2 = f2*f3; - f2 = f4+f2; - f4 = f6*f1; - f2 = f2+f4; - f4 = -999999984306749440; - if(f2 >f4) //_LBB420_4 -{ - r6 = r5 >> 2; - heapFloat[(r6+-2)] = f5; - heapFloat[(r6+-1)] = f3; - heapFloat[(r6)] = f1; - heap32[(r6+1)] = 0; - f4 = f2; -} - r6 = sp + -32; - heap32[(fp+-8)] = 0; - r7 = r6 >> 2; - heap32[(r7+1)] = 0; - heap32[(r7+2)] = 0; - heap32[(r7+3)] = 0; - r8 = heap32[(r2+13)]; - r8 = r8 << 2; - r9 = (r1 + r8)|0; - r9 = r9 >> 2; - f1 = heapFloat[(r9+7)]; - r6 = (r6 + r8)|0; - r6 = r6 >> 2; - f1 = -f1; - heapFloat[(r6)] = f1; - r6 = heap32[(r2)]; - r6 = r6 >> 2; - r6 = heap32[(r6+11)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r6)>>2](i7); - f2 = heapFloat[(r3+-1)]; - f3 = heapFloat[(r2+4)]; - f5 = heapFloat[(r3+-2)]; - f6 = heapFloat[(r2+3)]; - f7 = heapFloat[(r3)]; - f8 = heapFloat[(r2+5)]; - f3 = f2*f3; - f6 = f5*f6; - f8 = f7*f8; - f9 = heapFloat[(r7+1)]; - f3 = f3*f0; - f10 = heapFloat[(fp+-8)]; - f6 = f6*f0; - f11 = heapFloat[(r7+2)]; - f8 = f8*f0; - f3 = f9+f3; - f9 = f2*f_g0; - f6 = f10+f6; - f10 = f5*f_g0; - f3 = f3-f9; - f6 = f6-f10; - f8 = f11+f8; - f1 = f7*f_g0; - f1 = f8-f1; - f5 = f5*f6; - f2 = f2*f3; - f2 = f5+f2; - f5 = f7*f1; - f2 = f2+f5; -if(!(f2 <=f4)) //_LBB420_7 -{ - r3 = r5 >> 2; - heapFloat[(r3+-2)] = f6; - heapFloat[(r3+-1)] = f3; - heapFloat[(r3)] = f1; - heap32[(r3+1)] = 0; -} - if(r0 ==0) //_LBB420_9 -{ -break _3; -} -else{ - r3 = heap32[(r2+13)]; - r0 = (r0 + -1)|0; - r4 = (r4 + 16)|0; - r5 = (r5 + 16)|0; -continue _3; -} -} -} - return; -} - -function _ZNK14btCapsuleShape21calculateLocalInertiaEfR9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1+13)]; - r2 = (r1 + 2)|0; - r2 = (r2 % 3)|0; - r0 = (r0 + 28)|0; - r2 = r2 << 2; - r2 = (r0 + r2)|0; - r2 = r2 >> 2; - f0 = heapFloat[(r2)]; - r2 = sp + -16; - r3 = r2 >> 2; - heapFloat[(fp+-4)] = f0; - r1 = r1 << 2; - heapFloat[(r3+1)] = f0; - r2 = (r2 + r1)|0; - r0 = (r0 + r1)|0; - heapFloat[(r3+2)] = f0; - r1 = r2 >> 2; - heap32[(r3+3)] = 0; - r0 = r0 >> 2; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r0)]; - f0 = f0+f1; - heapFloat[(r1)] = f0; - f0 = 0.039999999105930328; - f1 = heapFloat[(r3+1)]; - f2 = heapFloat[(r3+2)]; - f3 = heapFloat[(fp+-4)]; - f1 = f1+f0; - f2 = f2+f0; - f0 = f3+f0; - f1 = f1+f1; - f2 = f2+f2; - f0 = f0+f0; - f1 = f1*f1; - f2 = f2*f2; - f3 = heapFloat[(fp+1)]; - f4 = 0.083333328366279602; - f0 = f0*f0; - r0 = heap32[(fp+2)]; - f5 = f1+f2; - f3 = f3*f4; - f2 = f0+f2; - r0 = r0 >> 2; - f4 = f5*f3; - f0 = f0+f1; - f1 = f2*f3; - heapFloat[(r0)] = f4; - f0 = f0*f3; - heapFloat[(r0+1)] = f1; - heapFloat[(r0+2)] = f0; - return; -} - -function _ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = _2E_str10; - r1 = _2E_str4198; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 110; - _assert(i7); -} - -function _ZNK14btCapsuleShape9serializeEPvP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+10)]; - r3 = heap32[(fp)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+7)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - r5 = heap32[(fp+1)]; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r_g0; - r5 = r5 >> 2; - heap32[(r5)] = r4; -if(!(r4 ==0)) //_LBB423_2 -{ - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+12)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); -} - r0 = r3 >> 2; - r1 = heap32[(r0+1)]; - heap32[(r5+1)] = r1; - heap32[(r5+7)] = heap32[(r0+7)]; - heap32[(r5+8)] = heap32[(r0+8)]; - heap32[(r5+9)] = heap32[(r0+9)]; - heap32[(r5+10)] = heap32[(r0+10)]; - heap32[(r5+3)] = heap32[(r0+3)]; - heap32[(r5+4)] = heap32[(r0+4)]; - heap32[(r5+5)] = heap32[(r0+5)]; - heap32[(r5+6)] = heap32[(r0+6)]; - heap32[(r5+11)] = heap32[(r0+11)]; - r0 = heap32[(r0+13)]; - heap32[(r5+13)] = r0; - r0 = _2E_str6199; - r_g0 = r0; - return; -} - -function _ZN14btCapsuleShape15setLocalScalingERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f0 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f1 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f2 = f_g0; - r0 = heap32[(fp+1)]; - f3 = heapFloat[(r1+9)]; - f4 = heapFloat[(r1+8)]; - f5 = heapFloat[(r1+7)]; - r0 = r0 >> 2; - f3 = f3+f0; - f6 = heapFloat[(r1+5)]; - f4 = f4+f1; - f7 = heapFloat[(r1+4)]; - f5 = f5+f2; - f8 = heapFloat[(r1+3)]; - f9 = heapFloat[(r0+2)]; - f3 = f3/f6; - f4 = f4/f7; - f5 = f5/f8; - f6 = 0; - if(f9 >2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV13btConvexShape; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; -if(!(r0 ==0)) //_LBB425_2 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZN14btCapsuleShapeD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV13btConvexShape; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZNK14btCapsuleShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - heap32[(r0)] = 0; - heap32[(r0+1)] = 0; - r1 = heap32[(fp+2)]; - heap32[(r0+2)] = 0; - r1 = r1 >> 2; - heap32[(r0+3)] = 0; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r1+1)]; - f2 = heapFloat[(r1+2)]; - f3 = f0*f0; - f4 = f1*f1; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - r1 = heap32[(fp+1)]; - f4 = 9.9999997473787516e-005; - if(f3 >=f4) //_LBB427_2 -{ - heapFloat[(g0)] = f3; - f3 = 1; - sqrtf(i7); - f3 = f3/f_g0; - f0 = f0*f3; - f1 = f1*f3; - f2 = f2*f3; -} -else{ - f0 = 1; - f1 = 0; - f2 = f1; -} - r2 = r1 >> 2; - r3 = heap32[(r2+13)]; - r4 = (r3 + 2)|0; - r4 = (r4 % 3)|0; - r5 = (r1 + 28)|0; - r4 = r4 << 2; - r4 = (r5 + r4)|0; - r4 = r4 >> 2; - f3 = heapFloat[(r4)]; - r4 = sp + -16; - heap32[(fp+-4)] = 0; - r6 = r4 >> 2; - r3 = r3 << 2; - heap32[(r6+1)] = 0; - r4 = (r4 + r3)|0; - r3 = (r5 + r3)|0; - heap32[(r6+2)] = 0; - r4 = r4 >> 2; - r3 = r3 >> 2; - heap32[(r6+3)] = 0; - heap32[(r4)] = heap32[(r3)]; - r3 = heap32[(r2)]; - r3 = r3 >> 2; - r3 = heap32[(r3+11)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - f5 = heapFloat[(r2+4)]; - f6 = heapFloat[(r2+3)]; - f7 = heapFloat[(r2+5)]; - f5 = f1*f5; - f6 = f0*f6; - f7 = f2*f7; - f8 = heapFloat[(r6+1)]; - f5 = f5*f3; - f9 = heapFloat[(fp+-4)]; - f6 = f6*f3; - f10 = heapFloat[(r6+2)]; - f7 = f7*f3; - f5 = f8+f5; - f8 = f1*f_g0; - f6 = f9+f6; - f9 = f0*f_g0; - f5 = f5-f8; - f6 = f6-f9; - f7 = f10+f7; - f4 = f2*f_g0; - f4 = f7-f4; - f7 = f0*f6; - f8 = f1*f5; - f7 = f7+f8; - f8 = f2*f4; - f7 = f7+f8; - f8 = -999999984306749440; - if(f7 >f8) //_LBB427_5 -{ - heapFloat[(r0)] = f6; - heapFloat[(r0+1)] = f5; - heapFloat[(r0+2)] = f4; - heap32[(r0+3)] = 0; - f8 = f7; -} - r3 = sp + -32; - heap32[(fp+-8)] = 0; - r4 = r3 >> 2; - heap32[(r4+1)] = 0; - heap32[(r4+2)] = 0; - heap32[(r4+3)] = 0; - r5 = heap32[(r2+13)]; - r5 = r5 << 2; - r6 = (r1 + r5)|0; - r6 = r6 >> 2; - f4 = heapFloat[(r6+7)]; - r3 = (r3 + r5)|0; - r3 = r3 >> 2; - f4 = -f4; - heapFloat[(r3)] = f4; - r3 = heap32[(r2)]; - r3 = r3 >> 2; - r3 = heap32[(r3+11)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - f5 = heapFloat[(r2+4)]; - f6 = heapFloat[(r2+3)]; - f7 = heapFloat[(r2+5)]; - f5 = f1*f5; - f6 = f0*f6; - f7 = f2*f7; - f9 = heapFloat[(r4+1)]; - f5 = f5*f3; - f10 = heapFloat[(fp+-8)]; - f6 = f6*f3; - f11 = heapFloat[(r4+2)]; - f3 = f7*f3; - f5 = f9+f5; - f7 = f1*f_g0; - f6 = f10+f6; - f9 = f0*f_g0; - f5 = f5-f7; - f6 = f6-f9; - f3 = f11+f3; - f4 = f2*f_g0; - f3 = f3-f4; - f0 = f0*f6; - f1 = f1*f5; - f0 = f0+f1; - f1 = f2*f3; - f0 = f0+f1; -if(!(f0 <=f8)) //_LBB427_8 -{ - heapFloat[(r0)] = f6; - heapFloat[(r0+1)] = f5; - heapFloat[(r0+2)] = f3; - heap32[(r0+3)] = 0; -} - return; -} - -function _ZNK16btCollisionShape28calculateSerializeBufferSizeEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 12; - r_g0 = r0; - return; -} - -function _ZNK16btCollisionShape27getContactBreakingThresholdEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - f1 = heapFloat[(fp+1)]; - f0 = f_g0*f1; - f_g0 = f0; - return; -} - -function _ZNK16btCollisionShape9serializeEPvP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+10)]; - r3 = heap32[(fp)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+7)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - r5 = heap32[(fp+1)]; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r_g0; - r5 = r5 >> 2; - heap32[(r5)] = r4; -if(!(r4 ==0)) //_LBB430_2 -{ - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+12)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); -} - r0 = r3 >> 2; - r0 = heap32[(r0+1)]; - heap32[(r5+1)] = r0; - r0 = _2E_str200; - r_g0 = r0; - return; -} - -function _ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r0; - r3 = heap32[(fp+1)]; - __FUNCTION_TABLE__[(r2)>>2](i7); - r4 = r3 >> 2; - r5 = heap32[(r4)]; - r5 = r5 >> 2; - r5 = heap32[(r5+4)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r5)>>2](i7); - r2 = r_g0; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r5 = r2 >> 2; - r1 = heap32[(r1+13)]; - r5 = heap32[(r5+2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r3; - __FUNCTION_TABLE__[(r1)>>2](i7); - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+5)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r_g0; - heap32[(g0+3)] = 1346455635; - heap32[(g0+4)] = r0; - __FUNCTION_TABLE__[(r4)>>2](i7); - return; -} - -function _ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -112;var g0 = i7>>2; // save stack - r0 = sp + -64; - r1 = r0 >> 2; - heap32[(fp+-16)] = 1065353216; - heap32[(r1+1)] = 0; - heap32[(r1+2)] = 0; - heap32[(r1+3)] = 0; - heap32[(r1+4)] = 0; - heap32[(r1+5)] = 1065353216; - heap32[(r1+6)] = 0; - heap32[(r1+7)] = 0; - heap32[(r1+8)] = 0; - heap32[(r1+9)] = 0; - heap32[(r1+10)] = 1065353216; - heap32[(r1+11)] = 0; - heap32[(r1+12)] = 0; - heap32[(r1+13)] = 0; - r2 = heap32[(fp)]; - heap32[(r1+14)] = 0; - r3 = r2 >> 2; - heap32[(r1+15)] = 0; - r1 = heap32[(r3)]; - r1 = r1 >> 2; - r1 = heap32[(r1+2)]; - r3 = sp + -96; - r4 = sp + -80; - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r3; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = r3 >> 2; - r1 = r4 >> 2; - f0 = heapFloat[(r0+1)]; - f1 = heapFloat[(r1+1)]; - f2 = heapFloat[(fp+-24)]; - f3 = heapFloat[(fp+-20)]; - f2 = f2-f3; - f0 = f0-f1; - f1 = heapFloat[(r0+2)]; - f3 = heapFloat[(r1+2)]; - f1 = f1-f3; - f2 = f2*f2; - f0 = f0*f0; - f0 = f2+f0; - f1 = f1*f1; - f0 = f0+f1; - heapFloat[(g0)] = f0; - r2 = heap32[(fp+2)]; - f0 = 0.5; - sqrtf(i7); - r2 = r2 >> 2; - f1 = f_g0*f0; - heapFloat[(r2)] = f1; - f1 = heapFloat[(fp+-20)]; - f2 = heapFloat[(fp+-24)]; - r2 = heap32[(fp+1)]; - f1 = f1+f2; - f2 = heapFloat[(r1+2)]; - f3 = heapFloat[(r0+2)]; - f4 = heapFloat[(r1+1)]; - f5 = heapFloat[(r0+1)]; - f4 = f4+f5; - r0 = r2 >> 2; - f1 = f1*f0; - f2 = f2+f3; - f3 = f4*f0; - heapFloat[(r0)] = f1; - f0 = f2*f0; - heapFloat[(r0+1)] = f3; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; - return; -} - -function _ZNK16btCollisionShape20getAngularMotionDiscEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+3)]; - r2 = sp + -16; - r3 = sp + -20; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = r2 >> 2; - f0 = heapFloat[(fp+-4)]; - f1 = heapFloat[(r0+1)]; - f2 = heapFloat[(r0+2)]; - f0 = f0*f0; - f1 = f1*f1; - f0 = f0+f1; - f1 = f2*f2; - f0 = f0+f1; - heapFloat[(g0)] = f0; - sqrtf(i7); - f1 = heapFloat[(fp+-5)]; - f0 = f_g0+f1; - f_g0 = f0; - return; -} - -function _ZNK16btCollisionShape21calculateTemporalAabbERK11btTransformRK9btVector3S5_fRS3_S6_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+2)]; - r3 = heap32[(fp+5)]; - r4 = heap32[(fp+4)]; - r5 = heap32[(fp+1)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r3; - r5 = heap32[(fp+2)]; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r3 >> 2; - r3 = r4 >> 2; - r4 = r5 >> 2; - f0 = heapFloat[(r4)]; - r5 = heap32[(fp+3)]; - f1 = heapFloat[(r2)]; - f2 = heapFloat[(r2+1)]; - f3 = heapFloat[(r2+2)]; - f4 = heapFloat[(r3)]; - f5 = heapFloat[(r3+1)]; - f6 = heapFloat[(r3+2)]; - f7 = heapFloat[(r4+2)]; - f8 = heapFloat[(r4+1)]; - f9 = 0; - if(f0 <=f9) //_LBB434_2 -{ - f4 = f0+f4; -} -else{ - f1 = f0+f1; -} - if(f8 <=f9) //_LBB434_5 -{ - f5 = f8+f5; -} -else{ - f2 = f8+f2; -} - if(f7 <=f9) //_LBB434_8 -{ - f6 = f7+f6; -} -else{ - f3 = f7+f3; -} - r4 = r5 >> 2; - f0 = heapFloat[(r4)]; - f7 = heapFloat[(r4+1)]; - f8 = heapFloat[(r4+2)]; - f0 = f0*f0; - f7 = f7*f7; - f0 = f0+f7; - f7 = f8*f8; - f0 = f0+f7; - heapFloat[(g0)] = f0; - sqrtf(i7); - f0 = f_g0; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - heapFloat[(r3)] = f4; - heapFloat[(r3+1)] = f5; - heapFloat[(r3+2)] = f6; - heap32[(r3+3)] = 0; - heapFloat[(r2)] = f1; - heapFloat[(r2+1)] = f2; - heapFloat[(r2+2)] = f3; - heap32[(r2+3)] = 0; - f0 = f0*f_g0; - f1 = heapFloat[(r3)]; - f1 = f1-f0; - heapFloat[(r3)] = f1; - f1 = heapFloat[(r3+1)]; - f1 = f1-f0; - heapFloat[(r3+1)] = f1; - f1 = heapFloat[(r3+2)]; - f1 = f1-f0; - heapFloat[(r3+2)] = f1; - f1 = heapFloat[(r2)]; - f1 = f1+f0; - heapFloat[(r2)] = f1; - f1 = heapFloat[(r2+1)]; - f1 = f1+f0; - heapFloat[(r2+1)] = f1; - f1 = heapFloat[(r2+2)]; - f0 = f1+f0; - heapFloat[(r2+2)] = f0; - return; -} - -function _ZN14btConcaveShapeD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV14btConcaveShape; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN14btConcaveShapeD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV14btConcaveShape; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZNK17btConvexHullShape7getNameEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = _2E_str219; - r_g0 = r0; - return; -} - -function _ZNK17btConvexHullShape28calculateSerializeBufferSizeEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 68; - r_g0 = r0; - return; -} - -function _ZNK17btConvexHullShape12getNumPlanesEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZNK17btConvexHullShape9getVertexEiR9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - r2 = heap32[(r0+25)]; - r1 = r1 << 4; - r1 = (r2 + r1)|0; - r1 = r1 >> 2; - r2 = heap32[(fp+2)]; - f0 = heapFloat[(r1+2)]; - f1 = heapFloat[(r0+5)]; - f2 = heapFloat[(r1+1)]; - f3 = heapFloat[(r0+4)]; - f4 = heapFloat[(r1)]; - f5 = heapFloat[(r0+3)]; - r0 = r2 >> 2; - f4 = f4*f5; - f2 = f2*f3; - heapFloat[(r0)] = f4; - f0 = f0*f1; - heapFloat[(r0+1)] = f2; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; - return; -} - -function _ZNK17btConvexHullShape7getEdgeEiR9btVector3S1_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - r2 = heap32[(r0+23)]; - r3 = (r1 % r2)|0; - r4 = heap32[(r0+25)]; - r3 = r3 << 4; - r3 = (r4 + r3)|0; - r3 = r3 >> 2; - r4 = heap32[(fp+2)]; - f0 = heapFloat[(r3+2)]; - f1 = heapFloat[(r0+5)]; - f2 = heapFloat[(r3+1)]; - f3 = heapFloat[(r0+4)]; - f4 = heapFloat[(r3)]; - f5 = heapFloat[(r0+3)]; - r3 = r4 >> 2; - f4 = f4*f5; - f2 = f2*f3; - heapFloat[(r3)] = f4; - f0 = f0*f1; - heapFloat[(r3+1)] = f2; - r1 = (r1 + 1)|0; - heapFloat[(r3+2)] = f0; - heap32[(r3+3)] = 0; - r1 = (r1 % r2)|0; - r2 = heap32[(r0+25)]; - r1 = r1 << 4; - r1 = (r2 + r1)|0; - r1 = r1 >> 2; - r2 = heap32[(fp+3)]; - f0 = heapFloat[(r1+2)]; - f1 = heapFloat[(r0+5)]; - f2 = heapFloat[(r1+1)]; - f3 = heapFloat[(r0+4)]; - f4 = heapFloat[(r1)]; - f5 = heapFloat[(r0+3)]; - r0 = r2 >> 2; - f4 = f4*f5; - f2 = f2*f3; - heapFloat[(r0)] = f4; - f0 = f0*f1; - heapFloat[(r0+1)] = f2; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; - return; -} - -function _ZNK17btConvexHullShape11getNumEdgesEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+23)]; - r_g0 = r0; - return; -} - -function _ZNK17btConvexHullShape14getNumVerticesEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+23)]; - r_g0 = r0; - return; -} - -function _ZNK17btConvexHullShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+3)]; - r1 = heap32[(fp+2)]; -if(!(r0 <1)) //_LBB444_3 -{ - r2 = (r1 + 12)|0; - r3 = r0; -_3: while(true){ - r3 = (r3 + -1)|0; - r4 = (r2 + 16)|0; - r2 = r2 >> 2; - heap32[(r2)] = -581039253; - r2 = r4; - if(r3 !=0) //_LBB444_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - r2 = heap32[(fp)]; - r2 = r2 >> 2; - r3 = heap32[(r2+23)]; -_6: do { -if(!(r3 <1)) //_LBB444_11 -{ - r3 = heap32[(fp+1)]; - r1 = (r1 + 8)|0; - r3 = (r3 + 8)|0; - r4 = 0; -_8: while(true){ -if(!(r0 <1)) //_LBB444_10 -{ - r5 = heap32[(r2+25)]; - r6 = r4 << 4; - r5 = (r5 + r6)|0; - r5 = r5 >> 2; - f0 = heapFloat[(r5+2)]; - f1 = heapFloat[(r2+5)]; - f2 = heapFloat[(r5+1)]; - f3 = heapFloat[(r2+4)]; - f4 = heapFloat[(r5)]; - f5 = heapFloat[(r2+3)]; - f0 = f0*f1; - f1 = f2*f3; - f2 = f4*f5; - r5 = r3; - r6 = r1; - r7 = r0; -_12: while(true){ - r8 = r5 >> 2; - f3 = heapFloat[(r8+-2)]; - f4 = heapFloat[(r8+-1)]; - f3 = f3*f2; - f4 = f4*f1; - f5 = heapFloat[(r8)]; - f3 = f3+f4; - f4 = f5*f0; - r8 = r6 >> 2; - f3 = f3+f4; - f4 = heapFloat[(r8+1)]; -if(!(f4 >=f3)) //_LBB444_9 -{ - heapFloat[(r8+-2)] = f2; - heapFloat[(r8+-1)] = f1; - heapFloat[(r8)] = f0; - heapFloat[(r8+1)] = f3; -} - r7 = (r7 + -1)|0; - r6 = (r6 + 16)|0; - r5 = (r5 + 16)|0; -if(!(r7 !=0)) //_LBB444_7 -{ -break _12; -} -} -} - r4 = (r4 + 1)|0; - r5 = heap32[(r2+23)]; - if(r5 >r4) //_LBB444_5 -{ -continue _8; -} -else{ -break _6; -} -} -} -} while(0); - return; -} - -function _ZNK17btConvexHullShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - heap32[(r0)] = 0; - heap32[(r0+1)] = 0; - r1 = heap32[(fp+1)]; - heap32[(r0+2)] = 0; - r1 = r1 >> 2; - heap32[(r0+3)] = 0; - r2 = heap32[(r1+23)]; -if(!(r2 <1)) //_LBB445_6 -{ - r3 = heap32[(fp+2)]; - r3 = r3 >> 2; - r4 = heap32[(r1+25)]; - f0 = heapFloat[(r1+5)]; - f1 = heapFloat[(r1+4)]; - f2 = heapFloat[(r1+3)]; - f3 = heapFloat[(r3)]; - f4 = heapFloat[(r3+1)]; - f5 = heapFloat[(r3+2)]; - r1 = 0; - f6 = -999999984306749440; -_3: while(true){ - r3 = r1 << 4; - r3 = (r4 + r3)|0; - r3 = r3 >> 2; - f7 = heapFloat[(r3+1)]; - f8 = heapFloat[(r3)]; - f7 = f7*f1; - f8 = f8*f2; - f9 = heapFloat[(r3+2)]; - f9 = f9*f0; - f10 = f3*f8; - f11 = f4*f7; - f10 = f10+f11; - f11 = f5*f9; - f10 = f10+f11; - if(f10 >f6) //_LBB445_4 -{ - heapFloat[(r0)] = f8; - heapFloat[(r0+1)] = f7; - heapFloat[(r0+2)] = f9; - heap32[(r0+3)] = 0; - f6 = f10; -} - r1 = (r1 + 1)|0; - if(r1 >2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = _2E_str10; - r1 = _2E_str3222; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 173; - _assert(i7); -} - -function _ZNK17btConvexHullShape8getPlaneER9btVector3S1_i(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = _2E_str10; - r1 = _2E_str3222; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 167; - _assert(i7); -} - -function _ZN17btConvexHullShapeD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV17btConvexHullShape; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+25)]; -if(!(r1 ==0)) //_LBB448_4 -{ - r3 = heapU8[r0+104]; -if(!(r3 ==0)) //_LBB448_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+25)] = 0; -} - r1 = 1; - heap8[r0+104] = r1; - heap32[(r2+25)] = 0; - r1 = _ZTV13btConvexShape; - heap32[(r2+23)] = 0; - r1 = (r1 + 8)|0; - heap32[(r2+24)] = 0; - heap32[(r2)] = r1; -if(!(r0 ==0)) //_LBB448_6 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZN17btConvexHullShapeD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV17btConvexHullShape; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+25)]; -if(!(r1 ==0)) //_LBB449_4 -{ - r3 = heapU8[r0+104]; -if(!(r3 ==0)) //_LBB449_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+25)] = 0; -} - r1 = 1; - heap8[r0+104] = r1; - heap32[(r2+25)] = 0; - r0 = _ZTV13btConvexShape; - heap32[(r2+23)] = 0; - r0 = (r0 + 8)|0; - heap32[(r2+24)] = 0; - heap32[(r2)] = r0; - return; -} - -function _ZN17btConvexHullShape15setLocalScalingERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = r0 >> 2; - r1 = r1 >> 2; - heap32[(r2+3)] = heap32[(r1)]; - heap32[(r2+4)] = heap32[(r1+1)]; - heap32[(r2+5)] = heap32[(r1+2)]; - heap32[(r2+6)] = heap32[(r1+3)]; - heap32[(g0)] = r0; - _ZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEv(i7); - return; -} - -function _ZNK17btConvexHullShape9serializeEPvP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+10)]; - r3 = heap32[(fp)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+7)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - r5 = heap32[(fp+1)]; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r_g0; - r5 = r5 >> 2; - heap32[(r5)] = r4; -if(!(r4 ==0)) //_LBB451_2 -{ - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+12)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r4)>>2](i7); -} - r2 = r3 >> 2; - r3 = heap32[(r2+1)]; - heap32[(r5+1)] = r3; - heap32[(r5+7)] = heap32[(r2+7)]; - heap32[(r5+8)] = heap32[(r2+8)]; - heap32[(r5+9)] = heap32[(r2+9)]; - heap32[(r5+10)] = heap32[(r2+10)]; - heap32[(r5+3)] = heap32[(r2+3)]; - heap32[(r5+4)] = heap32[(r2+4)]; - heap32[(r5+5)] = heap32[(r2+5)]; - heap32[(r5+6)] = heap32[(r2+6)]; - heap32[(r5+11)] = heap32[(r2+11)]; - r3 = heap32[(r2+23)]; - heap32[(r5+15)] = r3; - if(r3 ==0) //_LBB451_7 -{ - heap32[(r5+13)] = 0; - heap32[(r5+14)] = 0; - r0 = _2E_str6224; - r_g0 = r0; - return; -} -else{ - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+7)]; - r6 = heap32[(r2+25)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r6; - __FUNCTION_TABLE__[(r4)>>2](i7); - heap32[(r5+13)] = r_g0; - heap32[(r5+14)] = 0; - r5 = heap32[(r1)]; - r5 = r5 >> 2; - r5 = heap32[(r5+4)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = 16; - heap32[(g0+2)] = r3; - __FUNCTION_TABLE__[(r5)>>2](i7); - r5 = r_g0; -if(!(r3 <1)) //_LBB451_6 -{ - r4 = r5 >> 2; - r4 = heap32[(r4+2)]; - r6 = 0; -_9: while(true){ - r7 = r6 << 4; - r8 = heap32[(r2+25)]; - r9 = (r4 + r7)|0; - r7 = (r8 + r7)|0; - r8 = r9 >> 2; - r7 = r7 >> 2; - heap32[(r8)] = heap32[(r7)]; - heap32[(r8+1)] = heap32[(r7+1)]; - r6 = (r6 + 1)|0; - heap32[(r8+2)] = heap32[(r7+2)]; - heap32[(r8+3)] = heap32[(r7+3)]; -if(!(r3 !=r6)) //_LBB451_5 -{ -break _9; -} -} -} - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - r2 = heap32[(r2+25)]; - r3 = _2E_str5223; - heap32[(g0)] = r0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = 1497453121; - heap32[(g0+4)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); - r5 = _2E_str6224; - r_g0 = r5; - return; -} -} - -function _ZNK17btConvexHullShape24localGetSupportingVertexERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+16)]; - r3 = heap32[(fp)]; - r4 = heap32[(fp+2)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f0 = f_g0; - f1 = 0; -if(!(f0 ==f1)) //_LBB452_2 -{ - r2 = r4 >> 2; - f0 = heapFloat[(r2)]; - f1 = heapFloat[(r2+1)]; - f2 = heapFloat[(r2+2)]; - f3 = f0*f0; - f4 = f1*f1; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - f4 = 1.4210854715202004e-014; - f5 = -1; - f0 = f3 < f4 ? f5 : f0; - f1 = f3 < f4 ? f5 : f1; - f2 = f3 < f4 ? f5 : f2; - f3 = f0*f0; - f4 = f1*f1; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - heapFloat[(g0)] = f3; - sqrtf(i7); - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+11)]; - f4 = 1; - f3 = f4/f_g0; - heap32[(g0)] = r0; - r0 = r3 >> 2; - __FUNCTION_TABLE__[(r1)>>2](i7); - f0 = f0*f3; - f0 = f0*f_g0; - f5 = heapFloat[(r0)]; - f0 = f5+f0; - f1 = f1*f3; - heapFloat[(r0)] = f0; - f0 = f1*f_g0; - f1 = heapFloat[(r0+1)]; - f0 = f1+f0; - f1 = f2*f3; - heapFloat[(r0+1)] = f0; - f0 = f1*f_g0; - f1 = heapFloat[(r0+2)]; - f0 = f1+f0; - heapFloat[(r0+2)] = f0; -} - return; -} - -function _ZN17btConvexHullShape8addPointERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+24)]; - r3 = heap32[(r1+23)]; - r4 = heap32[(fp+1)]; - if(r2 ==r3) //_LBB453_2 -{ - r5 = 1; - r6 = r3 << 1; - r6 = r3 == 0 ? r5 : r6; -if(!(r2 >=r6)) //_LBB453_1 -{ - if(r6 !=0) //_LBB453_5 -{ - r2 = gNumAlignedAllocs; - r2 = r2 >> 2; - r7 = heap32[(r2)]; - r8 = r6 << 4; - r7 = (r7 + 1)|0; - r8 = r8 | 3; - heap32[(r2)] = r7; - r2 = (r8 + 16)|0; - heap32[(g0)] = r2; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB453_7 -{ - r7 = 0; - r8 = (r2 + 4)|0; - r7 = (r7 - r8)|0; - r7 = r7 & 15; - r7 = (r2 + r7)|0; - r8 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r2; - r2 = r8; -} -} -else{ - r2 = 0; -} - r7 = (r0 + 100)|0; - if(r3 <1) //_LBB453_10 -{ - r8 = r7 >> 2; - r9 = heap32[(r8)]; -} -else{ - r8 = 0; -_12: while(true){ - r9 = r7 >> 2; - r9 = heap32[(r9)]; - r10 = r8 << 4; - r11 = (r2 + r10)|0; - r10 = (r9 + r10)|0; - r11 = r11 >> 2; - r10 = r10 >> 2; - heap32[(r11)] = heap32[(r10)]; - heap32[(r11+1)] = heap32[(r10+1)]; - r8 = (r8 + 1)|0; - heap32[(r11+2)] = heap32[(r10+2)]; - heap32[(r11+3)] = heap32[(r10+3)]; -if(!(r3 !=r8)) //_LBB453_11 -{ -break _12; -} -} - r7 = (r0 + 100)|0; -} - if(r9 !=0) //_LBB453_15 -{ - r8 = heapU8[r0+104]; - if(r8 !=0) //_LBB453_17 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r8 = heap32[(r3)]; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r3)] = r8; - r3 = heap32[(r9+-1)]; - heap32[(g0)] = r3; - free(i7); - r3 = heap32[(r1+23)]; -} - r8 = r7 >> 2; - heap32[(r8)] = 0; -} - r7 = r7 >> 2; - heap8[r0+104] = r5; - heap32[(r7)] = r2; - heap32[(r1+24)] = r6; -} -} - r2 = r3 << 4; - r3 = heap32[(r1+25)]; - r2 = (r3 + r2)|0; - r2 = r2 >> 2; - r3 = r4 >> 2; - heap32[(r2)] = heap32[(r3)]; - heap32[(r2+1)] = heap32[(r3+1)]; - heap32[(r2+2)] = heap32[(r3+2)]; - heap32[(r2+3)] = heap32[(r3+3)]; - r2 = heap32[(r1+23)]; - r2 = (r2 + 1)|0; - heap32[(r1+23)] = r2; - heap32[(g0)] = r0; - _ZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEv(i7); - return; -} - -function _ZN20btAlignedObjectArrayI9btVector3E6resizeEiRKS0_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+1)]; - r3 = heap32[(fp+1)]; -_1: do { -if(!(r2 >r3)) //_LBB454_20 -{ -if(!(r2 >=r3)) //_LBB454_20 -{ - r4 = heap32[(r1+2)]; -if(!(r4 >=r3)) //_LBB454_18 -{ - if(r3 !=0) //_LBB454_5 -{ - r4 = gNumAlignedAllocs; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r6 = r3 << 4; - r5 = (r5 + 1)|0; - r6 = r6 | 3; - heap32[(r4)] = r5; - r4 = (r6 + 16)|0; - heap32[(g0)] = r4; - malloc(i7); - r4 = r_g0; - if(r4 !=0) //_LBB454_7 -{ - r5 = 0; - r6 = (r4 + 4)|0; - r5 = (r5 - r6)|0; - r5 = r5 & 15; - r5 = (r4 + r5)|0; - r6 = (r5 + 4)|0; - r5 = r5 >> 2; - heap32[(r5)] = r4; - r4 = r6; -} -} -else{ - r4 = 0; -} - r5 = (r0 + 12)|0; - if(r2 <1) //_LBB454_10 -{ - r6 = r5 >> 2; - r7 = heap32[(r6)]; -} -else{ - r6 = 0; -_14: while(true){ - r7 = r5 >> 2; - r7 = heap32[(r7)]; - r8 = r6 << 4; - r9 = (r4 + r8)|0; - r8 = (r7 + r8)|0; - r9 = r9 >> 2; - r8 = r8 >> 2; - heap32[(r9)] = heap32[(r8)]; - heap32[(r9+1)] = heap32[(r8+1)]; - r6 = (r6 + 1)|0; - heap32[(r9+2)] = heap32[(r8+2)]; - heap32[(r9+3)] = heap32[(r8+3)]; -if(!(r2 !=r6)) //_LBB454_11 -{ -break _14; -} -} - r5 = (r0 + 12)|0; -} -if(!(r7 ==0)) //_LBB454_17 -{ - r6 = heapU8[r0+16]; -if(!(r6 ==0)) //_LBB454_16 -{ - r6 = gNumAlignedFree; - r6 = r6 >> 2; - r8 = heap32[(r6)]; - r8 = (r8 + 1)|0; - r7 = r7 >> 2; - heap32[(r6)] = r8; - r6 = heap32[(r7+-1)]; - heap32[(g0)] = r6; - free(i7); -} - r6 = r5 >> 2; - heap32[(r6)] = 0; -} - r6 = 1; - r5 = r5 >> 2; - heap8[r0+16] = r6; - heap32[(r5)] = r4; - heap32[(r1+2)] = r3; - if(r2 >=r3) //_LBB454_20 -{ -break _1; -} -} - r0 = heap32[(fp+2)]; -_25: while(true){ - r4 = r2 << 4; - r5 = heap32[(r1+3)]; - r4 = (r5 + r4)|0; - r4 = r4 >> 2; - r5 = r0 >> 2; - heap32[(r4)] = heap32[(r5)]; - heap32[(r4+1)] = heap32[(r5+1)]; - r2 = (r2 + 1)|0; - heap32[(r4+2)] = heap32[(r5+2)]; - heap32[(r4+3)] = heap32[(r5+3)]; - if(r3 !=r2) //_LBB454_19 -{ -continue _25; -} -else{ -break _1; -} -} -} -} -} while(0); - heap32[(r1+1)] = r3; - return; -} - -function _ZN17btConvexHullShapeC1EPKfii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - heap32[(r1+2)] = 0; - heap32[(r1+3)] = 1065353216; - heap32[(r1+4)] = 1065353216; - heap32[(r1+5)] = 1065353216; - heap32[(r1+6)] = 0; - heap32[(r1+11)] = 1025758986; - heap32[(r1+13)] = 1065353216; - heap32[(r1+14)] = 1065353216; - heap32[(r1+15)] = 1065353216; - heap32[(r1+16)] = 0; - heap32[(r1+17)] = -1082130432; - heap32[(r1+18)] = -1082130432; - heap32[(r1+19)] = -1082130432; - r2 = _ZTV17btConvexHullShape; - r3 = 0; - heap32[(r1+20)] = 0; - r2 = (r2 + 8)|0; - heap8[r0+84] = r3; - r4 = 1; - heap32[(r1)] = r2; - heap8[r0+104] = r4; - heap32[(r1+25)] = 0; - heap32[(r1+23)] = 0; - heap32[(r1+24)] = 0; - heap32[(r1+1)] = 4; - r2 = heap32[(fp+2)]; - r4 = (r0 + 88)|0; - r5 = sp + -16; - heap32[(g0)] = r4; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r5; - _ZN20btAlignedObjectArrayI9btVector3E6resizeEiRKS0_(i7); -if(!(r2 <1)) //_LBB455_3 -{ - r4 = heap32[(fp+1)]; -_3: while(true){ - r5 = r3 << 4; - r6 = (r4 + r5)|0; - r6 = r6 >> 2; - r7 = heap32[(r1+25)]; - r5 = (r7 + r5)|0; - f0 = heapFloat[(r6+2)]; - f1 = heapFloat[(r6+1)]; - r5 = r5 >> 2; - heap32[(r5)] = heap32[(r6)]; - heapFloat[(r5+1)] = f1; - r3 = (r3 + 1)|0; - heapFloat[(r5+2)] = f0; - heap32[(r5+3)] = 0; - if(r2 !=r3) //_LBB455_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - heap32[(g0)] = r0; - _ZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEv(i7); - return; -} - -function _ZN21btConvexInternalShape15setLocalScalingERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; - var f1; - var f2; - var f3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0+2)]; - r1 = heap32[(fp)]; - f1 = 0; - if(f0 > 2; - heapFloat[(r0+3)] = f3; - heapFloat[(r0+4)] = f2; - heapFloat[(r0+5)] = f0; - heap32[(r0+6)] = 0; - return; -} - -function _ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; -var __label__ = 0; - i7 = sp + -112;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - r5 = heap32[(fp+3)]; - r6 = 0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f0 = f_g0; -_1: while(true){ - r2 = sp + -64; - r7 = r2 >> 2; - heap32[(fp+-16)] = 0; - heap32[(r7+1)] = 0; - r8 = r6 << 2; - r2 = (r2 - r8)|0; - heap32[(r7+2)] = 0; - r2 = r2 >> 2; - heap32[(r7+3)] = 0; - heap32[(r2)] = 1065353216; - r9 = r3 >> 2; - r10 = heap32[(r1)]; - f1 = heapFloat[(fp+-16)]; - f2 = heapFloat[(r9)]; - f3 = heapFloat[(r7+1)]; - f4 = heapFloat[(r9+4)]; - r10 = r10 >> 2; - f5 = heapFloat[(r9+1)]; - f6 = heapFloat[(r9+5)]; - f2 = f2*f1; - f4 = f4*f3; - f7 = heapFloat[(r7+2)]; - f8 = heapFloat[(r9+8)]; - f9 = heapFloat[(r9+2)]; - f10 = heapFloat[(r9+6)]; - f11 = heapFloat[(r9+10)]; - f12 = heapFloat[(r9+9)]; - r10 = heap32[(r10+15)]; - f5 = f5*f1; - f6 = f6*f3; - f2 = f2+f4; - f4 = f8*f7; - r11 = sp + -48; - f1 = f9*f1; - f3 = f10*f3; - f5 = f5+f6; - f6 = f12*f7; - f2 = f2+f4; - r12 = r11 >> 2; - f1 = f1+f3; - f3 = f11*f7; - f4 = f5+f6; - heapFloat[(fp+-12)] = f2; - f1 = f1+f3; - heapFloat[(r12+1)] = f4; - heapFloat[(r12+2)] = f1; - heap32[(r12+3)] = 0; - r12 = sp + -80; - heap32[(g0)] = r12; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r11; - __FUNCTION_TABLE__[(r10)>>2](i7); - r10 = r12 >> 2; - f1 = heapFloat[(fp+-20)]; - f2 = heapFloat[(r9)]; - f3 = heapFloat[(r10+1)]; - f4 = heapFloat[(r9+1)]; - f5 = heapFloat[(r9+4)]; - f6 = heapFloat[(r9+5)]; - f2 = f2*f1; - f4 = f4*f3; - f7 = heapFloat[(r10+2)]; - f8 = heapFloat[(r9+2)]; - f9 = heapFloat[(r9+8)]; - f10 = heapFloat[(r9+9)]; - f11 = heapFloat[(r9+6)]; - f5 = f5*f1; - f6 = f6*f3; - f2 = f2+f4; - f4 = f8*f7; - f8 = heapFloat[(r9+10)]; - f1 = f9*f1; - f3 = f10*f3; - f5 = f5+f6; - f6 = f11*f7; - f2 = f2+f4; - f4 = heapFloat[(r9+12)]; - f9 = heapFloat[(r9+14)]; - f10 = heapFloat[(r9+13)]; - r10 = sp + -96; - f5 = f5+f6; - f1 = f1+f3; - f3 = f8*f7; - f2 = f2+f4; - f1 = f1+f3; - f3 = f5+f10; - heapFloat[(fp+-24)] = f2; - r11 = r10 >> 2; - f1 = f1+f9; - heapFloat[(r11+1)] = f3; - heapFloat[(r11+2)] = f1; - r10 = (r10 - r8)|0; - heap32[(r11+3)] = 0; - r10 = r10 >> 2; - r12 = (r5 - r8)|0; - f1 = heapFloat[(r10)]; - r12 = r12 >> 2; - f1 = f1+f0; - heapFloat[(r12)] = f1; - heap32[(r2)] = -1082130432; - r2 = heap32[(r1)]; - f1 = heapFloat[(fp+-16)]; - f2 = heapFloat[(r9)]; - f3 = heapFloat[(r7+1)]; - f4 = heapFloat[(r9+4)]; - r2 = r2 >> 2; - f5 = heapFloat[(r9+1)]; - f6 = heapFloat[(r9+5)]; - f2 = f2*f1; - f4 = f4*f3; - f7 = heapFloat[(r7+2)]; - f8 = heapFloat[(r9+8)]; - f9 = heapFloat[(r9+2)]; - f10 = heapFloat[(r9+6)]; - f11 = heapFloat[(r9+10)]; - f12 = heapFloat[(r9+9)]; - r2 = heap32[(r2+15)]; - f5 = f5*f1; - f6 = f6*f3; - f2 = f2+f4; - f4 = f8*f7; - r7 = sp + -16; - f1 = f9*f1; - f3 = f10*f3; - f5 = f5+f6; - f6 = f12*f7; - f2 = f2+f4; - r12 = r7 >> 2; - f1 = f1+f3; - f3 = f11*f7; - f4 = f5+f6; - heapFloat[(fp+-4)] = f2; - f1 = f1+f3; - heapFloat[(r12+1)] = f4; - heapFloat[(r12+2)] = f1; - heap32[(r12+3)] = 0; - r12 = sp + -32; - heap32[(g0)] = r12; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r7; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r12 >> 2; - f1 = heapFloat[(fp+-8)]; - f2 = heapFloat[(r9)]; - f3 = heapFloat[(r2+1)]; - f4 = heapFloat[(r9+1)]; - f5 = heapFloat[(r9+4)]; - f6 = heapFloat[(r9+5)]; - f2 = f2*f1; - f4 = f4*f3; - f7 = heapFloat[(r2+2)]; - f8 = heapFloat[(r9+2)]; - f9 = heapFloat[(r9+8)]; - f10 = heapFloat[(r9+9)]; - f11 = heapFloat[(r9+6)]; - f5 = f5*f1; - f6 = f6*f3; - f2 = f2+f4; - f4 = f8*f7; - f8 = heapFloat[(r9+10)]; - f1 = f9*f1; - f3 = f10*f3; - f5 = f5+f6; - f6 = f11*f7; - f2 = f2+f4; - f4 = heapFloat[(r9+12)]; - f9 = heapFloat[(r9+14)]; - f10 = heapFloat[(r9+13)]; - f5 = f5+f6; - f1 = f1+f3; - f3 = f8*f7; - f2 = f2+f4; - f1 = f1+f3; - f3 = f5+f10; - heapFloat[(fp+-24)] = f2; - f1 = f1+f9; - heapFloat[(r11+1)] = f3; - heapFloat[(r11+2)] = f1; - heap32[(r11+3)] = 0; - r2 = (r4 - r8)|0; - f1 = heapFloat[(r10)]; - r6 = (r6 + -1)|0; - r2 = r2 >> 2; - f1 = f1-f0; - heapFloat[(r2)] = f1; - if(r6 !=-3) //_LBB457_1 -{ -continue _1; -} -else{ -break _1; -} -} - return; -} - -function _ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+16)]; - r3 = heap32[(fp)]; - r4 = heap32[(fp+2)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f0 = f_g0; - f1 = 0; -if(!(f0 ==f1)) //_LBB458_2 -{ - r2 = r4 >> 2; - f0 = heapFloat[(r2)]; - f1 = heapFloat[(r2+1)]; - f2 = heapFloat[(r2+2)]; - f3 = f0*f0; - f4 = f1*f1; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - f4 = 1.4210854715202004e-014; - f5 = -1; - f0 = f3 < f4 ? f5 : f0; - f1 = f3 < f4 ? f5 : f1; - f2 = f3 < f4 ? f5 : f2; - f3 = f0*f0; - f4 = f1*f1; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - heapFloat[(g0)] = f3; - sqrtf(i7); - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+11)]; - f4 = 1; - f3 = f4/f_g0; - heap32[(g0)] = r0; - r0 = r3 >> 2; - __FUNCTION_TABLE__[(r1)>>2](i7); - f0 = f0*f3; - f0 = f0*f_g0; - f5 = heapFloat[(r0)]; - f0 = f5+f0; - f1 = f1*f3; - heapFloat[(r0)] = f0; - f0 = f1*f_g0; - f1 = heapFloat[(r0+1)]; - f0 = f1+f0; - f1 = f2*f3; - heapFloat[(r0+1)] = f0; - f0 = f1*f_g0; - f1 = heapFloat[(r0+2)]; - f0 = f1+f0; - heapFloat[(r0+2)] = f0; -} - return; -} - -function _ZN13btConvexShapeD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV13btConvexShape; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN13btConvexShapeD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV13btConvexShape; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; -if(!(r0 ==0)) //_LBB460_2 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZL17convexHullSupportRK9btVector3PS0_iS1_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+5)]; -if(!(r0 <1)) //_LBB461_4 -{ - f0 = heapFloat[(fp+8)]; - f1 = heapFloat[(fp+3)]; - f2 = heapFloat[(fp+7)]; - f3 = heapFloat[(fp+2)]; - f4 = heapFloat[(fp+6)]; - f5 = heapFloat[(fp+1)]; - r1 = heap32[(fp)]; - r2 = heap32[(fp+4)]; - f1 = f1*f0; - f3 = f3*f2; - f5 = f5*f4; - r3 = 0; - r4 = -1; - f6 = -999999984306749440; -_3: while(true){ - r5 = r3 << 4; - r5 = (r2 + r5)|0; - r5 = r5 >> 2; - f7 = heapFloat[(r5)]; - f8 = heapFloat[(r5+1)]; - f7 = f5*f7; - f8 = f3*f8; - f9 = heapFloat[(r5+2)]; - f7 = f7+f8; - f8 = f1*f9; - f7 = f7+f8; - r5 = (r3 + 1)|0; - r4 = f7 > f6 ? r3 : r4; - f6 = f7 > f6 ? f7 : f6; - r3 = r5; -if(!(r0 !=r5)) //_LBB461_2 -{ -break _3; -} -} - if(r4 >-1) //_LBB461_5 -{ - r0 = r4 << 4; - r0 = (r2 + r0)|0; - r0 = r0 >> 2; - f1 = heapFloat[(r0)]; - f3 = heapFloat[(r0+2)]; - f5 = heapFloat[(r0+1)]; - r0 = r1 >> 2; - f1 = f1*f4; - f2 = f5*f2; - heapFloat[(r0)] = f1; - f0 = f3*f0; - heapFloat[(r0+1)] = f2; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; - return; -} -} - r1 = _2E_str6249; - r2 = _2E_str7250; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 108; - _assert(i7); -} - -function _ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; -var __label__ = 0; - i7 = sp + -120;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(r1+1)]; - r3 = heap32[(fp)]; - r4 = heap32[(fp+2)]; -_1: do { - if(r2 >4) //_LBB462_4 -{ - if(r2 >9) //_LBB462_7 -{ - if(r2 ==10) //_LBB462_32 -{ - r2 = heap32[(r1+13)]; - r5 = (r2 + 2)|0; - r4 = r4 >> 2; - r5 = (r5 % 3)|0; - f0 = heapFloat[(r4)]; - f1 = heapFloat[(r4+1)]; - r2 = r2 << 2; - r0 = (r0 + 28)|0; - r5 = r5 << 2; - f2 = heapFloat[(r4+2)]; - r4 = (r0 + r2)|0; - r0 = (r0 + r5)|0; - f3 = f0*f0; - f4 = f1*f1; - r4 = r4 >> 2; - r0 = r0 >> 2; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - f4 = heapFloat[(r4)]; - f5 = heapFloat[(r0)]; - f6 = 9.9999997473787516e-005; - if(f3 >=f6) //_LBB462_34 -{ - heapFloat[(g0)] = f3; - f3 = 1; - sqrtf(i7); - f3 = f3/f_g0; - f0 = f0*f3; - f1 = f1*f3; - f2 = f2*f3; -} -else{ - f0 = 1; - f1 = 0; - f2 = f1; -} - r0 = sp + -64; - r4 = r0 >> 2; - heap32[(fp+-16)] = 0; - heap32[(r4+1)] = 0; - r0 = (r0 + r2)|0; - heap32[(r4+2)] = 0; - r0 = r0 >> 2; - heap32[(r4+3)] = 0; - heapFloat[(r0)] = f4; - f3 = heapFloat[(r1+4)]; - f6 = heapFloat[(r1+3)]; - f7 = heapFloat[(r1+5)]; - f3 = f1*f3; - f6 = f0*f6; - f8 = heapFloat[(r1+11)]; - f7 = f2*f7; - f3 = f3*f5; - f9 = heapFloat[(r4+1)]; - f6 = f6*f5; - f10 = heapFloat[(fp+-16)]; - f5 = f7*f5; - f7 = heapFloat[(r4+2)]; - f11 = f1*f8; - f9 = f9+f3; - f12 = f0*f8; - f10 = f10+f6; - f9 = f9-f11; - f10 = f10-f12; - f8 = f2*f8; - f7 = f7+f5; - f7 = f7-f8; - f13 = f0*f10; - f14 = f1*f9; - f13 = f13+f14; - f14 = f2*f7; - f13 = f13+f14; - f14 = -999999984306749440; - if(f13 >f14) //_LBB462_37 -{ - f14 = f13; -} -else{ - f10 = 0; - f9 = f10; - f7 = f10; -} - r0 = sp + -80; - r1 = r0 >> 2; - heap32[(fp+-20)] = 0; - heap32[(r1+1)] = 0; - r0 = (r0 + r2)|0; - heap32[(r1+2)] = 0; - r0 = r0 >> 2; - f4 = -f4; - heap32[(r1+3)] = 0; - heapFloat[(r0)] = f4; - f4 = heapFloat[(r1+1)]; - f13 = heapFloat[(fp+-20)]; - f15 = heapFloat[(r1+2)]; - f3 = f4+f3; - f4 = f13+f6; - f4 = f4-f12; - f3 = f3-f11; - f5 = f15+f5; - f0 = f0*f4; - f1 = f1*f3; - f5 = f5-f8; - f0 = f0+f1; - f1 = f2*f5; - f0 = f0+f1; - r0 = r3 >> 2; - f1 = f0 > f14 ? f4 : f10; - f2 = f0 > f14 ? f3 : f9; - heapFloat[(r0)] = f1; - f0 = f0 > f14 ? f5 : f7; -__label__ = 11; -break _1; -} -else{ - if(r2 ==13) //_LBB462_16 -{ - r0 = sp + -16; - r2 = r0 >> 2; - heap32[(fp+-4)] = heap32[(r1+7)]; - heap32[(r2+1)] = heap32[(r1+8)]; - heap32[(r2+2)] = heap32[(r1+9)]; - r4 = r4 >> 2; - heap32[(r2+3)] = heap32[(r1+10)]; - r2 = sp + -32; - heap32[(fp+-8)] = heap32[(r4)]; - f0 = heapFloat[(r4+1)]; - r5 = r2 >> 2; - heapFloat[(r5+1)] = f0; - f1 = heapFloat[(r4+2)]; - heapFloat[(r5+2)] = f1; - heap32[(r5+3)] = 0; - r1 = heap32[(r1+13)]; - if(r1 ==2) //_LBB462_21 -{ - r4 = 0; - r5 = 2; - r6 = 1; - f1 = f0; -} -else{ - if(r1 ==1) //_LBB462_20 -{ - r4 = 0; - r5 = 1; - r6 = 2; -} -else{ - if(r1 !=0) //_LBB462_22 -{ - r0 = _2E_str10; - r1 = _2E_str7250; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 175; - _assert(i7); -} -else{ - r4 = 1; - r5 = 0; - r6 = 2; -} -} -} - r1 = r1 << 2; - r4 = r4 << 2; - r7 = (r0 + r4)|0; - r0 = (r0 + r1)|0; - r1 = (r2 + r4)|0; - r7 = r7 >> 2; - r0 = r0 >> 2; - r1 = r1 >> 2; - f0 = heapFloat[(r1)]; - f2 = heapFloat[(r7)]; - f3 = heapFloat[(r0)]; - f4 = f0*f0; - f5 = f1*f1; - f4 = f4+f5; - heapFloat[(g0)] = f4; - sqrtf(i7); - f4 = f_g0; - f5 = 0; - if(f4 ==f5) //_LBB462_28 -{ - r0 = sp + -48; - r1 = (r0 + r4)|0; - r4 = r5 << 2; - r2 = (r2 + r4)|0; - r1 = r1 >> 2; - r2 = r2 >> 2; - heapFloat[(r1)] = f2; - f0 = heapFloat[(r2)]; - if(f0 > 2; - r1 = r1 >> 2; - heapFloat[(r4)] = f3; - r3 = r3 >> 2; - heap32[(r1)] = 0; - r0 = r0 >> 2; - heap32[(r3)] = heap32[(fp+-12)]; - heap32[(r3+1)] = heap32[(r0+1)]; - heap32[(r3+2)] = heap32[(r0+2)]; - heap32[(r3+3)] = 0; - return; -} -else{ - r0 = sp + -48; - r4 = (r0 + r4)|0; - f2 = f2/f4; - r1 = r5 << 2; - r2 = (r2 + r1)|0; - r4 = r4 >> 2; - f0 = f0*f2; - r2 = r2 >> 2; - heapFloat[(r4)] = f0; - f0 = heapFloat[(r2)]; - if(f0 > 2; - r4 = r4 >> 2; - f2 = f1*f2; - heapFloat[(r1)] = f3; - r1 = r3 >> 2; - heapFloat[(r4)] = f2; - r4 = r0 >> 2; - heap32[(r1)] = heap32[(fp+-12)]; - heap32[(r1+1)] = heap32[(r4+1)]; - heap32[(r1+2)] = heap32[(r4+2)]; - heap32[(r1+3)] = 0; - return; -} -} -else{ -__label__ = 40; -break _1; -} -} -} -else{ - if(r2 ==5) //_LBB462_39 -{ - r0 = r4 >> 2; - f0 = heapFloat[(r1+5)]; - r4 = heap32[(r1+22)]; -__label__ = 38; -break _1; -} -else{ - if(r2 ==8) //_LBB462_9 -{ - r0 = r3 >> 2; - heap32[(r0)] = 0; - heap32[(r0+1)] = 0; - heap32[(r0+2)] = 0; - heap32[(r0+3)] = 0; - return; -} -else{ -__label__ = 40; -break _1; -} -} -} -} -else{ - if(r2 ==0) //_LBB462_10 -{ - r0 = r4 >> 2; - f0 = heapFloat[(r1+7)]; - f1 = heapFloat[(r1+9)]; - f2 = heapFloat[(r1+8)]; - f3 = 0; - f4 = -f0; - f5 = heapFloat[(r0)]; - f6 = heapFloat[(r0+2)]; - f7 = heapFloat[(r0+1)]; - f8 = -f2; - r0 = r3 >> 2; - f0 = f5 < f3 ? f4 : f0; - f4 = -f1; - f2 = f7 < f3 ? f8 : f2; - heapFloat[(r0)] = f0; - f0 = f6 < f3 ? f4 : f1; -__label__ = 11; -break _1; -} -else{ - if(r2 ==1) //_LBB462_12 -{ - r4 = r4 >> 2; - f0 = heapFloat[(r1+13)]; - f1 = heapFloat[(r4)]; - f2 = heapFloat[(r1+17)]; - f3 = heapFloat[(r1+21)]; - f4 = heapFloat[(r1+14)]; - f5 = heapFloat[(r4+1)]; - f6 = heapFloat[(r1+18)]; - f7 = heapFloat[(r1+22)]; - f0 = f1*f0; - f4 = f5*f4; - f8 = heapFloat[(r1+15)]; - f9 = heapFloat[(r4+2)]; - f10 = heapFloat[(r1+19)]; - f11 = heapFloat[(r1+23)]; - f2 = f1*f2; - f6 = f5*f6; - f1 = f1*f3; - f3 = f5*f7; - f0 = f0+f4; - f4 = f9*f8; - f2 = f2+f6; - f5 = f9*f10; - f1 = f1+f3; - f3 = f9*f11; - f0 = f0+f4; - f2 = f2+f5; - f1 = f1+f3; - if(f0 >=f2) //_LBB462_14 -{ - r1 = 2; - r4 = 0; - r1 = f0 < f1 ? r1 : r4; -} -else{ - r1 = 2; - r4 = 1; - r1 = f2 < f1 ? r1 : r4; -} - r1 = r1 << 4; - r0 = (r0 + r1)|0; - r0 = r0 >> 2; - f0 = heapFloat[(r0+15)]; - f1 = heapFloat[(r0+14)]; - r1 = r3 >> 2; - heap32[(r1)] = heap32[(r0+13)]; - heapFloat[(r1+1)] = f1; - heapFloat[(r1+2)] = f0; - heap32[(r1+3)] = 0; - return; -} -else{ - if(r2 ==4) //_LBB462_41 -{ - r0 = r4 >> 2; - f0 = heapFloat[(r1+5)]; - r4 = heap32[(r1+25)]; -__label__ = 38; -} -else{ -__label__ = 40; -} -} -} -} -} while(0); -switch(__label__ ){//multiple entries -case 11: - heapFloat[(r0+1)] = f2; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; - return; -break; -case 40: - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+16)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -break; -case 38: - r2 = heap32[(r1+23)]; - f1 = heapFloat[(r0)]; - f2 = heapFloat[(r0+1)]; - f3 = heapFloat[(r0+2)]; - f4 = heapFloat[(r1+3)]; - f5 = heapFloat[(r1+4)]; - heap32[(g0)] = r3; - heapFloat[(g0+1)] = f1; - heapFloat[(g0+2)] = f2; - heapFloat[(g0+3)] = f3; - heap32[(g0+4)] = r4; - heap32[(g0+5)] = r2; - heapFloat[(g0+6)] = f4; - heapFloat[(g0+7)] = f5; - heapFloat[(g0+8)] = f0; - _ZL17convexHullSupportRK9btVector3PS0_iS1_(i7); - return; -break; -} -} - -function _ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; -var __label__ = 0; - i7 = sp + -48;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0)]; - r1 = sp + -32; - heapFloat[(fp+-8)] = f0; - f1 = heapFloat[(r0+1)]; - r2 = r1 >> 2; - heapFloat[(r2+1)] = f1; - f2 = heapFloat[(r0+2)]; - r3 = heap32[(fp)]; - r4 = heap32[(fp+1)]; - heapFloat[(r2+2)] = f2; - f3 = f0*f0; - f4 = f1*f1; - f3 = f3+f4; - f4 = f2*f2; - heap32[(r2+3)] = heap32[(r0+3)]; - f3 = f3+f4; - f4 = 1.4210854715202004e-014; - if(f3 > 2; - heapFloat[(r2+2)] = f0; - r5 = heap32[(r0+1)]; -_4: do { - if(r5 >7) //_LBB463_7 -{ - if(r5 ==13) //_LBB463_13 -{ - f3 = heapFloat[(r0+11)]; -__label__ = 16; -break _4; -} -else{ - if(r5 ==10) //_LBB463_14 -{ - f3 = heapFloat[(r0+11)]; -__label__ = 16; -break _4; -} -else{ - if(r5 !=8) //_LBB463_16 -{ -__label__ = 15; -break _4; -} -else{ - f3 = heapFloat[(r0+7)]; - f4 = heapFloat[(r0+3)]; - f3 = f3*f4; -__label__ = 16; -break _4; -} -} -} -} -else{ - if(r5 ==0) //_LBB463_11 -{ - f3 = heapFloat[(r0+11)]; -__label__ = 16; -break _4; -} -else{ - if(r5 ==1) //_LBB463_12 -{ - f3 = heapFloat[(r0+11)]; -__label__ = 16; -} -else{ - r5 = (r5 + -4)|0; - if(uint(r5) > 2; - r0 = heap32[(r0+11)]; - heap32[(g0)] = r4; - __FUNCTION_TABLE__[(r0)>>2](i7); - f3 = f_g0; - f0 = heapFloat[(r2+2)]; - f2 = heapFloat[(r2+1)]; - f1 = heapFloat[(fp+-8)]; -} - r0 = sp + -16; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - _ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i7); - r0 = r0 >> 2; - f1 = f1*f3; - f4 = heapFloat[(fp+-4)]; - f5 = heapFloat[(r0+2)]; - f6 = heapFloat[(r0+1)]; - f2 = f2*f3; - r0 = r3 >> 2; - f1 = f4+f1; - f0 = f0*f3; - f2 = f6+f2; - heapFloat[(r0)] = f1; - f0 = f5+f0; - heapFloat[(r0+1)] = f2; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; - return; -} - -function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV31btInternalTriangleIndexCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV31btInternalTriangleIndexCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallback28internalProcessTriangleIndexEPS2_ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(fp)]; - r1 = r1 >> 2; - f0 = 999999984306749440; - f1 = heapFloat[(r0)]; - f2 = heapFloat[(r0+1)]; - f3 = -999999984306749440; - f4 = heapFloat[(r0+2)]; - f5 = heapFloat[(r0+3)]; - f6 = 0; - r1 = heap32[(r1+1)]; - f7 = f1 < f0 ? f1 : f0; - f8 = heapFloat[(r0+4)]; - f1 = f1 > f3 ? f1 : f3; - f9 = f2 < f0 ? f2 : f0; - f10 = heapFloat[(r0+5)]; - f2 = f2 > f3 ? f2 : f3; - f0 = f4 < f0 ? f4 : f0; - f11 = heapFloat[(r0+6)]; - f3 = f4 > f3 ? f4 : f3; - f4 = f5 < f6 ? f5 : f6; - f12 = heapFloat[(r0+7)]; - f5 = f5 > f6 ? f5 : f6; - r2 = r1 >> 2; - f6 = f8 < f7 ? f8 : f7; - f7 = heapFloat[(r0+8)]; - f1 = f1 < f8 ? f8 : f1; - f8 = f10 < f9 ? f10 : f9; - f9 = heapFloat[(r0+9)]; - f2 = f2 < f10 ? f10 : f2; - f0 = f11 < f0 ? f11 : f0; - f10 = heapFloat[(r0+10)]; - f3 = f3 < f11 ? f11 : f3; - f4 = f12 < f4 ? f12 : f4; - f11 = heapFloat[(r0+11)]; - f5 = f5 < f12 ? f12 : f5; - r0 = heap32[(r2+2)]; - r3 = heap32[(r2+1)]; - r4 = heap32[(fp+2)]; - r5 = heap32[(fp+3)]; - f6 = f7 < f6 ? f7 : f6; - f8 = f9 < f8 ? f9 : f8; - f0 = f10 < f0 ? f10 : f0; - f4 = f11 < f4 ? f11 : f4; - f1 = f1 < f7 ? f7 : f1; - f2 = f2 < f9 ? f9 : f2; - f3 = f3 < f10 ? f10 : f3; - f5 = f5 < f11 ? f11 : f5; - if(r0 ==r3) //_LBB466_2 -{ - r6 = 1; - r7 = r3 << 1; - r7 = r3 == 0 ? r6 : r7; -if(!(r0 >=r7)) //_LBB466_1 -{ - if(r7 !=0) //_LBB466_5 -{ - r0 = gNumAlignedAllocs; - r0 = r0 >> 2; - r8 = heap32[(r0)]; - r8 = (r8 + 1)|0; - r9 = r7 << 6; - heap32[(r0)] = r8; - r0 = r9 | 19; - heap32[(g0)] = r0; - malloc(i7); - r0 = r_g0; - if(r0 !=0) //_LBB466_7 -{ - r3 = 0; - r8 = (r0 + 4)|0; - r3 = (r3 - r8)|0; - r3 = r3 & 15; - r3 = (r0 + r3)|0; - r8 = r3 >> 2; - heap32[(r8)] = r0; - r0 = (r3 + 4)|0; - r3 = heap32[(r2+1)]; -} -} -else{ - r0 = 0; -} -if(!(r3 <1)) //_LBB466_11 -{ - r8 = 0; -_11: while(true){ - r9 = heap32[(r2+3)]; - r10 = (r0 + r8)|0; - r9 = (r9 + r8)|0; - heap32[(g0)] = r10; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = 64; - r3 = (r3 + -1)|0; - r8 = (r8 + 64)|0; - memcpy(i7); -if(!(r3 !=0)) //_LBB466_10 -{ -break _11; -} -} -} - r3 = heap32[(r2+3)]; -if(!(r3 ==0)) //_LBB466_15 -{ - r8 = heapU8[r1+16]; -if(!(r8 ==0)) //_LBB466_14 -{ - r8 = gNumAlignedFree; - r8 = r8 >> 2; - r9 = heap32[(r8)]; - r9 = (r9 + 1)|0; - r3 = r3 >> 2; - heap32[(r8)] = r9; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+3)] = 0; -} - heap8[r1+16] = r6; - heap32[(r2+3)] = r0; - heap32[(r2+2)] = r7; - r3 = heap32[(r2+1)]; -} -} - r0 = r3 << 6; - r1 = heap32[(r2+3)]; - r0 = (r1 + r0)|0; - r0 = r0 >> 2; - heapFloat[(r0)] = f6; - heapFloat[(r0+1)] = f8; - heapFloat[(r0+2)] = f0; - heapFloat[(r0+3)] = f4; - heapFloat[(r0+4)] = f1; - heapFloat[(r0+5)] = f2; - heapFloat[(r0+6)] = f3; - heapFloat[(r0+7)] = f5; - heap32[(r0+8)] = -1; - heap32[(r0+9)] = r4; - heap32[(r0+10)] = r5; - r0 = heap32[(r2+1)]; - r0 = (r0 + 1)|0; - heap32[(r2+1)] = r0; - return; -} - -function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV31btInternalTriangleIndexCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV31btInternalTriangleIndexCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallback28internalProcessTriangleIndexEPS2_ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + -64;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - if(r0 <1024) //_LBB469_2 -{ - r1 = heap32[(fp+3)]; - if(r1 <2097152) //_LBB469_4 -{ - if(r1 >-1) //_LBB469_6 -{ - r2 = heap32[(fp)]; - r3 = heap32[(fp+1)]; - r4 = sp + -32; - r5 = r4 >> 2; - heap32[(fp+-8)] = 1566444395; - heap32[(r5+1)] = 1566444395; - heap32[(r5+2)] = 1566444395; - r6 = sp + -48; - heap32[(r5+3)] = 0; - r7 = r6 >> 2; - heap32[(fp+-12)] = -581039253; - heap32[(r7+1)] = -581039253; - heap32[(r7+2)] = -581039253; - r3 = r3 >> 2; - heap32[(r7+3)] = 0; - f0 = heapFloat[(r3)]; - f1 = 999999984306749440; - if(f0 f8) //_LBB469_20 -{ - heapFloat[(fp+-12)] = f0; -} -else{ - f0 = f8; -} - if(f3 >f8) //_LBB469_23 -{ - heapFloat[(r7+1)] = f3; -} -else{ - f3 = -999999984306749440; -} - f8 = -999999984306749440; - if(f4 >f8) //_LBB469_26 -{ - heapFloat[(r7+2)] = f4; - f8 = f4; -} - f4 = 0; - if(f6 >f4) //_LBB469_29 -{ - heapFloat[(r7+3)] = f6; - f4 = f6; -} - f6 = heapFloat[(r3+4)]; - if(f6 =f7)) //_LBB469_65 -{ - heapFloat[(r5+3)] = f11; -} - if(f0 =f11)) //_LBB469_76 -{ - heapFloat[(r7+3)] = f11; -} - f4 = f0-f2; - f6 = 0.0020000000949949026; -if(!(f4 >=f6)) //_LBB469_78 -{ - f4 = 0.0010000000474974513; - f0 = f0+f4; - f4 = -0.0010000000474974513; - f2 = f2+f4; - heapFloat[(fp+-12)] = f0; - heapFloat[(fp+-8)] = f2; -} - f0 = f3-f1; -if(!(f0 >=f6)) //_LBB469_80 -{ - f0 = 0.0010000000474974513; - f2 = -0.0010000000474974513; - f0 = f3+f0; - f1 = f1+f2; - heapFloat[(r7+1)] = f0; - heapFloat[(r5+1)] = f1; -} - f0 = f8-f5; -if(!(f0 >=f6)) //_LBB469_82 -{ - f0 = 0.0010000000474974513; - f1 = -0.0010000000474974513; - f0 = f8+f0; - f1 = f5+f1; - heapFloat[(r7+2)] = f0; - heapFloat[(r5+2)] = f1; -} - r2 = r2 >> 2; - r3 = heap32[(r2+2)]; - r5 = sp + -16; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = 0; - _ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7); - r3 = heap32[(r2+2)]; - r4 = (r5 + 6)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = 1; - r0 = r0 << 21; - r0 = r0 | r1; - _ZNK14btQuantizedBvh8quantizeEPtRK9btVector3i(i7); - r1 = r5 >> 2; - heap32[(r1+3)] = r0; - r1 = heap32[(r2+1)]; - r2 = r1 >> 2; - r3 = heap32[(r2+1)]; - r4 = heap32[(r2+2)]; - if(r4 ==r3) //_LBB469_84 -{ - r4 = 1; - r5 = r3 << 1; - r3 = r3 == 0 ? r4 : r5; - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - _ZN20btAlignedObjectArrayI18btQuantizedBvhNodeE7reserveEi(i7); - r3 = heap32[(r2+1)]; -} - r1 = heap32[(r2+3)]; - r4 = heapU16[(sp+-16)>>1]; - r3 = r3 << 4; - heap16[(r1+r3)>>1] = r4; - r1 = (r1 + r3)|0; - r3 = heapU16[(sp+-14)>>1]; - heap16[(r1+2)>>1] = r3; - r3 = heapU16[(sp+-12)>>1]; - heap16[(r1+4)>>1] = r3; - r3 = heapU16[(sp+-10)>>1]; - heap16[(r1+6)>>1] = r3; - r3 = heapU16[(sp+-8)>>1]; - heap16[(r1+8)>>1] = r3; - r3 = heapU16[(sp+-6)>>1]; - r4 = r1 >> 2; - heap16[(r1+10)>>1] = r3; - heap32[(r4+3)] = r0; - r0 = heap32[(r2+1)]; - r0 = (r0 + 1)|0; - heap32[(r2+1)] = r0; - return; -} -else{ - r0 = _2E_str20316; - r1 = _2E_str10306; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 103; - _assert(i7); -} -} -else{ - r0 = _2E_str19315; - r1 = _2E_str10306; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 101; - _assert(i7); -} -} -else{ - r0 = _2E_str18314; - r1 = _2E_str10306; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 100; - _assert(i7); -} -} - -function _ZNK14btOptimizedBvh16serializeInPlaceEPvjb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r3; - _ZNK14btQuantizedBvh9serializeEPvjb(i7); - r0 = 1; - r_g0 = r0; - return; -} - -function _ZN14btOptimizedBvhD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV14btOptimizedBvh; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN14btQuantizedBvhD2Ev(i7); -if(!(r0 ==0)) //_LBB471_2 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZN14btOptimizedBvhD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV14btOptimizedBvh; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN14btQuantizedBvhD2Ev(i7); - return; -} - -function _ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -112;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - r3 = sp + -64; - __FUNCTION_TABLE__[(r2)>>2](i7); - f0 = f_g0; - r2 = r3 >> 2; - heap32[(fp+-16)] = 1065353216; - heap32[(r2+1)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - heap32[(r2+4)] = 0; - heap32[(r2+5)] = 1065353216; - heap32[(r2+6)] = 0; - heap32[(r2+7)] = 0; - heap32[(r2+8)] = 0; - heap32[(r2+9)] = 0; - heap32[(r2+10)] = 1065353216; - heap32[(r2+11)] = 0; - heap32[(r2+12)] = 0; - heap32[(r2+13)] = 0; - heap32[(r2+14)] = 0; - heap32[(r2+15)] = 0; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+2)]; - r2 = sp + -80; - r4 = sp + -96; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = r4 >> 2; - r1 = r2 >> 2; - f1 = heapFloat[(r0+2)]; - f2 = heapFloat[(r1+2)]; - f3 = heapFloat[(r0+1)]; - f4 = heapFloat[(r1+1)]; - f3 = f3-f4; - f4 = 0.5; - f1 = f1-f2; - f2 = heapFloat[(fp+-24)]; - f5 = heapFloat[(fp+-20)]; - f2 = f2-f5; - f3 = f3*f4; - f1 = f1*f4; - f2 = f2*f4; - f3 = f3+f0; - f1 = f1+f0; - f0 = f2+f0; - f2 = f3+f3; - f1 = f1+f1; - f0 = f0+f0; - f2 = f2*f2; - f1 = f1*f1; - f3 = heapFloat[(fp+1)]; - f4 = 0.083333328366279602; - f0 = f0*f0; - r0 = heap32[(fp+2)]; - f5 = f2+f1; - f3 = f3*f4; - f1 = f0+f1; - r0 = r0 >> 2; - f4 = f5*f3; - f0 = f0+f2; - f1 = f1*f3; - heapFloat[(r0)] = f4; - f0 = f0*f3; - heapFloat[(r0+1)] = f1; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; - return; -} - -function _ZNK34btPolyhedralConvexAabbCachingShape7getAabbERK11btTransformR9btVector3S4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - f0 = f_g0; - r1 = heapU8[r0+84]; - if(r1 !=0) //_LBB474_2 -{ - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - r4 = (r0 + 52)|0; - r0 = (r0 + 68)|0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r0; - heapFloat[(g0+2)] = f0; - heap32[(g0+3)] = r1; - heap32[(g0+4)] = r2; - heap32[(g0+5)] = r3; - _Z15btTransformAabbRK9btVector3S1_fRK11btTransformRS_S5_(i7); - return; -} -else{ - r0 = _2E_str6232; - r1 = _2E_str7331; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 86; - _assert(i7); -} -} - -function _ZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -112;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = 1; - r2 = _ZGVZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions; - heap8[r0+84] = r1; - r3 = heapU8[r2]; -if(!(r3 !=0)) //_LBB475_2 -{ - r3 = _ZZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions; - r3 = r3 >> 2; - heap32[(r3)] = 1065353216; - heap32[(r3+1)] = 0; - heap32[(r3+2)] = 0; - heap32[(r3+3)] = 0; - heap32[(r3+4)] = 0; - heap32[(r3+5)] = 1065353216; - heap32[(r3+6)] = 0; - heap32[(r3+7)] = 0; - heap32[(r3+8)] = 0; - heap32[(r3+9)] = 0; - heap32[(r3+10)] = 1065353216; - heap32[(r3+11)] = 0; - heap32[(r3+12)] = -1082130432; - heap32[(r3+13)] = 0; - heap32[(r3+14)] = 0; - heap32[(r3+15)] = 0; - heap32[(r3+16)] = 0; - heap32[(r3+17)] = -1082130432; - heap32[(r3+18)] = 0; - heap32[(r3+19)] = 0; - heap32[(r3+20)] = 0; - heap32[(r3+21)] = 0; - heap32[(r3+22)] = -1082130432; - heap32[(r3+23)] = 0; - heap8[r2] = r1; -} - r1 = sp + -96; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 96; - r2 = r0 >> 2; - memset(i7); - r3 = heap32[(r2)]; - r3 = r3 >> 2; - r3 = heap32[(r3+17)]; - r4 = _ZZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = 6; - __FUNCTION_TABLE__[(r3)>>2](i7); - f0 = heapFloat[(fp+-24)]; - f1 = heapFloat[(r2+11)]; - f0 = f0+f1; - r0 = r1 >> 2; - heapFloat[(r2+17)] = f0; - f0 = heapFloat[(r0+12)]; - f0 = f0-f1; - heapFloat[(r2+13)] = f0; - f0 = heapFloat[(r0+5)]; - f0 = f0+f1; - heapFloat[(r2+18)] = f0; - f0 = heapFloat[(r0+17)]; - f0 = f0-f1; - heapFloat[(r2+14)] = f0; - f0 = heapFloat[(r0+10)]; - f0 = f0+f1; - heapFloat[(r2+19)] = f0; - f0 = heapFloat[(r0+22)]; - f0 = f0-f1; - heapFloat[(r2+15)] = f0; - return; -} - -function _ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - heap32[(r0)] = 0; - heap32[(r0+1)] = 0; - heap32[(r0+2)] = 0; - heap32[(r0+3)] = 0; - return; -} - -function _ZNK13btSphereShape7getNameEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = _2E_str342; - r_g0 = r0; - return; -} - -function _ZN13btSphereShape9setMarginEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - heap32[(r0+11)] = heap32[(fp+1)]; - return; -} - -function _ZNK13btSphereShape9getMarginEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var f0; - var f1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0+7)]; - f1 = heapFloat[(r0+3)]; - f0 = f0*f1; - f_g0 = f0; - return; -} - -function _ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+3)]; -if(!(r0 <1)) //_LBB480_3 -{ - r1 = heap32[(fp+2)]; - r1 = (r1 + 8)|0; -_3: while(true){ - r2 = r1 >> 2; - heap32[(r2+-2)] = 0; - heap32[(r2+-1)] = 0; - r0 = (r0 + -1)|0; - r1 = (r1 + 16)|0; - heap32[(r2)] = 0; - heap32[(r2+1)] = 0; - if(r0 !=0) //_LBB480_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - return; -} - -function _ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f0 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f1 = f_g0; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+11)]; - r2 = heap32[(fp+1)]; - heap32[(g0)] = r0; - r0 = r2 >> 2; - __FUNCTION_TABLE__[(r1)>>2](i7); - r1 = heap32[(fp+2)]; - f3 = heapFloat[(r0+14)]; - f4 = heapFloat[(r0+13)]; - f5 = heapFloat[(r0+12)]; - r1 = r1 >> 2; - f5 = f5-f_g0; - f4 = f4-f1; - heapFloat[(r1)] = f5; - f3 = f3-f0; - heapFloat[(r1+1)] = f4; - heapFloat[(r1+2)] = f3; - heap32[(r1+3)] = 0; - r1 = heap32[(fp+3)]; - f3 = heapFloat[(r0+14)]; - f4 = heapFloat[(r0+13)]; - f5 = heapFloat[(r0+12)]; - r0 = r1 >> 2; - f2 = f5+f_g0; - f1 = f4+f1; - heapFloat[(r0)] = f2; - f0 = f3+f0; - heapFloat[(r0+1)] = f1; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; - return; -} - -function _ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+11)]; - f1 = heapFloat[(fp+1)]; - f2 = 0.40000000596046448; - f1 = f1*f2; - heap32[(g0)] = r0; - r0 = heap32[(fp+2)]; - f0 = f1*f_g0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = r0 >> 2; - f0 = f0*f_g0; - heapFloat[(r0)] = f0; - heapFloat[(r0+1)] = f0; - heapFloat[(r0+2)] = f0; - heap32[(r0+3)] = 0; - return; -} - -function _ZN13btSphereShapeD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV13btConvexShape; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; -if(!(r0 ==0)) //_LBB483_2 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZN13btSphereShapeD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV13btConvexShape; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZNK13btSphereShape24localGetSupportingVertexERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+16)]; - r3 = heap32[(fp+2)]; - r4 = sp + -16; - heap32[(g0)] = r4; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r3; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r4 >> 2; - r4 = heap32[(fp)]; - f0 = heapFloat[(fp+-4)]; - f1 = heapFloat[(r2+1)]; - f2 = heapFloat[(r2+2)]; - r4 = r4 >> 2; - r3 = r3 >> 2; - heap32[(r4+3)] = heap32[(r2+3)]; - f3 = heapFloat[(r3)]; - f4 = heapFloat[(r3+1)]; - f5 = heapFloat[(r3+2)]; - f6 = f3*f3; - f7 = f4*f4; - f6 = f6+f7; - f7 = f5*f5; - f6 = f6+f7; - f7 = 1.4210854715202004e-014; - f8 = -1; - f3 = f6 < f7 ? f8 : f3; - f4 = f6 < f7 ? f8 : f4; - f5 = f6 < f7 ? f8 : f5; - f6 = f3*f3; - f7 = f4*f4; - f6 = f6+f7; - f7 = f5*f5; - f6 = f6+f7; - heapFloat[(g0)] = f6; - sqrtf(i7); - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+11)]; - f7 = 1; - f6 = f7/f_g0; - heap32[(g0)] = r0; - f3 = f3*f6; - __FUNCTION_TABLE__[(r1)>>2](i7); - f4 = f4*f6; - f3 = f3*f_g0; - f5 = f5*f6; - f4 = f4*f_g0; - f0 = f0+f3; - f3 = f5*f_g0; - f1 = f1+f4; - heapFloat[(r4)] = f0; - f0 = f2+f3; - heapFloat[(r4+1)] = f1; - heapFloat[(r4+2)] = f0; - return; -} - -function _ZNK23btStridingMeshInterface14hasPremadeAabbEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZNK23btStridingMeshInterface14setPremadeAabbERK9btVector3S2_(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZNK23btStridingMeshInterface14getPremadeAabbEP9btVector3S1_(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 28; - r_g0 = r0; - return; -} - -function _ZNK23btStridingMeshInterface9serializeEPvP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; -var __label__ = 0; - i7 = sp + -72;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+7)]; - r3 = heap32[(fp+1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r3 = r3 >> 2; - heap32[(r3+5)] = r2; - heap32[(r3)] = 0; -if(!(r2 ==0)) //_LBB490_32 -{ - r4 = heap32[(fp+2)]; - r5 = r4 >> 2; - r6 = heap32[(r5)]; - r6 = r6 >> 2; - r6 = heap32[(r6+4)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = 28; - heap32[(g0+2)] = r2; - __FUNCTION_TABLE__[(r6)>>2](i7); - r2 = r_g0; - r6 = heap32[(r5)]; - r6 = r6 >> 2; - r7 = r2 >> 2; - r7 = heap32[(r7+2)]; - r6 = heap32[(r6+7)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r7; - __FUNCTION_TABLE__[(r6)>>2](i7); - heap32[(r3)] = r_g0; - r6 = heap32[(r1)]; - r6 = r6 >> 2; - r6 = heap32[(r6+7)]; - heap32[(g0)] = r0; - r8 = 0; - __FUNCTION_TABLE__[(r6)>>2](i7); - r6 = r_g0; -_3: while(true){ - if(r8 > 2; - r9 = heap32[(r9+4)]; - r10 = sp + -4; - r11 = sp + -28; - r12 = sp + -16; - r13 = sp + -24; - r14 = sp + -8; - r15 = sp + -12; - r16 = sp + -32; - r17 = sp + -20; - heap32[(g0)] = r0; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r11; - heap32[(g0+3)] = r12; - heap32[(g0+4)] = r13; - heap32[(g0+5)] = r14; - heap32[(g0+6)] = r15; - heap32[(g0+7)] = r16; - heap32[(g0+8)] = r17; - heap32[(g0+9)] = r8; - __FUNCTION_TABLE__[(r9)>>2](i7); - r9 = r7 >> 2; - r10 = heap32[(fp+-8)]; - heap32[(r9+5)] = r10; - r10 = heap32[(fp+-7)]; - heap32[(r9+6)] = r10; - heap32[(r9+4)] = 0; - heap32[(r9+2)] = 0; - heap32[(r9+3)] = 0; - heap32[(r9)] = 0; - heap32[(r9+1)] = 0; - r10 = heap32[(fp+-5)]; - if(r10 ==3) //_LBB490_9 -{ - r10 = heap32[(fp+-8)]; -if(!(r10 ==0)) //_LBB490_15 -{ - r11 = heap32[(r5)]; - r11 = r11 >> 2; - r11 = heap32[(r11+4)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = 8; - heap32[(g0+2)] = r10; - __FUNCTION_TABLE__[(r11)>>2](i7); - r10 = r_g0; - r11 = heap32[(r5)]; - r11 = r11 >> 2; - r12 = r10 >> 2; - r12 = heap32[(r12+2)]; - r11 = heap32[(r11+7)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r12; - __FUNCTION_TABLE__[(r11)>>2](i7); - heap32[(r9+3)] = r_g0; - r11 = heap32[(fp+-8)]; -if(!(r11 <1)) //_LBB490_13 -{ - r11 = 0; -_11: while(true){ - r13 = heap32[(fp+-3)]; - r13 = (r13 * r11)|0; - r14 = heap32[(fp+-2)]; - r15 = heapU16[(r14+r13)>>1]; - r16 = r11 << 3; - r13 = (r14 + r13)|0; - heap16[(r12+r16)>>1] = r15; - r14 = (r12 + r16)|0; - r15 = heapU16[(r13+2)>>1]; - heap16[(r14+2)>>1] = r15; - r13 = heapU16[(r13+4)>>1]; - r11 = (r11 + 1)|0; - heap16[(r14+4)>>1] = r13; - r13 = heap32[(fp+-8)]; -if(!(r11 > 2; - r12 = r10 >> 2; - r11 = heap32[(r11+5)]; - r12 = heap32[(r12+2)]; - r13 = _2E_str1350; - heap32[(g0)] = r4; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r13; - heap32[(g0+3)] = 1497453121; - heap32[(g0+4)] = r12; - __FUNCTION_TABLE__[(r11)>>2](i7); -} -} -else{ - if(r10 !=2) //_LBB490_14 -{ -__label__ = 14; -break _3; -} -else{ - r10 = heap32[(fp+-8)]; - r10 = (r10 * 3)|0; -if(!(r10 ==0)) //_LBB490_15 -{ - r11 = heap32[(r5)]; - r11 = r11 >> 2; - r11 = heap32[(r11+4)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = 4; - heap32[(g0+2)] = r10; - __FUNCTION_TABLE__[(r11)>>2](i7); - r10 = r_g0; - r11 = heap32[(r5)]; - r11 = r11 >> 2; - r12 = r10 >> 2; - r12 = heap32[(r12+2)]; - r11 = heap32[(r11+7)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r12; - __FUNCTION_TABLE__[(r11)>>2](i7); - heap32[(r9+2)] = r_g0; - r11 = heap32[(fp+-8)]; -_17: do { -if(!(r11 <1)) //_LBB490_8 -{ - r11 = 0; -_19: while(true){ - r13 = heap32[(fp+-3)]; - r13 = (r13 * r11)|0; - r14 = heap32[(fp+-2)]; - r15 = (r11 * 3)|0; - r13 = (r14 + r13)|0; - r13 = r13 >> 2; - r14 = r15 << 2; - r14 = (r12 + r14)|0; - r15 = heap32[(r13)]; - r14 = r14 >> 2; - heap32[(r14)] = r15; - r15 = heap32[(r13+1)]; - heap32[(r14+1)] = r15; - r13 = heap32[(r13+2)]; - r11 = (r11 + 1)|0; - heap32[(r14+2)] = r13; - r13 = heap32[(fp+-8)]; -if(!(r11 > 2; - r12 = r10 >> 2; - r11 = heap32[(r11+5)]; - r12 = heap32[(r12+2)]; - r13 = _2E_str349; - heap32[(g0)] = r4; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r13; - heap32[(g0+3)] = 1497453121; - heap32[(g0+4)] = r12; - __FUNCTION_TABLE__[(r11)>>2](i7); -} -} -} - r10 = heap32[(fp+-4)]; -_23: do { - if(r10 ==1) //_LBB490_22 -{ - r10 = heap32[(fp+-7)]; - if(r10 ==0) //_LBB490_29 -{ -break _23; -} -else{ - r11 = heap32[(r5)]; - r11 = r11 >> 2; - r11 = heap32[(r11+4)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = 32; - heap32[(g0+2)] = r10; - __FUNCTION_TABLE__[(r11)>>2](i7); - r10 = r_g0; - r11 = heap32[(r5)]; - r11 = r11 >> 2; - r12 = r10 >> 2; - r12 = heap32[(r12+2)]; - r11 = heap32[(r11+7)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r12; - __FUNCTION_TABLE__[(r11)>>2](i7); - heap32[(r9+1)] = r_g0; - r9 = heap32[(fp+-7)]; -_26: do { -if(!(r9 <1)) //_LBB490_26 -{ - r11 = heap32[(fp+-1)]; - r13 = heap32[(fp+-6)]; - r11 = (r11 + 16)|0; - r14 = 0; -_28: while(true){ - r15 = r14 << 5; - r15 = (r12 + r15)|0; - llvm_move_double(r15,r11+-16); - r14 = (r14 + 1)|0; - r16 = (r11 + r13)|0; - llvm_move_double(r15+8,r11+-8); - llvm_move_double(r15+16,r11); - r11 = r16; -if(!(r14 > 2; - r11 = r10 >> 2; - r9 = heap32[(r9+5)]; - r11 = heap32[(r11+2)]; - r12 = _2E_str5354; - heap32[(g0)] = r4; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r12; - heap32[(g0+3)] = 1497453121; - heap32[(g0+4)] = r11; - __FUNCTION_TABLE__[(r9)>>2](i7); -} -} -else{ - if(r10 !=0) //_LBB490_27 -{ -if(!(uint(r10) > 2; - r11 = heap32[(r11+4)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = 16; - heap32[(g0+2)] = r10; - __FUNCTION_TABLE__[(r11)>>2](i7); - r10 = r_g0; - r11 = heap32[(r5)]; - r11 = r11 >> 2; - r12 = r10 >> 2; - r12 = heap32[(r12+2)]; - r11 = heap32[(r11+7)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r12; - __FUNCTION_TABLE__[(r11)>>2](i7); - heap32[(r9)] = r_g0; - r9 = heap32[(fp+-7)]; -_36: do { -if(!(r9 <1)) //_LBB490_21 -{ - r9 = 0; -_38: while(true){ - r11 = heap32[(fp+-6)]; - r13 = heap32[(fp+-1)]; - r11 = (r11 * r9)|0; - r14 = r9 << 4; - r14 = (r12 + r14)|0; - r11 = (r13 + r11)|0; - r13 = r14 >> 2; - r11 = r11 >> 2; - heap32[(r13)] = heap32[(r11)]; - r9 = (r9 + 1)|0; - heap32[(r13+1)] = heap32[(r11+1)]; - heap32[(r13+2)] = heap32[(r11+2)]; - r11 = heap32[(fp+-7)]; -if(!(r9 > 2; - r11 = r10 >> 2; - r9 = heap32[(r9+5)]; - r11 = heap32[(r11+2)]; - r12 = _2E_str5223; - heap32[(g0)] = r4; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r12; - heap32[(g0+3)] = 1497453121; - heap32[(g0+4)] = r11; - __FUNCTION_TABLE__[(r9)>>2](i7); -} -} -} -} while(0); - r9 = heap32[(r1)]; - r9 = r9 >> 2; - r9 = heap32[(r9+6)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r8; - r8 = (r8 + 1)|0; - r7 = (r7 + 28)|0; - __FUNCTION_TABLE__[(r9)>>2](i7); -} -else{ -__label__ = 31; -break _3; -} -} -switch(__label__ ){//multiple entries -case 31: - r0 = heap32[(r5)]; - r0 = r0 >> 2; - r5 = r2 >> 2; - r0 = heap32[(r0+5)]; - r5 = heap32[(r5+2)]; - r6 = _2E_str7356; - heap32[(g0)] = r4; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = 1497453121; - heap32[(g0+4)] = r5; - __FUNCTION_TABLE__[(r0)>>2](i7); -break; -case 28: - r0 = _2E_str6355; - r1 = _2E_str3352; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 319; - _assert(i7); -break; -case 14: - r0 = _2E_str10; - r1 = _2E_str3352; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 271; - _assert(i7); -break; -} -} - heap32[(r3+1)] = heap32[(r1+1)]; - heap32[(r3+2)] = heap32[(r1+2)]; - heap32[(r3+3)] = heap32[(r1+3)]; - heap32[(r3+4)] = heap32[(r1+4)]; - r0 = _2E_str8357; - r_g0 = r0; - return; -} - -function _ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -120;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+7)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r3 = heap32[(fp+1)]; - f0 = heapFloat[(r1+1)]; - f1 = heapFloat[(r1+2)]; - f2 = heapFloat[(r1+3)]; - r4 = 0; -_1: while(true){ - if(r4 > 2; - r5 = heap32[(r5+4)]; - r6 = sp + -4; - r7 = sp + -28; - r8 = sp + -16; - r9 = sp + -24; - r10 = sp + -8; - r11 = sp + -12; - r12 = sp + -32; - r13 = sp + -20; - heap32[(g0)] = r0; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = r8; - heap32[(g0+4)] = r9; - heap32[(g0+5)] = r10; - heap32[(g0+6)] = r11; - heap32[(g0+7)] = r12; - heap32[(g0+8)] = r13; - heap32[(g0+9)] = r4; - __FUNCTION_TABLE__[(r5)>>2](i7); - r5 = heap32[(fp+-4)]; -_4: do { - if(r5 ==1) //_LBB491_13 -{ - r5 = heap32[(fp+-5)]; - if(r5 ==3) //_LBB491_17 -{ - r5 = heap32[(fp+-8)]; - if(r5 <1) //_LBB491_25 -{ -break _4; -} -else{ - r5 = 0; -_9: while(true){ - r6 = heap32[(fp+-3)]; - r7 = heap32[(fp+-2)]; - r6 = (r6 * r5)|0; - r8 = heapU16[(r7+r6)>>1]; - r9 = heap32[(fp+-6)]; - r10 = heap32[(fp+-1)]; - r8 = (r8 * r9)|0; - r11 = (r10 + r8)|0; - f3 = llvm_readDouble((r10+r8)); - f4 = llvm_readDouble((r11+16)); - f5 = llvm_readDouble((r11+8)); - f3 = f3; //fdtos f3, f3 - r8 = sp + -80; - f5 = f5; //fdtos f5, f5 - f3 = f3*f0; - r11 = r8 >> 2; - f4 = f4; //fdtos f4, f4 - f5 = f5*f1; - heapFloat[(fp+-20)] = f3; - f3 = f4*f2; - heapFloat[(r11+1)] = f5; - heapFloat[(r11+2)] = f3; - r6 = (r7 + r6)|0; - heap32[(r11+3)] = 0; - r7 = heapU16[(r6+2)>>1]; - r7 = (r7 * r9)|0; - r12 = (r10 + r7)|0; - f3 = llvm_readDouble((r10+r7)); - f3 = f3; //fdtos f3, f3 - f4 = llvm_readDouble((r12+16)); - f5 = llvm_readDouble((r12+8)); - f5 = f5; //fdtos f5, f5 - f3 = f3*f0; - f4 = f4; //fdtos f4, f4 - f5 = f5*f1; - heapFloat[(r11+4)] = f3; - f3 = f4*f2; - heapFloat[(r11+5)] = f5; - heapFloat[(r11+6)] = f3; - heap32[(r11+7)] = 0; - r6 = heapU16[(r6+4)>>1]; - r6 = (r6 * r9)|0; - r7 = (r10 + r6)|0; - f3 = llvm_readDouble((r10+r6)); - f3 = f3; //fdtos f3, f3 - f4 = llvm_readDouble((r7+16)); - f5 = llvm_readDouble((r7+8)); - f5 = f5; //fdtos f5, f5 - f3 = f3*f0; - f4 = f4; //fdtos f4, f4 - f5 = f5*f1; - heapFloat[(r11+8)] = f3; - f3 = f4*f2; - heapFloat[(r11+9)] = f5; - heapFloat[(r11+10)] = f3; - r6 = r3 >> 2; - heap32[(r11+11)] = 0; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+2)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - r5 = (r5 + 1)|0; - __FUNCTION_TABLE__[(r6)>>2](i7); - r6 = heap32[(fp+-8)]; - if(r5 > 2; - r7 = heap32[(r6)]; - r8 = heap32[(fp+-6)]; - r9 = heap32[(fp+-1)]; - r7 = (r8 * r7)|0; - r10 = (r9 + r7)|0; - f3 = llvm_readDouble((r9+r7)); - f4 = llvm_readDouble((r10+16)); - f5 = llvm_readDouble((r10+8)); - f3 = f3; //fdtos f3, f3 - r7 = sp + -80; - f5 = f5; //fdtos f5, f5 - f3 = f3*f0; - r10 = r7 >> 2; - f4 = f4; //fdtos f4, f4 - f5 = f5*f1; - heapFloat[(fp+-20)] = f3; - f3 = f4*f2; - heapFloat[(r10+1)] = f5; - heapFloat[(r10+2)] = f3; - heap32[(r10+3)] = 0; - r11 = heap32[(r6+1)]; - r11 = (r8 * r11)|0; - r12 = (r9 + r11)|0; - f3 = llvm_readDouble((r9+r11)); - f3 = f3; //fdtos f3, f3 - f4 = llvm_readDouble((r12+16)); - f5 = llvm_readDouble((r12+8)); - f5 = f5; //fdtos f5, f5 - f3 = f3*f0; - f4 = f4; //fdtos f4, f4 - f5 = f5*f1; - heapFloat[(r10+4)] = f3; - f3 = f4*f2; - heapFloat[(r10+5)] = f5; - heapFloat[(r10+6)] = f3; - heap32[(r10+7)] = 0; - r6 = heap32[(r6+2)]; - r6 = (r8 * r6)|0; - r8 = (r9 + r6)|0; - f3 = llvm_readDouble((r9+r6)); - f3 = f3; //fdtos f3, f3 - f4 = llvm_readDouble((r8+16)); - f5 = llvm_readDouble((r8+8)); - f5 = f5; //fdtos f5, f5 - f3 = f3*f0; - f4 = f4; //fdtos f4, f4 - f5 = f5*f1; - heapFloat[(r10+8)] = f3; - f3 = f4*f2; - heapFloat[(r10+9)] = f5; - heapFloat[(r10+10)] = f3; - r6 = r3 >> 2; - heap32[(r10+11)] = 0; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+2)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - r5 = (r5 + 1)|0; - __FUNCTION_TABLE__[(r6)>>2](i7); - r6 = heap32[(fp+-8)]; - if(r5 >1]; - r9 = heap32[(fp+-6)]; - r10 = heap32[(fp+-1)]; - r8 = (r8 * r9)|0; - r8 = (r10 + r8)|0; - r8 = r8 >> 2; - f3 = heapFloat[(r8)]; - f4 = heapFloat[(r8+2)]; - f5 = heapFloat[(r8+1)]; - r8 = sp + -80; - f3 = f3*f0; - r11 = r8 >> 2; - f5 = f5*f1; - heapFloat[(fp+-20)] = f3; - f3 = f4*f2; - heapFloat[(r11+1)] = f5; - heapFloat[(r11+2)] = f3; - r6 = (r7 + r6)|0; - heap32[(r11+3)] = 0; - r7 = heapU16[(r6+2)>>1]; - r7 = (r7 * r9)|0; - r7 = (r10 + r7)|0; - r7 = r7 >> 2; - f3 = heapFloat[(r7+2)]; - f4 = heapFloat[(r7+1)]; - f5 = heapFloat[(r7)]; - f5 = f5*f0; - f4 = f4*f1; - heapFloat[(r11+4)] = f5; - f3 = f3*f2; - heapFloat[(r11+5)] = f4; - heapFloat[(r11+6)] = f3; - heap32[(r11+7)] = 0; - r6 = heapU16[(r6+4)>>1]; - r6 = (r6 * r9)|0; - r6 = (r10 + r6)|0; - r6 = r6 >> 2; - f3 = heapFloat[(r6+2)]; - f4 = heapFloat[(r6+1)]; - f5 = heapFloat[(r6)]; - f5 = f5*f0; - f4 = f4*f1; - heapFloat[(r11+8)] = f5; - f3 = f3*f2; - heapFloat[(r11+9)] = f4; - heapFloat[(r11+10)] = f3; - r6 = r3 >> 2; - heap32[(r11+11)] = 0; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+2)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - r5 = (r5 + 1)|0; - __FUNCTION_TABLE__[(r6)>>2](i7); - r6 = heap32[(fp+-8)]; - if(r5 > 2; - r7 = heap32[(r6)]; - r8 = heap32[(fp+-6)]; - r9 = heap32[(fp+-1)]; - r7 = (r8 * r7)|0; - r7 = (r9 + r7)|0; - r7 = r7 >> 2; - f3 = heapFloat[(r7)]; - f4 = heapFloat[(r7+2)]; - f5 = heapFloat[(r7+1)]; - r7 = sp + -80; - f3 = f3*f0; - r10 = r7 >> 2; - f5 = f5*f1; - heapFloat[(fp+-20)] = f3; - f3 = f4*f2; - heapFloat[(r10+1)] = f5; - heapFloat[(r10+2)] = f3; - heap32[(r10+3)] = 0; - r11 = heap32[(r6+1)]; - r11 = (r8 * r11)|0; - r11 = (r9 + r11)|0; - r11 = r11 >> 2; - f3 = heapFloat[(r11+2)]; - f4 = heapFloat[(r11+1)]; - f5 = heapFloat[(r11)]; - f5 = f5*f0; - f4 = f4*f1; - heapFloat[(r10+4)] = f5; - f3 = f3*f2; - heapFloat[(r10+5)] = f4; - heapFloat[(r10+6)] = f3; - heap32[(r10+7)] = 0; - r6 = heap32[(r6+2)]; - r6 = (r8 * r6)|0; - r6 = (r9 + r6)|0; - r6 = r6 >> 2; - f3 = heapFloat[(r6+2)]; - f4 = heapFloat[(r6+1)]; - f5 = heapFloat[(r6)]; - f5 = f5*f0; - f4 = f4*f1; - heapFloat[(r10+8)] = f5; - f3 = f3*f2; - heapFloat[(r10+9)] = f4; - heapFloat[(r10+10)] = f3; - r6 = r3 >> 2; - heap32[(r10+11)] = 0; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+2)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - r5 = (r5 + 1)|0; - __FUNCTION_TABLE__[(r6)>>2](i7); - r6 = heap32[(fp+-8)]; -if(!(r5 > 2; - r5 = heap32[(r5+6)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - r4 = (r4 + 1)|0; - __FUNCTION_TABLE__[(r5)>>2](i7); -continue _1; -} -else{ -__label__ = 27; -break _1; -} -} -switch(__label__ ){//multiple entries -case 27: - return; -break; -case 22: - r0 = _2E_str9358; - r1 = _2E_str3352; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 134; - _assert(i7); -break; -case 24: - r0 = _2E_str6355; - r1 = _2E_str3352; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 139; - _assert(i7); -break; -case 12: - r0 = _2E_str9358; - r1 = _2E_str3352; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 92; - _assert(i7); -break; -} -} - -function _ZN23btStridingMeshInterfaceD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV23btStridingMeshInterface; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN23btStridingMeshInterfaceD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV23btStridingMeshInterface; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN31btInternalTriangleIndexCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV31btInternalTriangleIndexCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN31btInternalTriangleIndexCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV31btInternalTriangleIndexCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN18btTriangleCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN18btTriangleCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN26btTriangleIndexVertexArray16unLockVertexBaseEi(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZNK26btTriangleIndexVertexArray24unLockReadOnlyVertexBaseEi(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN26btTriangleIndexVertexArray19preallocateVerticesEi(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN26btTriangleIndexVertexArray18preallocateIndicesEi(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZNK26btTriangleIndexVertexArray14hasPremadeAabbEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+12)]; - r1 = 1; - r0 = r0 == r1; - r0 = r0 & 1; - r_g0 = r0; - return; -} - -function _ZNK26btTriangleIndexVertexArray14setPremadeAabbERK9btVector3S2_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - heap32[(r0+13)] = heap32[(r1)]; - heap32[(r0+14)] = heap32[(r1+1)]; - r2 = heap32[(fp+2)]; - heap32[(r0+15)] = heap32[(r1+2)]; - r2 = r2 >> 2; - heap32[(r0+16)] = heap32[(r1+3)]; - heap32[(r0+17)] = heap32[(r2)]; - heap32[(r0+18)] = heap32[(r2+1)]; - heap32[(r0+19)] = heap32[(r2+2)]; - heap32[(r0+20)] = heap32[(r2+3)]; - heap32[(r0+12)] = 1; - return; -} - -function _ZNK26btTriangleIndexVertexArray14getPremadeAabbEP9btVector3S1_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - heap32[(r1)] = heap32[(r0+13)]; - heap32[(r1+1)] = heap32[(r0+14)]; - r2 = heap32[(fp+2)]; - heap32[(r1+2)] = heap32[(r0+15)]; - r2 = r2 >> 2; - heap32[(r1+3)] = heap32[(r0+16)]; - heap32[(r2)] = heap32[(r0+17)]; - heap32[(r2+1)] = heap32[(r0+18)]; - heap32[(r2+2)] = heap32[(r0+19)]; - heap32[(r2+3)] = heap32[(r0+20)]; - return; -} - -function _ZNK26btTriangleIndexVertexArray14getNumSubPartsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+6)]; - r_g0 = r0; - return; -} - -function _ZNK26btTriangleIndexVertexArray32getLockedReadOnlyVertexIndexBaseEPPKhRiR14PHY_ScalarTypeS3_S2_S3_S3_S5_i(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+9)]; - r0 = r0 >> 2; - r1 = r1 << 5; - r0 = heap32[(r0+8)]; - r0 = (r0 + r1)|0; - r0 = r0 >> 2; - r1 = heap32[(fp+2)]; - r2 = heap32[(r0+3)]; - r1 = r1 >> 2; - r3 = heap32[(fp+1)]; - heap32[(r1)] = r2; - r1 = r3 >> 2; - r2 = heap32[(r0+4)]; - r3 = heap32[(fp+3)]; - heap32[(r1)] = r2; - r1 = r3 >> 2; - r2 = heap32[(r0+7)]; - r3 = heap32[(fp+4)]; - heap32[(r1)] = r2; - r1 = r3 >> 2; - r2 = heap32[(r0+5)]; - r3 = heap32[(fp+7)]; - heap32[(r1)] = r2; - r1 = r3 >> 2; - r2 = heap32[(r0)]; - r3 = heap32[(fp+5)]; - heap32[(r1)] = r2; - r1 = r3 >> 2; - r2 = heap32[(r0+1)]; - r3 = heap32[(fp+6)]; - heap32[(r1)] = r2; - r1 = r3 >> 2; - r2 = heap32[(r0+2)]; - r3 = heap32[(fp+8)]; - heap32[(r1)] = r2; - r1 = r3 >> 2; - r0 = heap32[(r0+6)]; - heap32[(r1)] = r0; - return; -} - -function _ZN26btTriangleIndexVertexArray24getLockedVertexIndexBaseEPPhRiR14PHY_ScalarTypeS2_S1_S2_S2_S4_i(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+7)]; - r3 = heap32[(fp+9)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r0 = r_g0; - if(r0 >r3) //_LBB507_2 -{ - r0 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r4 = heap32[(fp+3)]; - r5 = heap32[(fp+4)]; - r6 = heap32[(fp+5)]; - r7 = heap32[(fp+6)]; - r8 = heap32[(fp+7)]; - r9 = heap32[(fp+8)]; - r3 = r3 << 5; - r1 = heap32[(r1+8)]; - r1 = (r1 + r3)|0; - r1 = r1 >> 2; - r3 = heap32[(r1+3)]; - r2 = r2 >> 2; - heap32[(r2)] = r3; - r0 = r0 >> 2; - r2 = heap32[(r1+4)]; - heap32[(r0)] = r2; - r0 = r4 >> 2; - r2 = heap32[(r1+7)]; - heap32[(r0)] = r2; - r0 = r5 >> 2; - r2 = heap32[(r1+5)]; - heap32[(r0)] = r2; - r0 = r8 >> 2; - r2 = heap32[(r1)]; - heap32[(r0)] = r2; - r0 = r6 >> 2; - r2 = heap32[(r1+1)]; - heap32[(r0)] = r2; - r0 = r7 >> 2; - r2 = heap32[(r1+2)]; - heap32[(r0)] = r2; - r0 = r9 >> 2; - r1 = heap32[(r1+6)]; - heap32[(r0)] = r1; - return; -} -else{ - r1 = _2E_str367; - r3 = _2E_str1368; - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = 41; - _assert(i7); -} -} - -function _ZN26btTriangleIndexVertexArrayD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV26btTriangleIndexVertexArray; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+8)]; -if(!(r1 ==0)) //_LBB508_4 -{ - r3 = heapU8[r0+36]; -if(!(r3 ==0)) //_LBB508_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+8)] = 0; -} - r1 = 1; - heap8[r0+36] = r1; - heap32[(r2+8)] = 0; - r1 = _ZTV23btStridingMeshInterface; - heap32[(r2+6)] = 0; - r1 = (r1 + 8)|0; - heap32[(r2+7)] = 0; - heap32[(r2)] = r1; -if(!(r0 ==0)) //_LBB508_6 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} - -function _ZN26btTriangleIndexVertexArrayD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV26btTriangleIndexVertexArray; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+8)]; -if(!(r1 ==0)) //_LBB509_4 -{ - r3 = heapU8[r0+36]; -if(!(r3 ==0)) //_LBB509_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+8)] = 0; -} - r1 = 1; - heap8[r0+36] = r1; - heap32[(r2+8)] = 0; - r0 = _ZTV23btStridingMeshInterface; - heap32[(r2+6)] = 0; - r0 = (r0 + 8)|0; - heap32[(r2+7)] = 0; - heap32[(r2)] = r0; - return; -} - -function _ZNK19btTriangleMeshShape7getNameEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = _2E_str372; - r_g0 = r0; - return; -} - -function _ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - f0 = heapFloat[(r1+10)]; - f1 = heapFloat[(r1+6)]; - f2 = heapFloat[(r1+9)]; - f3 = heapFloat[(r1+5)]; - f4 = heapFloat[(r1+8)]; - f5 = heapFloat[(r1+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f6 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - f7 = f_g0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+11)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r0 = heap32[(fp+1)]; - f4 = f4-f5; - f5 = 0.5; - f2 = f2-f3; - f0 = f0-f1; - f1 = heapFloat[(r1+10)]; - f3 = heapFloat[(r1+6)]; - f9 = heapFloat[(r1+9)]; - f10 = heapFloat[(r1+5)]; - f11 = heapFloat[(r1+8)]; - f12 = heapFloat[(r1+4)]; - r0 = r0 >> 2; - f4 = f4*f5; - f2 = f2*f5; - f0 = f0*f5; - f1 = f1+f3; - f3 = f9+f10; - f9 = f11+f12; - f10 = heapFloat[(r0+10)]; - r1 = heap32[(fp+2)]; - r2 = heap32[(fp+3)]; - f4 = f4+f_g0; - f2 = f2+f7; - f0 = f0+f6; - f1 = f1*f5; - f3 = f3*f5; - f5 = f9*f5; - f6 = 0; - if(f10 > 2; - f2 = f4+f2; - f0 = f7*f0; - f3 = f5+f8; - f4 = f10+f11; - f5 = f12-f6; - f1 = f1+f9; - f0 = f2+f0; - f2 = f3-f4; - heapFloat[(r0)] = f5; - f5 = f1-f0; - heapFloat[(r0+1)] = f2; - heapFloat[(r0+2)] = f5; - r1 = r2 >> 2; - f2 = f12+f6; - heap32[(r0+3)] = 0; - f3 = f3+f4; - heapFloat[(r1)] = f2; - f0 = f1+f0; - heapFloat[(r1+1)] = f3; - heapFloat[(r1+2)] = f0; - heap32[(r1+3)] = 0; - return; -} - -function _ZN19btTriangleMeshShape15recalcLocalAabbEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -64;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = 0; -_1: while(true){ - r2 = sp + -16; - r3 = r2 >> 2; - heap32[(fp+-4)] = 0; - heap32[(r3+1)] = 0; - heap32[(r3+2)] = 0; - r4 = (r2 + r1)|0; - heap32[(r3+3)] = 0; - r3 = r4 >> 2; - heap32[(r3)] = 1065353216; - r4 = r0 >> 2; - r5 = heap32[(r4)]; - r5 = r5 >> 2; - r5 = heap32[(r5+16)]; - r6 = sp + -32; - heap32[(g0)] = r6; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - r7 = (r6 + r1)|0; - __FUNCTION_TABLE__[(r5)>>2](i7); - r5 = r7 >> 2; - r7 = (r0 + r1)|0; - f0 = heapFloat[(r5)]; - f1 = heapFloat[(r4+3)]; - f0 = f0+f1; - r7 = r7 >> 2; - heapFloat[(r7+8)] = f0; - heap32[(r3)] = -1082130432; - r3 = heap32[(r4)]; - r3 = r3 >> 2; - r3 = heap32[(r3+16)]; - r8 = sp + -48; - heap32[(g0)] = r8; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = r6 >> 2; - r3 = r8 >> 2; - heap32[(fp+-8)] = heap32[(fp+-12)]; - heap32[(r2+1)] = heap32[(r3+1)]; - heap32[(r2+2)] = heap32[(r3+2)]; - heap32[(r2+3)] = heap32[(r3+3)]; - f0 = heapFloat[(r5)]; - f1 = heapFloat[(r4+3)]; - r1 = (r1 + 4)|0; - f0 = f0-f1; - heapFloat[(r7+4)] = f0; - if(r1 !=12) //_LBB512_1 -{ -continue _1; -} -else{ -break _1; -} -} - return; -} - -function _ZN21SupportVertexCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN21SupportVertexCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN21SupportVertexCallback15processTriangleEP9btVector3ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r1 = r1 >> 2; - r0 = r0 >> 2; - f0 = heapFloat[(r1+22)]; - f1 = heapFloat[(r0)]; - f2 = heapFloat[(r1+23)]; - f3 = heapFloat[(r0+1)]; - f4 = heapFloat[(r1+24)]; - f5 = heapFloat[(r0+2)]; - f1 = f0*f1; - f3 = f2*f3; - f1 = f1+f3; - f3 = f4*f5; - f5 = heapFloat[(r1+21)]; - f1 = f1+f3; - if(f5 >2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(fp+1)]; - r1 = heap32[(r1+12)]; - r1 = r1 >> 2; - r2 = r2 >> 2; - heap32[(r1+1)] = heap32[(r2)]; - heap32[(r1+2)] = heap32[(r2+1)]; - heap32[(r1+3)] = heap32[(r2+2)]; - heap32[(r1+4)] = heap32[(r2+3)]; - heap32[(g0)] = r0; - _ZN19btTriangleMeshShape15recalcLocalAabbEv(i7); - return; -} - -function _ZNK19btTriangleMeshShape15getLocalScalingEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+12)]; - r0 = (r0 + 4)|0; - r_g0 = r0; - return; -} - -function _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV31btInternalTriangleIndexCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV31btInternalTriangleIndexCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallback28internalProcessTriangleIndexEPS2_ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; - var f3; - var f4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(fp)]; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r1+4)]; - f2 = heapFloat[(r1+8)]; - f3 = f0 < f1 ? f0 : f1; - r2 = r2 >> 2; - f3 = f3 < f2 ? f3 : f2; - f4 = heapFloat[(r2+6)]; -if(!(f3 >f4)) //_LBB520_7 -{ - f0 = f0 > f1 ? f0 : f1; - f0 = f0 > f2 ? f0 : f2; - f1 = heapFloat[(r2+2)]; -if(!(f0 f4)) //_LBB520_7 -{ - f0 = f0 > f1 ? f0 : f1; - f0 = f0 > f2 ? f0 : f2; - f1 = heapFloat[(r2+4)]; -if(!(f0 f4)) //_LBB520_7 -{ - f0 = f0 > f1 ? f0 : f1; - f0 = f0 > f2 ? f0 : f2; - f1 = heapFloat[(r2+3)]; -if(!(f0 > 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+2)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r3; - __FUNCTION_TABLE__[(r4)>>2](i7); -} -} -} -} -} -} - return; -} - -function _ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = _2E_str10; - r1 = _2E_str3375; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 188; - _assert(i7); -} - -function _ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -152;var g0 = i7>>2; // save stack - r0 = _ZTV21SupportVertexCallback; - r1 = sp + -120; - r0 = (r0 + 8)|0; - r2 = r1 >> 2; - heap32[(fp+-30)] = r0; - heap32[(r2+1)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - heap32[(r2+4)] = 0; - heap32[(r2+5)] = 1065353216; - heap32[(r2+6)] = 0; - heap32[(r2+7)] = 0; - heap32[(r2+8)] = 0; - heap32[(r2+9)] = 0; - heap32[(r2+10)] = 1065353216; - heap32[(r2+11)] = 0; - heap32[(r2+12)] = 0; - heap32[(r2+13)] = 0; - heap32[(r2+14)] = 0; - heap32[(r2+15)] = 1065353216; - heap32[(r2+16)] = 0; - heap32[(r2+17)] = 0; - heap32[(r2+18)] = 0; - heap32[(r2+19)] = 0; - r0 = heap32[(fp+2)]; - heap32[(r2+20)] = 0; - r0 = r0 >> 2; - heap32[(r2+21)] = -581039253; - f0 = 0; - f1 = heapFloat[(r0+1)]; - f2 = heapFloat[(r0)]; - f3 = heapFloat[(r0+2)]; - f4 = f1*f0; - f5 = f2*f0; - f2 = f2+f4; - f0 = f3*f0; - f1 = f5+f1; - f2 = f2+f0; - f4 = f5+f4; - f0 = f1+f0; - heapFloat[(r2+22)] = f2; - f1 = f4+f3; - heapFloat[(r2+23)] = f0; - heapFloat[(r2+24)] = f1; - r0 = sp + -136; - heap32[(r2+25)] = 0; - r3 = r0 >> 2; - heap32[(fp+-34)] = 1566444395; - heap32[(r3+1)] = 1566444395; - r4 = heap32[(fp+1)]; - heap32[(r3+2)] = 1566444395; - r5 = r4 >> 2; - heap32[(r3+3)] = 0; - r3 = heap32[(r5)]; - r3 = r3 >> 2; - r3 = heap32[(r3+15)]; - r5 = sp + -16; - r6 = r5 >> 2; - heap32[(fp+-4)] = -581039253; - heap32[(r6+1)] = -581039253; - heap32[(r6+2)] = -581039253; - heap32[(r6+3)] = 0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r0 = heap32[(fp)]; - f0 = heapFloat[(r2+4)]; - f1 = heapFloat[(r2+3)]; - f2 = heapFloat[(r2+2)]; - r0 = r0 >> 2; - heap32[(r0)] = heap32[(r2+1)]; - heapFloat[(r0+1)] = f2; - heapFloat[(r0+2)] = f1; - heapFloat[(r0+3)] = f0; - return; -} - -function _ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -56;var g0 = i7>>2; // save stack - r0 = _ZTVZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback; - r1 = sp + -40; - r0 = (r0 + 8)|0; - r2 = heap32[(fp+2)]; - r3 = r1 >> 2; - r4 = heap32[(fp+1)]; - heap32[(fp+-10)] = r0; - r0 = r2 >> 2; - heap32[(r3+1)] = r4; - heap32[(r3+2)] = heap32[(r0)]; - heap32[(r3+3)] = heap32[(r0+1)]; - r4 = heap32[(fp+3)]; - heap32[(r3+4)] = heap32[(r0+2)]; - r5 = r4 >> 2; - heap32[(r3+5)] = heap32[(r0+3)]; - heap32[(r3+6)] = heap32[(r5)]; - heap32[(r3+7)] = heap32[(r5+1)]; - r0 = heap32[(fp)]; - heap32[(r3+8)] = heap32[(r5+2)]; - r0 = r0 >> 2; - heap32[(r3+9)] = heap32[(r5+3)]; - r0 = heap32[(r0+12)]; - r3 = r0 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r4; - __FUNCTION_TABLE__[(r3)>>2](i7); - return; -} - -function _ZN19btTriangleMeshShapeD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV14btConcaveShape; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN19btTriangleMeshShapeD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV14btConcaveShape; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _GLOBAL__D__ZN19btGenericMemoryPool24allocate_from_free_nodesEj(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN16btPointCollectorD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV16btPointCollector; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN16btPointCollectorD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV16btPointCollector; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN16btPointCollector20setShapeIdentifiersAEii(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN16btPointCollector20setShapeIdentifiersBEii(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN16btPointCollector15addContactPointERK9btVector3S2_f(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - f0 = heapFloat[(fp+3)]; - r1 = r0 >> 2; - f1 = heapFloat[(r1+9)]; -if(!(f1 <=f0)) //_LBB531_2 -{ - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r4 = 1; - r2 = r2 >> 2; - heap8[r0+40] = r4; - heap32[(r1+1)] = heap32[(r2)]; - heap32[(r1+2)] = heap32[(r2+1)]; - heap32[(r1+3)] = heap32[(r2+2)]; - r0 = r3 >> 2; - heap32[(r1+4)] = heap32[(r2+3)]; - heap32[(r1+5)] = heap32[(r0)]; - heap32[(r1+6)] = heap32[(r0+1)]; - heap32[(r1+7)] = heap32[(r0+2)]; - heap32[(r1+8)] = heap32[(r0+3)]; - heapFloat[(r1+9)] = f0; -} - return; -} - -function _ZN27btContinuousConvexCollisionD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV12btConvexCast; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN27btContinuousConvexCollisionD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV12btConvexCast; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; - var r24; - var r25; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; -var __label__ = 0; - i7 = sp + -816;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+1)]; - r2 = 0; - r3 = r1 >> 2; - heap8[r1+312] = r2; - r4 = 1; - heap32[(r3)] = 0; - heap8[r1+356] = r4; - heap32[(r3+73)] = 1566444395; - heap32[(r3+74)] = 1566444395; - heap32[(r3+75)] = 1566444395; - heap32[(r3+76)] = 0; - heap8[r1+352] = r2; - heap32[(r3+84)] = 0; - heap32[(r3+85)] = 0; - heap32[(r3+86)] = 0; - heap32[(r3+87)] = 0; - r3 = heapU8[r1+332]; - r5 = heap32[(fp+1)]; - r6 = heap32[(fp+2)]; - r3 = r3 & 240; - r7 = r6 >> 2; - heap8[r1+332] = r3; - r1 = r5 >> 2; - f0 = heapFloat[(r7+14)]; - f1 = heapFloat[(r1+14)]; - f2 = heapFloat[(r7+13)]; - f3 = heapFloat[(r1+13)]; - f4 = heapFloat[(r7+12)]; - f5 = heapFloat[(r1+12)]; - r3 = sp + -40; - r7 = sp + -44; - heap32[(g0)] = r5; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r7; - _ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7); - r3 = r3 >> 2; - f6 = heapFloat[(r3+2)]; - f7 = heapFloat[(fp+-11)]; - f8 = heapFloat[(r3+1)]; - f9 = heapFloat[(fp+-10)]; - r3 = sp + -96; - f9 = f9*f7; - f8 = f8*f7; - r6 = r3 >> 2; - heapFloat[(fp+-24)] = f9; - f6 = f6*f7; - heapFloat[(r6+1)] = f8; - r7 = heap32[(fp+3)]; - r8 = heap32[(fp+4)]; - heapFloat[(r6+2)] = f6; - r9 = r8 >> 2; - heap32[(r6+3)] = 0; - r6 = r7 >> 2; - f7 = heapFloat[(r9+14)]; - f10 = heapFloat[(r6+14)]; - f11 = heapFloat[(r9+13)]; - f12 = heapFloat[(r6+13)]; - f13 = heapFloat[(r9+12)]; - f14 = heapFloat[(r6+12)]; - r9 = sp + -16; - r10 = sp + -20; - heap32[(g0)] = r7; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r10; - _ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7); - r8 = r9 >> 2; - f15 = heapFloat[(r8+2)]; - f16 = heapFloat[(fp+-5)]; - f17 = heapFloat[(r8+1)]; - f18 = heapFloat[(fp+-4)]; - r8 = sp + -112; - f18 = f18*f16; - f17 = f17*f16; - r9 = r8 >> 2; - heapFloat[(fp+-28)] = f18; - f15 = f15*f16; - heapFloat[(r9+1)] = f17; - heapFloat[(r9+2)] = f15; - heap32[(r9+3)] = 0; - r9 = heap32[(r0+3)]; - r10 = r9 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+4)]; - heap32[(g0)] = r9; - __FUNCTION_TABLE__[(r10)>>2](i7); - f16 = f_g0; - r9 = heap32[(r0+4)]; - r10 = r9 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+4)]; - heap32[(g0)] = r9; - f9 = f9*f9; - f8 = f8*f8; - __FUNCTION_TABLE__[(r10)>>2](i7); - f19 = f_g0; - f8 = f9+f8; - f6 = f6*f6; - f6 = f8+f6; - heapFloat[(g0)] = f6; - f6 = f18*f18; - f8 = f17*f17; - sqrtf(i7); - f9 = f_g0; - f11 = f11-f12; - f2 = f2-f3; - f3 = f13-f14; - f4 = f4-f5; - f5 = f6+f8; - f6 = f15*f15; - f8 = f11-f2; - f12 = f3-f4; - f7 = f7-f10; - f0 = f0-f1; - f1 = f5+f6; - f5 = f7-f0; - heapFloat[(g0)] = f1; - f1 = f12*f12; - f6 = f8*f8; - sqrtf(i7); - f1 = f1+f6; - f6 = f5*f5; - f1 = f1+f6; - f6 = f9*f16; - f9 = f_g0*f19; - heapFloat[(g0)] = f1; - f1 = f6+f9; - sqrtf(i7); - f6 = f_g0+f1; - f9 = 0; -_1: do { -if(!(f6 ==f9)) //_LBB534_21 -{ - r9 = _ZTV16btPointCollector; - r9 = (r9 + 8)|0; - r10 = sp + -176; - heap32[(fp+-44)] = r9; - r11 = r10 >> 2; - heap32[(r11+9)] = 1566444395; - heap8[sp+-136] = r2; - r12 = heap32[(r0+4)]; - r13 = r12 >> 2; - r13 = heap32[(r13)]; - r13 = r13 >> 2; - r13 = heap32[(r13+11)]; - r14 = heap32[(r0+2)]; - r15 = heap32[(r0+1)]; - heap32[(g0)] = r12; - __FUNCTION_TABLE__[(r13)>>2](i7); - f6 = f_g0; - r12 = heap32[(r0+3)]; - r13 = r12 >> 2; - r13 = heap32[(r13)]; - r13 = r13 >> 2; - r13 = heap32[(r13+11)]; - heap32[(g0)] = r12; - __FUNCTION_TABLE__[(r13)>>2](i7); - r12 = heap32[(r0+4)]; - r13 = heap32[(r0+3)]; - r16 = r12 >> 2; - r17 = r13 >> 2; - r18 = _ZTV17btGjkPairDetector; - r16 = heap32[(r16+1)]; - r17 = heap32[(r17+1)]; - r19 = sp + -256; - r18 = (r18 + 8)|0; - r20 = r19 >> 2; - heap32[(fp+-64)] = r18; - heap32[(r20+1)] = 0; - heap32[(r20+2)] = 1065353216; - heap32[(r20+3)] = 0; - heap32[(r20+4)] = 0; - heap32[(r20+5)] = r14; - heap32[(r20+6)] = r15; - heap32[(r20+7)] = r13; - heap32[(r20+8)] = r12; - heap32[(r20+9)] = r17; - heap32[(r20+10)] = r16; - heapFloat[(r20+11)] = f_g0; - heapFloat[(r20+12)] = f6; - heap8[sp+-204] = r2; - r12 = sp + -392; - heap32[(r20+15)] = -1; - r13 = r12 >> 2; - heap32[(r20+18)] = 1; - heap32[(r13+32)] = 1566444395; - heap32[(r13+33)] = 0; - heap32[(fp+-98)] = heap32[(r1)]; - heap32[(r13+1)] = heap32[(r1+1)]; - heap32[(r13+2)] = heap32[(r1+2)]; - heap32[(r13+3)] = heap32[(r1+3)]; - heap32[(r13+4)] = heap32[(r1+4)]; - heap32[(r13+5)] = heap32[(r1+5)]; - heap32[(r13+6)] = heap32[(r1+6)]; - heap32[(r13+7)] = heap32[(r1+7)]; - heap32[(r13+8)] = heap32[(r1+8)]; - heap32[(r13+9)] = heap32[(r1+9)]; - heap32[(r13+10)] = heap32[(r1+10)]; - heap32[(r13+11)] = heap32[(r1+11)]; - heap32[(r13+12)] = heap32[(r1+12)]; - heap32[(r13+13)] = heap32[(r1+13)]; - heap32[(r13+14)] = heap32[(r1+14)]; - heap32[(r13+15)] = heap32[(r1+15)]; - heap32[(r13+16)] = heap32[(r6)]; - heap32[(r13+17)] = heap32[(r6+1)]; - heap32[(r13+18)] = heap32[(r6+2)]; - heap32[(r13+19)] = heap32[(r6+3)]; - heap32[(r13+20)] = heap32[(r6+4)]; - heap32[(r13+21)] = heap32[(r6+5)]; - heap32[(r13+22)] = heap32[(r6+6)]; - heap32[(r13+23)] = heap32[(r6+7)]; - heap32[(r13+24)] = heap32[(r6+8)]; - heap32[(r13+25)] = heap32[(r6+9)]; - heap32[(r13+26)] = heap32[(r6+10)]; - heap32[(r13+27)] = heap32[(r6+11)]; - heap32[(r13+28)] = heap32[(r6+12)]; - heap32[(r13+29)] = heap32[(r6+13)]; - heap32[(r13+30)] = heap32[(r6+14)]; - heap32[(r13+31)] = heap32[(r6+15)]; - heap32[(g0)] = r19; - heap32[(g0+1)] = r12; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = 0; - heap32[(g0+4)] = 0; - _ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7); - f6 = heapFloat[(r11+5)]; - r1 = heapU8[sp+-136]; - r6 = sp + -128; - heapFloat[(fp+-32)] = f6; - f10 = heapFloat[(r11+6)]; - r10 = r6 >> 2; - heapFloat[(r10+1)] = f10; - f13 = heapFloat[(r11+7)]; - heapFloat[(r10+2)] = f13; - f14 = heapFloat[(r11+8)]; - heapFloat[(r10+3)] = f14; -if(!(r1 ==0)) //_LBB534_21 -{ - r1 = heap32[(fp+5)]; - f15 = heapFloat[(r11+1)]; - f16 = heapFloat[(r11+2)]; - f17 = heapFloat[(r11+3)]; - f18 = f12*f15; - f19 = f8*f16; - r12 = sp + -456; - f18 = f18+f19; - f19 = f5*f17; - f20 = heapFloat[(r11+9)]; - f21 = heapFloat[(r11+4)]; - f18 = f18+f19; - r11 = (r12 + 48)|0; -_4: while(true){ - f19 = 0.0010000000474974513; - if(f20 >f19) //_LBB534_3 -{ - r13 = r1 >> 2; - r14 = heap32[(r13+42)]; -if(!(r14 ==0)) //_LBB534_5 -{ - r15 = r14 >> 2; - r15 = heap32[(r15)]; - r15 = r15 >> 2; - r15 = heap32[(r15+5)]; - r16 = sp + -80; - r17 = r16 >> 2; - heap32[(fp+-20)] = 1065353216; - heap32[(r17+1)] = 1065353216; - heap32[(r17+2)] = 1065353216; - heap32[(r17+3)] = 0; - heap32[(g0)] = r14; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = 1045220557; - heap32[(g0+3)] = r16; - __FUNCTION_TABLE__[(r15)>>2](i7); -} - r2 = (r2 + 1)|0; - if(r2 >64) //_LBB534_21 -{ -break _1; -} -else{ - f6 = f12*f15; - f10 = f8*f16; - f6 = f6+f10; - f10 = f5*f17; - f18 = f6+f10; - f6 = f18+f1; - f10 = 1.1920928955078125e-007; - if(f6 <=f10) //_LBB534_21 -{ -break _1; -} -else{ - f6 = f20/f6; - f19 = f9+f6; - f6 = 0; - if(f19 f10) //_LBB534_21 -{ -break _1; -} -else{ - if(f19 <=f9) //_LBB534_21 -{ -break _1; -} -else{ - heap32[(g0)] = r5; - heapFloat[(g0+1)] = f4; - heapFloat[(g0+2)] = f2; - heapFloat[(g0+3)] = f0; - heap32[(g0+4)] = r3; - heapFloat[(g0+5)] = f19; - heap32[(g0+6)] = r12; - _ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7); - r14 = sp + -520; - heap32[(g0)] = r7; - heapFloat[(g0+1)] = f3; - heapFloat[(g0+2)] = f11; - heapFloat[(g0+3)] = f7; - heap32[(g0+4)] = r8; - heapFloat[(g0+5)] = f19; - heap32[(g0+6)] = r14; - _ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7); - r15 = heap32[(r13+42)]; -if(!(r15 ==0)) //_LBB534_12 -{ - r16 = r15 >> 2; - r16 = heap32[(r16)]; - r16 = r16 >> 2; - r16 = heap32[(r16+5)]; - r17 = sp + -64; - r19 = r17 >> 2; - heap32[(fp+-16)] = 1065353216; - heap32[(r19+1)] = 0; - heap32[(r19+2)] = 0; - heap32[(r19+3)] = 0; - heap32[(g0)] = r15; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = 1045220557; - heap32[(g0+3)] = r17; - __FUNCTION_TABLE__[(r16)>>2](i7); -} - r15 = heap32[(r13)]; - r15 = r15 >> 2; - r15 = heap32[(r15)]; - heap32[(g0)] = r1; - heapFloat[(g0+1)] = f19; - r16 = sp + -568; - __FUNCTION_TABLE__[(r15)>>2](i7); - r15 = r16 >> 2; - heap32[(fp+-142)] = r9; - r17 = 0; - heap32[(r15+9)] = 1566444395; - heap8[sp+-528] = r17; - r19 = heap32[(r0+4)]; - r20 = heap32[(r0+3)]; - r21 = heap32[(r0+1)]; - r22 = heap32[(r0+2)]; - r23 = sp + -648; - heap32[(fp+-162)] = r18; - r24 = r23 >> 2; - heap32[(r24+1)] = 0; - heap32[(r24+2)] = 1065353216; - heap32[(r24+3)] = 0; - heap32[(r24+4)] = 0; - heap32[(r24+5)] = r22; - heap32[(r24+6)] = r21; - heap32[(r24+7)] = r20; - r21 = r20 >> 2; - heap32[(r24+8)] = r19; - r22 = heap32[(r21+1)]; - heap32[(r24+9)] = r22; - r22 = r19 >> 2; - r25 = heap32[(r22+1)]; - heap32[(r24+10)] = r25; - r21 = heap32[(r21)]; - r21 = r21 >> 2; - r21 = heap32[(r21+11)]; - heap32[(g0)] = r20; - __FUNCTION_TABLE__[(r21)>>2](i7); - heapFloat[(r24+11)] = f_g0; - r20 = heap32[(r22)]; - r20 = r20 >> 2; - r20 = heap32[(r20+11)]; - heap32[(g0)] = r19; - __FUNCTION_TABLE__[(r20)>>2](i7); - heapFloat[(r24+12)] = f_g0; - heap8[sp+-596] = r17; - r19 = sp + -784; - heap32[(r24+15)] = -1; - r20 = r19 >> 2; - heap32[(r24+18)] = 1; - heap32[(r20+32)] = 1566444395; - heap32[(r20+33)] = 0; - r21 = r12 >> 2; - heap32[(fp+-196)] = heap32[(fp+-114)]; - heap32[(r20+1)] = heap32[(r21+1)]; - heap32[(r20+2)] = heap32[(r21+2)]; - heap32[(r20+3)] = heap32[(r21+3)]; - heap32[(r20+4)] = heap32[(r21+4)]; - heap32[(r20+5)] = heap32[(r21+5)]; - heap32[(r20+6)] = heap32[(r21+6)]; - heap32[(r20+7)] = heap32[(r21+7)]; - heap32[(r20+8)] = heap32[(r21+8)]; - heap32[(r20+9)] = heap32[(r21+9)]; - heap32[(r20+10)] = heap32[(r21+10)]; - heap32[(r20+11)] = heap32[(r21+11)]; - heap32[(r20+12)] = heap32[(r21+12)]; - heap32[(r20+13)] = heap32[(r21+13)]; - heap32[(r20+14)] = heap32[(r21+14)]; - heap32[(r20+15)] = heap32[(r21+15)]; - r14 = r14 >> 2; - heap32[(r20+16)] = heap32[(fp+-130)]; - heap32[(r20+17)] = heap32[(r14+1)]; - heap32[(r20+18)] = heap32[(r14+2)]; - heap32[(r20+19)] = heap32[(r14+3)]; - heap32[(r20+20)] = heap32[(r14+4)]; - heap32[(r20+21)] = heap32[(r14+5)]; - heap32[(r20+22)] = heap32[(r14+6)]; - heap32[(r20+23)] = heap32[(r14+7)]; - heap32[(r20+24)] = heap32[(r14+8)]; - heap32[(r20+25)] = heap32[(r14+9)]; - heap32[(r20+26)] = heap32[(r14+10)]; - heap32[(r20+27)] = heap32[(r14+11)]; - heap32[(r20+28)] = heap32[(r14+12)]; - heap32[(r20+29)] = heap32[(r14+13)]; - heap32[(r20+30)] = heap32[(r14+14)]; - heap32[(r20+31)] = heap32[(r14+15)]; - heap32[(g0)] = r23; - heap32[(g0+1)] = r19; - heap32[(g0+2)] = r16; - heap32[(g0+3)] = 0; - heap32[(g0+4)] = 0; - _ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7); - r14 = heapU8[sp+-528]; - if(r14 !=0) //_LBB534_14 -{ - f20 = heapFloat[(r15+9)]; - if(f20 >=f6) //_LBB534_17 -{ - f6 = heapFloat[(r15+5)]; - heapFloat[(fp+-32)] = f6; - f10 = heapFloat[(r15+6)]; - heapFloat[(r10+1)] = f10; - f13 = heapFloat[(r15+7)]; - heapFloat[(r10+2)] = f13; - f14 = heapFloat[(r15+8)]; - heapFloat[(r10+3)] = f14; - f15 = heapFloat[(r15+1)]; - f16 = heapFloat[(r15+2)]; - f17 = heapFloat[(r15+3)]; - f21 = heapFloat[(r15+4)]; - heap32[(fp+-142)] = r9; - f9 = f19; -} -else{ -__label__ = 14; -break _4; -} -} -else{ -__label__ = 15; -break _4; -} -} -} -} -} -} -} -else{ -__label__ = 18; -break _4; -} -} -switch(__label__ ){//multiple entries -case 18: - r0 = r1 >> 2; - f0 = f18+f1; - f1 = heapFloat[(r0+43)]; - if(f0 <=f1) //_LBB534_21 -{ -break _1; -} -else{ - heapFloat[(r0+41)] = f9; - heapFloat[(r0+33)] = f15; - heapFloat[(r0+34)] = f16; - heapFloat[(r0+35)] = f17; - heapFloat[(r0+36)] = f21; - heapFloat[(r0+37)] = f6; - heapFloat[(r0+38)] = f10; - heapFloat[(r0+39)] = f13; - heapFloat[(r0+40)] = f14; - r0 = 1; - r_g0 = r0; - return; -} -break; -case 14: - heapFloat[(r13+41)] = f19; - f0 = heapFloat[(r15+4)]; - f1 = heapFloat[(r15+3)]; - f2 = heapFloat[(r15+2)]; - heap32[(r13+33)] = heap32[(r15+1)]; - heapFloat[(r13+34)] = f2; - heapFloat[(r13+35)] = f1; - heapFloat[(r13+36)] = f0; - heap32[(r13+37)] = heap32[(r15+5)]; - heap32[(r13+38)] = heap32[(r15+6)]; - heap32[(r13+39)] = heap32[(r15+7)]; - heap32[(r13+40)] = heap32[(r15+8)]; - r17 = r4; -break; -} - heap32[(fp+-142)] = r9; - r0 = r17 & 255; - r_g0 = r0; - return; -} -} -} while(0); - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - f0 = heapFloat[(fp+5)]; - f1 = heapFloat[(fp+1)]; - r2 = heap32[(fp+6)]; - f2 = heapFloat[(fp+2)]; - f1 = f1*f0; - f3 = heapFloat[(r1+12)]; - f4 = heapFloat[(r1+14)]; - f5 = heapFloat[(r1+13)]; - f6 = heapFloat[(fp+3)]; - f2 = f2*f0; - r1 = r2 >> 2; - f1 = f3+f1; - f3 = f6*f0; - f2 = f5+f2; - heapFloat[(r1+12)] = f1; - f1 = f4+f3; - heapFloat[(r1+13)] = f2; - r2 = heap32[(fp+4)]; - heapFloat[(r1+14)] = f1; - r2 = r2 >> 2; - heap32[(r1+15)] = 0; - f1 = heapFloat[(r2)]; - f2 = heapFloat[(r2+1)]; - f3 = heapFloat[(r2+2)]; - f1 = f1*f1; - f2 = f2*f2; - f1 = f1+f2; - f2 = f3*f3; - f1 = f1+f2; - heapFloat[(g0)] = f1; - sqrtf(i7); - f1 = f_g0; - f2 = f1*f0; - f3 = 0.78539818525314331; - if(f2 >f3) //_LBB535_2 -{ - f1 = f3/f0; -} - f2 = 0.0010000000474974513; - if(f1 >=f2) //_LBB535_5 -{ - f2 = 0.5; - f2 = f1*f2; - f2 = f2*f0; - heapFloat[(g0)] = f2; - sinf(i7); - f3 = heapFloat[(r2+2)]; - f2 = f_g0/f1; - f5 = heapFloat[(r2+1)]; - f6 = heapFloat[(r2)]; - f4 = f3*f2; - f3 = f5*f2; - f2 = f6*f2; -} -else{ - f2 = f0*f0; - f2 = f2*f0; - f3 = -0.02083333395421505; - f2 = f2*f3; - f3 = 0.5; - f2 = f2*f1; - f3 = f0*f3; - f2 = f2*f1; - f4 = heapFloat[(r2+2)]; - f2 = f3+f2; - f3 = heapFloat[(r2+1)]; - f5 = heapFloat[(r2)]; - f4 = f4*f2; - f3 = f3*f2; - f2 = f5*f2; -} - f0 = f1*f0; - f1 = 0.5; - f0 = f0*f1; - heapFloat[(g0)] = f0; - cosf(i7); - f0 = f_g0; - r2 = sp + -16; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - _ZNK11btMatrix3x311getRotationER12btQuaternion(i7); - r0 = r2 >> 2; - f1 = heapFloat[(fp+-4)]; - f5 = heapFloat[(r0+3)]; - f6 = heapFloat[(r0+1)]; - f7 = heapFloat[(r0+2)]; - f8 = f0*f6; - f9 = f3*f5; - f10 = f0*f1; - f11 = f2*f5; - f12 = f0*f7; - f13 = f4*f5; - f8 = f8+f9; - f9 = f4*f1; - f10 = f10+f11; - f11 = f3*f7; - f0 = f0*f5; - f5 = f2*f1; - f12 = f12+f13; - f13 = f2*f6; - f8 = f8+f9; - f2 = f2*f7; - f9 = f10+f11; - f10 = f4*f6; - f2 = f8-f2; - f8 = f9-f10; - f0 = f0-f5; - f5 = f3*f6; - f6 = f12+f13; - f1 = f3*f1; - f1 = f6-f1; - f3 = f8*f8; - f6 = f2*f2; - f0 = f0-f5; - f4 = f4*f7; - f0 = f0-f4; - f3 = f3+f6; - f4 = f1*f1; - f3 = f3+f4; - f4 = f0*f0; - f3 = f3+f4; - heapFloat[(g0)] = f3; - sqrtf(i7); - f3 = f_g0; - f4 = 0; - if(f3 !=f4) //_LBB535_8 -{ - f4 = 1; - f3 = f4/f3; - f5 = f8*f3; - f2 = f2*f3; - f1 = f1*f3; - f6 = f5*f5; - f7 = f2*f2; - f0 = f0*f3; - f3 = f6+f7; - f6 = f1*f1; - f3 = f3+f6; - f6 = f0*f0; - f7 = 2; - f3 = f3+f6; - f3 = f7/f3; - f6 = f1*f3; - f7 = f2*f3; - f8 = f2*f7; - f1 = f1*f6; - f9 = f8+f1; - f9 = f4-f9; - f10 = f5*f7; - f11 = f0*f6; - f12 = f5*f6; - f7 = f0*f7; - f13 = f10-f11; - heapFloat[(r1)] = f9; - f3 = f5*f3; - f9 = f12+f7; - heapFloat[(r1+1)] = f13; - f5 = f5*f3; - heapFloat[(r1+2)] = f9; - f1 = f5+f1; - f9 = f10+f11; - heap32[(r1+3)] = 0; - f2 = f2*f6; - f0 = f0*f3; - f1 = f4-f1; - heapFloat[(r1+4)] = f9; - f3 = f2-f0; - heapFloat[(r1+5)] = f1; - heapFloat[(r1+6)] = f3; - f1 = f12-f7; - heap32[(r1+7)] = 0; - f3 = f5+f8; - f0 = f2+f0; - heapFloat[(r1+8)] = f1; - f1 = f4-f3; - heapFloat[(r1+9)] = f0; - heapFloat[(r1+10)] = f1; - heap32[(r1+11)] = 0; - return; -} -else{ - r1 = _2E_str584; - r0 = _2E_str685; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 188; - _assert(i7); -} -} - -function _ZN12btConvexCastD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV12btConvexCast; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN12btConvexCastD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV12btConvexCast; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN15btGjkConvexCastD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV12btConvexCast; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN15btGjkConvexCastD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV12btConvexCast; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; -var __label__ = 0; - i7 = sp + -288;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+1)]; - r2 = 0; - r3 = r1 >> 2; - heap8[r1+312] = r2; - r4 = 1; - heap32[(r3)] = 0; - heap8[r1+356] = r4; - heap32[(r3+73)] = 1566444395; - heap32[(r3+74)] = 1566444395; - heap32[(r3+75)] = 1566444395; - heap32[(r3+76)] = 0; - heap8[r1+352] = r2; - heap32[(r3+84)] = 0; - heap32[(r3+85)] = 0; - heap32[(r3+86)] = 0; - heap32[(r3+87)] = 0; - r3 = heapU8[r1+332]; - r4 = heap32[(fp+2)]; - r5 = heap32[(fp+1)]; - r6 = heap32[(fp+4)]; - r7 = heap32[(fp+3)]; - r3 = r3 & 240; - r4 = r4 >> 2; - heap8[r1+332] = r3; - r1 = r5 >> 2; - r3 = r6 >> 2; - r5 = r7 >> 2; - r6 = _ZTV16btPointCollector; - f0 = heapFloat[(r4+14)]; - f1 = heapFloat[(r1+14)]; - f2 = heapFloat[(r3+14)]; - f3 = heapFloat[(r5+14)]; - f4 = heapFloat[(r4+13)]; - f5 = heapFloat[(r1+13)]; - f6 = heapFloat[(r3+13)]; - f7 = heapFloat[(r5+13)]; - f8 = heapFloat[(r4+12)]; - f9 = heapFloat[(r1+12)]; - f10 = heapFloat[(r3+12)]; - f11 = heapFloat[(r5+12)]; - r7 = sp + -48; - r6 = (r6 + 8)|0; - r8 = r7 >> 2; - heap32[(fp+-12)] = r6; - heap32[(r8+9)] = 1566444395; - heap8[sp+-8] = r2; - r6 = heap32[(r0+3)]; - r9 = heap32[(r0+2)]; - r0 = heap32[(r0+1)]; - r10 = _ZTV17btGjkPairDetector; - r11 = sp + -128; - r10 = (r10 + 8)|0; - heap32[(fp+-32)] = r10; - r10 = r11 >> 2; - heap32[(r10+1)] = 0; - heap32[(r10+2)] = 1065353216; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = 0; - heap32[(r10+5)] = 0; - heap32[(r10+6)] = r0; - heap32[(r10+7)] = r9; - r0 = r9 >> 2; - heap32[(r10+8)] = r6; - r12 = heap32[(r0+1)]; - heap32[(r10+9)] = r12; - r12 = r6 >> 2; - r13 = heap32[(r12+1)]; - heap32[(r10+10)] = r13; - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r0 = heap32[(r0+11)]; - heap32[(g0)] = r9; - __FUNCTION_TABLE__[(r0)>>2](i7); - heapFloat[(r10+11)] = f_g0; - r0 = heap32[(r12)]; - r0 = r0 >> 2; - r0 = heap32[(r0+11)]; - heap32[(g0)] = r6; - __FUNCTION_TABLE__[(r0)>>2](i7); - heapFloat[(r10+12)] = f_g0; - heap8[sp+-76] = r2; - r0 = sp + -264; - heap32[(r10+15)] = -1; - r6 = r0 >> 2; - heap32[(r10+18)] = 1; - heap32[(r6+32)] = 1566444395; - heap32[(r6+33)] = 0; - heap32[(fp+-66)] = heap32[(r1)]; - heap32[(r6+1)] = heap32[(r1+1)]; - heap32[(r6+2)] = heap32[(r1+2)]; - heap32[(r6+3)] = heap32[(r1+3)]; - heap32[(r6+4)] = heap32[(r1+4)]; - heap32[(r6+5)] = heap32[(r1+5)]; - heap32[(r6+6)] = heap32[(r1+6)]; - heap32[(r6+7)] = heap32[(r1+7)]; - heap32[(r6+8)] = heap32[(r1+8)]; - heap32[(r6+9)] = heap32[(r1+9)]; - heap32[(r6+10)] = heap32[(r1+10)]; - heap32[(r6+11)] = heap32[(r1+11)]; - heap32[(r6+12)] = heap32[(r1+12)]; - heap32[(r6+13)] = heap32[(r1+13)]; - heap32[(r6+14)] = heap32[(r1+14)]; - heap32[(r6+15)] = heap32[(r1+15)]; - heap32[(r6+16)] = heap32[(r5)]; - heap32[(r6+17)] = heap32[(r5+1)]; - heap32[(r6+18)] = heap32[(r5+2)]; - heap32[(r6+19)] = heap32[(r5+3)]; - heap32[(r6+20)] = heap32[(r5+4)]; - heap32[(r6+21)] = heap32[(r5+5)]; - heap32[(r6+22)] = heap32[(r5+6)]; - heap32[(r6+23)] = heap32[(r5+7)]; - heap32[(r6+24)] = heap32[(r5+8)]; - heap32[(r6+25)] = heap32[(r5+9)]; - heap32[(r6+26)] = heap32[(r5+10)]; - heap32[(r6+27)] = heap32[(r5+11)]; - heap32[(r6+28)] = heap32[(r5+12)]; - heap32[(r6+29)] = heap32[(r5+13)]; - heap32[(r6+30)] = heap32[(r5+14)]; - heap32[(r6+31)] = heap32[(r5+15)]; - heap32[(g0)] = r11; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = 0; - heap32[(g0+4)] = 0; - _ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7); - r9 = heapU8[sp+-8]; -_1: do { -if(!(r9 ==0)) //_LBB540_14 -{ - f0 = f0-f1; - f1 = f2-f3; - f2 = f4-f5; - f3 = f6-f7; - f4 = f8-f9; - f5 = f10-f11; - r9 = heap32[(fp+5)]; - f0 = f0-f1; - f1 = f2-f3; - f2 = f4-f5; - f3 = heapFloat[(r8+8)]; - f4 = heapFloat[(r8+7)]; - f5 = heapFloat[(r8+6)]; - f6 = heapFloat[(r8+5)]; - f7 = heapFloat[(r8+9)]; - f8 = heapFloat[(r8+1)]; - f9 = heapFloat[(r8+2)]; - f10 = heapFloat[(r8+3)]; - f11 = heapFloat[(r8+4)]; - f12 = 0; -_3: while(true){ - f13 = 0.0010000000474974513; - if(f7 >f13) //_LBB540_2 -{ - r2 = (r2 + 1)|0; - if(r2 >32) //_LBB540_14 -{ -break _1; -} -else{ - f3 = f2*f8; - f4 = f1*f9; - f3 = f3+f4; - f4 = f0*f10; - f3 = f3+f4; - f3 = f7/f3; - f13 = f12-f3; - f3 = 0; - if(f13 f4) //_LBB540_14 -{ -break _1; -} -else{ - if(f13 <=f12) //_LBB540_14 -{ -break _1; -} -else{ - r10 = r9 >> 2; - r12 = heap32[(r10)]; - r12 = r12 >> 2; - r12 = heap32[(r12)]; - heap32[(g0)] = r9; - heapFloat[(g0+1)] = f13; - __FUNCTION_TABLE__[(r12)>>2](i7); - f5 = heapFloat[(r4+12)]; - f6 = heapFloat[(r1+12)]; - f4 = f4-f13; - f6 = f6*f4; - f5 = f5*f13; - f5 = f6+f5; - heapFloat[(r6+12)] = f5; - f5 = heapFloat[(r1+13)]; - f6 = heapFloat[(r4+13)]; - f5 = f5*f4; - f6 = f6*f13; - f5 = f5+f6; - heapFloat[(r6+13)] = f5; - f5 = heapFloat[(r1+14)]; - f6 = heapFloat[(r4+14)]; - f5 = f5*f4; - f6 = f6*f13; - f5 = f5+f6; - heapFloat[(r6+14)] = f5; - f5 = heapFloat[(r5+12)]; - f6 = heapFloat[(r3+12)]; - f5 = f5*f4; - f6 = f6*f13; - f5 = f5+f6; - heapFloat[(r6+28)] = f5; - f5 = heapFloat[(r5+13)]; - f6 = heapFloat[(r3+13)]; - f5 = f5*f4; - f6 = f6*f13; - f5 = f5+f6; - heapFloat[(r6+29)] = f5; - f5 = heapFloat[(r5+14)]; - f6 = heapFloat[(r3+14)]; - f4 = f5*f4; - f5 = f6*f13; - f4 = f4+f5; - heapFloat[(r6+30)] = f4; - heap32[(g0)] = r11; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = 0; - heap32[(g0+4)] = 0; - _ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7); - r12 = heapU8[sp+-8]; - if(r12 ==0) //_LBB540_14 -{ -break _1; -} -else{ - f7 = heapFloat[(r8+9)]; - if(f7 >=f3) //_LBB540_9 -{ - f6 = heapFloat[(r8+5)]; - f5 = heapFloat[(r8+6)]; - f4 = heapFloat[(r8+7)]; - f3 = heapFloat[(r8+8)]; - f8 = heapFloat[(r8+1)]; - f9 = heapFloat[(r8+2)]; - f10 = heapFloat[(r8+3)]; - f11 = heapFloat[(r8+4)]; - f12 = f13; -} -else{ -__label__ = 8; -break _3; -} -} -} -} -} -} -} -else{ -__label__ = 11; -break _3; -} -} -switch(__label__ ){//multiple entries -case 11: - r0 = r9 >> 2; - f2 = f8*f2; - f1 = f9*f1; - f7 = heapFloat[(r0+43)]; - f1 = f2+f1; - f0 = f10*f0; - f0 = f1+f0; - f1 = -f7; - if(f0 >=f1) //_LBB540_14 -{ -break _1; -} -else{ - heapFloat[(r0+41)] = f12; - heapFloat[(r0+33)] = f8; - heapFloat[(r0+34)] = f9; - heapFloat[(r0+35)] = f10; - heapFloat[(r0+36)] = f11; - heapFloat[(r0+37)] = f6; - heapFloat[(r0+38)] = f5; - heapFloat[(r0+39)] = f4; - heapFloat[(r0+40)] = f3; -} -break; -case 8: - heapFloat[(r10+41)] = f13; - f0 = heapFloat[(r8+4)]; - f1 = heapFloat[(r8+3)]; - f2 = heapFloat[(r8+2)]; - heap32[(r10+33)] = heap32[(r8+1)]; - heapFloat[(r10+34)] = f2; - heapFloat[(r10+35)] = f1; - heapFloat[(r10+36)] = f0; - heap32[(r10+37)] = heap32[(r8+5)]; - heap32[(r10+38)] = heap32[(r8+6)]; - heap32[(r10+39)] = heap32[(r8+7)]; - heap32[(r10+40)] = heap32[(r8+8)]; -break; -} - r0 = 1; - r_g0 = r0; - return; -} -} while(0); - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - f0 = heapFloat[(r1+1)]; - f1 = heapFloat[(r0+1)]; - f2 = heapFloat[(r1)]; - f3 = heapFloat[(r0)]; - f1 = f1-f0; - f3 = f3-f2; - f4 = heapFloat[(r1+2)]; - f5 = heapFloat[(r0+2)]; - f5 = f5-f4; - f6 = f3*f3; - f7 = f1*f1; - f6 = f6+f7; - f7 = f5*f5; - f6 = f6+f7; - f7 = 0; - if(f6 <=f7) //_LBB541_7 -{ - f0 = -1; - f_g0 = f0; - return; -} -else{ - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - f2 = f2*f3; - f0 = f0*f1; - f0 = f2+f0; - f2 = f4*f5; - f0 = f0+f2; - f0 = -f0; - f0 = f0/f6; - f2 = 1; - if(f0 f7) //_LBB541_6 -{ - r0 = r2 >> 2; - f2 = f2-f0; - heapFloat[(r0+1)] = f0; - r2 = r3 >> 2; - heapFloat[(r0)] = f2; - heap32[(r2)] = 3; - f2 = heapFloat[(r1)]; - f3 = f3*f0; - f4 = heapFloat[(r1+1)]; - f1 = f1*f0; - f2 = f2+f3; - f1 = f4+f1; - f3 = heapFloat[(r1+2)]; - f0 = f5*f0; - f0 = f3+f0; - f2 = f2*f2; - f1 = f1*f1; - f1 = f2+f1; - f0 = f0*f0; - f0 = f1+f0; - f_g0 = f0; - return; -} -else{ - r2 = r2 >> 2; - heap32[(r2)] = 1065353216; - r3 = r3 >> 2; - heap32[(r2+1)] = 0; - heap32[(r3)] = 1; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r1+1)]; - f2 = heapFloat[(r1+2)]; -} -} -else{ - r1 = r2 >> 2; - heap32[(r1)] = 0; - r2 = r3 >> 2; - heap32[(r1+1)] = 1065353216; - heap32[(r2)] = 2; - f0 = heapFloat[(r0)]; - f1 = heapFloat[(r0+1)]; - f2 = heapFloat[(r0+2)]; -} - f0 = f0*f0; - f1 = f1*f1; - f0 = f0+f1; - f1 = f2*f2; - f0 = f0+f1; - f_g0 = f0; - return; -} -} - -function _ZN12gjkepa2_implL10InitializeEPK13btConvexShapeRK11btTransformS2_S5_RN15btGjkEpaSolver28sResultsERNS_13MinkowskiDiffEb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+4)]; - r0 = r0 >> 2; - r1 = heap32[(fp+5)]; - heap32[(r0)] = 0; - heap32[(r0+1)] = 0; - heap32[(r0+2)] = 0; - heap32[(r0+3)] = 0; - heap32[(r0+4)] = 0; - heap32[(r0+5)] = 0; - heap32[(r0+6)] = 0; - heap32[(r0+7)] = 0; - heap32[(r0+8)] = 0; - r0 = r1 >> 2; - r1 = heap32[(fp)]; - r2 = heap32[(fp+3)]; - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - heap32[(r0)] = r1; - r1 = r2 >> 2; - heap32[(r0+1)] = r4; - r2 = r3 >> 2; - f0 = heapFloat[(r2)]; - f1 = heapFloat[(r1)]; - f2 = heapFloat[(r2+4)]; - f3 = heapFloat[(r1+4)]; - f4 = heapFloat[(r2+1)]; - f5 = heapFloat[(r2+5)]; - f6 = f1*f0; - f7 = f3*f2; - f8 = heapFloat[(r2+8)]; - f9 = heapFloat[(r1+8)]; - f10 = heapFloat[(r1+2)]; - f11 = heapFloat[(r2+2)]; - f12 = heapFloat[(r1+1)]; - f13 = heapFloat[(r1+6)]; - f14 = heapFloat[(r2+6)]; - f15 = heapFloat[(r1+5)]; - f16 = heapFloat[(r1+10)]; - f17 = heapFloat[(r2+10)]; - f18 = heapFloat[(r2+9)]; - f19 = heapFloat[(r1+9)]; - f20 = f1*f4; - f21 = f3*f5; - f6 = f6+f7; - f7 = f9*f8; - f1 = f1*f11; - f3 = f3*f14; - f20 = f20+f21; - f21 = f9*f18; - f6 = f6+f7; - f1 = f1+f3; - f3 = f9*f17; - f7 = f20+f21; - heapFloat[(r0+2)] = f6; - f6 = f12*f0; - f9 = f15*f2; - f1 = f1+f3; - heapFloat[(r0+3)] = f7; - heapFloat[(r0+4)] = f1; - f1 = f12*f4; - f3 = f15*f5; - f6 = f6+f9; - f7 = f19*f8; - f9 = f12*f11; - f12 = f15*f14; - f1 = f1+f3; - f3 = f19*f18; - f6 = f6+f7; - heap32[(r0+5)] = 0; - f7 = f9+f12; - f9 = f19*f17; - f1 = f1+f3; - heapFloat[(r0+6)] = f6; - f0 = f10*f0; - f2 = f13*f2; - f3 = f7+f9; - heapFloat[(r0+7)] = f1; - heapFloat[(r0+8)] = f3; - f1 = f10*f4; - f3 = f13*f5; - f0 = f0+f2; - f2 = f16*f8; - f4 = f10*f11; - f5 = f13*f14; - f1 = f1+f3; - f3 = f16*f18; - f0 = f0+f2; - heap32[(r0+9)] = 0; - f2 = f4+f5; - f4 = f16*f17; - f1 = f1+f3; - heapFloat[(r0+10)] = f0; - f0 = f2+f4; - heapFloat[(r0+11)] = f1; - heapFloat[(r0+12)] = f0; - heap32[(r0+13)] = 0; - f0 = heapFloat[(r2)]; - f1 = heapFloat[(r1)]; - f2 = heapFloat[(r2+4)]; - f3 = heapFloat[(r1+4)]; - f4 = heapFloat[(r1+1)]; - f5 = heapFloat[(r1+5)]; - f6 = f0*f1; - f7 = f2*f3; - f8 = heapFloat[(r2+8)]; - f9 = heapFloat[(r1+8)]; - f10 = heapFloat[(r2+2)]; - f11 = heapFloat[(r2+6)]; - f12 = heapFloat[(r2+1)]; - f13 = heapFloat[(r1+2)]; - f14 = heapFloat[(r2+5)]; - f15 = heapFloat[(r1+6)]; - f16 = heapFloat[(r2+10)]; - f17 = heapFloat[(r1+10)]; - f18 = heapFloat[(r2+9)]; - f19 = heapFloat[(r1+9)]; - f20 = f0*f4; - f21 = f2*f5; - f6 = f6+f7; - f7 = f8*f9; - f22 = heapFloat[(r1+14)]; - f23 = heapFloat[(r2+14)]; - f24 = heapFloat[(r1+13)]; - f25 = heapFloat[(r2+13)]; - f26 = heapFloat[(r1+12)]; - f27 = heapFloat[(r2+12)]; - f28 = f0*f13; - f29 = f2*f15; - f20 = f20+f21; - f21 = f8*f19; - f6 = f6+f7; - f7 = f28+f29; - f28 = f8*f17; - f20 = f20+f21; - heapFloat[(r0+14)] = f6; - f6 = f12*f1; - f21 = f14*f3; - f7 = f7+f28; - heapFloat[(r0+15)] = f20; - heapFloat[(r0+16)] = f7; - f7 = f12*f4; - f20 = f14*f5; - f6 = f6+f21; - f21 = f18*f9; - f28 = f12*f13; - f29 = f14*f15; - f7 = f7+f20; - f20 = f18*f19; - f6 = f6+f21; - heap32[(r0+17)] = 0; - f21 = f28+f29; - f28 = f18*f17; - f7 = f7+f20; - heapFloat[(r0+18)] = f6; - f1 = f10*f1; - f3 = f11*f3; - f6 = f21+f28; - heapFloat[(r0+19)] = f7; - heapFloat[(r0+20)] = f6; - f4 = f10*f4; - f5 = f11*f5; - f1 = f1+f3; - f3 = f16*f9; - f6 = f10*f13; - f7 = f11*f15; - f4 = f4+f5; - f5 = f16*f19; - f1 = f1+f3; - heap32[(r0+21)] = 0; - f3 = f26-f27; - f9 = f24-f25; - f6 = f6+f7; - f7 = f16*f17; - f4 = f4+f5; - heapFloat[(r0+22)] = f1; - f1 = f22-f23; - f0 = f0*f3; - f2 = f2*f9; - f5 = f6+f7; - heapFloat[(r0+23)] = f4; - heapFloat[(r0+24)] = f5; - f4 = f12*f3; - f5 = f14*f9; - f0 = f0+f2; - f2 = f8*f1; - f3 = f10*f3; - f6 = f11*f9; - f4 = f4+f5; - f5 = f18*f1; - f0 = f0+f2; - heap32[(r0+25)] = 0; - f2 = f3+f6; - f1 = f16*f1; - f3 = f4+f5; - heapFloat[(r0+26)] = f0; - f0 = f2+f1; - heapFloat[(r0+27)] = f3; - heapFloat[(r0+28)] = f0; - heap32[(r0+29)] = 0; - r1 = heap32[(fp+6)]; - if(r1 ==0) //_LBB542_3 -{ - r1 = _ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3__index__; -} -else{ - r1 = _ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3__index__; -} - heap32[(r0+30)] = r1; - heap32[(r0+31)] = 0; - return; -} - -function _ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + -64;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0)]; - f1 = heapFloat[(r0+1)]; - f2 = heapFloat[(r0+2)]; - f0 = f0*f0; - f1 = f1*f1; - f0 = f0+f1; - f1 = f2*f2; - f0 = f0+f1; - heapFloat[(g0)] = f0; - sqrtf(i7); - f1 = 1; - r1 = heap32[(fp+2)]; - f0 = f1/f_g0; - f1 = heapFloat[(r0+2)]; - f2 = heapFloat[(r0+1)]; - f3 = heapFloat[(r0)]; - f3 = f3*f0; - r0 = r1 >> 2; - f2 = f2*f0; - heapFloat[(r0)] = f3; - f0 = f1*f0; - heapFloat[(r0+1)] = f2; - r2 = heap32[(fp)]; - heapFloat[(r0+2)] = f0; - r2 = r2 >> 2; - heap32[(r0+3)] = 0; - r3 = heap32[(r2+30)]; - f0 = -f0; - f1 = -f2; - f2 = -f3; - r4 = heap32[(r2+1)]; - r5 = heap32[(r2+31)]; - r6 = r3 & 1; - if(r6 != 0) //_LBB543_2 -{ - r6 = (r4 + r5)|0; - r6 = r6 >> 2; - r6 = heap32[(r6)]; - r3 = (r6 + r3)|0; - r3 = (r3 + -1)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; -} - f3 = heapFloat[(r2+2)]; - f4 = heapFloat[(r2+3)]; - f5 = heapFloat[(r2+6)]; - f6 = heapFloat[(r2+7)]; - f3 = f3*f2; - f4 = f4*f1; - f7 = heapFloat[(r2+4)]; - f8 = heapFloat[(r2+10)]; - f9 = heapFloat[(r2+11)]; - f10 = heapFloat[(r2+12)]; - f11 = heapFloat[(r2+8)]; - f5 = f5*f2; - f6 = f6*f1; - f3 = f3+f4; - f4 = f7*f0; - r6 = sp + -16; - f2 = f8*f2; - f1 = f9*f1; - f5 = f5+f6; - f6 = f11*f0; - f3 = f3+f4; - r7 = r6 >> 2; - f1 = f2+f1; - f0 = f10*f0; - f2 = f5+f6; - heapFloat[(fp+-4)] = f3; - f0 = f1+f0; - heapFloat[(r7+1)] = f2; - heapFloat[(r7+2)] = f0; - heap32[(r7+3)] = 0; - r7 = sp + -32; - r4 = (r4 + r5)|0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r6; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = r7 >> 2; - f0 = heapFloat[(r2+22)]; - f1 = heapFloat[(fp+-8)]; - f2 = heapFloat[(r2+18)]; - f3 = heapFloat[(r2+14)]; - f4 = heapFloat[(r2+23)]; - f5 = heapFloat[(r3+1)]; - f6 = heapFloat[(r2+19)]; - f7 = heapFloat[(r2+15)]; - f0 = f0*f1; - f4 = f4*f5; - f8 = heapFloat[(r2+24)]; - f9 = heapFloat[(r3+2)]; - f10 = heapFloat[(r2+20)]; - f11 = heapFloat[(r2+16)]; - f2 = f2*f1; - f6 = f6*f5; - f1 = f3*f1; - f3 = f7*f5; - f0 = f0+f4; - f4 = f8*f9; - f2 = f2+f6; - f5 = f10*f9; - f1 = f1+f3; - f3 = f11*f9; - f0 = f0+f4; - f4 = heapFloat[(r2+28)]; - f2 = f2+f5; - f5 = heapFloat[(r2+27)]; - f1 = f1+f3; - f3 = heapFloat[(r2+26)]; - r3 = heap32[(r2+30)]; - f0 = f0+f4; - f2 = f2+f5; - f1 = f1+f3; - r4 = heap32[(r2)]; - r2 = heap32[(r2+31)]; - r5 = r3 & 1; - if(r5 != 0) //_LBB543_5 -{ - r5 = (r4 + r2)|0; - r5 = r5 >> 2; - r5 = heap32[(r5)]; - r3 = (r3 + r5)|0; - r3 = (r3 + -1)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; -} - r5 = sp + -48; - r2 = (r4 + r2)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = r5 >> 2; - f3 = heapFloat[(fp+-12)]; - f4 = heapFloat[(r1+2)]; - f5 = heapFloat[(r1+1)]; - f1 = f3-f1; - f2 = f5-f2; - heapFloat[(r0+4)] = f1; - f0 = f4-f0; - heapFloat[(r0+5)] = f2; - heapFloat[(r0+6)] = f0; - heap32[(r0+7)] = 0; - return; -} - -function _ZN12gjkepa2_impl3GJK13EncloseOriginEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; -var __label__ = 0; - i7 = sp + -128;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+93)]; - r3 = r2 >> 2; - r4 = heap32[(r3+8)]; -_1: do { - if(r4 >2) //_LBB544_3 -{ - if(r4 ==3) //_LBB544_17 -{ - r5 = heap32[(r3)]; - r6 = heap32[(r3+2)]; - r7 = heap32[(r3+1)]; - r6 = r6 >> 2; - r5 = r5 >> 2; - r7 = r7 >> 2; - f0 = heapFloat[(r6+6)]; - f1 = heapFloat[(r5+6)]; - f2 = heapFloat[(r7+6)]; - f3 = heapFloat[(r6+5)]; - f4 = heapFloat[(r5+5)]; - f5 = heapFloat[(r7+5)]; - f5 = f5-f4; - f0 = f0-f1; - f1 = f2-f1; - f2 = f3-f4; - f3 = heapFloat[(r6+4)]; - f4 = heapFloat[(r5+4)]; - f6 = heapFloat[(r7+4)]; - f3 = f3-f4; - f4 = f6-f4; - f6 = f5*f0; - f7 = f1*f2; - r5 = sp + -112; - f6 = f6-f7; - f1 = f1*f3; - f0 = f4*f0; - f0 = f1-f0; - r6 = r5 >> 2; - heapFloat[(fp+-28)] = f6; - f1 = f4*f2; - f2 = f5*f3; - f1 = f1-f2; - heapFloat[(r6+1)] = f0; - f2 = f6*f6; - f0 = f0*f0; - heapFloat[(r6+2)] = f1; - f0 = f2+f0; - f1 = f1*f1; - f0 = f0+f1; - f1 = 0; - heap32[(r6+3)] = 0; - if(f0 <=f1) //_LBB544_25 -{ -__label__ = 24; -break _1; -} -else{ - r4 = r4 << 2; - r4 = (r2 + r4)|0; - r4 = r4 >> 2; - heap32[(r4+4)] = 0; - r4 = heap32[(r1+91)]; - r4 = (r4 + -1)|0; - r7 = heap32[(r3+8)]; - r8 = r4 << 2; - r7 = r7 << 2; - r8 = (r0 + r8)|0; - r7 = (r2 + r7)|0; - r8 = r8 >> 2; - heap32[(r1+91)] = r4; - r4 = r7 >> 2; - r7 = heap32[(r8+87)]; - heap32[(r4)] = r7; - r4 = heap32[(r3+8)]; - r7 = r4 << 2; - r2 = (r2 + r7)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r4 = (r4 + 1)|0; - heap32[(r3+8)] = r4; - heap32[(g0)] = r0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r2; - _ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7); - heap32[(g0)] = r0; - _ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7); - r3 = r_g0; - if(r3 !=0) //_LBB544_26 -{ -__label__ = 25; -break _1; -} -else{ - r3 = heap32[(r1+93)]; - r2 = r3 >> 2; - r4 = heap32[(r2+8)]; - r4 = (r4 + -1)|0; - r5 = heap32[(r1+91)]; - r7 = r4 << 2; - r3 = (r3 + r7)|0; - r7 = (r0 + 348)|0; - r8 = r5 << 2; - r8 = (r7 + r8)|0; - r3 = r3 >> 2; - heap32[(r2+8)] = r4; - r2 = r8 >> 2; - r3 = heap32[(r3)]; - r4 = (r5 + 1)|0; - heap32[(r2)] = r3; - heap32[(r1+91)] = r4; - f0 = heapFloat[(r6+2)]; - f1 = heapFloat[(r6+1)]; - f2 = heapFloat[(fp+-28)]; - r3 = sp + -16; - f2 = -f2; - r2 = r3 >> 2; - f1 = -f1; - heapFloat[(fp+-4)] = f2; - f0 = -f0; - heapFloat[(r2+1)] = f1; - heapFloat[(r2+2)] = f0; - heap32[(r2+3)] = 0; - r2 = heap32[(r1+93)]; - r4 = r2 >> 2; - r5 = heap32[(r4+8)]; - r5 = r5 << 2; - r5 = (r2 + r5)|0; - r5 = r5 >> 2; - heap32[(r5+4)] = 0; - r5 = heap32[(r1+91)]; - r5 = (r5 + -1)|0; - r6 = heap32[(r4+8)]; - r8 = r5 << 2; - r6 = r6 << 2; - r7 = (r7 + r8)|0; - r6 = (r2 + r6)|0; - r7 = r7 >> 2; - heap32[(r1+91)] = r5; - r5 = r6 >> 2; - r6 = heap32[(r7)]; - heap32[(r5)] = r6; - r5 = heap32[(r4+8)]; - r6 = r5 << 2; - r2 = (r2 + r6)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r5 = (r5 + 1)|0; - heap32[(r4+8)] = r5; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r2; - _ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7); - heap32[(g0)] = r0; - _ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7); - r3 = r_g0; - if(r3 !=0) //_LBB544_26 -{ -__label__ = 25; -break _1; -} -else{ - r3 = heap32[(r1+93)]; - r2 = r3 >> 2; - r4 = heap32[(r2+8)]; - r4 = (r4 + -1)|0; - r5 = heap32[(r1+91)]; - r6 = r4 << 2; - r7 = r5 << 2; - r3 = (r3 + r6)|0; - r0 = (r0 + r7)|0; - r3 = r3 >> 2; - heap32[(r2+8)] = r4; - r0 = r0 >> 2; - r3 = heap32[(r3)]; - r2 = (r5 + 1)|0; - heap32[(r0+87)] = r3; - heap32[(r1+91)] = r2; - r3 = 0; - r_g0 = r3; - return; -} -} -} -} -else{ - if(r4 ==4) //_LBB544_21 -{ - r0 = heap32[(r3)]; - r1 = heap32[(r3+1)]; - r2 = heap32[(r3+3)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - r2 = r2 >> 2; - r3 = heap32[(r3+2)]; - r3 = r3 >> 2; - f0 = heapFloat[(r1+6)]; - f1 = heapFloat[(r2+6)]; - f2 = heapFloat[(r0+6)]; - f3 = heapFloat[(r0+5)]; - f4 = heapFloat[(r2+5)]; - f5 = heapFloat[(r1+4)]; - f6 = heapFloat[(r2+4)]; - f7 = heapFloat[(r3+5)]; - f8 = heapFloat[(r0+4)]; - f9 = heapFloat[(r3+4)]; - f0 = f0-f1; - f3 = f3-f4; - f5 = f5-f6; - f2 = f2-f1; - f8 = f8-f6; - f10 = f3*f0; - f6 = f9-f6; - f9 = f2*f5; - f7 = f7-f4; - f0 = f8*f0; - f11 = heapFloat[(r3+6)]; - f12 = heapFloat[(r1+5)]; - f10 = f10*f6; - f9 = f9*f7; - f4 = f12-f4; - f9 = f10+f9; - f0 = f0*f7; - f3 = f3*f5; - f1 = f11-f1; - f5 = f8*f4; - f0 = f9-f0; - f3 = f3*f1; - f2 = f2*f4; - f0 = f0-f3; - f1 = f5*f1; - f0 = f0+f1; - f1 = f2*f6; - f0 = f0-f1; - f1 = 0; - if(f0 f1; - r0 = r0 & 1; - r_g0 = r0; - return; -} -else{ -__label__ = 24; -break _1; -} -} -} -else{ - if(r4 ==1) //_LBB544_5 -{ - r2 = 0; -_16: while(true){ - if(uint(r2) > 2; - heap32[(fp+-16)] = 0; - r5 = r2 << 2; - heap32[(r4+1)] = 0; - r5 = (r3 + r5)|0; - heap32[(r4+2)] = 0; - r5 = r5 >> 2; - heap32[(r4+3)] = 0; - heap32[(r5)] = 1065353216; - r5 = heap32[(r1+93)]; - r6 = r5 >> 2; - r7 = heap32[(r6+8)]; - r7 = r7 << 2; - r7 = (r5 + r7)|0; - r7 = r7 >> 2; - heap32[(r7+4)] = 0; - r7 = heap32[(r1+91)]; - r7 = (r7 + -1)|0; - r8 = heap32[(r6+8)]; - r9 = r7 << 2; - r8 = r8 << 2; - r9 = (r0 + r9)|0; - r8 = (r5 + r8)|0; - r9 = r9 >> 2; - heap32[(r1+91)] = r7; - r7 = r8 >> 2; - r8 = heap32[(r9+87)]; - heap32[(r7)] = r8; - r7 = heap32[(r6+8)]; - r8 = r7 << 2; - r5 = (r5 + r8)|0; - r5 = r5 >> 2; - r5 = heap32[(r5)]; - r7 = (r7 + 1)|0; - heap32[(r6+8)] = r7; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r5; - _ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7); - heap32[(g0)] = r0; - _ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7); - r3 = r_g0; - if(r3 !=0) //_LBB544_26 -{ -__label__ = 25; -break _1; -} -else{ - r3 = heap32[(r1+93)]; - r5 = r3 >> 2; - r6 = heap32[(r5+8)]; - r6 = (r6 + -1)|0; - r7 = heap32[(r1+91)]; - r8 = r6 << 2; - r3 = (r3 + r8)|0; - r8 = (r0 + 348)|0; - r9 = r7 << 2; - r9 = (r8 + r9)|0; - r3 = r3 >> 2; - heap32[(r5+8)] = r6; - r5 = r9 >> 2; - r3 = heap32[(r3)]; - r6 = (r7 + 1)|0; - heap32[(r5)] = r3; - heap32[(r1+91)] = r6; - f0 = heapFloat[(r4+2)]; - f1 = heapFloat[(r4+1)]; - f2 = heapFloat[(fp+-16)]; - r3 = sp + -48; - f2 = -f2; - r4 = r3 >> 2; - f1 = -f1; - heapFloat[(fp+-12)] = f2; - f0 = -f0; - heapFloat[(r4+1)] = f1; - heapFloat[(r4+2)] = f0; - heap32[(r4+3)] = 0; - r4 = heap32[(r1+93)]; - r5 = r4 >> 2; - r6 = heap32[(r5+8)]; - r6 = r6 << 2; - r6 = (r4 + r6)|0; - r6 = r6 >> 2; - heap32[(r6+4)] = 0; - r6 = heap32[(r1+91)]; - r6 = (r6 + -1)|0; - r7 = heap32[(r5+8)]; - r9 = r6 << 2; - r7 = r7 << 2; - r8 = (r8 + r9)|0; - r7 = (r4 + r7)|0; - r8 = r8 >> 2; - heap32[(r1+91)] = r6; - r6 = r7 >> 2; - r7 = heap32[(r8)]; - heap32[(r6)] = r7; - r6 = heap32[(r5+8)]; - r7 = r6 << 2; - r4 = (r4 + r7)|0; - r4 = r4 >> 2; - r4 = heap32[(r4)]; - r6 = (r6 + 1)|0; - heap32[(r5+8)] = r6; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - _ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7); - heap32[(g0)] = r0; - _ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7); - r3 = r_g0; - if(r3 !=0) //_LBB544_26 -{ -__label__ = 25; -break _1; -} -else{ - r3 = heap32[(r1+93)]; - r4 = r3 >> 2; - r5 = heap32[(r4+8)]; - r5 = (r5 + -1)|0; - r6 = heap32[(r1+91)]; - r7 = r5 << 2; - r8 = r6 << 2; - r3 = (r3 + r7)|0; - r7 = (r0 + r8)|0; - r3 = r3 >> 2; - heap32[(r4+8)] = r5; - r4 = r7 >> 2; - r3 = heap32[(r3)]; - r2 = (r2 + 1)|0; - r5 = (r6 + 1)|0; - heap32[(r4+87)] = r3; - heap32[(r1+91)] = r5; -continue _16; -} -} -} -else{ -__label__ = 24; -break _1; -} -} -} -else{ - if(r4 ==2) //_LBB544_10 -{ - r2 = heap32[(r3+1)]; - r3 = heap32[(r3)]; - r2 = r2 >> 2; - r3 = r3 >> 2; - f0 = heapFloat[(r2+6)]; - f1 = heapFloat[(r3+6)]; - f2 = heapFloat[(r2+5)]; - f3 = heapFloat[(r3+5)]; - f4 = heapFloat[(r2+4)]; - f5 = heapFloat[(r3+4)]; - f0 = f0-f1; - f1 = f2-f3; - f2 = f4-f5; - r2 = 0; -_23: while(true){ - if(uint(r2) > 2; - heap32[(fp+-20)] = 0; - r5 = r2 << 2; - heap32[(r4+1)] = 0; - r3 = (r3 + r5)|0; - heap32[(r4+2)] = 0; - r3 = r3 >> 2; - heap32[(r4+3)] = 0; - heap32[(r3)] = 1065353216; - f3 = heapFloat[(r4+2)]; - f4 = heapFloat[(r4+1)]; - f5 = heapFloat[(fp+-20)]; - f6 = f1*f3; - f7 = f0*f4; - r3 = sp + -96; - f6 = f6-f7; - f7 = f0*f5; - f3 = f2*f3; - f3 = f7-f3; - r4 = r3 >> 2; - heapFloat[(fp+-24)] = f6; - f4 = f2*f4; - f5 = f1*f5; - f4 = f4-f5; - heapFloat[(r4+1)] = f3; - f5 = f6*f6; - f3 = f3*f3; - heapFloat[(r4+2)] = f4; - f3 = f5+f3; - f4 = f4*f4; - f3 = f3+f4; - f4 = 0; - heap32[(r4+3)] = 0; -if(!(f3 <=f4)) //_LBB544_15 -{ - r5 = heap32[(r1+93)]; - r6 = r5 >> 2; - r7 = heap32[(r6+8)]; - r7 = r7 << 2; - r7 = (r5 + r7)|0; - r7 = r7 >> 2; - heap32[(r7+4)] = 0; - r7 = heap32[(r1+91)]; - r7 = (r7 + -1)|0; - r8 = heap32[(r6+8)]; - r9 = r7 << 2; - r8 = r8 << 2; - r9 = (r0 + r9)|0; - r8 = (r5 + r8)|0; - r9 = r9 >> 2; - heap32[(r1+91)] = r7; - r7 = r8 >> 2; - r8 = heap32[(r9+87)]; - heap32[(r7)] = r8; - r7 = heap32[(r6+8)]; - r8 = r7 << 2; - r5 = (r5 + r8)|0; - r5 = r5 >> 2; - r5 = heap32[(r5)]; - r7 = (r7 + 1)|0; - heap32[(r6+8)] = r7; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r5; - _ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7); - heap32[(g0)] = r0; - _ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7); - r3 = r_g0; - if(r3 !=0) //_LBB544_26 -{ -__label__ = 25; -break _1; -} -else{ - r3 = heap32[(r1+93)]; - r5 = r3 >> 2; - r6 = heap32[(r5+8)]; - r6 = (r6 + -1)|0; - r7 = heap32[(r1+91)]; - r8 = r6 << 2; - r3 = (r3 + r8)|0; - r8 = (r0 + 348)|0; - r9 = r7 << 2; - r9 = (r8 + r9)|0; - r3 = r3 >> 2; - heap32[(r5+8)] = r6; - r5 = r9 >> 2; - r3 = heap32[(r3)]; - r6 = (r7 + 1)|0; - heap32[(r5)] = r3; - heap32[(r1+91)] = r6; - f3 = heapFloat[(r4+2)]; - f4 = heapFloat[(r4+1)]; - f5 = heapFloat[(fp+-24)]; - r3 = sp + -32; - f5 = -f5; - r4 = r3 >> 2; - f4 = -f4; - heapFloat[(fp+-8)] = f5; - f3 = -f3; - heapFloat[(r4+1)] = f4; - heapFloat[(r4+2)] = f3; - heap32[(r4+3)] = 0; - r4 = heap32[(r1+93)]; - r5 = r4 >> 2; - r6 = heap32[(r5+8)]; - r6 = r6 << 2; - r6 = (r4 + r6)|0; - r6 = r6 >> 2; - heap32[(r6+4)] = 0; - r6 = heap32[(r1+91)]; - r6 = (r6 + -1)|0; - r7 = heap32[(r5+8)]; - r9 = r6 << 2; - r7 = r7 << 2; - r8 = (r8 + r9)|0; - r7 = (r4 + r7)|0; - r8 = r8 >> 2; - heap32[(r1+91)] = r6; - r6 = r7 >> 2; - r7 = heap32[(r8)]; - heap32[(r6)] = r7; - r6 = heap32[(r5+8)]; - r7 = r6 << 2; - r4 = (r4 + r7)|0; - r4 = r4 >> 2; - r4 = heap32[(r4)]; - r6 = (r6 + 1)|0; - heap32[(r5+8)] = r6; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - _ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7); - heap32[(g0)] = r0; - _ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7); - r3 = r_g0; - if(r3 !=0) //_LBB544_26 -{ -__label__ = 25; -break _1; -} -else{ - r3 = heap32[(r1+93)]; - r4 = r3 >> 2; - r5 = heap32[(r4+8)]; - r5 = (r5 + -1)|0; - r6 = heap32[(r1+91)]; - r7 = r5 << 2; - r8 = r6 << 2; - r3 = (r3 + r7)|0; - r7 = (r0 + r8)|0; - r3 = r3 >> 2; - heap32[(r4+8)] = r5; - r4 = r7 >> 2; - r3 = heap32[(r3)]; - r5 = (r6 + 1)|0; - heap32[(r4+87)] = r3; - heap32[(r1+91)] = r5; -} -} -} - r2 = (r2 + 1)|0; -continue _23; -} -else{ -__label__ = 24; -break _1; -} -} -} -else{ -__label__ = 24; -} -} -} -} while(0); -switch(__label__ ){//multiple entries -case 24: - r0 = 0; - r_g0 = r0; - return; -break; -case 25: - r0 = 1; - r_g0 = r0; - return; -break; -} -} - -function _ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; -var __label__ = 0; - i7 = sp + -96;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = sp + -12; - r2 = heap32[(fp+1)]; - r3 = r1 >> 2; - heap32[(fp+-3)] = r0; - r4 = heap32[(fp+2)]; - heap32[(r3+1)] = r2; - r5 = r0 >> 2; - heap32[(r3+2)] = r4; - r2 = r2 >> 2; - f0 = heapFloat[(r5+2)]; - f1 = heapFloat[(r2+2)]; - f2 = heapFloat[(r5+1)]; - f3 = heapFloat[(r2+1)]; - f4 = heapFloat[(r5)]; - f5 = heapFloat[(r2)]; - r3 = sp + -64; - f6 = f4-f5; - f7 = f2-f3; - r6 = r3 >> 2; - heapFloat[(fp+-16)] = f6; - f8 = f0-f1; - heapFloat[(r6+1)] = f7; - heapFloat[(r6+2)] = f8; - r4 = r4 >> 2; - heap32[(r6+3)] = 0; - f9 = heapFloat[(r4+2)]; - f10 = heapFloat[(r4+1)]; - f11 = heapFloat[(r4)]; - f5 = f5-f11; - f3 = f3-f10; - heapFloat[(r6+4)] = f5; - f1 = f1-f9; - heapFloat[(r6+5)] = f3; - heapFloat[(r6+6)] = f1; - f12 = f8*f5; - f13 = f6*f1; - f14 = f7*f1; - f15 = f8*f3; - f12 = f12-f13; - f13 = f14-f15; - f11 = f11-f4; - heap32[(r6+7)] = 0; - f14 = f6*f3; - f15 = f7*f5; - f14 = f14-f15; - f10 = f10-f2; - heapFloat[(r6+8)] = f11; - f15 = f13*f13; - f16 = f12*f12; - f9 = f9-f0; - heapFloat[(r6+9)] = f10; - f15 = f15+f16; - f16 = f14*f14; - f15 = f15+f16; - heapFloat[(r6+10)] = f9; - heap32[(r6+11)] = 0; - f16 = 0; - if(f15 >f16) //_LBB545_2 -{ - r6 = heap32[(fp+3)]; - r7 = heap32[(fp+4)]; - r8 = sp + -72; - r9 = r8 >> 2; - heap32[(fp+-18)] = 0; - r10 = 0; - f17 = -1; - heap32[(r9+1)] = 0; - heap32[(fp+-19)] = 0; - r18 = 0; -_3: while(true){ - f18 = f7*f14; - f19 = f8*f12; - f8 = f8*f13; - f20 = f6*f14; - f18 = f18-f19; - f8 = f8-f20; - f6 = f6*f12; - f7 = f7*f13; - f4 = f4*f18; - f2 = f2*f8; - f6 = f6-f7; - f2 = f4+f2; - f0 = f0*f6; - f0 = f2+f0; -_5: do { - if(f0 >f16) //_LBB545_5 -{ - r11 = _ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3; - r12 = r10 << 2; - r13 = (r11 + r12)|0; - r13 = r13 >> 2; - r13 = heap32[(r13)]; - r14 = r13 << 2; - r15 = (r1 + r14)|0; - r15 = r15 >> 2; - r15 = heap32[(r15)]; - r16 = sp + -76; - heap32[(g0)] = r0; - heap32[(g0+1)] = r15; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r16; - _ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj(i7); - f0 = f_g0; -if(!(f17 =f17) //_LBB545_4 -{ -break _5; -} -} - r0 = heap32[(fp+-19)]; - r15 = 1; - r11 = (r11 + r14)|0; - r16 = r0 & 1; - r17 = r15 << r10; - r0 = r0 & 2; - r13 = r15 << r13; - r11 = r11 >> 2; - r15 = r16 == 0 ? r18 : r17; - r0 = r0 == 0 ? r18 : r13; - r11 = heap32[(r11)]; - r12 = (r6 + r12)|0; - r13 = r7 >> 2; - r0 = (r15 + r0)|0; - r11 = r11 << 2; - r14 = (r6 + r14)|0; - r12 = r12 >> 2; - heap32[(r13)] = r0; - r0 = (r6 + r11)|0; - r11 = r14 >> 2; - heap32[(r12)] = heap32[(fp+-18)]; - r0 = r0 >> 2; - heap32[(r11)] = heap32[(r9+1)]; - heap32[(r0)] = 0; - f17 = f0; -} -} while(0); - if(r10 ==2) //_LBB545_10 -{ -break _3; -} -else{ - r11 = (r10 + 1)|0; - r0 = r10 << 2; - r0 = (r1 + r0)|0; - r0 = r0 >> 2; - r10 = r10 << 4; - r0 = heap32[(r0+1)]; - r10 = (r3 + r10)|0; - r10 = r10 >> 2; - r12 = r0 >> 2; - f6 = heapFloat[(r10+4)]; - f7 = heapFloat[(r10+5)]; - f8 = heapFloat[(r10+6)]; - f4 = heapFloat[(r12)]; - f2 = heapFloat[(r12+1)]; - f0 = heapFloat[(r12+2)]; - r10 = r11; -} -} - if(f17 > 2; - sqrtf(i7); - f0 = f_g0; - f17 = f17/f15; - heap32[(r0)] = 7; - f2 = f13*f17; - f4 = heapFloat[(r2)]; - f6 = f12*f17; - f7 = heapFloat[(r2+1)]; - f8 = heapFloat[(r2+2)]; - f17 = f14*f17; - f7 = f7-f6; - f8 = f8-f17; - f4 = f4-f2; - f12 = f3*f8; - f13 = f1*f7; - f1 = f1*f4; - f8 = f5*f8; - f12 = f12-f13; - f1 = f1-f8; - f5 = f5*f7; - f3 = f3*f4; - f3 = f5-f3; - f4 = f12*f12; - f1 = f1*f1; - f1 = f4+f1; - f3 = f3*f3; - f1 = f1+f3; - heapFloat[(g0)] = f1; - sqrtf(i7); - r0 = r6 >> 2; - f1 = f_g0/f0; - heapFloat[(r0)] = f1; - f1 = heapFloat[(r4+2)]; - f3 = heapFloat[(r4+1)]; - f4 = heapFloat[(r4)]; - f3 = f3-f6; - f1 = f1-f17; - f4 = f4-f2; - f5 = f10*f1; - f7 = f9*f3; - f8 = f9*f4; - f1 = f11*f1; - f5 = f5-f7; - f1 = f8-f1; - f3 = f11*f3; - f4 = f10*f4; - f3 = f3-f4; - f4 = f5*f5; - f1 = f1*f1; - f1 = f4+f1; - f3 = f3*f3; - f1 = f1+f3; - heapFloat[(g0)] = f1; - sqrtf(i7); - f0 = f_g0/f0; - heapFloat[(r0+1)] = f0; - f1 = heapFloat[(r0)]; - f3 = 1; - f0 = f1+f0; - f1 = f2*f2; - f2 = f6*f6; - f0 = f3-f0; - f1 = f1+f2; - f17 = f17*f17; - heapFloat[(r0+2)] = f0; - f17 = f1+f17; -} -} -else{ - f17 = -1; -} - f_g0 = f17; - return; -} - -function _ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; - var r24; - var r25; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; -var __label__ = 0; - i7 = sp + -240;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = (r0 + 220)|0; - r3 = (r0 + 252)|0; - heap32[(r1+87)] = r2; - r2 = (r0 + 284)|0; - heap32[(r1+88)] = r3; - r3 = (r0 + 316)|0; - heap32[(r1+89)] = r2; - heap32[(r1+90)] = r3; - heap32[(r1+91)] = 4; - r2 = heap32[(fp+1)]; - heap32[(r1+92)] = 0; - r2 = r2 >> 2; - heap32[(r1+94)] = 0; - r4 = heap32[(r2+1)]; - r5 = heap32[(r2)]; - heap32[(r1)] = r5; - heap32[(r1+1)] = r4; - heap32[(r1+2)] = heap32[(r2+2)]; - heap32[(r1+3)] = heap32[(r2+3)]; - heap32[(r1+4)] = heap32[(r2+4)]; - heap32[(r1+5)] = heap32[(r2+5)]; - heap32[(r1+6)] = heap32[(r2+6)]; - heap32[(r1+7)] = heap32[(r2+7)]; - heap32[(r1+8)] = heap32[(r2+8)]; - heap32[(r1+9)] = heap32[(r2+9)]; - heap32[(r1+10)] = heap32[(r2+10)]; - heap32[(r1+11)] = heap32[(r2+11)]; - heap32[(r1+12)] = heap32[(r2+12)]; - heap32[(r1+13)] = heap32[(r2+13)]; - heap32[(r1+14)] = heap32[(r2+14)]; - heap32[(r1+15)] = heap32[(r2+15)]; - heap32[(r1+16)] = heap32[(r2+16)]; - heap32[(r1+17)] = heap32[(r2+17)]; - heap32[(r1+18)] = heap32[(r2+18)]; - heap32[(r1+19)] = heap32[(r2+19)]; - heap32[(r1+20)] = heap32[(r2+20)]; - heap32[(r1+21)] = heap32[(r2+21)]; - heap32[(r1+22)] = heap32[(r2+22)]; - heap32[(r1+23)] = heap32[(r2+23)]; - heap32[(r1+24)] = heap32[(r2+24)]; - heap32[(r1+25)] = heap32[(r2+25)]; - heap32[(r1+26)] = heap32[(r2+26)]; - heap32[(r1+27)] = heap32[(r2+27)]; - heap32[(r1+28)] = heap32[(r2+28)]; - heap32[(r1+29)] = heap32[(r2+29)]; - r4 = heap32[(r2+31)]; - r2 = heap32[(r2+30)]; - heap32[(r1+30)] = r2; - heap32[(r1+31)] = r4; - r2 = heap32[(fp+2)]; - heap32[(r1+36)] = 0; - r2 = r2 >> 2; - heap32[(r1+45)] = 0; - f0 = heapFloat[(r2)]; - heapFloat[(r1+32)] = f0; - f1 = heapFloat[(r2+1)]; - heapFloat[(r1+33)] = f1; - f2 = heapFloat[(r2+2)]; - f3 = f0*f0; - f4 = f1*f1; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - heapFloat[(r1+34)] = f2; - heap32[(r1+35)] = heap32[(r2+3)]; - f4 = 0; - if(f3 <=f4) //_LBB546_2 -{ - r2 = sp + -112; - r2 = r2 >> 2; - heap32[(fp+-28)] = 1065353216; - heap32[(r2+1)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; -} -else{ - r2 = sp + -112; - f0 = -f0; - r2 = r2 >> 2; - f1 = -f1; - heapFloat[(fp+-28)] = f0; - f0 = -f2; - heapFloat[(r2+1)] = f1; - heapFloat[(r2+2)] = f0; - heap32[(r2+3)] = 0; -} - heap32[(r1+41)] = 0; - heap32[(r1+91)] = 3; - heap32[(r1+37)] = r3; - heap32[(r1+45)] = 1; - r2 = sp + -112; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - _ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7); - heap32[(r1+41)] = 1065353216; - r2 = heap32[(r1+37)]; - r2 = r2 >> 2; - f0 = heapFloat[(r2+4)]; - heapFloat[(r1+32)] = f0; - f1 = heapFloat[(r2+5)]; - heapFloat[(r1+33)] = f1; - f2 = heapFloat[(r2+6)]; - heapFloat[(r1+34)] = f2; - f5 = heapFloat[(r2+7)]; - r2 = sp + -176; - r3 = r2 >> 2; - heapFloat[(r1+35)] = f5; - heapFloat[(r3+12)] = f0; - heapFloat[(r3+13)] = f1; - heapFloat[(r3+14)] = f2; - heapFloat[(r3+15)] = f5; - heapFloat[(r3+8)] = f0; - heapFloat[(r3+9)] = f1; - heapFloat[(r3+10)] = f2; - heapFloat[(r3+11)] = f5; - heapFloat[(r3+4)] = f0; - heapFloat[(r3+5)] = f1; - heapFloat[(r3+6)] = f2; - heapFloat[(r3+7)] = f5; - heapFloat[(fp+-44)] = f0; - heapFloat[(r3+1)] = f1; - r4 = (r0 + 148)|0; - heap32[(fp+-52)] = r4; - r4 = 0; - r5 = 1; - heap32[(fp+-53)] = r5; - heapFloat[(r3+2)] = f2; - heapFloat[(r3+3)] = f5; - heap32[(fp+-50)] = r5; - r24 = 0; -_5: while(true){ - f0 = f0*f0; - f1 = f1*f1; - r3 = heap32[(r1+92)]; - f0 = f0+f1; - f1 = f2*f2; - f0 = f0+f1; - heapFloat[(g0)] = f0; - sqrtf(i7); - f0 = f_g0; - f1 = 9.9999997473787516e-005; - if(f0 >=f1) //_LBB546_6 -{ - r5 = heap32[(fp+-53)]; - r5 = (r5 - r3)|0; - heap32[(fp+-51)] = r5; - f2 = heapFloat[(r1+34)]; - f5 = heapFloat[(r1+33)]; - f6 = heapFloat[(r1+32)]; - r5 = sp + -96; - f6 = -f6; - r6 = r5 >> 2; - f5 = -f5; - heapFloat[(fp+-24)] = f6; - r3 = (r3 * 36)|0; - f2 = -f2; - heapFloat[(r6+1)] = f5; - r7 = (r0 + r3)|0; - heapFloat[(r6+2)] = f2; - heap32[(r6+3)] = 0; - r6 = r7 >> 2; - r8 = heap32[(r6+45)]; - r8 = r8 << 2; - r8 = (r7 + r8)|0; - r8 = r8 >> 2; - heap32[(r8+41)] = 0; - r8 = heap32[(r1+91)]; - r8 = (r8 + -1)|0; - r9 = heap32[(r6+45)]; - r10 = r8 << 2; - r10 = (r0 + r10)|0; - r9 = r9 << 2; - r7 = (r7 + 148)|0; - r9 = (r7 + r9)|0; - r10 = r10 >> 2; - heap32[(r1+91)] = r8; - r8 = r9 >> 2; - r9 = heap32[(r10+87)]; - heap32[(r8)] = r9; - r8 = heap32[(r6+45)]; - r9 = r8 << 2; - r9 = (r7 + r9)|0; - r9 = r9 >> 2; - r9 = heap32[(r9)]; - r8 = (r8 + 1)|0; - heap32[(r6+45)] = r8; - heap32[(g0)] = r0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r9; - _ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7); - r5 = heap32[(r6+45)]; - r8 = r5 << 2; - r7 = (r8 + r7)|0; - r7 = r7 >> 2; - r7 = heap32[(r7+-1)]; - r8 = 0; -_8: while(true){ - if(uint(r8) > 2; - r9 = r9 >> 2; - f2 = heapFloat[(r10+4)]; - f5 = heapFloat[(r9)]; - f6 = heapFloat[(r10+5)]; - f7 = heapFloat[(r9+1)]; - f2 = f2-f5; - f5 = f6-f7; - f6 = heapFloat[(r10+6)]; - f7 = heapFloat[(r9+2)]; - f6 = f6-f7; - f2 = f2*f2; - f5 = f5*f5; - f2 = f2+f5; - f5 = f6*f6; - f2 = f2+f5; - if(f2 > 2; - r7 = r7 >> 2; - heap32[(r8)] = heap32[(r7+4)]; - heap32[(r8+1)] = heap32[(r7+5)]; - heap32[(r8+2)] = heap32[(r7+6)]; - heap32[(r8+3)] = heap32[(r7+7)]; - f1 = heapFloat[(r1+32)]; - f2 = heapFloat[(r7+4)]; - f5 = heapFloat[(r1+33)]; - f6 = heapFloat[(r7+5)]; - f1 = f1*f2; - f2 = f5*f6; - f5 = heapFloat[(r1+34)]; - f6 = heapFloat[(r7+6)]; - f1 = f1+f2; - f2 = f5*f6; - f1 = f1+f2; - f1 = f1/f0; - f4 = f1 > f4 ? f1 : f4; - f1 = -9.9999997473787516e-005; - f2 = f0-f4; - f0 = f0*f1; - f0 = f2+f0; - f5 = 0; - if(f0 >f5) //_LBB546_13 -{ - heap32[(fp+-49)] = 0; -_14: do { - if(r5 ==2) //_LBB546_17 -{ - r5 = heap32[(r6+38)]; - r7 = heap32[(r6+37)]; - r7 = (r7 + 16)|0; - r5 = (r5 + 16)|0; - r8 = sp + -192; - r9 = sp + -196; - heap32[(g0)] = r7; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r9; - _ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj(i7); - f3 = f_g0; -__label__ = 32; -break _14; -} -else{ - if(r5 ==3) //_LBB546_18 -{ - r5 = heap32[(r6+39)]; - r7 = heap32[(r6+38)]; - r8 = heap32[(r6+37)]; - r8 = (r8 + 16)|0; - r7 = (r7 + 16)|0; - r5 = (r5 + 16)|0; - r9 = sp + -192; - r10 = sp + -196; - heap32[(g0)] = r8; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r9; - heap32[(g0+4)] = r10; - _ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj(i7); - f3 = f_g0; -__label__ = 32; -} -else{ - if(r5 ==4) //_LBB546_19 -{ - r5 = heap32[(r6+40)]; - r7 = heap32[(r6+39)]; - r8 = heap32[(r6+38)]; - r9 = heap32[(r6+37)]; - r10 = sp + -16; - r11 = (r9 + 16)|0; - r12 = r10 >> 2; - r13 = (r8 + 16)|0; - heap32[(fp+-4)] = r11; - r11 = (r7 + 16)|0; - heap32[(r12+1)] = r13; - r13 = (r5 + 16)|0; - heap32[(r12+2)] = r11; - r9 = r9 >> 2; - heap32[(r12+3)] = r13; - r5 = r5 >> 2; - f0 = heapFloat[(r9+6)]; - f1 = heapFloat[(r5+6)]; - f2 = heapFloat[(r9+5)]; - f3 = heapFloat[(r5+5)]; - f6 = heapFloat[(r9+4)]; - f7 = heapFloat[(r5+4)]; - r11 = sp + -64; - f8 = f6-f7; - f9 = f2-f3; - r12 = r11 >> 2; - heapFloat[(fp+-16)] = f8; - f10 = f0-f1; - heapFloat[(r12+1)] = f9; - heapFloat[(r12+2)] = f10; - r8 = r8 >> 2; - heap32[(r12+3)] = 0; - f11 = heapFloat[(r8+6)]; - f12 = heapFloat[(r8+5)]; - f13 = heapFloat[(r8+4)]; - f14 = f13-f7; - f15 = f12-f3; - heapFloat[(r12+4)] = f14; - f16 = f11-f1; - heapFloat[(r12+5)] = f15; - heapFloat[(r12+6)] = f16; - r7 = r7 >> 2; - heap32[(r12+7)] = 0; - f17 = heapFloat[(r7+5)]; - f18 = heapFloat[(r7+4)]; - f19 = f9*f16; - f7 = f18-f7; - f20 = f10*f14; - f3 = f17-f3; - f21 = heapFloat[(r7+6)]; - f16 = f8*f16; - f19 = f19*f7; - f20 = f20*f3; - f22 = f11-f21; - f23 = f2-f12; - f18 = f13-f18; - f11 = f0-f11; - f12 = f12-f17; - f13 = f6-f13; - f17 = f19+f20; - f16 = f16*f3; - f14 = f9*f14; - f1 = f21-f1; - f19 = f8*f15; - f20 = f12*f11; - f21 = f22*f23; - f22 = f22*f13; - f11 = f18*f11; - f16 = f17-f16; - f14 = f14*f1; - f17 = f20-f21; - f11 = f22-f11; - f15 = f10*f15; - heapFloat[(r12+8)] = f7; - f18 = f18*f23; - f12 = f12*f13; - f13 = f16-f14; - f14 = f19*f1; - f12 = f18-f12; - heapFloat[(r12+9)] = f3; - f3 = f6*f17; - f2 = f2*f11; - f6 = f13+f14; - f7 = f15*f7; - f6 = f6-f7; - heapFloat[(r12+10)] = f1; - f1 = f3+f2; - f0 = f0*f12; - f0 = f1+f0; - heap32[(r12+11)] = 0; - f0 = f0*f6; - if(f0 >f5) //_LBB546_45 -{ -__label__ = 42; -break _5; -} -else{ - if(f6 > 2; - heap32[(fp+-19)] = 0; - heap32[(r14+1)] = 0; - r15 = 0; - f3 = -1; - heap32[(r14+2)] = 0; - heap32[(fp+-20)] = 0; -_27: while(true){ - r16 = _ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3; - r17 = r15 << 2; - r18 = (r16 + r17)|0; - r18 = r18 >> 2; - r18 = heap32[(r18)]; - r19 = r18 << 4; - r19 = (r11 + r19)|0; - r19 = r19 >> 2; - f0 = heapFloat[(r19+1)]; - f1 = heapFloat[(r19+2)]; - f2 = heapFloat[(r19)]; - f7 = f9*f1; - f11 = f10*f0; - f10 = f10*f2; - f1 = f8*f1; - f12 = heapFloat[(r5+4)]; - f7 = f7-f11; - f11 = heapFloat[(r5+5)]; - f1 = f10-f1; - f0 = f8*f0; - f2 = f9*f2; - f8 = f12*f7; - f1 = f11*f1; - f9 = heapFloat[(r5+6)]; - f0 = f0-f2; - f1 = f8+f1; - f0 = f9*f0; - f0 = f1+f0; - f0 = f0*f6; -_29: do { - if(f0 >f5) //_LBB546_27 -{ - r19 = r18 << 2; - r20 = (r10 + r19)|0; - r21 = (r10 + r17)|0; - r20 = r20 >> 2; - r21 = r21 >> 2; - r20 = heap32[(r20)]; - r21 = heap32[(r21)]; - r22 = sp + -80; - heap32[(g0)] = r21; - heap32[(g0+1)] = r20; - heap32[(g0+2)] = r13; - heap32[(g0+3)] = r12; - heap32[(g0+4)] = r22; - _ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj(i7); - f0 = f_g0; - f1 = 0; -if(!(f3 =f3) //_LBB546_26 -{ -break _29; -} -} - r20 = heap32[(fp+-20)]; - r21 = 1; - r22 = r20 & 1; - r23 = r21 << r15; - r25 = r20 & 2; - r18 = r21 << r18; - r16 = (r16 + r19)|0; - r21 = r22 == 0 ? r24 : r23; - r18 = r25 == 0 ? r24 : r18; - r20 = r20 & 4; - r22 = 8; - r23 = sp + -192; - r16 = r16 >> 2; - r18 = (r21 + r18)|0; - r20 = r20 == 0 ? r24 : r22; - r16 = heap32[(r16)]; - r17 = (r23 + r17)|0; - r18 = (r18 + r20)|0; - r16 = r16 << 2; - r19 = (r23 + r19)|0; - r17 = r17 >> 2; - heap32[(fp+-49)] = r18; - r16 = (r23 + r16)|0; - r18 = r19 >> 2; - heap32[(r17)] = heap32[(fp+-19)]; - r16 = r16 >> 2; - heap32[(r18)] = heap32[(r14+1)]; - r17 = r23 >> 2; - heap32[(r16)] = 0; - heap32[(r17+3)] = heap32[(r14+2)]; - f3 = f0; -} -} while(0); - if(r15 ==2) //_LBB546_32 -{ -break _27; -} -else{ - r16 = (r15 + 1)|0; - r15 = r15 << 4; - r15 = (r11 + r15)|0; - r15 = r15 >> 2; - f8 = heapFloat[(r15+4)]; - f9 = heapFloat[(r15+5)]; - f10 = heapFloat[(r15+6)]; - r15 = r16; -} -} - if(f3 > 2; - f2 = f8+f0; - f1 = f1/f6; - heapFloat[(r5+1)] = f0; - f0 = 1; - f2 = f2+f1; - r7 = 15; - f0 = f0-f2; - heapFloat[(r5+2)] = f1; - heapFloat[(r5+3)] = f0; -__label__ = 34; -} -else{ -__label__ = 32; -} -} -} -} -else{ -__label__ = 32; -} -} -} -} while(0); -if (__label__ == 32){ - f0 = 0; - if(f3 > 2; - heap32[(r9+45)] = 0; - heap32[(r1+32)] = 0; - heap32[(r1+33)] = 0; - heap32[(r1+34)] = 0; - heap32[(r1+35)] = 0; - heap32[(r1+92)] = r5; - r5 = heap32[(r6+45)]; -_42: do { -if(!(r5 ==0)) //_LBB546_43 -{ - r6 = heap32[(fp+-52)]; - r3 = (r6 + r3)|0; - r6 = 0; -_44: while(true){ - r10 = 1; - r10 = r10 << r6; - r10 = r7 & r10; - if(r10 ==0) //_LBB546_41 -{ - r10 = r6 << 2; - r11 = heap32[(r1+91)]; - r10 = (r3 + r10)|0; - r12 = r11 << 2; - r10 = r10 >> 2; - r12 = (r0 + r12)|0; - r10 = heap32[(r10)]; - r12 = r12 >> 2; - r11 = (r11 + 1)|0; - heap32[(r12+87)] = r10; - heap32[(r1+91)] = r11; -} -else{ - r10 = r6 << 2; - r11 = (r3 + r10)|0; - r12 = heap32[(r9+45)]; - r11 = r11 >> 2; - r13 = (r8 + 148)|0; - r12 = r12 << 2; - r12 = (r13 + r12)|0; - r14 = heap32[(r11)]; - r12 = r12 >> 2; - r15 = sp + -192; - heap32[(r12)] = r14; - r12 = heap32[(r9+45)]; - r10 = (r15 + r10)|0; - r14 = r12 << 2; - r10 = r10 >> 2; - r13 = (r13 + r14)|0; - f0 = heapFloat[(r10)]; - r10 = r13 >> 2; - r12 = (r12 + 1)|0; - heapFloat[(r10+4)] = f0; - heap32[(r9+45)] = r12; - r10 = heap32[(r11)]; - r10 = r10 >> 2; - f1 = heapFloat[(r10+4)]; - f2 = heapFloat[(r10+6)]; - f3 = heapFloat[(r10+5)]; - f6 = heapFloat[(r1+32)]; - f1 = f1*f0; - f1 = f6+f1; - heapFloat[(r1+32)] = f1; - f1 = f3*f0; - f3 = heapFloat[(r1+33)]; - f1 = f3+f1; - heapFloat[(r1+33)] = f1; - f0 = f2*f0; - f1 = heapFloat[(r1+34)]; - f0 = f1+f0; - heapFloat[(r1+34)] = f0; -} - r6 = (r6 + 1)|0; -if(!(r5 !=r6)) //_LBB546_39 -{ -break _42; -} -} -} -} while(0); -if(!(r7 !=15)) //_LBB546_46 -{ - heap32[(r1+94)] = 1; -} - r4 = (r4 + 1)|0; - if(uint(r4) > 2; - r4 = heap32[(r3+45)]; - r4 = (r4 + -1)|0; - r5 = r4 << 2; - r6 = heap32[(r1+91)]; - r2 = (r2 + r5)|0; - r5 = r6 << 2; - r2 = (r2 + 148)|0; - r5 = (r0 + r5)|0; - r2 = r2 >> 2; - heap32[(r3+45)] = r4; - r3 = r5 >> 2; - r2 = heap32[(r2)]; - r4 = (r6 + 1)|0; - heap32[(r3+87)] = r2; - heap32[(r1+91)] = r4; -break; -case 42: - r2 = heap32[(r1+92)]; - r2 = (r2 * 36)|0; - r2 = (r0 + r2)|0; - r4 = r2 >> 2; - r3 = heap32[(r4+45)]; - r3 = (r3 + -1)|0; - r5 = r3 << 2; - r6 = heap32[(r1+91)]; - r2 = (r2 + r5)|0; - r5 = r6 << 2; - r2 = (r2 + 148)|0; - r5 = (r0 + r5)|0; - r2 = r2 >> 2; - heap32[(r4+45)] = r3; - r4 = r5 >> 2; - r2 = heap32[(r2)]; - r3 = (r6 + 1)|0; - heap32[(r4+87)] = r2; - heap32[(r1+91)] = r3; -break; -case 5: - heap32[(r1+94)] = 1; -break; -case 44: - heap32[(r1+94)] = 2; -break; -case 12: - r2 = heap32[(r1+92)]; - r2 = (r2 * 36)|0; - r2 = (r0 + r2)|0; - r3 = r2 >> 2; - r4 = heap32[(r3+45)]; - r4 = (r4 + -1)|0; - r5 = r4 << 2; - r6 = heap32[(r1+91)]; - r2 = (r2 + r5)|0; - r5 = r6 << 2; - r2 = (r2 + 148)|0; - r5 = (r0 + r5)|0; - r2 = r2 >> 2; - heap32[(r3+45)] = r4; - r3 = r5 >> 2; - r2 = heap32[(r2)]; - r4 = (r6 + 1)|0; - heap32[(r3+87)] = r2; - heap32[(r1+91)] = r4; -break; -} - r2 = heap32[(r1+92)]; - r2 = (r2 * 36)|0; - r0 = (r0 + r2)|0; - r0 = (r0 + 148)|0; - heap32[(r1+93)] = r0; - r0 = heap32[(r1+94)]; - if(r0 ==1) //_LBB546_53 -{ - heap32[(r1+36)] = 0; - r0 = 1; -} -else{ -if(!(r0 !=0)) //_LBB546_54 -{ - f0 = heapFloat[(r1+32)]; - f1 = heapFloat[(r1+33)]; - f2 = heapFloat[(r1+34)]; - f0 = f0*f0; - f1 = f1*f1; - f0 = f0+f1; - f1 = f2*f2; - f0 = f0+f1; - heapFloat[(g0)] = f0; - sqrtf(i7); - heapFloat[(r1+36)] = f_g0; - r0 = heap32[(r1+94)]; - r_g0 = r0; - return; -} -} - r_g0 = r0; - return; -} - -function _ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+2450)]; -_1: do { - if(r1 ==0) //_LBB547_23 -{ - heap32[(r0)] = 5; - r1 = 0; -} -else{ - r2 = r1 >> 2; - r3 = heap32[(r2+13)]; -if(!(r3 ==0)) //_LBB547_3 -{ - r3 = r3 >> 2; - r4 = heap32[(r2+12)]; - heap32[(r3+12)] = r4; -} - r3 = heap32[(r2+12)]; -if(!(r3 ==0)) //_LBB547_5 -{ - r3 = r3 >> 2; - r4 = heap32[(r2+13)]; - heap32[(r3+13)] = r4; -} - r3 = heap32[(r0+2450)]; -if(!(r3 !=r1)) //_LBB547_7 -{ - r3 = heap32[(r2+13)]; - heap32[(r0+2450)] = r3; -} - r3 = heap32[(r0+2451)]; - r3 = (r3 + -1)|0; - heap32[(r0+2451)] = r3; - heap32[(r2+12)] = 0; - r3 = heap32[(r0+2448)]; - heap32[(r2+13)] = r3; - r3 = heap32[(r0+2448)]; -if(!(r3 ==0)) //_LBB547_9 -{ - r3 = r3 >> 2; - heap32[(r3+12)] = r1; -} - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - r5 = heap32[(fp+3)]; - heap32[(r0+2448)] = r1; - r6 = heap32[(r0+2449)]; - r6 = (r6 + 1)|0; - r7 = 0; - heap32[(r0+2449)] = r6; - heap8[r1+59] = r7; - heap32[(r2+6)] = r3; - heap32[(r2+7)] = r4; - heap32[(r2+8)] = r5; - r5 = r5 >> 2; - r3 = r3 >> 2; - r4 = r4 >> 2; - f0 = heapFloat[(r5+6)]; - f1 = heapFloat[(r3+6)]; - f2 = heapFloat[(r4+6)]; - f3 = heapFloat[(r5+5)]; - f4 = heapFloat[(r3+5)]; - f5 = heapFloat[(r4+5)]; - f5 = f5-f4; - f0 = f0-f1; - f1 = f2-f1; - f2 = f3-f4; - f3 = heapFloat[(r5+4)]; - f4 = heapFloat[(r3+4)]; - f6 = heapFloat[(r4+4)]; - f3 = f3-f4; - f4 = f6-f4; - f6 = f5*f0; - f7 = f1*f2; - f6 = f6-f7; - f1 = f1*f3; - f0 = f4*f0; - f0 = f1-f0; - heapFloat[(r2)] = f6; - f1 = f4*f2; - f2 = f5*f3; - f1 = f1-f2; - heapFloat[(r2+1)] = f0; - heapFloat[(r2+2)] = f1; - f2 = f6*f6; - f0 = f0*f0; - heap32[(r2+3)] = 0; - f0 = f2+f0; - f1 = f1*f1; - f0 = f0+f1; - heapFloat[(g0)] = f0; - sqrtf(i7); - f0 = f_g0; - f1 = heapFloat[(r5+6)]; - f2 = heapFloat[(r3+6)]; - f3 = heapFloat[(r4+6)]; - f4 = heapFloat[(r5+5)]; - f5 = heapFloat[(r3+5)]; - f6 = heapFloat[(r4+5)]; - f7 = heapFloat[(r5+4)]; - f8 = heapFloat[(r3+4)]; - f9 = heapFloat[(r4+4)]; - f10 = heapFloat[(r2)]; - f11 = f2-f3; - f12 = heapFloat[(r2+1)]; - f13 = f3-f1; - f14 = heapFloat[(r2+2)]; - f15 = f5-f6; - f16 = f8-f9; - f17 = f6-f4; - f18 = f9-f7; - f19 = f1-f2; - f20 = f4-f5; - f21 = f7-f8; - f22 = f12*f11; - f23 = f14*f15; - f24 = f14*f16; - f11 = f10*f11; - f25 = f12*f13; - f26 = f14*f17; - f27 = f14*f18; - f13 = f10*f13; - f22 = f22-f23; - f11 = f24-f11; - f23 = f25-f26; - f13 = f27-f13; - f15 = f10*f15; - f16 = f12*f16; - f17 = f10*f17; - f18 = f12*f18; - f24 = f12*f19; - f25 = f14*f20; - f26 = f14*f21; - f19 = f10*f19; - f15 = f15-f16; - f16 = f17-f18; - f17 = f24-f25; - f18 = f26-f19; - f8 = f8*f22; - f5 = f5*f11; - f9 = f9*f23; - f6 = f6*f13; - f11 = f10*f20; - f13 = f12*f21; - f11 = f11-f13; - f5 = f8+f5; - f2 = f2*f15; - f6 = f9+f6; - f3 = f3*f16; - f7 = f7*f17; - f4 = f4*f18; - f2 = f5+f2; - f3 = f6+f3; - f4 = f7+f4; - f1 = f1*f11; - f5 = 9.9999997473787516e-005; - f6 = 1; - f2 = f2 < f3 ? f2 : f3; - f1 = f4+f1; - f1 = f2 < f1 ? f2 : f1; - f2 = f0 > f5 ? f0 : f6; - f1 = f1/f2; - f2 = -0.0099999997764825821; - f3 = 0; - f1 = f1 < f2 ? f1 : f3; - heapFloat[(r2+5)] = f1; - if(f0 <=f5) //_LBB547_13 -{ - heap32[(r0)] = 2; -} -else{ - r4 = heap32[(fp+4)]; - f1 = heapFloat[(r3+4)]; - f2 = heapFloat[(r3+5)]; - f3 = heapFloat[(r3+6)]; - f1 = f1*f10; - f2 = f2*f12; - f1 = f1+f2; - f2 = f3*f14; - f1 = f1+f2; - f2 = f6/f0; - f0 = f1/f0; - f1 = f10*f2; - heapFloat[(r2+4)] = f0; - f3 = f12*f2; - heapFloat[(r2)] = f1; - f1 = f14*f2; - heapFloat[(r2+1)] = f3; - heapFloat[(r2+2)] = f1; - if(r4 !=0) //_LBB547_24 -{ -break _1; -} -else{ - f1 = -9.9999997473787516e-006; - if(f0 >=f1) //_LBB547_24 -{ -break _1; -} -else{ - heap32[(r0)] = 3; -} -} -} - r3 = heap32[(r2+13)]; -if(!(r3 ==0)) //_LBB547_16 -{ - r3 = r3 >> 2; - r4 = heap32[(r2+12)]; - heap32[(r3+12)] = r4; -} - r3 = heap32[(r2+12)]; -if(!(r3 ==0)) //_LBB547_18 -{ - r3 = r3 >> 2; - r4 = heap32[(r2+13)]; - heap32[(r3+13)] = r4; -} - r3 = heap32[(r0+2448)]; -if(!(r3 !=r1)) //_LBB547_20 -{ - r3 = heap32[(r2+13)]; - heap32[(r0+2448)] = r3; -} - r3 = heap32[(r0+2449)]; - r3 = (r3 + -1)|0; - heap32[(r0+2449)] = r3; - heap32[(r2+12)] = 0; - r3 = heap32[(r0+2450)]; - heap32[(r2+13)] = r3; - r2 = heap32[(r0+2450)]; -if(!(r2 ==0)) //_LBB547_22 -{ - r2 = r2 >> 2; - heap32[(r2+12)] = r1; -} - heap32[(r0+2450)] = r1; - r1 = heap32[(r0+2451)]; - r1 = (r1 + 1)|0; - heap32[(r0+2451)] = r1; - r0 = 0; - r_g0 = r0; - return; -} -} while(0); - r_g0 = r1; - return; -} - -function _ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var f0; - var f1; - var f2; - var f3; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp+3)]; - r1 = heap32[(fp+1)]; - r2 = heapU8[r0+59]; -_1: do { -if(!(r2 ==r1)) //_LBB548_10 -{ - r2 = heap32[(fp)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+4)]; - r5 = heap32[(fp+5)]; - r6 = r0 >> 2; - r7 = r3 >> 2; - f0 = heapFloat[(r6)]; - f1 = heapFloat[(r7+4)]; - f2 = heapFloat[(r6+1)]; - f3 = heapFloat[(r7+5)]; - r8 = _ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3; - r9 = r4 << 2; - r8 = (r8 + r9)|0; - f0 = f0*f1; - f1 = f2*f3; - f2 = heapFloat[(r6+2)]; - f3 = heapFloat[(r7+6)]; - r7 = r8 >> 2; - f0 = f0+f1; - f1 = f2*f3; - r7 = heap32[(r7)]; - f0 = f0+f1; - f1 = heapFloat[(r6+4)]; - f0 = f0-f1; - f1 = -9.9999997473787516e-006; - if(f0 >=f1) //_LBB548_8 -{ - r4 = r7 << 2; - r4 = (r0 + r4)|0; - r7 = (r0 + r7)|0; - heap8[r0+59] = r1; - r4 = r4 >> 2; - r7 = heapU8[r7+56]; - r4 = heap32[(r4+9)]; - r8 = _ZZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonEE4i2m3; - r8 = (r8 + r9)|0; - r8 = r8 >> 2; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r4; - heap32[(g0+4)] = r7; - heap32[(g0+5)] = r5; - r4 = heap32[(r8)]; - _ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i7); - r7 = r_g0; - if(r7 ==0) //_LBB548_10 -{ -break _1; -} -else{ - r7 = r4 << 2; - r7 = (r0 + r7)|0; - r4 = (r0 + r4)|0; - r7 = r7 >> 2; - r4 = heapU8[r4+56]; - r7 = heap32[(r7+9)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = r4; - heap32[(g0+5)] = r5; - _ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i7); - r1 = r_g0; - if(r1 !=0) //_LBB548_11 -{ - r1 = heap32[(r6+13)]; -if(!(r1 ==0)) //_LBB548_13 -{ - r1 = r1 >> 2; - r3 = heap32[(r6+12)]; - heap32[(r1+12)] = r3; -} - r1 = heap32[(r6+12)]; -if(!(r1 ==0)) //_LBB548_15 -{ - r1 = r1 >> 2; - r3 = heap32[(r6+13)]; - heap32[(r1+13)] = r3; -} - r1 = r2 >> 2; - r2 = heap32[(r1+2448)]; -if(!(r2 !=r0)) //_LBB548_17 -{ - r2 = heap32[(r6+13)]; - heap32[(r1+2448)] = r2; -} - r2 = heap32[(r1+2449)]; - r2 = (r2 + -1)|0; - heap32[(r1+2449)] = r2; - heap32[(r6+12)] = 0; - r2 = heap32[(r1+2450)]; - heap32[(r6+13)] = r2; - r2 = heap32[(r1+2450)]; -if(!(r2 ==0)) //_LBB548_19 -{ - r2 = r2 >> 2; - heap32[(r2+12)] = r0; -} - heap32[(r1+2450)] = r0; - r0 = heap32[(r1+2451)]; - r0 = (r0 + 1)|0; - heap32[(r1+2451)] = r0; -} -else{ -break _1; -} -} -} -else{ - r1 = (r0 + 24)|0; - r6 = r7 << 2; - r7 = (r1 + r9)|0; - r1 = (r1 + r6)|0; - r6 = r7 >> 2; - r1 = r1 >> 2; - r6 = heap32[(r6)]; - r1 = heap32[(r1)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = 0; - _ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7); - r1 = r_g0; - if(r1 ==0) //_LBB548_10 -{ -break _1; -} -else{ - r2 = r1 >> 2; - heap8[r1+56] = r4; - r3 = (r0 + r9)|0; - r6 = (r0 + r4)|0; - r7 = 0; - heap32[(r2+9)] = r0; - r0 = r3 >> 2; - heap8[r6+56] = r7; - r3 = r5 >> 2; - heap32[(r0+9)] = r1; - r0 = heap32[(r3)]; - if(r0 ==0) //_LBB548_5 -{ - heap32[(r3+1)] = r1; -} -else{ - r5 = 2; - r6 = r0 >> 2; - heap8[r0+57] = r5; - r5 = 1; - heap32[(r6+10)] = r1; - heap8[r1+58] = r5; - heap32[(r2+11)] = r0; -} - heap32[(r3)] = r1; - r0 = heap32[(r3+2)]; - r0 = (r0 + 1)|0; - heap32[(r3+2)] = r0; -} -} - r0 = 1; - r_g0 = r0; - return; -} -} while(0); - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN15btGjkEpaSolver211PenetrationEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsEb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; -var __label__ = 0; - i7 = sp + -10400;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp+5)]; - r2 = heap32[(fp)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+3)]; - r5 = sp + -176; - r6 = heap32[(fp+6)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r4; - heap32[(g0+4)] = r1; - heap32[(g0+5)] = r5; - heap32[(g0+6)] = r6; - r2 = sp + -560; - r3 = r2 >> 2; - _ZN12gjkepa2_implL10InitializeEPK13btConvexShapeRK11btTransformS2_S5_RN15btGjkEpaSolver28sResultsERNS_13MinkowskiDiffEb(i7); - heap32[(r3+32)] = 0; - heap32[(r3+33)] = 0; - heap32[(r3+34)] = 0; - heap32[(r3+35)] = 0; - heap32[(r3+91)] = 0; - heap32[(r3+94)] = 2; - r4 = heap32[(fp+4)]; - heap32[(r3+92)] = 0; - r4 = r4 >> 2; - heap32[(r3+36)] = 0; - f0 = heapFloat[(r4+2)]; - f1 = heapFloat[(r4+1)]; - f2 = heapFloat[(r4)]; - r6 = sp + -48; - f2 = -f2; - r7 = r6 >> 2; - f1 = -f1; - heapFloat[(fp+-12)] = f2; - f0 = -f0; - heapFloat[(r7+1)] = f1; - heapFloat[(r7+2)] = f0; - heap32[(r7+3)] = 0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r6; - _ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(i7); - r6 = r_g0; - if(r6 ==2) //_LBB549_71 -{ - r0 = r1 >> 2; - heap32[(r0)] = 2; -} -else{ -if(!(r6 !=1)) //_LBB549_72 -{ - r6 = sp + -10368; - r7 = r6 >> 2; - heap32[(r7+2448)] = 0; - heap32[(r7+2449)] = 0; - heap32[(r7+2450)] = 0; - heap32[(r7+2451)] = 0; - heap32[(fp+-2592)] = 9; - heap32[(r7+10)] = 0; - heap32[(r7+11)] = 0; - heap32[(r7+12)] = 0; - heap32[(r7+13)] = 0; - r8 = 0; - r9 = (r6 + 9780)|0; - r10 = (r6 + 9728)|0; - heap32[(r7+14)] = 0; - heap32[(r7+2447)] = 0; - r11 = r8; - r12 = r8; - r13 = r8; -_5: while(true){ - r14 = 127; - r14 = (r14 - r13)|0; - r15 = (r9 + r8)|0; - r14 = (r14 * 60)|0; - r14 = (r6 + r14)|0; - r15 = r15 >> 2; - r14 = (r14 + 2108)|0; - r16 = (r10 + r8)|0; - heap32[(r15+-1)] = 0; - heap32[(r15)] = r12; - if(r12 !=0) //_LBB549_5 -{ - r11 = r12 >> 2; - heap32[(r11+12)] = r16; - r11 = heap32[(r7+2451)]; -} - r8 = (r8 + -60)|0; - r13 = (r13 + 1)|0; - r11 = (r11 + 1)|0; - heap32[(r7+2450)] = r16; - heap32[(r7+2451)] = r11; - r12 = r14; -if(!(r8 !=-7680)) //_LBB549_3 -{ -break _5; -} -} - r3 = heap32[(r3+93)]; - f0 = heapFloat[(r4+2)]; - f1 = heapFloat[(r4+1)]; - f2 = heapFloat[(r4)]; - r3 = r3 >> 2; - r4 = heap32[(r3+8)]; - if(uint(r4) > 2; - r9 = heap32[(r8+13)]; -if(!(r9 ==0)) //_LBB549_12 -{ - r9 = r9 >> 2; - r10 = heap32[(r8+12)]; - heap32[(r9+12)] = r10; -} - r9 = heap32[(r8+12)]; -if(!(r9 ==0)) //_LBB549_14 -{ - r9 = r9 >> 2; - r10 = heap32[(r8+13)]; - heap32[(r9+13)] = r10; -} - r9 = heap32[(r7+2448)]; -if(!(r9 !=r4)) //_LBB549_16 -{ - r9 = heap32[(r8+13)]; - heap32[(r7+2448)] = r9; -} - r9 = heap32[(r7+2449)]; - r9 = (r9 + -1)|0; - heap32[(r7+2449)] = r9; - heap32[(r8+12)] = 0; - r9 = heap32[(r7+2450)]; - heap32[(r8+13)] = r9; - r8 = heap32[(r7+2450)]; -if(!(r8 ==0)) //_LBB549_18 -{ - r8 = r8 >> 2; - heap32[(r8+12)] = r4; -} - heap32[(r7+2450)] = r4; - r4 = heap32[(r7+2451)]; - r4 = (r4 + 1)|0; - heap32[(r7+2451)] = r4; - r4 = heap32[(r7+2448)]; -if(!(r4 !=0)) //_LBB549_10 -{ -break _14; -} -} -} -} while(0); - heap32[(fp+-2592)] = 0; - heap32[(r7+2447)] = 0; - r4 = heap32[(r3+1)]; - r8 = heap32[(r3)]; - r9 = heap32[(r3+3)]; - r10 = r8 >> 2; - r11 = r4 >> 2; - r9 = r9 >> 2; - r12 = heap32[(r3+2)]; - r13 = r12 >> 2; - f3 = heapFloat[(r11+6)]; - f4 = heapFloat[(r9+6)]; - f5 = heapFloat[(r10+6)]; - f6 = heapFloat[(r10+5)]; - f7 = heapFloat[(r9+5)]; - f8 = heapFloat[(r11+4)]; - f9 = heapFloat[(r9+4)]; - f10 = heapFloat[(r13+5)]; - f11 = heapFloat[(r10+4)]; - f12 = heapFloat[(r13+4)]; - f3 = f3-f4; - f6 = f6-f7; - f8 = f8-f9; - f5 = f5-f4; - f11 = f11-f9; - f13 = f6*f3; - f9 = f12-f9; - f12 = f5*f8; - f10 = f10-f7; - f3 = f11*f3; - f14 = heapFloat[(r13+6)]; - f15 = heapFloat[(r11+5)]; - f13 = f13*f9; - f12 = f12*f10; - f7 = f15-f7; - f12 = f13+f12; - f3 = f3*f10; - f6 = f6*f8; - f4 = f14-f4; - f8 = f11*f7; - f3 = f12-f3; - f6 = f6*f4; - f5 = f5*f7; - f3 = f3-f6; - f4 = f8*f4; - f3 = f3+f4; - f4 = f5*f9; - f3 = f3-f4; - f4 = 0; - if(f3 > 2; - f0 = heapFloat[(r11+4)]; - f0 = f0*f0; - f1 = heapFloat[(r11+5)]; -_35: while(true){ - f2 = f1; - r11 = r3; - f3 = f0; -_37: while(true){ - r3 = r3 >> 2; - r3 = heap32[(r3+13)]; - if(r3 !=0) //_LBB549_24 -{ - r12 = r3 >> 2; - f1 = heapFloat[(r12+5)]; -if(!(f1 =f3)) //_LBB549_27 -{ -continue _35; -} -} -} -else{ -break _35; -} -} -} - r3 = r11 >> 2; - f0 = heapFloat[(r3)]; - f1 = heapFloat[(r3+1)]; - f2 = heapFloat[(r3+2)]; - f3 = heapFloat[(r3+3)]; - f4 = heapFloat[(r3+4)]; - f5 = heapFloat[(r3+5)]; - r12 = heap32[(r3+6)]; - r13 = heap32[(r3+7)]; - r3 = heap32[(r3+8)]; - r14 = 0; - r15 = r4 >> 2; - heap8[r4+56] = r14; - heap32[(r15+9)] = r8; - r16 = r8 >> 2; - heap8[r8+56] = r14; - heap32[(r16+9)] = r4; - heap8[r4+57] = r14; - r17 = 1; - heap32[(r15+10)] = r9; - r18 = r9 >> 2; - heap8[r9+56] = r17; - heap32[(r18+9)] = r4; - heap8[r4+58] = r14; - r19 = 2; - heap32[(r15+11)] = r10; - r15 = r10 >> 2; - heap8[r10+56] = r19; - heap32[(r15+9)] = r4; - heap8[r8+57] = r19; - heap32[(r16+10)] = r10; - heap8[r10+58] = r17; - heap32[(r15+11)] = r8; - heap8[r8+58] = r17; - heap32[(r16+11)] = r9; - heap8[r9+57] = r19; - heap32[(r18+10)] = r8; - heap8[r9+58] = r17; - heap32[(r18+11)] = r10; - heap8[r10+57] = r19; - heap32[(r15+10)] = r9; - heap32[(fp+-2592)] = 0; -_42: while(true){ - r4 = (r14 + 1)|0; -_44: while(true){ - if(uint(r14) uint(63)) //_LBB549_54 -{ -__label__ = 53; -break _42; -} -else{ - r9 = sp + -16; - r10 = r9 >> 2; - heap32[(fp+-4)] = 0; - heap32[(r10+1)] = 0; - r15 = (r8 + 1)|0; - heap32[(r10+2)] = 0; - r8 = r8 << 5; - heap32[(r7+2447)] = r15; - r8 = (r6 + r8)|0; - heap8[r11+59] = r4; - r15 = (r8 + 60)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r15; - r8 = r8 >> 2; - _ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i7); - r16 = r11 >> 2; - f6 = heapFloat[(r16)]; - f7 = heapFloat[(r8+19)]; - f8 = heapFloat[(r16+1)]; - f9 = heapFloat[(r8+20)]; - f6 = f6*f7; - f7 = f8*f9; - f8 = heapFloat[(r16+2)]; - f9 = heapFloat[(r8+21)]; - f6 = f6+f7; - f7 = f8*f9; - f6 = f6+f7; - f7 = heapFloat[(r16+4)]; - f6 = f6-f7; - f7 = 9.9999997473787516e-005; - if(f6 <=f7) //_LBB549_53 -{ -__label__ = 52; -break _42; -} -else{ - r14 = (r14 + 1)|0; - r8 = (r11 + 1)|0; - r18 = 0; - r20 = r17; -_49: while(true){ - r21 = r18 << 2; - r21 = (r11 + r21)|0; - r22 = (r8 + r18)|0; - r21 = r21 >> 2; - r22 = heapU8[r22+55]; - r21 = heap32[(r21+9)]; - heap32[(g0)] = r6; - heap32[(g0+1)] = r14; - heap32[(g0+2)] = r15; - heap32[(g0+3)] = r21; - heap32[(g0+4)] = r22; - heap32[(g0+5)] = r9; - _ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i7); - r18 = (r18 + 1)|0; - r20 = r_g0 & r20; - if(uint(r18) >uint(2)) //_LBB549_35 -{ -break _49; -} -else{ -if(!(r20 !=0)) //_LBB549_33 -{ -break _49; -} -} -} - if(r20 !=1) //_LBB549_52 -{ -__label__ = 51; -break _42; -} -else{ - r8 = heap32[(r10+2)]; - if(uint(r8) > 2; - heap8[r8+57] = r19; - r15 = 1; - heap32[(r10+10)] = r9; - r10 = r9 >> 2; - heap8[r9+58] = r15; - heap32[(r10+11)] = r8; - r8 = heap32[(r16+13)]; -if(!(r8 ==0)) //_LBB549_39 -{ - r8 = r8 >> 2; - r9 = heap32[(r16+12)]; - heap32[(r8+12)] = r9; -} - r8 = heap32[(r16+12)]; -if(!(r8 ==0)) //_LBB549_41 -{ - r8 = r8 >> 2; - r9 = heap32[(r16+13)]; - heap32[(r8+13)] = r9; -} - r8 = heap32[(r7+2448)]; -if(!(r8 !=r11)) //_LBB549_43 -{ - r8 = heap32[(r16+13)]; - heap32[(r7+2448)] = r8; -} - r8 = heap32[(r7+2449)]; - r8 = (r8 + -1)|0; - heap32[(r7+2449)] = r8; - heap32[(r16+12)] = 0; - r8 = heap32[(r7+2450)]; - heap32[(r16+13)] = r8; - r8 = heap32[(r7+2450)]; -if(!(r8 ==0)) //_LBB549_45 -{ - r8 = r8 >> 2; - heap32[(r8+12)] = r11; -} - heap32[(r7+2450)] = r11; - r11 = heap32[(r7+2451)]; - r11 = (r11 + 1)|0; - heap32[(r7+2451)] = r11; - r8 = heap32[(r7+2448)]; - r11 = r8 >> 2; - f6 = heapFloat[(r11+4)]; - f6 = f6*f6; - f7 = heapFloat[(r11+5)]; -_67: while(true){ - f8 = f7; - r11 = r8; - f9 = f6; -_69: while(true){ - r8 = r8 >> 2; - r8 = heap32[(r8+13)]; - if(r8 !=0) //_LBB549_46 -{ - r9 = r8 >> 2; - f7 = heapFloat[(r9+5)]; -if(!(f7 =f9)) //_LBB549_49 -{ -continue _67; -} -} -} -else{ -break _67; -} -} -} - r8 = r11 >> 2; - f6 = heapFloat[(r8+5)]; - r4 = (r4 + 1)|0; -if(!(f6 > 2; - r2 = r13 >> 2; - f2 = f2*f4; - f3 = heapFloat[(r3+6)]; - f5 = heapFloat[(r2+6)]; - f1 = f1*f4; - f6 = heapFloat[(r3+5)]; - f7 = heapFloat[(r2+5)]; - f0 = f0*f4; - f4 = heapFloat[(r3+4)]; - f8 = heapFloat[(r2+4)]; - f5 = f5-f2; - f6 = f6-f1; - f8 = f8-f0; - f3 = f3-f2; - f7 = f7-f1; - f4 = f4-f0; - f9 = f7*f3; - f10 = f5*f6; - f5 = f5*f4; - f3 = f8*f3; - f9 = f9-f10; - f3 = f5-f3; - f5 = f8*f6; - f4 = f7*f4; - f4 = f5-f4; - f5 = f9*f9; - f3 = f3*f3; - f3 = f5+f3; - f4 = f4*f4; - f3 = f3+f4; - heapFloat[(g0)] = f3; - sqrtf(i7); - heapFloat[(r7+5)] = f_g0; - r4 = r12 >> 2; - f3 = heapFloat[(r4+6)]; - f4 = heapFloat[(r4+5)]; - f5 = heapFloat[(r4+4)]; - f6 = heapFloat[(r3+6)]; - f7 = heapFloat[(r3+5)]; - f8 = heapFloat[(r3+4)]; - f6 = f6-f2; - f4 = f4-f1; - f8 = f8-f0; - f3 = f3-f2; - f7 = f7-f1; - f5 = f5-f0; - f9 = f7*f3; - f10 = f6*f4; - f6 = f6*f5; - f3 = f8*f3; - f9 = f9-f10; - f3 = f6-f3; - f4 = f8*f4; - f5 = f7*f5; - f4 = f4-f5; - f5 = f9*f9; - f3 = f3*f3; - f3 = f5+f3; - f4 = f4*f4; - f3 = f3+f4; - heapFloat[(g0)] = f3; - sqrtf(i7); - heapFloat[(r7+6)] = f_g0; - f3 = heapFloat[(r2+6)]; - f4 = heapFloat[(r2+5)]; - f5 = heapFloat[(r2+4)]; - f6 = heapFloat[(r4+6)]; - f7 = heapFloat[(r4+5)]; - f8 = heapFloat[(r4+4)]; - f6 = f6-f2; - f4 = f4-f1; - f8 = f8-f0; - f2 = f3-f2; - f1 = f7-f1; - f0 = f5-f0; - f3 = f1*f2; - f5 = f6*f4; - f6 = f6*f0; - f2 = f8*f2; - f3 = f3-f5; - f2 = f6-f2; - f4 = f8*f4; - f0 = f1*f0; - f0 = f4-f0; - f1 = f3*f3; - f2 = f2*f2; - f1 = f1+f2; - f0 = f0*f0; - f0 = f1+f0; - heapFloat[(g0)] = f0; - sqrtf(i7); - f1 = heapFloat[(r7+5)]; - f2 = heapFloat[(r7+6)]; - f3 = f1+f2; - f3 = f3+f_g0; - f1 = f1/f3; - f2 = f2/f3; - heapFloat[(r7+5)] = f1; - f0 = f_g0/f3; - heapFloat[(r7+6)] = f2; - heapFloat[(r7+7)] = f0; -__label__ = 60; -} -} -} -if (__label__ == 56){ - heap32[(fp+-2592)] = 8; - heapFloat[(r7+10)] = f2; - heapFloat[(r7+11)] = f1; - heapFloat[(r7+12)] = f0; - f2 = f2*f2; - f1 = f1*f1; - heap32[(r7+13)] = 0; - f1 = f2+f1; - f0 = f0*f0; - f0 = f1+f0; - heapFloat[(g0)] = f0; - sqrtf(i7); - f0 = f_g0; - f1 = 0; - if(f0 >f1) //_LBB549_59 -{ - f1 = 1; - f2 = heapFloat[(r7+12)]; - f0 = f1/f0; - f1 = heapFloat[(r7+11)]; - f3 = heapFloat[(r7+10)]; - f2 = f2*f0; - f1 = f1*f0; - f0 = f3*f0; -} -else{ - f0 = 1; - f2 = f1; -} - heapFloat[(r7+10)] = f0; - heapFloat[(r7+11)] = f1; - heapFloat[(r7+12)] = f2; - heap32[(r7+13)] = 0; - heap32[(r7+14)] = 0; - heap32[(r7+9)] = 1; - r2 = heap32[(r3)]; - heap32[(r7+1)] = r2; - heap32[(r7+5)] = 1065353216; -} - r2 = heap32[(fp+-2592)]; - if(r2 ==9) //_LBB549_70 -{ - r1 = r1 >> 2; - heap32[(r1)] = 3; - r1 = 0; - r_g0 = r1; - return; -} -else{ - r2 = heap32[(r7+9)]; -_90: do { - if(r2 !=0) //_LBB549_64 -{ - r2 = 0; - f0 = 0; - f1 = f0; - f2 = f0; -_92: while(true){ - r3 = r2 << 2; - r3 = (r6 + r3)|0; - r4 = r5 >> 2; - r3 = r3 >> 2; - r8 = heap32[(r4+30)]; - r2 = (r2 + 1)|0; - r9 = heap32[(r3+1)]; - r10 = heap32[(fp+-44)]; - r4 = heap32[(r4+31)]; - r11 = r8 & 1; - if(r11 != 0) //_LBB549_67 -{ - r11 = (r10 + r4)|0; - r11 = r11 >> 2; - r11 = heap32[(r11)]; - r8 = (r8 + r11)|0; - r8 = (r8 + -1)|0; - r8 = r8 >> 2; - r8 = heap32[(r8)]; -} - r11 = sp + -32; - r4 = (r10 + r4)|0; - heap32[(g0)] = r11; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r9; - __FUNCTION_TABLE__[(r8)>>2](i7); - r4 = r11 >> 2; - f3 = heapFloat[(fp+-8)]; - f4 = heapFloat[(r3+5)]; - f5 = heapFloat[(r4+1)]; - f6 = heapFloat[(r4+2)]; - f3 = f3*f4; - f5 = f5*f4; - f4 = f6*f4; - f2 = f2+f3; - f1 = f1+f5; - f0 = f0+f4; - r3 = heap32[(r7+9)]; -if(!(uint(r3) >uint(r2))) //_LBB549_65 -{ -break _90; -} -} -} -else{ - f0 = 0; - f1 = f0; - f2 = f0; -} -} while(0); - r1 = r1 >> 2; - r0 = r0 >> 2; - heap32[(r1)] = 1; - f3 = heapFloat[(r0)]; - f4 = heapFloat[(r0+1)]; - f5 = heapFloat[(r0+4)]; - f6 = heapFloat[(r0+5)]; - f3 = f3*f2; - f4 = f4*f1; - f7 = heapFloat[(r0+2)]; - f8 = heapFloat[(r0+8)]; - f9 = heapFloat[(r0+9)]; - f10 = heapFloat[(r0+6)]; - f5 = f5*f2; - f6 = f6*f1; - f3 = f3+f4; - f4 = f7*f0; - f7 = heapFloat[(r0+10)]; - f8 = f8*f2; - f9 = f9*f1; - f5 = f5+f6; - f6 = f10*f0; - f3 = f3+f4; - f4 = heapFloat[(r0+12)]; - f10 = heapFloat[(r0+14)]; - f11 = heapFloat[(r0+13)]; - f5 = f5+f6; - f6 = f8+f9; - f7 = f7*f0; - f3 = f3+f4; - f4 = f6+f7; - f5 = f5+f11; - heapFloat[(r1+1)] = f3; - f3 = f4+f10; - heapFloat[(r1+2)] = f5; - heapFloat[(r1+3)] = f3; - heap32[(r1+4)] = 0; - f3 = heapFloat[(r7+14)]; - f4 = heapFloat[(r7+11)]; - f5 = heapFloat[(r7+10)]; - f6 = heapFloat[(r7+12)]; - f7 = f5*f3; - f8 = f4*f3; - f9 = f6*f3; - f2 = f2-f7; - f7 = heapFloat[(r0)]; - f1 = f1-f8; - f8 = heapFloat[(r0+1)]; - f10 = heapFloat[(r0+4)]; - f11 = heapFloat[(r0+5)]; - f7 = f7*f2; - f8 = f8*f1; - f0 = f0-f9; - f9 = heapFloat[(r0+2)]; - f12 = heapFloat[(r0+8)]; - f13 = heapFloat[(r0+9)]; - f14 = heapFloat[(r0+6)]; - f10 = f10*f2; - f11 = f11*f1; - f7 = f7+f8; - f8 = f9*f0; - f9 = heapFloat[(r0+10)]; - f2 = f12*f2; - f1 = f13*f1; - f10 = f10+f11; - f11 = f14*f0; - f7 = f7+f8; - f8 = heapFloat[(r0+12)]; - f12 = heapFloat[(r0+14)]; - f13 = heapFloat[(r0+13)]; - f10 = f10+f11; - f1 = f2+f1; - f0 = f9*f0; - f2 = f7+f8; - f0 = f1+f0; - f1 = f10+f13; - heapFloat[(r1+5)] = f2; - f0 = f0+f12; - heapFloat[(r1+6)] = f1; - heapFloat[(r1+7)] = f0; - f0 = -f5; - heap32[(r1+8)] = 0; - f1 = -f4; - heapFloat[(r1+9)] = f0; - f0 = -f6; - heapFloat[(r1+10)] = f1; - heapFloat[(r1+11)] = f0; - f0 = -f3; - heap32[(r1+12)] = 0; - heapFloat[(r1+13)] = f0; - r1 = 1; - r_g0 = r1; - return; -} -} -} - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN15btGjkEpaSolver28DistanceEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; -var __label__ = 0; - i7 = sp + -592;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp+5)]; - r2 = heap32[(fp)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+3)]; - r5 = sp + -176; - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r4; - heap32[(g0+4)] = r1; - heap32[(g0+5)] = r5; - heap32[(g0+6)] = 0; - r2 = sp + -560; - r3 = r2 >> 2; - _ZN12gjkepa2_implL10InitializeEPK13btConvexShapeRK11btTransformS2_S5_RN15btGjkEpaSolver28sResultsERNS_13MinkowskiDiffEb(i7); - heap32[(r3+32)] = 0; - heap32[(r3+33)] = 0; - heap32[(r3+34)] = 0; - heap32[(r3+35)] = 0; - heap32[(r3+91)] = 0; - heap32[(r3+94)] = 2; - heap32[(r3+92)] = 0; - heap32[(r3+36)] = 0; - r4 = heap32[(fp+4)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r4; - _ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(i7); - r2 = r_g0; - if(r2 ==0) //_LBB550_3 -{ - r2 = heap32[(r3+93)]; - r4 = r2 >> 2; - r4 = heap32[(r4+8)]; -_3: do { - if(r4 !=0) //_LBB550_5 -{ - r4 = 0; - f0 = 0; - f1 = f0; - f2 = f0; - f3 = f0; - f4 = f0; - f5 = f0; -_5: while(true){ - r6 = r4 << 2; - r2 = (r2 + r6)|0; - r2 = r2 >> 2; - r7 = r5 >> 2; - r8 = heap32[(r7+30)]; - r4 = (r4 + 1)|0; - f6 = heapFloat[(r2+4)]; - r2 = heap32[(r2)]; - r9 = heap32[(fp+-44)]; - r10 = heap32[(r7+31)]; - r11 = r8 & 1; - if(r11 != 0) //_LBB550_8 -{ - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - r11 = heap32[(r11)]; - r8 = (r8 + r11)|0; - r8 = (r8 + -1)|0; - r8 = r8 >> 2; - r8 = heap32[(r8)]; -} - r11 = sp + -48; - r9 = (r9 + r10)|0; - heap32[(g0)] = r11; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r2; - __FUNCTION_TABLE__[(r8)>>2](i7); - r2 = heap32[(r3+93)]; - r2 = (r2 + r6)|0; - r2 = r2 >> 2; - r6 = r11 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - f7 = heapFloat[(fp+-12)]; - f8 = heapFloat[(r6+1)]; - f9 = heapFloat[(r6+2)]; - f10 = heapFloat[(r2+2)]; - f11 = heapFloat[(r2+1)]; - f12 = heapFloat[(r2)]; - f7 = f7*f6; - f8 = f8*f6; - f9 = f9*f6; - r2 = heap32[(r7+30)]; - f5 = f5+f7; - f4 = f4+f8; - f3 = f3+f9; - f7 = -f10; - f8 = -f11; - f9 = -f12; - r6 = heap32[(r7+1)]; - r8 = heap32[(r7+31)]; - r9 = r2 & 1; - if(r9 != 0) //_LBB550_11 -{ - r9 = (r6 + r8)|0; - r9 = r9 >> 2; - r9 = heap32[(r9)]; - r2 = (r2 + r9)|0; - r2 = (r2 + -1)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; -} - f10 = heapFloat[(r7+2)]; - f11 = heapFloat[(r7+3)]; - f12 = heapFloat[(r7+6)]; - f13 = heapFloat[(r7+7)]; - f10 = f10*f9; - f11 = f11*f8; - f14 = heapFloat[(r7+4)]; - f15 = heapFloat[(r7+10)]; - f16 = heapFloat[(r7+11)]; - f17 = heapFloat[(r7+12)]; - f18 = heapFloat[(r7+8)]; - f12 = f12*f9; - f13 = f13*f8; - f10 = f10+f11; - f11 = f14*f7; - r9 = sp + -16; - f9 = f15*f9; - f8 = f16*f8; - f12 = f12+f13; - f13 = f18*f7; - f10 = f10+f11; - r10 = r9 >> 2; - f8 = f9+f8; - f7 = f17*f7; - f9 = f12+f13; - heapFloat[(fp+-4)] = f10; - f7 = f8+f7; - heapFloat[(r10+1)] = f9; - heapFloat[(r10+2)] = f7; - heap32[(r10+3)] = 0; - r10 = sp + -32; - r6 = (r6 + r8)|0; - heap32[(g0)] = r10; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r9; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r10 >> 2; - f7 = heapFloat[(r7+14)]; - f8 = heapFloat[(fp+-8)]; - f9 = heapFloat[(r7+18)]; - f10 = heapFloat[(r7+22)]; - f11 = heapFloat[(r7+15)]; - f12 = heapFloat[(r2+1)]; - f13 = heapFloat[(r7+19)]; - f14 = heapFloat[(r7+23)]; - f7 = f7*f8; - f11 = f11*f12; - f15 = heapFloat[(r7+16)]; - f16 = heapFloat[(r2+2)]; - f17 = heapFloat[(r7+20)]; - f18 = heapFloat[(r7+24)]; - f9 = f9*f8; - f13 = f13*f12; - f8 = f10*f8; - f10 = f14*f12; - f7 = f7+f11; - f11 = f15*f16; - f9 = f9+f13; - f12 = f17*f16; - f8 = f8+f10; - f10 = f18*f16; - f7 = f7+f11; - f11 = heapFloat[(r7+26)]; - f9 = f9+f12; - f12 = heapFloat[(r7+27)]; - f8 = f8+f10; - f10 = heapFloat[(r7+28)]; - f7 = f7+f11; - f9 = f9+f12; - f8 = f8+f10; - f7 = f7*f6; - f9 = f9*f6; - f6 = f8*f6; - r2 = heap32[(r3+93)]; - f2 = f2+f7; - f1 = f1+f9; - f0 = f0+f6; - r6 = r2 >> 2; - r6 = heap32[(r6+8)]; -if(!(uint(r6) >uint(r4))) //_LBB550_6 -{ -break _3; -} -} -} -else{ - f0 = 0; - f1 = f0; - f2 = f0; - f3 = f0; - f4 = f0; - f5 = f0; -} -} while(0); - r0 = r0 >> 2; - f6 = heapFloat[(r0)]; - f7 = heapFloat[(r0+1)]; - f8 = heapFloat[(r0+4)]; - f9 = heapFloat[(r0+5)]; - f6 = f6*f5; - f7 = f7*f4; - f10 = heapFloat[(r0+2)]; - f11 = heapFloat[(r0+8)]; - f12 = heapFloat[(r0+9)]; - f13 = heapFloat[(r0+6)]; - f8 = f8*f5; - f9 = f9*f4; - f6 = f6+f7; - f7 = f10*f3; - f10 = heapFloat[(r0+10)]; - f11 = f11*f5; - f12 = f12*f4; - f8 = f8+f9; - f9 = f13*f3; - f6 = f6+f7; - f7 = heapFloat[(r0+12)]; - f13 = heapFloat[(r0+14)]; - f14 = heapFloat[(r0+13)]; - f8 = f8+f9; - r1 = r1 >> 2; - f9 = f11+f12; - f10 = f10*f3; - f6 = f6+f7; - f7 = f9+f10; - f8 = f8+f14; - heapFloat[(r1+1)] = f6; - f6 = f7+f13; - heapFloat[(r1+2)] = f8; - heapFloat[(r1+3)] = f6; - heap32[(r1+4)] = 0; - f6 = heapFloat[(r0)]; - f7 = heapFloat[(r0+1)]; - f8 = heapFloat[(r0+4)]; - f9 = heapFloat[(r0+5)]; - f10 = heapFloat[(r0+2)]; - f6 = f6*f2; - f7 = f7*f1; - f11 = heapFloat[(r0+8)]; - f12 = heapFloat[(r0+9)]; - f13 = heapFloat[(r0+6)]; - f8 = f8*f2; - f9 = f9*f1; - f6 = f6+f7; - f7 = f10*f0; - f10 = heapFloat[(r0+10)]; - f11 = f11*f2; - f12 = f12*f1; - f8 = f8+f9; - f9 = f13*f0; - f6 = f6+f7; - f7 = heapFloat[(r0+12)]; - f13 = heapFloat[(r0+14)]; - f14 = heapFloat[(r0+13)]; - f8 = f8+f9; - f9 = f11+f12; - f10 = f10*f0; - f6 = f6+f7; - f7 = f9+f10; - f8 = f8+f14; - heapFloat[(r1+5)] = f6; - f6 = f7+f13; - heapFloat[(r1+6)] = f8; - heapFloat[(r1+7)] = f6; - f2 = f5-f2; - heap32[(r1+8)] = 0; - f1 = f4-f1; - heapFloat[(r1+9)] = f2; - f0 = f3-f0; - heapFloat[(r1+10)] = f1; - heapFloat[(r1+11)] = f0; - f2 = f2*f2; - f1 = f1*f1; - heap32[(r1+12)] = 0; - f1 = f2+f1; - f0 = f0*f0; - f0 = f1+f0; - heapFloat[(g0)] = f0; - sqrtf(i7); - f1 = 1; - f2 = 9.9999997473787516e-005; - f2 = f_g0 > f2 ? f_g0 : f1; - heapFloat[(r1+13)] = f_g0; - f0 = f1/f2; - f1 = heapFloat[(r1+9)]; - f1 = f1*f0; - heapFloat[(r1+9)] = f1; - f1 = heapFloat[(r1+10)]; - f1 = f1*f0; - heapFloat[(r1+10)] = f1; - f1 = heapFloat[(r1+11)]; - f0 = f1*f0; - heapFloat[(r1+11)] = f0; - r0 = 1; - r_g0 = r0; - return; -} -else{ - if(r2 !=1) //_LBB550_14 -{ - r0 = 2; -} -else{ - r0 = 1; -} - r1 = r1 >> 2; - heap32[(r1)] = r0; - r0 = 0; - r_g0 = r0; - return; -} -} - -function _ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -104;var g0 = i7>>2; // save stack - r0 = heap32[(fp+4)]; - r1 = heap32[(fp+5)]; - r2 = r0 >> 2; - r3 = r1 >> 2; - f0 = heapFloat[(r2+14)]; - f1 = heapFloat[(r3+14)]; - f2 = heapFloat[(r2+13)]; - f3 = heapFloat[(r3+13)]; - f4 = heapFloat[(r2+12)]; - f5 = heapFloat[(r3+12)]; - r2 = sp + -16; - f4 = f4-f5; - r3 = r2 >> 2; - f2 = f2-f3; - heapFloat[(fp+-4)] = f4; - f0 = f0-f1; - heapFloat[(r3+1)] = f2; - heapFloat[(r3+2)] = f0; - heap32[(r3+3)] = 0; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+3)]; - r5 = sp + -72; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r1; - heap32[(g0+4)] = r2; - heap32[(g0+5)] = r5; - heap32[(g0+6)] = 1; - r6 = heap32[(fp+6)]; - r7 = heap32[(fp+7)]; - r8 = heap32[(fp+8)]; - _ZN15btGjkEpaSolver211PenetrationEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsEb(i7); - r9 = r_g0; - if(r9 ==0) //_LBB551_2 -{ - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r1; - heap32[(g0+4)] = r2; - heap32[(g0+5)] = r5; - _ZN15btGjkEpaSolver28DistanceEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsE(i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB551_4 -{ - r0 = r5 >> 2; - r1 = r7 >> 2; - heap32[(r1)] = heap32[(r0+1)]; - heap32[(r1+1)] = heap32[(r0+2)]; - heap32[(r1+2)] = heap32[(r0+3)]; - r2 = r8 >> 2; - heap32[(r1+3)] = heap32[(r0+4)]; - heap32[(r2)] = heap32[(r0+5)]; - heap32[(r2+1)] = heap32[(r0+6)]; - heap32[(r2+2)] = heap32[(r0+7)]; - r1 = r6 >> 2; - heap32[(r2+3)] = heap32[(r0+8)]; - heap32[(r1)] = heap32[(r0+9)]; - heap32[(r1+1)] = heap32[(r0+10)]; - heap32[(r1+2)] = heap32[(r0+11)]; - heap32[(r1+3)] = heap32[(r0+12)]; -} - r0 = 0; - r_g0 = r0; - return; -} -else{ - r0 = r5 >> 2; - r1 = r7 >> 2; - heap32[(r1)] = heap32[(r0+1)]; - heap32[(r1+1)] = heap32[(r0+2)]; - heap32[(r1+2)] = heap32[(r0+3)]; - r2 = r8 >> 2; - heap32[(r1+3)] = heap32[(r0+4)]; - heap32[(r2)] = heap32[(r0+5)]; - heap32[(r2+1)] = heap32[(r0+6)]; - heap32[(r2+2)] = heap32[(r0+7)]; - r1 = r6 >> 2; - heap32[(r2+3)] = heap32[(r0+8)]; - heap32[(r1)] = heap32[(r0+9)]; - heap32[(r1+1)] = heap32[(r0+10)]; - heap32[(r1+2)] = heap32[(r0+11)]; - heap32[(r1+3)] = heap32[(r0+12)]; - r0 = 1; - r_g0 = r0; - return; -} -} - -function _ZN30btGjkEpaPenetrationDepthSolverD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV30btGjkEpaPenetrationDepthSolver; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN30btGjkEpaPenetrationDepthSolverD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV30btGjkEpaPenetrationDepthSolver; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN17btGjkPairDetectorD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV17btGjkPairDetector; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN17btGjkPairDetectorD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV17btGjkPairDetector; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; - var r24; - var r25; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -304;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = sp + -32; - heap32[(r1+14)] = 0; - r3 = r2 >> 2; - heap32[(fp+-8)] = 0; - heap32[(r3+1)] = 0; - r4 = heap32[(fp+1)]; - heap32[(r3+2)] = 0; - r5 = sp + -96; - r4 = r4 >> 2; - heap32[(r3+3)] = 0; - r6 = r5 >> 2; - heap32[(fp+-24)] = heap32[(r4)]; - heap32[(r6+1)] = heap32[(r4+1)]; - heap32[(r6+2)] = heap32[(r4+2)]; - heap32[(r6+3)] = heap32[(r4+3)]; - heap32[(r6+4)] = heap32[(r4+4)]; - heap32[(r6+5)] = heap32[(r4+5)]; - heap32[(r6+6)] = heap32[(r4+6)]; - heap32[(r6+7)] = heap32[(r4+7)]; - heap32[(r6+8)] = heap32[(r4+8)]; - heap32[(r6+9)] = heap32[(r4+9)]; - heap32[(r6+10)] = heap32[(r4+10)]; - heap32[(r6+11)] = heap32[(r4+11)]; - f0 = heapFloat[(r4+12)]; - f1 = heapFloat[(r4+13)]; - f2 = heapFloat[(r4+14)]; - r7 = sp + -160; - heap32[(r6+15)] = heap32[(r4+15)]; - r8 = r7 >> 2; - heap32[(fp+-40)] = heap32[(r4+16)]; - heap32[(r8+1)] = heap32[(r4+17)]; - heap32[(r8+2)] = heap32[(r4+18)]; - heap32[(r8+3)] = heap32[(r4+19)]; - heap32[(r8+4)] = heap32[(r4+20)]; - heap32[(r8+5)] = heap32[(r4+21)]; - heap32[(r8+6)] = heap32[(r4+22)]; - heap32[(r8+7)] = heap32[(r4+23)]; - heap32[(r8+8)] = heap32[(r4+24)]; - heap32[(r8+9)] = heap32[(r4+25)]; - heap32[(r8+10)] = heap32[(r4+26)]; - heap32[(r8+11)] = heap32[(r4+27)]; - f3 = heapFloat[(r4+28)]; - f4 = heapFloat[(r4+29)]; - f5 = heapFloat[(r4+30)]; - f6 = f0+f3; - f7 = 0.5; - f6 = f6*f7; - f8 = f1+f4; - f8 = f8*f7; - f9 = f2+f5; - f0 = f0-f6; - heap32[(r8+15)] = heap32[(r4+31)]; - f7 = f9*f7; - f1 = f1-f8; - heapFloat[(r6+12)] = f0; - f0 = f2-f7; - heapFloat[(r6+13)] = f1; - f1 = f3-f6; - heapFloat[(r6+14)] = f0; - f0 = f4-f8; - heapFloat[(r8+12)] = f1; - f1 = f5-f7; - heapFloat[(r8+13)] = f0; - heapFloat[(r8+14)] = f1; - r9 = heap32[(r1+7)]; - r9 = r9 >> 2; - r10 = heap32[(fp+2)]; - r11 = heap32[(fp+3)]; - r9 = heap32[(r9+1)]; - r9 = (r9 + -17)|0; - if(uint(r9) >uint(1)) //_LBB556_3 -{ -__label__ = 3; -} -else{ - r9 = heap32[(r1+8)]; - r9 = r9 >> 2; - r9 = heap32[(r9+1)]; - r9 = (r9 + -17)|0; - if(uint(r9) >uint(1)) //_LBB556_3 -{ -__label__ = 3; -} -else{ - r9 = (r0 + 32)|0; - r12 = 0; -__label__ = 4; -} -} -if (__label__ == 3){ - r9 = (r0 + 32)|0; - r12 = 1; -} - r13 = gNumGjkChecks; - r13 = r13 >> 2; - r14 = heap32[(r13)]; - f0 = heapFloat[(r1+11)]; - f1 = heapFloat[(r1+12)]; - r14 = (r14 + 1)|0; - heap32[(r13)] = r14; - r13 = heapU8[r0+52]; - heap32[(r1+16)] = 0; - heap32[(r1+1)] = 0; - heap32[(r1+2)] = 1065353216; - heap32[(r1+3)] = 0; - heap32[(r1+4)] = 0; - heap32[(r1+17)] = 0; - heap32[(r1+15)] = -1; - r14 = heap32[(r1+6)]; - r15 = 0; - r16 = r14 >> 2; - heap8[r14+312] = r15; - r17 = 1; - heap32[(r16)] = 0; - heap8[r14+356] = r17; - heap32[(r16+73)] = 1566444395; - heap32[(r16+74)] = 1566444395; - heap32[(r16+75)] = 1566444395; - heap32[(r16+76)] = 0; - heap8[r14+352] = r15; - heap32[(r16+84)] = 0; - heap32[(r16+85)] = 0; - heap32[(r16+86)] = 0; - heap32[(r16+87)] = 0; - r16 = heapU8[r14+332]; - f2 = 0; - r16 = r16 & 240; - heap8[r14+332] = r16; - f1 = r13 == r15 ? f1 : f2; - f0 = r13 == r15 ? f0 : f2; - f0 = f0+f1; - f3 = heapFloat[(r1+3)]; - f4 = heapFloat[(r1+2)]; - f5 = heapFloat[(r1+1)]; - f9 = 999999984306749440; -_7: while(true){ - f10 = -f5; - f11 = heapFloat[(r4)]; - f12 = heapFloat[(r4+4)]; - f13 = heapFloat[(r4+1)]; - f14 = heapFloat[(r4+5)]; - f11 = f11*f10; - f12 = f12*f4; - f15 = heapFloat[(r4+8)]; - f16 = heapFloat[(r4+2)]; - f17 = heapFloat[(r4+6)]; - f18 = heapFloat[(r4+10)]; - f19 = heapFloat[(r4+9)]; - f13 = f13*f10; - f14 = f14*f4; - f11 = f11-f12; - f12 = f15*f3; - r13 = sp + -176; - f10 = f16*f10; - f15 = f17*f4; - f13 = f13-f14; - f14 = f19*f3; - f11 = f11-f12; - r14 = r13 >> 2; - f10 = f10-f15; - f12 = f18*f3; - f13 = f13-f14; - heapFloat[(fp+-44)] = f11; - f10 = f10-f12; - heapFloat[(r14+1)] = f13; - heapFloat[(r14+2)] = f10; - heap32[(r14+3)] = 0; - f10 = heapFloat[(r4+16)]; - f11 = heapFloat[(r4+20)]; - f12 = heapFloat[(r4+17)]; - f13 = heapFloat[(r4+21)]; - f14 = heapFloat[(r4+24)]; - f10 = f10*f5; - f11 = f11*f4; - f15 = heapFloat[(r4+18)]; - f16 = heapFloat[(r4+22)]; - f17 = heapFloat[(r4+26)]; - f18 = heapFloat[(r4+25)]; - f12 = f12*f5; - f13 = f13*f4; - f10 = f10+f11; - f11 = f14*f3; - r14 = sp + -192; - f5 = f15*f5; - f4 = f16*f4; - f12 = f12+f13; - f13 = f18*f3; - f10 = f10+f11; - r16 = r14 >> 2; - f4 = f5+f4; - f3 = f17*f3; - f5 = f12+f13; - heapFloat[(fp+-48)] = f10; - f3 = f4+f3; - heapFloat[(r16+1)] = f5; - heapFloat[(r16+2)] = f3; - heap32[(r16+3)] = 0; - r16 = heap32[(r1+7)]; - r18 = sp + -208; - heap32[(g0)] = r18; - heap32[(g0+1)] = r16; - heap32[(g0+2)] = r13; - r13 = r9 >> 2; - _ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i7); - r16 = heap32[(r13)]; - r19 = sp + -224; - heap32[(g0)] = r19; - heap32[(g0+1)] = r16; - heap32[(g0+2)] = r14; - _ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i7); - r14 = r18 >> 2; - r16 = r19 >> 2; - f3 = heapFloat[(r6+8)]; - f4 = heapFloat[(fp+-52)]; - f5 = heapFloat[(r6+4)]; - f10 = heapFloat[(fp+-24)]; - f11 = heapFloat[(r6+9)]; - f12 = heapFloat[(r14+1)]; - f13 = heapFloat[(r6+5)]; - f14 = heapFloat[(r6+1)]; - f15 = heapFloat[(r8+8)]; - f16 = heapFloat[(fp+-56)]; - f17 = heapFloat[(r8+4)]; - f18 = heapFloat[(fp+-40)]; - f19 = heapFloat[(r8+9)]; - f20 = heapFloat[(r16+1)]; - f21 = heapFloat[(r8+5)]; - f22 = heapFloat[(r8+1)]; - f3 = f3*f4; - f11 = f11*f12; - f23 = heapFloat[(r6+10)]; - f24 = heapFloat[(r14+2)]; - f25 = heapFloat[(r6+6)]; - f26 = heapFloat[(r6+2)]; - f15 = f15*f16; - f19 = f19*f20; - f27 = heapFloat[(r8+10)]; - f28 = heapFloat[(r16+2)]; - f29 = heapFloat[(r8+6)]; - f30 = heapFloat[(r8+2)]; - f5 = f5*f4; - f13 = f13*f12; - f17 = f17*f16; - f21 = f21*f20; - f4 = f10*f4; - f10 = f14*f12; - f12 = f18*f16; - f14 = f22*f20; - f3 = f3+f11; - f11 = f23*f24; - f15 = f15+f19; - f16 = f27*f28; - f5 = f5+f13; - f13 = f25*f24; - f17 = f17+f21; - f18 = f29*f28; - f4 = f4+f10; - f10 = f26*f24; - f12 = f12+f14; - f14 = f30*f28; - f3 = f3+f11; - f11 = heapFloat[(r6+14)]; - f15 = f15+f16; - f16 = heapFloat[(r8+14)]; - f5 = f5+f13; - f13 = heapFloat[(r6+13)]; - f17 = f17+f18; - f18 = heapFloat[(r8+13)]; - f4 = f4+f10; - f10 = heapFloat[(r6+12)]; - f12 = f12+f14; - f14 = heapFloat[(r8+12)]; - f5 = f5+f13; - f13 = f17+f18; - f4 = f4+f10; - f10 = f12+f14; - f3 = f3+f11; - f11 = f15+f16; - f3 = r12 != r15 ? f3 : f2; - f11 = r12 != r15 ? f11 : f2; - f12 = f5-f13; - f14 = heapFloat[(r1+2)]; - f15 = f4-f10; - f16 = heapFloat[(r1+1)]; - f17 = f3-f11; - f18 = heapFloat[(r1+3)]; - f16 = f16*f15; - f14 = f14*f12; - f14 = f16+f14; - f16 = f18*f17; - f14 = f14+f16; -if(!(f14 <=f2)) //_LBB556_8 -{ - f16 = heapFloat[(r4+32)]; - f18 = f14*f14; - f16 = f16*f9; -if(!(f18 <=f16)) //_LBB556_8 -{ -__label__ = 7; -break _7; -} -} - r14 = heap32[(r1+6)]; - r16 = r14 >> 2; - r18 = heap32[(r16)]; -_12: do { - if(r18 >0) //_LBB556_10 -{ - r19 = -12; - f16 = heapFloat[(r16+77)]; - r20 = (r19 - r14)|0; - r21 = 0; - r22 = r18; - r19 = r21; -_14: while(true){ - r23 = -8; - r24 = -4; - r23 = (r23 - r20)|0; - r24 = (r24 - r20)|0; - r23 = r23 >> 2; - r24 = r24 >> 2; - r25 = (r21 - r20)|0; - r25 = r25 >> 2; - f18 = heapFloat[(r23)]; - f19 = heapFloat[(r24)]; - f18 = f15-f18; - f19 = f12-f19; - f20 = heapFloat[(r25)]; - f20 = f17-f20; - f18 = f18*f18; - f19 = f19*f19; - f18 = f18+f19; - f19 = f20*f20; - f18 = f18+f19; - r22 = (r22 + -1)|0; - r19 = f18 > f16 ? r19 : r17; - r20 = (r20 + -16)|0; - if(r22 !=0) //_LBB556_11 -{ -continue _14; -} -else{ -break _12; -} -} -} -else{ - r19 = r15; -} -} while(0); - f16 = heapFloat[(r16+76)]; - if(f16 ==f2) //_LBB556_14 -{ - f16 = heapFloat[(r16+75)]; -if(!(f17 !=f16)) //_LBB556_13 -{ - f16 = heapFloat[(r16+74)]; -if(!(f12 !=f16)) //_LBB556_13 -{ - f16 = heapFloat[(r16+73)]; - r19 = f15 != f16 ? r19 : r17; -} -} -} - r19 = r19 & 255; - if(r19 ==0) //_LBB556_19 -{ - f14 = f9-f14; - f16 = 9.9999999747524271e-007; - f18 = f9*f16; - if(f14 >f18) //_LBB556_21 -{ - heapFloat[(r16+73)] = f15; - heapFloat[(r16+74)] = f12; - r18 = r18 << 4; - heapFloat[(r16+75)] = f17; - r18 = (r14 + r18)|0; - heap32[(r16+76)] = 0; - r18 = r18 >> 2; - heap8[r14+356] = r17; - heapFloat[(r18+1)] = f15; - heapFloat[(r18+2)] = f12; - heapFloat[(r18+3)] = f17; - heap32[(r18+4)] = 0; - r18 = heap32[(r16)]; - r18 = r18 << 4; - r18 = (r14 + r18)|0; - r18 = r18 >> 2; - heapFloat[(r18+21)] = f4; - heapFloat[(r18+22)] = f5; - heapFloat[(r18+23)] = f3; - heap32[(r18+24)] = 0; - r18 = heap32[(r16)]; - r18 = r18 << 4; - r14 = (r14 + r18)|0; - r14 = r14 >> 2; - heapFloat[(r14+41)] = f10; - heapFloat[(r14+42)] = f13; - heapFloat[(r14+43)] = f11; - heap32[(r14+44)] = 0; - r14 = heap32[(r16)]; - r14 = (r14 + 1)|0; - heap32[(r16)] = r14; - r14 = heap32[(r1+6)]; - heap32[(g0)] = r14; - _ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i7); - r16 = r_g0; - if(r16 !=0) //_LBB556_23 -{ - r14 = r14 >> 2; - f5 = heapFloat[(r14+69)]; - f4 = heapFloat[(r14+70)]; - f3 = heapFloat[(r14+71)]; - f10 = heapFloat[(r14+72)]; - heapFloat[(r1+1)] = f5; - f11 = f5*f5; - f12 = f4*f4; - heapFloat[(r1+2)] = f4; - f11 = f11+f12; - f12 = f3*f3; - f11 = f11+f12; - heapFloat[(r1+3)] = f3; - heapFloat[(r1+4)] = f10; - if(f11 >=f16) //_LBB556_25 -{ - f10 = 1.1920928955078125e-007; - f12 = f9-f11; - f9 = f9*f10; - if(f12 >f9) //_LBB556_27 -{ - r14 = heap32[(r1+16)]; - r16 = (r14 + 1)|0; - heap32[(r1+16)] = r16; - if(r14 <1001) //_LBB556_29 -{ - r14 = heap32[(r1+6)]; - r14 = r14 >> 2; - r16 = heap32[(r14)]; - f9 = f11; - if(r16 !=4) //_LBB556_5 -{ -continue _7; -} -else{ -__label__ = 29; -break _7; -} -} -else{ -__label__ = 27; -break _7; -} -} -else{ -__label__ = 25; -break _7; -} -} -else{ -__label__ = 23; -break _7; -} -} -else{ -__label__ = 21; -break _7; -} -} -else{ -__label__ = 19; -break _7; -} -} -else{ -__label__ = 17; -break _7; -} -} -_29: do { -switch(__label__ ){//multiple entries -case 7: - heap32[(r1+17)] = 10; -__label__ = 30; -break _29; -break; -case 29: - heap32[(r1+1)] = heap32[(r14+69)]; - heap32[(r1+2)] = heap32[(r14+70)]; - heap32[(r1+3)] = heap32[(r14+71)]; - r17 = 0; - heap32[(r1+4)] = heap32[(r14+72)]; - heap32[(r1+17)] = 13; -__label__ = 37; -break _29; -break; -case 27: - r6 = _2E_str425; - heap32[(g0)] = r6; - heap32[(g0+1)] = r16; - printf(i7); - r6 = heap32[(r13)]; - r8 = heap32[(r1+7)]; - r6 = r6 >> 2; - r8 = r8 >> 2; - f2 = heapFloat[(r1+3)]; - f3 = heapFloat[(r1+2)]; - f4 = heapFloat[(r1+1)]; - r6 = heap32[(r6+1)]; - r8 = heap32[(r8+1)]; - r9 = _2E_str1426; - f4 = f4; //fstod f4, f4 - f3 = f3; //fstod f3, f3 - f2 = f2; //fstod f2, f2 - f5 = f11; //fstod f11, f5 - heap32[(g0)] = r9; - llvm_writeDouble((i7+8),f4); - llvm_writeDouble((i7+16),f3); - llvm_writeDouble((i7+24),f2); - llvm_writeDouble((i7+32),f5); - heap32[(g0+10)] = r8; - heap32[(g0+11)] = r6; - f2 = 0; - r17 = 0; - printf(i7); -__label__ = 37; -break _29; -break; -case 25: - r6 = heap32[(r1+6)]; - r6 = r6 >> 2; - heap32[(r1+1)] = heap32[(r6+69)]; - heap32[(r1+2)] = heap32[(r6+70)]; - heap32[(r1+3)] = heap32[(r6+71)]; - heap32[(r1+4)] = heap32[(r6+72)]; - heap32[(r1+17)] = 12; - f9 = f11; -__label__ = 30; -break _29; -break; -case 23: - heap32[(r1+17)] = 6; -__label__ = 30; -break _29; -break; -case 21: - heap32[(r1+17)] = 3; -__label__ = 30; -break _29; -break; -case 19: - r6 = 11; - r8 = 2; - r6 = f14 > f2 ? r6 : r8; - heap32[(r1+17)] = r6; -__label__ = 30; -break _29; -break; -case 17: - heap32[(r1+17)] = 1; -__label__ = 30; -break; -} -} while(0); -if (__label__ == 30){ - r6 = heap32[(r1+6)]; - heap32[(g0)] = r6; - r6 = r6 >> 2; - _ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i7); - f3 = heapFloat[(r6+65)]; - f2 = heapFloat[(r6+61)]; - f4 = heapFloat[(r6+66)]; - f5 = heapFloat[(r6+62)]; - f10 = heapFloat[(r6+67)]; - f11 = heapFloat[(r6+63)]; - f2 = f2-f3; - f5 = f5-f4; - heapFloat[(fp+-8)] = f2; - f2 = f11-f10; - heapFloat[(r3+1)] = f5; - heapFloat[(r3+2)] = f2; - heap32[(r3+3)] = 0; - f2 = heapFloat[(r1+1)]; - f5 = heapFloat[(r1+2)]; - f11 = heapFloat[(r1+3)]; - f2 = f2*f2; - f5 = f5*f5; - f2 = f2+f5; - f5 = f11*f11; - f2 = f2+f5; - f5 = f2; //fstod f2, f5 - f11 = 0.0001; -if(!(f5 >=f11)) //_LBB556_33 -{ - heap32[(r1+17)] = 5; -} - f5 = 1.4210854715202004e-014; - if(f2 <=f5) //_LBB556_37 -{ - f2 = 0; - r17 = 0; - heap32[(r1+15)] = 2; -} -else{ - heapFloat[(g0)] = f2; - sqrtf(i7); - f5 = 1; - f2 = f5/f_g0; - f11 = heapFloat[(fp+-8)]; - f11 = f11*f2; - heapFloat[(fp+-8)] = f11; - f11 = heapFloat[(r3+1)]; - f11 = f11*f2; - heapFloat[(r3+1)] = f11; - f11 = heapFloat[(r3+2)]; - f11 = f11*f2; - heapFloat[(r3+2)] = f11; - heapFloat[(g0)] = f9; - sqrtf(i7); - f9 = f_g0; - f11 = 0; - if(f9 >f11) //_LBB556_36 -{ - f9 = f1/f9; - f11 = heapFloat[(r1+3)]; - f12 = heapFloat[(r1+2)]; - f13 = heapFloat[(r1+1)]; - f13 = f13*f9; - f12 = f12*f9; - f9 = f11*f9; - f2 = f5/f2; - f3 = f3+f13; - f4 = f4+f12; - f10 = f10+f9; - f2 = f2-f0; - heap32[(r1+15)] = 1; -} -else{ - r0 = _2E_str2427; - r1 = _2E_str3428; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 320; - _assert(i7); -} -} -} - r6 = heap32[(r1+18)]; - if(r6 ==0) //_LBB556_45 -{ -__label__ = 42; -} -else{ - r6 = heap32[(r1+5)]; - if(r6 ==0) //_LBB556_45 -{ -__label__ = 42; -} -else{ - r8 = heap32[(r1+17)]; - if(r8 ==0) //_LBB556_45 -{ -__label__ = 42; -} -else{ - f5 = f2+f0; - f5 = f5; //fstod f5, f5 - f9 = 0.01; - if(f5 > 2; - r9 = heap32[(r8)]; - r9 = (r9 + 1)|0; - heap32[(r8)] = r9; - heap32[(r1+1)] = 0; - heap32[(r1+2)] = 0; - heap32[(r1+3)] = 0; - heap32[(r1+4)] = 0; - r8 = r6 >> 2; - r8 = heap32[(r8)]; - r8 = r8 >> 2; - r8 = heap32[(r8+2)]; - r9 = heap32[(r4+33)]; - r12 = heap32[(r13)]; - r13 = heap32[(r1+7)]; - r14 = heap32[(r1+6)]; - r0 = (r0 + 4)|0; - r15 = sp + -240; - r16 = sp + -256; - heap32[(g0)] = r6; - heap32[(g0+1)] = r14; - heap32[(g0+2)] = r13; - heap32[(g0+3)] = r12; - heap32[(g0+4)] = r5; - heap32[(g0+5)] = r7; - heap32[(g0+6)] = r0; - heap32[(g0+7)] = r15; - heap32[(g0+8)] = r16; - heap32[(g0+9)] = r11; - heap32[(g0+10)] = r9; - __FUNCTION_TABLE__[(r8)>>2](i7); - r0 = r_g0; - if(r0 ==0) //_LBB556_57 -{ - f5 = heapFloat[(r1+1)]; - f9 = heapFloat[(r1+2)]; - f11 = heapFloat[(r1+3)]; - f5 = f5*f5; - f9 = f9*f9; - f5 = f5+f9; - f9 = f11*f11; - f5 = f5+f9; - f9 = 0; - if(f5 <=f9) //_LBB556_62 -{ -__label__ = 59; -break _58; -} -else{ - r0 = r15 >> 2; - r5 = r16 >> 2; - f5 = heapFloat[(r0+1)]; - f9 = heapFloat[(r5+1)]; - f11 = heapFloat[(fp+-60)]; - f12 = heapFloat[(fp+-64)]; - f11 = f11-f12; - f5 = f5-f9; - f9 = heapFloat[(r0+2)]; - f12 = heapFloat[(r5+2)]; - f9 = f9-f12; - f11 = f11*f11; - f5 = f5*f5; - f5 = f11+f5; - f9 = f9*f9; - f5 = f5+f9; - heapFloat[(g0)] = f5; - sqrtf(i7); - f0 = f_g0-f0; - r0 = r17 & 255; -if(!(r0 !=1)) //_LBB556_60 -{ - if(f0 >=f2) //_LBB556_61 -{ - heap32[(r1+15)] = 5; -__label__ = 59; -break _58; -} -} - f2 = heapFloat[(r1+1)]; - f3 = heapFloat[(r1+2)]; - f4 = heapFloat[(r1+3)]; - f10 = heapFloat[(fp+-64)]; - f5 = heapFloat[(r5+1)]; - f9 = heapFloat[(r5+2)]; - heapFloat[(fp+-8)] = f2; - heapFloat[(r3+1)] = f3; - heapFloat[(r3+2)] = f4; - f11 = f2*f2; - f12 = f3*f3; - heap32[(r3+3)] = heap32[(r1+4)]; - f11 = f11+f12; - f12 = f4*f4; - f11 = f11+f12; - heapFloat[(g0)] = f11; - sqrtf(i7); - f12 = 1; - f11 = f12/f_g0; - f12 = heapFloat[(fp+-8)]; - f12 = f12*f11; - heapFloat[(fp+-8)] = f12; - f12 = heapFloat[(r3+1)]; - f12 = f12*f11; - heapFloat[(r3+1)] = f12; - f12 = heapFloat[(r3+2)]; - f2 = f2*f1; - f13 = f3*f1; - f1 = f4*f1; - f11 = f12*f11; - f3 = f10+f2; - f4 = f5+f13; - f10 = f9+f1; - heapFloat[(r3+2)] = f11; - heap32[(r1+15)] = 6; - f2 = f0; -__label__ = 60; -break _58; -} -} -else{ - r16 = r16 >> 2; - r15 = r15 >> 2; - f0 = heapFloat[(r16+1)]; - f1 = heapFloat[(r15+1)]; - f5 = heapFloat[(fp+-64)]; - f9 = heapFloat[(fp+-60)]; - f0 = f0-f1; - f1 = f5-f9; - f5 = heapFloat[(r16+2)]; - f9 = heapFloat[(r15+2)]; - f5 = f5-f9; - f9 = f1*f1; - f11 = f0*f0; - f9 = f9+f11; - f11 = f5*f5; - f9 = f9+f11; - f11 = 1.4210854715202004e-014; - if(f9 <=f11) //_LBB556_50 -{ - f1 = heapFloat[(r1+1)]; - f0 = heapFloat[(r1+2)]; - f5 = heapFloat[(r1+3)]; - f9 = f1*f1; - f12 = f0*f0; - f9 = f9+f12; - f13 = f5*f5; - f12 = heapFloat[(r1+4)]; - f9 = f9+f13; -} -else{ - f12 = 0; -} - if(f9 <=f11) //_LBB556_56 -{ - heap32[(r1+15)] = 9; -__label__ = 59; -break _58; -} -else{ - heapFloat[(g0)] = f9; - sqrtf(i7); - f9 = f_g0; - f11 = heapFloat[(r15+1)]; - f13 = heapFloat[(r16+1)]; - f14 = heapFloat[(fp+-60)]; - f15 = heapFloat[(fp+-64)]; - f14 = f14-f15; - f11 = f11-f13; - f13 = heapFloat[(r15+2)]; - f15 = heapFloat[(r16+2)]; - f13 = f13-f15; - f14 = f14*f14; - f11 = f11*f11; - f11 = f14+f11; - f13 = f13*f13; - f11 = f11+f13; - heapFloat[(g0)] = f11; - sqrtf(i7); - f11 = -f_g0; - r15 = r17 & 255; -if(!(r15 !=1)) //_LBB556_54 -{ - if(f2 <=f11) //_LBB556_55 -{ - heap32[(r1+15)] = 8; -__label__ = 59; -break _58; -} -} - f2 = 1; - f2 = f2/f9; - f3 = heapFloat[(fp+-64)]; - f4 = heapFloat[(r16+1)]; - f10 = heapFloat[(r16+2)]; - f1 = f1*f2; - f0 = f0*f2; - heapFloat[(fp+-8)] = f1; - f1 = f5*f2; - heapFloat[(r3+1)] = f0; - heapFloat[(r3+2)] = f1; - heapFloat[(r3+3)] = f12; - heap32[(r1+15)] = 3; - f2 = f11; -__label__ = 60; -} -} -} -} while(0); -if (__label__ == 59){ - r0 = r17 & 255; - if(r0 ==0) //_LBB556_66 -{ -__label__ = 63; -} -else{ -__label__ = 60; -} -} -_81: do { -if (__label__ == 60){ - f0 = 0; -if(!(f2 =f1) //_LBB556_66 -{ -break _81; -} -} - heap32[(r1+1)] = heap32[(fp+-8)]; - heap32[(r1+2)] = heap32[(r3+1)]; - heap32[(r1+3)] = heap32[(r3+2)]; - heap32[(r1+4)] = heap32[(r3+3)]; - r0 = r10 >> 2; - heapFloat[(r1+14)] = f2; - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r0 = heap32[(r0+4)]; - r1 = sp + -16; - f0 = f3+f6; - r3 = r1 >> 2; - f1 = f4+f8; - heapFloat[(fp+-4)] = f0; - f0 = f10+f7; - heapFloat[(r3+1)] = f1; - heapFloat[(r3+2)] = f0; - heap32[(r3+3)] = 0; - heap32[(g0)] = r10; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r1; - heapFloat[(g0+3)] = f2; - __FUNCTION_TABLE__[(r0)>>2](i7); -} -} while(0); - return; -} - -function _ZN20btPersistentManifold18removeContactPointEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+279)]; - r3 = (r2 + -1)|0; - r4 = heap32[(fp+1)]; - if(r3 ==r4) //_LBB557_2 -{ - r3 = (r2 * 276)|0; - r0 = (r0 + r3)|0; - r0 = r0 >> 2; - r0 = heap32[(r0+-41)]; - if(r0 !=0) //_LBB557_4 -{ - r1 = _2E_str434; - r2 = _2E_str483; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 160; - _assert(i7); -} -} -else{ - r4 = (r4 * 276)|0; - r5 = (r0 + 4)|0; - r3 = (r3 * 276)|0; - r4 = (r5 + r4)|0; - r3 = (r5 + r3)|0; - r2 = (r2 * 276)|0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = 276; - r0 = (r0 + r2)|0; - memcpy(i7); - r2 = r0 >> 2; - heap32[(r2+-41)] = 0; - heap32[(r2+-16)] = 0; - heap32[(r2+-8)] = 0; - heap32[(r2)] = 0; - r3 = 0; - heap32[(r2+-40)] = 0; - heap8[r0+-156] = r3; - heap32[(r2+-38)] = 0; - heap32[(r2+-37)] = 0; - heap32[(r2+-32)] = 0; - r2 = heap32[(r1+279)]; -} - r0 = (r2 + -1)|0; - heap32[(r1+279)] = r0; - return; -} - -function _ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+279)]; - r3 = (r2 + -1)|0; - if(r3 >-1) //_LBB558_2 -{ - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; -_3: while(true){ - r5 = (r2 * 69)|0; - r5 = r5 << 2; - r5 = (r0 + r5)|0; - r6 = r3 >> 2; - r5 = r5 >> 2; - f0 = heapFloat[(r5+-68)]; - f1 = heapFloat[(r6)]; - f2 = heapFloat[(r5+-67)]; - f3 = heapFloat[(r6+1)]; - f4 = heapFloat[(r6+4)]; - f5 = heapFloat[(r6+5)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r5+-66)]; - f7 = heapFloat[(r6+2)]; - f8 = heapFloat[(r6+8)]; - f9 = heapFloat[(r6+9)]; - f10 = heapFloat[(r6+6)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f7 = heapFloat[(r6+10)]; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f10*f6; - f1 = f1+f3; - f3 = heapFloat[(r6+12)]; - f8 = heapFloat[(r6+14)]; - f9 = heapFloat[(r6+13)]; - f4 = f4+f5; - f0 = f0+f2; - f2 = f7*f6; - f1 = f1+f3; - f0 = f0+f2; - f2 = f4+f9; - heapFloat[(r5+-56)] = f1; - f0 = f0+f8; - heapFloat[(r5+-55)] = f2; - heapFloat[(r5+-54)] = f0; - heap32[(r5+-53)] = 0; - r6 = r4 >> 2; - f0 = heapFloat[(r5+-64)]; - f1 = heapFloat[(r6)]; - f2 = heapFloat[(r5+-63)]; - f3 = heapFloat[(r6+1)]; - f4 = heapFloat[(r6+4)]; - f5 = heapFloat[(r6+5)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r5+-62)]; - f7 = heapFloat[(r6+2)]; - f8 = heapFloat[(r6+8)]; - f9 = heapFloat[(r6+9)]; - f10 = heapFloat[(r6+6)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f7 = heapFloat[(r6+10)]; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f10*f6; - f1 = f1+f3; - f3 = heapFloat[(r6+12)]; - f8 = heapFloat[(r6+14)]; - f9 = heapFloat[(r6+13)]; - f4 = f4+f5; - f0 = f0+f2; - f2 = f7*f6; - f1 = f1+f3; - f0 = f0+f2; - f2 = f4+f9; - heapFloat[(r5+-60)] = f1; - f0 = f0+f8; - heapFloat[(r5+-59)] = f2; - heapFloat[(r5+-58)] = f0; - heap32[(r5+-57)] = 0; - f0 = heapFloat[(r5+-55)]; - f1 = heapFloat[(r5+-59)]; - f2 = heapFloat[(r5+-56)]; - f3 = heapFloat[(r5+-60)]; - f2 = f2-f3; - f3 = heapFloat[(r5+-52)]; - f0 = f0-f1; - f1 = heapFloat[(r5+-51)]; - f4 = heapFloat[(r5+-54)]; - f5 = heapFloat[(r5+-58)]; - f6 = heapFloat[(r5+-50)]; - f4 = f4-f5; - f2 = f2*f3; - f0 = f0*f1; - f0 = f2+f0; - f1 = f4*f6; - f0 = f0+f1; - heapFloat[(r5+-48)] = f0; - r6 = heap32[(r5+-32)]; - r2 = (r2 + -1)|0; - r6 = (r6 + 1)|0; - heap32[(r5+-32)] = r6; -if(!(r2 !=0)) //_LBB558_3 -{ -break _3; -} -} - r2 = heap32[(r1+279)]; -} - r2 = (r2 + -1)|0; -_7: do { -if(!(r2 <0)) //_LBB558_11 -{ -_8: while(true){ - r3 = r2; - r2 = (r3 * 69)|0; - r2 = r2 << 2; - r2 = (r0 + r2)|0; - r2 = r2 >> 2; - f0 = heapFloat[(r2+21)]; - f1 = heapFloat[(r1+280)]; - if(f0 <=f1) //_LBB558_8 -{ - f2 = heapFloat[(r2+17)]; - f3 = heapFloat[(r2+18)]; - f4 = heapFloat[(r2+19)]; - f5 = heapFloat[(r2+13)]; - f2 = f2*f0; - f6 = heapFloat[(r2+14)]; - f3 = f3*f0; - f7 = heapFloat[(r2+9)]; - f2 = f5-f2; - f5 = heapFloat[(r2+10)]; - f3 = f6-f3; - f6 = heapFloat[(r2+15)]; - f0 = f4*f0; - f2 = f7-f2; - f3 = f5-f3; - f4 = heapFloat[(r2+11)]; - f0 = f6-f0; - f0 = f4-f0; - f2 = f2*f2; - f3 = f3*f3; - f2 = f2+f3; - f0 = f0*f0; - f1 = f1*f1; - f0 = f2+f0; -if(!(f1 >=f0)) //_LBB558_10 -{ - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - _ZN20btPersistentManifold18removeContactPointEi(i7); -} -} -else{ - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - _ZN20btPersistentManifold18removeContactPointEi(i7); -} - r2 = (r3 + -1)|0; - if(r3 !=0) //_LBB558_6 -{ -continue _8; -} -else{ -break _7; -} -} -} -} while(0); - return; -} - -function _ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; -var __label__ = 0; - i7 = sp + -56;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0+6)]; - f1 = heapFloat[(r0+2)]; - f2 = heapFloat[(r0+10)]; - f3 = heapFloat[(r0+5)]; - f4 = heapFloat[(r0+1)]; - f5 = heapFloat[(r0+9)]; - f6 = heapFloat[(r0+4)]; - f7 = heapFloat[(r0)]; - f8 = heapFloat[(r0+8)]; - f9 = f3-f4; - f10 = f2-f1; - f11 = f0-f1; - f12 = f5-f4; - f13 = f8-f7; - f14 = f6-f7; - f15 = f9*f10; - f16 = f11*f12; - f15 = f15-f16; - r0 = sp + -32; - f11 = f11*f13; - f10 = f14*f10; - f10 = f11-f10; - r1 = r0 >> 2; - heapFloat[(fp+-8)] = f15; - f11 = f14*f12; - f9 = f9*f13; - f9 = f11-f9; - heapFloat[(r1+1)] = f10; - r2 = heap32[(fp)]; - heapFloat[(r1+2)] = f9; - r3 = r2 >> 2; - heap32[(r1+3)] = 0; - f11 = heapFloat[(r3+1)]; - f12 = heapFloat[(r3+2)]; - f13 = heapFloat[(r3+5)]; - f14 = heapFloat[(r3+6)]; - f16 = heapFloat[(r3+3)]; - f17 = heapFloat[(r3+7)]; - f18 = f15*f11; - f19 = f10*f12; - f20 = f15*f13; - f21 = f10*f14; - f22 = f7*f15; - f23 = f4*f10; - f18 = f18+f19; - f19 = f9*f16; - f20 = f20+f21; - f21 = f9*f17; - f22 = f22+f23; - f23 = f1*f9; - f18 = f18+f19; - f19 = f22+f23; - f20 = f20+f21; - f18 = f18-f19; - f19 = f20-f19; - f20 = f18*f19; - f21 = 0; -_1: do { -if(!(f20 >=f21)) //_LBB559_11 -{ - r4 = heap32[(r3+9)]; - r4 = r4 & 1; -if(!(r4 ==0)) //_LBB559_3 -{ - if(f18 >f21) //_LBB559_11 -{ -break _1; -} -} - f19 = f18-f19; - f19 = f18/f19; - f20 = heapFloat[(r3+10)]; -if(!(f20 <=f19)) //_LBB559_11 -{ - f20 = 1; - f22 = f20-f19; - f16 = f16*f22; - f17 = f17*f19; - f12 = f12*f22; - f14 = f14*f19; - f11 = f11*f22; - f13 = f13*f19; - f16 = f16+f17; - f12 = f12+f14; - f11 = f11+f13; - f1 = f1-f16; - f3 = f3-f12; - f7 = f7-f11; - f0 = f0-f16; - f4 = f4-f12; - f6 = f6-f11; - f13 = f15*f15; - f14 = f10*f10; - f17 = f4*f0; - f22 = f1*f3; - f23 = f1*f6; - f24 = f7*f0; - f13 = f13+f14; - f14 = f9*f9; - f17 = f17-f22; - f22 = f23-f24; - f13 = f13+f14; - f14 = -9.9999997473787516e-005; - f23 = f7*f3; - f24 = f4*f6; - f23 = f23-f24; - f14 = f13*f14; - f17 = f17*f15; - f22 = f22*f10; - f17 = f17+f22; - f22 = f23*f9; - f17 = f17+f22; -if(!(f17 > 2; - r1 = heap32[(r1+3)]; - r6 = heap32[(r3+9)]; - r6 = r6 & 2; - if(r6 !=0) //_LBB559_9 -{ -__label__ = 9; -} -else{ - if(f18 >f21) //_LBB559_10 -{ -__label__ = 10; -} -else{ -__label__ = 9; -} -} -if (__label__ == 9){ - r0 = sp + -16; - f1 = -f1; - r6 = r0 >> 2; - f2 = -f2; - heapFloat[(fp+-4)] = f1; - f0 = -f0; - heapFloat[(r6+1)] = f2; - heapFloat[(r6+2)] = f0; - heap32[(r6+3)] = 0; -} - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - heapFloat[(g0+2)] = f19; - heap32[(g0+3)] = r4; - heap32[(g0+4)] = r5; - __FUNCTION_TABLE__[(r1)>>2](i7); - heapFloat[(r3+10)] = f_g0; -} -} -} -} -} -} while(0); - return; -} - -function _ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV28btTriangleConvexcastCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+1)]; - heap32[(r0)] = r1; - r1 = r2 >> 2; - heap32[(r0+1)] = r3; - heap32[(r0+2)] = heap32[(r1)]; - heap32[(r0+3)] = heap32[(r1+1)]; - heap32[(r0+4)] = heap32[(r1+2)]; - heap32[(r0+5)] = heap32[(r1+3)]; - heap32[(r0+6)] = heap32[(r1+4)]; - heap32[(r0+7)] = heap32[(r1+5)]; - heap32[(r0+8)] = heap32[(r1+6)]; - heap32[(r0+9)] = heap32[(r1+7)]; - heap32[(r0+10)] = heap32[(r1+8)]; - heap32[(r0+11)] = heap32[(r1+9)]; - heap32[(r0+12)] = heap32[(r1+10)]; - heap32[(r0+13)] = heap32[(r1+11)]; - heap32[(r0+14)] = heap32[(r1+12)]; - heap32[(r0+15)] = heap32[(r1+13)]; - r2 = heap32[(fp+3)]; - heap32[(r0+16)] = heap32[(r1+14)]; - r2 = r2 >> 2; - heap32[(r0+17)] = heap32[(r1+15)]; - heap32[(r0+18)] = heap32[(r2)]; - heap32[(r0+19)] = heap32[(r2+1)]; - heap32[(r0+20)] = heap32[(r2+2)]; - heap32[(r0+21)] = heap32[(r2+3)]; - heap32[(r0+22)] = heap32[(r2+4)]; - heap32[(r0+23)] = heap32[(r2+5)]; - heap32[(r0+24)] = heap32[(r2+6)]; - heap32[(r0+25)] = heap32[(r2+7)]; - heap32[(r0+26)] = heap32[(r2+8)]; - heap32[(r0+27)] = heap32[(r2+9)]; - heap32[(r0+28)] = heap32[(r2+10)]; - heap32[(r0+29)] = heap32[(r2+11)]; - heap32[(r0+30)] = heap32[(r2+12)]; - heap32[(r0+31)] = heap32[(r2+13)]; - r1 = heap32[(fp+4)]; - heap32[(r0+32)] = heap32[(r2+14)]; - r1 = r1 >> 2; - heap32[(r0+33)] = heap32[(r2+15)]; - heap32[(r0+34)] = heap32[(r1)]; - heap32[(r0+35)] = heap32[(r1+1)]; - heap32[(r0+36)] = heap32[(r1+2)]; - heap32[(r0+37)] = heap32[(r1+3)]; - heap32[(r0+38)] = heap32[(r1+4)]; - heap32[(r0+39)] = heap32[(r1+5)]; - heap32[(r0+40)] = heap32[(r1+6)]; - heap32[(r0+41)] = heap32[(r1+7)]; - heap32[(r0+42)] = heap32[(r1+8)]; - heap32[(r0+43)] = heap32[(r1+9)]; - heap32[(r0+44)] = heap32[(r1+10)]; - heap32[(r0+45)] = heap32[(r1+11)]; - heap32[(r0+46)] = heap32[(r1+12)]; - heap32[(r0+47)] = heap32[(r1+13)]; - heap32[(r0+48)] = heap32[(r1+14)]; - heap32[(r0+49)] = heap32[(r1+15)]; - heap32[(r0+50)] = 1065353216; - heap32[(r0+51)] = heap32[(fp+5)]; - return; -} - -function _ZN28btTriangleConvexcastCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN28btTriangleConvexcastCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV18btTriangleCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -696;var g0 = i7>>2; // save stack - r0 = sp + -104; - r1 = r0 >> 2; - heap32[(r1+2)] = 0; - heap32[(r1+3)] = 1065353216; - heap32[(r1+4)] = 1065353216; - r2 = _ZTV15btTriangleShape; - heap32[(r1+5)] = 1065353216; - r2 = (r2 + 8)|0; - heap32[(r1+6)] = 0; - r3 = heap32[(fp+1)]; - heap32[(fp+-26)] = r2; - r2 = r3 >> 2; - heap32[(r1+1)] = 1; - heap32[(r1+13)] = heap32[(r2)]; - heap32[(r1+14)] = heap32[(r2+1)]; - heap32[(r1+15)] = heap32[(r2+2)]; - heap32[(r1+16)] = heap32[(r2+3)]; - heap32[(r1+17)] = heap32[(r2+4)]; - heap32[(r1+18)] = heap32[(r2+5)]; - heap32[(r1+19)] = heap32[(r2+6)]; - heap32[(r1+20)] = heap32[(r2+7)]; - heap32[(r1+21)] = heap32[(r2+8)]; - heap32[(r1+22)] = heap32[(r2+9)]; - r3 = heap32[(fp)]; - heap32[(r1+23)] = heap32[(r2+10)]; - r4 = sp + -464; - r5 = r3 >> 2; - heap32[(r1+24)] = heap32[(r2+11)]; - r2 = r4 >> 2; - heap32[(r1+11)] = heap32[(r5+51)]; - r1 = _ZTV30btGjkEpaPenetrationDepthSolver; - r6 = 0; - heap32[(r2+77)] = 953267991; - r1 = (r1 + 8)|0; - heap8[sp+-132] = r6; - heap32[(fp+-118)] = r1; - r1 = _ZTV27btContinuousConvexCollision; - r2 = sp + -496; - r6 = heap32[(r5+1)]; - r1 = (r1 + 8)|0; - r7 = r2 >> 2; - heap32[(fp+-124)] = r1; - r1 = sp + -472; - heap32[(r7+1)] = r4; - heap32[(r7+2)] = r1; - r1 = _ZTVN12btConvexCast10CastResultE; - heap32[(r7+3)] = r6; - r4 = sp + -672; - r1 = (r1 + 8)|0; - heap32[(r7+4)] = r0; - r0 = r4 >> 2; - heap32[(fp+-168)] = r1; - heap32[(r0+42)] = 0; - heap32[(r0+43)] = 0; - heap32[(r0+41)] = 1065353216; - r1 = (r3 + 136)|0; - r6 = (r3 + 8)|0; - r7 = (r3 + 72)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = r1; - heap32[(g0+4)] = r1; - heap32[(g0+5)] = r4; - _ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7); - r1 = r_g0; -if(!(r1 ==0)) //_LBB563_4 -{ - f0 = heapFloat[(r0+33)]; - f1 = heapFloat[(r0+34)]; - f2 = heapFloat[(r0+35)]; - f0 = f0*f0; - f1 = f1*f1; - f0 = f0+f1; - f1 = f2*f2; - f0 = f0+f1; - f1 = 9.9999997473787516e-005; -if(!(f0 <=f1)) //_LBB563_4 -{ - f1 = heapFloat[(r0+41)]; - f2 = heapFloat[(r5+50)]; -if(!(f1 >=f2)) //_LBB563_4 -{ - r1 = heap32[(fp+2)]; - r2 = heap32[(fp+3)]; - heapFloat[(g0)] = f0; - sqrtf(i7); - f1 = 1; - f0 = f1/f_g0; - f1 = heapFloat[(r0+33)]; - f1 = f1*f0; - heapFloat[(r0+33)] = f1; - f1 = heapFloat[(r0+34)]; - f1 = f1*f0; - heapFloat[(r0+34)] = f1; - f1 = heapFloat[(r0+35)]; - f0 = f1*f0; - heapFloat[(r0+35)] = f0; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+3)]; - f0 = heapFloat[(r0+41)]; - r0 = (r4 + 132)|0; - r4 = (r4 + 148)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heapFloat[(g0+3)] = f0; - heap32[(g0+4)] = r1; - heap32[(g0+5)] = r2; - __FUNCTION_TABLE__[(r5)>>2](i7); -} -} -} - return; -} - -function _ZN22btSubsimplexConvexCastD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV12btConvexCast; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN22btSubsimplexConvexCastD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV12btConvexCast; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -240;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+1)]; - r2 = 0; - r3 = r1 >> 2; - heap8[r1+312] = r2; - r4 = 1; - heap32[(r3)] = 0; - heap8[r1+356] = r4; - heap32[(r3+73)] = 1566444395; - heap32[(r3+74)] = 1566444395; - heap32[(r3+75)] = 1566444395; - heap32[(r3+76)] = 0; - heap8[r1+352] = r2; - heap32[(r3+84)] = 0; - heap32[(r3+85)] = 0; - heap32[(r3+86)] = 0; - heap32[(r3+87)] = 0; - r3 = heapU8[r1+332]; - r5 = heap32[(fp+1)]; - r6 = heap32[(fp+2)]; - r7 = heap32[(fp+4)]; - r8 = heap32[(fp+3)]; - r3 = r3 & 240; - heap8[r1+332] = r3; - r1 = r5 >> 2; - r3 = r8 >> 2; - r5 = r6 >> 2; - r6 = r7 >> 2; - f0 = heapFloat[(r1+12)]; - f1 = heapFloat[(r5+12)]; - f2 = heapFloat[(r3+12)]; - f3 = heapFloat[(r6+12)]; - f4 = heapFloat[(r1+13)]; - f5 = heapFloat[(r5+13)]; - f6 = heapFloat[(r3+13)]; - f7 = heapFloat[(r6+13)]; - r7 = heap32[(r0+2)]; - f1 = f1-f0; - f3 = f3-f2; - f1 = f1-f3; - heapFloat[(fp+-50)] = f1; - f3 = heapFloat[(r1+14)]; - f8 = heapFloat[(r5+14)]; - f9 = heapFloat[(r3+14)]; - f10 = heapFloat[(r6+14)]; - r8 = r7 >> 2; - f5 = f5-f4; - f7 = f7-f6; - f5 = f5-f7; - heapFloat[(fp+-51)] = f5; - f7 = heapFloat[(r1+4)]; - heapFloat[(fp+-42)] = f7; - f11 = heapFloat[(r1)]; - heapFloat[(fp+-43)] = f11; - f12 = -f1; - r8 = heap32[(r8)]; - f8 = f8-f3; - f10 = f10-f9; - f13 = heapFloat[(r1+1)]; - heapFloat[(fp+-44)] = f13; - f14 = heapFloat[(r1+5)]; - heapFloat[(fp+-45)] = f14; - r8 = r8 >> 2; - f8 = f8-f10; - heapFloat[(fp+-52)] = f8; - f10 = heapFloat[(r1+8)]; - heapFloat[(fp+-46)] = f10; - f11 = f11*f12; - f7 = f7*f5; - f15 = heapFloat[(r1+2)]; - heapFloat[(fp+-47)] = f15; - f16 = heapFloat[(r1+6)]; - f17 = heapFloat[(r1+9)]; - f18 = heapFloat[(r1+10)]; - f19 = heapFloat[(r3)]; - heapFloat[(fp+-33)] = f19; - f19 = heapFloat[(r3+1)]; - heapFloat[(fp+-34)] = f19; - f19 = heapFloat[(r3+2)]; - heapFloat[(fp+-35)] = f19; - f19 = heapFloat[(r3+4)]; - heapFloat[(fp+-36)] = f19; - f19 = heapFloat[(r3+5)]; - heapFloat[(fp+-37)] = f19; - f19 = heapFloat[(r3+6)]; - heapFloat[(fp+-38)] = f19; - f19 = heapFloat[(r3+8)]; - heapFloat[(fp+-39)] = f19; - f19 = heapFloat[(r3+9)]; - heapFloat[(fp+-40)] = f19; - f19 = heapFloat[(r3+10)]; - heapFloat[(fp+-41)] = f19; - r8 = heap32[(r8+15)]; - f13 = f13*f12; - f14 = f14*f5; - f7 = f11-f7; - f10 = f10*f8; - r9 = sp + -112; - f11 = f15*f12; - f12 = f16*f5; - f13 = f13-f14; - f14 = f17*f8; - f7 = f7-f10; - r10 = r9 >> 2; - f10 = f11-f12; - f11 = f18*f8; - f12 = f13-f14; - heapFloat[(fp+-28)] = f7; - f7 = f10-f11; - heapFloat[(r10+1)] = f12; - heapFloat[(r10+2)] = f7; - heap32[(r10+3)] = 0; - r10 = sp + -128; - heap32[(g0)] = r10; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r9; - __FUNCTION_TABLE__[(r8)>>2](i7); - r7 = heap32[(r0+3)]; - r8 = r7 >> 2; - r8 = heap32[(r8)]; - f7 = heapFloat[(r3)]; - f10 = heapFloat[(r3+4)]; - r9 = r10 >> 2; - r8 = r8 >> 2; - f11 = heapFloat[(r3+1)]; - f12 = heapFloat[(r3+5)]; - f13 = heapFloat[(r3+8)]; - f7 = f7*f1; - f10 = f10*f5; - f14 = heapFloat[(r3+2)]; - f15 = heapFloat[(r3+6)]; - f19 = heapFloat[(r3+10)]; - f20 = heapFloat[(r3+9)]; - r8 = heap32[(r8+15)]; - f11 = f11*f1; - f12 = f12*f5; - f7 = f7+f10; - f10 = f13*f8; - f13 = heapFloat[(r1)]; - heapFloat[(fp+-48)] = f13; - f21 = heapFloat[(fp+-32)]; - f22 = heapFloat[(r1+4)]; - f23 = heapFloat[(r1+8)]; - heapFloat[(fp+-49)] = f23; - f24 = heapFloat[(r1+1)]; - f25 = heapFloat[(r9+1)]; - f26 = heapFloat[(r1+5)]; - f27 = heapFloat[(r1+9)]; - f28 = heapFloat[(r1+2)]; - f29 = heapFloat[(r9+2)]; - f30 = heapFloat[(r1+6)]; - f13 = heapFloat[(r1+10)]; - heapFloat[(fp+-54)] = f13; - f13 = heapFloat[(r1+12)]; - heapFloat[(fp+-53)] = f13; - f13 = heapFloat[(r1+13)]; - heapFloat[(fp+-56)] = f13; - f13 = heapFloat[(r1+14)]; - heapFloat[(fp+-55)] = f13; - r9 = sp + -80; - f1 = f14*f1; - f5 = f15*f5; - f11 = f11+f12; - f12 = f20*f8; - f7 = f7+f10; - r10 = r9 >> 2; - f1 = f1+f5; - f5 = f19*f8; - f8 = f11+f12; - heapFloat[(fp+-20)] = f7; - f1 = f1+f5; - heapFloat[(r10+1)] = f8; - heapFloat[(r10+2)] = f1; - heap32[(r10+3)] = 0; - r10 = sp + -96; - heap32[(g0)] = r10; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r9; - __FUNCTION_TABLE__[(r8)>>2](i7); - r7 = r10 >> 2; - f1 = heapFloat[(r3)]; - f5 = heapFloat[(fp+-24)]; - f7 = heapFloat[(r3+4)]; - f8 = heapFloat[(r3+1)]; - f10 = heapFloat[(r7+1)]; - f11 = heapFloat[(r3+5)]; - f12 = heapFloat[(r3+8)]; - f14 = heapFloat[(r3+9)]; - f13 = heapFloat[(fp+-48)]; - f13 = f13*f21; - f15 = f24*f25; - f1 = f1*f5; - f8 = f8*f10; - f19 = heapFloat[(r3+2)]; - f20 = heapFloat[(r7+2)]; - f24 = heapFloat[(r3+6)]; - f22 = f22*f21; - f26 = f26*f25; - f7 = f7*f5; - f11 = f11*f10; - f23 = heapFloat[(r3+10)]; - f13 = f13+f15; - f15 = f28*f29; - f1 = f1+f8; - f8 = f19*f20; - f19 = f22+f26; - f22 = f30*f29; - f7 = f7+f11; - f11 = f24*f20; - f24 = heapFloat[(fp+-49)]; - f21 = f24*f21; - f24 = f27*f25; - f5 = f12*f5; - f10 = f14*f10; - f12 = f13+f15; - f13 = f19+f22; - f1 = f1+f8; - f8 = heapFloat[(r3+12)]; - f7 = f7+f11; - f11 = heapFloat[(r3+13)]; - f14 = f21+f24; - f15 = heapFloat[(fp+-54)]; - f15 = f15*f29; - f5 = f5+f10; - f10 = f23*f20; - f14 = f14+f15; - f15 = heapFloat[(fp+-53)]; - f12 = f12+f15; - f1 = f1+f8; - f8 = heapFloat[(fp+-56)]; - f8 = f13+f8; - f7 = f7+f11; - f5 = f5+f10; - f10 = heapFloat[(r3+14)]; - f1 = f12-f1; - f7 = f8-f7; - f13 = heapFloat[(fp+-55)]; - f8 = f14+f13; - f5 = f5+f10; - f5 = f8-f5; - f8 = f1*f1; - f10 = f7*f7; - f8 = f8+f10; - f10 = f5*f5; - r7 = heap32[(fp+5)]; - f8 = f8+f10; - r8 = -33; - f10 = 0; - heapFloat[(fp+-48)] = f10; - heapFloat[(fp+-49)] = f10; - f11 = f10; -_1: while(true){ - f12 = 9.9999997473787516e-005; - if(f8 <=f12) //_LBB566_22 -{ -__label__ = 19; -break _1; -} -else{ - r8 = (r8 + 1)|0; - if(r8 !=0) //_LBB566_1 -{ - r9 = heap32[(r0+2)]; - r10 = r9 >> 2; - r10 = heap32[(r10)]; - f8 = -f1; - r10 = r10 >> 2; - f12 = heapFloat[(fp+-43)]; - f12 = f12*f8; - f13 = heapFloat[(fp+-42)]; - f13 = f13*f7; - r10 = heap32[(r10+15)]; - f14 = heapFloat[(fp+-44)]; - f14 = f14*f8; - f15 = heapFloat[(fp+-45)]; - f15 = f15*f7; - f12 = f12-f13; - f13 = heapFloat[(fp+-46)]; - f13 = f13*f5; - r11 = sp + -48; - f19 = heapFloat[(fp+-47)]; - f8 = f19*f8; - f19 = f16*f7; - f14 = f14-f15; - f15 = f17*f5; - f12 = f12-f13; - r12 = r11 >> 2; - f8 = f8-f19; - f13 = f18*f5; - f14 = f14-f15; - heapFloat[(fp+-12)] = f12; - f8 = f8-f13; - heapFloat[(r12+1)] = f14; - heapFloat[(r12+2)] = f8; - heap32[(r12+3)] = 0; - r12 = sp + -64; - heap32[(g0)] = r12; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r11; - __FUNCTION_TABLE__[(r10)>>2](i7); - r9 = heap32[(r0+3)]; - r10 = r9 >> 2; - r10 = heap32[(r10)]; - r11 = r12 >> 2; - r10 = r10 >> 2; - f8 = heapFloat[(fp+-33)]; - f8 = f8*f1; - f12 = heapFloat[(fp+-36)]; - f12 = f12*f7; - f13 = heapFloat[(fp+-16)]; - f14 = heapFloat[(r11+1)]; - f15 = heapFloat[(r11+2)]; - r10 = heap32[(r10+15)]; - f19 = heapFloat[(fp+-34)]; - f19 = f19*f1; - f20 = heapFloat[(fp+-37)]; - f20 = f20*f7; - f8 = f8+f12; - f12 = heapFloat[(fp+-39)]; - f12 = f12*f5; - r11 = sp + -16; - f21 = heapFloat[(fp+-35)]; - f21 = f21*f1; - f22 = heapFloat[(fp+-38)]; - f22 = f22*f7; - f19 = f19+f20; - f20 = heapFloat[(fp+-40)]; - f20 = f20*f5; - f8 = f8+f12; - r12 = r11 >> 2; - f12 = f21+f22; - f21 = heapFloat[(fp+-41)]; - f21 = f21*f5; - f19 = f19+f20; - heapFloat[(fp+-4)] = f8; - f8 = f12+f21; - heapFloat[(r12+1)] = f19; - heapFloat[(r12+2)] = f8; - heap32[(r12+3)] = 0; - r12 = sp + -32; - heap32[(g0)] = r12; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = r11; - __FUNCTION_TABLE__[(r10)>>2](i7); - f12 = 1; - if(f11 >f12) //_LBB566_27 -{ -__label__ = 24; -break _1; -} -else{ - r9 = r12 >> 2; - f8 = heapFloat[(fp+-8)]; - f19 = heapFloat[(r9+1)]; - f20 = heapFloat[(r9+2)]; - f21 = heapFloat[(fp+-43)]; - f21 = f21*f13; - f22 = heapFloat[(fp+-44)]; - f22 = f22*f14; - f23 = heapFloat[(fp+-33)]; - f23 = f23*f8; - f24 = heapFloat[(fp+-34)]; - f24 = f24*f19; - f25 = heapFloat[(fp+-42)]; - f25 = f25*f13; - f26 = heapFloat[(fp+-45)]; - f26 = f26*f14; - f27 = heapFloat[(fp+-36)]; - f27 = f27*f8; - f28 = heapFloat[(fp+-37)]; - f28 = f28*f19; - f21 = f21+f22; - f22 = heapFloat[(fp+-47)]; - f22 = f22*f15; - f23 = f23+f24; - f24 = heapFloat[(fp+-35)]; - f24 = f24*f20; - f25 = f25+f26; - f26 = f16*f15; - f27 = f27+f28; - f28 = heapFloat[(fp+-38)]; - f28 = f28*f20; - f29 = heapFloat[(fp+-46)]; - f13 = f29*f13; - f14 = f17*f14; - f29 = heapFloat[(fp+-39)]; - f8 = f29*f8; - f29 = heapFloat[(fp+-40)]; - f19 = f29*f19; - f21 = f21+f22; - f22 = f23+f24; - f23 = f25+f26; - f24 = f27+f28; - f13 = f13+f14; - f14 = f18*f15; - f8 = f8+f19; - f15 = heapFloat[(fp+-41)]; - f15 = f15*f20; - f19 = f21+f0; - f20 = f22+f2; - f21 = f23+f4; - f22 = f24+f6; - f13 = f13+f14; - f8 = f8+f15; - f14 = f19-f20; - f15 = f21-f22; - f13 = f13+f3; - f23 = f8+f9; - f24 = f13-f23; - f8 = f1*f14; - f25 = f7*f15; - f8 = f8+f25; - f25 = f5*f24; - f25 = f8+f25; - f8 = 0; - if(f25 >f8) //_LBB566_4 -{ - f0 = heapFloat[(fp+-50)]; - f0 = f1*f0; - f2 = heapFloat[(fp+-51)]; - f2 = f7*f2; - f0 = f0+f2; - f2 = heapFloat[(fp+-52)]; - f2 = f5*f2; - f0 = f0+f2; - f2 = -1.4210854715202004e-014; - if(f0 >=f2) //_LBB566_27 -{ -__label__ = 24; -break _1; -} -else{ - f0 = f25/f0; - f11 = f11-f0; - f0 = heapFloat[(r5+12)]; - f2 = heapFloat[(r5+13)]; - f3 = heapFloat[(r5+14)]; - f4 = heapFloat[(r6+12)]; - f6 = heapFloat[(r6+13)]; - f9 = heapFloat[(r6+14)]; - f10 = heapFloat[(r1+12)]; - f12 = f12-f11; - f25 = heapFloat[(r1+13)]; - f26 = heapFloat[(r1+14)]; - f27 = heapFloat[(r3+12)]; - f28 = heapFloat[(r3+13)]; - f29 = heapFloat[(r3+14)]; - f10 = f10*f12; - f0 = f0*f11; - f25 = f25*f12; - f2 = f2*f11; - f26 = f26*f12; - f3 = f3*f11; - f27 = f27*f12; - f30 = f4*f11; - f28 = f28*f12; - f6 = f6*f11; - f12 = f29*f12; - f9 = f9*f11; - f0 = f10+f0; - f4 = f25+f2; - f3 = f26+f3; - f2 = f27+f30; - f6 = f28+f6; - f9 = f12+f9; - f10 = f1; - heapFloat[(fp+-48)] = f7; - heapFloat[(fp+-49)] = f5; -} -} - r9 = heap32[(r0+1)]; - r10 = r9 >> 2; - r11 = heap32[(r10)]; -_10: do { - if(r11 >0) //_LBB566_8 -{ - r12 = -12; - f1 = heapFloat[(r10+77)]; - r13 = (r12 - r9)|0; - r14 = 0; - r15 = r11; - r12 = r14; -_12: while(true){ - r16 = -8; - r17 = -4; - r16 = (r16 - r13)|0; - r17 = (r17 - r13)|0; - r16 = r16 >> 2; - r17 = r17 >> 2; - r18 = (r14 - r13)|0; - r18 = r18 >> 2; - f5 = heapFloat[(r16)]; - f7 = heapFloat[(r17)]; - f5 = f14-f5; - f7 = f15-f7; - f12 = heapFloat[(r18)]; - f12 = f24-f12; - f5 = f5*f5; - f7 = f7*f7; - f5 = f5+f7; - f7 = f12*f12; - f5 = f5+f7; - r15 = (r15 + -1)|0; - r12 = f5 > f1 ? r12 : r4; - r13 = (r13 + -16)|0; -if(!(r15 !=0)) //_LBB566_9 -{ -break _10; -} -} -} -else{ - r12 = r2; -} -} while(0); - f1 = heapFloat[(r10+76)]; - if(f1 ==f8) //_LBB566_12 -{ - f1 = heapFloat[(r10+75)]; -if(!(f24 !=f1)) //_LBB566_11 -{ - f1 = heapFloat[(r10+74)]; -if(!(f15 !=f1)) //_LBB566_11 -{ - f1 = heapFloat[(r10+73)]; - r12 = f14 != f1 ? r12 : r4; -} -} -} - r12 = r12 & 255; - if(r12 ==0) //_LBB566_17 -{ - heapFloat[(r10+73)] = f14; - heapFloat[(r10+74)] = f15; - r11 = r11 << 4; - heapFloat[(r10+75)] = f24; - r11 = (r9 + r11)|0; - heap32[(r10+76)] = 0; - r11 = r11 >> 2; - heap8[r9+356] = r4; - heapFloat[(r11+1)] = f14; - heapFloat[(r11+2)] = f15; - heapFloat[(r11+3)] = f24; - heap32[(r11+4)] = 0; - r11 = heap32[(r10)]; - r11 = r11 << 4; - r11 = (r9 + r11)|0; - r11 = r11 >> 2; - heapFloat[(r11+21)] = f19; - heapFloat[(r11+22)] = f21; - heapFloat[(r11+23)] = f13; - heap32[(r11+24)] = 0; - r11 = heap32[(r10)]; - r11 = r11 << 4; - r9 = (r9 + r11)|0; - r9 = r9 >> 2; - heapFloat[(r9+41)] = f20; - heapFloat[(r9+42)] = f22; - heapFloat[(r9+43)] = f23; - heap32[(r9+44)] = 0; - r9 = heap32[(r10)]; - r9 = (r9 + 1)|0; - heap32[(r10)] = r9; - r9 = heap32[(r0+1)]; -} - heap32[(g0)] = r9; - _ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i7); - r10 = r_g0; - r9 = r9 >> 2; - f1 = heapFloat[(r9+69)]; - f7 = heapFloat[(r9+70)]; - f5 = heapFloat[(r9+71)]; - if(r10 ==0) //_LBB566_20 -{ -continue _1; -} -else{ - f8 = f1*f1; - f12 = f7*f7; - f8 = f8+f12; - f12 = f5*f5; - f8 = f8+f12; -continue _1; -} -} -} -else{ -__label__ = 19; -break _1; -} -} -} -if (__label__ == 19){ - f0 = f10*f10; - f7 = heapFloat[(fp+-48)]; - f1 = f7*f7; - f0 = f0+f1; - f1 = heapFloat[(fp+-49)]; - f1 = f1*f1; - f0 = f0+f1; - r1 = r7 >> 2; - heapFloat[(r1+41)] = f11; - f1 = 1.4210854715202004e-014; - if(f0 =f1)) //_LBB566_27 -{ - r0 = heap32[(r0+1)]; - heap32[(g0)] = r0; - r0 = r0 >> 2; - _ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i7); - f0 = heapFloat[(r0+68)]; - f1 = heapFloat[(r0+67)]; - f2 = heapFloat[(r0+66)]; - heap32[(r1+37)] = heap32[(r0+65)]; - heapFloat[(r1+38)] = f2; - heapFloat[(r1+39)] = f1; - heapFloat[(r1+40)] = f0; - r0 = 1; - r_g0 = r0; - return; -} -} - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN22btVoronoiSimplexSolver12removeVertexEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - if(r2 >0) //_LBB567_2 -{ - r3 = heap32[(fp+1)]; - r2 = (r2 + -1)|0; - r3 = r3 << 4; - r4 = (r0 + 4)|0; - r5 = r2 << 4; - r6 = (r4 + r3)|0; - r4 = (r4 + r5)|0; - r5 = r6 >> 2; - r4 = r4 >> 2; - heap32[(r1)] = r2; - heap32[(r5)] = heap32[(r4)]; - heap32[(r5+1)] = heap32[(r4+1)]; - heap32[(r5+2)] = heap32[(r4+2)]; - heap32[(r5+3)] = heap32[(r4+3)]; - r2 = heap32[(r1)]; - r4 = (r0 + 84)|0; - r2 = r2 << 4; - r5 = (r4 + r3)|0; - r2 = (r4 + r2)|0; - r4 = r5 >> 2; - r2 = r2 >> 2; - heap32[(r4)] = heap32[(r2)]; - heap32[(r4+1)] = heap32[(r2+1)]; - heap32[(r4+2)] = heap32[(r2+2)]; - heap32[(r4+3)] = heap32[(r2+3)]; - r1 = heap32[(r1)]; - r0 = (r0 + 164)|0; - r1 = r1 << 4; - r2 = (r0 + r3)|0; - r0 = (r0 + r1)|0; - r1 = r2 >> 2; - r0 = r0 >> 2; - heap32[(r1)] = heap32[(r0)]; - heap32[(r1+1)] = heap32[(r0+1)]; - heap32[(r1+2)] = heap32[(r0+2)]; - heap32[(r1+3)] = heap32[(r0+3)]; - return; -} -else{ - r0 = _2E_str457; - r1 = _2E_str1458; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 38; - _assert(i7); -} -} - -function _ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+4)]; - r1 = heapU8[r0+16]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - r4 = heap32[(fp+1)]; - r1 = r1 & -16; - r5 = heap32[(fp)]; - r2 = r2 >> 2; - heap8[r0+16] = r1; - r3 = r3 >> 2; - r5 = r5 >> 2; - r4 = r4 >> 2; - f0 = heapFloat[(r2+1)]; - f1 = heapFloat[(r4+1)]; - f2 = heapFloat[(r3+1)]; - f3 = heapFloat[(r5+1)]; - f4 = heapFloat[(r2)]; - f5 = heapFloat[(r4)]; - f6 = heapFloat[(r3)]; - f7 = heapFloat[(r5)]; - f8 = heapFloat[(r2+2)]; - f9 = heapFloat[(r4+2)]; - f10 = heapFloat[(r3+2)]; - f11 = heapFloat[(r5+2)]; - f12 = f0-f1; - f13 = f4-f5; - f14 = f6-f5; - f15 = f7-f5; - f16 = f2-f1; - f17 = f3-f1; - f18 = f8-f9; - f19 = f10-f9; - f20 = f11-f9; - f21 = f13*f15; - f22 = f12*f17; - f15 = f14*f15; - f17 = f16*f17; - f21 = f21+f22; - f22 = f18*f20; - f15 = f15+f17; - f17 = f19*f20; - f20 = f21+f22; - f15 = f15+f17; - f17 = 0; -if(!(f20 >f17)) //_LBB568_3 -{ -if(!(f15 >f17)) //_LBB568_3 -{ - r2 = r0 >> 2; - heapFloat[(r2)] = f5; - heap32[(r2+1)] = heap32[(r4+1)]; - heap32[(r2+2)] = heap32[(r4+2)]; - r1 = r1 | 1; - heap32[(r2+3)] = heap32[(r4+3)]; - heap8[r0+16] = r1; - heap32[(r2+5)] = 1065353216; - heap32[(r2+6)] = 0; - heap32[(r2+7)] = 0; - heap32[(r2+8)] = 0; - return; -} -} - f21 = f7-f4; - f22 = f3-f0; - f23 = f13*f21; - f24 = f12*f22; - f25 = f11-f8; - f21 = f14*f21; - f22 = f16*f22; - f23 = f23+f24; - f24 = f18*f25; - f21 = f21+f22; - f22 = f19*f25; - f23 = f23+f24; - f21 = f21+f22; - if(f23 f23) //_LBB568_7 -{ -__label__ = 7; -} -else{ - r3 = r0 >> 2; - heapFloat[(r3)] = f4; - heap32[(r3+1)] = heap32[(r2+1)]; - heap32[(r3+2)] = heap32[(r2+2)]; - r1 = r1 | 2; - heap32[(r3+3)] = heap32[(r2+3)]; - heap8[r0+16] = r1; - heap32[(r3+5)] = 0; - heap32[(r3+6)] = 1065353216; -__label__ = 6; -} -} -_8: do { -if (__label__ == 7){ - f22 = f20*f21; - f24 = f23*f15; - f22 = f22-f24; -if(!(f22 >f17)) //_LBB568_11 -{ -if(!(f20 f17)) //_LBB568_11 -{ - f0 = f20-f23; - f0 = f20/f0; - f2 = f13*f0; - r3 = r0 >> 2; - f2 = f5+f2; - f3 = f12*f0; - f4 = f18*f0; - f1 = f1+f3; - heapFloat[(r3)] = f2; - f2 = f9+f4; - heapFloat[(r3+1)] = f1; - heapFloat[(r3+2)] = f2; - f1 = 1; - r1 = r1 | 3; - heap32[(r3+3)] = 0; - f1 = f1-f0; - heap8[r0+16] = r1; - heapFloat[(r3+5)] = f1; - heapFloat[(r3+6)] = f0; -break _8; -} -} -} - f7 = f7-f6; - f3 = f3-f2; - f24 = f14*f7; - f25 = f16*f3; - f11 = f11-f10; - f7 = f13*f7; - f3 = f12*f3; - f24 = f24+f25; - f25 = f19*f11; - f3 = f7+f3; - f7 = f18*f11; - f11 = f24+f25; - f3 = f3+f7; -if(!(f11 f11)) //_LBB568_14 -{ - r2 = r0 >> 2; - heapFloat[(r2)] = f6; - heap32[(r2+1)] = heap32[(r3+1)]; - heap32[(r2+2)] = heap32[(r3+2)]; - r1 = r1 | 4; - heap32[(r2+3)] = heap32[(r3+3)]; - heap8[r0+16] = r1; - heap32[(r2+5)] = 0; - heap32[(r2+6)] = 0; - heap32[(r2+7)] = 1065353216; - heap32[(r2+8)] = 0; - return; -} -} - f7 = f3*f15; - f20 = f20*f11; - f7 = f7-f20; - if(f7 >f17) //_LBB568_19 -{ -__label__ = 19; -} -else{ - if(f15 f17) //_LBB568_19 -{ -__label__ = 19; -} -else{ - f0 = f15-f11; - f0 = f15/f0; - f2 = f14*f0; - r2 = r0 >> 2; - f2 = f5+f2; - f3 = f16*f0; - f4 = f19*f0; - f1 = f1+f3; - heapFloat[(r2)] = f2; - f2 = f9+f4; - heapFloat[(r2+1)] = f1; - heapFloat[(r2+2)] = f2; - f1 = 1; - r1 = r1 | 5; - heap32[(r2+3)] = 0; - f1 = f1-f0; - heap8[r0+16] = r1; - heapFloat[(r2+5)] = f1; - heap32[(r2+6)] = 0; -__label__ = 18; -} -} -} -if (__label__ == 19){ - f15 = f23*f11; - f20 = f3*f21; - f15 = f15-f20; -if(!(f15 >f17)) //_LBB568_23 -{ - f20 = f21-f23; -if(!(f20 > 2; - f5 = f4+f5; - f9 = f9*f1; - f7 = f0+f7; - heapFloat[(r2)] = f5; - f5 = f8+f9; - heapFloat[(r2+1)] = f7; - heapFloat[(r2+2)] = f5; - r1 = r1 | 6; - heap32[(r2+3)] = 0; - f5 = 1; - heap8[r0+16] = r1; - f5 = f5-f1; - heap32[(r2+5)] = 0; - heapFloat[(r2+6)] = f5; - heapFloat[(r2+7)] = f1; - heap32[(r2+8)] = 0; - return; -} -} -} - f0 = f15+f7; - f0 = f0+f22; - f2 = 1; - f0 = f2/f0; - f3 = f7*f0; - f0 = f22*f0; - f4 = f13*f3; - f6 = f12*f3; - f4 = f5+f4; - f5 = f14*f0; - r2 = r0 >> 2; - f4 = f4+f5; - f5 = f18*f3; - f1 = f1+f6; - f6 = f16*f0; - f5 = f9+f5; - f7 = f19*f0; - f1 = f1+f6; - heapFloat[(r2)] = f4; - f4 = f5+f7; - heapFloat[(r2+1)] = f1; - heapFloat[(r2+2)] = f4; - f1 = f2-f3; - r1 = r1 | 7; - heap32[(r2+3)] = 0; - f1 = f1-f0; - heap8[r0+16] = r1; - heapFloat[(r2+5)] = f1; - heapFloat[(r2+6)] = f3; -} - heapFloat[(r2+7)] = f0; - heap32[(r2+8)] = 0; - return; -} -} while(0); - heap32[(r3+7)] = 0; - heap32[(r3+8)] = 0; - return; -} - -function _ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - f0 = heapFloat[(fp+5)]; - f1 = heapFloat[(fp+8)]; - f2 = heapFloat[(fp+11)]; - f3 = heapFloat[(fp+4)]; - f4 = heapFloat[(fp+10)]; - f5 = heapFloat[(fp+7)]; - f6 = heapFloat[(fp+3)]; - f7 = heapFloat[(fp+6)]; - f8 = heapFloat[(fp+9)]; - f1 = f1-f0; - f4 = f4-f3; - f7 = f7-f6; - f2 = f2-f0; - f5 = f5-f3; - f8 = f8-f6; - f9 = heapFloat[(fp+12)]; - f10 = heapFloat[(fp+13)]; - f11 = f5*f2; - f12 = f1*f4; - f1 = f1*f8; - f2 = f7*f2; - f11 = f11-f12; - f9 = f9-f6; - f1 = f1-f2; - f2 = f10-f3; - f10 = heapFloat[(fp+14)]; - f4 = f7*f4; - f5 = f5*f8; - f4 = f4-f5; - f5 = f10-f0; - f7 = f9*f11; - f2 = f2*f1; - f2 = f7+f2; - f5 = f5*f4; - f2 = f2+f5; - f5 = f2*f2; - f7 = 9.9999990510468706e-009; - if(f5 >2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r3 = heap32[(fp+1)]; - if(r2 >3) //_LBB570_2 -{ - r2 = heapU8[r3]; - r4 = r2 & 8; - if(r4 ==0) //_LBB570_4 -{ - heap32[(g0)] = r0; - heap32[(g0+1)] = 3; - _ZN22btVoronoiSimplexSolver12removeVertexEi(i7); - r2 = heap32[(r1)]; -__label__ = 3; -} -else{ -__label__ = 5; -} -} -else{ -__label__ = 3; -} -if (__label__ == 3){ - if(r2 >2) //_LBB570_7 -{ - r2 = heapU8[r3]; -__label__ = 5; -} -else{ -__label__ = 7; -} -} -if (__label__ == 5){ - r4 = r2 & 4; - if(r4 ==0) //_LBB570_10 -{ - heap32[(g0)] = r0; - heap32[(g0+1)] = 2; - _ZN22btVoronoiSimplexSolver12removeVertexEi(i7); - r2 = heap32[(r1)]; -__label__ = 7; -} -else{ -__label__ = 9; -} -} -if (__label__ == 7){ - if(r2 >1) //_LBB570_13 -{ - r2 = heapU8[r3]; -__label__ = 9; -} -else{ -__label__ = 11; -} -} -if (__label__ == 9){ - r4 = r2 & 2; - if(r4 ==0) //_LBB570_16 -{ - heap32[(g0)] = r0; - heap32[(g0+1)] = 1; - _ZN22btVoronoiSimplexSolver12removeVertexEi(i7); - r2 = heap32[(r1)]; -__label__ = 11; -} -else{ -__label__ = 13; -} -} -if (__label__ == 11){ - if(r2 <1) //_LBB570_20 -{ -__label__ = 14; -} -else{ - r2 = heapU8[r3]; -__label__ = 13; -} -} -if (__label__ == 13){ - r1 = r2 & 1; - if(r1 ==0) //_LBB570_21 -{ - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - _ZN22btVoronoiSimplexSolver12removeVertexEi(i7); - return; -} -} - return; -} - -function _ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; -var __label__ = 0; - i7 = sp + -136;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+356]; - if(r1 !=0) //_LBB571_2 -{ - r1 = 0; - r2 = r0 >> 2; - heap8[r0+352] = r1; - heap32[(r2+84)] = 0; - heap32[(r2+85)] = 0; - heap32[(r2+86)] = 0; - heap32[(r2+87)] = 0; - r3 = heapU8[r0+332]; - r4 = r3 & -16; - heap8[r0+332] = r4; - heap8[r0+356] = r1; - r5 = heap32[(r2)]; -_3: do { - if(r5 >1) //_LBB571_5 -{ -_5: do { - if(r5 ==2) //_LBB571_11 -{ - f0 = 0; - f1 = heapFloat[(r2+2)]; - f2 = heapFloat[(r2+6)]; - f3 = heapFloat[(r2+1)]; - f4 = heapFloat[(r2+5)]; - f5 = heapFloat[(r2+3)]; - f6 = heapFloat[(r2+7)]; - f2 = f2-f1; - f1 = f0-f1; - f4 = f4-f3; - f3 = f0-f3; - f6 = f6-f5; - f5 = f0-f5; - f3 = f4*f3; - f1 = f2*f1; - f1 = f3+f1; - f3 = f6*f5; - f1 = f1+f3; - if(f1 <=f0) //_LBB571_15 -{ - r1 = r4 | 1; - heap8[r0+332] = r1; - f1 = f0; -} -else{ - f3 = f4*f4; - f2 = f2*f2; - f2 = f3+f2; - f3 = f6*f6; - f2 = f2+f3; - if(f1 >=f2) //_LBB571_14 -{ - f1 = 1; - r1 = r4 | 2; - heap8[r0+332] = r1; -} -else{ - f1 = f1/f2; - r1 = r4 | 3; - heap8[r0+332] = r1; -} -} - f2 = 1; - f2 = f2-f1; - heapFloat[(r2+84)] = f2; - heapFloat[(r2+85)] = f1; - heap32[(r2+86)] = 0; - heap32[(r2+87)] = 0; - f2 = heapFloat[(r2+25)]; - f3 = heapFloat[(r2+21)]; - f2 = f2-f3; - f4 = heapFloat[(r2+26)]; - f5 = heapFloat[(r2+22)]; - f4 = f4-f5; - f2 = f2*f1; - f6 = heapFloat[(r2+27)]; - f7 = heapFloat[(r2+23)]; - f6 = f6-f7; - f4 = f4*f1; - f2 = f3+f2; - f3 = f6*f1; - f4 = f5+f4; - heapFloat[(r2+61)] = f2; - f3 = f7+f3; - heapFloat[(r2+62)] = f4; - heapFloat[(r2+63)] = f3; - heap32[(r2+64)] = 0; - f5 = heapFloat[(r2+45)]; - f6 = heapFloat[(r2+41)]; - f5 = f5-f6; - f7 = heapFloat[(r2+46)]; - f8 = heapFloat[(r2+42)]; - f7 = f7-f8; - f5 = f5*f1; - f9 = heapFloat[(r2+47)]; - f10 = heapFloat[(r2+43)]; - f9 = f9-f10; - f7 = f7*f1; - f5 = f6+f5; - f1 = f9*f1; - f6 = f8+f7; - heapFloat[(r2+65)] = f5; - f1 = f10+f1; - heapFloat[(r2+66)] = f6; - heapFloat[(r2+67)] = f1; - f2 = f2-f5; - heap32[(r2+68)] = 0; - f4 = f4-f6; - heapFloat[(r2+69)] = f2; - f1 = f3-f1; - heapFloat[(r2+70)] = f4; - heapFloat[(r2+71)] = f1; - heap32[(r2+72)] = 0; - r1 = (r0 + 332)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - _ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i7); - f1 = heapFloat[(r2+84)]; - if(f1 >=f0) //_LBB571_18 -{ - f0 = heapFloat[(r2+85)]; - f1 = 0; -if(!(f0 = f1; - r1 = r1 & 1; -break _5; -} -} -} - r1 = 0; -} -else{ - if(r5 ==3) //_LBB571_22 -{ - r1 = sp + -56; - r3 = r1 >> 2; - heap32[(fp+-14)] = 0; - heap32[(r3+1)] = 0; - heap32[(r3+2)] = 0; - heap32[(r3+3)] = 0; - r3 = (r0 + 4)|0; - r4 = (r0 + 20)|0; - r5 = (r0 + 36)|0; - r6 = (r0 + 316)|0; - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - heap32[(g0+4)] = r6; - _ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7); - f0 = heapFloat[(r2+85)]; - f1 = heapFloat[(r2+25)]; - f2 = heapFloat[(r2+84)]; - f3 = heapFloat[(r2+21)]; - f4 = heapFloat[(r2+26)]; - f5 = heapFloat[(r2+22)]; - f3 = f3*f2; - f1 = f1*f0; - f6 = heapFloat[(r2+86)]; - f7 = heapFloat[(r2+29)]; - f8 = heapFloat[(r2+31)]; - f9 = heapFloat[(r2+30)]; - f10 = heapFloat[(r2+27)]; - f11 = heapFloat[(r2+23)]; - f5 = f5*f2; - f4 = f4*f0; - f1 = f3+f1; - f3 = f7*f6; - f7 = f11*f2; - f10 = f10*f0; - f4 = f5+f4; - f5 = f9*f6; - f1 = f1+f3; - f3 = f7+f10; - f7 = f8*f6; - f4 = f4+f5; - heapFloat[(r2+61)] = f1; - f3 = f3+f7; - heapFloat[(r2+62)] = f4; - heapFloat[(r2+63)] = f3; - heap32[(r2+64)] = 0; - f5 = heapFloat[(r2+45)]; - f7 = heapFloat[(r2+41)]; - f8 = heapFloat[(r2+49)]; - f9 = heapFloat[(r2+46)]; - f10 = heapFloat[(r2+42)]; - f7 = f7*f2; - f5 = f5*f0; - f11 = heapFloat[(r2+51)]; - f12 = heapFloat[(r2+50)]; - f13 = heapFloat[(r2+47)]; - f14 = heapFloat[(r2+43)]; - f10 = f10*f2; - f9 = f9*f0; - f5 = f7+f5; - f7 = f8*f6; - f5 = f5+f7; - f2 = f14*f2; - f0 = f13*f0; - f7 = f10+f9; - f8 = f12*f6; - f7 = f7+f8; - heapFloat[(r2+65)] = f5; - f0 = f2+f0; - f2 = f11*f6; - f0 = f0+f2; - heapFloat[(r2+66)] = f7; - heapFloat[(r2+67)] = f0; - f1 = f1-f5; - heap32[(r2+68)] = 0; - f2 = f4-f7; - heapFloat[(r2+69)] = f1; - f0 = f3-f0; - heapFloat[(r2+70)] = f2; - heapFloat[(r2+71)] = f0; - heap32[(r2+72)] = 0; - r1 = (r0 + 332)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - _ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i7); - f0 = heapFloat[(r2+84)]; - f1 = 0; - if(f0 >=f1) //_LBB571_24 -{ - f0 = heapFloat[(r2+85)]; -if(!(f0 = f1; - r1 = r1 & 1; -break _5; -} -} -} - r1 = 0; -} -else{ - if(r5 ==4) //_LBB571_28 -{ - r4 = sp + -72; - r5 = r4 >> 2; - heap32[(fp+-18)] = 0; - heap32[(r5+1)] = 0; - heap32[(r5+2)] = 0; - heap32[(r5+3)] = 0; - heap8[sp+-24] = r1; - heap32[(r2+79)] = 0; - heap32[(r2+80)] = 0; - heap32[(r2+81)] = 0; - r3 = r3 | 15; - heap32[(r2+82)] = 0; - heap8[r0+332] = r3; - f0 = heapFloat[(r2+11)]; - f1 = heapFloat[(r2+7)]; - f2 = heapFloat[(r2+15)]; - f3 = heapFloat[(r2+1)]; - f4 = heapFloat[(r2+2)]; - f5 = heapFloat[(r2+3)]; - f6 = heapFloat[(r2+5)]; - f7 = heapFloat[(r2+6)]; - f8 = heapFloat[(r2+9)]; - f9 = heapFloat[(r2+10)]; - f10 = heapFloat[(r2+13)]; - f11 = heapFloat[(r2+14)]; - heap32[(g0)] = 0; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 0; - heapFloat[(g0+3)] = f3; - heapFloat[(g0+4)] = f4; - heapFloat[(g0+5)] = f5; - heapFloat[(g0+6)] = f6; - heapFloat[(g0+7)] = f7; - heapFloat[(g0+8)] = f1; - heapFloat[(g0+9)] = f8; - heapFloat[(g0+10)] = f9; - heapFloat[(g0+11)] = f0; - heapFloat[(g0+12)] = f10; - heapFloat[(g0+13)] = f11; - heapFloat[(g0+14)] = f2; - _ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(i7); - r3 = r_g0; - heap32[(g0)] = 0; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 0; - heapFloat[(g0+3)] = f3; - heapFloat[(g0+4)] = f4; - heapFloat[(g0+5)] = f5; - heapFloat[(g0+6)] = f8; - heapFloat[(g0+7)] = f9; - heapFloat[(g0+8)] = f0; - heapFloat[(g0+9)] = f10; - heapFloat[(g0+10)] = f11; - heapFloat[(g0+11)] = f2; - heapFloat[(g0+12)] = f6; - heapFloat[(g0+13)] = f7; - heapFloat[(g0+14)] = f1; - _ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(i7); - r6 = r_g0; - heap32[(g0)] = 0; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 0; - heapFloat[(g0+3)] = f3; - heapFloat[(g0+4)] = f4; - heapFloat[(g0+5)] = f5; - heapFloat[(g0+6)] = f10; - heapFloat[(g0+7)] = f11; - heapFloat[(g0+8)] = f2; - heapFloat[(g0+9)] = f6; - heapFloat[(g0+10)] = f7; - heapFloat[(g0+11)] = f1; - heapFloat[(g0+12)] = f8; - heapFloat[(g0+13)] = f9; - heapFloat[(g0+14)] = f0; - _ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(i7); - r7 = r_g0; - heap32[(g0)] = 0; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 0; - heapFloat[(g0+3)] = f6; - heapFloat[(g0+4)] = f7; - heapFloat[(g0+5)] = f1; - heapFloat[(g0+6)] = f10; - heapFloat[(g0+7)] = f11; - heapFloat[(g0+8)] = f2; - heapFloat[(g0+9)] = f8; - heapFloat[(g0+10)] = f9; - heapFloat[(g0+11)] = f0; - heapFloat[(g0+12)] = f3; - heapFloat[(g0+13)] = f4; - heapFloat[(g0+14)] = f5; - r8 = r6 | r3; - _ZN22btVoronoiSimplexSolver19pointOutsideOfPlaneERK9btVector3S2_S2_S2_S2_(i7); - r9 = r_g0; -if(!(r8 <0)) //_LBB571_52 -{ - r10 = r9 | r7; -if(!(r10 <0)) //_LBB571_52 -{ - r8 = r8 | r7; - r8 = r8 | r9; - if(r8 ==0) //_LBB571_53 -{ - r1 = 1; - heap8[r0+312] = r1; - heap32[(r2+69)] = 0; - heap32[(r2+70)] = 0; - heap32[(r2+71)] = 0; - heap32[(r2+72)] = 0; - r_g0 = r1; - return; -} -else{ - r8 = (r0 + 4)|0; - r10 = (r0 + 20)|0; - r11 = (r0 + 36)|0; - r12 = (r0 + 52)|0; - if(r3 !=0) //_LBB571_33 -{ - r3 = sp + -40; - heap32[(g0)] = r4; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r11; - heap32[(g0+4)] = r3; - _ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7); - r3 = r3 >> 2; - f1 = heapFloat[(fp+-10)]; - f0 = heapFloat[(fp+-18)]; - f2 = heapFloat[(r3+1)]; - f3 = heapFloat[(r5+1)]; - f0 = f1-f0; - f3 = f2-f3; - f4 = heapFloat[(r3+2)]; - f5 = heapFloat[(r5+2)]; - f5 = f4-f5; - f0 = f0*f0; - f3 = f3*f3; - f0 = f0+f3; - f3 = f5*f5; - f0 = f0+f3; - f3 = 3.4028234663852886e+038; - if(f0 >=f3) //_LBB571_32 -{ -__label__ = 31; -} -else{ - f3 = heapFloat[(r3+3)]; - heapFloat[(r2+79)] = f1; - heapFloat[(r2+80)] = f2; - heapFloat[(r2+81)] = f4; - heapFloat[(r2+82)] = f3; - r13 = heapU8[sp+-24]; - r14 = heapU8[r0+332]; - r15 = r13 & 1; - r14 = r14 & 240; - r14 = r15 | r14; - r15 = r13 & 2; - r14 = r14 | r15; - r13 = r13 & 4; - r13 = r14 | r13; - heap8[r0+332] = r13; - f1 = heapFloat[(r3+7)]; - f2 = heapFloat[(r3+6)]; - heap32[(r2+84)] = heap32[(r3+5)]; - heapFloat[(r2+85)] = f2; - heapFloat[(r2+86)] = f1; - heap32[(r2+87)] = 0; -__label__ = 34; -} -} -else{ -__label__ = 31; -} -if (__label__ == 31){ - f0 = 3.4028234663852886e+038; -} - if(r6 !=0) //_LBB571_37 -{ - r3 = sp + -40; - heap32[(g0)] = r4; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r11; - heap32[(g0+3)] = r12; - heap32[(g0+4)] = r3; - _ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7); - r3 = r3 >> 2; - f1 = heapFloat[(fp+-10)]; - f2 = heapFloat[(fp+-18)]; - f3 = heapFloat[(r3+1)]; - f4 = heapFloat[(r5+1)]; - f2 = f1-f2; - f4 = f3-f4; - f5 = heapFloat[(r3+2)]; - f6 = heapFloat[(r5+2)]; - f6 = f5-f6; - f2 = f2*f2; - f4 = f4*f4; - f2 = f2+f4; - f4 = f6*f6; - f2 = f2+f4; -if(!(f2 >=f0)) //_LBB571_36 -{ - f0 = heapFloat[(r3+3)]; - heapFloat[(r2+79)] = f1; - heapFloat[(r2+80)] = f3; - heapFloat[(r2+81)] = f5; - heapFloat[(r2+82)] = f0; - r6 = heapU8[sp+-24]; - r13 = heapU8[r0+332]; - r14 = r6 << 1; - r6 = r6 & 1; - r13 = r13 & 240; - r6 = r6 | r13; - r13 = r14 & 4; - r6 = r6 | r13; - r13 = r14 & 8; - r6 = r6 | r13; - heap8[r0+332] = r6; - f0 = heapFloat[(r3+7)]; - f1 = heapFloat[(r3+6)]; - heap32[(r2+84)] = heap32[(r3+5)]; - heap32[(r2+85)] = 0; - heapFloat[(r2+86)] = f1; - heapFloat[(r2+87)] = f0; - f0 = f2; -} -} - if(r7 !=0) //_LBB571_41 -{ - r3 = sp + -40; - heap32[(g0)] = r4; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r12; - heap32[(g0+3)] = r10; - heap32[(g0+4)] = r3; - _ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7); - r3 = r3 >> 2; - f1 = heapFloat[(fp+-10)]; - f2 = heapFloat[(fp+-18)]; - f3 = heapFloat[(r3+1)]; - f4 = heapFloat[(r5+1)]; - f2 = f1-f2; - f4 = f3-f4; - f5 = heapFloat[(r3+2)]; - f6 = heapFloat[(r5+2)]; - f6 = f5-f6; - f2 = f2*f2; - f4 = f4*f4; - f2 = f2+f4; - f4 = f6*f6; - f2 = f2+f4; -if(!(f2 >=f0)) //_LBB571_40 -{ - f0 = heapFloat[(r3+3)]; - heapFloat[(r2+79)] = f1; - heapFloat[(r2+80)] = f3; - heapFloat[(r2+81)] = f5; - heapFloat[(r2+82)] = f0; - r6 = heapU8[sp+-24]; - r7 = heapU8[r0+332]; - r8 = r6 >>> 1; - r13 = r6 & 1; - r7 = r7 & 240; - r6 = r6 << 2; - r7 = r13 | r7; - r8 = r8 & 2; - r7 = r7 | r8; - r6 = r6 & 8; - r6 = r7 | r6; - heap8[r0+332] = r6; - f0 = heapFloat[(r3+6)]; - f1 = heapFloat[(r3+7)]; - heap32[(r2+84)] = heap32[(r3+5)]; - heapFloat[(r2+85)] = f1; - heap32[(r2+86)] = 0; - heapFloat[(r2+87)] = f0; - f0 = f2; -} -} -if(!(r9 ==0)) //_LBB571_46 -{ - r3 = sp + -40; - heap32[(g0)] = r4; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r12; - heap32[(g0+3)] = r11; - heap32[(g0+4)] = r3; - _ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i7); - r3 = r3 >> 2; - f1 = heapFloat[(fp+-10)]; - f2 = heapFloat[(fp+-18)]; - f3 = heapFloat[(r3+1)]; - f4 = heapFloat[(r5+1)]; - f2 = f1-f2; - f4 = f3-f4; - f5 = heapFloat[(r3+2)]; - f6 = heapFloat[(r5+2)]; - f6 = f5-f6; - f2 = f2*f2; - f4 = f4*f4; - f2 = f2+f4; - f4 = f6*f6; - f2 = f2+f4; -if(!(f2 >=f0)) //_LBB571_46 -{ - f0 = heapFloat[(r3+3)]; - heapFloat[(r2+79)] = f1; - heapFloat[(r2+80)] = f3; - heapFloat[(r2+81)] = f5; - heapFloat[(r2+82)] = f0; - r4 = heapU8[sp+-24]; - r5 = heapU8[r0+332]; - r6 = r4 << 1; - r6 = r6 & 2; - r5 = r5 & 240; - r7 = r4 << 2; - r5 = r6 | r5; - r4 = r4 & 4; - r4 = r5 | r4; - r5 = r7 & 8; - r4 = r4 | r5; - heap8[r0+332] = r4; - f0 = heapFloat[(r3+6)]; - f1 = heapFloat[(r3+7)]; - f2 = heapFloat[(r3+5)]; - heap32[(r2+84)] = 0; - heapFloat[(r2+85)] = f2; - heapFloat[(r2+86)] = f1; - heapFloat[(r2+87)] = f0; -} -} - f0 = heapFloat[(r2+85)]; - f1 = heapFloat[(r2+25)]; - f2 = heapFloat[(r2+84)]; - f3 = heapFloat[(r2+21)]; - f4 = heapFloat[(r2+26)]; - f5 = heapFloat[(r2+22)]; - f3 = f3*f2; - f1 = f1*f0; - f6 = heapFloat[(r2+86)]; - f7 = heapFloat[(r2+29)]; - f8 = heapFloat[(r2+30)]; - f9 = heapFloat[(r2+27)]; - f10 = heapFloat[(r2+23)]; - f5 = f5*f2; - f4 = f4*f0; - f1 = f3+f1; - f3 = f7*f6; - f7 = heapFloat[(r2+87)]; - f11 = heapFloat[(r2+33)]; - f12 = heapFloat[(r2+35)]; - f13 = heapFloat[(r2+34)]; - f14 = heapFloat[(r2+31)]; - f10 = f10*f2; - f9 = f9*f0; - f4 = f5+f4; - f5 = f8*f6; - f1 = f1+f3; - f3 = f11*f7; - f8 = f10+f9; - f9 = f14*f6; - f4 = f4+f5; - f5 = f13*f7; - f1 = f1+f3; - f3 = f8+f9; - f8 = f12*f7; - f4 = f4+f5; - heapFloat[(r2+61)] = f1; - f3 = f3+f8; - heapFloat[(r2+62)] = f4; - heapFloat[(r2+63)] = f3; - heap32[(r2+64)] = 0; - f5 = heapFloat[(r2+45)]; - f8 = heapFloat[(r2+41)]; - f9 = heapFloat[(r2+49)]; - f10 = heapFloat[(r2+46)]; - f11 = heapFloat[(r2+42)]; - f8 = f8*f2; - f5 = f5*f0; - f12 = heapFloat[(r2+53)]; - f13 = heapFloat[(r2+50)]; - f14 = heapFloat[(r2+47)]; - f15 = heapFloat[(r2+43)]; - f11 = f11*f2; - f10 = f10*f0; - f5 = f8+f5; - f8 = f9*f6; - f9 = heapFloat[(r2+55)]; - f16 = heapFloat[(r2+54)]; - f17 = heapFloat[(r2+51)]; - f2 = f15*f2; - f0 = f14*f0; - f10 = f11+f10; - f11 = f13*f6; - f5 = f5+f8; - f8 = f12*f7; - f5 = f5+f8; - f0 = f2+f0; - f2 = f17*f6; - f6 = f10+f11; - f8 = f16*f7; - f6 = f6+f8; - heapFloat[(r2+65)] = f5; - f0 = f0+f2; - f2 = f9*f7; - f0 = f0+f2; - heapFloat[(r2+66)] = f6; - heapFloat[(r2+67)] = f0; - f1 = f1-f5; - heap32[(r2+68)] = 0; - f2 = f4-f6; - heapFloat[(r2+69)] = f1; - f0 = f3-f0; - heapFloat[(r2+70)] = f2; - heapFloat[(r2+71)] = f0; - heap32[(r2+72)] = 0; - r3 = (r0 + 332)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - _ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i7); - f0 = heapFloat[(r2+84)]; - f1 = 0; - if(f0 >=f1) //_LBB571_48 -{ - f0 = heapFloat[(r2+85)]; - if(f0 = f1; - r1 = r1 & 1; -break _5; -} -} -} -else{ -break _5; -} -} -} -} - r2 = 1; - heap8[r0+352] = r2; - r2 = 0; - heap8[r0+312] = r2; - r_g0 = r2; - return; -} -else{ -__label__ = 8; -break _3; -} -} -} -} while(0); - heap8[r0+312] = r1; - r0 = r1 & 255; - r_g0 = r0; - return; -} -else{ - if(r5 ==0) //_LBB571_8 -{ -__label__ = 8; -} -else{ - if(r5 ==1) //_LBB571_10 -{ - f0 = heapFloat[(r2+21)]; - heapFloat[(r2+61)] = f0; - f1 = heapFloat[(r2+22)]; - heapFloat[(r2+62)] = f1; - f2 = heapFloat[(r2+23)]; - heapFloat[(r2+63)] = f2; - heap32[(r2+64)] = heap32[(r2+24)]; - f3 = heapFloat[(r2+41)]; - heapFloat[(r2+65)] = f3; - f4 = heapFloat[(r2+42)]; - heapFloat[(r2+66)] = f4; - f5 = heapFloat[(r2+43)]; - heapFloat[(r2+67)] = f5; - f0 = f0-f3; - heap32[(r2+68)] = heap32[(r2+44)]; - f1 = f1-f4; - heapFloat[(r2+69)] = f0; - f0 = f2-f5; - heapFloat[(r2+70)] = f1; - heapFloat[(r2+71)] = f0; - r1 = 0; - heap32[(r2+72)] = 0; - heap8[r0+352] = r1; - heap8[r0+332] = r4; - heap32[(r2+84)] = 1065353216; - heap32[(r2+85)] = 0; - heap32[(r2+86)] = 0; - heap32[(r2+87)] = 0; - r1 = 1; -__label__ = 9; -} -else{ -__label__ = 8; -} -} -} -} while(0); -if (__label__ == 8){ - r1 = 0; -} - heap8[r0+312] = r1; - r_g0 = r1; - return; -} -else{ - r0 = heapU8[r0+312]; - r_g0 = r0; - return; -} -} - -function _ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(fp)]; - f0 = heapFloat[(r0+10)]; - r1 = r1 >> 2; - f1 = heapFloat[(r1+1)]; - if(f0 <=f1) //_LBB574_2 -{ - r2 = heap32[(fp+2)]; - heapFloat[(r1+1)] = f0; - r3 = heap32[(r0)]; - heap32[(r1+19)] = r3; - if(r2 ==0) //_LBB574_4 -{ - r2 = r3 >> 2; - f0 = heapFloat[(r0+2)]; - f1 = heapFloat[(r2+1)]; - f2 = heapFloat[(r0+3)]; - f3 = heapFloat[(r2+2)]; - f4 = heapFloat[(r2+5)]; - f5 = heapFloat[(r2+6)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r0+4)]; - f7 = heapFloat[(r2+3)]; - f8 = heapFloat[(r2+9)]; - f9 = heapFloat[(r2+10)]; - f10 = heapFloat[(r2+11)]; - f11 = heapFloat[(r2+7)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f11*f6; - f1 = f1+f3; - f0 = f0+f2; - f2 = f10*f6; - f3 = f4+f5; - heapFloat[(r1+11)] = f1; - f0 = f0+f2; - heapFloat[(r1+12)] = f3; - heapFloat[(r1+13)] = f0; - heap32[(r1+14)] = 0; -} -else{ - heap32[(r1+11)] = heap32[(r0+2)]; - heap32[(r1+12)] = heap32[(r0+3)]; - heap32[(r1+13)] = heap32[(r0+4)]; - heap32[(r1+14)] = heap32[(r0+5)]; -} - heap32[(r1+15)] = heap32[(r0+6)]; - heap32[(r1+16)] = heap32[(r0+7)]; - heap32[(r1+17)] = heap32[(r0+8)]; - heap32[(r1+18)] = heap32[(r0+9)]; - f0 = heapFloat[(r0+10)]; - f_g0 = f0; - return; -} -else{ - r0 = _2E_str36; - r1 = _2E_str4; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 384; - _assert(i7); -} -} - -function _ZNK21btConeTwistConstraint28calculateSerializeBufferSizeEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 204; - r_g0 = r0; - return; -} - -function _ZNK21btConeTwistConstraint9serializeEPvP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - r1 = r1 >> 2; - r0 = r0 >> 2; - _ZNK17btTypedConstraint9serializeEPvP12btSerializer(i7); - heap32[(r1+11)] = heap32[(r0+72)]; - heap32[(r1+12)] = heap32[(r0+73)]; - heap32[(r1+13)] = heap32[(r0+74)]; - heap32[(r1+14)] = heap32[(r0+75)]; - heap32[(r1+15)] = heap32[(r0+76)]; - heap32[(r1+16)] = heap32[(r0+77)]; - heap32[(r1+17)] = heap32[(r0+78)]; - heap32[(r1+18)] = heap32[(r0+79)]; - heap32[(r1+19)] = heap32[(r0+80)]; - heap32[(r1+20)] = heap32[(r0+81)]; - heap32[(r1+21)] = heap32[(r0+82)]; - heap32[(r1+22)] = heap32[(r0+83)]; - heap32[(r1+23)] = heap32[(r0+84)]; - heap32[(r1+24)] = heap32[(r0+85)]; - heap32[(r1+25)] = heap32[(r0+86)]; - heap32[(r1+26)] = heap32[(r0+87)]; - heap32[(r1+27)] = heap32[(r0+88)]; - heap32[(r1+28)] = heap32[(r0+89)]; - heap32[(r1+29)] = heap32[(r0+90)]; - heap32[(r1+30)] = heap32[(r0+91)]; - heap32[(r1+31)] = heap32[(r0+92)]; - heap32[(r1+32)] = heap32[(r0+93)]; - heap32[(r1+33)] = heap32[(r0+94)]; - heap32[(r1+34)] = heap32[(r0+95)]; - heap32[(r1+35)] = heap32[(r0+96)]; - heap32[(r1+36)] = heap32[(r0+97)]; - heap32[(r1+37)] = heap32[(r0+98)]; - heap32[(r1+38)] = heap32[(r0+99)]; - heap32[(r1+39)] = heap32[(r0+100)]; - heap32[(r1+40)] = heap32[(r0+101)]; - heap32[(r1+41)] = heap32[(r0+102)]; - heap32[(r1+42)] = heap32[(r0+103)]; - heap32[(r1+43)] = heap32[(r0+108)]; - heap32[(r1+44)] = heap32[(r0+109)]; - heap32[(r1+45)] = heap32[(r0+110)]; - heap32[(r1+46)] = heap32[(r0+104)]; - heap32[(r1+47)] = heap32[(r0+105)]; - heap32[(r1+48)] = heap32[(r0+106)]; - heap32[(r1+49)] = heap32[(r0+107)]; - r0 = _2E_str239; - r_g0 = r0; - return; -} - -function _ZN21btConeTwistConstraintD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV21btConeTwistConstraint; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN21btConeTwistConstraintD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV21btConeTwistConstraint; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN21btConeTwistConstraint13buildJacobianEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; -var __label__ = 0; - i7 = sp + -216;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+515]; -if(!(r1 ==0)) //_LBB579_14 -{ - r1 = r0 >> 2; - heap32[(r1+7)] = 0; - heap32[(r1+127)] = 0; - heap32[(r1+126)] = 0; - heap32[(r1+141)] = 0; - heap32[(r1+142)] = 0; - heap32[(r1+143)] = 0; - heap32[(r1+144)] = 0; - r2 = heapU8[r0+512]; -if(!(r2 !=0)) //_LBB579_13 -{ - r2 = heap32[(r1+6)]; - r3 = heap32[(r1+5)]; - r2 = r2 >> 2; - r3 = r3 >> 2; - f0 = heapFloat[(r2+5)]; - f1 = heapFloat[(r1+100)]; - f2 = heapFloat[(r2+1)]; - f3 = heapFloat[(r2+6)]; - f4 = heapFloat[(r1+101)]; - f5 = heapFloat[(r2+2)]; - f6 = heapFloat[(r3+5)]; - f7 = heapFloat[(r1+84)]; - f8 = heapFloat[(r3+1)]; - f9 = heapFloat[(r3+6)]; - f10 = heapFloat[(r1+85)]; - f11 = heapFloat[(r3+2)]; - f12 = heapFloat[(r2+9)]; - f13 = heapFloat[(r2+10)]; - f14 = heapFloat[(r3+9)]; - f15 = heapFloat[(r3+10)]; - f0 = f0*f1; - f3 = f3*f4; - f16 = heapFloat[(r2+7)]; - f17 = heapFloat[(r1+102)]; - f18 = heapFloat[(r2+3)]; - f6 = f6*f7; - f9 = f9*f10; - f19 = heapFloat[(r3+7)]; - f20 = heapFloat[(r1+86)]; - f21 = heapFloat[(r3+3)]; - f2 = f2*f1; - f5 = f5*f4; - f8 = f8*f7; - f11 = f11*f10; - f22 = heapFloat[(r2+11)]; - f23 = heapFloat[(r3+11)]; - f1 = f12*f1; - f4 = f13*f4; - f7 = f14*f7; - f10 = f15*f10; - f0 = f0+f3; - f3 = f16*f17; - f6 = f6+f9; - f9 = f19*f20; - f2 = f2+f5; - f5 = f18*f17; - f8 = f8+f11; - f11 = f21*f20; - f1 = f1+f4; - f4 = f22*f17; - f7 = f7+f10; - f10 = f23*f20; - f0 = f0+f3; - f3 = heapFloat[(r2+14)]; - f6 = f6+f9; - f9 = heapFloat[(r3+14)]; - f2 = f2+f5; - f5 = heapFloat[(r2+13)]; - f8 = f8+f11; - f11 = heapFloat[(r3+13)]; - f0 = f0+f3; - f3 = f6+f9; - f2 = f2+f5; - f5 = f8+f11; - f1 = f1+f4; - f4 = heapFloat[(r2+15)]; - f6 = f7+f10; - f7 = heapFloat[(r3+15)]; - f8 = f0-f3; - f9 = f2-f5; - f1 = f1+f4; - f4 = f6+f7; - f6 = f1-f4; - f7 = f9*f9; - f10 = f8*f8; - f7 = f7+f10; - f10 = f6*f6; - f7 = f7+f10; - f10 = 1.1920928955078125e-007; - if(f7 >f10) //_LBB579_4 -{ - heapFloat[(g0)] = f7; - f10 = 1; - sqrtf(i7); - f11 = f10/f_g0; - r2 = sp + -176; - f7 = f9*f11; - f8 = f8*f11; - r3 = r2 >> 2; - heapFloat[(fp+-44)] = f7; - f6 = f6*f11; - heapFloat[(r3+1)] = f8; - r2 = (r2 + 8)|0; - heapFloat[(r3+2)] = f6; - heap32[(r3+3)] = 0; - f9 = 0; - if(f6 f11) //_LBB579_9 -{ - f7 = f8*f8; - f8 = f6*f6; - f7 = f7+f8; - heapFloat[(g0)] = f7; - sqrtf(i7); - heap32[(r3+4)] = 0; - f6 = heapFloat[(r3+2)]; - f8 = f10/f_g0; - f6 = -f6; - f6 = f8*f6; - heapFloat[(r3+5)] = f6; - f9 = heapFloat[(r3+1)]; - f9 = f9*f8; - f7 = f7*f8; - heapFloat[(r3+6)] = f9; - heapFloat[(r3+8)] = f7; - f7 = heapFloat[(fp+-44)]; - f8 = -f7; - f8 = f9*f8; - f7 = f7*f6; - heapFloat[(r3+9)] = f8; - heapFloat[(r3+10)] = f7; -__label__ = 10; -} -else{ -__label__ = 9; -} -} -else{ - r2 = sp + -176; - r3 = r2 >> 2; - heap32[(fp+-44)] = 1065353216; - heap32[(r3+1)] = 0; - r2 = (r2 + 8)|0; - f7 = 1; - f8 = 0; - heap32[(r3+2)] = 0; - heap32[(r3+3)] = 0; -__label__ = 9; -} -if (__label__ == 9){ - f6 = f7*f7; - f7 = f8*f8; - f6 = f6+f7; - r3 = sp + -176; - heapFloat[(g0)] = f6; - r3 = r3 >> 2; - sqrtf(i7); - f8 = 1; - f9 = heapFloat[(r3+1)]; - f7 = f8/f_g0; - f8 = -f9; - f8 = f7*f8; - heapFloat[(r3+4)] = f8; - f9 = heapFloat[(fp+-44)]; - f9 = f9*f7; - heapFloat[(r3+5)] = f9; - r2 = r2 >> 2; - heap32[(r3+6)] = 0; - f10 = heapFloat[(r2)]; - f11 = -f10; - f9 = f9*f11; - f8 = f10*f8; - heapFloat[(r3+8)] = f9; - f6 = f6*f7; - heapFloat[(r3+9)] = f8; - heapFloat[(r3+10)] = f6; -} - r2 = (r0 + 36)|0; - r3 = 0; -_16: while(true){ - r4 = heap32[(r1+5)]; - r5 = r4 >> 2; - r6 = sp + -128; - r7 = r6 >> 2; - heap32[(fp+-32)] = heap32[(r5+1)]; - heap32[(r7+1)] = heap32[(r5+5)]; - heap32[(r7+2)] = heap32[(r5+9)]; - heap32[(r7+3)] = 0; - heap32[(r7+4)] = heap32[(r5+2)]; - heap32[(r7+5)] = heap32[(r5+6)]; - heap32[(r7+6)] = heap32[(r5+10)]; - heap32[(r7+7)] = 0; - heap32[(r7+8)] = heap32[(r5+3)]; - heap32[(r7+9)] = heap32[(r5+7)]; - heap32[(r7+10)] = heap32[(r5+11)]; - heap32[(r7+11)] = 0; - r7 = heap32[(r1+6)]; - r8 = sp + -80; - r9 = r7 >> 2; - r10 = r8 >> 2; - heap32[(fp+-20)] = heap32[(r9+1)]; - heap32[(r10+1)] = heap32[(r9+5)]; - heap32[(r10+2)] = heap32[(r9+9)]; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = heap32[(r9+2)]; - heap32[(r10+5)] = heap32[(r9+6)]; - heap32[(r10+6)] = heap32[(r9+10)]; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = heap32[(r9+3)]; - heap32[(r10+9)] = heap32[(r9+7)]; - heap32[(r10+10)] = heap32[(r9+11)]; - heap32[(r10+11)] = 0; - f6 = heapFloat[(r5+13)]; - f7 = heapFloat[(r5+15)]; - f8 = heapFloat[(r5+14)]; - r10 = sp + -32; - f6 = f5-f6; - r11 = r10 >> 2; - f8 = f3-f8; - heapFloat[(fp+-8)] = f6; - f6 = f4-f7; - heapFloat[(r11+1)] = f8; - heapFloat[(r11+2)] = f6; - heap32[(r11+3)] = 0; - f6 = heapFloat[(r9+13)]; - f7 = heapFloat[(r9+15)]; - f8 = heapFloat[(r9+14)]; - r11 = sp + -16; - f6 = f2-f6; - r12 = r11 >> 2; - f8 = f0-f8; - heapFloat[(fp+-4)] = f6; - f6 = f1-f7; - heapFloat[(r12+1)] = f8; - heapFloat[(r12+2)] = f6; - heap32[(r12+3)] = 0; - f6 = heapFloat[(r9+84)]; - f7 = heapFloat[(r5+84)]; - r5 = sp + -176; - r5 = (r5 + r3)|0; - r4 = (r4 + 388)|0; - r7 = (r7 + 388)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r10; - heap32[(g0+4)] = r11; - heap32[(g0+5)] = r5; - heap32[(g0+6)] = r4; - heapFloat[(g0+7)] = f7; - heap32[(g0+8)] = r7; - heapFloat[(g0+9)] = f6; - r3 = (r3 + 16)|0; - r2 = (r2 + 84)|0; - _ZN15btJacobianEntryC2ERK11btMatrix3x3S2_RK9btVector3S5_S5_S5_fS5_f(i7); -if(!(r3 !=48)) //_LBB579_12 -{ -break _16; -} -} -} - r2 = heap32[(r1+6)]; - r1 = heap32[(r1+5)]; - r3 = (r1 + 4)|0; - r4 = (r2 + 4)|0; - r1 = (r1 + 256)|0; - r2 = (r2 + 256)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r1; - heap32[(g0+4)] = r2; - _ZN21btConeTwistConstraint14calcAngleInfo2ERK11btTransformS2_RK11btMatrix3x3S5_(i7); -} - return; -} - -function _ZN21btConeTwistConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heapU8[r0+515]; - if(r2 ==0) //_LBB580_2 -{ - r1 = r1 >> 2; - heap32[(r1)] = 3; - r2 = r0 >> 2; - heap32[(r1+1)] = 3; - r3 = heap32[(r2+6)]; - r4 = heap32[(r2+5)]; - r5 = (r4 + 4)|0; - r6 = (r3 + 4)|0; - r4 = (r4 + 256)|0; - r3 = (r3 + 256)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r4; - heap32[(g0+4)] = r3; - _ZN21btConeTwistConstraint14calcAngleInfo2ERK11btTransformS2_RK11btMatrix3x3S5_(i7); - r3 = heapU8[r0+514]; -if(!(r3 ==0)) //_LBB580_6 -{ - r3 = heap32[(r1)]; - r4 = (r3 + 1)|0; - heap32[(r1)] = r4; - r4 = heap32[(r1+1)]; - r5 = (r4 + -1)|0; - heap32[(r1+1)] = r5; - f0 = heapFloat[(r2+111)]; - f1 = heapFloat[(r2+108)]; -if(!(f1 >=f0)) //_LBB580_6 -{ - f1 = heapFloat[(r2+109)]; -if(!(f1 >=f0)) //_LBB580_6 -{ - r2 = (r3 + 2)|0; - r3 = (r4 + -2)|0; - heap32[(r1)] = r2; - heap32[(r1+1)] = r3; -} -} -} - r0 = heapU8[r0+513]; -if(!(r0 ==0)) //_LBB580_8 -{ - r0 = heap32[(r1)]; - r0 = (r0 + 1)|0; - heap32[(r1)] = r0; - r0 = heap32[(r1+1)]; - r0 = (r0 + -1)|0; - heap32[(r1+1)] = r0; -} - return; -} -else{ - r0 = r1 >> 2; - heap32[(r0)] = 0; - heap32[(r0+1)] = 0; - return; -} -} - -function _ZN21btConeTwistConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+6)]; - r3 = heap32[(r1+5)]; - r4 = (r3 + 4)|0; - r5 = (r2 + 4)|0; - r6 = (r3 + 256)|0; - r7 = (r2 + 256)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r6; - heap32[(g0+4)] = r7; - _ZN21btConeTwistConstraint14calcAngleInfo2ERK11btTransformS2_RK11btMatrix3x3S5_(i7); - r4 = heapU8[r0+515]; - if(r4 ==0) //_LBB581_2 -{ - r4 = heap32[(fp+1)]; - r5 = r4 >> 2; - r6 = heap32[(r5+2)]; - r6 = r6 >> 2; - heap32[(r6)] = 1065353216; - r6 = heap32[(r5+6)]; - r7 = heap32[(r5+2)]; - r6 = r6 << 2; - r6 = (r6 + r7)|0; - r6 = r6 >> 2; - heap32[(r6+1)] = 1065353216; - r6 = heap32[(r5+6)]; - r7 = heap32[(r5+2)]; - r6 = r6 << 3; - r6 = (r6 + r7)|0; - r6 = r6 >> 2; - heap32[(r6+2)] = 1065353216; - r3 = r3 >> 2; - f0 = heapFloat[(r3+9)]; - f1 = heapFloat[(r1+84)]; - f2 = heapFloat[(r3+5)]; - f3 = heapFloat[(r3+10)]; - f4 = heapFloat[(r1+85)]; - f5 = heapFloat[(r3+6)]; - r6 = heap32[(r5+6)]; - f6 = heapFloat[(r3+1)]; - f7 = heapFloat[(r3+2)]; - r7 = heap32[(r5+3)]; - f2 = f2*f1; - f5 = f5*f4; - f0 = f0*f1; - f3 = f3*f4; - f8 = heapFloat[(r3+11)]; - f9 = heapFloat[(r1+86)]; - f10 = heapFloat[(r3+7)]; - f11 = heapFloat[(r3+3)]; - f2 = f2+f5; - f5 = f10*f9; - r8 = r7 >> 2; - f0 = f0+f3; - f3 = f8*f9; - f2 = f2+f5; - f0 = f0+f3; - heap32[(r8)] = 0; - r9 = r6 << 2; - f3 = -f2; - heapFloat[(r8+1)] = f0; - r9 = (r7 + r9)|0; - heapFloat[(r8+2)] = f3; - r9 = r9 >> 2; - f1 = f6*f1; - f3 = f7*f4; - f4 = -f0; - heap32[(r8+3)] = 0; - heapFloat[(r9)] = f4; - f1 = f1+f3; - f3 = f11*f9; - r6 = r6 << 3; - f1 = f1+f3; - heap32[(r9+1)] = 0; - r8 = (r6 + r7)|0; - r6 = r6 | 4; - heapFloat[(r9+2)] = f1; - r6 = (r7 + r6)|0; - r7 = r8 >> 2; - heap32[(r9+3)] = 0; - r6 = r6 >> 2; - f3 = -f1; - heapFloat[(r7)] = f2; - heapFloat[(r6)] = f3; - heap32[(r7+2)] = 0; - heap32[(r7+3)] = 0; - r2 = r2 >> 2; - f3 = heapFloat[(r2+9)]; - f4 = heapFloat[(r1+100)]; - f5 = heapFloat[(r2+10)]; - f6 = heapFloat[(r1+101)]; - f3 = f3*f4; - f5 = f5*f6; - f7 = heapFloat[(r2+11)]; - f8 = heapFloat[(r1+102)]; - r6 = heap32[(r5+6)]; - f9 = heapFloat[(r2+5)]; - f10 = heapFloat[(r2+6)]; - f11 = heapFloat[(r2+7)]; - f12 = heapFloat[(r2+1)]; - f13 = heapFloat[(r2+2)]; - f14 = heapFloat[(r2+3)]; - r7 = heap32[(r5+5)]; - f3 = f3+f5; - f5 = f7*f8; - f3 = f3+f5; - r8 = r7 >> 2; - f5 = f9*f4; - f7 = f10*f6; - f5 = f5+f7; - f7 = f11*f8; - f9 = -f3; - heap32[(r8)] = 0; - f5 = f5+f7; - r9 = r6 << 2; - heapFloat[(r8+1)] = f9; - r9 = (r7 + r9)|0; - heapFloat[(r8+2)] = f5; - f4 = f12*f4; - f6 = f13*f6; - f4 = f4+f6; - f6 = f14*f8; - r9 = r9 >> 2; - heap32[(r8+3)] = 0; - f4 = f4+f6; - heapFloat[(r9)] = f3; - r6 = r6 << 3; - f6 = -f4; - heap32[(r9+1)] = 0; - r8 = (r6 + r7)|0; - r6 = r6 | 4; - heapFloat[(r9+2)] = f6; - r6 = (r7 + r6)|0; - r7 = r8 >> 2; - f6 = -f5; - heap32[(r9+3)] = 0; - r6 = r6 >> 2; - heapFloat[(r7)] = f6; - heapFloat[(r6)] = f4; - heap32[(r7+2)] = 0; - heap32[(r7+3)] = 0; - r6 = heapU8[r0+580]; - r6 = r6 & 2; - if(r6 ==0) //_LBB581_4 -{ - r4 = (r4 + 4)|0; -} -else{ - r4 = (r0 + 588)|0; -} - f6 = heapFloat[(r2+13)]; - r4 = r4 >> 2; - f4 = f4+f6; - f1 = f4-f1; - f4 = heapFloat[(r3+13)]; - f6 = heapFloat[(r4)]; - f7 = heapFloat[(r5)]; - r4 = heap32[(r5+7)]; - f6 = f7*f6; - f1 = f1-f4; - r4 = r4 >> 2; - f1 = f1*f6; - heapFloat[(r4)] = f1; - r4 = heap32[(r5+9)]; - r4 = r4 >> 2; - heap32[(r4)] = -8388609; - r4 = heap32[(r5+10)]; - r4 = r4 >> 2; - heap32[(r4)] = 2139095039; - r4 = heapU8[r0+580]; - r4 = r4 & 1; -if(!(r4 ==0)) //_LBB581_7 -{ - r4 = heap32[(r5+8)]; - r4 = r4 >> 2; - heap32[(r4)] = heap32[(r1+146)]; -} - f1 = heapFloat[(r2+14)]; - r4 = heap32[(r5+6)]; - f1 = f5+f1; - r4 = r4 << 2; - r6 = heap32[(r5+7)]; - f4 = heapFloat[(r3+14)]; - f1 = f1-f2; - r4 = (r6 + r4)|0; - f1 = f1-f4; - r4 = r4 >> 2; - f1 = f1*f6; - heapFloat[(r4)] = f1; - r4 = heap32[(r5+6)]; - r6 = heap32[(r5+9)]; - r4 = r4 << 2; - r4 = (r6 + r4)|0; - r4 = r4 >> 2; - heap32[(r4)] = -8388609; - r4 = heap32[(r5+6)]; - r6 = heap32[(r5+10)]; - r4 = r4 << 2; - r4 = (r6 + r4)|0; - r4 = r4 >> 2; - heap32[(r4)] = 2139095039; - r4 = heapU8[r0+580]; - r4 = r4 & 1; -if(!(r4 ==0)) //_LBB581_25 -{ - r4 = heap32[(r5+6)]; - r6 = heap32[(r5+8)]; - r4 = r4 << 2; - r4 = (r6 + r4)|0; - r4 = r4 >> 2; - heap32[(r4)] = heap32[(r1+146)]; -} - f1 = heapFloat[(r2+15)]; - r2 = heap32[(r5+6)]; - f3 = f3+f1; - r2 = r2 << 3; - r4 = heap32[(r5+7)]; - f1 = heapFloat[(r3+15)]; - f0 = f3-f0; - r2 = (r4 + r2)|0; - f0 = f0-f1; - r2 = r2 >> 2; - f0 = f0*f6; - heapFloat[(r2)] = f0; - r2 = heap32[(r5+6)]; - r4 = heap32[(r5+9)]; - r2 = r2 << 3; - r2 = (r4 + r2)|0; - r2 = r2 >> 2; - heap32[(r2)] = -8388609; - r2 = heap32[(r5+6)]; - r4 = heap32[(r5+10)]; - r2 = r2 << 3; - r2 = (r4 + r2)|0; - r2 = r2 >> 2; - heap32[(r2)] = 2139095039; - r2 = heapU8[r0+580]; - r2 = r2 & 1; -if(!(r2 ==0)) //_LBB581_8 -{ - r2 = heap32[(r5+6)]; - r4 = heap32[(r5+8)]; - r2 = r2 << 3; - r2 = (r4 + r2)|0; - r2 = r2 >> 2; - heap32[(r2)] = heap32[(r1+146)]; -} - r2 = heap32[(r5+6)]; - r4 = (r2 * 3)|0; - r6 = heapU8[r0+514]; -_16: do { - if(r6 !=0) //_LBB581_10 -{ - f0 = heapFloat[(r1+111)]; - r6 = heap32[(r5+3)]; - r7 = heap32[(r5+5)]; - f3 = heapFloat[(r1+108)]; -if(!(f3 >=f0)) //_LBB581_13 -{ - f3 = heapFloat[(r1+109)]; -if(!(f3 >=f0)) //_LBB581_13 -{ - f0 = heapFloat[(r3+1)]; - f3 = heapFloat[(r1+73)]; - f6 = heapFloat[(r3+2)]; - f1 = heapFloat[(r1+77)]; - r8 = (r4 + 1)|0; - f2 = heapFloat[(r3+5)]; - f4 = heapFloat[(r3+6)]; - r9 = r4 << 2; - f5 = f3*f0; - f7 = f1*f6; - f8 = heapFloat[(r3+3)]; - f9 = heapFloat[(r1+81)]; - f10 = heapFloat[(r1+74)]; - f11 = heapFloat[(r3+9)]; - f12 = heapFloat[(r1+78)]; - f13 = heapFloat[(r3+10)]; - r10 = (r4 + 2)|0; - r8 = r8 << 2; - r11 = (r6 + r9)|0; - f14 = heapFloat[(r3+11)]; - f15 = heapFloat[(r1+82)]; - f16 = heapFloat[(r3+7)]; - f17 = f3*f2; - f18 = f1*f4; - f5 = f5+f7; - f7 = f9*f8; - r2 = (r2 + r4)|0; - r3 = r10 << 2; - r4 = (r6 + r8)|0; - f5 = f5+f7; - f3 = f3*f11; - f1 = f1*f13; - f7 = f17+f18; - f17 = f9*f16; - r10 = r11 >> 2; - r11 = (r2 + 1)|0; - r12 = r2 << 2; - r13 = (r6 + r3)|0; - f7 = f7+f17; - f0 = f10*f0; - f6 = f12*f6; - f3 = f3+f1; - f1 = f9*f14; - r4 = r4 >> 2; - heapFloat[(r10)] = f5; - r10 = (r2 + 2)|0; - r11 = r11 << 2; - r14 = (r6 + r12)|0; - f3 = f3+f1; - f1 = f10*f2; - f2 = f12*f4; - f0 = f0+f6; - f6 = f15*f8; - r13 = r13 >> 2; - heapFloat[(r4)] = f7; - r4 = r10 << 2; - r10 = (r6 + r11)|0; - f0 = f0+f6; - f6 = f10*f11; - f4 = f12*f13; - f1 = f1+f2; - f2 = f15*f16; - r14 = r14 >> 2; - heapFloat[(r13)] = f3; - r6 = (r6 + r4)|0; - f1 = f1+f2; - f6 = f6+f4; - f2 = f15*f14; - r10 = r10 >> 2; - heapFloat[(r14)] = f0; - r13 = (r7 + r9)|0; - f6 = f6+f2; - r6 = r6 >> 2; - heapFloat[(r10)] = f1; - r8 = (r7 + r8)|0; - r10 = r13 >> 2; - f2 = -f5; - heapFloat[(r6)] = f6; - r3 = (r7 + r3)|0; - r6 = r8 >> 2; - f4 = -f7; - heapFloat[(r10)] = f2; - r8 = (r7 + r12)|0; - r3 = r3 >> 2; - f2 = -f3; - heapFloat[(r6)] = f4; - r6 = (r7 + r11)|0; - r8 = r8 >> 2; - f4 = -f0; - heapFloat[(r3)] = f2; - r3 = (r7 + r4)|0; - r4 = r6 >> 2; - f2 = -f1; - heapFloat[(r8)] = f4; - r3 = r3 >> 2; - f4 = -f6; - heapFloat[(r4)] = f2; - heapFloat[(r3)] = f4; - f2 = heapFloat[(r1+112)]; - f4 = heapFloat[(r1+113)]; - f8 = heapFloat[(r1+114)]; - f2 = f2*f5; - f4 = f4*f7; - r3 = heap32[(r5+7)]; - f2 = f2+f4; - f3 = f8*f3; - f4 = heapFloat[(r5)]; - f5 = heapFloat[(r1+106)]; - r3 = (r3 + r9)|0; - f3 = f2+f3; - f2 = f4*f5; - r3 = r3 >> 2; - f3 = f3*f2; - heapFloat[(r3)] = f3; - f3 = heapFloat[(r1+112)]; - f4 = heapFloat[(r1+113)]; - f5 = heapFloat[(r1+114)]; - f0 = f3*f0; - f3 = f4*f1; - r3 = heap32[(r5+7)]; - f0 = f0+f3; - f3 = f5*f6; - r3 = (r3 + r12)|0; - f0 = f0+f3; - r3 = r3 >> 2; - f0 = f0*f2; - heapFloat[(r3)] = f0; - r3 = heap32[(r5+9)]; - r3 = (r3 + r9)|0; - r3 = r3 >> 2; - heap32[(r3)] = -8388609; - r3 = heap32[(r5+10)]; - r3 = (r3 + r9)|0; - r3 = r3 >> 2; - heap32[(r3)] = 2139095039; - r3 = heap32[(r5+9)]; - r3 = (r3 + r12)|0; - r3 = r3 >> 2; - heap32[(r3)] = -8388609; - r3 = heap32[(r5+10)]; - r3 = (r3 + r12)|0; - r3 = r3 >> 2; - heap32[(r3)] = 2139095039; - r3 = heap32[(r5+6)]; - r4 = (r3 + r2)|0; -break _16; -} -} - r2 = (r4 + 1)|0; - r3 = r4 << 2; - f0 = heapFloat[(r1+106)]; - f3 = heapFloat[(r1+112)]; - r8 = (r4 + 2)|0; - r2 = r2 << 2; - r9 = (r6 + r3)|0; - f3 = f3*f0; - f6 = heapFloat[(r1+114)]; - f1 = heapFloat[(r1+113)]; - r8 = r8 << 2; - r10 = (r6 + r2)|0; - f1 = f1*f0; - f3 = f3*f0; - r9 = r9 >> 2; - r6 = (r6 + r8)|0; - f6 = f6*f0; - f1 = f1*f0; - r10 = r10 >> 2; - heapFloat[(r9)] = f3; - r9 = (r7 + r3)|0; - f0 = f6*f0; - r6 = r6 >> 2; - heapFloat[(r10)] = f1; - r2 = (r7 + r2)|0; - r9 = r9 >> 2; - f3 = -f3; - heapFloat[(r6)] = f0; - r6 = (r7 + r8)|0; - r2 = r2 >> 2; - f6 = -f1; - heapFloat[(r9)] = f3; - r6 = r6 >> 2; - f0 = -f0; - heapFloat[(r2)] = f6; - heapFloat[(r6)] = f0; - r2 = heap32[(r5+7)]; - f0 = heapFloat[(r5)]; - f3 = heapFloat[(r1+105)]; - r2 = (r2 + r3)|0; - f6 = heapFloat[(r1+123)]; - f0 = f0*f3; - r2 = r2 >> 2; - f0 = f6*f0; - heapFloat[(r2)] = f0; - r2 = heapU8[r0+580]; - r2 = r2 & 4; -if(!(r2 ==0)) //_LBB581_15 -{ - r2 = heap32[(r5+8)]; - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - heap32[(r2)] = heap32[(r1+148)]; -} - r2 = heap32[(r5+9)]; - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - heap32[(r2)] = 0; - r2 = heap32[(r5+10)]; - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - heap32[(r2)] = 2139095039; - r2 = heap32[(r5+6)]; - r4 = (r2 + r4)|0; -} -} while(0); - r2 = heapU8[r0+513]; - if(r2 ==0) //_LBB581_28 -{ - return; -} -else{ - r2 = (r4 + 1)|0; - r3 = r4 << 2; - r6 = heap32[(r5+3)]; - f0 = heapFloat[(r1+106)]; - f3 = heapFloat[(r1+116)]; - r4 = (r4 + 2)|0; - r2 = r2 << 2; - r7 = heap32[(r5+5)]; - r8 = (r6 + r3)|0; - f3 = f3*f0; - f6 = heapFloat[(r1+118)]; - f1 = heapFloat[(r1+117)]; - r4 = r4 << 2; - r9 = (r6 + r2)|0; - f1 = f1*f0; - f3 = f3*f0; - r8 = r8 >> 2; - r6 = (r6 + r4)|0; - f6 = f6*f0; - f1 = f1*f0; - r9 = r9 >> 2; - heapFloat[(r8)] = f3; - r8 = (r7 + r3)|0; - f0 = f6*f0; - r6 = r6 >> 2; - heapFloat[(r9)] = f1; - r2 = (r7 + r2)|0; - r8 = r8 >> 2; - f3 = -f3; - heapFloat[(r6)] = f0; - r4 = (r7 + r4)|0; - r2 = r2 >> 2; - f6 = -f1; - heapFloat[(r8)] = f3; - r4 = r4 >> 2; - f0 = -f0; - heapFloat[(r2)] = f6; - heapFloat[(r4)] = f0; - r2 = heap32[(r5+7)]; - f0 = heapFloat[(r5)]; - f3 = heapFloat[(r1+105)]; - r2 = (r2 + r3)|0; - f6 = heapFloat[(r1+124)]; - f0 = f0*f3; - r2 = r2 >> 2; - f0 = f6*f0; - heapFloat[(r2)] = f0; - r0 = heapU8[r0+580]; - r0 = r0 & 4; -if(!(r0 ==0)) //_LBB581_19 -{ - r0 = heap32[(r5+8)]; - r0 = (r0 + r3)|0; - r0 = r0 >> 2; - heap32[(r0)] = heap32[(r1+148)]; -} - f0 = heapFloat[(r1+110)]; - f3 = 0; - if(f0 <=f3) //_LBB581_24 -{ - r0 = heap32[(r5+9)]; - r0 = (r0 + r3)|0; - r0 = r0 >> 2; - heap32[(r0)] = -8388609; -} -else{ - r0 = heap32[(r5+9)]; - f0 = heapFloat[(r1+124)]; - if(f0 <=f3) //_LBB581_23 -{ - r0 = (r0 + r3)|0; - r0 = r0 >> 2; - heap32[(r0)] = -8388609; - r0 = heap32[(r5+10)]; - r3 = (r0 + r3)|0; - r3 = r3 >> 2; - heap32[(r3)] = 0; - return; -} -else{ - r0 = (r0 + r3)|0; - r0 = r0 >> 2; - heap32[(r0)] = 0; -} -} - r0 = heap32[(r5+10)]; - r0 = (r0 + r3)|0; - r0 = r0 >> 2; - heap32[(r0)] = 2139095039; - return; -} -} -else{ - r0 = _2E_str1149; - r1 = _2E_str24; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 126; - _assert(i7); -} -} - -function _ZN21btConeTwistConstraint23solveConstraintObsoleteER11btRigidBodyS1_f(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -624;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+515]; -if(!(r1 ==0)) //_LBB582_52 -{ - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - f0 = heapFloat[(fp+3)]; - heapFloat[(fp+-117)] = f0; - r3 = r0 >> 2; - r4 = heapU8[r0+512]; -if(!(r4 !=0)) //_LBB582_8 -{ - r4 = heap32[(r3+5)]; - r5 = heap32[(r3+6)]; - r4 = r4 >> 2; - r5 = r5 >> 2; - f0 = heapFloat[(r4+9)]; - f1 = heapFloat[(r3+84)]; - f2 = heapFloat[(r4+5)]; - f3 = heapFloat[(r4+1)]; - f4 = heapFloat[(r4+10)]; - f5 = heapFloat[(r3+85)]; - f6 = heapFloat[(r4+6)]; - f7 = heapFloat[(r4+2)]; - f8 = heapFloat[(r5+9)]; - f9 = heapFloat[(r3+100)]; - f10 = heapFloat[(r5+5)]; - f11 = heapFloat[(r5+1)]; - f12 = heapFloat[(r5+10)]; - f13 = heapFloat[(r3+101)]; - f14 = heapFloat[(r5+6)]; - f15 = heapFloat[(r5+2)]; - f0 = f0*f1; - f4 = f4*f5; - f16 = heapFloat[(r4+11)]; - f17 = heapFloat[(r3+86)]; - f18 = heapFloat[(r4+7)]; - f19 = heapFloat[(r4+3)]; - f2 = f2*f1; - f6 = f6*f5; - f1 = f3*f1; - f3 = f7*f5; - f5 = f8*f9; - f7 = f12*f13; - f8 = heapFloat[(r5+11)]; - f12 = heapFloat[(r3+102)]; - f20 = heapFloat[(r5+7)]; - f21 = heapFloat[(r5+3)]; - f10 = f10*f9; - f14 = f14*f13; - f9 = f11*f9; - f11 = f15*f13; - f0 = f0+f4; - f4 = f16*f17; - f2 = f2+f6; - f6 = f18*f17; - f1 = f1+f3; - f3 = f19*f17; - f5 = f5+f7; - f7 = f8*f12; - f8 = f10+f14; - f10 = f20*f12; - f9 = f9+f11; - f11 = f21*f12; - f12 = heapFloat[(r4+15)]; - f0 = f0+f4; - f4 = heapFloat[(r4+14)]; - f2 = f2+f6; - f6 = heapFloat[(r4+13)]; - f1 = f1+f3; - f3 = heapFloat[(r5+15)]; - f5 = f5+f7; - f7 = heapFloat[(r5+14)]; - f8 = f8+f10; - f10 = heapFloat[(r5+13)]; - f9 = f9+f11; - f0 = f0+f12; - heapFloat[(fp+-119)] = f0; - f0 = f2+f4; - heapFloat[(fp+-121)] = f0; - f1 = f1+f6; - heapFloat[(fp+-120)] = f1; - f0 = f5+f3; - heapFloat[(fp+-122)] = f0; - f0 = f8+f7; - heapFloat[(fp+-123)] = f0; - f1 = f9+f10; - r4 = r1 >> 2; - r5 = r2 >> 2; - f2 = heapFloat[(r4+80)]; - f5 = heapFloat[(r4+130)]; - f8 = heapFloat[(r5+80)]; - f9 = heapFloat[(r5+130)]; - f11 = heapFloat[(r4+81)]; - f13 = heapFloat[(r4+131)]; - f14 = heapFloat[(r4+82)]; - f15 = heapFloat[(r4+132)]; - f16 = heapFloat[(r5+81)]; - f17 = heapFloat[(r5+131)]; - f18 = heapFloat[(r5+82)]; - f19 = heapFloat[(r5+132)]; - f20 = heapFloat[(fp+-120)]; - f6 = f20-f6; - f10 = f1-f10; - f11 = f11+f13; - f0 = heapFloat[(fp+-119)]; - f12 = f0-f12; - f2 = f2+f5; - f0 = heapFloat[(fp+-121)]; - f4 = f0-f4; - f5 = f14+f15; - f13 = f16+f17; - f0 = heapFloat[(fp+-122)]; - f3 = f0-f3; - f8 = f8+f9; - f0 = heapFloat[(fp+-123)]; - f7 = f0-f7; - f9 = f18+f19; - f14 = heapFloat[(r4+78)]; - f15 = heapFloat[(r4+128)]; - f16 = f2*f4; - f17 = f11*f6; - f18 = heapFloat[(r5+78)]; - f19 = heapFloat[(r5+128)]; - f21 = f8*f7; - f22 = f13*f10; - f23 = heapFloat[(r4+77)]; - f24 = heapFloat[(r4+127)]; - f25 = f5*f6; - f2 = f2*f12; - f26 = heapFloat[(r5+77)]; - f27 = heapFloat[(r5+127)]; - f28 = f9*f10; - f8 = f8*f3; - f29 = heapFloat[(r4+76)]; - f30 = heapFloat[(r4+126)]; - f11 = f11*f12; - f5 = f5*f4; - f0 = heapFloat[(r5+76)]; - f20 = heapFloat[(r5+126)]; - f13 = f13*f3; - f9 = f9*f7; - f14 = f14+f15; - f15 = f16-f17; - f16 = f18+f19; - f17 = f21-f22; - f18 = f23+f24; - f2 = f25-f2; - f19 = f26+f27; - f8 = f28-f8; - f21 = f29+f30; - f5 = f11-f5; - f0 = f0+f20; - f9 = f13-f9; - f11 = f14+f15; - f13 = f16+f17; - f2 = f18+f2; - f8 = f19+f8; - f5 = f21+f5; - f0 = f0+f9; - f9 = f11-f13; - f2 = f2-f8; - heapFloat[(fp+-118)] = f2; - f0 = f5-f0; - f2 = heapFloat[(fp+-119)]; - f5 = heapFloat[(fp+-122)]; - f2 = f2-f5; - f5 = heapFloat[(fp+-121)]; - f8 = heapFloat[(fp+-123)]; - f5 = f5-f8; - f8 = heapFloat[(fp+-120)]; - f1 = f8-f1; - r6 = 0; -_5: while(true){ - r7 = (r6 * -21)|0; - r8 = r7 << 2; - r8 = (r0 + r8)|0; - r8 = r8 >> 2; - f8 = heapFloat[(r8+9)]; - f11 = heapFloat[(r8+10)]; - f13 = heapFloat[(r8+11)]; - f14 = f1*f8; - f15 = f5*f11; - f14 = f14+f15; - f15 = f2*f13; - f14 = f14+f15; - f15 = -0.30000001192092896; - f16 = f8*f0; - f17 = heapFloat[(fp+-118)]; - f17 = f11*f17; - f14 = f14*f15; - f15 = f16+f17; - f16 = f13*f9; - f17 = 1; - f18 = heapFloat[(r8+29)]; - f19 = heapFloat[(fp+-117)]; - f14 = f14/f19; - f17 = f17/f18; - f15 = f15+f16; - f14 = f14*f17; - f15 = f15*f17; - f14 = f14-f15; - f15 = heapFloat[(r3+7)]; - f15 = f15+f14; - heapFloat[(r3+7)] = f15; - f15 = heapFloat[(r4+84)]; - f16 = 0; -if(!(f15 ==f16)) //_LBB582_5 -{ - r9 = heap32[(r3+5)]; - r9 = r9 >> 2; - f15 = f6*f11; - f17 = f4*f8; - f18 = f12*f8; - f19 = f6*f13; - f20 = f4*f13; - f21 = f12*f11; - f15 = f15-f17; - f17 = f18-f19; - f18 = f20-f21; - f19 = heapFloat[(r9+84)]; - f20 = f8*f19; - f20 = f20*f14; - f21 = heapFloat[(r4+126)]; - f22 = heapFloat[(r9+65)]; - f23 = heapFloat[(r9+64)]; - f24 = heapFloat[(r9+69)]; - f25 = heapFloat[(r9+68)]; - f26 = heapFloat[(r9+73)]; - f27 = heapFloat[(r9+72)]; - f28 = heapFloat[(r9+66)]; - f29 = heapFloat[(r9+70)]; - f30 = heapFloat[(r9+74)]; - f20 = f21+f20; - f21 = f11*f19; - heapFloat[(r4+126)] = f20; - f20 = f21*f14; - f21 = heapFloat[(r4+127)]; - f20 = f21+f20; - f19 = f13*f19; - heapFloat[(r4+127)] = f20; - f19 = f19*f14; - f20 = heapFloat[(r4+128)]; - f19 = f20+f19; - heapFloat[(r4+128)] = f19; - f19 = f23*f18; - f20 = f22*f17; - f21 = heapFloat[(r4+134)]; - f19 = f19+f20; - f20 = f28*f15; - f19 = f19+f20; - f20 = f21*f14; - f21 = heapFloat[(r4+136)]; - f22 = heapFloat[(r4+135)]; - f23 = heapFloat[(r4+130)]; - f19 = f19*f20; - f20 = f25*f18; - f24 = f24*f17; - f20 = f20+f24; - f24 = f29*f15; - f19 = f23+f19; - heapFloat[(r4+130)] = f19; - f19 = f20+f24; - f20 = f22*f14; - f18 = f27*f18; - f17 = f26*f17; - f19 = f19*f20; - f20 = heapFloat[(r4+131)]; - f19 = f20+f19; - f17 = f18+f17; - f15 = f30*f15; - heapFloat[(r4+131)] = f19; - f15 = f17+f15; - f17 = f21*f14; - f15 = f15*f17; - f17 = heapFloat[(r4+132)]; - f15 = f17+f15; - heapFloat[(r4+132)] = f15; -} - f15 = heapFloat[(r5+84)]; -if(!(f15 ==f16)) //_LBB582_7 -{ - f15 = f10*f11; - f16 = f7*f8; - f8 = f3*f8; - f17 = f10*f13; - f13 = f7*f13; - f11 = f3*f11; - f15 = f15-f16; - f8 = f8-f17; - f11 = f13-f11; - r9 = heap32[(r3+6)]; - r9 = r9 >> 2; - f13 = -f14; - f14 = heapFloat[(r9+84)]; - r10 = r7 << 2; - r10 = (r0 + r10)|0; - r10 = r10 >> 2; - r7 = r7 << 2; - r7 = (r0 + r7)|0; - f16 = heapFloat[(r10+9)]; - r7 = r7 >> 2; - f16 = f16*f14; - f17 = heapFloat[(r7+10)]; - f18 = heapFloat[(r8+11)]; - f16 = f16*f13; - f19 = heapFloat[(r5+126)]; - f20 = heapFloat[(r9+65)]; - f21 = heapFloat[(r9+64)]; - f22 = heapFloat[(r9+69)]; - f23 = heapFloat[(r9+68)]; - f24 = heapFloat[(r9+73)]; - f25 = heapFloat[(r9+72)]; - f26 = heapFloat[(r9+66)]; - f27 = heapFloat[(r9+70)]; - f28 = heapFloat[(r9+74)]; - f16 = f19+f16; - f17 = f17*f14; - heapFloat[(r5+126)] = f16; - f16 = f17*f13; - f17 = heapFloat[(r5+127)]; - f16 = f17+f16; - f14 = f18*f14; - heapFloat[(r5+127)] = f16; - f14 = f14*f13; - f16 = heapFloat[(r5+128)]; - f14 = f16+f14; - heapFloat[(r5+128)] = f14; - f14 = f21*f11; - f16 = f20*f8; - f17 = heapFloat[(r5+134)]; - f14 = f14+f16; - f16 = f26*f15; - f14 = f14+f16; - f16 = f17*f13; - f17 = heapFloat[(r5+136)]; - f18 = heapFloat[(r5+135)]; - f19 = heapFloat[(r5+130)]; - f14 = f14*f16; - f16 = f23*f11; - f20 = f22*f8; - f16 = f16+f20; - f20 = f27*f15; - f14 = f19+f14; - heapFloat[(r5+130)] = f14; - f14 = f16+f20; - f16 = f18*f13; - f11 = f25*f11; - f8 = f24*f8; - f14 = f14*f16; - f16 = heapFloat[(r5+131)]; - f14 = f16+f14; - f8 = f11+f8; - f11 = f28*f15; - heapFloat[(r5+131)] = f14; - f8 = f8+f11; - f11 = f17*f13; - f8 = f8*f11; - f11 = heapFloat[(r5+132)]; - f8 = f11+f8; - heapFloat[(r5+132)] = f8; -} - r6 = (r6 + -1)|0; -if(!(r6 !=-3)) //_LBB582_3 -{ -break _5; -} -} -} - r4 = heapU8[r0+540]; -_14: do { - if(r4 ==0) //_LBB582_29 -{ - f0 = heapFloat[(r3+107)]; - f1 = 1.1920928955078125e-007; - if(f0 <=f1) //_LBB582_35 -{ -break _14; -} -else{ - r4 = r2 >> 2; - r5 = r1 >> 2; - f0 = heapFloat[(r4+81)]; - f2 = heapFloat[(r4+131)]; - f3 = heapFloat[(r5+81)]; - f4 = heapFloat[(r5+131)]; - f5 = heapFloat[(r4+80)]; - f6 = heapFloat[(r4+130)]; - f7 = heapFloat[(r5+80)]; - f8 = heapFloat[(r5+130)]; - f9 = heapFloat[(r4+82)]; - f10 = heapFloat[(r4+132)]; - f11 = heapFloat[(r5+82)]; - f12 = heapFloat[(r5+132)]; - f0 = f0+f2; - f2 = f3+f4; - f3 = f5+f6; - f4 = f7+f8; - f0 = f0-f2; - f2 = f3-f4; - f3 = f9+f10; - f4 = f11+f12; - f3 = f3-f4; - f4 = f2*f2; - f5 = f0*f0; - f4 = f4+f5; - f5 = f3*f3; - f4 = f4+f5; - if(f4 <=f1) //_LBB582_35 -{ -break _14; -} -else{ - heapFloat[(g0)] = f4; - sqrtf(i7); - r6 = heap32[(r3+5)]; - r7 = heap32[(r3+6)]; - f4 = 1; - r6 = r6 >> 2; - r7 = r7 >> 2; - f1 = f4/f_g0; - f5 = heapFloat[(r6+64)]; - f6 = f2*f1; - f7 = heapFloat[(r6+65)]; - f8 = heapFloat[(r7+64)]; - f9 = heapFloat[(r7+65)]; - f10 = heapFloat[(r6+68)]; - f11 = f0*f1; - f12 = heapFloat[(r6+69)]; - f13 = heapFloat[(r7+68)]; - f14 = heapFloat[(r7+69)]; - f15 = heapFloat[(r6+66)]; - f16 = heapFloat[(r6+70)]; - f17 = heapFloat[(r7+66)]; - f18 = heapFloat[(r7+70)]; - f5 = f5*f6; - f10 = f10*f11; - f19 = heapFloat[(r6+72)]; - f1 = f3*f1; - f20 = heapFloat[(r6+73)]; - f21 = heapFloat[(r7+72)]; - f22 = heapFloat[(r7+73)]; - f7 = f7*f6; - f12 = f12*f11; - f8 = f8*f6; - f13 = f13*f11; - f9 = f9*f6; - f14 = f14*f11; - f23 = heapFloat[(r6+74)]; - f24 = heapFloat[(r7+74)]; - f5 = f5+f10; - f10 = f19*f1; - f7 = f7+f12; - f12 = f20*f1; - f15 = f15*f6; - f16 = f16*f11; - f8 = f8+f13; - f13 = f21*f1; - f9 = f9+f14; - f14 = f22*f1; - f17 = f17*f6; - f18 = f18*f11; - f5 = f5+f10; - f7 = f7+f12; - f8 = f8+f13; - f9 = f9+f14; - f10 = f15+f16; - f12 = f23*f1; - f13 = f17+f18; - f14 = f24*f1; - f10 = f10+f12; - f12 = f13+f14; - f5 = f6*f5; - f7 = f11*f7; - f6 = f6*f8; - f8 = f11*f9; - f5 = f5+f7; - f7 = f1*f10; - f6 = f6+f8; - f1 = f1*f12; - f5 = f5+f7; - f1 = f6+f1; - f1 = f5+f1; - f5 = heapFloat[(r3+107)]; - f1 = f4/f1; - f1 = f5*f1; - f0 = f0*f1; - f2 = f2*f1; - f1 = f3*f1; - f3 = f2*f2; - f5 = f0*f0; - f3 = f3+f5; - f5 = f1*f1; - f3 = f3+f5; - heapFloat[(g0)] = f3; - sqrtf(i7); - f3 = f_g0; - f4 = f4/f3; - f1 = f1*f4; - f0 = f0*f4; - f2 = f2*f4; - f4 = heapFloat[(r5+84)]; - f5 = 0; -if(!(f4 ==f5)) //_LBB582_33 -{ - r6 = heap32[(r3+5)]; - r6 = r6 >> 2; - f4 = f3*f5; - f6 = heapFloat[(r5+126)]; - f7 = heapFloat[(r6+65)]; - f8 = heapFloat[(r6+64)]; - f9 = heapFloat[(r6+69)]; - f10 = heapFloat[(r6+68)]; - f11 = heapFloat[(r6+73)]; - f12 = heapFloat[(r6+72)]; - f13 = heapFloat[(r6+66)]; - f14 = heapFloat[(r6+70)]; - f15 = heapFloat[(r6+74)]; - f6 = f6+f4; - heapFloat[(r5+126)] = f6; - f6 = heapFloat[(r5+127)]; - f6 = f6+f4; - heapFloat[(r5+127)] = f6; - f6 = heapFloat[(r5+128)]; - f4 = f6+f4; - heapFloat[(r5+128)] = f4; - f4 = f8*f2; - f6 = f7*f0; - f7 = heapFloat[(r5+134)]; - f4 = f4+f6; - f6 = f13*f1; - f4 = f4+f6; - f6 = f7*f3; - f7 = heapFloat[(r5+136)]; - f8 = heapFloat[(r5+135)]; - f13 = heapFloat[(r5+130)]; - f4 = f4*f6; - f6 = f10*f2; - f9 = f9*f0; - f6 = f6+f9; - f9 = f14*f1; - f4 = f13+f4; - heapFloat[(r5+130)] = f4; - f4 = f6+f9; - f6 = f8*f3; - f8 = f12*f2; - f9 = f11*f0; - f4 = f4*f6; - f6 = heapFloat[(r5+131)]; - f4 = f6+f4; - f6 = f8+f9; - f8 = f15*f1; - heapFloat[(r5+131)] = f4; - f4 = f6+f8; - f6 = f7*f3; - f4 = f4*f6; - f6 = heapFloat[(r5+132)]; - f4 = f6+f4; - heapFloat[(r5+132)] = f4; -} - f4 = heapFloat[(r4+84)]; - if(f4 ==f5) //_LBB582_35 -{ -break _14; -} -else{ - f4 = -f3; - r5 = heap32[(r3+6)]; - r5 = r5 >> 2; - f5 = -0; - f3 = f3*f5; - f5 = heapFloat[(r4+126)]; - f6 = heapFloat[(r5+65)]; - f7 = heapFloat[(r5+64)]; - f8 = heapFloat[(r5+69)]; - f9 = heapFloat[(r5+68)]; - f10 = heapFloat[(r5+73)]; - f11 = heapFloat[(r5+72)]; - f12 = heapFloat[(r5+66)]; - f13 = heapFloat[(r5+70)]; - f14 = heapFloat[(r5+74)]; - f5 = f5+f3; - heapFloat[(r4+126)] = f5; - f5 = heapFloat[(r4+127)]; - f5 = f5+f3; - heapFloat[(r4+127)] = f5; - f5 = heapFloat[(r4+128)]; - f3 = f5+f3; - heapFloat[(r4+128)] = f3; - f3 = f7*f2; - f5 = f6*f0; - f3 = f3+f5; - f5 = f12*f1; - f6 = heapFloat[(r4+134)]; - f3 = f3+f5; - f5 = f6*f4; - f6 = heapFloat[(r4+136)]; - f7 = heapFloat[(r4+135)]; - f12 = heapFloat[(r4+130)]; - f3 = f3*f5; - f5 = f9*f2; - f8 = f8*f0; - f5 = f5+f8; - f8 = f13*f1; - f3 = f12+f3; - heapFloat[(r4+130)] = f3; - f3 = f5+f8; - f5 = f7*f4; - f2 = f11*f2; - f0 = f10*f0; - f3 = f3*f5; - f5 = heapFloat[(r4+131)]; - f3 = f5+f3; - f0 = f2+f0; - f1 = f14*f1; - heapFloat[(r4+131)] = f3; - f0 = f0+f1; - f1 = f6*f4; - f0 = f0*f1; - f1 = heapFloat[(r4+132)]; - f0 = f1+f0; - heapFloat[(r4+132)] = f0; -} -} -} -} -else{ - r4 = heap32[(r3+5)]; - r5 = sp + -112; - r4 = r4 >> 2; - r6 = r5 >> 2; - heap32[(fp+-28)] = heap32[(r4+1)]; - heap32[(r6+1)] = heap32[(r4+2)]; - heap32[(r6+2)] = heap32[(r4+3)]; - heap32[(r6+3)] = heap32[(r4+4)]; - heap32[(r6+4)] = heap32[(r4+5)]; - heap32[(r6+5)] = heap32[(r4+6)]; - heap32[(r6+6)] = heap32[(r4+7)]; - heap32[(r6+7)] = heap32[(r4+8)]; - heap32[(r6+8)] = heap32[(r4+9)]; - heap32[(r6+9)] = heap32[(r4+10)]; - heap32[(r6+10)] = heap32[(r4+11)]; - heap32[(r6+11)] = heap32[(r4+12)]; - heap32[(r6+12)] = heap32[(r4+13)]; - heap32[(r6+13)] = heap32[(r4+14)]; - heap32[(r6+14)] = heap32[(r4+15)]; - heap32[(r6+15)] = heap32[(r4+16)]; - r4 = heap32[(r3+6)]; - r6 = sp + -176; - r4 = r4 >> 2; - r7 = r6 >> 2; - heap32[(fp+-44)] = heap32[(r4+1)]; - heap32[(r7+1)] = heap32[(r4+2)]; - heap32[(r7+2)] = heap32[(r4+3)]; - heap32[(r7+3)] = heap32[(r4+4)]; - heap32[(r7+4)] = heap32[(r4+5)]; - heap32[(r7+5)] = heap32[(r4+6)]; - heap32[(r7+6)] = heap32[(r4+7)]; - heap32[(r7+7)] = heap32[(r4+8)]; - heap32[(r7+8)] = heap32[(r4+9)]; - heap32[(r7+9)] = heap32[(r4+10)]; - heap32[(r7+10)] = heap32[(r4+11)]; - heap32[(r7+11)] = heap32[(r4+12)]; - heap32[(r7+12)] = heap32[(r4+13)]; - heap32[(r7+13)] = heap32[(r4+14)]; - heap32[(r7+14)] = heap32[(r4+15)]; - r8 = r1 >> 2; - heap32[(r7+15)] = heap32[(r4+16)]; - f0 = heapFloat[(r8+82)]; - f1 = heapFloat[(r8+132)]; - f2 = heapFloat[(r8+81)]; - f3 = heapFloat[(r8+131)]; - f4 = heapFloat[(r8+80)]; - f5 = heapFloat[(r8+130)]; - r4 = sp + -192; - f4 = f4+f5; - r7 = r4 >> 2; - f2 = f2+f3; - heapFloat[(fp+-48)] = f4; - f0 = f0+f1; - heapFloat[(r7+1)] = f2; - heapFloat[(r7+2)] = f0; - r9 = r2 >> 2; - heap32[(r7+3)] = 0; - f0 = heapFloat[(r9+82)]; - f1 = heapFloat[(r9+132)]; - f2 = heapFloat[(r9+81)]; - f3 = heapFloat[(r9+131)]; - f4 = heapFloat[(r9+80)]; - f5 = heapFloat[(r9+130)]; - r10 = sp + -208; - f4 = f4+f5; - f2 = f2+f3; - heapFloat[(fp+-52)] = f4; - r11 = r10 >> 2; - f0 = f0+f1; - heapFloat[(r11+1)] = f2; - heapFloat[(r11+2)] = f0; - r12 = sp + -272; - heap32[(r11+3)] = 0; - r13 = r12 >> 2; - heap32[(fp+-68)] = 1065353216; - heap32[(r13+1)] = 0; - heap32[(r13+2)] = 0; - heap32[(r13+3)] = 0; - heap32[(r13+4)] = 0; - heap32[(r13+5)] = 1065353216; - heap32[(r13+6)] = 0; - heap32[(r13+7)] = 0; - heap32[(r13+8)] = 0; - heap32[(r13+9)] = 0; - heap32[(r13+10)] = 1065353216; - heap32[(r13+11)] = 0; - heap32[(r13+12)] = 0; - heap32[(r13+13)] = 0; - heap32[(r13+14)] = 0; - heap32[(r13+15)] = 0; - heap32[(g0)] = r5; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 0; - heap32[(g0+3)] = 0; - heap32[(g0+4)] = r4; - f0 = heapFloat[(fp+-117)]; - heapFloat[(g0+5)] = f0; - heap32[(g0+6)] = r12; - r4 = sp + -336; - _ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7); - r12 = r4 >> 2; - heap32[(fp+-84)] = 1065353216; - heap32[(r12+1)] = 0; - heap32[(r12+2)] = 0; - heap32[(r12+3)] = 0; - heap32[(r12+4)] = 0; - heap32[(r12+5)] = 1065353216; - heap32[(r12+6)] = 0; - heap32[(r12+7)] = 0; - heap32[(r12+8)] = 0; - heap32[(r12+9)] = 0; - heap32[(r12+10)] = 1065353216; - heap32[(r12+11)] = 0; - heap32[(r12+12)] = 0; - heap32[(r12+13)] = 0; - heap32[(r12+14)] = 0; - heap32[(r12+15)] = 0; - heap32[(g0)] = r6; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 0; - heap32[(g0+3)] = 0; - heap32[(g0+4)] = r10; - heapFloat[(g0+5)] = f0; - heap32[(g0+6)] = r4; - _ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7); - f1 = heapFloat[(r3+136)]; - f2 = heapFloat[(r3+137)]; - f3 = heapFloat[(r3+138)]; - f4 = f1*f1; - f5 = f2*f2; - f6 = heapFloat[(r3+139)]; - f4 = f4+f5; - f5 = f3*f3; - f4 = f4+f5; - f5 = f6*f6; - f7 = 2; - f4 = f4+f5; - f4 = f7/f4; - f5 = f3*f4; - f7 = f2*f4; - f4 = f1*f4; - f3 = f3*f5; - f8 = f1*f4; - f9 = f2*f7; - f0 = 1; - heapFloat[(fp+-118)] = f0; - f10 = f9+f3; - f3 = f8+f3; - f11 = f1*f7; - f12 = f6*f5; - f10 = f0-f10; - f0 = heapFloat[(r3+92)]; - heapFloat[(fp+-131)] = f0; - f13 = f11-f12; - f0 = heapFloat[(r3+88)]; - heapFloat[(fp+-120)] = f0; - f11 = f11+f12; - f12 = heapFloat[(r3+93)]; - heapFloat[(fp+-132)] = f12; - f0 = heapFloat[(fp+-118)]; - f3 = f0-f3; - f0 = heapFloat[(r3+89)]; - heapFloat[(fp+-121)] = f0; - f1 = f1*f5; - f7 = f6*f7; - f2 = f2*f5; - f4 = f6*f4; - f5 = f1+f7; - f6 = heapFloat[(r3+96)]; - heapFloat[(fp+-129)] = f6; - f12 = f2-f4; - f14 = heapFloat[(r3+97)]; - heapFloat[(fp+-136)] = f14; - f8 = f8+f9; - f0 = heapFloat[(fp+-120)]; - f9 = f10*f0; - f0 = heapFloat[(fp+-121)]; - f15 = f11*f0; - f0 = heapFloat[(fp+-120)]; - f16 = f13*f0; - f0 = heapFloat[(fp+-121)]; - f17 = f3*f0; - f0 = heapFloat[(fp+-131)]; - f18 = f10*f0; - f19 = heapFloat[(fp+-132)]; - f20 = f11*f19; - f21 = f13*f0; - f22 = f3*f19; - f1 = f1-f7; - f7 = heapFloat[(r3+94)]; - heapFloat[(fp+-137)] = f7; - f2 = f2+f4; - f0 = heapFloat[(r3+90)]; - heapFloat[(fp+-133)] = f0; - f0 = heapFloat[(fp+-118)]; - f4 = f0-f8; - f6 = heapFloat[(r3+98)]; - heapFloat[(fp+-130)] = f6; - f7 = f9+f15; - f0 = heapFloat[(fp+-133)]; - f8 = f1*f0; - f9 = f16+f17; - f14 = f2*f0; - f0 = heapFloat[(fp+-120)]; - f15 = f5*f0; - f0 = heapFloat[(fp+-121)]; - f16 = f12*f0; - f17 = f18+f20; - f18 = heapFloat[(fp+-137)]; - f19 = f1*f18; - f20 = f21+f22; - f21 = f2*f18; - f0 = heapFloat[(fp+-131)]; - f22 = f5*f0; - f23 = heapFloat[(fp+-132)]; - f24 = f12*f23; - f6 = heapFloat[(fp+-129)]; - f10 = f10*f6; - f25 = heapFloat[(fp+-136)]; - f11 = f11*f25; - f13 = f13*f6; - f3 = f3*f25; - f0 = f7+f8; - heapFloat[(fp+-124)] = f0; - f6 = heapFloat[(r3+72)]; - f7 = f17+f19; - heapFloat[(fp+-134)] = f7; - f0 = f9+f14; - heapFloat[(fp+-125)] = f0; - f7 = heapFloat[(r3+73)]; - f8 = f20+f21; - heapFloat[(fp+-139)] = f8; - f9 = f15+f16; - f0 = heapFloat[(fp+-133)]; - f14 = f4*f0; - f15 = f22+f24; - f16 = f4*f18; - f10 = f10+f11; - f11 = heapFloat[(fp+-130)]; - f1 = f1*f11; - f3 = f13+f3; - f2 = f2*f11; - f13 = heapFloat[(fp+-129)]; - f5 = f5*f13; - f12 = f12*f25; - f17 = heapFloat[(r3+76)]; - f1 = f10+f1; - heapFloat[(fp+-138)] = f1; - f10 = heapFloat[(r3+77)]; - f2 = f3+f2; - heapFloat[(fp+-123)] = f2; - f0 = heapFloat[(fp+-124)]; - f3 = f6*f0; - f0 = heapFloat[(fp+-125)]; - f19 = f7*f0; - f0 = f9+f14; - heapFloat[(fp+-126)] = f0; - f1 = heapFloat[(r3+74)]; - f0 = f15+f16; - heapFloat[(fp+-127)] = f0; - f2 = heapFloat[(fp+-134)]; - f8 = f6*f2; - f9 = heapFloat[(fp+-139)]; - f11 = f7*f9; - f5 = f5+f12; - f12 = heapFloat[(fp+-130)]; - f4 = f4*f12; - f13 = heapFloat[(r3+80)]; - f14 = heapFloat[(r3+81)]; - f15 = heapFloat[(r3+78)]; - f4 = f5+f4; - heapFloat[(fp+-122)] = f4; - f0 = heapFloat[(fp+-124)]; - f5 = f17*f0; - f0 = heapFloat[(fp+-125)]; - f16 = f10*f0; - f18 = f17*f2; - f20 = f10*f9; - f3 = f3+f19; - f0 = heapFloat[(fp+-126)]; - f19 = f1*f0; - f8 = f8+f11; - f0 = heapFloat[(fp+-127)]; - f11 = f1*f0; - f21 = heapFloat[(fp+-138)]; - f22 = f6*f21; - f2 = heapFloat[(fp+-123)]; - f23 = f7*f2; - f24 = heapFloat[(r3+82)]; - f0 = heapFloat[(fp+-124)]; - f25 = f13*f0; - f0 = heapFloat[(fp+-125)]; - f26 = f14*f0; - f2 = heapFloat[(fp+-134)]; - f27 = f13*f2; - f28 = f14*f9; - f5 = f5+f16; - f0 = heapFloat[(fp+-126)]; - f16 = f15*f0; - f18 = f18+f20; - f0 = heapFloat[(fp+-127)]; - f20 = f15*f0; - f29 = f17*f21; - f2 = heapFloat[(fp+-123)]; - f30 = f10*f2; - f3 = f3+f19; - f19 = heapFloat[(fp+-84)]; - heapFloat[(fp+-140)] = f19; - f0 = f8+f11; - heapFloat[(fp+-135)] = f0; - f2 = heapFloat[(r12+1)]; - heapFloat[(fp+-128)] = f2; - f4 = f22+f23; - f8 = heapFloat[(fp+-122)]; - f9 = f1*f8; - f5 = f5+f16; - f0 = f18+f20; - heapFloat[(fp+-119)] = f0; - f2 = f25+f26; - f0 = heapFloat[(fp+-126)]; - f8 = f24*f0; - f11 = f27+f28; - f0 = heapFloat[(fp+-127)]; - f12 = f24*f0; - f16 = f13*f21; - f18 = heapFloat[(fp+-123)]; - f19 = f14*f18; - f20 = f29+f30; - f22 = heapFloat[(fp+-122)]; - f23 = f15*f22; - f25 = heapFloat[(fp+-140)]; - f26 = f3*f25; - f0 = heapFloat[(fp+-135)]; - f27 = heapFloat[(fp+-128)]; - f28 = f0*f27; - f4 = f4+f9; - f9 = heapFloat[(r12+2)]; - f29 = heapFloat[(r3+86)]; - f30 = heapFloat[(r3+85)]; - f0 = heapFloat[(r12+8)]; - heapFloat[(fp+-141)] = f0; - f2 = f2+f8; - f8 = heapFloat[(r12+4)]; - f0 = heapFloat[(r12+9)]; - f11 = f11+f12; - f12 = heapFloat[(r12+5)]; - f20 = f20+f23; - f18 = heapFloat[(r12+10)]; - heapFloat[(fp+-148)] = f18; - f21 = heapFloat[(r12+6)]; - f22 = heapFloat[(r3+84)]; - f16 = f16+f19; - f19 = heapFloat[(fp+-122)]; - f23 = f24*f19; - f27 = f5*f25; - f19 = heapFloat[(fp+-119)]; - f18 = heapFloat[(fp+-128)]; - f18 = f19*f18; - f26 = f26+f28; - f28 = f4*f9; - f19 = heapFloat[(r3+102)]; - heapFloat[(fp+-142)] = f19; - f19 = heapFloat[(r3+101)]; - heapFloat[(fp+-143)] = f19; - f19 = heapFloat[(r3+100)]; - heapFloat[(fp+-145)] = f19; - f19 = heapFloat[(r12+14)]; - heapFloat[(fp+-144)] = f19; - f19 = heapFloat[(r12+13)]; - heapFloat[(fp+-146)] = f19; - f19 = heapFloat[(r12+12)]; - heapFloat[(fp+-147)] = f19; - f16 = f16+f23; - r4 = sp + -400; - f23 = f2*f25; - f19 = heapFloat[(fp+-128)]; - f19 = f11*f19; - f18 = f27+f18; - f27 = f20*f9; - f26 = f26+f28; - f22 = -f22; - r10 = r4 >> 2; - f19 = f23+f19; - f23 = f16*f9; - f18 = f18+f27; - heapFloat[(fp+-100)] = f26; - f6 = f6*f22; - f17 = f17*f30; - f7 = f7*f22; - f10 = f10*f30; - f26 = f3*f8; - f27 = heapFloat[(fp+-135)]; - f28 = f27*f12; - f19 = f19+f23; - heapFloat[(r10+1)] = f18; - f18 = 0; - heapFloat[(r10+2)] = f19; - f6 = f6-f17; - f13 = f13*f29; - f7 = f7-f10; - f10 = f14*f29; - f1 = f1*f22; - f14 = f15*f30; - f15 = f5*f8; - f19 = heapFloat[(fp+-119)]; - f17 = f19*f12; - f22 = f26+f28; - f23 = f4*f21; - f6 = f6-f13; - f7 = f7-f10; - f10 = heapFloat[(fp+-120)]; - f10 = f10*f18; - f13 = heapFloat[(fp+-121)]; - f13 = f13*f18; - f26 = heapFloat[(fp+-131)]; - f26 = f26*f18; - f28 = heapFloat[(fp+-132)]; - f28 = f28*f18; - f1 = f1-f14; - f14 = f24*f29; - f24 = f2*f8; - f29 = f11*f12; - f15 = f15+f17; - f17 = f20*f21; - f22 = f22+f23; - heap32[(r10+3)] = 0; - f1 = f1-f14; - f14 = heapFloat[(fp+-124)]; - f14 = f14*f6; - f23 = heapFloat[(fp+-125)]; - f23 = f23*f7; - f10 = f10+f13; - f13 = heapFloat[(fp+-133)]; - f13 = f13*f18; - f30 = heapFloat[(fp+-134)]; - f30 = f30*f6; - f19 = heapFloat[(fp+-139)]; - f19 = f19*f7; - f26 = f26+f28; - f28 = heapFloat[(fp+-137)]; - f28 = f28*f18; - f25 = heapFloat[(fp+-129)]; - f25 = f25*f18; - f27 = heapFloat[(fp+-136)]; - f27 = f27*f18; - f24 = f24+f29; - f29 = f16*f21; - f15 = f15+f17; - heapFloat[(r10+4)] = f22; - f10 = f10+f13; - f13 = f26+f28; - f14 = f14+f23; - f17 = heapFloat[(fp+-126)]; - f17 = f17*f1; - f19 = f30+f19; - f22 = heapFloat[(fp+-127)]; - f22 = f22*f1; - f23 = heapFloat[(fp+-138)]; - f6 = f23*f6; - f23 = heapFloat[(fp+-123)]; - f7 = f23*f7; - f23 = f25+f27; - f25 = heapFloat[(fp+-130)]; - f25 = f25*f18; - f26 = heapFloat[(fp+-141)]; - f27 = f3*f26; - f28 = heapFloat[(fp+-135)]; - f30 = f28*f0; - f24 = f24+f29; - heapFloat[(r10+5)] = f15; - f15 = f23+f25; - heapFloat[(r10+6)] = f24; - f14 = f14+f17; - f17 = heapFloat[(fp+-145)]; - f10 = f10+f17; - f17 = f19+f22; - f19 = heapFloat[(fp+-143)]; - f13 = f13+f19; - f6 = f6+f7; - f19 = heapFloat[(fp+-122)]; - f1 = f19*f1; - f7 = f5*f26; - f19 = heapFloat[(fp+-119)]; - f22 = f19*f0; - f23 = f27+f30; - f24 = heapFloat[(fp+-148)]; - f25 = f4*f24; - f13 = f17+f13; - f10 = f14+f10; - f1 = f6+f1; - f19 = heapFloat[(fp+-142)]; - f6 = f15+f19; - f14 = f2*f26; - f15 = f11*f0; - f7 = f7+f22; - f17 = f20*f24; - f19 = f23+f25; - heap32[(r10+7)] = 0; - f1 = f1+f6; - f25 = heapFloat[(fp+-140)]; - f6 = f25*f10; - f22 = heapFloat[(fp+-128)]; - f22 = f22*f13; - f14 = f14+f15; - f15 = f16*f24; - f7 = f7+f17; - heapFloat[(r10+8)] = f19; - f8 = f8*f10; - f12 = f12*f13; - f6 = f6+f22; - f9 = f9*f1; - f14 = f14+f15; - heapFloat[(r10+9)] = f7; - f6 = f6+f9; - heapFloat[(r10+10)] = f14; - f7 = f26*f10; - f0 = f0*f13; - f8 = f8+f12; - f9 = f21*f1; - f8 = f8+f9; - f0 = f7+f0; - f7 = f24*f1; - f19 = heapFloat[(fp+-147)]; - f6 = f6+f19; - heap32[(r10+11)] = 0; - f0 = f0+f7; - f19 = heapFloat[(fp+-146)]; - f7 = f8+f19; - heapFloat[(r10+12)] = f6; - f19 = heapFloat[(fp+-144)]; - f0 = f0+f19; - heapFloat[(r10+13)] = f7; - heapFloat[(r10+14)] = f0; - heap32[(r10+15)] = 0; - f0 = heapFloat[(fp+-68)]; - f6 = heapFloat[(r13+1)]; - f7 = heapFloat[(r13+2)]; - f8 = f3*f0; - f9 = f5*f6; - f12 = heapFloat[(r13+8)]; - f14 = heapFloat[(r13+9)]; - f15 = heapFloat[(r13+10)]; - f17 = heapFloat[(r13+4)]; - f19 = heapFloat[(r13+5)]; - f21 = heapFloat[(r13+6)]; - f22 = f28*f0; - f23 = heapFloat[(fp+-119)]; - f24 = f23*f6; - f8 = f8+f9; - f9 = f2*f7; - f25 = heapFloat[(r13+14)]; - f26 = heapFloat[(r13+13)]; - f27 = heapFloat[(r13+12)]; - r10 = sp + -464; - f29 = f4*f0; - f30 = f20*f6; - f22 = f22+f24; - f24 = f11*f7; - f8 = f8+f9; - r12 = r10 >> 2; - f9 = f29+f30; - f29 = f16*f7; - f22 = f22+f24; - heapFloat[(fp+-116)] = f8; - f8 = f3*f17; - f24 = f5*f19; - f9 = f9+f29; - heapFloat[(r12+1)] = f22; - heapFloat[(r12+2)] = f9; - f9 = f28*f17; - f22 = f23*f19; - f8 = f8+f24; - f24 = f2*f21; - f29 = f4*f17; - f30 = f20*f19; - f9 = f9+f22; - f22 = f11*f21; - f8 = f8+f24; - heap32[(r12+3)] = 0; - f10 = -f10; - f24 = f29+f30; - f29 = f16*f21; - f9 = f9+f22; - heapFloat[(r12+4)] = f8; - f8 = f3*f10; - f22 = f28*f13; - f30 = f5*f10; - f23 = f23*f13; - f3 = f3*f12; - f5 = f5*f14; - f24 = f24+f29; - heapFloat[(r12+5)] = f9; - heapFloat[(r12+6)] = f24; - f8 = f8-f22; - f9 = f4*f1; - f22 = f30-f23; - f23 = f20*f1; - f10 = f2*f10; - f13 = f11*f13; - f24 = f28*f12; - f28 = heapFloat[(fp+-119)]; - f28 = f28*f14; - f3 = f3+f5; - f2 = f2*f15; - f5 = f8-f9; - f8 = f22-f23; - f9 = f10-f13; - f1 = f16*f1; - f4 = f4*f12; - f10 = f20*f14; - f13 = f24+f28; - f11 = f11*f15; - f2 = f3+f2; - heap32[(r12+7)] = 0; - f1 = f9-f1; - f0 = f0*f5; - f3 = f6*f8; - f4 = f4+f10; - f6 = f16*f15; - f9 = f13+f11; - heapFloat[(r12+8)] = f2; - f2 = f17*f5; - f10 = f19*f8; - f0 = f0+f3; - f3 = f7*f1; - f4 = f4+f6; - heapFloat[(r12+9)] = f9; - f0 = f0+f3; - heapFloat[(r12+10)] = f4; - f3 = f12*f5; - f4 = f14*f8; - f2 = f2+f10; - f5 = f21*f1; - f2 = f2+f5; - f3 = f3+f4; - f1 = f15*f1; - f0 = f0+f27; - heap32[(r12+11)] = 0; - f1 = f3+f1; - f2 = f2+f26; - heapFloat[(r12+12)] = f0; - f0 = f1+f25; - heapFloat[(r12+13)] = f2; - heapFloat[(r12+14)] = f0; - heap32[(r12+15)] = 0; - r12 = sp + -16; - r13 = sp + -20; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r12; - heap32[(g0+3)] = r13; - _ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7); - r4 = r12 >> 2; - f0 = heapFloat[(r4+2)]; - f1 = heapFloat[(fp+-5)]; - f2 = heapFloat[(r4+1)]; - f3 = heapFloat[(fp+-4)]; - r4 = sp + -40; - r5 = sp + -44; - heap32[(g0)] = r6; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - _ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7); - f2 = f2*f1; - f5 = heapFloat[(fp+-118)]; - f4 = heapFloat[(fp+-117)]; - f4 = f5/f4; - f3 = f3*f1; - r4 = r4 >> 2; - f0 = f0*f1; - f1 = f2*f4; - f2 = heapFloat[(r7+1)]; - f3 = f3*f4; - f5 = heapFloat[(fp+-48)]; - f1 = f1-f2; - f2 = f3-f5; - f0 = f0*f4; - f3 = heapFloat[(r7+2)]; - f5 = heapFloat[(r4+2)]; - f6 = heapFloat[(fp+-11)]; - f7 = heapFloat[(r4+1)]; - f8 = heapFloat[(fp+-10)]; - f0 = f0-f3; - f3 = f5*f6; - f5 = f7*f6; - f6 = f8*f6; - f7 = f2*f2; - f8 = f1*f1; - f7 = f7+f8; - f8 = f0*f0; - f3 = f3*f4; - f9 = heapFloat[(r11+2)]; - f5 = f5*f4; - f10 = heapFloat[(r11+1)]; - f4 = f6*f4; - f6 = heapFloat[(fp+-52)]; - f7 = f7+f8; - f3 = f3-f9; - f5 = f5-f10; - f4 = f4-f6; - f6 = 1.1920928955078125e-007; - if(f7 >f6) //_LBB582_11 -{ - heapFloat[(g0)] = f7; - sqrtf(i7); - r4 = heap32[(r3+5)]; - r4 = r4 >> 2; - f7 = heapFloat[(fp+-118)]; - f18 = f7/f_g0; - f7 = f2*f18; - f8 = heapFloat[(r4+64)]; - f9 = heapFloat[(r4+65)]; - f10 = f1*f18; - f11 = heapFloat[(r4+68)]; - f12 = heapFloat[(r4+69)]; - f13 = f0*f18; - f18 = heapFloat[(r4+72)]; - f14 = heapFloat[(r4+73)]; - f15 = heapFloat[(r4+66)]; - f16 = heapFloat[(r4+70)]; - f8 = f8*f7; - f11 = f11*f10; - f9 = f9*f7; - f12 = f12*f10; - f17 = heapFloat[(r4+74)]; - f8 = f8+f11; - f18 = f18*f13; - f9 = f9+f12; - f11 = f14*f13; - f12 = f15*f7; - f14 = f16*f10; - f18 = f8+f18; - f8 = f9+f11; - f9 = f12+f14; - f11 = f17*f13; - f9 = f9+f11; - f18 = f7*f18; - f8 = f10*f8; - f18 = f18+f8; - f8 = f13*f9; - f18 = f18+f8; -} - f8 = f4*f4; - f9 = f5*f5; - f8 = f8+f9; - f9 = f3*f3; - f8 = f8+f9; - if(f8 >f6) //_LBB582_14 -{ - heapFloat[(g0)] = f8; - sqrtf(i7); - r4 = heap32[(r3+6)]; - r4 = r4 >> 2; - f9 = heapFloat[(fp+-118)]; - f8 = f9/f_g0; - f9 = f4*f8; - f11 = heapFloat[(r4+64)]; - f12 = heapFloat[(r4+65)]; - f14 = f5*f8; - f15 = heapFloat[(r4+68)]; - f16 = heapFloat[(r4+69)]; - f17 = f3*f8; - f8 = heapFloat[(r4+72)]; - f19 = heapFloat[(r4+73)]; - f20 = heapFloat[(r4+66)]; - f21 = heapFloat[(r4+70)]; - f11 = f11*f9; - f15 = f15*f14; - f12 = f12*f9; - f16 = f16*f14; - f22 = heapFloat[(r4+74)]; - f11 = f11+f15; - f8 = f8*f17; - f12 = f12+f16; - f15 = f19*f17; - f16 = f20*f9; - f19 = f21*f14; - f8 = f11+f8; - f11 = f12+f15; - f12 = f16+f19; - f15 = f22*f17; - f12 = f12+f15; - f8 = f9*f8; - f11 = f14*f11; - f8 = f8+f11; - f11 = f17*f12; - f8 = f8+f11; -} -else{ - f8 = 0; -} - f10 = f10*f18; - f11 = f14*f8; - f7 = f7*f18; - f9 = f9*f8; - f10 = f10+f11; - f7 = f7+f9; - f9 = f13*f18; - f8 = f17*f8; - f8 = f9+f8; - f9 = f7*f7; - f11 = f10*f10; - f9 = f9+f11; - f11 = f8*f8; - f9 = f9+f11; -if(!(f9 <=f6)) //_LBB582_35 -{ - heapFloat[(g0)] = f9; - sqrtf(i7); - r4 = heap32[(r3+5)]; - r5 = heap32[(r3+6)]; - r4 = r4 >> 2; - r5 = r5 >> 2; - f9 = heapFloat[(fp+-118)]; - f6 = f9/f_g0; - f11 = heapFloat[(r4+64)]; - f7 = f7*f6; - f12 = heapFloat[(r4+65)]; - f13 = heapFloat[(r5+64)]; - f14 = heapFloat[(r5+65)]; - f15 = heapFloat[(r4+68)]; - f10 = f10*f6; - f16 = heapFloat[(r4+69)]; - f17 = heapFloat[(r5+68)]; - f18 = heapFloat[(r5+69)]; - f19 = heapFloat[(r4+66)]; - f20 = heapFloat[(r4+70)]; - f21 = heapFloat[(r5+66)]; - f22 = heapFloat[(r5+70)]; - f11 = f11*f7; - f15 = f15*f10; - f23 = heapFloat[(r4+72)]; - f6 = f8*f6; - f8 = heapFloat[(r4+73)]; - f24 = heapFloat[(r5+72)]; - f25 = heapFloat[(r5+73)]; - f12 = f12*f7; - f16 = f16*f10; - f13 = f13*f7; - f17 = f17*f10; - f14 = f14*f7; - f18 = f18*f10; - f26 = heapFloat[(r4+74)]; - f27 = heapFloat[(r5+74)]; - f11 = f11+f15; - f15 = f23*f6; - f12 = f12+f16; - f8 = f8*f6; - f16 = f19*f7; - f19 = f20*f10; - f13 = f13+f17; - f17 = f24*f6; - f14 = f14+f18; - f18 = f25*f6; - f20 = f21*f7; - f21 = f22*f10; - f11 = f11+f15; - f8 = f12+f8; - f12 = f13+f17; - f13 = f14+f18; - f14 = f16+f19; - f15 = f26*f6; - f16 = f20+f21; - f17 = f27*f6; - f14 = f14+f15; - f15 = f16+f17; - f11 = f7*f11; - f8 = f10*f8; - f7 = f7*f12; - f10 = f10*f13; - f8 = f11+f8; - f11 = f6*f14; - f7 = f7+f10; - f6 = f6*f15; - f8 = f8+f11; - f6 = f7+f6; - f7 = f8+f6; - f7 = f7*f7; - f0 = f0*f8; - f3 = f3*f6; - f1 = f1*f8; - f5 = f5*f6; - f2 = f2*f8; - f4 = f4*f6; - f0 = f0-f3; - f3 = f9/f7; - f1 = f1-f5; - f2 = f2-f4; - f4 = heapFloat[(r3+140)]; - f0 = f0*f3; - f1 = f1*f3; - f2 = f2*f3; - f3 = 0; - if(f4 >=f3) //_LBB582_18 -{ - r4 = heapU8[r0+541]; - if(r4 !=0) //_LBB582_20 -{ - f4 = f4/f8; -} - f5 = heapFloat[(r3+141)]; - f6 = heapFloat[(r3+142)]; - f5 = f5+f2; - f6 = f6+f1; - f7 = heapFloat[(r3+143)]; - f7 = f7+f0; - f8 = f5*f5; - f9 = f6*f6; - f8 = f8+f9; - f9 = f7*f7; - f8 = f8+f9; - heapFloat[(g0)] = f8; - sqrtf(i7); - f9 = f_g0; - if(f9 >f4) //_LBB582_23 -{ - heapFloat[(g0)] = f8; - sqrtf(i7); - f1 = heapFloat[(fp+-118)]; - f0 = f1/f_g0; - f1 = f7*f0; - f2 = f6*f0; - f0 = f5*f0; - f7 = heapFloat[(r3+143)]; - f1 = f1*f4; - f6 = heapFloat[(r3+142)]; - f2 = f2*f4; - f5 = heapFloat[(r3+141)]; - f4 = f0*f4; - f0 = f1-f7; - f1 = f2-f6; - f2 = f4-f5; -} -else{ - f5 = heapFloat[(r3+141)]; - f6 = heapFloat[(r3+142)]; - f7 = heapFloat[(r3+143)]; -} - f4 = f5+f2; - f5 = f6+f1; - heapFloat[(r3+141)] = f4; - f4 = f7+f0; - heapFloat[(r3+142)] = f5; - heapFloat[(r3+143)] = f4; -} - f4 = f2*f2; - f5 = f1*f1; - f4 = f4+f5; - f5 = f0*f0; - f4 = f4+f5; - heapFloat[(g0)] = f4; - sqrtf(i7); - f4 = f_g0; - f5 = heapFloat[(fp+-118)]; - f5 = f5/f4; - f0 = f0*f5; - f1 = f1*f5; - f2 = f2*f5; - f5 = heapFloat[(r8+84)]; -if(!(f5 ==f3)) //_LBB582_27 -{ - r4 = heap32[(r3+5)]; - r4 = r4 >> 2; - f5 = f4*f3; - f6 = heapFloat[(r8+126)]; - f7 = heapFloat[(r4+65)]; - f8 = heapFloat[(r4+64)]; - f9 = heapFloat[(r4+69)]; - f10 = heapFloat[(r4+68)]; - f11 = heapFloat[(r4+73)]; - f12 = heapFloat[(r4+72)]; - f13 = heapFloat[(r4+66)]; - f14 = heapFloat[(r4+70)]; - f15 = heapFloat[(r4+74)]; - f6 = f6+f5; - heapFloat[(r8+126)] = f6; - f6 = heapFloat[(r8+127)]; - f6 = f6+f5; - heapFloat[(r8+127)] = f6; - f6 = heapFloat[(r8+128)]; - f5 = f6+f5; - heapFloat[(r8+128)] = f5; - f5 = f8*f2; - f6 = f7*f1; - f7 = heapFloat[(r8+134)]; - f5 = f5+f6; - f6 = f13*f0; - f5 = f5+f6; - f6 = f7*f4; - f7 = heapFloat[(r8+136)]; - f8 = heapFloat[(r8+135)]; - f13 = heapFloat[(r8+130)]; - f5 = f5*f6; - f6 = f10*f2; - f9 = f9*f1; - f6 = f6+f9; - f9 = f14*f0; - f5 = f13+f5; - heapFloat[(r8+130)] = f5; - f5 = f6+f9; - f6 = f8*f4; - f8 = f12*f2; - f9 = f11*f1; - f5 = f5*f6; - f6 = heapFloat[(r8+131)]; - f5 = f6+f5; - f6 = f8+f9; - f8 = f15*f0; - heapFloat[(r8+131)] = f5; - f5 = f6+f8; - f6 = f7*f4; - f5 = f5*f6; - f6 = heapFloat[(r8+132)]; - f5 = f6+f5; - heapFloat[(r8+132)] = f5; -} - f5 = heapFloat[(r9+84)]; -if(!(f5 ==f3)) //_LBB582_35 -{ - f3 = -f4; - r4 = heap32[(r3+6)]; - r4 = r4 >> 2; - f5 = -0; - f4 = f4*f5; - f5 = heapFloat[(r9+126)]; - f6 = heapFloat[(r4+65)]; - f7 = heapFloat[(r4+64)]; - f8 = heapFloat[(r4+69)]; - f9 = heapFloat[(r4+68)]; - f10 = heapFloat[(r4+73)]; - f11 = heapFloat[(r4+72)]; - f12 = heapFloat[(r4+66)]; - f13 = heapFloat[(r4+70)]; - f14 = heapFloat[(r4+74)]; - f5 = f5+f4; - heapFloat[(r9+126)] = f5; - f5 = heapFloat[(r9+127)]; - f5 = f5+f4; - heapFloat[(r9+127)] = f5; - f5 = heapFloat[(r9+128)]; - f4 = f5+f4; - heapFloat[(r9+128)] = f4; - f4 = f7*f2; - f5 = f6*f1; - f4 = f4+f5; - f5 = f12*f0; - f6 = heapFloat[(r9+134)]; - f4 = f4+f5; - f5 = f6*f3; - f6 = heapFloat[(r9+136)]; - f7 = heapFloat[(r9+135)]; - f12 = heapFloat[(r9+130)]; - f4 = f4*f5; - f5 = f9*f2; - f8 = f8*f1; - f5 = f5+f8; - f8 = f13*f0; - f4 = f12+f4; - heapFloat[(r9+130)] = f4; - f4 = f5+f8; - f5 = f7*f3; - f2 = f11*f2; - f1 = f10*f1; - f4 = f4*f5; - f5 = heapFloat[(r9+131)]; - f4 = f5+f4; - f1 = f2+f1; - f0 = f14*f0; - heapFloat[(r9+131)] = f4; - f0 = f1+f0; - f1 = f6*f3; - f0 = f0*f1; - f1 = heapFloat[(r9+132)]; - f0 = f1+f0; - heapFloat[(r9+132)] = f0; -} -} -} -} while(0); - r1 = r1 >> 2; - r2 = r2 >> 2; - f0 = heapFloat[(r1+82)]; - f1 = heapFloat[(r1+132)]; - f2 = heapFloat[(r1+81)]; - f3 = heapFloat[(r1+131)]; - f4 = heapFloat[(r1+80)]; - f5 = heapFloat[(r1+130)]; - f6 = heapFloat[(r2+82)]; - f7 = heapFloat[(r2+132)]; - f8 = heapFloat[(r2+81)]; - f9 = heapFloat[(r2+131)]; - f10 = heapFloat[(r2+80)]; - f11 = heapFloat[(r2+130)]; - f0 = f0+f1; - f1 = f2+f3; - f2 = f4+f5; - f3 = f6+f7; - f4 = f8+f9; - f5 = f10+f11; - r4 = heapU8[r0+514]; -if(!(r4 ==0)) //_LBB582_43 -{ - f6 = heapFloat[(r3+129)]; - f7 = heapFloat[(r3+123)]; - f8 = heapFloat[(r3+112)]; - f9 = f5-f2; - f10 = heapFloat[(r3+113)]; - f11 = f4-f1; - f12 = heapFloat[(r3+114)]; - f13 = f3-f0; - f9 = f9*f8; - f11 = f11*f10; - f7 = f6*f7; - f14 = heapFloat[(r3+105)]; - f9 = f9+f11; - f11 = f13*f12; - f7 = f7*f14; - f9 = f9+f11; - f11 = heapFloat[(fp+-117)]; - f7 = f7/f11; - f11 = 0; - if(f9 >f11) //_LBB582_38 -{ - f6 = f6*f9; - f9 = heapFloat[(r3+106)]; - f6 = f6*f9; - f7 = f6+f7; -} - f6 = heapFloat[(r3+120)]; - f9 = heapFloat[(r3+126)]; - f6 = f6*f7; - f6 = f9+f6; - f6 = f6 > f11 ? f6 : f11; - heapFloat[(r3+126)] = f6; - f6 = f6-f9; - f7 = f8*f6; - f8 = heapFloat[(r3+131)]; - f9 = f10*f6; - f10 = heapFloat[(r3+132)]; - f13 = heapFloat[(r3+133)]; - f6 = f12*f6; - f12 = f7*f8; - f14 = f9*f10; - f12 = f12+f14; - f14 = f6*f13; - f12 = f12+f14; - f10 = f10*f12; - f8 = f8*f12; - f12 = f13*f12; - f9 = f9-f10; - f7 = f7-f8; - f6 = f6-f12; - f8 = f7*f7; - f10 = f9*f9; - f8 = f8+f10; - f10 = f6*f6; - f8 = f8+f10; - heapFloat[(g0)] = f8; - sqrtf(i7); - f8 = f_g0; - f10 = 1; - f10 = f10/f8; - f6 = f6*f10; - f9 = f9*f10; - f7 = f7*f10; - f10 = heapFloat[(r1+84)]; -if(!(f10 ==f11)) //_LBB582_41 -{ - r4 = heap32[(r3+5)]; - r4 = r4 >> 2; - f10 = f8*f11; - f12 = heapFloat[(r1+126)]; - f13 = heapFloat[(r4+65)]; - f14 = heapFloat[(r4+64)]; - f15 = heapFloat[(r4+69)]; - f16 = heapFloat[(r4+68)]; - f17 = heapFloat[(r4+73)]; - f18 = heapFloat[(r4+72)]; - f19 = heapFloat[(r4+66)]; - f20 = heapFloat[(r4+70)]; - f21 = heapFloat[(r4+74)]; - f12 = f12+f10; - heapFloat[(r1+126)] = f12; - f12 = heapFloat[(r1+127)]; - f12 = f12+f10; - heapFloat[(r1+127)] = f12; - f12 = heapFloat[(r1+128)]; - f10 = f12+f10; - heapFloat[(r1+128)] = f10; - f10 = f14*f7; - f12 = f13*f9; - f13 = heapFloat[(r1+134)]; - f10 = f10+f12; - f12 = f19*f6; - f10 = f10+f12; - f12 = f13*f8; - f13 = heapFloat[(r1+136)]; - f14 = heapFloat[(r1+135)]; - f19 = heapFloat[(r1+130)]; - f10 = f10*f12; - f12 = f16*f7; - f15 = f15*f9; - f12 = f12+f15; - f15 = f20*f6; - f10 = f19+f10; - heapFloat[(r1+130)] = f10; - f10 = f12+f15; - f12 = f14*f8; - f14 = f18*f7; - f15 = f17*f9; - f10 = f10*f12; - f12 = heapFloat[(r1+131)]; - f10 = f12+f10; - f12 = f14+f15; - f14 = f21*f6; - heapFloat[(r1+131)] = f10; - f10 = f12+f14; - f12 = f13*f8; - f10 = f10*f12; - f12 = heapFloat[(r1+132)]; - f10 = f12+f10; - heapFloat[(r1+132)] = f10; -} - f10 = heapFloat[(r2+84)]; -if(!(f10 ==f11)) //_LBB582_43 -{ - f10 = -f8; - r4 = heap32[(r3+6)]; - r4 = r4 >> 2; - f11 = -0; - f8 = f8*f11; - f11 = heapFloat[(r2+126)]; - f12 = heapFloat[(r4+65)]; - f13 = heapFloat[(r4+64)]; - f14 = heapFloat[(r4+69)]; - f15 = heapFloat[(r4+68)]; - f16 = heapFloat[(r4+73)]; - f17 = heapFloat[(r4+72)]; - f18 = heapFloat[(r4+66)]; - f19 = heapFloat[(r4+70)]; - f20 = heapFloat[(r4+74)]; - f11 = f11+f8; - heapFloat[(r2+126)] = f11; - f11 = heapFloat[(r2+127)]; - f11 = f11+f8; - heapFloat[(r2+127)] = f11; - f11 = heapFloat[(r2+128)]; - f8 = f11+f8; - heapFloat[(r2+128)] = f8; - f8 = f13*f7; - f11 = f12*f9; - f8 = f8+f11; - f11 = f18*f6; - f12 = heapFloat[(r2+134)]; - f8 = f8+f11; - f11 = f12*f10; - f12 = heapFloat[(r2+136)]; - f13 = heapFloat[(r2+135)]; - f18 = heapFloat[(r2+130)]; - f8 = f8*f11; - f11 = f15*f7; - f14 = f14*f9; - f11 = f11+f14; - f14 = f19*f6; - f8 = f18+f8; - heapFloat[(r2+130)] = f8; - f8 = f11+f14; - f11 = f13*f10; - f7 = f17*f7; - f9 = f16*f9; - f8 = f8*f11; - f11 = heapFloat[(r2+131)]; - f8 = f11+f8; - f7 = f7+f9; - f6 = f20*f6; - heapFloat[(r2+131)] = f8; - f6 = f7+f6; - f7 = f12*f10; - f6 = f6*f7; - f7 = heapFloat[(r2+132)]; - f6 = f7+f6; - heapFloat[(r2+132)] = f6; -} -} - r0 = heapU8[r0+513]; -if(!(r0 ==0)) //_LBB582_52 -{ - f6 = heapFloat[(r3+130)]; - f7 = heapFloat[(r3+124)]; - f8 = heapFloat[(r3+116)]; - f2 = f5-f2; - f5 = heapFloat[(r3+117)]; - f1 = f4-f1; - f4 = heapFloat[(r3+118)]; - f0 = f3-f0; - f2 = f2*f8; - f1 = f1*f5; - f3 = f6*f7; - f7 = heapFloat[(r3+105)]; - f1 = f2+f1; - f0 = f0*f4; - f2 = f3*f7; - f0 = f1+f0; - f1 = heapFloat[(fp+-117)]; - f1 = f2/f1; - f2 = 0; - if(f0 >f2) //_LBB582_46 -{ - f0 = f6*f0; - f3 = heapFloat[(r3+106)]; - f0 = f0*f3; - f1 = f0+f1; -} - f0 = heapFloat[(r3+121)]; - f3 = heapFloat[(r3+127)]; - f0 = f0*f1; - f0 = f3+f0; - f0 = f0 > f2 ? f0 : f2; - heapFloat[(r3+127)] = f0; - f0 = f0-f3; - f1 = heapFloat[(r1+84)]; - if(f1 !=f2) //_LBB582_49 -{ - r0 = heap32[(r3+5)]; - r0 = r0 >> 2; - f1 = f0*f2; - f3 = heapFloat[(r1+126)]; - f6 = heapFloat[(r0+65)]; - f7 = heapFloat[(r0+64)]; - f9 = heapFloat[(r0+69)]; - f10 = heapFloat[(r0+68)]; - f11 = heapFloat[(r0+73)]; - f12 = heapFloat[(r0+72)]; - f13 = heapFloat[(r0+66)]; - f14 = heapFloat[(r0+70)]; - f15 = heapFloat[(r0+74)]; - f3 = f3+f1; - heapFloat[(r1+126)] = f3; - f3 = heapFloat[(r1+127)]; - f3 = f3+f1; - heapFloat[(r1+127)] = f3; - f3 = heapFloat[(r1+128)]; - f1 = f3+f1; - heapFloat[(r1+128)] = f1; - f1 = f7*f8; - f3 = f6*f5; - f6 = heapFloat[(r1+134)]; - f1 = f1+f3; - f3 = f13*f4; - f1 = f1+f3; - f3 = f6*f0; - f6 = heapFloat[(r1+136)]; - f7 = heapFloat[(r1+135)]; - f13 = heapFloat[(r1+130)]; - f1 = f1*f3; - f3 = f10*f8; - f9 = f9*f5; - f3 = f3+f9; - f9 = f14*f4; - f1 = f13+f1; - heapFloat[(r1+130)] = f1; - f1 = f3+f9; - f3 = f7*f0; - f8 = f12*f8; - f5 = f11*f5; - f1 = f1*f3; - f3 = heapFloat[(r1+131)]; - f1 = f3+f1; - f5 = f8+f5; - f4 = f15*f4; - heapFloat[(r1+131)] = f1; - f4 = f5+f4; - f5 = f6*f0; - f4 = f4*f5; - f5 = heapFloat[(r1+132)]; - f4 = f5+f4; - heapFloat[(r1+132)] = f4; - f8 = heapFloat[(r3+116)]; - f5 = heapFloat[(r3+117)]; - f4 = heapFloat[(r3+118)]; -} - f1 = heapFloat[(r2+84)]; -if(!(f1 ==f2)) //_LBB582_52 -{ - f1 = -f0; - r0 = heap32[(r3+6)]; - r0 = r0 >> 2; - f2 = -0; - f0 = f0*f2; - f2 = heapFloat[(r2+126)]; - f3 = heapFloat[(r0+65)]; - f6 = heapFloat[(r0+64)]; - f7 = heapFloat[(r0+69)]; - f9 = heapFloat[(r0+68)]; - f10 = heapFloat[(r0+73)]; - f11 = heapFloat[(r0+72)]; - f12 = heapFloat[(r0+66)]; - f13 = heapFloat[(r0+70)]; - f14 = heapFloat[(r0+74)]; - f2 = f2+f0; - heapFloat[(r2+126)] = f2; - f2 = heapFloat[(r2+127)]; - f2 = f2+f0; - heapFloat[(r2+127)] = f2; - f2 = heapFloat[(r2+128)]; - f0 = f2+f0; - heapFloat[(r2+128)] = f0; - f0 = f6*f8; - f2 = f3*f5; - f0 = f0+f2; - f2 = f12*f4; - f3 = heapFloat[(r2+134)]; - f0 = f0+f2; - f2 = f3*f1; - f3 = heapFloat[(r2+136)]; - f6 = heapFloat[(r2+135)]; - f12 = heapFloat[(r2+130)]; - f0 = f0*f2; - f2 = f9*f8; - f7 = f7*f5; - f2 = f2+f7; - f7 = f13*f4; - f0 = f12+f0; - heapFloat[(r2+130)] = f0; - f0 = f2+f7; - f2 = f6*f1; - f6 = f11*f8; - f5 = f10*f5; - f0 = f0*f2; - f2 = heapFloat[(r2+131)]; - f0 = f2+f0; - f2 = f6+f5; - f4 = f14*f4; - heapFloat[(r2+131)] = f0; - f0 = f2+f4; - f1 = f3*f1; - f0 = f0*f1; - f1 = heapFloat[(r2+132)]; - f0 = f1+f0; - heapFloat[(r2+132)] = f0; -} -} -} - return; -} - -function _ZN21btConeTwistConstraint8setParamEifi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - f0 = heapFloat[(fp+2)]; - r2 = heap32[(fp+3)]; - r3 = (r0 + -3)|0; - if(uint(r3) uint(2)) //_LBB583_7 -{ - r0 = r1 >> 2; - heapFloat[(r0+148)] = f0; - r1 = heap32[(r0+145)]; - r1 = r1 | 4; - heap32[(r0+145)] = r1; - return; -} -else{ - r1 = r1 >> 2; - heapFloat[(r1+146)] = f0; - r0 = heap32[(r1+145)]; - r0 = r0 | 1; - heap32[(r1+145)] = r0; - return; -} -} -else{ - r0 = (r0 + -1)|0; - if(uint(r0) >uint(1)) //_LBB583_8 -{ - r0 = _2E_str10; - r1 = _2E_str24; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 1066; - _assert(i7); -} -else{ - if(uint(r2) >uint(2)) //_LBB583_4 -{ - r1 = r1 >> 2; - heapFloat[(r1+105)] = f0; - return; -} -else{ - r1 = r1 >> 2; - heapFloat[(r1+147)] = f0; - r2 = heap32[(r1+145)]; - r2 = r2 | 2; - heap32[(r1+145)] = r2; - return; -} -} -} -} - -function _ZNK21btConeTwistConstraint8getParamEii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = heap32[(fp+2)]; - r3 = (r0 + -3)|0; - if(uint(r3) uint(2)) //_LBB584_13 -{ - r0 = (r2 + -3)|0; - if(uint(r0) >uint(2)) //_LBB584_17 -{ - r1 = _2E_str10; - r0 = _2E_str24; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 1107; - _assert(i7); -} -else{ - r0 = heapU8[r1+580]; - r0 = r0 & 4; - if(r0 !=0) //_LBB584_16 -{ - r1 = (r1 + 592)|0; -} -else{ - r1 = _2E_str543; - r0 = _2E_str24; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 1102; - _assert(i7); -} -} -} -else{ - r2 = heapU8[r1+580]; - r2 = r2 & 1; - if(r2 != 0) //_LBB584_12 -{ - r1 = (r1 + 584)|0; -} -else{ - r1 = _2E_str442; - r2 = _2E_str24; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 1097; - _assert(i7); -} -} -} -else{ - r0 = (r0 + -1)|0; - if(uint(r0) >uint(1)) //_LBB584_18 -{ - r1 = _2E_str10; - r0 = _2E_str24; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 1111; - _assert(i7); -} -else{ - if(uint(r2) >uint(2)) //_LBB584_6 -{ - r2 = (r2 + -3)|0; - if(uint(r2) >uint(2)) //_LBB584_8 -{ - r1 = _2E_str10; - r2 = _2E_str24; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 1090; - _assert(i7); -} -else{ - r1 = (r1 + 420)|0; -} -} -else{ - r2 = heapU8[r1+580]; - r2 = r2 & 2; - if(r2 !=0) //_LBB584_5 -{ - r1 = (r1 + 588)|0; -} -else{ - r1 = _2E_str1340; - r2 = _2E_str24; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 1081; - _assert(i7); -} -} -} -} - r0 = r1 >> 2; - f0 = heapFloat[(r0)]; - f_g0 = f0; - return; -} - -function _ZN15btJacobianEntryC2ERK11btMatrix3x3S2_RK9btVector3S5_S5_S5_fS5_f(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+5)]; - r1 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - f0 = heapFloat[(r0)]; - heapFloat[(r1)] = f0; - f1 = heapFloat[(r0+1)]; - heapFloat[(r1+1)] = f1; - f2 = heapFloat[(r0+2)]; - r2 = heap32[(fp+3)]; - heapFloat[(r1+2)] = f2; - r2 = r2 >> 2; - heap32[(r1+3)] = heap32[(r0+3)]; - f3 = heapFloat[(r2)]; - f4 = heapFloat[(r2+1)]; - f5 = heapFloat[(r2+2)]; - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - f6 = f4*f2; - f7 = f5*f1; - f5 = f5*f0; - f8 = f3*f2; - f6 = f6-f7; - f7 = heapFloat[(r0)]; - f5 = f5-f8; - f8 = heapFloat[(r0+1)]; - f3 = f3*f1; - f4 = f4*f0; - f9 = heapFloat[(r0+4)]; - f10 = heapFloat[(r0+5)]; - f7 = f7*f6; - f8 = f8*f5; - f3 = f3-f4; - f4 = heapFloat[(r0+2)]; - f11 = heapFloat[(r0+8)]; - f12 = heapFloat[(r0+9)]; - f13 = heapFloat[(r0+10)]; - f14 = heapFloat[(r0+6)]; - f9 = f9*f6; - f10 = f10*f5; - f7 = f7+f8; - f4 = f4*f3; - f6 = f11*f6; - f5 = f12*f5; - f8 = f9+f10; - f9 = f14*f3; - f4 = f7+f4; - f5 = f6+f5; - f3 = f13*f3; - f6 = f8+f9; - heapFloat[(r1+4)] = f4; - f3 = f5+f3; - heapFloat[(r1+5)] = f6; - r0 = heap32[(fp+4)]; - heapFloat[(r1+6)] = f3; - r0 = r0 >> 2; - heap32[(r1+7)] = 0; - f5 = heapFloat[(r0)]; - f7 = heapFloat[(r0+1)]; - f8 = heapFloat[(r0+2)]; - r0 = heap32[(fp+2)]; - r0 = r0 >> 2; - f9 = f8*f1; - f10 = f7*f2; - f2 = f5*f2; - f8 = f8*f0; - f9 = f9-f10; - f10 = heapFloat[(r0)]; - f2 = f2-f8; - f8 = heapFloat[(r0+1)]; - f0 = f7*f0; - f1 = f5*f1; - f5 = heapFloat[(r0+4)]; - f7 = heapFloat[(r0+5)]; - f10 = f10*f9; - f8 = f8*f2; - f0 = f0-f1; - f1 = heapFloat[(r0+2)]; - f11 = heapFloat[(r0+8)]; - f12 = heapFloat[(r0+9)]; - f13 = heapFloat[(r0+10)]; - f14 = heapFloat[(r0+6)]; - f5 = f5*f9; - f7 = f7*f2; - f8 = f10+f8; - f1 = f1*f0; - f9 = f11*f9; - f2 = f12*f2; - f5 = f5+f7; - f7 = f14*f0; - f1 = f8+f1; - f2 = f9+f2; - f0 = f13*f0; - f5 = f5+f7; - heapFloat[(r1+8)] = f1; - f0 = f2+f0; - heapFloat[(r1+9)] = f5; - r0 = heap32[(fp+6)]; - heapFloat[(r1+10)] = f0; - r0 = r0 >> 2; - heap32[(r1+11)] = 0; - f2 = heapFloat[(r0+2)]; - f7 = heapFloat[(r0+1)]; - f8 = heapFloat[(r0)]; - f8 = f8*f4; - f7 = f7*f6; - heapFloat[(r1+12)] = f8; - f2 = f2*f3; - heapFloat[(r1+13)] = f7; - r0 = heap32[(fp+8)]; - heapFloat[(r1+14)] = f2; - r0 = r0 >> 2; - heap32[(r1+15)] = 0; - f9 = heapFloat[(r0+2)]; - f10 = heapFloat[(r0+1)]; - f11 = heapFloat[(r0)]; - f4 = f8*f4; - f6 = f7*f6; - f7 = f10*f5; - f8 = f11*f1; - f4 = f4+f6; - f2 = f2*f3; - f3 = f9*f0; - heapFloat[(r1+16)] = f8; - f2 = f4+f2; - f4 = heapFloat[(fp+7)]; - f1 = f8*f1; - f5 = f7*f5; - heapFloat[(r1+17)] = f7; - f2 = f2+f4; - f4 = heapFloat[(fp+9)]; - f1 = f1+f5; - f0 = f3*f0; - heapFloat[(r1+18)] = f3; - f2 = f2+f4; - f0 = f1+f0; - f0 = f2+f0; - heap32[(r1+19)] = 0; - f1 = 0; - heapFloat[(r1+20)] = f0; - if(f0 >f1) //_LBB585_2 -{ - return; -} -else{ - r0 = _2E_str846; - r1 = _2E_str947; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 53; - _assert(i7); -} -} - -function _ZNK21btConeTwistConstraint16GetPointForAngleEff(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - f0 = heapFloat[(fp+2)]; - heapFloat[(g0)] = f0; - cosf(i7); - f1 = f_g0; - r0 = heap32[(fp+1)]; - heapFloat[(g0)] = f0; - sinf(i7); - f0 = f_g0; - r0 = r0 >> 2; - r1 = heap32[(fp)]; - f2 = heapFloat[(fp+3)]; - f3 = f1; //fstod f1, f3 - f3 = Math.abs(f3); - f4 = 1.1920928955078125e-007; - if(f3 >f4) //_LBB586_2 -{ - f3 = heapFloat[(r0+109)]; - f4 = heapFloat[(r0+108)]; - f5 = f0*f0; - f6 = f1*f1; - f5 = f5/f6; - f4 = f4*f4; - f6 = 1; - f3 = f3*f3; - f4 = f5/f4; - f3 = f6/f3; - f5 = f5+f6; - f3 = f4+f3; - f3 = f5/f3; - heapFloat[(g0)] = f3; - sqrtf(i7); - f3 = f_g0; -} -else{ - f3 = heapFloat[(r0+108)]; -} - f4 = 0; - f5 = f1*f1; - f5 = f5+f4; - f6 = f0*f0; - f5 = f5+f6; - heapFloat[(g0)] = f5; - sqrtf(i7); - f5 = f_g0; - if(f5 !=f4) //_LBB586_5 -{ - f6 = 0.5; - f3 = f3*f6; - heapFloat[(g0)] = f3; - sinf(i7); - f5 = f_g0/f5; - f6 = f5*f4; - heapFloat[(g0)] = f3; - f0 = -f0; - f1 = f1*f5; - cosf(i7); - f7 = -f6; - f0 = f5*f0; - f5 = f_g0*f2; - f8 = f1*f4; - f7 = f2*f7; - f5 = f5+f8; - f9 = f0*f4; - f7 = f7-f8; - f8 = f0*f2; - f10 = f_g0*f4; - f5 = f5-f9; - f7 = f7-f9; - f4 = f6*f4; - f8 = f10+f8; - f8 = f8-f4; - f9 = f5*f_g0; - f11 = f7*f6; - f4 = f10+f4; - f2 = f1*f2; - f2 = f4-f2; - f4 = f8*f_g0; - f10 = f7*f1; - f9 = f9-f11; - f11 = f8*f0; - f3 = f2*f_g0; - f7 = f7*f0; - f4 = f4-f10; - f10 = f2*f6; - f9 = f9-f11; - f2 = f2*f1; - r0 = r1 >> 2; - f2 = f9+f2; - f3 = f3-f7; - f1 = f5*f1; - f4 = f4-f10; - f0 = f5*f0; - f1 = f3-f1; - f3 = f8*f6; - f0 = f4+f0; - heapFloat[(r0)] = f2; - f1 = f1+f3; - heapFloat[(r0+1)] = f0; - heapFloat[(r0+2)] = f1; - heap32[(r0+3)] = 0; - return; -} -else{ - r1 = _2E_str115; - r0 = _2E_str685; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 61; - _assert(i7); -} -} - -function _ZN21btConeTwistConstraint14calcAngleInfo2ERK11btTransformS2_RK11btMatrix3x3S5_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -384;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - heap32[(r1+123)] = 0; - r2 = 0; - heap32[(r1+122)] = 0; - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - heap8[r0+513] = r2; - heap8[r0+514] = r2; - r2 = heapU8[r0+540]; - if(r2 ==0) //_LBB587_7 -{ -__label__ = 6; -} -else{ - r2 = heapU8[r0+515]; - if(r2 !=0) //_LBB587_7 -{ -__label__ = 6; -} -else{ - f0 = heapFloat[(r1+136)]; - f1 = heapFloat[(r1+137)]; - f2 = heapFloat[(r1+138)]; - f3 = f0*f0; - f4 = f1*f1; - f5 = heapFloat[(r1+139)]; - f3 = f3+f4; - f4 = f2*f2; - f3 = f3+f4; - f4 = f5*f5; - f6 = 2; - f3 = f3+f4; - r4 = r4 >> 2; - f3 = f6/f3; - f4 = f2*f3; - f6 = f1*f3; - f3 = f0*f3; - f7 = heapFloat[(r4)]; - heapFloat[(fp+-48)] = f7; - f7 = heapFloat[(r1+89)]; - heapFloat[(fp+-64)] = f7; - f7 = heapFloat[(r1+88)]; - heapFloat[(fp+-66)] = f7; - f8 = heapFloat[(r4+1)]; - heapFloat[(fp+-49)] = f8; - f9 = heapFloat[(r1+93)]; - heapFloat[(fp+-65)] = f9; - f7 = heapFloat[(r1+92)]; - heapFloat[(fp+-67)] = f7; - f8 = heapFloat[(r1+90)]; - heapFloat[(fp+-54)] = f8; - f9 = heapFloat[(r1+94)]; - heapFloat[(fp+-55)] = f9; - f2 = f2*f4; - f10 = f0*f3; - f11 = f1*f6; - f12 = heapFloat[(fp+-66)]; - f7 = heapFloat[(fp+-48)]; - f13 = f12*f7; - f7 = heapFloat[(fp+-67)]; - f8 = heapFloat[(fp+-49)]; - f14 = f7*f8; - f15 = heapFloat[(fp+-64)]; - f7 = heapFloat[(fp+-48)]; - f16 = f15*f7; - f9 = heapFloat[(fp+-65)]; - f17 = f9*f8; - f18 = heapFloat[(r4+2)]; - heapFloat[(fp+-83)] = f18; - f19 = heapFloat[(r1+97)]; - heapFloat[(fp+-80)] = f19; - f20 = heapFloat[(r1+96)]; - heapFloat[(fp+-81)] = f20; - r3 = r3 >> 2; - f21 = heapFloat[(r1+98)]; - heapFloat[(fp+-77)] = f21; - f22 = f11+f2; - f23 = 1; - heapFloat[(fp+-76)] = f23; - f2 = f10+f2; - f24 = f0*f6; - f25 = f5*f4; - f13 = f13+f14; - f14 = f20*f18; - f16 = f16+f17; - f17 = f19*f18; - f8 = heapFloat[(fp+-54)]; - f26 = f8*f7; - f9 = heapFloat[(fp+-55)]; - f8 = heapFloat[(fp+-49)]; - f27 = f9*f8; - f22 = f23-f22; - heapFloat[(fp+-78)] = f22; - f13 = f13+f14; - heapFloat[(fp+-50)] = f13; - f14 = f24-f25; - heapFloat[(fp+-52)] = f14; - f24 = f24+f25; - heapFloat[(fp+-79)] = f24; - f16 = f16+f17; - heapFloat[(fp+-51)] = f16; - f2 = f23-f2; - heapFloat[(fp+-53)] = f2; - f0 = f0*f4; - f6 = f5*f6; - f1 = f1*f4; - f3 = f5*f3; - f4 = f26+f27; - f5 = f21*f18; - f2 = heapFloat[(r3)]; - heapFloat[(fp+-40)] = f2; - f7 = heapFloat[(r1+73)]; - f8 = heapFloat[(r1+72)]; - f2 = heapFloat[(r3+1)]; - heapFloat[(fp+-41)] = f2; - f9 = heapFloat[(r1+77)]; - f12 = heapFloat[(r1+76)]; - f13 = heapFloat[(r4+4)]; - heapFloat[(fp+-59)] = f13; - f14 = heapFloat[(r4+5)]; - heapFloat[(fp+-60)] = f14; - f15 = heapFloat[(r3+4)]; - heapFloat[(fp+-68)] = f15; - f16 = heapFloat[(r3+5)]; - heapFloat[(fp+-69)] = f16; - f17 = heapFloat[(r1+74)]; - f18 = heapFloat[(r1+78)]; - f19 = f0+f6; - heapFloat[(fp+-56)] = f19; - f20 = f1-f3; - heapFloat[(fp+-58)] = f20; - f10 = f10+f11; - f2 = heapFloat[(fp+-40)]; - f11 = f8*f2; - f2 = heapFloat[(fp+-41)]; - f21 = f12*f2; - f13 = heapFloat[(fp+-50)]; - f23 = f22*f13; - f16 = heapFloat[(fp+-51)]; - f25 = f24*f16; - f0 = f0-f6; - heapFloat[(fp+-61)] = f0; - f4 = f4+f5; - heapFloat[(fp+-57)] = f4; - f1 = f1+f3; - heapFloat[(fp+-62)] = f1; - f2 = heapFloat[(fp+-40)]; - f3 = f7*f2; - f2 = heapFloat[(fp+-41)]; - f5 = f9*f2; - f14 = heapFloat[(fp+-52)]; - f6 = f14*f13; - f2 = heapFloat[(fp+-53)]; - f26 = f2*f16; - f0 = heapFloat[(r3+2)]; - heapFloat[(fp+-71)] = f0; - f1 = heapFloat[(r1+81)]; - f2 = heapFloat[(r1+80)]; - f4 = heapFloat[(r3+8)]; - heapFloat[(fp+-38)] = f4; - f13 = heapFloat[(r3+9)]; - heapFloat[(fp+-39)] = f13; - f14 = heapFloat[(r4+6)]; - heapFloat[(fp+-37)] = f14; - f15 = heapFloat[(r3+6)]; - heapFloat[(fp+-70)] = f15; - f0 = heapFloat[(r1+82)]; - heapFloat[(fp+-82)] = f0; - f4 = heapFloat[(fp+-76)]; - f10 = f4-f10; - heapFloat[(fp+-63)] = f10; - f14 = heapFloat[(fp+-66)]; - f13 = heapFloat[(fp+-59)]; - f15 = f14*f13; - f16 = heapFloat[(fp+-67)]; - f14 = heapFloat[(fp+-60)]; - f19 = f16*f14; - f20 = heapFloat[(fp+-64)]; - f22 = f20*f13; - f24 = heapFloat[(fp+-65)]; - f27 = f24*f14; - f28 = heapFloat[(fp+-68)]; - f29 = f8*f28; - f16 = heapFloat[(fp+-69)]; - f30 = f12*f16; - f0 = f7*f28; - f4 = f9*f16; - f11 = f11+f21; - heapFloat[(fp+-42)] = f11; - f21 = heapFloat[(fp+-71)]; - f10 = f2*f21; - heapFloat[(fp+-43)] = f10; - f10 = f23+f25; - heapFloat[(fp+-44)] = f10; - f13 = heapFloat[(fp+-61)]; - f11 = heapFloat[(fp+-57)]; - f14 = f13*f11; - f3 = f3+f5; - f5 = f1*f21; - f6 = f6+f26; - f16 = heapFloat[(fp+-62)]; - f20 = f16*f11; - f23 = heapFloat[(fp+-40)]; - f24 = f17*f23; - f25 = heapFloat[(fp+-41)]; - f26 = f18*f25; - f28 = heapFloat[(fp+-56)]; - f13 = heapFloat[(fp+-50)]; - f10 = f28*f13; - f11 = heapFloat[(fp+-58)]; - f16 = heapFloat[(fp+-51)]; - f11 = f11*f16; - f13 = heapFloat[(r3+10)]; - heapFloat[(fp+-72)] = f13; - f15 = f15+f19; - f13 = heapFloat[(fp+-81)]; - f19 = heapFloat[(fp+-37)]; - f13 = f13*f19; - f22 = f22+f27; - f19 = heapFloat[(fp+-80)]; - f27 = heapFloat[(fp+-37)]; - f16 = f19*f27; - f19 = heapFloat[(fp+-54)]; - f21 = heapFloat[(fp+-59)]; - f19 = f19*f21; - f21 = heapFloat[(fp+-55)]; - f23 = heapFloat[(fp+-60)]; - f21 = f21*f23; - f23 = heapFloat[(fp+-38)]; - f8 = f8*f23; - f23 = heapFloat[(fp+-39)]; - f12 = f12*f23; - f23 = heapFloat[(fp+-38)]; - f7 = f7*f23; - f23 = heapFloat[(fp+-39)]; - f9 = f9*f23; - f29 = f29+f30; - f30 = heapFloat[(fp+-70)]; - f23 = f2*f30; - f0 = f0+f4; - f4 = f1*f30; - f28 = heapFloat[(fp+-68)]; - f25 = f17*f28; - f27 = heapFloat[(fp+-69)]; - f27 = f18*f27; - f28 = heapFloat[(fp+-42)]; - f30 = heapFloat[(fp+-43)]; - f28 = f28+f30; - f30 = heapFloat[(fp+-44)]; - f14 = f30+f14; - heapFloat[(fp+-73)] = f14; - f3 = f3+f5; - f5 = f6+f20; - heapFloat[(fp+-42)] = f5; - f6 = f24+f26; - f20 = heapFloat[(fp+-82)]; - f14 = heapFloat[(fp+-71)]; - f24 = f20*f14; - f10 = f10+f11; - f26 = heapFloat[(fp+-63)]; - f11 = heapFloat[(fp+-57)]; - f30 = f26*f11; - f5 = f15+f13; - heapFloat[(fp+-44)] = f5; - f5 = f22+f16; - heapFloat[(fp+-45)] = f5; - f11 = f29+f23; - f0 = f0+f4; - f4 = f19+f21; - f21 = heapFloat[(fp+-77)]; - f13 = heapFloat[(fp+-37)]; - f14 = f21*f13; - f8 = f8+f12; - f13 = heapFloat[(fp+-72)]; - f2 = f2*f13; - f7 = f7+f9; - f1 = f1*f13; - f23 = heapFloat[(fp+-38)]; - f9 = f17*f23; - f23 = heapFloat[(fp+-39)]; - f12 = f18*f23; - f15 = f25+f27; - f16 = heapFloat[(fp+-70)]; - f17 = f20*f16; - f18 = heapFloat[(fp+-73)]; - f19 = f28*f18; - f5 = heapFloat[(fp+-42)]; - f22 = f3*f5; - f6 = f6+f24; - f10 = f10+f30; - heapFloat[(fp+-43)] = f10; - f4 = f4+f14; - heapFloat[(fp+-74)] = f4; - f14 = heapFloat[(r1+84)]; - f24 = heapFloat[(r1+85)]; - f25 = heapFloat[(r1+86)]; - f4 = heapFloat[(r4+8)]; - heapFloat[(fp+-46)] = f4; - f5 = heapFloat[(r1+100)]; - heapFloat[(fp+-85)] = f5; - f4 = heapFloat[(r4+9)]; - heapFloat[(fp+-47)] = f4; - f5 = heapFloat[(r1+101)]; - heapFloat[(fp+-86)] = f5; - f10 = heapFloat[(r4+10)]; - heapFloat[(fp+-75)] = f10; - f13 = heapFloat[(r1+102)]; - heapFloat[(fp+-84)] = f13; - f2 = f8+f2; - f1 = f7+f1; - f7 = f15+f17; - f8 = heapFloat[(fp+-78)]; - f5 = heapFloat[(fp+-44)]; - f15 = f8*f5; - f16 = heapFloat[(fp+-79)]; - f5 = heapFloat[(fp+-45)]; - f17 = f16*f5; - f18 = heapFloat[(fp+-52)]; - f5 = heapFloat[(fp+-44)]; - f20 = f18*f5; - f21 = heapFloat[(fp+-53)]; - f5 = heapFloat[(fp+-45)]; - f23 = f21*f5; - f9 = f9+f12; - f12 = heapFloat[(fp+-82)]; - f13 = heapFloat[(fp+-72)]; - f12 = f12*f13; - f18 = heapFloat[(fp+-73)]; - f26 = f11*f18; - f5 = heapFloat[(fp+-42)]; - f27 = f0*f5; - f19 = f19+f22; - f10 = heapFloat[(fp+-43)]; - f22 = f6*f10; - f29 = heapFloat[(r3+14)]; - heapFloat[(fp+-82)] = f29; - f30 = heapFloat[(r3+13)]; - heapFloat[(fp+-87)] = f30; - f4 = heapFloat[(r3+12)]; - heapFloat[(fp+-89)] = f4; - f4 = heapFloat[(r4+14)]; - heapFloat[(fp+-88)] = f4; - f4 = heapFloat[(r4+13)]; - heapFloat[(fp+-90)] = f4; - f4 = heapFloat[(r4+12)]; - heapFloat[(fp+-91)] = f4; - r3 = sp + -128; - f9 = f9+f12; - f12 = heapFloat[(fp+-66)]; - f4 = heapFloat[(fp+-46)]; - f12 = f12*f4; - f4 = heapFloat[(fp+-67)]; - f5 = heapFloat[(fp+-47)]; - f4 = f4*f5; - f5 = heapFloat[(fp+-64)]; - f8 = heapFloat[(fp+-46)]; - f5 = f5*f8; - f8 = heapFloat[(fp+-65)]; - f10 = heapFloat[(fp+-47)]; - f8 = f8*f10; - f15 = f15+f17; - f13 = heapFloat[(fp+-61)]; - f17 = heapFloat[(fp+-74)]; - f10 = f13*f17; - f20 = f20+f23; - f16 = heapFloat[(fp+-62)]; - f23 = f16*f17; - f13 = heapFloat[(fp+-56)]; - f16 = heapFloat[(fp+-44)]; - f13 = f13*f16; - f16 = heapFloat[(fp+-58)]; - f17 = heapFloat[(fp+-45)]; - f16 = f16*f17; - f17 = f2*f18; - f18 = heapFloat[(fp+-42)]; - f18 = f1*f18; - f26 = f26+f27; - f27 = heapFloat[(fp+-43)]; - f21 = f7*f27; - f19 = f19+f22; - f10 = f15+f10; - f15 = f20+f23; - r4 = r3 >> 2; - f20 = heapFloat[(fp+-40)]; - f20 = f20*f14; - f22 = heapFloat[(fp+-41)]; - f22 = f22*f24; - f4 = f12+f4; - f12 = heapFloat[(fp+-81)]; - f23 = heapFloat[(fp+-75)]; - f12 = f12*f23; - f5 = f5+f8; - f8 = heapFloat[(fp+-80)]; - f8 = f8*f23; - f23 = heapFloat[(fp+-54)]; - f27 = heapFloat[(fp+-46)]; - f23 = f23*f27; - f27 = heapFloat[(fp+-55)]; - f29 = heapFloat[(fp+-47)]; - f27 = f27*f29; - f13 = f13+f16; - f16 = heapFloat[(fp+-63)]; - f29 = heapFloat[(fp+-74)]; - f16 = f16*f29; - f17 = f17+f18; - f18 = heapFloat[(fp+-43)]; - f18 = f9*f18; - f21 = f26+f21; - heapFloat[(fp+-32)] = f19; - f4 = f4+f12; - f5 = f5+f8; - f8 = f13+f16; - f12 = f20+f22; - f13 = heapFloat[(fp+-71)]; - f13 = f13*f25; - f16 = heapFloat[(fp+-68)]; - f16 = f16*f14; - f19 = heapFloat[(fp+-69)]; - f19 = f19*f24; - f20 = f23+f27; - f22 = heapFloat[(fp+-77)]; - f23 = heapFloat[(fp+-75)]; - f22 = f22*f23; - f26 = f28*f10; - f27 = f3*f15; - f17 = f17+f18; - heapFloat[(r4+1)] = f21; - f18 = f20+f22; - f12 = f12+f13; - heapFloat[(r4+2)] = f17; - f13 = f16+f19; - f16 = heapFloat[(fp+-70)]; - f16 = f16*f25; - f17 = heapFloat[(fp+-38)]; - f14 = f17*f14; - f17 = heapFloat[(fp+-39)]; - f17 = f17*f24; - f19 = heapFloat[(fp+-78)]; - f19 = f19*f4; - f20 = heapFloat[(fp+-79)]; - f20 = f20*f5; - f21 = heapFloat[(fp+-52)]; - f21 = f21*f4; - f22 = heapFloat[(fp+-53)]; - f22 = f22*f5; - f24 = f11*f10; - f23 = f0*f15; - f26 = f26+f27; - f27 = f6*f8; - f29 = heapFloat[(fp+-89)]; - f12 = f12+f29; - f13 = f13+f16; - f14 = f14+f17; - f16 = heapFloat[(fp+-72)]; - f16 = f16*f25; - f17 = f19+f20; - f19 = heapFloat[(fp+-61)]; - f19 = f19*f18; - f20 = f21+f22; - f21 = heapFloat[(fp+-62)]; - f21 = f21*f18; - f22 = heapFloat[(fp+-56)]; - f22 = f22*f4; - f25 = heapFloat[(fp+-58)]; - f25 = f25*f5; - f29 = f2*f10; - f30 = f1*f15; - f23 = f24+f23; - f24 = f7*f8; - f26 = f26+f27; - heap32[(r4+3)] = 0; - f12 = -f12; - f27 = heapFloat[(fp+-87)]; - f13 = f13+f27; - f17 = f17+f19; - f19 = f20+f21; - f14 = f14+f16; - f16 = f22+f25; - f20 = heapFloat[(fp+-63)]; - f20 = f20*f18; - f21 = f29+f30; - f22 = f9*f8; - f23 = f23+f24; - heapFloat[(r4+4)] = f26; - f29 = heapFloat[(fp+-82)]; - f14 = f14+f29; - f16 = f16+f20; - f20 = f28*f12; - f24 = f11*f13; - f25 = f3*f12; - f26 = f0*f13; - f27 = f28*f17; - f3 = f3*f19; - f21 = f21+f22; - heapFloat[(r4+5)] = f23; - f22 = 0; - heapFloat[(r4+6)] = f21; - f20 = f20-f24; - f21 = f2*f14; - f23 = f25-f26; - f24 = f1*f14; - f12 = f6*f12; - f13 = f7*f13; - f25 = heapFloat[(fp+-48)]; - f26 = heapFloat[(fp+-85)]; - f25 = f25*f26; - f28 = heapFloat[(fp+-49)]; - f29 = heapFloat[(fp+-86)]; - f28 = f28*f29; - f11 = f11*f17; - f0 = f0*f19; - f3 = f27+f3; - f6 = f6*f16; - f20 = f20-f21; - f21 = f23-f24; - f23 = heapFloat[(fp+-59)]; - f23 = f23*f26; - f24 = heapFloat[(fp+-60)]; - f24 = f24*f29; - f12 = f12-f13; - f13 = f9*f14; - f14 = heapFloat[(fp+-50)]; - f14 = f14*f22; - f27 = heapFloat[(fp+-51)]; - f27 = f27*f22; - f25 = f25+f28; - f28 = heapFloat[(fp+-83)]; - f30 = heapFloat[(fp+-84)]; - f28 = f28*f30; - f2 = f2*f17; - f1 = f1*f19; - f0 = f11+f0; - f7 = f7*f16; - f3 = f3+f6; - heap32[(r4+7)] = 0; - f6 = f12-f13; - f11 = f25+f28; - f12 = heapFloat[(fp+-46)]; - f12 = f12*f26; - f13 = heapFloat[(fp+-47)]; - f13 = f13*f29; - f25 = heapFloat[(fp+-44)]; - f25 = f25*f22; - f26 = heapFloat[(fp+-45)]; - f26 = f26*f22; - f23 = f23+f24; - f24 = heapFloat[(fp+-37)]; - f24 = f24*f30; - f28 = heapFloat[(fp+-73)]; - f28 = f28*f20; - f29 = heapFloat[(fp+-42)]; - f29 = f29*f21; - f14 = f14+f27; - f27 = heapFloat[(fp+-57)]; - f27 = f27*f22; - f1 = f2+f1; - f2 = f9*f16; - f0 = f0+f7; - heapFloat[(r4+8)] = f3; - f3 = f23+f24; - f4 = f4*f22; - f5 = f5*f22; - f7 = f12+f13; - f23 = heapFloat[(fp+-75)]; - f9 = f23*f30; - f10 = f10*f20; - f12 = f15*f21; - f13 = f25+f26; - f15 = heapFloat[(fp+-74)]; - f15 = f15*f22; - f23 = f28+f29; - f24 = heapFloat[(fp+-43)]; - f24 = f24*f6; - f14 = f14+f27; - f25 = heapFloat[(fp+-91)]; - f11 = f11+f25; - f1 = f1+f2; - heapFloat[(r4+9)] = f0; - f0 = f7+f9; - heapFloat[(r4+10)] = f1; - f1 = f17*f20; - f2 = f19*f21; - f4 = f4+f5; - f5 = f18*f22; - f7 = f10+f12; - f8 = f8*f6; - f9 = f13+f15; - f10 = heapFloat[(fp+-90)]; - f3 = f3+f10; - f10 = f23+f24; - f11 = f14+f11; - f1 = f1+f2; - f2 = f16*f6; - f4 = f4+f5; - f5 = heapFloat[(fp+-88)]; - f0 = f0+f5; - f5 = f7+f8; - f3 = f9+f3; - f6 = f10+f11; - heap32[(r4+11)] = 0; - f1 = f1+f2; - f0 = f4+f0; - f2 = f5+f3; - heapFloat[(r4+12)] = f6; - f0 = f1+f0; - heapFloat[(r4+13)] = f2; - heapFloat[(r4+14)] = f0; - heap32[(r4+15)] = 0; - r4 = sp + -144; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - _ZNK11btMatrix3x311getRotationER12btQuaternion(i7); - r3 = r4 >> 2; - f0 = heapFloat[(r3+2)]; - f1 = heapFloat[(r3+1)]; - f2 = heapFloat[(fp+-36)]; - heapFloat[(r1+112)] = f2; - heapFloat[(r1+113)] = f1; - heapFloat[(r1+114)] = f0; - heap32[(r1+115)] = 0; - f2 = f2*f2; - f1 = f1*f1; - f1 = f2+f1; - f0 = f0*f0; - f0 = f1+f0; - heapFloat[(g0)] = f0; - sqrtf(i7); - f4 = heapFloat[(fp+-76)]; - f0 = f4/f_g0; - f1 = heapFloat[(r1+112)]; - f1 = f1*f0; - heapFloat[(r1+112)] = f1; - f1 = heapFloat[(r1+113)]; - f1 = f1*f0; - heapFloat[(r1+113)] = f1; - f1 = heapFloat[(r1+114)]; - f0 = f1*f0; - heapFloat[(r1+114)] = f0; - f0 = heapFloat[(r3+3)]; - f1 = -1; - f0 = f0 < f1 ? f1 : f0; - f0 = f0 > f4 ? f4 : f0; - heapFloat[(g0)] = f0; - acosf(i7); - f0 = f_g0+f_g0; - heapFloat[(r1+123)] = f0; - if(f0 > 2; - r6 = r6 >> 2; - f0 = heapFloat[(r7+3)]; - f1 = heapFloat[(r6+3)]; - f2 = heapFloat[(fp+-12)]; - f3 = heapFloat[(fp+-16)]; - f4 = heapFloat[(r7+1)]; - f5 = heapFloat[(r6+1)]; - f6 = heapFloat[(r7+2)]; - f7 = heapFloat[(r6+2)]; - r6 = sp + -32; - r7 = (r0 + 352)|0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r6; - _ZNK11btMatrix3x311getRotationER12btQuaternion(i7); - r7 = sp + -16; - heap32[(g0)] = r4; - heap32[(g0+1)] = r7; - _ZNK11btMatrix3x311getRotationER12btQuaternion(i7); - r6 = r6 >> 2; - r7 = r7 >> 2; - f8 = heapFloat[(r7+3)]; - f9 = heapFloat[(r6+3)]; - f10 = heapFloat[(fp+-4)]; - f11 = heapFloat[(r6+1)]; - f12 = heapFloat[(r7+1)]; - f13 = heapFloat[(fp+-8)]; - f14 = heapFloat[(r6+2)]; - f15 = heapFloat[(r7+2)]; - f16 = f8*f9; - f17 = f10*f13; - f18 = f0*f3; - f19 = f2*f1; - f20 = f0*f1; - f21 = f2*f3; - f22 = f8*f13; - f23 = f10*f9; - f24 = f8*f11; - f25 = f12*f9; - f26 = f0*f5; - f27 = f4*f1; - f16 = f16-f17; - f17 = f12*f11; - f18 = f18+f19; - f19 = f4*f7; - f20 = f20-f21; - f21 = f4*f5; - f22 = f22+f23; - f23 = f12*f14; - f0 = f0*f7; - f1 = f6*f1; - f24 = f24+f25; - f25 = f15*f13; - f26 = f26+f27; - f27 = f6*f3; - f8 = f8*f14; - f9 = f15*f9; - f16 = f16-f17; - f17 = f15*f14; - f18 = f18+f19; - f19 = f6*f5; - f20 = f20-f21; - f6 = f6*f7; - f21 = f22+f23; - f15 = f15*f11; - f0 = f0+f1; - f1 = f2*f5; - f5 = f24+f25; - f14 = f10*f14; - f22 = f26+f27; - f2 = f2*f7; - f7 = f8+f9; - f8 = f10*f11; - f9 = f21-f15; - heapFloat[(fp+-46)] = f9; - f10 = f18-f19; - heapFloat[(fp+-49)] = f10; - f5 = f5-f14; - heapFloat[(fp+-45)] = f5; - f6 = f20-f6; - heapFloat[(fp+-52)] = f6; - f11 = f16-f17; - heapFloat[(fp+-48)] = f11; - f2 = f22-f2; - heapFloat[(fp+-50)] = f2; - f0 = f0+f1; - f1 = f4*f3; - f3 = f7+f8; - f4 = f12*f13; - f3 = f3-f4; - heapFloat[(fp+-47)] = f3; - f0 = f0-f1; - heapFloat[(fp+-51)] = f0; - f1 = f11*f2; - f4 = f6*f5; - f7 = f11*f6; - f8 = f10*f9; - f12 = f11*f10; - f13 = f6*f9; - f1 = f1-f4; - f4 = f10*f3; - f7 = f7+f8; - f8 = f2*f5; - f11 = f11*f0; - f6 = f6*f3; - f12 = f12-f13; - f13 = f0*f5; - f1 = f1-f4; - f4 = f0*f9; - f7 = f7+f8; - f0 = f0*f3; - f6 = f11-f6; - f8 = f2*f9; - f11 = f12-f13; - f2 = f2*f3; - f2 = f11+f2; - f1 = f1+f4; - f4 = 0; - f0 = f7+f0; - f6 = f6-f8; - f7 = f10*f5; - f6 = f6+f7; - f7 = f1*f4; - f8 = -f2; - f10 = f0*f4; - f11 = f2*f4; - f12 = f10+f6; - f8 = f8-f7; - f13 = f6*f4; - f7 = f0+f7; - f8 = f8-f13; - f7 = f7-f13; - f12 = f12-f11; - f10 = f10+f11; - f10 = f10-f1; - f11 = f7*f0; - f13 = f8*f2; - f14 = f12*f0; - f15 = f8*f1; - f11 = f11-f13; - f13 = f12*f6; - f14 = f14-f15; - f15 = f10*f2; - f16 = f10*f0; - f8 = f8*f6; - f11 = f11-f13; - f10 = f10*f1; - f13 = f14-f15; - f14 = f7*f6; - f8 = f16-f8; - f7 = f7*f1; - f10 = f11+f10; - f11 = f13+f14; - f7 = f8-f7; - f8 = f12*f2; - f7 = f7+f8; - f8 = f10*f10; - f12 = f11*f11; - f8 = f8+f12; - f12 = f7*f7; - f8 = f8+f12; - heapFloat[(g0)] = f8; - f8 = 1; - sqrtf(i7); - f12 = f8/f_g0; - f11 = f11*f12; - f7 = f7*f12; - f10 = f10*f12; - f12 = f11*f4; - f13 = f7*f4; - f14 = f10+f12; - f14 = f14+f13; - f3 = -f3; - heapFloat[(fp+-43)] = f3; - f3 = -f5; - heapFloat[(fp+-44)] = f3; - f3 = -f9; - heapFloat[(fp+-42)] = f3; - f3 = -0.99999988079071045; - if(f14 >=f3) //_LBB587_9 -{ - f3 = f14+f8; - f3 = f3+f3; - heapFloat[(g0)] = f3; - sqrtf(i7); - f10 = f10*f4; - f5 = 0.5; - f11 = f11-f10; - f9 = f8/f_g0; - f7 = f10-f7; - f13 = f13-f12; - f12 = f_g0*f5; - f11 = f11*f9; - f10 = f7*f9; - f7 = f13*f9; -} -else{ - f7 = -0; - f10 = 1; - f11 = 0; - f12 = f11; -} - f3 = f7*f7; - f5 = f10*f10; - f3 = f3+f5; - f5 = f11*f11; - f3 = f3+f5; - f5 = f12*f12; - f3 = f3+f5; - heapFloat[(g0)] = f3; - sqrtf(i7); - f3 = f_g0; - if(f3 !=f4) //_LBB587_12 -{ - f3 = f8/f3; - f5 = f12*f3; - f7 = f7*f3; - f9 = f10*f3; - f3 = f11*f3; - f10 = f5*f1; - f11 = f0*f9; - f12 = f5*f2; - f13 = f0*f7; - f14 = f5*f6; - f15 = f0*f3; - f10 = f10-f11; - f11 = f2*f3; - f12 = f12-f13; - f13 = f6*f9; - f0 = f5*f0; - f16 = f2*f7; - f14 = f14-f15; - f15 = f1*f7; - f10 = f10-f11; - f11 = f6*f7; - f12 = f12-f13; - f13 = f1*f3; - f10 = f10+f11; - f11 = f12+f13; - f0 = f0+f16; - f1 = f1*f9; - f12 = f14-f15; - f2 = f2*f9; - f2 = f12+f2; - f12 = f11*f11; - f13 = f10*f10; - f0 = f0+f1; - f1 = f6*f3; - f0 = f0+f1; - f1 = f12+f13; - f6 = f2*f2; - f1 = f1+f6; - f6 = f0*f0; - f1 = f1+f6; - heapFloat[(g0)] = f1; - sqrtf(i7); - f1 = f_g0; - if(f1 !=f4) //_LBB587_14 -{ - f1 = f8/f1; - f6 = heapFloat[(r1+108)]; - heapFloat[(fp+-40)] = f6; - f12 = heapFloat[(r1+111)]; - f11 = f11*f1; - heapFloat[(fp+-37)] = f11; - f10 = f10*f1; - heapFloat[(fp+-38)] = f10; - f2 = f2*f1; - heapFloat[(fp+-39)] = f2; - f0 = f0*f1; - heapFloat[(fp+-41)] = f0; - if(f6 f8 ? f8 : f12; - heapFloat[(g0)] = f12; - acosf(i7); - f12 = f_g0+f_g0; - f0 = 1.1920928955078125e-007; - if(f12 >f0) //_LBB587_18 -{ - f4 = f7*f7; - f0 = f9*f9; - f4 = f4+f0; - f0 = f3*f3; - f4 = f4+f0; - heapFloat[(g0)] = f4; - f4 = 1; - sqrtf(i7); - f0 = f4/f_g0; - f1 = f9*f0; - f2 = f7*f0; - f0 = f3*f0; - f3 = f1; //fstod f1, f3 - f3 = Math.abs(f3); - f5 = 1.1920928955078125e-007; - if(f3 >f5) //_LBB587_20 -{ - f3 = heapFloat[(r1+109)]; - f5 = heapFloat[(r1+108)]; - f6 = f0*f0; - f7 = f1*f1; - f6 = f6/f7; - f5 = f5*f5; - f3 = f3*f3; - f5 = f6/f5; - f3 = f4/f3; - f4 = f6+f4; - f3 = f5+f3; - f4 = f4/f3; - heapFloat[(g0)] = f4; - sqrtf(i7); - f4 = f_g0; -} -else{ - f4 = heapFloat[(r1+108)]; -} -} - f3 = heapFloat[(r1+104)]; - f5 = f3*f4; - if(f5 >=f12) //_LBB587_67 -{ -__label__ = 58; -} -else{ - r3 = 1; - heap8[r0+514] = r3; -if(!(f12 >=f4)) //_LBB587_24 -{ - f6 = 0.99999988079071045; - if(f3 f3) //_LBB587_28 -{ - f0 = -f0; - f12 = heapFloat[(r1+109)]; - f3 = heapFloat[(r1+108)]; - f12 = f12/f3; - f3 = f0/f1; - f12 = f12*f3; - f12 = f12*f1; - f12 = f12; //fstod f12, f12 - f12 = Math.abs(f12); - f12 = f12; //fdtos f12, f12 - f3 = 0; - if(f0 <=f3) //_LBB587_30 -{ - f12 = -f12; -} - f0 = f2*f2; - f3 = f1*f1; - f0 = f0+f3; - f3 = f12*f12; - f0 = f0+f3; - heapFloat[(g0)] = f0; - f0 = 1; - sqrtf(i7); - f0 = f0/f_g0; - f12 = -f12; - f2 = f2*f0; - f1 = f1*f0; - f0 = f0*f12; -} - f12 = -f2; - f3 = -f1; - f4 = heapFloat[(fp+-46)]; - f5 = f2*f4; - f6 = heapFloat[(fp+-45)]; - f7 = f6*f1; - f8 = heapFloat[(fp+-48)]; - f12 = f8*f12; - f9 = f6*f0; - f10 = -f0; - f5 = f5+f7; - f7 = heapFloat[(fp+-47)]; - f11 = f7*f0; - f12 = f12-f9; - f9 = f7*f1; - f3 = f8*f3; - f7 = f7*f2; - f12 = f12+f9; - f5 = f5+f11; - f3 = f3-f7; - f0 = f4*f0; - f7 = f8*f10; - f1 = f4*f1; - f0 = f3+f0; - f3 = heapFloat[(fp+-42)]; - f4 = f5*f3; - f9 = f12*f8; - f1 = f7-f1; - f2 = f6*f2; - f1 = f1+f2; - f2 = heapFloat[(fp+-44)]; - f6 = f5*f2; - f7 = f0*f8; - f4 = f4+f9; - f9 = heapFloat[(fp+-43)]; - f10 = f0*f9; - f5 = f5*f9; - f8 = f1*f8; - f6 = f6+f7; - f7 = f1*f3; - f4 = f4+f10; - f1 = f1*f2; - f1 = f4-f1; - f4 = f5+f8; - f2 = f12*f2; - f5 = f6+f7; - f12 = f12*f9; - f2 = f4+f2; - f0 = f0*f3; - f12 = f5-f12; - heapFloat[(r1+112)] = f1; - f0 = f2-f0; - heapFloat[(r1+113)] = f12; - heapFloat[(r1+114)] = f0; - heap32[(r1+115)] = 0; - heap32[(r1+131)] = 0; - heap32[(r1+132)] = 0; - heap32[(r1+133)] = 0; - r3 = r2 >> 2; - heap32[(r1+134)] = 0; - r4 = r5 >> 2; - f2 = heapFloat[(r3+1)]; - f3 = heapFloat[(r3+5)]; - f4 = heapFloat[(r3)]; - f5 = heapFloat[(r3+4)]; - f6 = heapFloat[(r4+1)]; - f7 = heapFloat[(r4+5)]; - f8 = heapFloat[(r4)]; - f9 = heapFloat[(r4+4)]; - f10 = heapFloat[(r3+2)]; - f11 = heapFloat[(r3+6)]; - f13 = heapFloat[(r3+9)]; - f14 = heapFloat[(r3+8)]; - f15 = heapFloat[(r4+2)]; - f16 = heapFloat[(r4+6)]; - f17 = heapFloat[(r4+9)]; - f18 = heapFloat[(r4+8)]; - f4 = f4*f1; - f5 = f5*f12; - f2 = f2*f1; - f3 = f3*f12; - f8 = f8*f1; - f9 = f9*f12; - f6 = f6*f1; - f7 = f7*f12; - f19 = heapFloat[(r3+10)]; - f20 = heapFloat[(r4+10)]; - f4 = f4+f5; - f5 = f14*f0; - f2 = f2+f3; - f3 = f13*f0; - f10 = f10*f1; - f11 = f11*f12; - f8 = f8+f9; - f9 = f18*f0; - f6 = f6+f7; - f7 = f17*f0; - f13 = f15*f1; - f14 = f16*f12; - f4 = f4+f5; - f2 = f2+f3; - f3 = f8+f9; - f5 = f6+f7; - f6 = f10+f11; - f7 = f19*f0; - f8 = f13+f14; - f9 = f20*f0; - f6 = f6+f7; - f7 = f8+f9; - f4 = f1*f4; - f2 = f12*f2; - f1 = f1*f3; - f12 = f12*f5; - f2 = f4+f2; - f3 = f0*f6; - f12 = f1+f12; - f0 = f0*f7; - f1 = f2+f3; - f12 = f12+f0; - f0 = 1; - f12 = f1+f12; - f12 = f0/f12; - heapFloat[(r1+120)] = f12; -__label__ = 58; -} -} -} -_37: do { -if (__label__ == 27){ - r4 = r4 >> 2; - r3 = r3 >> 2; - f0 = heapFloat[(r1+72)]; - f1 = heapFloat[(r3)]; - f2 = heapFloat[(r1+73)]; - f3 = heapFloat[(r3+4)]; - f4 = heapFloat[(r1+74)]; - f5 = heapFloat[(r1+76)]; - f6 = heapFloat[(r3+1)]; - f7 = heapFloat[(r1+77)]; - f8 = heapFloat[(r3+5)]; - f9 = heapFloat[(r1+78)]; - f10 = heapFloat[(r4)]; - f11 = heapFloat[(r1+88)]; - f13 = heapFloat[(r4+4)]; - heapFloat[(fp+-55)] = f13; - f14 = heapFloat[(r4+1)]; - f15 = heapFloat[(r1+92)]; - f13 = heapFloat[(r4+5)]; - heapFloat[(fp+-56)] = f13; - f16 = heapFloat[(r3+8)]; - f17 = heapFloat[(r3+9)]; - f18 = heapFloat[(r4+8)]; - heapFloat[(fp+-53)] = f18; - f19 = heapFloat[(r4+9)]; - heapFloat[(fp+-54)] = f19; - f13 = f1*f0; - heapFloat[(fp+-57)] = f13; - f13 = f6*f5; - heapFloat[(fp+-61)] = f13; - f18 = f3*f0; - heapFloat[(fp+-59)] = f18; - f13 = f8*f5; - heapFloat[(fp+-62)] = f13; - f18 = heapFloat[(r1+80)]; - f19 = heapFloat[(r3+2)]; - f20 = heapFloat[(r1+81)]; - f21 = heapFloat[(r3+6)]; - f22 = heapFloat[(r1+82)]; - f23 = f1*f2; - f24 = f6*f7; - f25 = f3*f2; - f26 = f8*f7; - f10 = f10*f11; - heapFloat[(fp+-60)] = f10; - f10 = f14*f15; - heapFloat[(fp+-63)] = f10; - f10 = heapFloat[(r4+2)]; - heapFloat[(fp+-64)] = f10; - f13 = heapFloat[(r1+96)]; - f14 = heapFloat[(r4+6)]; - heapFloat[(fp+-58)] = f14; - f1 = f1*f4; - f6 = f6*f9; - f27 = heapFloat[(fp+-55)]; - f27 = f27*f11; - f28 = heapFloat[(fp+-56)]; - f28 = f28*f15; - f3 = f3*f4; - f8 = f8*f9; - f29 = heapFloat[(r3+10)]; - f30 = heapFloat[(r4+10)]; - heapFloat[(fp+-55)] = f30; - f10 = heapFloat[(fp+-57)]; - f14 = heapFloat[(fp+-61)]; - f10 = f10+f14; - heapFloat[(fp+-56)] = f10; - f14 = f19*f18; - f10 = heapFloat[(fp+-59)]; - f30 = heapFloat[(fp+-62)]; - f10 = f10+f30; - f30 = f21*f18; - f0 = f16*f0; - heapFloat[(fp+-57)] = f0; - f0 = f17*f5; - heapFloat[(fp+-59)] = f0; - f5 = f23+f24; - f23 = f19*f20; - f24 = f25+f26; - f25 = f21*f20; - f2 = f16*f2; - f7 = f17*f7; - f26 = heapFloat[(fp+-60)]; - f0 = heapFloat[(fp+-63)]; - f0 = f26+f0; - f26 = heapFloat[(fp+-64)]; - f26 = f26*f13; - f1 = f1+f6; - f6 = f19*f22; - f19 = f27+f28; - f27 = heapFloat[(fp+-58)]; - f27 = f27*f13; - f3 = f3+f8; - f8 = f21*f22; - f21 = heapFloat[(fp+-53)]; - f11 = f21*f11; - f21 = heapFloat[(fp+-54)]; - f15 = f21*f15; - f4 = f16*f4; - f9 = f17*f9; - f16 = heapFloat[(fp+-56)]; - f14 = f16+f14; - f0 = f0+f26; - f5 = f5+f23; - f1 = f1+f6; - f6 = f10+f30; - f10 = f19+f27; - f16 = f24+f25; - f3 = f3+f8; - f8 = heapFloat[(fp+-57)]; - f17 = heapFloat[(fp+-59)]; - f8 = f8+f17; - f17 = f29*f18; - f2 = f2+f7; - f7 = f29*f20; - f11 = f11+f15; - f30 = heapFloat[(fp+-55)]; - f13 = f30*f13; - f4 = f4+f9; - f9 = f29*f22; - f8 = f8+f17; - f11 = f11+f13; - f2 = f2+f7; - f4 = f4+f9; - f7 = f0*f5; - f9 = f10*f16; - f13 = f0*f1; - f15 = f10*f3; - f7 = f7+f9; - f9 = f11*f2; - f13 = f13+f15; - f15 = f11*f4; - f7 = f7+f9; - f9 = f13+f15; - f13 = heapFloat[(fp+-40)]; -if(!(f13 >=f12)) //_LBB587_44 -{ - f13 = heapFloat[(r1+109)]; -if(!(f13 >=f12)) //_LBB587_44 -{ - f1 = 0; - if(f7 =f2)) //_LBB587_43 -{ - if(f9 =f12) //_LBB587_56 -{ - f15 = 0; - if(f9 =f9) //_LBB587_63 -{ - f17 = -f12; - if(f9 =f18) //_LBB587_50 -{ - r3 = 1; - heap8[r0+514] = r3; - f17 = heapFloat[(r1+109)]; -if(!(f17 =f7) //_LBB587_53 -{ - f17 = -f12; - if(f7 f2 ? f2 : f1; - heapFloat[(g0)] = f1; - acosf(i7); - f1 = f_g0+f_g0; - heapFloat[(r1+125)] = f1; - f3 = 3.1415927410125732; - if(f1 >f3) //_LBB587_70 -{ - f1 = heapFloat[(fp+-41)]; - f1 = -f1; - f1 = f1 < f0 ? f0 : f1; - f0 = 1; - f1 = f1 > f0 ? f0 : f1; - heapFloat[(g0)] = f1; - acosf(i7); - f0 = heapFloat[(fp+-39)]; - f0 = -f0; - heapFloat[(fp+-39)] = f0; - f0 = heapFloat[(fp+-38)]; - f0 = -f0; - heapFloat[(fp+-38)] = f0; - f0 = heapFloat[(fp+-37)]; - f0 = -f0; - heapFloat[(fp+-37)] = f0; - f1 = f_g0+f_g0; - heapFloat[(r1+125)] = f1; -} - f0 = 1.1920928955078125e-007; - if(f1 >f0) //_LBB587_73 -{ - f1 = heapFloat[(fp+-37)]; - f0 = f1*f1; - f3 = heapFloat[(fp+-38)]; - f4 = f3*f3; - f0 = f0+f4; - f4 = heapFloat[(fp+-39)]; - f5 = f4*f4; - f0 = f0+f5; - heapFloat[(g0)] = f0; - f0 = 1; - sqrtf(i7); - f0 = f0/f_g0; - f1 = f1*f0; - heapFloat[(fp+-37)] = f1; - f3 = f3*f0; - heapFloat[(fp+-38)] = f3; - f4 = f4*f0; - heapFloat[(fp+-39)] = f4; - f1 = heapFloat[(r1+125)]; -} - f0 = heapFloat[(r1+110)]; - f3 = heapFloat[(r1+104)]; - f4 = f0*f3; -if(!(f1 <=f4)) //_LBB587_80 -{ - r3 = 1; - heap8[r0+513] = r3; - if(f1 >=f0) //_LBB587_77 -{ -__label__ = 66; -} -else{ - f5 = 0.99999988079071045; - if(f3 > 2; - heap32[(r1+119)] = 0; - r3 = r5 >> 2; - f1 = heapFloat[(r2+1)]; - f5 = heapFloat[(r2+5)]; - f6 = heapFloat[(r2)]; - f7 = heapFloat[(r2+4)]; - f8 = heapFloat[(r3+1)]; - f9 = heapFloat[(r3+5)]; - f10 = heapFloat[(r3)]; - f11 = heapFloat[(r3+4)]; - f12 = heapFloat[(r2+2)]; - f13 = heapFloat[(r2+6)]; - f14 = heapFloat[(r2+9)]; - f15 = heapFloat[(r2+8)]; - f16 = heapFloat[(r3+2)]; - f17 = heapFloat[(r3+6)]; - f18 = heapFloat[(r3+9)]; - f19 = heapFloat[(r3+8)]; - f6 = f6*f3; - f7 = f7*f4; - f1 = f1*f3; - f5 = f5*f4; - f10 = f10*f3; - f11 = f11*f4; - f8 = f8*f3; - f9 = f9*f4; - f20 = heapFloat[(r2+10)]; - f21 = heapFloat[(r3+10)]; - f6 = f6+f7; - f7 = f15*f0; - f1 = f1+f5; - f5 = f14*f0; - f12 = f12*f3; - f13 = f13*f4; - f10 = f10+f11; - f11 = f19*f0; - f8 = f8+f9; - f9 = f18*f0; - f14 = f16*f3; - f15 = f17*f4; - f6 = f6+f7; - f1 = f1+f5; - f5 = f10+f11; - f7 = f8+f9; - f8 = f12+f13; - f9 = f20*f0; - f10 = f14+f15; - f11 = f21*f0; - f8 = f8+f9; - f9 = f10+f11; - f6 = f3*f6; - f1 = f4*f1; - f3 = f3*f5; - f4 = f4*f7; - f1 = f6+f1; - f5 = f0*f8; - f3 = f3+f4; - f0 = f0*f9; - f1 = f1+f5; - f0 = f3+f0; - f0 = f1+f0; - f0 = f2/f0; - heapFloat[(r1+121)] = f0; -} - r0 = heapU8[r0+514]; - if(r0 ==0) //_LBB587_83 -{ -break _8; -} -else{ - f0 = heapFloat[(fp+-37)]; - f1 = -f0; - f2 = heapFloat[(fp+-38)]; - f3 = -f2; - f4 = heapFloat[(fp+-52)]; - f1 = f4*f1; - f6 = heapFloat[(fp+-39)]; - f5 = heapFloat[(fp+-50)]; - f7 = f5*f6; - f8 = heapFloat[(fp+-49)]; - f9 = f0*f8; - f10 = f5*f2; - f11 = -f6; - f1 = f1-f7; - f7 = heapFloat[(fp+-51)]; - f12 = f7*f2; - f9 = f9+f10; - f10 = f7*f6; - f3 = f4*f3; - f13 = f7*f0; - f1 = f1+f12; - f9 = f9+f10; - f3 = f3-f13; - f6 = f8*f6; - f10 = f4*f11; - f2 = f8*f2; - f3 = f3+f6; - f6 = f1*f4; - f11 = f9*f8; - f2 = f10-f2; - f0 = f5*f0; - f0 = f2+f0; - f2 = f3*f4; - f10 = f9*f5; - f6 = f6-f11; - f11 = f3*f7; - f4 = f0*f4; - f9 = f9*f7; - f2 = f2-f10; - f10 = f0*f8; - f6 = f6-f11; - f0 = f0*f5; - f0 = f6+f0; - f4 = f4-f9; - f5 = f1*f5; - f2 = f2-f10; - f1 = f1*f7; - f4 = f4-f5; - f3 = f3*f8; - f1 = f2+f1; - heapFloat[(r1+131)] = f0; - f0 = f4+f3; - heapFloat[(r1+132)] = f1; - heapFloat[(r1+133)] = f0; - heap32[(r1+134)] = 0; - return; -} -} -} -} - r0 = _2E_str584; - r1 = _2E_str685; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 188; - _assert(i7); -} -} while(0); - return; -} - -function _ZN15btJacobianEntryC2ERK9btVector3RK11btMatrix3x3S5_S2_S2_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - heap32[(r0)] = 0; - heap32[(r0+1)] = 0; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - heap32[(r0+2)] = 0; - r1 = r1 >> 2; - heap32[(r0+3)] = 0; - r2 = r2 >> 2; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r2)]; - f2 = heapFloat[(r1+1)]; - f3 = heapFloat[(r2+1)]; - f4 = heapFloat[(r2+4)]; - f5 = heapFloat[(r2+5)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r1+2)]; - f7 = heapFloat[(r2+2)]; - f8 = heapFloat[(r2+8)]; - f9 = heapFloat[(r2+9)]; - f10 = heapFloat[(r2+10)]; - f11 = heapFloat[(r2+6)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f11*f6; - f1 = f1+f3; - f0 = f0+f2; - f2 = f10*f6; - f3 = f4+f5; - heapFloat[(r0+4)] = f1; - f0 = f0+f2; - heapFloat[(r0+5)] = f3; - heapFloat[(r0+6)] = f0; - heap32[(r0+7)] = 0; - r2 = heap32[(fp+3)]; - r2 = r2 >> 2; - f2 = heapFloat[(r1)]; - f2 = -f2; - f4 = heapFloat[(r2)]; - f5 = heapFloat[(r1+1)]; - f6 = heapFloat[(r2+1)]; - f7 = heapFloat[(r2+4)]; - f8 = heapFloat[(r2+5)]; - f4 = f4*f2; - f6 = f6*f5; - f9 = heapFloat[(r1+2)]; - f10 = heapFloat[(r2+2)]; - f11 = heapFloat[(r2+8)]; - f12 = heapFloat[(r2+9)]; - f13 = heapFloat[(r2+10)]; - f14 = heapFloat[(r2+6)]; - f7 = f7*f2; - f8 = f8*f5; - f4 = f4-f6; - f6 = f10*f9; - f2 = f11*f2; - f5 = f12*f5; - f7 = f7-f8; - f8 = f14*f9; - f4 = f4-f6; - f2 = f2-f5; - f5 = f13*f9; - f6 = f7-f8; - heapFloat[(r0+8)] = f4; - f2 = f2-f5; - heapFloat[(r0+9)] = f6; - r1 = heap32[(fp+4)]; - heapFloat[(r0+10)] = f2; - r1 = r1 >> 2; - heap32[(r0+11)] = 0; - f5 = heapFloat[(r1+2)]; - f7 = heapFloat[(r1+1)]; - f8 = heapFloat[(r1)]; - f8 = f8*f1; - f7 = f7*f3; - heapFloat[(r0+12)] = f8; - f5 = f5*f0; - heapFloat[(r0+13)] = f7; - r1 = heap32[(fp+5)]; - heapFloat[(r0+14)] = f5; - r1 = r1 >> 2; - heap32[(r0+15)] = 0; - f9 = heapFloat[(r1+2)]; - f10 = heapFloat[(r1+1)]; - f11 = heapFloat[(r1)]; - f10 = f10*f6; - f11 = f11*f4; - f9 = f9*f2; - heapFloat[(r0+16)] = f11; - f1 = f8*f1; - f3 = f7*f3; - f4 = f11*f4; - f6 = f10*f6; - heapFloat[(r0+17)] = f10; - f1 = f1+f3; - f0 = f5*f0; - f3 = f4+f6; - f2 = f9*f2; - heapFloat[(r0+18)] = f9; - f0 = f1+f0; - f1 = f3+f2; - f0 = f0+f1; - heap32[(r0+19)] = 0; - f1 = 0; - heapFloat[(r0+20)] = f0; - if(f0 >f1) //_LBB588_2 -{ - return; -} -else{ - r0 = _2E_str846; - r1 = _2E_str947; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 70; - _assert(i7); -} -} - -function _Z21btAdjustAngleToLimitsfff(sp) -{ - var i7; - var fp = sp>>2; - var f0; - var f1; - var f2; - var f3; - var f4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - f0 = heapFloat[(fp+1)]; - f1 = heapFloat[(fp+2)]; - f2 = heapFloat[(fp)]; -_1: do { -if(!(f0 >=f1)) //_LBB589_39 -{ - if(f2 >=f0) //_LBB589_20 -{ - if(f2 <=f1) //_LBB589_39 -{ -break _1; -} -else{ - f1 = f2-f1; - heapFloat[(g0)] = f1; - heap32[(g0+1)] = 1086918619; - fmodf(i7); - f1 = f_g0; - f3 = -3.1415927410125732; - if(f1 >=f3) //_LBB589_23 -{ - f4 = 3.1415927410125732; - if(f1 >f4) //_LBB589_25 -{ - f4 = -6.2831854820251465; - f1 = f1+f4; -} -} -else{ - f4 = 6.2831854820251465; - f1 = f1+f4; -} - f4 = 0; - if(f1 =f3) //_LBB589_31 -{ - f3 = 3.1415927410125732; - if(f0 >f3) //_LBB589_33 -{ - f3 = -6.2831854820251465; - f0 = f0+f3; -} -} -else{ - f3 = 6.2831854820251465; - f0 = f0+f3; -} - if(f0 =f1) //_LBB589_39 -{ -break _1; -} -else{ - f0 = -6.2831854820251465; - f2 = f2+f0; -} -} -} -else{ - f0 = f0-f2; - heapFloat[(g0)] = f0; - heap32[(g0+1)] = 1086918619; - fmodf(i7); - f0 = f_g0; - f3 = -3.1415927410125732; - if(f0 >=f3) //_LBB589_4 -{ - f4 = 3.1415927410125732; - if(f0 >f4) //_LBB589_6 -{ - f4 = -6.2831854820251465; - f0 = f0+f4; -} -} -else{ - f4 = 6.2831854820251465; - f0 = f0+f4; -} - f4 = 0; - if(f0 =f3) //_LBB589_12 -{ - f3 = 3.1415927410125732; - if(f1 >f3) //_LBB589_14 -{ - f3 = -6.2831854820251465; - f1 = f1+f3; -} -} -else{ - f3 = 6.2831854820251465; - f1 = f1+f3; -} - if(f1 >2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 212; - r_g0 = r0; - return; -} - -function _ZNK17btHingeConstraint9serializeEPvP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - r1 = r1 >> 2; - r2 = r0 >> 2; - _ZNK17btTypedConstraint9serializeEPvP12btSerializer(i7); - heap32[(r1+11)] = heap32[(r2+135)]; - heap32[(r1+12)] = heap32[(r2+136)]; - heap32[(r1+13)] = heap32[(r2+137)]; - heap32[(r1+14)] = heap32[(r2+138)]; - heap32[(r1+15)] = heap32[(r2+139)]; - heap32[(r1+16)] = heap32[(r2+140)]; - heap32[(r1+17)] = heap32[(r2+141)]; - heap32[(r1+18)] = heap32[(r2+142)]; - heap32[(r1+19)] = heap32[(r2+143)]; - heap32[(r1+20)] = heap32[(r2+144)]; - heap32[(r1+21)] = heap32[(r2+145)]; - heap32[(r1+22)] = heap32[(r2+146)]; - heap32[(r1+23)] = heap32[(r2+147)]; - heap32[(r1+24)] = heap32[(r2+148)]; - heap32[(r1+25)] = heap32[(r2+149)]; - heap32[(r1+26)] = heap32[(r2+150)]; - heap32[(r1+27)] = heap32[(r2+151)]; - heap32[(r1+28)] = heap32[(r2+152)]; - heap32[(r1+29)] = heap32[(r2+153)]; - heap32[(r1+30)] = heap32[(r2+154)]; - heap32[(r1+31)] = heap32[(r2+155)]; - heap32[(r1+32)] = heap32[(r2+156)]; - heap32[(r1+33)] = heap32[(r2+157)]; - heap32[(r1+34)] = heap32[(r2+158)]; - heap32[(r1+35)] = heap32[(r2+159)]; - heap32[(r1+36)] = heap32[(r2+160)]; - heap32[(r1+37)] = heap32[(r2+161)]; - heap32[(r1+38)] = heap32[(r2+162)]; - heap32[(r1+39)] = heap32[(r2+163)]; - heap32[(r1+40)] = heap32[(r2+164)]; - heap32[(r1+41)] = heap32[(r2+165)]; - heap32[(r1+42)] = heap32[(r2+166)]; - r3 = heapU8[r0+720]; - heap32[(r1+44)] = r3; - r3 = heapU8[r0+721]; - heap32[(r1+45)] = r3; - heap32[(r1+47)] = heap32[(r2+168)]; - heap32[(r1+46)] = heap32[(r2+167)]; - r0 = heapU8[r0+725]; - heap32[(r1+43)] = r0; - heap32[(r1+48)] = heap32[(r2+172)]; - heap32[(r1+49)] = heap32[(r2+173)]; - heap32[(r1+50)] = heap32[(r2+169)]; - heap32[(r1+51)] = heap32[(r2+170)]; - heap32[(r1+52)] = heap32[(r2+171)]; - r0 = _2E_str29; - r_g0 = r0; - return; -} - -function _ZN17btHingeConstraintD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV17btHingeConstraint; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN17btHingeConstraintD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV17btHingeConstraint; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN17btHingeConstraint13buildJacobianEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; -var __label__ = 0; - i7 = sp + -552;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+723]; -if(!(r1 ==0)) //_LBB594_25 -{ - r1 = r0 >> 2; - heap32[(r1+7)] = 0; - heap32[(r1+182)] = 0; - r2 = heapU8[r0+720]; -if(!(r2 !=0)) //_LBB594_13 -{ - r2 = heap32[(r1+6)]; - r3 = heap32[(r1+5)]; - r2 = r2 >> 2; - r3 = r3 >> 2; - f0 = heapFloat[(r2+5)]; - f1 = heapFloat[(r1+163)]; - f2 = heapFloat[(r2+1)]; - f3 = heapFloat[(r2+6)]; - f4 = heapFloat[(r1+164)]; - f5 = heapFloat[(r2+2)]; - f6 = heapFloat[(r3+5)]; - f7 = heapFloat[(r1+147)]; - f8 = heapFloat[(r3+1)]; - f9 = heapFloat[(r3+6)]; - f10 = heapFloat[(r1+148)]; - f11 = heapFloat[(r3+2)]; - f12 = heapFloat[(r2+9)]; - f13 = heapFloat[(r2+10)]; - f14 = heapFloat[(r3+9)]; - f15 = heapFloat[(r3+10)]; - f0 = f0*f1; - f3 = f3*f4; - f16 = heapFloat[(r2+7)]; - f17 = heapFloat[(r1+165)]; - f18 = heapFloat[(r2+3)]; - f6 = f6*f7; - f9 = f9*f10; - f19 = heapFloat[(r3+7)]; - f20 = heapFloat[(r1+149)]; - f21 = heapFloat[(r3+3)]; - f2 = f2*f1; - f5 = f5*f4; - f8 = f8*f7; - f11 = f11*f10; - f22 = heapFloat[(r2+11)]; - f23 = heapFloat[(r3+11)]; - f1 = f12*f1; - f4 = f13*f4; - f7 = f14*f7; - f10 = f15*f10; - f0 = f0+f3; - f3 = f16*f17; - f6 = f6+f9; - f9 = f19*f20; - f2 = f2+f5; - f5 = f18*f17; - f8 = f8+f11; - f11 = f21*f20; - f1 = f1+f4; - f4 = f22*f17; - f7 = f7+f10; - f10 = f23*f20; - f0 = f0+f3; - f3 = heapFloat[(r2+14)]; - f6 = f6+f9; - f9 = heapFloat[(r3+14)]; - f2 = f2+f5; - f5 = heapFloat[(r2+13)]; - f8 = f8+f11; - f11 = heapFloat[(r3+13)]; - f0 = f0+f3; - f3 = f6+f9; - f2 = f2+f5; - f5 = f8+f11; - f1 = f1+f4; - f4 = heapFloat[(r2+15)]; - f6 = f7+f10; - f7 = heapFloat[(r3+15)]; - f8 = f0-f3; - f9 = f2-f5; - f1 = f1+f4; - f4 = f6+f7; - f6 = f1-f4; - f7 = f9*f9; - f10 = f8*f8; - f7 = f7+f10; - f10 = f6*f6; - f7 = f7+f10; - f10 = 1.1920928955078125e-007; - if(f7 >f10) //_LBB594_4 -{ - heapFloat[(g0)] = f7; - f10 = 1; - sqrtf(i7); - f11 = f10/f_g0; - r2 = sp + -512; - f7 = f9*f11; - f8 = f8*f11; - r3 = r2 >> 2; - heapFloat[(fp+-128)] = f7; - f6 = f6*f11; - heapFloat[(r3+1)] = f8; - r2 = (r2 + 8)|0; - heapFloat[(r3+2)] = f6; - heap32[(r3+3)] = 0; - f9 = 0; - if(f6 f11) //_LBB594_9 -{ - f7 = f8*f8; - f8 = f6*f6; - f7 = f7+f8; - heapFloat[(g0)] = f7; - sqrtf(i7); - heap32[(r3+4)] = 0; - f6 = heapFloat[(r3+2)]; - f8 = f10/f_g0; - f6 = -f6; - f6 = f8*f6; - heapFloat[(r3+5)] = f6; - f9 = heapFloat[(r3+1)]; - f9 = f9*f8; - f7 = f7*f8; - heapFloat[(r3+6)] = f9; - heapFloat[(r3+8)] = f7; - f7 = heapFloat[(fp+-128)]; - f8 = -f7; - f8 = f9*f8; - f7 = f7*f6; - heapFloat[(r3+9)] = f8; - heapFloat[(r3+10)] = f7; -__label__ = 10; -} -else{ -__label__ = 9; -} -} -else{ - r2 = sp + -512; - r3 = r2 >> 2; - heap32[(fp+-128)] = 1065353216; - heap32[(r3+1)] = 0; - r2 = (r2 + 8)|0; - f7 = 1; - f8 = 0; - heap32[(r3+2)] = 0; - heap32[(r3+3)] = 0; -__label__ = 9; -} -if (__label__ == 9){ - f6 = f7*f7; - f7 = f8*f8; - f6 = f6+f7; - r3 = sp + -512; - heapFloat[(g0)] = f6; - r3 = r3 >> 2; - sqrtf(i7); - f8 = 1; - f9 = heapFloat[(r3+1)]; - f7 = f8/f_g0; - f8 = -f9; - f8 = f7*f8; - heapFloat[(r3+4)] = f8; - f9 = heapFloat[(fp+-128)]; - f9 = f9*f7; - heapFloat[(r3+5)] = f9; - r2 = r2 >> 2; - heap32[(r3+6)] = 0; - f10 = heapFloat[(r2)]; - f11 = -f10; - f9 = f9*f11; - f8 = f10*f8; - heapFloat[(r3+8)] = f9; - f6 = f6*f7; - heapFloat[(r3+9)] = f8; - heapFloat[(r3+10)] = f6; -} - r2 = (r0 + 36)|0; - r3 = 0; -_16: while(true){ - r4 = heap32[(r1+5)]; - r5 = r4 >> 2; - r6 = sp + -416; - r7 = r6 >> 2; - heap32[(fp+-104)] = heap32[(r5+1)]; - heap32[(r7+1)] = heap32[(r5+5)]; - heap32[(r7+2)] = heap32[(r5+9)]; - heap32[(r7+3)] = 0; - heap32[(r7+4)] = heap32[(r5+2)]; - heap32[(r7+5)] = heap32[(r5+6)]; - heap32[(r7+6)] = heap32[(r5+10)]; - heap32[(r7+7)] = 0; - heap32[(r7+8)] = heap32[(r5+3)]; - heap32[(r7+9)] = heap32[(r5+7)]; - heap32[(r7+10)] = heap32[(r5+11)]; - heap32[(r7+11)] = 0; - r7 = heap32[(r1+6)]; - r8 = sp + -368; - r9 = r7 >> 2; - r10 = r8 >> 2; - heap32[(fp+-92)] = heap32[(r9+1)]; - heap32[(r10+1)] = heap32[(r9+5)]; - heap32[(r10+2)] = heap32[(r9+9)]; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = heap32[(r9+2)]; - heap32[(r10+5)] = heap32[(r9+6)]; - heap32[(r10+6)] = heap32[(r9+10)]; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = heap32[(r9+3)]; - heap32[(r10+9)] = heap32[(r9+7)]; - heap32[(r10+10)] = heap32[(r9+11)]; - heap32[(r10+11)] = 0; - f6 = heapFloat[(r5+13)]; - f7 = heapFloat[(r5+15)]; - f8 = heapFloat[(r5+14)]; - r10 = sp + -320; - f6 = f5-f6; - r11 = r10 >> 2; - f8 = f3-f8; - heapFloat[(fp+-80)] = f6; - f6 = f4-f7; - heapFloat[(r11+1)] = f8; - heapFloat[(r11+2)] = f6; - heap32[(r11+3)] = 0; - f6 = heapFloat[(r9+13)]; - f7 = heapFloat[(r9+15)]; - f8 = heapFloat[(r9+14)]; - r11 = sp + -304; - f6 = f2-f6; - r12 = r11 >> 2; - f8 = f0-f8; - heapFloat[(fp+-76)] = f6; - f6 = f1-f7; - heapFloat[(r12+1)] = f8; - heapFloat[(r12+2)] = f6; - heap32[(r12+3)] = 0; - f6 = heapFloat[(r9+84)]; - f7 = heapFloat[(r5+84)]; - r5 = sp + -512; - r5 = (r5 + r3)|0; - r4 = (r4 + 388)|0; - r7 = (r7 + 388)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r10; - heap32[(g0+4)] = r11; - heap32[(g0+5)] = r5; - heap32[(g0+6)] = r4; - heapFloat[(g0+7)] = f7; - heap32[(g0+8)] = r7; - heapFloat[(g0+9)] = f6; - r3 = (r3 + 16)|0; - r2 = (r2 + 84)|0; - _ZN15btJacobianEntryC2ERK11btMatrix3x3S2_RK9btVector3S5_S5_S5_fS5_f(i7); -if(!(r3 !=48)) //_LBB594_12 -{ -break _16; -} -} -} - f0 = heapFloat[(r1+145)]; - f1 = heapFloat[(r1+137)]; - f2 = heapFloat[(r1+141)]; - f3 = 0; - if(f0 > 2; - f5 = heapFloat[(r3+2)]; - f7 = heapFloat[(r3+1)]; - f8 = heapFloat[(r3+6)]; - f9 = heapFloat[(r3+5)]; - f10 = heapFloat[(r3+3)]; - f11 = f7*f4; - f12 = f5*f6; - f13 = heapFloat[(r3+11)]; - f14 = heapFloat[(r3+7)]; - f15 = heapFloat[(r3+10)]; - f16 = heapFloat[(r3+9)]; - f17 = f9*f4; - f18 = f8*f6; - f11 = f11+f12; - f12 = f10*f3; - r3 = sp + -432; - f4 = f16*f4; - f6 = f15*f6; - f17 = f17+f18; - f18 = f14*f3; - f11 = f11+f12; - r4 = r3 >> 2; - f4 = f4+f6; - f3 = f13*f3; - f6 = f17+f18; - heapFloat[(fp+-108)] = f11; - f11 = f7*f2; - f12 = f5*f0; - f3 = f4+f3; - heapFloat[(r4+1)] = f6; - heapFloat[(r4+2)] = f3; - f3 = f9*f2; - f4 = f8*f0; - f6 = f11+f12; - f11 = f10*f1; - r5 = sp + -448; - f2 = f16*f2; - f0 = f15*f0; - f3 = f3+f4; - f4 = f14*f1; - f6 = f6+f11; - heap32[(r4+3)] = 0; - r4 = r5 >> 2; - f0 = f2+f0; - f1 = f13*f1; - f2 = f3+f4; - heapFloat[(fp+-112)] = f6; - f0 = f0+f1; - heapFloat[(r4+1)] = f2; - heapFloat[(r4+2)] = f0; - heap32[(r4+3)] = 0; - f0 = heapFloat[(r1+137)]; - f1 = heapFloat[(r1+141)]; - f2 = heapFloat[(r1+145)]; - f3 = f7*f0; - f4 = f5*f1; - f6 = f9*f0; - f11 = f8*f1; - f3 = f3+f4; - f4 = f10*f2; - r4 = sp + -464; - f0 = f16*f0; - f1 = f15*f1; - f6 = f6+f11; - f11 = f14*f2; - f3 = f3+f4; - r6 = r4 >> 2; - f0 = f0+f1; - f1 = f13*f2; - f2 = f6+f11; - heapFloat[(fp+-116)] = f3; - f0 = f0+f1; - heapFloat[(r6+1)] = f2; - heapFloat[(r6+2)] = f0; - r7 = sp + -288; - heap32[(r6+3)] = 0; - r6 = r7 >> 2; - heapFloat[(fp+-72)] = f7; - heapFloat[(r6+1)] = f9; - heapFloat[(r6+2)] = f16; - heap32[(r6+3)] = 0; - heapFloat[(r6+4)] = f5; - heapFloat[(r6+5)] = f8; - heapFloat[(r6+6)] = f15; - heap32[(r6+7)] = 0; - heapFloat[(r6+8)] = f10; - heapFloat[(r6+9)] = f14; - heapFloat[(r6+10)] = f13; - heap32[(r6+11)] = 0; - r6 = heap32[(r1+6)]; - r8 = sp + -240; - r9 = r6 >> 2; - r10 = r8 >> 2; - heap32[(fp+-60)] = heap32[(r9+1)]; - heap32[(r10+1)] = heap32[(r9+5)]; - heap32[(r10+2)] = heap32[(r9+9)]; - heap32[(r10+3)] = 0; - heap32[(r10+4)] = heap32[(r9+2)]; - heap32[(r10+5)] = heap32[(r9+6)]; - heap32[(r10+6)] = heap32[(r9+10)]; - heap32[(r10+7)] = 0; - heap32[(r10+8)] = heap32[(r9+3)]; - heap32[(r10+9)] = heap32[(r9+7)]; - heap32[(r10+10)] = heap32[(r9+11)]; - heap32[(r10+11)] = 0; - r9 = (r0 + 288)|0; - r2 = (r2 + 388)|0; - r6 = (r6 + 388)|0; - heap32[(g0)] = r9; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = r8; - heap32[(g0+4)] = r2; - heap32[(g0+5)] = r6; - _ZN15btJacobianEntryC2ERK9btVector3RK11btMatrix3x3S5_S2_S2_(i7); - r2 = heap32[(r1+5)]; - r3 = sp + -192; - r6 = r2 >> 2; - r7 = r3 >> 2; - heap32[(fp+-48)] = heap32[(r6+1)]; - heap32[(r7+1)] = heap32[(r6+5)]; - heap32[(r7+2)] = heap32[(r6+9)]; - heap32[(r7+3)] = 0; - heap32[(r7+4)] = heap32[(r6+2)]; - heap32[(r7+5)] = heap32[(r6+6)]; - heap32[(r7+6)] = heap32[(r6+10)]; - heap32[(r7+7)] = 0; - heap32[(r7+8)] = heap32[(r6+3)]; - heap32[(r7+9)] = heap32[(r6+7)]; - heap32[(r7+10)] = heap32[(r6+11)]; - heap32[(r7+11)] = 0; - r6 = heap32[(r1+6)]; - r7 = sp + -144; - r8 = r6 >> 2; - r9 = r7 >> 2; - heap32[(fp+-36)] = heap32[(r8+1)]; - heap32[(r9+1)] = heap32[(r8+5)]; - heap32[(r9+2)] = heap32[(r8+9)]; - heap32[(r9+3)] = 0; - heap32[(r9+4)] = heap32[(r8+2)]; - heap32[(r9+5)] = heap32[(r8+6)]; - heap32[(r9+6)] = heap32[(r8+10)]; - heap32[(r9+7)] = 0; - heap32[(r9+8)] = heap32[(r8+3)]; - heap32[(r9+9)] = heap32[(r8+7)]; - heap32[(r9+10)] = heap32[(r8+11)]; - heap32[(r9+11)] = 0; - r8 = (r0 + 372)|0; - r2 = (r2 + 388)|0; - r6 = (r6 + 388)|0; - heap32[(g0)] = r8; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = r2; - heap32[(g0+5)] = r6; - _ZN15btJacobianEntryC2ERK9btVector3RK11btMatrix3x3S5_S2_S2_(i7); - r2 = heap32[(r1+5)]; - r3 = sp + -96; - r5 = r2 >> 2; - r6 = r3 >> 2; - heap32[(fp+-24)] = heap32[(r5+1)]; - heap32[(r6+1)] = heap32[(r5+5)]; - heap32[(r6+2)] = heap32[(r5+9)]; - heap32[(r6+3)] = 0; - heap32[(r6+4)] = heap32[(r5+2)]; - heap32[(r6+5)] = heap32[(r5+6)]; - heap32[(r6+6)] = heap32[(r5+10)]; - heap32[(r6+7)] = 0; - heap32[(r6+8)] = heap32[(r5+3)]; - heap32[(r6+9)] = heap32[(r5+7)]; - heap32[(r6+10)] = heap32[(r5+11)]; - heap32[(r6+11)] = 0; - r5 = heap32[(r1+6)]; - r6 = sp + -48; - r7 = r5 >> 2; - r8 = r6 >> 2; - heap32[(fp+-12)] = heap32[(r7+1)]; - heap32[(r8+1)] = heap32[(r7+5)]; - heap32[(r8+2)] = heap32[(r7+9)]; - heap32[(r8+3)] = 0; - heap32[(r8+4)] = heap32[(r7+2)]; - heap32[(r8+5)] = heap32[(r7+6)]; - heap32[(r8+6)] = heap32[(r7+10)]; - heap32[(r8+7)] = 0; - heap32[(r8+8)] = heap32[(r7+3)]; - heap32[(r8+9)] = heap32[(r7+7)]; - heap32[(r8+10)] = heap32[(r7+11)]; - heap32[(r8+11)] = 0; - r7 = (r0 + 456)|0; - r2 = (r2 + 388)|0; - r5 = (r5 + 388)|0; - heap32[(g0)] = r7; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r6; - heap32[(g0+4)] = r2; - heap32[(g0+5)] = r5; - _ZN15btJacobianEntryC2ERK9btVector3RK11btMatrix3x3S5_S2_S2_(i7); - heap32[(r1+177)] = 0; - r2 = heap32[(r1+6)]; - r3 = heap32[(r1+5)]; - r3 = (r3 + 4)|0; - r2 = (r2 + 4)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r2; - _ZN17btHingeConstraint13getHingeAngleERK11btTransformS2_(i7); - f0 = f_g0; - heapFloat[(r1+178)] = f0; - heap32[(r1+176)] = 0; - r2 = 0; - heap32[(r1+175)] = 0; - heap8[r0+722] = r2; - f1 = heapFloat[(r1+172)]; - f2 = heapFloat[(r1+173)]; -if(!(f1 >f2)) //_LBB594_24 -{ - heapFloat[(g0)] = f0; - heapFloat[(g0+1)] = f1; - heapFloat[(g0+2)] = f2; - _Z21btAdjustAngleToLimitsfff(i7); - f0 = f_g0; - heapFloat[(r1+178)] = f0; - f1 = heapFloat[(r1+172)]; - if(f0 >f1) //_LBB594_22 -{ - f1 = heapFloat[(r1+173)]; -if(!(f0 > 2; - f0 = heapFloat[(r1+137)]; - f1 = heapFloat[(r0+5)]; - f2 = heapFloat[(r0+1)]; - f3 = heapFloat[(r1+141)]; - f4 = heapFloat[(r0+6)]; - f5 = heapFloat[(r0+2)]; - f6 = heapFloat[(r0+9)]; - f7 = heapFloat[(r0+10)]; - r2 = heap32[(r1+6)]; - f2 = f2*f0; - f5 = f5*f3; - f1 = f1*f0; - f4 = f4*f3; - f8 = heapFloat[(r1+145)]; - f9 = heapFloat[(r0+7)]; - f10 = heapFloat[(r0+3)]; - r2 = r2 >> 2; - f11 = heapFloat[(r0+11)]; - f0 = f6*f0; - f3 = f7*f3; - f2 = f2+f5; - f5 = f10*f8; - f1 = f1+f4; - f4 = f9*f8; - f0 = f0+f3; - f3 = f11*f8; - f2 = f2+f5; - f5 = heapFloat[(r0+65)]; - f6 = heapFloat[(r0+64)]; - f7 = heapFloat[(r2+65)]; - f8 = heapFloat[(r2+64)]; - f1 = f1+f4; - f4 = heapFloat[(r0+69)]; - f9 = heapFloat[(r0+68)]; - f10 = heapFloat[(r2+69)]; - f11 = heapFloat[(r2+68)]; - f12 = heapFloat[(r0+66)]; - f13 = heapFloat[(r0+70)]; - f14 = heapFloat[(r2+66)]; - f15 = heapFloat[(r2+70)]; - f6 = f6*f2; - f9 = f9*f1; - f5 = f5*f2; - f4 = f4*f1; - f8 = f8*f2; - f11 = f11*f1; - f7 = f7*f2; - f10 = f10*f1; - f0 = f0+f3; - f3 = heapFloat[(r0+73)]; - f16 = heapFloat[(r0+72)]; - f17 = heapFloat[(r2+73)]; - f18 = heapFloat[(r2+72)]; - f19 = heapFloat[(r0+74)]; - f20 = heapFloat[(r2+74)]; - f6 = f6+f9; - f9 = f16*f0; - f4 = f5+f4; - f3 = f3*f0; - f5 = f12*f2; - f12 = f13*f1; - f8 = f8+f11; - f11 = f18*f0; - f7 = f7+f10; - f10 = f17*f0; - f13 = f14*f2; - f14 = f15*f1; - f6 = f6+f9; - f3 = f4+f3; - f4 = f8+f11; - f7 = f7+f10; - f5 = f5+f12; - f8 = f19*f0; - f9 = f13+f14; - f10 = f20*f0; - f5 = f5+f8; - f8 = f9+f10; - f6 = f2*f6; - f3 = f1*f3; - f2 = f2*f4; - f1 = f1*f7; - f3 = f6+f3; - f4 = f0*f5; - f1 = f2+f1; - f0 = f0*f8; - f2 = f3+f4; - f0 = f1+f0; - f1 = 1; - f0 = f2+f0; - f0 = f1/f0; - heapFloat[(r1+174)] = f0; -} - return; -} - -function _ZN17btHingeConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heapU8[r0+723]; - if(r2 ==0) //_LBB595_2 -{ - r1 = r1 >> 2; - heap32[(r1)] = 5; - heap32[(r1+1)] = 1; - r2 = r0 >> 2; - r3 = heap32[(r2+6)]; - r4 = heap32[(r2+5)]; - r4 = (r4 + 4)|0; - r3 = (r3 + 4)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r3; - _ZN17btHingeConstraint13getHingeAngleERK11btTransformS2_(i7); - f0 = f_g0; - heapFloat[(r2+178)] = f0; - heap32[(r2+176)] = 0; - r3 = 0; - heap32[(r2+175)] = 0; - heap8[r0+722] = r3; - f1 = heapFloat[(r2+172)]; - f2 = heapFloat[(r2+173)]; - if(f1 >f2) //_LBB595_8 -{ -__label__ = 8; -} -else{ - heapFloat[(g0)] = f0; - heapFloat[(g0+1)] = f1; - heapFloat[(g0+2)] = f2; - _Z21btAdjustAngleToLimitsfff(i7); - f0 = f_g0; - heapFloat[(r2+178)] = f0; - f1 = heapFloat[(r2+172)]; - if(f0 >f1) //_LBB595_5 -{ - f1 = heapFloat[(r2+173)]; - if(f0 > 2; - heap32[(r0)] = 0; - heap32[(r0+1)] = 0; - return; -} -} - -function _ZN17btHingeConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -136;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(fp+1)]; - r3 = heap32[(r1+6)]; - r4 = heap32[(r1+5)]; - r5 = heapU8[r0+723]; - r6 = heapU8[r0+724]; -_1: do { - if(r6 ==0) //_LBB596_60 -{ - r5 = r5 & 255; - if(r5 ==0) //_LBB596_62 -{ - r4 = r4 >> 2; - r3 = r3 >> 2; - f0 = heapFloat[(r1+147)]; - f1 = heapFloat[(r4+9)]; - f2 = heapFloat[(r4+5)]; - f3 = heapFloat[(r4+1)]; - f4 = heapFloat[(r1+148)]; - f5 = heapFloat[(r4+10)]; - f6 = heapFloat[(r4+6)]; - f7 = heapFloat[(r4+2)]; - f8 = heapFloat[(r1+163)]; - f9 = heapFloat[(r3+9)]; - heapFloat[(fp+-3)] = f9; - f10 = heapFloat[(r3+5)]; - heapFloat[(fp+-2)] = f10; - f11 = heapFloat[(r3+1)]; - heapFloat[(fp+-1)] = f11; - f12 = heapFloat[(r1+164)]; - f13 = heapFloat[(r3+10)]; - f14 = heapFloat[(r3+6)]; - f9 = heapFloat[(r3+2)]; - heapFloat[(fp+-7)] = f9; - f10 = heapFloat[(r1+137)]; - f11 = heapFloat[(r1+141)]; - f15 = heapFloat[(r1+136)]; - f16 = heapFloat[(r1+140)]; - f17 = heapFloat[(r1+135)]; - f18 = heapFloat[(r1+139)]; - f19 = heapFloat[(r1+153)]; - f20 = heapFloat[(r1+157)]; - f21 = f1*f0; - f22 = f5*f4; - f23 = f2*f0; - f24 = f6*f4; - f0 = f3*f0; - f4 = f7*f4; - f25 = heapFloat[(r1+149)]; - f26 = heapFloat[(r4+11)]; - f27 = heapFloat[(r4+7)]; - f28 = heapFloat[(r4+3)]; - f9 = heapFloat[(fp+-3)]; - f29 = f9*f8; - heapFloat[(fp+-8)] = f29; - f30 = f13*f12; - heapFloat[(fp+-10)] = f30; - f9 = heapFloat[(fp+-2)]; - f9 = f9*f8; - heapFloat[(fp+-9)] = f9; - f9 = f14*f12; - heapFloat[(fp+-12)] = f9; - f9 = heapFloat[(fp+-1)]; - f8 = f9*f8; - heapFloat[(fp+-11)] = f8; - f9 = heapFloat[(fp+-7)]; - f12 = f9*f12; - heapFloat[(fp+-13)] = f12; - f8 = heapFloat[(r1+165)]; - f9 = heapFloat[(r3+11)]; - heapFloat[(fp+-4)] = f9; - f9 = heapFloat[(r3+7)]; - heapFloat[(fp+-6)] = f9; - f9 = heapFloat[(r3+3)]; - heapFloat[(fp+-5)] = f9; - f9 = heapFloat[(r1+145)]; - f12 = heapFloat[(r1+144)]; - f29 = heapFloat[(r1+143)]; - f30 = heapFloat[(r1+161)]; - f21 = f21+f22; - heapFloat[(fp+-15)] = f21; - f22 = f26*f25; - f21 = f23+f24; - heapFloat[(fp+-16)] = f21; - f23 = f27*f25; - f0 = f0+f4; - heapFloat[(fp+-14)] = f0; - f0 = f28*f25; - heapFloat[(fp+-23)] = f0; - f0 = f10*f1; - heapFloat[(fp+-24)] = f0; - f4 = f11*f5; - f21 = f15*f1; - heapFloat[(fp+-18)] = f21; - f24 = f16*f5; - f1 = f17*f1; - heapFloat[(fp+-20)] = f1; - f5 = f18*f5; - f25 = f10*f2; - heapFloat[(fp+-17)] = f25; - f0 = f11*f6; - f1 = f15*f2; - heapFloat[(fp+-19)] = f1; - f1 = f16*f6; - heapFloat[(fp+-28)] = f1; - f2 = f17*f2; - heapFloat[(fp+-21)] = f2; - f1 = f18*f6; - heapFloat[(fp+-29)] = f1; - f2 = f10*f3; - heapFloat[(fp+-25)] = f2; - f6 = f11*f7; - f10 = f15*f3; - heapFloat[(fp+-26)] = f10; - f11 = f16*f7; - f3 = f17*f3; - heapFloat[(fp+-22)] = f3; - f7 = f18*f7; - f15 = heapFloat[(fp+-8)]; - f16 = heapFloat[(fp+-10)]; - f15 = f15+f16; - heapFloat[(fp+-27)] = f15; - f16 = heapFloat[(fp+-4)]; - f17 = f16*f8; - f18 = heapFloat[(fp+-9)]; - f21 = heapFloat[(fp+-12)]; - f18 = f18+f21; - heapFloat[(fp+-8)] = f18; - f21 = heapFloat[(fp+-6)]; - f25 = f21*f8; - f1 = heapFloat[(fp+-11)]; - f2 = heapFloat[(fp+-13)]; - f1 = f1+f2; - heapFloat[(fp+-9)] = f1; - f2 = heapFloat[(fp+-5)]; - f1 = f2*f8; - heapFloat[(fp+-11)] = f1; - f2 = heapFloat[(fp+-3)]; - f2 = f19*f2; - heapFloat[(fp+-3)] = f2; - f1 = f20*f13; - heapFloat[(fp+-12)] = f1; - f2 = heapFloat[(fp+-2)]; - f2 = f19*f2; - heapFloat[(fp+-10)] = f2; - f1 = f20*f14; - heapFloat[(fp+-13)] = f1; - f2 = heapFloat[(fp+-1)]; - f2 = f19*f2; - heapFloat[(fp+-2)] = f2; - f3 = heapFloat[(fp+-7)]; - f1 = f20*f3; - heapFloat[(fp+-30)] = f1; - r5 = r2 >> 2; - f2 = heapFloat[(r4+15)]; - f3 = heapFloat[(fp+-15)]; - f3 = f3+f22; - heapFloat[(fp+-7)] = f3; - f8 = heapFloat[(r4+14)]; - f10 = heapFloat[(fp+-16)]; - f1 = f10+f23; - heapFloat[(fp+-15)] = f1; - f1 = heapFloat[(r4+13)]; - heapFloat[(fp+-1)] = f1; - f3 = heapFloat[(fp+-14)]; - f10 = heapFloat[(fp+-23)]; - f3 = f3+f10; - heapFloat[(fp+-16)] = f3; - f10 = heapFloat[(fp+-24)]; - f4 = f10+f4; - heapFloat[(fp+-14)] = f4; - f1 = f9*f26; - heapFloat[(fp+-23)] = f1; - f3 = heapFloat[(fp+-18)]; - f1 = f3+f24; - heapFloat[(fp+-18)] = f1; - f3 = f12*f26; - f4 = heapFloat[(fp+-20)]; - f4 = f4+f5; - f5 = f29*f26; - f10 = heapFloat[(fp+-17)]; - f0 = f10+f0; - f10 = f9*f27; - f13 = heapFloat[(fp+-19)]; - f14 = heapFloat[(fp+-28)]; - f13 = f13+f14; - f14 = f12*f27; - f15 = heapFloat[(fp+-21)]; - f16 = heapFloat[(fp+-29)]; - f15 = f15+f16; - f16 = f29*f27; - f18 = heapFloat[(fp+-25)]; - f6 = f18+f6; - f9 = f9*f28; - f18 = heapFloat[(fp+-26)]; - f11 = f18+f11; - f12 = f12*f28; - f18 = heapFloat[(fp+-22)]; - f7 = f18+f7; - f18 = f29*f28; - f19 = heapFloat[(fp+-27)]; - f17 = f19+f17; - f19 = heapFloat[(r3+15)]; - f20 = heapFloat[(fp+-8)]; - f20 = f20+f25; - f21 = heapFloat[(r3+14)]; - f22 = heapFloat[(fp+-9)]; - f23 = heapFloat[(fp+-11)]; - f22 = f22+f23; - f23 = heapFloat[(r3+13)]; - f24 = heapFloat[(fp+-3)]; - f25 = heapFloat[(fp+-12)]; - f24 = f24+f25; - f25 = heapFloat[(fp+-4)]; - f25 = f30*f25; - f26 = heapFloat[(fp+-10)]; - f27 = heapFloat[(fp+-13)]; - f26 = f26+f27; - f27 = heapFloat[(fp+-6)]; - f27 = f30*f27; - f28 = heapFloat[(fp+-2)]; - f29 = heapFloat[(fp+-30)]; - f28 = f28+f29; - f29 = heapFloat[(fp+-5)]; - f29 = f30*f29; - r6 = heap32[(r5+6)]; - f30 = heapFloat[(fp+-7)]; - f30 = f30+f2; - heapFloat[(fp+-2)] = f30; - f30 = heapFloat[(fp+-15)]; - f30 = f30+f8; - heapFloat[(fp+-3)] = f30; - f30 = heapFloat[(fp+-16)]; - f1 = heapFloat[(fp+-1)]; - f1 = f30+f1; - heapFloat[(fp+-4)] = f1; - f1 = heapFloat[(fp+-14)]; - f30 = heapFloat[(fp+-23)]; - f1 = f1+f30; - f30 = heapFloat[(fp+-18)]; - f3 = f30+f3; - f4 = f4+f5; - f0 = f0+f10; - f5 = f13+f14; - f10 = f15+f16; - f6 = f6+f9; - f9 = f11+f12; - f7 = f7+f18; - f11 = f17+f19; - f12 = f20+f21; - f13 = f22+f23; - f14 = f24+f25; - f15 = f26+f27; - f16 = f28+f29; - r7 = heapU8[r0+720]; - if(r7 ==0) //_LBB596_64 -{ - r7 = heap32[(r5+2)]; - r7 = r7 >> 2; - heap32[(r7)] = 1065353216; - r7 = r6 << 2; - r8 = heap32[(r5+2)]; - r7 = (r7 + r8)|0; - r7 = r7 >> 2; - heap32[(r7+1)] = 1065353216; - r7 = r6 << 3; - r8 = heap32[(r5+2)]; - r7 = (r7 + r8)|0; - r7 = r7 >> 2; - heap32[(r7+2)] = 1065353216; - f2 = heapFloat[(r4+15)]; - f8 = heapFloat[(r4+14)]; - f17 = heapFloat[(r4+13)]; - heapFloat[(fp+-1)] = f17; -} - r7 = heap32[(r5+3)]; - r8 = r7 >> 2; - f17 = heapFloat[(fp+-3)]; - f8 = f17-f8; - f17 = heapFloat[(fp+-2)]; - f2 = f17-f2; - heap32[(r8)] = 0; - r9 = (r6 + 1)|0; - r10 = r6 << 2; - f17 = -f8; - heapFloat[(r8+1)] = f2; - r11 = (r6 + 2)|0; - r9 = r9 << 2; - r12 = (r7 + r10)|0; - heapFloat[(r8+2)] = f17; - r13 = (r6 + 3)|0; - r11 = r11 << 2; - r14 = (r7 + r9)|0; - r12 = r12 >> 2; - f2 = -f2; - heap32[(r8+3)] = 0; - r8 = r13 << 2; - r13 = (r7 + r11)|0; - r14 = r14 >> 2; - heapFloat[(r12)] = f2; - r12 = r6 << 3; - r15 = (r7 + r8)|0; - f17 = heapFloat[(fp+-4)]; - f2 = heapFloat[(fp+-1)]; - f2 = f17-f2; - r13 = r13 >> 2; - heap32[(r14)] = 0; - r14 = r12 | 4; - r16 = (r7 + r12)|0; - r15 = r15 >> 2; - heapFloat[(r13)] = f2; - r13 = (r12 + 8)|0; - r17 = (r7 + r14)|0; - r16 = r16 >> 2; - heap32[(r15)] = 0; - r15 = (r12 + 12)|0; - r18 = (r7 + r13)|0; - r17 = r17 >> 2; - f2 = -f2; - heapFloat[(r16)] = f8; - r7 = (r7 + r15)|0; - r16 = r18 >> 2; - heapFloat[(r17)] = f2; - r7 = r7 >> 2; - heap32[(r16)] = 0; - heap32[(r7)] = 0; - r7 = heap32[(r5+5)]; - f2 = heapFloat[(r3+15)]; - f8 = heapFloat[(r3+14)]; - f17 = heapFloat[(r3+13)]; - f2 = f11-f2; - r16 = r7 >> 2; - f18 = -f2; - heap32[(r16)] = 0; - f8 = f12-f8; - heapFloat[(r16+1)] = f18; - r17 = (r7 + r10)|0; - heapFloat[(r16+2)] = f8; - r9 = (r7 + r9)|0; - r17 = r17 >> 2; - heap32[(r16+3)] = 0; - f17 = f13-f17; - r11 = (r7 + r11)|0; - r9 = r9 >> 2; - heapFloat[(r17)] = f2; - r8 = (r7 + r8)|0; - r11 = r11 >> 2; - f2 = -f17; - heap32[(r9)] = 0; - r9 = (r7 + r12)|0; - r8 = r8 >> 2; - heapFloat[(r11)] = f2; - r11 = (r7 + r14)|0; - r9 = r9 >> 2; - f2 = -f8; - heap32[(r8)] = 0; - r8 = (r7 + r13)|0; - r11 = r11 >> 2; - heapFloat[(r9)] = f2; - r7 = (r7 + r15)|0; - r8 = r8 >> 2; - heapFloat[(r11)] = f17; - r7 = r7 >> 2; - heap32[(r8)] = 0; - heap32[(r7)] = 0; - f2 = heapFloat[(r5)]; - f8 = heapFloat[(r5+1)]; - f2 = f2*f8; - r7 = heapU8[r0+720]; -if(!(r7 !=0)) //_LBB596_67 -{ - r6 = r6 << 1; - r7 = heap32[(r5+7)]; - f8 = heapFloat[(fp+-4)]; - f8 = f13-f8; - r7 = r7 >> 2; - f8 = f8*f2; - heapFloat[(r7)] = f8; - r7 = heap32[(r5+7)]; - r7 = (r7 + r10)|0; - f8 = heapFloat[(fp+-3)]; - f8 = f12-f8; - r7 = r7 >> 2; - f8 = f8*f2; - heapFloat[(r7)] = f8; - r6 = r6 << 2; - r7 = heap32[(r5+7)]; - r6 = (r7 + r6)|0; - f8 = heapFloat[(fp+-2)]; - f8 = f11-f8; - r6 = r6 >> 2; - f8 = f8*f2; - heapFloat[(r6)] = f8; -} - r2 = (r2 + 4)|0; - r6 = heap32[(r5+6)]; - r7 = (r6 * 3)|0; - r8 = heap32[(r5+3)]; - r9 = r7 << 2; - r8 = (r8 + r9)|0; - r8 = r8 >> 2; - r10 = (r7 + 1)|0; - heapFloat[(r8)] = f7; - r8 = r10 << 2; - r10 = heap32[(r5+3)]; - r10 = (r10 + r8)|0; - r10 = r10 >> 2; - r7 = (r7 + 2)|0; - heapFloat[(r10)] = f10; - r7 = r7 << 2; - r10 = heap32[(r5+3)]; - r10 = (r10 + r7)|0; - r10 = r10 >> 2; - heapFloat[(r10)] = f4; - r6 = r6 << 4; - r10 = heap32[(r5+3)]; - r10 = (r10 + r6)|0; - r10 = r10 >> 2; - heapFloat[(r10)] = f9; - r10 = r6 | 4; - r11 = heap32[(r5+3)]; - r11 = (r11 + r10)|0; - r11 = r11 >> 2; - heapFloat[(r11)] = f5; - r11 = r6 | 8; - r12 = heap32[(r5+3)]; - r12 = (r12 + r11)|0; - r12 = r12 >> 2; - heapFloat[(r12)] = f3; - r12 = heap32[(r5+5)]; - r12 = (r12 + r9)|0; - r12 = r12 >> 2; - f8 = -f7; - heapFloat[(r12)] = f8; - r12 = heap32[(r5+5)]; - r8 = (r12 + r8)|0; - r8 = r8 >> 2; - f8 = -f10; - heapFloat[(r8)] = f8; - r8 = heap32[(r5+5)]; - r7 = (r8 + r7)|0; - r7 = r7 >> 2; - f8 = -f4; - heapFloat[(r7)] = f8; - r7 = heap32[(r5+5)]; - r7 = (r7 + r6)|0; - r7 = r7 >> 2; - f8 = -f9; - heapFloat[(r7)] = f8; - r7 = heap32[(r5+5)]; - r7 = (r7 + r10)|0; - r7 = r7 >> 2; - f8 = -f5; - heapFloat[(r7)] = f8; - r7 = heap32[(r5+5)]; - r7 = (r7 + r11)|0; - f8 = f0*f14; - f11 = f1*f15; - f12 = f1*f16; - f13 = f6*f14; - f8 = f8-f11; - f11 = f12-f13; - f12 = f6*f15; - f13 = f0*f16; - r7 = r7 >> 2; - f14 = -f3; - f12 = f12-f13; - heapFloat[(r7)] = f14; - f7 = f8*f7; - f10 = f11*f10; - r7 = heap32[(r5+7)]; - f7 = f7+f10; - f4 = f12*f4; - r7 = (r7 + r9)|0; - f4 = f7+f4; - r7 = r7 >> 2; - f4 = f4*f2; - heapFloat[(r7)] = f4; - f4 = f8*f9; - f5 = f11*f5; - r7 = heap32[(r5+7)]; - f4 = f4+f5; - f3 = f12*f3; - r6 = (r7 + r6)|0; - f3 = f4+f3; - r6 = r6 >> 2; - f2 = f3*f2; - heapFloat[(r6)] = f2; - r6 = heapU8[r0+722]; - if(r6 !=0) //_LBB596_69 -{ - f2 = heapFloat[(r1+176)]; - f3 = heapFloat[(r1+179)]; - f2 = f2*f3; - f3 = 0; - r6 = 1; - r7 = 2; - r6 = f2 > f3 ? r6 : r7; -} -else{ - f2 = 0; - r6 = 0; -} - r7 = heapU8[r0+721]; - r8 = 0; - r9 = r7 != r8; - r9 = r9 & 1; - r9 = r9 | r6; - if(r9 ==0) //_LBB596_59 -{ -__label__ = 54; -break _1; -} -else{ - r9 = heap32[(r5+6)]; - r9 = (r9 * 5)|0; - r10 = heap32[(r5+3)]; - r11 = r9 << 2; - r10 = (r10 + r11)|0; - r10 = r10 >> 2; - r12 = (r9 + 1)|0; - heapFloat[(r10)] = f6; - r10 = r12 << 2; - r12 = heap32[(r5+3)]; - r12 = (r12 + r10)|0; - r12 = r12 >> 2; - r9 = (r9 + 2)|0; - heapFloat[(r12)] = f0; - r9 = r9 << 2; - r12 = heap32[(r5+3)]; - r12 = (r12 + r9)|0; - r12 = r12 >> 2; - heapFloat[(r12)] = f1; - r12 = heap32[(r5+5)]; - r12 = (r12 + r11)|0; - r12 = r12 >> 2; - f3 = -f6; - heapFloat[(r12)] = f3; - r12 = heap32[(r5+5)]; - r10 = (r12 + r10)|0; - r10 = r10 >> 2; - f3 = -f0; - heapFloat[(r10)] = f3; - r10 = heap32[(r5+5)]; - r9 = (r10 + r9)|0; - r9 = r9 >> 2; - f3 = -f1; - heapFloat[(r9)] = f3; - r9 = heap32[(r5+7)]; - r9 = (r9 + r11)|0; - f3 = heapFloat[(r1+172)]; - f4 = heapFloat[(r1+173)]; - r9 = r9 >> 2; - heap32[(r9)] = 0; - r9 = r6 != r8; - r10 = f3 == f4; - r12 = heap32[(r1+183)]; - r9 = r9 & r10; - r10 = r12 & 2; - if(r10 !=0) //_LBB596_73 -{ - r2 = (r0 + 744)|0; -} - r2 = r2 >> 2; - f5 = heapFloat[(r2)]; - r2 = r7 == r8; - r2 = r9 | r2; -if(!(r2 != 0)) //_LBB596_91 -{ - r2 = r12 & 4; -if(!(r2 ==0)) //_LBB596_77 -{ - r2 = heap32[(r5+8)]; - r2 = (r2 + r11)|0; - r2 = r2 >> 2; - heap32[(r2)] = heap32[(r1+184)]; -} - f7 = 1; - f8 = 0; - f9 = heapFloat[(r1+167)]; -_24: do { - if(f3 =f8) //_LBB596_84 -{ - if(f11 >f8) //_LBB596_86 -{ -if(!(f10 >f4)) //_LBB596_89 -{ - f8 = f4-f11; -if(!(f8 >=f10)) //_LBB596_89 -{ - f7 = f4-f10; - f8 = f7/f11; -break _24; -} -} - f8 = 0; - f8 = f10 > f4 ? f8 : f7; -} -else{ -break _24; -} -} -else{ -if(!(f10 f4 ? f7 : f8; -} -} while(0); - r2 = heap32[(r5+7)]; - r2 = (r2 + r11)|0; - r2 = r2 >> 2; - f7 = f9*f8; - f8 = heapFloat[(r1+179)]; - f9 = heapFloat[(r2)]; - f7 = f7*f8; - f7 = f9+f7; - heapFloat[(r2)] = f7; - r2 = heap32[(r5+9)]; - f7 = heapFloat[(r1+168)]; - r2 = (r2 + r11)|0; - r2 = r2 >> 2; - f7 = -f7; - heapFloat[(r2)] = f7; - r2 = heap32[(r5+10)]; - r2 = (r2 + r11)|0; - r2 = r2 >> 2; - heap32[(r2)] = heap32[(r1+168)]; -} - if(r6 ==0) //_LBB596_59 -{ -__label__ = 54; -break _1; -} -else{ - r2 = heap32[(r5+7)]; - r2 = (r2 + r11)|0; - f7 = heapFloat[(r5)]; - r2 = r2 >> 2; - f5 = f7*f5; - f7 = heapFloat[(r2)]; - f2 = f5*f2; - f2 = f7+f2; - heapFloat[(r2)] = f2; - r0 = heapU8[r0+732]; - r0 = r0 & 1; -if(!(r0 ==0)) //_LBB596_94 -{ - r0 = heap32[(r5+8)]; - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = heap32[(r1+185)]; -} - if(f3 !=f4) //_LBB596_96 -{ - r0 = heap32[(r5+9)]; - if(r6 !=1) //_LBB596_98 -{ - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = -8388609; - r0 = heap32[(r5+10)]; - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = 0; -} -else{ - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = 0; - r0 = heap32[(r5+10)]; - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = 2139095039; -} -} -else{ - r0 = heap32[(r5+9)]; - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = -8388609; - r0 = heap32[(r5+10)]; - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = 2139095039; -} - f2 = heapFloat[(r1+171)]; - f3 = 0; - if(f2 <=f3) //_LBB596_107 -{ -__label__ = 53; -break _1; -} -else{ - f4 = heapFloat[(r4+80)]; - f5 = heapFloat[(r3+80)]; - f7 = heapFloat[(r4+81)]; - f8 = heapFloat[(r3+81)]; - f4 = f4*f6; - f7 = f7*f0; - f9 = heapFloat[(r4+82)]; - f10 = heapFloat[(r3+82)]; - f5 = f5*f6; - f0 = f8*f0; - f4 = f4+f7; - f6 = f9*f1; - f0 = f5+f0; - f1 = f10*f1; - f4 = f4+f6; - f0 = f0+f1; - f0 = f4-f0; - if(r6 !=1) //_LBB596_104 -{ - if(f0 <=f3) //_LBB596_107 -{ -__label__ = 53; -break _1; -} -else{ - r0 = heap32[(r5+7)]; - f1 = -f2; - r0 = (r0 + r11)|0; - f0 = f0*f1; - r0 = r0 >> 2; - f1 = heapFloat[(r0)]; - if(f1 <=f0) //_LBB596_107 -{ -__label__ = 53; -break _1; -} -else{ - heapFloat[(r0)] = f0; -__label__ = 53; -break _1; -} -} -} -else{ - if(f0 >=f3) //_LBB596_107 -{ -__label__ = 53; -break _1; -} -else{ - r0 = heap32[(r5+7)]; - f2 = -f2; - r0 = (r0 + r11)|0; - f0 = f0*f2; - r0 = r0 >> 2; - f2 = heapFloat[(r0)]; - if(f2 >=f0) //_LBB596_107 -{ -__label__ = 53; -break _1; -} -else{ - heapFloat[(r0)] = f0; -__label__ = 53; -break _1; -} -} -} -} -} -} -} -else{ - r0 = _2E_str1149; - r1 = _2E_str231; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 331; - _assert(i7); -} -} -else{ - r5 = r5 & 255; - if(r5 ==0) //_LBB596_3 -{ - r4 = r4 >> 2; - r3 = r3 >> 2; - f0 = heapFloat[(r3+9)]; - heapFloat[(fp+-5)] = f0; - f1 = heapFloat[(r1+163)]; - f0 = heapFloat[(r3+5)]; - heapFloat[(fp+-6)] = f0; - f2 = heapFloat[(r3+1)]; - heapFloat[(fp+-4)] = f2; - f0 = heapFloat[(r3+10)]; - heapFloat[(fp+-7)] = f0; - f2 = heapFloat[(r1+164)]; - f0 = heapFloat[(r3+6)]; - heapFloat[(fp+-8)] = f0; - f3 = heapFloat[(r3+2)]; - heapFloat[(fp+-9)] = f3; - f4 = heapFloat[(r4+9)]; - f5 = heapFloat[(r1+147)]; - f6 = heapFloat[(r4+5)]; - f7 = heapFloat[(r4+1)]; - f8 = heapFloat[(r4+10)]; - f9 = heapFloat[(r1+148)]; - f10 = heapFloat[(r4+6)]; - f11 = heapFloat[(r4+2)]; - f0 = heapFloat[(fp+-5)]; - f12 = f0*f1; - f0 = heapFloat[(fp+-7)]; - f13 = f0*f2; - f14 = heapFloat[(r3+11)]; - heapFloat[(fp+-2)] = f14; - f15 = heapFloat[(r1+165)]; - f16 = heapFloat[(r3+7)]; - heapFloat[(fp+-3)] = f16; - f17 = heapFloat[(r3+3)]; - heapFloat[(fp+-1)] = f17; - f18 = f4*f5; - f19 = f8*f9; - f20 = heapFloat[(r4+11)]; - f21 = heapFloat[(r1+149)]; - f22 = heapFloat[(r4+7)]; - f23 = heapFloat[(r4+3)]; - f0 = heapFloat[(fp+-6)]; - f24 = f0*f1; - f0 = heapFloat[(fp+-8)]; - f25 = f0*f2; - f26 = f6*f5; - f27 = f10*f9; - f28 = heapFloat[(fp+-4)]; - f1 = f28*f1; - f2 = f3*f2; - f5 = f7*f5; - f9 = f11*f9; - f29 = heapFloat[(r1+137)]; - f30 = heapFloat[(r1+141)]; - f0 = heapFloat[(r1+136)]; - f3 = heapFloat[(r1+140)]; - f14 = heapFloat[(r1+153)]; - f16 = heapFloat[(r1+157)]; - f12 = f12+f13; - heapFloat[(fp+-14)] = f12; - f13 = heapFloat[(fp+-2)]; - f17 = f13*f15; - f18 = f18+f19; - f19 = f20*f21; - f24 = f24+f25; - f25 = heapFloat[(fp+-3)]; - f28 = f25*f15; - f26 = f26+f27; - f27 = f22*f21; - f1 = f1+f2; - heapFloat[(fp+-10)] = f1; - f2 = heapFloat[(fp+-1)]; - f15 = f2*f15; - f5 = f5+f9; - heapFloat[(fp+-12)] = f5; - f9 = f23*f21; - f21 = heapFloat[(r1+145)]; - f1 = heapFloat[(r1+144)]; - f2 = heapFloat[(r1+161)]; - f5 = heapFloat[(r3+84)]; - f12 = heapFloat[(r4+84)]; - f13 = 1.1920928955078125e-007; - heapFloat[(fp+-11)] = f13; - f25 = f29*f4; - heapFloat[(fp+-13)] = f25; - f25 = f30*f8; - f4 = f0*f4; - heapFloat[(fp+-16)] = f4; - f8 = f3*f8; - f4 = f29*f6; - heapFloat[(fp+-15)] = f4; - f4 = f30*f10; - f6 = f0*f6; - heapFloat[(fp+-18)] = f6; - f10 = f3*f10; - f29 = f29*f7; - f30 = f30*f11; - f0 = f0*f7; - heapFloat[(fp+-17)] = f0; - f3 = f3*f11; - f7 = heapFloat[(fp+-5)]; - f0 = f14*f7; - heapFloat[(fp+-19)] = f0; - f6 = heapFloat[(fp+-7)]; - f6 = f16*f6; - f7 = heapFloat[(fp+-6)]; - f7 = f14*f7; - heapFloat[(fp+-5)] = f7; - f11 = heapFloat[(fp+-8)]; - f11 = f16*f11; - f0 = heapFloat[(fp+-4)]; - f0 = f14*f0; - heapFloat[(fp+-4)] = f0; - f14 = heapFloat[(fp+-9)]; - f14 = f16*f14; - f16 = heapFloat[(fp+-14)]; - f16 = f16+f17; - f17 = heapFloat[(r3+15)]; - f18 = f18+f19; - f19 = heapFloat[(r4+15)]; - f24 = f24+f28; - f28 = heapFloat[(r3+14)]; - f26 = f26+f27; - f27 = heapFloat[(r4+14)]; - f0 = heapFloat[(fp+-10)]; - f0 = f0+f15; - f15 = heapFloat[(r3+13)]; - f7 = heapFloat[(fp+-12)]; - f7 = f7+f9; - f9 = heapFloat[(r4+13)]; - r5 = r2 >> 2; - f16 = f16+f17; - f17 = f18+f19; - f18 = f24+f28; - f19 = f26+f27; - f0 = f0+f15; - f7 = f7+f9; - f9 = heapFloat[(fp+-13)]; - f9 = f9+f25; - f15 = f21*f20; - f24 = heapFloat[(fp+-16)]; - f8 = f24+f8; - f20 = f1*f20; - f24 = heapFloat[(fp+-15)]; - f4 = f24+f4; - f24 = f21*f22; - f25 = heapFloat[(fp+-18)]; - f10 = f25+f10; - f22 = f1*f22; - f25 = f29+f30; - f21 = f21*f23; - f26 = heapFloat[(fp+-17)]; - f3 = f26+f3; - f1 = f1*f23; - f23 = heapFloat[(fp+-19)]; - f6 = f23+f6; - f23 = heapFloat[(fp+-2)]; - f23 = f2*f23; - f26 = heapFloat[(fp+-5)]; - f11 = f26+f11; - f26 = heapFloat[(fp+-3)]; - f26 = f2*f26; - f27 = heapFloat[(fp+-4)]; - f14 = f27+f14; - f27 = heapFloat[(fp+-1)]; - f2 = f2*f27; - r6 = f12 < f13; - r7 = f5 < f13; - f12 = f12+f5; - r8 = heap32[(r5+6)]; - f9 = f9+f15; - heapFloat[(fp+-3)] = f9; - f8 = f8+f20; - f4 = f4+f24; - heapFloat[(fp+-2)] = f4; - f4 = f10+f22; - f9 = f25+f21; - heapFloat[(fp+-4)] = f9; - f1 = f3+f1; - f3 = f6+f23; - heapFloat[(fp+-7)] = f3; - f3 = f11+f26; - heapFloat[(fp+-6)] = f3; - f2 = f14+f2; - heapFloat[(fp+-5)] = f2; - f2 = f16-f17; - heapFloat[(fp+-8)] = f2; - f2 = f18-f19; - heapFloat[(fp+-9)] = f2; - f2 = f0-f7; - heapFloat[(fp+-10)] = f2; - r6 = r6 | r7; - f2 = 0; - if(f12 >f2) //_LBB596_5 -{ - f5 = f5/f12; -} -else{ - f5 = 0.5; -} - f3 = 1; - heapFloat[(fp+-1)] = f3; - f6 = f3-f5; - f9 = heapFloat[(fp+-4)]; - f9 = f9*f5; - f10 = heapFloat[(fp+-5)]; - f10 = f10*f6; - f11 = heapFloat[(fp+-2)]; - f11 = f11*f5; - f12 = heapFloat[(fp+-6)]; - f12 = f12*f6; - f9 = f9+f10; - f10 = f11+f12; - f11 = heapFloat[(fp+-3)]; - f11 = f11*f5; - f12 = heapFloat[(fp+-7)]; - f12 = f12*f6; - f11 = f11+f12; - f12 = f9*f9; - f13 = f10*f10; - f12 = f12+f13; - f13 = f11*f11; - f12 = f12+f13; - heapFloat[(g0)] = f12; - sqrtf(i7); - f3 = f3/f_g0; - f12 = heapFloat[(r3+13)]; - f13 = heapFloat[(r3+14)]; - f14 = heapFloat[(r4+13)]; - f15 = heapFloat[(r4+14)]; - f9 = f9*f3; - f0 = f0-f12; - f7 = f7-f14; - f10 = f10*f3; - f12 = f18-f13; - f13 = f19-f15; - f14 = heapFloat[(r3+15)]; - f15 = heapFloat[(r4+15)]; - f3 = f11*f3; - f11 = f16-f14; - f14 = f17-f15; - f15 = f0*f9; - f16 = f12*f10; - f17 = f7*f9; - f18 = f13*f10; - f15 = f15+f16; - f16 = f11*f3; - f17 = f17+f18; - f18 = f14*f3; - f15 = f15+f16; - f16 = f17+f18; - f17 = f10*f15; - f18 = f10*f16; - f19 = f9*f15; - f20 = f9*f16; - f15 = f3*f15; - f16 = f3*f16; - f12 = f12-f17; - f13 = f13-f18; - f0 = f0-f19; - f7 = f7-f20; - f11 = f11-f15; - f14 = f14-f16; - f21 = f12*f5; - f22 = f13*f6; - f23 = f0*f5; - f24 = f7*f6; - f21 = f21+f22; - f22 = f23+f24; - f23 = f11*f5; - f24 = f14*f6; - f15 = f16-f15; - f16 = f18-f17; - f17 = f20-f19; - f18 = f23+f24; - f19 = f22*f22; - f20 = f21*f21; - f23 = f15*f5; - f24 = f16*f5; - f25 = f17*f5; - f15 = f15*f6; - f16 = f16*f6; - f17 = f17*f6; - f19 = f19+f20; - f20 = f18*f18; - f19 = f19+f20; - r7 = r8 << 1; - f14 = f14+f23; - f13 = f13+f24; - f7 = f7+f25; - f11 = f11-f15; - f12 = f12-f16; - f0 = f0-f17; - f15 = heapFloat[(fp+-11)]; - if(f19 >f15) //_LBB596_8 -{ - heapFloat[(g0)] = f19; - sqrtf(i7); - f4 = heapFloat[(fp+-1)]; - f8 = f4/f_g0; - f1 = f22*f8; - f4 = f21*f8; - f8 = f18*f8; -} - r9 = heap32[(r5+3)]; - f15 = f13*f8; - f16 = f14*f4; - r9 = r9 >> 2; - f15 = f15-f16; - heapFloat[(r9)] = f15; - r9 = heap32[(r5+3)]; - f15 = f14*f1; - f16 = f7*f8; - r9 = r9 >> 2; - f15 = f15-f16; - heapFloat[(r9+1)] = f15; - r9 = heap32[(r5+3)]; - f15 = f7*f4; - f16 = f13*f1; - r9 = r9 >> 2; - f15 = f15-f16; - heapFloat[(r9+2)] = f15; - f15 = f12*f8; - f16 = f11*f4; - f15 = f15-f16; - r9 = heap32[(r5+5)]; - r9 = r9 >> 2; - f15 = -f15; - heapFloat[(r9)] = f15; - f15 = f11*f1; - f16 = f0*f8; - f15 = f15-f16; - r9 = heap32[(r5+5)]; - f16 = f10*f8; - f17 = f3*f4; - f18 = f9*f4; - f19 = f10*f1; - f20 = f3*f1; - f21 = f9*f8; - r9 = r9 >> 2; - f15 = -f15; - f16 = f16-f17; - f17 = f18-f19; - f18 = f20-f21; - heapFloat[(r9+1)] = f15; - f15 = f0*f4; - f19 = f12*f1; - f15 = f15-f19; - r9 = heap32[(r5+5)]; - f19 = f7*f18; - f20 = f13*f16; - f21 = f14*f16; - f22 = f7*f17; - f23 = f13*f17; - f24 = f14*f18; - f25 = f0*f18; - f26 = f12*f16; - f27 = f11*f16; - f28 = f0*f17; - f29 = f12*f17; - f30 = f11*f18; - f19 = f19-f20; - f20 = f21-f22; - f21 = f23-f24; - f22 = f25-f26; - f23 = f27-f28; - f24 = f29-f30; - r9 = r9 >> 2; - f15 = -f15; - heapFloat[(r9+2)] = f15; - if(r6 != 0) //_LBB596_11 -{ - r9 = heapU8[r0+722]; -if(!(r9 ==0)) //_LBB596_10 -{ - f24 = f24*f6; - f23 = f23*f6; - f22 = f22*f6; - f21 = f21*f5; - f20 = f20*f5; - f19 = f19*f5; -} -} - r9 = r8 << 2; - r10 = heap32[(r5+3)]; - r10 = (r10 + r9)|0; - r10 = r10 >> 2; - r11 = (r8 + 1)|0; - heapFloat[(r10)] = f21; - r10 = r11 << 2; - r11 = heap32[(r5+3)]; - r11 = (r11 + r10)|0; - r11 = r11 >> 2; - r12 = (r8 + 2)|0; - heapFloat[(r11)] = f20; - r11 = r12 << 2; - r12 = heap32[(r5+3)]; - r12 = (r12 + r11)|0; - r12 = r12 >> 2; - heapFloat[(r12)] = f19; - r12 = heap32[(r5+5)]; - r12 = (r12 + r9)|0; - r12 = r12 >> 2; - f15 = -f24; - heapFloat[(r12)] = f15; - r12 = heap32[(r5+5)]; - r10 = (r12 + r10)|0; - r10 = r10 >> 2; - f15 = -f23; - heapFloat[(r10)] = f15; - r10 = heap32[(r5+5)]; - r10 = (r10 + r11)|0; - f15 = f7*f10; - f19 = f13*f9; - f20 = f14*f9; - f7 = f7*f3; - f13 = f13*f3; - f14 = f14*f10; - f21 = f0*f10; - f23 = f12*f9; - f24 = f11*f9; - f0 = f0*f3; - f12 = f12*f3; - f11 = f11*f10; - f15 = f15-f19; - f7 = f20-f7; - f13 = f13-f14; - f14 = f21-f23; - f0 = f24-f0; - f11 = f12-f11; - r10 = r10 >> 2; - f12 = -f22; - heapFloat[(r10)] = f12; - if(r6 != 0) //_LBB596_15 -{ - f11 = f11*f6; - f0 = f0*f6; - f14 = f14*f6; - f13 = f13*f5; - f7 = f7*f5; - f15 = f15*f5; -} - r6 = r7 << 2; - r10 = heap32[(r5+3)]; - r10 = (r10 + r6)|0; - r10 = r10 >> 2; - r11 = r7 | 1; - heapFloat[(r10)] = f13; - r10 = r11 << 2; - r11 = heap32[(r5+3)]; - r11 = (r11 + r10)|0; - r11 = r11 >> 2; - r7 = (r7 + 2)|0; - heapFloat[(r11)] = f7; - r7 = r7 << 2; - r11 = heap32[(r5+3)]; - r11 = (r11 + r7)|0; - r11 = r11 >> 2; - heapFloat[(r11)] = f15; - r11 = heap32[(r5+5)]; - r11 = (r11 + r6)|0; - r11 = r11 >> 2; - f5 = -f11; - heapFloat[(r11)] = f5; - r11 = heap32[(r5+5)]; - r11 = (r11 + r10)|0; - r11 = r11 >> 2; - f0 = -f0; - heapFloat[(r11)] = f0; - r11 = heap32[(r5+5)]; - r7 = (r11 + r7)|0; - r7 = r7 >> 2; - f0 = -f14; - heapFloat[(r7)] = f0; - r7 = heapU8[r0+720]; -if(!(r7 !=0)) //_LBB596_18 -{ - f0 = heapFloat[(r5)]; - f5 = heapFloat[(r5+1)]; - f0 = f0*f5; - r7 = heap32[(r5+2)]; - r7 = r7 >> 2; - heapFloat[(r7)] = f1; - r7 = heap32[(r5+2)]; - r7 = r7 >> 2; - heapFloat[(r7+1)] = f4; - r7 = heap32[(r5+2)]; - r7 = r7 >> 2; - heapFloat[(r7+2)] = f8; - r7 = heap32[(r5+2)]; - r7 = (r7 + r9)|0; - r7 = r7 >> 2; - heapFloat[(r7)] = f16; - r7 = heap32[(r5+2)]; - r7 = (r7 + r9)|0; - r7 = r7 >> 2; - heapFloat[(r7+1)] = f18; - r7 = heap32[(r5+2)]; - r7 = (r7 + r9)|0; - r7 = r7 >> 2; - heapFloat[(r7+2)] = f17; - r7 = heap32[(r5+2)]; - r7 = (r7 + r6)|0; - r7 = r7 >> 2; - heapFloat[(r7)] = f9; - r7 = heap32[(r5+2)]; - r7 = (r7 + r10)|0; - r7 = r7 >> 2; - heapFloat[(r7)] = f10; - r7 = heap32[(r5+2)]; - r7 = (r7 + r6)|0; - r7 = r7 >> 2; - f5 = heapFloat[(fp+-10)]; - f6 = f1*f5; - f7 = heapFloat[(fp+-9)]; - f11 = f4*f7; - heapFloat[(r7+2)] = f3; - f6 = f6+f11; - f11 = heapFloat[(fp+-8)]; - f12 = f8*f11; - r7 = heap32[(r5+7)]; - f6 = f6+f12; - r7 = r7 >> 2; - f6 = f6*f0; - heapFloat[(r7)] = f6; - f6 = f16*f5; - f12 = f18*f7; - r7 = heap32[(r5+7)]; - f6 = f6+f12; - f12 = f17*f11; - r7 = (r7 + r9)|0; - f6 = f6+f12; - r7 = r7 >> 2; - f6 = f6*f0; - heapFloat[(r7)] = f6; - f5 = f9*f5; - f6 = f10*f7; - r7 = heap32[(r5+7)]; - f5 = f5+f6; - f6 = f3*f11; - r6 = (r7 + r6)|0; - f5 = f5+f6; - r6 = r6 >> 2; - f0 = f5*f0; - heapFloat[(r6)] = f0; -} - r2 = (r2 + 4)|0; - r6 = (r8 * 3)|0; - r7 = r6 << 2; - r9 = heap32[(r5+3)]; - r9 = (r9 + r7)|0; - r9 = r9 >> 2; - r10 = (r6 + 1)|0; - heapFloat[(r9)] = f1; - r9 = r10 << 2; - r10 = heap32[(r5+3)]; - r10 = (r10 + r9)|0; - r10 = r10 >> 2; - r6 = (r6 + 2)|0; - heapFloat[(r10)] = f4; - r6 = r6 << 2; - r10 = heap32[(r5+3)]; - r10 = (r10 + r6)|0; - r10 = r10 >> 2; - heapFloat[(r10)] = f8; - r8 = r8 << 4; - r10 = heap32[(r5+3)]; - r10 = (r10 + r8)|0; - r10 = r10 >> 2; - heapFloat[(r10)] = f16; - r10 = r8 | 4; - r11 = heap32[(r5+3)]; - r11 = (r11 + r10)|0; - r11 = r11 >> 2; - heapFloat[(r11)] = f18; - r11 = r8 | 8; - r12 = heap32[(r5+3)]; - r12 = (r12 + r11)|0; - r12 = r12 >> 2; - heapFloat[(r12)] = f17; - r12 = heap32[(r5+5)]; - r12 = (r12 + r7)|0; - r12 = r12 >> 2; - f0 = -f1; - heapFloat[(r12)] = f0; - r12 = heap32[(r5+5)]; - r9 = (r12 + r9)|0; - r9 = r9 >> 2; - f0 = -f4; - heapFloat[(r9)] = f0; - r9 = heap32[(r5+5)]; - r6 = (r9 + r6)|0; - r6 = r6 >> 2; - f0 = -f8; - heapFloat[(r6)] = f0; - r6 = heap32[(r5+5)]; - r6 = (r6 + r8)|0; - r6 = r6 >> 2; - f0 = -f16; - heapFloat[(r6)] = f0; - r6 = heap32[(r5+5)]; - r6 = (r6 + r10)|0; - r6 = r6 >> 2; - f0 = -f18; - heapFloat[(r6)] = f0; - r6 = heap32[(r5+5)]; - r6 = (r6 + r11)|0; - f5 = heapFloat[(fp+-7)]; - f0 = heapFloat[(fp+-2)]; - f6 = f0*f5; - f11 = heapFloat[(fp+-6)]; - f7 = heapFloat[(fp+-3)]; - f12 = f7*f11; - f13 = heapFloat[(fp+-5)]; - f7 = f7*f13; - f14 = heapFloat[(fp+-4)]; - f5 = f14*f5; - f6 = f6-f12; - f5 = f7-f5; - f7 = f14*f11; - f0 = f0*f13; - r6 = r6 >> 2; - f11 = -f17; - heapFloat[(r6)] = f11; - f0 = f7-f0; - f1 = f6*f1; - f4 = f5*f4; - r6 = heap32[(r5+7)]; - f1 = f1+f4; - f4 = f0*f8; - f7 = heapFloat[(r5)]; - f8 = heapFloat[(r5+1)]; - r6 = (r6 + r7)|0; - f1 = f1+f4; - f4 = f7*f8; - r6 = r6 >> 2; - f1 = f1*f4; - heapFloat[(r6)] = f1; - f1 = f6*f16; - f5 = f5*f18; - r6 = heap32[(r5+7)]; - f1 = f1+f5; - f0 = f0*f17; - r6 = (r6 + r8)|0; - f0 = f1+f0; - r6 = r6 >> 2; - f0 = f0*f4; - heapFloat[(r6)] = f0; - r6 = heapU8[r0+722]; - if(r6 !=0) //_LBB596_20 -{ - f0 = heapFloat[(r1+176)]; - f1 = heapFloat[(r1+179)]; - f0 = f0*f1; - r6 = 1; - r7 = 2; - r6 = f0 > f2 ? r6 : r7; -} -else{ - f0 = 0; - r6 = 0; -} - r7 = heapU8[r0+721]; - r8 = 0; - r9 = r7 != r8; - r9 = r9 & 1; - r9 = r9 | r6; - if(r9 ==0) //_LBB596_59 -{ -__label__ = 54; -} -else{ - r9 = heap32[(r5+6)]; - r9 = (r9 * 5)|0; - r10 = heap32[(r5+3)]; - r11 = r9 << 2; - r10 = (r10 + r11)|0; - r10 = r10 >> 2; - r12 = (r9 + 1)|0; - heapFloat[(r10)] = f9; - r10 = r12 << 2; - r12 = heap32[(r5+3)]; - r12 = (r12 + r10)|0; - r12 = r12 >> 2; - r9 = (r9 + 2)|0; - heapFloat[(r12)] = f10; - r9 = r9 << 2; - r12 = heap32[(r5+3)]; - r12 = (r12 + r9)|0; - r12 = r12 >> 2; - heapFloat[(r12)] = f3; - r12 = heap32[(r5+5)]; - r12 = (r12 + r11)|0; - r12 = r12 >> 2; - f1 = -f9; - heapFloat[(r12)] = f1; - r12 = heap32[(r5+5)]; - r10 = (r12 + r10)|0; - r10 = r10 >> 2; - f1 = -f10; - heapFloat[(r10)] = f1; - r10 = heap32[(r5+5)]; - r9 = (r10 + r9)|0; - r9 = r9 >> 2; - f1 = -f3; - heapFloat[(r9)] = f1; - r9 = heap32[(r5+7)]; - r9 = (r9 + r11)|0; - f1 = heapFloat[(r1+172)]; - f4 = heapFloat[(r1+173)]; - r9 = r9 >> 2; - heap32[(r9)] = 0; - r9 = r6 != r8; - r10 = f1 == f4; - r12 = heap32[(r1+183)]; - r9 = r9 & r10; - r10 = r12 & 2; - if(r10 !=0) //_LBB596_24 -{ - r2 = (r0 + 744)|0; -} - r2 = r2 >> 2; - f5 = heapFloat[(r2)]; - r2 = r7 == r8; - r2 = r9 | r2; -if(!(r2 != 0)) //_LBB596_42 -{ - r2 = r12 & 4; -if(!(r2 ==0)) //_LBB596_28 -{ - r2 = heap32[(r5+8)]; - r2 = (r2 + r11)|0; - r2 = r2 >> 2; - heap32[(r2)] = heap32[(r1+184)]; -} - f6 = heapFloat[(r1+167)]; -_94: do { - if(f1 =f2) //_LBB596_35 -{ - if(f8 >f2) //_LBB596_37 -{ -if(!(f7 >f4)) //_LBB596_40 -{ - f2 = f4-f8; -if(!(f2 >=f7)) //_LBB596_40 -{ - f2 = f4-f7; - f2 = f2/f8; -break _94; -} -} - f2 = 0; - f8 = heapFloat[(fp+-1)]; - f2 = f7 > f4 ? f2 : f8; -} -else{ -break _94; -} -} -else{ -if(!(f7 f4 ? f7 : f2; -} -} while(0); - r2 = heap32[(r5+7)]; - r2 = (r2 + r11)|0; - r2 = r2 >> 2; - f2 = f6*f2; - f6 = heapFloat[(r1+179)]; - f7 = heapFloat[(r2)]; - f2 = f2*f6; - f2 = f7+f2; - heapFloat[(r2)] = f2; - r2 = heap32[(r5+9)]; - f2 = heapFloat[(r1+168)]; - r2 = (r2 + r11)|0; - r2 = r2 >> 2; - f2 = -f2; - heapFloat[(r2)] = f2; - r2 = heap32[(r5+10)]; - r2 = (r2 + r11)|0; - r2 = r2 >> 2; - heap32[(r2)] = heap32[(r1+168)]; -} - if(r6 ==0) //_LBB596_59 -{ -__label__ = 54; -} -else{ - r2 = heap32[(r5+7)]; - r2 = (r2 + r11)|0; - f2 = heapFloat[(r5)]; - r2 = r2 >> 2; - f2 = f2*f5; - f5 = heapFloat[(r2)]; - f0 = f2*f0; - f0 = f5+f0; - heapFloat[(r2)] = f0; - r0 = heapU8[r0+732]; - r0 = r0 & 1; -if(!(r0 ==0)) //_LBB596_45 -{ - r0 = heap32[(r5+8)]; - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = heap32[(r1+185)]; -} - if(f1 !=f4) //_LBB596_47 -{ - r0 = heap32[(r5+9)]; - if(r6 !=1) //_LBB596_49 -{ - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = -8388609; - r0 = heap32[(r5+10)]; - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = 0; -} -else{ - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = 0; - r0 = heap32[(r5+10)]; - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = 2139095039; -} -} -else{ - r0 = heap32[(r5+9)]; - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = -8388609; - r0 = heap32[(r5+10)]; - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - heap32[(r0)] = 2139095039; -} - f0 = heapFloat[(r1+171)]; - f1 = 0; - if(f0 <=f1) //_LBB596_58 -{ -__label__ = 53; -} -else{ - f2 = heapFloat[(r4+80)]; - f4 = heapFloat[(r3+80)]; - f5 = heapFloat[(r4+81)]; - f6 = heapFloat[(r3+81)]; - f2 = f2*f9; - f5 = f5*f10; - f7 = heapFloat[(r4+82)]; - f8 = heapFloat[(r3+82)]; - f4 = f4*f9; - f6 = f6*f10; - f2 = f2+f5; - f5 = f7*f3; - f4 = f4+f6; - f3 = f8*f3; - f2 = f2+f5; - f3 = f4+f3; - f2 = f2-f3; - if(r6 !=1) //_LBB596_55 -{ - if(f2 <=f1) //_LBB596_58 -{ -__label__ = 53; -} -else{ - r0 = heap32[(r5+7)]; - f0 = -f0; - r0 = (r0 + r11)|0; - f0 = f2*f0; - r0 = r0 >> 2; - f1 = heapFloat[(r0)]; - if(f1 <=f0) //_LBB596_58 -{ -__label__ = 53; -} -else{ - heapFloat[(r0)] = f0; -__label__ = 53; -} -} -} -else{ - if(f2 >=f1) //_LBB596_58 -{ -__label__ = 53; -} -else{ - r0 = heap32[(r5+7)]; - f0 = -f0; - r0 = (r0 + r11)|0; - f0 = f2*f0; - r0 = r0 >> 2; - f1 = heapFloat[(r0)]; - if(f1 >=f0) //_LBB596_58 -{ -__label__ = 53; -} -else{ - heapFloat[(r0)] = f0; -__label__ = 53; -} -} -} -} -} -} -} -else{ - r0 = _2E_str1149; - r1 = _2E_str231; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 682; - _assert(i7); -} -} -} while(0); -if (__label__ == 53){ - r0 = heap32[(r5+7)]; - r0 = (r0 + r11)|0; - r0 = r0 >> 2; - f0 = heapFloat[(r0)]; - f1 = heapFloat[(r1+170)]; - f0 = f0*f1; - heapFloat[(r0)] = f0; -} - return; -} - -function _ZN17btHingeConstraint8setParamEifi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+3)]; -if(!(r0 ==-1)) //_LBB597_2 -{ - if(r0 !=5) //_LBB597_9 -{ - r0 = _2E_str10; - r1 = _2E_str231; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 969; - _assert(i7); -} -} - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - f0 = heapFloat[(fp+2)]; - if(r1 ==4) //_LBB597_6 -{ - r0 = r0 >> 2; - heapFloat[(r0+185)] = f0; - r1 = heap32[(r0+183)]; - r1 = r1 | 1; - heap32[(r0+183)] = r1; - return; -} -else{ - if(r1 ==3) //_LBB597_7 -{ - r0 = r0 >> 2; - heapFloat[(r0+184)] = f0; - r1 = heap32[(r0+183)]; - r1 = r1 | 4; - heap32[(r0+183)] = r1; - return; -} -else{ - if(r1 !=2) //_LBB597_8 -{ - r0 = _2E_str10; - r1 = _2E_str231; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 964; - _assert(i7); -} -else{ - r0 = r0 >> 2; - heapFloat[(r0+186)] = f0; - r1 = heap32[(r0+183)]; - r1 = r1 | 2; - heap32[(r0+183)] = r1; - return; -} -} -} -} - -function _ZNK17btHingeConstraint8getParamEii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; -if(!(r0 ==-1)) //_LBB598_2 -{ - if(r0 !=5) //_LBB598_15 -{ - r0 = _2E_str10; - r1 = _2E_str231; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 999; - _assert(i7); -} -} - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - if(r1 ==4) //_LBB598_8 -{ - r1 = heapU8[r0+732]; - r1 = r1 & 1; - if(r1 != 0) //_LBB598_10 -{ - r0 = (r0 + 740)|0; -} -else{ - r0 = _2E_str332; - r1 = _2E_str231; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 986; - _assert(i7); -} -} -else{ - if(r1 ==3) //_LBB598_11 -{ - r1 = heapU8[r0+732]; - r1 = r1 & 4; - if(r1 !=0) //_LBB598_13 -{ - r0 = (r0 + 736)|0; -} -else{ - r0 = _2E_str433; - r1 = _2E_str231; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 990; - _assert(i7); -} -} -else{ - if(r1 !=2) //_LBB598_14 -{ - r0 = _2E_str10; - r1 = _2E_str231; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 994; - _assert(i7); -} -else{ - r1 = heapU8[r0+732]; - r1 = r1 & 2; - if(r1 !=0) //_LBB598_7 -{ - r0 = (r0 + 744)|0; -} -else{ - r0 = _2E_str130; - r1 = _2E_str231; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 982; - _assert(i7); -} -} -} -} - r0 = r0 >> 2; - f0 = heapFloat[(r0)]; - f_g0 = f0; - return; -} - -function _ZN17btHingeConstraint13getHingeAngleERK11btTransformS2_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp+2)]; - r2 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - r2 = r2 >> 2; - f0 = heapFloat[(r2+135)]; - f1 = heapFloat[(r0+4)]; - f2 = heapFloat[(r0)]; - f3 = heapFloat[(r2+136)]; - f4 = heapFloat[(r2+139)]; - f5 = heapFloat[(r0+5)]; - f6 = heapFloat[(r0+1)]; - f7 = heapFloat[(r2+140)]; - f8 = heapFloat[(r2+152)]; - f9 = heapFloat[(r1+4)]; - f10 = heapFloat[(r1)]; - f11 = heapFloat[(r2+156)]; - f12 = heapFloat[(r1+5)]; - f13 = heapFloat[(r1+1)]; - f14 = heapFloat[(r0+8)]; - f15 = heapFloat[(r0+9)]; - f16 = heapFloat[(r1+8)]; - f17 = heapFloat[(r1+9)]; - f18 = f2*f0; - f19 = f6*f4; - f20 = f1*f0; - f21 = f5*f4; - f10 = f10*f8; - f13 = f13*f11; - f2 = f2*f3; - f6 = f6*f7; - f9 = f9*f8; - f12 = f12*f11; - f1 = f1*f3; - f5 = f5*f7; - f22 = heapFloat[(r2+143)]; - f23 = heapFloat[(r0+6)]; - f24 = heapFloat[(r0+2)]; - f25 = heapFloat[(r2+144)]; - f26 = heapFloat[(r2+160)]; - f27 = heapFloat[(r1+6)]; - f28 = heapFloat[(r1+2)]; - f29 = heapFloat[(r0+10)]; - f30 = heapFloat[(r1+10)]; - f18 = f18+f19; - f19 = f24*f22; - f20 = f20+f21; - f21 = f23*f22; - f0 = f14*f0; - f4 = f15*f4; - f10 = f10+f13; - f13 = f28*f26; - f2 = f2+f6; - f6 = f24*f25; - f9 = f9+f12; - f12 = f27*f26; - f1 = f1+f5; - f5 = f23*f25; - f8 = f16*f8; - f11 = f17*f11; - f3 = f14*f3; - f7 = f15*f7; - f14 = f18+f19; - f10 = f10+f13; - f2 = f2+f6; - f6 = f20+f21; - f9 = f9+f12; - f1 = f1+f5; - f0 = f0+f4; - f4 = f29*f22; - f5 = f8+f11; - f8 = f30*f26; - f3 = f3+f7; - f7 = f29*f25; - f11 = f10*f14; - f6 = f9*f6; - f0 = f0+f4; - f4 = f5+f8; - f3 = f3+f7; - f2 = f10*f2; - f1 = f9*f1; - f5 = f11+f6; - f0 = f4*f0; - f1 = f2+f1; - f2 = f4*f3; - f0 = f5+f0; - f1 = f1+f2; - heapFloat[(g0)] = f0; - heapFloat[(g0+1)] = f1; - atan2f(i7); - f1 = heapFloat[(r2+179)]; - f0 = f1*f_g0; - f_g0 = f0; - return; -} - -function _ZN18btConstraintSolver12prepareSolveEii(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+2)]; - r1 = r1 >> 2; - r0 = r0 >> 2; - r2 = heap32[(fp+1)]; - r2 = r2 >> 2; - f0 = heapFloat[(r1+4)]; - f1 = heapFloat[(r0+126)]; - f2 = heapFloat[(r1+5)]; - f3 = heapFloat[(r0+127)]; - f4 = heapFloat[(r1)]; - f5 = heapFloat[(r0+130)]; - f6 = heapFloat[(r1+1)]; - f7 = heapFloat[(r0+131)]; - f8 = heapFloat[(r2+126)]; - f9 = heapFloat[(r2+127)]; - f10 = heapFloat[(r1+6)]; - f11 = heapFloat[(r0+128)]; - f1 = f0*f1; - f3 = f2*f3; - f4 = f4*f5; - f5 = f6*f7; - f6 = heapFloat[(r1+2)]; - f7 = heapFloat[(r0+132)]; - f12 = heapFloat[(r1+8)]; - f13 = heapFloat[(r2+130)]; - f14 = heapFloat[(r1+9)]; - f15 = heapFloat[(r2+131)]; - f16 = heapFloat[(r2+128)]; - f1 = f1+f3; - f3 = f10*f11; - f4 = f4+f5; - f5 = f6*f7; - f6 = f12*f13; - f7 = f14*f15; - f11 = heapFloat[(r1+10)]; - f12 = heapFloat[(r2+132)]; - f8 = f0*f8; - f9 = f2*f9; - f13 = heapFloat[(r1+21)]; - f14 = heapFloat[(r1+30)]; - f1 = f1+f3; - f3 = f4+f5; - f4 = f6+f7; - f5 = f11*f12; - f6 = f8+f9; - f7 = f10*f16; - f8 = heapFloat[(r1+29)]; - f9 = f13*f14; - f1 = f1+f3; - f3 = heapFloat[(r1+23)]; - f4 = f4+f5; - f5 = f6+f7; - f4 = f4-f5; - f5 = f8-f9; - f1 = f3*f1; - f1 = f5-f1; - f3 = f3*f4; - f1 = f1-f3; - f3 = heapFloat[(r1+31)]; - f4 = f13+f1; - if(f3 <=f4) //_LBB602_2 -{ - f3 = heapFloat[(r1+32)]; - if(f3 >=f4) //_LBB602_4 -{ - heapFloat[(r1+21)] = f4; -} -else{ - f1 = f3-f13; - heapFloat[(r1+21)] = f3; -} -} -else{ - f1 = f3-f13; - heapFloat[(r1+21)] = f3; -} - f3 = heapFloat[(r0+84)]; - f4 = 0; -if(!(f3 ==f4)) //_LBB602_7 -{ - f3 = heapFloat[(r0+138)]; - f0 = f0*f3; - f0 = f0*f1; - f3 = heapFloat[(r0+126)]; - f5 = heapFloat[(r0+139)]; - f6 = heapFloat[(r0+140)]; - f0 = f3+f0; - f2 = f2*f5; - heapFloat[(r0+126)] = f0; - f0 = f2*f1; - f2 = heapFloat[(r0+127)]; - f0 = f2+f0; - f2 = f10*f6; - heapFloat[(r0+127)] = f0; - f0 = f2*f1; - f2 = heapFloat[(r0+128)]; - f0 = f2+f0; - heapFloat[(r0+128)] = f0; - f0 = heapFloat[(r0+134)]; - f0 = f0*f1; - f2 = heapFloat[(r1+12)]; - f3 = heapFloat[(r0+136)]; - f5 = heapFloat[(r0+135)]; - f0 = f2*f0; - f2 = heapFloat[(r0+130)]; - f6 = heapFloat[(r1+14)]; - f7 = heapFloat[(r1+13)]; - f0 = f2+f0; - f2 = f5*f1; - heapFloat[(r0+130)] = f0; - f0 = f7*f2; - f2 = heapFloat[(r0+131)]; - f0 = f2+f0; - f2 = f3*f1; - heapFloat[(r0+131)] = f0; - f0 = f6*f2; - f2 = heapFloat[(r0+132)]; - f0 = f2+f0; - heapFloat[(r0+132)] = f0; -} - f0 = heapFloat[(r2+84)]; -if(!(f0 ==f4)) //_LBB602_9 -{ - f0 = heapFloat[(r1+4)]; - f2 = heapFloat[(r2+138)]; - f0 = f2*f0; - f0 = f0*f1; - f2 = heapFloat[(r2+126)]; - f3 = heapFloat[(r1+5)]; - f4 = heapFloat[(r2+139)]; - f5 = heapFloat[(r1+6)]; - f6 = heapFloat[(r2+140)]; - f0 = f2-f0; - f2 = f4*f3; - heapFloat[(r2+126)] = f0; - f0 = f2*f1; - f2 = heapFloat[(r2+127)]; - f0 = f2-f0; - f2 = f6*f5; - heapFloat[(r2+127)] = f0; - f0 = f2*f1; - f2 = heapFloat[(r2+128)]; - f0 = f2-f0; - heapFloat[(r2+128)] = f0; - f0 = heapFloat[(r2+134)]; - f0 = f0*f1; - f2 = heapFloat[(r1+16)]; - f3 = heapFloat[(r2+136)]; - f4 = heapFloat[(r2+135)]; - f0 = f2*f0; - f2 = heapFloat[(r2+130)]; - f5 = heapFloat[(r1+18)]; - f6 = heapFloat[(r1+17)]; - f0 = f2+f0; - f2 = f4*f1; - heapFloat[(r2+130)] = f0; - f0 = f6*f2; - f2 = heapFloat[(r2+131)]; - f0 = f2+f0; - f1 = f3*f1; - heapFloat[(r2+131)] = f0; - f0 = f5*f1; - f1 = heapFloat[(r2+132)]; - f0 = f1+f0; - heapFloat[(r2+132)] = f0; -} - return; -} - -function _ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+2)]; - r1 = r1 >> 2; - r0 = r0 >> 2; - r2 = heap32[(fp+1)]; - r2 = r2 >> 2; - f0 = heapFloat[(r1+4)]; - f1 = heapFloat[(r0+126)]; - f2 = heapFloat[(r1+5)]; - f3 = heapFloat[(r0+127)]; - f4 = heapFloat[(r1)]; - f5 = heapFloat[(r0+130)]; - f6 = heapFloat[(r1+1)]; - f7 = heapFloat[(r0+131)]; - f8 = heapFloat[(r2+126)]; - f9 = heapFloat[(r2+127)]; - f10 = heapFloat[(r1+6)]; - f11 = heapFloat[(r0+128)]; - f1 = f0*f1; - f3 = f2*f3; - f4 = f4*f5; - f5 = f6*f7; - f6 = heapFloat[(r1+2)]; - f7 = heapFloat[(r0+132)]; - f12 = heapFloat[(r1+8)]; - f13 = heapFloat[(r2+130)]; - f14 = heapFloat[(r1+9)]; - f15 = heapFloat[(r2+131)]; - f16 = heapFloat[(r2+128)]; - f1 = f1+f3; - f3 = f10*f11; - f4 = f4+f5; - f5 = f6*f7; - f6 = f12*f13; - f7 = f14*f15; - f11 = heapFloat[(r1+10)]; - f12 = heapFloat[(r2+132)]; - f8 = f0*f8; - f9 = f2*f9; - f13 = heapFloat[(r1+21)]; - f14 = heapFloat[(r1+30)]; - f1 = f1+f3; - f3 = f4+f5; - f4 = f6+f7; - f5 = f11*f12; - f6 = f8+f9; - f7 = f10*f16; - f8 = heapFloat[(r1+29)]; - f9 = f13*f14; - f1 = f1+f3; - f3 = heapFloat[(r1+23)]; - f4 = f4+f5; - f5 = f6+f7; - f4 = f4-f5; - f5 = f8-f9; - f1 = f3*f1; - f1 = f5-f1; - f3 = f3*f4; - f1 = f1-f3; - f3 = heapFloat[(r1+31)]; - f4 = f13+f1; - if(f3 >f4) //_LBB603_2 -{ - f1 = f3-f13; - f4 = f3; -} - heapFloat[(r1+21)] = f4; - f3 = heapFloat[(r0+84)]; - f4 = 0; -if(!(f3 ==f4)) //_LBB603_5 -{ - f3 = heapFloat[(r0+138)]; - f0 = f0*f3; - f0 = f0*f1; - f3 = heapFloat[(r0+126)]; - f5 = heapFloat[(r0+139)]; - f6 = heapFloat[(r0+140)]; - f0 = f3+f0; - f2 = f2*f5; - heapFloat[(r0+126)] = f0; - f0 = f2*f1; - f2 = heapFloat[(r0+127)]; - f0 = f2+f0; - f2 = f10*f6; - heapFloat[(r0+127)] = f0; - f0 = f2*f1; - f2 = heapFloat[(r0+128)]; - f0 = f2+f0; - heapFloat[(r0+128)] = f0; - f0 = heapFloat[(r0+134)]; - f0 = f0*f1; - f2 = heapFloat[(r1+12)]; - f3 = heapFloat[(r0+136)]; - f5 = heapFloat[(r0+135)]; - f0 = f2*f0; - f2 = heapFloat[(r0+130)]; - f6 = heapFloat[(r1+14)]; - f7 = heapFloat[(r1+13)]; - f0 = f2+f0; - f2 = f5*f1; - heapFloat[(r0+130)] = f0; - f0 = f7*f2; - f2 = heapFloat[(r0+131)]; - f0 = f2+f0; - f2 = f3*f1; - heapFloat[(r0+131)] = f0; - f0 = f6*f2; - f2 = heapFloat[(r0+132)]; - f0 = f2+f0; - heapFloat[(r0+132)] = f0; -} - f0 = heapFloat[(r2+84)]; -if(!(f0 ==f4)) //_LBB603_7 -{ - f0 = heapFloat[(r1+4)]; - f2 = heapFloat[(r2+138)]; - f0 = f2*f0; - f0 = f0*f1; - f2 = heapFloat[(r2+126)]; - f3 = heapFloat[(r1+5)]; - f4 = heapFloat[(r2+139)]; - f5 = heapFloat[(r1+6)]; - f6 = heapFloat[(r2+140)]; - f0 = f2-f0; - f2 = f4*f3; - heapFloat[(r2+126)] = f0; - f0 = f2*f1; - f2 = heapFloat[(r2+127)]; - f0 = f2-f0; - f2 = f6*f5; - heapFloat[(r2+127)] = f0; - f0 = f2*f1; - f2 = heapFloat[(r2+128)]; - f0 = f2-f0; - heapFloat[(r2+128)] = f0; - f0 = heapFloat[(r2+134)]; - f0 = f0*f1; - f2 = heapFloat[(r1+16)]; - f3 = heapFloat[(r2+136)]; - f4 = heapFloat[(r2+135)]; - f0 = f2*f0; - f2 = heapFloat[(r2+130)]; - f5 = heapFloat[(r1+18)]; - f6 = heapFloat[(r1+17)]; - f0 = f2+f0; - f2 = f4*f1; - heapFloat[(r2+130)] = f0; - f0 = f6*f2; - f2 = heapFloat[(r2+131)]; - f0 = f2+f0; - f1 = f3*f1; - heapFloat[(r2+131)] = f0; - f0 = f5*f1; - f1 = heapFloat[(r2+132)]; - f0 = f1+f0; - heapFloat[(r2+132)] = f0; -} - return; -} - -function _ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0+33)]; - f1 = 0; -if(!(f0 ==f1)) //_LBB604_8 -{ - r1 = heap32[(fp)]; - r2 = heap32[(fp+1)]; - r3 = gNumSplitImpulseRecoveries; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r2 = r2 >> 2; - f2 = heapFloat[(r0+4)]; - f3 = heapFloat[(r1+142)]; - f4 = heapFloat[(r0+5)]; - f5 = heapFloat[(r1+143)]; - f6 = heapFloat[(r0)]; - f7 = heapFloat[(r1+146)]; - f8 = heapFloat[(r0+1)]; - f9 = heapFloat[(r1+147)]; - f10 = heapFloat[(r2+142)]; - f11 = heapFloat[(r2+143)]; - f12 = heapFloat[(r0+6)]; - f13 = heapFloat[(r1+144)]; - f3 = f2*f3; - f5 = f4*f5; - f6 = f6*f7; - f7 = f8*f9; - f8 = heapFloat[(r0+2)]; - f9 = heapFloat[(r1+148)]; - f14 = heapFloat[(r0+8)]; - f15 = heapFloat[(r2+146)]; - f16 = heapFloat[(r0+9)]; - f17 = heapFloat[(r2+147)]; - f18 = heapFloat[(r2+144)]; - f3 = f3+f5; - f5 = f12*f13; - f6 = f6+f7; - f7 = f8*f9; - f8 = f14*f15; - f9 = f16*f17; - f13 = heapFloat[(r0+10)]; - f14 = heapFloat[(r2+148)]; - f10 = f2*f10; - f11 = f4*f11; - f15 = heapFloat[(r0+20)]; - f16 = heapFloat[(r0+30)]; - f3 = f3+f5; - f5 = f6+f7; - f6 = f8+f9; - f7 = f13*f14; - f8 = f10+f11; - f9 = f12*f18; - f10 = f15*f16; - f3 = f3+f5; - f5 = heapFloat[(r0+23)]; - f6 = f6+f7; - f7 = f8+f9; - f6 = f6-f7; - f0 = f0-f10; - f3 = f5*f3; - f0 = f0-f3; - f3 = f5*f6; - f0 = f0-f3; - f3 = heapFloat[(r0+31)]; - f5 = f15+f0; - if(f3 >f5) //_LBB604_3 -{ - f0 = f3-f15; - f5 = f3; -} - heapFloat[(r0+20)] = f5; - f3 = heapFloat[(r1+84)]; -if(!(f3 ==f1)) //_LBB604_6 -{ - f3 = heapFloat[(r1+138)]; - f2 = f2*f3; - f2 = f2*f0; - f3 = heapFloat[(r1+142)]; - f5 = heapFloat[(r1+139)]; - f6 = heapFloat[(r1+140)]; - f2 = f3+f2; - f3 = f4*f5; - heapFloat[(r1+142)] = f2; - f2 = f3*f0; - f3 = heapFloat[(r1+143)]; - f2 = f3+f2; - f3 = f12*f6; - heapFloat[(r1+143)] = f2; - f2 = f3*f0; - f3 = heapFloat[(r1+144)]; - f2 = f3+f2; - heapFloat[(r1+144)] = f2; - f2 = heapFloat[(r1+134)]; - f2 = f2*f0; - f3 = heapFloat[(r0+12)]; - f4 = heapFloat[(r1+136)]; - f5 = heapFloat[(r1+135)]; - f2 = f3*f2; - f3 = heapFloat[(r1+146)]; - f6 = heapFloat[(r0+14)]; - f7 = heapFloat[(r0+13)]; - f2 = f3+f2; - f3 = f5*f0; - heapFloat[(r1+146)] = f2; - f2 = f7*f3; - f3 = heapFloat[(r1+147)]; - f2 = f3+f2; - f3 = f4*f0; - heapFloat[(r1+147)] = f2; - f2 = f6*f3; - f3 = heapFloat[(r1+148)]; - f2 = f3+f2; - heapFloat[(r1+148)] = f2; -} - f2 = heapFloat[(r2+84)]; -if(!(f2 ==f1)) //_LBB604_8 -{ - f1 = heapFloat[(r0+4)]; - f2 = heapFloat[(r2+138)]; - f1 = f2*f1; - f1 = f1*f0; - f2 = heapFloat[(r2+142)]; - f3 = heapFloat[(r0+5)]; - f4 = heapFloat[(r2+139)]; - f5 = heapFloat[(r0+6)]; - f6 = heapFloat[(r2+140)]; - f1 = f2-f1; - f2 = f4*f3; - heapFloat[(r2+142)] = f1; - f1 = f2*f0; - f2 = heapFloat[(r2+143)]; - f1 = f2-f1; - f2 = f6*f5; - heapFloat[(r2+143)] = f1; - f1 = f2*f0; - f2 = heapFloat[(r2+144)]; - f1 = f2-f1; - heapFloat[(r2+144)] = f1; - f1 = heapFloat[(r2+134)]; - f1 = f1*f0; - f2 = heapFloat[(r0+16)]; - f3 = heapFloat[(r2+136)]; - f4 = heapFloat[(r2+135)]; - f1 = f2*f1; - f2 = heapFloat[(r2+146)]; - f5 = heapFloat[(r0+18)]; - f6 = heapFloat[(r0+17)]; - f1 = f2+f1; - f2 = f4*f0; - heapFloat[(r2+146)] = f1; - f1 = f6*f2; - f2 = heapFloat[(r2+147)]; - f1 = f2+f1; - f0 = f3*f0; - heapFloat[(r2+147)] = f1; - f0 = f5*f0; - f1 = heapFloat[(r2+148)]; - f0 = f1+f0; - heapFloat[(r2+148)] = f0; -} -} - return; -} - -function _Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; -if(!(r0 ==0)) //_LBB605_2 -{ - r0 = r0 >> 2; - r1 = heap32[(r0+45)]; - if(r1 !=0) //_LBB605_3 -{ - r1 = heap32[(fp+1)]; - r1 = r1 >> 2; - f0 = heapFloat[(r1)]; - f1 = heapFloat[(r0+2)]; - f2 = heapFloat[(r0+1)]; - f3 = heapFloat[(r1+1)]; - f4 = heapFloat[(r0+6)]; - f5 = heapFloat[(r0+5)]; - f6 = heapFloat[(r0+3)]; - f7 = heapFloat[(r0+7)]; - f8 = f2*f0; - f9 = f5*f3; - f10 = f1*f0; - f11 = f4*f3; - f12 = heapFloat[(r1+2)]; - f13 = heapFloat[(r0+10)]; - f14 = heapFloat[(r0+9)]; - f15 = heapFloat[(r0+11)]; - f8 = f8+f9; - f9 = f14*f12; - f10 = f10+f11; - f11 = f13*f12; - f0 = f6*f0; - f3 = f7*f3; - f8 = f8+f9; - f9 = heapFloat[(r0+41)]; - f10 = f10+f11; - f11 = heapFloat[(r0+42)]; - f0 = f0+f3; - f3 = f15*f12; - f8 = f8*f9; - f9 = f10*f11; - f10 = heapFloat[(r0+43)]; - f0 = f0+f3; - f0 = f0*f10; - f2 = f2*f8; - f1 = f1*f9; - f3 = f5*f8; - f4 = f4*f9; - f1 = f2+f1; - f2 = f6*f0; - f5 = f14*f8; - f6 = f13*f9; - f3 = f3+f4; - f4 = f7*f0; - f1 = f1+f2; - f2 = f5+f6; - f0 = f15*f0; - f3 = f3+f4; - heapFloat[(r1)] = f1; - f0 = f2+f0; - heapFloat[(r1+1)] = f3; - heapFloat[(r1+2)] = f0; - heap32[(r1+3)] = 0; - return; -} -} - return; -} - -function _ZN35btSequentialImpulseConstraintSolver5resetEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - heap32[(r0+31)] = 0; - return; -} - -function _ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+7)]; - r1 = r0 >> 2; - r2 = heap32[(r1+11)]; -_1: do { -if(!(r2 ==0)) //_LBB607_14 -{ - r2 = heap32[(fp)]; - r0 = heapU8[r0+61]; - r3 = heap32[(r1+5)]; - r0 = r0 & 1; - if(r0 != 0) //_LBB607_3 -{ -if(!(r3 <1)) //_LBB607_14 -{ - r0 = 0; -_6: while(true){ - r3 = r2 >> 2; - r4 = heap32[(r3+2)]; -if(!(r4 <1)) //_LBB607_8 -{ - r5 = 0; -_10: while(true){ - r6 = heap32[(r3+19)]; - r7 = r5 << 2; - r6 = (r6 + r7)|0; - r6 = r6 >> 2; - r6 = heap32[(r6)]; - r6 = (r6 * 136)|0; - r7 = heap32[(r3+4)]; - r6 = (r7 + r6)|0; - r7 = r6 >> 2; - r8 = heap32[(r7+27)]; - r7 = heap32[(r7+26)]; - heap32[(g0)] = r7; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r6; - r5 = (r5 + 1)|0; - _ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(i7); -if(!(r4 !=r5)) //_LBB607_7 -{ -break _10; -} -} -} - r0 = (r0 + 1)|0; - r3 = heap32[(r1+5)]; - if(r3 >r0) //_LBB607_5 -{ -continue _6; -} -else{ -break _1; -} -} -} -} -else{ - if(r3 >0) //_LBB607_9 -{ - r0 = 0; -_15: while(true){ - r3 = r2 >> 2; - r4 = heap32[(r3+2)]; -if(!(r4 <1)) //_LBB607_13 -{ - r5 = 0; -_19: while(true){ - r6 = heap32[(r3+19)]; - r7 = r5 << 2; - r6 = (r6 + r7)|0; - r6 = r6 >> 2; - r6 = heap32[(r6)]; - r6 = (r6 * 136)|0; - r7 = heap32[(r3+4)]; - r6 = (r7 + r6)|0; - r7 = r6 >> 2; - r8 = heap32[(r7+27)]; - r7 = heap32[(r7+26)]; - heap32[(g0)] = r7; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r6; - r5 = (r5 + 1)|0; - _ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(i7); -if(!(r4 !=r5)) //_LBB607_12 -{ -break _19; -} -} -} - r0 = (r0 + 1)|0; - r3 = heap32[(r1+5)]; - if(r3 >r0) //_LBB607_10 -{ -continue _15; -} -else{ -break _1; -} -} -} -} -} -} while(0); - return; -} - -function _ZN35btSequentialImpulseConstraintSolverD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV35btSequentialImpulseConstraintSolver; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+29)]; -if(!(r1 ==0)) //_LBB608_4 -{ - r3 = heapU8[r0+120]; -if(!(r3 ==0)) //_LBB608_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+29)] = 0; -} - r1 = 1; - heap8[r0+120] = r1; - heap32[(r2+29)] = 0; - heap32[(r2+27)] = 0; - heap32[(r2+28)] = 0; - r3 = heap32[(r2+24)]; -if(!(r3 ==0)) //_LBB608_8 -{ - r4 = heapU8[r0+100]; -if(!(r4 ==0)) //_LBB608_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+24)] = 0; -} - heap8[r0+100] = r1; - heap32[(r2+24)] = 0; - heap32[(r2+22)] = 0; - heap32[(r2+23)] = 0; - r3 = heap32[(r2+19)]; -if(!(r3 ==0)) //_LBB608_12 -{ - r4 = heapU8[r0+80]; -if(!(r4 ==0)) //_LBB608_11 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+19)] = 0; -} - heap8[r0+80] = r1; - heap32[(r2+19)] = 0; - heap32[(r2+17)] = 0; - heap32[(r2+18)] = 0; - r3 = heap32[(r2+14)]; -if(!(r3 ==0)) //_LBB608_16 -{ - r4 = heapU8[r0+60]; -if(!(r4 ==0)) //_LBB608_15 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+14)] = 0; -} - heap8[r0+60] = r1; - heap32[(r2+14)] = 0; - heap32[(r2+12)] = 0; - heap32[(r2+13)] = 0; - r3 = heap32[(r2+9)]; -if(!(r3 ==0)) //_LBB608_20 -{ - r4 = heapU8[r0+40]; -if(!(r4 ==0)) //_LBB608_19 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+9)] = 0; -} - heap8[r0+40] = r1; - heap32[(r2+9)] = 0; - heap32[(r2+7)] = 0; - heap32[(r2+8)] = 0; - r3 = heap32[(r2+4)]; -if(!(r3 ==0)) //_LBB608_24 -{ - r4 = heapU8[r0+20]; -if(!(r4 ==0)) //_LBB608_23 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+4)] = 0; -} - heap8[r0+20] = r1; - heap32[(r2+4)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - return; -} - -function _ZN35btSequentialImpulseConstraintSolverD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV35btSequentialImpulseConstraintSolver; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+29)]; -if(!(r1 ==0)) //_LBB609_4 -{ - r3 = heapU8[r0+120]; -if(!(r3 ==0)) //_LBB609_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+29)] = 0; -} - r1 = 1; - heap8[r0+120] = r1; - heap32[(r2+29)] = 0; - heap32[(r2+27)] = 0; - heap32[(r2+28)] = 0; - r3 = heap32[(r2+24)]; -if(!(r3 ==0)) //_LBB609_8 -{ - r4 = heapU8[r0+100]; -if(!(r4 ==0)) //_LBB609_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+24)] = 0; -} - heap8[r0+100] = r1; - heap32[(r2+24)] = 0; - heap32[(r2+22)] = 0; - heap32[(r2+23)] = 0; - r3 = heap32[(r2+19)]; -if(!(r3 ==0)) //_LBB609_12 -{ - r4 = heapU8[r0+80]; -if(!(r4 ==0)) //_LBB609_11 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+19)] = 0; -} - heap8[r0+80] = r1; - heap32[(r2+19)] = 0; - heap32[(r2+17)] = 0; - heap32[(r2+18)] = 0; - r3 = heap32[(r2+14)]; -if(!(r3 ==0)) //_LBB609_16 -{ - r4 = heapU8[r0+60]; -if(!(r4 ==0)) //_LBB609_15 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+14)] = 0; -} - heap8[r0+60] = r1; - heap32[(r2+14)] = 0; - heap32[(r2+12)] = 0; - heap32[(r2+13)] = 0; - r3 = heap32[(r2+9)]; -if(!(r3 ==0)) //_LBB609_20 -{ - r4 = heapU8[r0+40]; -if(!(r4 ==0)) //_LBB609_19 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+9)] = 0; -} - heap8[r0+40] = r1; - heap32[(r2+9)] = 0; - heap32[(r2+7)] = 0; - heap32[(r2+8)] = 0; - r3 = heap32[(r2+4)]; -if(!(r3 ==0)) //_LBB609_24 -{ - r4 = heapU8[r0+20]; -if(!(r4 ==0)) //_LBB609_23 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+4)] = 0; -} - heap8[r0+20] = r1; - heap32[(r2+4)] = 0; - heap32[(r2+2)] = 0; - heap32[(r2+3)] = 0; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -48;var g0 = i7>>2; // save stack - r0 = _2E_str450; - r1 = heap32[(fp+1)]; - heap32[(g0)] = r0; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - if(r1 !=0) //_LBB610_2 -{ - r0 = heap32[(fp+2)]; - if(r0 !=0) //_LBB610_4 -{ - r2 = heap32[(fp)]; - r3 = heap32[(fp+3)]; - r4 = heap32[(fp+4)]; - r5 = heap32[(fp+5)]; - r6 = heap32[(fp+6)]; - r7 = heap32[(fp+7)]; - r8 = heap32[(fp+8)]; - r9 = heap32[(fp+9)]; - r10 = r2 >> 2; - r11 = heap32[(r10)]; - r11 = r11 >> 2; - r11 = heap32[(r11+8)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r0; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r4; - heap32[(g0+5)] = r5; - heap32[(g0+6)] = r6; - heap32[(g0+7)] = r7; - heap32[(g0+8)] = r8; - heap32[(g0+9)] = r9; - __FUNCTION_TABLE__[(r11)>>2](i7); - r11 = heap32[(r10)]; - r11 = r11 >> 2; - r11 = heap32[(r11+9)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r0; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r4; - heap32[(g0+5)] = r5; - heap32[(g0+6)] = r6; - heap32[(g0+7)] = r7; - heap32[(g0+8)] = r8; - heap32[(g0+9)] = r9; - __FUNCTION_TABLE__[(r11)>>2](i7); - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+7)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r0; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r4; - heap32[(g0+5)] = r5; - heap32[(g0+6)] = r6; - heap32[(g0+7)] = r7; - heap32[(g0+8)] = r8; - heap32[(g0+9)] = r9; - r0 = _ZN15CProfileManager11CurrentNodeE; - r0 = r0 >> 2; - __FUNCTION_TABLE__[(r10)>>2](i7); - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r3 = (r3 + -1)|0; - heap32[(r2+4)] = r3; -_5: do { -if(!(r3 !=0)) //_LBB610_10 -{ - r3 = heap32[(r2+1)]; - if(r3 !=0) //_LBB610_7 -{ - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 * 1000000)|0; - r1 = (r1 + r3)|0; - r3 = heap32[(r2+3)]; - r1 = (r1 - r3)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r2+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r2+2)] = f0; - r1 = heap32[(r2+4)]; - if(r1 !=0) //_LBB610_10 -{ -break _5; -} -else{ - r1 = heap32[(r0)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r0)] = r1; -} -} while(0); - f0 = 0; - f_g0 = f0; - return; -} -else{ - r0 = _2E_str753; - r1 = _2E_str652; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 1186; - _assert(i7); -} -} -else{ - r1 = _2E_str551; - r0 = _2E_str652; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 1185; - _assert(i7); -} -} - -function _ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; -var __label__ = 0; - i7 = sp + -504;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+7)]; - r5 = heap32[(r1+2)]; - r6 = 0; -_1: while(true){ - if(r6 > 2; - r8 = heap32[(r7+28)]; - if(r8 !=0) //_LBB611_3 -{ - r8 = r8 >> 2; - heap32[(r8+28)] = heap32[(r7+21)]; - r9 = heapU8[r4+60]; - r9 = r9 & 8; -if(!(r9 ==0)) //_LBB611_5 -{ - r9 = heap32[(r7+25)]; - r10 = heap32[(r1+14)]; - r9 = (r9 * 136)|0; - r9 = (r10 + r9)|0; - r9 = r9 >> 2; - heap32[(r8+30)] = heap32[(r9+21)]; - r7 = heap32[(r7+25)]; - r9 = heap32[(r1+14)]; - r7 = (r7 * 136)|0; - r7 = (r7 + r9)|0; - r7 = r7 >> 2; - heap32[(r8+31)] = heap32[(r7+55)]; -} - r6 = (r6 + 1)|0; -continue _1; -} -else{ -__label__ = 2; -break _1; -} -} -else{ -__label__ = 7; -break _1; -} -} -switch(__label__ ){//multiple entries -case 7: - r5 = heap32[(r1+7)]; -_10: do { -if(!(r5 <1)) //_LBB611_10 -{ - r6 = 0; -_12: while(true){ - r7 = (r6 * 34)|0; - r8 = heap32[(r1+9)]; - r7 = r7 << 2; - r7 = (r8 + r7)|0; - r7 = r7 >> 2; - r8 = heap32[(r7+28)]; - r8 = r8 >> 2; - f0 = heapFloat[(r8+7)]; - f1 = heapFloat[(r7+21)]; - r6 = (r6 + 1)|0; - f0 = f1+f0; - heapFloat[(r8+7)] = f0; - if(r5 !=r6) //_LBB611_9 -{ -continue _12; -} -else{ -break _10; -} -} -} -} while(0); - r4 = r4 >> 2; - r5 = heap32[(r4+11)]; -_15: do { - if(r5 !=0) //_LBB611_13 -{ -if(!(r3 <1)) //_LBB611_24 -{ -__label__ = 13; //SET chanka -_17: while(true){ - r5 = r2 >> 2; - r5 = heap32[(r5)]; - r6 = heapU8[r5+232]; - r6 = r6 & 2; -if(!(r6 ==0)) //_LBB611_18 -{ -if(!(r5 ==0)) //_LBB611_18 -{ - r6 = r5 >> 2; - f0 = heapFloat[(r6+84)]; - f1 = 0; -if(!(f0 ==f1)) //_LBB611_18 -{ - f0 = heapFloat[(r4+3)]; - f1 = heapFloat[(r6+78)]; - f2 = heapFloat[(r6+128)]; - f3 = heapFloat[(r6+77)]; - f4 = heapFloat[(r6+127)]; - f5 = heapFloat[(r6+76)]; - f6 = heapFloat[(r6+126)]; - f5 = f5+f6; - f3 = f3+f4; - heapFloat[(r6+76)] = f5; - f1 = f1+f2; - heapFloat[(r6+77)] = f3; - heapFloat[(r6+78)] = f1; - heap32[(r6+79)] = 0; - f1 = heapFloat[(r6+82)]; - f2 = heapFloat[(r6+132)]; - f3 = heapFloat[(r6+81)]; - f4 = heapFloat[(r6+131)]; - f5 = heapFloat[(r6+80)]; - f6 = heapFloat[(r6+130)]; - f5 = f5+f6; - f3 = f3+f4; - heapFloat[(r6+80)] = f5; - f1 = f1+f2; - heapFloat[(r6+81)] = f3; - heapFloat[(r6+82)] = f1; - heap32[(r6+83)] = 0; - f1 = heapFloat[(r6+142)]; - f2 = heapFloat[(r6+143)]; - f3 = heapFloat[(r6+144)]; - r7 = sp + -64; - r8 = (r5 + 4)|0; - r5 = (r5 + 584)|0; - heap32[(g0)] = r8; - heapFloat[(g0+1)] = f1; - heapFloat[(g0+2)] = f2; - heapFloat[(g0+3)] = f3; - heap32[(g0+4)] = r5; - heapFloat[(g0+5)] = f0; - heap32[(g0+6)] = r7; - _ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7); - r5 = r7 >> 2; - heap32[(r6+1)] = heap32[(fp+-16)]; - heap32[(r6+2)] = heap32[(r5+1)]; - heap32[(r6+3)] = heap32[(r5+2)]; - heap32[(r6+4)] = heap32[(r5+3)]; - heap32[(r6+5)] = heap32[(r5+4)]; - heap32[(r6+6)] = heap32[(r5+5)]; - heap32[(r6+7)] = heap32[(r5+6)]; - heap32[(r6+8)] = heap32[(r5+7)]; - heap32[(r6+9)] = heap32[(r5+8)]; - heap32[(r6+10)] = heap32[(r5+9)]; - heap32[(r6+11)] = heap32[(r5+10)]; - heap32[(r6+12)] = heap32[(r5+11)]; - heap32[(r6+13)] = heap32[(r5+12)]; - heap32[(r6+14)] = heap32[(r5+13)]; - heap32[(r6+15)] = heap32[(r5+14)]; - heap32[(r6+16)] = heap32[(r5+15)]; -} -} -} - r3 = (r3 + -1)|0; - r2 = (r2 + 4)|0; - if(r3 ==0) //_LBB611_24 -{ -break _15; -} -else{ -continue _17; -} -} -} -} -else{ -if(!(r3 <1)) //_LBB611_24 -{ -__label__ = 18; //SET chanka -_25: while(true){ - r4 = r2 >> 2; - r4 = heap32[(r4)]; - r5 = heapU8[r4+232]; - r5 = r5 & 2; -if(!(r5 ==0)) //_LBB611_23 -{ -if(!(r4 ==0)) //_LBB611_23 -{ - r4 = r4 >> 2; - f0 = heapFloat[(r4+84)]; - f1 = 0; -if(!(f0 ==f1)) //_LBB611_23 -{ - f0 = heapFloat[(r4+78)]; - f1 = heapFloat[(r4+128)]; - f2 = heapFloat[(r4+77)]; - f3 = heapFloat[(r4+127)]; - f4 = heapFloat[(r4+76)]; - f5 = heapFloat[(r4+126)]; - f4 = f4+f5; - f2 = f2+f3; - heapFloat[(r4+76)] = f4; - f0 = f0+f1; - heapFloat[(r4+77)] = f2; - heapFloat[(r4+78)] = f0; - heap32[(r4+79)] = 0; - f0 = heapFloat[(r4+82)]; - f1 = heapFloat[(r4+132)]; - f2 = heapFloat[(r4+81)]; - f3 = heapFloat[(r4+131)]; - f4 = heapFloat[(r4+80)]; - f5 = heapFloat[(r4+130)]; - f4 = f4+f5; - f2 = f2+f3; - heapFloat[(r4+80)] = f4; - f0 = f0+f1; - heapFloat[(r4+81)] = f2; - heapFloat[(r4+82)] = f0; - heap32[(r4+83)] = 0; -} -} -} - r3 = (r3 + -1)|0; - r2 = (r2 + 4)|0; - if(r3 !=0) //_LBB611_19 -{ -continue _25; -} -else{ -break _15; -} -} -} -} -} while(0); - r2 = heap32[(r1+2)]; -_33: do { -if(!(r2 >-1)) //_LBB611_33 -{ - r3 = heap32[(r1+3)]; -if(!(r3 >-1)) //_LBB611_31 -{ - r3 = heap32[(r1+4)]; -if(!(r3 ==0)) //_LBB611_30 -{ - r4 = heapU8[r0+20]; -if(!(r4 ==0)) //_LBB611_29 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r1+4)] = 0; -} - r3 = 1; - heap8[r0+20] = r3; - heap32[(r1+4)] = 0; - heap32[(r1+3)] = 0; -} - r3 = (r2 * 136)|0; -_44: while(true){ - r4 = heap32[(r1+4)]; - r4 = (r4 + r3)|0; - r5 = sp + -472; - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = 136; - r2 = (r2 + 1)|0; - r3 = (r3 + 136)|0; - memcpy(i7); - if(r2 !=0) //_LBB611_32 -{ -continue _44; -} -else{ -break _33; -} -} -} -} while(0); - heap32[(r1+2)] = 0; - r2 = heap32[(r1+7)]; -_47: do { -if(!(r2 >-1)) //_LBB611_42 -{ - r3 = heap32[(r1+8)]; -if(!(r3 >-1)) //_LBB611_40 -{ - r3 = heap32[(r1+9)]; -if(!(r3 ==0)) //_LBB611_39 -{ - r4 = heapU8[r0+40]; -if(!(r4 ==0)) //_LBB611_38 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r1+9)] = 0; -} - r3 = 1; - heap8[r0+40] = r3; - heap32[(r1+9)] = 0; - heap32[(r1+8)] = 0; -} - r3 = (r2 * 136)|0; -_58: while(true){ - r4 = heap32[(r1+9)]; - r4 = (r4 + r3)|0; - r5 = sp + -336; - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = 136; - r2 = (r2 + 1)|0; - r3 = (r3 + 136)|0; - memcpy(i7); - if(r2 !=0) //_LBB611_41 -{ -continue _58; -} -else{ -break _47; -} -} -} -} while(0); - heap32[(r1+7)] = 0; - r2 = heap32[(r1+12)]; -_61: do { -if(!(r2 >-1)) //_LBB611_51 -{ - r3 = heap32[(r1+13)]; -if(!(r3 >-1)) //_LBB611_49 -{ - r3 = heap32[(r1+14)]; -if(!(r3 ==0)) //_LBB611_48 -{ - r4 = heapU8[r0+60]; -if(!(r4 ==0)) //_LBB611_47 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r1+14)] = 0; -} - r3 = 1; - heap8[r0+60] = r3; - heap32[(r1+14)] = 0; - heap32[(r1+13)] = 0; -} - r0 = (r2 * 136)|0; -_72: while(true){ - r3 = heap32[(r1+14)]; - r3 = (r3 + r0)|0; - r4 = sp + -200; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = 136; - r2 = (r2 + 1)|0; - r0 = (r0 + 136)|0; - memcpy(i7); - if(r2 !=0) //_LBB611_50 -{ -continue _72; -} -else{ -break _61; -} -} -} -} while(0); - heap32[(r1+12)] = 0; - f0 = 0; - f_g0 = f0; - return; -break; -case 2: - r0 = _2E_str955; - r1 = _2E_str652; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 1129; - _assert(i7); -break; -} -} - -function _ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; - var r24; - var r25; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; -var __label__ = 0; - i7 = sp + -584;var g0 = i7>>2; // save stack - r0 = _2E_str1056; - r1 = heap32[(fp+6)]; - heap32[(g0)] = r0; - r0 = heap32[(fp+4)]; - heap32[(fp+-133)] = r0; - r2 = 0; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r0 = (r2 - r0)|0; -_1: do { -if(!(r1 ==r0)) //_LBB612_269 -{ - r0 = heap32[(fp)]; - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - r5 = heap32[(fp+3)]; - heap32[(fp+-132)] = r5; - r5 = heap32[(fp+5)]; - heap32[(fp+-127)] = r5; - r5 = heap32[(fp+7)]; - r6 = r5 >> 2; - r7 = heap32[(r6+11)]; -_3: do { - if(r7 !=0) //_LBB612_4 -{ -if(!(r4 <1)) //_LBB612_14 -{ -__label__ = 4; //SET chanka -_5: while(true){ - r7 = r3 >> 2; - r7 = heap32[(r7)]; - r8 = heapU8[r7+232]; - r8 = r8 & 2; -if(!(r8 ==0)) //_LBB612_8 -{ -if(!(r7 ==0)) //_LBB612_8 -{ - r7 = r7 >> 2; - heap32[(r7+126)] = 0; - heap32[(r7+127)] = 0; - heap32[(r7+128)] = 0; - heap32[(r7+129)] = 0; - heap32[(r7+130)] = 0; - heap32[(r7+131)] = 0; - heap32[(r7+132)] = 0; - heap32[(r7+133)] = 0; - heap32[(r7+142)] = 0; - heap32[(r7+143)] = 0; - heap32[(r7+144)] = 0; - heap32[(r7+145)] = 0; - heap32[(r7+146)] = 0; - heap32[(r7+147)] = 0; - heap32[(r7+148)] = 0; - heap32[(r7+149)] = 0; -} -} - r4 = (r4 + -1)|0; - r3 = (r3 + 4)|0; - if(r4 ==0) //_LBB612_14 -{ -break _3; -} -else{ -continue _5; -} -} -} -} -else{ -if(!(r4 <1)) //_LBB612_14 -{ -__label__ = 8; //SET chanka -_12: while(true){ - r7 = r3 >> 2; - r7 = heap32[(r7)]; - r8 = heapU8[r7+232]; - r8 = r8 & 2; -if(!(r8 ==0)) //_LBB612_12 -{ -if(!(r7 ==0)) //_LBB612_12 -{ - r7 = r7 >> 2; - heap32[(r7+126)] = 0; - heap32[(r7+127)] = 0; - heap32[(r7+128)] = 0; - heap32[(r7+129)] = 0; - heap32[(r7+130)] = 0; - heap32[(r7+131)] = 0; - heap32[(r7+132)] = 0; - heap32[(r7+133)] = 0; -} -} - r4 = (r4 + -1)|0; - r3 = (r3 + 4)|0; - if(r4 ==0) //_LBB612_14 -{ -break _3; -} -} -} -} -} while(0); -_19: do { - if(r1 <1) //_LBB612_40 -{ - r4 = r0 >> 2; - r3 = heap32[(r4+27)]; -_21: do { -if(!(r3 >r1)) //_LBB612_59 -{ -if(!(r3 >=r1)) //_LBB612_59 -{ - r7 = heap32[(r4+28)]; -if(!(r7 >=r1)) //_LBB612_58 -{ - if(r1 !=0) //_LBB612_45 -{ - r7 = gNumAlignedAllocs; - r7 = r7 >> 2; - r8 = heap32[(r7)]; - r9 = r1 << 3; - r8 = (r8 + 1)|0; - r9 = r9 | 3; - heap32[(r7)] = r8; - r7 = (r9 + 16)|0; - heap32[(g0)] = r7; - malloc(i7); - r7 = r_g0; - if(r7 !=0) //_LBB612_47 -{ - r8 = (r7 + 4)|0; - r8 = (r2 - r8)|0; - r8 = r8 & 15; - r8 = (r7 + r8)|0; - r9 = (r8 + 4)|0; - r8 = r8 >> 2; - heap32[(r8)] = r7; - r7 = r9; -} -} -else{ - r7 = 0; -} - r8 = (r0 + 116)|0; - if(r3 <1) //_LBB612_50 -{ - r2 = r8 >> 2; - r9 = heap32[(r2)]; -} -else{ -_33: while(true){ - r9 = r8 >> 2; - r9 = heap32[(r9)]; - r10 = r2 << 3; - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - r10 = (r7 + r10)|0; - r12 = heap32[(r11+1)]; - r11 = heap32[(r11)]; - r10 = r10 >> 2; - r2 = (r2 + 1)|0; - heap32[(r10)] = r11; - heap32[(r10+1)] = r12; -if(!(r3 !=r2)) //_LBB612_51 -{ -break _33; -} -} - r8 = (r0 + 116)|0; -} -if(!(r9 ==0)) //_LBB612_57 -{ - r2 = heapU8[r0+120]; -if(!(r2 ==0)) //_LBB612_56 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r10 = heap32[(r2)]; - r10 = (r10 + 1)|0; - r9 = r9 >> 2; - heap32[(r2)] = r10; - r2 = heap32[(r9+-1)]; - heap32[(g0)] = r2; - free(i7); -} - r2 = r8 >> 2; - heap32[(r2)] = 0; -} - r2 = 1; - r8 = r8 >> 2; - heap8[r0+120] = r2; - heap32[(r8)] = r7; - heap32[(r4+28)] = r1; - if(r3 >=r1) //_LBB612_59 -{ -break _21; -} -} -_43: while(true){ - r2 = r3 << 3; - r7 = heap32[(r4+29)]; - r2 = (r7 + r2)|0; - r2 = r2 >> 2; - r3 = (r3 + 1)|0; - heap32[(r2)] = 0; - heap32[(r2+1)] = 0; -if(!(r1 !=r3)) //_LBB612_58 -{ -break _21; -} -} -} -} -} while(0); - r3 = 0; - heap32[(r4+27)] = r1; -} -else{ - r2 = 0; -_47: while(true){ - r3 = r2 << 2; - r4 = heap32[(fp+-127)]; - r3 = (r4 + r3)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+2)]; - r2 = (r2 + 1)|0; - heap32[(g0)] = r3; - __FUNCTION_TABLE__[(r4)>>2](i7); - if(r1 ==r2) //_LBB612_16 -{ -break _47; -} -} - r2 = r0 >> 2; - r3 = heap32[(r2+27)]; -_50: do { -if(!(r3 >r1)) //_LBB612_35 -{ -if(!(r3 >=r1)) //_LBB612_35 -{ - r4 = heap32[(r2+28)]; -if(!(r4 >=r1)) //_LBB612_34 -{ - if(r1 !=0) //_LBB612_21 -{ - r4 = gNumAlignedAllocs; - r4 = r4 >> 2; - r7 = heap32[(r4)]; - r8 = r1 << 3; - r7 = (r7 + 1)|0; - r8 = r8 | 3; - heap32[(r4)] = r7; - r4 = (r8 + 16)|0; - heap32[(g0)] = r4; - malloc(i7); - r4 = r_g0; - if(r4 !=0) //_LBB612_23 -{ - r7 = 0; - r8 = (r4 + 4)|0; - r7 = (r7 - r8)|0; - r7 = r7 & 15; - r7 = (r4 + r7)|0; - r8 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r4; - r4 = r8; -} -} -else{ - r4 = 0; -} - r7 = (r0 + 116)|0; - if(r3 <1) //_LBB612_26 -{ - r8 = r7 >> 2; - r9 = heap32[(r8)]; -} -else{ - r8 = 0; -_63: while(true){ - r9 = r7 >> 2; - r9 = heap32[(r9)]; - r10 = r8 << 3; - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - r10 = (r4 + r10)|0; - r12 = heap32[(r11+1)]; - r11 = heap32[(r11)]; - r10 = r10 >> 2; - r8 = (r8 + 1)|0; - heap32[(r10)] = r11; - heap32[(r10+1)] = r12; -if(!(r3 !=r8)) //_LBB612_27 -{ -break _63; -} -} - r7 = (r0 + 116)|0; -} -if(!(r9 ==0)) //_LBB612_33 -{ - r8 = heapU8[r0+120]; -if(!(r8 ==0)) //_LBB612_32 -{ - r8 = gNumAlignedFree; - r8 = r8 >> 2; - r10 = heap32[(r8)]; - r10 = (r10 + 1)|0; - r9 = r9 >> 2; - heap32[(r8)] = r10; - r8 = heap32[(r9+-1)]; - heap32[(g0)] = r8; - free(i7); -} - r8 = r7 >> 2; - heap32[(r8)] = 0; -} - r8 = 1; - r7 = r7 >> 2; - heap8[r0+120] = r8; - heap32[(r7)] = r4; - heap32[(r2+28)] = r1; - if(r3 >=r1) //_LBB612_35 -{ -break _50; -} -} -_73: while(true){ - r4 = r3 << 3; - r7 = heap32[(r2+29)]; - r4 = (r7 + r4)|0; - r4 = r4 >> 2; - r3 = (r3 + 1)|0; - heap32[(r4)] = 0; - heap32[(r4+1)] = 0; -if(!(r1 !=r3)) //_LBB612_34 -{ -break _50; -} -} -} -} -} while(0); - heap32[(r2+27)] = r1; - if(r1 >0) //_LBB612_37 -{ - r4 = 0; - r7 = heap32[(fp+-127)]; - r8 = r1; - r3 = r4; -_78: while(true){ - r9 = r7 >> 2; - r9 = heap32[(r9)]; - r10 = r9 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+4)]; - r11 = heap32[(r2+29)]; - r11 = (r11 + r4)|0; - heap32[(g0)] = r9; - heap32[(g0+1)] = r11; - __FUNCTION_TABLE__[(r10)>>2](i7); - r9 = r11 >> 2; - r9 = heap32[(r9)]; - r8 = (r8 + -1)|0; - r3 = (r9 + r3)|0; - r4 = (r4 + 8)|0; - r7 = (r7 + 4)|0; -if(!(r8 !=0)) //_LBB612_38 -{ -break _19; -} -} -} -else{ - r3 = 0; -} -} -} while(0); - r2 = r0 >> 2; - r4 = heap32[(r2+7)]; -_82: do { -if(!(r4 >r3)) //_LBB612_80 -{ -if(!(r4 >=r3)) //_LBB612_80 -{ - r7 = heap32[(r2+8)]; -if(!(r7 >=r3)) //_LBB612_78 -{ - if(r3 !=0) //_LBB612_65 -{ - r7 = gNumAlignedAllocs; - r7 = r7 >> 2; - r8 = heap32[(r7)]; - r9 = (r3 * 136)|0; - r8 = (r8 + 1)|0; - r9 = r9 | 3; - heap32[(r7)] = r8; - r7 = (r9 + 16)|0; - heap32[(g0)] = r7; - malloc(i7); - r7 = r_g0; - if(r7 !=0) //_LBB612_67 -{ - r8 = 0; - r9 = (r7 + 4)|0; - r8 = (r8 - r9)|0; - r8 = r8 & 15; - r8 = (r7 + r8)|0; - r9 = (r8 + 4)|0; - r8 = r8 >> 2; - heap32[(r8)] = r7; - r7 = r9; -} -} -else{ - r7 = 0; -} - r8 = (r0 + 36)|0; - if(r4 <1) //_LBB612_70 -{ - r9 = r8 >> 2; - r11 = heap32[(r9)]; -} -else{ - r9 = 0; - r10 = r4; -_95: while(true){ - r11 = r8 >> 2; - r11 = heap32[(r11)]; - r12 = (r7 + r9)|0; - r13 = (r11 + r9)|0; - heap32[(g0)] = r12; - heap32[(g0+1)] = r13; - heap32[(g0+2)] = 136; - r10 = (r10 + -1)|0; - r9 = (r9 + 136)|0; - memcpy(i7); -if(!(r10 !=0)) //_LBB612_71 -{ -break _95; -} -} - r8 = (r0 + 36)|0; -} -if(!(r11 ==0)) //_LBB612_77 -{ - r9 = heapU8[r0+40]; -if(!(r9 ==0)) //_LBB612_76 -{ - r9 = gNumAlignedFree; - r9 = r9 >> 2; - r10 = heap32[(r9)]; - r10 = (r10 + 1)|0; - r11 = r11 >> 2; - heap32[(r9)] = r10; - r9 = heap32[(r11+-1)]; - heap32[(g0)] = r9; - free(i7); -} - r9 = r8 >> 2; - heap32[(r9)] = 0; -} - r9 = 1; - r8 = r8 >> 2; - heap8[r0+40] = r9; - heap32[(r8)] = r7; - heap32[(r2+8)] = r3; - if(r4 >=r3) //_LBB612_80 -{ -break _82; -} -} - r7 = (r3 - r4)|0; - r4 = (r4 * 136)|0; -_106: while(true){ - r8 = heap32[(r2+9)]; - r8 = (r8 + r4)|0; - r9 = sp + -448; - heap32[(g0)] = r8; - heap32[(g0+1)] = r9; - heap32[(g0+2)] = 136; - r7 = (r7 + -1)|0; - r4 = (r4 + 136)|0; - memcpy(i7); -if(!(r7 !=0)) //_LBB612_79 -{ -break _82; -} -} -} -} -} while(0); - r4 = 0; - heap32[(r2+7)] = r3; - r7 = r4; -_109: while(true){ - if(r4 > 2; - r10 = heap32[(r10)]; - if(r10 !=0) //_LBB612_83 -{ - if(r7 > 2; - r13 = heap32[(r12)]; - r14 = r13 >> 2; - r15 = heap32[(r2+9)]; - r16 = heap32[(r14+5)]; - r17 = heap32[(r14+6)]; -if(!(r10 <1)) //_LBB612_90 -{ - r10 = (r7 * 136)|0; - r10 = (r15 + r10)|0; - r18 = 0; - r19 = r18; -_117: while(true){ - r20 = (r19 * 34)|0; - r21 = 136; - r22 = r18; -_119: while(true){ - r21 = (r21 + -1)|0; - r23 = (r22 + 1)|0; - r22 = (r10 + r22)|0; - r24 = (r19 * 136)|0; - heap8[r22+r24] = r18; - r22 = r23; -if(!(r21 !=0)) //_LBB612_88 -{ -break _119; -} -} - r21 = r20 << 2; - r22 = r20 << 2; - r21 = (r10 + r21)|0; - r23 = r20 << 2; - r22 = (r10 + r22)|0; - r21 = r21 >> 2; - r24 = r20 << 2; - r23 = (r10 + r23)|0; - r22 = r22 >> 2; - heap32[(r21+31)] = -8388609; - r21 = r20 << 2; - r24 = (r10 + r24)|0; - r23 = r23 >> 2; - heap32[(r22+32)] = 2139095039; - r20 = r20 << 2; - r21 = (r10 + r21)|0; - r22 = r24 >> 2; - heap32[(r23+21)] = 0; - r20 = (r10 + r20)|0; - r23 = r11 << 2; - r21 = r21 >> 2; - heap32[(r22+20)] = 0; - r22 = (r8 + r23)|0; - r19 = (r19 + 1)|0; - r20 = r20 >> 2; - heap32[(r21+26)] = r16; - r21 = r22 >> 2; - heap32[(r20+27)] = r17; - r20 = heap32[(r21)]; -if(!(r20 >r19)) //_LBB612_87 -{ -break _117; -} -} -} - r10 = r16 >> 2; - heap32[(r10+126)] = 0; - heap32[(r10+127)] = 0; - heap32[(r10+128)] = 0; - heap32[(r10+129)] = 0; - heap32[(r10+130)] = 0; - heap32[(r10+131)] = 0; - heap32[(r10+132)] = 0; - heap32[(r10+133)] = 0; - r16 = r17 >> 2; - heap32[(r16+126)] = 0; - heap32[(r16+127)] = 0; - heap32[(r16+128)] = 0; - heap32[(r16+129)] = 0; - heap32[(r16+130)] = 0; - heap32[(r16+131)] = 0; - heap32[(r16+132)] = 0; - heap32[(r16+133)] = 0; - f0 = 1; - f1 = heapFloat[(r6+3)]; - r17 = sp + -504; - f1 = f0/f1; - r18 = (r7 * 136)|0; - r15 = (r15 + r18)|0; - r18 = r17 >> 2; - heapFloat[(fp+-126)] = f1; - r19 = (r15 + 16)|0; - heap32[(r18+1)] = heap32[(r6+8)]; - heap32[(r18+2)] = r19; - heap32[(r18+3)] = r15; - r19 = (r15 + 32)|0; - heap32[(r18+4)] = 0; - heap32[(r18+5)] = r19; - r19 = (r15 + 116)|0; - heap32[(r18+6)] = 34; - r20 = r15 >> 2; - heap32[(r18+7)] = r19; - heap32[(r20+30)] = heap32[(r6+10)]; - r19 = (r15 + 120)|0; - heap32[(r18+13)] = heap32[(r6+1)]; - r20 = (r15 + 124)|0; - heap32[(r18+8)] = r19; - r19 = (r15 + 128)|0; - heap32[(r18+9)] = r20; - heap32[(r18+10)] = r19; - r19 = heap32[(r6+5)]; - heap32[(r18+12)] = r19; - r12 = heap32[(r12)]; - r19 = r12 >> 2; - r19 = heap32[(r19)]; - r19 = r19 >> 2; - r19 = heap32[(r19+5)]; - r11 = r11 << 2; - heap32[(g0)] = r12; - heap32[(g0+1)] = r17; - r8 = (r8 + r11)|0; - r8 = r8 >> 2; - __FUNCTION_TABLE__[(r19)>>2](i7); - r11 = heap32[(r8)]; -_123: do { -if(!(r11 <1)) //_LBB612_93 -{ - r11 = 0; -_125: while(true){ - r12 = (r11 * 34)|0; - r12 = r12 << 2; - r12 = (r15 + r12)|0; - r12 = r12 >> 2; - heap32[(r12+28)] = r13; - r17 = heap32[(r14+5)]; - r17 = r17 >> 2; - f1 = heapFloat[(r12)]; - f2 = heapFloat[(r17+64)]; - f3 = heapFloat[(r12+1)]; - f4 = heapFloat[(r17+65)]; - f5 = heapFloat[(r17+68)]; - f6 = heapFloat[(r17+69)]; - f2 = f2*f1; - f4 = f4*f3; - f7 = heapFloat[(r12+2)]; - f8 = heapFloat[(r17+66)]; - f9 = heapFloat[(r17+72)]; - f10 = heapFloat[(r17+73)]; - f11 = heapFloat[(r17+70)]; - f5 = f5*f1; - f6 = f6*f3; - f2 = f2+f4; - f4 = f8*f7; - f8 = heapFloat[(r17+74)]; - f9 = f9*f1; - f10 = f10*f3; - f5 = f5+f6; - f6 = f11*f7; - f2 = f2+f4; - f4 = heapFloat[(r17+134)]; - f11 = heapFloat[(r17+136)]; - f12 = heapFloat[(r17+135)]; - f5 = f5+f6; - f6 = f9+f10; - f8 = f8*f7; - f2 = f2*f4; - f4 = f6+f8; - f5 = f5*f12; - heapFloat[(r12+12)] = f2; - f2 = f4*f11; - heapFloat[(r12+13)] = f5; - heapFloat[(r12+14)] = f2; - heap32[(r12+15)] = 0; - r17 = heap32[(r14+6)]; - r17 = r17 >> 2; - f2 = heapFloat[(r12+8)]; - f4 = heapFloat[(r17+64)]; - f5 = heapFloat[(r12+9)]; - f6 = heapFloat[(r17+65)]; - f8 = heapFloat[(r17+68)]; - f9 = heapFloat[(r17+69)]; - f4 = f4*f2; - f6 = f6*f5; - f10 = heapFloat[(r12+10)]; - f11 = heapFloat[(r17+66)]; - f12 = heapFloat[(r17+72)]; - f13 = heapFloat[(r17+73)]; - f14 = heapFloat[(r17+70)]; - f8 = f8*f2; - f9 = f9*f5; - f4 = f4+f6; - f6 = f11*f10; - f11 = heapFloat[(r17+74)]; - f12 = f12*f2; - f13 = f13*f5; - f8 = f8+f9; - f9 = f14*f10; - f4 = f4+f6; - f6 = heapFloat[(r17+134)]; - f14 = heapFloat[(r17+136)]; - f15 = heapFloat[(r17+135)]; - f8 = f8+f9; - f9 = f12+f13; - f11 = f11*f10; - f4 = f4*f6; - f6 = f9+f11; - f8 = f8*f15; - heapFloat[(r12+16)] = f4; - f4 = f6*f14; - heapFloat[(r12+17)] = f8; - heapFloat[(r12+18)] = f4; - heap32[(r12+19)] = 0; - f4 = heapFloat[(r10+68)]; - f6 = heapFloat[(r10+69)]; - f8 = heapFloat[(r10+64)]; - f9 = heapFloat[(r10+65)]; - f11 = heapFloat[(r10+72)]; - f12 = heapFloat[(r10+73)]; - f13 = heapFloat[(r10+70)]; - f14 = heapFloat[(r10+66)]; - f8 = f8*f1; - f9 = f9*f3; - f4 = f4*f1; - f6 = f6*f3; - f15 = heapFloat[(r10+74)]; - f16 = heapFloat[(r16+68)]; - f17 = heapFloat[(r16+69)]; - f18 = heapFloat[(r16+64)]; - f19 = heapFloat[(r16+65)]; - f8 = f8+f9; - f9 = f14*f7; - f4 = f4+f6; - f6 = f13*f7; - f11 = f11*f1; - f12 = f12*f3; - f13 = heapFloat[(r10+84)]; - f14 = heapFloat[(r12+5)]; - f20 = heapFloat[(r12+4)]; - f21 = heapFloat[(r16+84)]; - f22 = heapFloat[(r12+6)]; - f8 = f8+f9; - f4 = f4+f6; - f6 = f20*f13; - f9 = f14*f13; - f23 = heapFloat[(r16+72)]; - f24 = heapFloat[(r16+73)]; - f25 = heapFloat[(r16+70)]; - f26 = heapFloat[(r16+66)]; - f18 = f18*f2; - f19 = f19*f5; - f16 = f16*f2; - f17 = f17*f5; - f11 = f11+f12; - f12 = f15*f7; - f15 = heapFloat[(r16+74)]; - f27 = f20*f21; - f28 = f14*f21; - f11 = f11+f12; - f12 = f22*f13; - f13 = f18+f19; - f18 = f26*f10; - f16 = f16+f17; - f17 = f25*f10; - f19 = f23*f2; - f23 = f24*f5; - f8 = f8*f1; - f4 = f4*f3; - f6 = f6*f20; - f9 = f9*f14; - f13 = f13+f18; - f16 = f16+f17; - f17 = f22*f21; - f18 = f19+f23; - f15 = f15*f10; - f19 = f27*f20; - f21 = f28*f14; - f4 = f8+f4; - f8 = f11*f7; - f6 = f6+f9; - f9 = f12*f22; - f11 = f18+f15; - f12 = f13*f2; - f13 = f16*f5; - f15 = f19+f21; - f16 = f17*f22; - f4 = f4+f8; - f6 = f6+f9; - f8 = f12+f13; - f9 = f11*f10; - f11 = f15+f16; - f4 = f4+f6; - f6 = f8+f9; - f4 = f11+f4; - f4 = f6+f4; - f4 = f0/f4; - heapFloat[(r12+23)] = f4; - f6 = heapFloat[(r10+76)]; - f8 = heapFloat[(r10+77)]; - f9 = heapFloat[(r10+80)]; - f11 = heapFloat[(r10+81)]; - f12 = heapFloat[(r16+80)]; - f13 = heapFloat[(r16+81)]; - f15 = heapFloat[(r16+76)]; - f16 = heapFloat[(r16+77)]; - f17 = heapFloat[(r10+78)]; - f18 = heapFloat[(r10+82)]; - f19 = heapFloat[(r16+82)]; - f21 = heapFloat[(r16+78)]; - f6 = f20*f6; - f8 = f14*f8; - f1 = f1*f9; - f3 = f3*f11; - f2 = f2*f12; - f5 = f5*f13; - f9 = f20*f15; - f11 = f14*f16; - f6 = f6+f8; - f8 = f22*f17; - f1 = f1+f3; - f3 = f7*f18; - f2 = f2+f5; - f5 = f10*f19; - f7 = f9+f11; - f9 = f22*f21; - f6 = f6+f8; - f1 = f1+f3; - f2 = f2+f5; - f3 = f7+f9; - f1 = f6+f1; - f2 = f2-f3; - f1 = f1+f2; - f2 = heapFloat[(r18+13)]; - f3 = 0; - f1 = f2*f1; - f2 = heapFloat[(r12+29)]; - f1 = f3-f1; - f2 = f4*f2; - f1 = f4*f1; - f1 = f2+f1; - r11 = (r11 + 1)|0; - heapFloat[(r12+29)] = f1; - heap32[(r12+21)] = 0; - r12 = heap32[(r8)]; -if(!(r12 >r11)) //_LBB612_92 -{ -break _123; -} -} -} -} while(0); - r8 = heap32[(r2+29)]; - r8 = (r8 + r9)|0; - r8 = r8 >> 2; - r8 = heap32[(r8)]; -} -else{ -__label__ = 78; -break _109; -} -} -else{ - r8 = 0; -} - r7 = (r8 + r7)|0; - r4 = (r4 + 1)|0; -} -else{ -__label__ = 90; -break _109; -} -} -switch(__label__ ){//multiple entries -case 90: - r1 = heap32[(fp+-133)]; -_132: do { -if(!(r1 <1)) //_LBB612_225 -{ -_133: while(true){ - r1 = heap32[(fp+-132)]; - r1 = r1 >> 2; - r1 = heap32[(r1)]; - heap32[(fp+-128)] = r1; - r1 = r1 >> 2; - heap32[(fp+-127)] = r1; - r3 = heap32[(r1+277)]; - r1 = heap32[(r1+278)]; - r4 = heapU8[r3+232]; - r4 = r4 & 2; - if(r4 !=0) //_LBB612_99 -{ - r4 = r3; -} -else{ - r4 = 0; -} - r7 = heapU8[r1+232]; - r7 = r7 & 2; - if(r7 !=0) //_LBB612_102 -{ - r7 = r1; -} -else{ - r7 = 0; -} - if(r4 ==0) //_LBB612_105 -{ -__label__ = 99; -} -else{ - r4 = r4 >> 2; - f0 = heapFloat[(r4+84)]; - f1 = 0; - if(f0 !=f1) //_LBB612_107 -{ -__label__ = 101; -} -else{ -__label__ = 99; -} -} -if (__label__ == 99){ - if(r7 ==0) //_LBB612_224 -{ -__label__ = 216; -} -else{ - r4 = r7 >> 2; - f0 = heapFloat[(r4+84)]; - f1 = 0; - if(f0 ==f1) //_LBB612_224 -{ -__label__ = 216; -} -else{ -__label__ = 101; -} -} -} -if (__label__ == 101){ - r4 = heap32[(fp+-128)]; - r7 = (r4 + 4)|0; - heap32[(fp+-129)] = r7; - r7 = (r4 + 152)|0; - heap32[(fp+-130)] = r7; - r4 = (r4 + 168)|0; - heap32[(fp+-131)] = r4; - r4 = 0; - r7 = r4; -_150: while(true){ - r8 = heap32[(fp+-127)]; - r8 = heap32[(r8+279)]; - if(r8 >r7) //_LBB612_108 -{ - r8 = heap32[(fp+-128)]; - r8 = (r8 + r4)|0; - r9 = r8 >> 2; - f0 = heapFloat[(r9+21)]; - r10 = heap32[(fp+-127)]; - f1 = heapFloat[(r10+281)]; -_153: do { -if(!(f0 >f1)) //_LBB612_222 -{ - r10 = heap32[(fp+-129)]; - r10 = (r10 + r4)|0; - r11 = heap32[(fp+-131)]; - r11 = (r11 + r4)|0; - r12 = heap32[(fp+-130)]; - r12 = (r12 + r4)|0; - r13 = heap32[(r2+3)]; - r14 = heap32[(r2+2)]; - if(r13 ==r14) //_LBB612_111 -{ - r15 = 1; - r16 = r14 << 1; - r16 = r14 == 0 ? r15 : r16; - if(r13 >=r16) //_LBB612_110 -{ -__label__ = 104; -} -else{ - if(r16 !=0) //_LBB612_114 -{ - r13 = gNumAlignedAllocs; - r13 = r13 >> 2; - r17 = heap32[(r13)]; - r18 = (r16 * 136)|0; - r17 = (r17 + 1)|0; - r18 = r18 | 3; - heap32[(r13)] = r17; - r13 = (r18 + 16)|0; - heap32[(g0)] = r13; - malloc(i7); - r17 = r_g0; - if(r17 !=0) //_LBB612_116 -{ - r13 = 0; - r18 = (r17 + 4)|0; - r13 = (r13 - r18)|0; - r13 = r13 & 15; - r13 = (r17 + r13)|0; - r18 = (r13 + 4)|0; - r13 = r13 >> 2; - heap32[(r13)] = r17; - r17 = r18; -} -} -else{ - r17 = 0; -} - if(r14 <1) //_LBB612_119 -{ - r19 = heap32[(r2+4)]; -} -else{ - r13 = 0; - r18 = r14; -_166: while(true){ - r19 = heap32[(r2+4)]; - r20 = (r17 + r13)|0; - r21 = (r19 + r13)|0; - heap32[(g0)] = r20; - heap32[(g0+1)] = r21; - heap32[(g0+2)] = 136; - r18 = (r18 + -1)|0; - r13 = (r13 + 136)|0; - memcpy(i7); -if(!(r18 !=0)) //_LBB612_120 -{ -break _166; -} -} -} - if(r19 !=0) //_LBB612_123 -{ - r13 = heapU8[r0+20]; - if(r13 !=0) //_LBB612_125 -{ - r13 = gNumAlignedFree; - r13 = r13 >> 2; - r18 = heap32[(r13)]; - r18 = (r18 + 1)|0; - r19 = r19 >> 2; - heap32[(r13)] = r18; - r13 = heap32[(r19+-1)]; - heap32[(g0)] = r13; - free(i7); - r13 = heap32[(r2+2)]; -} -else{ - r13 = r14; -} - heap32[(r2+4)] = 0; -} -else{ - r13 = r14; -} - heap8[r0+20] = r15; - heap32[(r2+4)] = r17; - heap32[(r2+3)] = r16; -__label__ = 121; -} -} -else{ -__label__ = 104; -} -if (__label__ == 104){ - r13 = r14; -} - r13 = (r13 + 1)|0; - heap32[(r2+2)] = r13; - r13 = heapU8[r3+232]; - r15 = heapU8[r1+232]; - r13 = r13 & 2; - r16 = 0; - r15 = r15 & 2; - r13 = r13 == 0 ? r16 : r3; - r17 = heap32[(r2+4)]; - r15 = r15 == 0 ? r16 : r1; - if(r13 ==0) //_LBB612_130 -{ - r18 = _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed; - r19 = heapU8[r18]; -if(!(r19 !=0)) //_LBB612_132 -{ - r19 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed; - r20 = r19 >> 2; - heap32[(r20+41)] = 1065353216; - heap32[(r20+42)] = 1065353216; - heap32[(r20+43)] = 1065353216; - heap32[(r20+44)] = 0; - heap32[(r20+45)] = 0; - heap32[(r20+46)] = 1566444395; - heap32[(r20+47)] = 0; - heap32[(r20+48)] = 0; - heap32[(r20+49)] = 0; - heap32[(r20+50)] = 0; - heap32[(r20+51)] = 1; - heap32[(r20+52)] = -1; - heap32[(r20+53)] = -1; - heap32[(r20+54)] = 1; - heap32[(r20+55)] = 0; - heap32[(r20+56)] = 1056964608; - heap32[(r20+57)] = 0; - heap32[(r20+58)] = 1; - heap32[(r20+59)] = 0; - heap32[(r20+60)] = 1065353216; - heap32[(r20+61)] = 0; - heap32[(r20+62)] = 0; - heap32[(r20+63)] = 0; - heap32[(r20+1)] = 1065353216; - heap32[(r20+2)] = 0; - heap32[(r20+3)] = 0; - heap32[(r20+4)] = 0; - heap32[(r20+5)] = 0; - heap32[(r20+6)] = 1065353216; - heap32[(r20+7)] = 0; - heap32[(r20+8)] = 0; - heap32[(r20+9)] = 0; - heap32[(r20+10)] = 0; - heap32[(r20+11)] = 1065353216; - heap32[(r20+12)] = 0; - heap32[(r20+13)] = 0; - heap32[(r20+14)] = 0; - r21 = _ZTV11btRigidBody; - heap32[(r20+15)] = 0; - r21 = (r21 + 8)|0; - heap32[(r20+16)] = 0; - r22 = 1; - heap32[(r20)] = r21; - heap8[r19+492] = r22; - heap32[(r20+122)] = 0; - heap32[(r20+120)] = 0; - r21 = sp + -280; - heap32[(r20+121)] = 0; - r20 = r21 >> 2; - heap32[(fp+-70)] = 0; - heap32[(r20+1)] = 0; - heap32[(r20+18)] = 0; - heap32[(r20+19)] = 0; - heap32[(r20+20)] = 0; - heap32[(r20+21)] = 0; - heap32[(r20+22)] = 0; - heap32[(r20+23)] = 0; - heap32[(r20+24)] = 0; - heap32[(r20+25)] = 1056964608; - heap32[(r20+26)] = 0; - heap32[(r20+27)] = 1061997773; - heap32[(r20+28)] = 1065353216; - heap8[sp+-164] = r16; - heap32[(r20+30)] = 1000593162; - heap32[(r20+31)] = 1008981770; - heap32[(r20+32)] = 1008981770; - heap32[(r20+33)] = 1008981770; - heap32[(r20+2)] = 1065353216; - heap32[(r20+3)] = 0; - heap32[(r20+4)] = 0; - heap32[(r20+5)] = 0; - heap32[(r20+6)] = 0; - heap32[(r20+7)] = 1065353216; - heap32[(r20+8)] = 0; - heap32[(r20+9)] = 0; - heap32[(r20+10)] = 0; - heap32[(r20+11)] = 0; - heap32[(r20+12)] = 1065353216; - heap32[(r20+13)] = 0; - heap32[(r20+14)] = 0; - heap32[(r20+15)] = 0; - heap32[(r20+16)] = 0; - heap32[(r20+17)] = 0; - heap32[(g0)] = r19; - heap32[(g0+1)] = r21; - _ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7); - heap8[r18] = r22; -} - r18 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed; - r19 = r18 >> 2; - r20 = heap32[(r19+51)]; - r20 = r20 | 1; - heap32[(r19+51)] = r20; - heap32[(r19+84)] = 0; - f0 = 0; - f1 = heapFloat[(r19+95)]; - f2 = heapFloat[(r19+94)]; - f3 = heapFloat[(r19+93)]; - f3 = f3*f0; - f2 = f2*f0; - heapFloat[(r19+89)] = f3; - f1 = f1*f0; - heapFloat[(r19+90)] = f2; - heapFloat[(r19+91)] = f1; - heap32[(r19+92)] = 0; - heap32[(r19+97)] = 0; - heap32[(r19+98)] = 0; - heap32[(r19+99)] = 0; - heap32[(r19+100)] = 0; - f1 = heapFloat[(r19+87)]; - f2 = heapFloat[(r19+86)]; - f3 = heapFloat[(r19+85)]; - f3 = f3*f0; - f2 = f2*f0; - heapFloat[(r19+138)] = f3; - f0 = f1*f0; - heapFloat[(r19+139)] = f2; - heapFloat[(r19+140)] = f0; - heap32[(r19+141)] = 0; -} -else{ - r18 = r13; -} - r19 = (r14 * 136)|0; - r17 = (r17 + r19)|0; - r17 = r17 >> 2; - heap32[(r17+26)] = r18; - if(r15 ==0) //_LBB612_135 -{ - r18 = _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed; - r19 = heapU8[r18]; -if(!(r19 !=0)) //_LBB612_137 -{ - r19 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed; - r20 = r19 >> 2; - heap32[(r20+41)] = 1065353216; - heap32[(r20+42)] = 1065353216; - heap32[(r20+43)] = 1065353216; - heap32[(r20+44)] = 0; - heap32[(r20+45)] = 0; - heap32[(r20+46)] = 1566444395; - heap32[(r20+47)] = 0; - heap32[(r20+48)] = 0; - heap32[(r20+49)] = 0; - heap32[(r20+50)] = 0; - heap32[(r20+51)] = 1; - heap32[(r20+52)] = -1; - heap32[(r20+53)] = -1; - heap32[(r20+54)] = 1; - heap32[(r20+55)] = 0; - heap32[(r20+56)] = 1056964608; - heap32[(r20+57)] = 0; - heap32[(r20+58)] = 1; - heap32[(r20+59)] = 0; - heap32[(r20+60)] = 1065353216; - heap32[(r20+61)] = 0; - heap32[(r20+62)] = 0; - heap32[(r20+63)] = 0; - heap32[(r20+1)] = 1065353216; - heap32[(r20+2)] = 0; - heap32[(r20+3)] = 0; - heap32[(r20+4)] = 0; - heap32[(r20+5)] = 0; - heap32[(r20+6)] = 1065353216; - heap32[(r20+7)] = 0; - heap32[(r20+8)] = 0; - heap32[(r20+9)] = 0; - heap32[(r20+10)] = 0; - heap32[(r20+11)] = 1065353216; - heap32[(r20+12)] = 0; - heap32[(r20+13)] = 0; - heap32[(r20+14)] = 0; - r21 = _ZTV11btRigidBody; - heap32[(r20+15)] = 0; - r21 = (r21 + 8)|0; - heap32[(r20+16)] = 0; - r22 = 1; - heap32[(r20)] = r21; - heap8[r19+492] = r22; - heap32[(r20+122)] = 0; - heap32[(r20+120)] = 0; - r21 = sp + -144; - heap32[(r20+121)] = 0; - r20 = r21 >> 2; - heap32[(fp+-36)] = 0; - heap32[(r20+1)] = 0; - heap32[(r20+18)] = 0; - heap32[(r20+19)] = 0; - heap32[(r20+20)] = 0; - heap32[(r20+21)] = 0; - heap32[(r20+22)] = 0; - heap32[(r20+23)] = 0; - heap32[(r20+24)] = 0; - heap32[(r20+25)] = 1056964608; - heap32[(r20+26)] = 0; - heap32[(r20+27)] = 1061997773; - heap32[(r20+28)] = 1065353216; - heap8[sp+-28] = r16; - heap32[(r20+30)] = 1000593162; - heap32[(r20+31)] = 1008981770; - heap32[(r20+32)] = 1008981770; - heap32[(r20+33)] = 1008981770; - heap32[(r20+2)] = 1065353216; - heap32[(r20+3)] = 0; - heap32[(r20+4)] = 0; - heap32[(r20+5)] = 0; - heap32[(r20+6)] = 0; - heap32[(r20+7)] = 1065353216; - heap32[(r20+8)] = 0; - heap32[(r20+9)] = 0; - heap32[(r20+10)] = 0; - heap32[(r20+11)] = 0; - heap32[(r20+12)] = 1065353216; - heap32[(r20+13)] = 0; - heap32[(r20+14)] = 0; - heap32[(r20+15)] = 0; - heap32[(r20+16)] = 0; - heap32[(r20+17)] = 0; - heap32[(g0)] = r19; - heap32[(g0+1)] = r21; - _ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7); - heap8[r18] = r22; -} - r18 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed; - r19 = r18 >> 2; - r20 = heap32[(r19+51)]; - r20 = r20 | 1; - heap32[(r19+51)] = r20; - heap32[(r19+84)] = 0; - f0 = 0; - f1 = heapFloat[(r19+95)]; - f2 = heapFloat[(r19+94)]; - f3 = heapFloat[(r19+93)]; - f3 = f3*f0; - f2 = f2*f0; - heapFloat[(r19+89)] = f3; - f1 = f1*f0; - heapFloat[(r19+90)] = f2; - heapFloat[(r19+91)] = f1; - heap32[(r19+92)] = 0; - heap32[(r19+97)] = 0; - heap32[(r19+98)] = 0; - heap32[(r19+99)] = 0; - heap32[(r19+100)] = 0; - f1 = heapFloat[(r19+87)]; - f2 = heapFloat[(r19+86)]; - f3 = heapFloat[(r19+85)]; - f3 = f3*f0; - f2 = f2*f0; - heapFloat[(r19+138)] = f3; - f0 = f1*f0; - heapFloat[(r19+139)] = f2; - heapFloat[(r19+140)] = f0; - heap32[(r19+141)] = 0; -} -else{ - r18 = r15; -} - heap32[(r17+27)] = r18; - r18 = r1 >> 2; - heap32[(r17+28)] = r10; - r19 = r3 >> 2; - r20 = heap32[(r19+58)]; - r21 = heap32[(r18+58)]; - f0 = heapFloat[(r9+15)]; - f1 = heapFloat[(r19+15)]; - f2 = heapFloat[(r9+14)]; - f3 = heapFloat[(r19+14)]; - f4 = heapFloat[(r9+13)]; - f5 = heapFloat[(r19+13)]; - r19 = sp + -296; - f4 = f4-f5; - f2 = f2-f3; - r22 = r19 >> 2; - heapFloat[(fp+-74)] = f4; - f0 = f0-f1; - heapFloat[(r22+1)] = f2; - heapFloat[(r22+2)] = f0; - heap32[(r22+3)] = 0; - f1 = heapFloat[(r9+11)]; - f3 = heapFloat[(r18+15)]; - f5 = heapFloat[(r9+10)]; - f6 = heapFloat[(r18+14)]; - f7 = heapFloat[(r9+9)]; - f8 = heapFloat[(r18+13)]; - r18 = sp + -312; - f7 = f7-f8; - f5 = f5-f6; - r22 = r18 >> 2; - heapFloat[(fp+-78)] = f7; - f1 = f1-f3; - heapFloat[(r22+1)] = f5; - heapFloat[(r22+2)] = f1; - r23 = r8 >> 2; - heap32[(r22+3)] = 0; - r22 = r8 >> 2; - r24 = r8 >> 2; - r20 = r20 & 2; - r21 = r21 & 2; - r20 = r20 == 0 ? r16 : r3; - r16 = r21 == 0 ? r16 : r1; - if(r20 ==0) //_LBB612_140 -{ - heap32[(r17+12)] = 0; - heap32[(r17+13)] = 0; - f3 = 0; - heap32[(r17+14)] = 0; - heap32[(r17+15)] = 0; - f6 = f3; - f8 = f3; -} -else{ - f3 = heapFloat[(r23+17)]; - f6 = heapFloat[(r22+19)]; - f8 = heapFloat[(r24+18)]; - f9 = f4*f8; - f10 = f2*f3; - f3 = f0*f3; - f11 = f4*f6; - f6 = f2*f6; - f8 = f0*f8; - f9 = f9-f10; - f3 = f3-f11; - f6 = f6-f8; - r21 = r20 >> 2; - f8 = heapFloat[(r21+64)]; - f10 = heapFloat[(r21+65)]; - f11 = heapFloat[(r21+68)]; - f12 = heapFloat[(r21+69)]; - f8 = f8*f6; - f10 = f10*f3; - f13 = heapFloat[(r21+66)]; - f14 = heapFloat[(r21+72)]; - f15 = heapFloat[(r21+73)]; - f16 = heapFloat[(r21+70)]; - f11 = f11*f6; - f12 = f12*f3; - f8 = f8+f10; - f10 = f13*f9; - f13 = heapFloat[(r21+74)]; - f6 = f14*f6; - f3 = f15*f3; - f11 = f11+f12; - f12 = f16*f9; - f8 = f8+f10; - f10 = heapFloat[(r21+134)]; - f14 = heapFloat[(r21+136)]; - f15 = heapFloat[(r21+135)]; - f11 = f11+f12; - f8 = f8*f10; - f3 = f6+f3; - f6 = f13*f9; - f3 = f3+f6; - f6 = f11*f15; - heapFloat[(r17+12)] = f8; - f3 = f3*f14; - heapFloat[(r17+13)] = f6; - heapFloat[(r17+14)] = f3; - heap32[(r17+15)] = 0; -} - if(r16 ==0) //_LBB612_143 -{ - heap32[(r17+16)] = 0; - heap32[(r17+17)] = 0; - f10 = 0; - heap32[(r17+18)] = 0; - heap32[(r17+19)] = 0; - f11 = f10; - f9 = f10; -} -else{ - f9 = heapFloat[(r24+18)]; - f10 = heapFloat[(r23+17)]; - f11 = heapFloat[(r22+19)]; - f12 = f5*f11; - f13 = f1*f9; - r21 = r16 >> 2; - f12 = f12-f13; - f13 = f1*f10; - f11 = f7*f11; - f12 = -f12; - f14 = heapFloat[(r21+64)]; - f11 = f13-f11; - f13 = heapFloat[(r21+65)]; - f9 = f7*f9; - f10 = f5*f10; - f15 = heapFloat[(r21+68)]; - f16 = heapFloat[(r21+69)]; - f14 = f14*f12; - f13 = f13*f11; - f9 = f9-f10; - f10 = heapFloat[(r21+66)]; - f17 = heapFloat[(r21+72)]; - f18 = heapFloat[(r21+73)]; - f19 = heapFloat[(r21+70)]; - f15 = f15*f12; - f16 = f16*f11; - f13 = f14-f13; - f10 = f10*f9; - f14 = heapFloat[(r21+74)]; - f12 = f17*f12; - f11 = f18*f11; - f15 = f15-f16; - f16 = f19*f9; - f10 = f13-f10; - f13 = heapFloat[(r21+134)]; - f17 = heapFloat[(r21+136)]; - f18 = heapFloat[(r21+135)]; - f15 = f15-f16; - f10 = f10*f13; - f11 = f12-f11; - f9 = f14*f9; - f9 = f11-f9; - f11 = f15*f18; - heapFloat[(r17+16)] = f10; - f9 = f9*f17; - heapFloat[(r17+17)] = f11; - heapFloat[(r17+18)] = f9; - heap32[(r17+19)] = 0; -} - if(r20 !=0) //_LBB612_146 -{ - f12 = f6*f0; - f13 = f3*f2; - f3 = f3*f4; - f14 = f8*f0; - f15 = heapFloat[(r23+17)]; - f12 = f12-f13; - f13 = heapFloat[(r24+18)]; - f3 = f3-f14; - f8 = f8*f2; - f6 = f6*f4; - f12 = f15*f12; - f3 = f13*f3; - f13 = heapFloat[(r22+19)]; - f6 = f8-f6; - r21 = r20 >> 2; - f3 = f12+f3; - f6 = f13*f6; - f8 = heapFloat[(r21+84)]; - f3 = f3+f6; - f3 = f8+f3; -} -else{ - f3 = 0; -} - if(r16 !=0) //_LBB612_149 -{ - f6 = f5*f9; - f8 = f1*f11; - f12 = f1*f10; - f9 = f7*f9; - f13 = heapFloat[(r23+17)]; - f6 = f6-f8; - f8 = heapFloat[(r24+18)]; - f9 = f12-f9; - f11 = f7*f11; - f10 = f5*f10; - f6 = f13*f6; - f9 = f8*f9; - f8 = heapFloat[(r22+19)]; - f10 = f11-f10; - r21 = r16 >> 2; - f9 = f6+f9; - f6 = f8*f10; - f8 = heapFloat[(r21+84)]; - f9 = f9+f6; - f9 = f8+f9; -} -else{ - f9 = 0; -} - f6 = 1; - f3 = f3+f9; - f3 = f6/f3; - heapFloat[(r17+23)] = f3; - f3 = heapFloat[(r23+17)]; - heapFloat[(r17+4)] = f3; - f8 = heapFloat[(r24+18)]; - heapFloat[(r17+5)] = f8; - f9 = heapFloat[(r22+19)]; - heapFloat[(r17+6)] = f9; - heap32[(r17+7)] = heap32[(r9+20)]; - f10 = heapFloat[(r22+19)]; - f11 = heapFloat[(r24+18)]; - f12 = heapFloat[(r23+17)]; - f13 = f2*f10; - f14 = f0*f11; - f15 = f0*f12; - f10 = f4*f10; - f13 = f13-f14; - f11 = f4*f11; - f12 = f2*f12; - f10 = f15-f10; - heapFloat[(r17)] = f13; - f11 = f11-f12; - heapFloat[(r17+1)] = f10; - heapFloat[(r17+2)] = f11; - heap32[(r17+3)] = 0; - f10 = heapFloat[(r24+18)]; - f11 = heapFloat[(r22+19)]; - f12 = heapFloat[(r23+17)]; - f13 = f1*f10; - f14 = f5*f11; - f11 = f7*f11; - f15 = f1*f12; - f13 = f13-f14; - f12 = f5*f12; - f10 = f7*f10; - f11 = f11-f15; - heapFloat[(r17+8)] = f13; - f10 = f12-f10; - heapFloat[(r17+9)] = f11; - heapFloat[(r17+10)] = f10; - heap32[(r17+11)] = 0; - if(r20 !=0) //_LBB612_152 -{ - r21 = r20 >> 2; - f10 = heapFloat[(r21+81)]; - f11 = heapFloat[(r21+80)]; - f12 = heapFloat[(r21+82)]; - f13 = f11*f2; - f14 = f10*f4; - f4 = f12*f4; - f11 = f11*f0; - f0 = f10*f0; - f2 = f12*f2; - f10 = heapFloat[(r21+78)]; - f12 = f13-f14; - f13 = heapFloat[(r21+77)]; - f11 = f4-f11; - f14 = heapFloat[(r21+76)]; - f0 = f0-f2; - f4 = f10+f12; - f2 = f13+f11; - f0 = f14+f0; -} -else{ - f0 = 0; - f2 = f0; - f4 = f0; -} - if(r16 !=0) //_LBB612_155 -{ - r21 = r16 >> 2; - f10 = heapFloat[(r21+81)]; - f11 = heapFloat[(r21+80)]; - f12 = heapFloat[(r21+82)]; - f13 = f11*f5; - f14 = f10*f7; - f7 = f12*f7; - f11 = f11*f1; - f1 = f10*f1; - f5 = f12*f5; - f10 = heapFloat[(r21+78)]; - f12 = f13-f14; - f13 = heapFloat[(r21+77)]; - f11 = f7-f11; - f14 = heapFloat[(r21+76)]; - f1 = f1-f5; - f7 = f10+f12; - f5 = f13+f11; - f1 = f14+f1; -} -else{ - f1 = 0; - f5 = f1; - f7 = f1; -} - f0 = f0-f1; - f1 = f2-f5; - f2 = heapFloat[(r23+17)]; - f5 = heapFloat[(r24+18)]; - f4 = f4-f7; - f7 = heapFloat[(r22+19)]; - f2 = f2*f0; - f5 = f5*f1; - f2 = f2+f5; - f5 = f7*f4; - f7 = heapFloat[(r9+21)]; - f10 = heapFloat[(r6+13)]; - f2 = f2+f5; - f5 = f7+f10; - heap32[(r17+22)] = heap32[(r9+22)]; - r21 = heap32[(r9+37)]; - r25 = heap32[(r6+16)]; - if(r21 >r25) //_LBB612_159 -{ -__label__ = 151; -} -else{ - f7 = heapFloat[(r9+23)]; - f10 = -f2; - f7 = f7*f10; - f10 = 0; - if(f7 <=f10) //_LBB612_159 -{ -__label__ = 151; -} -else{ -__label__ = 152; -} -} -if (__label__ == 151){ - f7 = 0; -} - r21 = heapU8[r5+60]; - r21 = r21 & 4; - if(r21 ==0) //_LBB612_167 -{ - heap32[(r17+21)] = 0; -} -else{ - f10 = heapFloat[(r9+29)]; - f11 = heapFloat[(r6+14)]; - f10 = f10*f11; - heapFloat[(r17+21)] = f10; -if(!(r20 ==0)) //_LBB612_164 -{ - r21 = r20 >> 2; - f11 = heapFloat[(r21+84)]; - f12 = 0; -if(!(f11 ==f12)) //_LBB612_164 -{ - f3 = f3*f11; - f12 = heapFloat[(r21+85)]; - f3 = f3*f12; - f3 = f3*f10; - f12 = heapFloat[(r21+126)]; - f13 = heapFloat[(r21+86)]; - f14 = heapFloat[(r21+87)]; - f8 = f8*f11; - f3 = f12+f3; - f8 = f8*f13; - heapFloat[(r21+126)] = f3; - f3 = f8*f10; - f8 = heapFloat[(r21+127)]; - f9 = f9*f11; - f3 = f8+f3; - f8 = f9*f14; - heapFloat[(r21+127)] = f3; - f3 = f8*f10; - f8 = heapFloat[(r21+128)]; - f3 = f8+f3; - heapFloat[(r21+128)] = f3; - f3 = heapFloat[(r21+134)]; - f3 = f3*f10; - f8 = heapFloat[(r17+12)]; - f9 = heapFloat[(r21+136)]; - f11 = heapFloat[(r21+135)]; - f3 = f8*f3; - f8 = heapFloat[(r21+130)]; - f12 = heapFloat[(r17+14)]; - f13 = heapFloat[(r17+13)]; - f3 = f8+f3; - f8 = f11*f10; - heapFloat[(r21+130)] = f3; - f3 = f13*f8; - f8 = heapFloat[(r21+131)]; - f3 = f8+f3; - f8 = f9*f10; - heapFloat[(r21+131)] = f3; - f3 = f12*f8; - f8 = heapFloat[(r21+132)]; - f3 = f8+f3; - heapFloat[(r21+132)] = f3; -} -} -if(!(r16 ==0)) //_LBB612_168 -{ - r21 = r16 >> 2; - f3 = heapFloat[(r21+84)]; - f8 = 0; -if(!(f3 ==f8)) //_LBB612_168 -{ - f8 = heapFloat[(r17+21)]; - f8 = -f8; - f9 = heapFloat[(r17+4)]; - f9 = f9*f3; - f10 = heapFloat[(r21+85)]; - f9 = f9*f10; - f10 = heapFloat[(r17+5)]; - f11 = heapFloat[(r17+6)]; - f9 = f9*f8; - f12 = heapFloat[(r21+126)]; - f13 = heapFloat[(r21+86)]; - f14 = heapFloat[(r21+87)]; - f15 = heapFloat[(r17+16)]; - f16 = heapFloat[(r17+17)]; - f17 = heapFloat[(r17+18)]; - f10 = f10*f3; - f9 = f12+f9; - f10 = f10*f13; - heapFloat[(r21+126)] = f9; - f9 = f10*f8; - f10 = heapFloat[(r21+127)]; - f3 = f11*f3; - f9 = f10+f9; - f3 = f3*f14; - heapFloat[(r21+127)] = f9; - f3 = f3*f8; - f9 = heapFloat[(r21+128)]; - f3 = f9+f3; - heapFloat[(r21+128)] = f3; - f3 = heapFloat[(r21+134)]; - f3 = f3*f8; - f9 = heapFloat[(r21+136)]; - f10 = heapFloat[(r21+135)]; - f11 = heapFloat[(r21+130)]; - f3 = f3*f15; - f3 = f11-f3; - f10 = f10*f8; - heapFloat[(r21+130)] = f3; - f3 = f10*f16; - f10 = heapFloat[(r21+131)]; - f3 = f10-f3; - f8 = f9*f8; - heapFloat[(r21+131)] = f3; - f3 = f8*f17; - f8 = heapFloat[(r21+132)]; - f3 = f8-f3; - heapFloat[(r21+132)] = f3; -} -} -} - heap32[(r17+20)] = 0; - if(r20 !=0) //_LBB612_170 -{ - r21 = r20 >> 2; - f9 = heapFloat[(r21+76)]; - f8 = heapFloat[(r21+77)]; - f3 = heapFloat[(r21+78)]; -} -else{ - f3 = 0; - f8 = f3; - f9 = f3; -} - f10 = heapFloat[(r17+4)]; - f11 = heapFloat[(r17+5)]; - f12 = heapFloat[(r17+6)]; - f9 = f10*f9; - f8 = f11*f8; - f8 = f9+f8; - f3 = f12*f3; - f3 = f8+f3; - if(r20 !=0) //_LBB612_173 -{ - r20 = r20 >> 2; - f13 = heapFloat[(r20+80)]; - f9 = heapFloat[(r20+81)]; - f8 = heapFloat[(r20+82)]; -} -else{ - f8 = 0; - f9 = f8; - f13 = f8; -} - f14 = heapFloat[(r17)]; - f15 = heapFloat[(r17+1)]; - f13 = f14*f13; - f9 = f15*f9; - f14 = heapFloat[(r17+2)]; - f9 = f13+f9; - f8 = f14*f8; - f8 = f9+f8; - f3 = f3+f8; - if(r16 !=0) //_LBB612_176 -{ - r20 = r16 >> 2; - f13 = heapFloat[(r20+80)]; - f9 = heapFloat[(r20+81)]; - f8 = heapFloat[(r20+82)]; -} -else{ - f8 = 0; - f9 = f8; - f13 = f8; -} - f14 = heapFloat[(r17+8)]; - f15 = heapFloat[(r17+9)]; - f13 = f14*f13; - f9 = f15*f9; - f14 = heapFloat[(r17+10)]; - f9 = f13+f9; - f8 = f14*f8; - f8 = f9+f8; - if(r16 !=0) //_LBB612_179 -{ - r16 = r16 >> 2; - f14 = heapFloat[(r16+76)]; - f13 = heapFloat[(r16+77)]; - f9 = heapFloat[(r16+78)]; -} -else{ - f9 = 0; - f13 = f9; - f14 = f9; -} - f10 = f10*f14; - f11 = f11*f13; - f10 = f10+f11; - f9 = f12*f9; - f9 = f10+f9; - f10 = heapFloat[(r6+8)]; - f11 = -f5; - f8 = f8-f9; - f9 = f10*f11; - f10 = heapFloat[(r6+3)]; - f3 = f3+f8; - f8 = f9/f10; - f9 = heapFloat[(r17+23)]; - f3 = f7-f3; - f7 = f9*f8; - f3 = f9*f3; - r16 = heap32[(r6+11)]; - if(r16 ==0) //_LBB612_182 -{ -__label__ = 174; -} -else{ - f8 = heapFloat[(r6+12)]; - if(f8 >=f5) //_LBB612_183 -{ - heapFloat[(r17+29)] = f3; - heapFloat[(r17+33)] = f7; -__label__ = 176; -} -else{ -__label__ = 174; -} -} -if (__label__ == 174){ - f3 = f7+f3; - heapFloat[(r17+29)] = f3; - heap32[(r17+33)] = 0; -} - heap32[(r17+30)] = 0; - heap32[(r17+31)] = 0; - heap32[(r17+32)] = 1343554297; - r16 = heap32[(r2+12)]; - heap32[(r17+25)] = r16; - r16 = heapU8[r5+60]; - r16 = r16 & 32; - if(r16 ==0) //_LBB612_186 -{ -__label__ = 178; -} -else{ - r16 = heapU8[r8+120]; - if(r16 !=0) //_LBB612_200 -{ - r16 = r8 >> 2; - f0 = heapFloat[(r9+35)]; - f1 = heapFloat[(r16+33)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r12; - heap32[(g0+2)] = r14; - heap32[(g0+3)] = r10; - heap32[(g0+4)] = r19; - heap32[(g0+5)] = r18; - heap32[(g0+6)] = r3; - heap32[(g0+7)] = r1; - heap32[(g0+8)] = 1065353216; - heapFloat[(g0+9)] = f1; - heapFloat[(g0+10)] = f0; - _ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7); - r12 = heapU8[r5+60]; - r12 = r12 & 16; - if(r12 ==0) //_LBB612_202 -{ -__label__ = 194; -} -else{ - r12 = r8 >> 2; - r8 = r8 >> 2; - f0 = heapFloat[(r12+36)]; - f1 = heapFloat[(r8+34)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r14; - heap32[(g0+3)] = r10; - heap32[(g0+4)] = r19; - heap32[(g0+5)] = r18; - heap32[(g0+6)] = r3; - heap32[(g0+7)] = r1; - heap32[(g0+8)] = 1065353216; - heapFloat[(g0+9)] = f1; - heapFloat[(g0+10)] = f0; - _ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7); -__label__ = 194; -} -} -else{ -__label__ = 178; -} -} -_259: do { -if (__label__ == 178){ - f3 = heapFloat[(r23+17)]; - f5 = heapFloat[(r22+19)]; - f7 = heapFloat[(r24+18)]; - f8 = f3*f2; - f0 = f0-f8; - f8 = f7*f2; - r16 = r8 >> 2; - f1 = f1-f8; - f2 = f5*f2; - r20 = r8 >> 2; - heapFloat[(r16+38)] = f0; - f2 = f4-f2; - r21 = r8 >> 2; - heapFloat[(r20+39)] = f1; - r25 = r8 >> 2; - heapFloat[(r21+40)] = f2; - heap32[(r25+41)] = 0; - r25 = heapU8[r5+60]; - r25 = r25 & 64; -if(!(r25 !=0)) //_LBB612_191 -{ - f0 = f0*f0; - f1 = f1*f1; - f0 = f0+f1; - f1 = f2*f2; - f0 = f0+f1; - f1 = 1.1920928955078125e-007; -if(!(f0 <=f1)) //_LBB612_191 -{ - heapFloat[(g0)] = f0; - sqrtf(i7); - f3 = f6/f_g0; - f5 = heapFloat[(r16+38)]; - f5 = f5*f3; - heapFloat[(r16+38)] = f5; - f7 = heapFloat[(r20+39)]; - f7 = f7*f3; - heapFloat[(r20+39)] = f7; - f0 = heapFloat[(r21+40)]; - f3 = f0*f3; - heapFloat[(r21+40)] = f3; - r16 = heapU8[r5+60]; - r16 = r16 & 16; -if(!(r16 ==0)) //_LBB612_190 -{ - f0 = heapFloat[(r22+19)]; - f1 = heapFloat[(r24+18)]; - f2 = heapFloat[(r23+17)]; - f4 = f7*f0; - f8 = f3*f1; - f4 = f4-f8; - f3 = f3*f2; - f0 = f5*f0; - r16 = r8 >> 2; - f3 = f3-f0; - f5 = f5*f1; - f7 = f7*f2; - r20 = r8 >> 2; - heapFloat[(r16+42)] = f4; - f5 = f5-f7; - r21 = r8 >> 2; - heapFloat[(r20+43)] = f3; - f7 = f4*f4; - f3 = f3*f3; - r22 = r8 >> 2; - heapFloat[(r21+44)] = f5; - heap32[(r22+45)] = 0; - f3 = f7+f3; - f5 = f5*f5; - f3 = f3+f5; - heapFloat[(g0)] = f3; - sqrtf(i7); - f3 = f6/f_g0; - f5 = heapFloat[(r16+42)]; - f5 = f5*f3; - heapFloat[(r16+42)] = f5; - f5 = heapFloat[(r20+43)]; - f5 = f5*f3; - heapFloat[(r20+43)] = f5; - f5 = heapFloat[(r21+44)]; - f3 = f5*f3; - heapFloat[(r21+44)] = f3; - heap32[(g0)] = r3; - heap32[(g0+1)] = r11; - _Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7); - heap32[(g0)] = r1; - heap32[(g0+1)] = r11; - _Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7); - heap32[(g0)] = r0; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r14; - heap32[(g0+3)] = r10; - heap32[(g0+4)] = r19; - heap32[(g0+5)] = r18; - heap32[(g0+6)] = r3; - heap32[(g0+7)] = r1; - heap32[(g0+8)] = 1065353216; - heap32[(g0+9)] = 0; - heap32[(g0+10)] = 0; - _ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7); -} - heap32[(g0)] = r3; - heap32[(g0+1)] = r12; - _Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7); - heap32[(g0)] = r1; - heap32[(g0+1)] = r12; - _Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7); - heap32[(g0)] = r0; - heap32[(g0+1)] = r12; - heap32[(g0+2)] = r14; - heap32[(g0+3)] = r10; - heap32[(g0+4)] = r19; - heap32[(g0+5)] = r18; - heap32[(g0+6)] = r3; - heap32[(g0+7)] = r1; - heap32[(g0+8)] = 1065353216; - heap32[(g0+9)] = 0; - heap32[(g0+10)] = 0; - r10 = 1; - _ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7); - heap8[r8+120] = r10; -break _259; -} -} - f0 = 0; - if(f5 > 2; - f2 = f2*f5; - f3 = f3*f0; - r20 = r8 >> 2; - f0 = f4*f1; - heapFloat[(r16+42)] = f2; - heapFloat[(r20+43)] = f0; -} -else{ - f3 = f7*f7; - f7 = f5*f5; - f3 = f3+f7; - heapFloat[(g0)] = f3; - sqrtf(i7); - heap32[(r16+38)] = 0; - f0 = heapFloat[(r22+19)]; - f6 = f6/f_g0; - f7 = -f0; - f7 = f6*f7; - heapFloat[(r20+39)] = f7; - f0 = heapFloat[(r24+18)]; - f0 = f0*f6; - r16 = r8 >> 2; - f3 = f3*f6; - heapFloat[(r21+40)] = f0; - heapFloat[(r16+42)] = f3; - f3 = heapFloat[(r23+17)]; - f6 = -f3; - f3 = f3*f7; - r16 = r8 >> 2; - f6 = f0*f6; - heapFloat[(r16+43)] = f6; -} - r16 = r8 >> 2; - heapFloat[(r16+44)] = f3; - r16 = heapU8[r5+60]; - r16 = r16 & 16; -if(!(r16 ==0)) //_LBB612_199 -{ - heap32[(g0)] = r3; - heap32[(g0+1)] = r11; - _Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7); - heap32[(g0)] = r1; - heap32[(g0+1)] = r11; - _Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7); - heap32[(g0)] = r0; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r14; - heap32[(g0+3)] = r10; - heap32[(g0+4)] = r19; - heap32[(g0+5)] = r18; - heap32[(g0+6)] = r3; - heap32[(g0+7)] = r1; - heap32[(g0+8)] = 1065353216; - heap32[(g0+9)] = 0; - heap32[(g0+10)] = 0; - _ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7); -} - heap32[(g0)] = r3; - heap32[(g0+1)] = r12; - _Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7); - heap32[(g0)] = r1; - heap32[(g0+1)] = r12; - _Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i7); - heap32[(g0)] = r0; - heap32[(g0+1)] = r12; - heap32[(g0+2)] = r14; - heap32[(g0+3)] = r10; - heap32[(g0+4)] = r19; - heap32[(g0+5)] = r18; - heap32[(g0+6)] = r3; - heap32[(g0+7)] = r1; - heap32[(g0+8)] = 1065353216; - heap32[(g0+9)] = 0; - heap32[(g0+10)] = 0; - r10 = 1; - _ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i7); - heap8[r8+120] = r10; -} -} while(0); - r8 = heap32[(r6+15)]; - r10 = heap32[(r17+25)]; - r11 = heap32[(r2+14)]; - r12 = r8 & 8; - if(r12 ==0) //_LBB612_220 -{ - r8 = (r10 * 136)|0; - r8 = (r11 + r8)|0; - r8 = r8 >> 2; - heap32[(r8+21)] = 0; - r8 = heapU8[r5+60]; - r8 = r8 & 16; - if(r8 ==0) //_LBB612_222 -{ -break _153; -} -else{ - r8 = heap32[(r17+25)]; - r9 = heap32[(r2+14)]; - r8 = (r8 * 136)|0; - r8 = (r8 + r9)|0; - r8 = r8 >> 2; - heap32[(r8+55)] = 0; -} -} -else{ - r8 = r8 & 4; - if(r8 ==0) //_LBB612_210 -{ - r10 = (r10 * 136)|0; - r10 = (r11 + r10)|0; - r10 = r10 >> 2; - heap32[(r10+21)] = 0; -} -else{ - r10 = (r10 * 136)|0; - r10 = (r11 + r10)|0; - f0 = heapFloat[(r9+31)]; - f1 = heapFloat[(r6+14)]; - f0 = f0*f1; - r10 = r10 >> 2; - heapFloat[(r10+21)] = f0; -if(!(r13 ==0)) //_LBB612_207 -{ - r11 = r13 >> 2; - f1 = heapFloat[(r11+84)]; - f2 = 0; -if(!(f1 ==f2)) //_LBB612_207 -{ - f2 = heapFloat[(r10+4)]; - f2 = f2*f1; - f3 = heapFloat[(r11+85)]; - f2 = f2*f3; - f3 = heapFloat[(r10+5)]; - f4 = heapFloat[(r10+6)]; - f2 = f2*f0; - f5 = heapFloat[(r11+126)]; - f6 = heapFloat[(r11+86)]; - f7 = heapFloat[(r11+87)]; - f3 = f3*f1; - f2 = f5+f2; - f3 = f3*f6; - heapFloat[(r11+126)] = f2; - f2 = f3*f0; - f3 = heapFloat[(r11+127)]; - f1 = f4*f1; - f2 = f3+f2; - f1 = f1*f7; - heapFloat[(r11+127)] = f2; - f1 = f1*f0; - f2 = heapFloat[(r11+128)]; - f1 = f2+f1; - heapFloat[(r11+128)] = f1; - f1 = heapFloat[(r11+134)]; - f1 = f1*f0; - f2 = heapFloat[(r10+12)]; - f3 = heapFloat[(r11+136)]; - f4 = heapFloat[(r11+135)]; - f1 = f2*f1; - f2 = heapFloat[(r11+130)]; - f5 = heapFloat[(r10+14)]; - f6 = heapFloat[(r10+13)]; - f1 = f2+f1; - f2 = f4*f0; - heapFloat[(r11+130)] = f1; - f1 = f6*f2; - f2 = heapFloat[(r11+131)]; - f1 = f2+f1; - f0 = f3*f0; - heapFloat[(r11+131)] = f1; - f0 = f5*f0; - f1 = heapFloat[(r11+132)]; - f0 = f1+f0; - heapFloat[(r11+132)] = f0; -} -} -if(!(r15 ==0)) //_LBB612_211 -{ - r11 = r15 >> 2; - f0 = heapFloat[(r11+84)]; - f1 = 0; -if(!(f0 ==f1)) //_LBB612_211 -{ - f1 = heapFloat[(r10+21)]; - f1 = -f1; - f2 = heapFloat[(r10+4)]; - f2 = f2*f0; - f3 = heapFloat[(r11+85)]; - f2 = f2*f3; - f3 = heapFloat[(r10+5)]; - f4 = heapFloat[(r10+6)]; - f2 = f2*f1; - f5 = heapFloat[(r11+126)]; - f6 = heapFloat[(r11+86)]; - f7 = heapFloat[(r11+87)]; - f8 = heapFloat[(r10+16)]; - f9 = heapFloat[(r10+17)]; - f10 = heapFloat[(r10+18)]; - f3 = f3*f0; - f2 = f5+f2; - f3 = f3*f6; - heapFloat[(r11+126)] = f2; - f2 = f3*f1; - f3 = heapFloat[(r11+127)]; - f0 = f4*f0; - f2 = f3+f2; - f0 = f0*f7; - heapFloat[(r11+127)] = f2; - f0 = f0*f1; - f2 = heapFloat[(r11+128)]; - f0 = f2+f0; - heapFloat[(r11+128)] = f0; - f0 = heapFloat[(r11+134)]; - f0 = f0*f1; - f2 = heapFloat[(r11+136)]; - f3 = heapFloat[(r11+135)]; - f4 = heapFloat[(r11+130)]; - f0 = f0*f8; - f0 = f4-f0; - f3 = f3*f1; - heapFloat[(r11+130)] = f0; - f0 = f3*f9; - f3 = heapFloat[(r11+131)]; - f0 = f3-f0; - f1 = f2*f1; - heapFloat[(r11+131)] = f0; - f0 = f1*f10; - f1 = heapFloat[(r11+132)]; - f0 = f1-f0; - heapFloat[(r11+132)] = f0; -} -} -} - r10 = heap32[(r6+15)]; - r11 = r10 & 16; -if(!(r11 ==0)) //_LBB612_222 -{ - r11 = heap32[(r17+25)]; - r17 = heap32[(r2+14)]; - r10 = r10 & 4; - if(r10 ==0) //_LBB612_219 -{ - r10 = (r11 * 136)|0; - r10 = (r17 + r10)|0; - r10 = r10 >> 2; - heap32[(r10+55)] = 0; -} -else{ - r11 = (r11 * 136)|0; - r11 = (r17 + r11)|0; - f0 = heapFloat[(r9+32)]; - f1 = heapFloat[(r6+14)]; - f0 = f0*f1; - r11 = r11 >> 2; - heapFloat[(r11+55)] = f0; -if(!(r13 ==0)) //_LBB612_216 -{ - r17 = r13 >> 2; - f1 = heapFloat[(r17+84)]; - f2 = 0; -if(!(f1 ==f2)) //_LBB612_216 -{ - f2 = heapFloat[(r11+38)]; - f2 = f2*f1; - f3 = heapFloat[(r11+39)]; - f4 = heapFloat[(r11+40)]; - f5 = heapFloat[(r17+126)]; - f2 = f2*f0; - f2 = f5+f2; - f3 = f3*f1; - heapFloat[(r17+126)] = f2; - f2 = f3*f0; - f3 = heapFloat[(r17+127)]; - f2 = f3+f2; - f1 = f4*f1; - heapFloat[(r17+127)] = f2; - f1 = f1*f0; - f2 = heapFloat[(r17+128)]; - f1 = f2+f1; - heapFloat[(r17+128)] = f1; - f1 = heapFloat[(r17+134)]; - f1 = f1*f0; - f2 = heapFloat[(r11+46)]; - f3 = heapFloat[(r17+136)]; - f4 = heapFloat[(r17+135)]; - f1 = f2*f1; - f2 = heapFloat[(r17+130)]; - f5 = heapFloat[(r11+48)]; - f6 = heapFloat[(r11+47)]; - f1 = f2+f1; - f2 = f4*f0; - heapFloat[(r17+130)] = f1; - f1 = f6*f2; - f2 = heapFloat[(r17+131)]; - f1 = f2+f1; - f0 = f3*f0; - heapFloat[(r17+131)] = f1; - f0 = f5*f0; - f1 = heapFloat[(r17+132)]; - f0 = f1+f0; - heapFloat[(r17+132)] = f0; -} -} -if(!(r15 ==0)) //_LBB612_222 -{ - r17 = r15 >> 2; - f0 = heapFloat[(r17+84)]; - f1 = 0; -if(!(f0 ==f1)) //_LBB612_222 -{ - f1 = heapFloat[(r11+55)]; - f1 = -f1; - f2 = heapFloat[(r11+38)]; - f2 = f2*f0; - f3 = heapFloat[(r11+39)]; - f4 = heapFloat[(r11+40)]; - f2 = f2*f1; - f5 = heapFloat[(r17+126)]; - f6 = heapFloat[(r11+50)]; - f7 = heapFloat[(r11+51)]; - f8 = heapFloat[(r11+52)]; - f2 = f5+f2; - f3 = f3*f0; - heapFloat[(r17+126)] = f2; - f2 = f3*f1; - f3 = heapFloat[(r17+127)]; - f2 = f3+f2; - f0 = f4*f0; - heapFloat[(r17+127)] = f2; - f0 = f0*f1; - f2 = heapFloat[(r17+128)]; - f0 = f2+f0; - heapFloat[(r17+128)] = f0; - f0 = heapFloat[(r17+134)]; - f0 = f0*f1; - f2 = heapFloat[(r17+136)]; - f3 = heapFloat[(r17+135)]; - f4 = heapFloat[(r17+130)]; - f0 = f0*f6; - f0 = f4-f0; - f3 = f3*f1; - heapFloat[(r17+130)] = f0; - f0 = f3*f7; - f3 = heapFloat[(r17+131)]; - f0 = f3-f0; - f1 = f2*f1; - heapFloat[(r17+131)] = f0; - f0 = f1*f8; - f1 = heapFloat[(r17+132)]; - f0 = f1-f0; - heapFloat[(r17+132)] = f0; -} -} -} -} -} -} -} while(0); - r7 = (r7 + 1)|0; - r4 = (r4 + 276)|0; -} -else{ -break _150; -} -} -} - r1 = heap32[(fp+-133)]; - r1 = (r1 + -1)|0; - heap32[(fp+-133)] = r1; - r3 = heap32[(fp+-132)]; - r3 = (r3 + 4)|0; - heap32[(fp+-132)] = r3; -if(!(r1 !=0)) //_LBB612_97 -{ -break _132; -} -} -} -} while(0); - r1 = heap32[(r2+17)]; - r3 = heap32[(r2+2)]; - r4 = heap32[(r2+12)]; -_307: do { -if(!(r1 >r3)) //_LBB612_244 -{ -if(!(r1 >=r3)) //_LBB612_244 -{ - r5 = heap32[(r2+18)]; -if(!(r5 >=r3)) //_LBB612_243 -{ - if(r3 !=0) //_LBB612_230 -{ - r5 = gNumAlignedAllocs; - r5 = r5 >> 2; - r6 = heap32[(r5)]; - r7 = r3 << 2; - r6 = (r6 + 1)|0; - r7 = r7 | 3; - heap32[(r5)] = r6; - r5 = (r7 + 16)|0; - heap32[(g0)] = r5; - malloc(i7); - r5 = r_g0; - if(r5 !=0) //_LBB612_232 -{ - r6 = 0; - r7 = (r5 + 4)|0; - r6 = (r6 - r7)|0; - r6 = r6 & 15; - r6 = (r5 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r5; - r5 = r7; -} -} -else{ - r5 = 0; -} - r6 = (r0 + 76)|0; - if(r1 <1) //_LBB612_235 -{ - r7 = r6 >> 2; - r8 = heap32[(r7)]; -} -else{ - r7 = 0; -_320: while(true){ - r8 = r6 >> 2; - r8 = heap32[(r8)]; - r9 = r7 << 2; - r10 = (r8 + r9)|0; - r10 = r10 >> 2; - r9 = (r5 + r9)|0; - r10 = heap32[(r10)]; - r7 = (r7 + 1)|0; - r9 = r9 >> 2; - heap32[(r9)] = r10; -if(!(r1 !=r7)) //_LBB612_236 -{ -break _320; -} -} - r6 = (r0 + 76)|0; -} -if(!(r8 ==0)) //_LBB612_242 -{ - r7 = heapU8[r0+80]; -if(!(r7 ==0)) //_LBB612_241 -{ - r7 = gNumAlignedFree; - r7 = r7 >> 2; - r9 = heap32[(r7)]; - r9 = (r9 + 1)|0; - r8 = r8 >> 2; - heap32[(r7)] = r9; - r7 = heap32[(r8+-1)]; - heap32[(g0)] = r7; - free(i7); -} - r7 = r6 >> 2; - heap32[(r7)] = 0; -} - r7 = 1; - r6 = r6 >> 2; - heap8[r0+80] = r7; - heap32[(r6)] = r5; - heap32[(r2+18)] = r3; - if(r1 >=r3) //_LBB612_244 -{ -break _307; -} -} -_330: while(true){ - r5 = r1 << 2; - r6 = heap32[(r2+19)]; - r5 = (r6 + r5)|0; - r1 = (r1 + 1)|0; - r5 = r5 >> 2; - heap32[(r5)] = 0; -if(!(r3 !=r1)) //_LBB612_243 -{ -break _307; -} -} -} -} -} while(0); - heap32[(r2+17)] = r3; - r1 = heap32[(r2+22)]; -_333: do { -if(!(r1 >r4)) //_LBB612_263 -{ -if(!(r1 >=r4)) //_LBB612_263 -{ - r5 = heap32[(r2+23)]; -if(!(r5 >=r4)) //_LBB612_262 -{ - if(r4 !=0) //_LBB612_249 -{ - r5 = gNumAlignedAllocs; - r5 = r5 >> 2; - r6 = heap32[(r5)]; - r7 = r4 << 2; - r6 = (r6 + 1)|0; - r7 = r7 | 3; - heap32[(r5)] = r6; - r5 = (r7 + 16)|0; - heap32[(g0)] = r5; - malloc(i7); - r5 = r_g0; - if(r5 !=0) //_LBB612_251 -{ - r6 = 0; - r7 = (r5 + 4)|0; - r6 = (r6 - r7)|0; - r6 = r6 & 15; - r6 = (r5 + r6)|0; - r7 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r5; - r5 = r7; -} -} -else{ - r5 = 0; -} - r6 = (r0 + 96)|0; - if(r1 <1) //_LBB612_254 -{ - r7 = r6 >> 2; - r8 = heap32[(r7)]; -} -else{ - r7 = 0; -_346: while(true){ - r8 = r6 >> 2; - r8 = heap32[(r8)]; - r9 = r7 << 2; - r10 = (r8 + r9)|0; - r10 = r10 >> 2; - r9 = (r5 + r9)|0; - r10 = heap32[(r10)]; - r7 = (r7 + 1)|0; - r9 = r9 >> 2; - heap32[(r9)] = r10; -if(!(r1 !=r7)) //_LBB612_255 -{ -break _346; -} -} - r6 = (r0 + 96)|0; -} -if(!(r8 ==0)) //_LBB612_261 -{ - r7 = heapU8[r0+100]; -if(!(r7 ==0)) //_LBB612_260 -{ - r7 = gNumAlignedFree; - r7 = r7 >> 2; - r9 = heap32[(r7)]; - r9 = (r9 + 1)|0; - r8 = r8 >> 2; - heap32[(r7)] = r9; - r7 = heap32[(r8+-1)]; - heap32[(g0)] = r7; - free(i7); -} - r7 = r6 >> 2; - heap32[(r7)] = 0; -} - r7 = 1; - r6 = r6 >> 2; - heap8[r0+100] = r7; - heap32[(r6)] = r5; - heap32[(r2+23)] = r4; - if(r1 >=r4) //_LBB612_263 -{ -break _333; -} -} -_356: while(true){ - r0 = r1 << 2; - r5 = heap32[(r2+24)]; - r0 = (r5 + r0)|0; - r1 = (r1 + 1)|0; - r0 = r0 >> 2; - heap32[(r0)] = 0; -if(!(r4 !=r1)) //_LBB612_262 -{ -break _333; -} -} -} -} -} while(0); - heap32[(r2+22)] = r4; -_359: do { -if(!(r3 <1)) //_LBB612_266 -{ - r0 = 0; -_361: while(true){ - r1 = r0 << 2; - r5 = heap32[(r2+19)]; - r1 = (r5 + r1)|0; - r5 = (r0 + 1)|0; - r1 = r1 >> 2; - heap32[(r1)] = r0; - r0 = r5; -if(!(r3 !=r5)) //_LBB612_265 -{ -break _359; -} -} -} -} while(0); - if(r4 <1) //_LBB612_269 -{ -break _1; -} -else{ - r0 = 0; -_365: while(true){ - r1 = r0 << 2; - r3 = heap32[(r2+24)]; - r1 = (r3 + r1)|0; - r3 = (r0 + 1)|0; - r1 = r1 >> 2; - heap32[(r1)] = r0; - r0 = r3; -if(!(r4 !=r3)) //_LBB612_268 -{ -break _1; -} -} -} -break; -case 78: - r8 = _2E_str1157; - r0 = _2E_str652; - heap32[(g0)] = r8; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 813; - _assert(i7); -break; -} -} -} while(0); - r0 = _ZN15CProfileManager11CurrentNodeE; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r3 = (r3 + -1)|0; - heap32[(r2+4)] = r3; -_369: do { -if(!(r3 !=0)) //_LBB612_275 -{ - r3 = heap32[(r2+1)]; - if(r3 !=0) //_LBB612_272 -{ - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 * 1000000)|0; - r1 = (r1 + r3)|0; - r3 = heap32[(r2+3)]; - r1 = (r1 - r3)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r2+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r2+2)] = f0; - r1 = heap32[(r2+4)]; - if(r1 !=0) //_LBB612_275 -{ -break _369; -} -else{ - r1 = heap32[(r0)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r0)] = r1; -} -} while(0); - f0 = 0; - f_g0 = f0; - return; -} - -function _ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -48;var g0 = i7>>2; // save stack - r0 = _2E_str854; - r1 = heap32[(fp+7)]; - heap32[(g0)] = r0; - r0 = heap32[(fp)]; - r2 = heap32[(fp+5)]; - r3 = heap32[(fp+6)]; - r4 = r1 >> 2; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r5 = heap32[(r4+5)]; -if(!(r5 <1)) //_LBB613_64 -{ - r5 = 0; -_3: while(true){ - r6 = r0 >> 2; - r7 = heap32[(r4+15)]; - r8 = r7 & 1; - if(r8 != 0) //_LBB613_4 -{ - r8 = r5 & 7; -if(!(r8 !=0)) //_LBB613_3 -{ - r7 = heap32[(r6+2)]; - r8 = heap32[(r6+12)]; -if(!(r7 <1)) //_LBB613_19 -{ - r9 = 0; - r7 = (r9 - r7)|0; - r9 = 1; -_10: while(true){ - r10 = heap32[(r6+19)]; - r11 = r9 << 2; - r11 = (r10 + r11)|0; - r11 = r11 >> 2; - r12 = heap32[(r6+31)]; - r13 = heap32[(r11+-1)]; - r12 = (r12 * 1664525)|0; - r12 = (r12 + 1013904223)|0; - heap32[(r6+31)] = r12; - if(uint(r9) >> 16; - r12 = r14 ^ r12; - if(uint(r9) >> 8; - r12 = r14 ^ r12; - if(uint(r9) >> 4; - r12 = r14 ^ r12; - if(uint(r9) >> 2; - r12 = r14 ^ r12; - if(uint(r9) >> 1; - r12 = r14 ^ r12; -} -} -} -} -} - r12 = Math.floor(uint(r12) % uint(r9)); - r12 = r12 << 2; - r10 = (r10 + r12)|0; - r10 = r10 >> 2; - r10 = heap32[(r10)]; - heap32[(r11+-1)] = r10; - r10 = heap32[(r6+19)]; - r10 = (r10 + r12)|0; - r9 = (r9 + 1)|0; - r10 = r10 >> 2; - heap32[(r10)] = r13; - r10 = (r7 + r9)|0; -if(!(r10 !=1)) //_LBB613_7 -{ -break _10; -} -} -} -_20: do { -if(!(r8 <1)) //_LBB613_33 -{ - r7 = 0; - r7 = (r7 - r8)|0; - r8 = 1; -_22: while(true){ - r9 = heap32[(r6+24)]; - r10 = r8 << 2; - r10 = (r9 + r10)|0; - r10 = r10 >> 2; - r11 = heap32[(r6+31)]; - r12 = heap32[(r10+-1)]; - r11 = (r11 * 1664525)|0; - r11 = (r11 + 1013904223)|0; - heap32[(r6+31)] = r11; - if(uint(r8) >> 16; - r11 = r13 ^ r11; - if(uint(r8) >> 8; - r11 = r13 ^ r11; - if(uint(r8) >> 4; - r11 = r13 ^ r11; - if(uint(r8) >> 2; - r11 = r13 ^ r11; - if(uint(r8) >> 1; - r11 = r13 ^ r11; -} -} -} -} -} - r11 = Math.floor(uint(r11) % uint(r8)); - r11 = r11 << 2; - r9 = (r9 + r11)|0; - r9 = r9 >> 2; - r9 = heap32[(r9)]; - heap32[(r10+-1)] = r9; - r9 = heap32[(r6+24)]; - r9 = (r9 + r11)|0; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r9)] = r12; - r9 = (r7 + r8)|0; -if(!(r9 !=1)) //_LBB613_21 -{ -break _20; -} -} -} -} while(0); - r7 = heap32[(r4+15)]; -} -} - r8 = heap32[(r6+7)]; - r7 = r7 & 256; -_33: do { - if(r7 !=0) //_LBB613_37 -{ -_35: do { -if(!(r8 <1)) //_LBB613_40 -{ - r7 = 0; - r8 = r7; -_37: while(true){ - r9 = (r8 * 34)|0; - r10 = heap32[(r6+9)]; - r9 = r9 << 2; - r9 = (r10 + r9)|0; - r9 = r9 >> 2; - r11 = heap32[(r9+27)]; - r9 = heap32[(r9+26)]; - r10 = (r10 + r7)|0; - heap32[(g0)] = r9; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r10; - r8 = (r8 + 1)|0; - r7 = (r7 + 136)|0; - _ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i7); - r9 = heap32[(r6+7)]; -if(!(r9 >r8)) //_LBB613_39 -{ -break _35; -} -} -} -} while(0); -_40: do { -if(!(r3 <1)) //_LBB613_43 -{ - r7 = r2; - r8 = r3; -_42: while(true){ - r9 = r7 >> 2; - r9 = heap32[(r9)]; - r10 = r9 >> 2; - r11 = heap32[(r10)]; - r11 = r11 >> 2; - r11 = heap32[(r11+6)]; - f0 = heapFloat[(r4+3)]; - r12 = heap32[(r10+6)]; - r10 = heap32[(r10+5)]; - heap32[(g0)] = r9; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r12; - heapFloat[(g0+3)] = f0; - r8 = (r8 + -1)|0; - r7 = (r7 + 4)|0; - __FUNCTION_TABLE__[(r11)>>2](i7); -if(!(r8 !=0)) //_LBB613_42 -{ -break _40; -} -} -} -} while(0); - r7 = heap32[(r6+2)]; -_45: do { -if(!(r7 <1)) //_LBB613_46 -{ - r8 = 0; -_47: while(true){ - r9 = heap32[(r6+19)]; - r10 = r8 << 2; - r9 = (r9 + r10)|0; - r9 = r9 >> 2; - r9 = heap32[(r9)]; - r9 = (r9 * 136)|0; - r10 = heap32[(r6+4)]; - r9 = (r10 + r9)|0; - r10 = r9 >> 2; - r11 = heap32[(r10+27)]; - r10 = heap32[(r10+26)]; - heap32[(g0)] = r10; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r9; - r8 = (r8 + 1)|0; - _ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(i7); -if(!(r7 !=r8)) //_LBB613_45 -{ -break _45; -} -} -} -} while(0); - r7 = heap32[(r6+12)]; - if(r7 <1) //_LBB613_63 -{ -break _33; -} -else{ - r8 = 0; -_51: while(true){ - r9 = heap32[(r6+24)]; - r10 = r8 << 2; - r9 = (r9 + r10)|0; - r9 = r9 >> 2; - r9 = heap32[(r9)]; - r10 = heap32[(r6+14)]; - r9 = (r9 * 136)|0; - r9 = (r10 + r9)|0; - r10 = r9 >> 2; - r11 = heap32[(r10+25)]; - r12 = heap32[(r6+4)]; - r11 = (r11 * 136)|0; - r11 = (r12 + r11)|0; - r11 = r11 >> 2; - f0 = heapFloat[(r11+21)]; - f1 = 0; -if(!(f0 <=f1)) //_LBB613_50 -{ - f1 = heapFloat[(r10+22)]; - f0 = f1*f0; - f1 = -f0; - heapFloat[(r10+31)] = f1; - heapFloat[(r10+32)] = f0; - r11 = heap32[(r10+27)]; - r10 = heap32[(r10+26)]; - heap32[(g0)] = r10; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r9; - _ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i7); -} - r8 = (r8 + 1)|0; - if(r7 ==r8) //_LBB613_63 -{ -break _33; -} -else{ -continue _51; -} -} -} -} -else{ -_57: do { -if(!(r8 <1)) //_LBB613_52 -{ - r8 = 0; - r7 = r8; -_59: while(true){ - r9 = (r7 * 34)|0; - r10 = heap32[(r6+9)]; - r9 = r9 << 2; - r9 = (r10 + r9)|0; - r9 = r9 >> 2; - r11 = heap32[(r9+27)]; - r9 = heap32[(r9+26)]; - r10 = (r10 + r8)|0; - heap32[(g0)] = r9; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r10; - r7 = (r7 + 1)|0; - r8 = (r8 + 136)|0; - _ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i7); - r9 = heap32[(r6+7)]; -if(!(r9 >r7)) //_LBB613_51 -{ -break _57; -} -} -} -} while(0); -_62: do { -if(!(r3 <1)) //_LBB613_55 -{ - r7 = r2; - r8 = r3; -_64: while(true){ - r9 = r7 >> 2; - r9 = heap32[(r9)]; - r10 = r9 >> 2; - r11 = heap32[(r10)]; - r11 = r11 >> 2; - r11 = heap32[(r11+6)]; - f0 = heapFloat[(r4+3)]; - r12 = heap32[(r10+6)]; - r10 = heap32[(r10+5)]; - heap32[(g0)] = r9; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r12; - heapFloat[(g0+3)] = f0; - r8 = (r8 + -1)|0; - r7 = (r7 + 4)|0; - __FUNCTION_TABLE__[(r11)>>2](i7); -if(!(r8 !=0)) //_LBB613_54 -{ -break _62; -} -} -} -} while(0); - r7 = heap32[(r6+2)]; -_67: do { -if(!(r7 <1)) //_LBB613_58 -{ - r8 = 0; -_69: while(true){ - r9 = heap32[(r6+19)]; - r10 = r8 << 2; - r9 = (r9 + r10)|0; - r9 = r9 >> 2; - r9 = heap32[(r9)]; - r9 = (r9 * 136)|0; - r10 = heap32[(r6+4)]; - r9 = (r10 + r9)|0; - r10 = r9 >> 2; - r11 = heap32[(r10+27)]; - r10 = heap32[(r10+26)]; - heap32[(g0)] = r10; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r9; - r8 = (r8 + 1)|0; - _ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(i7); -if(!(r7 !=r8)) //_LBB613_57 -{ -break _67; -} -} -} -} while(0); - r7 = heap32[(r6+12)]; -if(!(r7 <1)) //_LBB613_63 -{ - r8 = 0; -_73: while(true){ - r9 = heap32[(r6+24)]; - r10 = r8 << 2; - r9 = (r9 + r10)|0; - r9 = r9 >> 2; - r9 = heap32[(r9)]; - r10 = heap32[(r6+14)]; - r9 = (r9 * 136)|0; - r9 = (r10 + r9)|0; - r10 = r9 >> 2; - r11 = heap32[(r10+25)]; - r12 = heap32[(r6+4)]; - r11 = (r11 * 136)|0; - r11 = (r12 + r11)|0; - r11 = r11 >> 2; - f0 = heapFloat[(r11+21)]; - f1 = 0; -if(!(f0 <=f1)) //_LBB613_62 -{ - f1 = heapFloat[(r10+22)]; - f0 = f1*f0; - f1 = -f0; - heapFloat[(r10+31)] = f1; - heapFloat[(r10+32)] = f0; - r11 = heap32[(r10+27)]; - r10 = heap32[(r10+26)]; - heap32[(g0)] = r10; - heap32[(g0+1)] = r11; - heap32[(g0+2)] = r9; - _ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i7); -} - r8 = (r8 + 1)|0; -if(!(r7 !=r8)) //_LBB613_60 -{ -break _33; -} -} -} -} -} while(0); - r5 = (r5 + 1)|0; - r6 = heap32[(r4+5)]; - if(r6 >r5) //_LBB613_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - r4 = heap32[(fp+1)]; - r5 = heap32[(fp+2)]; - r6 = heap32[(fp+3)]; - r7 = heap32[(fp+4)]; - r8 = heap32[(fp+8)]; - r9 = heap32[(fp+9)]; - r10 = r0 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+6)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r6; - heap32[(g0+4)] = r7; - heap32[(g0+5)] = r2; - heap32[(g0+6)] = r3; - heap32[(g0+7)] = r1; - heap32[(g0+8)] = r8; - heap32[(g0+9)] = r9; - r0 = _ZN15CProfileManager11CurrentNodeE; - __FUNCTION_TABLE__[(r10)>>2](i7); - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r3 = (r3 + -1)|0; - heap32[(r2+4)] = r3; -_80: do { -if(!(r3 !=0)) //_LBB613_70 -{ - r3 = heap32[(r2+1)]; - if(r3 !=0) //_LBB613_67 -{ - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 * 1000000)|0; - r1 = (r1 + r3)|0; - r3 = heap32[(r2+3)]; - r1 = (r1 - r3)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r2+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r2+2)] = f0; - r1 = heap32[(r2+4)]; - if(r1 !=0) //_LBB613_70 -{ -break _80; -} -else{ - r1 = heap32[(r0)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r0)] = r1; -} -} while(0); - f0 = 0; - f_g0 = f0; - return; -} - -function _ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; -var __label__ = 0; - i7 = sp + -288;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+13)]; - r3 = heap32[(r1+12)]; - r4 = heap32[(fp+1)]; - r5 = heap32[(fp+2)]; - r6 = heap32[(fp+3)]; - r7 = heap32[(fp+4)]; - r8 = heap32[(fp+5)]; - r9 = heap32[(fp+6)]; - r10 = heap32[(fp+7)]; - f0 = heapFloat[(fp+8)]; - f1 = heapFloat[(fp+9)]; - f2 = heapFloat[(fp+10)]; - if(r2 ==r3) //_LBB614_2 -{ - r11 = 1; - r12 = r3 << 1; - r12 = r3 == 0 ? r11 : r12; - if(r2 >=r12) //_LBB614_1 -{ -__label__ = 1; -} -else{ - if(r12 !=0) //_LBB614_5 -{ - r2 = gNumAlignedAllocs; - r2 = r2 >> 2; - r13 = heap32[(r2)]; - r14 = (r12 * 136)|0; - r13 = (r13 + 1)|0; - r14 = r14 | 3; - heap32[(r2)] = r13; - r2 = (r14 + 16)|0; - heap32[(g0)] = r2; - malloc(i7); - r13 = r_g0; - if(r13 !=0) //_LBB614_7 -{ - r2 = 0; - r14 = (r13 + 4)|0; - r2 = (r2 - r14)|0; - r2 = r2 & 15; - r2 = (r13 + r2)|0; - r14 = (r2 + 4)|0; - r2 = r2 >> 2; - heap32[(r2)] = r13; - r13 = r14; -} -} -else{ - r13 = 0; -} - r14 = (r0 + 56)|0; - if(r3 <1) //_LBB614_10 -{ - r2 = r14 >> 2; - r16 = heap32[(r2)]; -} -else{ - r2 = 0; - r15 = r3; -_12: while(true){ - r16 = r14 >> 2; - r16 = heap32[(r16)]; - r17 = (r13 + r2)|0; - r18 = (r16 + r2)|0; - heap32[(g0)] = r17; - heap32[(g0+1)] = r18; - heap32[(g0+2)] = 136; - r15 = (r15 + -1)|0; - r2 = (r2 + 136)|0; - memcpy(i7); -if(!(r15 !=0)) //_LBB614_11 -{ -break _12; -} -} - r14 = (r0 + 56)|0; -} - if(r16 !=0) //_LBB614_15 -{ - r2 = heapU8[r0+60]; - if(r2 !=0) //_LBB614_17 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r15 = heap32[(r2)]; - r15 = (r15 + 1)|0; - r16 = r16 >> 2; - heap32[(r2)] = r15; - r2 = heap32[(r16+-1)]; - heap32[(g0)] = r2; - free(i7); - r2 = heap32[(r1+12)]; -} -else{ - r2 = r3; -} - r15 = r14 >> 2; - heap32[(r15)] = 0; -} -else{ - r2 = r3; -} - r14 = r14 >> 2; - heap8[r0+60] = r11; - heap32[(r14)] = r13; - heap32[(r1+13)] = r12; -__label__ = 19; -} -} -else{ -__label__ = 1; -} -if (__label__ == 1){ - r2 = r3; -} - r0 = (r2 + 1)|0; - heap32[(r1+12)] = r0; - r0 = heap32[(r1+14)]; - r1 = (r3 * 136)|0; - r0 = (r0 + r1)|0; - r0 = r0 >> 2; - heap32[(r0+25)] = r5; - r1 = heapU8[r9+232]; - r1 = r1 & 2; -if(!(r1 !=0)) //_LBB614_22 -{ - r9 = 0; -} - r1 = heapU8[r10+232]; - r1 = r1 & 2; -if(!(r1 !=0)) //_LBB614_24 -{ - r10 = 0; -} - r1 = r4 >> 2; - heap32[(r0+4)] = heap32[(r1)]; - heap32[(r0+5)] = heap32[(r1+1)]; - heap32[(r0+6)] = heap32[(r1+2)]; - heap32[(r0+7)] = heap32[(r1+3)]; - if(r9 ==0) //_LBB614_26 -{ - r2 = _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed; - r3 = heapU8[r2]; -if(!(r3 !=0)) //_LBB614_28 -{ - r3 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed; - r4 = r3 >> 2; - heap32[(r4+41)] = 1065353216; - heap32[(r4+42)] = 1065353216; - heap32[(r4+43)] = 1065353216; - heap32[(r4+44)] = 0; - heap32[(r4+45)] = 0; - heap32[(r4+46)] = 1566444395; - heap32[(r4+47)] = 0; - heap32[(r4+48)] = 0; - heap32[(r4+49)] = 0; - heap32[(r4+50)] = 0; - heap32[(r4+51)] = 1; - heap32[(r4+52)] = -1; - heap32[(r4+53)] = -1; - heap32[(r4+54)] = 1; - heap32[(r4+55)] = 0; - heap32[(r4+56)] = 1056964608; - heap32[(r4+57)] = 0; - heap32[(r4+58)] = 1; - heap32[(r4+59)] = 0; - heap32[(r4+60)] = 1065353216; - heap32[(r4+61)] = 0; - heap32[(r4+62)] = 0; - heap32[(r4+63)] = 0; - heap32[(r4+1)] = 1065353216; - heap32[(r4+2)] = 0; - heap32[(r4+3)] = 0; - heap32[(r4+4)] = 0; - heap32[(r4+5)] = 0; - heap32[(r4+6)] = 1065353216; - heap32[(r4+7)] = 0; - heap32[(r4+8)] = 0; - heap32[(r4+9)] = 0; - heap32[(r4+10)] = 0; - heap32[(r4+11)] = 1065353216; - heap32[(r4+12)] = 0; - heap32[(r4+13)] = 0; - heap32[(r4+14)] = 0; - r5 = _ZTV11btRigidBody; - heap32[(r4+15)] = 0; - r5 = (r5 + 8)|0; - heap32[(r4+16)] = 0; - r11 = 1; - heap32[(r4)] = r5; - heap8[r3+492] = r11; - heap32[(r4+122)] = 0; - heap32[(r4+120)] = 0; - r5 = sp + -272; - heap32[(r4+121)] = 0; - r4 = r5 >> 2; - heap32[(fp+-68)] = 0; - heap32[(r4+1)] = 0; - heap32[(r4+18)] = 0; - heap32[(r4+19)] = 0; - heap32[(r4+20)] = 0; - heap32[(r4+21)] = 0; - heap32[(r4+22)] = 0; - heap32[(r4+23)] = 0; - heap32[(r4+24)] = 0; - heap32[(r4+25)] = 1056964608; - heap32[(r4+26)] = 0; - heap32[(r4+27)] = 1061997773; - r12 = 0; - heap32[(r4+28)] = 1065353216; - heap8[sp+-156] = r12; - heap32[(r4+30)] = 1000593162; - heap32[(r4+31)] = 1008981770; - heap32[(r4+32)] = 1008981770; - heap32[(r4+33)] = 1008981770; - heap32[(r4+2)] = 1065353216; - heap32[(r4+3)] = 0; - heap32[(r4+4)] = 0; - heap32[(r4+5)] = 0; - heap32[(r4+6)] = 0; - heap32[(r4+7)] = 1065353216; - heap32[(r4+8)] = 0; - heap32[(r4+9)] = 0; - heap32[(r4+10)] = 0; - heap32[(r4+11)] = 0; - heap32[(r4+12)] = 1065353216; - heap32[(r4+13)] = 0; - heap32[(r4+14)] = 0; - heap32[(r4+15)] = 0; - heap32[(r4+16)] = 0; - heap32[(r4+17)] = 0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - _ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7); - heap8[r2] = r11; -} - r2 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed; - r3 = r2 >> 2; - r4 = heap32[(r3+51)]; - r4 = r4 | 1; - heap32[(r3+51)] = r4; - heap32[(r3+84)] = 0; - f3 = 0; - f4 = heapFloat[(r3+95)]; - f5 = heapFloat[(r3+94)]; - f6 = heapFloat[(r3+93)]; - f6 = f6*f3; - f5 = f5*f3; - heapFloat[(r3+89)] = f6; - f4 = f4*f3; - heapFloat[(r3+90)] = f5; - heapFloat[(r3+91)] = f4; - heap32[(r3+92)] = 0; - heap32[(r3+97)] = 0; - heap32[(r3+98)] = 0; - heap32[(r3+99)] = 0; - heap32[(r3+100)] = 0; - f4 = heapFloat[(r3+87)]; - f5 = heapFloat[(r3+86)]; - f6 = heapFloat[(r3+85)]; - f6 = f6*f3; - f5 = f5*f3; - heapFloat[(r3+138)] = f6; - f3 = f4*f3; - heapFloat[(r3+139)] = f5; - heapFloat[(r3+140)] = f3; - heap32[(r3+141)] = 0; -} -else{ - r2 = r9; -} - heap32[(r0+26)] = r2; - if(r10 ==0) //_LBB614_31 -{ - r2 = _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed; - r3 = heapU8[r2]; -if(!(r3 !=0)) //_LBB614_33 -{ - r3 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed; - r4 = r3 >> 2; - heap32[(r4+41)] = 1065353216; - heap32[(r4+42)] = 1065353216; - heap32[(r4+43)] = 1065353216; - heap32[(r4+44)] = 0; - heap32[(r4+45)] = 0; - heap32[(r4+46)] = 1566444395; - heap32[(r4+47)] = 0; - heap32[(r4+48)] = 0; - heap32[(r4+49)] = 0; - heap32[(r4+50)] = 0; - heap32[(r4+51)] = 1; - heap32[(r4+52)] = -1; - heap32[(r4+53)] = -1; - heap32[(r4+54)] = 1; - heap32[(r4+55)] = 0; - heap32[(r4+56)] = 1056964608; - heap32[(r4+57)] = 0; - heap32[(r4+58)] = 1; - heap32[(r4+59)] = 0; - heap32[(r4+60)] = 1065353216; - heap32[(r4+61)] = 0; - heap32[(r4+62)] = 0; - heap32[(r4+63)] = 0; - heap32[(r4+1)] = 1065353216; - heap32[(r4+2)] = 0; - heap32[(r4+3)] = 0; - heap32[(r4+4)] = 0; - heap32[(r4+5)] = 0; - heap32[(r4+6)] = 1065353216; - heap32[(r4+7)] = 0; - heap32[(r4+8)] = 0; - heap32[(r4+9)] = 0; - heap32[(r4+10)] = 0; - heap32[(r4+11)] = 1065353216; - heap32[(r4+12)] = 0; - heap32[(r4+13)] = 0; - heap32[(r4+14)] = 0; - r5 = _ZTV11btRigidBody; - heap32[(r4+15)] = 0; - r5 = (r5 + 8)|0; - heap32[(r4+16)] = 0; - r11 = 1; - heap32[(r4)] = r5; - heap8[r3+492] = r11; - heap32[(r4+122)] = 0; - heap32[(r4+120)] = 0; - r5 = sp + -136; - heap32[(r4+121)] = 0; - r4 = r5 >> 2; - heap32[(fp+-34)] = 0; - heap32[(r4+1)] = 0; - heap32[(r4+18)] = 0; - heap32[(r4+19)] = 0; - heap32[(r4+20)] = 0; - heap32[(r4+21)] = 0; - heap32[(r4+22)] = 0; - heap32[(r4+23)] = 0; - heap32[(r4+24)] = 0; - heap32[(r4+25)] = 1056964608; - heap32[(r4+26)] = 0; - heap32[(r4+27)] = 1061997773; - r12 = 0; - heap32[(r4+28)] = 1065353216; - heap8[sp+-20] = r12; - heap32[(r4+30)] = 1000593162; - heap32[(r4+31)] = 1008981770; - heap32[(r4+32)] = 1008981770; - heap32[(r4+33)] = 1008981770; - heap32[(r4+2)] = 1065353216; - heap32[(r4+3)] = 0; - heap32[(r4+4)] = 0; - heap32[(r4+5)] = 0; - heap32[(r4+6)] = 0; - heap32[(r4+7)] = 1065353216; - heap32[(r4+8)] = 0; - heap32[(r4+9)] = 0; - heap32[(r4+10)] = 0; - heap32[(r4+11)] = 0; - heap32[(r4+12)] = 1065353216; - heap32[(r4+13)] = 0; - heap32[(r4+14)] = 0; - heap32[(r4+15)] = 0; - heap32[(r4+16)] = 0; - heap32[(r4+17)] = 0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - _ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i7); - heap8[r2] = r11; -} - r2 = _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed; - r3 = r2 >> 2; - r4 = heap32[(r3+51)]; - r4 = r4 | 1; - heap32[(r3+51)] = r4; - heap32[(r3+84)] = 0; - f3 = 0; - f4 = heapFloat[(r3+95)]; - f5 = heapFloat[(r3+94)]; - f6 = heapFloat[(r3+93)]; - f6 = f6*f3; - f5 = f5*f3; - heapFloat[(r3+89)] = f6; - f4 = f4*f3; - heapFloat[(r3+90)] = f5; - heapFloat[(r3+91)] = f4; - heap32[(r3+92)] = 0; - heap32[(r3+97)] = 0; - heap32[(r3+98)] = 0; - heap32[(r3+99)] = 0; - heap32[(r3+100)] = 0; - f4 = heapFloat[(r3+87)]; - f5 = heapFloat[(r3+86)]; - f6 = heapFloat[(r3+85)]; - f6 = f6*f3; - f5 = f5*f3; - heapFloat[(r3+138)] = f6; - f3 = f4*f3; - heapFloat[(r3+139)] = f5; - heapFloat[(r3+140)] = f3; - heap32[(r3+141)] = 0; -} -else{ - r2 = r10; -} - r3 = r6 >> 2; - heap32[(r0+27)] = r2; - heap32[(r0+22)] = heap32[(r3+21)]; - heap32[(r0+28)] = 0; - heap32[(r0+21)] = 0; - heap32[(r0+20)] = 0; - r2 = r7 >> 2; - f3 = heapFloat[(r0+5)]; - f4 = heapFloat[(r2+2)]; - f5 = heapFloat[(r0+6)]; - f6 = heapFloat[(r2+1)]; - f7 = heapFloat[(r0+4)]; - f8 = heapFloat[(r2)]; - f9 = f6*f5; - f10 = f4*f3; - f9 = f9-f10; - f4 = f4*f7; - f10 = f8*f5; - f4 = f4-f10; - heapFloat[(r0)] = f9; - f8 = f8*f3; - f6 = f6*f7; - f6 = f8-f6; - heapFloat[(r0+1)] = f4; - heapFloat[(r0+2)] = f6; - heap32[(r0+3)] = 0; - if(r9 ==0) //_LBB614_36 -{ - heap32[(r0+12)] = 0; - heap32[(r0+13)] = 0; - f10 = 0; - heap32[(r0+14)] = 0; - heap32[(r0+15)] = 0; - f11 = f10; - f8 = f10; -} -else{ - r3 = r9 >> 2; - f8 = heapFloat[(r3+64)]; - f10 = heapFloat[(r3+65)]; - f11 = heapFloat[(r3+68)]; - f12 = heapFloat[(r3+69)]; - f8 = f8*f9; - f10 = f10*f4; - f13 = heapFloat[(r3+66)]; - f14 = heapFloat[(r3+72)]; - f15 = heapFloat[(r3+73)]; - f16 = heapFloat[(r3+70)]; - f11 = f11*f9; - f12 = f12*f4; - f8 = f8+f10; - f10 = f13*f6; - f13 = heapFloat[(r3+74)]; - f14 = f14*f9; - f15 = f15*f4; - f11 = f11+f12; - f12 = f16*f6; - f8 = f8+f10; - f10 = heapFloat[(r3+134)]; - f16 = heapFloat[(r3+136)]; - f17 = heapFloat[(r3+135)]; - f11 = f11+f12; - f8 = f8*f10; - f10 = f14+f15; - f12 = f13*f6; - f10 = f10+f12; - f11 = f11*f17; - heapFloat[(r0+12)] = f8; - f10 = f10*f16; - heapFloat[(r0+13)] = f11; - heapFloat[(r0+14)] = f10; - heap32[(r0+15)] = 0; -} - r3 = r8 >> 2; - f12 = heapFloat[(r3+2)]; - f13 = heapFloat[(r3+1)]; - f14 = heapFloat[(r3)]; - f15 = f12*f3; - f16 = f13*f5; - f15 = f15-f16; - f16 = f14*f5; - f12 = f12*f7; - f12 = f16-f12; - heapFloat[(r0+8)] = f15; - f13 = f13*f7; - f14 = f14*f3; - f13 = f13-f14; - heapFloat[(r0+9)] = f12; - heapFloat[(r0+10)] = f13; - heap32[(r0+11)] = 0; - if(r10 ==0) //_LBB614_39 -{ - heap32[(r0+16)] = 0; - heap32[(r0+17)] = 0; - f14 = 0; - heap32[(r0+18)] = 0; - heap32[(r0+19)] = 0; - f17 = f14; - f16 = f14; -} -else{ - r4 = r10 >> 2; - f14 = heapFloat[(r4+64)]; - f16 = heapFloat[(r4+65)]; - f17 = heapFloat[(r4+68)]; - f18 = heapFloat[(r4+69)]; - f14 = f14*f15; - f16 = f16*f12; - f19 = heapFloat[(r4+66)]; - f20 = heapFloat[(r4+72)]; - f21 = heapFloat[(r4+73)]; - f22 = heapFloat[(r4+70)]; - f17 = f17*f15; - f18 = f18*f12; - f14 = f14+f16; - f16 = f19*f13; - f19 = heapFloat[(r4+74)]; - f20 = f20*f15; - f21 = f21*f12; - f17 = f17+f18; - f18 = f22*f13; - f14 = f14+f16; - f16 = heapFloat[(r4+134)]; - f22 = heapFloat[(r4+136)]; - f23 = heapFloat[(r4+135)]; - f17 = f17+f18; - f14 = f14*f16; - f16 = f20+f21; - f18 = f19*f13; - f16 = f16+f18; - f17 = f17*f23; - heapFloat[(r0+16)] = f14; - f16 = f16*f22; - heapFloat[(r0+17)] = f17; - heapFloat[(r0+18)] = f16; - heap32[(r0+19)] = 0; -} - if(r9 !=0) //_LBB614_42 -{ - f18 = heapFloat[(r2+1)]; - f19 = heapFloat[(r2+2)]; - f20 = heapFloat[(r2)]; - f21 = f11*f19; - f22 = f10*f18; - f10 = f10*f20; - f19 = f8*f19; - f23 = heapFloat[(r1)]; - f21 = f21-f22; - f22 = heapFloat[(r1+1)]; - f10 = f10-f19; - f8 = f8*f18; - f11 = f11*f20; - f18 = f23*f21; - f10 = f22*f10; - f19 = heapFloat[(r1+2)]; - f8 = f8-f11; - r2 = r9 >> 2; - f10 = f18+f10; - f8 = f19*f8; - f11 = heapFloat[(r2+84)]; - f8 = f10+f8; - f8 = f11+f8; -} -else{ - f8 = 0; -} - if(r10 !=0) //_LBB614_45 -{ - f10 = heapFloat[(r3+2)]; - f11 = heapFloat[(r3)]; - f18 = heapFloat[(r3+1)]; - f19 = f18*f16; - f20 = f10*f17; - f10 = f10*f14; - f16 = f11*f16; - f21 = heapFloat[(r1)]; - f19 = f19-f20; - f20 = heapFloat[(r1+1)]; - f10 = f10-f16; - f11 = f11*f17; - f14 = f18*f14; - f16 = f21*f19; - f10 = f20*f10; - f17 = heapFloat[(r1+2)]; - f14 = f11-f14; - r1 = r10 >> 2; - f10 = f16+f10; - f14 = f17*f14; - f11 = heapFloat[(r1+84)]; - f14 = f10+f14; - f14 = f11+f14; -} -else{ - f14 = 0; -} - f8 = f8+f14; - f0 = f0/f8; - heapFloat[(r0+23)] = f0; - if(r9 !=0) //_LBB614_48 -{ - r1 = r9 >> 2; - f8 = heapFloat[(r1+76)]; - f10 = heapFloat[(r1+77)]; - f8 = f7*f8; - f10 = f3*f10; - f11 = heapFloat[(r1+78)]; - f8 = f8+f10; - f10 = f5*f11; - f10 = f8+f10; - f14 = heapFloat[(r1+80)]; - f11 = heapFloat[(r1+81)]; - f8 = heapFloat[(r1+82)]; -} -else{ - f8 = 0; - f10 = f7*f8; - f11 = f3*f8; - f10 = f10+f11; - f11 = f5*f8; - f10 = f10+f11; - f11 = f8; - f14 = f8; -} - f9 = f9*f14; - f4 = f4*f11; - f4 = f9+f4; - f6 = f6*f8; - f4 = f4+f6; - f4 = f10+f4; - if(r10 !=0) //_LBB614_51 -{ - r1 = r10 >> 2; - f6 = heapFloat[(r1+80)]; - f8 = heapFloat[(r1+81)]; - f6 = f15*f6; - f12 = f12*f8; - f15 = heapFloat[(r1+82)]; - f6 = f6+f12; - f12 = f13*f15; - f12 = f6+f12; - f15 = heapFloat[(r1+76)]; - f13 = heapFloat[(r1+77)]; - f6 = heapFloat[(r1+78)]; -} -else{ - f6 = 0; - f15 = f15*f6; - f12 = f12*f6; - f12 = f15+f12; - f13 = f13*f6; - f12 = f12+f13; - f13 = f6; - f15 = f6; -} - f7 = f7*f15; - f3 = f3*f13; - f3 = f7+f3; - f5 = f5*f6; - f3 = f3+f5; - f3 = f12-f3; - f3 = f4+f3; - f1 = f1-f3; - f0 = f0*f1; - heapFloat[(r0+29)] = f0; - heapFloat[(r0+30)] = f2; - heap32[(r0+31)] = 0; - heap32[(r0+32)] = 1343554297; - return; -} - -function _ZNK17btTypedConstraint9serializeEPvP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = r0 >> 2; - r2 = heap32[(fp)]; - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r4 = r2 >> 2; - r3 = heap32[(r3+7)]; - r5 = heap32[(r4+5)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r5; - r5 = heap32[(fp+1)]; - __FUNCTION_TABLE__[(r3)>>2](i7); - r5 = r5 >> 2; - heap32[(r5)] = r_g0; - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+7)]; - r6 = heap32[(r4+6)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r6; - __FUNCTION_TABLE__[(r3)>>2](i7); - heap32[(r5+1)] = r_g0; - r3 = heap32[(r1)]; - r3 = r3 >> 2; - r3 = heap32[(r3+10)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = r_g0; - r6 = heap32[(r1)]; - r6 = r6 >> 2; - r6 = heap32[(r6+7)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r6)>>2](i7); - r6 = r_g0; - heap32[(r5+2)] = r6; -if(!(r6 ==0)) //_LBB615_2 -{ - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+12)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r1)>>2](i7); -} - r0 = heap32[(r4+1)]; - heap32[(r5+3)] = r0; - r0 = heapU8[r2+16]; - heap32[(r5+6)] = r0; - r0 = heap32[(r4+3)]; - heap32[(r5+5)] = r0; - r0 = heap32[(r4+2)]; - heap32[(r5+4)] = r0; - heap32[(r5+7)] = heap32[(r4+7)]; - heap32[(r5+8)] = heap32[(r4+8)]; - heap32[(r5+9)] = 0; - r0 = heap32[(r4+5)]; - r1 = r0 >> 2; - r1 = heap32[(r1+120)]; -if(!(r1 <1)) //_LBB615_7 -{ - r1 = 0; -_6: while(true){ - r0 = r0 >> 2; - r0 = heap32[(r0+122)]; - r3 = r1 << 2; - r0 = (r0 + r3)|0; - r0 = r0 >> 2; - r0 = heap32[(r0)]; -if(!(r0 !=r2)) //_LBB615_6 -{ - heap32[(r5+9)] = 1; -} - r1 = (r1 + 1)|0; - r0 = heap32[(r4+5)]; - r3 = r0 >> 2; - r3 = heap32[(r3+120)]; - if(r3 >r1) //_LBB615_4 -{ -continue _6; -} -else{ -break _6; -} -} -} - r0 = heap32[(r4+6)]; - r1 = r0 >> 2; - r1 = heap32[(r1+120)]; -_12: do { -if(!(r1 <1)) //_LBB615_12 -{ - r1 = 0; -_14: while(true){ - r0 = r0 >> 2; - r0 = heap32[(r0+122)]; - r3 = r1 << 2; - r0 = (r0 + r3)|0; - r0 = r0 >> 2; - r0 = heap32[(r0)]; -if(!(r0 !=r2)) //_LBB615_11 -{ - heap32[(r5+9)] = 1; -} - r1 = (r1 + 1)|0; - r0 = heap32[(r4+6)]; - r3 = r0 >> 2; - r3 = heap32[(r3+120)]; - if(r3 >r1) //_LBB615_9 -{ -continue _14; -} -else{ -break _12; -} -} -} -} while(0); - r0 = _2E_str76; - r_g0 = r0; - return; -} - -function _ZN23btDiscreteDynamicsWorld11setNumTasksEi(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN23btDiscreteDynamicsWorld14updateVehiclesEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = _2E_str289; - r1 = heap32[(fp)]; - heap32[(g0)] = r0; - r0 = r1 >> 2; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r2 = heap32[(r0+63)]; -if(!(r2 <1)) //_LBB617_3 -{ - f0 = heapFloat[(fp+1)]; - r2 = 0; -_3: while(true){ - r3 = heap32[(r0+65)]; - r4 = r2 << 2; - r3 = (r3 + r4)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+2)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r1; - heapFloat[(g0+2)] = f0; - r2 = (r2 + 1)|0; - __FUNCTION_TABLE__[(r4)>>2](i7); - r3 = heap32[(r0+63)]; - if(r3 >r2) //_LBB617_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - r0 = _ZN15CProfileManager11CurrentNodeE; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r3 = (r3 + -1)|0; - heap32[(r2+4)] = r3; -_6: do { -if(!(r3 !=0)) //_LBB617_9 -{ - r3 = heap32[(r2+1)]; - if(r3 !=0) //_LBB617_6 -{ - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 * 1000000)|0; - r1 = (r1 + r3)|0; - r3 = heap32[(r2+3)]; - r1 = (r1 - r3)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r2+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r2+2)] = f0; - r1 = heap32[(r2+4)]; - if(r1 !=0) //_LBB617_9 -{ -break _6; -} -else{ - r1 = heap32[(r0)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r0)] = r1; -} -} while(0); - return; -} - -function _ZN15btDynamicsWorld13addConstraintEP17btTypedConstraintb(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN15btDynamicsWorld16removeConstraintEP17btTypedConstraint(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZNK15btDynamicsWorld17getNumConstraintsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN15btDynamicsWorld13getConstraintEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZNK15btDynamicsWorld13getConstraintEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN15btDynamicsWorld10addVehicleEP17btActionInterface(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN15btDynamicsWorld13removeVehicleEP17btActionInterface(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN15btDynamicsWorld12addCharacterEP17btActionInterface(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN15btDynamicsWorld15removeCharacterEP17btActionInterface(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZNK23btDiscreteDynamicsWorld12getWorldTypeEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 2; - r_g0 = r0; - return; -} - -function _ZNK23btDiscreteDynamicsWorld10getGravityEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - heap32[(r0)] = heap32[(r1+56)]; - heap32[(r0+1)] = heap32[(r1+57)]; - heap32[(r0+2)] = heap32[(r1+58)]; - heap32[(r0+3)] = heap32[(r1+59)]; - return; -} - -function _ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+15)]; - r2 = heap32[(fp+1)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+16)]; - r2 = heap32[(fp+1)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+15)]; - r2 = heap32[(fp+1)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+16)]; - r2 = heap32[(fp+1)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZN34btClosestNotMeConvexResultCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN34btClosestNotMeConvexResultCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = r1 >> 2; - r3 = r0 >> 2; - r2 = heap32[(r2)]; - r4 = heap32[(r3+20)]; - if(r2 !=r4) //_LBB635_2 -{ - r5 = heapU16[(r0+10)>>1]; - r6 = heapU16[(r1+4)>>1]; - r5 = r5 & r6; - r5 = r5 & 65535; - if(r5 ==0) //_LBB635_1 -{ -__label__ = 1; -} -else{ - r5 = heapU16[(r1+6)>>1]; - r0 = heapU16[(r0+8)>>1]; - r0 = r5 & r0; - r0 = r0 & 65535; - if(r0 ==0) //_LBB635_1 -{ -__label__ = 1; -} -else{ - r0 = heap32[(r3+23)]; - r5 = r0 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+7)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r2; - __FUNCTION_TABLE__[(r5)>>2](i7); - r0 = r_g0; - if(r0 !=0) //_LBB635_6 -{ - r0 = sp + -24; - r2 = 1; - r4 = r0 >> 2; - heap8[sp+-8] = r2; - heap32[(r4+3)] = 0; - heap32[(r4+1)] = 0; - heap32[(r4+2)] = 0; - r5 = heap32[(r3+22)]; - r6 = r5 >> 2; - r6 = heap32[(r6)]; - r3 = heap32[(r3+20)]; - r6 = r6 >> 2; - r3 = r3 >> 2; - r6 = heap32[(r6+13)]; - r3 = heap32[(r3+47)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r1; - __FUNCTION_TABLE__[(r6)>>2](i7); - r1 = r_g0; -_7: do { -if(!(r1 ==0)) //_LBB635_21 -{ - r1 = r1 >> 2; - r3 = heap32[(r1+2)]; -if(!(r3 ==0)) //_LBB635_21 -{ - r3 = heap32[(r4+1)]; -if(!(r3 >-1)) //_LBB635_17 -{ - r5 = heap32[(r4+2)]; - if(r5 <0) //_LBB635_11 -{ - r5 = heap32[(r4+3)]; -if(!(r5 ==0)) //_LBB635_15 -{ - r6 = heapU8[sp+-8]; -if(!(r6 ==0)) //_LBB635_14 -{ - r6 = gNumAlignedFree; - r6 = r6 >> 2; - r7 = heap32[(r6)]; - r7 = (r7 + 1)|0; - r5 = r5 >> 2; - heap32[(r6)] = r7; - r5 = heap32[(r5+-1)]; - heap32[(g0)] = r5; - free(i7); -} - heap32[(r4+3)] = 0; -} - heap8[sp+-8] = r2; - heap32[(r4+3)] = 0; - heap32[(r4+2)] = 0; -} -_20: while(true){ - r2 = r3 << 2; - r5 = heap32[(r4+3)]; - r2 = (r5 + r2)|0; - r3 = (r3 + 1)|0; - r2 = r2 >> 2; - heap32[(r2)] = 0; -if(!(r3 !=0)) //_LBB635_16 -{ -break _20; -} -} -} - heap32[(r4+1)] = 0; - r1 = heap32[(r1+2)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r0 = heap32[(r4+1)]; - r1 = 0; -_23: while(true){ - if(r0 >r1) //_LBB635_18 -{ - r2 = heap32[(r4+3)]; - r3 = r1 << 2; - r3 = (r2 + r3)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+279)]; - if(r3 >0) //_LBB635_25 -{ -break _23; -} -else{ - r1 = (r1 + 1)|0; -} -} -else{ -break _7; -} -} -if(!(r2 ==0)) //_LBB635_29 -{ - r0 = heapU8[sp+-8]; -if(!(r0 ==0)) //_LBB635_28 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - r2 = r2 >> 2; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} -} - r0 = 0; - r_g0 = r0; - return; -} -} -} while(0); - r0 = heap32[(r4+3)]; -if(!(r0 ==0)) //_LBB635_24 -{ - r2 = heapU8[sp+-8]; -if(!(r2 ==0)) //_LBB635_24 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r1 = heap32[(r2)]; - r1 = (r1 + 1)|0; - r0 = r0 >> 2; - heap32[(r2)] = r1; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} -} - r0 = 1; - r_g0 = r0; - return; -} -else{ - r0 = 1; -__label__ = 28; -} -} -} -} -else{ -__label__ = 1; -} -if (__label__ == 1){ - r0 = 0; -} - r0 = r0 & 255; - r_g0 = r0; - return; -} - -function _ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(fp)]; - r3 = heap32[(r1)]; - r4 = r2 >> 2; - r5 = heap32[(r4+20)]; -if(!(r3 ==r5)) //_LBB636_4 -{ - r3 = heapU8[r3+204]; - r3 = r3 & 4; -if(!(r3 !=0)) //_LBB636_4 -{ - f0 = heapFloat[(r4+7)]; - f1 = heapFloat[(r4+3)]; - f2 = heapFloat[(r4+8)]; - f3 = heapFloat[(r4+4)]; - f4 = heapFloat[(r1+2)]; - f0 = f0-f1; - f1 = heapFloat[(r1+3)]; - f2 = f2-f3; - f3 = heapFloat[(r4+9)]; - f5 = heapFloat[(r4+5)]; - f0 = f4*f0; - f1 = f1*f2; - f2 = heapFloat[(r1+4)]; - f3 = f3-f5; - f4 = heapFloat[(r4+21)]; - f0 = f0+f1; - f1 = f2*f3; - f0 = f0+f1; - f1 = -f4; -if(!(f0 >=f1)) //_LBB636_4 -{ - r1 = heap32[(fp+2)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r1; - _ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb(i7); - return; -} -} -} - f0 = 1; - f_g0 = f0; - return; -} - -function _ZN23btDiscreteDynamicsWorld19getConstraintSolverEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+44)]; - r_g0 = r0; - return; -} - -function _ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+47)]; - r_g0 = r0; - return; -} - -function _ZN23btDiscreteDynamicsWorld13getConstraintEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - r0 = heap32[(r0+49)]; - r1 = r1 << 2; - r0 = (r0 + r1)|0; - r0 = r0 >> 2; - r0 = heap32[(r0)]; - r_g0 = r0; - return; -} - -function _ZN23btDiscreteDynamicsWorld11clearForcesEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+52)]; -if(!(r1 <1)) //_LBB640_3 -{ - r1 = 0; -_3: while(true){ - r2 = heap32[(r0+54)]; - r3 = r1 << 2; - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r1 = (r1 + 1)|0; - heap32[(r2+101)] = 0; - heap32[(r2+102)] = 0; - heap32[(r2+103)] = 0; - heap32[(r2+104)] = 0; - heap32[(r2+105)] = 0; - heap32[(r2+106)] = 0; - heap32[(r2+107)] = 0; - heap32[(r2+108)] = 0; - r2 = heap32[(r0+52)]; - if(r2 >r1) //_LBB640_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - return; -} - -function _ZNK23btDiscreteDynamicsWorld13getConstraintEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - r0 = heap32[(r0+49)]; - r1 = r1 << 2; - r0 = (r0 + r1)|0; - r0 = r0 >> 2; - r0 = heap32[(r0)]; - r_g0 = r0; - return; -} - -function _ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - r2 = heap32[(r0+63)]; - r3 = 0; -_1: while(true){ - if(r2 >r3) //_LBB642_1 -{ - r4 = heap32[(r0+65)]; - r5 = r3 << 2; - r4 = (r4 + r5)|0; - r4 = r4 >> 2; - r4 = heap32[(r4)]; - if(r4 !=r1) //_LBB642_3 -{ - r3 = (r3 + 1)|0; -continue _1; -} -else{ -__label__ = 5; -break _1; -} -} -else{ -__label__ = 4; -break _1; -} -} -if (__label__ == 4){ - r3 = r2; -} -if(!(r2 <=r3)) //_LBB642_8 -{ - r1 = (r2 + -1)|0; - r2 = r3 << 2; - r3 = heap32[(r0+65)]; - r1 = r1 << 2; - r2 = (r3 + r2)|0; - r3 = (r3 + r1)|0; - r2 = r2 >> 2; - r3 = r3 >> 2; - r4 = heap32[(r2)]; - r3 = heap32[(r3)]; - heap32[(r2)] = r3; - r2 = heap32[(r0+65)]; - r1 = (r2 + r1)|0; - r1 = r1 >> 2; - heap32[(r1)] = r4; - r1 = heap32[(r0+63)]; - r1 = (r1 + -1)|0; - heap32[(r0+63)] = r1; -} - return; -} - -function _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+21)]; -if(!(r1 ==0)) //_LBB643_4 -{ - r3 = heapU8[r0+88]; -if(!(r3 ==0)) //_LBB643_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+21)] = 0; -} - r1 = 1; - heap8[r0+88] = r1; - heap32[(r2+21)] = 0; - heap32[(r2+19)] = 0; - heap32[(r2+20)] = 0; - r3 = heap32[(r2+16)]; -if(!(r3 ==0)) //_LBB643_8 -{ - r4 = heapU8[r0+68]; -if(!(r4 ==0)) //_LBB643_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+16)] = 0; -} - heap8[r0+68] = r1; - heap32[(r2+16)] = 0; - heap32[(r2+14)] = 0; - heap32[(r2+15)] = 0; - r3 = heap32[(r2+11)]; -if(!(r3 ==0)) //_LBB643_12 -{ - r4 = heapU8[r0+48]; -if(!(r4 ==0)) //_LBB643_11 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+11)] = 0; -} - heap8[r0+48] = r1; - heap32[(r2+11)] = 0; - heap32[(r2+9)] = 0; - heap32[(r2+10)] = 0; - return; -} - -function _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+21)]; -if(!(r1 ==0)) //_LBB644_4 -{ - r3 = heapU8[r0+88]; -if(!(r3 ==0)) //_LBB644_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+21)] = 0; -} - r1 = 1; - heap8[r0+88] = r1; - heap32[(r2+21)] = 0; - heap32[(r2+19)] = 0; - heap32[(r2+20)] = 0; - r3 = heap32[(r2+16)]; -if(!(r3 ==0)) //_LBB644_8 -{ - r4 = heapU8[r0+68]; -if(!(r4 ==0)) //_LBB644_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+16)] = 0; -} - heap8[r0+68] = r1; - heap32[(r2+16)] = 0; - heap32[(r2+14)] = 0; - heap32[(r2+15)] = 0; - r3 = heap32[(r2+11)]; -if(!(r3 ==0)) //_LBB644_12 -{ - r4 = heapU8[r0+48]; -if(!(r4 ==0)) //_LBB644_11 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+11)] = 0; -} - heap8[r0+48] = r1; - heap32[(r2+11)] = 0; - heap32[(r2+9)] = 0; - heap32[(r2+10)] = 0; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; -var __label__ = 0; - i7 = sp + -48;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(fp+5)]; - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - r5 = heap32[(fp+3)]; - r6 = heap32[(fp+4)]; - r7 = heap32[(r1+4)]; -_1: do { - if(r2 <0) //_LBB645_2 -{ - r0 = 0; - r0 = (r0 - r6)|0; - if(r7 ==r0) //_LBB645_87 -{ -break _1; -} -else{ - r0 = heap32[(r1+2)]; - r2 = r0 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+3)]; - r8 = heap32[(r1+7)]; - r9 = heap32[(r1+6)]; - r10 = heap32[(r1+5)]; - r11 = heap32[(r1+1)]; - r1 = heap32[(r1+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - heap32[(g0+4)] = r6; - heap32[(g0+5)] = r1; - heap32[(g0+6)] = r7; - heap32[(g0+7)] = r11; - heap32[(g0+8)] = r10; - heap32[(g0+9)] = r9; - heap32[(g0+10)] = r8; - __FUNCTION_TABLE__[(r2)>>2](i7); - return; -} -} -else{ - r8 = 1; - r9 = 4; - r10 = 0; -_5: while(true){ - if(r7 >r10) //_LBB645_4 -{ - r11 = heap32[(r1+3)]; - r12 = r10 << 2; - r12 = (r11 + r12)|0; - r12 = r12 >> 2; - r12 = heap32[(r12)]; - r12 = r12 >> 2; - r13 = heap32[(r12+5)]; - r13 = r13 >> 2; - r13 = heap32[(r13+52)]; - if(r13 <0) //_LBB645_6 -{ - r13 = heap32[(r12+6)]; - r13 = r13 >> 2; - r13 = heap32[(r13+52)]; -} - r10 = (r10 + 1)|0; - r9 = (r9 + -4)|0; - r8 = (r8 + -1)|0; - if(r13 ==r2) //_LBB645_10 -{ -__label__ = 9; -break _5; -} -else{ -__label__ = 7; -} -} -else{ -__label__ = 8; -break _5; -} -} -_11: do { -switch(__label__ ){//multiple entries -case 9: - r10 = r7 > r10 ? r7 : r10; - r7 = (r11 - r9)|0; - r9 = (r10 + r8)|0; - r8 = 0; - r10 = r7; -_13: while(true){ - r11 = r10 >> 2; - r11 = heap32[(r11)]; - r11 = r11 >> 2; - r12 = heap32[(r11+5)]; - r12 = r12 >> 2; - r12 = heap32[(r12+52)]; - if(r12 <0) //_LBB645_13 -{ - r12 = heap32[(r11+6)]; - r12 = r12 >> 2; - r12 = heap32[(r12+52)]; -} - r11 = r12 == r2; - r11 = r11 & 1; - r9 = (r9 + -1)|0; - r8 = (r11 + r8)|0; - r10 = (r10 + 4)|0; -if(!(r9 !=0)) //_LBB645_11 -{ -break _11; -} -} -break; -case 8: - r7 = 0; - r8 = r7; -break; -} -} while(0); - r2 = heap32[(r1+1)]; - r9 = r2 >> 2; - r9 = heap32[(r9+17)]; - if(r9 <2) //_LBB645_17 -{ - r0 = 0; - r0 = (r0 - r6)|0; - if(r8 ==r0) //_LBB645_87 -{ -break _1; -} -else{ - r0 = heap32[(r1+2)]; - r9 = r0 >> 2; - r9 = heap32[(r9)]; - r9 = r9 >> 2; - r9 = heap32[(r9+3)]; - r10 = heap32[(r1+7)]; - r11 = heap32[(r1+6)]; - r1 = heap32[(r1+5)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - heap32[(g0+4)] = r6; - heap32[(g0+5)] = r7; - heap32[(g0+6)] = r8; - heap32[(g0+7)] = r2; - heap32[(g0+8)] = r1; - heap32[(g0+9)] = r11; - heap32[(g0+10)] = r10; - __FUNCTION_TABLE__[(r9)>>2](i7); - return; -} -} -else{ -_24: do { - if(r4 >0) //_LBB645_19 -{ - r2 = heap32[(r1+9)]; -_26: while(true){ - r9 = heap32[(r1+10)]; - if(r9 ==r2) //_LBB645_22 -{ - r10 = 1; - r11 = r2 << 1; - r11 = r2 == 0 ? r10 : r11; -if(!(r9 >=r11)) //_LBB645_21 -{ - if(r11 !=0) //_LBB645_25 -{ - r9 = gNumAlignedAllocs; - r9 = r9 >> 2; - r12 = heap32[(r9)]; - r13 = r11 << 2; - r12 = (r12 + 1)|0; - r13 = r13 | 3; - heap32[(r9)] = r12; - r9 = (r13 + 16)|0; - heap32[(g0)] = r9; - malloc(i7); - r9 = r_g0; - if(r9 !=0) //_LBB645_27 -{ - r12 = 0; - r13 = (r9 + 4)|0; - r12 = (r12 - r13)|0; - r12 = r12 & 15; - r12 = (r9 + r12)|0; - r13 = (r12 + 4)|0; - r12 = r12 >> 2; - heap32[(r12)] = r9; - r9 = r13; -} -} -else{ - r9 = 0; -} - if(r2 <1) //_LBB645_30 -{ - r13 = heap32[(r1+11)]; -} -else{ - r12 = 0; -_39: while(true){ - r13 = heap32[(r1+11)]; - r14 = r12 << 2; - r15 = (r13 + r14)|0; - r15 = r15 >> 2; - r14 = (r9 + r14)|0; - r15 = heap32[(r15)]; - r12 = (r12 + 1)|0; - r14 = r14 >> 2; - heap32[(r14)] = r15; -if(!(r2 !=r12)) //_LBB645_31 -{ -break _39; -} -} -} - if(r13 !=0) //_LBB645_34 -{ - r12 = heapU8[r0+48]; - if(r12 !=0) //_LBB645_36 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r12 = heap32[(r2)]; - r12 = (r12 + 1)|0; - r13 = r13 >> 2; - heap32[(r2)] = r12; - r2 = heap32[(r13+-1)]; - heap32[(g0)] = r2; - free(i7); - r2 = heap32[(r1+9)]; -} - heap32[(r1+11)] = 0; -} - heap8[r0+48] = r10; - heap32[(r1+11)] = r9; - heap32[(r1+10)] = r11; -} -} - r9 = r3 >> 2; - r2 = r2 << 2; - r10 = heap32[(r1+11)]; - r2 = (r10 + r2)|0; - r9 = heap32[(r9)]; - r2 = r2 >> 2; - heap32[(r2)] = r9; - r2 = heap32[(r1+9)]; - r2 = (r2 + 1)|0; - r4 = (r4 + -1)|0; - r3 = (r3 + 4)|0; - heap32[(r1+9)] = r2; -if(!(r4 !=0)) //_LBB645_20 -{ -break _24; -} -} -} -} while(0); -_50: do { -if(!(r6 <1)) //_LBB645_62 -{ - r2 = heap32[(r1+14)]; -_52: while(true){ - r3 = heap32[(r1+15)]; - if(r3 ==r2) //_LBB645_44 -{ - r4 = 1; - r9 = r2 << 1; - r9 = r2 == 0 ? r4 : r9; -if(!(r3 >=r9)) //_LBB645_43 -{ - if(r9 !=0) //_LBB645_47 -{ - r3 = gNumAlignedAllocs; - r3 = r3 >> 2; - r10 = heap32[(r3)]; - r11 = r9 << 2; - r10 = (r10 + 1)|0; - r11 = r11 | 3; - heap32[(r3)] = r10; - r3 = (r11 + 16)|0; - heap32[(g0)] = r3; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB645_49 -{ - r10 = 0; - r11 = (r3 + 4)|0; - r10 = (r10 - r11)|0; - r10 = r10 & 15; - r10 = (r3 + r10)|0; - r11 = (r10 + 4)|0; - r10 = r10 >> 2; - heap32[(r10)] = r3; - r3 = r11; -} -} -else{ - r3 = 0; -} - if(r2 <1) //_LBB645_52 -{ - r11 = heap32[(r1+16)]; -} -else{ - r10 = 0; -_65: while(true){ - r11 = heap32[(r1+16)]; - r12 = r10 << 2; - r13 = (r11 + r12)|0; - r13 = r13 >> 2; - r12 = (r3 + r12)|0; - r13 = heap32[(r13)]; - r10 = (r10 + 1)|0; - r12 = r12 >> 2; - heap32[(r12)] = r13; -if(!(r2 !=r10)) //_LBB645_53 -{ -break _65; -} -} -} - if(r11 !=0) //_LBB645_56 -{ - r10 = heapU8[r0+68]; - if(r10 !=0) //_LBB645_58 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r10 = heap32[(r2)]; - r10 = (r10 + 1)|0; - r11 = r11 >> 2; - heap32[(r2)] = r10; - r2 = heap32[(r11+-1)]; - heap32[(g0)] = r2; - free(i7); - r2 = heap32[(r1+14)]; -} - heap32[(r1+16)] = 0; -} - heap8[r0+68] = r4; - heap32[(r1+16)] = r3; - heap32[(r1+15)] = r9; -} -} - r3 = r5 >> 2; - r2 = r2 << 2; - r4 = heap32[(r1+16)]; - r2 = (r4 + r2)|0; - r3 = heap32[(r3)]; - r2 = r2 >> 2; - heap32[(r2)] = r3; - r2 = heap32[(r1+14)]; - r2 = (r2 + 1)|0; - r6 = (r6 + -1)|0; - r5 = (r5 + 4)|0; - heap32[(r1+14)] = r2; -if(!(r6 !=0)) //_LBB645_42 -{ -break _50; -} -} -} -} while(0); -_76: do { - if(r8 >0) //_LBB645_64 -{ - r2 = heap32[(r1+19)]; -_78: while(true){ - r3 = heap32[(r1+20)]; - if(r3 ==r2) //_LBB645_67 -{ - r4 = 1; - r5 = r2 << 1; - r5 = r2 == 0 ? r4 : r5; -if(!(r3 >=r5)) //_LBB645_66 -{ - if(r5 !=0) //_LBB645_70 -{ - r3 = gNumAlignedAllocs; - r3 = r3 >> 2; - r6 = heap32[(r3)]; - r9 = r5 << 2; - r6 = (r6 + 1)|0; - r9 = r9 | 3; - heap32[(r3)] = r6; - r3 = (r9 + 16)|0; - heap32[(g0)] = r3; - malloc(i7); - r3 = r_g0; - if(r3 !=0) //_LBB645_72 -{ - r6 = 0; - r9 = (r3 + 4)|0; - r6 = (r6 - r9)|0; - r6 = r6 & 15; - r6 = (r3 + r6)|0; - r9 = (r6 + 4)|0; - r6 = r6 >> 2; - heap32[(r6)] = r3; - r3 = r9; -} -} -else{ - r3 = 0; -} - if(r2 <1) //_LBB645_75 -{ - r9 = heap32[(r1+21)]; -} -else{ - r6 = 0; -_91: while(true){ - r9 = heap32[(r1+21)]; - r10 = r6 << 2; - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - r10 = (r3 + r10)|0; - r11 = heap32[(r11)]; - r6 = (r6 + 1)|0; - r10 = r10 >> 2; - heap32[(r10)] = r11; -if(!(r2 !=r6)) //_LBB645_76 -{ -break _91; -} -} -} - if(r9 !=0) //_LBB645_79 -{ - r6 = heapU8[r0+88]; - if(r6 !=0) //_LBB645_81 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r6 = heap32[(r2)]; - r6 = (r6 + 1)|0; - r9 = r9 >> 2; - heap32[(r2)] = r6; - r2 = heap32[(r9+-1)]; - heap32[(g0)] = r2; - free(i7); - r2 = heap32[(r1+19)]; -} - heap32[(r1+21)] = 0; -} - heap8[r0+88] = r4; - heap32[(r1+21)] = r3; - heap32[(r1+20)] = r5; -} -} - r3 = r7 >> 2; - r2 = r2 << 2; - r4 = heap32[(r1+21)]; - r2 = (r4 + r2)|0; - r3 = heap32[(r3)]; - r2 = r2 >> 2; - heap32[(r2)] = r3; - r2 = heap32[(r1+19)]; - r2 = (r2 + 1)|0; - r8 = (r8 + -1)|0; - r7 = (r7 + 4)|0; - heap32[(r1+19)] = r2; -if(!(r8 !=0)) //_LBB645_65 -{ -break _76; -} -} -} -else{ - r2 = heap32[(r1+19)]; -} -} while(0); - r3 = heap32[(r1+1)]; - r3 = r3 >> 2; - r1 = heap32[(r1+14)]; - r1 = (r1 + r2)|0; - r2 = heap32[(r3+17)]; -if(!(r1 <=r2)) //_LBB645_87 -{ - heap32[(g0)] = r0; - _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(i7); -} -} -} -} while(0); - return; -} - -function _ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp+1)]; - r2 = (r0 + r1)|0; - r3 = r2 >>> 31; - r4 = heap32[(fp)]; - r2 = (r2 + r3)|0; - r3 = r4 >> 2; - r2 = r2 & 2147483646; - r5 = heap32[(r3+3)]; - r2 = r2 << 1; - r2 = (r5 + r2)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r5 = r1; - r6 = r0; -_1: while(true){ - r7 = r2 >> 2; - r8 = heap32[(r7+5)]; - r8 = r8 >> 2; - r9 = heap32[(r3+3)]; - r8 = heap32[(r8+52)]; -_3: while(true){ - r10 = r5 << 2; - r10 = (r9 + r10)|0; - r10 = r10 >> 2; - r11 = heap32[(r10)]; - if(r8 <0) //_LBB646_5 -{ - r12 = heap32[(r7+6)]; - r12 = r12 >> 2; - r12 = heap32[(r12+52)]; -} -else{ - r12 = r8; -} - r13 = r11 >> 2; - r14 = heap32[(r13+5)]; - r14 = r14 >> 2; - r14 = heap32[(r14+52)]; - if(r14 <0) //_LBB646_8 -{ - r14 = heap32[(r13+6)]; - r14 = r14 >> 2; - r14 = heap32[(r14+52)]; -} - if(r14 > 2; - r13 = heap32[(r13)]; - r14 = r13 >> 2; - r15 = heap32[(r14+5)]; - r15 = r15 >> 2; - r15 = heap32[(r15+52)]; - if(r15 <0) //_LBB646_13 -{ - r15 = heap32[(r14+6)]; - r15 = r15 >> 2; - r15 = heap32[(r15+52)]; -} - if(r8 <0) //_LBB646_16 -{ - r14 = heap32[(r7+6)]; - r14 = r14 >> 2; - r14 = heap32[(r14+52)]; -} -else{ - r14 = r8; -} - if(r14 > 2; - heap32[(r7)] = r11; -} - if(r5 <=r6) //_LBB646_1 -{ -continue _1; -} -else{ -break _1; -} -} -if(!(r6 <=r1)) //_LBB646_24 -{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r6; - _ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i7); -} -if(!(r5 >=r0)) //_LBB646_26 -{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r0; - _ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i7); -} - return; -} - -function _ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+8)]; - r3 = heap32[(fp)]; - heap32[(g0)] = r0; - r4 = r3 >> 2; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = heap32[(r4+2)]; -if(!(r2 <1)) //_LBB647_5 -{ - r2 = 0; -_3: while(true){ - r5 = heap32[(r4+4)]; - r6 = r2 << 2; - r5 = (r5 + r6)|0; - r5 = r5 >> 2; - r5 = heap32[(r5)]; - r6 = heapU8[r5+232]; - r6 = r6 & 2; -if(!(r6 ==0)) //_LBB647_4 -{ - r6 = r5 >> 2; - r7 = heap32[(r6)]; - r7 = r7 >> 2; - r7 = heap32[(r7+4)]; - heap32[(g0)] = r5; - __FUNCTION_TABLE__[(r7)>>2](i7); - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+4)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r8)>>2](i7); - r7 = r_g0; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r8 = r7 >> 2; - r6 = heap32[(r6+5)]; - r8 = heap32[(r8+2)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r0; - __FUNCTION_TABLE__[(r6)>>2](i7); - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+5)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r_g0; - heap32[(g0+3)] = 1497645650; - heap32[(g0+4)] = r5; - __FUNCTION_TABLE__[(r8)>>2](i7); -} - r2 = (r2 + 1)|0; - r5 = heap32[(r4+2)]; - if(r5 >r2) //_LBB647_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - r2 = heap32[(r4+47)]; -_9: do { -if(!(r2 <1)) //_LBB647_8 -{ - r2 = 0; -_11: while(true){ - r5 = r2 << 2; - r6 = heap32[(r4+49)]; - r5 = (r6 + r5)|0; - r5 = r5 >> 2; - r5 = heap32[(r5)]; - r6 = r5 >> 2; - r7 = heap32[(r6)]; - r7 = r7 >> 2; - r7 = heap32[(r7+9)]; - heap32[(g0)] = r5; - __FUNCTION_TABLE__[(r7)>>2](i7); - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+4)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r8)>>2](i7); - r7 = r_g0; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r8 = r7 >> 2; - r6 = heap32[(r6+10)]; - r8 = heap32[(r8+2)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r0; - __FUNCTION_TABLE__[(r6)>>2](i7); - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+5)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r_g0; - heap32[(g0+3)] = 1397641027; - heap32[(g0+4)] = r5; - r2 = (r2 + 1)|0; - __FUNCTION_TABLE__[(r8)>>2](i7); - r5 = heap32[(r4+47)]; - if(r5 >r2) //_LBB647_7 -{ -continue _11; -} -else{ -break _9; -} -} -} -} while(0); - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - _ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(i7); - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+9)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} - -function _ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+245]; -if(!(r1 ==0)) //_LBB648_3 -{ - r1 = r0 >> 2; - r1 = heap32[(r1+44)]; -if(!(r1 ==0)) //_LBB648_3 -{ - r2 = gNumAlignedFree; - r2 = r2 >> 2; - r3 = heap32[(r2)]; - r3 = (r3 + 1)|0; - r1 = r1 >> 2; - heap32[(r2)] = r3; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - r1 = heap32[(fp+1)]; - r2 = 0; - r3 = r0 >> 2; - heap8[r0+245] = r2; - heap32[(r3+44)] = r1; - return; -} - -function _ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = _2E_str87; - r1 = heap32[(fp)]; - heap32[(g0)] = r0; - r0 = r1 >> 2; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r1 = heap32[(r0+52)]; -if(!(r1 <1)) //_LBB649_5 -{ - f0 = heapFloat[(fp+1)]; - r1 = 0; -_3: while(true){ - r2 = heap32[(r0+54)]; - r3 = r1 << 2; - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r3 = heapU8[r2+204]; - r3 = r3 & 3; -if(!(r3 !=0)) //_LBB649_4 -{ - heap32[(g0)] = r2; - heapFloat[(g0+1)] = f0; - _ZN11btRigidBody19integrateVelocitiesEf(i7); - heap32[(g0)] = r2; - heapFloat[(g0+1)] = f0; - _ZN11btRigidBody12applyDampingEf(i7); - r3 = r2 >> 2; - f1 = heapFloat[(r3+76)]; - f2 = heapFloat[(r3+77)]; - f3 = heapFloat[(r3+78)]; - r3 = (r2 + 4)|0; - r4 = (r2 + 320)|0; - r2 = (r2 + 68)|0; - heap32[(g0)] = r3; - heapFloat[(g0+1)] = f1; - heapFloat[(g0+2)] = f2; - heapFloat[(g0+3)] = f3; - heap32[(g0+4)] = r4; - heapFloat[(g0+5)] = f0; - heap32[(g0+6)] = r2; - _ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7); -} - r1 = (r1 + 1)|0; - r2 = heap32[(r0+52)]; - if(r2 >r1) //_LBB649_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - r0 = _ZN15CProfileManager11CurrentNodeE; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r3 = (r3 + -1)|0; - heap32[(r2+4)] = r3; -_9: do { -if(!(r3 !=0)) //_LBB649_11 -{ - r3 = heap32[(r2+1)]; - if(r3 !=0) //_LBB649_8 -{ - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 * 1000000)|0; - r1 = (r1 + r3)|0; - r3 = heap32[(r2+3)]; - r1 = (r1 - r3)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r2+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r2+2)] = f0; - r1 = heap32[(r2+4)]; - if(r1 !=0) //_LBB649_11 -{ -break _9; -} -else{ - r1 = heap32[(r0)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r0)] = r1; -} -} while(0); - return; -} - -function _ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = _2E_str188; - r1 = heap32[(fp)]; - heap32[(g0)] = r0; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r0 = r1 >> 2; - r2 = heap32[(r0+45)]; - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+2)]; - r4 = heap32[(r0+6)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r4; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = heap32[(r0+47)]; -if(!(r2 <1)) //_LBB650_21 -{ - r3 = 0; -_3: while(true){ - r4 = heap32[(r0+49)]; - r5 = r3 << 2; - r4 = (r4 + r5)|0; - r4 = r4 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r5 = heap32[(r4+5)]; -_5: do { -if(!(r5 ==0)) //_LBB650_20 -{ - r6 = heapU8[r5+204]; - r6 = r6 & 3; -if(!(r6 !=0)) //_LBB650_20 -{ - r4 = heap32[(r4+6)]; -if(!(r4 ==0)) //_LBB650_20 -{ - r6 = heapU8[r4+204]; - r6 = r6 & 3; -if(!(r6 !=0)) //_LBB650_20 -{ - r5 = r5 >> 2; - r6 = heap32[(r5+54)]; - if(r6 ==2) //_LBB650_8 -{ -__label__ = 8; -} -else{ - if(r6 !=5) //_LBB650_10 -{ -__label__ = 10; -} -else{ -__label__ = 8; -} -} -if (__label__ == 8){ - r6 = r4 >> 2; - r6 = heap32[(r6+54)]; - if(r6 ==2) //_LBB650_20 -{ -break _5; -} -else{ - if(r6 ==5) //_LBB650_20 -{ -break _5; -} -} -} - r6 = heap32[(r0+45)]; - r5 = heap32[(r5+52)]; - r6 = r6 >> 2; - r7 = heap32[(r6+4)]; - r8 = r5 << 3; - r8 = (r7 + r8)|0; - r8 = r8 >> 2; - r4 = r4 >> 2; - r8 = heap32[(r8)]; - r4 = heap32[(r4+52)]; -if(!(r8 ==r5)) //_LBB650_12 -{ -_17: while(true){ - r8 = r8 << 3; - r5 = r5 << 3; - r8 = (r7 + r8)|0; - r5 = (r7 + r5)|0; - r7 = r8 >> 2; - r5 = r5 >> 2; - r8 = heap32[(r7)]; - heap32[(r5)] = r8; - r5 = heap32[(r7)]; - r7 = heap32[(r6+4)]; - r8 = r5 << 3; - r8 = (r7 + r8)|0; - r8 = r8 >> 2; - r8 = heap32[(r8)]; -if(!(r8 !=r5)) //_LBB650_13 -{ -break _17; -} -} -} - r8 = r4 << 3; - r8 = (r7 + r8)|0; - r8 = r8 >> 2; - r8 = heap32[(r8)]; -_20: do { -if(!(r8 ==r4)) //_LBB650_16 -{ -_21: while(true){ - r8 = r8 << 3; - r4 = r4 << 3; - r8 = (r7 + r8)|0; - r4 = (r7 + r4)|0; - r7 = r8 >> 2; - r4 = r4 >> 2; - r8 = heap32[(r7)]; - heap32[(r4)] = r8; - r4 = heap32[(r7)]; - r7 = heap32[(r6+4)]; - r8 = r4 << 3; - r8 = (r7 + r8)|0; - r8 = r8 >> 2; - r8 = heap32[(r8)]; -if(!(r8 !=r4)) //_LBB650_17 -{ -break _20; -} -} -} -} while(0); -if(!(r5 ==r4)) //_LBB650_20 -{ - r5 = r5 << 3; - r7 = (r7 + r5)|0; - r7 = r7 >> 2; - heap32[(r7)] = r4; - r6 = heap32[(r6+4)]; - r4 = r4 << 3; - r4 = (r6 + r4)|0; - r5 = (r6 + r5)|0; - r4 = r4 >> 2; - r5 = r5 >> 2; - r6 = heap32[(r4+1)]; - r5 = heap32[(r5+1)]; - r5 = (r5 + r6)|0; - heap32[(r4+1)] = r5; -} -} -} -} -} -} while(0); - r3 = (r3 + 1)|0; - if(r2 !=r3) //_LBB650_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - r0 = heap32[(r0+45)]; - r2 = r0 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - r0 = _ZN15CProfileManager11CurrentNodeE; - __FUNCTION_TABLE__[(r2)>>2](i7); - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r3 = (r3 + -1)|0; - heap32[(r2+4)] = r3; -_27: do { -if(!(r3 !=0)) //_LBB650_27 -{ - r3 = heap32[(r2+1)]; - if(r3 !=0) //_LBB650_24 -{ - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 * 1000000)|0; - r1 = (r1 + r3)|0; - r3 = heap32[(r2+3)]; - r1 = (r1 - r3)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r2+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r2+2)] = f0; - r1 = heap32[(r2+4)]; - if(r1 !=0) //_LBB650_27 -{ -break _27; -} -else{ - r1 = heap32[(r0)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r0)] = r1; -} -} while(0); - return; -} - -function _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; -var __label__ = 0; - i7 = sp + -48;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+14)]; - r3 = heap32[(r1+19)]; - r4 = (r3 + r2)|0; -if(!(r4 <1)) //_LBB651_2 -{ - r4 = heap32[(r1+2)]; - r5 = r4 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+3)]; - r6 = heap32[(r1+7)]; - r7 = heap32[(r1+6)]; - r8 = heap32[(r1+5)]; - r9 = heap32[(r1+1)]; - r10 = heap32[(r1+21)]; - r11 = heap32[(r1+16)]; - r12 = heap32[(r1+9)]; - r13 = heap32[(r1+11)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r13; - heap32[(g0+2)] = r12; - heap32[(g0+3)] = r11; - heap32[(g0+4)] = r2; - heap32[(g0+5)] = r10; - heap32[(g0+6)] = r3; - heap32[(g0+7)] = r9; - heap32[(g0+8)] = r8; - heap32[(g0+9)] = r7; - heap32[(g0+10)] = r6; - __FUNCTION_TABLE__[(r5)>>2](i7); -} - r2 = heap32[(r1+9)]; -if(!(r2 >-1)) //_LBB651_10 -{ - r3 = heap32[(r1+10)]; -if(!(r3 >-1)) //_LBB651_9 -{ - r3 = heap32[(r1+11)]; -if(!(r3 ==0)) //_LBB651_8 -{ - r4 = heapU8[r0+48]; -if(!(r4 ==0)) //_LBB651_7 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r1+11)] = 0; -} - r3 = 1; - heap8[r0+48] = r3; - heap32[(r1+11)] = 0; - heap32[(r1+10)] = 0; -} -_14: while(true){ - r3 = r2 << 2; - r4 = heap32[(r1+11)]; - r3 = (r4 + r3)|0; - r2 = (r2 + 1)|0; - r3 = r3 >> 2; - heap32[(r3)] = 0; - if(r2 !=0) //_LBB651_9 -{ -continue _14; -} -else{ -break _14; -} -} -} - heap32[(r1+9)] = 0; - r2 = heap32[(r1+14)]; -_17: do { -if(!(r2 >-1)) //_LBB651_18 -{ - r3 = heap32[(r1+15)]; -if(!(r3 >-1)) //_LBB651_17 -{ - r3 = heap32[(r1+16)]; -if(!(r3 ==0)) //_LBB651_16 -{ - r4 = heapU8[r0+68]; -if(!(r4 ==0)) //_LBB651_15 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r1+16)] = 0; -} - r3 = 1; - heap8[r0+68] = r3; - heap32[(r1+16)] = 0; - heap32[(r1+15)] = 0; -} -_27: while(true){ - r3 = r2 << 2; - r4 = heap32[(r1+16)]; - r3 = (r4 + r3)|0; - r2 = (r2 + 1)|0; - r3 = r3 >> 2; - heap32[(r3)] = 0; - if(r2 !=0) //_LBB651_17 -{ -continue _27; -} -else{ -break _17; -} -} -} -} while(0); - heap32[(r1+14)] = 0; - r2 = heap32[(r1+19)]; -_30: do { -if(!(r2 >-1)) //_LBB651_26 -{ - r3 = heap32[(r1+20)]; -if(!(r3 >-1)) //_LBB651_25 -{ - r3 = heap32[(r1+21)]; -if(!(r3 ==0)) //_LBB651_24 -{ - r4 = heapU8[r0+88]; -if(!(r4 ==0)) //_LBB651_23 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r1+21)] = 0; -} - r3 = 1; - heap8[r0+88] = r3; - heap32[(r1+21)] = 0; - heap32[(r1+20)] = 0; -} -_40: while(true){ - r0 = r2 << 2; - r3 = heap32[(r1+21)]; - r0 = (r3 + r0)|0; - r2 = (r2 + 1)|0; - r0 = r0 >> 2; - heap32[(r0)] = 0; - if(r2 !=0) //_LBB651_25 -{ -continue _40; -} -else{ -break _30; -} -} -} -} while(0); - heap32[(r1+19)] = 0; - return; -} - -function _ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+64)]; - r3 = heap32[(r1+63)]; - r4 = heap32[(fp+1)]; - if(r2 ==r3) //_LBB652_2 -{ - r5 = 1; - r6 = r3 << 1; - r6 = r3 == 0 ? r5 : r6; -if(!(r2 >=r6)) //_LBB652_1 -{ - if(r6 !=0) //_LBB652_5 -{ - r2 = gNumAlignedAllocs; - r2 = r2 >> 2; - r7 = heap32[(r2)]; - r8 = r6 << 2; - r7 = (r7 + 1)|0; - r8 = r8 | 3; - heap32[(r2)] = r7; - r2 = (r8 + 16)|0; - heap32[(g0)] = r2; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB652_7 -{ - r7 = 0; - r8 = (r2 + 4)|0; - r7 = (r7 - r8)|0; - r7 = r7 & 15; - r7 = (r2 + r7)|0; - r8 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r2; - r2 = r8; -} -} -else{ - r2 = 0; -} - r7 = (r0 + 260)|0; - if(r3 <1) //_LBB652_10 -{ - r8 = r7 >> 2; - r9 = heap32[(r8)]; -} -else{ - r8 = 0; -_12: while(true){ - r9 = r7 >> 2; - r9 = heap32[(r9)]; - r10 = r8 << 2; - r11 = (r9 + r10)|0; - r11 = r11 >> 2; - r10 = (r2 + r10)|0; - r11 = heap32[(r11)]; - r8 = (r8 + 1)|0; - r10 = r10 >> 2; - heap32[(r10)] = r11; -if(!(r3 !=r8)) //_LBB652_11 -{ -break _12; -} -} - r7 = (r0 + 260)|0; -} - if(r9 !=0) //_LBB652_15 -{ - r8 = heapU8[r0+264]; - if(r8 !=0) //_LBB652_17 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r8 = heap32[(r3)]; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r3)] = r8; - r3 = heap32[(r9+-1)]; - heap32[(g0)] = r3; - free(i7); - r3 = heap32[(r1+63)]; -} - r8 = r7 >> 2; - heap32[(r8)] = 0; -} - r7 = r7 >> 2; - heap8[r0+264] = r5; - heap32[(r7)] = r2; - heap32[(r1+64)] = r6; -} -} - r0 = r3 << 2; - r2 = heap32[(r1+65)]; - r0 = (r2 + r0)|0; - r0 = r0 >> 2; - heap32[(r0)] = r4; - r0 = heap32[(r1+63)]; - r0 = (r0 + 1)|0; - heap32[(r1+63)] = r0; - return; -} - -function _ZN23btDiscreteDynamicsWorld19integrateTransformsEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; -var __label__ = 0; - i7 = sp + -264;var g0 = i7>>2; // save stack - r0 = _2E_str794; - r1 = heap32[(fp)]; - heap32[(g0)] = r0; - r0 = r1 >> 2; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r2 = heap32[(r0+52)]; -if(!(r2 <1)) //_LBB653_19 -{ - f0 = heapFloat[(fp+1)]; - r2 = 0; - r15 = -1; -_3: while(true){ - r3 = heap32[(r0+54)]; - r4 = r2 << 2; - r3 = (r3 + r4)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r4 = r3 >> 2; - heap32[(r4+60)] = 1065353216; - r5 = heap32[(r4+54)]; -if(!(r5 ==2)) //_LBB653_18 -{ -if(!(r5 ==5)) //_LBB653_18 -{ - r5 = heapU8[r3+204]; - r5 = r5 & 3; -if(!(r5 !=0)) //_LBB653_18 -{ - f1 = heapFloat[(r4+76)]; - f2 = heapFloat[(r4+77)]; - f3 = heapFloat[(r4+78)]; - r5 = (r3 + 320)|0; - r6 = (r3 + 4)|0; - r7 = sp + -80; - heap32[(g0)] = r6; - heapFloat[(g0+1)] = f1; - heapFloat[(g0+2)] = f2; - heapFloat[(g0+3)] = f3; - heap32[(g0+4)] = r5; - heapFloat[(g0+5)] = f0; - heap32[(g0+6)] = r7; - _ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7); - f1 = heapFloat[(r4+62)]; - f1 = f1*f1; - f2 = 0; -_9: do { -if(!(f1 ==f2)) //_LBB653_17 -{ - r8 = r7 >> 2; - f2 = heapFloat[(r8+14)]; - f3 = heapFloat[(r4+15)]; - f4 = heapFloat[(r8+13)]; - f5 = heapFloat[(r4+14)]; - f6 = heapFloat[(r8+12)]; - f7 = heapFloat[(r4+13)]; - f2 = f2-f3; - f3 = f4-f5; - f4 = f6-f7; - f4 = f4*f4; - f3 = f3*f3; - f3 = f4+f3; - f2 = f2*f2; - f2 = f3+f2; -if(!(f1 >=f2)) //_LBB653_17 -{ - r9 = _2E_str895; - heap32[(g0)] = r9; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r9 = heap32[(r4+48)]; - r9 = r9 >> 2; - r9 = heap32[(r9+1)]; -if(!(r9 >19)) //_LBB653_11 -{ - r9 = gNumClampedCcdMotions; - r9 = r9 >> 2; - r10 = heap32[(r9)]; - r10 = (r10 + 1)|0; - heap32[(r9)] = r10; - r9 = heap32[(r0+20)]; - r10 = r9 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+9)]; - r11 = heap32[(r0+6)]; - r12 = sp + -176; - heap32[(g0)] = r9; - r9 = r12 >> 2; - __FUNCTION_TABLE__[(r10)>>2](i7); - r13 = 1; - heap32[(r9+1)] = 1065353216; - r14 = _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE; - heap16[(sp+-168)>>1] = r13; - r13 = (r14 + 8)|0; - heap16[(sp+-166)>>1] = r15; - heap32[(fp+-44)] = r13; - heap32[(r9+3)] = heap32[(r4+13)]; - heap32[(r9+4)] = heap32[(r4+14)]; - heap32[(r9+5)] = heap32[(r4+15)]; - heap32[(r9+6)] = heap32[(r4+16)]; - heap32[(r9+7)] = heap32[(r8+12)]; - heap32[(r9+8)] = heap32[(r8+13)]; - heap32[(r9+9)] = heap32[(r8+14)]; - r14 = _ZTV34btClosestNotMeConvexResultCallback; - heap32[(r9+10)] = heap32[(r8+15)]; - r8 = (r14 + 8)|0; - heap32[(r9+19)] = 0; - heap32[(fp+-44)] = r8; - heap32[(r9+20)] = r3; - heap32[(r9+21)] = 0; - heap32[(r9+22)] = r_g0; - r8 = sp + -232; - heap32[(r9+23)] = r11; - r10 = r8 >> 2; - f1 = heapFloat[(r4+61)]; - heap32[(r10+2)] = 0; - heap32[(r10+3)] = 1065353216; - heap32[(r10+4)] = 1065353216; - r11 = _ZTV13btSphereShape; - heap32[(r10+5)] = 1065353216; - r11 = (r11 + 8)|0; - heap32[(r10+6)] = 0; - heap32[(fp+-58)] = r11; - heap32[(r10+1)] = 8; - heapFloat[(r10+7)] = f1; - heapFloat[(r10+11)] = f1; - r10 = heap32[(r4+47)]; - r10 = heapU16[(r10+4)>>1]; - heap16[(sp+-168)>>1] = r10; - r10 = heap32[(r4+47)]; - r10 = heapU16[(r10+6)>>1]; - heap16[(sp+-166)>>1] = r10; - heap32[(g0)] = r1; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = r12; - heap32[(g0+5)] = 0; - _ZNK16btCollisionWorld15convexSweepTestEPK13btConvexShapeRK11btTransformS5_RNS_20ConvexResultCallbackEf(i7); - f1 = heapFloat[(r9+1)]; - f2 = 1; -if(!(f1 >=f2)) //_LBB653_10 -{ - heapFloat[(r4+60)] = f1; - f2 = heapFloat[(r4+76)]; - f3 = heapFloat[(r4+77)]; - f4 = heapFloat[(r4+78)]; - f1 = f1*f0; - heap32[(g0)] = r6; - heapFloat[(g0+1)] = f2; - heapFloat[(g0+2)] = f3; - heapFloat[(g0+3)] = f4; - heap32[(g0+4)] = r5; - heapFloat[(g0+5)] = f1; - heap32[(g0+6)] = r7; - _ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7); - heap32[(r4+60)] = 0; -} - r4 = _ZTV13btConvexShape; - r4 = (r4 + 8)|0; - heap32[(fp+-58)] = r4; - heap32[(fp+-44)] = r13; -} - r4 = _ZN15CProfileManager11CurrentNodeE; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r6 = r5 >> 2; - r8 = heap32[(r6+4)]; - r8 = (r8 + -1)|0; - heap32[(r6+4)] = r8; -if(!(r8 !=0)) //_LBB653_17 -{ - r8 = heap32[(r6+1)]; - if(r8 !=0) //_LBB653_14 -{ - r5 = sp + -8; - heap32[(g0)] = r5; - heap32[(g0+1)] = 0; - r8 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r8 = r8 >> 2; - r8 = heap32[(r8)]; - r8 = r8 >> 2; - r5 = r5 >> 2; - r9 = heap32[(fp+-2)]; - r10 = heap32[(r8)]; - r9 = (r9 - r10)|0; - r5 = heap32[(r5+1)]; - r8 = heap32[(r8+1)]; - r5 = (r5 - r8)|0; - r8 = (r9 * 1000000)|0; - r5 = (r5 + r8)|0; - r8 = heap32[(r6+3)]; - r5 = (r5 - r8)|0; - f1 = uint(r5); //fuitos r5, f1 - f2 = 1000; - f3 = heapFloat[(r6+2)]; - f1 = f1/f2; - f1 = f3+f1; - heapFloat[(r6+2)] = f1; - r5 = heap32[(r6+4)]; - if(r5 !=0) //_LBB653_17 -{ -break _9; -} -else{ - r5 = heap32[(r4)]; -} -} - r5 = r5 >> 2; - r5 = heap32[(r5+5)]; - heap32[(r4)] = r5; -} -} -} -} while(0); - heap32[(g0)] = r3; - heap32[(g0+1)] = r7; - _ZN11btRigidBody18proceedToTransformERK11btTransform(i7); -} -} -} - r2 = (r2 + 1)|0; - r3 = heap32[(r0+52)]; - if(r3 >r2) //_LBB653_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - r0 = _ZN15CProfileManager11CurrentNodeE; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r3 = (r3 + -1)|0; - heap32[(r2+4)] = r3; -_26: do { -if(!(r3 !=0)) //_LBB653_25 -{ - r3 = heap32[(r2+1)]; - if(r3 !=0) //_LBB653_22 -{ - r1 = sp + -16; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-4)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 * 1000000)|0; - r1 = (r1 + r3)|0; - r3 = heap32[(r2+3)]; - r1 = (r1 - r3)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r2+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r2+2)] = f0; - r1 = heap32[(r2+4)]; - if(r1 !=0) //_LBB653_25 -{ -break _26; -} -else{ - r1 = heap32[(r0)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r0)] = r1; -} -} while(0); - return; -} - -function _ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; - var r24; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -168;var g0 = i7>>2; // save stack - r0 = _2E_str996; - heap32[(g0)] = r0; - r0 = sp + -48; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r1 = 1; - r2 = r0 >> 2; - heap8[sp+-32] = r1; - heap32[(r2+3)] = 0; - r3 = heap32[(fp)]; - heap32[(r2+1)] = 0; - r4 = r3 >> 2; - heap32[(r2+2)] = 0; - r5 = heap32[(r4+47)]; -if(!(r5 <1)) //_LBB654_7 -{ - r6 = gNumAlignedAllocs; - r6 = r6 >> 2; - r7 = heap32[(r6)]; - r8 = r5 << 2; - r7 = (r7 + 1)|0; - r8 = r8 | 3; - heap32[(r6)] = r7; - r6 = (r8 + 16)|0; - heap32[(g0)] = r6; - malloc(i7); - r6 = r_g0; - if(r6 !=0) //_LBB654_3 -{ - r7 = 0; - r8 = (r6 + 4)|0; - r7 = (r7 - r8)|0; - r7 = r7 & 15; - r7 = (r6 + r7)|0; - r8 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r6; - r6 = r8; -} - r7 = 1; - heap8[sp+-32] = r7; - r7 = (r7 - r5)|0; - r8 = 0; - heap32[(r2+3)] = r6; - heap32[(r2+2)] = r5; -_6: while(true){ - r9 = r8 << 2; - r6 = (r6 - r9)|0; - r6 = r6 >> 2; - heap32[(r6)] = 0; - if(r7 ==r8) //_LBB654_7 -{ -break _6; -} -else{ - r6 = heap32[(r2+3)]; - r8 = (r8 + -1)|0; -continue _6; -} -} -} - heap32[(r2+1)] = r5; - r5 = heap32[(r4)]; - r5 = r5 >> 2; - r5 = heap32[(r5+24)]; - heap32[(g0)] = r3; - __FUNCTION_TABLE__[(r5)>>2](i7); - r5 = r_g0; -_10: do { -if(!(r5 <1)) //_LBB654_10 -{ - r5 = 0; -_12: while(true){ - r6 = r5 << 2; - r7 = heap32[(r4+49)]; - r7 = (r7 + r6)|0; - r7 = r7 >> 2; - r8 = heap32[(r2+3)]; - r6 = (r8 + r6)|0; - r7 = heap32[(r7)]; - r6 = r6 >> 2; - heap32[(r6)] = r7; - r6 = heap32[(r4)]; - r6 = r6 >> 2; - r6 = heap32[(r6+24)]; - r5 = (r5 + 1)|0; - heap32[(g0)] = r3; - __FUNCTION_TABLE__[(r6)>>2](i7); - r6 = r_g0; - if(r6 >r5) //_LBB654_9 -{ -continue _12; -} -else{ -break _10; -} -} -} -} while(0); - r5 = heap32[(r2+1)]; -if(!(r5 <2)) //_LBB654_12 -{ - r5 = (r5 + -1)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r5; - _ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i7); -} - r0 = heap32[(fp+1)]; - r5 = heap32[(r4)]; - r5 = r5 >> 2; - r5 = heap32[(r5+24)]; - heap32[(g0)] = r3; - __FUNCTION_TABLE__[(r5)>>2](i7); - r3 = r_g0; - if(r3 !=0) //_LBB654_14 -{ - r3 = heap32[(r2+3)]; -} -else{ - r3 = 0; -} - r5 = heap32[(r4+6)]; - r6 = heap32[(r4+44)]; - r7 = _ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback; - r8 = heap32[(r4+19)]; - r9 = heap32[(r4+21)]; - r10 = heap32[(r2+1)]; - r11 = sp + -144; - r7 = (r7 + 8)|0; - r12 = r11 >> 2; - heap32[(fp+-36)] = r7; - heap32[(r12+1)] = r0; - heap32[(r12+2)] = r6; - heap32[(r12+3)] = r3; - heap32[(r12+4)] = r10; - heap32[(r12+5)] = r9; - heap32[(r12+6)] = r8; - heap32[(r12+7)] = r5; - heap8[sp+-96] = r1; - heap32[(r12+11)] = 0; - heap32[(r12+9)] = 0; - heap32[(r12+10)] = 0; - heap8[sp+-76] = r1; - heap32[(r12+16)] = 0; - heap32[(r12+14)] = 0; - heap32[(r12+15)] = 0; - heap8[sp+-56] = r1; - heap32[(r12+21)] = 0; - heap32[(r12+19)] = 0; - r3 = r6 >> 2; - heap32[(r12+20)] = 0; - r6 = r5 >> 2; - r3 = heap32[(r3)]; - r6 = heap32[(r6)]; - r3 = r3 >> 2; - r6 = r6 >> 2; - r3 = heap32[(r3+2)]; - r6 = heap32[(r6+9)]; - heap32[(g0)] = r5; - __FUNCTION_TABLE__[(r6)>>2](i7); - r6 = heap32[(r4+2)]; - r8 = heap32[(r4+44)]; - heap32[(g0)] = r8; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r_g0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = heap32[(r4+45)]; - r5 = heap32[(r4+6)]; - r6 = _2E_str155; - heap32[(g0)] = r6; - r6 = r3 >> 2; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r8 = heap32[(r6+7)]; -_22: do { -if(!(r8 >-1)) //_LBB654_23 -{ - r9 = heap32[(r6+8)]; -if(!(r9 >-1)) //_LBB654_22 -{ - r9 = heap32[(r6+9)]; -if(!(r9 ==0)) //_LBB654_21 -{ - r10 = heapU8[r3+40]; -if(!(r10 ==0)) //_LBB654_20 -{ - r10 = gNumAlignedFree; - r10 = r10 >> 2; - r13 = heap32[(r10)]; - r13 = (r13 + 1)|0; - r9 = r9 >> 2; - heap32[(r10)] = r13; - r9 = heap32[(r9+-1)]; - heap32[(g0)] = r9; - free(i7); -} - heap32[(r6+9)] = 0; -} - r9 = 1; - heap8[r3+40] = r9; - heap32[(r6+9)] = 0; - heap32[(r6+8)] = 0; -} -_32: while(true){ - r9 = r8 << 2; - r10 = heap32[(r6+9)]; - r9 = (r10 + r9)|0; - r8 = (r8 + 1)|0; - r9 = r9 >> 2; - heap32[(r9)] = 0; - if(r8 !=0) //_LBB654_22 -{ -continue _32; -} -else{ -break _22; -} -} -} -} while(0); - heap32[(r6+7)] = 0; - r8 = heap32[(r6+2)]; - if(r8 >0) //_LBB654_25 -{ - r9 = 0; -_37: while(true){ - r10 = heap32[(r6+4)]; - r13 = r9 << 3; - r13 = (r10 + r13)|0; - r13 = r13 >> 2; - r13 = heap32[(r13)]; - r14 = r9 << 1; - if(r9 ==r13) //_LBB654_28 -{ - r16 = r9; -} -else{ - r15 = r10; - r16 = r9; -_42: while(true){ - r13 = r13 << 3; - r16 = r16 << 3; - r13 = (r15 + r13)|0; - r15 = (r15 + r16)|0; - r13 = r13 >> 2; - r15 = r15 >> 2; - r16 = heap32[(r13)]; - heap32[(r15)] = r16; - r16 = heap32[(r13)]; - r15 = heap32[(r6+4)]; - r13 = r16 << 3; - r13 = (r15 + r13)|0; - r13 = r13 >> 2; - r13 = heap32[(r13)]; -if(!(r13 !=r16)) //_LBB654_29 -{ -break _42; -} -} -} - r13 = r14 << 2; - r10 = (r10 + r13)|0; - r9 = (r9 + 1)|0; - r10 = r10 >> 2; - heap32[(r10)] = r16; -if(!(r8 !=r9)) //_LBB654_26 -{ -break _37; -} -} - r8 = heap32[(r6+2)]; - if(r8 >1) //_LBB654_33 -{ - r9 = (r3 + 4)|0; - r8 = (r8 + -1)|0; - heap32[(g0)] = r9; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r8; - _ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i7); - r8 = heap32[(r6+2)]; -} -} - r9 = 0; -_48: while(true){ - r10 = r9; - if(r10 > 2; - r14 = heap32[(r9)]; - r15 = (r10 + 1)|0; -_51: while(true){ - r9 = r15; - if(r9 >=r8) //_LBB654_46 -{ -break _51; -} -else{ - r15 = r9 << 3; - r15 = (r13 + r15)|0; - r16 = r15 >> 2; - r15 = (r9 + 1)|0; - r16 = heap32[(r16)]; -if(!(r16 ==r14)) //_LBB654_36 -{ -break _51; -} -} -} - r16 = 1; - r15 = r10; -_55: while(true){ - if(r15 > 2; - r17 = heap32[(r17+1)]; - r18 = heap32[(r4+4)]; - r17 = r17 << 2; - r17 = (r18 + r17)|0; - r17 = r17 >> 2; - r17 = heap32[(r17)]; - r17 = r17 >> 2; - r18 = heap32[(r17+52)]; - if(r18 ==r14) //_LBB654_42 -{ - r17 = heap32[(r17+54)]; - r18 = 0; - if(r17 ==4) //_LBB654_44 -{ - r16 = r18; -} -else{ - r16 = r17 == 1 ? r18 : r16; -} -} -else{ - if(r18 !=-1) //_LBB654_41 -{ -__label__ = 37; -break _48; -} -} - r15 = (r15 + 1)|0; -} -else{ -break _55; -} -} - r13 = r16 & 255; - if(r13 ==0) //_LBB654_50 -{ -_67: while(true){ - if(r10 > 2; - r13 = heap32[(r13+1)]; - r15 = heap32[(r4+4)]; - r13 = r13 << 2; - r13 = (r15 + r13)|0; - r13 = r13 >> 2; - r13 = heap32[(r13)]; - r13 = r13 >> 2; - r15 = heap32[(r13+52)]; - if(r15 ==r14) //_LBB654_61 -{ - r15 = heap32[(r13+54)]; -if(!(r15 !=2)) //_LBB654_63 -{ - heap32[(r13+54)] = 3; - heap32[(r13+55)] = 0; -} -} -else{ -if(!(r15 ==-1)) //_LBB654_63 -{ -__label__ = 54; -break _48; -} -} - r10 = (r10 + 1)|0; -continue _67; -} -else{ -continue _48; -} -} -} -else{ -_75: while(true){ - if(r10 > 2; - r13 = heap32[(r13+1)]; - r15 = heap32[(r4+4)]; - r13 = r13 << 2; - r13 = (r15 + r13)|0; - r13 = r13 >> 2; - r13 = heap32[(r13)]; - r13 = r13 >> 2; - r15 = heap32[(r13+52)]; - if(r15 ==r14) //_LBB654_54 -{ - r15 = heap32[(r13+54)]; - r15 = (r15 + -4)|0; -if(!(uint(r15) > 2; - r9 = heap32[(r8)]; - r9 = r9 >> 2; - r9 = heap32[(r9+9)]; - heap32[(g0)] = r5; - __FUNCTION_TABLE__[(r9)>>2](i7); - r9 = r_g0; -_87: do { -if(!(r9 <1)) //_LBB654_104 -{ - r10 = 0; -_89: while(true){ - r13 = heap32[(r8)]; - r13 = r13 >> 2; - r13 = heap32[(r13+10)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r10; - __FUNCTION_TABLE__[(r13)>>2](i7); - r13 = r_g0; - r14 = r13 >> 2; - r15 = heap32[(r14+277)]; - r14 = heap32[(r14+278)]; - if(r15 ==0) //_LBB654_70 -{ -__label__ = 64; -} -else{ - r16 = r15 >> 2; - r16 = heap32[(r16+54)]; - if(r16 !=2) //_LBB654_72 -{ -__label__ = 66; -} -else{ -__label__ = 64; -} -} -if (__label__ == 64){ - if(r14 ==0) //_LBB654_103 -{ -__label__ = 95; -} -else{ - r16 = r14 >> 2; - r16 = heap32[(r16+54)]; - if(r16 ==2) //_LBB654_103 -{ -__label__ = 95; -} -else{ -__label__ = 66; -} -} -} -if (__label__ == 66){ - r16 = heapU8[r15+204]; - r16 = r16 & 2; -if(!(r16 ==0)) //_LBB654_78 -{ - r16 = r15 >> 2; - r16 = heap32[(r16+54)]; -if(!(r16 ==2)) //_LBB654_78 -{ - r16 = heapU8[r14+204]; - r16 = r16 & 3; -if(!(r16 !=0)) //_LBB654_78 -{ - r16 = r14 >> 2; - r17 = heap32[(r16+54)]; - r17 = (r17 + -4)|0; -if(!(uint(r17) > 2; - r16 = heap32[(r16+54)]; -if(!(r16 ==2)) //_LBB654_84 -{ - r16 = heapU8[r15+204]; - r16 = r16 & 3; -if(!(r16 !=0)) //_LBB654_84 -{ - r16 = r15 >> 2; - r17 = heap32[(r16+54)]; - r17 = (r17 + -4)|0; -if(!(uint(r17) > 2; - r16 = heap32[(r16+7)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r15; - heap32[(g0+2)] = r14; - __FUNCTION_TABLE__[(r16)>>2](i7); - r14 = r_g0; -if(!(r14 ==0)) //_LBB654_103 -{ - r14 = heap32[(r6+8)]; - r15 = heap32[(r6+7)]; - if(r14 ==r15) //_LBB654_88 -{ - r16 = 1; - r17 = r15 << 1; - r17 = r15 == 0 ? r16 : r17; -if(!(r14 >=r17)) //_LBB654_87 -{ - if(r17 !=0) //_LBB654_91 -{ - r14 = gNumAlignedAllocs; - r14 = r14 >> 2; - r18 = heap32[(r14)]; - r19 = r17 << 2; - r18 = (r18 + 1)|0; - r19 = r19 | 3; - heap32[(r14)] = r18; - r14 = (r19 + 16)|0; - heap32[(g0)] = r14; - malloc(i7); - r14 = r_g0; - if(r14 !=0) //_LBB654_93 -{ - r15 = 0; - r18 = (r14 + 4)|0; - r15 = (r15 - r18)|0; - r15 = r15 & 15; - r15 = (r14 + r15)|0; - r18 = r15 >> 2; - heap32[(r18)] = r14; - r14 = (r15 + 4)|0; - r15 = heap32[(r6+7)]; -} -} -else{ - r14 = 0; -} -if(!(r15 <1)) //_LBB654_97 -{ - r18 = 0; -_126: while(true){ - r19 = r18 << 2; - r20 = heap32[(r6+9)]; - r20 = (r20 + r19)|0; - r20 = r20 >> 2; - r19 = (r14 + r19)|0; - r20 = heap32[(r20)]; - r18 = (r18 + 1)|0; - r19 = r19 >> 2; - heap32[(r19)] = r20; -if(!(r15 !=r18)) //_LBB654_96 -{ -break _126; -} -} -} - r15 = heap32[(r6+9)]; -if(!(r15 ==0)) //_LBB654_101 -{ - r18 = heapU8[r3+40]; -if(!(r18 ==0)) //_LBB654_100 -{ - r18 = gNumAlignedFree; - r18 = r18 >> 2; - r19 = heap32[(r18)]; - r19 = (r19 + 1)|0; - r15 = r15 >> 2; - heap32[(r18)] = r19; - r15 = heap32[(r15+-1)]; - heap32[(g0)] = r15; - free(i7); -} - heap32[(r6+9)] = 0; -} - heap8[r3+40] = r16; - heap32[(r6+9)] = r14; - heap32[(r6+8)] = r17; - r15 = heap32[(r6+7)]; -} -} - r14 = r15 << 2; - r15 = heap32[(r6+9)]; - r14 = (r15 + r14)|0; - r14 = r14 >> 2; - heap32[(r14)] = r13; - r13 = heap32[(r6+7)]; - r13 = (r13 + 1)|0; - heap32[(r6+7)] = r13; -} -} -} - r10 = (r10 + 1)|0; - if(r9 !=r10) //_LBB654_68 -{ -continue _89; -} -else{ -break _87; -} -} -} -} while(0); - r9 = _ZN15CProfileManager11CurrentNodeE; - r9 = r9 >> 2; - r10 = heap32[(r9)]; - r13 = r10 >> 2; - r14 = heap32[(r13+4)]; - r14 = (r14 + -1)|0; - heap32[(r13+4)] = r14; -_138: do { -if(!(r14 !=0)) //_LBB654_110 -{ - r14 = heap32[(r13+1)]; - if(r14 !=0) //_LBB654_107 -{ - r10 = sp + -24; - heap32[(g0)] = r10; - heap32[(g0+1)] = 0; - r14 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r14 = r14 >> 2; - r14 = heap32[(r14)]; - r14 = r14 >> 2; - r10 = r10 >> 2; - r15 = heap32[(fp+-6)]; - r16 = heap32[(r14)]; - r15 = (r15 - r16)|0; - r10 = heap32[(r10+1)]; - r14 = heap32[(r14+1)]; - r10 = (r10 - r14)|0; - r14 = (r15 * 1000000)|0; - r10 = (r10 + r14)|0; - r14 = heap32[(r13+3)]; - r10 = (r10 - r14)|0; - f0 = uint(r10); //fuitos r10, f0 - f1 = 1000; - f2 = heapFloat[(r13+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r13+2)] = f0; - r10 = heap32[(r13+4)]; - if(r10 !=0) //_LBB654_110 -{ -break _138; -} -else{ - r10 = heap32[(r9)]; -} -} - r10 = r10 >> 2; - r10 = heap32[(r10+5)]; - heap32[(r9)] = r10; -} -} while(0); - r10 = heap32[(r6+2)]; - r13 = _2E_str3158; - heap32[(g0)] = r13; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r13 = heapU8[r3+64]; -_145: do { - if(r13 !=0) //_LBB654_112 -{ - r5 = heap32[(r6+7)]; -if(!(r5 <2)) //_LBB654_114 -{ - r8 = (r3 + 24)|0; - r13 = (r5 + -1)|0; - heap32[(g0)] = r8; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r13; - _ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i7); -} -if(!(r10 <1)) //_LBB654_163 -{ - r8 = 0; - r13 = r8; - r14 = r8; -_151: while(true){ - r15 = heap32[(r6+4)]; - r16 = r14 << 3; - r15 = (r15 + r16)|0; - r15 = r15 >> 2; - r15 = heap32[(r15)]; - r16 = r8; -_153: while(true){ - if(r14 >=r10) //_LBB654_139 -{ -break _153; -} -else{ - r17 = heap32[(r6+4)]; - r18 = r14 << 3; - r17 = (r17 + r18)|0; - r17 = r17 >> 2; - r18 = heap32[(r17)]; - if(r18 ==r15) //_LBB654_117 -{ - r17 = heap32[(r17+1)]; - r18 = heap32[(r4+4)]; - r17 = r17 << 2; - r17 = (r18 + r17)|0; - r17 = r17 >> 2; - r18 = heap32[(r6+13)]; - r19 = heap32[(r6+12)]; - r17 = heap32[(r17)]; - if(r18 ==r19) //_LBB654_119 -{ - r20 = 1; - r21 = r19 << 1; - r21 = r19 == 0 ? r20 : r21; -if(!(r18 >=r21)) //_LBB654_118 -{ - if(r21 !=0) //_LBB654_122 -{ - r18 = gNumAlignedAllocs; - r18 = r18 >> 2; - r22 = heap32[(r18)]; - r23 = r21 << 2; - r22 = (r22 + 1)|0; - r23 = r23 | 3; - heap32[(r18)] = r22; - r18 = (r23 + 16)|0; - heap32[(g0)] = r18; - malloc(i7); - r18 = r_g0; - if(r18 !=0) //_LBB654_124 -{ - r19 = 0; - r22 = (r18 + 4)|0; - r19 = (r19 - r22)|0; - r19 = r19 & 15; - r19 = (r18 + r19)|0; - r22 = r19 >> 2; - heap32[(r22)] = r18; - r18 = (r19 + 4)|0; - r19 = heap32[(r6+12)]; -} -} -else{ - r18 = 0; -} -if(!(r19 <1)) //_LBB654_128 -{ - r22 = 0; -_167: while(true){ - r23 = r22 << 2; - r24 = heap32[(r6+14)]; - r24 = (r24 + r23)|0; - r24 = r24 >> 2; - r23 = (r18 + r23)|0; - r24 = heap32[(r24)]; - r22 = (r22 + 1)|0; - r23 = r23 >> 2; - heap32[(r23)] = r24; -if(!(r19 !=r22)) //_LBB654_127 -{ -break _167; -} -} -} - r19 = heap32[(r6+14)]; -if(!(r19 ==0)) //_LBB654_132 -{ - r22 = heapU8[r3+60]; -if(!(r22 ==0)) //_LBB654_131 -{ - r22 = gNumAlignedFree; - r22 = r22 >> 2; - r23 = heap32[(r22)]; - r23 = (r23 + 1)|0; - r19 = r19 >> 2; - heap32[(r22)] = r23; - r19 = heap32[(r19+-1)]; - heap32[(g0)] = r19; - free(i7); -} - heap32[(r6+14)] = 0; -} - heap8[r3+60] = r20; - heap32[(r6+14)] = r18; - heap32[(r6+13)] = r21; - r19 = heap32[(r6+12)]; -} -} - r18 = r19 << 2; - r19 = heap32[(r6+14)]; - r18 = (r19 + r18)|0; - r18 = r18 >> 2; - heap32[(r18)] = r17; - r18 = heap32[(r6+12)]; - r18 = (r18 + 1)|0; - r17 = r17 >> 2; - heap32[(r6+12)] = r18; - r17 = heap32[(r17+54)]; - if(r17 !=2) //_LBB654_135 -{ - r18 = 1; - r16 = r17 == 5 ? r18 : r16; -} -else{ - r16 = 1; -} - r14 = (r14 + 1)|0; -} -else{ -break _153; -} -} -} -_182: do { - if(r13 > 2; - r20 = heap32[(r20)]; - r20 = r20 >> 2; - r21 = heap32[(r20+277)]; - r21 = r21 >> 2; - r21 = heap32[(r21+52)]; - if(r21 <0) //_LBB654_143 -{ - r21 = heap32[(r20+278)]; - r21 = r21 >> 2; - r21 = heap32[(r21+52)]; -} - if(r21 !=r15) //_LBB654_140 -{ -__label__ = 129; -} -else{ - r19 = (r17 + r19)|0; - r20 = 1; -_188: while(true){ - r17 = r20; - r1 = (r13 + r17)|0; - if(r1 >=r5) //_LBB654_151 -{ -__label__ = 138; -break _182; -} -else{ - r20 = r17 << 2; - r20 = (r19 + r20)|0; - r20 = r20 >> 2; - r20 = heap32[(r20)]; - r20 = r20 >> 2; - r21 = heap32[(r20+277)]; - r21 = r21 >> 2; - r21 = heap32[(r21+52)]; - if(r21 <0) //_LBB654_149 -{ - r20 = heap32[(r20+278)]; - r20 = r20 >> 2; - r21 = heap32[(r20+52)]; -} - r20 = (r17 + 1)|0; -if(!(r21 ==r15)) //_LBB654_146 -{ -__label__ = 138; -break _182; -} -} -} -} -} -else{ -__label__ = 129; -} -} while(0); -if (__label__ == 129){ - r17 = 0; - r18 = r17; -} - r16 = r16 & 255; -if(!(r16 !=0)) //_LBB654_153 -{ - r16 = heap32[(fp+-36)]; - r16 = r16 >> 2; - r16 = heap32[(r16+2)]; - r19 = heap32[(r6+12)]; - r20 = heap32[(r6+14)]; - heap32[(g0)] = r11; - heap32[(g0+1)] = r20; - heap32[(g0+2)] = r19; - heap32[(g0+3)] = r18; - heap32[(g0+4)] = r17; - heap32[(g0+5)] = r15; - __FUNCTION_TABLE__[(r16)>>2](i7); -} - r15 = heap32[(r6+12)]; -_200: do { -if(!(r15 >-1)) //_LBB654_162 -{ - r16 = heap32[(r6+13)]; - if(r16 <0) //_LBB654_156 -{ - r16 = heap32[(r6+14)]; -if(!(r16 ==0)) //_LBB654_160 -{ - r18 = heapU8[r3+60]; -if(!(r18 ==0)) //_LBB654_159 -{ - r18 = gNumAlignedFree; - r18 = r18 >> 2; - r19 = heap32[(r18)]; - r19 = (r19 + 1)|0; - r16 = r16 >> 2; - heap32[(r18)] = r19; - r16 = heap32[(r16+-1)]; - heap32[(g0)] = r16; - free(i7); -} - heap32[(r6+14)] = 0; -} - r16 = 1; - heap8[r3+60] = r16; - heap32[(r6+14)] = 0; - heap32[(r6+13)] = 0; -} -_210: while(true){ - r16 = r15 << 2; - r18 = heap32[(r6+14)]; - r16 = (r18 + r16)|0; - r15 = (r15 + 1)|0; - r16 = r16 >> 2; - heap32[(r16)] = 0; -if(!(r15 !=0)) //_LBB654_161 -{ -break _200; -} -} -} -} while(0); - r13 = r17 == 0 ? r13 : r1; - heap32[(r6+12)] = 0; - if(r14 > 2; - r1 = heap32[(r1+11)]; - heap32[(g0)] = r5; - __FUNCTION_TABLE__[(r1)>>2](i7); - r1 = r_g0; - r3 = heap32[(r8)]; - r3 = r3 >> 2; - r3 = heap32[(r3+9)]; - heap32[(g0)] = r5; - __FUNCTION_TABLE__[(r3)>>2](i7); - r6 = heap32[(fp+-36)]; - r6 = r6 >> 2; - r6 = heap32[(r6+2)]; - r10 = heap32[(r4+2)]; - r5 = heap32[(r4+4)]; - heap32[(g0)] = r11; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r1; - heap32[(g0+4)] = r_g0; - heap32[(g0+5)] = -1; - __FUNCTION_TABLE__[(r6)>>2](i7); -} -} while(0); - r1 = heap32[(r9)]; - r3 = r1 >> 2; - r5 = heap32[(r3+4)]; - r5 = (r5 + -1)|0; - heap32[(r3+4)] = r5; -_215: do { -if(!(r5 !=0)) //_LBB654_169 -{ - r5 = heap32[(r3+1)]; - if(r5 !=0) //_LBB654_166 -{ - r1 = sp + -16; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r5 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r5 = r5 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r1 = r1 >> 2; - r6 = heap32[(fp+-4)]; - r8 = heap32[(r5)]; - r6 = (r6 - r8)|0; - r1 = heap32[(r1+1)]; - r5 = heap32[(r5+1)]; - r1 = (r1 - r5)|0; - r5 = (r6 * 1000000)|0; - r1 = (r1 + r5)|0; - r5 = heap32[(r3+3)]; - r1 = (r1 - r5)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r3+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r3+2)] = f0; - r1 = heap32[(r3+4)]; - if(r1 !=0) //_LBB654_169 -{ -break _215; -} -else{ - r1 = heap32[(r9)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r9)] = r1; -} -} while(0); - heap32[(g0)] = r11; - _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(i7); - r1 = heap32[(r4+44)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+4)]; - r5 = heap32[(r4+19)]; - r4 = heap32[(r4+21)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - __FUNCTION_TABLE__[(r3)>>2](i7); - heap32[(fp+-36)] = r7; - r0 = heap32[(r12+21)]; -if(!(r0 ==0)) //_LBB654_173 -{ - r1 = heapU8[sp+-56]; -if(!(r1 ==0)) //_LBB654_172 -{ - r1 = gNumAlignedFree; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = (r3 + 1)|0; - r0 = r0 >> 2; - heap32[(r1)] = r3; - r0 = heap32[(r0+-1)]; - heap32[(g0)] = r0; - free(i7); -} - heap32[(r12+21)] = 0; -} - r0 = 1; - heap8[sp+-56] = r0; - heap32[(r12+21)] = 0; - heap32[(r12+19)] = 0; - heap32[(r12+20)] = 0; - r1 = heap32[(r12+16)]; -if(!(r1 ==0)) //_LBB654_177 -{ - r3 = heapU8[sp+-76]; -if(!(r3 ==0)) //_LBB654_176 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r12+16)] = 0; -} - heap8[sp+-76] = r0; - heap32[(r12+16)] = 0; - heap32[(r12+14)] = 0; - heap32[(r12+15)] = 0; - r1 = heap32[(r12+11)]; -if(!(r1 ==0)) //_LBB654_181 -{ - r3 = heapU8[sp+-96]; -if(!(r3 ==0)) //_LBB654_180 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r12+11)] = 0; -} - heap8[sp+-96] = r0; - heap32[(r12+11)] = 0; - heap32[(r12+9)] = 0; - heap32[(r12+10)] = 0; - r1 = heap32[(r2+3)]; -if(!(r1 ==0)) //_LBB654_185 -{ - r3 = heapU8[sp+-32]; -if(!(r3 ==0)) //_LBB654_184 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+3)] = 0; -} - heap8[sp+-32] = r0; - heap32[(r2+3)] = 0; - heap32[(r2+1)] = 0; - heap32[(r2+2)] = 0; - r0 = heap32[(r9)]; - r1 = r0 >> 2; - r2 = heap32[(r1+4)]; - r2 = (r2 + -1)|0; - heap32[(r1+4)] = r2; -_246: do { -if(!(r2 !=0)) //_LBB654_191 -{ - r2 = heap32[(r1+1)]; - if(r2 !=0) //_LBB654_188 -{ - r0 = sp + -8; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - r2 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r0 = r0 >> 2; - r3 = heap32[(fp+-2)]; - r4 = heap32[(r2)]; - r3 = (r3 - r4)|0; - r0 = heap32[(r0+1)]; - r2 = heap32[(r2+1)]; - r0 = (r0 - r2)|0; - r2 = (r3 * 1000000)|0; - r0 = (r0 + r2)|0; - r2 = heap32[(r1+3)]; - r0 = (r0 - r2)|0; - f0 = uint(r0); //fuitos r0, f0 - f1 = 1000; - f2 = heapFloat[(r1+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r1+2)] = f0; - r0 = heap32[(r1+4)]; - if(r0 !=0) //_LBB654_191 -{ -break _246; -} -else{ - r0 = heap32[(r9)]; -} -} - r0 = r0 >> 2; - r0 = heap32[(r0+5)]; - heap32[(r9)] = r0; -} -} while(0); - return; -break; -case 47: - r0 = _2E_str1156; - r1 = _2E_str2157; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 269; - _assert(i7); -break; -} -} - -function _ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - r2 = heap32[(r0+47)]; - r3 = 0; -_1: while(true){ - if(r2 >r3) //_LBB655_1 -{ - r4 = heap32[(r0+49)]; - r5 = r3 << 2; - r4 = (r4 + r5)|0; - r4 = r4 >> 2; - r4 = heap32[(r4)]; - if(r4 !=r1) //_LBB655_3 -{ - r3 = (r3 + 1)|0; -continue _1; -} -else{ -__label__ = 5; -break _1; -} -} -else{ -__label__ = 4; -break _1; -} -} -if (__label__ == 4){ - r3 = r2; -} -if(!(r2 <=r3)) //_LBB655_8 -{ - r2 = (r2 + -1)|0; - r3 = r3 << 2; - r4 = heap32[(r0+49)]; - r2 = r2 << 2; - r3 = (r4 + r3)|0; - r4 = (r4 + r2)|0; - r3 = r3 >> 2; - r4 = r4 >> 2; - r5 = heap32[(r3)]; - r4 = heap32[(r4)]; - heap32[(r3)] = r4; - r3 = heap32[(r0+49)]; - r2 = (r3 + r2)|0; - r2 = r2 >> 2; - heap32[(r2)] = r5; - r2 = heap32[(r0+47)]; - r2 = (r2 + -1)|0; - heap32[(r0+47)] = r2; -} - r0 = r1 >> 2; - r2 = heap32[(r0+5)]; - r2 = r2 >> 2; - r3 = heap32[(r2+120)]; - r4 = 0; -_11: while(true){ - if(r3 >r4) //_LBB655_9 -{ - r5 = heap32[(r2+122)]; - r6 = r4 << 2; - r5 = (r5 + r6)|0; - r5 = r5 >> 2; - r5 = heap32[(r5)]; - if(r5 !=r1) //_LBB655_11 -{ - r4 = (r4 + 1)|0; -continue _11; -} -else{ -__label__ = 12; -break _11; -} -} -else{ -__label__ = 11; -break _11; -} -} -if (__label__ == 11){ - r4 = r3; -} - if(r3 >r4) //_LBB655_16 -{ - r3 = (r3 + -1)|0; - r4 = r4 << 2; - r5 = heap32[(r2+122)]; - r3 = r3 << 2; - r4 = (r5 + r4)|0; - r5 = (r5 + r3)|0; - r4 = r4 >> 2; - r5 = r5 >> 2; - r6 = heap32[(r4)]; - r5 = heap32[(r5)]; - heap32[(r4)] = r5; - r4 = heap32[(r2+122)]; - r3 = (r4 + r3)|0; - r3 = r3 >> 2; - heap32[(r3)] = r6; - r3 = heap32[(r2+120)]; - r3 = (r3 + -1)|0; - heap32[(r2+120)] = r3; -} - r4 = 0; - r3 = r3 > r4; - r3 = r3 & 1; - heap32[(r2+63)] = r3; - r0 = heap32[(r0+6)]; - r0 = r0 >> 2; - r2 = heap32[(r0+120)]; -_21: while(true){ - if(r2 >r4) //_LBB655_18 -{ - r3 = heap32[(r0+122)]; - r5 = r4 << 2; - r3 = (r3 + r5)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - if(r3 !=r1) //_LBB655_20 -{ - r4 = (r4 + 1)|0; -continue _21; -} -else{ -__label__ = 19; -break _21; -} -} -else{ -__label__ = 18; -break _21; -} -} -if (__label__ == 18){ - r4 = r2; -} - if(r2 >r4) //_LBB655_25 -{ - r2 = (r2 + -1)|0; - r1 = r4 << 2; - r3 = heap32[(r0+122)]; - r2 = r2 << 2; - r1 = (r3 + r1)|0; - r3 = (r3 + r2)|0; - r1 = r1 >> 2; - r3 = r3 >> 2; - r4 = heap32[(r1)]; - r3 = heap32[(r3)]; - heap32[(r1)] = r3; - r1 = heap32[(r0+122)]; - r2 = (r1 + r2)|0; - r2 = r2 >> 2; - heap32[(r2)] = r4; - r2 = heap32[(r0+120)]; - r2 = (r2 + -1)|0; - heap32[(r0+120)] = r2; -} - r1 = 0; - r1 = r2 > r1; - r1 = r1 & 1; - heap32[(r0+63)] = r1; - return; -} - -function _ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+48)]; - r3 = heap32[(r1+47)]; - r4 = heap32[(fp+1)]; - r5 = heap32[(fp+2)]; - if(r2 ==r3) //_LBB656_2 -{ - r6 = 1; - r7 = r3 << 1; - r7 = r3 == 0 ? r6 : r7; -if(!(r2 >=r7)) //_LBB656_1 -{ - if(r7 !=0) //_LBB656_5 -{ - r2 = gNumAlignedAllocs; - r2 = r2 >> 2; - r8 = heap32[(r2)]; - r9 = r7 << 2; - r8 = (r8 + 1)|0; - r9 = r9 | 3; - heap32[(r2)] = r8; - r2 = (r9 + 16)|0; - heap32[(g0)] = r2; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB656_7 -{ - r8 = 0; - r9 = (r2 + 4)|0; - r8 = (r8 - r9)|0; - r8 = r8 & 15; - r8 = (r2 + r8)|0; - r9 = (r8 + 4)|0; - r8 = r8 >> 2; - heap32[(r8)] = r2; - r2 = r9; -} -} -else{ - r2 = 0; -} - r8 = (r0 + 196)|0; - if(r3 <1) //_LBB656_10 -{ - r9 = r8 >> 2; - r10 = heap32[(r9)]; -} -else{ - r9 = 0; -_12: while(true){ - r10 = r8 >> 2; - r10 = heap32[(r10)]; - r11 = r9 << 2; - r12 = (r10 + r11)|0; - r12 = r12 >> 2; - r11 = (r2 + r11)|0; - r12 = heap32[(r12)]; - r9 = (r9 + 1)|0; - r11 = r11 >> 2; - heap32[(r11)] = r12; -if(!(r3 !=r9)) //_LBB656_11 -{ -break _12; -} -} - r8 = (r0 + 196)|0; -} - if(r10 !=0) //_LBB656_15 -{ - r9 = heapU8[r0+200]; - if(r9 !=0) //_LBB656_17 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r9 = heap32[(r3)]; - r9 = (r9 + 1)|0; - r10 = r10 >> 2; - heap32[(r3)] = r9; - r3 = heap32[(r10+-1)]; - heap32[(g0)] = r3; - free(i7); - r3 = heap32[(r1+47)]; -} - r9 = r8 >> 2; - heap32[(r9)] = 0; -} - r8 = r8 >> 2; - heap8[r0+200] = r6; - heap32[(r8)] = r2; - heap32[(r1+48)] = r7; -} -} - r0 = r3 << 2; - r2 = heap32[(r1+49)]; - r0 = (r2 + r0)|0; - r0 = r0 >> 2; - heap32[(r0)] = r4; - r0 = heap32[(r1+47)]; - r0 = (r0 + 1)|0; - heap32[(r1+47)] = r0; -if(!(r5 ==0)) //_LBB656_22 -{ - r0 = r4 >> 2; - r1 = heap32[(r0+5)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r4; - _ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(i7); - r0 = heap32[(r0+6)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - _ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(i7); -} - return; -} - -function _ZN23btDiscreteDynamicsWorld21updateActivationStateEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; - var f1; - var f2; - var f3; - var f4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = _2E_str1097; - r1 = heap32[(fp)]; - heap32[(g0)] = r0; - r0 = r1 >> 2; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r1 = heap32[(r0+52)]; -if(!(r1 <1)) //_LBB657_25 -{ - f0 = heapFloat[(fp+1)]; - r1 = gDisableDeactivation; - r1 = heapU8[r1]; - r2 = 0; -_3: while(true){ - r3 = heap32[(r0+54)]; - r4 = r2 << 2; - r3 = (r3 + r4)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; -_5: do { -if(!(r3 ==0)) //_LBB657_24 -{ - r4 = r3 >> 2; - r5 = heap32[(r4+54)]; -if(!(r5 ==4)) //_LBB657_24 -{ -_8: do { - if(r5 !=2) //_LBB657_6 -{ - f1 = heapFloat[(r4+76)]; - f2 = heapFloat[(r4+77)]; - f3 = heapFloat[(r4+78)]; - f1 = f1*f1; - f2 = f2*f2; - f4 = heapFloat[(r4+116)]; - f1 = f1+f2; - f2 = f3*f3; - f1 = f1+f2; - f2 = f4*f4; - if(f1 >=f2) //_LBB657_9 -{ -__label__ = 8; -} -else{ - f1 = heapFloat[(r4+80)]; - f2 = heapFloat[(r4+81)]; - f3 = heapFloat[(r4+82)]; - f1 = f1*f1; - f2 = f2*f2; - f4 = heapFloat[(r4+117)]; - f1 = f1+f2; - f2 = f3*f3; - f1 = f1+f2; - f2 = f4*f4; - if(f1 >=f2) //_LBB657_9 -{ -__label__ = 8; -} -else{ - f1 = heapFloat[(r4+55)]; - f1 = f1+f0; - heapFloat[(r4+55)] = f1; -__label__ = 10; -} -} -if (__label__ == 8){ - r6 = (r5 + -4)|0; - heap32[(r4+55)] = 0; -if(!(uint(r6) r2) //_LBB657_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - r0 = _ZN15CProfileManager11CurrentNodeE; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r3 = (r3 + -1)|0; - heap32[(r2+4)] = r3; -_35: do { -if(!(r3 !=0)) //_LBB657_31 -{ - r3 = heap32[(r2+1)]; - if(r3 !=0) //_LBB657_28 -{ - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 * 1000000)|0; - r1 = (r1 + r3)|0; - r3 = heap32[(r2+3)]; - r1 = (r1 - r3)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r2+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r2+2)] = f0; - r1 = heap32[(r2+4)]; - if(r1 !=0) //_LBB657_31 -{ -break _35; -} -else{ - r1 = heap32[(r0)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r0)] = r1; -} -} while(0); - return; -} - -function _ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; - var f1; - var f2; - var f3; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = _2E_str1198; - r1 = heap32[(fp)]; - heap32[(g0)] = r0; - r0 = r1 >> 2; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r2 = heap32[(r0+24)]; - f0 = heapFloat[(fp+1)]; -if(!(r2 ==0)) //_LBB658_2 -{ - heap32[(g0)] = r1; - heapFloat[(g0+1)] = f0; - __FUNCTION_TABLE__[(r2)>>2](i7); -} - r2 = heap32[(r0)]; - r2 = r2 >> 2; - r2 = heap32[(r2+33)]; - heap32[(g0)] = r1; - heapFloat[(g0+1)] = f0; - __FUNCTION_TABLE__[(r2)>>2](i7); - heapFloat[(r0+7)] = f0; - heap32[(r0+8)] = 0; - r2 = heap32[(r0)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r2)>>2](i7); - heap32[(r0+12)] = r_g0; - r2 = heap32[(r0)]; - r2 = r2 >> 2; - r2 = heap32[(r2+10)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = heap32[(r0)]; - r2 = r2 >> 2; - r2 = heap32[(r2+35)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r2)>>2](i7); - heapFloat[(r0+29)] = f0; - r2 = heap32[(r0)]; - r2 = r2 >> 2; - r2 = heap32[(r2+36)]; - r3 = (r1 + 104)|0; - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = heap32[(r0)]; - r2 = r2 >> 2; - r2 = heap32[(r2+34)]; - heap32[(g0)] = r1; - heapFloat[(g0+1)] = f0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = _2E_str289; - heap32[(g0)] = r2; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r2 = heap32[(r0+63)]; -if(!(r2 <1)) //_LBB658_5 -{ - r2 = 0; -_6: while(true){ - r3 = heap32[(r0+65)]; - r4 = r2 << 2; - r3 = (r3 + r4)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+2)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r1; - heapFloat[(g0+2)] = f0; - r2 = (r2 + 1)|0; - __FUNCTION_TABLE__[(r4)>>2](i7); - r3 = heap32[(r0+63)]; - if(r3 >r2) //_LBB658_4 -{ -continue _6; -} -else{ -break _6; -} -} -} - r2 = _ZN15CProfileManager11CurrentNodeE; - r2 = r2 >> 2; - r3 = heap32[(r2)]; - r4 = r3 >> 2; - r5 = heap32[(r4+4)]; - r5 = (r5 + -1)|0; - heap32[(r4+4)] = r5; -_9: do { -if(!(r5 !=0)) //_LBB658_11 -{ - r5 = heap32[(r4+1)]; - if(r5 !=0) //_LBB658_8 -{ - r3 = sp + -16; - heap32[(g0)] = r3; - heap32[(g0+1)] = 0; - r5 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r5 = r5 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r3 = r3 >> 2; - r6 = heap32[(fp+-4)]; - r7 = heap32[(r5)]; - r6 = (r6 - r7)|0; - r3 = heap32[(r3+1)]; - r5 = heap32[(r5+1)]; - r3 = (r3 - r5)|0; - r5 = (r6 * 1000000)|0; - r3 = (r3 + r5)|0; - r5 = heap32[(r4+3)]; - r3 = (r3 - r5)|0; - f1 = uint(r3); //fuitos r3, f1 - f2 = 1000; - f3 = heapFloat[(r4+2)]; - f1 = f1/f2; - f1 = f3+f1; - heapFloat[(r4+2)] = f1; - r3 = heap32[(r4+4)]; - if(r3 !=0) //_LBB658_11 -{ -break _9; -} -else{ - r3 = heap32[(r2)]; -} -} - r3 = r3 >> 2; - r3 = heap32[(r3+5)]; - heap32[(r2)] = r3; -} -} while(0); - heap32[(g0)] = r1; - heapFloat[(g0+1)] = f0; - _ZN23btDiscreteDynamicsWorld21updateActivationStateEf(i7); - r0 = heap32[(r0+23)]; -if(!(r0 ==0)) //_LBB658_13 -{ - heap32[(g0)] = r1; - heapFloat[(g0+1)] = f0; - __FUNCTION_TABLE__[(r0)>>2](i7); -} - r0 = heap32[(r2)]; - r1 = r0 >> 2; - r3 = heap32[(r1+4)]; - r3 = (r3 + -1)|0; - heap32[(r1+4)] = r3; -_19: do { -if(!(r3 !=0)) //_LBB658_19 -{ - r3 = heap32[(r1+1)]; - if(r3 !=0) //_LBB658_16 -{ - r0 = sp + -8; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r0 = r0 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r0 = heap32[(r0+1)]; - r3 = heap32[(r3+1)]; - r0 = (r0 - r3)|0; - r3 = (r4 * 1000000)|0; - r0 = (r0 + r3)|0; - r3 = heap32[(r1+3)]; - r0 = (r0 - r3)|0; - f0 = uint(r0); //fuitos r0, f0 - f1 = 1000; - f2 = heapFloat[(r1+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r1+2)] = f0; - r0 = heap32[(r1+4)]; - if(r0 !=0) //_LBB658_19 -{ -break _19; -} -else{ - r0 = heap32[(r2)]; -} -} - r0 = r0 >> 2; - r0 = heap32[(r0+5)]; - heap32[(r2)] = r0; -} -} while(0); - return; -} - -function _ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var f0; - var f1; - var f2; - var f3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(r1+51)]; - r3 = heap32[(fp)]; - r4 = r2 & 3; -if(!(r4 !=0)) //_LBB659_5 -{ - r4 = heapU8[r0+496]; - r4 = r4 & 1; -if(!(r4 != 0)) //_LBB659_5 -{ - f0 = heapFloat[(r1+84)]; - f1 = 0; -if(!(f0 ==f1)) //_LBB659_4 -{ - r4 = r3 >> 2; - f1 = 1; - f0 = f1/f0; - f1 = heapFloat[(r4+58)]; - f2 = heapFloat[(r4+57)]; - f3 = heapFloat[(r4+56)]; - f3 = f3*f0; - f2 = f2*f0; - heapFloat[(r1+89)] = f3; - f0 = f1*f0; - heapFloat[(r1+90)] = f2; - heapFloat[(r1+91)] = f0; - heap32[(r1+92)] = 0; -} - r4 = r3 >> 2; - heap32[(r1+93)] = heap32[(r4+56)]; - heap32[(r1+94)] = heap32[(r4+57)]; - heap32[(r1+95)] = heap32[(r4+58)]; - heap32[(r1+96)] = heap32[(r4+59)]; -} -} - r4 = heap32[(r1+48)]; -if(!(r4 ==0)) //_LBB659_31 -{ - r4 = heap32[(fp+2)]; - r5 = heap32[(fp+3)]; - r2 = r2 & 1; -_10: do { - if(r2 != 0) //_LBB659_28 -{ - r2 = heap32[(r1+54)]; - r2 = (r2 + -4)|0; - if(uint(r2) > 2; - r2 = heap32[(r1+53)]; - r6 = heap32[(r1+52)]; - if(r2 ==r6) //_LBB659_9 -{ - r7 = 1; - r8 = r6 << 1; - r8 = r6 == 0 ? r7 : r8; -if(!(r2 >=r8)) //_LBB659_8 -{ - if(r8 !=0) //_LBB659_12 -{ - r2 = gNumAlignedAllocs; - r2 = r2 >> 2; - r9 = heap32[(r2)]; - r10 = r8 << 2; - r9 = (r9 + 1)|0; - r10 = r10 | 3; - heap32[(r2)] = r9; - r2 = (r10 + 16)|0; - heap32[(g0)] = r2; - malloc(i7); - r2 = r_g0; - if(r2 !=0) //_LBB659_14 -{ - r9 = 0; - r10 = (r2 + 4)|0; - r9 = (r9 - r10)|0; - r9 = r9 & 15; - r9 = (r2 + r9)|0; - r10 = (r9 + 4)|0; - r9 = r9 >> 2; - heap32[(r9)] = r2; - r2 = r10; -} -} -else{ - r2 = 0; -} - r9 = (r3 + 216)|0; - if(r6 <1) //_LBB659_17 -{ - r10 = r9 >> 2; - r11 = heap32[(r10)]; -} -else{ - r10 = 0; -_25: while(true){ - r11 = r9 >> 2; - r11 = heap32[(r11)]; - r12 = r10 << 2; - r13 = (r11 + r12)|0; - r13 = r13 >> 2; - r12 = (r2 + r12)|0; - r13 = heap32[(r13)]; - r10 = (r10 + 1)|0; - r12 = r12 >> 2; - heap32[(r12)] = r13; -if(!(r6 !=r10)) //_LBB659_18 -{ -break _25; -} -} - r9 = (r3 + 216)|0; -} - if(r11 !=0) //_LBB659_22 -{ - r10 = heapU8[r3+220]; - if(r10 !=0) //_LBB659_24 -{ - r6 = gNumAlignedFree; - r6 = r6 >> 2; - r10 = heap32[(r6)]; - r10 = (r10 + 1)|0; - r11 = r11 >> 2; - heap32[(r6)] = r10; - r6 = heap32[(r11+-1)]; - heap32[(g0)] = r6; - free(i7); - r6 = heap32[(r1+52)]; -} - r10 = r9 >> 2; - heap32[(r10)] = 0; -} - r9 = r9 >> 2; - heap8[r3+220] = r7; - heap32[(r9)] = r2; - heap32[(r1+53)] = r8; -} -} - r2 = r6 << 2; - r6 = heap32[(r1+54)]; - r2 = (r6 + r2)|0; - r2 = r2 >> 2; - heap32[(r2)] = r0; - r2 = heap32[(r1+52)]; - r2 = (r2 + 1)|0; - heap32[(r1+52)] = r2; -} -} while(0); - r1 = r3 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+8)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - __FUNCTION_TABLE__[(r1)>>2](i7); -} - return; -} - -function _ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var f0; - var f1; - var f2; - var f3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(r1+51)]; - r3 = heap32[(fp)]; - r4 = r2 & 3; -if(!(r4 !=0)) //_LBB660_5 -{ - r4 = heapU8[r0+496]; - r4 = r4 & 1; -if(!(r4 != 0)) //_LBB660_5 -{ - f0 = heapFloat[(r1+84)]; - f1 = 0; -if(!(f0 ==f1)) //_LBB660_4 -{ - r4 = r3 >> 2; - f1 = 1; - f0 = f1/f0; - f1 = heapFloat[(r4+58)]; - f2 = heapFloat[(r4+57)]; - f3 = heapFloat[(r4+56)]; - f3 = f3*f0; - f2 = f2*f0; - heapFloat[(r1+89)] = f3; - f0 = f1*f0; - heapFloat[(r1+90)] = f2; - heapFloat[(r1+91)] = f0; - heap32[(r1+92)] = 0; -} - r4 = r3 >> 2; - heap32[(r1+93)] = heap32[(r4+56)]; - heap32[(r1+94)] = heap32[(r4+57)]; - heap32[(r1+95)] = heap32[(r4+58)]; - heap32[(r1+96)] = heap32[(r4+59)]; -} -} - r4 = heap32[(r1+48)]; -if(!(r4 ==0)) //_LBB660_32 -{ - r4 = r2 & 1; -_10: do { - if(r4 != 0) //_LBB660_28 -{ - r4 = heap32[(r1+54)]; - r4 = (r4 + -4)|0; - if(uint(r4) >uint(1)) //_LBB660_30 -{ - heap32[(r1+54)] = 2; -} -else{ -break _10; -} -} -else{ - r2 = r3 >> 2; - r4 = heap32[(r2+53)]; - r5 = heap32[(r2+52)]; - if(r4 ==r5) //_LBB660_9 -{ - r6 = 1; - r7 = r5 << 1; - r7 = r5 == 0 ? r6 : r7; -if(!(r4 >=r7)) //_LBB660_8 -{ - if(r7 !=0) //_LBB660_12 -{ - r4 = gNumAlignedAllocs; - r4 = r4 >> 2; - r8 = heap32[(r4)]; - r9 = r7 << 2; - r8 = (r8 + 1)|0; - r9 = r9 | 3; - heap32[(r4)] = r8; - r4 = (r9 + 16)|0; - heap32[(g0)] = r4; - malloc(i7); - r4 = r_g0; - if(r4 !=0) //_LBB660_14 -{ - r8 = 0; - r9 = (r4 + 4)|0; - r8 = (r8 - r9)|0; - r8 = r8 & 15; - r8 = (r4 + r8)|0; - r9 = (r8 + 4)|0; - r8 = r8 >> 2; - heap32[(r8)] = r4; - r4 = r9; -} -} -else{ - r4 = 0; -} - r8 = (r3 + 216)|0; - if(r5 <1) //_LBB660_17 -{ - r9 = r8 >> 2; - r10 = heap32[(r9)]; -} -else{ - r9 = 0; -_25: while(true){ - r10 = r8 >> 2; - r10 = heap32[(r10)]; - r11 = r9 << 2; - r12 = (r10 + r11)|0; - r12 = r12 >> 2; - r11 = (r4 + r11)|0; - r12 = heap32[(r12)]; - r9 = (r9 + 1)|0; - r11 = r11 >> 2; - heap32[(r11)] = r12; -if(!(r5 !=r9)) //_LBB660_18 -{ -break _25; -} -} - r8 = (r3 + 216)|0; -} - if(r10 !=0) //_LBB660_22 -{ - r9 = heapU8[r3+220]; - if(r9 !=0) //_LBB660_24 -{ - r5 = gNumAlignedFree; - r5 = r5 >> 2; - r9 = heap32[(r5)]; - r9 = (r9 + 1)|0; - r10 = r10 >> 2; - heap32[(r5)] = r9; - r5 = heap32[(r10+-1)]; - heap32[(g0)] = r5; - free(i7); - r5 = heap32[(r2+52)]; -} - r9 = r8 >> 2; - heap32[(r9)] = 0; -} - r8 = r8 >> 2; - heap8[r3+220] = r6; - heap32[(r8)] = r4; - heap32[(r2+53)] = r7; -} -} - r4 = r5 << 2; - r5 = heap32[(r2+54)]; - r4 = (r5 + r4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r0; - r4 = heap32[(r2+52)]; - r4 = (r4 + 1)|0; - heap32[(r2+52)] = r4; - r2 = heap32[(r1+51)]; -} -} while(0); - r1 = r3 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+8)]; - r4 = 2; - r5 = 1; - r2 = r2 & 3; - r6 = -3; - r7 = -1; - r4 = r2 != 0 ? r4 : r5; - r2 = r2 != 0 ? r6 : r7; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); -} - return; -} - -function _ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; - var f3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - heap32[(r0+56)] = heap32[(r1)]; - heap32[(r0+57)] = heap32[(r1+1)]; - heap32[(r0+58)] = heap32[(r1+2)]; - heap32[(r0+59)] = heap32[(r1+3)]; - r2 = heap32[(r0+52)]; -if(!(r2 <1)) //_LBB661_9 -{ - r2 = 0; -_3: while(true){ - r3 = heap32[(r0+54)]; - r4 = r2 << 2; - r3 = (r3 + r4)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r4 = r3 >> 2; - r5 = heap32[(r4+54)]; -if(!(r5 ==2)) //_LBB661_8 -{ -if(!(r5 ==5)) //_LBB661_8 -{ - r3 = heapU8[r3+496]; - r3 = r3 & 1; -if(!(r3 != 0)) //_LBB661_8 -{ - f0 = heapFloat[(r4+84)]; - f1 = 0; -if(!(f0 ==f1)) //_LBB661_7 -{ - f1 = 1; - f0 = f1/f0; - f1 = heapFloat[(r1+2)]; - f2 = heapFloat[(r1+1)]; - f3 = heapFloat[(r1)]; - f3 = f3*f0; - f2 = f2*f0; - heapFloat[(r4+89)] = f3; - f0 = f1*f0; - heapFloat[(r4+90)] = f2; - heapFloat[(r4+91)] = f0; - heap32[(r4+92)] = 0; -} - heap32[(r4+93)] = heap32[(r1)]; - heap32[(r4+94)] = heap32[(r1+1)]; - heap32[(r4+95)] = heap32[(r1+2)]; - heap32[(r4+96)] = heap32[(r1+3)]; -} -} -} - r2 = (r2 + 1)|0; - r3 = heap32[(r0+52)]; - if(r3 >r2) //_LBB661_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - return; -} - -function _ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(fp+1)]; - r3 = heap32[(r1+52)]; - r4 = 0; -_1: while(true){ - if(r3 >r4) //_LBB662_1 -{ - r5 = heap32[(r1+54)]; - r6 = r4 << 2; - r5 = (r5 + r6)|0; - r5 = r5 >> 2; - r5 = heap32[(r5)]; - if(r5 !=r2) //_LBB662_3 -{ - r4 = (r4 + 1)|0; -continue _1; -} -else{ -__label__ = 5; -break _1; -} -} -else{ -__label__ = 4; -break _1; -} -} -if (__label__ == 4){ - r4 = r3; -} -if(!(r3 <=r4)) //_LBB662_8 -{ - r3 = (r3 + -1)|0; - r4 = r4 << 2; - r5 = heap32[(r1+54)]; - r3 = r3 << 2; - r4 = (r5 + r4)|0; - r5 = (r5 + r3)|0; - r4 = r4 >> 2; - r5 = r5 >> 2; - r6 = heap32[(r4)]; - r5 = heap32[(r5)]; - heap32[(r4)] = r5; - r4 = heap32[(r1+54)]; - r3 = (r4 + r3)|0; - r3 = r3 >> 2; - heap32[(r3)] = r6; - r3 = heap32[(r1+52)]; - r3 = (r3 + -1)|0; - heap32[(r1+52)] = r3; -} - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - _ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(i7); - return; -} - -function _ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = heapU8[r0+232]; - r2 = r2 & 2; -if(!(r2 ==0)) //_LBB663_3 -{ -if(!(r0 ==0)) //_LBB663_3 -{ - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+21)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - return; -} -} - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - _ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(i7); - return; -} - -function _ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r3; - _ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss(i7); - return; -} - -function _ZN23btDiscreteDynamicsWorld14stepSimulationEfif(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - _ZN15CProfileManager5ResetEv(i7); - r0 = _2E_str1299; - r1 = heap32[(fp+2)]; - heap32[(g0)] = r0; - r0 = heap32[(fp)]; - f0 = heapFloat[(fp+1)]; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - if(r1 ==0) //_LBB665_4 -{ - r1 = r0 >> 2; - f1 = 0; - heapFloat[(r1+60)] = f0; - if(f0 =f2) //_LBB665_9 -{ - r1 = 1; - f1 = f0; - r3 = r1; -} -else{ - r1 = 0; - f1 = f0; - r3 = r1; -} -} -else{ - f1 = heapFloat[(fp+3)]; - r2 = r0 >> 2; - f2 = heapFloat[(r2+60)]; - f0 = f2+f0; - heapFloat[(r2+60)] = f0; - if(f0 >=f1) //_LBB665_3 -{ - f2 = f0/f1; - r3 = f2|0; - f2 = r3; //fitos r3, f2 - f2 = f2*f1; - f0 = f0-f2; - heapFloat[(r2+60)] = f0; -} -else{ - r3 = 0; -} -} - r2 = r0 >> 2; - r4 = heap32[(r2)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r_g0; -if(!(r4 ==0)) //_LBB665_12 -{ - r4 = heap32[(r2)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r4)>>2](i7); - r5 = r_g0 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+12)]; - heap32[(g0)] = r_g0; - __FUNCTION_TABLE__[(r5)>>2](i7); - r4 = r_g0 >>> 4; - r5 = gDisableDeactivation; - r4 = r4 & 1; - heap8[r5] = r4; -} - if(r3 ==0) //_LBB665_16 -{ - r1 = heap32[(r2)]; - r1 = r1 >> 2; - r1 = heap32[(r1+19)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r1)>>2](i7); -} -else{ - r4 = heap32[(r2)]; - r4 = r4 >> 2; - r5 = r3 > r1 ? r1 : r3; - r4 = heap32[(r4+38)]; - f0 = r5; //fitos r5, f0 - f0 = f0*f1; - heap32[(g0)] = r0; - heapFloat[(g0+1)] = f0; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = heap32[(r2)]; - r4 = r4 >> 2; - r4 = heap32[(r4+40)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r4)>>2](i7); -if(!(r5 <1)) //_LBB665_17 -{ - r4 = r3 ^ -1; - r1 = r1 ^ -1; - r1 = r4 > r1 ? r4 : r1; - r1 = r1 ^ -1; -_22: while(true){ - r4 = heap32[(r2)]; - r4 = r4 >> 2; - r4 = heap32[(r4+37)]; - heap32[(g0)] = r0; - heapFloat[(g0+1)] = f1; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = heap32[(r2)]; - r4 = r4 >> 2; - r4 = heap32[(r4+19)]; - r1 = (r1 + -1)|0; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r4)>>2](i7); - if(r1 ==0) //_LBB665_17 -{ -break _22; -} -else{ -continue _22; -} -} -} -} - r1 = heap32[(r2)]; - r1 = r1 >> 2; - r1 = heap32[(r1+28)]; - heap32[(g0)] = r0; - r0 = _ZN15CProfileManager12FrameCounterE; - __FUNCTION_TABLE__[(r1)>>2](i7); - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = _ZN15CProfileManager11CurrentNodeE; - r1 = (r1 + 1)|0; - r2 = r2 >> 2; - heap32[(r0)] = r1; - r0 = heap32[(r2)]; - r1 = r0 >> 2; - r4 = heap32[(r1+4)]; - r4 = (r4 + -1)|0; - heap32[(r1+4)] = r4; -_25: do { -if(!(r4 !=0)) //_LBB665_23 -{ - r4 = heap32[(r1+1)]; - if(r4 !=0) //_LBB665_20 -{ - r0 = sp + -8; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - r4 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r4 = r4 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r0 = r0 >> 2; - r5 = heap32[(fp+-2)]; - r6 = heap32[(r4)]; - r5 = (r5 - r6)|0; - r0 = heap32[(r0+1)]; - r4 = heap32[(r4+1)]; - r0 = (r0 - r4)|0; - r4 = (r5 * 1000000)|0; - r0 = (r0 + r4)|0; - r4 = heap32[(r1+3)]; - r0 = (r0 - r4)|0; - f0 = uint(r0); //fuitos r0, f0 - f1 = 1000; - f2 = heapFloat[(r1+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r1+2)] = f0; - r0 = heap32[(r1+4)]; - if(r0 !=0) //_LBB665_23 -{ -break _25; -} -else{ - r0 = heap32[(r2)]; -} -} - r0 = r0 >> 2; - r0 = heap32[(r0+5)]; - heap32[(r2)] = r0; -} -} while(0); - r_g0 = r3; - return; -} - -function _ZN23btDiscreteDynamicsWorld28synchronizeSingleMotionStateEP11btRigidBody(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; - var f1; - var f2; - var f3; - var f4; -var __label__ = 0; - i7 = sp + -96;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - if(r0 !=0) //_LBB666_2 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+118)]; -if(!(r2 ==0)) //_LBB666_4 -{ - r2 = heapU8[r0+204]; - r2 = r2 & 3; - if(r2 ==0) //_LBB666_5 -{ - r2 = heap32[(fp)]; - r2 = r2 >> 2; - f0 = heapFloat[(r2+60)]; - f1 = heapFloat[(r1+60)]; - f2 = heapFloat[(r1+33)]; - f3 = heapFloat[(r1+34)]; - f4 = heapFloat[(r1+35)]; - r2 = sp + -64; - r3 = (r0 + 68)|0; - r0 = (r0 + 148)|0; - f0 = f0*f1; - heap32[(g0)] = r3; - heapFloat[(g0+1)] = f2; - heapFloat[(g0+2)] = f3; - heapFloat[(g0+3)] = f4; - heap32[(g0+4)] = r0; - heapFloat[(g0+5)] = f0; - heap32[(g0+6)] = r2; - _ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i7); - r0 = heap32[(r1+118)]; - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r1)>>2](i7); - return; -} -} - return; -} -else{ - r0 = _2E_str13100; - r1 = _2E_str1461; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 184; - _assert(i7); -} -} - -function _ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = _2E_str1562; - heap32[(g0)] = r0; - r0 = heap32[(fp)]; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r1 = heapU8[r0+246]; -_1: do { - if(r1 !=0) //_LBB667_2 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+2)]; -if(!(r2 <1)) //_LBB667_13 -{ - r2 = 0; -_4: while(true){ - r3 = heap32[(r1+4)]; - r4 = r2 << 2; - r3 = (r3 + r4)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r4 = heapU8[r3+232]; - r4 = r4 & 2; -if(!(r4 ==0)) //_LBB667_7 -{ -if(!(r3 ==0)) //_LBB667_7 -{ - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - _ZN23btDiscreteDynamicsWorld28synchronizeSingleMotionStateEP11btRigidBody(i7); -} -} - r2 = (r2 + 1)|0; - r3 = heap32[(r1+2)]; - if(r3 >r2) //_LBB667_4 -{ -continue _4; -} -else{ -break _1; -} -} -} -} -else{ - r1 = r0 >> 2; - r2 = heap32[(r1+52)]; - if(r2 >0) //_LBB667_8 -{ - r2 = 0; -_12: while(true){ - r3 = heap32[(r1+54)]; - r4 = r2 << 2; - r3 = (r3 + r4)|0; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r4 = r3 >> 2; - r4 = heap32[(r4+54)]; -if(!(r4 ==2)) //_LBB667_12 -{ -if(!(r4 ==5)) //_LBB667_12 -{ - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - _ZN23btDiscreteDynamicsWorld28synchronizeSingleMotionStateEP11btRigidBody(i7); -} -} - r2 = (r2 + 1)|0; - r3 = heap32[(r1+52)]; - if(r3 >r2) //_LBB667_9 -{ -continue _12; -} -else{ -break _1; -} -} -} -} -} while(0); - r0 = _ZN15CProfileManager11CurrentNodeE; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r3 = (r3 + -1)|0; - heap32[(r2+4)] = r3; -_19: do { -if(!(r3 !=0)) //_LBB667_19 -{ - r3 = heap32[(r2+1)]; - if(r3 !=0) //_LBB667_16 -{ - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 * 1000000)|0; - r1 = (r1 + r3)|0; - r3 = heap32[(r2+3)]; - r1 = (r1 - r3)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r2+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r2+2)] = f0; - r1 = heap32[(r2+4)]; - if(r1 !=0) //_LBB667_19 -{ -break _19; -} -else{ - r1 = heap32[(r0)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r0)] = r1; -} -} while(0); - return; -} - -function _ZN23btDiscreteDynamicsWorld12applyGravityEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+52)]; -if(!(r1 <1)) //_LBB668_7 -{ - r1 = 0; -_3: while(true){ - r2 = heap32[(r0+54)]; - r3 = r1 << 2; - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r3 = r2 >> 2; - r4 = heap32[(r3+54)]; -if(!(r4 ==2)) //_LBB668_6 -{ -if(!(r4 ==5)) //_LBB668_6 -{ - r2 = heapU8[r2+204]; - r2 = r2 & 3; -if(!(r2 !=0)) //_LBB668_6 -{ - f0 = heapFloat[(r3+89)]; - f1 = heapFloat[(r3+85)]; - f0 = f0*f1; - f1 = heapFloat[(r3+101)]; - f2 = heapFloat[(r3+91)]; - f3 = heapFloat[(r3+87)]; - f4 = heapFloat[(r3+90)]; - f5 = heapFloat[(r3+86)]; - f0 = f1+f0; - heapFloat[(r3+101)] = f0; - f0 = f4*f5; - f1 = heapFloat[(r3+102)]; - f0 = f1+f0; - heapFloat[(r3+102)] = f0; - f0 = f2*f3; - f1 = heapFloat[(r3+103)]; - f0 = f1+f0; - heapFloat[(r3+103)] = f0; -} -} -} - r1 = (r1 + 1)|0; - r2 = heap32[(r0+52)]; - if(r2 >r1) //_LBB668_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - return; -} - -function _ZN23btDiscreteDynamicsWorld14debugDrawWorldEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; - var f20; - var f21; - var f22; - var f23; - var f24; - var f25; - var f26; - var f27; - var f28; - var f29; - var f30; -var __label__ = 0; - i7 = sp + -824;var g0 = i7>>2; // save stack - r0 = _2E_str16101; - heap32[(g0)] = r0; - _ZN15CProfileManager13Start_ProfileEPKc(i7); - r0 = heap32[(fp)]; - heap32[(g0)] = r0; - _ZN16btCollisionWorld14debugDrawWorldEv(i7); - r1 = r0 >> 2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; -if(!(r2 ==0)) //_LBB669_53 -{ - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r3 = r_g0 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+12)]; - heap32[(g0)] = r_g0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = r_g0 & 6144; -if(!(r2 ==0)) //_LBB669_53 -{ - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+24)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r3 = (r2 + -1)|0; -if(!(r3 <0)) //_LBB669_53 -{ - r3 = sp + -296; - r4 = sp + -392; - r5 = (r3 + 48)|0; - r6 = (r4 + 48)|0; - r2 = (r2 + -1)|0; -_5: while(true){ - r7 = r2; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+25)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r8)>>2](i7); - r9 = r_g0 >> 2; - r9 = heap32[(r9)]; - r9 = r9 >> 2; - r9 = heap32[(r9+12)]; - heap32[(g0)] = r_g0; - __FUNCTION_TABLE__[(r9)>>2](i7); - r8 = r_g0; - r9 = heap32[(r1)]; - r9 = r9 >> 2; - r9 = heap32[(r9+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r9)>>2](i7); - r10 = r_g0 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+12)]; - heap32[(g0)] = r_g0; - __FUNCTION_TABLE__[(r10)>>2](i7); - r9 = r_g0; - r10 = r2 >> 2; - f0 = heapFloat[(r10+8)]; - heapFloat[(fp+-191)] = f0; - f1 = 0; - heapFloat[(fp+-192)] = f1; -_7: do { -if(!(f0 <=f1)) //_LBB669_52 -{ - r8 = r8 >>> 11; - r9 = r9 >>> 12; - r8 = r8 & 1; - r9 = r9 & 1; - r10 = r2 >> 2; - r11 = heap32[(r10+1)]; - if(r11 >4) //_LBB669_8 -{ - if(r11 ==5) //_LBB669_20 -{ - r11 = heap32[(r10+5)]; - r11 = r11 >> 2; - f0 = heapFloat[(r11+1)]; - f1 = heapFloat[(r10+72)]; - f2 = heapFloat[(r11+2)]; - f3 = heapFloat[(r10+76)]; - f4 = heapFloat[(r10+73)]; - f5 = heapFloat[(r10+77)]; - f6 = f1*f0; - f7 = f3*f2; - f8 = heapFloat[(r11+3)]; - f9 = heapFloat[(r10+80)]; - f10 = heapFloat[(r11+9)]; - f11 = heapFloat[(r10+84)]; - f12 = heapFloat[(r11+5)]; - f13 = heapFloat[(r10+74)]; - f14 = heapFloat[(r11+10)]; - f15 = heapFloat[(r10+85)]; - f16 = heapFloat[(r11+6)]; - f17 = heapFloat[(r10+78)]; - f18 = heapFloat[(r11+11)]; - f19 = heapFloat[(r10+86)]; - f20 = heapFloat[(r11+7)]; - f21 = heapFloat[(r10+82)]; - f22 = heapFloat[(r10+81)]; - f23 = f4*f0; - f24 = f5*f2; - f6 = f6+f7; - f7 = f9*f8; - f25 = heapFloat[(r11+15)]; - f26 = heapFloat[(r11+14)]; - f27 = heapFloat[(r11+13)]; - f28 = f13*f0; - f29 = f17*f2; - f23 = f23+f24; - f24 = f22*f8; - f6 = f6+f7; - r11 = r4 >> 2; - f7 = f28+f29; - f28 = f21*f8; - f23 = f23+f24; - heapFloat[(fp+-98)] = f6; - f6 = f1*f12; - f24 = f3*f16; - f7 = f7+f28; - heapFloat[(r11+1)] = f23; - heapFloat[(r11+2)] = f7; - f7 = f4*f12; - f23 = f5*f16; - f6 = f6+f24; - f24 = f9*f20; - f28 = f13*f12; - f29 = f17*f16; - f7 = f7+f23; - f23 = f22*f20; - f6 = f6+f24; - heap32[(r11+3)] = 0; - f24 = f28+f29; - f28 = f21*f20; - f7 = f7+f23; - heapFloat[(r11+4)] = f6; - f1 = f1*f10; - f3 = f3*f14; - f6 = f24+f28; - heapFloat[(r11+5)] = f7; - heapFloat[(r11+6)] = f6; - f4 = f4*f10; - f5 = f5*f14; - f1 = f1+f3; - f3 = f9*f18; - f6 = f13*f10; - f7 = f17*f14; - f4 = f4+f5; - f5 = f22*f18; - f1 = f1+f3; - heap32[(r11+7)] = 0; - f0 = f0*f11; - f2 = f2*f15; - f3 = f6+f7; - f6 = f21*f18; - f4 = f4+f5; - heapFloat[(r11+8)] = f1; - f1 = f12*f11; - f5 = f16*f15; - f0 = f0+f2; - f2 = f8*f19; - f3 = f3+f6; - heapFloat[(r11+9)] = f4; - f0 = f0+f2; - heapFloat[(r11+10)] = f3; - f2 = f10*f11; - f3 = f14*f15; - f1 = f1+f5; - f4 = f20*f19; - f1 = f1+f4; - f2 = f2+f3; - f3 = f18*f19; - f0 = f0+f27; - heap32[(r11+11)] = 0; - f2 = f2+f3; - f1 = f1+f26; - heapFloat[(r11+12)] = f0; - f0 = f2+f25; - heapFloat[(r11+13)] = f1; - heapFloat[(r11+14)] = f0; - heap32[(r11+15)] = 0; -if(!(r8 ==0)) //_LBB669_22 -{ - r12 = heap32[(r1)]; - r12 = r12 >> 2; - r12 = heap32[(r12+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r12)>>2](i7); - r13 = r_g0 >> 2; - r13 = heap32[(r13)]; - r13 = r13 >> 2; - r13 = heap32[(r13+14)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r4; - f0 = heapFloat[(fp+-191)]; - heapFloat[(g0+2)] = f0; - __FUNCTION_TABLE__[(r13)>>2](i7); -} - r12 = heap32[(r10+6)]; - r12 = r12 >> 2; - f0 = heapFloat[(r12+1)]; - f1 = heapFloat[(r10+88)]; - f2 = heapFloat[(r12+2)]; - f3 = heapFloat[(r10+92)]; - f4 = heapFloat[(r10+89)]; - f5 = heapFloat[(r10+93)]; - f6 = f1*f0; - f7 = f3*f2; - f8 = heapFloat[(r12+3)]; - f9 = heapFloat[(r10+96)]; - f10 = heapFloat[(r12+9)]; - f11 = heapFloat[(r10+100)]; - f12 = heapFloat[(r12+5)]; - f13 = heapFloat[(r10+90)]; - f14 = heapFloat[(r12+10)]; - f15 = heapFloat[(r10+101)]; - f16 = heapFloat[(r12+6)]; - f17 = heapFloat[(r10+94)]; - f18 = heapFloat[(r12+11)]; - f19 = heapFloat[(r10+102)]; - f20 = heapFloat[(r12+7)]; - f21 = heapFloat[(r10+98)]; - f22 = heapFloat[(r10+97)]; - f23 = f4*f0; - f24 = f5*f2; - f6 = f6+f7; - f7 = f9*f8; - f25 = heapFloat[(r12+15)]; - f26 = heapFloat[(r12+14)]; - f27 = heapFloat[(r12+13)]; - f28 = f13*f0; - f29 = f17*f2; - f23 = f23+f24; - f24 = f22*f8; - f6 = f6+f7; - f7 = f28+f29; - f28 = f21*f8; - f23 = f23+f24; - heapFloat[(fp+-98)] = f6; - f6 = f1*f12; - f24 = f3*f16; - f7 = f7+f28; - heapFloat[(r11+1)] = f23; - heapFloat[(r11+2)] = f7; - f7 = f4*f12; - f23 = f5*f16; - f6 = f6+f24; - f24 = f9*f20; - f28 = f13*f12; - f29 = f17*f16; - f7 = f7+f23; - f23 = f22*f20; - f6 = f6+f24; - heap32[(r11+3)] = 0; - f24 = f28+f29; - f28 = f21*f20; - f7 = f7+f23; - heapFloat[(r11+4)] = f6; - f1 = f1*f10; - f3 = f3*f14; - f6 = f24+f28; - heapFloat[(r11+5)] = f7; - heapFloat[(r11+6)] = f6; - f4 = f4*f10; - f5 = f5*f14; - f1 = f1+f3; - f3 = f9*f18; - f6 = f13*f10; - f7 = f17*f14; - f4 = f4+f5; - f5 = f22*f18; - f1 = f1+f3; - heap32[(r11+7)] = 0; - f0 = f0*f11; - f2 = f2*f15; - f3 = f6+f7; - f6 = f21*f18; - f4 = f4+f5; - heapFloat[(r11+8)] = f1; - f1 = f12*f11; - f5 = f16*f15; - f0 = f0+f2; - f2 = f8*f19; - f3 = f3+f6; - heapFloat[(r11+9)] = f4; - f0 = f0+f2; - heapFloat[(r11+10)] = f3; - f2 = f10*f11; - f3 = f14*f15; - f1 = f1+f5; - f4 = f20*f19; - f1 = f1+f4; - f2 = f2+f3; - f3 = f18*f19; - f0 = f0+f27; - heap32[(r11+11)] = 0; - f2 = f2+f3; - f1 = f1+f26; - heapFloat[(r11+12)] = f0; - f0 = f2+f25; - heapFloat[(r11+13)] = f1; - heapFloat[(r11+14)] = f0; - heap32[(r11+15)] = 0; -if(!(r8 ==0)) //_LBB669_24 -{ - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r8)>>2](i7); - r12 = r_g0 >> 2; - r12 = heap32[(r12)]; - r12 = r12 >> 2; - r12 = heap32[(r12+14)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r4; - f0 = heapFloat[(fp+-191)]; - heapFloat[(g0+2)] = f0; - __FUNCTION_TABLE__[(r12)>>2](i7); -} - if(r9 ==0) //_LBB669_52 -{ -break _7; -} -else{ - r8 = sp + -408; - heap32[(g0)] = r8; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 1086506843; - f0 = heapFloat[(fp+-191)]; - heapFloat[(g0+3)] = f0; - _ZNK21btConeTwistConstraint16GetPointForAngleEff(i7); - r9 = r8 >> 2; - f0 = heapFloat[(fp+-102)]; - f1 = heapFloat[(fp+-98)]; - f2 = heapFloat[(r9+1)]; - f3 = heapFloat[(r11+1)]; - f4 = heapFloat[(r11+4)]; - f5 = heapFloat[(r11+5)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r9+2)]; - f7 = heapFloat[(r11+2)]; - f8 = heapFloat[(r11+8)]; - f9 = heapFloat[(r11+9)]; - f10 = heapFloat[(r11+6)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f7 = heapFloat[(r11+10)]; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f10*f6; - f1 = f1+f3; - f3 = heapFloat[(r11+12)]; - f8 = heapFloat[(r11+14)]; - f9 = heapFloat[(r11+13)]; - f4 = f4+f5; - f0 = f0+f2; - f2 = f7*f6; - f1 = f1+f3; - f0 = f0+f2; - f2 = f4+f9; - heapFloat[(fp+-102)] = f1; - f0 = f0+f8; - heapFloat[(r9+1)] = f2; - r12 = 0; - heapFloat[(r9+2)] = f0; - heap32[(r9+3)] = 0; -_20: while(true){ - f0 = r12; //fitos r12, f0 - f1 = 6.2831850051879883; - f0 = f0*f1; - f1 = 32; - r13 = sp + -472; - f0 = f0/f1; - heap32[(g0)] = r13; - heap32[(g0+1)] = r2; - heapFloat[(g0+2)] = f0; - f0 = heapFloat[(fp+-191)]; - heapFloat[(g0+3)] = f0; - _ZNK21btConeTwistConstraint16GetPointForAngleEff(i7); - r14 = r13 >> 2; - f0 = heapFloat[(fp+-118)]; - f1 = heapFloat[(fp+-98)]; - f2 = heapFloat[(r14+1)]; - f3 = heapFloat[(r11+1)]; - f4 = heapFloat[(r11+4)]; - f5 = heapFloat[(r11+5)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r14+2)]; - f7 = heapFloat[(r11+2)]; - f8 = heapFloat[(r11+8)]; - f9 = heapFloat[(r11+9)]; - f10 = heapFloat[(r11+6)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f7 = heapFloat[(r11+10)]; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f10*f6; - f1 = f1+f3; - f3 = heapFloat[(r11+12)]; - f8 = heapFloat[(r11+14)]; - f9 = heapFloat[(r11+13)]; - f4 = f4+f5; - f0 = f0+f2; - f2 = f7*f6; - f1 = f1+f3; - f0 = f0+f2; - f2 = f4+f9; - heapFloat[(fp+-118)] = f1; - f0 = f0+f8; - heapFloat[(r14+1)] = f2; - heapFloat[(r14+2)] = f0; - heap32[(r14+3)] = 0; - r15 = heap32[(r1)]; - r15 = r15 >> 2; - r15 = heap32[(r15+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r15)>>2](i7); - r16 = r_g0 >> 2; - r16 = heap32[(r16)]; - r16 = r16 >> 2; - r16 = heap32[(r16+2)]; - r17 = sp + -152; - r18 = r17 >> 2; - heap32[(fp+-38)] = 0; - heap32[(r18+1)] = 0; - heap32[(r18+2)] = 0; - heap32[(r18+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r13; - heap32[(g0+3)] = r17; - r15 = r12 & 3; - __FUNCTION_TABLE__[(r16)>>2](i7); -if(!(r15 !=0)) //_LBB669_28 -{ - r15 = heap32[(r1)]; - r15 = r15 >> 2; - r15 = heap32[(r15+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r15)>>2](i7); - r16 = r_g0 >> 2; - r16 = heap32[(r16)]; - r16 = r16 >> 2; - r16 = heap32[(r16+2)]; - r17 = sp + -136; - r18 = r17 >> 2; - heap32[(fp+-34)] = 0; - heap32[(r18+1)] = 0; - heap32[(r18+2)] = 0; - heap32[(r18+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r13; - heap32[(g0+3)] = r17; - __FUNCTION_TABLE__[(r16)>>2](i7); -} - heap32[(fp+-102)] = heap32[(fp+-118)]; - heap32[(r9+1)] = heap32[(r14+1)]; - r12 = (r12 + 1)|0; - heap32[(r9+2)] = heap32[(r14+2)]; - heap32[(r9+3)] = heap32[(r14+3)]; -if(!(r12 !=32)) //_LBB669_26 -{ -break _20; -} -} - r2 = heap32[(r10+6)]; - f0 = heapFloat[(r10+110)]; - heapFloat[(fp+-193)] = f0; - f0 = heapFloat[(r10+125)]; - heapFloat[(fp+-194)] = f0; - r2 = r2 >> 2; - f0 = heapFloat[(r2+84)]; - f1 = heapFloat[(fp+-192)]; - if(f0 <=f1) //_LBB669_31 -{ - r2 = heap32[(r10+5)]; - r2 = r2 >> 2; - f0 = heapFloat[(r10+84)]; - f1 = heapFloat[(r2+9)]; - f2 = heapFloat[(r2+5)]; - f3 = heapFloat[(r2+1)]; - f4 = heapFloat[(r10+85)]; - f5 = heapFloat[(r2+10)]; - f6 = heapFloat[(r2+6)]; - f8 = heapFloat[(r2+2)]; - f12 = heapFloat[(r10+74)]; - f13 = heapFloat[(r10+78)]; - f14 = heapFloat[(r10+73)]; - f15 = heapFloat[(r10+77)]; - f7 = heapFloat[(r10+72)]; - f9 = heapFloat[(r10+76)]; - f10 = f1*f0; - f11 = f5*f4; - f16 = f2*f0; - f17 = f6*f4; - f0 = f3*f0; - f4 = f8*f4; - f18 = heapFloat[(r10+86)]; - f19 = heapFloat[(r2+11)]; - f20 = heapFloat[(r2+7)]; - f21 = heapFloat[(r2+3)]; - f22 = heapFloat[(r10+82)]; - f23 = heapFloat[(r10+81)]; - f24 = heapFloat[(r10+80)]; - f10 = f10+f11; - f11 = f19*f18; - f16 = f16+f17; - f17 = f20*f18; - f0 = f0+f4; - heapFloat[(fp+-192)] = f0; - f4 = f21*f18; - f18 = f12*f1; - f25 = f13*f5; - f26 = f14*f1; - f27 = f15*f5; - f1 = f7*f1; - f5 = f9*f5; - f28 = f12*f2; - f29 = f13*f6; - f30 = f14*f2; - f0 = f15*f6; - f2 = f7*f2; - f6 = f9*f6; - f12 = f12*f3; - f13 = f13*f8; - f14 = f14*f3; - f15 = f15*f8; - f3 = f7*f3; - f8 = f9*f8; - f7 = f10+f11; - f9 = heapFloat[(r2+15)]; - f10 = f16+f17; - f11 = heapFloat[(r2+14)]; - f16 = heapFloat[(fp+-192)]; - f4 = f16+f4; - f16 = heapFloat[(r2+13)]; - f17 = f18+f25; - f18 = f22*f19; - f25 = f26+f27; - f26 = f23*f19; - f1 = f1+f5; - f5 = f24*f19; - f19 = f28+f29; - f27 = f22*f20; - f0 = f30+f0; - f28 = f23*f20; - f2 = f2+f6; - f6 = f24*f20; - f20 = f12+f13; - f22 = f22*f21; - f29 = f14+f15; - f23 = f23*f21; - f3 = f3+f8; - f21 = f24*f21; - f12 = f7+f9; - f13 = f10+f11; - f4 = f4+f16; - f14 = f17+f18; - f15 = f25+f26; - f1 = f1+f5; - f5 = f19+f27; - f0 = f0+f28; - f2 = f2+f6; - f6 = f20+f22; - f8 = f29+f23; - f3 = f3+f21; -} -else{ - f0 = heapFloat[(r10+100)]; - f1 = heapFloat[(r2+9)]; - f2 = heapFloat[(r2+5)]; - f3 = heapFloat[(r2+1)]; - f4 = heapFloat[(r10+101)]; - f5 = heapFloat[(r2+10)]; - f6 = heapFloat[(r2+6)]; - f7 = heapFloat[(r2+2)]; - f8 = heapFloat[(r10+90)]; - f9 = heapFloat[(r10+94)]; - f10 = heapFloat[(r10+89)]; - f11 = heapFloat[(r10+93)]; - f12 = heapFloat[(r10+88)]; - f13 = heapFloat[(r10+92)]; - f14 = f1*f0; - f15 = f5*f4; - f16 = f2*f0; - f17 = f6*f4; - f0 = f3*f0; - f4 = f7*f4; - f18 = heapFloat[(r10+102)]; - f19 = heapFloat[(r2+11)]; - f20 = heapFloat[(r2+7)]; - f21 = heapFloat[(r2+3)]; - f22 = heapFloat[(r10+98)]; - f23 = heapFloat[(r10+97)]; - f24 = heapFloat[(r10+96)]; - f14 = f14+f15; - f15 = f19*f18; - f16 = f16+f17; - f17 = f20*f18; - f0 = f0+f4; - heapFloat[(fp+-192)] = f0; - f4 = f21*f18; - f18 = f8*f1; - f25 = f9*f5; - f26 = f10*f1; - f27 = f11*f5; - f1 = f12*f1; - f5 = f13*f5; - f28 = f8*f2; - f29 = f9*f6; - f30 = f10*f2; - f0 = f11*f6; - f2 = f12*f2; - f6 = f13*f6; - f8 = f8*f3; - f9 = f9*f7; - f10 = f10*f3; - f11 = f11*f7; - f3 = f12*f3; - f7 = f13*f7; - f12 = f14+f15; - f13 = heapFloat[(r2+15)]; - f14 = f16+f17; - f15 = heapFloat[(r2+14)]; - f16 = heapFloat[(fp+-192)]; - f4 = f16+f4; - f16 = heapFloat[(r2+13)]; - f17 = f18+f25; - f18 = f22*f19; - f25 = f26+f27; - f26 = f23*f19; - f1 = f1+f5; - f5 = f24*f19; - f19 = f28+f29; - f27 = f22*f20; - f0 = f30+f0; - f28 = f23*f20; - f2 = f2+f6; - f6 = f24*f20; - f8 = f8+f9; - f9 = f22*f21; - f10 = f10+f11; - f11 = f23*f21; - f3 = f3+f7; - f7 = f24*f21; - f12 = f12+f13; - f13 = f14+f15; - f4 = f4+f16; - f14 = f17+f18; - f15 = f25+f26; - f1 = f1+f5; - f5 = f19+f27; - f0 = f0+f28; - f2 = f2+f6; - f6 = f8+f9; - f8 = f10+f11; - f3 = f3+f7; -} - heapFloat[(fp+-98)] = f3; - heapFloat[(r11+1)] = f8; - heapFloat[(r11+2)] = f6; - heap32[(r11+3)] = 0; - heapFloat[(r11+4)] = f2; - heapFloat[(r11+5)] = f0; - heapFloat[(r11+6)] = f5; - heap32[(r11+7)] = 0; - heapFloat[(r11+8)] = f1; - heapFloat[(r11+9)] = f15; - heapFloat[(r11+10)] = f14; - heap32[(r11+11)] = 0; - heapFloat[(r11+12)] = f4; - heapFloat[(r11+13)] = f13; - heapFloat[(r11+14)] = f12; - r2 = sp + -424; - heap32[(r11+15)] = 0; - r8 = r2 >> 2; - heapFloat[(fp+-106)] = f4; - heapFloat[(r8+1)] = f13; - heapFloat[(r8+2)] = f12; - r9 = sp + -440; - heap32[(r8+3)] = 0; - r8 = r9 >> 2; - heapFloat[(fp+-110)] = f3; - heapFloat[(r8+1)] = f2; - heapFloat[(r8+2)] = f1; - r10 = sp + -456; - heap32[(r8+3)] = 0; - r8 = r10 >> 2; - heapFloat[(fp+-114)] = f8; - heapFloat[(r8+1)] = f0; - heapFloat[(r8+2)] = f15; - heap32[(r8+3)] = 0; - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r8)>>2](i7); - r11 = r_g0 >> 2; - r11 = heap32[(r11)]; - r11 = r11 >> 2; - r11 = heap32[(r11+15)]; - r12 = sp + -120; - r13 = r12 >> 2; - heap32[(fp+-30)] = 0; - heap32[(r13+1)] = 0; - heap32[(r13+2)] = 0; - heap32[(r13+3)] = 0; - f0 = heapFloat[(fp+-194)]; - f1 = -f0; - f2 = heapFloat[(fp+-193)]; - f1 = f1-f2; - f0 = f2-f0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r10; - f2 = heapFloat[(fp+-191)]; - heapFloat[(g0+4)] = f2; - heapFloat[(g0+5)] = f2; - heapFloat[(g0+6)] = f1; - heapFloat[(g0+7)] = f0; - heap32[(g0+8)] = r12; - heap32[(g0+9)] = 1; - heap32[(g0+10)] = 1092616192; - __FUNCTION_TABLE__[(r11)>>2](i7); -} -} -else{ - if(r11 ==6) //_LBB669_33 -{ - r11 = sp + -536; - r12 = r11 >> 2; - heap32[(fp+-134)] = heap32[(r10+263)]; - heap32[(r12+1)] = heap32[(r10+264)]; - heap32[(r12+2)] = heap32[(r10+265)]; - heap32[(r12+3)] = heap32[(r10+266)]; - heap32[(r12+4)] = heap32[(r10+267)]; - heap32[(r12+5)] = heap32[(r10+268)]; - heap32[(r12+6)] = heap32[(r10+269)]; - heap32[(r12+7)] = heap32[(r10+270)]; - heap32[(r12+8)] = heap32[(r10+271)]; - heap32[(r12+9)] = heap32[(r10+272)]; - heap32[(r12+10)] = heap32[(r10+273)]; - heap32[(r12+11)] = heap32[(r10+274)]; - heap32[(r12+12)] = heap32[(r10+275)]; - heap32[(r12+13)] = heap32[(r10+276)]; - heap32[(r12+14)] = heap32[(r10+277)]; - heap32[(r12+15)] = heap32[(r10+278)]; -if(!(r8 ==0)) //_LBB669_35 -{ - r13 = heap32[(r1)]; - r13 = r13 >> 2; - r13 = heap32[(r13+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r13)>>2](i7); - r14 = r_g0 >> 2; - r14 = heap32[(r14)]; - r14 = r14 >> 2; - r14 = heap32[(r14+14)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r11; - f0 = heapFloat[(fp+-191)]; - heapFloat[(g0+2)] = f0; - __FUNCTION_TABLE__[(r14)>>2](i7); -} - heap32[(fp+-134)] = heap32[(r10+279)]; - heap32[(r12+1)] = heap32[(r10+280)]; - heap32[(r12+2)] = heap32[(r10+281)]; - heap32[(r12+3)] = heap32[(r10+282)]; - heap32[(r12+4)] = heap32[(r10+283)]; - heap32[(r12+5)] = heap32[(r10+284)]; - heap32[(r12+6)] = heap32[(r10+285)]; - heap32[(r12+7)] = heap32[(r10+286)]; - heap32[(r12+8)] = heap32[(r10+287)]; - heap32[(r12+9)] = heap32[(r10+288)]; - heap32[(r12+10)] = heap32[(r10+289)]; - heap32[(r12+11)] = heap32[(r10+290)]; - heap32[(r12+12)] = heap32[(r10+291)]; - heap32[(r12+13)] = heap32[(r10+292)]; - heap32[(r12+14)] = heap32[(r10+293)]; - heap32[(r12+15)] = heap32[(r10+294)]; -if(!(r8 ==0)) //_LBB669_37 -{ - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r8)>>2](i7); - r13 = r_g0 >> 2; - r13 = heap32[(r13)]; - r13 = r13 >> 2; - r13 = heap32[(r13+14)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r11; - f0 = heapFloat[(fp+-191)]; - heapFloat[(g0+2)] = f0; - __FUNCTION_TABLE__[(r13)>>2](i7); -} - if(r9 ==0) //_LBB669_52 -{ -break _7; -} -else{ - r2 = (r2 + 1164)|0; - f0 = heapFloat[(r10+263)]; - heapFloat[(fp+-134)] = f0; - heap32[(r12+1)] = heap32[(r10+264)]; - f1 = heapFloat[(r10+265)]; - heapFloat[(r12+2)] = f1; - heap32[(r12+3)] = heap32[(r10+266)]; - f2 = heapFloat[(r10+267)]; - heapFloat[(r12+4)] = f2; - heap32[(r12+5)] = heap32[(r10+268)]; - f3 = heapFloat[(r10+269)]; - heapFloat[(r12+6)] = f3; - heap32[(r12+7)] = heap32[(r10+270)]; - f4 = heapFloat[(r10+271)]; - heapFloat[(r12+8)] = f4; - heap32[(r12+9)] = heap32[(r10+272)]; - f5 = heapFloat[(r10+273)]; - heapFloat[(r12+10)] = f5; - heap32[(r12+11)] = heap32[(r10+274)]; - heap32[(r12+12)] = heap32[(r10+275)]; - heap32[(r12+13)] = heap32[(r10+276)]; - heap32[(r12+14)] = heap32[(r10+277)]; - r8 = sp + -552; - heap32[(r12+15)] = heap32[(r10+278)]; - r9 = r8 >> 2; - heapFloat[(fp+-138)] = f1; - heapFloat[(r9+1)] = f3; - heapFloat[(r9+2)] = f5; - heap32[(r9+3)] = 0; - r9 = sp + -568; - heapFloat[(fp+-142)] = f0; - r13 = r9 >> 2; - heapFloat[(r13+1)] = f2; - heapFloat[(r13+2)] = f4; - heap32[(r13+3)] = 0; - r14 = heap32[(r1)]; - r14 = r14 >> 2; - r14 = heap32[(r14+4)]; - f0 = heapFloat[(r10+230)]; - f1 = heapFloat[(r10+231)]; - f2 = heapFloat[(r10+246)]; - f3 = heapFloat[(r10+247)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r14)>>2](i7); - r15 = r_g0 >> 2; - r15 = heap32[(r15)]; - r15 = r15 >> 2; - r15 = heap32[(r15+16)]; - r16 = sp + -104; - r17 = r16 >> 2; - heap32[(fp+-26)] = 0; - heap32[(r17+1)] = 0; - heap32[(r17+2)] = 0; - heap32[(r17+3)] = 0; - f4 = 0.89999997615814209; - f5 = heapFloat[(fp+-191)]; - f4 = f5*f4; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r9; - heapFloat[(g0+4)] = f4; - heapFloat[(g0+5)] = f0; - heapFloat[(g0+6)] = f1; - heapFloat[(g0+7)] = f2; - heapFloat[(g0+8)] = f3; - heap32[(g0+9)] = r16; - heap32[(g0+10)] = 1092616192; - __FUNCTION_TABLE__[(r15)>>2](i7); - f0 = heapFloat[(r12+9)]; - f1 = heapFloat[(r12+5)]; - heap32[(fp+-142)] = heap32[(r12+1)]; - heapFloat[(r13+1)] = f1; - heapFloat[(r13+2)] = f0; - heap32[(r13+3)] = 0; - f0 = heapFloat[(r10+296)]; - f1 = heapFloat[(r10+297)]; - heapFloat[(g0)] = f0; - cosf(i7); - f2 = f_g0; - heapFloat[(g0)] = f0; - sinf(i7); - f0 = f_g0; - heapFloat[(g0)] = f1; - cosf(i7); - f3 = f_g0; - heapFloat[(g0)] = f1; - sinf(i7); - f4 = heapFloat[(fp+-142)]; - f5 = f2*f3; - f6 = heapFloat[(r13+1)]; - f7 = f2*f_g0; - f8 = heapFloat[(r13+2)]; - f5 = f5*f4; - f7 = f7*f6; - f9 = f3*f0; - f10 = f_g0*f0; - f5 = f5+f7; - f0 = f8*f0; - r8 = sp + -584; - f7 = f9*f4; - f9 = f10*f6; - f3 = f6*f3; - f1 = f4*f_g0; - f0 = f5-f0; - r9 = r8 >> 2; - f4 = f7+f9; - f2 = f8*f2; - f1 = f3-f1; - heapFloat[(fp+-146)] = f0; - f0 = f4+f2; - heapFloat[(r9+1)] = f1; - heapFloat[(r9+2)] = f0; - f0 = heapFloat[(r10+279)]; - heapFloat[(fp+-134)] = f0; - heap32[(r12+1)] = heap32[(r10+280)]; - heap32[(r12+2)] = heap32[(r10+281)]; - heap32[(r12+3)] = heap32[(r10+282)]; - f1 = heapFloat[(r10+283)]; - heapFloat[(r12+4)] = f1; - heap32[(r12+5)] = heap32[(r10+284)]; - heap32[(r12+6)] = heap32[(r10+285)]; - heap32[(r12+7)] = heap32[(r10+286)]; - f2 = heapFloat[(r10+287)]; - heapFloat[(r12+8)] = f2; - heap32[(r12+9)] = heap32[(r10+288)]; - heap32[(r12+10)] = heap32[(r10+289)]; - heap32[(r12+11)] = heap32[(r10+290)]; - heap32[(r12+12)] = heap32[(r10+291)]; - heap32[(r12+13)] = heap32[(r10+292)]; - heap32[(r12+14)] = heap32[(r10+293)]; - r9 = sp + -600; - f0 = -f0; - heap32[(r12+15)] = heap32[(r10+294)]; - r13 = r9 >> 2; - f1 = -f1; - heapFloat[(fp+-150)] = f0; - f0 = -f2; - heapFloat[(r13+1)] = f1; - heapFloat[(r13+2)] = f0; - heap32[(r13+3)] = 0; - f0 = heapFloat[(r10+214)]; - f1 = heapFloat[(r10+215)]; - if(f0 <=f1) //_LBB669_40 -{ -if(!(f0 >=f1)) //_LBB669_42 -{ - r13 = heap32[(r1)]; - r13 = r13 >> 2; - r13 = heap32[(r13+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r13)>>2](i7); - r14 = r_g0 >> 2; - r14 = heap32[(r14)]; - r14 = r14 >> 2; - r14 = heap32[(r14+15)]; - r15 = sp + -72; - r16 = r15 >> 2; - heap32[(fp+-18)] = 0; - heap32[(r16+1)] = 0; - heap32[(r16+2)] = 0; - heap32[(r16+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r8; - f2 = heapFloat[(fp+-191)]; - heapFloat[(g0+4)] = f2; - heapFloat[(g0+5)] = f2; - heapFloat[(g0+6)] = f0; - heapFloat[(g0+7)] = f1; - heap32[(g0+8)] = r15; - heap32[(g0+9)] = 1; - heap32[(g0+10)] = 1092616192; - __FUNCTION_TABLE__[(r14)>>2](i7); -} -} -else{ - r13 = heap32[(r1)]; - r13 = r13 >> 2; - r13 = heap32[(r13+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r13)>>2](i7); - r14 = r_g0 >> 2; - r14 = heap32[(r14)]; - r14 = r14 >> 2; - r14 = heap32[(r14+15)]; - r15 = sp + -88; - r16 = r15 >> 2; - heap32[(fp+-22)] = 0; - heap32[(r16+1)] = 0; - heap32[(r16+2)] = 0; - heap32[(r16+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r8; - f0 = heapFloat[(fp+-191)]; - heapFloat[(g0+4)] = f0; - heapFloat[(g0+5)] = f0; - heap32[(g0+6)] = -1068953637; - heap32[(g0+7)] = 1078530011; - heap32[(g0+8)] = r15; - heap32[(g0+9)] = 0; - heap32[(g0+10)] = 1092616192; - __FUNCTION_TABLE__[(r14)>>2](i7); -} - heap32[(fp+-134)] = heap32[(r10+263)]; - heap32[(r12+1)] = heap32[(r10+264)]; - heap32[(r12+2)] = heap32[(r10+265)]; - heap32[(r12+3)] = heap32[(r10+266)]; - heap32[(r12+4)] = heap32[(r10+267)]; - heap32[(r12+5)] = heap32[(r10+268)]; - heap32[(r12+6)] = heap32[(r10+269)]; - heap32[(r12+7)] = heap32[(r10+270)]; - heap32[(r12+8)] = heap32[(r10+271)]; - heap32[(r12+9)] = heap32[(r10+272)]; - heap32[(r12+10)] = heap32[(r10+273)]; - heap32[(r12+11)] = heap32[(r10+274)]; - heap32[(r12+12)] = heap32[(r10+275)]; - heap32[(r12+13)] = heap32[(r10+276)]; - heap32[(r12+14)] = heap32[(r10+277)]; - r2 = sp + -616; - heap32[(r12+15)] = heap32[(r10+278)]; - r8 = r2 >> 2; - heap32[(fp+-154)] = heap32[(r10+167)]; - heap32[(r8+1)] = heap32[(r10+168)]; - heap32[(r8+2)] = heap32[(r10+169)]; - r9 = sp + -632; - heap32[(r8+3)] = heap32[(r10+170)]; - r8 = r9 >> 2; - heap32[(fp+-158)] = heap32[(r10+171)]; - heap32[(r8+1)] = heap32[(r10+172)]; - heap32[(r8+2)] = heap32[(r10+173)]; - heap32[(r8+3)] = heap32[(r10+174)]; - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r8)>>2](i7); - r10 = r_g0 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+18)]; - r12 = sp + -56; - r13 = r12 >> 2; - heap32[(fp+-14)] = 0; - heap32[(r13+1)] = 0; - heap32[(r13+2)] = 0; - heap32[(r13+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r11; - heap32[(g0+4)] = r12; - __FUNCTION_TABLE__[(r10)>>2](i7); -} -} -else{ - if(r11 ==7) //_LBB669_43 -{ - r11 = sp + -696; - r12 = r11 >> 2; - heap32[(fp+-174)] = heap32[(r10+203)]; - heap32[(r12+1)] = heap32[(r10+204)]; - heap32[(r12+2)] = heap32[(r10+205)]; - heap32[(r12+3)] = heap32[(r10+206)]; - heap32[(r12+4)] = heap32[(r10+207)]; - heap32[(r12+5)] = heap32[(r10+208)]; - heap32[(r12+6)] = heap32[(r10+209)]; - heap32[(r12+7)] = heap32[(r10+210)]; - heap32[(r12+8)] = heap32[(r10+211)]; - heap32[(r12+9)] = heap32[(r10+212)]; - heap32[(r12+10)] = heap32[(r10+213)]; - heap32[(r12+11)] = heap32[(r10+214)]; - heap32[(r12+12)] = heap32[(r10+215)]; - heap32[(r12+13)] = heap32[(r10+216)]; - heap32[(r12+14)] = heap32[(r10+217)]; - heap32[(r12+15)] = heap32[(r10+218)]; -if(!(r8 ==0)) //_LBB669_45 -{ - r13 = heap32[(r1)]; - r13 = r13 >> 2; - r13 = heap32[(r13+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r13)>>2](i7); - r14 = r_g0 >> 2; - r14 = heap32[(r14)]; - r14 = r14 >> 2; - r14 = heap32[(r14+14)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r11; - f0 = heapFloat[(fp+-191)]; - heapFloat[(g0+2)] = f0; - __FUNCTION_TABLE__[(r14)>>2](i7); -} - heap32[(fp+-174)] = heap32[(r10+219)]; - heap32[(r12+1)] = heap32[(r10+220)]; - heap32[(r12+2)] = heap32[(r10+221)]; - heap32[(r12+3)] = heap32[(r10+222)]; - heap32[(r12+4)] = heap32[(r10+223)]; - heap32[(r12+5)] = heap32[(r10+224)]; - heap32[(r12+6)] = heap32[(r10+225)]; - heap32[(r12+7)] = heap32[(r10+226)]; - heap32[(r12+8)] = heap32[(r10+227)]; - heap32[(r12+9)] = heap32[(r10+228)]; - heap32[(r12+10)] = heap32[(r10+229)]; - heap32[(r12+11)] = heap32[(r10+230)]; - heap32[(r12+12)] = heap32[(r10+231)]; - heap32[(r12+13)] = heap32[(r10+232)]; - heap32[(r12+14)] = heap32[(r10+233)]; - heap32[(r12+15)] = heap32[(r10+234)]; -if(!(r8 ==0)) //_LBB669_47 -{ - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r8)>>2](i7); - r12 = r_g0 >> 2; - r12 = heap32[(r12)]; - r12 = r12 >> 2; - r12 = heap32[(r12+14)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r11; - f0 = heapFloat[(fp+-191)]; - heapFloat[(g0+2)] = f0; - __FUNCTION_TABLE__[(r12)>>2](i7); -} - if(r9 ==0) //_LBB669_52 -{ -break _7; -} -else{ - r8 = (r2 + 924)|0; - r9 = heapU8[r2+168]; - if(r9 ==0) //_LBB669_50 -{ - r2 = (r2 + 876)|0; -} -else{ - r2 = (r2 + 812)|0; -} - r2 = r2 >> 2; - f0 = heapFloat[(r2+1)]; - f1 = heapFloat[(r10+43)]; - f2 = heapFloat[(r2)]; - f3 = heapFloat[(r2+2)]; - f4 = heapFloat[(r2+5)]; - f5 = heapFloat[(r2+4)]; - f6 = f2*f1; - f7 = heapFloat[(fp+-192)]; - f8 = f0*f7; - f9 = heapFloat[(r2+6)]; - f10 = heapFloat[(r2+9)]; - f11 = heapFloat[(r2+8)]; - f12 = f5*f1; - f13 = f4*f7; - f6 = f6+f8; - f3 = f3*f7; - f14 = heapFloat[(r2+10)]; - f1 = f11*f1; - f15 = f10*f7; - f12 = f12+f13; - f9 = f9*f7; - f6 = f6+f3; - f16 = heapFloat[(r2+12)]; - f17 = heapFloat[(r2+13)]; - f18 = heapFloat[(r2+14)]; - r2 = sp + -712; - f12 = f12+f9; - f1 = f1+f15; - f7 = f14*f7; - f6 = f6+f16; - f1 = f1+f7; - r9 = r2 >> 2; - f12 = f12+f17; - heapFloat[(fp+-178)] = f6; - f1 = f1+f18; - heapFloat[(r9+1)] = f12; - heapFloat[(r9+2)] = f1; - heap32[(r9+3)] = 0; - f1 = heapFloat[(r10+44)]; - f6 = f2*f1; - f12 = f5*f1; - f6 = f6+f8; - f1 = f11*f1; - f8 = f12+f13; - f3 = f6+f3; - r9 = sp + -728; - f1 = f1+f15; - f6 = f8+f9; - f3 = f3+f16; - f1 = f1+f7; - r11 = r9 >> 2; - f6 = f6+f17; - heapFloat[(fp+-182)] = f3; - f1 = f1+f18; - heapFloat[(r11+1)] = f6; - heapFloat[(r11+2)] = f1; - heap32[(r11+3)] = 0; - r11 = heap32[(r1)]; - r11 = r11 >> 2; - r11 = heap32[(r11+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r11)>>2](i7); - r12 = r_g0 >> 2; - r12 = heap32[(r12)]; - r12 = r12 >> 2; - r12 = heap32[(r12+2)]; - r13 = sp + -40; - r14 = r13 >> 2; - heap32[(fp+-10)] = 0; - heap32[(r14+1)] = 0; - heap32[(r14+2)] = 0; - heap32[(r14+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r13; - __FUNCTION_TABLE__[(r12)>>2](i7); - r2 = sp + -744; - r9 = r2 >> 2; - heapFloat[(fp+-186)] = f2; - heapFloat[(r9+1)] = f5; - heapFloat[(r9+2)] = f11; - r11 = sp + -760; - heap32[(r9+3)] = 0; - r9 = r11 >> 2; - heapFloat[(fp+-190)] = f0; - heapFloat[(r9+1)] = f4; - heapFloat[(r9+2)] = f10; - heap32[(r9+3)] = 0; - r9 = heap32[(r1)]; - r9 = r9 >> 2; - r9 = heap32[(r9+4)]; - f0 = heapFloat[(r10+45)]; - f1 = heapFloat[(r10+46)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r9)>>2](i7); - r10 = r_g0 >> 2; - r10 = heap32[(r10)]; - r10 = r10 >> 2; - r10 = heap32[(r10+15)]; - r12 = sp + -24; - r13 = r12 >> 2; - heap32[(fp+-6)] = 0; - heap32[(r13+1)] = 0; - heap32[(r13+2)] = 0; - heap32[(r13+3)] = 0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r11; - f2 = heapFloat[(fp+-191)]; - heapFloat[(g0+4)] = f2; - heapFloat[(g0+5)] = f2; - heapFloat[(g0+6)] = f0; - heapFloat[(g0+7)] = f1; - heap32[(g0+8)] = r12; - heap32[(g0+9)] = 1; - heap32[(g0+10)] = 1092616192; - __FUNCTION_TABLE__[(r10)>>2](i7); -} -} -else{ -break _7; -} -} -} -} -else{ - if(r11 ==3) //_LBB669_11 -{ - r2 = sp + -232; - r9 = r2 >> 2; - heap32[(fp+-58)] = 1065353216; - heap32[(r9+1)] = 0; - heap32[(r9+2)] = 0; - heap32[(r9+3)] = 0; - heap32[(r9+4)] = 0; - heap32[(r9+5)] = 1065353216; - heap32[(r9+6)] = 0; - heap32[(r9+7)] = 0; - heap32[(r9+8)] = 0; - heap32[(r9+9)] = 0; - heap32[(r9+10)] = 1065353216; - heap32[(r9+11)] = 0; - heap32[(r9+12)] = 0; - heap32[(r9+13)] = 0; - heap32[(r9+14)] = 0; - heap32[(r9+15)] = 0; - r11 = heap32[(r10+5)]; - r11 = r11 >> 2; - f0 = heapFloat[(r10+72)]; - f1 = heapFloat[(r11+1)]; - f2 = heapFloat[(r10+73)]; - f3 = heapFloat[(r11+2)]; - f4 = heapFloat[(r11+5)]; - f5 = heapFloat[(r11+6)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r10+74)]; - f7 = heapFloat[(r11+3)]; - f8 = heapFloat[(r11+9)]; - f9 = heapFloat[(r11+10)]; - f10 = heapFloat[(r11+7)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f7 = heapFloat[(r11+11)]; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f10*f6; - f1 = f1+f3; - f3 = heapFloat[(r11+13)]; - f8 = heapFloat[(r11+15)]; - f9 = heapFloat[(r11+14)]; - f4 = f4+f5; - f0 = f0+f2; - f2 = f7*f6; - f1 = f1+f3; - f0 = f0+f2; - f2 = f4+f9; - heapFloat[(r9+12)] = f1; - f0 = f0+f8; - heapFloat[(r9+13)] = f2; - heapFloat[(r9+14)] = f0; - heap32[(r9+15)] = 0; - r11 = heap32[(r1)]; - r11 = r11 >> 2; - r11 = heap32[(r11+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r11)>>2](i7); - r12 = r_g0 >> 2; - r12 = heap32[(r12)]; - r12 = r12 >> 2; - r12 = heap32[(r12+14)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r2; - f0 = heapFloat[(fp+-191)]; - heapFloat[(g0+2)] = f0; - __FUNCTION_TABLE__[(r12)>>2](i7); - r11 = heap32[(r10+6)]; - r11 = r11 >> 2; - f0 = heapFloat[(r10+76)]; - f1 = heapFloat[(r11+1)]; - f2 = heapFloat[(r10+77)]; - f3 = heapFloat[(r11+2)]; - f4 = heapFloat[(r11+5)]; - f5 = heapFloat[(r11+6)]; - f1 = f1*f0; - f3 = f3*f2; - f6 = heapFloat[(r10+78)]; - f7 = heapFloat[(r11+3)]; - f8 = heapFloat[(r11+9)]; - f9 = heapFloat[(r11+10)]; - f10 = heapFloat[(r11+7)]; - f4 = f4*f0; - f5 = f5*f2; - f1 = f1+f3; - f3 = f7*f6; - f7 = heapFloat[(r11+11)]; - f0 = f8*f0; - f2 = f9*f2; - f4 = f4+f5; - f5 = f10*f6; - f1 = f1+f3; - f3 = heapFloat[(r11+13)]; - f8 = heapFloat[(r11+15)]; - f9 = heapFloat[(r11+14)]; - f4 = f4+f5; - f0 = f0+f2; - f2 = f7*f6; - f1 = f1+f3; - f0 = f0+f2; - f2 = f4+f9; - heapFloat[(r9+12)] = f1; - f0 = f0+f8; - heapFloat[(r9+13)] = f2; - heapFloat[(r9+14)] = f0; - heap32[(r9+15)] = 0; -if(!(r8 ==0)) //_LBB669_52 -{ - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r8)>>2](i7); - r9 = r_g0 >> 2; - r9 = heap32[(r9)]; - r9 = r9 >> 2; - r9 = heap32[(r9+14)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r2; - f0 = heapFloat[(fp+-191)]; - heapFloat[(g0+2)] = f0; - __FUNCTION_TABLE__[(r9)>>2](i7); -} -} -else{ - if(r11 ==4) //_LBB669_13 -{ - r2 = heap32[(r10+5)]; - r2 = r2 >> 2; - f0 = heapFloat[(r2+1)]; - f1 = heapFloat[(r10+135)]; - f2 = heapFloat[(r2+2)]; - f3 = heapFloat[(r10+139)]; - f4 = heapFloat[(r10+136)]; - f5 = heapFloat[(r10+140)]; - f6 = f1*f0; - f7 = f3*f2; - f8 = heapFloat[(r2+3)]; - f9 = heapFloat[(r10+143)]; - f10 = heapFloat[(r2+9)]; - f11 = heapFloat[(r10+147)]; - f12 = heapFloat[(r2+5)]; - f13 = heapFloat[(r10+137)]; - f14 = heapFloat[(r2+10)]; - f15 = heapFloat[(r10+148)]; - f16 = heapFloat[(r2+6)]; - f17 = heapFloat[(r10+141)]; - f18 = heapFloat[(r2+11)]; - f19 = heapFloat[(r10+149)]; - f20 = heapFloat[(r2+7)]; - f21 = heapFloat[(r10+145)]; - f22 = heapFloat[(r10+144)]; - f23 = f4*f0; - f24 = f5*f2; - f6 = f6+f7; - f7 = f9*f8; - f25 = heapFloat[(r2+15)]; - f26 = heapFloat[(r2+14)]; - f27 = heapFloat[(r2+13)]; - f28 = f13*f0; - f29 = f17*f2; - f23 = f23+f24; - f24 = f22*f8; - f6 = f6+f7; - r2 = r3 >> 2; - f7 = f28+f29; - f28 = f21*f8; - f23 = f23+f24; - heapFloat[(fp+-74)] = f6; - f6 = f1*f12; - f24 = f3*f16; - f7 = f7+f28; - heapFloat[(r2+1)] = f23; - heapFloat[(r2+2)] = f7; - f7 = f4*f12; - f23 = f5*f16; - f6 = f6+f24; - f24 = f9*f20; - f28 = f13*f12; - f29 = f17*f16; - f7 = f7+f23; - f23 = f22*f20; - f6 = f6+f24; - heap32[(r2+3)] = 0; - f24 = f28+f29; - f28 = f21*f20; - f7 = f7+f23; - heapFloat[(r2+4)] = f6; - f1 = f1*f10; - f3 = f3*f14; - f6 = f24+f28; - heapFloat[(r2+5)] = f7; - heapFloat[(r2+6)] = f6; - f4 = f4*f10; - f5 = f5*f14; - f1 = f1+f3; - f3 = f9*f18; - f6 = f13*f10; - f7 = f17*f14; - f4 = f4+f5; - f5 = f22*f18; - f1 = f1+f3; - heap32[(r2+7)] = 0; - f0 = f0*f11; - f2 = f2*f15; - f3 = f6+f7; - f6 = f21*f18; - f4 = f4+f5; - heapFloat[(r2+8)] = f1; - f1 = f12*f11; - f5 = f16*f15; - f0 = f0+f2; - f2 = f8*f19; - f3 = f3+f6; - heapFloat[(r2+9)] = f4; - f0 = f0+f2; - heapFloat[(r2+10)] = f3; - f2 = f10*f11; - f3 = f14*f15; - f1 = f1+f5; - f4 = f20*f19; - f1 = f1+f4; - f2 = f2+f3; - f3 = f18*f19; - f0 = f0+f27; - heap32[(r2+11)] = 0; - f2 = f2+f3; - f1 = f1+f26; - heapFloat[(r2+12)] = f0; - f0 = f2+f25; - heapFloat[(r2+13)] = f1; - heapFloat[(r2+14)] = f0; - heap32[(r2+15)] = 0; -if(!(r8 ==0)) //_LBB669_15 -{ - r11 = heap32[(r1)]; - r11 = r11 >> 2; - r11 = heap32[(r11+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r11)>>2](i7); - r12 = r_g0 >> 2; - r12 = heap32[(r12)]; - r12 = r12 >> 2; - r12 = heap32[(r12+14)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r3; - f0 = heapFloat[(fp+-191)]; - heapFloat[(g0+2)] = f0; - __FUNCTION_TABLE__[(r12)>>2](i7); -} - r11 = heap32[(r10+6)]; - r11 = r11 >> 2; - f0 = heapFloat[(r11+1)]; - f1 = heapFloat[(r10+151)]; - f2 = heapFloat[(r11+2)]; - f3 = heapFloat[(r10+155)]; - f4 = heapFloat[(r10+152)]; - f5 = heapFloat[(r10+156)]; - f6 = f1*f0; - f7 = f3*f2; - f8 = heapFloat[(r11+3)]; - f9 = heapFloat[(r10+159)]; - f10 = heapFloat[(r11+9)]; - f11 = heapFloat[(r10+163)]; - f12 = heapFloat[(r11+5)]; - f13 = heapFloat[(r10+153)]; - f14 = heapFloat[(r11+10)]; - f15 = heapFloat[(r10+164)]; - f16 = heapFloat[(r11+6)]; - f17 = heapFloat[(r10+157)]; - f18 = heapFloat[(r11+11)]; - f19 = heapFloat[(r10+165)]; - f20 = heapFloat[(r11+7)]; - f21 = heapFloat[(r10+161)]; - f22 = heapFloat[(r10+160)]; - f23 = f4*f0; - f24 = f5*f2; - f6 = f6+f7; - f7 = f9*f8; - f25 = heapFloat[(r11+15)]; - f26 = heapFloat[(r11+14)]; - f27 = heapFloat[(r11+13)]; - f28 = f13*f0; - f29 = f17*f2; - f23 = f23+f24; - f24 = f22*f8; - f6 = f6+f7; - f7 = f28+f29; - f28 = f21*f8; - f23 = f23+f24; - heapFloat[(fp+-74)] = f6; - f6 = f1*f12; - f24 = f3*f16; - f7 = f7+f28; - heapFloat[(r2+1)] = f23; - heapFloat[(r2+2)] = f7; - f7 = f4*f12; - f23 = f5*f16; - f6 = f6+f24; - f24 = f9*f20; - f28 = f13*f12; - f29 = f17*f16; - f7 = f7+f23; - f23 = f22*f20; - f6 = f6+f24; - heap32[(r2+3)] = 0; - f24 = f28+f29; - f28 = f21*f20; - f7 = f7+f23; - heapFloat[(r2+4)] = f6; - f1 = f1*f10; - f3 = f3*f14; - f6 = f24+f28; - heapFloat[(r2+5)] = f7; - heapFloat[(r2+6)] = f6; - f4 = f4*f10; - f5 = f5*f14; - f1 = f1+f3; - f3 = f9*f18; - f6 = f13*f10; - f7 = f17*f14; - f4 = f4+f5; - f5 = f22*f18; - f1 = f1+f3; - heap32[(r2+7)] = 0; - f0 = f0*f11; - f2 = f2*f15; - f3 = f6+f7; - f6 = f21*f18; - f4 = f4+f5; - heapFloat[(r2+8)] = f1; - f1 = f12*f11; - f5 = f16*f15; - f0 = f0+f2; - f2 = f8*f19; - f3 = f3+f6; - heapFloat[(r2+9)] = f4; - f0 = f0+f2; - heapFloat[(r2+10)] = f3; - f2 = f10*f11; - f3 = f14*f15; - f1 = f1+f5; - f4 = f20*f19; - f1 = f1+f4; - f2 = f2+f3; - f3 = f18*f19; - f0 = f0+f27; - heap32[(r2+11)] = 0; - f2 = f2+f3; - f1 = f1+f26; - heapFloat[(r2+12)] = f0; - f0 = f2+f25; - heapFloat[(r2+13)] = f1; - heapFloat[(r2+14)] = f0; - heap32[(r2+15)] = 0; -if(!(r8 ==0)) //_LBB669_17 -{ - r8 = heap32[(r1)]; - r8 = r8 >> 2; - r8 = heap32[(r8+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r8)>>2](i7); - r11 = r_g0 >> 2; - r11 = heap32[(r11)]; - r11 = r11 >> 2; - r11 = heap32[(r11+14)]; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r3; - f0 = heapFloat[(fp+-191)]; - heapFloat[(g0+2)] = f0; - __FUNCTION_TABLE__[(r11)>>2](i7); -} - f0 = heapFloat[(r10+172)]; - f1 = heapFloat[(r10+173)]; -if(!(f0 ==f1)) //_LBB669_52 -{ -if(!(r9 ==0)) //_LBB669_52 -{ - r8 = sp + -312; - r9 = r8 >> 2; - heap32[(fp+-78)] = heap32[(r2+2)]; - heap32[(r9+1)] = heap32[(r2+6)]; - heap32[(r9+2)] = heap32[(r2+10)]; - r10 = sp + -328; - heap32[(r9+3)] = 0; - r9 = r10 >> 2; - heap32[(fp+-82)] = heap32[(fp+-74)]; - heap32[(r9+1)] = heap32[(r2+4)]; - heap32[(r9+2)] = heap32[(r2+8)]; - heap32[(r9+3)] = 0; - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r9 = r_g0 >> 2; - r9 = heap32[(r9)]; - r9 = r9 >> 2; - r9 = heap32[(r9+15)]; - r11 = sp + -168; - r12 = r11 >> 2; - heap32[(fp+-42)] = 0; - heap32[(r12+1)] = 0; - heap32[(r12+2)] = 0; - heap32[(r12+3)] = 0; - f2 = 6.2831854820251465; - r12 = f0 <= f1; - f3 = heapFloat[(fp+-192)]; - f3 = f0 > f1 ? f3 : f0; - f0 = f0 > f1 ? f2 : f1; - r12 = r12 & 1; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r8; - heap32[(g0+3)] = r10; - f1 = heapFloat[(fp+-191)]; - heapFloat[(g0+4)] = f1; - heapFloat[(g0+5)] = f1; - heapFloat[(g0+6)] = f3; - heapFloat[(g0+7)] = f0; - heap32[(g0+8)] = r11; - heap32[(g0+9)] = r12; - heap32[(g0+10)] = 1092616192; - __FUNCTION_TABLE__[(r9)>>2](i7); -} -} -} -} -} -} -} while(0); - r2 = (r7 + -1)|0; - if(r7 !=0) //_LBB669_4 -{ -continue _5; -} -else{ -break _5; -} -} -} -} -} - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; -_74: do { -if(!(r2 ==0)) //_LBB669_60 -{ - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r3 = r_g0 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+12)]; - heap32[(g0)] = r_g0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = r_g0 & 3; -if(!(r2 ==0)) //_LBB669_60 -{ - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0; -if(!(r2 ==0)) //_LBB669_60 -{ - r2 = heap32[(r1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = r_g0 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+12)]; - heap32[(g0)] = r_g0; - __FUNCTION_TABLE__[(r2)>>2](i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB669_60 -{ - r0 = heap32[(r1+63)]; -if(!(r0 <1)) //_LBB669_60 -{ - r0 = 0; -_80: while(true){ - r2 = heap32[(r1+65)]; - r3 = r0 << 2; - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+3)]; - r4 = heap32[(r1+21)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r4; - r0 = (r0 + 1)|0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = heap32[(r1+63)]; - if(r2 >r0) //_LBB669_59 -{ -continue _80; -} -else{ -break _74; -} -} -} -} -} -} -} -} while(0); - r0 = _ZN15CProfileManager11CurrentNodeE; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r3 = (r3 + -1)|0; - heap32[(r2+4)] = r3; -_83: do { -if(!(r3 !=0)) //_LBB669_66 -{ - r3 = heap32[(r2+1)]; - if(r3 !=0) //_LBB669_63 -{ - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r3 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r3 = r3 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - r4 = heap32[(fp+-2)]; - r5 = heap32[(r3)]; - r4 = (r4 - r5)|0; - r1 = heap32[(r1+1)]; - r3 = heap32[(r3+1)]; - r1 = (r1 - r3)|0; - r3 = (r4 * 1000000)|0; - r1 = (r1 + r3)|0; - r3 = heap32[(r2+3)]; - r1 = (r1 - r3)|0; - f0 = uint(r1); //fuitos r1, f0 - f1 = 1000; - f2 = heapFloat[(r2+2)]; - f0 = f0/f1; - f0 = f2+f0; - heapFloat[(r2+2)] = f0; - r1 = heap32[(r2+4)]; - if(r1 !=0) //_LBB669_66 -{ -break _83; -} -else{ - r1 = heap32[(r0)]; -} -} - r1 = r1 >> 2; - r1 = heap32[(r1+5)]; - heap32[(r0)] = r1; -} -} while(0); - return; -} - -function _ZN23btDiscreteDynamicsWorld18saveKinematicStateEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+2)]; -if(!(r1 <1)) //_LBB670_11 -{ - f0 = heapFloat[(fp+1)]; - f1 = 1; - f1 = f1/f0; - r1 = 0; -_3: while(true){ - r2 = heap32[(r0+4)]; - r3 = r1 << 2; - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r3 = heapU8[r2+232]; - r3 = r3 & 2; -if(!(r3 ==0)) //_LBB670_10 -{ -if(!(r2 ==0)) //_LBB670_10 -{ - r3 = r2 >> 2; - r4 = heap32[(r3+54)]; -if(!(r4 ==2)) //_LBB670_10 -{ - r4 = heapU8[r2+204]; - r4 = r4 & 2; -if(!(r4 ==0)) //_LBB670_10 -{ - f2 = 0; -if(!(f0 ==f2)) //_LBB670_10 -{ - r4 = heap32[(r3+118)]; -if(!(r4 ==0)) //_LBB670_9 -{ - r5 = r4 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+2)]; - r6 = (r2 + 4)|0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r6; - __FUNCTION_TABLE__[(r5)>>2](i7); -} - f2 = heapFloat[(r3+13)]; - f3 = heapFloat[(r3+29)]; - f2 = f2-f3; - f3 = heapFloat[(r3+15)]; - f4 = heapFloat[(r3+31)]; - f5 = heapFloat[(r3+14)]; - f6 = heapFloat[(r3+30)]; - f5 = f5-f6; - f2 = f2*f1; - f3 = f3-f4; - f4 = f5*f1; - heapFloat[(r3+76)] = f2; - f2 = f3*f1; - heapFloat[(r3+77)] = f4; - heapFloat[(r3+78)] = f2; - heap32[(r3+79)] = 0; - r4 = sp + -16; - r5 = (r2 + 68)|0; - r2 = (r2 + 4)|0; - r6 = sp + -20; - heap32[(g0)] = r5; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r6; - _ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i7); - r2 = r4 >> 2; - f2 = heapFloat[(fp+-5)]; - f3 = heapFloat[(fp+-4)]; - f3 = f3*f2; - f4 = heapFloat[(r2+2)]; - f5 = heapFloat[(r2+1)]; - f5 = f5*f2; - f3 = f3*f1; - f2 = f4*f2; - f4 = f5*f1; - heapFloat[(r3+80)] = f3; - f2 = f2*f1; - heapFloat[(r3+81)] = f4; - heapFloat[(r3+82)] = f2; - heap32[(r3+83)] = 0; - heap32[(r3+33)] = heap32[(r3+76)]; - heap32[(r3+34)] = heap32[(r3+77)]; - heap32[(r3+35)] = heap32[(r3+78)]; - heap32[(r3+36)] = heap32[(r3+79)]; - heapFloat[(r3+37)] = f3; - heapFloat[(r3+38)] = f4; - heapFloat[(r3+39)] = f2; - heap32[(r3+40)] = 0; - heap32[(r3+17)] = heap32[(r3+1)]; - heap32[(r3+18)] = heap32[(r3+2)]; - heap32[(r3+19)] = heap32[(r3+3)]; - heap32[(r3+20)] = heap32[(r3+4)]; - heap32[(r3+21)] = heap32[(r3+5)]; - heap32[(r3+22)] = heap32[(r3+6)]; - heap32[(r3+23)] = heap32[(r3+7)]; - heap32[(r3+24)] = heap32[(r3+8)]; - heap32[(r3+25)] = heap32[(r3+9)]; - heap32[(r3+26)] = heap32[(r3+10)]; - heap32[(r3+27)] = heap32[(r3+11)]; - heap32[(r3+28)] = heap32[(r3+12)]; - heap32[(r3+29)] = heap32[(r3+13)]; - heap32[(r3+30)] = heap32[(r3+14)]; - heap32[(r3+31)] = heap32[(r3+15)]; - heap32[(r3+32)] = heap32[(r3+16)]; -} -} -} -} -} - r1 = (r1 + 1)|0; - r2 = heap32[(r0+2)]; - if(r2 >r1) //_LBB670_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - return; -} - -function _ZN15btDynamicsWorldD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV15btDynamicsWorld; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN16btCollisionWorldD2Ev(i7); - return; -} - -function _ZN15btDynamicsWorldD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV15btDynamicsWorld; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN16btCollisionWorldD2Ev(i7); - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN23btDiscreteDynamicsWorldD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV23btDiscreteDynamicsWorld; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heapU8[r0+244]; -if(!(r1 ==0)) //_LBB673_3 -{ - r1 = heap32[(r2+45)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+45)]; -if(!(r1 ==0)) //_LBB673_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - r1 = heapU8[r0+245]; -if(!(r1 ==0)) //_LBB673_6 -{ - r1 = heap32[(r2+44)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+44)]; -if(!(r1 ==0)) //_LBB673_6 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - r1 = heap32[(r2+65)]; -if(!(r1 ==0)) //_LBB673_10 -{ - r3 = heapU8[r0+264]; -if(!(r3 ==0)) //_LBB673_9 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+65)] = 0; -} - r1 = 1; - heap8[r0+264] = r1; - heap32[(r2+65)] = 0; - heap32[(r2+63)] = 0; - heap32[(r2+64)] = 0; - r3 = heap32[(r2+54)]; -if(!(r3 ==0)) //_LBB673_14 -{ - r4 = heapU8[r0+220]; -if(!(r4 ==0)) //_LBB673_13 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+54)] = 0; -} - heap8[r0+220] = r1; - heap32[(r2+54)] = 0; - heap32[(r2+52)] = 0; - heap32[(r2+53)] = 0; - r3 = heap32[(r2+49)]; -if(!(r3 ==0)) //_LBB673_18 -{ - r4 = heapU8[r0+200]; -if(!(r4 ==0)) //_LBB673_17 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+49)] = 0; -} - heap8[r0+200] = r1; - heap32[(r2+49)] = 0; - r1 = _ZTV15btDynamicsWorld; - heap32[(r2+47)] = 0; - r1 = (r1 + 8)|0; - heap32[(r2+48)] = 0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN16btCollisionWorldD2Ev(i7); - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN23btDiscreteDynamicsWorldD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - heap32[(g0)] = r0; - _ZN23btDiscreteDynamicsWorldD2Ev(i7); - return; -} - -function _ZN23btDiscreteDynamicsWorldD2Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV23btDiscreteDynamicsWorld; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heapU8[r0+244]; -if(!(r1 ==0)) //_LBB675_3 -{ - r1 = heap32[(r2+45)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+45)]; -if(!(r1 ==0)) //_LBB675_3 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - r1 = heapU8[r0+245]; -if(!(r1 ==0)) //_LBB675_6 -{ - r1 = heap32[(r2+44)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r3)>>2](i7); - r1 = heap32[(r2+44)]; -if(!(r1 ==0)) //_LBB675_6 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} -} - r1 = heap32[(r2+65)]; -if(!(r1 ==0)) //_LBB675_10 -{ - r3 = heapU8[r0+264]; -if(!(r3 ==0)) //_LBB675_9 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+65)] = 0; -} - r1 = 1; - heap8[r0+264] = r1; - heap32[(r2+65)] = 0; - heap32[(r2+63)] = 0; - heap32[(r2+64)] = 0; - r3 = heap32[(r2+54)]; -if(!(r3 ==0)) //_LBB675_14 -{ - r4 = heapU8[r0+220]; -if(!(r4 ==0)) //_LBB675_13 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+54)] = 0; -} - heap8[r0+220] = r1; - heap32[(r2+54)] = 0; - heap32[(r2+52)] = 0; - heap32[(r2+53)] = 0; - r3 = heap32[(r2+49)]; -if(!(r3 ==0)) //_LBB675_18 -{ - r4 = heapU8[r0+200]; -if(!(r4 ==0)) //_LBB675_17 -{ - r4 = gNumAlignedFree; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r5 = (r5 + 1)|0; - r3 = r3 >> 2; - heap32[(r4)] = r5; - r3 = heap32[(r3+-1)]; - heap32[(g0)] = r3; - free(i7); -} - heap32[(r2+49)] = 0; -} - heap8[r0+200] = r1; - heap32[(r2+49)] = 0; - r1 = _ZTV15btDynamicsWorld; - heap32[(r2+47)] = 0; - r1 = (r1 + 8)|0; - heap32[(r2+48)] = 0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZN16btCollisionWorldD2Ev(i7); - return; -} - -function _ZN11btRigidBody12setMassPropsEfRK9btVector3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - f0 = heapFloat[(fp+1)]; - r1 = heap32[(fp+2)]; - r2 = heap32[(r0+51)]; - f1 = 0; - if(f0 !=f1) //_LBB676_2 -{ - r2 = r2 & -2; - f2 = 1; - f2 = f2/f0; - heap32[(r0+51)] = r2; - heapFloat[(r0+84)] = f2; -} -else{ - r2 = r2 | 1; - f2 = 0; - heap32[(r0+51)] = r2; - heap32[(r0+84)] = 0; -} - f3 = heapFloat[(r0+95)]; - f4 = heapFloat[(r0+94)]; - f5 = heapFloat[(r0+93)]; - f5 = f5*f0; - f4 = f4*f0; - heapFloat[(r0+89)] = f5; - f0 = f3*f0; - heapFloat[(r0+90)] = f4; - heapFloat[(r0+91)] = f0; - r1 = r1 >> 2; - heap32[(r0+92)] = 0; - f0 = heapFloat[(r1+2)]; - if(f0 !=f1) //_LBB676_5 -{ - f3 = 1; - f0 = f3/f0; -} -else{ - f0 = f1; -} - f3 = heapFloat[(r1+1)]; - if(f3 !=f1) //_LBB676_8 -{ - f1 = 1; - f3 = f1/f3; -} -else{ - f3 = 0; -} - f1 = heapFloat[(r1)]; - f4 = 0; - if(f1 !=f4) //_LBB676_11 -{ - f4 = 1; - f4 = f4/f1; -} - heapFloat[(r0+97)] = f4; - heapFloat[(r0+98)] = f3; - heapFloat[(r0+99)] = f0; - heap32[(r0+100)] = 0; - f0 = heapFloat[(r0+87)]; - f1 = heapFloat[(r0+86)]; - f3 = heapFloat[(r0+85)]; - f3 = f3*f2; - f1 = f1*f2; - heapFloat[(r0+138)] = f3; - f0 = f0*f2; - heapFloat[(r0+139)] = f1; - heapFloat[(r0+140)] = f0; - heap32[(r0+141)] = 0; - return; -} - -function _ZN11btRigidBody19updateInertiaTensorEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; - var f16; - var f17; - var f18; - var f19; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - f0 = heapFloat[(r0+1)]; - f1 = heapFloat[(r0+97)]; - f2 = heapFloat[(r0+2)]; - f3 = heapFloat[(r0+98)]; - f4 = f0*f1; - f5 = f2*f3; - f6 = heapFloat[(r0+3)]; - f7 = heapFloat[(r0+99)]; - f8 = heapFloat[(r0+5)]; - f9 = heapFloat[(r0+6)]; - f10 = f6*f7; - f11 = f0*f4; - f12 = f2*f5; - f13 = heapFloat[(r0+9)]; - f14 = heapFloat[(r0+10)]; - f15 = heapFloat[(r0+7)]; - f16 = heapFloat[(r0+11)]; - f17 = f8*f4; - f18 = f9*f5; - f11 = f11+f12; - f12 = f6*f10; - f4 = f13*f4; - f5 = f14*f5; - f17 = f17+f18; - f18 = f15*f10; - f11 = f11+f12; - f12 = f8*f1; - f19 = f9*f3; - f4 = f4+f5; - f5 = f16*f10; - f10 = f17+f18; - heapFloat[(r0+64)] = f11; - f11 = f15*f7; - f17 = f0*f12; - f18 = f2*f19; - f4 = f4+f5; - heapFloat[(r0+65)] = f10; - heapFloat[(r0+66)] = f4; - f4 = f8*f12; - f5 = f9*f19; - f10 = f17+f18; - f17 = f6*f11; - f12 = f13*f12; - f18 = f14*f19; - f4 = f4+f5; - f5 = f15*f11; - f10 = f10+f17; - heap32[(r0+67)] = 0; - f1 = f13*f1; - f3 = f14*f3; - f12 = f12+f18; - f11 = f16*f11; - f4 = f4+f5; - heapFloat[(r0+68)] = f10; - f5 = f16*f7; - f0 = f0*f1; - f2 = f2*f3; - f7 = f12+f11; - heapFloat[(r0+69)] = f4; - heapFloat[(r0+70)] = f7; - f4 = f8*f1; - f7 = f9*f3; - f0 = f0+f2; - f2 = f6*f5; - f1 = f13*f1; - f3 = f14*f3; - f4 = f4+f7; - f6 = f15*f5; - f0 = f0+f2; - heap32[(r0+71)] = 0; - f1 = f1+f3; - f2 = f16*f5; - f3 = f4+f6; - heapFloat[(r0+72)] = f0; - f0 = f1+f2; - heapFloat[(r0+73)] = f3; - heapFloat[(r0+74)] = f0; - heap32[(r0+75)] = 0; - return; -} - -function _ZN11btRigidBody18proceedToTransformERK11btTransform(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; - var r24; - var r25; -var __label__ = 0; - i7 = sp + -48;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heapU8[r0+204]; - r2 = r2 & 3; - if(r2 ==0) //_LBB678_2 -{ - r2 = r0 >> 2; - r24 = r1 >> 2; - heap32[(r2+17)] = heap32[(r24)]; - heap32[(r2+18)] = heap32[(r24+1)]; - heap32[(r2+19)] = heap32[(r24+2)]; - heap32[(r2+20)] = heap32[(r24+3)]; - heap32[(r2+21)] = heap32[(r24+4)]; - heap32[(r2+22)] = heap32[(r24+5)]; - heap32[(r2+23)] = heap32[(r24+6)]; - heap32[(r2+24)] = heap32[(r24+7)]; - heap32[(r2+25)] = heap32[(r24+8)]; - heap32[(r2+26)] = heap32[(r24+9)]; - heap32[(r2+27)] = heap32[(r24+10)]; - heap32[(r2+28)] = heap32[(r24+11)]; - heap32[(r2+29)] = heap32[(r24+12)]; - heap32[(r2+30)] = heap32[(r24+13)]; - r15 = (r1 + 4)|0; - r16 = (r1 + 8)|0; - r17 = (r1 + 12)|0; - r18 = (r1 + 16)|0; - r19 = (r1 + 20)|0; - r20 = (r1 + 24)|0; - r21 = (r1 + 28)|0; - r22 = (r1 + 32)|0; - r23 = (r1 + 36)|0; - r3 = (r1 + 40)|0; - heap32[(fp+-10)] = r3; - r3 = (r1 + 44)|0; - heap32[(fp+-4)] = r3; - r3 = (r1 + 48)|0; - heap32[(fp+-7)] = r3; - r3 = (r1 + 52)|0; - heap32[(fp+-6)] = r3; - r3 = (r1 + 56)|0; - heap32[(fp+-9)] = r3; - r3 = (r1 + 60)|0; - heap32[(fp+-8)] = r3; - r3 = (r0 + 4)|0; - r4 = (r0 + 8)|0; - r5 = (r0 + 12)|0; - r6 = (r0 + 16)|0; - r7 = (r0 + 20)|0; - r8 = (r0 + 24)|0; - r9 = (r0 + 28)|0; - r10 = (r0 + 32)|0; - r11 = (r0 + 36)|0; - r12 = (r0 + 40)|0; - r13 = (r0 + 44)|0; - r14 = (r0 + 48)|0; - r25 = (r0 + 52)|0; - heap32[(fp+-5)] = r25; - r25 = (r0 + 56)|0; - heap32[(fp+-3)] = r25; - r25 = (r0 + 60)|0; - heap32[(fp+-2)] = r25; - r25 = (r0 + 64)|0; - heap32[(fp+-1)] = r25; - heap32[(r2+31)] = heap32[(r24+14)]; - heap32[(r2+32)] = heap32[(r24+15)]; -} -else{ - r2 = r0 >> 2; - heap32[(r2+17)] = heap32[(r2+1)]; - heap32[(r2+18)] = heap32[(r2+2)]; - heap32[(r2+19)] = heap32[(r2+3)]; - heap32[(r2+20)] = heap32[(r2+4)]; - heap32[(r2+21)] = heap32[(r2+5)]; - heap32[(r2+22)] = heap32[(r2+6)]; - heap32[(r2+23)] = heap32[(r2+7)]; - heap32[(r2+24)] = heap32[(r2+8)]; - heap32[(r2+25)] = heap32[(r2+9)]; - heap32[(r2+26)] = heap32[(r2+10)]; - heap32[(r2+27)] = heap32[(r2+11)]; - heap32[(r2+28)] = heap32[(r2+12)]; - heap32[(r2+29)] = heap32[(r2+13)]; - heap32[(r2+30)] = heap32[(r2+14)]; - r3 = (r0 + 4)|0; - r4 = (r0 + 8)|0; - r5 = (r0 + 12)|0; - r6 = (r0 + 16)|0; - r7 = (r0 + 20)|0; - r8 = (r0 + 24)|0; - r9 = (r0 + 28)|0; - r10 = (r0 + 32)|0; - r11 = (r0 + 36)|0; - r12 = (r0 + 40)|0; - r13 = (r0 + 44)|0; - r14 = (r0 + 48)|0; - r15 = (r0 + 52)|0; - heap32[(fp+-5)] = r15; - r15 = (r0 + 56)|0; - heap32[(fp+-3)] = r15; - r15 = (r0 + 60)|0; - heap32[(fp+-2)] = r15; - r15 = (r0 + 64)|0; - heap32[(fp+-1)] = r15; - r15 = (r1 + 4)|0; - r16 = (r1 + 8)|0; - r17 = (r1 + 12)|0; - r18 = (r1 + 16)|0; - r19 = (r1 + 20)|0; - r20 = (r1 + 24)|0; - r21 = (r1 + 28)|0; - r22 = (r1 + 32)|0; - r23 = (r1 + 36)|0; - r24 = (r1 + 40)|0; - heap32[(fp+-10)] = r24; - r24 = (r1 + 44)|0; - heap32[(fp+-4)] = r24; - r24 = (r1 + 48)|0; - heap32[(fp+-7)] = r24; - r24 = (r1 + 52)|0; - heap32[(fp+-6)] = r24; - r24 = (r1 + 56)|0; - heap32[(fp+-9)] = r24; - r24 = (r1 + 60)|0; - heap32[(fp+-8)] = r24; - heap32[(r2+31)] = heap32[(r2+15)]; - heap32[(r2+32)] = heap32[(r2+16)]; -} - r2 = r0 >> 2; - heap32[(r2+33)] = heap32[(r2+76)]; - heap32[(r2+34)] = heap32[(r2+77)]; - heap32[(r2+35)] = heap32[(r2+78)]; - heap32[(r2+36)] = heap32[(r2+79)]; - heap32[(r2+37)] = heap32[(r2+80)]; - heap32[(r2+38)] = heap32[(r2+81)]; - heap32[(r2+39)] = heap32[(r2+82)]; - r3 = r3 >> 2; - r1 = r1 >> 2; - heap32[(r2+40)] = heap32[(r2+83)]; - r2 = r4 >> 2; - r4 = r15 >> 2; - heap32[(r3)] = heap32[(r1)]; - r1 = r5 >> 2; - r3 = r16 >> 2; - heap32[(r2)] = heap32[(r4)]; - r2 = r6 >> 2; - r4 = r17 >> 2; - heap32[(r1)] = heap32[(r3)]; - r1 = r7 >> 2; - r3 = r18 >> 2; - heap32[(r2)] = heap32[(r4)]; - r2 = r8 >> 2; - r4 = r19 >> 2; - heap32[(r1)] = heap32[(r3)]; - r1 = r9 >> 2; - r3 = r20 >> 2; - heap32[(r2)] = heap32[(r4)]; - r2 = r10 >> 2; - r4 = r21 >> 2; - heap32[(r1)] = heap32[(r3)]; - r1 = r11 >> 2; - r3 = r22 >> 2; - heap32[(r2)] = heap32[(r4)]; - r2 = r12 >> 2; - r4 = r23 >> 2; - heap32[(r1)] = heap32[(r3)]; - r1 = r13 >> 2; - r3 = heap32[(fp+-10)]; - r3 = r3 >> 2; - heap32[(r2)] = heap32[(r4)]; - r2 = r14 >> 2; - r4 = heap32[(fp+-4)]; - r4 = r4 >> 2; - heap32[(r1)] = heap32[(r3)]; - r1 = heap32[(fp+-5)]; - r1 = r1 >> 2; - r3 = heap32[(fp+-7)]; - r3 = r3 >> 2; - heap32[(r2)] = heap32[(r4)]; - r2 = heap32[(fp+-3)]; - r2 = r2 >> 2; - r4 = heap32[(fp+-6)]; - r4 = r4 >> 2; - heap32[(r1)] = heap32[(r3)]; - r1 = heap32[(fp+-2)]; - r1 = r1 >> 2; - r3 = heap32[(fp+-9)]; - r3 = r3 >> 2; - heap32[(r2)] = heap32[(r4)]; - r2 = heap32[(fp+-1)]; - r2 = r2 >> 2; - r4 = heap32[(fp+-8)]; - r4 = r4 >> 2; - heap32[(r1)] = heap32[(r3)]; - heap32[(r2)] = heap32[(r4)]; - heap32[(g0)] = r0; - _ZN11btRigidBody19updateInertiaTensorEv(i7); - return; -} - -function _ZNK11btRigidBody28calculateSerializeBufferSizeEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 480; - r_g0 = r0; - return; -} - -function _ZNK11btRigidBody21serializeSingleObjectEP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = r0 >> 2; - r3 = r1 >> 2; - r4 = heap32[(r3)]; - r5 = heap32[(r2)]; - r4 = r4 >> 2; - r5 = r5 >> 2; - r4 = heap32[(r4+4)]; - r5 = heap32[(r5+4)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r5)>>2](i7); - heap32[(g0)] = r1; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = 1; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r_g0; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r5 = r4 >> 2; - r2 = heap32[(r2+5)]; - r5 = heap32[(r5+2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r1; - __FUNCTION_TABLE__[(r2)>>2](i7); - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+5)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r_g0; - heap32[(g0+3)] = 1497645650; - heap32[(g0+4)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); - return; -} - -function _ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heapU8[r0+232]; - r1 = r1 & 2; -_1: do { - if(r1 !=0) //_LBB681_2 -{ - if(r0 ==0) //_LBB681_1 -{ -__label__ = 1; -} -else{ - r1 = heap32[(fp)]; - r1 = r1 >> 2; - r2 = heap32[(r1+120)]; - r3 = 0; -_4: while(true){ - if(r2 >r3) //_LBB681_4 -{ - r4 = heap32[(r1+122)]; - r5 = r3 << 2; - r4 = (r4 + r5)|0; - r4 = r4 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r5 = heap32[(r4+5)]; - if(r5 !=r0) //_LBB681_6 -{ - r4 = heap32[(r4+6)]; - if(r4 ==r0) //_LBB681_5 -{ -break _4; -} -else{ - r3 = (r3 + 1)|0; -} -} -else{ -break _4; -} -} -else{ -__label__ = 1; -break _1; -} -} - r0 = 0; -__label__ = 9; -} -} -else{ -__label__ = 1; -} -} while(0); -if (__label__ == 1){ - r0 = 1; -} - r0 = r0 & 255; - r_g0 = r0; - return; -} - -function _ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; - var f12; - var f13; - var f14; - var f15; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - heap32[(r1+58)] = 2; - heap32[(r1+76)] = 0; - heap32[(r1+77)] = 0; - heap32[(r1+78)] = 0; - heap32[(r1+79)] = 0; - heap32[(r1+80)] = 0; - heap32[(r1+81)] = 0; - heap32[(r1+82)] = 0; - heap32[(r1+83)] = 0; - heap32[(r1+134)] = 1065353216; - heap32[(r1+135)] = 1065353216; - heap32[(r1+136)] = 1065353216; - heap32[(r1+137)] = 0; - heap32[(r1+85)] = 1065353216; - heap32[(r1+86)] = 1065353216; - heap32[(r1+87)] = 1065353216; - heap32[(r1+88)] = 0; - heap32[(r1+89)] = 0; - heap32[(r1+90)] = 0; - heap32[(r1+91)] = 0; - heap32[(r1+92)] = 0; - heap32[(r1+93)] = 0; - heap32[(r1+94)] = 0; - heap32[(r1+95)] = 0; - heap32[(r1+96)] = 0; - heap32[(r1+101)] = 0; - heap32[(r1+102)] = 0; - heap32[(r1+103)] = 0; - heap32[(r1+104)] = 0; - heap32[(r1+105)] = 0; - heap32[(r1+106)] = 0; - heap32[(r1+107)] = 0; - heap32[(r1+108)] = 0; - heap32[(r1+109)] = 0; - r2 = heap32[(fp+1)]; - heap32[(r1+110)] = 1056964608; - r3 = r2 >> 2; - heap32[(r1+116)] = heap32[(r3+27)]; - heap32[(r1+117)] = heap32[(r3+28)]; - r4 = heap32[(r3+1)]; - heap32[(r1+118)] = r4; - heap32[(r1+150)] = 0; - heap32[(r1+151)] = 0; - r5 = heapU8[r2+116]; - heap8[r0+444] = r5; - heap32[(r1+112)] = heap32[(r3+30)]; - heap32[(r1+113)] = heap32[(r3+31)]; - heap32[(r1+114)] = heap32[(r3+32)]; - heap32[(r1+115)] = heap32[(r3+33)]; - if(r4 ==0) //_LBB682_2 -{ - f0 = heapFloat[(r3+2)]; - heapFloat[(r1+1)] = f0; - f1 = heapFloat[(r3+3)]; - heapFloat[(r1+2)] = f1; - f2 = heapFloat[(r3+4)]; - heapFloat[(r1+3)] = f2; - f3 = heapFloat[(r3+5)]; - heapFloat[(r1+4)] = f3; - f4 = heapFloat[(r3+6)]; - heapFloat[(r1+5)] = f4; - f5 = heapFloat[(r3+7)]; - heapFloat[(r1+6)] = f5; - f6 = heapFloat[(r3+8)]; - heapFloat[(r1+7)] = f6; - f7 = heapFloat[(r3+9)]; - heapFloat[(r1+8)] = f7; - f8 = heapFloat[(r3+10)]; - heapFloat[(r1+9)] = f8; - f9 = heapFloat[(r3+11)]; - heapFloat[(r1+10)] = f9; - f10 = heapFloat[(r3+12)]; - heapFloat[(r1+11)] = f10; - f11 = heapFloat[(r3+13)]; - heapFloat[(r1+12)] = f11; - f12 = heapFloat[(r3+14)]; - heapFloat[(r1+13)] = f12; - f13 = heapFloat[(r3+15)]; - heapFloat[(r1+14)] = f13; - f14 = heapFloat[(r3+16)]; - heapFloat[(r1+15)] = f14; - f15 = heapFloat[(r3+17)]; - heapFloat[(r1+16)] = f15; -} -else{ - r5 = r4 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+2)]; - r6 = (r0 + 4)|0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r6; - __FUNCTION_TABLE__[(r5)>>2](i7); - f0 = heapFloat[(r1+1)]; - f1 = heapFloat[(r1+2)]; - f2 = heapFloat[(r1+3)]; - f3 = heapFloat[(r1+4)]; - f4 = heapFloat[(r1+5)]; - f5 = heapFloat[(r1+6)]; - f6 = heapFloat[(r1+7)]; - f7 = heapFloat[(r1+8)]; - f8 = heapFloat[(r1+9)]; - f9 = heapFloat[(r1+10)]; - f10 = heapFloat[(r1+11)]; - f11 = heapFloat[(r1+12)]; - f12 = heapFloat[(r1+13)]; - f13 = heapFloat[(r1+14)]; - f14 = heapFloat[(r1+15)]; - f15 = heapFloat[(r1+16)]; -} - heapFloat[(r1+17)] = f0; - heapFloat[(r1+18)] = f1; - heapFloat[(r1+19)] = f2; - heapFloat[(r1+20)] = f3; - heapFloat[(r1+21)] = f4; - heapFloat[(r1+22)] = f5; - heapFloat[(r1+23)] = f6; - heapFloat[(r1+24)] = f7; - heapFloat[(r1+25)] = f8; - heapFloat[(r1+26)] = f9; - heapFloat[(r1+27)] = f10; - heapFloat[(r1+28)] = f11; - heapFloat[(r1+29)] = f12; - heapFloat[(r1+30)] = f13; - heapFloat[(r1+31)] = f14; - heapFloat[(r1+32)] = f15; - heap32[(r1+33)] = 0; - heap32[(r1+34)] = 0; - heap32[(r1+35)] = 0; - heap32[(r1+36)] = 0; - heap32[(r1+37)] = 0; - heap32[(r1+38)] = 0; - heap32[(r1+39)] = 0; - heap32[(r1+40)] = 0; - heap32[(r1+56)] = heap32[(r3+25)]; - heap32[(r1+57)] = heap32[(r3+26)]; - r4 = heap32[(r1)]; - r4 = r4 >> 2; - r4 = heap32[(r4+3)]; - r5 = heap32[(r3+18)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r5; - r5 = _ZL8uniqueId; - r5 = r5 >> 2; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = heap32[(r5)]; - r6 = (r4 + 1)|0; - heap32[(r1+125)] = r4; - heap32[(r5)] = r6; - f0 = heapFloat[(r3)]; - r2 = (r2 + 76)|0; - heap32[(g0)] = r0; - heapFloat[(g0+1)] = f0; - heap32[(g0+2)] = r2; - _ZN11btRigidBody12setMassPropsEfRK9btVector3(i7); - f0 = heapFloat[(r3+23)]; - f1 = heapFloat[(r3+24)]; - f2 = 0; - if(f0 >=f2) //_LBB682_5 -{ - f3 = 1; - f0 = f0 > f3 ? f3 : f0; -} -else{ - f0 = f2; -} - heapFloat[(r1+109)] = f0; - if(f1 >=f2) //_LBB682_8 -{ - f0 = 1; - f1 = f1 > f0 ? f0 : f1; -} -else{ - f1 = 0; -} - heapFloat[(r1+110)] = f1; - heap32[(g0)] = r0; - _ZN11btRigidBody19updateInertiaTensorEv(i7); - heap32[(r1+124)] = 0; - heap32[(r1+126)] = 0; - heap32[(r1+127)] = 0; - heap32[(r1+128)] = 0; - heap32[(r1+129)] = 0; - heap32[(r1+130)] = 0; - heap32[(r1+131)] = 0; - heap32[(r1+132)] = 0; - heap32[(r1+133)] = 0; - f0 = heapFloat[(r1+87)]; - f1 = heapFloat[(r1+84)]; - f2 = heapFloat[(r1+86)]; - f3 = heapFloat[(r1+85)]; - f3 = f3*f1; - f2 = f2*f1; - heapFloat[(r1+138)] = f3; - f0 = f0*f1; - heapFloat[(r1+139)] = f2; - heapFloat[(r1+140)] = f0; - heap32[(r1+141)] = 0; - heap32[(r1+142)] = 0; - heap32[(r1+143)] = 0; - heap32[(r1+144)] = 0; - heap32[(r1+145)] = 0; - heap32[(r1+146)] = 0; - heap32[(r1+147)] = 0; - heap32[(r1+148)] = 0; - heap32[(r1+149)] = 0; - return; -} - -function _ZN11btRigidBodyD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV11btRigidBody; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+120)]; - if(r1 ==0) //_LBB683_2 -{ - r1 = heap32[(r2+122)]; -if(!(r1 ==0)) //_LBB683_6 -{ - r3 = heapU8[r0+492]; -if(!(r3 ==0)) //_LBB683_5 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+122)] = 0; -} - r1 = 1; - heap8[r0+492] = r1; - heap32[(r2+122)] = 0; - r1 = _ZTV17btCollisionObject; - heap32[(r2+120)] = 0; - r1 = (r1 + 8)|0; - heap32[(r2+121)] = 0; - heap32[(r2)] = r1; -if(!(r0 ==0)) //_LBB683_8 -{ - r0 = gNumAlignedFree; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - r0 = heap32[(r2+-1)]; - heap32[(g0)] = r0; - free(i7); -} - return; -} -else{ - r0 = _2E_str248; - r2 = _2E_str34955; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 175; - _assert(i7); -} -} - -function _ZN11btRigidBodyD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTV11btRigidBody; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - r1 = heap32[(r2+120)]; - if(r1 ==0) //_LBB684_2 -{ - r1 = heap32[(r2+122)]; -if(!(r1 ==0)) //_LBB684_6 -{ - r3 = heapU8[r0+492]; -if(!(r3 ==0)) //_LBB684_5 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r4 = (r4 + 1)|0; - r1 = r1 >> 2; - heap32[(r3)] = r4; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - free(i7); -} - heap32[(r2+122)] = 0; -} - r1 = 1; - heap8[r0+492] = r1; - heap32[(r2+122)] = 0; - r0 = _ZTV17btCollisionObject; - heap32[(r2+120)] = 0; - r0 = (r0 + 8)|0; - heap32[(r2+121)] = 0; - heap32[(r2)] = r0; - return; -} -else{ - r0 = _2E_str248; - r2 = _2E_str34955; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 175; - _assert(i7); -} -} - -function _ZNK11btRigidBody9serializeEPvP12btSerializer(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - r1 = r1 >> 2; - r2 = r0 >> 2; - _ZNK17btCollisionObject9serializeEPvP12btSerializer(i7); - heap32[(r1+62)] = heap32[(r2+64)]; - heap32[(r1+63)] = heap32[(r2+65)]; - heap32[(r1+64)] = heap32[(r2+66)]; - heap32[(r1+65)] = heap32[(r2+67)]; - heap32[(r1+66)] = heap32[(r2+68)]; - heap32[(r1+67)] = heap32[(r2+69)]; - heap32[(r1+68)] = heap32[(r2+70)]; - heap32[(r1+69)] = heap32[(r2+71)]; - heap32[(r1+70)] = heap32[(r2+72)]; - heap32[(r1+71)] = heap32[(r2+73)]; - heap32[(r1+72)] = heap32[(r2+74)]; - heap32[(r1+73)] = heap32[(r2+75)]; - heap32[(r1+74)] = heap32[(r2+76)]; - heap32[(r1+75)] = heap32[(r2+77)]; - heap32[(r1+76)] = heap32[(r2+78)]; - heap32[(r1+77)] = heap32[(r2+79)]; - heap32[(r1+78)] = heap32[(r2+80)]; - heap32[(r1+79)] = heap32[(r2+81)]; - heap32[(r1+80)] = heap32[(r2+82)]; - heap32[(r1+81)] = heap32[(r2+83)]; - heap32[(r1+110)] = heap32[(r2+84)]; - heap32[(r1+82)] = heap32[(r2+134)]; - heap32[(r1+83)] = heap32[(r2+135)]; - heap32[(r1+84)] = heap32[(r2+136)]; - heap32[(r1+85)] = heap32[(r2+137)]; - heap32[(r1+86)] = heap32[(r2+85)]; - heap32[(r1+87)] = heap32[(r2+86)]; - heap32[(r1+88)] = heap32[(r2+87)]; - heap32[(r1+89)] = heap32[(r2+88)]; - heap32[(r1+90)] = heap32[(r2+89)]; - heap32[(r1+91)] = heap32[(r2+90)]; - heap32[(r1+92)] = heap32[(r2+91)]; - heap32[(r1+93)] = heap32[(r2+92)]; - heap32[(r1+94)] = heap32[(r2+93)]; - heap32[(r1+95)] = heap32[(r2+94)]; - heap32[(r1+96)] = heap32[(r2+95)]; - heap32[(r1+97)] = heap32[(r2+96)]; - heap32[(r1+98)] = heap32[(r2+97)]; - heap32[(r1+99)] = heap32[(r2+98)]; - heap32[(r1+100)] = heap32[(r2+99)]; - heap32[(r1+101)] = heap32[(r2+100)]; - heap32[(r1+102)] = heap32[(r2+101)]; - heap32[(r1+103)] = heap32[(r2+102)]; - heap32[(r1+104)] = heap32[(r2+103)]; - heap32[(r1+105)] = heap32[(r2+104)]; - heap32[(r1+106)] = heap32[(r2+105)]; - heap32[(r1+107)] = heap32[(r2+106)]; - heap32[(r1+108)] = heap32[(r2+107)]; - heap32[(r1+109)] = heap32[(r2+108)]; - heap32[(r1+111)] = heap32[(r2+109)]; - heap32[(r1+112)] = heap32[(r2+110)]; - r0 = heapU8[r0+444]; - heap32[(r1+119)] = r0; - heap32[(r1+113)] = heap32[(r2+112)]; - heap32[(r1+114)] = heap32[(r2+113)]; - heap32[(r1+115)] = heap32[(r2+114)]; - heap32[(r1+116)] = heap32[(r2+115)]; - heap32[(r1+117)] = heap32[(r2+116)]; - heap32[(r1+118)] = heap32[(r2+117)]; - r0 = _2E_str4144; - r_g0 = r0; - return; -} - -function _ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(fp+1)]; - r3 = heap32[(r1+120)]; - r4 = 0; -_1: while(true){ - if(r3 >r4) //_LBB686_1 -{ - r5 = heap32[(r1+122)]; - r6 = r4 << 2; - r5 = (r5 + r6)|0; - r5 = r5 >> 2; - r5 = heap32[(r5)]; - if(r5 !=r2) //_LBB686_3 -{ - r4 = (r4 + 1)|0; -continue _1; -} -else{ -__label__ = 5; -break _1; -} -} -else{ -__label__ = 4; -break _1; -} -} -if (__label__ == 4){ - r4 = r3; -} -if(!(r3 !=r4)) //_LBB686_27 -{ - r4 = heap32[(r1+121)]; - if(r4 ==r3) //_LBB686_9 -{ - r5 = 1; - r6 = r3 << 1; - r6 = r3 == 0 ? r5 : r6; -if(!(r4 >=r6)) //_LBB686_8 -{ - if(r6 !=0) //_LBB686_12 -{ - r4 = gNumAlignedAllocs; - r4 = r4 >> 2; - r7 = heap32[(r4)]; - r8 = r6 << 2; - r7 = (r7 + 1)|0; - r8 = r8 | 3; - heap32[(r4)] = r7; - r4 = (r8 + 16)|0; - heap32[(g0)] = r4; - malloc(i7); - r4 = r_g0; - if(r4 !=0) //_LBB686_14 -{ - r7 = 0; - r8 = (r4 + 4)|0; - r7 = (r7 - r8)|0; - r7 = r7 & 15; - r7 = (r4 + r7)|0; - r8 = (r7 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r4; - r4 = r8; -} -} -else{ - r4 = 0; -} -_18: do { - if(r3 <1) //_LBB686_17 -{ - r8 = heap32[(r1+122)]; -} -else{ - r7 = 0; -_21: while(true){ - r8 = heap32[(r1+122)]; - r9 = r7 << 2; - r10 = (r8 + r9)|0; - r10 = r10 >> 2; - r9 = (r4 + r9)|0; - r10 = heap32[(r10)]; - r7 = (r7 + 1)|0; - r9 = r9 >> 2; - heap32[(r9)] = r10; -if(!(r3 !=r7)) //_LBB686_18 -{ -break _18; -} -} -} -} while(0); - if(r8 !=0) //_LBB686_21 -{ - r7 = heapU8[r0+492]; - if(r7 !=0) //_LBB686_23 -{ - r3 = gNumAlignedFree; - r3 = r3 >> 2; - r7 = heap32[(r3)]; - r7 = (r7 + 1)|0; - r8 = r8 >> 2; - heap32[(r3)] = r7; - r3 = heap32[(r8+-1)]; - heap32[(g0)] = r3; - free(i7); - r3 = heap32[(r1+120)]; -} - heap32[(r1+122)] = 0; -} - heap8[r0+492] = r5; - heap32[(r1+122)] = r4; - heap32[(r1+121)] = r6; -} -} - r0 = r3 << 2; - r3 = heap32[(r1+122)]; - r0 = (r3 + r0)|0; - r0 = r0 >> 2; - heap32[(r0)] = r2; - r0 = heap32[(r1+120)]; - r0 = (r0 + 1)|0; - heap32[(r1+120)] = r0; -} - heap32[(r1+63)] = 1; - return; -} - -function _ZN11btRigidBody19integrateVelocitiesEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; - var f9; - var f10; - var f11; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+204]; - r1 = r1 & 3; -if(!(r1 !=0)) //_LBB687_3 -{ - f0 = heapFloat[(fp+1)]; - r0 = r0 >> 2; - f1 = heapFloat[(r0+84)]; - f1 = f1*f0; - f2 = heapFloat[(r0+101)]; - f3 = heapFloat[(r0+103)]; - f4 = heapFloat[(r0+102)]; - f5 = heapFloat[(r0+76)]; - f2 = f2*f1; - f2 = f5+f2; - heapFloat[(r0+76)] = f2; - f2 = f4*f1; - f4 = heapFloat[(r0+77)]; - f2 = f4+f2; - heapFloat[(r0+77)] = f2; - f1 = f3*f1; - f2 = heapFloat[(r0+78)]; - f1 = f2+f1; - heapFloat[(r0+78)] = f1; - f1 = heapFloat[(r0+105)]; - f2 = heapFloat[(r0+64)]; - f3 = heapFloat[(r0+106)]; - f4 = heapFloat[(r0+65)]; - f2 = f2*f1; - f4 = f4*f3; - f5 = heapFloat[(r0+107)]; - f6 = heapFloat[(r0+66)]; - f2 = f2+f4; - f4 = f6*f5; - f2 = f2+f4; - f4 = heapFloat[(r0+68)]; - f6 = heapFloat[(r0+69)]; - f7 = heapFloat[(r0+72)]; - f8 = heapFloat[(r0+73)]; - f9 = heapFloat[(r0+74)]; - f10 = heapFloat[(r0+70)]; - f11 = heapFloat[(r0+80)]; - f2 = f2*f0; - f4 = f4*f1; - f6 = f6*f3; - f2 = f11+f2; - f4 = f4+f6; - f6 = f10*f5; - f4 = f4+f6; - heapFloat[(r0+80)] = f2; - f1 = f7*f1; - f3 = f8*f3; - f4 = f4*f0; - f6 = heapFloat[(r0+81)]; - f4 = f6+f4; - f1 = f1+f3; - f3 = f9*f5; - f1 = f1+f3; - heapFloat[(r0+81)] = f4; - f1 = f1*f0; - f3 = heapFloat[(r0+82)]; - f1 = f3+f1; - f2 = f2*f2; - f3 = f4*f4; - heapFloat[(r0+82)] = f1; - f2 = f2+f3; - f1 = f1*f1; - f1 = f2+f1; - heapFloat[(g0)] = f1; - sqrtf(i7); - f1 = f_g0; - f2 = f1*f0; - f3 = 1.5707963705062866; -if(!(f2 <=f3)) //_LBB687_3 -{ - f0 = f3/f0; - f0 = f0/f1; - f1 = heapFloat[(r0+80)]; - f1 = f1*f0; - heapFloat[(r0+80)] = f1; - f1 = heapFloat[(r0+81)]; - f1 = f1*f0; - heapFloat[(r0+81)] = f1; - f1 = heapFloat[(r0+82)]; - f0 = f1*f0; - heapFloat[(r0+82)] = f0; -} -} - return; -} - -function _ZN11btRigidBody12applyDampingEf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; - var f1; - var f2; - var f3; - var f4; - var f5; - var f6; - var f7; - var f8; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - f0 = heapFloat[(r1+109)]; - f1 = 1; - f2 = heapFloat[(fp+1)]; - f0 = f1-f0; - heapFloat[(g0)] = f0; - heapFloat[(g0+1)] = f2; - powf(i7); - f3 = heapFloat[(r1+76)]; - f3 = f3*f_g0; - heapFloat[(r1+76)] = f3; - f3 = heapFloat[(r1+77)]; - f3 = f3*f_g0; - heapFloat[(r1+77)] = f3; - f3 = heapFloat[(r1+78)]; - f0 = f3*f_g0; - heapFloat[(r1+78)] = f0; - f0 = heapFloat[(r1+110)]; - f0 = f1-f0; - heapFloat[(g0)] = f0; - heapFloat[(g0+1)] = f2; - powf(i7); - f2 = heapFloat[(r1+80)]; - f2 = f2*f_g0; - heapFloat[(r1+80)] = f2; - f3 = heapFloat[(r1+81)]; - f3 = f3*f_g0; - heapFloat[(r1+81)] = f3; - f4 = heapFloat[(r1+82)]; - f0 = f4*f_g0; - heapFloat[(r1+82)] = f0; - r0 = heapU8[r0+444]; -if(!(r0 ==0)) //_LBB688_14 -{ - f4 = f2*f2; - f5 = f3*f3; - f6 = heapFloat[(r1+76)]; - f4 = f4+f5; - f5 = f0*f0; - f4 = f4+f5; - f5 = heapFloat[(r1+114)]; - if(f4 >2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = _ZL13gProfileClock_2E_0; - heap32[(g0)] = 8; - r0 = r0 >> 2; - _Znwj(i7); - heap32[(r0)] = r_g0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = 0; - r0 = _ZN15CProfileManager4RootE; - r1 = r0 >> 2; - r2 = _2E_str729; - gettimeofday(i7); - heap32[(r1)] = r2; - heap32[(r1+1)] = 0; - heap32[(r1+2)] = 0; - heap32[(r1+3)] = 0; - heap32[(r1+4)] = 0; - heap32[(r1+5)] = 0; - heap32[(r1+6)] = 0; - heap32[(r1+7)] = 0; - heap32[(g0)] = r0; - _ZN12CProfileNode5ResetEv(i7); - return; -} - -function _GLOBAL__D__ZN7btClockC2Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = _ZN15CProfileManager4RootE; - r1 = _ZL13gProfileClock_2E_0; - heap32[(g0)] = r0; - r0 = r1 >> 2; - _ZN12CProfileNodeD1Ev(i7); - r0 = heap32[(r0)]; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN12CProfileNode5ResetEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; -_1: while(true){ - r0 = r0 >> 2; - heap32[(r0+1)] = 0; - heap32[(r0+2)] = 0; - r1 = heap32[(r0+6)]; -if(!(r1 ==0)) //_LBB691_3 -{ - heap32[(g0)] = r1; - _ZN12CProfileNode5ResetEv(i7); -} - r0 = heap32[(r0+7)]; - if(r0 !=0) //_LBB691_1 -{ -continue _1; -} -else{ -break _1; -} -} - return; -} - -function _ZN12CProfileNodeD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+6)]; -if(!(r1 ==0)) //_LBB692_2 -{ - heap32[(g0)] = r1; - _ZN12CProfileNodeD1Ev(i7); - heap32[(g0)] = r1; - _ZdlPv(i7); -} - r0 = heap32[(r0+7)]; -if(!(r0 ==0)) //_LBB692_4 -{ - heap32[(g0)] = r0; - _ZN12CProfileNodeD1Ev(i7); - heap32[(g0)] = r0; - _ZdlPv(i7); -} - return; -} - -function _ZN15CProfileManager13Start_ProfileEPKc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = _ZN15CProfileManager11CurrentNodeE; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = heap32[(fp)]; - r3 = r1 >> 2; - r4 = heap32[(r3)]; - if(r4 !=r2) //_LBB693_2 -{ - r4 = (r1 + 24)|0; -_3: while(true){ - r4 = r4 >> 2; - r4 = heap32[(r4)]; - if(r4 !=0) //_LBB693_3 -{ - r5 = r4 >> 2; - r5 = heap32[(r5)]; - if(r5 !=r2) //_LBB693_5 -{ - r4 = (r4 + 28)|0; -} -else{ -__label__ = 3; -break _3; -} -} -else{ -__label__ = 6; -break _3; -} -} -switch(__label__ ){//multiple entries -case 6: - heap32[(g0)] = 32; - _Znwj(i7); - r4 = r_g0; - r5 = r4 >> 2; - heap32[(r5)] = r2; - heap32[(r5+1)] = 0; - heap32[(r5+2)] = 0; - heap32[(r5+3)] = 0; - heap32[(r5+4)] = 0; - heap32[(r5+5)] = r1; - heap32[(r5+6)] = 0; - heap32[(r5+7)] = 0; - heap32[(g0)] = r4; - _ZN12CProfileNode5ResetEv(i7); - r1 = heap32[(r3+6)]; - heap32[(r5+7)] = r1; - heap32[(r3+6)] = r4; - r1 = r4; -break; -case 3: - r1 = r4; -break; -} - heap32[(r0)] = r1; -} - r0 = r1 >> 2; - r1 = heap32[(r0+1)]; - r1 = (r1 + 1)|0; - heap32[(r0+1)] = r1; - r1 = heap32[(r0+4)]; - r2 = (r1 + 1)|0; - heap32[(r0+4)] = r2; -if(!(r1 !=0)) //_LBB693_11 -{ - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - r2 = _ZL13gProfileClock_2E_0; - gettimeofday(i7); - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r1 = r1 >> 2; - r3 = heap32[(fp+-2)]; - r4 = heap32[(r2)]; - r3 = (r3 - r4)|0; - r1 = heap32[(r1+1)]; - r2 = heap32[(r2+1)]; - r1 = (r1 - r2)|0; - r2 = (r3 * 1000000)|0; - r1 = (r1 + r2)|0; - heap32[(r0+3)] = r1; -} - return; -} - -function _ZN15CProfileManager5ResetEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = _ZL13gProfileClock_2E_0; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - gettimeofday(i7); - r1 = _ZN15CProfileManager4RootE; - heap32[(g0)] = r1; - r1 = r1 >> 2; - _ZN12CProfileNode5ResetEv(i7); - r2 = heap32[(r1+1)]; - r2 = (r2 + 1)|0; - heap32[(r1+1)] = r2; - r2 = heap32[(r1+4)]; - r3 = (r2 + 1)|0; - heap32[(r1+4)] = r3; -if(!(r2 !=0)) //_LBB694_2 -{ - r2 = sp + -16; - heap32[(g0)] = r2; - heap32[(g0+1)] = 0; - gettimeofday(i7); - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r2 = r2 >> 2; - r3 = heap32[(fp+-4)]; - r4 = heap32[(r0)]; - r3 = (r3 - r4)|0; - r2 = heap32[(r2+1)]; - r0 = heap32[(r0+1)]; - r0 = (r2 - r0)|0; - r2 = (r3 * 1000000)|0; - r0 = (r0 + r2)|0; - heap32[(r1+3)] = r0; -} - r0 = _ZN15CProfileManager12FrameCounterE; - r0 = r0 >> 2; - heap32[(r0)] = 0; - r0 = sp + -8; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - gettimeofday(i7); - return; -} - -function _GLOBAL__I__ZN4__rw9__catfindEPNS_8__rw_catE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = _ZN4__rwL12__rw_catlistE_2E_0; - r1 = _ZN4__rwL12__rw_catlistE_2E_1; - r0 = r0 >> 2; - r2 = _ZN4__rwL12__rw_catlistE_2E_2; - r1 = r1 >> 2; - heap32[(r0)] = 0; - r2 = r2 >> 2; - heap32[(r1)] = 0; - heap32[(r2)] = 0; - heap32[(g0)] = 136; - _Znwj(i7); - r3 = r_g0; -if(!(r3 !=0)) //_LBB695_3 -{ - heap32[(g0)] = 3; - _ZN4__rw10__rw_throwEiz(i7); -} - r4 = (r3 + 136)|0; - heap32[(g0)] = 0; - _ZdlPv(i7); - r5 = heap32[(r0)]; - if(r5 ==0) //_LBB695_6 -{ - r8 = r3; -} -else{ - r6 = r5; - r7 = r3; -_9: while(true){ - r9 = r6 >> 2; - r6 = (r6 + 4)|0; - r8 = (r7 + 4)|0; - r7 = r7 >> 2; - r9 = heap32[(r9)]; - heap32[(r7)] = r9; - r7 = r8; - if(r6 !=0) //_LBB695_7 -{ -continue _9; -} -else{ -break _9; -} -} -} - r6 = 0; -_12: while(true){ - r7 = r6 << 2; - r7 = (r8 + r7)|0; - r6 = (r6 + 1)|0; - r7 = r7 >> 2; - heap32[(r7)] = 0; - if(r6 !=2) //_LBB695_9 -{ -continue _12; -} -else{ -break _12; -} -} - r6 = heap32[(r1)]; - if(r6 ==0) //_LBB695_12 -{ - r6 = (r8 + 8)|0; - heap32[(r0)] = r3; - heap32[(r1)] = r6; - heap32[(r2)] = r4; - heap32[(g0)] = r5; - _ZdlPv(i7); - return; -} -else{ - abort(i7); -} -} - -function _GLOBAL__D__ZN4__rw9__catfindEPNS_8__rw_catE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = _ZN4__rwL12__rw_catlistE_2E_0; - r1 = _ZN4__rwL12__rw_catlistE_2E_1; - r0 = r0 >> 2; - r1 = r1 >> 2; - r0 = heap32[(r0)]; - r2 = heap32[(r1)]; - r3 = (r2 - r0)|0; - r3 = r3 >> 2; -if(!(r3 ==0)) //_LBB696_2 -{ - r3 = r3 << 2; - r2 = (r2 - r3)|0; - heap32[(r1)] = r2; -} - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN4__rwL13__rw_vfmtwhatEPcjPKcS0_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; -var __label__ = 0; - i7 = sp + -48;var g0 = i7>>2; // save stack - r0 = _ZN4__rwL16__rw_what_refcntE; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = heap32[(fp)]; - r3 = heap32[(fp+1)]; - r4 = (r1 + 1)|0; - heap32[(r0)] = r4; - if(r1 !=0) //_LBB697_2 -{ - heap32[(g0)] = 256; - _Znaj(i7); - r1 = r_g0; - r4 = heap32[(r0)]; - r4 = (r4 + -1)|0; - heap32[(r0)] = r4; -} -else{ - r1 = _ZN4__rwL13__rw_what_bufE; -} - r4 = 256; - r12 = swrite__index__; -_5: while(true){ - r5 = sp + -16; - heap32[(fp+-8)] = r3; - r6 = r5 >> 2; - heap32[(fp+-7)] = r3; - r7 = (r4 + -1)|0; - r8 = 0; - heap32[(r6+1)] = 0; - r9 = sp + -24; - r10 = r4 == 0 ? r8 : r7; - heap32[(fp+-4)] = r1; - r11 = r9 >> 2; - heap32[(r6+2)] = r10; - heap32[(r11+1)] = r12; - heap32[(fp+-6)] = r5; - heap32[(g0)] = r9; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - __v_printf(i7); - r5 = r_g0; -_7: do { -if(!(r1 ==0)) //_LBB697_11 -{ -if(!(r4 ==0)) //_LBB697_11 -{ -if(!(r5 <0)) //_LBB697_11 -{ -if(!(r4 ==-1)) //_LBB697_10 -{ -if(!(uint(r5) r5 ? r5 : r8; - if(r5 !=0) //_LBB697_13 -{ - if(r4 >r5) //_LBB697_20 -{ -break _5; -} -else{ - r4 = (r5 + 1)|0; -} -} -else{ - r4 = r4 << 1; -} - r5 = _ZN4__rwL13__rw_what_bufE; - if(r1 !=r5) //_LBB697_17 -{ -if(!(r1 ==0)) //_LBB697_19 -{ - heap32[(g0)] = r1; - _ZdaPv(i7); -} -} -else{ - r1 = heap32[(r0)]; - r1 = (r1 + -1)|0; - heap32[(r0)] = r1; -} - heap32[(g0)] = r4; - _Znaj(i7); - r1 = r_g0; -continue _5; -} - r_g0 = r1; - return; -} - -function _ZN4__rw10__rw_throwEiz(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + -64;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - if(r0 >4) //_LBB698_9 -{ - r1 = (sp + 4)|0; - heap32[(fp+-7)] = r1; - r2 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E7__fname; - heap32[(fp+-9)] = r1; - r2 = r2 >> 2; - heap32[(fp+-8)] = r1; - r3 = heap32[(r2)]; -if(!(r3 !=0)) //_LBB698_41 -{ - r3 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E6buffer; - r4 = 0; -_5: while(true){ - r5 = heapU8[r3]; - r4 = r5 == 58 ? r3 : r4; - if(r5 !=0) //_LBB698_13 -{ - r5 = (r3 + 1)|0; - r6 = heapU8[r3+1]; - r4 = r6 == 58 ? r5 : r4; - if(r6 !=0) //_LBB698_15 -{ - r5 = (r3 + 2)|0; - r6 = heapU8[r3+2]; - r4 = r6 == 58 ? r5 : r4; - if(r6 !=0) //_LBB698_17 -{ - r5 = (r3 + 3)|0; - r6 = heapU8[r3+3]; - r4 = r6 == 58 ? r5 : r4; - if(r6 !=0) //_LBB698_19 -{ - r3 = (r3 + 4)|0; -} -else{ -break _5; -} -} -else{ -break _5; -} -} -else{ -break _5; -} -} -else{ -break _5; -} -} -_12: do { -if(!(r4 ==0)) //_LBB698_24 -{ - r3 = 0; - heap8[r4] = r3; - r3 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E8__catset; - r4 = (r4 + 1)|0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r3; - sscanf(i7); - r4 = r_g0; - r3 = r3 >> 2; -if(!(r4 !=1)) //_LBB698_23 -{ - r4 = heap32[(r3)]; - if(r4 >0) //_LBB698_24 -{ -break _12; -} -} - heap32[(r3)] = 1; -} -} while(0); - r3 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E4msgs; - r4 = r3 >> 2; - heap32[(r4+1)] = 0; - heap32[(r4+2)] = 0; - heap32[(r4+3)] = 0; - heap32[(r4+4)] = 0; - heap32[(r4+5)] = 0; - r5 = _ZTVSt8messagesIcE; - heap32[(r4+6)] = 0; - r5 = (r5 + 8)|0; - heap32[(r4+7)] = 0; - r6 = _ZN4__rwL22__rw_classic_once_initE_2E_0_2E_b; - heap32[(r4)] = r5; - r5 = heapU8[r6]; -if(!(r5 != 0)) //_LBB698_29 -{ - _ZN4__rw11__rw_locale11_C_get_bodyEPS0_S1_PKciPKNS_10__rw_facetE(i7); - r5 = r_g0; - r7 = _ZN4__rwL12__rw_classicE; - r7 = r7 >> 2; - heap32[(r7)] = r5; -if(!(r5 !=0)) //_LBB698_28 -{ - r5 = _2E_str12102177; - r7 = _2E_str10100175; - r8 = _2E_str538; - heap32[(g0)] = 19; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = r8; - _ZN4__rw10__rw_throwEiz(i7); -} - r5 = 1; - heap8[r6] = r5; -} - r5 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E6buffer; - r6 = heapU8[r5]; - if(r6 ==0) //_LBB698_31 -{ - r6 = _ZNSs11_C_null_refE; - r7 = 0; - r6 = (r6 + 12)|0; -} -else{ - r6 = 0; -_28: while(true){ - r7 = (r5 - r6)|0; - r6 = (r6 + -1)|0; - r7 = heapU8[r7+1]; -if(!(r7 !=0)) //_LBB698_32 -{ -break _28; -} -} - r7 = 0; - r7 = (r7 - r6)|0; - if(r6 !=0) //_LBB698_35 -{ - r6 = 32; - r6 = uint(r7) > uint(r6) ? r7 : r6; - heap32[(g0)] = r6; - heap32[(g0+1)] = r7; - _ZNSs10_C_get_repEjj(i7); - r6 = (r_g0 + 12)|0; -} -else{ - r6 = _ZNSs11_C_null_refE; - r6 = (r6 + 12)|0; -} -} - heap32[(fp+-4)] = r6; - heap32[(g0)] = r6; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r7; - memcpy(i7); - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+2)]; - r6 = sp + -16; - r7 = _ZN4__rwL12__rw_classicE; - heap32[(g0)] = r3; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r7; - __FUNCTION_TABLE__[(r4)>>2](i7); - r3 = r_g0; - r4 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E5__cat; - r4 = r4 >> 2; - heap32[(r4)] = r3; - r3 = heap32[(fp+-4)]; - r3 = (r3 + -12)|0; - r4 = _ZNSs11_C_null_refE; -if(!(r3 ==r4)) //_LBB698_40 -{ - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r6 = (r4 + -1)|0; - heap32[(r3)] = r6; -if(!(r4 >0)) //_LBB698_40 -{ - r3 = heap32[(fp+-4)]; - r3 = (r3 + -12)|0; - heap32[(g0)] = r3; - _ZdlPv(i7); -} -} - heap32[(fp+-4)] = 0; - heap32[(r2)] = r5; -} - r2 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E5__cat; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - if(r2 !=-1) //_LBB698_43 -{ - r3 = _ZNSs11_C_null_refE; - r4 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E4msgs; - r5 = (r3 + 12)|0; - r6 = r4 >> 2; - heap32[(fp+-2)] = r5; - r5 = _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E8__catset; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r5 = r5 >> 2; - r6 = heap32[(r6+3)]; - r5 = heap32[(r5)]; - r7 = sp + -24; - r8 = sp + -8; - heap32[(g0)] = r7; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r5; - heap32[(g0+4)] = r0; - heap32[(g0+5)] = r8; - __FUNCTION_TABLE__[(r6)>>2](i7); - r2 = heap32[(fp+-2)]; - r2 = (r2 + -12)|0; -if(!(r2 ==r3)) //_LBB698_47 -{ - r2 = r2 >> 2; - r4 = heap32[(r2)]; - r5 = (r4 + -1)|0; - heap32[(r2)] = r5; -if(!(r4 >0)) //_LBB698_47 -{ - r2 = heap32[(fp+-2)]; - r2 = (r2 + -12)|0; - heap32[(g0)] = r2; - _ZdlPv(i7); -} -} - heap32[(fp+-2)] = 0; - r2 = heap32[(fp+-6)]; - r4 = r2 >> 2; - r4 = heap32[(r4+-1)]; - if(r4 !=0) //_LBB698_49 -{ - heap32[(g0)] = r2; - heap32[(g0+1)] = r1; - _ZN4__rwL13__rw_vfmtwhatEPcjPKcS0_(i7); - r1 = r_g0; - r2 = heap32[(fp+-6)]; -} -else{ - r1 = 0; -} - r2 = (r2 + -12)|0; -if(!(r2 ==r3)) //_LBB698_54 -{ - r2 = r2 >> 2; - r3 = heap32[(r2)]; - r4 = (r3 + -1)|0; - heap32[(r2)] = r4; -if(!(r3 >0)) //_LBB698_54 -{ - r2 = heap32[(fp+-6)]; - r2 = (r2 + -12)|0; - heap32[(g0)] = r2; - _ZdlPv(i7); -} -} - heap32[(fp+-6)] = 0; - if(r1 ==0) //_LBB698_56 -{ -__label__ = 50; -} -else{ -__label__ = 51; -} -} -else{ -__label__ = 50; -} -if (__label__ == 50){ - r1 = 24; - r2 = 0; - r0 = uint(r0) > uint(r1) ? r2 : r0; - r1 = _ZZN4__rw10__rw_throwEizE6errors; - r2 = r0 << 2; - r1 = (r1 + r2)|0; - r1 = r1 >> 2; - r2 = heap32[(fp+-7)]; - r1 = heap32[(r1)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - _ZN4__rwL13__rw_vfmtwhatEPcjPKcS0_(i7); - r1 = r_g0; - if(r1 ==0) //_LBB698_60 -{ - if(r0 ==2) //_LBB698_65 -{ - r0 = _2E_str47; -} -else{ - if(r0 ==1) //_LBB698_64 -{ - r0 = _2E_str15132; -} -else{ - if(r0 !=0) //_LBB698_66 -{ - r0 = _2E_str5134; -} -else{ - r0 = _2E_str4131; -} -} -} - heap32[(g0)] = r0; - fprintf(i7); -__label__ = 62; -} -else{ -__label__ = 51; -} -} -if (__label__ == 51){ - heap32[(g0)] = r1; - r0 = _ZN4__rwL13__rw_what_bufE; - fprintf(i7); - if(r1 !=r0) //_LBB698_59 -{ - heap32[(g0)] = r1; - _ZdaPv(i7); -} -else{ - r0 = _ZN4__rwL16__rw_what_refcntE; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r1 = (r1 + -1)|0; - heap32[(r0)] = r1; -} -} - abort(i7); -} -else{ - if(r0 ==2) //_LBB698_6 -{ - r0 = _2E_str47; -} -else{ - if(r0 ==1) //_LBB698_5 -{ - r0 = _2E_str15132; -} -else{ - if(r0 !=0) //_LBB698_7 -{ - r0 = _2E_str5134; -} -else{ - r0 = _2E_str4131; -} -} -} - heap32[(g0)] = r0; - fprintf(i7); - abort(i7); -} -} - -function _ZN4__rw10__rw_facetD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN4__rw10__rw_facetE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - heap32[(r0+5)] = -1; - r1 = heap32[(r0+1)]; - r2 = heap32[(r0+2)]; -if(!(r1 ==r2)) //_LBB699_3 -{ -if(!(r1 ==0)) //_LBB699_3 -{ - heap32[(g0)] = r1; - _ZdaPv(i7); -} -} - r1 = _ZZN4__rw10__rw_facetD4EvE9destroyed; - heap32[(r0+1)] = r1; - r1 = heap32[(r0+4)]; -if(!(r1 !=-1)) //_LBB699_5 -{ - r0 = heap32[(r0+3)]; - heap32[(g0)] = r0; - _ZdlPv(i7); -} - return; -} - -function _ZN4__rw10__rw_facetD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN4__rw10__rw_facetE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(r2+5)] = -1; - r1 = heap32[(r2+1)]; - r3 = heap32[(r2+2)]; -if(!(r1 ==r3)) //_LBB700_3 -{ -if(!(r1 ==0)) //_LBB700_3 -{ - heap32[(g0)] = r1; - _ZdaPv(i7); -} -} - r1 = _ZZN4__rw10__rw_facetD4EvE9destroyed; - heap32[(r2+1)] = r1; - r1 = heap32[(r2+4)]; -if(!(r1 !=-1)) //_LBB700_5 -{ - r1 = heap32[(r2+3)]; - heap32[(g0)] = r1; - _ZdlPv(i7); -} - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_E(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE12n_std_facets; - r1 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE10std_facets; - r0 = r0 >> 2; - r1 = r1 >> 2; - r2 = heap32[(fp)]; - r3 = heap32[(r0)]; - r4 = heap32[(r1)]; -_1: do { - if(r2 ==0) //_LBB701_24 -{ - r5 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r6 = heap32[(fp+3)]; - r7 = _2E_str538; - r8 = r2 == 0 ? r7 : r2; - r9 = r3; -_3: while(true){ - r10 = r9; - if(r10 ==0) //_LBB701_34 -{ -__label__ = 34; -break _3; -} -else{ - r9 = r10 << 1; - r11 = r9 & -4; - r12 = (r4 + r11)|0; - r9 = r12 >> 2; - r13 = heap32[(r9)]; - r14 = r13 >> 2; - r15 = heap32[(r14+5)]; - r9 = r10 >>> 1; - if(r15 !=r5) //_LBB701_27 -{ - r15 = (r15 - r5)|0; -} -else{ - r15 = heap32[(r14+1)]; - r15 = r15 == 0 ? r7 : r15; - heap32[(g0)] = r8; - heap32[(g0+1)] = r15; - strcmp(i7); - r15 = r_g0; -} - if(r15 <0) //_LBB701_31 -{ -__label__ = 31; -} -else{ - if(r15 <1) //_LBB701_32 -{ -__label__ = 32; -break _3; -} -else{ - r4 = (r11 + r4)|0; - r10 = (r10 + -1)|0; - r4 = (r4 + 4)|0; - r9 = (r10 - r9)|0; -} -} -} -} -if (__label__ == 32){ -if(!(r12 ==0)) //_LBB701_34 -{ - r2 = heap32[(r14+6)]; - r2 = (r2 + 1)|0; - heap32[(r14+6)] = r2; - r_g0 = r13; - return; -} -} - r4 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE17std_facet_bufsize; - r4 = r4 >> 2; - r7 = heap32[(r4)]; -if(!(r3 !=r7)) //_LBB701_39 -{ - r3 = r3 << 3; - heap32[(g0)] = r3; - _Znaj(i7); - r3 = r_g0; - r7 = heap32[(r1)]; - r8 = heap32[(r0)]; - r8 = r8 << 2; - heap32[(g0)] = r3; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r8; - memcpy(i7); - r8 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE13std_facet_buf; -if(!(r7 ==r8)) //_LBB701_38 -{ -if(!(r7 ==0)) //_LBB701_38 -{ - heap32[(g0)] = r7; - _ZdaPv(i7); -} -} - heap32[(r1)] = r3; - r3 = heap32[(r4)]; - r3 = r3 << 1; - heap32[(r4)] = r3; -} - r3 = r5 & 1; - r4 = 0; - r2 = r3 == 0 ? r2 : r4; - heap32[(g0)] = 1; - heap32[(g0+1)] = r2; - __FUNCTION_TABLE__[(r6)>>2](i7); - r2 = r_g0; - r3 = (r5 + 1)|0; - r4 = r3 >>> 31; - r6 = r2 >> 2; - r3 = (r3 + r4)|0; - r4 = heap32[(r6+7)]; - r4 = r4 >> 2; - r3 = r3 >> 1; - heap32[(r4)] = r3; - r3 = heap32[(r6+5)]; -if(!(r3 ==r5)) //_LBB701_41 -{ - r3 = r2 >> 2; - heap32[(r3+5)] = r5; -} - r3 = r2 >> 2; - r4 = heap32[(r3+6)]; -if(!(r4 ==1)) //_LBB701_43 -{ - heap32[(r3+6)] = 1; -} - r3 = heap32[(r0)]; - r1 = heap32[(r1)]; - r4 = r3 << 2; - r4 = (r1 + r4)|0; - r4 = r4 >> 2; - r5 = (r3 + 1)|0; - heap32[(r4)] = r2; - heap32[(r0)] = r5; - r0 = (r3 + -1)|0; - if(uint(r0) > 2; - r5 = heap32[(r5)]; - r10 = r2 >> 2; - r11 = r5 >> 2; - r12 = heap32[(r10+5)]; - r13 = heap32[(r11+5)]; - r5 = r7 >>> 1; - if(r12 !=r13) //_LBB701_4 -{ - r12 = (r13 - r12)|0; -} -else{ - r12 = heap32[(r11+1)]; - r13 = heap32[(r10+1)]; - r10 = _2E_str538; - r13 = r13 == 0 ? r10 : r13; - r12 = r12 == 0 ? r10 : r12; - heap32[(g0)] = r13; - heap32[(g0+1)] = r12; - strcmp(i7); - r12 = r_g0; -} - if(r12 <0) //_LBB701_8 -{ -__label__ = 8; -} -else{ - if(r12 <1) //_LBB701_9 -{ -__label__ = 9; -break _31; -} -else{ - r6 = (r8 + r6)|0; - r7 = (r7 + -1)|0; - r6 = (r6 + 4)|0; - r5 = (r7 - r5)|0; -} -} -} -} -if (__label__ == 9){ -if(!(r9 ==0)) //_LBB701_23 -{ - r2 = (r9 - r4)|0; - r5 = r2 & -4; - r6 = (r4 + r5)|0; - r6 = r6 >> 2; - r6 = heap32[(r6)]; - r7 = r6 >> 2; - r8 = heap32[(r7+6)]; - r8 = (r8 + -1)|0; - heap32[(r7+6)] = r8; - if(r8 ==0) //_LBB701_12 -{ - r2 = r2 >> 2; - r8 = (r3 + -1)|0; - heap32[(r0)] = r8; - if(uint(r8) >uint(207)) //_LBB701_17 -{ -__label__ = 17; -} -else{ - r0 = _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE13std_facet_buf; - if(r4 ==r0) //_LBB701_17 -{ -__label__ = 17; -} -else{ - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r5; - r3 = r2 << 2; - r5 = (r3 + r4)|0; - r2 = (r8 - r2)|0; - memcpy(i7); - r3 = (r0 + r3)|0; - r8 = (r5 + 4)|0; - r2 = r2 << 2; - heap32[(g0)] = r3; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r2; - memcpy(i7); -if(!(r4 ==0)) //_LBB701_16 -{ - heap32[(g0)] = r4; - _ZdaPv(i7); -} - heap32[(r1)] = r0; -__label__ = 20; -} -} -_51: do { -if (__label__ == 17){ - r0 = (r8 - r2)|0; - r0 = r0 << 2; -if(!(r0 ==0)) //_LBB701_20 -{ - r0 = r3 << 2; - r2 = r2 << 2; - r0 = (r0 + -4)|0; - r1 = (r2 + r4)|0; - r2 = (r0 - r2)|0; - r0 = (r1 + 4)|0; -_54: while(true){ - r1 = heapU8[r0]; - r2 = (r2 + -1)|0; - r3 = (r0 + 1)|0; - heap8[r0+-4] = r1; - r0 = r3; -if(!(r2 !=0)) //_LBB701_19 -{ -break _51; -} -} -} -} -} while(0); - r2 = heap32[(r7+1)]; -if(!(r2 ==0)) //_LBB701_11 -{ -if(!(r6 ==0)) //_LBB701_11 -{ - r2 = heap32[(r7)]; - r2 = r2 >> 2; - r2 = heap32[(r2+1)]; - heap32[(g0)] = r6; - __FUNCTION_TABLE__[(r2)>>2](i7); - r2 = 0; - r_g0 = r2; - return; -} -} -} - r2 = 0; -break _1; -} -} - r0 = r2 >> 2; - r1 = heap32[(r0+6)]; - r1 = (r1 + -1)|0; - heap32[(r0+6)] = r1; - r0 = 0; - r_g0 = r0; - return; -} -} while(0); - r_g0 = r2; - return; -} - -function cmpfacets(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - r0 = heap32[(r0)]; - r1 = heap32[(r1)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - r2 = heap32[(r0+5)]; - r3 = heap32[(r1+5)]; - if(r2 !=r3) //_LBB702_2 -{ - r0 = (r3 - r2)|0; - r_g0 = r0; - return; -} -else{ - r2 = heap32[(r1+1)]; - r3 = heap32[(r0+1)]; - r0 = _2E_str538; - r3 = r3 == 0 ? r0 : r3; - r2 = r2 == 0 ? r0 : r2; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - strcmp(i7); - return; -} -} - -function _ZN4__rwL16__rw_expand_nameERNS_14__rw_pod_arrayIcLj256EEEPKc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; -var __label__ = 0; - i7 = sp + -640;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = 0; - r3 = r1; -_1: while(true){ - r4 = r2 << 2; - r5 = heapU8[r3]; - if(r5 !=59) //_LBB703_3 -{ - if(r5 !=0) //_LBB703_5 -{ - r5 = heapU8[r3+1]; - if(r5 ==59) //_LBB703_14 -{ -__label__ = 14; -break _1; -} -else{ - if(r5 ==0) //_LBB703_4 -{ -__label__ = 4; -break _1; -} -else{ - r5 = heapU8[r3+2]; - if(r5 !=59) //_LBB703_9 -{ - if(r5 ==0) //_LBB703_4 -{ -__label__ = 4; -break _1; -} -else{ - r5 = heapU8[r3+3]; - if(r5 !=59) //_LBB703_12 -{ - if(r5 ==0) //_LBB703_4 -{ -__label__ = 4; -break _1; -} -else{ - r2 = (r2 + 1)|0; - r3 = (r3 + 4)|0; -continue _1; -} -} -else{ -__label__ = 11; -break _1; -} -} -} -else{ -__label__ = 8; -break _1; -} -} -} -} -else{ -__label__ = 4; -break _1; -} -} -else{ -__label__ = 2; -break _1; -} -} -switch(__label__ ){//multiple entries -case 14: - r2 = (r3 + 1)|0; -break; -case 4: - r2 = 0; -break; -case 2: - r2 = (r1 + r4)|0; -break; -case 11: - r2 = r4 | 3; - r2 = (r1 + r2)|0; -break; -case 8: - r2 = r4 | 2; - r2 = (r1 + r2)|0; -break; -} -_18: do { - if(r2 ==r1) //_LBB703_17 -{ - r3 = (r1 + 1)|0; - r4 = (r1 + 3)|0; - r5 = 0; - r2 = r3; -_20: while(true){ - r6 = heapU8[r4+-2]; - if(r6 ==59) //_LBB703_21 -{ -__label__ = 19; -break _20; -} -else{ - if(r6 !=0) //_LBB703_22 -{ - r6 = heapU8[r4+-1]; - if(r6 ==0) //_LBB703_20 -{ -__label__ = 90; -break _18; -} -else{ - r7 = r5 << 2; - if(r6 !=59) //_LBB703_25 -{ - r6 = heapU8[r4]; - if(r6 ==0) //_LBB703_20 -{ -__label__ = 90; -break _18; -} -else{ - if(r6 !=59) //_LBB703_28 -{ - r6 = heapU8[r4+1]; - if(r6 ==0) //_LBB703_20 -{ -__label__ = 90; -break _18; -} -else{ - if(r6 !=59) //_LBB703_31 -{ - r5 = (r5 + 1)|0; - r4 = (r4 + 4)|0; - r2 = (r2 + 4)|0; -} -else{ -__label__ = 27; -break _20; -} -} -} -else{ -__label__ = 32; -break _18; -} -} -} -else{ -__label__ = 22; -break _20; -} -} -} -else{ -__label__ = 90; -break _18; -} -} -} -switch(__label__ ){//multiple entries -case 19: - r1 = r3; -__label__ = 29; -break _18; -break; -case 27: - r2 = r7 | 3; - r1 = (r2 + r1)|0; - r4 = (r1 + 1)|0; -__label__ = 32; -break _18; -break; -case 22: - r2 = r7 | 1; - r1 = (r2 + r1)|0; - r4 = (r1 + 1)|0; -__label__ = 32; -break; -} -} -else{ -__label__ = 29; -} -} while(0); -if (__label__ == 29){ - if(r2 ==0) //_LBB703_34 -{ - r3 = r1; -__label__ = 90; -} -else{ - r4 = r2; - r3 = r1; -__label__ = 32; -} -} -_39: do { -switch(__label__ ){//multiple entries -case 90: - r7 = heapU8[r3]; - if(r7 ==0) //_LBB703_98 -{ - r0 = sp + -624; - r0 = r0 >> 2; - heap32[(r0+20)] = 0; - heap32[(r0+22)] = 0; - heap32[(r0+21)] = 0; -__label__ = 73; -break _39; -} -else{ - r7 = 1; -__label__ = 93; -break _39; -} -break; -case 32: - r1 = sp + -264; - r2 = sp + -528; - r5 = (r1 + 8)|0; - r6 = (r2 + 8)|0; - r7 = 1; - r8 = 0; -_45: while(true){ - if(r4 ==0) //_LBB703_39 -{ - r4 = heapU8[r3]; -_49: do { - if(r4 !=0) //_LBB703_41 -{ - r9 = (r3 + 1)|0; - r10 = 0; -_51: while(true){ - r4 = (r10 + 1)|0; - r11 = heapU8[r9+r10]; - r10 = r4; -if(!(r11 !=0)) //_LBB703_42 -{ -break _49; -} -} -} -else{ - r4 = 0; -} -} while(0); - r4 = (r3 + r4)|0; -} - r9 = (r4 - r3)|0; - heap32[(fp+-66)] = r9; - if(uint(r9) >uint(255)) //_LBB703_46 -{ - r10 = (r9 + 1)|0; - heap32[(g0)] = r10; - _Znaj(i7); - r10 = r_g0; -} -else{ - r10 = r5; -} - r11 = r1 >> 2; - heap32[(r11+1)] = r10; - heap32[(g0)] = r10; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r9; - memcpy(i7); - r9 = heap32[(r11+1)]; - r10 = heap32[(fp+-66)]; - r12 = 0; - heap8[r9+r10] = r12; - r9 = r2 >> 2; - heap32[(fp+-132)] = 0; - heap32[(r9+1)] = r6; - heap8[sp+-520] = r12; - r10 = _ZN4__rw9__rw_catsE; - r13 = (r8 * 12)|0; - r10 = (r10 + r13)|0; - r13 = heap32[(r11+1)]; - r10 = r10 >> 2; - r10 = heap32[(r10)]; - heap32[(g0)] = r10; - heap32[(g0+1)] = r13; - heap32[(g0+2)] = r2; - _ZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEE(i7); - r10 = r_g0; - if(r10 !=0) //_LBB703_50 -{ - r13 = heapU8[r10]; -_63: do { - if(r13 !=0) //_LBB703_52 -{ - r14 = (r10 + 1)|0; -_65: while(true){ - r13 = (r12 + 1)|0; - r15 = heapU8[r14+r12]; - r12 = r13; -if(!(r15 !=0)) //_LBB703_53 -{ -break _63; -} -} -} -else{ - r13 = 0; -} -} while(0); - r12 = r7 & 255; -_69: do { -if(!(r12 ==0)) //_LBB703_56 -{ - if(r8 !=0) //_LBB703_57 -{ - r7 = r0 >> 2; - r7 = heap32[(r7+1)]; - r12 = r7; - r14 = r10; - r15 = r13; -_72: while(true){ - if(r15 !=0) //_LBB703_58 -{ - r15 = (r15 + -1)|0; - r16 = (r14 + 1)|0; - r17 = (r12 + 1)|0; - r18 = heapU8[r12]; - r19 = heapU8[r14]; - r12 = r17; - r14 = r16; - if(r18 !=r19) //_LBB703_62 -{ -__label__ = 57; -break _72; -} -else{ -__label__ = 54; -} -} -else{ -__label__ = 55; -break _72; -} -} -if (__label__ == 55){ - r7 = heapU8[r7+r13]; -if(!(r7 !=59)) //_LBB703_62 -{ - r7 = 1; -break _69; -} -} - r7 = 0; -} -} -} while(0); - heap32[(g0)] = r0; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r13; - _ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7); - r8 = (r8 + 1)|0; - if(r8 !=6) //_LBB703_66 -{ - r10 = heapU8[r4]; - if(r10 !=0) //_LBB703_68 -{ - r3 = _2E_str785; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = 1; - _ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7); - r3 = (r4 + 1)|0; - r4 = 2; -} -else{ - r4 = 1; -} -} -else{ - r4 = 1; - r8 = 6; -} -} -else{ - r4 = 0; -} - r9 = heap32[(r9+1)]; -if(!(r9 ==r6)) //_LBB703_73 -{ -if(!(r9 ==0)) //_LBB703_73 -{ - heap32[(g0)] = r9; - _ZdaPv(i7); -} -} - if(r4 ==1) //_LBB703_79 -{ -__label__ = 74; -break _45; -} -else{ - if(r4 !=0) //_LBB703_83 -{ - r4 = heap32[(r11+1)]; - if(r4 ==r5) //_LBB703_85 -{ -__label__ = 79; -} -else{ - if(r4 !=0) //_LBB703_86 -{ - r10 = 0; - heap32[(g0)] = r4; - _ZdaPv(i7); - r9 = r3; -__label__ = 81; -} -else{ -__label__ = 79; -} -} -if (__label__ == 79){ - r10 = 0; - r9 = r3; -} -_101: while(true){ - r4 = r10 << 2; - r11 = r4 | 3; - r12 = r4 | 2; - r13 = heapU8[r9]; - r4 = (r3 + r4)|0; - r11 = (r3 + r11)|0; - r12 = (r3 + r12)|0; - if(r13 ==59) //_LBB703_37 -{ -continue _45; -} -else{ - r4 = 0; - if(r13 ==0) //_LBB703_37 -{ -continue _45; -} -else{ - r13 = heapU8[r9+1]; - if(r13 ==59) //_LBB703_36 -{ -break _101; -} -else{ - r4 = 0; - if(r13 ==0) //_LBB703_37 -{ -continue _45; -} -else{ - r13 = heapU8[r9+2]; - r4 = r12; - if(r13 ==59) //_LBB703_37 -{ -continue _45; -} -else{ - r4 = 0; - if(r13 ==0) //_LBB703_37 -{ -continue _45; -} -else{ - r12 = heapU8[r9+3]; - r4 = r11; - if(r12 ==59) //_LBB703_37 -{ -continue _45; -} -else{ - r4 = 0; - if(r12 ==0) //_LBB703_37 -{ -continue _45; -} -else{ - r10 = (r10 + 1)|0; - r9 = (r9 + 4)|0; -} -} -} -} -} -} -} -} -} - r4 = (r9 + 1)|0; -continue _45; -} -else{ -__label__ = 70; -break _45; -} -} -} -switch(__label__ ){//multiple entries -case 74: - r1 = heap32[(r11+1)]; - if(r1 ==r5) //_LBB703_81 -{ -__label__ = 93; -break _39; -} -else{ - if(r1 !=0) //_LBB703_82 -{ - heap32[(g0)] = r1; - _ZdaPv(i7); -__label__ = 93; -break _39; -} -else{ -__label__ = 93; -break _39; -} -} -break; -case 70: - r0 = heap32[(r11+1)]; - if(r0 ==r5) //_LBB703_78 -{ -__label__ = 73; -} -else{ - if(r0 ==0) //_LBB703_78 -{ -__label__ = 73; -} -else{ - heap32[(g0)] = r0; - _ZdaPv(i7); -__label__ = 73; -} -} -break; -} -break; -} -} while(0); -_119: do { -if (__label__ == 93){ - r1 = r0 >> 2; - r2 = heap32[(r1+1)]; - r4 = heapU8[r2]; - if(r4 ==0) //_LBB703_117 -{ - heap32[(g0)] = 0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r0; - _ZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEE(i7); - r0 = r_g0; - if(r0 ==0) //_LBB703_78 -{ -break _119; -} -} -else{ - r3 = r7 & 255; -if(!(r3 ==0)) //_LBB703_118 -{ - r3 = 0; - r4 = r2; -_125: while(true){ - r5 = r3 << 2; - r6 = heapU8[r4]; - if(r6 !=59) //_LBB703_104 -{ - if(r6 !=0) //_LBB703_106 -{ - r6 = heapU8[r4+1]; - if(r6 ==59) //_LBB703_115 -{ -__label__ = 109; -break _125; -} -else{ - if(r6 ==0) //_LBB703_105 -{ -__label__ = 99; -break _125; -} -else{ - r6 = heapU8[r4+2]; - if(r6 !=59) //_LBB703_110 -{ - if(r6 ==0) //_LBB703_105 -{ -__label__ = 99; -break _125; -} -else{ - r6 = heapU8[r4+3]; - if(r6 !=59) //_LBB703_113 -{ - if(r6 ==0) //_LBB703_105 -{ -__label__ = 99; -break _125; -} -else{ - r3 = (r3 + 1)|0; - r4 = (r4 + 4)|0; -} -} -else{ -__label__ = 106; -break _125; -} -} -} -else{ -__label__ = 103; -break _125; -} -} -} -} -else{ -__label__ = 99; -break _125; -} -} -else{ -__label__ = 97; -break _125; -} -} -switch(__label__ ){//multiple entries -case 109: - r3 = (r4 + 1)|0; -break; -case 99: - r3 = 0; -break; -case 97: - r3 = (r2 + r5)|0; -break; -case 106: - r3 = r5 | 3; - r3 = (r2 + r3)|0; -break; -case 103: - r3 = r5 | 2; - r3 = (r2 + r3)|0; -break; -} - r3 = (r3 - r2)|0; - heap32[(r1+1)] = r2; - heap32[(r1)] = r3; - r3 = _2E_str26; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = 1; - _ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7); -} -} - r0 = heap32[(r1+1)]; - r_g0 = r0; - return; -} -} while(0); - r0 = 0; - r_g0 = r0; - return; -} - -function cmplocales(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - r0 = heap32[(r0)]; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r0 = r0 >> 2; - r1 = heap32[(r1+38)]; - r0 = heap32[(r0+38)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - strcmp(i7); - return; -} - -function _ZN4__rw11__rw_localeD2Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+38)]; - r3 = (r0 + 112)|0; - if(r2 ==r3) //_LBB705_2 -{ -__label__ = 2; -} -else{ - if(r2 !=0) //_LBB705_3 -{ - r3 = 0; - heap32[(g0)] = r2; - _ZdaPv(i7); -__label__ = 4; -} -else{ -__label__ = 2; -} -} -if (__label__ == 2){ - r3 = 0; -} -_6: while(true){ - r2 = r3 << 2; - r2 = (r0 - r2)|0; - r2 = r2 >> 2; - r4 = 0; - r2 = heap32[(r2)]; -if(!(r2 ==0)) //_LBB705_10 -{ - r5 = r2 >> 2; - r6 = heap32[(r5+5)]; - if(r6 ==0) //_LBB705_7 -{ - r2 = heap32[(r5+6)]; - r2 = (r2 + -1)|0; - heap32[(r5+6)] = r2; -if(!(r2 !=0)) //_LBB705_10 -{ - r2 = (r4 - r3)|0; - r2 = r2 << 2; - r2 = (r0 + r2)|0; - r2 = r2 >> 2; - r2 = heap32[(r2)]; -if(!(r2 ==0)) //_LBB705_10 -{ - r5 = r2 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+1)]; - heap32[(g0)] = r2; - __FUNCTION_TABLE__[(r5)>>2](i7); -} -} -} -else{ - r5 = heap32[(r5+1)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = 0; - _ZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_E(i7); -} -} - r3 = (r3 + -1)|0; - if(r3 !=-26) //_LBB705_4 -{ -continue _6; -} -else{ -break _6; -} -} - r0 = heap32[(r1+26)]; - r2 = heap32[(r1+27)]; -_17: do { -if(!(r2 ==0)) //_LBB705_13 -{ -_18: while(true){ - r2 = r4 << 2; - r0 = (r0 + r2)|0; - r0 = r0 >> 2; - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r3 = heap32[(r0+6)]; - r3 = (r3 + -1)|0; - heap32[(r0+6)] = r3; -if(!(r3 !=0)) //_LBB705_17 -{ - r0 = heap32[(r1+26)]; - r0 = (r0 + r2)|0; - r0 = r0 >> 2; - r0 = heap32[(r0)]; -if(!(r0 ==0)) //_LBB705_17 -{ - r2 = r0 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+1)]; - heap32[(g0)] = r0; - __FUNCTION_TABLE__[(r2)>>2](i7); -} -} - r4 = (r4 + 1)|0; - r0 = heap32[(r1+26)]; - r2 = heap32[(r1+27)]; - if(r4 !=r2) //_LBB705_14 -{ -continue _18; -} -else{ -break _17; -} -} -} -} while(0); -if(!(r0 ==0)) //_LBB705_20 -{ - heap32[(g0)] = r0; - _ZdaPv(i7); -} - return; -} - -function _ZN4__rw11__rw_localeC2EPKc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + -280;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - heap32[(r1+26)] = 0; - heap32[(r1+27)] = 0; - heap32[(r1+39)] = 1; - r2 = heap32[(fp+1)]; - heap32[(r1+40)] = 0; - heap32[(r1+41)] = 0; - r3 = heapU8[r2]; - if(r3 ==0) //_LBB706_2 -{ - r3 = sp + -264; - r4 = 0; - r5 = r3 >> 2; - r6 = (r0 + 112)|0; - heap8[sp+-256] = r4; - heap32[(r5+1)] = r6; - heap32[(fp+-66)] = 0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - r2 = (r3 + 8)|0; - _ZN4__rwL16__rw_expand_nameERNS_14__rw_pod_arrayIcLj256EEEPKc(i7); - r3 = r_g0; - heap32[(r1+38)] = r3; - heap32[(r5+1)] = r2; -} -else{ - r3 = 1; -_5: while(true){ - r4 = (r3 + 1)|0; - r5 = heapU8[r2+r3]; - r3 = r4; -if(!(r5 !=0)) //_LBB706_4 -{ -break _5; -} -} - if(uint(r4) >uint(39)) //_LBB706_7 -{ - heap32[(g0)] = r4; - _Znaj(i7); - r3 = r_g0; -} -else{ - r3 = (r0 + 112)|0; -} - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r4; - memcpy(i7); - heap32[(r1+38)] = r3; -} - r2 = 0; - heap32[(r1+40)] = 67108863; - heap32[(r1+41)] = 0; -_13: while(true){ - r4 = (r3 - r2)|0; - r5 = heapU8[r4]; - if(r5 ==0) //_LBB706_43 -{ -__label__ = 41; -break _13; -} -else{ - if(r5 ==59) //_LBB706_20 -{ -__label__ = 20; -break _13; -} -else{ - r5 = heapU8[r4+1]; - if(r5 ==0) //_LBB706_43 -{ -__label__ = 41; -break _13; -} -else{ - if(r5 !=59) //_LBB706_15 -{ - r5 = heapU8[r4+2]; - if(r5 ==0) //_LBB706_43 -{ -__label__ = 41; -break _13; -} -else{ - if(r5 ==59) //_LBB706_14 -{ -__label__ = 14; -break _13; -} -else{ - r4 = heapU8[r4+3]; - if(r4 ==0) //_LBB706_43 -{ -__label__ = 41; -break _13; -} -else{ - if(r4 ==59) //_LBB706_14 -{ -__label__ = 14; -break _13; -} -else{ - r2 = (r2 + -4)|0; -continue _13; -} -} -} -} -} -else{ -__label__ = 14; -break _13; -} -} -} -} -} -if (__label__ == 20){ - if(r3 ==r2) //_LBB706_43 -{ -__label__ = 41; -} -else{ -__label__ = 14; -} -} -_25: do { -switch(__label__ ){//multiple entries -case 41: - r2 = heapU8[r3]; -if(!(r2 !=67)) //_LBB706_45 -{ - r2 = heapU8[r3+1]; - if(r2 ==0) //_LBB706_46 -{ -break _25; -} -} - heap32[(r1+41)] = 67108863; -break; -case 14: - r2 = 0; - r4 = r2; -_31: while(true){ - r5 = heapU8[r3]; - if(r5 ==0) //_LBB706_46 -{ -break _25; -} -else{ - if(r2 !=-6) //_LBB706_21 -{ - r5 = r5 & 255; - if(r5 !=67) //_LBB706_24 -{ -__label__ = 23; -} -else{ - r5 = heapU8[r3+1]; - if(r5 !=59) //_LBB706_24 -{ -__label__ = 23; -} -else{ -__label__ = 24; -} -} -if (__label__ == 23){ - r5 = (r2 * -3)|0; - r6 = _ZN4__rw9__rw_catsE; - r5 = r5 << 2; - r5 = (r6 + r5)|0; - r5 = r5 >> 2; - r5 = heap32[(r5+2)]; - r4 = r5 | r4; - heap32[(r1+41)] = r4; -} - r5 = 0; - r6 = r3; -_40: while(true){ - r7 = heapU8[r6]; - if(r7 ==0) //_LBB706_46 -{ -break _25; -} -else{ - if(r7 ==59) //_LBB706_37 -{ -__label__ = 36; -break _40; -} -else{ - r7 = heapU8[r6+1]; - if(r7 ==0) //_LBB706_46 -{ -break _25; -} -else{ - if(r7 ==59) //_LBB706_39 -{ -__label__ = 37; -break _40; -} -else{ - r7 = heapU8[r6+2]; - if(r7 ==0) //_LBB706_46 -{ -break _25; -} -else{ - r8 = r5 << 2; - if(r7 !=59) //_LBB706_33 -{ - r7 = heapU8[r6+3]; - if(r7 ==0) //_LBB706_46 -{ -break _25; -} -else{ - if(r7 !=59) //_LBB706_36 -{ - r5 = (r5 + 1)|0; - r6 = (r6 + 4)|0; -} -else{ -__label__ = 34; -break _40; -} -} -} -else{ -__label__ = 31; -break _40; -} -} -} -} -} -} -} -switch(__label__ ){//multiple entries -case 36: - if(r6 ==0) //_LBB706_46 -{ -break _25; -} -break; -case 37: - r6 = (r6 + 1)|0; -break; -case 34: - r5 = r8 | 3; - r6 = (r3 + r5)|0; -break; -case 31: - r5 = r8 | 2; - r6 = (r3 + r5)|0; -break; -} - r3 = (r6 + 1)|0; - r2 = (r2 + -1)|0; -continue _31; -} -else{ -break _25; -} -} -} -break; -} -} while(0); - r1 = 104; - r3 = 0; -_57: while(true){ - r2 = (r1 + -1)|0; - r1 = (r0 - r1)|0; - heap8[r1+104] = r3; - r1 = r2; - if(r2 !=0) //_LBB706_47 -{ -continue _57; -} -else{ -break _57; -} -} - return; -} - -function _ZN4__rw11__rw_locale9_C_manageEPS0_PKc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; -var __label__ = 0; - i7 = sp + -280;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - if(r0 !=0) //_LBB707_9 -{ - r2 = heapU8[r0]; - if(r2 ==67) //_LBB707_11 -{ - r2 = heapU8[r0+1]; - r3 = 0; - r2 = r2 != r3; -} -else{ - r2 = 1; -} - r3 = sp + -264; - r4 = (r3 + 8)|0; - r5 = _2E_str538; - r6 = r3 >> 2; - heap32[(fp+-66)] = 0; - r0 = r2 != 0 ? r0 : r5; - r7 = 0; - heap32[(r6+1)] = r4; - heap8[sp+-256] = r7; - if(r1 !=0) //_LBB707_14 -{ -__label__ = 19; -} -else{ - if(r2 != 0) //_LBB707_15 -{ - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - _ZN4__rwL16__rw_expand_nameERNS_14__rw_pod_arrayIcLj256EEEPKc(i7); - r0 = r_g0; - if(r0 !=0) //_LBB707_18 -{ - r2 = heapU8[r0]; - if(r2 ==67) //_LBB707_20 -{ - r2 = heapU8[r0+1]; - if(r2 !=0) //_LBB707_19 -{ -__label__ = 19; -} -else{ - r0 = r5; -__label__ = 19; -} -} -else{ -__label__ = 19; -} -} -else{ -__label__ = 15; -} -} -else{ -__label__ = 19; -} -} -_14: do { -if (__label__ == 19){ - r2 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE9n_locales; - r3 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7locales; - r2 = r2 >> 2; - r3 = r3 >> 2; - r5 = heap32[(r2)]; - r8 = heap32[(r3)]; - if(r1 ==0) //_LBB707_24 -{ - r7 = r5; -_18: while(true){ - r9 = r7; - if(r9 ==0) //_LBB707_53 -{ -__label__ = 49; -break _18; -} -else{ - r1 = r9 << 1; - r10 = r1 & -4; - r11 = (r8 + r10)|0; - r1 = r11 >> 2; - r1 = heap32[(r1)]; - r12 = r1 >> 2; - r7 = heap32[(r12+38)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - strcmp(i7); - r13 = r_g0; - r7 = r9 >>> 1; - if(r13 <0) //_LBB707_50 -{ -__label__ = 46; -} -else{ - if(r13 <1) //_LBB707_51 -{ -__label__ = 47; -break _18; -} -else{ - r1 = (r10 + r8)|0; - r9 = (r9 + -1)|0; - r8 = (r1 + 4)|0; - r7 = (r9 - r7)|0; -} -} -} -} -if (__label__ == 47){ -if(!(r11 ==0)) //_LBB707_53 -{ - r0 = heap32[(r12+39)]; - r0 = (r0 + 1)|0; - heap32[(r12+39)] = r0; -__label__ = 65; -break _14; -} -} - r1 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE14locale_bufsize; - r1 = r1 >> 2; - r7 = heap32[(r1)]; -if(!(r5 !=r7)) //_LBB707_59 -{ - r5 = r5 << 3; - heap32[(g0)] = r5; - _Znaj(i7); - r5 = r_g0; - r7 = heap32[(r3)]; - r8 = heap32[(r2)]; - r8 = r8 << 2; - heap32[(g0)] = r5; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r8; - memcpy(i7); - r8 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE10locale_buf; -if(!(r7 ==r8)) //_LBB707_58 -{ -if(!(r7 ==0)) //_LBB707_58 -{ - heap32[(g0)] = r7; - _ZdaPv(i7); -} -} - heap32[(r3)] = r5; - r5 = heap32[(r1)]; - r5 = r5 << 1; - heap32[(r1)] = r5; -} - r1 = heapU8[r0]; - if(r1 !=67) //_LBB707_65 -{ -__label__ = 61; -} -else{ - r1 = heapU8[r0+1]; - if(r1 !=0) //_LBB707_65 -{ -__label__ = 61; -} -else{ - r1 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7classic; - r5 = r1 >> 2; - r1 = heap32[(r5)]; - if(r1 !=0) //_LBB707_64 -{ - r0 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE12classic_body; - r0 = r0 >> 2; - r5 = heap32[(r0+39)]; - r5 = (r5 + 1)|0; - heap32[(r0+39)] = r5; -__label__ = 63; -} -else{ - r1 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE12classic_body; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - _ZN4__rw11__rw_localeC2EPKc(i7); - heap32[(r5)] = r1; -__label__ = 63; -} -} -} -if (__label__ == 61){ - heap32[(g0)] = 172; - _Znwj(i7); - r1 = r_g0; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - _ZN4__rw11__rw_localeC2EPKc(i7); -} - r0 = heap32[(r2)]; - r3 = heap32[(r3)]; - r5 = r0 << 2; - r5 = (r3 + r5)|0; - r5 = r5 >> 2; - r7 = (r0 + 1)|0; - heap32[(r5)] = r1; - heap32[(r2)] = r7; - r2 = (r0 + -1)|0; - if(uint(r2) > 2; - r9 = heap32[(r9)]; - r9 = r9 >> 2; - r9 = heap32[(r9+38)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r9; - strcmp(i7); - r14 = r_g0; - r9 = r11 >>> 1; - if(r14 <0) //_LBB707_28 -{ -__label__ = 25; -} -else{ - if(r14 <1) //_LBB707_29 -{ -__label__ = 26; -break _48; -} -else{ - r10 = (r12 + r10)|0; - r11 = (r11 + -1)|0; - r10 = (r10 + 4)|0; - r9 = (r11 - r9)|0; -} -} -} -} -if (__label__ == 26){ -if(!(r13 ==0)) //_LBB707_46 -{ - r1 = (r13 - r8)|0; - r0 = r1 & -4; - r9 = (r8 + r0)|0; - r9 = r9 >> 2; - r9 = heap32[(r9)]; - r10 = r9 >> 2; - r11 = heap32[(r10+39)]; - r11 = (r11 + -1)|0; - heap32[(r10+39)] = r11; - if(r11 !=0) //_LBB707_17 -{ -__label__ = 15; -break _14; -} -else{ - r1 = r1 >> 2; - r11 = (r5 + -1)|0; - heap32[(r2)] = r11; - if(uint(r11) >uint(3)) //_LBB707_36 -{ -__label__ = 33; -} -else{ - r2 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE10locale_buf; - if(r8 ==r2) //_LBB707_36 -{ -__label__ = 33; -} -else{ - heap32[(g0)] = r2; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r0; - r0 = r1 << 2; - r5 = (r0 + r8)|0; - r1 = (r11 - r1)|0; - memcpy(i7); - r0 = (r2 + r0)|0; - r5 = (r5 + 4)|0; - r1 = r1 << 2; - heap32[(g0)] = r0; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r1; - memcpy(i7); -if(!(r8 ==0)) //_LBB707_35 -{ - heap32[(g0)] = r8; - _ZdaPv(i7); -} - r1 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE14locale_bufsize; - r1 = r1 >> 2; - heap32[(r3)] = r2; - heap32[(r1)] = 8; -__label__ = 36; -} -} -_63: do { -if (__label__ == 33){ - r0 = (r11 - r1)|0; - r0 = r0 << 2; -if(!(r0 ==0)) //_LBB707_39 -{ - r0 = r5 << 2; - r1 = r1 << 2; - r0 = (r0 + -4)|0; - r2 = (r1 + r8)|0; - r1 = (r0 - r1)|0; - r0 = (r2 + 4)|0; -_66: while(true){ - r2 = heapU8[r0]; - r1 = (r1 + -1)|0; - r3 = (r0 + 1)|0; - heap8[r0+-4] = r2; - r0 = r3; -if(!(r1 !=0)) //_LBB707_38 -{ -break _63; -} -} -} -} -} while(0); - r1 = heap32[(r10+38)]; - r0 = heapU8[r1]; - if(r0 ==67) //_LBB707_41 -{ - r1 = heapU8[r1+1]; - r7 = 0; - r7 = r1 == r7; -} - if(r7 != 0) //_LBB707_17 -{ -__label__ = 15; -break _14; -} -else{ - if(r9 ==0) //_LBB707_17 -{ -__label__ = 15; -break _14; -} -else{ - heap32[(g0)] = r9; - _ZN4__rw11__rw_localeD2Ev(i7); - heap32[(g0)] = r9; - r1 = 0; - _ZdlPv(i7); -__label__ = 65; -break _14; -} -} -} -} -} - r0 = r1 >> 2; - r2 = heap32[(r0+39)]; - r1 = 0; - r2 = (r2 + -1)|0; - heap32[(r0+39)] = r2; -__label__ = 65; -} -} -} while(0); -if (__label__ == 15){ - r1 = 0; -} - r0 = heap32[(r6+1)]; -if(!(r0 ==r4)) //_LBB707_73 -{ -if(!(r0 ==0)) //_LBB707_73 -{ - heap32[(g0)] = r0; - _ZdaPv(i7); -} -} - r_g0 = r1; - return; -} -else{ - r0 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE6global; - r0 = r0 >> 2; - r2 = heap32[(r0)]; -_84: do { - if(r2 ==0) //_LBB707_3 -{ - r3 = _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE5ginit; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - if(r4 !=0) //_LBB707_5 -{ -_87: while(true){ - r4 = heap32[(r3)]; -if(!(r4 <1000)) //_LBB707_5 -{ -break _84; -} -} -} -else{ - r2 = (r4 + 1)|0; - heap32[(r3)] = r2; - r2 = _2E_str538; - heap32[(g0)] = 0; - heap32[(g0+1)] = r2; - _ZN4__rw11__rw_locale9_C_manageEPS0_PKc(i7); - r2 = r_g0; - heap32[(r0)] = r2; - r4 = heap32[(r3)]; - r4 = (r4 + 1000)|0; - heap32[(r3)] = r4; -} -} -} while(0); - if(r1 ==0) //_LBB707_8 -{ - r0 = r2 >> 2; - r1 = heap32[(r0+39)]; - r1 = (r1 + 1)|0; - heap32[(r0+39)] = r1; - r_g0 = r2; - return; -} -else{ - r3 = r1 >> 2; - r4 = heap32[(r3+39)]; - r4 = (r4 + 1)|0; - heap32[(r3+39)] = r4; - heap32[(r0)] = r1; - r_g0 = r2; - return; -} -} -} - -function _ZN4__rw11__rw_locale11_C_get_bodyEPS0_S1_PKciPKNS_10__rw_facetE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -304;var g0 = i7>>2; // save stack - r0 = sp + -264; - r1 = (r0 + 8)|0; - r2 = r0 >> 2; - heap32[(fp+-66)] = 0; - r3 = 0; - heap32[(r2+1)] = r1; - heap8[sp+-256] = r3; - r4 = _2E_str538; - r5 = _2E_str292167; - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = 3; - strncmp(i7); - r5 = r_g0; -_1: do { - if(r5 ==0) //_LBB708_2 -{ - r4 = sp + -288; - r5 = r4 >> 2; - heap32[(fp+-72)] = 0; - heap32[(r5+1)] = 0; - heap32[(r5+2)] = 0; - heap32[(r5+3)] = 0; - r6 = 4; - heap32[(r5+4)] = 0; - heap32[(r5+5)] = 0; -_3: while(true){ - r6 = (r6 + -4)|0; -if(!(r6 !=0)) //_LBB708_3 -{ -break _3; -} -} - r5 = _2E_str538; -_6: while(true){ - r6 = heapU8[r5]; - if(r6 ==0) //_LBB708_48 -{ -__label__ = 44; -break _6; -} -else{ - r6 = r3; - r7 = r3; -_9: while(true){ - r8 = (r5 + r6)|0; - r9 = heapU8[r5+r6]; - if(r9 ==59) //_LBB708_17 -{ -__label__ = 16; -break _9; -} -else{ - if(r9 !=0) //_LBB708_8 -{ - r9 = heapU8[r8+1]; - if(r9 ==0) //_LBB708_7 -{ -__label__ = 6; -break _9; -} -else{ - if(r9 ==59) //_LBB708_21 -{ -__label__ = 18; -break _9; -} -else{ - r9 = heapU8[r8+2]; - if(r9 ==0) //_LBB708_7 -{ -__label__ = 6; -break _9; -} -else{ - r10 = r7 << 2; - if(r9 !=59) //_LBB708_13 -{ - r8 = heapU8[r8+3]; - if(r8 ==0) //_LBB708_7 -{ -__label__ = 6; -break _9; -} -else{ - if(r8 !=59) //_LBB708_16 -{ - r7 = (r7 + 1)|0; - r6 = (r6 + 4)|0; -} -else{ -__label__ = 14; -break _9; -} -} -} -else{ -__label__ = 11; -break _9; -} -} -} -} -} -else{ -__label__ = 6; -break _9; -} -} -} -_19: do { -switch(__label__ ){//multiple entries -case 16: - if(r8 ==0) //_LBB708_7 -{ -__label__ = 6; -break _19; -} -else{ -__label__ = 19; -break _19; -} -break; -case 18: - r8 = (r8 + 1)|0; -__label__ = 19; -break _19; -break; -case 14: - r6 = r10 | 3; - r8 = (r5 + r6)|0; -__label__ = 19; -break _19; -break; -case 11: - r6 = r10 | 2; - r8 = (r5 + r6)|0; -__label__ = 19; -break; -} -} while(0); -_24: do { -if (__label__ == 6){ - r6 = r5; -_26: while(true){ - r8 = (r6 + 1)|0; - r7 = heapU8[r6+1]; - r6 = r8; -if(!(r7 !=0)) //_LBB708_19 -{ -break _24; -} -} -} -} while(0); - r6 = 0; - r7 = r6; -_29: while(true){ - r9 = (r5 + r6)|0; - r10 = heapU8[r5+r6]; - if(r10 ==61) //_LBB708_35 -{ -__label__ = 32; -break _29; -} -else{ - if(r10 !=0) //_LBB708_26 -{ - r10 = heapU8[r9+1]; - if(r10 ==0) //_LBB708_25 -{ -__label__ = 22; -break _6; -} -else{ - if(r10 ==61) //_LBB708_37 -{ -__label__ = 33; -break _29; -} -else{ - r10 = heapU8[r9+2]; - if(r10 ==0) //_LBB708_25 -{ -__label__ = 22; -break _6; -} -else{ - r11 = r7 << 2; - if(r10 !=61) //_LBB708_31 -{ - r9 = heapU8[r9+3]; - if(r9 ==0) //_LBB708_25 -{ -__label__ = 22; -break _6; -} -else{ - if(r9 !=61) //_LBB708_34 -{ - r7 = (r7 + 1)|0; - r6 = (r6 + 4)|0; -} -else{ -__label__ = 30; -break _29; -} -} -} -else{ -__label__ = 27; -break _29; -} -} -} -} -} -else{ -__label__ = 22; -break _6; -} -} -} -switch(__label__ ){//multiple entries -case 32: - if(r9 ==0) //_LBB708_25 -{ -__label__ = 22; -break _6; -} -break; -case 33: - r9 = (r9 + 1)|0; -break; -case 30: - r6 = r11 | 3; - r9 = (r5 + r6)|0; -break; -case 27: - r6 = r11 | 2; - r9 = (r5 + r6)|0; -break; -} - r6 = (r9 - r5)|0; - r7 = 0; -_45: while(true){ - if(r7 !=-6) //_LBB708_39 -{ - r10 = (r7 * -3)|0; - r11 = _ZN4__rw9__rw_catsE; - r10 = r10 << 2; - r10 = (r11 + r10)|0; - r10 = r10 >> 2; - r10 = heap32[(r10+1)]; - heap32[(g0)] = r10; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r6; - strncmp(i7); - r10 = r_g0; - if(r10 !=0) //_LBB708_42 -{ - r7 = (r7 + -1)|0; -} -else{ -__label__ = 36; -break _45; -} -} -else{ -__label__ = 40; -break _45; -} -} -if (__label__ == 36){ - r6 = r7 << 2; - r6 = (r4 - r6)|0; - r6 = r6 >> 2; - r6 = heap32[(r6)]; - if(r6 !=0) //_LBB708_25 -{ -__label__ = 22; -break _6; -} -else{ - r6 = 0; - r6 = (r6 - r7)|0; - r6 = r6 << 2; - r6 = (r4 + r6)|0; - r6 = r6 >> 2; - r7 = (r9 + 1)|0; - heap32[(r6)] = r7; -} -} - r6 = heapU8[r8]; - r5 = r8; - if(r6 ==0) //_LBB708_46 -{ -__label__ = 42; -} -else{ - r5 = (r8 + 1)|0; -} -} -} -switch(__label__ ){//multiple entries -case 44: - r3 = 0; - r5 = r3; -_56: while(true){ - if(r5 !=-6) //_LBB708_49 -{ - r6 = (r3 - r5)|0; - r6 = r6 << 2; - r6 = (r4 + r6)|0; - r6 = r6 >> 2; - r7 = heap32[(r6)]; - if(r7 ==0) //_LBB708_51 -{ - r7 = _2E_str538; - heap32[(r6)] = r7; -} - r6 = 0; - r8 = r6; -_62: while(true){ - r9 = heapU8[r7+r6]; - if(r9 ==0) //_LBB708_66 -{ -__label__ = 60; -break _62; -} -else{ - r10 = (r7 + r6)|0; - if(r9 ==59) //_LBB708_64 -{ -__label__ = 59; -break _62; -} -else{ - r9 = heapU8[r10+1]; - if(r9 ==0) //_LBB708_66 -{ -__label__ = 60; -break _62; -} -else{ - if(r9 ==59) //_LBB708_71 -{ -__label__ = 65; -break _62; -} -else{ - r9 = heapU8[r10+2]; - if(r9 ==0) //_LBB708_66 -{ -__label__ = 60; -break _62; -} -else{ - r11 = r8 << 2; - if(r9 !=59) //_LBB708_60 -{ - r10 = heapU8[r10+3]; - if(r10 ==0) //_LBB708_66 -{ -__label__ = 60; -break _62; -} -else{ - if(r10 !=59) //_LBB708_63 -{ - r8 = (r8 + 1)|0; - r6 = (r6 + 4)|0; -} -else{ -__label__ = 57; -break _62; -} -} -} -else{ -__label__ = 54; -break _62; -} -} -} -} -} -} -} -_72: do { -switch(__label__ ){//multiple entries -case 59: - if(r10 ==0) //_LBB708_66 -{ -__label__ = 60; -break _72; -} -else{ -__label__ = 66; -break _72; -} -break; -case 65: - r10 = (r10 + 1)|0; -__label__ = 66; -break _72; -break; -case 57: - r6 = r11 | 3; - r10 = (r7 + r6)|0; -__label__ = 66; -break _72; -break; -case 54: - r6 = r11 | 2; - r10 = (r7 + r6)|0; -__label__ = 66; -break; -} -} while(0); -if (__label__ == 60){ - r10 = heapU8[r7]; -_79: do { - if(r10 !=0) //_LBB708_68 -{ - r6 = (r7 + 1)|0; - r8 = 0; -_81: while(true){ - r10 = (r8 + 1)|0; - r9 = heapU8[r6+r8]; - r8 = r10; -if(!(r9 !=0)) //_LBB708_69 -{ -break _79; -} -} -} -else{ - r10 = 0; -} -} while(0); - r10 = (r7 + r10)|0; -} - r6 = (r10 - r7)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r6; - _ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7); - r6 = _2E_str785; - heap32[(g0)] = r0; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = 1; - _ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7); - r5 = (r5 + -1)|0; -} -else{ -break _56; -} -} - r4 = heap32[(r2+1)]; - if(r4 ==0) //_LBB708_78 -{ - heap32[(g0)] = 0; - heap32[(g0+1)] = 0; - _ZN4__rw11__rw_locale9_C_manageEPS0_PKc(i7); - r4 = r_g0; -__label__ = 73; -break _1; -} -else{ -__label__ = 72; -break _1; -} -break; -case 22: - r4 = 0; -__label__ = 73; -break; -} -} -else{ -__label__ = 72; -} -} while(0); -if (__label__ == 72){ - heap32[(g0)] = 0; - heap32[(g0+1)] = r4; - _ZN4__rw11__rw_locale9_C_manageEPS0_PKc(i7); - r4 = r_g0; -} - r0 = heap32[(r2+1)]; -if(!(r0 ==r1)) //_LBB708_83 -{ -if(!(r0 ==0)) //_LBB708_83 -{ - heap32[(g0)] = r0; - _ZdaPv(i7); -} -} - r_g0 = r4; - return; -} - -function _ZNSt6localeD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = r1 >> 2; - r3 = heap32[(r2+27)]; -_1: do { -if(!(r3 !=0)) //_LBB709_86 -{ - r3 = heap32[(r2+40)]; - r3 = r3 & 67108863; -if(!(r3 !=67108863)) //_LBB709_86 -{ - r3 = heap32[(r2+41)]; - r4 = r3 & 8193; -if(!(r4 ==0)) //_LBB709_4 -{ - if(r4 !=8193) //_LBB709_86 -{ -break _1; -} -} - r4 = r3 & 49158; -if(!(r4 ==0)) //_LBB709_6 -{ - if(r4 !=49158) //_LBB709_86 -{ -break _1; -} -} - r4 = r3 & 983160; -if(!(r4 ==0)) //_LBB709_8 -{ - if(r4 !=983160) //_LBB709_86 -{ -break _1; -} -} - r4 = r3 & 7340928; -if(!(r4 ==0)) //_LBB709_10 -{ - if(r4 !=7340928) //_LBB709_86 -{ -break _1; -} -} - r4 = r3 & 25168896; -if(!(r4 ==0)) //_LBB709_12 -{ - if(r4 !=25168896) //_LBB709_86 -{ -break _1; -} -} - r3 = r3 & 33558528; -if(!(r3 ==0)) //_LBB709_14 -{ - if(r3 !=33558528) //_LBB709_86 -{ -break _1; -} -} - r3 = heap32[(r2+38)]; - r4 = _2E_str538; - r5 = r3 == 0 ? r4 : r3; - r6 = heapU8[r5]; - if(r6 ==59) //_LBB709_16 -{ - r5 = (r5 + 1)|0; -} - r6 = 0; - r7 = r6; -_25: while(true){ - r8 = heapU8[r5+r6]; - if(r8 ==0) //_LBB709_33 -{ -__label__ = 31; -break _25; -} -else{ - r9 = (r5 + r6)|0; - if(r8 ==59) //_LBB709_29 -{ -__label__ = 28; -break _25; -} -else{ - r8 = heapU8[r9+1]; - if(r8 ==0) //_LBB709_33 -{ -__label__ = 31; -break _25; -} -else{ - if(r8 ==59) //_LBB709_31 -{ -__label__ = 29; -break _25; -} -else{ - r8 = heapU8[r9+2]; - if(r8 ==0) //_LBB709_33 -{ -__label__ = 31; -break _25; -} -else{ - r10 = r7 << 2; - if(r8 !=59) //_LBB709_25 -{ - r9 = heapU8[r9+3]; - if(r9 ==0) //_LBB709_33 -{ -__label__ = 31; -break _25; -} -else{ - if(r9 !=59) //_LBB709_28 -{ - r7 = (r7 + 1)|0; - r6 = (r6 + 4)|0; -} -else{ -__label__ = 26; -break _25; -} -} -} -else{ -__label__ = 23; -break _25; -} -} -} -} -} -} -} -_35: do { -switch(__label__ ){//multiple entries -case 28: - if(r9 ==0) //_LBB709_33 -{ -__label__ = 31; -break _35; -} -else{ -__label__ = 30; -break _35; -} -break; -case 29: - r9 = (r9 + 1)|0; -__label__ = 30; -break _35; -break; -case 26: - r6 = r10 | 3; - r9 = (r5 + r6)|0; -__label__ = 30; -break _35; -break; -case 23: - r6 = r10 | 2; - r9 = (r5 + r6)|0; -__label__ = 30; -break; -} -} while(0); -switch(__label__ ){//multiple entries -case 31: - r6 = heapU8[r5]; - if(r6 !=0) //_LBB709_35 -{ - r7 = (r5 + 1)|0; - r8 = 0; -_44: while(true){ - r6 = (r8 + 1)|0; - r9 = heapU8[r7+r8]; - r8 = r6; -if(!(r9 !=0)) //_LBB709_36 -{ -break _44; -} -} - r9 = 0; - r7 = r9; - r8 = r9; -} -else{ - r9 = 0; - r6 = r9; - r7 = r9; - r8 = r9; -} -break; -case 30: - r6 = (r9 - r5)|0; - r7 = 0; - r8 = r7; -break; -} -_49: while(true){ - if(r7 !=26) //_LBB709_38 -{ - r10 = r7 << 2; - r10 = (r1 + r10)|0; - r10 = r10 >> 2; - r10 = heap32[(r10)]; -_52: do { - if(r10 !=0) //_LBB709_40 -{ - r10 = r10 >> 2; - r11 = heap32[(r10+7)]; - r11 = r11 >> 2; - r10 = heap32[(r10+1)]; - r12 = 0; - r13 = r10 != r12; - r11 = heap32[(r11)]; - r13 = r13 & 1; - r11 = r11 << 1; - r11 = r13 | r11; - r11 = (r11 + -1)|0; - r13 = 53; - r11 = uint(r11) < uint(r13) ? r11 : r12; - if(r11 >36) //_LBB709_43 -{ - r11 = (r11 + -37)|0; -if(!(uint(r11) >uint(8))) //_LBB709_45 -{ - r13 = 1; - r11 = r13 << r11; - r11 = r11 & 325; - if(r11 !=0) //_LBB709_39 -{ -break _52; -} -} -} -else{ -if(!(uint(r11) >uint(19))) //_LBB709_45 -{ - r13 = 1; - r11 = r13 << r11; - r11 = r11 & 665600; - if(r11 !=0) //_LBB709_39 -{ -break _52; -} -} -} - r11 = 1; - r11 = r11 << r7; -_60: while(true){ - if(r9 ==0) //_LBB709_75 -{ -break _60; -} -else{ - r13 = _ZN4__rw9__rw_catsE; - r14 = (r8 * 12)|0; - r13 = (r13 + r14)|0; - r13 = r13 >> 2; - r13 = heap32[(r13+2)]; - r13 = r13 & r11; - if(r13 ==0) //_LBB709_46 -{ - r5 = heapU8[r9]; - if(r5 ==0) //_LBB709_48 -{ - if(r3 !=0) //_LBB709_50 -{ - r8 = 0; - r5 = r3; -} -else{ - r8 = 0; - r5 = r4; -} -} -else{ - r5 = (r9 + 1)|0; - r8 = (r8 + 1)|0; -} - r6 = heapU8[r5]; - if(r6 ==59) //_LBB709_53 -{ - r5 = (r5 + 1)|0; -} - r6 = r12; - r13 = r12; -_74: while(true){ - r14 = heapU8[r5+r6]; - if(r14 ==0) //_LBB709_70 -{ -__label__ = 65; -break _74; -} -else{ - r9 = (r5 + r6)|0; - if(r14 ==59) //_LBB709_66 -{ -__label__ = 62; -break _74; -} -else{ - r14 = heapU8[r9+1]; - if(r14 ==0) //_LBB709_70 -{ -__label__ = 65; -break _74; -} -else{ - if(r14 ==59) //_LBB709_68 -{ -__label__ = 63; -break _74; -} -else{ - r14 = heapU8[r9+2]; - if(r14 ==0) //_LBB709_70 -{ -__label__ = 65; -break _74; -} -else{ - r15 = r13 << 2; - if(r14 !=59) //_LBB709_62 -{ - r9 = heapU8[r9+3]; - if(r9 ==0) //_LBB709_70 -{ -__label__ = 65; -break _74; -} -else{ - if(r9 !=59) //_LBB709_65 -{ - r13 = (r13 + 1)|0; - r6 = (r6 + 4)|0; -} -else{ -__label__ = 60; -break _74; -} -} -} -else{ -__label__ = 57; -break _74; -} -} -} -} -} -} -} -_84: do { -switch(__label__ ){//multiple entries -case 62: - if(r9 ==0) //_LBB709_70 -{ -__label__ = 65; -break _84; -} -else{ -__label__ = 64; -break _84; -} -break; -case 63: - r9 = (r9 + 1)|0; -__label__ = 64; -break _84; -break; -case 60: - r6 = r15 | 3; - r9 = (r5 + r6)|0; -__label__ = 64; -break _84; -break; -case 57: - r6 = r15 | 2; - r9 = (r5 + r6)|0; -__label__ = 64; -break; -} -} while(0); -switch(__label__ ){//multiple entries -case 65: - r9 = _2E_str26; - r6 = 0; - r13 = heapU8[r5]; - if(r13 ==0) //_LBB709_73 -{ -continue _60; -} -else{ - r13 = (r5 + 1)|0; - r14 = 0; -_92: while(true){ - r6 = (r14 + 1)|0; - r9 = _2E_str26; - r15 = heapU8[r13+r14]; - r14 = r6; -if(!(r15 !=0)) //_LBB709_72 -{ -continue _60; -} -} -} -break; -case 64: - r6 = (r9 - r5)|0; -break; -} -} -else{ -break _60; -} -} -} - r11 = _2E_str538; - r10 = r10 == 0 ? r11 : r10; - r11 = heapU8[r10]; -_96: do { - if(r11 !=0) //_LBB709_77 -{ - r12 = (r10 + 1)|0; - r13 = 0; -_98: while(true){ - r11 = (r13 + 1)|0; - r14 = heapU8[r12+r13]; - r13 = r11; -if(!(r14 !=0)) //_LBB709_78 -{ -break _96; -} -} -} -else{ - r11 = 0; -} -} while(0); - if(r11 !=r6) //_LBB709_86 -{ -break _1; -} -else{ - r11 = 0; -_103: while(true){ - r12 = (r6 + r11)|0; - if(r12 !=0) //_LBB709_81 -{ - r12 = (r5 - r11)|0; - r13 = (r10 - r11)|0; - r11 = (r11 + -1)|0; - r12 = heapU8[r12]; - r13 = heapU8[r13]; - if(r12 !=r13) //_LBB709_86 -{ -break _1; -} -} -else{ -break _52; -} -} -} -} -} while(0); - r7 = (r7 + 1)|0; -} -else{ -break _49; -} -} - heap32[(g0)] = r1; - heap32[(g0+1)] = r3; - _ZN4__rw11__rw_locale9_C_manageEPS0_PKc(i7); - return; -} -} -} while(0); - r1 = heap32[(r2+39)]; - r1 = (r1 + -1)|0; - heap32[(r2+39)] = r1; -if(!(r1 !=0)) //_LBB709_89 -{ - r0 = heap32[(r0)]; -if(!(r0 ==0)) //_LBB709_89 -{ - heap32[(g0)] = r0; - _ZN4__rw11__rw_localeD2Ev(i7); - heap32[(g0)] = r0; - _ZdlPv(i7); -} -} - return; -} - -function _ZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE4init_2E_b; - r1 = heapU8[r0]; -if(!(r1 != 0)) //_LBB710_5 -{ - r1 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize; - r1 = r1 >> 2; - r1 = heap32[(r1)]; -if(!(r1 ==0)) //_LBB710_4 -{ - r2 = 0; -_5: while(true){ - r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs; - r3 = r3 >> 2; - r4 = r2 << 3; - r3 = heap32[(r3)]; - r3 = (r3 + r4)|0; - r2 = (r2 + 1)|0; - r3 = r3 >> 2; - heap32[(r3)] = -1; -if(!(uint(r2) > 2; - r2 = heap32[(r0)]; -_9: do { - if(r2 !=-1) //_LBB710_27 -{ - if(r1 !=0) //_LBB710_30 -{ - r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE10n_catalogs; - r3 = r3 >> 2; - r4 = heap32[(r3)]; - r5 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs; - r4 = (r4 + -1)|0; - r5 = r5 >> 2; - heap32[(r3)] = r4; - r3 = heap32[(r5)]; - r2 = r2 << 3; - r2 = (r3 + r2)|0; - r4 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11largest_cat; - r2 = r2 >> 2; - heap32[(r2)] = -1; - r2 = r4 >> 2; - r0 = heap32[(r0)]; - r4 = heap32[(r2)]; - if(r0 ==r4) //_LBB710_32 -{ -__label__ = 33; //SET chanka -_13: while(true){ - if(r0 >-1) //_LBB710_33 -{ - r6 = r0 << 3; - r6 = (r3 + r6)|0; - r6 = r6 >> 2; - r6 = heap32[(r6)]; - if(r6 ==-1) //_LBB710_35 -{ - r0 = (r0 + -1)|0; -} -else{ -__label__ = 31; -break _13; -} -} -else{ -__label__ = 34; -break _13; -} -} -switch(__label__ ){//multiple entries -case 34: - r0 = r4; -break; -case 31: - heap32[(r2)] = r0; -break; -} - if(uint(r0) >uint(3)) //_LBB710_31 -{ -__label__ = 40; -break _9; -} -else{ - r0 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11catalog_buf; - if(r3 ==r0) //_LBB710_31 -{ -__label__ = 40; -break _9; -} -else{ - r2 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize; - r2 = r2 >> 2; - heap32[(r2)] = 8; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = 64; - memcpy(i7); -if(!(r3 ==0)) //_LBB710_42 -{ - heap32[(g0)] = r3; - _ZdaPv(i7); -} - heap32[(r5)] = r0; -__label__ = 40; -break _9; -} -} -} -else{ -__label__ = 40; -break _9; -} -} -else{ - r0 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize; - r0 = r0 >> 2; - r0 = heap32[(r0)]; - if(uint(r2) >=uint(r0)) //_LBB710_7 -{ -__label__ = 7; -break _9; -} -else{ - r0 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs; - r0 = r0 >> 2; - r0 = heap32[(r0)]; - r1 = r2 << 3; - r0 = (r0 + r1)|0; - r_g0 = r0; - return; -} -} -} -else{ - if(r1 !=0) //_LBB710_8 -{ - r2 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE10n_catalogs; - r2 = r2 >> 2; - r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize; - r4 = heap32[(r2)]; - r3 = r3 >> 2; - r5 = heap32[(r3)]; - if(r4 ==r5) //_LBB710_12 -{ - r4 = r4 << 4; - r5 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs; - heap32[(g0)] = r4; - _Znaj(i7); - r4 = r_g0; - r5 = r5 >> 2; - r6 = heap32[(r2)]; - r7 = heap32[(r5)]; - r8 = r6 << 3; - heap32[(g0)] = r4; - heap32[(g0+1)] = r7; - heap32[(g0+2)] = r8; - memcpy(i7); - r8 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11catalog_buf; -if(!(r7 ==r8)) //_LBB710_14 -{ - if(r7 !=0) //_LBB710_15 -{ - heap32[(g0)] = r7; - _ZdaPv(i7); - r6 = heap32[(r2)]; -} -} - heap32[(r5)] = r4; - r5 = heap32[(r3)]; - r5 = r5 << 1; - heap32[(r3)] = r5; -_36: do { -if(!(uint(r6) >=uint(r5))) //_LBB710_20 -{ - r3 = (r6 + 1)|0; -_38: while(true){ - r7 = r3 << 3; - r7 = (r4 + r7)|0; - r7 = r7 >> 2; - heap32[(r7+-2)] = -1; - if(uint(r3) >=uint(r5)) //_LBB710_20 -{ -break _36; -} -else{ - r3 = (r3 + 1)|0; -} -} -} -} while(0); - r3 = r6 << 3; - r3 = (r4 + r3)|0; - heap32[(r0)] = r6; - r3 = (r3 + 4)|0; - r5 = (r1 + 4)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = 4; - memcpy(i7); - r3 = heap32[(r0)]; - r3 = r3 << 3; - r5 = r1 >> 2; - r3 = (r4 + r3)|0; - r4 = heap32[(r5)]; - r3 = r3 >> 2; - heap32[(r3)] = r4; - r0 = heap32[(r0)]; - r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11largest_cat; - r3 = r3 >> 2; - r4 = heap32[(r3)]; -if(!(uint(r0) <=uint(r4))) //_LBB710_22 -{ - heap32[(r3)] = r0; -} - r0 = (r6 + 1)|0; - heap32[(r2)] = r0; - r_g0 = r1; - return; -} -else{ - r3 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs; - r3 = r3 >> 2; - heap32[(r0)] = 0; - r3 = heap32[(r3)]; - r5 = r3 >> 2; - r5 = heap32[(r5)]; -_46: do { - if(r5 !=-1) //_LBB710_11 -{ - r5 = 0; -_48: while(true){ - r6 = r5 << 3; - r6 = (r3 + r6)|0; - r5 = (r5 + 1)|0; - r6 = r6 >> 2; - heap32[(r0)] = r5; - r6 = heap32[(r6+2)]; -if(!(r6 !=-1)) //_LBB710_23 -{ -break _46; -} -} -} -else{ - r5 = 0; -} -} while(0); - r6 = _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11largest_cat; - r6 = r6 >> 2; - r7 = heap32[(r6)]; -if(!(uint(r5) <=uint(r7))) //_LBB710_26 -{ - heap32[(r6)] = r5; -} - r5 = r5 << 3; - r5 = (r3 + r5)|0; - r5 = (r5 + 4)|0; - r6 = (r1 + 4)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = 4; - memcpy(i7); - r0 = heap32[(r0)]; - r0 = r0 << 3; - r5 = r1 >> 2; - r0 = (r3 + r0)|0; - r3 = heap32[(r5)]; - r0 = r0 >> 2; - r4 = (r4 + 1)|0; - heap32[(r0)] = r3; - heap32[(r2)] = r4; - r_g0 = r1; - return; -} -} -else{ -__label__ = 7; -} -} -} while(0); -if (__label__ == 7){ - r1 = 0; -} - r_g0 = r1; - return; -} - -function _ZN4__rw14__rw_cat_closeEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - heap32[(fp+-1)] = r0; -if(!(r0 <0)) //_LBB711_20 -{ - r0 = sp + -4; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - _ZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataE(i7); - r1 = r_g0; -if(!(r1 ==0)) //_LBB711_20 -{ - r2 = r1 >> 2; - r2 = heap32[(r2)]; -if(!(r2 ==-1)) //_LBB711_20 -{ - r3 = _ZN4__rwL12__rw_catlistE_2E_1; - r4 = _ZN4__rwL12__rw_catlistE_2E_0; - r3 = r3 >> 2; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r6 = heap32[(r3)]; - r6 = (r6 - r5)|0; - r6 = r6 >> 2; - r7 = 0; -_5: while(true){ - if(uint(r6) >uint(r7)) //_LBB711_9 -{ - r8 = r7 << 2; - r8 = (r5 + r8)|0; - r8 = r8 >> 2; - r8 = heap32[(r8)]; - if(r8 ==0) //_LBB711_8 -{ -__label__ = 7; -break _5; -} -else{ - if(r8 !=r2) //_LBB711_6 -{ - r7 = (r7 + 1)|0; -} -else{ -__label__ = 9; -break _5; -} -} -} -else{ -__label__ = 7; -break _5; -} -} -if (__label__ == 7){ - r7 = r6; -} -_13: do { -if(!(uint(r6) <=uint(r7))) //_LBB711_19 -{ - r2 = r7 << 2; - r6 = (r5 + r2)|0; - r6 = r6 >> 2; - r6 = heap32[(r6)]; - if(r6 !=0) //_LBB711_13 -{ - heap32[(g0)] = r6; - _ZdlPv(i7); - r5 = heap32[(r4)]; -} - r2 = (r5 + r2)|0; - r4 = (r7 + 1)|0; - r2 = r2 >> 2; - heap32[(r2)] = 0; -_18: while(true){ - r2 = heap32[(r3)]; - r2 = (r2 - r5)|0; - r2 = r2 >> 2; - if(uint(r2) <=uint(r4)) //_LBB711_19 -{ -break _13; -} -else{ - r2 = r4 << 2; - r2 = (r5 + r2)|0; - r6 = r2 >> 2; - r2 = heap32[(r6)]; - if(r2 !=0) //_LBB711_15 -{ - r4 = (r4 + 1)|0; - heap32[(r6+-1)] = r2; -} -else{ -break _18; -} -} -} - heap32[(r6)] = 0; -} -} while(0); - r2 = (r1 + 4)|0; - heap32[(g0)] = r2; - _ZNSt6localeD1Ev(i7); - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - _ZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataE(i7); - return; -} -} -} - r0 = _2E_str115180; - r1 = _2E_str1116181; - heap32[(g0)] = 7; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r1; - _ZN4__rw10__rw_throwEiz(i7); - return; -} - -function _ZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + -368;var g0 = i7>>2; // save stack - r0 = _ZZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEEE11locale_root; - r1 = heap32[(fp)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r4 = heapU8[r0]; - r5 = 0; - heap8[sp+-259] = r5; - r6 = heapU8[r2]; -_1: do { - if(r6 !=0) //_LBB712_2 -{ - r7 = (r2 + 1)|0; -_3: while(true){ - r6 = (r5 + 1)|0; - r8 = heapU8[r7+r5]; - r5 = r6; - if(r8 !=0) //_LBB712_3 -{ -continue _3; -} -else{ -break _1; -} -} -} -else{ - r6 = 0; -} -} while(0); - r4 = r4 & 255; -_7: do { - if(r4 !=0) //_LBB712_6 -{ - r4 = (r6 + 1)|0; - r5 = (r0 + 1)|0; -_9: while(true){ - r4 = (r4 + 1)|0; - r7 = (r5 + 1)|0; - r8 = heapU8[r5]; - r5 = r7; -if(!(r8 !=0)) //_LBB712_7 -{ -break _9; -} -} - if(uint(r4) >uint(258)) //_LBB712_5 -{ -__label__ = 5; -} -else{ - r4 = sp + -259; - heap32[(g0)] = r4; - heap32[(g0+1)] = r0; - strcpy(i7); - r0 = heapU8[sp+-259]; -_13: do { - if(r0 !=0) //_LBB712_11 -{ - r0 = (r4 + 1)|0; - r7 = 0; -_15: while(true){ - r5 = (r7 + 1)|0; - r8 = heapU8[r0+r7]; - r7 = r5; -if(!(r8 !=0)) //_LBB712_12 -{ -break _13; -} -} -} -else{ - r5 = 0; -} -} while(0); - r7 = 47; - r0 = (r5 + 1)|0; - r8 = 0; - heap8[r4+r5] = r7; - heap8[r4+r0] = r8; - r5 = heapU8[sp+-259]; - if(r5 !=0) //_LBB712_15 -{ - r5 = (r4 + 1)|0; -_21: while(true){ - r4 = (r8 + 1)|0; - r7 = heapU8[r5+r8]; - r8 = r4; - if(r7 !=0) //_LBB712_16 -{ -continue _21; -} -else{ -__label__ = 17; -break _7; -} -} -} -else{ - r4 = 0; -__label__ = 17; -} -} -} -else{ -__label__ = 5; -} -} while(0); -if (__label__ == 5){ - r0 = 0; - r4 = r0; -} - r4 = (r4 + r6)|0; -if(!(uint(r4) >uint(258))) //_LBB712_33 -{ - r4 = sp + -259; - r0 = (r4 + r0)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - strcpy(i7); - r0 = _2E_str37683; - heap32[(g0)] = r4; - heap32[(g0+1)] = r0; - strcmp(i7); - r0 = r_g0; - if(r0 ==0) //_LBB712_28 -{ - r1 = heapU8[r2]; -_31: do { - if(r1 !=0) //_LBB712_30 -{ - r0 = (r2 + 1)|0; - r4 = 0; -_33: while(true){ - r1 = (r4 + 1)|0; - r5 = heapU8[r0+r4]; - r4 = r1; -if(!(r5 !=0)) //_LBB712_31 -{ -break _31; -} -} -} -else{ - r1 = 0; -} -} while(0); - r0 = r3 >> 2; - heap32[(r0)] = 0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r1; - _ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(i7); - r1 = heap32[(r0+1)]; - r_g0 = r1; - return; -} -else{ - r2 = _2E_str1648; - heap32[(g0)] = r4; - heap32[(g0+1)] = r2; - fopen(i7); - r2 = r_g0; -if(!(r2 ==0)) //_LBB712_33 -{ - if(uint(r2) > 2; - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r0 = heap32[(r0+7)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 2; - __FUNCTION_TABLE__[(r0)>>2](i7); -} -else{ - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+7)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 2; - __FUNCTION_TABLE__[(r3)>>2](i7); - r3 = r2; -} - r0 = r3 >> 2; - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r0 = heap32[(r0+5)]; - heap32[(g0)] = r3; - __FUNCTION_TABLE__[(r0)>>2](i7); - if(uint(r2) >uint(9)) //_LBB712_25 -{ - r3 = r2; -} -else{ - r3 = _ZL13s_file_stdout; -} - r0 = r3 >> 2; - r0 = heap32[(r0)]; - r0 = r0 >> 2; - r0 = heap32[(r0+4)]; - heap32[(g0)] = r3; - __FUNCTION_TABLE__[(r0)>>2](i7); -if(!(uint(r2) > 2; - heap32[(r0+20)] = 0; - heap32[(r0+22)] = r1; - heap32[(r0+21)] = 0; - r0 = 0; - r_g0 = r0; - return; -} - -function _ZNKSt8messagesIcE8do_closeEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - heap32[(g0)] = r0; - _ZN4__rw14__rw_cat_closeEi(i7); - return; -} - -function _ZNKSt8messagesIcE6do_getEiiiRKSs(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - heap32[(fp+-1)] = r0; -if(!(r0 <0)) //_LBB714_8 -{ - r0 = sp + -4; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - _ZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataE(i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB714_8 -{ - r0 = r0 >> 2; - r0 = heap32[(r0)]; -if(!(r0 ==-1)) //_LBB714_8 -{ - r1 = _ZN4__rwL12__rw_catlistE_2E_1; - r2 = _ZN4__rwL12__rw_catlistE_2E_0; - r1 = r1 >> 2; - r2 = r2 >> 2; - r2 = heap32[(r2)]; - r1 = heap32[(r1)]; - r1 = (r1 - r2)|0; - r1 = r1 >> 2; - r3 = 0; -_5: while(true){ - if(uint(r1) <=uint(r3)) //_LBB714_8 -{ -break _5; -} -else{ - r4 = r3 << 2; - r4 = (r2 + r4)|0; - r4 = r4 >> 2; - r4 = heap32[(r4)]; - if(r4 ==0) //_LBB714_8 -{ -break _5; -} -else{ - if(r4 !=r0) //_LBB714_4 -{ - r3 = (r3 + 1)|0; -continue _5; -} -else{ -break _5; -} -} -} -} -} -} -} - r0 = heap32[(fp)]; - r1 = heap32[(fp+5)]; - r1 = r1 >> 2; - r2 = heap32[(r1)]; - r3 = r2 >> 2; - r4 = heap32[(r3+-3)]; - if(r4 ==-1) //_LBB714_11 -{ - r2 = heap32[(r3+-1)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r2; - _ZNSs10_C_get_repEjj(i7); - r0 = r0 >> 2; - r3 = (r_g0 + 12)|0; - heap32[(r0)] = r3; - r0 = heap32[(r1)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - memcpy(i7); -} -else{ - r1 = (r2 + -12)|0; - r0 = r0 >> 2; - r3 = _ZNSs11_C_null_refE; - heap32[(r0)] = r2; -if(!(r1 ==r3)) //_LBB714_12 -{ - r0 = r1 >> 2; - r1 = (r4 + 1)|0; - heap32[(r0)] = r1; - return; -} -} - return; -} - -function _ZNKSt8messagesIcE7do_openERKSsRKSt6locale(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - heap32[(g0)] = 1; - _Znwj(i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB715_2 -{ - heap32[(g0)] = r0; - _ZdlPv(i7); -} - r0 = -1; - r_g0 = r0; - return; -} - -function _ZNSt8messagesIcED0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN4__rw10__rw_facetE; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(r2+5)] = -1; - r1 = heap32[(r2+1)]; - r3 = heap32[(r2+2)]; -if(!(r1 ==r3)) //_LBB716_3 -{ -if(!(r1 ==0)) //_LBB716_3 -{ - heap32[(g0)] = r1; - _ZdaPv(i7); -} -} - r1 = _ZZN4__rw10__rw_facetD4EvE9destroyed; - heap32[(r2+1)] = r1; - r1 = heap32[(r2+4)]; -if(!(r1 !=-1)) //_LBB716_5 -{ - r1 = heap32[(r2+3)]; - heap32[(g0)] = r1; - _ZdlPv(i7); -} - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZNSt8messagesIcED1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVN4__rw10__rw_facetE; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - heap32[(r0+5)] = -1; - r1 = heap32[(r0+1)]; - r2 = heap32[(r0+2)]; -if(!(r1 ==r2)) //_LBB717_3 -{ -if(!(r1 ==0)) //_LBB717_3 -{ - heap32[(g0)] = r1; - _ZdaPv(i7); -} -} - r1 = _ZZN4__rw10__rw_facetD4EvE9destroyed; - heap32[(r0+1)] = r1; - r1 = heap32[(r0+4)]; -if(!(r1 !=-1)) //_LBB717_5 -{ - r0 = heap32[(r0+3)]; - heap32[(g0)] = r0; - _ZdlPv(i7); -} - return; -} - -function _ZN4__rw14__rw_pod_arrayIcLj256EE6appendEPKcj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(fp+2)]; - r3 = heap32[(r1)]; - r4 = (r3 + r2)|0; - r5 = heap32[(fp+1)]; - if(uint(r4) >uint(255)) //_LBB718_2 -{ - r3 = (r4 + 1)|0; - heap32[(g0)] = r3; - _Znaj(i7); - r7 = r_g0; - r3 = heap32[(r1)]; - r6 = heap32[(r1+1)]; - heap32[(g0)] = r7; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r3; - memcpy(i7); - r3 = heap32[(r1+1)]; - r6 = (r0 + 8)|0; -if(!(r3 ==r6)) //_LBB718_5 -{ -if(!(r3 ==0)) //_LBB718_5 -{ - heap32[(g0)] = r3; - _ZdaPv(i7); -} -} - r6 = (r0 + 4)|0; - heap32[(r1+1)] = r7; - r3 = heap32[(r1)]; -} -else{ - r6 = (r0 + 4)|0; - r7 = heap32[(r1+1)]; -} - r3 = (r7 + r3)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r2; - memcpy(i7); - r2 = r6 >> 2; - heap32[(r1)] = r4; - r1 = heap32[(r2)]; - r2 = 0; - heap8[r1+r4] = r2; - r_g0 = r0; - return; -} - -function _ZNSs10_C_get_repEjj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; -_1: do { - if(uint(r0) uint(-14)) //_LBB719_3 -{ - r0 = _2E_str2360; - r2 = _2E_str3361; - heap32[(g0)] = 8; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r1; - heap32[(g0+4)] = -14; - _ZN4__rw10__rw_throwEiz(i7); - r0 = r1; -__label__ = 8; -} -else{ - r0 = r1; -__label__ = 6; -} -} -} while(0); -if (__label__ == 6){ - if(r0 ==0) //_LBB719_9 -{ - r0 = _ZNSs11_C_null_refE; - r_g0 = r0; - return; -} -} - r2 = (r0 + 14)|0; - heap32[(g0)] = r2; - _Znwj(i7); - r2 = r_g0; -if(!(r2 !=0)) //_LBB719_12 -{ - heap32[(g0)] = 3; - _ZN4__rw10__rw_throwEiz(i7); -} - r3 = r2 >> 2; - heap32[(r3)] = 0; - heap32[(r3+1)] = r0; - r0 = (r1 + r2)|0; - r4 = 0; - heap32[(r3+2)] = r1; - heap8[r0+12] = r4; - r_g0 = r2; - return; -} - -function _ZNKSt9type_info15__is_function_pEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZNSt9type_infoD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVSt9type_info; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZNSt9type_infoD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVSt9type_info; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function block_merge_next(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 >> 2; - r2 = heap32[(r1+1)]; - r2 = (r2 + -4)|0; - r2 = r2 & -4; - r3 = (r0 + 8)|0; - r4 = (r2 + 4)|0; - r4 = (r3 + r4)|0; - r4 = r4 >> 2; - r5 = heap32[(r4)]; - r6 = r5 & 1; -if(!(r6 ==0)) //_LBB723_9 -{ - r6 = heap32[(fp)]; - r7 = (r3 + r2)|0; - r8 = r5 & -4; - if(uint(r8) >uint(255)) //_LBB723_3 -{ - r5 = r8 >>> 1; - r5 = r8 | r5; - r9 = r5 >>> 2; - r5 = r5 | r9; - r9 = r5 >>> 4; - r5 = r5 | r9; - r9 = r5 >>> 8; - r5 = r5 | r9; - r9 = r5 >>> 16; - r5 = r5 | r9; - r9 = r5 ^ -1; - r10 = 1431655765; - r9 = r9 >>> 1; - r5 = r10 & (~r5); - r9 = r9 & 1431655765; - r5 = (r5 + r9)|0; - r9 = r5 >>> 2; - r5 = r5 & 858993459; - r9 = r9 & 858993459; - r5 = (r5 + r9)|0; - r9 = r5 >>> 4; - r5 = r5 & 252645135; - r9 = r9 & 252645135; - r5 = (r5 + r9)|0; - r9 = r5 >>> 8; - r5 = r5 & 16711935; - r9 = r9 & 16711935; - r5 = (r5 + r9)|0; - r9 = r5 & 65535; - r5 = r5 >>> 16; - r10 = 26; - r5 = (r9 + r5)|0; - r9 = (r10 - r5)|0; - r8 = r8 >>> r9; - r9 = 24; - r8 = r8 ^ 32; - r5 = (r9 - r5)|0; -} -else{ - r8 = r5 >>> 3; - r5 = 0; -} - r2 = (r2 + r3)|0; - r2 = r2 >> 2; - r9 = r5 << 7; - r10 = heap32[(r2+2)]; - r2 = heap32[(r2+3)]; - r9 = (r6 + r9)|0; - r11 = r8 << 2; - r9 = (r9 + r11)|0; - r11 = r10 >> 2; - r12 = r2 >> 2; - heap32[(r11+3)] = r2; - r2 = r9 >> 2; - heap32[(r12+2)] = r10; - r2 = heap32[(r2+24)]; -if(!(r2 !=r7)) //_LBB723_8 -{ - r2 = (r9 + 96)|0; - r2 = r2 >> 2; - r7 = block_null; - heap32[(r2)] = r10; -if(!(r10 !=r7)) //_LBB723_8 -{ - r2 = r5 << 2; - r2 = (r6 + r2)|0; - r2 = r2 >> 2; - r7 = 1; - r8 = r7 << r8; - r9 = heap32[(r2+1)]; - r8 = r9 & (~r8); - heap32[(r2+1)] = r8; -if(!(r8 !=0)) //_LBB723_8 -{ - r2 = r6 >> 2; - r5 = r7 << r5; - r6 = heap32[(r2)]; - r5 = r6 & (~r5); - heap32[(r2)] = r5; -} -} -} - r2 = heap32[(r4)]; - r4 = heap32[(r1+1)]; - r2 = r2 & -4; - r2 = (r2 + r4)|0; - r4 = r2 & -4; - r3 = (r3 + r4)|0; - r2 = (r2 + 4)|0; - r3 = r3 >> 2; - heap32[(r1+1)] = r2; - heap32[(r3)] = r0; -} - r_g0 = r0; - return; -} - -function tlsf_free(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; -if(!(r0 ==0)) //_LBB724_15 -{ - r1 = heap32[(fp)]; - r2 = r0 >> 2; - r3 = heap32[(r2+-1)]; - r4 = s_current_memory; - r5 = (r3 + -4)|0; - r4 = r4 >> 2; - r5 = r5 & -4; - r6 = heap32[(r4)]; - r3 = r3 & -4; - r5 = (r0 + r5)|0; - r3 = (r6 - r3)|0; - r0 = (r0 + -8)|0; - r5 = r5 >> 2; - heap32[(r4)] = r3; - heap32[(r5)] = r0; - r3 = heap32[(r5+1)]; - r3 = r3 | 2; - heap32[(r5+1)] = r3; - r3 = heap32[(r2+-1)]; - r4 = r3 | 1; - heap32[(r2+-1)] = r4; - r3 = r3 & 2; - if(r3 !=0) //_LBB724_3 -{ - r0 = r0 >> 2; - r0 = heap32[(r0)]; - r3 = r0 >> 2; - r4 = heap32[(r3+1)]; - r5 = r4 & -4; - if(uint(r5) >uint(255)) //_LBB724_5 -{ - r4 = r5 >>> 1; - r4 = r5 | r4; - r6 = r4 >>> 2; - r4 = r4 | r6; - r6 = r4 >>> 4; - r4 = r4 | r6; - r6 = r4 >>> 8; - r4 = r4 | r6; - r6 = r4 >>> 16; - r4 = r4 | r6; - r6 = r4 ^ -1; - r7 = 1431655765; - r6 = r6 >>> 1; - r4 = r7 & (~r4); - r6 = r6 & 1431655765; - r4 = (r4 + r6)|0; - r6 = r4 >>> 2; - r4 = r4 & 858993459; - r6 = r6 & 858993459; - r4 = (r4 + r6)|0; - r6 = r4 >>> 4; - r4 = r4 & 252645135; - r6 = r6 & 252645135; - r4 = (r4 + r6)|0; - r6 = r4 >>> 8; - r4 = r4 & 16711935; - r6 = r6 & 16711935; - r4 = (r4 + r6)|0; - r6 = r4 & 65535; - r4 = r4 >>> 16; - r7 = 26; - r4 = (r6 + r4)|0; - r6 = (r7 - r4)|0; - r5 = r5 >>> r6; - r6 = 24; - r5 = r5 ^ 32; - r4 = (r6 - r4)|0; -} -else{ - r5 = r4 >>> 3; - r4 = 0; -} - r6 = r4 << 7; - r7 = heap32[(r3+2)]; - r8 = heap32[(r3+3)]; - r6 = (r1 + r6)|0; - r9 = r5 << 2; - r6 = (r6 + r9)|0; - r9 = r7 >> 2; - r10 = r8 >> 2; - heap32[(r9+3)] = r8; - r8 = r6 >> 2; - heap32[(r10+2)] = r7; - r8 = heap32[(r8+24)]; -if(!(r8 !=r0)) //_LBB724_10 -{ - r6 = (r6 + 96)|0; - r6 = r6 >> 2; - r8 = block_null; - heap32[(r6)] = r7; -if(!(r7 !=r8)) //_LBB724_10 -{ - r6 = r4 << 2; - r6 = (r1 + r6)|0; - r6 = r6 >> 2; - r7 = 1; - r5 = r7 << r5; - r8 = heap32[(r6+1)]; - r5 = r8 & (~r5); - heap32[(r6+1)] = r5; -if(!(r5 !=0)) //_LBB724_10 -{ - r5 = r1 >> 2; - r4 = r7 << r4; - r6 = heap32[(r5)]; - r4 = r6 & (~r4); - heap32[(r5)] = r4; -} -} -} - r4 = (r0 + 8)|0; - r2 = heap32[(r2+-1)]; - r5 = heap32[(r3+1)]; - r2 = r2 & -4; - r2 = (r2 + r5)|0; - r5 = r2 & -4; - r4 = (r4 + r5)|0; - r2 = (r2 + 4)|0; - r4 = r4 >> 2; - heap32[(r3+1)] = r2; - heap32[(r4)] = r0; -} - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - block_merge_next(i7); - r0 = r_g0; - r2 = r0 >> 2; - r2 = heap32[(r2+1)]; - r3 = r2 & -4; - if(uint(r3) >uint(255)) //_LBB724_13 -{ - r2 = r3 >>> 1; - r2 = r3 | r2; - r4 = r2 >>> 2; - r2 = r2 | r4; - r4 = r2 >>> 4; - r2 = r2 | r4; - r4 = r2 >>> 8; - r2 = r2 | r4; - r4 = r2 >>> 16; - r2 = r2 | r4; - r4 = r2 ^ -1; - r5 = 1431655765; - r4 = r4 >>> 1; - r2 = r5 & (~r2); - r4 = r4 & 1431655765; - r2 = (r2 + r4)|0; - r4 = r2 >>> 2; - r2 = r2 & 858993459; - r4 = r4 & 858993459; - r2 = (r2 + r4)|0; - r4 = r2 >>> 4; - r2 = r2 & 252645135; - r4 = r4 & 252645135; - r2 = (r2 + r4)|0; - r4 = r2 >>> 8; - r2 = r2 & 16711935; - r4 = r4 & 16711935; - r2 = (r2 + r4)|0; - r4 = r2 & 65535; - r2 = r2 >>> 16; - r5 = 26; - r2 = (r4 + r2)|0; - r4 = (r5 - r2)|0; - r3 = r3 >>> r4; - r4 = 24; - r3 = r3 ^ 32; - r2 = (r4 - r2)|0; -} -else{ - r3 = r2 >>> 3; - r2 = 0; -} - r4 = r2 << 7; - r4 = (r1 + r4)|0; - r5 = r3 << 2; - r4 = (r4 + r5)|0; - r4 = r4 >> 2; - r5 = heap32[(r4+24)]; - r6 = r0 >> 2; - r7 = block_null; - heap32[(r6+2)] = r5; - r5 = r5 >> 2; - heap32[(r6+3)] = r7; - heap32[(r5+3)] = r0; - r5 = 1; - r6 = r1 >> 2; - heap32[(r4+24)] = r0; - r0 = r2 << 2; - r2 = r5 << r2; - r4 = heap32[(r6)]; - r0 = (r1 + r0)|0; - r1 = r4 | r2; - r0 = r0 >> 2; - heap32[(r6)] = r1; - r1 = r5 << r3; - r2 = heap32[(r0+1)]; - r1 = r2 | r1; - heap32[(r0+1)] = r1; -} - return; -} - -function block_prepare_used(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - if(r0 ==0) //_LBB725_8 -{ - r0 = 0; - r_g0 = r0; - return; -} -else{ - r1 = heap32[(fp+2)]; - r2 = r0 >> 2; - r3 = heap32[(r2+1)]; - r4 = r3 & -4; - r5 = (r1 + 16)|0; - if(uint(r4) >=uint(r5)) //_LBB725_3 -{ - r3 = heap32[(fp)]; - r5 = (r0 + 8)|0; - r6 = (r5 + r1)|0; - r7 = r6 >> 2; - r8 = -4; - r9 = heap32[(r7)]; - r8 = (r8 - r1)|0; - r9 = r9 & 3; - r4 = (r8 + r4)|0; - r4 = r9 | r4; - heap32[(r7)] = r4; - r4 = heap32[(r2+1)]; - r4 = r4 & 3; - r4 = r4 | r1; - heap32[(r2+1)] = r4; - r4 = heap32[(r7)]; - r4 = (r4 + -4)|0; - r8 = (r1 + 4)|0; - r4 = r4 & -4; - r1 = (r1 + 8)|0; - r9 = (r4 + r8)|0; - r4 = (r4 + r1)|0; - r9 = (r5 + r9)|0; - r4 = (r5 + r4)|0; - r6 = (r6 + -4)|0; - r9 = r9 >> 2; - r4 = r4 >> 2; - heap32[(r9)] = r6; - r9 = heap32[(r4)]; - r9 = r9 | 2; - heap32[(r4)] = r9; - r4 = heap32[(r7)]; - r4 = r4 | 1; - heap32[(r7)] = r4; - r4 = heap32[(r2+1)]; - r4 = (r4 + -4)|0; - r4 = r4 & -4; - r4 = (r5 + r4)|0; - r4 = r4 >> 2; - heap32[(r4)] = r0; - r4 = heap32[(r7)]; - r9 = r4 & -4; - r10 = r4 | 2; - heap32[(r7)] = r10; - if(uint(r9) >uint(255)) //_LBB725_5 -{ - r4 = r9 >>> 1; - r4 = r9 | r4; - r7 = r4 >>> 2; - r4 = r4 | r7; - r7 = r4 >>> 4; - r4 = r4 | r7; - r7 = r4 >>> 8; - r4 = r4 | r7; - r7 = r4 >>> 16; - r4 = r4 | r7; - r7 = r4 ^ -1; - r10 = 1431655765; - r7 = r7 >>> 1; - r4 = r10 & (~r4); - r7 = r7 & 1431655765; - r4 = (r4 + r7)|0; - r7 = r4 >>> 2; - r4 = r4 & 858993459; - r7 = r7 & 858993459; - r4 = (r4 + r7)|0; - r7 = r4 >>> 4; - r4 = r4 & 252645135; - r7 = r7 & 252645135; - r4 = (r4 + r7)|0; - r7 = r4 >>> 8; - r4 = r4 & 16711935; - r7 = r7 & 16711935; - r4 = (r4 + r7)|0; - r7 = r4 & 65535; - r4 = r4 >>> 16; - r10 = 26; - r4 = (r7 + r4)|0; - r7 = (r10 - r4)|0; - r9 = r9 >>> r7; - r7 = 24; - r9 = r9 ^ 32; - r4 = (r7 - r4)|0; -} -else{ - r9 = r4 >>> 3; - r4 = 0; -} - r7 = r4 << 7; - r7 = (r3 + r7)|0; - r10 = r9 << 2; - r7 = (r7 + r10)|0; - r7 = r7 >> 2; - r8 = (r5 + r8)|0; - r1 = (r5 + r1)|0; - r5 = heap32[(r7+24)]; - r8 = r8 >> 2; - r1 = r1 >> 2; - r10 = block_null; - heap32[(r8)] = r5; - r5 = r5 >> 2; - heap32[(r1)] = r10; - heap32[(r5+3)] = r6; - r1 = 1; - r5 = r3 >> 2; - heap32[(r7+24)] = r6; - r6 = r4 << 2; - r4 = r1 << r4; - r7 = heap32[(r5)]; - r3 = (r3 + r6)|0; - r4 = r7 | r4; - r3 = r3 >> 2; - heap32[(r5)] = r4; - r1 = r1 << r9; - r4 = heap32[(r3+1)]; - r1 = r4 | r1; - heap32[(r3+1)] = r1; - r3 = heap32[(r2+1)]; -} - r1 = r3 & -4; - r0 = (r0 + 8)|0; - r1 = (r0 + r1)|0; - r1 = r1 >> 2; - r3 = heap32[(r1)]; - r3 = r3 & -3; - heap32[(r1)] = r3; - r1 = heap32[(r2+1)]; - r1 = r1 & -2; - heap32[(r2+1)] = r1; - r_g0 = r0; - return; -} -} - -function block_locate_free(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; -_1: do { -if(!(r0 ==0)) //_LBB726_16 -{ - r1 = heap32[(fp)]; - if(uint(r0) >uint(31)) //_LBB726_3 -{ - r2 = r0 >>> 1; - r2 = r0 | r2; - r3 = r2 >>> 2; - r2 = r2 | r3; - r3 = r2 >>> 4; - r2 = r2 | r3; - r3 = r2 >>> 8; - r2 = r2 | r3; - r3 = r2 >>> 16; - r2 = r2 | r3; - r3 = r2 ^ -1; - r4 = 1431655765; - r3 = r3 >>> 1; - r2 = r4 & (~r2); - r3 = r3 & 1431655765; - r2 = (r2 + r3)|0; - r3 = r2 >>> 2; - r2 = r2 & 858993459; - r3 = r3 & 858993459; - r2 = (r2 + r3)|0; - r3 = r2 >>> 4; - r2 = r2 & 252645135; - r3 = r3 & 252645135; - r2 = (r2 + r3)|0; - r3 = r2 >>> 8; - r2 = r2 & 16711935; - r3 = r3 & 16711935; - r2 = (r2 + r3)|0; - r3 = r2 & 65535; - r2 = r2 >>> 16; - r5 = 26; - r2 = (r3 + r2)|0; - r3 = 1; - r2 = (r5 - r2)|0; - r2 = r3 << r2; - r0 = (r0 + r2)|0; - r0 = (r0 + -1)|0; - if(uint(r0) >uint(255)) //_LBB726_5 -{ - r2 = r0 >>> 1; - r2 = r0 | r2; - r3 = r2 >>> 2; - r2 = r2 | r3; - r3 = r2 >>> 4; - r2 = r2 | r3; - r3 = r2 >>> 8; - r2 = r2 | r3; - r3 = r2 >>> 16; - r2 = r2 | r3; - r3 = r2 ^ -1; - r3 = r3 >>> 1; - r4 = r4 & (~r2); - r2 = r3 & 1431655765; - r4 = (r4 + r2)|0; - r2 = r4 >>> 2; - r4 = r4 & 858993459; - r2 = r2 & 858993459; - r4 = (r4 + r2)|0; - r2 = r4 >>> 4; - r4 = r4 & 252645135; - r2 = r2 & 252645135; - r4 = (r4 + r2)|0; - r2 = r4 >>> 8; - r4 = r4 & 16711935; - r2 = r2 & 16711935; - r4 = (r4 + r2)|0; - r2 = r4 & 65535; - r4 = r4 >>> 16; - r4 = (r2 + r4)|0; - r2 = (r5 - r4)|0; - r0 = r0 >>> r2; - r2 = 24; - r0 = r0 ^ 32; - r4 = (r2 - r4)|0; -__label__ = 5; -} -else{ -__label__ = 3; -} -} -else{ -__label__ = 3; -} -if (__label__ == 3){ - r0 = r0 >>> 3; - r4 = 0; -} - r2 = r4 << 2; - r2 = (r1 + r2)|0; - r2 = r2 >> 2; - r3 = -1; - r2 = heap32[(r2+1)]; - r0 = r3 << r0; - r0 = r2 & r0; - if(r0 ==0) //_LBB726_8 -{ - r0 = r1 >> 2; - r4 = (r4 + 1)|0; - r0 = heap32[(r0)]; - r4 = r3 << r4; - r0 = r0 & r4; - if(r0 ==0) //_LBB726_16 -{ -break _1; -} -else{ - r4 = (r0 + -1)|0; - r0 = r4 & (~r0); - r4 = r0 >>> 1; - r0 = r0 & 1431655765; - r4 = r4 & 1431655765; - r0 = (r0 + r4)|0; - r4 = r0 >>> 2; - r0 = r0 & 858993459; - r4 = r4 & 858993459; - r0 = (r0 + r4)|0; - r4 = r0 >>> 4; - r0 = r0 & 252645135; - r4 = r4 & 252645135; - r0 = (r0 + r4)|0; - r4 = r0 >>> 8; - r0 = r0 & 16711935; - r4 = r4 & 16711935; - r0 = (r0 + r4)|0; - r4 = r0 & 65535; - r0 = r0 >>> 16; - r4 = (r4 + r0)|0; - r0 = r4 << 2; - r0 = (r1 + r0)|0; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; -} -} - r2 = (r0 + -1)|0; - r2 = r2 & (~r0); - r5 = r2 >>> 1; - r2 = r2 & 1431655765; - r5 = r5 & 1431655765; - r2 = (r2 + r5)|0; - r5 = r2 >>> 2; - r2 = r2 & 858993459; - r5 = r5 & 858993459; - r2 = (r2 + r5)|0; - r5 = r2 >>> 4; - r2 = r2 & 252645135; - r5 = r5 & 252645135; - r2 = (r2 + r5)|0; - r5 = r2 >>> 8; - r2 = r2 & 16711935; - r5 = r5 & 16711935; - r2 = (r2 + r5)|0; - r5 = r2 & 65535; - r2 = r2 >>> 16; - r2 = (r5 + r2)|0; - r0 = r0 == 0 ? r3 : r2; - r2 = r4 << 7; - r2 = (r1 + r2)|0; - r3 = r0 << 2; - r2 = (r2 + r3)|0; - r3 = r2 >> 2; - r3 = heap32[(r3+24)]; -if(!(r3 ==0)) //_LBB726_16 -{ - r2 = (r2 + 96)|0; - r5 = r3 >> 2; - r6 = heap32[(r5+2)]; - r5 = heap32[(r5+3)]; - r7 = r6 >> 2; - r8 = r5 >> 2; - heap32[(r7+3)] = r5; - r2 = r2 >> 2; - heap32[(r8+2)] = r6; - r5 = heap32[(r2)]; -if(!(r5 !=r3)) //_LBB726_15 -{ - r5 = block_null; - heap32[(r2)] = r6; -if(!(r6 !=r5)) //_LBB726_15 -{ - r2 = r4 << 2; - r2 = (r1 + r2)|0; - r2 = r2 >> 2; - r5 = 1; - r0 = r5 << r0; - r6 = heap32[(r2+1)]; - r0 = r6 & (~r0); - heap32[(r2+1)] = r0; -if(!(r0 !=0)) //_LBB726_15 -{ - r0 = r1 >> 2; - r1 = r5 << r4; - r2 = heap32[(r0)]; - r1 = r2 & (~r1); - heap32[(r0)] = r1; -} -} -} - r_g0 = r3; - return; -} -} -} while(0); - r0 = 0; - r_g0 = r0; - return; -} - -function tlsf_malloc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = (r0 + -1)|0; - if(uint(r2) > 2; - r0 = r0 >> 2; - r2 = heap32[(r2+1)]; - r3 = heap32[(r0)]; - r2 = r2 & -4; - r2 = (r3 + r2)|0; - r3 = s_max_memory; - r3 = r3 >> 2; - heap32[(r0)] = r2; - r0 = heap32[(r3)]; -if(!(uint(r2) <=uint(r0))) //_LBB727_5 -{ - heap32[(r3)] = r2; -} - r_g0 = r1; - return; -} - -function tlsf_realloc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = heap32[(fp+2)]; -if(!(r0 ==0)) //_LBB728_3 -{ -if(!(r2 !=0)) //_LBB728_3 -{ - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - tlsf_free(i7); - r0 = 0; - r_g0 = r0; - return; -} -} - if(r0 !=0) //_LBB728_10 -{ - r3 = r0 >> 2; - r4 = heap32[(r3+-1)]; - r5 = r4 & -4; - r6 = (r0 + r5)|0; - r6 = r6 >> 2; - r6 = heap32[(r6)]; - r7 = r6 & -4; - r7 = (r5 + r7)|0; - r8 = (r2 + -1)|0; - r9 = (r0 + -8)|0; - r7 = (r7 + 4)|0; - if(uint(r8) uint(r5)) //_LBB728_15 -{ - r4 = r6 & 1; -if(!(r4 ==0)) //_LBB728_17 -{ - if(uint(r10) <=uint(r7)) //_LBB728_24 -{ - heap32[(g0)] = r1; - heap32[(g0+1)] = r9; - block_merge_next(i7); - r4 = heap32[(r3+-1)]; - r4 = r4 & -4; - r4 = (r0 + r4)|0; - r4 = r4 >> 2; - r9 = heap32[(r4)]; - r9 = r9 & -3; - heap32[(r4)] = r9; - r4 = heap32[(r3+-1)]; - r4 = r4 & -2; - heap32[(r3+-1)] = r4; -break _11; -} -} - if(uint(r8) > 2; - r3 = r3 >> 2; - r4 = heap32[(r4+1)]; - r10 = heap32[(r3)]; - r4 = r4 & -4; - r4 = (r10 + r4)|0; - r10 = s_max_memory; - r10 = r10 >> 2; - heap32[(r3)] = r4; - r3 = heap32[(r10)]; -if(!(uint(r4) <=uint(r3))) //_LBB728_22 -{ - heap32[(r10)] = r4; -} - if(r9 ==0) //_LBB728_34 -{ - r_g0 = r9; - return; -} -else{ - r3 = uint(r5) >= uint(r2) ? r2 : r5; - heap32[(g0)] = r9; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r3; - memcpy(i7); - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - tlsf_free(i7); - r_g0 = r9; - return; -} -} -} while(0); - r9 = s_current_memory; - r9 = r9 >> 2; - r2 = heap32[(r9)]; - r2 = (r2 - r5)|0; - r5 = r4 & -4; - heap32[(r9)] = r2; - r6 = (r10 + 16)|0; - if(uint(r5) >=uint(r6)) //_LBB728_27 -{ - r4 = (r0 + r10)|0; - r6 = r4 >> 2; - r7 = -4; - r8 = heap32[(r6)]; - r7 = (r7 - r10)|0; - r8 = r8 & 3; - r5 = (r7 + r5)|0; - r5 = r8 | r5; - heap32[(r6)] = r5; - r5 = heap32[(r3+-1)]; - r5 = r5 & 3; - r5 = r5 | r10; - heap32[(r3+-1)] = r5; - r5 = heap32[(r6)]; - r5 = (r5 + -4)|0; - r5 = r5 & -4; - r5 = (r10 + r5)|0; - r5 = (r5 + r0)|0; - r4 = (r4 + -4)|0; - r5 = r5 >> 2; - heap32[(r5+1)] = r4; - r7 = heap32[(r5+2)]; - r7 = r7 | 2; - heap32[(r5+2)] = r7; - r5 = heap32[(r6)]; - r5 = r5 | 1; - r5 = r5 & -3; - heap32[(r6)] = r5; - heap32[(g0)] = r1; - heap32[(g0+1)] = r4; - block_merge_next(i7); - r4 = r_g0; - r5 = r4 >> 2; - r5 = heap32[(r5+1)]; - r6 = r5 & -4; - if(uint(r6) >uint(255)) //_LBB728_29 -{ - r5 = r6 >>> 1; - r5 = r6 | r5; - r7 = r5 >>> 2; - r5 = r5 | r7; - r7 = r5 >>> 4; - r5 = r5 | r7; - r7 = r5 >>> 8; - r5 = r5 | r7; - r7 = r5 >>> 16; - r5 = r5 | r7; - r7 = r5 ^ -1; - r8 = 1431655765; - r7 = r7 >>> 1; - r5 = r8 & (~r5); - r7 = r7 & 1431655765; - r5 = (r5 + r7)|0; - r7 = r5 >>> 2; - r5 = r5 & 858993459; - r7 = r7 & 858993459; - r5 = (r5 + r7)|0; - r7 = r5 >>> 4; - r5 = r5 & 252645135; - r7 = r7 & 252645135; - r5 = (r5 + r7)|0; - r7 = r5 >>> 8; - r5 = r5 & 16711935; - r7 = r7 & 16711935; - r5 = (r5 + r7)|0; - r7 = r5 & 65535; - r5 = r5 >>> 16; - r8 = 26; - r5 = (r7 + r5)|0; - r7 = (r8 - r5)|0; - r6 = r6 >>> r7; - r7 = 24; - r6 = r6 ^ 32; - r5 = (r7 - r5)|0; -} -else{ - r6 = r5 >>> 3; - r5 = 0; -} - r7 = r5 << 7; - r7 = (r1 + r7)|0; - r8 = r6 << 2; - r7 = (r7 + r8)|0; - r7 = r7 >> 2; - r8 = heap32[(r7+24)]; - r10 = r4 >> 2; - r11 = block_null; - heap32[(r10+2)] = r8; - r8 = r8 >> 2; - heap32[(r10+3)] = r11; - heap32[(r8+3)] = r4; - r8 = 1; - r10 = r1 >> 2; - heap32[(r7+24)] = r4; - r4 = r5 << 2; - r5 = r8 << r5; - r7 = heap32[(r10)]; - r4 = (r1 + r4)|0; - r1 = r7 | r5; - r4 = r4 >> 2; - heap32[(r10)] = r1; - r1 = r8 << r6; - r5 = heap32[(r4+1)]; - r1 = r5 | r1; - heap32[(r4+1)] = r1; - r4 = heap32[(r3+-1)]; -} - r1 = r4 & -4; - r1 = (r2 + r1)|0; - r2 = s_max_memory; - r2 = r2 >> 2; - heap32[(r9)] = r1; - r9 = heap32[(r2)]; -if(!(uint(r1) <=uint(r9))) //_LBB728_33 -{ - heap32[(r2)] = r1; -} - r_g0 = r0; - return; -} -else{ - r0 = (r2 + -1)|0; - if(uint(r0) > 2; - r0 = r0 >> 2; - r2 = heap32[(r2+1)]; - r3 = heap32[(r0)]; - r2 = r2 & -4; - r2 = (r3 + r2)|0; - r3 = s_max_memory; - r3 = r3 >> 2; - heap32[(r0)] = r2; - r0 = heap32[(r3)]; -if(!(uint(r2) <=uint(r0))) //_LBB728_9 -{ - heap32[(r3)] = r2; -} - r_g0 = r1; - return; -} -} - -function tlsf_create(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = (r0 + -3048)|0; - r1 = r0 & -8; - r2 = (r1 + -12)|0; - if(uint(r2) > 2; - heap32[(r4+2)] = r3; - r5 = -1; - r6 = r2 >> 2; - heap32[(r4+3)] = r3; - heap32[(r6)] = 0; -_3: while(true){ - r4 = r5 << 2; - r7 = r5 << 7; - r4 = (r2 - r4)|0; - r7 = (r2 - r7)|0; - r4 = r4 >> 2; - r7 = r7 >> 2; - heap32[(r4)] = 0; - heap32[(r7+-8)] = r3; - heap32[(r7+-7)] = r3; - heap32[(r7+-6)] = r3; - heap32[(r7+-5)] = r3; - heap32[(r7+-4)] = r3; - heap32[(r7+-3)] = r3; - heap32[(r7+-2)] = r3; - heap32[(r7+-1)] = r3; - heap32[(r7)] = r3; - heap32[(r7+1)] = r3; - heap32[(r7+2)] = r3; - heap32[(r7+3)] = r3; - heap32[(r7+4)] = r3; - heap32[(r7+5)] = r3; - heap32[(r7+6)] = r3; - heap32[(r7+7)] = r3; - heap32[(r7+8)] = r3; - heap32[(r7+9)] = r3; - heap32[(r7+10)] = r3; - heap32[(r7+11)] = r3; - heap32[(r7+12)] = r3; - heap32[(r7+13)] = r3; - heap32[(r7+14)] = r3; - heap32[(r7+15)] = r3; - heap32[(r7+16)] = r3; - heap32[(r7+17)] = r3; - heap32[(r7+18)] = r3; - heap32[(r7+19)] = r3; - heap32[(r7+20)] = r3; - heap32[(r7+21)] = r3; - r5 = (r5 + -1)|0; - heap32[(r7+22)] = r3; - heap32[(r7+23)] = r3; -if(!(r5 !=-24)) //_LBB729_3 -{ -break _3; -} -} - r4 = r0 | 1; - r5 = (r2 + 3036)|0; - r4 = r4 & -7; - heap32[(r6+760)] = r4; - if(uint(r1) >uint(255)) //_LBB729_6 -{ - r0 = r1 >>> 1; - r0 = r1 | r0; - r4 = r0 >>> 2; - r0 = r0 | r4; - r4 = r0 >>> 4; - r0 = r0 | r4; - r4 = r0 >>> 8; - r0 = r0 | r4; - r4 = r0 >>> 16; - r0 = r0 | r4; - r4 = r0 ^ -1; - r7 = 1431655765; - r4 = r4 >>> 1; - r0 = r7 & (~r0); - r4 = r4 & 1431655765; - r0 = (r0 + r4)|0; - r4 = r0 >>> 2; - r0 = r0 & 858993459; - r4 = r4 & 858993459; - r0 = (r0 + r4)|0; - r4 = r0 >>> 4; - r0 = r0 & 252645135; - r4 = r4 & 252645135; - r0 = (r0 + r4)|0; - r4 = r0 >>> 8; - r0 = r0 & 16711935; - r4 = r4 & 16711935; - r0 = (r0 + r4)|0; - r4 = r0 & 65535; - r0 = r0 >>> 16; - r7 = 26; - r0 = (r4 + r0)|0; - r4 = (r7 - r0)|0; - r1 = r1 >>> r4; - r4 = 24; - r1 = r1 ^ 32; - r0 = (r4 - r0)|0; -} -else{ - r1 = r0 >>> 3; - r0 = 0; -} - r4 = r0 << 7; - r4 = (r2 + r4)|0; - r7 = r1 << 2; - r4 = (r4 + r7)|0; - r4 = r4 >> 2; - r7 = heap32[(r4+24)]; - heap32[(r6+761)] = r7; - r7 = r7 >> 2; - heap32[(r6+762)] = r3; - heap32[(r7+3)] = r5; - r3 = 1; - heap32[(r4+24)] = r5; - r4 = r0 << 2; - r0 = r3 << r0; - r7 = heap32[(r6)]; - r4 = (r2 + r4)|0; - r0 = r7 | r0; - r4 = r4 >> 2; - heap32[(r6)] = r0; - r0 = r3 << r1; - r1 = heap32[(r4+1)]; - r0 = r1 | r0; - heap32[(r4+1)] = r0; - r0 = heap32[(r6+760)]; - r0 = (r0 + 3040)|0; - r0 = r0 & -4; - r0 = (r2 + r0)|0; - r0 = r0 >> 2; - heap32[(r0)] = r5; - heap32[(r0+1)] = 2; - r_g0 = r2; - return; -} -else{ - r0 = _2E_str643; - heap32[(g0)] = r0; - heap32[(g0+1)] = 3060; - heap32[(g0+2)] = 1073744872; - printf(i7); - r0 = 0; - r_g0 = r0; - return; -} -} - -function _stricmp(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r5 = 26; -_1: while(true){ - r2 = heap8[r1]; - r3 = heap8[r0]; - r4 = (r2 + -65)|0; - r2 = (r2 + -33)|0; - r6 = (r3 + -65)|0; - r3 = (r3 + -33)|0; - r2 = uint(r4) < uint(r5) ? r2 : r4; - r3 = uint(r6) < uint(r5) ? r3 : r6; - if(r2 !=r3) //_LBB730_3 -{ -break _1; -} -else{ - r0 = (r0 + 1)|0; - r1 = (r1 + 1)|0; - if(r3 !=-65) //_LBB730_1 -{ -continue _1; -} -else{ -break _1; -} -} -} - r0 = (r3 - r2)|0; - r_g0 = r0; - return; -} - -function strcasecmp(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r5 = 26; -_1: while(true){ - r2 = heap8[r1]; - r3 = heap8[r0]; - r4 = (r2 + -65)|0; - r2 = (r2 + -33)|0; - r6 = (r3 + -65)|0; - r3 = (r3 + -33)|0; - r2 = uint(r4) < uint(r5) ? r2 : r4; - r3 = uint(r6) < uint(r5) ? r3 : r6; - if(r2 !=r3) //_LBB731_3 -{ -break _1; -} -else{ - r1 = (r1 + 1)|0; - r0 = (r0 + 1)|0; - if(r3 !=-65) //_LBB731_1 -{ -continue _1; -} -else{ -break _1; -} -} -} - r0 = (r3 - r2)|0; - r_g0 = r0; - return; -} - -function strcpy(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = r1 ^ r0; - r2 = r2 & 3; -_1: do { - if(r2 ==0) //_LBB732_2 -{ - r2 = r0 & 3; - if(r2 !=0) //_LBB732_4 -{ - r2 = r0 | -4; -_5: while(true){ - if(r2 !=0) //_LBB732_7 -{ - r3 = heapU8[r1]; - r4 = (r0 + 1)|0; - r1 = (r1 + 1)|0; - r2 = (r2 + 1)|0; - heap8[r0] = r3; - r0 = r4; -if(!(r3 !=0)) //_LBB732_5 -{ -break _1; -} -} -else{ -break _5; -} -} -} - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r3 = r2 & -2139062144; - r3 = r3 ^ -2139062144; - r4 = (r2 + -16843009)|0; - r3 = r3 & r4; -_9: do { - if(r3 ==0) //_LBB732_11 -{ - r1 = (r1 + 4)|0; -_11: while(true){ - r3 = r0 >> 2; - r4 = r1 >> 2; - heap32[(r3)] = r2; - r2 = heap32[(r4)]; - r3 = r2 & -2139062144; - r0 = (r0 + 4)|0; - r1 = (r1 + 4)|0; - r3 = r3 ^ -2139062144; - r4 = (r2 + -16843009)|0; - r3 = r3 & r4; -if(!(r3 ==0)) //_LBB732_15 -{ -break _9; -} -} -} -} while(0); - r1 = r2 & 255; - heap8[r0] = r2; -if(!(r1 ==0)) //_LBB732_8 -{ - r0 = (r0 + 1)|0; -_15: while(true){ - r2 = r2 >>> 8; - r1 = (r0 + 1)|0; - heap8[r0] = r2; - r3 = r2 & 255; - r0 = r1; - if(r3 ==0) //_LBB732_8 -{ -break _1; -} -else{ -continue _15; -} -} -} -} -else{ -_17: while(true){ - r2 = heapU8[r1]; - r3 = (r0 + 1)|0; - r1 = (r1 + 1)|0; - heap8[r0] = r2; - r0 = r3; - if(r2 ==0) //_LBB732_8 -{ -break _1; -} -else{ -continue _17; -} -} -} -} while(0); - return; -} - -function strcmp(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = r1 ^ r0; - r2 = r2 & 3; -_1: do { - if(r2 ==0) //_LBB733_7 -{ - r2 = r0 & 3; -_3: do { - if(r2 !=0) //_LBB733_9 -{ - r2 = r0 | -4; -_5: while(true){ - if(r2 !=0) //_LBB733_10 -{ - r3 = heapU8[r0]; - r4 = heapU8[r1]; - if(r3 ==0) //_LBB733_12 -{ -break _5; -} -else{ - r5 = r4 & 255; - if(r3 ==r5) //_LBB733_13 -{ - r0 = (r0 + 1)|0; - r1 = (r1 + 1)|0; - r2 = (r2 + 1)|0; -} -else{ -break _5; -} -} -} -else{ -break _3; -} -} - r0 = r3 << 24; - r1 = r4 << 24; -break _1; -} -} while(0); -_11: while(true){ - r2 = r0 >> 2; - r2 = heap32[(r2)]; - r3 = r1 >> 2; - r4 = r2 & -2139062144; - r3 = heap32[(r3)]; - r4 = r4 ^ -2139062144; - r5 = (r2 + -16843009)|0; - r4 = r4 & r5; - if(r4 !=0) //_LBB733_18 -{ -break _11; -} -else{ - r4 = r3 & -2139062144; - r4 = r4 ^ -2139062144; - r5 = (r3 + -16843009)|0; - r4 = r4 & r5; - if(r4 !=0) //_LBB733_18 -{ -break _11; -} -else{ - r0 = (r0 + 4)|0; - r1 = (r1 + 4)|0; -if(!(r2 ==r3)) //_LBB733_15 -{ -break _11; -} -} -} -} - r0 = r2 & 255; -_16: do { -if(!(r0 ==0)) //_LBB733_21 -{ - r0 = r2 & 255; - r1 = r3 & 255; -if(!(r0 !=r1)) //_LBB733_21 -{ -__label__ = 19; //SET chanka -_18: while(true){ - r2 = r2 >>> 8; - r3 = r3 >>> 8; - r0 = r2 & 255; - if(r0 ==0) //_LBB733_24 -{ -break _16; -} -else{ - r1 = r3 & 255; -if(!(r0 ==r1)) //_LBB733_22 -{ -break _16; -} -} -} -} -} -} while(0); - r2 = r2 & 255; - r3 = r3 & 255; - r2 = (r2 - r3)|0; - r_g0 = r2; - return; -} -else{ -_22: while(true){ - r2 = heapU8[r0]; - r3 = heapU8[r1]; - if(r2 ==0) //_LBB733_5 -{ -break _22; -} -else{ - r4 = r3 & 255; - if(r2 ==r4) //_LBB733_2 -{ - r0 = (r0 + 1)|0; - r1 = (r1 + 1)|0; -} -else{ -break _22; -} -} -} - r0 = r2 << 24; - r1 = r3 << 24; -} -} while(0); - r0 = r0 >> 24; - r1 = r1 >> 24; - r0 = (r0 - r1)|0; - r_g0 = r0; - return; -} - -function memmove(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; -_1: do { -if(!(r0 ==r1)) //_LBB734_8 -{ - r2 = heap32[(fp+2)]; - if(uint(r0) <=uint(r1)) //_LBB734_5 -{ -if(!(r2 ==0)) //_LBB734_8 -{ - r3 = 0; - r2 = (r3 - r2)|0; -_6: while(true){ - r3 = (r0 - r2)|0; - r4 = (r2 + 1)|0; - r2 = (r1 - r2)|0; - r3 = heapU8[r3+-1]; - heap8[r2+-1] = r3; - r2 = r4; - if(r4 !=0) //_LBB734_7 -{ -continue _6; -} -else{ -break _1; -} -} -} -} -else{ -if(!(r2 ==0)) //_LBB734_8 -{ - r3 = r1; -_10: while(true){ - r4 = heapU8[r0]; - r2 = (r2 + -1)|0; - r5 = (r3 + 1)|0; - r0 = (r0 + 1)|0; - heap8[r3] = r4; - r3 = r5; - if(r2 ==0) //_LBB734_8 -{ -break _1; -} -else{ -continue _10; -} -} -} -} -} -} while(0); - r_g0 = r1; - return; -} - -function strncasecmp(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = 0; - r7 = 26; -_1: while(true){ - if(r3 >=r2) //_LBB735_5 -{ -__label__ = 5; -break _1; -} -else{ - r4 = heap8[r1+r3]; - r5 = heap8[r0+r3]; - r6 = (r4 + -65)|0; - r4 = (r4 + -33)|0; - r8 = (r5 + -65)|0; - r5 = (r5 + -33)|0; - r4 = uint(r6) < uint(r7) ? r4 : r6; - r5 = uint(r8) < uint(r7) ? r5 : r8; - if(r4 !=r5) //_LBB735_4 -{ -__label__ = 4; -break _1; -} -else{ - r3 = (r3 + 1)|0; - if(r5 !=-65) //_LBB735_1 -{ -continue _1; -} -else{ -__label__ = 4; -break _1; -} -} -} -} -switch(__label__ ){//multiple entries -case 5: - r0 = 0; - r_g0 = r0; - return; -break; -case 4: - r0 = (r5 - r4)|0; - r_g0 = r0; - return; -break; -} -} - -function strncmp(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp)]; - r2 = heap32[(fp+1)]; - if(uint(r0) >uint(3)) //_LBB736_2 -{ - r5 = r0 >>> 2; - r1 = (r1 + 2)|0; -_3: while(true){ - r3 = heapU8[r1+-2]; - r4 = heapU8[r2]; - if(r3 ==0) //_LBB736_5 -{ -__label__ = 5; -break _3; -} -else{ - r6 = r4 & 255; - if(r3 ==r6) //_LBB736_6 -{ - r3 = heapU8[r1+-1]; - r4 = heapU8[r2+1]; - if(r3 ==0) //_LBB736_8 -{ -__label__ = 5; -break _3; -} -else{ - r6 = r4 & 255; - if(r3 ==r6) //_LBB736_9 -{ - r3 = heapU8[r1]; - r4 = heapU8[r2+2]; - if(r3 ==0) //_LBB736_11 -{ -__label__ = 5; -break _3; -} -else{ - r6 = r4 & 255; - if(r3 ==r6) //_LBB736_12 -{ - r3 = heapU8[r1+1]; - r4 = heapU8[r2+3]; - if(r3 ==0) //_LBB736_14 -{ -__label__ = 5; -break _3; -} -else{ - r6 = r4 & 255; - if(r3 ==r6) //_LBB736_15 -{ - r5 = (r5 + -1)|0; - r1 = (r1 + 4)|0; - r2 = (r2 + 4)|0; - if(r5 !=0) //_LBB736_3 -{ -__label__ = 3; -} -else{ -__label__ = 13; -break _3; -} -} -else{ -__label__ = 5; -break _3; -} -} -} -else{ -__label__ = 5; -break _3; -} -} -} -else{ -__label__ = 5; -break _3; -} -} -} -else{ -__label__ = 5; -break _3; -} -} -} -switch(__label__ ){//multiple entries -case 5: - r1 = r4 & 255; - r1 = (r3 - r1)|0; - r_g0 = r1; - return; -break; -case 13: - r0 = r0 & 3; - r1 = (r1 + -2)|0; -break; -} -} -else{ - r3 = 0; - r4 = r3; -} -_17: while(true){ - if(r0 !=0) //_LBB736_17 -{ - r3 = heapU8[r1]; - r4 = heapU8[r2]; - if(r3 ==0) //_LBB736_19 -{ -__label__ = 16; -break _17; -} -else{ - r5 = r4 & 255; - if(r3 ==r5) //_LBB736_20 -{ - r0 = (r0 + -1)|0; - r1 = (r1 + 1)|0; - r2 = (r2 + 1)|0; -continue _17; -} -else{ -__label__ = 16; -break _17; -} -} -} -else{ -__label__ = 19; -break _17; -} -} -switch(__label__ ){//multiple entries -case 16: - r0 = r4 & 255; - r0 = (r3 - r0)|0; - r_g0 = r0; - return; -break; -case 19: - r0 = r3 & 255; - r1 = r4 & 255; - r0 = (r0 - r1)|0; - r_g0 = r0; - return; -break; -} -} - -function quicksort(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; - var r24; - var r25; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - heap32[(fp+-4)] = r0; - r1 = heap32[(fp+1)]; - heap32[(fp+-3)] = r1; -if(!(r0 <=r1)) //_LBB737_37 -{ - r0 = heap32[(fp)]; - r1 = heap32[(fp+3)]; - r2 = 4; - r3 = heap32[(fp+-4)]; - r4 = r3 << 2; - r5 = (r0 + r4)|0; - r6 = -4; - r7 = -8; - r2 = (r2 - r0)|0; - r3 = (r3 + -1)|0; - r8 = (r0 + 4)|0; - r6 = (r6 - r0)|0; - heap32[(fp+-1)] = r6; - r6 = (r5 + -4)|0; - heap32[(fp+-2)] = r6; - r6 = (r7 - r0)|0; - r2 = (r2 - r4)|0; - heap32[(fp+-6)] = r2; -_3: while(true){ - r2 = heap32[(fp+-3)]; - r4 = (r2 + -1)|0; - r7 = (r2 + 1)|0; - r9 = -1; - r10 = -2; - heap32[(fp+-5)] = r2; - r2 = heap32[(fp+-4)]; - r11 = r4; -_5: while(true){ - r12 = r4 << 2; - r13 = (r0 + r12)|0; - r14 = (r12 + 4)|0; - r15 = heap32[(fp+-1)]; - r15 = (r15 - r12)|0; - r16 = (r8 + r12)|0; - r12 = (r6 - r12)|0; -_7: while(true){ - r17 = r12; - r18 = r16; - r19 = r15; - r20 = r14; - r21 = r4; - r22 = r13; - if(r3 ==r21) //_LBB737_6 -{ -break _7; -} -else{ - r4 = (r0 + r20)|0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - r13 = (r22 + 4)|0; - r4 = (r21 + 1)|0; - r14 = (r20 + 4)|0; - r15 = (r19 + -4)|0; - r16 = (r18 + 4)|0; - r12 = (r17 + -4)|0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r23 = r_g0; -if(!(r23 <0)) //_LBB737_4 -{ -break _7; -} -} -} - r4 = r2 << 2; - r12 = (r0 + r4)|0; - r13 = 0; - r14 = (r13 - r12)|0; - r4 = (r21 + 1)|0; - r15 = (r12 + -4)|0; - r16 = r14; -_11: while(true){ - r23 = r14; - r24 = r16; - r25 = r2; - r2 = (r15 + r13)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r2; - r13 = (r13 + -4)|0; - r2 = (r25 + -1)|0; - __FUNCTION_TABLE__[(r1)>>2](i7); - r14 = r_g0; - if(r14 >-1) //_LBB737_9 -{ -break _11; -} -else{ - r16 = (r24 + 4)|0; - r14 = (r23 + 4)|0; -if(!(r7 !=r25)) //_LBB737_7 -{ -break _11; -} -} -} - if(r4 >=r2) //_LBB737_20 -{ -break _5; -} -else{ - r17 = 0; -_16: while(true){ - r22 = (r17 - r19)|0; - r14 = (r17 - r24)|0; - r15 = heapU8[r22]; - r14 = heapU8[r14+-4]; - r16 = (r17 + 1)|0; - r17 = (r17 - r23)|0; - heap8[r22] = r14; - heap8[r17+-4] = r15; - r17 = r16; -if(!(r16 !=4)) //_LBB737_11 -{ -break _16; -} -} - r17 = (r0 + r20)|0; - heap32[(g0)] = r17; - heap32[(g0+1)] = r5; - __FUNCTION_TABLE__[(r1)>>2](i7); - r17 = r_g0; -_19: do { - if(r17 ==0) //_LBB737_14 -{ - r17 = r11 << 2; - r11 = (r11 + 1)|0; - r17 = (r8 + r17)|0; - r22 = 0; -_21: while(true){ - r14 = (r18 - r22)|0; - r15 = (r17 - r22)|0; - r16 = heapU8[r15]; - r19 = heapU8[r14]; - r22 = (r22 + -1)|0; - heap8[r15] = r19; - heap8[r14] = r16; -if(!(r22 !=-4)) //_LBB737_15 -{ -break _19; -} -} -} -} while(0); - r17 = (r12 + r13)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r17; - __FUNCTION_TABLE__[(r1)>>2](i7); - r17 = r_g0; -if(!(r17 !=0)) //_LBB737_3 -{ - r4 = (r21 + 1)|0; - r17 = 0; -_25: while(true){ - r18 = heap32[(fp+-2)]; - r18 = (r17 + r18)|0; - r21 = r10 << 2; - r18 = (r18 - r21)|0; - r21 = (r17 + r12)|0; - r21 = heapU8[r21+r13]; - r22 = heapU8[r18+-8]; - r14 = (r17 + r12)|0; - r17 = (r17 + 1)|0; - heap8[r14+r13] = r22; - heap8[r18+-8] = r21; - if(r17 ==4) //_LBB737_18 -{ -break _25; -} -} - r10 = (r10 + 1)|0; - r9 = (r9 + 1)|0; -} -} -} - r2 = heap32[(fp+-4)]; - r2 = (r2 - r10)|0; - r4 = 0; - r2 = (r2 + -2)|0; - r7 = (r4 - r22)|0; -_29: while(true){ - r12 = (r5 - r4)|0; - r13 = (r18 - r4)|0; - r14 = heapU8[r13]; - r15 = heapU8[r12]; - r4 = (r4 + -1)|0; - heap8[r13] = r15; - heap8[r12] = r14; -if(!(r4 !=-4)) //_LBB737_21 -{ -break _29; -} -} - r4 = (r21 + 2)|0; - r12 = heap32[(fp+-3)]; - if(r12 r2) //_LBB737_35 -{ - r2 = heap32[(fp+-6)]; -_44: while(true){ - r4 = 0; -_46: while(true){ - r11 = (r4 - r2)|0; - r12 = (r4 - r17)|0; - r13 = heapU8[r12]; - r14 = heapU8[r11]; - r4 = (r4 + 1)|0; - heap8[r12] = r14; - heap8[r11] = r13; -if(!(r4 !=4)) //_LBB737_30 -{ -break _46; -} -} - r9 = (r9 + -1)|0; - r17 = (r17 + -4)|0; - r2 = (r2 + 4)|0; -if(!(r9 !=0)) //_LBB737_29 -{ -break _44; -} -} - r2 = (r10 + r21)|0; - r2 = (r2 + 3)|0; - heap32[(fp+-3)] = r2; -} -else{ - heap32[(fp+-3)] = r4; -} - heap32[(g0)] = r0; - r2 = heap32[(fp+-5)]; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r7; - heap32[(g0+3)] = r1; - quicksort(i7); - r4 = heap32[(fp+-3)]; - r2 = heap32[(fp+-4)]; - if(r4 >2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var f0; - var f1; - var f2; - var f3; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - f0 = llvm_readDouble((sp)); - r0 = sp + -8; - llvm_writeDouble((sp+-8),f0); - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - r1 = heap32[(fp+2)]; - r2 = heap32[(fp+3)]; - r3 = heap32[(fp+4)]; - r4 = heap32[(fp+5)]; - r5 = heap32[(fp+6)]; - r6 = heap32[(fp+-2)]; - if(r0 >2146435071) //_LBB738_3 -{ - r7 = r0 ^ 2146959360; - r7 = r6 | r7; - if(r7 ==0) //_LBB738_13 -{ -__label__ = 13; -} -else{ - r7 = r0 ^ 2146435072; - r6 = r6 | r7; - if(r6 !=0) //_LBB738_21 -{ -__label__ = 20; -} -else{ -__label__ = 5; -} -} -} -else{ - r7 = r0 ^ -1048576; - r7 = r6 | r7; - if(r7 ==0) //_LBB738_5 -{ -__label__ = 5; -} -else{ - r7 = r0 ^ -524288; - r6 = r6 | r7; - if(r6 ==0) //_LBB738_13 -{ -__label__ = 13; -} -else{ -__label__ = 20; -} -} -} -_6: do { -switch(__label__ ){//multiple entries -case 13: - if(r2 >0) //_LBB738_15 -{ - r0 = (r2 + -1)|0; - r3 = 2; - r4 = 0; - r5 = (r2 + 2)|0; - r0 = uint(r0) > uint(r3) ? r0 : r3; - r3 = (r4 - r2)|0; - r0 = (r5 - r0)|0; - r4 = _2E_str9655; - r5 = r1; -_10: while(true){ - r6 = heapU8[r4]; - r0 = (r0 + -1)|0; - r7 = (r5 + 1)|0; - r4 = (r4 + 1)|0; - heap8[r5] = r6; - r5 = r7; -if(!(r0 !=0)) //_LBB738_16 -{ -break _10; -} -} - r0 = -3; - r4 = 3; - r0 = uint(r3) > uint(r0) ? r2 : r4; -} -else{ - r0 = 0; -} - if(r0 >=r2) //_LBB738_20 -{ - r_g0 = r0; - return; -} -else{ -__label__ = 11; -break _6; -} -break; -case 20: - f1 = 0; - if(f0 !=f1) //_LBB738_32 -{ - r0 = r0 >>> 20; - r0 = r0 & 2047; - r0 = (r0 + -1023)|0; - f2 = r0; //fitod r0, f2 - f3 = 0.3010299956639812; - f2 = f2*f3; - r0 = f2|0; - r6 = (r0 + 1)|0; - if(f0 0) //_LBB738_44 -{ -_34: do { - if(uint(r6) >uint(10)) //_LBB738_46 -{ - r0 = (r0 + 1)|0; - f2 = 10; - f3 = 10000000000; -_36: while(true){ - r0 = (r0 + -10)|0; - f2 = f2*f3; -if(!(uint(r0) >uint(10))) //_LBB738_47 -{ -break _34; -} -} -} -else{ - f2 = 10; - r0 = r6; -} -} while(0); - if(uint(r0) >uint(1)) //_LBB738_50 -{ - r0 = (r0 + -1)|0; - f3 = 10; -_42: while(true){ - r0 = (r0 + -1)|0; - f2 = f2*f3; -if(!(r0 !=0)) //_LBB738_51 -{ -break _42; -} -} - r0 = 1; -} -else{ - r0 = 1; -} -_46: while(true){ - f3 = 0.90000000000000002; - if(f2 >f3) //_LBB738_53 -{ - f3 = f1/f2; - r8 = f3|0; - if(r0 ==0) //_LBB738_56 -{ -__label__ = 52; -} -else{ - r9 = r8 & 255; - if(r9 !=0) //_LBB738_56 -{ -__label__ = 52; -} -else{ -__label__ = 64; -} -} -if (__label__ == 52){ - r0 = (r8 + 48)|0; - heap8[r7] = r0; - if(r2 !=0) //_LBB738_70 -{ - r0 = r8 << 24; - r0 = r0 >> 24; - f3 = r0; //fitod r0, f3 - f3 = f3*f2; - r7 = (r7 + 1)|0; - f1 = f1-f3; - r2 = (r2 + -1)|0; - r0 = 0; -} -else{ -break _46; -} -} - f3 = 10; - f2 = f2/f3; -} -else{ -__label__ = 66; -break _32; -} -} - f0 = f0/f2; - llvm_writeDouble((i7),f0); - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r2; - heap32[(g0+4)] = r3; - heap32[(g0+5)] = r4; - heap32[(g0+6)] = 0; - __dtostr(i7); - r0 = r_g0; - if(r0 ==0) //_LBB738_92 -{ -__label__ = 83; -} -else{ - r3 = (r0 + r7)|0; - r7 = (r3 + 1)|0; - if(r2 !=r0) //_LBB738_60 -{ - r3 = (r3 + 2)|0; - r4 = 101; - heap8[r7] = r4; - r7 = r3; -} - r2 = (r2 + -1)|0; - r3 = (r2 - r0)|0; -_60: do { - if(r6 <1000) //_LBB738_66 -{ - if(r6 <100) //_LBB738_93 -{ - if(r6 >9) //_LBB738_95 -{ -__label__ = 90; -break _60; -} -else{ -__label__ = 91; -break _60; -} -} -else{ -__label__ = 87; -break _60; -} -} -else{ - if(r2 !=r0) //_LBB738_64 -{ - r0 = (r6 / 1000)|0; - r2 = (r7 + 1)|0; - r0 = (r0 + 48)|0; - heap8[r7] = r0; - r7 = r2; -} - r3 = (r3 + -1)|0; - r6 = (r6 % 1000)|0; -__label__ = 87; -} -} while(0); -if (__label__ == 87){ - if(r3 !=0) //_LBB738_97 -{ - r0 = (r6 / 100)|0; - r2 = (r7 + 1)|0; - r0 = (r0 + 48)|0; - heap8[r7] = r0; - r7 = r2; -} - r3 = (r3 + -1)|0; - r6 = (r6 % 100)|0; -__label__ = 90; -} -if (__label__ == 90){ - if(r3 !=0) //_LBB738_101 -{ - r0 = (r6 / 10)|0; - r2 = (r7 + 1)|0; - r0 = (r0 + 48)|0; - heap8[r7] = r0; - r7 = r2; -} - r3 = (r3 + -1)|0; - r6 = (r6 % 10)|0; -} - if(r3 !=0) //_LBB738_68 -{ - r0 = (r6 + 48)|0; - heap8[r7] = r0; - if(r3 ==1) //_LBB738_92 -{ -__label__ = 83; -} -else{ - r7 = (r7 + 1)|0; -__label__ = 82; -} -} -else{ -__label__ = 82; -} -} -} -else{ - f2 = 0.10000000000000001; -__label__ = 66; -} -} while(0); -_81: do { -if (__label__ == 66){ - if(r7 ==r1) //_LBB738_75 -{ - if(r2 ==0) //_LBB738_92 -{ -__label__ = 83; -break _81; -} -else{ - r2 = (r2 + -1)|0; - r6 = (r7 + 1)|0; - r0 = 48; - heap8[r7] = r0; - r7 = r6; -} -} -if(!(r4 !=0)) //_LBB738_80 -{ - r6 = 1; - r6 = (r6 - r1)|0; - r6 = (r6 + r7)|0; -if(!(uint(r6) uint(r6)) //_LBB738_92 -{ -__label__ = 83; -} -else{ - if(r4 !=0) //_LBB738_88 -{ - r3 = (r4 + 1)|0; - r6 = (r7 + 1)|0; - f3 = 10; -_99: while(true){ - f0 = f1/f2; - r0 = f0|0; - r2 = r0 << 24; - r2 = r2 >> 24; - f0 = r2; //fitod r2, f0 - f0 = f0*f2; - r4 = (r4 + -1)|0; - f2 = f2/f3; - f1 = f1-f0; - r2 = (r6 + 1)|0; - r0 = (r0 + 48)|0; - heap8[r6] = r0; - r6 = r2; -if(!(r4 !=0)) //_LBB738_89 -{ -break _99; -} -} - r7 = (r7 + r3)|0; -__label__ = 82; -} -else{ - r7 = r0; -__label__ = 82; -} -} -} -} -} while(0); -switch(__label__ ){//multiple entries -case 83: - r1 = 0; - r_g0 = r1; - return; -break; -case 82: - r3 = 0; - heap8[r7] = r3; - r1 = (r7 - r1)|0; - r_g0 = r1; - return; -break; -} -} -else{ - r3 = 1; - r5 = (r4 + 2)|0; - r4 = r4 == 0 ? r3 : r5; - r5 = 8; - r2 = uint(r4) > uint(r2) ? r5 : r4; - if(r2 ==0) //_LBB738_24 -{ -__label__ = 23; -} -else{ - if(r0 <0) //_LBB738_25 -{ - r0 = 45; - heap8[r1] = r0; - r0 = r3; -__label__ = 25; -} -else{ -__label__ = 23; -} -} -if (__label__ == 23){ - r0 = 0; -} - if(uint(r0) 0) //_LBB738_7 -{ - r0 = (r2 + -1)|0; - r3 = 2; - r4 = 0; - r5 = (r2 + 2)|0; - r0 = uint(r0) > uint(r3) ? r0 : r3; - r3 = (r4 - r2)|0; - r0 = (r5 - r0)|0; - r4 = _2E_str7654; - r5 = r1; -_122: while(true){ - r6 = heapU8[r4]; - r0 = (r0 + -1)|0; - r7 = (r5 + 1)|0; - r4 = (r4 + 1)|0; - heap8[r5] = r6; - r5 = r7; -if(!(r0 !=0)) //_LBB738_8 -{ -break _122; -} -} - r0 = -3; - r4 = 3; - r0 = uint(r3) > uint(r0) ? r2 : r4; -} -else{ - r0 = 0; -} - if(r0 >=r2) //_LBB738_12 -{ -__label__ = 12; -} -else{ -__label__ = 11; -} -break; -} -} while(0); -if (__label__ == 11){ - r2 = 0; - heap8[r1+r0] = r2; - r0 = (r0 + 1)|0; -} - r_g0 = r0; - return; -} - -function write_pad(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - if(r0 >0) //_LBB739_2 -{ - r1 = heap32[(fp)]; - r1 = r1 >> 2; - r2 = heap32[(r1)]; - r2 = (r2 + r0)|0; - if(uint(r2) >=uint(r0)) //_LBB739_4 -{ - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+3)]; - if(uint(r0) >uint(15)) //_LBB739_6 -{ - r4 = 48; - r4 = r3 == r4; - r4 = r4 & 1; - r5 = _ZL8pad_line; - r4 = r4 << 5; - r4 = (r5 + r4)|0; - r5 = 0; -_7: while(true){ - r6 = r2 >> 2; - r7 = heap32[(r6+1)]; - r6 = heap32[(r6)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = 16; - heap32[(g0+2)] = r6; - r5 = (r5 + -16)|0; - __FUNCTION_TABLE__[(r7)>>2](i7); - r6 = (r0 + r5)|0; -if(!(uint(r6) >uint(15))) //_LBB739_7 -{ -break _7; -} -} - r0 = 0; - r4 = (r0 - r5)|0; - if(r6 ==0) //_LBB739_10 -{ -__label__ = 11; -} -else{ - r0 = r6; -__label__ = 10; -} -} -else{ - r4 = 0; -__label__ = 10; -} -if (__label__ == 10){ - r5 = 48; - r2 = r2 >> 2; - r3 = r3 == r5; - r3 = r3 & 1; - r5 = heap32[(r2+1)]; - r2 = heap32[(r2)]; - r6 = _ZL8pad_line; - r3 = r3 << 5; - r3 = (r6 + r3)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - r4 = (r4 + r0)|0; - __FUNCTION_TABLE__[(r5)>>2](i7); -} - r0 = heap32[(r1)]; - r0 = (r0 + r4)|0; - heap32[(r1)] = r0; - r0 = 0; -} -else{ - r0 = -1; -} -} -else{ - r0 = 0; -} - r_g0 = r0; - return; -} - -function sgetc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = heapU8[r1]; - r1 = (r1 + 1)|0; - heap32[(r0)] = r1; - if(r2 ==0) //_LBB740_2 -{ - r0 = -1; - r_g0 = r0; - return; -} -else{ - r_g0 = r2; - return; -} -} - -function sputc(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = (r1 + -1)|0; - heap32[(r0)] = r2; - r0 = heapU8[r1+-1]; - r1 = heap32[(fp)]; - r2 = -1; - r0 = r0 == r1 ? r1 : r2; - r_g0 = r0; - return; -} - -function memset(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp)]; -if(!(r0 ==0)) //_LBB742_3 -{ - r2 = heap32[(fp+1)]; - r3 = r1; -_3: while(true){ - r0 = (r0 + -1)|0; - r4 = (r3 + 1)|0; - heap8[r3] = r2; - r3 = r4; - if(r0 !=0) //_LBB742_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - r_g0 = r1; - return; -} - -function memcpy(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = r1 ^ r0; - r3 = r3 & 3; -_1: do { - if(r3 !=0) //_LBB743_2 -{ -__label__ = 2; -} -else{ - if(uint(r2) >uint(4)) //_LBB743_3 -{ - r3 = r0 & 3; - if(r3 !=0) //_LBB743_5 -{ - r3 = (r3 + -5)|0; - r4 = r2 ^ -1; - r3 = uint(r3) < uint(r4) ? r4 : r3; - r4 = (r3 + r2)|0; - r3 = r3 ^ -1; - r4 = (r4 + 1)|0; - r6 = (r1 + r3)|0; - r5 = (r0 + r3)|0; - r3 = r0 | -4; - r7 = r0; -_6: while(true){ - if(r3 ==0) //_LBB743_9 -{ -break _6; -} -else{ - if(r2 ==0) //_LBB743_20 -{ -__label__ = 19; -break _1; -} -else{ - r8 = heapU8[r1]; - r2 = (r2 + -1)|0; - r3 = (r3 + 1)|0; - r1 = (r1 + 1)|0; - r9 = (r7 + 1)|0; - heap8[r7] = r8; - r7 = r9; -} -} -} - if(r4 ==-1) //_LBB743_20 -{ -__label__ = 19; -break _1; -} -else{ - r2 = r4; - r1 = r6; -} -} -else{ - r5 = r0; -} - if(uint(r2) >uint(3)) //_LBB743_13 -{ - r6 = r5; - r4 = r1; -_16: while(true){ - r7 = r4 >> 2; - r2 = (r2 + -4)|0; - r4 = (r4 + 4)|0; - r3 = (r6 + 4)|0; - r6 = r6 >> 2; - r7 = heap32[(r7)]; - heap32[(r6)] = r7; - r6 = r3; - if(uint(r2) >uint(3)) //_LBB743_14 -{ -continue _16; -} -else{ -__label__ = 15; -break _1; -} -} -} -else{ - r4 = r1; - r3 = r5; -__label__ = 15; -} -} -else{ -__label__ = 2; -} -} -} while(0); -if (__label__ == 2){ - r3 = 0; - r4 = r3; - r5 = r0; -__label__ = 15; -} -_21: do { -if (__label__ == 15){ -if(!(r2 ==0)) //_LBB743_20 -{ - if(r3 !=0) //_LBB743_18 -{ - r1 = r4; - r5 = r3; -} -_26: while(true){ - r3 = heapU8[r1]; - r2 = (r2 + -1)|0; - r4 = (r5 + 1)|0; - r1 = (r1 + 1)|0; - heap8[r5] = r3; - r5 = r4; - if(r2 !=0) //_LBB743_19 -{ -continue _26; -} -else{ -break _21; -} -} -} -} -} while(0); - r_g0 = r0; - return; -} - -function swrite(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r0 = r0 >> 2; - r1 = heap32[(r0+1)]; - r2 = heap32[(r0+2)]; - r3 = heap32[(fp+1)]; -if(!(r2 ==r1)) //_LBB744_5 -{ - r2 = (r2 - r1)|0; - r4 = heap32[(r0)]; - r2 = uint(r2) < uint(r3) ? r2 : r3; - if(r4 !=0) //_LBB744_3 -{ - r5 = heap32[(fp)]; - r1 = (r4 + r1)|0; - heap32[(g0)] = r1; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r2; - memcpy(i7); - r1 = heap32[(r0+1)]; - r4 = heap32[(r0)]; - r1 = (r1 + r2)|0; - r5 = 0; - heap8[r4+r1] = r5; - r1 = heap32[(r0+1)]; -} - r1 = (r1 + r2)|0; - heap32[(r0+1)] = r1; -} - r_g0 = r3; - return; -} - -function __sync_fetch_and_add_4(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+1)]; - r2 = heap32[(r0)]; - r1 = (r2 + r1)|0; - heap32[(r0)] = r1; - r_g0 = r2; - return; -} - -function __muldi3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - if(r0 <0) //_LBB746_2 -{ - r5 = 0; - r4 = 1; - r0 = (r5 - r0)|0; - r6 = r1 != 0 ? r4 : r5; - r1 = (r5 - r1)|0; - r0 = (r0 - r6)|0; -} -else{ - r4 = 0; -} - if(r3 <0) //_LBB746_5 -{ - r5 = 0; - r6 = 1; - r3 = (r5 - r3)|0; - r6 = r2 != 0 ? r6 : r5; - r4 = r4 ^ 1; - r2 = (r5 - r2)|0; - r3 = (r3 - r6)|0; -} - r5 = r2 & 65535; - r6 = r1 & 65535; - r7 = r3 | r0; - r8 = (r5 * r6)|0; - r9 = r2 | r1; - r9 = r9 >>> 16; - if(r9 !=0) //_LBB746_8 -{ - r9 = r1 >>> 16; - r10 = r2 >>> 16; - r11 = (r10 - r5)|0; - r12 = (r5 - r10)|0; - r13 = (r6 - r9)|0; - r14 = (r9 - r6)|0; - r15 = (r10 * r9)|0; - r11 = uint(r5) < uint(r10) ? r11 : r12; - r12 = uint(r9) < uint(r6) ? r13 : r14; - r11 = (r11 * r12)|0; - r12 = r15 >>> 16; - r12 = (r12 + r15)|0; - r13 = r15 << 16; - r14 = r11 << 16; - r6 = uint(r9) < uint(r6); - r5 = uint(r5) < uint(r10); - r5 = r6 ^ r5; - r5 = r5 & 1; - if(r5 ==0) //_LBB746_10 -{ - r5 = (r14 + r13)|0; - r6 = uint(r5) < uint(r13); - r11 = r11 >>> 16; - r11 = (r11 + r12)|0; - r6 = r6 & 1; - r11 = (r11 + r6)|0; -} -else{ - r5 = (r13 - r14)|0; - r11 = r11 >>> 16; - r14 = -1; - r6 = 0; - r11 = (r12 - r11)|0; - r12 = uint(r5) > uint(r13) ? r14 : r6; - r11 = (r11 + r12)|0; -} - r6 = r8 << 16; - r6 = (r5 + r6)|0; - r9 = (r6 + r8)|0; - r5 = uint(r6) < uint(r5); - r6 = r8 >>> 16; - r8 = uint(r9) < uint(r8); - r6 = (r11 + r6)|0; - r5 = r5 & 1; - r5 = (r6 + r5)|0; - r8 = r8 & 1; - r5 = (r5 + r8)|0; - r8 = r9; -} -else{ - r5 = 0; -} - if(r7 !=0) //_LBB746_14 -{ - r6 = (r3 - r2)|0; - r7 = (r2 - r3)|0; - r9 = (r1 - r0)|0; - r10 = (r0 - r1)|0; - r6 = uint(r2) < uint(r3) ? r6 : r7; - r7 = uint(r0) < uint(r1) ? r9 : r10; - r1 = uint(r0) < uint(r1); - r2 = uint(r2) < uint(r3); - r9 = 0; - r6 = (r6 * r7)|0; - r1 = r1 ^ r2; - r2 = (r9 - r6)|0; - r1 = r1 != 0 ? r2 : r6; - r0 = (r3 * r0)|0; - r0 = (r1 + r0)|0; - r0 = (r0 + r8)|0; - r5 = (r0 + r5)|0; -} - r0 = 0; - r1 = 1; - r2 = (r0 - r5)|0; - r1 = r8 != 0 ? r1 : r0; - r0 = (r0 - r8)|0; - r1 = (r2 - r1)|0; - r0 = r4 == 0 ? r8 : r0; - r1 = r4 == 0 ? r5 : r1; - r_g0 = r0; - r_g1 = r1; - return; -} - -function __fixdfdi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = sp + 0; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - r1 = r0 >>> 20; - r1 = r1 & 2047; - r2 = (r1 + -1023)|0; - if(r2 <0) //_LBB747_5 -{ - r0 = 0; - r_g0 = r0; - r_g1 = r0; - return; -} -else{ - r3 = heap32[(fp)]; - r4 = r0 & 1048575; - r0 = r0 >> 31; - r4 = r4 | 1048576; - if(r2 <53) //_LBB747_3 -{ - r2 = 1075; - r1 = (r2 - r1)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - __lshrdi3(i7); - r1 = r_g0; - r3 = r_g1; -} -else{ - r1 = (r1 + -1075)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - __ashldi3(i7); - r1 = r_g0; - r3 = r_g1; -} - r2 = r3 ^ r0; - r1 = r1 ^ r0; - r3 = 1; - r4 = 0; - r2 = (r2 - r0)|0; - r3 = uint(r1) < uint(r0) ? r3 : r4; - r0 = (r1 - r0)|0; - r1 = (r2 - r3)|0; - r_g0 = r0; - r_g1 = r1; - return; -} -} - -function __floatdidf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var f0; - var f1; - var f2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - f0 = r0; //fitod r0, f0 - f1 = 4294967296; - f2 = uint(r1); //fuitod r1, f2 - f0 = f0*f1; - f0 = f2+f0; - f_g0 = f0; - return; -} - -function __lshrdi3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp+1)]; - r2 = r0 & 32; - if(r2 ==0) //_LBB749_2 -{ - r2 = heap32[(fp)]; -if(!(r0 ==0)) //_LBB749_4 -{ - r3 = 32; - r3 = (r3 - r0)|0; - r3 = r1 << r3; - r2 = r2 >>> r0; - r2 = r3 | r2; - r1 = r1 >>> r0; -} - r_g0 = r2; - r_g1 = r1; - return; -} -else{ - r0 = (r0 + -32)|0; - r0 = r1 >>> r0; - r1 = 0; - r_g0 = r0; - r_g1 = r1; - return; -} -} - -function __fixsfdi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >>> 23; - r1 = r1 & 255; - r2 = (r1 + -127)|0; - if(r2 <0) //_LBB750_5 -{ - r0 = 0; - r_g0 = r0; - r_g1 = r0; - return; -} -else{ - r3 = r0 & 8388607; - r0 = r0 >> 31; - r3 = r3 | 8388608; - r4 = 0; - if(r2 <24) //_LBB750_3 -{ - r2 = 150; - r1 = (r2 - r1)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - __lshrdi3(i7); - r1 = r_g0; - r3 = r_g1; -} -else{ - r1 = (r1 + -150)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - __ashldi3(i7); - r1 = r_g0; - r3 = r_g1; -} - r2 = r3 ^ r0; - r1 = r1 ^ r0; - r3 = 1; - r2 = (r2 - r0)|0; - r3 = uint(r1) < uint(r0) ? r3 : r4; - r0 = (r1 - r0)|0; - r1 = (r2 - r3)|0; - r_g0 = r0; - r_g1 = r1; - return; -} -} - -function __ashldi3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp)]; - r2 = r0 & 32; - if(r2 ==0) //_LBB751_2 -{ - r2 = heap32[(fp+1)]; -if(!(r0 ==0)) //_LBB751_4 -{ - r3 = 32; - r3 = (r3 - r0)|0; - r2 = r2 << r0; - r3 = r1 >>> r3; - r1 = r1 << r0; - r2 = r2 | r3; -} - r_g0 = r1; - r_g1 = r2; - return; -} -else{ - r0 = (r0 + -32)|0; - r2 = 0; - r0 = r1 << r0; - r_g0 = r2; - r_g1 = r0; - return; -} -} - -function __ashrdi3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp+1)]; - r2 = r0 & 32; - if(r2 ==0) //_LBB752_2 -{ - r2 = heap32[(fp)]; -if(!(r0 ==0)) //_LBB752_4 -{ - r3 = 32; - r3 = (r3 - r0)|0; - r3 = r1 << r3; - r2 = r2 >>> r0; - r2 = r3 | r2; - r1 = r1 >> r0; -} - r_g0 = r2; - r_g1 = r1; - return; -} -else{ - r0 = (r0 + -32)|0; - r0 = r1 >> r0; - r1 = r1 >> 31; - r_g0 = r0; - r_g1 = r1; - return; -} -} - -function __fixunsdfdi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = sp + 0; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - r1 = r0 >>> 20; - r1 = r1 & 2047; - r2 = (r1 + -1023)|0; -if(!(r2 <0)) //_LBB753_5 -{ -if(!(r0 <0)) //_LBB753_5 -{ - r3 = heap32[(fp)]; - r0 = r0 & 1048575; - r0 = r0 | 1048576; - if(r2 <53) //_LBB753_4 -{ - r2 = 1075; - r1 = (r2 - r1)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r1; - __lshrdi3(i7); - return; -} -else{ - r1 = (r1 + -1075)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r1; - __ashldi3(i7); - return; -} -} -} - r0 = 0; - r_g0 = r0; - r_g1 = r0; - return; -} - -function __fixunssfdi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >>> 23; - r1 = r1 & 255; - r2 = (r1 + -127)|0; -if(!(r2 <0)) //_LBB754_5 -{ -if(!(r0 <0)) //_LBB754_5 -{ - r0 = r0 & 8388607; - r0 = r0 | 8388608; - r3 = 0; - if(r2 <24) //_LBB754_4 -{ - r2 = 150; - r1 = (r2 - r1)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r1; - __lshrdi3(i7); - return; -} -else{ - r1 = (r1 + -150)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r1; - __ashldi3(i7); - return; -} -} -} - r0 = 0; - r_g0 = r0; - r_g1 = r0; - return; -} - -function _ZNK14CFileInterface12IsFileSystemEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN11CFileStdout5freadEPvjj(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = -1; - r_g0 = r0; - return; -} - -function _ZN11CFileStdout5ftellEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN11CFileStdout4feofEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN11CFileStdout5fseekEli(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN11CFileStdout6ungetcEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN11CFileStdout6fflushEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN11CFileStdout6fcloseEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZNK11CFileSystem12IsFileSystemEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 1; - r_g0 = r0; - return; -} - -function _ZN11CFileSystem5freadEPvjj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r0; - mandreel_fread(i7); - return; -} - -function _ZN11CFileSystem6fwriteEPKvjj(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = -1; - r_g0 = r0; - return; -} - -function _ZN11CFileSystem6fflushEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN11CFileSystem6fcloseEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - heap32[(g0)] = r0; - mandreel_fclose(i7); - return; -} - -function _ZN11CFileSystem5ftellEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - heap32[(g0)] = r0; - mandreel_ftell(i7); - return; -} - -function _ZN11CFileSystem4feofEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - heap32[(g0)] = r0; - mandreel_feof(i7); - return; -} - -function _ZN11CFileSystem5fseekEli(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - mandreel_fseek(i7); - return; -} - -function _ZN11CFileSystem6ungetcEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - r1 = heap32[(fp+1)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - mandreel_ungetc(i7); - return; -} - -function _ZN7CFileLS5freadEPvjj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+2)]; - r2 = heap32[(fp+3)]; - r3 = heap32[(r0+4)]; - r4 = heap32[(r0+2)]; - r2 = (r2 * r1)|0; - r5 = (r3 + r2)|0; - r6 = (r4 - r3)|0; - r2 = r5 > r4 ? r6 : r2; - if(r2 <0) //_LBB772_2 -{ - r0 = -1; - r_g0 = r0; - return; -} -else{ - r4 = heap32[(fp+1)]; - r5 = heap32[(r0+6)]; - r3 = (r5 + r3)|0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r2; - memcpy(i7); - r3 = heap32[(r0+4)]; - r3 = (r3 + r2)|0; - heap32[(r0+4)] = r3; - r0 = Math.floor(uint(r2) /uint(r1)); - r_g0 = r0; - return; -} -} - -function _ZN7CFileLS5ftellEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+4)]; - r_g0 = r0; - return; -} - -function _ZN7CFileLS4feofEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+4)]; - r0 = heap32[(r0+2)]; - r0 = r1 >= r0; - r0 = r0 & 1; - r_g0 = r0; - return; -} - -function _ZN7CFileLS5fseekEli(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp)]; - r2 = heap32[(fp+1)]; -_1: do { - if(r0 ==0) //_LBB775_4 -{ - r1 = r1 >> 2; -} -else{ - if(r0 ==1) //_LBB775_6 -{ - r0 = r1 >> 2; - r1 = heap32[(r0+4)]; - r1 = (r1 + r2)|0; - heap32[(r0+4)] = r1; -} -else{ -if(!(r0 !=2)) //_LBB775_7 -{ - r1 = r1 >> 2; - r0 = heap32[(r1+2)]; - r2 = (r0 + r2)|0; -break _1; -} -} - r0 = 0; - r_g0 = r0; - return; -} -} while(0); - heap32[(r1+4)] = r2; - r1 = 0; - r_g0 = r1; - return; -} - -function _ZN7CFileLS6ungetcEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = -1; - r_g0 = r0; - return; -} - -function _ZN10CFileCloud5freadEPvjj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+2)]; - r2 = heap32[(fp+3)]; - r3 = heap32[(r0+4)]; - r4 = heap32[(r0+2)]; - r2 = (r2 * r1)|0; - r5 = (r3 + r2)|0; - r6 = (r4 - r3)|0; - r2 = r5 > r4 ? r6 : r2; - if(r2 <0) //_LBB777_2 -{ - r0 = -1; - r_g0 = r0; - return; -} -else{ - r4 = heap32[(fp+1)]; - r5 = heap32[(r0+6)]; - r3 = (r5 + r3)|0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r2; - memcpy(i7); - r3 = heap32[(r0+4)]; - r3 = (r3 + r2)|0; - heap32[(r0+4)] = r3; - r0 = Math.floor(uint(r2) /uint(r1)); - r_g0 = r0; - return; -} -} - -function _ZN10CFileCloud5ftellEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r0 = heap32[(r0+4)]; - r_g0 = r0; - return; -} - -function _ZN10CFileCloud4feofEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0+4)]; - r0 = heap32[(r0+2)]; - r0 = r1 >= r0; - r0 = r0 & 1; - r_g0 = r0; - return; -} - -function _ZN10CFileCloud5fseekEli(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp)]; - r2 = heap32[(fp+1)]; -_1: do { - if(r0 ==0) //_LBB780_4 -{ - r1 = r1 >> 2; -} -else{ - if(r0 ==1) //_LBB780_6 -{ - r0 = r1 >> 2; - r1 = heap32[(r0+4)]; - r1 = (r1 + r2)|0; - heap32[(r0+4)] = r1; -} -else{ -if(!(r0 !=2)) //_LBB780_7 -{ - r1 = r1 >> 2; - r0 = heap32[(r1+2)]; - r2 = (r0 + r2)|0; -break _1; -} -} - r0 = 0; - r_g0 = r0; - return; -} -} while(0); - heap32[(r1+4)] = r2; - r1 = 0; - r_g0 = r1; - return; -} - -function _ZN10CFileCloud6ungetcEi(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = -1; - r_g0 = r0; - return; -} - -function __fwrite(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp)]; - r2 = heap32[(fp+1)]; -if(!(uint(r0) >uint(9))) //_LBB782_2 -{ - r0 = _ZL13s_file_stdout; -} - r3 = r0 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+2)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 1; - heap32[(g0+3)] = r2; - __FUNCTION_TABLE__[(r3)>>2](i7); - return; -} - -function _ZN7CFileLS6fwriteEPKvjj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+3)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+1)]; - r2 = (r1 * r2)|0; - r4 = heap32[(r0+4)]; - r5 = (r4 + r2)|0; - r6 = heap32[(r0+3)]; - if(r5 >r6) //_LBB783_2 -{ - r4 = (r2 + r4)|0; - r4 = (r4 + 131072)|0; - heap32[(r0+3)] = r4; - r5 = heap32[(r0+6)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - realloc(i7); - r5 = r_g0; - heap32[(r0+6)] = r5; - r4 = heap32[(r0+4)]; -} -else{ - r5 = heap32[(r0+6)]; -} - r4 = (r5 + r4)|0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r2; - memcpy(i7); - r3 = heap32[(r0+4)]; - r2 = (r3 + r2)|0; - heap32[(r0+4)] = r2; - r3 = heap32[(r0+5)]; -if(!(r2 <=r3)) //_LBB783_5 -{ - heap32[(r0+5)] = r2; -} - r_g0 = r1; - return; -} - -function _ZN7CFileLS6fflushEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+5]; -if(!(r1 ==0)) //_LBB784_2 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+5)]; - r1 = heap32[(r1+6)]; - r0 = (r0 + 28)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - mandreel_writels(i7); -} - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN7CFileLS6fcloseEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+5]; -if(!(r1 ==0)) //_LBB785_2 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+5)]; - r1 = heap32[(r1+6)]; - r3 = (r0 + 28)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - mandreel_writels(i7); -} - r1 = 0; - r2 = r0 >> 2; - heap8[r0+4] = r1; - r0 = heap32[(r2+6)]; - heap32[(g0)] = r0; - free(i7); - r_g0 = r1; - return; -} - -function _ZN10CFileCloud6fwriteEPKvjj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+3)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+1)]; - r2 = (r1 * r2)|0; - r4 = heap32[(r0+4)]; - r5 = (r4 + r2)|0; - r6 = heap32[(r0+3)]; - if(r5 >r6) //_LBB786_2 -{ - r4 = (r2 + r4)|0; - r4 = (r4 + 131072)|0; - heap32[(r0+3)] = r4; - r5 = heap32[(r0+6)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - realloc(i7); - r5 = r_g0; - heap32[(r0+6)] = r5; - r4 = heap32[(r0+4)]; -} -else{ - r5 = heap32[(r0+6)]; -} - r4 = (r5 + r4)|0; - heap32[(g0)] = r4; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r2; - memcpy(i7); - r3 = heap32[(r0+4)]; - r2 = (r3 + r2)|0; - heap32[(r0+4)] = r2; - r3 = heap32[(r0+5)]; -if(!(r2 <=r3)) //_LBB786_5 -{ - heap32[(r0+5)] = r2; -} - r_g0 = r1; - return; -} - -function _ZN10CFileCloud6fflushEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+5]; -if(!(r1 ==0)) //_LBB787_2 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+5)]; - r3 = r2 << 1; - heap32[(g0)] = r3; - malloc(i7); - r4 = r_g0; - r1 = heap32[(r1+6)]; - r5 = sp + -4; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r5; - _ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(i7); - r0 = (r0 + 28)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r_g0; - mandreel_writecloud(i7); - heap32[(g0)] = r4; - free(i7); -} - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN10CFileCloud6fcloseEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0+5]; -if(!(r1 ==0)) //_LBB788_2 -{ - r1 = r0 >> 2; - r2 = heap32[(r1+5)]; - r3 = r2 << 1; - heap32[(g0)] = r3; - malloc(i7); - r4 = r_g0; - r1 = heap32[(r1+6)]; - r5 = sp + -4; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r5; - _ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(i7); - r2 = (r0 + 28)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r_g0; - mandreel_writecloud(i7); - heap32[(g0)] = r4; - free(i7); -} - r1 = 0; - r2 = r0 >> 2; - heap8[r0+4] = r1; - r0 = heap32[(r2+6)]; - heap32[(g0)] = r0; - free(i7); - r_g0 = r1; - return; -} - -function __sync_val_compare_and_swap_4(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(r0)]; - r2 = heap32[(fp+1)]; -if(!(r1 !=r2)) //_LBB789_2 -{ - r2 = heap32[(fp+2)]; - heap32[(r0)] = r2; -} - r_g0 = r1; - return; -} - -function _ZN11CFileStdout6fwriteEPKvjj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -16392;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp+3)]; - r0 = (r1 * r0)|0; - if(r0 !=0) //_LBB790_2 -{ - r2 = heap32[(fp+1)]; - r3 = sp + -16384; - r4 = r0; -_3: while(true){ - r5 = heapU8[r2]; - r4 = (r4 + -1)|0; - r2 = (r2 + 1)|0; - r6 = (r3 + 1)|0; - heap8[r3] = r5; - r3 = r6; -if(!(r4 !=0)) //_LBB790_3 -{ -break _3; -} -} - r2 = sp + -16384; - r0 = (r2 + r0)|0; -} -else{ - r0 = sp + -16384; -} - r2 = 0; - heap8[r0] = r2; - r0 = sp + -16384; - heap32[(g0)] = r0; - puts(i7); - r_g0 = r1; - return; -} - -function fopen(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; -var __label__ = 0; - i7 = sp + -2064;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heapU8[r0]; - r2 = 46; - r3 = 92; - r4 = heapU8[r0+1]; - r5 = 47; - r1 = r1 == r2; - r2 = r4 == r3; - r1 = r1 & r2; - r2 = r4 == r5; - r1 = r1 | r2; - r2 = (r0 + 1)|0; - r1 = r1 != 0 ? r2 : r0; - r2 = heapU8[r1]; - r3 = heap32[(fp+1)]; -_1: do { - if(r2 !=0) //_LBB791_2 -{ - r4 = sp + -2048; - r1 = (r1 + 1)|0; - r6 = 0; - r8 = 26; -_3: while(true){ - r7 = r2 & 255; - if(r7 ==47) //_LBB791_5 -{ -__label__ = 5; -} -else{ - if(r7 !=92) //_LBB791_8 -{ - r6 = r2 << 24; - r6 = r6 >> 24; - r7 = (r6 + -65)|0; - r9 = (r2 + 32)|0; - r10 = (r4 + 1)|0; - r6 = 0; - r2 = uint(r7) < uint(r8) ? r9 : r2; - heap8[r4] = r2; - r4 = r10; -__label__ = 9; -} -else{ -__label__ = 5; -} -} -if (__label__ == 5){ - r2 = r6 & 255; - heap8[r4] = r5; - if(r2 ==0) //_LBB791_7 -{ - r4 = (r4 + 1)|0; - r6 = 1; -} -else{ - r6 = 1; -} -} - r2 = heapU8[r1]; - if(r2 !=0) //_LBB791_11 -{ - r1 = (r1 + 1)|0; -continue _3; -} -else{ -break _1; -} -} -} -else{ - r4 = sp + -2048; -} -} while(0); - r1 = 0; - heap8[r4] = r1; - r2 = sp + -2048; - r4 = _2E_str33679; - heap32[(g0)] = r2; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = 4; - strncmp(i7); - r4 = r_g0; -_17: do { - if(r4 !=0) //_LBB791_29 -{ - r4 = _2E_str34680; - heap32[(g0)] = r2; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = 4; - strncmp(i7); - r4 = r_g0; - if(r4 ==0) //_LBB791_31 -{ - heap32[(g0)] = 0; - _Z30mandreel_fopen_enable_checkfatb(i7); - r0 = _2E_str31677; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - strcmp(i7); - r0 = r_g0; -_21: do { - if(r0 !=0) //_LBB791_33 -{ - r0 = _2E_str4651; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - strcmp(i7); - r0 = r_g0; - if(r0 ==0) //_LBB791_32 -{ -__label__ = 30; -} -else{ - r0 = _2E_str5652; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - strcmp(i7); - r0 = r_g0; - if(r0 !=0) //_LBB791_36 -{ - r0 = _2E_str32678; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - strcmp(i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB791_35 -{ - r4 = heapU8[r3]; - r0 = 119; - r3 = 114; - r0 = r4 == r0; - r5 = r4 == r3; - r3 = r0 & 1; - r0 = r5 & 1; - if(r4 ==114) //_LBB791_39 -{ -__label__ = 36; -break _21; -} -else{ -__label__ = 38; -break _21; -} -} -} - r0 = 1; - r1 = 0; - r3 = r0; -__label__ = 38; -} -} -else{ -__label__ = 30; -} -} while(0); -if (__label__ == 30){ - r0 = 1; - r3 = r0; -__label__ = 36; -} -if (__label__ == 36){ - heap32[(g0)] = r2; - mandreel_opencloud(i7); - r1 = r_g0; - if(r1 ==-1) //_LBB791_41 -{ - r4 = 0; -break _17; -} -} - heap32[(g0)] = 284; - _Znwj(i7); - r4 = r_g0; - r5 = _ZTV10CFileCloud; - r6 = r4 >> 2; - r5 = (r5 + 8)|0; - r7 = 1; - heap32[(r6)] = r5; - heap8[r4+4] = r7; - heap32[(r6+4)] = 0; - heap32[(r6+6)] = 0; - heap32[(r6+2)] = r1; - heap8[r4+5] = r3; - heap8[r4+6] = r0; - heap32[(r6+5)] = 0; - r0 = (r4 + 28)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - strcpy(i7); - if(r1 ==0) //_LBB791_44 -{ - r0 = r3 & 255; - if(r0 ==0) //_LBB791_46 -{ -break _17; -} -else{ - r0 = r4 >> 2; - heap32[(r0+3)] = 131072; - heap32[(g0)] = 131072; - malloc(i7); - heap32[(r0+6)] = r_g0; -} -} -else{ - r3 = (r1 + 131072)|0; - r2 = r4 >> 2; - heap32[(r2+3)] = r3; - heap32[(g0)] = r3; - malloc(i7); - heap32[(r2+6)] = r_g0; - r3 = (r1 + 4)|0; - heap32[(g0)] = r3; - malloc(i7); - r3 = r_g0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r1; - mandreel_readcloud(i7); - r0 = heap32[(r2+3)]; - r5 = heap32[(r2+6)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r0; - _ZN12mandreel_b6410b64_decodeEPKcjPvj(i7); - r0 = r_g0; - heap32[(g0)] = r3; - free(i7); - heap32[(r2+2)] = r0; - heap32[(r2+5)] = r0; -} -} -else{ - r1 = r3; -_39: while(true){ - r4 = heapU8[r1]; - if(r4 ==0) //_LBB791_51 -{ -__label__ = 46; -break _39; -} -else{ - if(r4 ==87) //_LBB791_50 -{ -__label__ = 45; -break _39; -} -else{ - r1 = (r1 + 1)|0; - if(r4 !=119) //_LBB791_47 -{ -__label__ = 42; -} -else{ -__label__ = 45; -break _39; -} -} -} -} -switch(__label__ ){//multiple entries -case 46: - r0 = heapU8[sp+-2048]; - if(r0 !=47) //_LBB791_53 -{ - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - mandreel_fopen(i7); - r2 = r_g0; -} -else{ - r2 = (r2 + 1)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - mandreel_fopen(i7); - r2 = r_g0; -} - if(r2 ==0) //_LBB791_56 -{ - r0 = 0; - r_g0 = r0; - return; -} -else{ - heap32[(g0)] = 8; - r0 = _ZTV11CFileSystem; - _Znwj(i7); - r3 = r_g0 >> 2; - r0 = (r0 + 8)|0; - heap32[(r3)] = r0; - heap32[(r3+1)] = r2; - return; -} -break; -case 45: - r2 = _2E_str35681; - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r3; - printf(i7); - r2 = 0; - r_g0 = r2; - return; -break; -} -} -} -else{ - heap32[(g0)] = 0; - _Z30mandreel_fopen_enable_checkfatb(i7); - r0 = _2E_str31677; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - strcmp(i7); - r0 = r_g0; -_54: do { - if(r0 !=0) //_LBB791_15 -{ - r0 = _2E_str4651; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - strcmp(i7); - r0 = r_g0; - if(r0 ==0) //_LBB791_14 -{ -__label__ = 13; -} -else{ - r0 = _2E_str5652; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - strcmp(i7); - r0 = r_g0; - if(r0 !=0) //_LBB791_18 -{ - r0 = _2E_str32678; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - strcmp(i7); - r0 = r_g0; -if(!(r0 ==0)) //_LBB791_17 -{ - r3 = heapU8[r3]; - r0 = 119; - r1 = 114; - r0 = r3 == r0; - r4 = r3 == r1; - r1 = r0 & 1; - r0 = r4 & 1; - if(r3 ==114) //_LBB791_21 -{ -__label__ = 20; -break _54; -} -else{ - r3 = 0; -__label__ = 22; -break _54; -} -} -} - r0 = 1; - r3 = 0; - r1 = r0; -__label__ = 22; -} -} -else{ -__label__ = 13; -} -} while(0); -if (__label__ == 13){ - r0 = 1; - r1 = r0; -__label__ = 20; -} -if (__label__ == 20){ - heap32[(g0)] = r2; - mandreel_openls(i7); - r3 = r_g0; - if(r3 ==-1) //_LBB791_23 -{ - r4 = 0; -break _17; -} -} - heap32[(g0)] = 284; - _Znwj(i7); - r4 = r_g0; - r5 = _ZTV7CFileLS; - r6 = r4 >> 2; - r5 = (r5 + 8)|0; - r7 = 1; - heap32[(r6)] = r5; - heap8[r4+4] = r7; - heap32[(r6+4)] = 0; - heap32[(r6+6)] = 0; - heap32[(r6+2)] = r3; - heap8[r4+5] = r1; - heap8[r4+6] = r0; - heap32[(r6+5)] = 0; - r0 = (r4 + 28)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - strcpy(i7); - if(r3 ==0) //_LBB791_26 -{ - r0 = r1 & 255; -if(!(r0 ==0)) //_LBB791_28 -{ - r0 = r4 >> 2; - heap32[(r0+3)] = 131072; - heap32[(g0)] = 131072; - malloc(i7); - heap32[(r0+6)] = r_g0; -} -} -else{ - r1 = (r3 + 131072)|0; - r2 = r4 >> 2; - heap32[(r2+3)] = r1; - heap32[(g0)] = r1; - malloc(i7); - heap32[(r2+6)] = r_g0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r_g0; - heap32[(g0+2)] = r3; - mandreel_readls(i7); - heap32[(r2+5)] = r3; -} -} -} while(0); - heap32[(g0)] = 1; - _Z30mandreel_fopen_enable_checkfatb(i7); - r_g0 = r4; - return; -} - -function strtoul(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap8[r0]; - r2 = r1 << 2; - r3 = my_ctype; - r2 = (r2 + r3)|0; - r4 = heap32[(fp+1)]; - r2 = heapU8[r2+4]; - r2 = r2 & 8; - if(r2 ==0) //_LBB792_2 -{ - r2 = r0; -} -else{ - r2 = r0; -_4: while(true){ - r1 = heap8[r2+1]; - r5 = r1 << 2; - r5 = (r5 + r3)|0; - r2 = (r2 + 1)|0; - r5 = heapU8[r5+4]; - r5 = r5 & 8; - if(r5 !=0) //_LBB792_3 -{ -continue _4; -} -else{ -break _4; -} -} -} - r1 = r1 & 255; - if(r1 ==43) //_LBB792_8 -{ - r2 = (r2 + 1)|0; - r1 = 0; -} -else{ - if(r1 ==45) //_LBB792_7 -{ - r2 = (r2 + 1)|0; - r1 = 1; -} -else{ - r1 = 0; -} -} - r3 = 0; - r5 = r3; - r6 = r3; - r11 = -1; -_14: while(true){ - r8 = (r2 - r3)|0; - r7 = heapU8[r8]; - if(r7 ==0) //_LBB792_14 -{ -break _14; -} -else{ - if(uint(r7) uint(9)) //_LBB792_14 -{ -break _14; -} -else{ - r8 = r6 & 255; - r8 = (r8 * 10)|0; - r7 = (r7 + r8)|0; - r6 = r6 >>> 8; - r8 = r7 >>> 8; - r6 = (r6 * 10)|0; - r6 = (r8 + r6)|0; - r8 = 16777215; - r9 = 1; - r10 = r6 << 8; - r7 = r7 & 255; - r5 = uint(r6) > uint(r8) ? r9 : r5; - r6 = r10 | r7; - r3 = (r3 + -1)|0; -continue _14; -} -} -else{ -break _14; -} -} -} - if(r3 ==0) //_LBB792_16 -{ - _errno(i7); - r6 = 0; - r8 = r_g0 >> 2; - heap32[(r8)] = 22; - r8 = r0; -} -if(!(r4 ==0)) //_LBB792_19 -{ - r0 = r4 >> 2; - heap32[(r0)] = r8; -} - if(r5 ==0) //_LBB792_21 -{ - r0 = 0; - r0 = (r0 - r6)|0; - r0 = r1 == 0 ? r6 : r0; - r_g0 = r0; - return; -} -else{ - _errno(i7); - r1 = r_g0 >> 2; - heap32[(r1)] = 34; - r1 = -1; - r_g0 = r1; - return; -} -} - -function strtol(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap8[r0]; - r2 = r1 << 2; - r3 = my_ctype; - r2 = (r2 + r3)|0; - r4 = heap32[(fp+1)]; - r2 = heapU8[r2+4]; - r2 = r2 & 8; - if(r2 ==0) //_LBB793_2 -{ - r2 = r0; -} -else{ - r2 = r0; -_4: while(true){ - r1 = heap8[r2+1]; - r5 = r1 << 2; - r5 = (r5 + r3)|0; - r2 = (r2 + 1)|0; - r5 = heapU8[r5+4]; - r5 = r5 & 8; - if(r5 !=0) //_LBB793_3 -{ -continue _4; -} -else{ -break _4; -} -} -} - r1 = r1 & 255; - if(r1 ==45) //_LBB793_6 -{ - r1 = heap8[r2+1]; - r1 = r1 << 2; - r3 = (r1 + r3)|0; - r3 = heapU16[(r3+4)>>1]; - r3 = r3 & 263; - if(r3 ==0) //_LBB793_5 -{ -__label__ = 5; -} -else{ - r2 = (r2 + 1)|0; - r3 = -1; -__label__ = 8; -} -} -else{ -__label__ = 5; -} -if (__label__ == 5){ - r3 = 0; -} - heap32[(g0)] = r2; - heap32[(g0+1)] = r4; - strtoul(i7); - r1 = r_g0; -if(!(r4 ==0)) //_LBB793_11 -{ - r4 = r4 >> 2; - r5 = heap32[(r4)]; -if(!(r5 !=r2)) //_LBB793_11 -{ - heap32[(r4)] = r0; -} -} - if(r1 >-1) //_LBB793_16 -{ - r0 = 0; - r0 = (r0 - r1)|0; - r0 = r3 == 0 ? r1 : r0; - r_g0 = r0; - return; -} -else{ - _errno(i7); - r0 = r_g0; -if(!(r1 !=-2147483648)) //_LBB793_15 -{ -if(!(r3 ==0)) //_LBB793_15 -{ - r0 = r0 >> 2; - heap32[(r0)] = 0; - r_g0 = r1; - return; -} -} - r1 = r0 >> 2; - r0 = 2147483647; - r2 = -2147483648; - heap32[(r1)] = 34; - r1 = r3 == 0 ? r0 : r2; - r_g0 = r1; - return; -} -} - -function __floatundidf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = r0 | r1; - if(r2 ==0) //_LBB794_12 -{ - f0 = 0; - f_g0 = f0; - return; -} -else{ - r2 = r0 >>> 1; - r3 = r1 >>> 1; - r2 = r0 | r2; - r3 = r1 | r3; - r4 = r2 >>> 2; - r5 = r3 >>> 2; - r2 = r2 | r4; - r3 = r3 | r5; - r4 = r2 >>> 4; - r5 = r3 >>> 4; - r2 = r2 | r4; - r3 = r3 | r5; - r4 = r2 >>> 8; - r5 = r3 >>> 8; - r2 = r2 | r4; - r3 = r3 | r5; - r4 = r2 >>> 16; - r5 = r3 >>> 16; - r2 = r2 | r4; - r3 = r3 | r5; - r4 = r2 ^ -1; - r5 = 1431655765; - r6 = r3 ^ -1; - r4 = r4 >>> 1; - r6 = r6 >>> 1; - r2 = r5 & (~r2); - r4 = r4 & 1431655765; - r2 = (r2 + r4)|0; - r3 = r5 & (~r3); - r4 = r6 & 1431655765; - r3 = (r3 + r4)|0; - r4 = r2 >>> 2; - r5 = r3 >>> 2; - r2 = r2 & 858993459; - r4 = r4 & 858993459; - r2 = (r2 + r4)|0; - r3 = r3 & 858993459; - r4 = r5 & 858993459; - r3 = (r3 + r4)|0; - r4 = r2 >>> 4; - r5 = r3 >>> 4; - r2 = r2 & 252645135; - r4 = r4 & 252645135; - r2 = (r2 + r4)|0; - r3 = r3 & 252645135; - r4 = r5 & 252645135; - r3 = (r3 + r4)|0; - r4 = r2 >>> 8; - r5 = r3 >>> 8; - r2 = r2 & 16711935; - r4 = r4 & 16711935; - r2 = (r2 + r4)|0; - r3 = r3 & 16711935; - r4 = r5 & 16711935; - r3 = (r3 + r4)|0; - r4 = r2 & 65535; - r2 = r2 >>> 16; - r2 = (r4 + r2)|0; - r4 = r3 & 65535; - r3 = r3 >>> 16; - r3 = (r4 + r3)|0; - r2 = (r2 + 32)|0; - r4 = 64; - r2 = r1 != 0 ? r3 : r2; - r3 = 63; - r4 = (r4 - r2)|0; - r2 = (r3 - r2)|0; - if(r4 <54) //_LBB794_10 -{ - r3 = 53; - r3 = (r3 - r4)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r3; - __ashldi3(i7); - r3 = r_g0; - r1 = r_g1; -} -else{ - if(r4 ==54) //_LBB794_5 -{ - r1 = r1 << 1; - r3 = r0 >>> 31; - r0 = r0 << 1; - r1 = r1 | r3; -} -else{ - if(r4 !=55) //_LBB794_6 -{ - r3 = (r4 + -55)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r3; - __lshrdi3(i7); - r3 = r_g0; - r5 = r_g1; - r6 = 119; - r6 = (r6 - r4)|0; - heap32[(g0)] = -1; - heap32[(g0+1)] = -1; - heap32[(g0+2)] = r6; - __lshrdi3(i7); - r0 = r_g0 & r0; - r1 = r_g1 & r1; - r0 = r0 | r1; - r1 = 0; - r0 = r0 != r1; - r0 = r0 & 1; - r0 = r0 | r3; - r1 = r5; -} -} - r3 = r0 >>> 2; - r3 = r3 & 1; - r0 = r3 | r0; - r3 = (r0 + 1)|0; - r5 = 1; - r6 = 0; - r0 = uint(r3) < uint(r0) ? r5 : r6; - r0 = r3 == 0 ? r5 : r0; - r0 = (r1 + r0)|0; - r1 = r0 >>> 2; - r5 = r1 & 2097152; - if(r5 !=0) //_LBB794_9 -{ - r1 = r3 >>> 3; - r2 = r0 << 29; - r3 = r1 | r2; - r1 = r0 >>> 3; - r2 = r4; -} -else{ - r3 = r3 >>> 2; - r0 = r0 << 30; - r3 = r3 | r0; -} -} - r0 = r2 << 20; - r2 = sp + -8; - r1 = r1 & 1048575; - r0 = (r0 + 1072693248)|0; - r2 = r2 >> 2; - r0 = r1 | r0; - heap32[(fp+-2)] = r3; - heap32[(r2+1)] = r0; - f0 = llvm_readDouble((sp+-8)); - f_g0 = f0; - return; -} -} - -function __udivmoddi4(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp+4)]; - r2 = heap32[(fp)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+3)]; -_1: do { - if(r0 !=0) //_LBB795_10 -{ -_3: do { - if(r3 !=0) //_LBB795_27 -{ - if(r4 !=0) //_LBB795_34 -{ - r5 = r4 >>> 1; - r6 = r0 >>> 1; - r5 = r4 | r5; - r6 = r0 | r6; - r7 = r5 >>> 2; - r9 = r6 >>> 2; - r5 = r5 | r7; - r6 = r6 | r9; - r7 = r5 >>> 4; - r9 = r6 >>> 4; - r5 = r5 | r7; - r6 = r6 | r9; - r7 = r5 >>> 8; - r9 = r6 >>> 8; - r5 = r5 | r7; - r6 = r6 | r9; - r7 = r5 >>> 16; - r9 = r6 >>> 16; - r5 = r5 | r7; - r6 = r6 | r9; - r7 = r5 ^ -1; - r9 = r6 ^ -1; - r8 = 1431655765; - r7 = r7 >>> 1; - r9 = r9 >>> 1; - r5 = r8 & (~r5); - r7 = r7 & 1431655765; - r6 = r8 & (~r6); - r9 = r9 & 1431655765; - r5 = (r5 + r7)|0; - r6 = (r6 + r9)|0; - r7 = r5 >>> 2; - r9 = r6 >>> 2; - r5 = r5 & 858993459; - r7 = r7 & 858993459; - r6 = r6 & 858993459; - r9 = r9 & 858993459; - r5 = (r5 + r7)|0; - r6 = (r6 + r9)|0; - r7 = r5 >>> 4; - r9 = r6 >>> 4; - r5 = r5 & 252645135; - r7 = r7 & 252645135; - r6 = r6 & 252645135; - r9 = r9 & 252645135; - r5 = (r5 + r7)|0; - r6 = (r6 + r9)|0; - r7 = r5 >>> 8; - r9 = r6 >>> 8; - r5 = r5 & 16711935; - r7 = r7 & 16711935; - r6 = r6 & 16711935; - r9 = r9 & 16711935; - r5 = (r5 + r7)|0; - r6 = (r6 + r9)|0; - r7 = r5 & 65535; - r5 = r5 >>> 16; - r9 = r6 & 65535; - r6 = r6 >>> 16; - r5 = (r7 + r5)|0; - r6 = (r9 + r6)|0; - r5 = (r5 - r6)|0; - if(uint(r5) >> r7; - r8 = r9 >> 31; - r10 = r0 >>> r7; - r6 = r6 & r8; - r0 = r0 << r5; - r9 = 0; - r2 = r2 << r5; - r5 = r6 | r0; - r6 = r10 & r8; -__label__ = 39; -break _3; -} -else{ - if(r1 ==0) //_LBB795_7 -{ -__label__ = 7; -break _1; -} -else{ - r5 = r1 >> 2; - heap32[(r5)] = r2; - heap32[(r5+1)] = r0; - r2 = 0; - r_g0 = r2; - r_g1 = r2; - return; -} -} -} -else{ - r5 = (r3 + -1)|0; - r6 = r5 & r3; - if(r6 !=0) //_LBB795_38 -{ - r5 = r3 >>> 1; - r6 = r0 >>> 1; - r5 = r3 | r5; - r6 = r0 | r6; - r7 = r5 >>> 2; - r9 = r6 >>> 2; - r5 = r5 | r7; - r6 = r6 | r9; - r7 = r5 >>> 4; - r9 = r6 >>> 4; - r5 = r5 | r7; - r6 = r6 | r9; - r7 = r5 >>> 8; - r9 = r6 >>> 8; - r5 = r5 | r7; - r6 = r6 | r9; - r7 = r5 >>> 16; - r9 = r6 >>> 16; - r5 = r5 | r7; - r6 = r6 | r9; - r7 = r5 ^ -1; - r9 = r6 ^ -1; - r8 = 1431655765; - r7 = r7 >>> 1; - r9 = r9 >>> 1; - r5 = r8 & (~r5); - r7 = r7 & 1431655765; - r6 = r8 & (~r6); - r9 = r9 & 1431655765; - r5 = (r5 + r7)|0; - r6 = (r6 + r9)|0; - r7 = r5 >>> 2; - r9 = r6 >>> 2; - r5 = r5 & 858993459; - r7 = r7 & 858993459; - r6 = r6 & 858993459; - r9 = r9 & 858993459; - r5 = (r5 + r7)|0; - r6 = (r6 + r9)|0; - r7 = r5 >>> 4; - r9 = r6 >>> 4; - r5 = r5 & 252645135; - r7 = r7 & 252645135; - r6 = r6 & 252645135; - r9 = r9 & 252645135; - r5 = (r5 + r7)|0; - r6 = (r6 + r9)|0; - r7 = r5 >>> 8; - r9 = r6 >>> 8; - r5 = r5 & 16711935; - r7 = r7 & 16711935; - r6 = r6 & 16711935; - r9 = r9 & 16711935; - r5 = (r5 + r7)|0; - r6 = (r6 + r9)|0; - r7 = r5 & 65535; - r5 = r5 >>> 16; - r9 = r6 & 65535; - r6 = r6 >>> 16; - r5 = (r7 + r5)|0; - r6 = (r9 + r6)|0; - r5 = (r5 - r6)|0; - r6 = 31; - r7 = (r5 + 33)|0; - r9 = r5 ^ -1; - r8 = (r5 + 1)|0; - r6 = (r6 - r5)|0; - r10 = -2; - r10 = (r10 - r5)|0; - r11 = r0 << r6; - r12 = r2 >>> r8; - r13 = r2 >>> r7; - r14 = r0 << r9; - r11 = r11 | r12; - r12 = r9 >> 31; - r9 = r2 << r9; - r5 = r5 >> 31; - r13 = r13 | r14; - r14 = r8 >> 31; - r8 = r0 >>> r8; - r10 = r10 >> 31; - r2 = r2 << r6; - r0 = r0 >>> r7; - r6 = r11 & r12; - r5 = r9 & r5; - r11 = r13 & r14; - r8 = r8 & r10; - r9 = r2 & r12; - r2 = r6 | r5; - r5 = r11 | r8; - r6 = r0 & r14; - if(r7 ==0) //_LBB795_40 -{ - r0 = 0; - r3 = r0; -__label__ = 42; -break _3; -} -else{ -__label__ = 39; -break _3; -} -} -else{ -if(!(r1 ==0)) //_LBB795_31 -{ - r1 = r1 >> 2; - r4 = r5 & r2; - heap32[(r1)] = r4; - heap32[(r1+1)] = 0; -} - if(r3 !=1) //_LBB795_33 -{ - r1 = r5 & (~r3); - r3 = r1 >>> 1; - r1 = r1 & 1431655765; - r3 = r3 & 1431655765; - r1 = (r1 + r3)|0; - r3 = r1 >>> 2; - r1 = r1 & 858993459; - r3 = r3 & 858993459; - r1 = (r1 + r3)|0; - r3 = r1 >>> 4; - r1 = r1 & 252645135; - r3 = r3 & 252645135; - r1 = (r1 + r3)|0; - r3 = r1 >>> 8; - r1 = r1 & 16711935; - r3 = r3 & 16711935; - r1 = (r1 + r3)|0; - r3 = r1 & 65535; - r1 = r1 >>> 16; - r1 = (r3 + r1)|0; - r3 = 32; - r3 = (r3 - r1)|0; - r3 = r0 << r3; - r2 = r2 >>> r1; - r2 = r3 | r2; - r0 = r0 >>> r1; -__label__ = 44; -break _1; -} -else{ -__label__ = 44; -break _1; -} -} -} -} -else{ - if(r4 !=0) //_LBB795_15 -{ - if(r2 !=0) //_LBB795_19 -{ - r5 = (r4 + -1)|0; - r6 = r5 & r4; - if(r6 !=0) //_LBB795_23 -{ - r5 = r4 >>> 1; - r6 = r0 >>> 1; - r5 = r4 | r5; - r6 = r0 | r6; - r7 = r5 >>> 2; - r8 = r6 >>> 2; - r5 = r5 | r7; - r6 = r6 | r8; - r7 = r5 >>> 4; - r8 = r6 >>> 4; - r5 = r5 | r7; - r6 = r6 | r8; - r7 = r5 >>> 8; - r8 = r6 >>> 8; - r5 = r5 | r7; - r6 = r6 | r8; - r7 = r5 >>> 16; - r8 = r6 >>> 16; - r5 = r5 | r7; - r6 = r6 | r8; - r7 = r5 ^ -1; - r8 = r6 ^ -1; - r9 = 1431655765; - r7 = r7 >>> 1; - r8 = r8 >>> 1; - r5 = r9 & (~r5); - r7 = r7 & 1431655765; - r6 = r9 & (~r6); - r8 = r8 & 1431655765; - r5 = (r5 + r7)|0; - r6 = (r6 + r8)|0; - r7 = r5 >>> 2; - r8 = r6 >>> 2; - r5 = r5 & 858993459; - r7 = r7 & 858993459; - r6 = r6 & 858993459; - r8 = r8 & 858993459; - r5 = (r5 + r7)|0; - r6 = (r6 + r8)|0; - r7 = r5 >>> 4; - r8 = r6 >>> 4; - r5 = r5 & 252645135; - r7 = r7 & 252645135; - r6 = r6 & 252645135; - r8 = r8 & 252645135; - r5 = (r5 + r7)|0; - r6 = (r6 + r8)|0; - r7 = r5 >>> 8; - r8 = r6 >>> 8; - r5 = r5 & 16711935; - r7 = r7 & 16711935; - r6 = r6 & 16711935; - r8 = r8 & 16711935; - r5 = (r5 + r7)|0; - r6 = (r6 + r8)|0; - r7 = r5 & 65535; - r5 = r5 >>> 16; - r8 = r6 & 65535; - r6 = r6 >>> 16; - r5 = (r7 + r5)|0; - r6 = (r8 + r6)|0; - r5 = (r5 - r6)|0; - if(uint(r5) >> r7; - r9 = 0; - r2 = r2 << r5; - r5 = r6 | r8; - r6 = r0 >>> r7; -__label__ = 39; -break _3; -} -else{ - if(r1 ==0) //_LBB795_7 -{ -__label__ = 7; -break _1; -} -else{ - r1 = r1 >> 2; - heap32[(r1)] = r2; - heap32[(r1+1)] = r0; -__label__ = 9; -break _1; -} -} -} -else{ -if(!(r1 ==0)) //_LBB795_22 -{ - r1 = r1 >> 2; - r3 = r5 & r0; - heap32[(r1)] = r2; - heap32[(r1+1)] = r3; -} - r1 = (r4 + -1)|0; - r1 = r1 & (~r4); - r2 = r1 >>> 1; - r1 = r1 & 1431655765; - r2 = r2 & 1431655765; - r1 = (r1 + r2)|0; - r2 = r1 >>> 2; - r1 = r1 & 858993459; - r2 = r2 & 858993459; - r1 = (r1 + r2)|0; - r2 = r1 >>> 4; - r1 = r1 & 252645135; - r2 = r2 & 252645135; - r1 = (r1 + r2)|0; - r2 = r1 >>> 8; - r1 = r1 & 16711935; - r2 = r2 & 16711935; - r1 = (r1 + r2)|0; - r2 = r1 & 65535; - r1 = r1 >>> 16; - r1 = (r2 + r1)|0; - r0 = r0 >>> r1; -__label__ = 5; -break _1; -} -} -else{ -if(!(r1 ==0)) //_LBB795_18 -{ - r1 = r1 >> 2; - r2 = Math.floor(uint(r0) % uint(r4)); - heap32[(r1)] = 0; - heap32[(r1+1)] = r2; -} - r0 = Math.floor(uint(r0) /uint(r4)); -__label__ = 5; -break _1; -} -} -else{ -if(!(r1 ==0)) //_LBB795_14 -{ - r1 = r1 >> 2; - r2 = Math.floor(uint(r0) % uint(r3)); - heap32[(r1)] = r2; - heap32[(r1+1)] = 0; -} - r0 = Math.floor(uint(r0) /uint(r3)); -__label__ = 5; -break _1; -} -} -} while(0); -if (__label__ == 39){ - r8 = (r3 + -1)|0; - r10 = 0; - r11 = 1; - r0 = uint(r8) < uint(r3) ? r11 : r10; - r0 = r3 != 0 ? r11 : r0; - r0 = (r4 + r0)|0; - r12 = (r0 + -1)|0; - r13 = r10; -_45: while(true){ - r0 = r5 << 1; - r14 = r2 >>> 31; - r6 = r6 << 1; - r5 = r5 >>> 31; - r14 = r0 | r14; - r0 = r6 | r5; - r5 = (r12 - r0)|0; - r6 = uint(r8) < uint(r14) ? r11 : r10; - r5 = (r5 - r6)|0; - r5 = r5 >> 31; - r6 = r5 & r3; - r15 = r5 & r4; - r16 = r9 << 1; - r2 = r2 << 1; - r17 = r9 >>> 31; - r15 = (r0 - r15)|0; - r18 = uint(r14) < uint(r6) ? r11 : r10; - r7 = (r7 + -1)|0; - r0 = r5 & 1; - r9 = r13 | r16; - r2 = r2 | r17; - r5 = (r14 - r6)|0; - r6 = (r15 - r18)|0; - r13 = r0; -if(!(r7 !=0)) //_LBB795_42 -{ -break _45; -} -} - r3 = 0; -} - r2 = r2 << 1; - r4 = r9 >>> 31; - r7 = r9 << 1; - r4 = r2 | r4; - r2 = r0 | r7; - r0 = r3 | r4; - if(r1 !=0) //_LBB795_46 -{ - r1 = r1 >> 2; - heap32[(r1)] = r5; - heap32[(r1+1)] = r6; -__label__ = 44; -break _1; -} -else{ -__label__ = 44; -break _1; -} -} -else{ - if(r4 !=0) //_LBB795_6 -{ - if(r1 !=0) //_LBB795_8 -{ - r0 = r1 >> 2; - heap32[(r0)] = r2; - heap32[(r0+1)] = 0; -__label__ = 9; -break _1; -} -else{ -__label__ = 7; -break _1; -} -} -else{ -if(!(r1 ==0)) //_LBB795_4 -{ - r0 = r1 >> 2; - r1 = Math.floor(uint(r2) % uint(r3)); - heap32[(r0)] = r1; - heap32[(r0+1)] = 0; -} - r0 = Math.floor(uint(r2) /uint(r3)); -__label__ = 5; -} -} -} while(0); -switch(__label__ ){//multiple entries -case 7: - r2 = 0; - r0 = r2; -break; -case 9: - r0 = 0; - r_g0 = r0; - r_g1 = r0; - return; -break; -case 5: - r1 = 0; - r_g0 = r0; - r_g1 = r1; - return; -break; -} - r_g0 = r2; - r_g1 = r0; - return; -} - -function __umoddi3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = sp + -8; - r1 = heap32[(fp)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(fp+3)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = r4; - heap32[(g0+4)] = r0; - __udivmoddi4(i7); - r0 = r0 >> 2; - r1 = heap32[(fp+-2)]; - r0 = heap32[(r0+1)]; - r_g0 = r1; - r_g1 = r0; - return; -} - -function __moddi3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = heap32[(fp+3)]; - r1 = heap32[(fp+1)]; - r2 = r0 >> 31; - r3 = heap32[(fp+2)]; - r4 = r1 >> 31; - r5 = heap32[(fp)]; - r1 = r4 ^ r1; - r5 = r4 ^ r5; - r0 = r2 ^ r0; - r3 = r2 ^ r3; - r6 = 1; - r7 = 0; - r1 = (r1 - r4)|0; - r8 = uint(r5) < uint(r4) ? r6 : r7; - r0 = (r0 - r2)|0; - r9 = uint(r3) < uint(r2) ? r6 : r7; - r10 = sp + -8; - r5 = (r5 - r4)|0; - r1 = (r1 - r8)|0; - r2 = (r3 - r2)|0; - r0 = (r0 - r9)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r0; - heap32[(g0+4)] = r10; - __udivmoddi4(i7); - r0 = r10 >> 2; - r0 = heap32[(r0+1)]; - r1 = heap32[(fp+-2)]; - r1 = r1 ^ r4; - r0 = r0 ^ r4; - r0 = (r0 - r4)|0; - r2 = uint(r1) < uint(r4) ? r6 : r7; - r1 = (r1 - r4)|0; - r0 = (r0 - r2)|0; - r_g0 = r1; - r_g1 = r0; - return; -} - -function __divdi3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp+3)]; - r1 = heap32[(fp+1)]; - r2 = r1 >> 31; - r3 = heap32[(fp)]; - r4 = r0 >> 31; - r5 = heap32[(fp+2)]; - r6 = r2 ^ r1; - r3 = r2 ^ r3; - r7 = r4 ^ r0; - r5 = r4 ^ r5; - r8 = 1; - r9 = 0; - r6 = (r6 - r2)|0; - r10 = uint(r3) < uint(r2) ? r8 : r9; - r7 = (r7 - r4)|0; - r11 = uint(r5) < uint(r4) ? r8 : r9; - r2 = (r3 - r2)|0; - r3 = (r6 - r10)|0; - r4 = (r5 - r4)|0; - r5 = (r7 - r11)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - heap32[(g0+4)] = 0; - r0 = r0 ^ r1; - __udivmoddi4(i7); - r0 = r0 >> 31; - r1 = r_g0 ^ r0; - r2 = r_g1 ^ r0; - r2 = (r2 - r0)|0; - r3 = uint(r1) < uint(r0) ? r8 : r9; - r0 = (r1 - r0)|0; - r1 = (r2 - r3)|0; - r_g0 = r0; - r_g1 = r1; - return; -} - -function __udivdi3(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = 0; - __udivmoddi4(i7); - return; -} - -function sscanf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var f0; - var f1; - var f2; - var f3; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = (sp + 4)|0; - r1 = heap32[(fp)]; - heap32[(fp+-5)] = r0; - heap32[(fp+-4)] = r1; - heap32[(fp+-1)] = r0; - r0 = sp + -16; - heap32[(g0)] = r0; - r1 = 1; - r2 = 0; - r3 = _2E_str7136; - sgetc(i7); - r4 = r_g0; - f3 = 10; - r20 = 255; -_1: while(true){ - r5 = heapU8[r3]; - if(r5 !=0) //_LBB800_1 -{ - r5 = r5 << 24; - r5 = r5 >> 24; - r6 = (r3 + 1)|0; - if(r5 >31) //_LBB800_4 -{ - if(r5 ==32) //_LBB800_7 -{ -__label__ = 7; -} -else{ - if(r5 ==37) //_LBB800_8 -{ - r5 = -1; - r7 = 0; - r8 = r7; - r9 = r7; - r10 = r7; - r11 = r7; -_8: while(true){ - r12 = heap8[r6]; -if(!(r12 ==110)) //_LBB800_17 -{ - if(r4 ==-1) //_LBB800_187 -{ -__label__ = 168; -break _1; -} -} - if(r12 >103) //_LBB800_31 -{ - if(r12 >111) //_LBB800_38 -{ - if(r12 >114) //_LBB800_41 -{ -__label__ = 40; -break _8; -} -else{ - if(r12 ==112) //_LBB800_59 -{ -__label__ = 52; -break _8; -} -else{ -if(!(r12 ==113)) //_LBB800_45 -{ -__label__ = 168; -break _1; -} -} -} -} -else{ - if(r12 >107) //_LBB800_35 -{ - if(r12 ==108) //_LBB800_55 -{ - r3 = 1; - r10 = r10 & 255; - r11 = r10 == 0 ? r11 : r3; - r6 = (r6 + 1)|0; - r10 = r3; -continue _8; -} -else{ -__label__ = 35; -break _8; -} -} -else{ - if(r12 ==104) //_LBB800_53 -{ - r6 = (r6 + 1)|0; - r9 = 1; -continue _8; -} -else{ -__label__ = 33; -break _8; -} -} -} -} -else{ - if(r12 >75) //_LBB800_25 -{ - if(r12 >98) //_LBB800_28 -{ -__label__ = 27; -break _8; -} -else{ -if(!(r12 ==76)) //_LBB800_45 -{ -__label__ = 26; -break _8; -} -} -} -else{ - if(r12 >41) //_LBB800_22 -{ - if(r12 ==42) //_LBB800_46 -{ - r6 = (r6 + 1)|0; - r8 = 1; -continue _8; -} -else{ - r5 = (r12 + -48)|0; - if(uint(r5) > 2; - r3 = heap32[(r3)]; - heap32[(fp+-2)] = r3; -} - r3 = (r6 + 1)|0; - r6 = r4 << 2; - r7 = my_ctype; - r6 = (r6 + r7)|0; - r6 = heapU8[r6+4]; - r6 = r6 & 8; -_43: do { - if(r6 ==0) //_LBB800_169 -{ - r6 = r4; -} -else{ -_45: while(true){ - heap32[(g0)] = r0; - sgetc(i7); - r6 = r_g0; - r4 = r6 << 2; - r4 = (r4 + r7)|0; - r1 = (r1 + 1)|0; - r4 = heapU8[r4+4]; - r4 = r4 & 8; -if(!(r4 !=0)) //_LBB800_170 -{ -break _43; -} -} -} -} while(0); - r4 = -1; - if(r6 ==-1) //_LBB800_186 -{ -continue _1; -} -else{ - r4 = r6; -_49: while(true){ - if(r4 ==-1) //_LBB800_180 -{ -break _49; -} -else{ - if(r5 ==0) //_LBB800_180 -{ -break _49; -} -else{ - r6 = r4 << 2; - r6 = (r6 + r7)|0; - r6 = heapU8[r6+4]; - r6 = r6 & 8; - if(r6 ==0) //_LBB800_173 -{ -if(!(r8 !=0)) //_LBB800_175 -{ - r6 = heap32[(fp+-2)]; - heap8[r6] = r4; -} - if(r4 ==0) //_LBB800_180 -{ -break _49; -} -else{ - r4 = heap32[(fp+-2)]; - r4 = (r4 + 1)|0; - heap32[(fp+-2)] = r4; - heap32[(g0)] = r0; - r1 = (r1 + 1)|0; - r5 = (r5 + -1)|0; - sgetc(i7); - r4 = r_g0; -} -} -else{ -break _49; -} -} -} -} - if(r8 !=0) //_LBB800_186 -{ -continue _1; -} -else{ - r2 = (r2 + 1)|0; - r5 = heap32[(fp+-2)]; - r6 = 0; - heap8[r5] = r6; -continue _1; -} -} -} -else{ - if(r12 ==117) //_LBB800_60 -{ -__label__ = 53; -break _36; -} -else{ - if(r12 ==120) //_LBB800_59 -{ -__label__ = 52; -break _36; -} -else{ -__label__ = 168; -break _1; -} -} -} -break; -case 35: - if(r12 ==110) //_LBB800_182 -{ - r3 = (r6 + 1)|0; - r5 = r8 & 255; - if(r5 !=0) //_LBB800_186 -{ -continue _1; -} -else{ - r5 = sp + -4; - heap32[(g0)] = r5; - heap32[(g0+1)] = 4; - my_arg_test(i7); - r5 = r_g0 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r6 = (r1 + -1)|0; - heap32[(r5)] = r6; -continue _1; -} -} -else{ - if(r12 ==111) //_LBB800_44 -{ - r13 = 8; -__label__ = 55; -break _36; -} -else{ -__label__ = 168; -break _1; -} -} -break; -case 33: - if(r12 ==105) //_LBB800_60 -{ -__label__ = 53; -break _36; -} -else{ -__label__ = 168; -break _1; -} -break; -case 27: - if(r12 ==99) //_LBB800_155 -{ - r3 = (r6 + 1)|0; - r6 = r8 & 255; - if(r6 ==0) //_LBB800_157 -{ - r8 = sp + -4; - heap32[(g0)] = r8; - heap32[(g0+1)] = 4; - my_arg_test(i7); - r8 = r_g0 >> 2; - r8 = heap32[(r8)]; - r2 = (r2 + 1)|0; - heap32[(fp+-2)] = r8; -} - r8 = r7 & 255; - r7 = 1; - r5 = r8 == 0 ? r7 : r5; - if(r5 ==0) //_LBB800_186 -{ -continue _1; -} -else{ - if(r4 ==-1) //_LBB800_186 -{ -continue _1; -} -else{ - r5 = (r5 + -1)|0; -_77: while(true){ -if(!(r6 !=0)) //_LBB800_163 -{ - r8 = heap32[(fp+-2)]; - r7 = (r8 + 1)|0; - heap8[r8] = r4; - heap32[(fp+-2)] = r7; -} - heap32[(g0)] = r0; - r1 = (r1 + 1)|0; - sgetc(i7); - r4 = r_g0; - if(r5 ==0) //_LBB800_186 -{ -continue _1; -} -else{ - r5 = (r5 + -1)|0; - if(r4 !=-1) //_LBB800_161 -{ -continue _77; -} -else{ -continue _1; -} -} -} -} -} -} -else{ - if(r12 ==100) //_LBB800_61 -{ - r13 = 10; -__label__ = 55; -break _36; -} -else{ - r5 = (r12 + -101)|0; - if(uint(r5) uint(9)) //_LBB800_120 -{ - f0 = 0; - r6 = r1; -} -else{ - f0 = 0; - r6 = r1; -_111: while(true){ - r4 = (r4 + -48)|0; - f1 = 10; - heap32[(g0)] = r0; - f0 = f0*f1; - f1 = r4; //fitod r4, f1 - sgetc(i7); - r4 = r_g0; - f0 = f0+f1; - r6 = (r6 + 1)|0; - r7 = (r4 + -48)|0; -if(!(uint(r7) > 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - f0 = f0; //fdtos f0, f0 - heapFloat[(r5)] = f0; -} -else{ - r5 = r5 >> 2; - r5 = heap32[(r5)]; - llvm_writeDouble((r5),f0); -} - r2 = (r2 + 1)|0; -continue _1; -} -} -break; -} - r3 = r4 << 2; - r14 = my_ctype; - r3 = (r3 + r14)|0; - r15 = heapU8[r3+4]; - r3 = (r6 + 1)|0; - r6 = r15 & 8; -_155: do { -if(!(r6 ==0)) //_LBB800_64 -{ -_156: while(true){ - heap32[(g0)] = r0; - sgetc(i7); - r4 = r_g0; - r6 = r4 << 2; - r6 = (r6 + r14)|0; - r1 = (r1 + 1)|0; - r6 = heapU8[r6+4]; - r6 = r6 & 8; -if(!(r6 !=0)) //_LBB800_65 -{ -break _155; -} -} -} -} while(0); - if(r4 ==45) //_LBB800_68 -{ - heap32[(g0)] = r0; - r1 = (r1 + 1)|0; - r6 = 1; - sgetc(i7); - r4 = r_g0; -} -else{ - r6 = 0; -} - if(r4 ==43) //_LBB800_71 -{ - heap32[(g0)] = r0; - r14 = (r1 + 1)|0; - sgetc(i7); - r4 = r_g0; -} -else{ - r14 = r1; -} - if(r4 !=-1) //_LBB800_74 -{ - r7 = r7 & 255; -_168: do { - if(r7 ==0) //_LBB800_76 -{ - if(r13 !=16) //_LBB800_79 -{ -__label__ = 68; -} -else{ - if(r4 !=48) //_LBB800_79 -{ -__label__ = 68; -} -else{ -__label__ = 72; -} -} -_172: do { -if (__label__ == 68){ -if(!(r13 !=0)) //_LBB800_82 -{ - r7 = 48; - r7 = r4 != r7; -if(!(r7 != 0)) //_LBB800_82 -{ - r13 = 8; -break _172; -} -} - r7 = 10; - r13 = r13 != 0 ? r13 : r7; - r1 = r14; -break _168; -} -} while(0); - heap32[(g0)] = r0; - sgetc(i7); - r4 = r_g0; - r7 = r4 | 32; - if(r7 ==120) //_LBB800_85 -{ - heap32[(g0)] = r0; - r1 = (r14 + 2)|0; - r13 = 16; - sgetc(i7); - r4 = r_g0; -} -else{ - r1 = (r14 + 1)|0; -} -} -else{ - r1 = r14; -} -} while(0); - r7 = 0; - r15 = r7; - r16 = r7; -_184: while(true){ - if(r5 ==0) //_LBB800_97 -{ -break _184; -} -else{ - if(r4 !=-1) //_LBB800_87 -{ - r17 = r4 & 255; - r18 = r17 | 32; - if(uint(r18) =uint(r13)) //_LBB800_97 -{ -break _184; -} -else{ - heap32[(g0)] = r15; - heap32[(g0+1)] = r16; - heap32[(g0+2)] = r13; - heap32[(g0+3)] = r7; - __muldi3(i7); - r4 = r_g0; - r18 = r_g1; - r15 = uint(r4) >= uint(r15); - r19 = uint(r18) >= uint(r16); - r15 = r18 == r16 ? r15 : r19; - if(r15 != 0) //_LBB800_93 -{ - r15 = (r17 + r4)|0; - r16 = 1; - r17 = uint(r15) < uint(r17) ? r16 : r7; - r4 = uint(r15) < uint(r4) ? r16 : r17; - r16 = (r18 + r4)|0; -} -else{ - r15 = -1; - r16 = r15; -} - heap32[(g0)] = r0; - r1 = (r1 + 1)|0; - r5 = (r5 + -1)|0; - sgetc(i7); - r4 = r_g0; -} -} -else{ -break _184; -} -} -} - if(r14 ==r1) //_LBB800_73 -{ -__label__ = 172; -break _1; -} -else{ - r5 = r12 | 32; -if(!(uint(r5) >uint(111))) //_LBB800_100 -{ - if(r16 >-1) //_LBB800_101 -{ - r5 = 1; - r12 = (r7 - r16)|0; - r5 = r15 != 0 ? r5 : r7; - r7 = (r7 - r15)|0; - r5 = (r12 - r5)|0; - r15 = r6 != 0 ? r7 : r15; - r16 = r6 != 0 ? r5 : r16; -} -} - r5 = r8 & 255; - if(r5 !=0) //_LBB800_186 -{ -continue _1; -} -else{ - r5 = r11 & 255; - if(r5 ==0) //_LBB800_105 -{ - r5 = r10 & 255; - if(r5 ==0) //_LBB800_107 -{ - r5 = sp + -4; - heap32[(g0)] = r5; - heap32[(g0+1)] = 4; - my_arg_test(i7); - r5 = r_g0; - r7 = r9 & 255; - if(r7 ==0) //_LBB800_109 -{ - r5 = r5 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - heap32[(r5)] = r15; -} -else{ - r5 = r5 >> 2; - r5 = heap32[(r5)]; - heap16[(r5)>>1] = r15; -} -} -else{ - r5 = sp + -4; - heap32[(g0)] = r5; - heap32[(g0+1)] = 4; - my_arg_test(i7); - r5 = r_g0 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - heap32[(r5)] = r15; -} -} -else{ - r5 = sp + -4; - heap32[(g0)] = r5; - heap32[(g0+1)] = 4; - my_arg_test(i7); - r5 = r_g0 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - heap32[(r5)] = r15; - heap32[(r5+1)] = r16; -} - r5 = uint(r14) < uint(r1); - r5 = r5 & 1; - r2 = (r5 + r2)|0; -continue _1; -} -} -} -else{ -__label__ = 172; -break _1; -} -} -else{ -__label__ = 165; -} -} -} -else{ - if(r5 ==0) //_LBB800_6 -{ -__label__ = 6; -break _1; -} -else{ - r7 = (r5 + -9)|0; - if(uint(r7) > 24; - r5 = r5 << 2; - r6 = my_ctype; - r5 = (r5 + r6)|0; - r5 = heapU8[r5+4]; - r5 = r5 & 8; - if(r5 ==0) //_LBB800_13 -{ -break _218; -} -else{ - r3 = (r3 + 1)|0; -} -} -} - r6 = r4 << 2; - r5 = my_ctype; - r6 = (r6 + r5)|0; - r6 = heapU8[r6+4]; - r6 = r6 & 8; - if(r6 ==0) //_LBB800_186 -{ -continue _1; -} -else{ -__label__ = 12; //SET chanka -_223: while(true){ - heap32[(g0)] = r0; - sgetc(i7); - r4 = r_g0; - r6 = r4 << 2; - r6 = (r6 + r5)|0; - r1 = (r1 + 1)|0; - r6 = heapU8[r6+4]; - r6 = r6 & 8; - if(r6 ==0) //_LBB800_186 -{ -continue _1; -} -} -} -break; -case 165: - r3 = r4 & 255; - if(r3 !=r5) //_LBB800_187 -{ -__label__ = 168; -break _1; -} -else{ - heap32[(g0)] = r0; - r1 = (r1 + 1)|0; - sgetc(i7); - r4 = r_g0; - r3 = r6; -continue _1; -} -break; -} -} -else{ -__label__ = 168; -break _1; -} -} -_227: do { -switch(__label__ ){//multiple entries -case 168: -if(!(r4 >-1)) //_LBB800_190 -{ -if(!(r2 !=0)) //_LBB800_190 -{ - r2 = -1; -break _227; -} -} - heap32[(g0)] = r4; - heap32[(g0+1)] = r0; - sputc(i7); -break; -case 6: - r2 = 0; -break; -} -} while(0); - r_g0 = r2; - return; -} - -function __v_printf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; - var f0; - var f1; -var __label__ = 0; - i7 = sp + -184;var g0 = i7>>2; // save stack - r0 = sp + -136; - r1 = heap32[(fp+2)]; - r2 = heap32[(fp)]; - r3 = heap32[(fp+1)]; - r0 = (r0 + 1)|0; - heap32[(fp+-1)] = r1; - heap32[(fp+-2)] = 0; -_1: while(true){ - r4 = heapU8[r3]; - if(r4 ==0) //_LBB801_209 -{ -__label__ = 197; -break _1; -} -else{ - r1 = 0; - r5 = r4; -_4: while(true){ - r5 = r5 & 255; - if(r5 ==0) //_LBB801_4 -{ -break _4; -} -else{ - if(r5 !=37) //_LBB801_1 -{ - r5 = (r3 - r1)|0; - r5 = heapU8[r5+1]; - r1 = (r1 + -1)|0; -} -else{ -break _4; -} -} -} - r5 = 0; - if(r1 !=0) //_LBB801_6 -{ - r4 = (r5 - r1)|0; - if(r4 <0) //_LBB801_210 -{ -__label__ = 198; -break _1; -} -else{ - r6 = heap32[(fp+-2)]; - r7 = (r6 - r1)|0; - if(uint(r7) > 2; - r8 = heap32[(r7+1)]; - r7 = heap32[(r7)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r7; - __FUNCTION_TABLE__[(r8)>>2](i7); - r4 = heap32[(fp+-2)]; - r4 = (r4 - r1)|0; - r1 = (r3 - r1)|0; - heap32[(fp+-2)] = r4; - r4 = heapU8[r1]; - r3 = r6; -} -} -} - r1 = r4 & 255; - if(r1 !=37) //_LBB801_207 -{ -continue _1; -} -else{ - r3 = (r3 + 1)|0; - r1 = 32; - r4 = r5; - r6 = r5; - r7 = r5; - r8 = r5; - r9 = r5; - r10 = r5; - r11 = r5; -_15: while(true){ - r12 = r4; - r13 = r3; - r14 = heapU8[r13]; - r3 = (r13 + 1)|0; - heap8[sp+-145] = r14; -_17: do { - if(r14 >99) //_LBB801_29 -{ - if(r14 >110) //_LBB801_37 -{ - if(r14 >114) //_LBB801_41 -{ - if(r14 >119) //_LBB801_44 -{ - if(r14 ==122) //_LBB801_47 -{ -__label__ = 50; -break _17; -} -else{ -__label__ = 44; -break _15; -} -} -else{ -__label__ = 41; -break _15; -} -} -else{ - if(r14 ==111) //_LBB801_105 -{ -__label__ = 99; -break _15; -} -else{ - if(r14 ==112) //_LBB801_97 -{ -__label__ = 91; -break _15; -} -else{ - if(r14 ==113) //_LBB801_53 -{ -__label__ = 49; -break _17; -} -else{ -continue _1; -} -} -} -} -} -else{ - if(r14 >104) //_LBB801_34 -{ - if(r14 ==105) //_LBB801_108 -{ -__label__ = 102; -break _15; -} -else{ - if(r14 ==106) //_LBB801_53 -{ -__label__ = 49; -break _17; -} -else{ - if(r14 ==108) //_LBB801_47 -{ -__label__ = 50; -break _17; -} -else{ -continue _1; -} -} -} -} -else{ - if(r14 ==100) //_LBB801_108 -{ -__label__ = 102; -break _15; -} -else{ - r4 = (r14 + -102)|0; - if(uint(r4) 44) //_LBB801_20 -{ - if(r14 >75) //_LBB801_24 -{ - if(r14 >97) //_LBB801_27 -{ -__label__ = 26; -break _15; -} -else{ - if(r14 ==76) //_LBB801_53 -{ -__label__ = 49; -break _17; -} -else{ -__label__ = 25; -break _15; -} -} -} -else{ - r4 = 1; - if(r14 ==45) //_LBB801_11 -{ -continue _15; -} -else{ - if(r14 ==46) //_LBB801_61 -{ - r4 = heapU8[r3]; - if(r4 !=42) //_LBB801_63 -{ - r4 = sp + -144; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - strtol(i7); - r14 = 0; - r11 = r_g0 < 0 ? r14 : r_g0; - r3 = heap32[(fp+-36)]; -} -else{ - r4 = sp + -4; - heap32[(g0)] = r4; - heap32[(g0+1)] = 4; - my_arg_test(i7); - r4 = r_g0 >> 2; - r4 = heap32[(r4)]; - r14 = 0; - r11 = r4 < 0 ? r14 : r4; - r3 = (r13 + 2)|0; -} - r8 = 1; - r4 = r12; - if(uint(r11) >uint(10240)) //_LBB801_210 -{ -__label__ = 198; -break _1; -} -else{ -continue _15; -} -} -else{ - r4 = (r14 + -48)|0; - if(uint(r4) uint(10240)) //_LBB801_210 -{ -__label__ = 198; -break _1; -} -else{ - r8 = 0; - r4 = r12 & 255; - r13 = heapU8[sp+-145]; - r14 = 48; - r13 = r13 == r14; - r4 = r4 == r8; - r4 = r13 & r4; - r1 = r4 != 0 ? r14 : r1; - r3 = heap32[(fp+-36)]; - r4 = r12; -continue _15; -} -} -} -else{ -continue _1; -} -} -} -} -} -else{ - if(r14 >36) //_LBB801_17 -{ - if(r14 ==37) //_LBB801_66 -{ -__label__ = 62; -break _15; -} -else{ - if(r14 ==42) //_LBB801_60 -{ - r4 = sp + -4; - heap32[(g0)] = r4; - heap32[(g0+1)] = 4; - my_arg_test(i7); - r4 = r_g0 >> 2; - r4 = heap32[(r4)]; - r13 = r4 >> 31; - r14 = (r4 + r13)|0; - r15 = 1; - r10 = r14 ^ r13; - r4 = r4 < 0 ? r15 : r12; - if(uint(r10) >uint(10240)) //_LBB801_210 -{ -__label__ = 198; -break _1; -} -else{ -continue _15; -} -} -else{ - if(r14 ==43) //_LBB801_56 -{ - r7 = 1; - r4 = r12; -continue _15; -} -else{ -continue _1; -} -} -} -} -else{ - if(r14 ==0) //_LBB801_210 -{ -__label__ = 198; -break _1; -} -else{ - if(r14 ==32) //_LBB801_55 -{ - r6 = 1; - r4 = r12; -continue _15; -} -else{ - if(r14 ==35) //_LBB801_51 -{ - r5 = 255; -__label__ = 48; -} -else{ -continue _1; -} -} -} -} -} -} -} while(0); -switch(__label__ ){//multiple entries -case 49: - r9 = (r9 + 1)|0; -break; -case 48: - r9 = (r9 + -1)|0; - r4 = r12; -continue _15; -break; -} - r9 = (r9 + 1)|0; - r4 = r12; -} -_71: do { -switch(__label__ ){//multiple entries -case 26: - if(r14 ==98) //_LBB801_49 -{ - r4 = 0; - r13 = 2; - r14 = r4; - r15 = r4; -__label__ = 104; -break _71; -} -else{ - if(r14 ==99) //_LBB801_65 -{ - r1 = sp + -4; - heap32[(g0)] = r1; - heap32[(g0+1)] = 4; - my_arg_test(i7); - r1 = r_g0 >> 2; - r1 = heap32[(r1)]; - heap8[sp+-145] = r1; -__label__ = 62; -break _71; -} -else{ -continue _1; -} -} -break; -case 25: - if(r14 ==88) //_LBB801_50 -{ -__label__ = 92; -break _71; -} -else{ -continue _1; -} -break; -case 44: - if(r14 !=120) //_LBB801_207 -{ -continue _1; -} -else{ - r4 = 0; -__label__ = 93; -break _71; -} -break; -case 41: - if(r14 ==115) //_LBB801_68 -{ - r1 = sp + -4; - heap32[(g0)] = r1; - heap32[(g0+1)] = 4; - my_arg_test(i7); - r1 = r_g0 >> 2; - r4 = _2E_str38684; - r1 = heap32[(r1)]; - r1 = r1 == 0 ? r4 : r1; - heap32[(fp+-36)] = r1; - r4 = heapU8[r1]; -_83: do { - if(r4 !=0) //_LBB801_70 -{ - r4 = (r1 + 1)|0; - r14 = 0; -_85: while(true){ - r1 = (r14 + 1)|0; - r6 = heapU8[r4+r14]; - r14 = r1; -if(!(r6 !=0)) //_LBB801_71 -{ -break _83; -} -} -} -else{ - r1 = 0; -} -} while(0); - r16 = 0; - r4 = r8 & 255; - r4 = r4 != r16; - r14 = uint(r1) > uint(r11); - r4 = r4 & r14; - r14 = 32; - r4 = r4 != 0 ? r11 : r1; - r1 = r14; - r8 = r16; - r11 = r16; -__label__ = 69; -break _71; -} -else{ - if(r14 ==117) //_LBB801_109 -{ - r4 = 0; - r13 = 10; - r14 = r4; - r15 = r4; -__label__ = 104; -break _71; -} -else{ -continue _1; -} -} -break; -case 99: - r4 = r5 & 255; - if(r4 !=0) //_LBB801_107 -{ - r5 = 1; - r4 = 0; - r13 = 8; - r14 = 48; - heap8[sp+-135] = r14; - r14 = r4; - r15 = r5; -__label__ = 104; -break _71; -} -else{ - r4 = 0; - r13 = 8; - r14 = r4; - r5 = r4; - r15 = r4; -__label__ = 104; -break _71; -} -break; -case 91: - r14 = 120; - r5 = 2; - r9 = 1; - heap8[sp+-145] = r14; -__label__ = 92; -break _71; -break; -case 102: - r4 = 0; - r14 = 1; - r13 = 10; - r15 = r4; -__label__ = 104; -break _71; -break; -case 129: - r4 = sp + -4; - heap32[(g0)] = r4; - heap32[(g0+1)] = 8; - my_arg_test(i7); - f0 = llvm_readDouble((r_g0)); - heap32[(fp+-36)] = r0; - r4 = 103; - r4 = r14 == r4; - r8 = r8 & 255; - r16 = 1; - r9 = 6; - r10 = r10 == 0 ? r16 : r10; - r11 = r8 == 0 ? r9 : r11; - r4 = r4 & 1; - f1 = 0; - r9 = r7 & 255; - r13 = 0; - llvm_writeDouble((i7),f0); - heap32[(g0+2)] = r0; - heap32[(g0+3)] = 127; - heap32[(g0+4)] = r10; - heap32[(g0+5)] = r11; - heap32[(g0+6)] = r4; - r4 = r9 != r13; - r16 = f0 < f1; - r4 = r4 | r16; - r16 = r4 & 1; - __dtostr(i7); - r4 = r_g0; -_98: do { - if(r8 !=0) //_LBB801_137 -{ - r8 = heap32[(fp+-36)]; - r15 = r13; -_100: while(true){ - r17 = heapU8[r8+r13]; - if(r17 ==0) //_LBB801_161 -{ -__label__ = 151; -break _100; -} -else{ - r18 = (r8 + r13)|0; - if(r17 ==46) //_LBB801_149 -{ -__label__ = 142; -break _100; -} -else{ - r17 = heapU8[r18+1]; - if(r17 ==0) //_LBB801_161 -{ -__label__ = 151; -break _100; -} -else{ - r19 = r15 << 2; - if(r17 !=46) //_LBB801_143 -{ - r17 = heapU8[r18+2]; - if(r17 ==0) //_LBB801_161 -{ -__label__ = 151; -break _100; -} -else{ - if(r17 !=46) //_LBB801_146 -{ - r17 = heapU8[r18+3]; - if(r17 ==0) //_LBB801_161 -{ -__label__ = 151; -break _100; -} -else{ - if(r17 ==46) //_LBB801_151 -{ -__label__ = 143; -break _100; -} -else{ - r15 = (r15 + 1)|0; - r13 = (r13 + 4)|0; -} -} -} -else{ -__label__ = 138; -break _100; -} -} -} -else{ -__label__ = 135; -break _100; -} -} -} -} -} -_110: do { -switch(__label__ ){//multiple entries -case 142: - if(r18 ==0) //_LBB801_161 -{ -__label__ = 151; -break _110; -} -else{ -__label__ = 144; -break _110; -} -break; -case 143: - r18 = (r18 + 3)|0; -__label__ = 144; -break _110; -break; -case 138: - r4 = r19 | 2; - r18 = (r8 + r4)|0; -__label__ = 144; -break _110; -break; -case 135: - r4 = r19 | 1; - r18 = (r8 + r4)|0; -__label__ = 144; -break; -} -} while(0); -switch(__label__ ){//multiple entries -case 151: - r5 = r5 & 255; - if(r5 ==0) //_LBB801_136 -{ -break _98; -} -else{ - r5 = 46; - heap8[r8+r4] = r5; - r5 = heap32[(fp+-36)]; - r4 = (r4 + r5)|0; - r5 = 0; - heap8[r4+1] = r5; -} -break; -case 144: - if(r11 !=0) //_LBB801_155 -{ -__label__ = 146; -} -else{ - r4 = r5 & 255; - if(r4 !=0) //_LBB801_155 -{ -__label__ = 146; -} -else{ -__label__ = 147; -} -} -if (__label__ == 146){ - r18 = (r18 + 1)|0; -} -_123: while(true){ - r4 = r11; - if(r4 !=0) //_LBB801_158 -{ - r11 = (r4 + -1)|0; - r5 = (r18 + 1)|0; - r8 = heapU8[r18+1]; - r18 = r5; - if(r8 !=0) //_LBB801_156 -{ -__label__ = 147; -} -else{ -__label__ = 149; -break _123; -} -} -else{ -__label__ = 150; -break _123; -} -} -if (__label__ == 149){ - r18 = r5; -} - r5 = 0; - heap8[r18] = r5; - r11 = r4; -break; -} -} -} while(0); -_130: do { -if(!(r14 !=103)) //_LBB801_199 -{ - r4 = heap32[(fp+-36)]; - r5 = 0; - r8 = r5; -_132: while(true){ - r14 = heapU8[r4+r5]; - if(r14 ==0) //_LBB801_199 -{ -break _130; -} -else{ - r13 = (r4 + r5)|0; - if(r14 ==46) //_LBB801_176 -{ -__label__ = 166; -break _132; -} -else{ - r14 = heapU8[r13+1]; - if(r14 ==0) //_LBB801_199 -{ -break _130; -} -else{ - r15 = r8 << 2; - if(r14 !=46) //_LBB801_170 -{ - r14 = heapU8[r13+2]; - if(r14 ==0) //_LBB801_199 -{ -break _130; -} -else{ - if(r14 !=46) //_LBB801_173 -{ - r14 = heapU8[r13+3]; - if(r14 ==0) //_LBB801_199 -{ -break _130; -} -else{ - if(r14 ==46) //_LBB801_178 -{ -__label__ = 167; -break _132; -} -else{ - r8 = (r8 + 1)|0; - r5 = (r5 + 4)|0; -} -} -} -else{ -__label__ = 162; -break _132; -} -} -} -else{ -__label__ = 159; -break _132; -} -} -} -} -} -switch(__label__ ){//multiple entries -case 166: - if(r13 ==0) //_LBB801_199 -{ -break _130; -} -break; -case 167: - r13 = (r13 + 3)|0; -break; -case 162: - r5 = r15 | 2; - r13 = (r4 + r5)|0; -break; -case 159: - r5 = r15 | 1; - r13 = (r4 + r5)|0; -break; -} - r4 = 0; - r5 = r13; -_148: while(true){ - r8 = heapU8[r5]; - if(r8 !=101) //_LBB801_182 -{ - if(r8 !=0) //_LBB801_184 -{ - r8 = r4 << 2; - r14 = heapU8[r5+1]; - if(r14 !=101) //_LBB801_186 -{ - if(r14 ==0) //_LBB801_183 -{ -__label__ = 171; -break _148; -} -else{ - r14 = heapU8[r5+2]; - if(r14 !=101) //_LBB801_189 -{ - if(r14 ==0) //_LBB801_183 -{ -__label__ = 171; -break _148; -} -else{ - r14 = heapU8[r5+3]; - if(r14 !=101) //_LBB801_192 -{ - if(r14 ==0) //_LBB801_183 -{ -__label__ = 171; -break _148; -} -else{ - r4 = (r4 + 1)|0; - r5 = (r5 + 4)|0; -} -} -else{ -__label__ = 179; -break _148; -} -} -} -else{ -__label__ = 176; -break _148; -} -} -} -else{ -__label__ = 173; -break _148; -} -} -else{ -__label__ = 171; -break _148; -} -} -else{ -__label__ = 182; -break _148; -} -} -switch(__label__ ){//multiple entries -case 171: - r5 = 0; -break; -case 179: - r4 = r8 | 3; - r5 = (r13 + r4)|0; -break; -case 176: - r4 = r8 | 2; - r5 = (r13 + r4)|0; -break; -case 173: - r4 = r8 | 1; - r5 = (r13 + r4)|0; -break; -} -_163: while(true){ - r4 = (r13 + 1)|0; - r8 = heapU8[r13+1]; - r13 = r4; -if(!(r8 !=0)) //_LBB801_194 -{ -break _163; -} -} - r4 = r5 == 0 ? r4 : r5; -_166: while(true){ - r8 = heapU8[r4+-1]; - r4 = (r4 + -1)|0; -if(!(r8 ==48)) //_LBB801_196 -{ -break _166; -} -} - r14 = (r4 + 1)|0; - r4 = r8 == 46 ? r4 : r14; - r8 = 0; - heap8[r4] = r8; -if(!(r5 ==0)) //_LBB801_199 -{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - strcpy(i7); -} -} -} while(0); - r4 = r7 | r6; - r4 = r4 & 255; -if(!(r4 ==0)) //_LBB801_202 -{ -if(!(f0 > 2; - r4 = heap32[(r1+1)]; - r1 = heap32[(r1)]; - r5 = sp + -145; - heap32[(g0)] = r5; - heap32[(g0+1)] = 1; - heap32[(g0+2)] = r1; - __FUNCTION_TABLE__[(r4)>>2](i7); - r1 = heap32[(fp+-2)]; - r1 = (r1 + 1)|0; - heap32[(fp+-2)] = r1; -continue _1; -} -break; -case 92: - r4 = r14 & 255; - r13 = 88; - r4 = r4 == r13; - r4 = r4 & 1; -__label__ = 93; -break; -} -if (__label__ == 93){ - r5 = r5 & 255; - if(r5 !=0) //_LBB801_101 -{ - r13 = 48; - r5 = 2; - heap8[sp+-135] = r13; - heap8[sp+-134] = r14; - r15 = r5; -} -else{ - r5 = 0; - r15 = r5; -} - if(uint(r11) >uint(r10)) //_LBB801_104 -{ - r14 = 0; - r13 = 16; - r10 = r11; -__label__ = 104; -} -else{ - r14 = 0; - r13 = 16; -__label__ = 104; -} -} -_194: do { -if (__label__ == 104){ - heap32[(fp+-36)] = r0; - r16 = sp + -4; - heap32[(g0)] = r16; - heap32[(g0+1)] = 4; - my_arg_test(i7); - r17 = r_g0 >> 2; - r18 = r14 & 255; - r16 = 0; - r17 = heap32[(r17)]; - r18 = r18 != r16; - r19 = r17 < r16; - r20 = (r16 - r17)|0; - r18 = r18 & r19; - r9 = r9 << 24; - r17 = r18 != 0 ? r20 : r17; - r9 = r9 >> 24; - r19 = r17 & 65535; - r17 = r9 < 0 ? r19 : r17; - r19 = heap32[(fp+-36)]; - r20 = r17 & 255; - r21 = 2; - r9 = r9 < -1 ? r20 : r17; - r17 = r18 != 0 ? r21 : r14; - r14 = (r19 + r15)|0; - heap8[r14+122] = r16; - if(r9 !=0) //_LBB801_112 -{ - r18 = (r13 + -1)|0; - r19 = 35; - r20 = 10; - r18 = uint(r18) > uint(r19) ? r20 : r13; - r4 = r4 & 255; - r13 = 39; - r19 = 7; - r4 = r4 == 0 ? r13 : r19; - r19 = (r15 + 121)|0; - r20 = -122; -_198: while(true){ - r13 = Math.floor(uint(r9) % uint(r18)); - r13 = (r13 + 48)|0; - r22 = r13 & 255; - r23 = 57; - r22 = uint(r22) > uint(r23) ? r4 : r16; - r23 = (r20 + 1)|0; - r13 = (r13 + r22)|0; - r20 = (r14 - r20)|0; - heap8[r20+-1] = r13; - if(r19 <=r15) //_LBB801_115 -{ -break _198; -} -else{ - r9 = Math.floor(uint(r9) /uint(r18)); - r19 = (r19 + -1)|0; - r20 = r23; -if(!(r9 !=0)) //_LBB801_113 -{ -break _198; -} -} -} - r18 = (r23 + 122)|0; - r9 = (r14 - r23)|0; -} -else{ - r4 = (r15 + r19)|0; - r13 = 48; - r9 = (r4 + 121)|0; - r18 = 1; - heap8[r4+121] = r13; -} -_204: do { -if(!(r9 ==r14)) //_LBB801_125 -{ - if(uint(r9) <=uint(r14)) //_LBB801_122 -{ -if(!(r18 ==-1)) //_LBB801_125 -{ - r4 = (r16 - r18)|0; -_209: while(true){ - r13 = r4; - r19 = (r9 - r13)|0; - r4 = (r13 + 1)|0; - r20 = (r14 - r13)|0; - r19 = heapU8[r19]; - heap8[r20] = r19; -if(!(r13 !=0)) //_LBB801_124 -{ -break _204; -} -} -} -} -else{ -if(!(r18 ==-1)) //_LBB801_125 -{ - r4 = (r9 + 1)|0; - r9 = r18; -_213: while(true){ - heap8[r14] = r13; - if(r9 ==0) //_LBB801_125 -{ -break _204; -} -else{ - r13 = heapU8[r4]; - r4 = (r4 + 1)|0; - r9 = (r9 + -1)|0; - r14 = (r14 + 1)|0; -} -} -} -} -} -} while(0); - r4 = 1; - r4 = r18 != r4; - r4 = r4 & 1; - r14 = r8 ^ 1; - r4 = r4 | r14; - r4 = r4 & 255; - if(r4 !=0) //_LBB801_128 -{ -__label__ = 122; -} -else{ - r4 = heap32[(fp+-36)]; - r4 = heapU8[r4+r15]; - if(r4 !=48) //_LBB801_128 -{ -__label__ = 122; -} -else{ - r4 = r5 << 24; - r5 = 0; - r4 = r4 >> 24; - r14 = r11 == r5; - r4 = r4 > r5; - r4 = r14 | r4; - r4 = r4 != 0 ? r5 : r15; -__label__ = 123; -} -} -if (__label__ == 122){ - r4 = (r18 + r15)|0; -} - r14 = r17 & 255; - if(r14 ==2) //_LBB801_132 -{ - r6 = heap32[(fp+-36)]; - r7 = (r6 + -1)|0; - r4 = (r4 + 1)|0; - r14 = 48; - r16 = 45; - heap32[(fp+-36)] = r7; - heap8[r6+-1] = r16; - r16 = r21; -} -else{ - if(r14 !=0) //_LBB801_133 -{ - r14 = r7 | r6; - r14 = r14 & 255; -if(!(r14 ==0)) //_LBB801_131 -{ - r6 = heap32[(fp+-36)]; - r16 = (r6 + -1)|0; - r7 = r7 & 255; - r9 = 32; - r13 = 43; - r4 = (r4 + 1)|0; - r14 = 48; - r7 = r7 == 0 ? r9 : r13; - heap32[(fp+-36)] = r16; - heap8[r6+-1] = r7; - r16 = r17; -break _194; -} -} - r14 = 48; -} -} -} while(0); - r6 = heap32[(fp+-36)]; - r7 = r11 | r10; - if(r7 !=0) //_LBB801_77 -{ - r7 = 0; - r5 = r5 << 24; - r5 = r5 >> 24; - if(r5 <1) //_LBB801_79 -{ - r9 = r16 & 255; - r5 = r9 != r7; - r5 = r5 & 1; - if(r9 !=0) //_LBB801_81 -{ -__label__ = 75; -} -else{ -__label__ = 76; -} -} -else{ -__label__ = 75; -} -if (__label__ == 75){ - r4 = (r4 - r5)|0; - r10 = (r10 - r5)|0; - r9 = (r6 + r5)|0; - heap32[(fp+-36)] = r9; -} - r8 = r8 & 255; - r9 = r8 != r7; - r7 = r10 == r7; - r7 = r9 & r7; - r7 = r7 != 0 ? r11 : r10; - r8 = r8 == 0 ? r4 : r11; - r9 = r12 & 255; -if(!(r9 !=0)) //_LBB801_85 -{ - r10 = r1 & 255; -if(!(r10 !=32)) //_LBB801_85 -{ - r11 = sp + -8; - r12 = (r7 - r8)|0; - heap32[(g0)] = r11; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r12; - heap32[(g0+3)] = r10; - write_pad(i7); - r10 = r_g0; - if(r10 !=0) //_LBB801_210 -{ -__label__ = 198; -break _1; -} -} -} -if(!(r5 ==0)) //_LBB801_89 -{ - if(r5 <0) //_LBB801_210 -{ -__label__ = 198; -break _1; -} -else{ - r10 = heap32[(fp+-2)]; - r11 = (r10 + r5)|0; - if(uint(r11) > 2; - r11 = heap32[(r10+1)]; - r10 = heap32[(r10)]; - heap32[(g0)] = r6; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r10; - __FUNCTION_TABLE__[(r11)>>2](i7); - r6 = heap32[(fp+-2)]; - r5 = (r6 + r5)|0; - heap32[(fp+-2)] = r5; -} -} -} -if(!(r9 !=0)) //_LBB801_92 -{ - r5 = r1 & 255; -if(!(r5 ==32)) //_LBB801_92 -{ - r6 = sp + -8; - r10 = (r7 - r8)|0; - heap32[(g0)] = r6; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r5; - write_pad(i7); - r5 = r_g0; - if(r5 !=0) //_LBB801_210 -{ -__label__ = 198; -break _1; -} -} -} - r5 = sp + -8; - r6 = (r8 - r4)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r14; - write_pad(i7); - r14 = r_g0; - if(r14 !=0) //_LBB801_210 -{ -__label__ = 198; -break _1; -} -else{ - if(r4 <0) //_LBB801_210 -{ -__label__ = 198; -break _1; -} -else{ - r14 = heap32[(fp+-2)]; - r6 = (r14 + r4)|0; - if(uint(r6) > 2; - r6 = heap32[(r14+1)]; - r14 = heap32[(r14)]; - r10 = heap32[(fp+-36)]; - heap32[(g0)] = r10; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r14; - __FUNCTION_TABLE__[(r6)>>2](i7); - r14 = heap32[(fp+-2)]; - r4 = (r14 + r4)|0; - heap32[(fp+-2)] = r4; - if(r9 ==0) //_LBB801_207 -{ -continue _1; -} -else{ - r4 = (r7 - r8)|0; - r14 = r1 & 255; - heap32[(g0)] = r5; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r14; - write_pad(i7); - r4 = r_g0; - if(r4 ==0) //_LBB801_207 -{ -continue _1; -} -else{ -__label__ = 198; -break _1; -} -} -} -} -} -} -else{ - if(r4 <0) //_LBB801_210 -{ -__label__ = 198; -break _1; -} -else{ - r14 = heap32[(fp+-2)]; - r1 = (r14 + r4)|0; - if(uint(r1) > 2; - r1 = heap32[(r14+1)]; - r14 = heap32[(r14)]; - heap32[(g0)] = r6; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r14; - __FUNCTION_TABLE__[(r1)>>2](i7); - r14 = heap32[(fp+-2)]; - r4 = (r14 + r4)|0; - heap32[(fp+-2)] = r4; -continue _1; -} -} -} -} -} -} -switch(__label__ ){//multiple entries -case 197: - r0 = heap32[(fp+-2)]; - r_g0 = r0; - return; -break; -case 198: - r0 = -1; - r_g0 = r0; - return; -break; -} -} - -function fprintf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = sp + -8; - r1 = r0 >> 2; - r2 = __fwrite__index__; - heap32[(fp+-3)] = sp; - heap32[(r1+1)] = r2; - heap32[(fp+-2)] = 3; - r1 = _2E_str3133; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = sp; - __v_printf(i7); - return; -} - -function vsnprintf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = sp + -16; - r1 = heap32[(fp+1)]; - r2 = r0 >> 2; - r3 = heap32[(fp)]; - heap32[(r2+1)] = 0; - r4 = (r1 + -1)|0; - r5 = 0; - r6 = sp + -24; - r7 = r1 == 0 ? r5 : r4; - heap32[(fp+-4)] = r3; - r8 = r6 >> 2; - r9 = swrite__index__; - heap32[(r2+2)] = r7; - heap32[(r8+1)] = r9; - heap32[(fp+-6)] = r0; - r0 = heap32[(fp+2)]; - r2 = heap32[(fp+3)]; - heap32[(g0)] = r6; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - __v_printf(i7); - r0 = r_g0; -if(!(r3 ==0)) //_LBB803_7 -{ -if(!(r1 ==0)) //_LBB803_7 -{ -if(!(r0 <0)) //_LBB803_7 -{ -if(!(r1 ==-1)) //_LBB803_6 -{ -if(!(uint(r0) >2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -48;var g0 = i7>>2; // save stack - r0 = (sp + 8)|0; - r1 = sp + -16; - r2 = r1 >> 2; - heap32[(fp+-7)] = r0; - r3 = heap32[(fp)]; - heap32[(r2+1)] = 0; - r4 = sp + -24; - heap32[(fp+-4)] = r3; - r5 = r4 >> 2; - r6 = swrite__index__; - heap32[(r2+2)] = -2; - heap32[(r5+1)] = r6; - heap32[(fp+-6)] = r1; - r1 = heap32[(fp+1)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r0; - __v_printf(i7); - r0 = r_g0; -if(!(r3 ==0)) //_LBB804_3 -{ -if(!(r0 <0)) //_LBB804_3 -{ - r1 = 0; - heap8[r3+r0] = r1; -} -} - r_g0 = r0; - return; -} - -function _ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = (r0 + 2)|0; - r2 = heap32[(fp+4)]; - r1 = Math.floor(uint(r1) / uint(3)); - r3 = heap32[(fp+2)]; - r1 = r1 << 2; - r4 = r2 >> 2; - heap32[(r4)] = 0; -_1: do { -if(!(r3 ==0)) //_LBB805_20 -{ - r5 = heap32[(fp+3)]; - if(uint(r1) <=uint(r5)) //_LBB805_3 -{ - r4 = heap32[(fp)]; - if(uint(r0) >uint(2)) //_LBB805_5 -{ - r5 = (r3 + r5)|0; - r6 = 0; - r12 = _ZN12mandreel_b64L9b64_charsE; -_7: while(true){ - r7 = heapU8[r4]; - r8 = heapU8[r4+1]; - r9 = r7 << 4; - r10 = heapU8[r4+2]; - r11 = r8 << 2; - r9 = r9 & 48; - r8 = r8 >>> 4; - r7 = r7 >>> 2; - r8 = r9 | r8; - r9 = r11 & 60; - r11 = r10 >>> 6; - r7 = heapU8[r12+r7]; - r9 = r9 | r11; - r8 = heapU8[r12+r8]; - heap8[r3] = r7; - r7 = r10 & 63; - r9 = heapU8[r12+r9]; - heap8[r3+1] = r8; - r8 = (r3 + 4)|0; - r6 = (r6 + 4)|0; - r7 = heapU8[r12+r7]; - heap8[r3+2] = r9; - heap8[r3+3] = r7; - if(r8 ==r5) //_LBB805_8 -{ -__label__ = 7; -} -else{ - if(r6 ==0) //_LBB805_9 -{ - r7 = 13; - r8 = (r3 + 6)|0; - r6 = 0; - r9 = 10; - heap8[r3+4] = r7; - heap8[r3+5] = r9; - r3 = r8; -__label__ = 9; -} -else{ -__label__ = 7; -} -} -if (__label__ == 7){ - r3 = r8; -} - r0 = (r0 + -3)|0; - r4 = (r4 + 3)|0; -if(!(uint(r0) >uint(2))) //_LBB805_6 -{ -break _7; -} -} -} -if(!(r0 ==0)) //_LBB805_20 -{ - r5 = 0; -_17: while(true){ - r6 = sp + -3; - r7 = (r4 - r5)|0; - r8 = (r5 + -1)|0; - r5 = (r6 - r5)|0; - r7 = heapU8[r7]; - heap8[r5] = r7; - r7 = (r0 + r8)|0; - r5 = r8; -if(!(r7 !=0)) //_LBB805_13 -{ -break _17; -} -} - if(r0 !=3) //_LBB805_16 -{ - r4 = 3; - r5 = (r4 - r0)|0; - r8 = 0; -_22: while(true){ - r7 = (r5 + -1)|0; - r5 = (r6 - r5)|0; - heap8[r5+3] = r8; - r5 = r7; -if(!(r7 !=0)) //_LBB805_17 -{ -break _22; -} -} - heap32[(g0)] = r6; - heap32[(g0+1)] = 3; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = 12; - heap32[(g0+4)] = r2; - r0 = (r4 - r0)|0; - _ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(i7); - r4 = 61; -_25: while(true){ - r2 = (r0 + -1)|0; - r0 = (r3 - r0)|0; - heap8[r0+4] = r4; - r0 = r2; - if(r2 !=0) //_LBB805_19 -{ -continue _25; -} -else{ -break _1; -} -} -} -else{ - heap32[(g0)] = r6; - heap32[(g0+1)] = 3; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = 12; - heap32[(g0+4)] = r2; - _ZN12mandreel_b64L11b64_encode_EPKhjPcjjPNS_6B64_RCE(i7); - r_g0 = r1; - return; -} -} -} -else{ - heap32[(r4)] = 1; - r0 = 0; - r_g0 = r0; - return; -} -} -} while(0); - r_g0 = r1; - return; -} - -function _ZN12mandreel_b6410b64_decodeEPKcjPvj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = r0 & 3; - r2 = 0; - r1 = r1 != r2; - r1 = r1 & 1; - r3 = r0 >>> 2; - r1 = (r1 + r3)|0; - r3 = heap32[(fp+2)]; - r1 = (r1 * 3)|0; - if(r3 !=0) //_LBB806_2 -{ - r4 = heap32[(fp+3)]; - if(uint(r1) <=uint(r4)) //_LBB806_4 -{ - r1 = heap32[(fp)]; - r4 = r3; - r5 = r2; -_5: while(true){ - if(r0 !=0) //_LBB806_5 -{ - r6 = heapU8[r1]; - if(r6 !=61) //_LBB806_7 -{ - r7 = _ZN12mandreel_b64L11b64_indexesE; - r6 = heapU8[r7+r6]; - if(r6 !=255) //_LBB806_9 -{ - r5 = 0; - r7 = sp + -4; - heap8[r7+r2] = r6; -__label__ = 8; -} -else{ -__label__ = 15; -} -} -else{ - r5 = (r5 + 1)|0; - r6 = sp + -4; - r7 = 0; - heap8[r6+r2] = r7; -__label__ = 8; -} -if (__label__ == 8){ - r2 = (r2 + 1)|0; - if(r2 ==4) //_LBB806_12 -{ - r2 = heapU8[sp+-3]; - r6 = heapU8[sp+-4]; - r2 = r2 >>> 4; - r2 = r2 & 3; - r6 = r6 << 2; - r2 = r2 | r6; - heap8[r4] = r2; - if(r5 !=2) //_LBB806_14 -{ - r2 = heapU8[sp+-2]; - r6 = heapU8[sp+-3]; - r2 = r2 >>> 2; - r2 = r2 & 15; - r6 = r6 << 4; - r2 = r2 | r6; - heap8[r4+1] = r2; - if(r5 !=1) //_LBB806_16 -{ - r2 = heapU8[sp+-2]; - r7 = heapU8[sp+-1]; - r2 = r2 << 6; - r6 = (r4 + 3)|0; - r2 = (r2 + r7)|0; - heap8[r4+2] = r2; - if(r5 ==0) //_LBB806_18 -{ - r2 = 0; - r4 = r6; - r5 = r2; -} -else{ -__label__ = 18; -break _5; -} -} -else{ -__label__ = 12; -break _5; -} -} -else{ -__label__ = 10; -break _5; -} -} -} - r0 = (r0 + -1)|0; - r1 = (r1 + 1)|0; -} -else{ -__label__ = 17; -break _5; -} -} -switch(__label__ ){//multiple entries -case 17: - r6 = r4; -break; -case 12: - r6 = (r4 + 2)|0; -break; -case 10: - r6 = (r4 + 1)|0; -break; -} - r1 = (r6 - r3)|0; -} -else{ - r1 = 0; -} -} - r_g0 = r1; - return; -} - -function __mandreel_internal_SetResolution(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = _ZL25s_mandreel_internal_width; - r1 = _ZL26s_mandreel_internal_height; - r0 = r0 >> 2; - r2 = heap32[(fp)]; - r1 = r1 >> 2; - r3 = heap32[(fp+1)]; - heap32[(r0)] = r2; - heap32[(r1)] = r3; - return; -} - -function __keyEvent(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function __mouseDoubleClick(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function __mouseMove(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function __resize(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function __mouseButton(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function __mouseWheelDelta(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function iMandreel_TextureAsync_IsCompressed(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; -var __label__ = 0; - i7 = sp + -1032;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = sp + -1024; - r4 = 0; -_1: while(true){ - r5 = heapU8[r0]; - if(r5 ==0) //_LBB814_5 -{ -break _1; -} -else{ - r6 = r5 << 24; - r6 = r6 >> 24; - r6 = (r6 + -65)|0; - r7 = 26; - r8 = (r5 + 32)|0; - r5 = uint(r6) < uint(r7) ? r8 : r5; - r6 = r5 & 255; - r7 = 47; - r5 = r6 == 92 ? r7 : r5; - r0 = (r0 + 1)|0; - r6 = r5 & 255; -if(!(r6 !=47)) //_LBB814_4 -{ - r6 = r4 & 255; - r4 = r5; - if(r6 ==47) //_LBB814_1 -{ -continue _1; -} -} - r4 = (r3 + 1)|0; - heap8[r3] = r5; - r3 = r4; - r4 = r5; -continue _1; -} -} - r0 = _ZL24g_pFirstTextureAsyncInfo; - r4 = 0; - heap8[r3] = r4; -_8: while(true){ - r0 = r0 >> 2; - r0 = heap32[(r0)]; - if(r0 !=0) //_LBB814_6 -{ - r3 = sp + -1024; - heap32[(g0)] = r0; - heap32[(g0+1)] = r3; - strcmp(i7); - r3 = r_g0; - if(r3 !=0) //_LBB814_8 -{ - r0 = (r0 + 280)|0; -continue _8; -} -else{ -__label__ = 7; -break _8; -} -} -else{ -__label__ = 10; -break _8; -} -} -switch(__label__ ){//multiple entries -case 10: - r0 = -1; - r_g0 = r0; - return; -break; -case 7: - r0 = r0 >> 2; - r1 = r1 >> 2; - r3 = heap32[(r0+65)]; - heap32[(r1)] = r3; - r1 = r2 >> 2; - r2 = heap32[(r0+66)]; - heap32[(r1)] = r2; - r0 = heap32[(r0+67)]; - r_g0 = r0; - return; -break; -} -} - -function iMandreel_TextureAsync_GetPackOffset(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; -var __label__ = 0; - i7 = sp + -1032;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+3)]; - r4 = sp + -1024; - r5 = 0; -_1: while(true){ - r6 = heapU8[r0]; - if(r6 ==0) //_LBB815_5 -{ -break _1; -} -else{ - r7 = r6 << 24; - r7 = r7 >> 24; - r7 = (r7 + -65)|0; - r8 = 26; - r9 = (r6 + 32)|0; - r6 = uint(r7) < uint(r8) ? r9 : r6; - r7 = r6 & 255; - r8 = 47; - r6 = r7 == 92 ? r8 : r6; - r0 = (r0 + 1)|0; - r7 = r6 & 255; -if(!(r7 !=47)) //_LBB815_4 -{ - r7 = r5 & 255; - r5 = r6; - if(r7 ==47) //_LBB815_1 -{ -continue _1; -} -} - r5 = (r4 + 1)|0; - heap8[r4] = r6; - r4 = r5; - r5 = r6; -continue _1; -} -} - r0 = _ZL24g_pFirstTextureAsyncInfo; - r5 = 0; - heap8[r4] = r5; -_8: while(true){ - r0 = r0 >> 2; - r0 = heap32[(r0)]; - if(r0 !=0) //_LBB815_6 -{ - r4 = sp + -1024; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - strcmp(i7); - r4 = r_g0; -if(!(r4 !=0)) //_LBB815_9 -{ - r4 = r0 >> 2; - r5 = heap32[(r4+64)]; -if(!(r5 ==-1)) //_LBB815_9 -{ -__label__ = 8; -break _8; -} -} - r0 = (r0 + 280)|0; -continue _8; -} -else{ -__label__ = 11; -break _8; -} -} -switch(__label__ ){//multiple entries -case 11: - r0 = 0; - r_g0 = r0; - return; -break; -case 8: - r0 = r1 >> 2; - r1 = heap32[(r4+68)]; - heap32[(r0)] = r1; - r0 = r2 >> 2; - r1 = heap32[(r4+69)]; - heap32[(r0)] = r1; - r0 = heap32[(r4+64)]; - r1 = _ZL17g_apPackFileNames; - r0 = r0 << 2; - r0 = (r1 + r0)|0; - r0 = r0 >> 2; - r0 = heap32[(r0)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - strcpy(i7); - r0 = 1; - r_g0 = r0; - return; -break; -} -} - -function _Z31MandreelDefaultDebugMsgCallbackiPKc(sp) -{ - var i7; - var fp = sp>>2; - var r0; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - heap32[(g0)] = r0; - __sandbox_OutputDebugString(i7); - return; -} - -function printf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -16408;var g0 = i7>>2; // save stack - r0 = (sp + 4)|0; - heap32[(fp+-4097)] = r0; - r1 = sp + -16384; - r2 = heap32[(fp)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 16384; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r0; - r0 = g_msgcallback; - r0 = r0 >> 2; - vsnprintf(i7); - r0 = heap32[(r0)]; -if(!(r0 ==0)) //_LBB817_2 -{ - heap32[(g0)] = r1; - __sandbox_OutputDebugString(i7); -} - return; -} - -function _printf_error(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -16408;var g0 = i7>>2; // save stack - r0 = (sp + 4)|0; - heap32[(fp+-4097)] = r0; - r1 = sp + -16384; - r2 = heap32[(fp)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 16384; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r0; - r0 = g_msgcallback; - r0 = r0 >> 2; - vsnprintf(i7); - r0 = heap32[(r0)]; -if(!(r0 ==0)) //_LBB818_2 -{ - heap32[(g0)] = r1; - __sandbox_OutputDebugString(i7); -} - return; -} - -function _printf_warning(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -16408;var g0 = i7>>2; // save stack - r0 = (sp + 4)|0; - heap32[(fp+-4097)] = r0; - r1 = sp + -16384; - r2 = heap32[(fp)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 16384; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r0; - r0 = g_msgcallback; - r0 = r0 >> 2; - vsnprintf(i7); - r0 = heap32[(r0)]; -if(!(r0 ==0)) //_LBB819_2 -{ - heap32[(g0)] = r1; - __sandbox_OutputDebugString(i7); -} - return; -} - -function __mandreel_internal_preupdate(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = sp + -8; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - r1 = _ZGVZ21Mandreel_GetTickCountE7s_first; - gettimeofday(i7); - r2 = heapU8[r1]; -if(!(r2 !=0)) //_LBB820_2 -{ - r2 = heap32[(fp+-2)]; - r3 = r2 >> 31; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = 1000000; - heap32[(g0+3)] = 0; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - __muldi3(i7); - r4 = 1; - r5 = (r_g0 + r0)|0; - r6 = 0; - r7 = r0 >> 31; - r2 = uint(r5) < uint(r_g0) ? r4 : r6; - r6 = _ZZ21Mandreel_GetTickCountE7s_first; - r3 = (r_g1 + r7)|0; - r0 = uint(r5) < uint(r0) ? r4 : r2; - r2 = r6 >> 2; - r0 = (r3 + r0)|0; - heap32[(r2)] = r5; - heap32[(r2+1)] = r0; - heap8[r1] = r4; -} - r0 = _ZZ29__mandreel_internal_preupdateE8s_bfirst_2E_b; - r1 = heapU8[r0]; -if(!(r1 != 0)) //_LBB820_4 -{ - r1 = 1; - heap8[r0] = r1; -} - return; -} - -function __mandreel_internal_update(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = -32788; -_1: while(true){ - r1 = _ZL10s_aSockets; - r1 = (r1 - r0)|0; - r2 = heapU8[r1]; -if(!(r2 ==0)) //_LBB821_3 -{ - r1 = r1 >> 2; - r1 = heap32[(r1+-1)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 2048; - js_mandreel_flash_tcp_update(i7); -} - r0 = (r0 + -32792)|0; - if(r0 !=-295124) //_LBB821_1 -{ -continue _1; -} -else{ -break _1; -} -} - r0 = _ZL7g_bInit_2E_b; - r1 = heapU8[r0]; - if(r1 != 0) //_LBB821_6 -{ - mandreel_audio_update(i7); - r1 = sp + -8; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - gettimeofday(i7); - r2 = heap32[(fp+-2)]; - r3 = r2 >> 31; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = 1000000; - heap32[(g0+3)] = 0; - r1 = r1 >> 2; - r1 = heap32[(r1+1)]; - __muldi3(i7); - r4 = (r_g0 + r1)|0; - r5 = 1; - r6 = 0; - r7 = r1 >> 31; - r2 = uint(r4) < uint(r_g0) ? r5 : r6; - r3 = (r_g1 + r7)|0; - r1 = uint(r4) < uint(r1) ? r5 : r2; - r1 = (r3 + r1)|0; - r2 = _ZGVZ21Mandreel_GetTickCountE7s_first; - r3 = heapU8[r2]; -if(!(r3 !=0)) //_LBB821_8 -{ - r3 = _ZZ21Mandreel_GetTickCountE7s_first; - r3 = r3 >> 2; - heap32[(r3)] = r4; - heap32[(r3+1)] = r1; - heap8[r2] = r5; -} - r2 = _ZZ21Mandreel_GetTickCountE7s_first; - r2 = r2 >> 2; - r3 = heap32[(r2)]; - r2 = heap32[(r2+1)]; - r1 = (r1 - r2)|0; - r2 = uint(r4) < uint(r3) ? r5 : r6; - r3 = (r4 - r3)|0; - r1 = (r1 - r2)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 1000; - heap32[(g0+3)] = 0; - __udivdi3(i7); - r1 = r_g0; - r2 = _ZL11g_aChannels; -_12: while(true){ - if(r6 <32) //_LBB821_9 -{ - r3 = r2 >> 2; - r4 = heap32[(r3+72)]; -if(!(r4 !=1)) //_LBB821_33 -{ - r4 = _ZL11g_aChannels; - r7 = (r6 * 292)|0; - r4 = (r4 + r7)|0; - r7 = heapU8[r4+268]; -if(!(r7 !=0)) //_LBB821_33 -{ - r7 = heap32[(r3+71)]; - if(r7 ==-1) //_LBB821_13 -{ - r7 = heapU8[r0]; - if(r7 !=1) //_LBB821_15 -{ -__label__ = 14; -break _12; -} -else{ - r7 = _ZL21g_pFirstSoundDuration; -_21: while(true){ - r7 = r7 >> 2; - r7 = heap32[(r7)]; - if(r7 !=0) //_LBB821_16 -{ - heap32[(g0)] = r7; - heap32[(g0+1)] = r2; - strcmp(i7); - r8 = r_g0; - if(r8 !=0) //_LBB821_18 -{ - r7 = (r7 + 260)|0; -} -else{ -__label__ = 16; -break _21; -} -} -else{ -__label__ = 19; -break _21; -} -} -switch(__label__ ){//multiple entries -case 19: - r7 = _2E_str3224; - heap32[(g0)] = r7; - heap32[(g0+1)] = r2; - r7 = 0; - _printf_warning(i7); -break; -case 16: - r7 = r7 >> 2; - r7 = heap32[(r7+64)]; -break; -} - heap32[(r3+71)] = r7; -} -} - r8 = heap32[(r3+70)]; - r7 = (r8 + r7)|0; -if(!(uint(r7) >uint(r1))) //_LBB821_33 -{ - r7 = heapU8[r0]; - if(r7 != 0) //_LBB821_25 -{ - r7 = (r6 + -1)|0; -if(!(uint(r7) >uint(30))) //_LBB821_33 -{ - r7 = heapU8[r4+269]; -if(!(r7 !=0)) //_LBB821_33 -{ -if(!(uint(r6) >uint(31))) //_LBB821_29 -{ - r7 = heap32[(r3+68)]; - r8 = heap32[(r3+69)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r8; - heap32[(g0+2)] = r7; - mandreel_audio_stopChannel(i7); - heap32[(r3+72)] = 0; - heap32[(r3+68)] = -1; -} - r3 = _ZL15g_iFreeChannels; - r3 = r3 >> 2; - heap8[r4+269] = r5; - r4 = heap32[(r3)]; - r7 = (r4 + -1)|0; -_37: do { -if(!(r7 <0)) //_LBB821_32 -{ - r7 = r4; -_39: while(true){ - r8 = _ZL15g_aFreeChannels; - r9 = r7 << 2; - r8 = (r8 + r9)|0; - r8 = r8 >> 2; - r9 = heap32[(r8+-1)]; - r7 = (r7 + -1)|0; - heap32[(r8)] = r9; -if(!(r7 !=0)) //_LBB821_31 -{ -break _37; -} -} -} -} while(0); - r7 = _ZL15g_aFreeChannels; - r7 = r7 >> 2; - r4 = (r4 + 1)|0; - heap32[(r7)] = r6; - heap32[(r3)] = r4; -} -} -} -else{ -__label__ = 23; -break _12; -} -} -} -} - r6 = (r6 + 1)|0; - r2 = (r2 + 292)|0; -} -else{ -__label__ = 34; -break _12; -} -} -switch(__label__ ){//multiple entries -case 34: - return; -break; -case 14: - r7 = _2E_str221; - r0 = _2E_str1222; - heap32[(g0)] = r7; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 341; - _assert(i7); -break; -case 23: - r0 = _2E_str221; - r1 = _2E_str1222; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 621; - _assert(i7); -break; -} -} -else{ - r0 = _2E_str221; - r1 = _2E_str1222; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = 361; - _assert(i7); -} -} - -function __mandreel_internal_init(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; -var __label__ = 0; - i7 = sp + -2456;var g0 = i7>>2; // save stack - r0 = __mandreel_internal_SetResolution__index__; - r1 = _ZZ24__mandreel_internal_initE54s_723478567_mandreel___mandreel_internal_SetResolution; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - iMandreelRegisterExternalCallback(i7); - r0 = iMandreel_TextureAsync_IsCompressed__index__; - r1 = _ZZ24__mandreel_internal_initE56s_723478567_mandreel_iMandreel_TextureAsync_IsCompressed; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - iMandreelRegisterExternalCallback(i7); - r0 = iMandreel_TextureAsync_GetPackOffset__index__; - r1 = _ZZ24__mandreel_internal_initE57s_723478567_mandreel_iMandreel_TextureAsync_GetPackOffset; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - iMandreelRegisterExternalCallback(i7); - r0 = __resize__index__; - r1 = _ZZ24__mandreel_internal_initE29s_723478567_mandreel___resize; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - iMandreelRegisterExternalCallback(i7); - r0 = imandreel_restore_glcontext__index__; - r1 = _ZZ24__mandreel_internal_initE48s_723478567_mandreel_imandreel_restore_glcontext; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - iMandreelRegisterExternalCallback(i7); - r0 = imandreel_viewport_resize__index__; - r1 = _ZZ24__mandreel_internal_initE46s_723478567_mandreel_imandreel_viewport_resize; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - r0 = g_msgcallback; - r0 = r0 >> 2; - r1 = _Z31MandreelDefaultDebugMsgCallbackiPKc__index__; - iMandreelRegisterExternalCallback(i7); - r2 = _ZL7g_bInit_2E_b; - heap32[(r0)] = r1; - r0 = heapU8[r2]; - if(r0 !=1) //_LBB822_2 -{ - r0 = 1; - heap8[r2] = r0; - r1 = 0; - mandreel_audio_isLogEnabled(i7); - r2 = r_g0 != r1; - r3 = _ZL6g_bLog; - r2 = r2 & 1; - heap8[r3] = r2; - mandreel_audio_useMusicFunctions(i7); - r2 = heapU8[r3]; - if(r2 !=0) //_LBB822_4 -{ - r2 = _2E_str35256; - heap32[(g0)] = r2; - printf(i7); -} -else{ - r1 = 0; -} -_6: while(true){ - r2 = (r1 * 73)|0; - r3 = _ZL11g_aChannels; - r2 = r2 << 2; - r2 = (r3 + r2)|0; - r4 = (r1 * 292)|0; - r2 = r2 >> 2; - r5 = _ZL15g_aFreeChannels; - r6 = r1 << 2; - r5 = (r5 + r6)|0; - r3 = (r3 + r4)|0; - heap32[(r2+69)] = r1; - r2 = (r1 + 1)|0; - r4 = r5 >> 2; - heap8[r3+269] = r0; - heap32[(r4)] = r1; - r1 = r2; -if(!(r2 !=32)) //_LBB822_5 -{ -break _6; -} -} - r1 = _ZL15g_iFreeChannels; - r1 = r1 >> 2; - heap32[(r1)] = 32; - mandreel_audio_init(i7); - r1 = _2E_str22243; - heap32[(g0)] = r1; - printf(i7); - heap32[(g0)] = 0; - _Z30mandreel_fopen_enable_checkfatb(i7); - r1 = _2E_str779; - r2 = _2E_str1648; - heap32[(g0)] = r1; - heap32[(g0+1)] = r2; - fopen(i7); - r3 = r_g0; - heap32[(g0)] = 1; - _Z30mandreel_fopen_enable_checkfatb(i7); - if(r3 ==0) //_LBB822_19 -{ - r4 = _2E_str24245; - r5 = 0; - heap32[(g0)] = r4; - _printf_error(i7); - r4 = r5; -} -else{ - if(uint(r3) > 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+7)]; - heap32[(g0)] = r4; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 2; - __FUNCTION_TABLE__[(r5)>>2](i7); -} -else{ - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+7)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 2; - __FUNCTION_TABLE__[(r4)>>2](i7); - r4 = r3; -} - r5 = r4 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+5)]; - heap32[(g0)] = r4; - __FUNCTION_TABLE__[(r5)>>2](i7); - r4 = r_g0; - if(uint(r3) >uint(9)) //_LBB822_12 -{ - r5 = r3; -} -else{ - r5 = _ZL13s_file_stdout; -} - r6 = r5 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+7)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 0; - __FUNCTION_TABLE__[(r6)>>2](i7); - r5 = (r4 + 1)|0; - heap32[(g0)] = r5; - malloc(i7); - r5 = r_g0; - if(uint(r3) > 2; - r7 = heap32[(r7)]; - r7 = r7 >> 2; - r7 = heap32[(r7+1)]; - heap32[(g0)] = r6; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = 1; - heap32[(g0+3)] = r4; - r8 = 0; - __FUNCTION_TABLE__[(r7)>>2](i7); - heap8[r5+r4] = r8; -} -else{ - r6 = r3 >> 2; - r6 = heap32[(r6)]; - r6 = r6 >> 2; - r6 = heap32[(r6+1)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = 1; - heap32[(g0+3)] = r4; - r7 = 0; - __FUNCTION_TABLE__[(r6)>>2](i7); - heap8[r5+r4] = r7; - r6 = r3; -} - r7 = r6 >> 2; - r7 = heap32[(r7)]; - r7 = r7 >> 2; - r7 = heap32[(r7+4)]; - heap32[(g0)] = r6; - __FUNCTION_TABLE__[(r7)>>2](i7); - if(uint(r3) >uint(9)) //_LBB822_18 -{ - heap32[(g0)] = r6; - _ZdlPv(i7); -} -} - r3 = sp + -128; - heap32[(g0)] = r3; - mandreel_audio_getAudioDriverName(i7); - r6 = _2E_str4225; - heap32[(g0)] = r3; - heap32[(g0+1)] = r6; - strcmp(i7); - r3 = r_g0; -if(!(r5 ==0)) //_LBB822_198 -{ -_28: do { -if(!(r4 <1)) //_LBB822_197 -{ - r6 = sp + -1408; - r7 = (r6 + 1)|0; - r8 = (r5 + 1)|0; - r9 = 0; -_30: while(true){ - r10 = (r5 + r9)|0; - r11 = heapU8[r5+r9]; -if(!(r11 ==13)) //_LBB822_25 -{ - if(r9 > 2; - heap8[r5+r9] = r12; - r13 = heap32[(r11)]; - r9 = (r9 + 2)|0; - r10 = r10 == 0 ? r13 : r10; -_39: while(true){ - r13 = heapU8[r10]; - if(r13 ==0) //_LBB822_47 -{ -__label__ = 44; -break _39; -} -else{ - r14 = r12; -_42: while(true){ - if(r14 ==-1) //_LBB822_36 -{ -__label__ = 34; -break _39; -} -else{ - r15 = _2E_str4133; - r15 = (r15 - r14)|0; - r16 = r13 & 255; - r15 = heapU8[r15]; - if(r16 !=r15) //_LBB822_30 -{ - r14 = (r14 + -1)|0; -} -else{ -break _42; -} -} -} - r10 = (r10 + 1)|0; -} -} -_47: do { -if (__label__ == 34){ - if(r13 ==0) //_LBB822_47 -{ -__label__ = 44; -} -else{ - r12 = r10; -_50: while(true){ - r13 = heapU8[r12]; - if(r13 ==0) //_LBB822_44 -{ -break _50; -} -else{ - r14 = r0; -_53: while(true){ - if(r14 !=0) //_LBB822_38 -{ - r15 = _2E_str4133; - r15 = (r15 - r14)|0; - r16 = r13 & 255; - r15 = heapU8[r15+1]; - if(r16 ==r15) //_LBB822_44 -{ -break _50; -} -else{ - r14 = (r14 + -1)|0; -} -} -else{ -break _53; -} -} - r12 = (r12 + 1)|0; -} -} - r13 = heapU8[r12]; - if(r13 !=0) //_LBB822_46 -{ - r13 = (r12 + 1)|0; - r14 = 0; - heap8[r12] = r14; - r12 = r13; -} - heap32[(r11)] = r12; - r13 = _2E_str26247; - heap32[(g0)] = r13; - heap32[(g0+1)] = r10; - strcmp(i7); - r13 = r_g0; - if(r13 !=0) //_LBB822_71 -{ - r13 = _2E_str29250; - heap32[(g0)] = r13; - heap32[(g0+1)] = r10; - strcmp(i7); - r13 = r_g0; - if(r13 !=0) //_LBB822_154 -{ - if(r3 !=0) //_LBB822_70 -{ -__label__ = 66; -break _47; -} -else{ - r13 = _2E_str32253; - heap32[(g0)] = r13; - heap32[(g0+1)] = r10; - strcmp(i7); - r13 = r_g0; - if(r13 !=0) //_LBB822_176 -{ - r13 = _2E_str33254; - heap32[(g0)] = r13; - heap32[(g0+1)] = r10; - strcmp(i7); - r10 = r_g0; - if(r10 !=0) //_LBB822_70 -{ -__label__ = 66; -break _47; -} -else{ -__label__ = 173; //SET chanka -_69: while(true){ - r10 = heapU8[r12]; - if(r10 ==0) //_LBB822_184 -{ -__label__ = 175; -break _69; -} -else{ - r13 = 0; -_72: while(true){ - if(r13 ==-1) //_LBB822_185 -{ -__label__ = 176; -break _69; -} -else{ - r14 = _2E_str4133; - r14 = (r14 - r13)|0; - r15 = r10 & 255; - r14 = heapU8[r14]; - if(r15 !=r14) //_LBB822_178 -{ - r13 = (r13 + -1)|0; -} -else{ -break _72; -} -} -} - r12 = (r12 + 1)|0; -} -} -if (__label__ == 176){ - if(r10 ==0) //_LBB822_184 -{ -__label__ = 175; -} -else{ - r13 = r12; -_80: while(true){ - r10 = heapU8[r13]; - if(r10 ==0) //_LBB822_193 -{ -break _80; -} -else{ - r14 = 1; -_83: while(true){ - if(r14 !=0) //_LBB822_187 -{ - r15 = _2E_str4133; - r15 = (r15 - r14)|0; - r16 = r10 & 255; - r15 = heapU8[r15+1]; - if(r16 ==r15) //_LBB822_193 -{ -break _80; -} -else{ - r14 = (r14 + -1)|0; -} -} -else{ -break _83; -} -} - r13 = (r13 + 1)|0; -} -} - r10 = heapU8[r13]; - if(r10 !=0) //_LBB822_195 -{ - r14 = (r13 + 1)|0; - r10 = 0; - heap8[r13] = r10; - r10 = r12; - r12 = r14; -__label__ = 187; -} -else{ - r10 = r12; - r12 = r13; -__label__ = 187; -} -} -} -if (__label__ == 175){ - r10 = 0; -} - heap32[(r11)] = r12; - r11 = sp + -384; - heap32[(g0)] = r11; - heap32[(g0+1)] = r10; - strcpy(i7); -__label__ = 66; -break _47; -} -} -else{ -_95: while(true){ - r10 = heapU8[r12]; - if(r10 ==0) //_LBB822_163 -{ -__label__ = 155; -break _95; -} -else{ - r13 = 0; -_98: while(true){ - if(r13 ==-1) //_LBB822_164 -{ -__label__ = 156; -break _95; -} -else{ - r14 = _2E_str4133; - r14 = (r14 - r13)|0; - r15 = r10 & 255; - r14 = heapU8[r14]; - if(r15 !=r14) //_LBB822_157 -{ - r13 = (r13 + -1)|0; -} -else{ -break _98; -} -} -} - r12 = (r12 + 1)|0; -} -} -if (__label__ == 156){ - if(r10 ==0) //_LBB822_163 -{ -__label__ = 155; -} -else{ - r13 = r12; -_106: while(true){ - r10 = heapU8[r13]; - if(r10 ==0) //_LBB822_172 -{ -break _106; -} -else{ - r14 = 1; -_109: while(true){ - if(r14 !=0) //_LBB822_166 -{ - r15 = _2E_str4133; - r15 = (r15 - r14)|0; - r16 = r10 & 255; - r15 = heapU8[r15+1]; - if(r16 ==r15) //_LBB822_172 -{ -break _106; -} -else{ - r14 = (r14 + -1)|0; -} -} -else{ -break _109; -} -} - r13 = (r13 + 1)|0; -} -} - r10 = heapU8[r13]; - if(r10 !=0) //_LBB822_174 -{ - r14 = (r13 + 1)|0; - r10 = 0; - heap8[r13] = r10; - r10 = r12; - r12 = r14; -__label__ = 167; -} -else{ - r10 = r12; - r12 = r13; -__label__ = 167; -} -} -} -if (__label__ == 155){ - r10 = 0; -} - heap32[(r11)] = r12; - r11 = sp + -2432; - r12 = _2E_str12233; - r13 = sp + -384; - heap32[(g0)] = r11; - heap32[(g0+1)] = r12; - heap32[(g0+2)] = r13; - heap32[(g0+3)] = r10; - sprintf(i7); - heap32[(g0)] = r11; - mandreel_add_valid_fopenfile(i7); -__label__ = 66; -break _47; -} -} -} -else{ - r10 = (r12 + 1)|0; - r13 = 0; - r14 = r12; -_122: while(true){ - r15 = heapU8[r12+r13]; - if(r15 ==0) //_LBB822_90 -{ -__label__ = 85; -break _122; -} -else{ - r16 = 0; -_125: while(true){ - if(r16 ==-1) //_LBB822_79 -{ -__label__ = 75; -break _122; -} -else{ - r17 = _2E_str4133; - r17 = (r17 - r16)|0; - r18 = r15 & 255; - r17 = heapU8[r17]; - if(r18 !=r17) //_LBB822_73 -{ - r16 = (r16 + -1)|0; -} -else{ -break _125; -} -} -} - r13 = (r13 + 1)|0; - r14 = (r14 + 1)|0; - r10 = (r10 + 1)|0; -} -} -_130: do { -if (__label__ == 75){ - if(r15 ==0) //_LBB822_90 -{ -__label__ = 85; -} -else{ - r15 = (r12 + r13)|0; -_133: while(true){ - r16 = heapU8[r14]; - if(r16 ==0) //_LBB822_87 -{ -break _133; -} -else{ - r17 = 1; -_136: while(true){ - if(r17 !=0) //_LBB822_81 -{ - r18 = _2E_str4133; - r18 = (r18 - r17)|0; - r19 = r16 & 255; - r18 = heapU8[r18+1]; - if(r19 ==r18) //_LBB822_87 -{ -break _133; -} -else{ - r17 = (r17 + -1)|0; -} -} -else{ -break _136; -} -} - r14 = (r14 + 1)|0; -} -} - r16 = heapU8[r14]; - if(r16 !=0) //_LBB822_89 -{ - r16 = (r14 + 1)|0; - r17 = 0; - heap8[r14] = r17; - r14 = r16; -} - r17 = 0; - r16 = r15 == r17; - heap32[(r11)] = r14; -_145: while(true){ - r18 = heapU8[r14]; - if(r18 ==0) //_LBB822_109 -{ -__label__ = 103; -break _145; -} -else{ - r19 = r17; -_148: while(true){ - if(r19 ==-1) //_LBB822_98 -{ -__label__ = 93; -break _145; -} -else{ - r20 = _2E_str4133; - r20 = (r20 - r19)|0; - r21 = r18 & 255; - r20 = heapU8[r20]; - if(r21 !=r20) //_LBB822_92 -{ - r19 = (r19 + -1)|0; -} -else{ -break _148; -} -} -} - r14 = (r14 + 1)|0; -} -} -if (__label__ == 93){ -if(!(r18 ==0)) //_LBB822_109 -{ - r17 = r14; -_156: while(true){ - r18 = heapU8[r17]; - if(r18 ==0) //_LBB822_106 -{ -break _156; -} -else{ - r19 = 1; -_159: while(true){ - if(r19 !=0) //_LBB822_100 -{ - r20 = _2E_str4133; - r20 = (r20 - r19)|0; - r21 = r18 & 255; - r20 = heapU8[r20+1]; - if(r21 ==r20) //_LBB822_106 -{ -break _156; -} -else{ - r19 = (r19 + -1)|0; -} -} -else{ -break _159; -} -} - r17 = (r17 + 1)|0; -} -} - r18 = heapU8[r17]; - if(r18 !=0) //_LBB822_108 -{ - r18 = (r17 + 1)|0; - r19 = 0; - heap8[r17] = r19; - r17 = r18; -} - heap32[(r11)] = r17; -_168: while(true){ - r18 = heapU8[r17]; - if(r18 ==0) //_LBB822_128 -{ -__label__ = 121; -break _168; -} -else{ - r19 = 0; -_171: while(true){ - if(r19 ==-1) //_LBB822_117 -{ -__label__ = 111; -break _168; -} -else{ - r20 = _2E_str4133; - r20 = (r20 - r19)|0; - r21 = r18 & 255; - r20 = heapU8[r20]; - if(r21 !=r20) //_LBB822_111 -{ - r19 = (r19 + -1)|0; -} -else{ -break _171; -} -} -} - r17 = (r17 + 1)|0; -} -} -if (__label__ == 111){ -if(!(r18 ==0)) //_LBB822_128 -{ - r15 = r17; -_179: while(true){ - r16 = heapU8[r15]; - if(r16 ==0) //_LBB822_125 -{ -break _179; -} -else{ - r18 = 1; -_182: while(true){ - if(r18 !=0) //_LBB822_119 -{ - r19 = _2E_str4133; - r19 = (r19 - r18)|0; - r20 = r16 & 255; - r19 = heapU8[r19+1]; - if(r20 ==r19) //_LBB822_125 -{ -break _179; -} -else{ - r18 = (r18 + -1)|0; -} -} -else{ -break _182; -} -} - r15 = (r15 + 1)|0; -} -} - r16 = heapU8[r15]; - if(r16 !=0) //_LBB822_127 -{ - r16 = (r15 + 1)|0; - r18 = 0; - heap8[r15] = r18; - r15 = r16; -} - heap32[(r11)] = r15; - heap32[(g0)] = 264; - _Znwj(i7); - r11 = r_g0; - heap32[(g0)] = r17; - heap32[(g0+1)] = 0; - r15 = 0; - r16 = -1; - r17 = r11 >> 2; - strtol(i7); - heap32[(r17+64)] = r_g0; -_191: while(true){ - r17 = r15; - r18 = heapU8[r10+r17]; - if(r18 !=46) //_LBB822_133 -{ - if(r18 ==0) //_LBB822_137 -{ -break _191; -} -else{ -if(!(r18 ==47)) //_LBB822_136 -{ - r15 = (r17 + 1)|0; - if(r18 !=92) //_LBB822_131 -{ -continue _191; -} -} - r16 = -1; -} -} -else{ - r16 = r17; -} - r15 = (r17 + 1)|0; -} - if(r16 ==-1) //_LBB822_143 -{ - r10 = (r12 + r13)|0; - r12 = _2E_str12233; - r10 = (r10 + 1)|0; - r15 = _2E_str2131; - heap32[(g0)] = r6; - heap32[(g0+1)] = r12; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r15; - sprintf(i7); -} -else{ -_205: do { - if(r16 >0) //_LBB822_140 -{ - r10 = (r12 + 1)|0; - r12 = 0; -_207: while(true){ - r15 = (r12 + r10)|0; - r17 = (r12 + 1)|0; - r15 = heapU8[r15+r13]; - heap8[r6+r12] = r15; - r12 = r17; -if(!(r16 !=r17)) //_LBB822_141 -{ -break _205; -} -} -} -else{ - r16 = 0; -} -} while(0); - r10 = (r6 + r16)|0; - r12 = _2E_str2131; - heap32[(g0)] = r10; - heap32[(g0+1)] = r12; - strcpy(i7); -} - r10 = heapU8[sp+-1408]; -_212: do { - if(r10 ==0) //_LBB822_146 -{ - r15 = r11; -} -else{ - r12 = r7; - r15 = r11; -_215: while(true){ - r16 = r10 & 255; - if(r16 !=92) //_LBB822_149 -{ - r16 = r10 << 24; - r16 = r16 >> 24; - r16 = (r16 + -65)|0; - r13 = 26; - r17 = (r10 + 32)|0; - r10 = uint(r16) < uint(r13) ? r17 : r10; -} -else{ - r10 = 47; -} - heap8[r15] = r10; - r10 = heapU8[r12]; - r15 = (r15 + 1)|0; - r12 = (r12 + 1)|0; -if(!(r10 !=0)) //_LBB822_147 -{ -break _212; -} -} -} -} while(0); - r10 = _ZL21g_pFirstSoundDuration; - r12 = 0; - r10 = r10 >> 2; - heap8[r15] = r12; - r12 = r11 >> 2; - r15 = heap32[(r10)]; - heap32[(r12+65)] = r15; - heap32[(r10)] = r11; - r10 = heapU8[r14]; - if(r10 ==48) //_LBB822_70 -{ -__label__ = 66; -break _47; -} -else{ - heap32[(g0)] = r11; - heap32[(g0+1)] = 0; - mandreel_audio_createBuffer(i7); -__label__ = 66; -break _47; -} -} -} - heap32[(r11)] = r17; -__label__ = 146; -break _130; -} -} - heap32[(r11)] = r14; -__label__ = 146; -} -} -} while(0); -if (__label__ == 85){ - r16 = 1; - r15 = 0; - r10 = (r12 + r13)|0; - heap32[(r11)] = r10; -} - r10 = _2E_str30251; - r11 = _2E_str31252; - r10 = r16 != 0 ? r10 : r15; - heap32[(g0)] = r11; - heap32[(g0+1)] = r10; - _printf_warning(i7); -__label__ = 66; -break _47; -} -} -else{ -_228: while(true){ - r10 = heapU8[r12]; - if(r10 ==0) //_LBB822_56 -{ -__label__ = 52; -break _228; -} -else{ - r13 = 0; -_231: while(true){ - if(r13 ==-1) //_LBB822_57 -{ -__label__ = 53; -break _228; -} -else{ - r14 = _2E_str4133; - r14 = (r14 - r13)|0; - r15 = r10 & 255; - r14 = heapU8[r14]; - if(r15 !=r14) //_LBB822_50 -{ - r13 = (r13 + -1)|0; -} -else{ -break _231; -} -} -} - r12 = (r12 + 1)|0; -} -} -if (__label__ == 53){ - if(r10 ==0) //_LBB822_56 -{ -__label__ = 52; -} -else{ - r13 = r12; -_239: while(true){ - r10 = heapU8[r13]; - if(r10 ==0) //_LBB822_65 -{ -break _239; -} -else{ - r14 = 1; -_242: while(true){ - if(r14 !=0) //_LBB822_59 -{ - r15 = _2E_str4133; - r15 = (r15 - r14)|0; - r16 = r10 & 255; - r15 = heapU8[r15+1]; - if(r16 ==r15) //_LBB822_65 -{ -break _239; -} -else{ - r14 = (r14 + -1)|0; -} -} -else{ -break _242; -} -} - r13 = (r13 + 1)|0; -} -} - r10 = heapU8[r13]; - if(r10 !=0) //_LBB822_67 -{ - r14 = (r13 + 1)|0; - r10 = 0; - heap8[r13] = r10; - r10 = r12; - r12 = r14; -__label__ = 64; -} -else{ - r10 = r12; - r12 = r13; -__label__ = 64; -} -} -} -if (__label__ == 52){ - r10 = 0; -} - heap32[(r11)] = r12; - r11 = _2E_str27248; - heap32[(g0)] = r10; - heap32[(g0+1)] = r11; - strcmp(i7); - r12 = r_g0; - if(r12 ==0) //_LBB822_70 -{ -__label__ = 66; -} -else{ - r12 = _2E_str28249; - heap32[(g0)] = r12; - heap32[(g0+1)] = r10; - heap32[(g0+2)] = r11; - _printf_error(i7); -__label__ = 66; -} -} -} -} -} while(0); -if (__label__ == 44){ - heap32[(r11)] = r10; -} -if(!(r9 > 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+7)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 2; - __FUNCTION_TABLE__[(r2)>>2](i7); -} -else{ - r1 = r0 >> 2; - r1 = heap32[(r1)]; - r1 = r1 >> 2; - r1 = heap32[(r1+7)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 2; - __FUNCTION_TABLE__[(r1)>>2](i7); - r1 = r0; -} - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+5)]; - heap32[(g0)] = r1; - __FUNCTION_TABLE__[(r2)>>2](i7); - r1 = r_g0; - if(uint(r0) >uint(9)) //_LBB822_204 -{ - r2 = r0; -} -else{ - r2 = _ZL13s_file_stdout; -} - r3 = r2 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+7)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = 0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r2 = (r1 + 1)|0; - heap32[(g0)] = r2; - malloc(i7); - r2 = r_g0; - if(uint(r0) > 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+1)]; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 1; - heap32[(g0+3)] = r1; - r5 = 0; - __FUNCTION_TABLE__[(r4)>>2](i7); - heap8[r2+r1] = r5; -} -else{ - r3 = r0 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+1)]; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = 1; - heap32[(g0+3)] = r1; - r4 = 0; - __FUNCTION_TABLE__[(r3)>>2](i7); - heap8[r2+r1] = r4; - r3 = r0; -} - r4 = r3 >> 2; - r4 = heap32[(r4)]; - r4 = r4 >> 2; - r4 = heap32[(r4+4)]; - heap32[(g0)] = r3; - __FUNCTION_TABLE__[(r4)>>2](i7); -if(!(uint(r0) > 2; - heap8[r2+r7] = r8; - r10 = heap32[(r9)]; - r5 = (r7 + 2)|0; - r3 = r3 == 0 ? r10 : r3; -_289: while(true){ - r7 = heapU8[r3]; - if(r7 ==0) //_LBB822_235 -{ -__label__ = 224; -break _289; -} -else{ - r10 = r8; -_292: while(true){ - if(r10 ==-1) //_LBB822_224 -{ -__label__ = 214; -break _289; -} -else{ - r11 = _2E_str4133; - r11 = (r11 - r10)|0; - r12 = r7 & 255; - r11 = heapU8[r11]; - if(r12 !=r11) //_LBB822_218 -{ - r10 = (r10 + -1)|0; -} -else{ -break _292; -} -} -} - r3 = (r3 + 1)|0; -} -} -if (__label__ == 214){ -if(!(r7 ==0)) //_LBB822_235 -{ - r7 = r3; -_300: while(true){ - r8 = heapU8[r7]; - if(r8 ==0) //_LBB822_232 -{ -break _300; -} -else{ - r10 = 1; -_303: while(true){ - if(r10 !=0) //_LBB822_226 -{ - r11 = _2E_str4133; - r11 = (r11 - r10)|0; - r12 = r8 & 255; - r11 = heapU8[r11+1]; - if(r12 ==r11) //_LBB822_232 -{ -break _300; -} -else{ - r10 = (r10 + -1)|0; -} -} -else{ -break _303; -} -} - r7 = (r7 + 1)|0; -} -} - r8 = heapU8[r7]; - if(r8 !=0) //_LBB822_234 -{ - r8 = (r7 + 1)|0; - r10 = 0; - heap8[r7] = r10; - r7 = r8; -} - heap32[(r9)] = r7; - r8 = _2E_str3782; - heap32[(g0)] = r8; - heap32[(g0+1)] = r3; - strcmp(i7); - r8 = r_g0; - if(r8 !=0) //_LBB822_341 -{ - r8 = _2E_str5784; - heap32[(g0)] = r8; - heap32[(g0+1)] = r3; - strcmp(i7); - r8 = r_g0; - if(r8 !=0) //_LBB822_385 -{ - r7 = _2E_str6785; - heap32[(g0)] = r7; - heap32[(g0+1)] = r3; - r3 = -1; - strcmp(i7); - r7 = r_g0; - if(r7 !=0) //_LBB822_387 -{ -continue _280; -} -else{ -continue _278; -} -} -else{ -break _280; -} -} -else{ -_315: while(true){ - r3 = heapU8[r7]; - if(r3 ==0) //_LBB822_255 -{ -__label__ = 242; -break _315; -} -else{ - r8 = 0; -_318: while(true){ - if(r8 ==-1) //_LBB822_244 -{ -__label__ = 232; -break _315; -} -else{ - r10 = _2E_str4133; - r10 = (r10 - r8)|0; - r11 = r3 & 255; - r10 = heapU8[r10]; - if(r11 !=r10) //_LBB822_238 -{ - r8 = (r8 + -1)|0; -} -else{ -break _318; -} -} -} - r7 = (r7 + 1)|0; -} -} -_323: do { -if (__label__ == 232){ - if(r3 ==0) //_LBB822_255 -{ -__label__ = 242; -} -else{ - r3 = r7; -_326: while(true){ - r8 = heapU8[r3]; - if(r8 ==0) //_LBB822_252 -{ -break _326; -} -else{ - r10 = 1; -_329: while(true){ - if(r10 !=0) //_LBB822_246 -{ - r11 = _2E_str4133; - r11 = (r11 - r10)|0; - r12 = r8 & 255; - r11 = heapU8[r11+1]; - if(r12 ==r11) //_LBB822_252 -{ -break _326; -} -else{ - r10 = (r10 + -1)|0; -} -} -else{ -break _329; -} -} - r3 = (r3 + 1)|0; -} -} - r8 = heapU8[r3]; - if(r8 !=0) //_LBB822_254 -{ - r8 = (r3 + 1)|0; - r10 = 0; - heap8[r3] = r10; - r3 = r8; -} - heap32[(r9)] = r3; -_338: while(true){ - r8 = heapU8[r3]; - if(r8 ==0) //_LBB822_274 -{ -__label__ = 260; -break _338; -} -else{ - r10 = 0; -_341: while(true){ - if(r10 ==-1) //_LBB822_263 -{ -__label__ = 250; -break _338; -} -else{ - r11 = _2E_str4133; - r11 = (r11 - r10)|0; - r12 = r8 & 255; - r11 = heapU8[r11]; - if(r12 !=r11) //_LBB822_257 -{ - r10 = (r10 + -1)|0; -} -else{ -break _341; -} -} -} - r3 = (r3 + 1)|0; -} -} -if (__label__ == 250){ -if(!(r8 ==0)) //_LBB822_274 -{ - r8 = r3; -_349: while(true){ - r10 = heapU8[r8]; - if(r10 ==0) //_LBB822_271 -{ -break _349; -} -else{ - r11 = 1; -_352: while(true){ - if(r11 !=0) //_LBB822_265 -{ - r12 = _2E_str4133; - r12 = (r12 - r11)|0; - r13 = r10 & 255; - r12 = heapU8[r12+1]; - if(r13 ==r12) //_LBB822_271 -{ -break _349; -} -else{ - r11 = (r11 + -1)|0; -} -} -else{ -break _352; -} -} - r8 = (r8 + 1)|0; -} -} - r10 = heapU8[r8]; - if(r10 !=0) //_LBB822_273 -{ - r10 = (r8 + 1)|0; - r11 = 0; - heap8[r8] = r11; - r8 = r10; -} - heap32[(r9)] = r8; -_361: while(true){ - r10 = heapU8[r8]; - if(r10 ==0) //_LBB822_293 -{ -__label__ = 278; -break _361; -} -else{ - r11 = 0; -_364: while(true){ - if(r11 ==-1) //_LBB822_282 -{ -__label__ = 268; -break _361; -} -else{ - r12 = _2E_str4133; - r12 = (r12 - r11)|0; - r13 = r10 & 255; - r12 = heapU8[r12]; - if(r13 !=r12) //_LBB822_276 -{ - r11 = (r11 + -1)|0; -} -else{ -break _364; -} -} -} - r8 = (r8 + 1)|0; -} -} -if (__label__ == 268){ -if(!(r10 ==0)) //_LBB822_293 -{ - r10 = r8; -_372: while(true){ - r11 = heapU8[r10]; - if(r11 ==0) //_LBB822_290 -{ -break _372; -} -else{ - r12 = 1; -_375: while(true){ - if(r12 !=0) //_LBB822_284 -{ - r13 = _2E_str4133; - r13 = (r13 - r12)|0; - r14 = r11 & 255; - r13 = heapU8[r13+1]; - if(r14 ==r13) //_LBB822_290 -{ -break _372; -} -else{ - r12 = (r12 + -1)|0; -} -} -else{ -break _375; -} -} - r10 = (r10 + 1)|0; -} -} - r11 = heapU8[r10]; - if(r11 !=0) //_LBB822_292 -{ - r11 = (r10 + 1)|0; - r12 = 0; - heap8[r10] = r12; - r10 = r11; -} - heap32[(r9)] = r10; -_384: while(true){ - r11 = heapU8[r10]; - if(r11 ==0) //_LBB822_312 -{ -__label__ = 296; -break _384; -} -else{ - r12 = 0; -_387: while(true){ - if(r12 ==-1) //_LBB822_301 -{ -__label__ = 286; -break _384; -} -else{ - r13 = _2E_str4133; - r13 = (r13 - r12)|0; - r14 = r11 & 255; - r13 = heapU8[r13]; - if(r14 !=r13) //_LBB822_295 -{ - r12 = (r12 + -1)|0; -} -else{ -break _387; -} -} -} - r10 = (r10 + 1)|0; -} -} -if (__label__ == 286){ -if(!(r11 ==0)) //_LBB822_312 -{ - r11 = r10; -_395: while(true){ - r12 = heapU8[r11]; - if(r12 ==0) //_LBB822_309 -{ -break _395; -} -else{ - r13 = 1; -_398: while(true){ - if(r13 !=0) //_LBB822_303 -{ - r14 = _2E_str4133; - r14 = (r14 - r13)|0; - r15 = r12 & 255; - r14 = heapU8[r14+1]; - if(r15 ==r14) //_LBB822_309 -{ -break _395; -} -else{ - r13 = (r13 + -1)|0; -} -} -else{ -break _398; -} -} - r11 = (r11 + 1)|0; -} -} - r12 = heapU8[r11]; - if(r12 !=0) //_LBB822_311 -{ - r12 = (r11 + 1)|0; - r13 = 0; - heap8[r11] = r13; - r11 = r12; -} - heap32[(r9)] = r11; -_407: while(true){ - r12 = heapU8[r11]; - if(r12 ==0) //_LBB822_331 -{ -__label__ = 314; -break _407; -} -else{ - r13 = 0; -_410: while(true){ - if(r13 ==-1) //_LBB822_320 -{ -__label__ = 304; -break _407; -} -else{ - r14 = _2E_str4133; - r14 = (r14 - r13)|0; - r15 = r12 & 255; - r14 = heapU8[r14]; - if(r15 !=r14) //_LBB822_314 -{ - r13 = (r13 + -1)|0; -} -else{ -break _410; -} -} -} - r11 = (r11 + 1)|0; -} -} -if (__label__ == 304){ -if(!(r12 ==0)) //_LBB822_331 -{ - r12 = r11; -_418: while(true){ - r13 = heapU8[r12]; - if(r13 ==0) //_LBB822_328 -{ -break _418; -} -else{ - r14 = 1; -_421: while(true){ - if(r14 !=0) //_LBB822_322 -{ - r15 = _2E_str4133; - r15 = (r15 - r14)|0; - r16 = r13 & 255; - r15 = heapU8[r15+1]; - if(r16 ==r15) //_LBB822_328 -{ -break _418; -} -else{ - r14 = (r14 + -1)|0; -} -} -else{ -break _421; -} -} - r12 = (r12 + 1)|0; -} -} - r13 = heapU8[r12]; - if(r13 !=0) //_LBB822_330 -{ - r13 = (r12 + 1)|0; - r14 = 0; - heap8[r12] = r14; - r12 = r13; -} - heap32[(r9)] = r12; - if(r8 ==0) //_LBB822_340 -{ -__label__ = 323; -break _323; -} -else{ - if(r11 ==0) //_LBB822_340 -{ -__label__ = 323; -break _323; -} -else{ - heap32[(g0)] = 284; - _Znwj(i7); - r9 = r_g0; - heap32[(g0)] = r3; - heap32[(g0+1)] = 0; - r3 = r9 >> 2; - strtol(i7); - heap32[(r3+65)] = r_g0; - heap32[(g0)] = r8; - heap32[(g0+1)] = 0; - strtol(i7); - heap32[(r3+66)] = r_g0; - heap32[(g0)] = r10; - heap32[(g0+1)] = 0; - strtol(i7); - heap32[(r3+67)] = r_g0; - heap32[(g0)] = r11; - heap32[(g0+1)] = 0; - strtol(i7); - heap32[(r3+69)] = r_g0; - r7 = (r7 + 1)|0; - r8 = 0; - heap32[(r3+68)] = r4; - heap32[(r3+64)] = r6; - r3 = r9; -_432: while(true){ - r10 = heapU8[r7]; - if(r10 ==0) //_LBB822_339 -{ -break _432; -} -else{ - r11 = r10 << 24; - r11 = r11 >> 24; - r11 = (r11 + -65)|0; - r12 = 26; - r13 = (r10 + 32)|0; - r10 = uint(r11) < uint(r12) ? r13 : r10; - r11 = r10 & 255; - r12 = 47; - r10 = r11 == 92 ? r12 : r10; - r7 = (r7 + 1)|0; - r11 = r10 & 255; -if(!(r11 !=47)) //_LBB822_338 -{ - r11 = r8 & 255; - r8 = r10; - if(r11 ==47) //_LBB822_335 -{ -continue _432; -} -} - r8 = (r3 + 1)|0; - heap8[r3] = r10; - r3 = r8; - r8 = r10; -} -} - r7 = _ZL24g_pFirstTextureAsyncInfo; - r8 = 0; - r7 = r7 >> 2; - heap8[r3] = r8; - r3 = r9 >> 2; - r8 = heap32[(r7)]; - heap32[(r3+70)] = r8; - heap32[(r7)] = r9; - r3 = heap32[(r3+69)]; - r4 = (r3 + r4)|0; -continue _280; -} -} -} -} - heap32[(r9)] = r11; -__label__ = 323; -break _323; -} -} - heap32[(r9)] = r10; -__label__ = 323; -break _323; -} -} - heap32[(r9)] = r8; -__label__ = 323; -break _323; -} -} - heap32[(r9)] = r3; -__label__ = 323; -} -} -} while(0); -if (__label__ == 242){ - heap32[(r9)] = r7; -} - r3 = _2E_str4783; - heap32[(g0)] = r3; - _printf_warning(i7); -continue _280; -} -} -} - heap32[(r9)] = r3; -} -else{ -break _278; -} -} -_447: while(true){ - r3 = heapU8[r7]; - if(r3 ==0) //_LBB822_349 -{ -__label__ = 331; -break _447; -} -else{ - r4 = 0; -_450: while(true){ - if(r4 ==-1) //_LBB822_350 -{ -__label__ = 332; -break _447; -} -else{ - r8 = _2E_str4133; - r8 = (r8 - r4)|0; - r10 = r3 & 255; - r8 = heapU8[r8]; - if(r10 !=r8) //_LBB822_343 -{ - r4 = (r4 + -1)|0; -} -else{ -break _450; -} -} -} - r7 = (r7 + 1)|0; -} -} -if (__label__ == 332){ - if(r3 ==0) //_LBB822_349 -{ -__label__ = 331; -} -else{ - r3 = r7; -_458: while(true){ - r4 = heapU8[r3]; - if(r4 ==0) //_LBB822_358 -{ -break _458; -} -else{ - r8 = 1; -_461: while(true){ - if(r8 !=0) //_LBB822_352 -{ - r10 = _2E_str4133; - r10 = (r10 - r8)|0; - r11 = r4 & 255; - r10 = heapU8[r10+1]; - if(r11 ==r10) //_LBB822_358 -{ -break _458; -} -else{ - r8 = (r8 + -1)|0; -} -} -else{ -break _461; -} -} - r3 = (r3 + 1)|0; -} -} - r4 = heapU8[r3]; - if(r4 !=0) //_LBB822_360 -{ - r8 = (r3 + 1)|0; - r4 = 0; - heap8[r3] = r4; - r4 = r7; - r7 = r8; -__label__ = 343; -} -else{ - r4 = r7; - r7 = r3; -__label__ = 343; -} -} -} -if (__label__ == 331){ - r4 = 0; -} - heap32[(r9)] = r7; -_473: while(true){ - r3 = heapU8[r7]; - if(r3 ==0) //_LBB822_368 -{ -__label__ = 359; -break _473; -} -else{ - r8 = 0; -_476: while(true){ - if(r8 ==-1) //_LBB822_369 -{ -__label__ = 350; -break _473; -} -else{ - r10 = _2E_str4133; - r10 = (r10 - r8)|0; - r11 = r3 & 255; - r10 = heapU8[r10]; - if(r11 !=r10) //_LBB822_362 -{ - r8 = (r8 + -1)|0; -} -else{ -break _476; -} -} -} - r7 = (r7 + 1)|0; -} -} -if (__label__ == 350){ -if(!(r3 ==0)) //_LBB822_368 -{ -_483: while(true){ - r3 = heapU8[r7]; - if(r3 ==0) //_LBB822_377 -{ -break _483; -} -else{ - r8 = 1; -_486: while(true){ - if(r8 !=0) //_LBB822_371 -{ - r10 = _2E_str4133; - r10 = (r10 - r8)|0; - r11 = r3 & 255; - r10 = heapU8[r10+1]; - if(r11 ==r10) //_LBB822_377 -{ -break _483; -} -else{ - r8 = (r8 + -1)|0; -} -} -else{ -break _486; -} -} - r7 = (r7 + 1)|0; -} -} - r3 = heapU8[r7]; - if(r3 !=0) //_LBB822_379 -{ - r3 = (r7 + 1)|0; - r8 = 0; - heap8[r7] = r8; - r7 = r3; -} -} -} - r3 = (r6 + 1)|0; - heap32[(r9)] = r7; - r7 = heapU8[r4]; -_494: do { - if(r7 ==0) //_LBB822_382 -{ - r8 = 1; -} -else{ - r7 = 1; -_497: while(true){ - r8 = (r7 + 1)|0; - r9 = heapU8[r4+r7]; - r7 = r8; -if(!(r9 !=0)) //_LBB822_383 -{ -break _494; -} -} -} -} while(0); - r7 = _ZL17g_apPackFileNames; - r6 = r6 << 2; - r6 = (r7 + r6)|0; - heap32[(g0)] = r8; - r6 = r6 >> 2; - _Znaj(i7); - heap32[(r6+1)] = r_g0; - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r4; - r4 = 0; - strcpy(i7); -} - heap32[(g0)] = r2; - free(i7); -} -} - r0 = sp + -2440; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - r1 = _ZGVZ21Mandreel_GetTickCountE7s_first; - gettimeofday(i7); - r2 = heapU8[r1]; -if(!(r2 !=0)) //_LBB822_391 -{ - r2 = heap32[(fp+-610)]; - r3 = r2 >> 31; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = 1000000; - heap32[(g0+3)] = 0; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - __muldi3(i7); - r4 = 1; - r5 = (r_g0 + r0)|0; - r6 = 0; - r7 = r0 >> 31; - r2 = uint(r5) < uint(r_g0) ? r4 : r6; - r6 = _ZZ21Mandreel_GetTickCountE7s_first; - r3 = (r_g1 + r7)|0; - r0 = uint(r5) < uint(r0) ? r4 : r2; - r2 = r6 >> 2; - r0 = (r3 + r0)|0; - heap32[(r2)] = r5; - heap32[(r2+1)] = r0; - heap8[r1] = r4; -} - return; -} -else{ - r2 = _2E_str34255; - r0 = _2E_str1222; - heap32[(g0)] = r2; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = 307; - _assert(i7); -} -} - -function __forceSuperLink(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - __mandreel_internal_init(i7); - r0 = sp + -8; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - r1 = _ZGVZ21Mandreel_GetTickCountE7s_first; - gettimeofday(i7); - r2 = heapU8[r1]; -if(!(r2 !=0)) //_LBB823_2 -{ - r2 = heap32[(fp+-2)]; - r3 = r2 >> 31; - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = 1000000; - heap32[(g0+3)] = 0; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - __muldi3(i7); - r4 = 1; - r5 = (r_g0 + r0)|0; - r6 = 0; - r7 = r0 >> 31; - r2 = uint(r5) < uint(r_g0) ? r4 : r6; - r6 = _ZZ21Mandreel_GetTickCountE7s_first; - r3 = (r_g1 + r7)|0; - r0 = uint(r5) < uint(r0) ? r4 : r2; - r2 = r6 >> 2; - r0 = (r3 + r0)|0; - heap32[(r2)] = r5; - heap32[(r2+1)] = r0; - heap8[r1] = r4; -} - r0 = _ZZ29__mandreel_internal_preupdateE8s_bfirst_2E_b; - r1 = heapU8[r0]; -if(!(r1 != 0)) //_LBB823_4 -{ - r1 = 1; - heap8[r0] = r1; -} - return; -} - -function _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = sp + -16; - r1 = r0 >> 2; - heap32[(fp+-4)] = 0; - heap32[(r1+1)] = 0; - r2 = heap32[(fp)]; - heap32[(r1+2)] = 16; - r3 = r2 >> 2; - heap32[(r1+3)] = 0; - r4 = heap32[(fp+2)]; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r4 = r4 >> 2; - r3 = heap32[(r3+5)]; - r5 = heap32[(r4)]; - r6 = heap32[(fp+1)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r6; - heap32[(g0+2)] = r5; - heap32[(g0+3)] = r0; - __FUNCTION_TABLE__[(r3)>>2](i7); - r0 = heap32[(r1+1)]; - r0 = r0 & 6; - if(r0 !=6) //_LBB824_2 -{ - r0 = 0; - r_g0 = r0; - return; -} -else{ - r0 = heap32[(fp+-4)]; - heap32[(r4)] = r0; - r0 = 1; - r_g0 = r0; - return; -} -} - -function _ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp+4)]; - r1 = heap32[(fp+2)]; - r2 = 6; - r3 = 1; - r0 = r0 == r1 ? r2 : r3; - r_g0 = r0; - return; -} - -function _ZNKSt9type_info10__do_catchEPKS_PPvj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - r0 = heap32[(r0+1)]; - r1 = heap32[(r1+1)]; - r2 = _2E_str26; - r0 = r0 == 0 ? r2 : r0; - r1 = r1 == 0 ? r2 : r1; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - strcmp(i7); - r2 = r_g0; - if(r2 <0) //_LBB826_2 -{ - r0 = 0; - r_g0 = r0; - return; -} -else{ - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - strcmp(i7); - r0 = r_g0 >>> 31; - r0 = r0 ^ 1; - r_g0 = r0; - return; -} -} - -function _ZN10__cxxabiv117__class_type_infoD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVSt9type_info; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN10__cxxabiv117__class_type_infoD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVSt9type_info; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - r0 = heap32[(r0+1)]; - r1 = heap32[(r1+1)]; - r2 = _2E_str26; - r0 = r0 == 0 ? r2 : r0; - r1 = r1 == 0 ? r2 : r1; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - strcmp(i7); - r2 = r_g0; - if(r2 >-1) //_LBB829_2 -{ - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - r0 = -1; - strcmp(i7); - r0 = r_g0 > r0; -} -else{ - r0 = 0; -} - r0 = r0 & 1; - r_g0 = r0; - return; -} - -function _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = r1 >> 2; - r0 = heap32[(r0+1)]; - r1 = heap32[(r1+1)]; - r2 = _2E_str26; - r0 = r0 == 0 ? r2 : r0; - r1 = r1 == 0 ? r2 : r1; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - strcmp(i7); - r2 = r_g0; -if(!(r2 <0)) //_LBB830_3 -{ - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - strcmp(i7); - r0 = r_g0; -if(!(r0 <0)) //_LBB830_3 -{ - r0 = heap32[(fp+2)]; - r1 = heap32[(fp+3)]; - r1 = r1 >> 2; - heap32[(r1)] = r0; - heap32[(r1+3)] = 8; - heap32[(r1+1)] = 6; - r0 = 1; - r_g0 = r0; - return; -} -} - r0 = 0; - r_g0 = r0; - return; -} - -function _ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r0 = r0 >> 2; - r1 = heap32[(fp+4)]; - r2 = heap32[(fp+2)]; - r3 = heap32[(fp+7)]; - r0 = heap32[(r0+1)]; - r4 = heap32[(fp+6)]; -if(!(r1 !=r4)) //_LBB831_3 -{ - r4 = heap32[(fp+5)]; - r4 = r4 >> 2; - r4 = heap32[(r4+1)]; - r5 = _2E_str26; - r4 = r4 == 0 ? r5 : r4; - r5 = r0 == 0 ? r5 : r0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - strcmp(i7); - r6 = r_g0; -if(!(r6 <0)) //_LBB831_3 -{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - strcmp(i7); - r4 = r_g0; - if(r4 >-1) //_LBB831_5 -{ - r1 = r3 >> 2; - heap32[(r1+2)] = r2; - r1 = 0; - r_g0 = r1; - return; -} -} -} - r4 = heap32[(fp+3)]; - r4 = r4 >> 2; - r4 = heap32[(r4+1)]; - r5 = _2E_str26; - r4 = r4 == 0 ? r5 : r4; - r0 = r0 == 0 ? r5 : r0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r4; - strcmp(i7); - r5 = r_g0; -if(!(r5 <0)) //_LBB831_7 -{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r0; - strcmp(i7); - r0 = r_g0; -if(!(r0 <0)) //_LBB831_7 -{ - r0 = r3 >> 2; - heap32[(r0)] = r1; - heap32[(r0+1)] = r2; - heap32[(r0+3)] = 1; -} -} - r0 = 0; - r_g0 = r0; - return; -} - -function _ZN10__cxxabiv120__si_class_type_infoD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVSt9type_info; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function _ZN10__cxxabiv120__si_class_type_infoD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVSt9type_info; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = r0 >> 2; - r1 = r1 >> 2; - r2 = heap32[(r2+1)]; - r3 = heap32[(r1+1)]; - r4 = _2E_str26; - r2 = r2 == 0 ? r4 : r2; - r3 = r3 == 0 ? r4 : r3; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - r4 = heap32[(fp+2)]; - r5 = heap32[(fp+3)]; - strcmp(i7); - r6 = r_g0; -if(!(r6 <0)) //_LBB834_2 -{ - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - strcmp(i7); - r2 = r_g0; - if(r2 >-1) //_LBB834_3 -{ - r0 = r5 >> 2; - heap32[(r0)] = r4; - heap32[(r0+3)] = 8; - heap32[(r0+1)] = 6; - r0 = 1; - r_g0 = r0; - return; -} -} - r1 = heap32[(r1+2)]; - r2 = r1 >> 2; - r2 = heap32[(r2)]; - r2 = r2 >> 2; - r2 = heap32[(r2+5)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r5; - __FUNCTION_TABLE__[(r2)>>2](i7); - return; -} - -function _ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = heap32[(fp+3)]; - r1 = heap32[(fp)]; - r2 = r0 >> 2; - r1 = r1 >> 2; - r2 = heap32[(r2+1)]; - r3 = heap32[(r1+1)]; - r4 = _2E_str26; - r2 = r2 == 0 ? r4 : r2; - r3 = r3 == 0 ? r4 : r3; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - r5 = heap32[(fp+1)]; - r6 = heap32[(fp+2)]; - r7 = heap32[(fp+4)]; - r8 = heap32[(fp+6)]; - r9 = heap32[(fp+7)]; - strcmp(i7); - r10 = r_g0; - if(r10 <0) //_LBB835_6 -{ -__label__ = 6; -} -else{ - heap32[(g0)] = r2; - heap32[(g0+1)] = r3; - strcmp(i7); - r2 = r_g0; - if(r2 <0) //_LBB835_6 -{ -__label__ = 6; -} -else{ - r0 = r9 >> 2; - heap32[(r0)] = r7; - heap32[(r0+1)] = r6; - if(r5 <0) //_LBB835_4 -{ - if(r5 !=-2) //_LBB835_11 -{ -__label__ = 11; -} -else{ - heap32[(r0+3)] = 1; -__label__ = 11; -} -} -else{ - r1 = (r7 + r5)|0; - r3 = 6; - r4 = 1; - r1 = r1 == r8 ? r3 : r4; - heap32[(r0+3)] = r1; -__label__ = 11; -} -} -} -_8: do { -if (__label__ == 6){ - r2 = heap32[(fp+5)]; -if(!(r7 !=r8)) //_LBB835_9 -{ - r10 = r2 >> 2; - r10 = heap32[(r10+1)]; - r4 = r10 == 0 ? r4 : r10; - heap32[(g0)] = r3; - heap32[(g0+1)] = r4; - strcmp(i7); - r10 = r_g0; -if(!(r10 <0)) //_LBB835_9 -{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r3; - strcmp(i7); - r3 = r_g0; - if(r3 >-1) //_LBB835_10 -{ - r0 = r9 >> 2; - heap32[(r0+2)] = r6; -break _8; -} -} -} - r1 = heap32[(r1+2)]; - r3 = r1 >> 2; - r3 = heap32[(r3)]; - r3 = r3 >> 2; - r3 = heap32[(r3+6)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r5; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r0; - heap32[(g0+4)] = r7; - heap32[(g0+5)] = r2; - heap32[(g0+6)] = r8; - heap32[(g0+7)] = r9; - __FUNCTION_TABLE__[(r3)>>2](i7); - return; -} -} while(0); - r0 = 0; - r_g0 = r0; - return; -} - -function _ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp+4)]; - r1 = heap32[(fp+2)]; - r2 = heap32[(fp)]; - r3 = heap32[(fp+3)]; -if(!(r0 !=r1)) //_LBB836_3 -{ - r4 = r3 >> 2; - r5 = r2 >> 2; - r4 = heap32[(r4+1)]; - r5 = heap32[(r5+1)]; - r6 = _2E_str26; - r4 = r4 == 0 ? r6 : r4; - r5 = r5 == 0 ? r6 : r5; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - strcmp(i7); - r6 = r_g0; -if(!(r6 <0)) //_LBB836_3 -{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - strcmp(i7); - r4 = r_g0; - if(r4 >-1) //_LBB836_4 -{ - r0 = 6; - r_g0 = r0; - return; -} -} -} - r4 = heap32[(fp+1)]; - r2 = r2 >> 2; - r2 = heap32[(r2+2)]; - r5 = r2 >> 2; - r5 = heap32[(r5)]; - r5 = r5 >> 2; - r5 = heap32[(r5+7)]; - heap32[(g0)] = r2; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r0; - __FUNCTION_TABLE__[(r5)>>2](i7); - return; -} - -function _ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = r0 >> 2; - r3 = r1 >> 2; - r2 = heap32[(r2+1)]; - r4 = heap32[(r3+1)]; - r5 = _2E_str26; - r2 = r2 == 0 ? r5 : r2; - r4 = r4 == 0 ? r5 : r4; - heap32[(g0)] = r4; - heap32[(g0+1)] = r2; - r6 = heap32[(fp+2)]; - r7 = heap32[(fp+3)]; - strcmp(i7); - r8 = r_g0; - if(r8 <0) //_LBB837_3 -{ -__label__ = 3; -} -else{ - heap32[(g0)] = r2; - heap32[(g0+1)] = r4; - strcmp(i7); - r2 = r_g0; - if(r2 <0) //_LBB837_3 -{ -__label__ = 3; -} -else{ - r0 = r7 >> 2; - heap32[(r0)] = r6; - heap32[(r0+3)] = 8; - heap32[(r0+1)] = 6; -__label__ = 39; -} -} -_4: do { -if (__label__ == 3){ - r2 = r7 >> 2; - r4 = heap32[(r2+2)]; - r7 = r4 & 16; - if(r7 !=0) //_LBB837_5 -{ - r4 = heap32[(r3+2)]; -} - r3 = heap32[(r3+3)]; - r7 = r4 & 1; - r3 = (r3 + 1)|0; -_9: while(true){ - if(r3 !=1) //_LBB837_7 -{ - r8 = sp + -16; - r9 = r8 >> 2; - heap32[(fp+-4)] = 0; - r10 = r3 << 3; - heap32[(r9+1)] = 0; - r10 = (r1 + r10)|0; - heap32[(r9+2)] = r4; - r10 = r10 >> 2; - heap32[(r9+3)] = 0; - r10 = heap32[(r10+1)]; - r11 = r10 & 2; - if(r7 !=0) //_LBB837_10 -{ -__label__ = 9; -} -else{ - r12 = r11 >>> 1; - if(r12 != 0) //_LBB837_10 -{ -__label__ = 9; -} -else{ -__label__ = 8; -} -} -if (__label__ == 9){ - r12 = r3 << 1; - r13 = r10 & 1; - if(r6 !=0) //_LBB837_12 -{ - r10 = r10 >> 8; - if(r13 != 0) //_LBB837_14 -{ - r14 = r6 >> 2; - r14 = heap32[(r14)]; - r10 = (r14 + r10)|0; - r10 = r10 >> 2; - r10 = heap32[(r10)]; -} - r10 = (r6 + r10)|0; -} -else{ - r10 = 0; -} - r12 = r12 << 2; - r12 = (r1 + r12)|0; - r12 = r12 >> 2; - r14 = heap32[(r12)]; - r15 = r14 >> 2; - r15 = heap32[(r15)]; - r15 = r15 >> 2; - r15 = heap32[(r15+5)]; - heap32[(g0)] = r14; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r8; - __FUNCTION_TABLE__[(r15)>>2](i7); - r8 = r_g0; -if(!(r8 ==0)) //_LBB837_9 -{ - r8 = heap32[(r9+3)]; -if(!(r8 !=8)) //_LBB837_19 -{ - if(r13 != 0) //_LBB837_20 -{ - r8 = heap32[(r12)]; - heap32[(r9+3)] = r8; -} -} - r10 = heap32[(r9+1)]; -if(!(r10 <4)) //_LBB837_23 -{ - if(r11 ==0) //_LBB837_24 -{ - r10 = r10 & -3; - heap32[(r9+1)] = r10; -} -} - r11 = heap32[(r2+3)]; - if(r11 !=0) //_LBB837_31 -{ - r9 = heap32[(r2)]; - r12 = heap32[(fp+-4)]; - if(r9 ==r12) //_LBB837_33 -{ - if(r9 ==0) //_LBB837_35 -{ - if(r8 ==8) //_LBB837_39 -{ -__label__ = 35; -break _9; -} -else{ - if(r11 ==8) //_LBB837_39 -{ -__label__ = 35; -break _9; -} -else{ - r9 = r11 >> 2; - r8 = r8 >> 2; - r9 = heap32[(r9+1)]; - r8 = heap32[(r8+1)]; - r9 = r9 == 0 ? r5 : r9; - r8 = r8 == 0 ? r5 : r8; - heap32[(g0)] = r8; - heap32[(g0+1)] = r9; - strcmp(i7); - r11 = r_g0; - if(r11 <0) //_LBB837_39 -{ -__label__ = 35; -break _9; -} -else{ - heap32[(g0)] = r9; - heap32[(g0+1)] = r8; - strcmp(i7); - r8 = r_g0; - if(r8 >-1) //_LBB837_40 -{ - r8 = heap32[(r2+1)]; - r8 = r10 | r8; - heap32[(r2+1)] = r8; -} -else{ -__label__ = 35; -break _9; -} -} -} -} -} -else{ - r8 = heap32[(r2+1)]; - r8 = r10 | r8; - heap32[(r2+1)] = r8; -} -} -else{ -__label__ = 28; -break _9; -} -} -else{ - r11 = heap32[(fp+-4)]; - heap32[(r2)] = r11; - heap32[(r2+1)] = r10; - r11 = heap32[(r9+2)]; - heap32[(r2+2)] = r11; - heap32[(r2+3)] = r8; - if(r10 <4) //_LBB837_43 -{ -break _4; -} -else{ - r8 = r10 & 2; - if(r8 ==0) //_LBB837_29 -{ - r8 = r10 & 1; - if(r8 ==0) //_LBB837_43 -{ -break _4; -} -else{ - r8 = heapU8[r1+8]; - r8 = r8 & 2; - if(r8 ==0) //_LBB837_43 -{ -break _4; -} -} -} -else{ - r8 = heapU8[r1+8]; - r8 = r8 & 1; - if(r8 ==0) //_LBB837_43 -{ -break _4; -} -} -} -} -} -} - r3 = (r3 + -1)|0; -continue _9; -} -else{ -__label__ = 38; -break _9; -} -} -switch(__label__ ){//multiple entries -case 38: - r0 = heap32[(r2+1)]; - r1 = 0; - r0 = r0 != r1; - r0 = r0 & 1; - r_g0 = r0; - return; -break; -case 28: - heap32[(r2)] = 0; -break; -} - heap32[(r2+1)] = 2; -} -} while(0); - r0 = 1; - r_g0 = r0; - return; -} - -function _ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; - var r17; - var r18; - var r19; - var r20; - var r21; - var r22; - var r23; -var __label__ = 0; - i7 = sp + -56;var g0 = i7>>2; // save stack - r0 = heap32[(fp+7)]; - r0 = r0 >> 2; - r1 = heap32[(r0+4)]; - r2 = heap32[(fp)]; - r3 = heap32[(fp+1)]; - r4 = heap32[(fp+2)]; - r5 = heap32[(fp+3)]; - r6 = heap32[(fp+4)]; - r7 = heap32[(fp+5)]; - r8 = heap32[(fp+6)]; - r9 = r1 & 16; - if(r9 !=0) //_LBB838_2 -{ - r1 = r2 >> 2; - r1 = heap32[(r1+2)]; - heap32[(r0+4)] = r1; -} - r9 = r2 >> 2; - r10 = heap32[(r9+1)]; - if(r6 !=r8) //_LBB838_6 -{ -__label__ = 5; -} -else{ - r11 = r7 >> 2; - r11 = heap32[(r11+1)]; - r12 = _2E_str26; - r11 = r11 == 0 ? r12 : r11; - r12 = r10 == 0 ? r12 : r10; - heap32[(g0)] = r12; - heap32[(g0+1)] = r11; - strcmp(i7); - r13 = r_g0; - if(r13 <0) //_LBB838_6 -{ -__label__ = 5; -} -else{ - heap32[(g0)] = r11; - heap32[(g0+1)] = r12; - strcmp(i7); - r11 = r_g0; - if(r11 >-1) //_LBB838_8 -{ - heap32[(r0+2)] = r4; -__label__ = 8; -} -else{ -__label__ = 5; -} -} -} -_8: do { -if (__label__ == 5){ - r11 = r5 >> 2; - r12 = heap32[(r11+1)]; - r13 = _2E_str26; - r12 = r12 == 0 ? r13 : r12; - r10 = r10 == 0 ? r13 : r10; - heap32[(g0)] = r10; - heap32[(g0+1)] = r12; - strcmp(i7); - r13 = r_g0; - if(r13 <0) //_LBB838_15 -{ -__label__ = 14; -} -else{ - heap32[(g0)] = r12; - heap32[(g0+1)] = r10; - strcmp(i7); - r10 = r_g0; - if(r10 <0) //_LBB838_15 -{ -__label__ = 14; -} -else{ - heap32[(r0)] = r6; - heap32[(r0+1)] = r4; - if(r3 <0) //_LBB838_12 -{ - if(r3 ==-2) //_LBB838_14 -{ - heap32[(r0+3)] = 1; - r9 = 0; - r_g0 = r9; - return; -} -else{ -__label__ = 12; -} -} -else{ - r1 = (r6 + r3)|0; - r2 = 6; - r3 = 1; - r1 = r1 == r8 ? r2 : r3; - heap32[(r0+3)] = r1; -break _8; -} -} -} -_17: do { -if (__label__ == 14){ - r10 = heap32[(r9+3)]; - r12 = r1 & 2; - r9 = 0; - r13 = r1; -_19: while(true){ - r14 = r13 & 3; -_21: while(true){ - r15 = r9; - r9 = r10 << 3; - r9 = (r2 + r9)|0; - r20 = 0; -_23: while(true){ - r16 = r20; - if(r10 !=r16) //_LBB838_16 -{ - r17 = sp + -24; - r18 = r17 >> 2; - heap32[(fp+-6)] = 0; - heap32[(r18+1)] = 0; - heap32[(r18+2)] = 0; - r19 = r16 << 3; - r19 = (r9 - r19)|0; - heap32[(r18+3)] = 0; - r19 = r19 >> 2; - heap32[(r18+4)] = r13; - r20 = heap32[(r19+3)]; - r21 = r20 & 1; - r22 = r20 >> 8; - if(r21 != 0) //_LBB838_18 -{ - r23 = r6 >> 2; - r23 = heap32[(r23)]; - r22 = (r23 + r22)|0; - r22 = r22 >> 2; - r22 = heap32[(r22)]; -} - r20 = r20 & 2; - if(r20 ==0) //_LBB838_21 -{ - if(r3 !=-2) //_LBB838_23 -{ -__label__ = 21; -break _23; -} -else{ - r20 = (r16 + 1)|0; - if(r14 ==0) //_LBB838_88 -{ -continue _23; -} -else{ -__label__ = 21; -break _23; -} -} -} -else{ -__label__ = 18; -break _23; -} -} -else{ -__label__ = 77; -break _19; -} -} -switch(__label__ ){//multiple entries -case 21: - r9 = r4 & -3; -break; -case 18: - r9 = r4; -break; -} - r20 = heap32[(r19+2)]; - r19 = r20 >> 2; - r19 = heap32[(r19)]; - r19 = r19 >> 2; - r19 = heap32[(r19+6)]; - r9 = r21 | r9; - r21 = (r6 + r22)|0; - heap32[(g0)] = r20; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r9; - heap32[(g0+3)] = r5; - heap32[(g0+4)] = r21; - heap32[(g0+5)] = r7; - heap32[(g0+6)] = r8; - heap32[(g0+7)] = r17; - __FUNCTION_TABLE__[(r19)>>2](i7); - r9 = r_g0; - r20 = heap32[(r0+2)]; - r17 = heap32[(r18+2)]; - r20 = r17 | r20; - heap32[(r0+2)] = r20; - r17 = heap32[(r18+3)]; - if(r17 ==2) //_LBB838_26 -{ -__label__ = 24; -break _19; -} -else{ - if(r17 !=6) //_LBB838_27 -{ - r19 = (r10 + -1)|0; - r10 = heap32[(r0)]; - r21 = r15 & 255; - if(r21 !=0) //_LBB838_34 -{ -__label__ = 30; -break _21; -} -else{ - if(r10 !=0) //_LBB838_35 -{ -__label__ = 31; -break _21; -} -else{ - r10 = heap32[(fp+-6)]; - heap32[(r0)] = r10; - r15 = heap32[(r18+1)]; - heap32[(r0+1)] = r15; - if(r10 !=0) //_LBB838_31 -{ - r10 = (r19 - r16)|0; - if(r20 ==0) //_LBB838_87 -{ -continue _21; -} -else{ -__label__ = 29; -break _21; -} -} -else{ -__label__ = 73; -break _21; -} -} -} -} -else{ -__label__ = 24; -break _19; -} -} -} -_40: do { -switch(__label__ ){//multiple entries -case 30: - if(r10 ==0) //_LBB838_37 -{ - r14 = heap32[(fp+-6)]; - r10 = 0; -__label__ = 36; -break _40; -} -else{ -__label__ = 31; -break _40; -} -break; -case 29: - r10 = heapU8[r2+8]; - r10 = r10 & 1; - if(r10 != 0) //_LBB838_30 -{ -__label__ = 73; -} -else{ -__label__ = 78; -break _17; -} -break; -} -} while(0); -if (__label__ == 31){ - r14 = heap32[(fp+-6)]; - if(r10 !=r14) //_LBB838_38 -{ - if(r14 !=0) //_LBB838_40 -{ -__label__ = 39; -} -else{ - if(r9 ==0) //_LBB838_41 -{ -__label__ = 36; -} -else{ -__label__ = 39; -} -} -} -else{ - r9 = heap32[(r0+1)]; - r10 = heap32[(r18+1)]; - r9 = r10 | r9; - heap32[(r0+1)] = r9; - r9 = r15; -__label__ = 73; -} -} -_50: do { -if (__label__ == 36){ -if(!(r14 ==0)) //_LBB838_44 -{ -if(!(r21 ==0)) //_LBB838_44 -{ -__label__ = 39; -break _50; -} -} - r9 = r15; -__label__ = 73; -} -} while(0); -if (__label__ == 39){ - r9 = heap32[(r0+3)]; -_57: do { - if(r20 >3) //_LBB838_47 -{ - r14 = r20 & 1; -if(!(r14 ==0)) //_LBB838_52 -{ -if(!(r12 ==0)) //_LBB838_52 -{ - r13 = r1; -__label__ = 43; -break _57; -} -} - r13 = r14 == 0 ? r13 : r1; - r10 = 1; - r9 = r9 == 0 ? r10 : r9; - if(r17 ==0) //_LBB838_54 -{ - r17 = r10; -__label__ = 64; -} -else{ -__label__ = 64; -} -} -else{ -__label__ = 43; -} -} while(0); -_64: do { -if (__label__ == 43){ - if(r9 <1) //_LBB838_55 -{ -_68: do { -if(!(r17 <4)) //_LBB838_59 -{ - r9 = r17 & 1; - if(r9 != 0) //_LBB838_58 -{ - r9 = heapU8[r2+8]; - r9 = r9 & 2; -if(!(r9 ==0)) //_LBB838_57 -{ -break _68; -} -} - r9 = 1; -break _64; -} -} while(0); - if(r3 <0) //_LBB838_61 -{ - if(r3 !=-2) //_LBB838_63 -{ - r9 = heap32[(r11)]; - r9 = r9 >> 2; - r9 = heap32[(r9+7)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = r8; - __FUNCTION_TABLE__[(r9)>>2](i7); - r9 = r_g0; -} -else{ - r9 = 1; -} -} -else{ - r9 = (r10 + r3)|0; - r10 = 6; - r14 = 1; - r9 = r9 == r8 ? r10 : r14; -} -} - if(r17 <1) //_LBB838_66 -{ - if(r9 <4) //_LBB838_70 -{ -__label__ = 60; -} -else{ - r10 = r9 & 1; - if(r10 != 0) //_LBB838_69 -{ - r10 = heapU8[r2+8]; - r10 = r10 & 2; - if(r10 ==0) //_LBB838_68 -{ -__label__ = 58; -} -else{ -__label__ = 60; -} -} -else{ -__label__ = 58; -} -} -if (__label__ == 60){ - r10 = heap32[(fp+-6)]; - if(r3 <0) //_LBB838_72 -{ -if(!(r3 ==-2)) //_LBB838_68 -{ - r14 = heap32[(r11)]; - r14 = r14 >> 2; - r14 = heap32[(r14+7)]; - heap32[(g0)] = r5; - heap32[(g0+1)] = r3; - heap32[(g0+2)] = r10; - heap32[(g0+3)] = r7; - heap32[(g0+4)] = r8; - __FUNCTION_TABLE__[(r14)>>2](i7); - r17 = r_g0; -break _64; -} -} -else{ - r10 = (r10 + r3)|0; - r14 = 6; - r17 = 1; - r17 = r10 == r8 ? r14 : r17; -break _64; -} -} - r17 = 1; -} -} -} while(0); - r10 = r9 ^ r17; - if(r10 <4) //_LBB838_81 -{ - r9 = r9 & r17; - heap32[(r0)] = 0; - if(r9 <4) //_LBB838_83 -{ - r9 = 1; - heap32[(r0+3)] = 1; -} -else{ -__label__ = 71; -break _19; -} -} -else{ - if(r17 >3) //_LBB838_77 -{ - r9 = heap32[(fp+-6)]; - heap32[(r0)] = r9; - r9 = heap32[(r18+1)]; - r15 = 0; - heap32[(r0+1)] = r9; - r9 = r17; -} - heap32[(r0+3)] = r9; - r10 = r9 & 2; - if(r10 !=0) //_LBB838_13 -{ -__label__ = 12; -break _17; -} -else{ - r9 = r9 & 1; - if(r9 ==0) //_LBB838_13 -{ -__label__ = 12; -break _17; -} -else{ - r9 = r15; -} -} -} -} - r10 = (r19 - r16)|0; - if(r20 !=4) //_LBB838_86 -{ -continue _19; -} -else{ -__label__ = 78; -break _17; -} -} -switch(__label__ ){//multiple entries -case 24: - r20 = heap32[(fp+-6)]; - heap32[(r0)] = r20; - r20 = heap32[(r18+1)]; - heap32[(r0+1)] = r20; - heap32[(r0+3)] = r17; - r_g0 = r9; - return; -break; -case 71: - heap32[(r0+3)] = 2; - r9 = 1; - r_g0 = r9; - return; -break; -case 77: - r9 = r15; -__label__ = 78; -break; -} -} -} while(0); -if (__label__ == 12){ - r9 = 0; -} - r0 = r9 & 255; - r_g0 = r0; - return; -} -} while(0); - r0 = 0; - r_g0 = r0; - return; -} - -function _ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp+4)]; - r2 = heap32[(fp)]; - r3 = heap32[(fp+3)]; - if(r0 !=r1) //_LBB839_4 -{ -__label__ = 4; -} -else{ - r4 = r3 >> 2; - r5 = r2 >> 2; - r4 = heap32[(r4+1)]; - r5 = heap32[(r5+1)]; - r6 = _2E_str26; - r4 = r4 == 0 ? r6 : r4; - r5 = r5 == 0 ? r6 : r5; - heap32[(g0)] = r5; - heap32[(g0+1)] = r4; - strcmp(i7); - r6 = r_g0; - if(r6 <0) //_LBB839_4 -{ -__label__ = 4; -} -else{ - heap32[(g0)] = r4; - heap32[(g0+1)] = r5; - strcmp(i7); - r4 = r_g0; - if(r4 <0) //_LBB839_4 -{ -__label__ = 4; -} -else{ - r0 = 6; -__label__ = 15; -} -} -} -if (__label__ == 4){ - r4 = heap32[(fp+1)]; - r5 = r2 >> 2; - r5 = heap32[(r5+3)]; - r5 = (r5 + 1)|0; -_7: while(true){ - if(r5 !=1) //_LBB839_5 -{ - r6 = r5 << 3; - r6 = (r2 + r6)|0; - r6 = r6 >> 2; - r6 = heap32[(r6+1)]; - r7 = r6 & 2; -_10: do { - if(r7 !=0) //_LBB839_7 -{ - r7 = r6 & 1; -if(!(r7 ==0)) //_LBB839_9 -{ - if(r4 ==-3) //_LBB839_6 -{ -break _10; -} -} - r8 = r5 << 1; - r6 = r6 >> 8; - if(r7 != 0) //_LBB839_11 -{ - r9 = r0 >> 2; - r9 = heap32[(r9)]; - r6 = (r9 + r6)|0; - r6 = r6 >> 2; - r6 = heap32[(r6)]; -} - r8 = r8 << 2; - r8 = (r2 + r8)|0; - r8 = r8 >> 2; - r8 = heap32[(r8)]; - r9 = r8 >> 2; - r9 = heap32[(r9)]; - r9 = r9 >> 2; - r9 = heap32[(r9+7)]; - r6 = (r0 + r6)|0; - heap32[(g0)] = r8; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r6; - heap32[(g0+3)] = r3; - heap32[(g0+4)] = r1; - __FUNCTION_TABLE__[(r9)>>2](i7); - r6 = r_g0; -if(!(r6 <4)) //_LBB839_6 -{ -__label__ = 12; -break _7; -} -} -} while(0); - r5 = (r5 + -1)|0; -continue _7; -} -else{ -__label__ = 14; -break _7; -} -} -switch(__label__ ){//multiple entries -case 14: - r0 = 1; -break; -case 12: - r0 = r6 | r7; - r_g0 = r0; - return; -break; -} -} - r_g0 = r0; - return; -} - -function _ZN10__cxxabiv121__vmi_class_type_infoD0Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVSt9type_info; - r2 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r2)] = r1; - heap32[(g0)] = r0; - _ZdlPv(i7); - return; -} - -function _ZN10__cxxabiv121__vmi_class_type_infoD1Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = _ZTVSt9type_info; - r0 = r0 >> 2; - r1 = (r1 + 8)|0; - heap32[(r0)] = r1; - return; -} - -function __extendsfdf2(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 & 2147483647; - r2 = r0 & -2147483648; - r3 = (r1 + -8388608)|0; - if(uint(r3) >uint(2130706431)) //_LBB842_2 -{ - if(uint(r1) >> 1; - r0 = r1 | r0; - r3 = r0 >>> 2; - r0 = r0 | r3; - r3 = r0 >>> 4; - r0 = r0 | r3; - r3 = r0 >>> 8; - r0 = r0 | r3; - r3 = r0 >>> 16; - r0 = r0 | r3; - r3 = r0 ^ -1; - r4 = 1431655765; - r3 = r3 >>> 1; - r0 = r4 & (~r0); - r3 = r3 & 1431655765; - r0 = (r0 + r3)|0; - r3 = r0 >>> 2; - r0 = r0 & 858993459; - r3 = r3 & 858993459; - r0 = (r0 + r3)|0; - r3 = r0 >>> 4; - r0 = r0 & 252645135; - r3 = r3 & 252645135; - r0 = (r0 + r3)|0; - r3 = r0 >>> 8; - r0 = r0 & 16711935; - r3 = r3 & 16711935; - r0 = (r0 + r3)|0; - r3 = r0 & 65535; - r0 = r0 >>> 16; - r0 = (r3 + r0)|0; - r3 = (r0 + 21)|0; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r3; - r3 = 905; - __ashldi3(i7); - r1 = r_g0; - r0 = (r3 - r0)|0; - r3 = r_g1 ^ 1048576; - r0 = r0 << 20; - r0 = r3 | r0; -} -else{ - r1 = 0; - r0 = r1; -} -} -else{ - r1 = r0 >>> 3; - r3 = r1 & 524288; - r1 = r0 & 4194303; - r0 = r3 | 2146435072; -} -} -else{ - r0 = r1 >>> 3; - r1 = r1 << 29; - r0 = (r0 + 939524096)|0; -} - r3 = sp + -8; - r3 = r3 >> 2; - r0 = r0 | r2; - heap32[(fp+-2)] = r1; - heap32[(r3+1)] = r0; - f0 = llvm_readDouble((sp+-8)); - f_g0 = f0; - return; -} - -function __fixdfsi(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = sp + 0; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - r1 = r0 >>> 20; - r1 = r1 & 2047; - r2 = r0 & 1048575; - r3 = -1; - r4 = 1; - r5 = (r1 + -1023)|0; - r0 = r0 < 0 ? r3 : r4; - r3 = heap32[(fp)]; - r2 = r2 | 1048576; - if(uint(r5) >uint(51)) //_LBB843_2 -{ - if(r5 <0) //_LBB843_5 -{ - r0 = 0; - r_g0 = r0; - return; -} -else{ - r1 = (r1 + -1075)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r1; - __ashldi3(i7); -} -} -else{ - r5 = 1075; - r1 = (r5 - r1)|0; - heap32[(g0)] = r3; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r1; - __lshrdi3(i7); -} - heap32[(g0)] = r_g0; - heap32[(g0+1)] = r_g1; - heap32[(g0+2)] = r0; - heap32[(g0+3)] = r0; - __muldi3(i7); - return; -} - -function __floatsidf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var f0; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - if(r0 !=0) //_LBB844_2 -{ - r1 = r0 >> 31; - r2 = (r0 + r1)|0; - r1 = r2 ^ r1; - r2 = r1 >>> 1; - r2 = r1 | r2; - r3 = r2 >>> 2; - r2 = r2 | r3; - r3 = r2 >>> 4; - r2 = r2 | r3; - r3 = r2 >>> 8; - r2 = r2 | r3; - r3 = r2 >>> 16; - r2 = r2 | r3; - r3 = r2 ^ -1; - r4 = 1431655765; - r3 = r3 >>> 1; - r2 = r4 & (~r2); - r3 = r3 & 1431655765; - r2 = (r2 + r3)|0; - r3 = r2 >>> 2; - r2 = r2 & 858993459; - r3 = r3 & 858993459; - r2 = (r2 + r3)|0; - r3 = r2 >>> 4; - r2 = r2 & 252645135; - r3 = r3 & 252645135; - r2 = (r2 + r3)|0; - r3 = r2 >>> 8; - r2 = r2 & 16711935; - r3 = r3 & 16711935; - r2 = (r2 + r3)|0; - r3 = r2 & 65535; - r2 = r2 >>> 16; - r4 = 31; - r2 = (r3 + r2)|0; - r3 = 52; - r4 = (r4 - r2)|0; - r3 = (r3 - r4)|0; - heap32[(g0)] = r1; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r3; - r1 = 1054; - __ashldi3(i7); - r1 = (r1 - r2)|0; - r2 = r_g1 ^ 1048576; - r1 = r1 << 20; - r4 = sp + -8; - r1 = (r2 + r1)|0; - r0 = r0 & -2147483648; - r2 = r4 >> 2; - r0 = r1 | r0; - heap32[(fp+-2)] = r_g0; - heap32[(r2+1)] = r0; - f0 = llvm_readDouble((sp+-8)); - f_g0 = f0; - return; -} -else{ - f0 = 0; - f_g0 = f0; - return; -} -} - -function __floatunsidf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var f0; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - if(r0 !=0) //_LBB845_2 -{ - r1 = r0 >>> 1; - r1 = r0 | r1; - r2 = r1 >>> 2; - r1 = r1 | r2; - r2 = r1 >>> 4; - r1 = r1 | r2; - r2 = r1 >>> 8; - r1 = r1 | r2; - r2 = r1 >>> 16; - r1 = r1 | r2; - r2 = r1 ^ -1; - r3 = 1431655765; - r2 = r2 >>> 1; - r1 = r3 & (~r1); - r2 = r2 & 1431655765; - r1 = (r1 + r2)|0; - r2 = r1 >>> 2; - r1 = r1 & 858993459; - r2 = r2 & 858993459; - r1 = (r1 + r2)|0; - r2 = r1 >>> 4; - r1 = r1 & 252645135; - r2 = r2 & 252645135; - r1 = (r1 + r2)|0; - r2 = r1 >>> 8; - r1 = r1 & 16711935; - r2 = r2 & 16711935; - r1 = (r1 + r2)|0; - r2 = r1 & 65535; - r1 = r1 >>> 16; - r3 = 31; - r1 = (r2 + r1)|0; - r2 = 52; - r3 = (r3 - r1)|0; - r2 = (r2 - r3)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = 0; - heap32[(g0+2)] = r2; - r0 = 1054; - __ashldi3(i7); - r0 = (r0 - r1)|0; - r1 = sp + -8; - r3 = r_g1 ^ 1048576; - r0 = r0 << 20; - r1 = r1 >> 2; - r0 = (r3 + r0)|0; - heap32[(fp+-2)] = r_g0; - heap32[(r1+1)] = r0; - f0 = llvm_readDouble((sp+-8)); - f_g0 = f0; - return; -} -else{ - f0 = 0; - f_g0 = f0; - return; -} -} - -function __truncdfsf2(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var f0; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = sp + 0; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - r1 = r0 & 2147483647; - r2 = heap32[(fp)]; - r3 = (r1 + -940572672)|0; - r4 = (r1 + -1206910976)|0; -_1: do { - if(uint(r3) >=uint(r4)) //_LBB846_6 -{ - r3 = 0; - r4 = 2146435072; - r5 = r2 == r3; - r4 = uint(r1) < uint(r4); - r4 = r1 == 2146435072 ? r5 : r4; - if(r4 != 0) //_LBB846_8 -{ - r4 = 1206910976; - r4 = uint(r1) < uint(r4); - r4 = r1 == 1206910976 ? r5 : r4; - if(r4 != 0) //_LBB846_10 -{ - r4 = 897; - r1 = r1 >>> 20; - r1 = (r4 - r1)|0; - if(r1 <53) //_LBB846_12 -{ - r4 = r0 & 1048575; - r4 = r4 | 1048576; - heap32[(g0)] = r2; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - __lshrdi3(i7); - r5 = r_g0; - r6 = r_g1; - r7 = 64; - r1 = (r7 - r1)|0; - heap32[(g0)] = r2; - heap32[(g0+1)] = r4; - heap32[(g0+2)] = r1; - __ashldi3(i7); - r1 = r_g0 | r_g1; - r1 = r1 != r3; - r1 = r1 & 1; - r2 = r5 & 536870911; - r4 = r5 >>> 29; - r5 = r6 << 3; - r1 = r1 | r2; - r2 = r4 | r5; - if(uint(r1) >> 29; - r3 = r0 << 3; - r1 = r1 | r3; - r2 = r2 & 536870911; - if(uint(r2) >2; - var r0; - var r1; - var r2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = sp + 0; - r0 = r0 >> 2; - r0 = heap32[(r0+1)]; - r1 = r0 >>> 20; - r1 = r1 & 2047; - r2 = (r1 + -1023)|0; -if(!(r2 <0)) //_LBB847_3 -{ -if(!(r0 <0)) //_LBB847_3 -{ - r2 = heap32[(fp)]; - r2 = r2 >>> 21; - r0 = r0 << 11; - r0 = r2 | r0; - r2 = 1054; - r0 = r0 | -2147483648; - r1 = (r2 - r1)|0; - r0 = r0 >>> r1; - r_g0 = r0; - return; -} -} - r0 = 0; - r_g0 = r0; - return; -} - -function __floatundisf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var f0; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = r0 | r1; - if(r2 ==0) //_LBB848_12 -{ - f0 = 0; - f_g0 = f0; - return; -} -else{ - r2 = r0 >>> 1; - r3 = r1 >>> 1; - r2 = r0 | r2; - r3 = r1 | r3; - r4 = r2 >>> 2; - r5 = r3 >>> 2; - r2 = r2 | r4; - r3 = r3 | r5; - r4 = r2 >>> 4; - r5 = r3 >>> 4; - r2 = r2 | r4; - r3 = r3 | r5; - r4 = r2 >>> 8; - r5 = r3 >>> 8; - r2 = r2 | r4; - r3 = r3 | r5; - r4 = r2 >>> 16; - r5 = r3 >>> 16; - r2 = r2 | r4; - r3 = r3 | r5; - r4 = r2 ^ -1; - r5 = 1431655765; - r6 = r3 ^ -1; - r4 = r4 >>> 1; - r6 = r6 >>> 1; - r2 = r5 & (~r2); - r4 = r4 & 1431655765; - r2 = (r2 + r4)|0; - r3 = r5 & (~r3); - r4 = r6 & 1431655765; - r3 = (r3 + r4)|0; - r4 = r2 >>> 2; - r5 = r3 >>> 2; - r2 = r2 & 858993459; - r4 = r4 & 858993459; - r2 = (r2 + r4)|0; - r3 = r3 & 858993459; - r4 = r5 & 858993459; - r3 = (r3 + r4)|0; - r4 = r2 >>> 4; - r5 = r3 >>> 4; - r2 = r2 & 252645135; - r4 = r4 & 252645135; - r2 = (r2 + r4)|0; - r3 = r3 & 252645135; - r4 = r5 & 252645135; - r3 = (r3 + r4)|0; - r4 = r2 >>> 8; - r5 = r3 >>> 8; - r2 = r2 & 16711935; - r4 = r4 & 16711935; - r2 = (r2 + r4)|0; - r3 = r3 & 16711935; - r4 = r5 & 16711935; - r3 = (r3 + r4)|0; - r4 = r2 & 65535; - r2 = r2 >>> 16; - r2 = (r4 + r2)|0; - r4 = r3 & 65535; - r3 = r3 >>> 16; - r3 = (r4 + r3)|0; - r2 = (r2 + 32)|0; - r4 = 64; - r2 = r1 != 0 ? r3 : r2; - r3 = 63; - r4 = (r4 - r2)|0; - r2 = (r3 - r2)|0; - if(r4 <25) //_LBB848_10 -{ - r3 = 24; - r3 = (r3 - r4)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r3; - __ashldi3(i7); - r1 = r_g0; -} -else{ - if(r4 ==25) //_LBB848_5 -{ - r1 = r1 << 1; - r3 = r0 >>> 31; - r0 = r0 << 1; - r1 = r1 | r3; -} -else{ - if(r4 !=26) //_LBB848_6 -{ - r3 = (r4 + -26)|0; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - heap32[(g0+2)] = r3; - __lshrdi3(i7); - r3 = r_g0; - r5 = r_g1; - r6 = 90; - r6 = (r6 - r4)|0; - heap32[(g0)] = -1; - heap32[(g0+1)] = -1; - heap32[(g0+2)] = r6; - __lshrdi3(i7); - r0 = r_g0 & r0; - r1 = r_g1 & r1; - r0 = r0 | r1; - r1 = 0; - r0 = r0 != r1; - r0 = r0 & 1; - r0 = r0 | r3; - r1 = r5; -} -} - r3 = r0 >>> 2; - r3 = r3 & 1; - r0 = r3 | r0; - r3 = (r0 + 1)|0; - r5 = 1; - r6 = 0; - r0 = uint(r3) < uint(r0) ? r5 : r6; - r0 = r3 == 0 ? r5 : r0; - r0 = (r1 + r0)|0; - r1 = r3 >>> 2; - r5 = r0 << 30; - r1 = r1 | r5; - r5 = r1 & 16777216; - if(r5 !=0) //_LBB848_9 -{ - r1 = r3 >>> 3; - r0 = r0 << 29; - r1 = r1 | r0; - r2 = r4; -} -} - r0 = r2 << 23; - r0 = (r0 + 1065353216)|0; - r1 = r1 & 8388607; - r0 = r0 | r1; - heap32[(fp+-1)] = r0; - f0 = heapFloat[(fp+-1)]; - f_g0 = f0; - return; -} -} - -function __floatdisf(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var f0; -var __label__ = 0; - i7 = sp + -24;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = heap32[(fp+1)]; - r2 = r0 | r1; - if(r2 ==0) //_LBB849_12 -{ - f0 = 0; - f_g0 = f0; - return; -} -else{ - r2 = r1 >> 31; - r1 = r2 ^ r1; - r0 = r2 ^ r0; - r3 = 1; - r4 = 0; - r5 = (r0 - r2)|0; - r1 = (r1 - r2)|0; - r0 = uint(r0) < uint(r2) ? r3 : r4; - r0 = (r1 - r0)|0; - r1 = r5 >>> 1; - r6 = r0 >>> 1; - r1 = r5 | r1; - r6 = r0 | r6; - r7 = r1 >>> 2; - r8 = r6 >>> 2; - r1 = r1 | r7; - r6 = r6 | r8; - r7 = r1 >>> 4; - r8 = r6 >>> 4; - r1 = r1 | r7; - r6 = r6 | r8; - r7 = r1 >>> 8; - r8 = r6 >>> 8; - r1 = r1 | r7; - r6 = r6 | r8; - r7 = r1 >>> 16; - r8 = r6 >>> 16; - r1 = r1 | r7; - r6 = r6 | r8; - r7 = r1 ^ -1; - r8 = 1431655765; - r9 = r6 ^ -1; - r7 = r7 >>> 1; - r9 = r9 >>> 1; - r1 = r8 & (~r1); - r7 = r7 & 1431655765; - r1 = (r1 + r7)|0; - r6 = r8 & (~r6); - r7 = r9 & 1431655765; - r6 = (r6 + r7)|0; - r7 = r1 >>> 2; - r8 = r6 >>> 2; - r1 = r1 & 858993459; - r7 = r7 & 858993459; - r1 = (r1 + r7)|0; - r6 = r6 & 858993459; - r7 = r8 & 858993459; - r6 = (r6 + r7)|0; - r7 = r1 >>> 4; - r8 = r6 >>> 4; - r1 = r1 & 252645135; - r7 = r7 & 252645135; - r1 = (r1 + r7)|0; - r6 = r6 & 252645135; - r7 = r8 & 252645135; - r6 = (r6 + r7)|0; - r7 = r1 >>> 8; - r8 = r6 >>> 8; - r1 = r1 & 16711935; - r7 = r7 & 16711935; - r1 = (r1 + r7)|0; - r6 = r6 & 16711935; - r7 = r8 & 16711935; - r6 = (r6 + r7)|0; - r7 = r1 & 65535; - r1 = r1 >>> 16; - r1 = (r7 + r1)|0; - r7 = r6 & 65535; - r6 = r6 >>> 16; - r6 = (r7 + r6)|0; - r1 = (r1 + 32)|0; - r7 = 64; - r1 = r0 != 0 ? r6 : r1; - r6 = 63; - r7 = (r7 - r1)|0; - r1 = (r6 - r1)|0; - if(r7 <25) //_LBB849_10 -{ - r3 = 24; - r3 = (r3 - r7)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r3; - __ashldi3(i7); - r5 = r_g0; -} -else{ - if(r7 ==25) //_LBB849_5 -{ - r0 = r0 << 1; - r6 = r5 >>> 31; - r5 = r5 << 1; - r0 = r0 | r6; -} -else{ - if(r7 !=26) //_LBB849_6 -{ - r6 = (r7 + -26)|0; - heap32[(g0)] = r5; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r6; - __lshrdi3(i7); - r6 = r_g0; - r8 = r_g1; - r9 = 90; - r9 = (r9 - r7)|0; - heap32[(g0)] = -1; - heap32[(g0+1)] = -1; - heap32[(g0+2)] = r9; - __lshrdi3(i7); - r5 = r_g0 & r5; - r0 = r_g1 & r0; - r0 = r5 | r0; - r0 = r0 != r4; - r0 = r0 & 1; - r5 = r0 | r6; - r0 = r8; -} -} - r6 = r5 >>> 2; - r6 = r6 & 1; - r5 = r6 | r5; - r6 = (r5 + 1)|0; - r5 = uint(r6) < uint(r5) ? r3 : r4; - r5 = r6 == 0 ? r3 : r5; - r0 = (r0 + r5)|0; - r5 = r6 >>> 2; - r3 = r0 << 30; - r5 = r5 | r3; - r3 = r5 & 16777216; - if(r3 !=0) //_LBB849_9 -{ - r0 = r0 >> 2; - r5 = r5 >>> 1; - r0 = r0 << 31; - r5 = r5 | r0; - r1 = r7; -} -} - r0 = r1 << 23; - r1 = r5 & 8388607; - r2 = r2 & -2147483648; - r1 = r1 | r2; - r0 = (r0 + 1065353216)|0; - r0 = r1 | r0; - heap32[(fp+-1)] = r0; - f0 = heapFloat[(fp+-1)]; - f_g0 = f0; - return; -} -} - -function _GLOBAL__I__mandreel_create_tcp_socket(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = mandreel_flash_tcp_onError__index__; - r1 = _ZZL32_mandreel_init_tcp_socket_librayvE47s_723478567_mandreel_mandreel_flash_tcp_onError; - heap32[(g0)] = r0; - heap32[(g0+1)] = r1; - iMandreelRegisterExternalCallback(i7); - return; -} - -function mandreel_flash_tcp_onConnect(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function mandreel_flash_tcp_onError(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function mandreel_flash_tcp_receive_callbak(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -32784;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; - r1 = heap32[(fp)]; - r2 = heapU8[r0]; -_1: do { - if(r2 !=0) //_LBB853_2 -{ - r3 = (r0 + 1)|0; - r4 = 0; -_3: while(true){ - r2 = (r4 + 1)|0; - r5 = heapU8[r3+r4]; - r4 = r2; - if(r5 !=0) //_LBB853_3 -{ -continue _3; -} -else{ -break _1; -} -} -} -else{ - r2 = 0; -} -} while(0); - r3 = sp + -32768; - heap32[(g0)] = r0; - heap32[(g0+1)] = r2; - heap32[(g0+2)] = r3; - heap32[(g0+3)] = 32768; - r0 = _ZL10s_aSockets; - r2 = 0; - _ZN12mandreel_b6410b64_decodeEPKcjPvj(i7); - r4 = r_g0; - r6 = _ZL10s_aSockets; -_7: while(true){ - if(uint(r2) > 2; - r5 = heap32[(r5+8196)]; - if(r5 !=r1) //_LBB853_7 -{ - r2 = (r2 + 1)|0; - r0 = (r0 + 32792)|0; -continue _7; -} -else{ -__label__ = 9; -break _7; -} -} -else{ -__label__ = 8; -break _7; -} -} -if (__label__ == 8){ - r0 = 0; -} - r1 = r0 >> 2; - r2 = heap32[(r1+8194)]; - if(r4 >0) //_LBB853_12 -{ - r5 = r4; -_16: while(true){ - r6 = (r2 + 1)|0; - r5 = (r5 + -1)|0; - r6 = r6 & 32767; - r7 = (r3 + 1)|0; - r3 = heapU8[r3]; - heap8[r0+r2] = r3; - r3 = r7; - r2 = r6; -if(!(r5 !=0)) //_LBB853_13 -{ -break _16; -} -} - r2 = r6; -} - heap32[(r1+8194)] = r2; - r0 = heap32[(r1+8192)]; - r0 = (r0 + r4)|0; - heap32[(r1+8192)] = r0; - return; -} - -function _GLOBAL__D__ZN8OpenGLES12OpenGLESUtil15getCurrentErrorEv(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - heap32[(g0)] = 0; - _Z41__static_initialization_and_destruction_0ii(i7); - return; -} - -function _ZNSt5dequeIjSaIjEE5eraseESt15__rw_deque_iterIjiPjRjS0_ES5_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+4)]; - r0 = r0 >> 2; - r1 = heap32[(fp)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - r4 = heap32[(r0)]; - r5 = heap32[(fp+3)]; - r6 = heap32[(r0+1)]; - r7 = r4 | r3; - if(r7 !=0) //_LBB855_2 -{ - r7 = r6 >> 2; - r8 = (r6 - r5)|0; - r9 = r5 >> 2; - r8 = r8 << 3; - r9 = heap32[(r9)]; - r7 = heap32[(r7)]; - r7 = (r4 - r7)|0; - r8 = (r8 + -32)|0; - r9 = (r9 + 128)|0; - r9 = (r9 - r3)|0; - r7 = r7 >> 2; - r8 = r8 & -32; - r7 = (r7 + r8)|0; - r8 = r9 >> 2; - r7 = (r7 + r8)|0; -} -else{ - r7 = (r4 - r3)|0; - r7 = r7 >> 2; -} - r8 = r2 >> 2; - r9 = heap32[(r8)]; - r10 = heap32[(r8+1)]; - r11 = r3 | r9; - if(r11 !=0) //_LBB855_5 -{ - r11 = (r5 - r10)|0; - r12 = r5 >> 2; - r13 = r10 >> 2; - r11 = r11 << 3; - r13 = heap32[(r13)]; - r12 = heap32[(r12)]; - r11 = (r11 + -32)|0; - r12 = (r3 - r12)|0; - r13 = (r13 + 128)|0; - r13 = (r13 - r9)|0; - r11 = r11 & -32; - r12 = r12 >> 2; - r11 = (r11 + r12)|0; - r12 = r13 >> 2; - r11 = (r11 + r12)|0; -} -else{ - r11 = (r3 - r9)|0; - r11 = r11 >> 2; -} - r2 = (r2 + 8)|0; - r12 = heap32[(r8+2)]; - r13 = heap32[(r8+3)]; - r14 = r12 | r4; - if(r14 !=0) //_LBB855_8 -{ - r14 = (r13 - r6)|0; - r15 = r13 >> 2; - r16 = r6 >> 2; - r14 = r14 << 3; - r16 = heap32[(r16)]; - r15 = heap32[(r15)]; - r14 = (r14 + -32)|0; - r15 = (r12 - r15)|0; - r16 = (r16 + 128)|0; - r16 = (r16 - r4)|0; - r14 = r14 & -32; - r15 = r15 >> 2; - r14 = (r14 + r15)|0; - r15 = r16 >> 2; - r14 = (r14 + r15)|0; -} -else{ - r14 = (r12 - r4)|0; - r14 = r14 >> 2; -} - if(r11 >=r14) //_LBB855_36 -{ - r0 = (r5 + 4)|0; - r9 = r3; -_15: while(true){ - r10 = r4 | r12; - if(r10 !=0) //_LBB855_44 -{ - r10 = r6 >> 2; - r11 = (r6 - r13)|0; - r14 = r13 >> 2; - r11 = r11 << 3; - r14 = heap32[(r14)]; - r10 = heap32[(r10)]; - r10 = (r4 - r10)|0; - r11 = (r11 + -32)|0; - r14 = (r14 + 128)|0; - r14 = (r14 - r12)|0; - r10 = r10 >> 2; - r11 = r11 & -32; - r10 = (r10 + r11)|0; - r11 = r14 >> 2; - r10 = (r10 + r11)|0; -} -else{ - r10 = (r4 - r12)|0; - r10 = r10 >> 2; -} - if(r10 !=0) //_LBB855_37 -{ - r10 = r4 >> 2; - r11 = r9 >> 2; - r10 = heap32[(r10)]; - r4 = (r4 + 4)|0; - r14 = r6 >> 2; - heap32[(r11)] = r10; - r10 = heap32[(r14)]; - r10 = (r10 + 128)|0; - if(r4 ==r10) //_LBB855_39 -{ - r6 = (r6 + 4)|0; - r4 = heap32[(r14+1)]; -} - r10 = r0 >> 2; - r9 = (r9 + 4)|0; - r11 = heap32[(r10+-1)]; - r11 = (r11 + 128)|0; -if(!(r9 !=r11)) //_LBB855_42 -{ - r9 = heap32[(r10)]; - r0 = (r0 + 4)|0; -} -} -else{ -break _15; -} -} -_27: do { -if(!(r7 ==0)) //_LBB855_59 -{ - r0 = heap32[(r8+2)]; -_29: while(true){ - r0 = (r0 + -4)|0; - heap32[(r8+2)] = r0; - r4 = heap32[(r8+3)]; - r6 = heap32[(r8+1)]; - if(r6 !=r4) //_LBB855_51 -{ -__label__ = 45; -} -else{ - r6 = heap32[(r8)]; - if(r6 !=r0) //_LBB855_51 -{ -__label__ = 45; -} -else{ - r0 = r4 >> 2; - r4 = heap32[(r0)]; -__label__ = 47; -} -} -if (__label__ == 45){ - r4 = r4 >> 2; - r4 = heap32[(r4)]; - if(r0 ==r4) //_LBB855_53 -{ -__label__ = 47; -} -else{ -__label__ = 46; -} -} -_36: do { -if (__label__ == 47){ - heap32[(g0)] = r4; - _ZdlPv(i7); - r0 = heap32[(r8+3)]; - r4 = heap32[(r8+1)]; -if(!(r4 !=r0)) //_LBB855_58 -{ - r4 = heap32[(r8)]; - r6 = heap32[(r8+2)]; -if(!(r4 !=r6)) //_LBB855_58 -{ - r0 = heap32[(r8+4)]; - r0 = (r0 + -4)|0; - heap32[(g0)] = r0; - _ZdlPv(i7); - heap32[(r8+2)] = 0; - heap32[(r8+3)] = r2; - heap32[(r8)] = 0; - heap32[(r8+1)] = r2; - r0 = 0; - heap32[(r8+4)] = 0; - heap32[(r8+5)] = 0; -break _36; -} -} - r4 = r0 >> 2; - r6 = (r0 + -4)|0; - heap32[(r4)] = 0; - heap32[(r8+3)] = r6; - r0 = heap32[(r4+-1)]; - r0 = (r0 + 128)|0; - heap32[(r8+2)] = r0; - heap32[(r8+3)] = r6; -} -} while(0); - r7 = (r7 + -1)|0; - if(r7 ==0) //_LBB855_59 -{ -break _27; -} -} -} -} while(0); - r0 = r1 >> 2; - heap32[(r0)] = r3; - heap32[(r0+1)] = r5; - return; -} -else{ -_44: while(true){ - r12 = r9 | r3; - if(r12 !=0) //_LBB855_20 -{ - r12 = r10 >> 2; - r13 = (r10 - r5)|0; - r11 = r5 >> 2; - r13 = r13 << 3; - r11 = heap32[(r11)]; - r12 = heap32[(r12)]; - r12 = (r9 - r12)|0; - r13 = (r13 + -32)|0; - r11 = (r11 + 128)|0; - r11 = (r11 - r3)|0; - r12 = r12 >> 2; - r13 = r13 & -32; - r12 = (r12 + r13)|0; - r13 = r11 >> 2; - r12 = (r12 + r13)|0; -} -else{ - r12 = (r9 - r3)|0; - r12 = r12 >> 2; -} - if(r12 !=0) //_LBB855_11 -{ - r12 = r6 >> 2; - r13 = heap32[(r12)]; - if(r4 ==r13) //_LBB855_13 -{ - r4 = heap32[(r12+-1)]; - r6 = (r6 + -4)|0; - r4 = (r4 + 128)|0; -} - r12 = r5 >> 2; - r4 = (r4 + -4)|0; - r13 = heap32[(r12)]; - if(r3 ==r13) //_LBB855_16 -{ - r3 = heap32[(r12+-1)]; - r5 = (r5 + -4)|0; - r3 = (r3 + 128)|0; -} - r12 = r3 >> 2; - r3 = (r3 + -4)|0; - r13 = r4 >> 2; - r12 = heap32[(r12+-1)]; - heap32[(r13)] = r12; -} -else{ -break _44; -} -} -_58: do { -if(!(r7 ==0)) //_LBB855_35 -{ - r3 = heap32[(r8)]; -_60: while(true){ - r3 = (r3 + 4)|0; - heap32[(r8)] = r3; - r4 = heap32[(r8+1)]; - r5 = heap32[(r8+3)]; - if(r4 !=r5) //_LBB855_27 -{ -__label__ = 24; -} -else{ - r5 = r2 >> 2; - r5 = heap32[(r5)]; - if(r3 !=r5) //_LBB855_27 -{ -__label__ = 24; -} -else{ - r3 = r4 >> 2; - r4 = heap32[(r3)]; -__label__ = 26; -} -} -if (__label__ == 24){ - r4 = r4 >> 2; - r4 = heap32[(r4)]; - r5 = (r4 + 128)|0; - if(r3 ==r5) //_LBB855_29 -{ -__label__ = 26; -} -else{ -__label__ = 25; -} -} -_67: do { -if (__label__ == 26){ - heap32[(g0)] = r4; - _ZdlPv(i7); - r3 = heap32[(r8+1)]; - r4 = heap32[(r8+3)]; -if(!(r3 !=r4)) //_LBB855_34 -{ - r4 = heap32[(r8)]; - r5 = heap32[(r8+2)]; -if(!(r4 !=r5)) //_LBB855_34 -{ - r3 = heap32[(r8+4)]; - r3 = (r3 + -4)|0; - heap32[(g0)] = r3; - _ZdlPv(i7); - heap32[(r8+2)] = 0; - heap32[(r8+3)] = r2; - heap32[(r8)] = 0; - heap32[(r8+1)] = r2; - r3 = 0; - heap32[(r8+4)] = 0; - heap32[(r8+5)] = 0; -break _67; -} -} - r4 = r3 >> 2; - r5 = (r3 + 4)|0; - heap32[(r4)] = 0; - heap32[(r8+1)] = r5; - r3 = heap32[(r4+1)]; - heap32[(r8)] = r3; - heap32[(r8+1)] = r5; -} -} while(0); - r7 = (r7 + -1)|0; - if(r7 ==0) //_LBB855_35 -{ -break _58; -} -} -} -} while(0); - r1 = r1 >> 2; - r2 = heap32[(r0)]; - heap32[(r1)] = r2; - r2 = heap32[(r0+1)]; - heap32[(r1+1)] = r2; - return; -} -} - -function _Z41__static_initialization_and_destruction_0ii(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; -var __label__ = 0; - i7 = sp + -80;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - if(r0 ==0) //_LBB856_16 -{ - r0 = _ZL13s_fifo_errors; - r1 = r0 >> 2; - r2 = heap32[(r1+2)]; - r3 = sp + -24; - heap32[(fp+-6)] = r2; - r2 = r3 >> 2; - r4 = heap32[(r1+3)]; - heap32[(r2+1)] = r4; - r2 = heap32[(r1)]; - r1 = heap32[(r1+1)]; - r4 = sp + -32; -} -else{ - if(r0 !=1) //_LBB856_17 -{ - return; -} -else{ - r0 = sp + -56; - r1 = r0 >> 2; - r2 = (r0 + 8)|0; - heap32[(r1+2)] = 0; - heap32[(r1+3)] = r2; - heap32[(fp+-14)] = 0; - heap32[(r1+1)] = r2; - r2 = _ZL13s_fifo_errors; - heap32[(r1+4)] = 0; - r3 = r2 >> 2; - heap32[(r1+5)] = 0; - r4 = (r2 + 8)|0; - heap32[(r3+2)] = 0; - heap32[(r3+3)] = r4; - heap32[(r3)] = 0; - heap32[(r3+1)] = r4; - r5 = 0; - heap32[(r3+4)] = 0; - heap32[(r3+5)] = 0; - r6 = r4; - r7 = r5; -_7: while(true){ - if(r7 !=0) //_LBB856_12 -{ - r8 = (r2 + 8)|0; - r8 = (r8 - r6)|0; - r9 = r6 >> 2; - r8 = r8 << 3; - r9 = heap32[(r9)]; - r10 = 0; - r11 = heap32[(r3+2)]; - r10 = (r10 - r11)|0; - r8 = (r8 + -32)|0; - r9 = (r9 + 128)|0; - r9 = (r9 - r7)|0; - r10 = r10 >> 2; - r8 = r8 & -32; - r8 = (r10 + r8)|0; - r9 = r9 >> 2; - r8 = (r8 + r9)|0; -} -else{ - r8 = 0; - r8 = (r8 - r7)|0; - r8 = r8 >> 2; -} - if(r8 !=0) //_LBB856_3 -{ - r8 = r4 >> 2; - r9 = heap32[(r8)]; - if(r5 ==r9) //_LBB856_5 -{ - r5 = heap32[(r8+-1)]; - r4 = (r4 + -4)|0; - r5 = (r5 + 128)|0; -} - r8 = r6 >> 2; - r5 = (r5 + -4)|0; - r9 = heap32[(r8)]; - if(r7 ==r9) //_LBB856_8 -{ - r7 = heap32[(r8+-1)]; - r6 = (r6 + -4)|0; - r7 = (r7 + 128)|0; -} - r8 = r7 >> 2; - r7 = (r7 + -4)|0; - r9 = r5 >> 2; - r8 = heap32[(r8+-1)]; - heap32[(r9)] = r8; -} -else{ -break _7; -} -} - r2 = heap32[(r1+2)]; - r3 = sp + -8; - heap32[(fp+-2)] = r2; - r2 = r3 >> 2; - r4 = heap32[(r1+3)]; - heap32[(r2+1)] = r4; - r2 = heap32[(fp+-14)]; - r1 = heap32[(r1+1)]; - r4 = sp + -16; -} -} - heap32[(g0)] = r4; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r2; - heap32[(g0+3)] = r1; - heap32[(g0+4)] = r3; - _ZNSt5dequeIjSaIjEE5eraseESt15__rw_deque_iterIjiPjRjS0_ES5_(i7); - return; -} - -function _GLOBAL__I__ZN5my_gl14glAttachShaderEjj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = _ZN5my_glL9m_contextE; - r1 = r0 >> 2; - heap32[(r1+62)] = 0; - heap32[(r1+63)] = 0; - heap32[(r1+64)] = 0; - heap32[(r1+65)] = 0; - heap32[(r1+66)] = 0; - heap32[(r1+67)] = 0; - heap32[(r1+78)] = 0; - heap32[(r1+79)] = 0; - heap32[(r1+74)] = 0; - heap32[(r1+77)] = 0; - heap32[(r1+76)] = 0; - heap32[(r1+75)] = 0; - _ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE11_C_get_linkEv(i7); - r2 = r_g0; - r3 = r2 >> 2; - heap32[(r1+78)] = r2; - heap32[(r3+1)] = 0; - heap32[(r3+3)] = r2; - heap32[(r3+2)] = r2; - heap32[(r1)] = 0; - heap32[(r1+3)] = 0; - heap32[(r1+61)] = 0; - heap32[(r1+4)] = 0; - heap32[(r1+68)] = 0; - heap32[(r1+69)] = 0; - r2 = _ZL26s_mandreel_internal_height; - r3 = _ZL25s_mandreel_internal_width; - heap32[(r1+1)] = 0; - r2 = r2 >> 2; - heap32[(r1+2)] = 1; - r3 = r3 >> 2; - r2 = heap32[(r2)]; - r3 = heap32[(r3)]; - heap32[(r1+70)] = 0; - heap32[(r1+71)] = 0; - r4 = 224; - heap32[(r1+72)] = r3; - heap32[(r1+73)] = r2; - r2 = 0; -_2: while(true){ - r1 = (r4 + -1)|0; - r4 = (r0 - r4)|0; - heap8[r4+244] = r2; - r4 = r1; - if(r1 !=0) //_LBB857_2 -{ -continue _2; -} -else{ -break _2; -} -} - return; -} - -function _GLOBAL__D__ZN5my_gl14glAttachShaderEjj(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -16;var g0 = i7>>2; // save stack - r0 = _ZN5my_glL9m_contextE; - r0 = r0 >> 2; - r1 = heap32[(r0+78)]; -_1: do { -if(!(r1 ==0)) //_LBB858_26 -{ - r2 = r1 >> 2; - r3 = heap32[(r0+79)]; - if(r3 !=0) //_LBB858_5 -{ - r1 = heap32[(r2+1)]; - heap32[(g0)] = r1; - _ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE8_C_eraseEPNS_17__rw_rb_tree_nodeISB_S6_jS8_EE(i7); - r1 = heap32[(r0+78)]; - r2 = r1 >> 2; - heap32[(r2+1)] = 0; - heap32[(r2+3)] = r1; - heap32[(r2+2)] = r1; - heap32[(r0+79)] = 0; -} -else{ - r2 = heap32[(r2+2)]; -if(!(r2 ==r1)) //_LBB858_4 -{ -_6: while(true){ - r3 = r2; - r4 = r3 >> 2; - r2 = heap32[(r4+3)]; -_8: do { - if(r2 !=0) //_LBB858_10 -{ - r4 = r2 >> 2; - r4 = heap32[(r4+2)]; - if(r4 ==0) //_LBB858_12 -{ -break _8; -} -else{ -__label__ = 8; //SET chanka -_10: while(true){ - r2 = r4; - r4 = r2 >> 2; - r4 = heap32[(r4+2)]; - if(r4 !=0) //_LBB858_13 -{ -continue _10; -} -else{ -break _8; -} -} -} -} -else{ - r4 = heap32[(r4+1)]; - r2 = r4 >> 2; - r2 = heap32[(r2+3)]; - if(r3 ==r2) //_LBB858_9 -{ -_14: while(true){ - r2 = r4; - r5 = r2 >> 2; - r4 = heap32[(r5+1)]; - r6 = r4 >> 2; - r6 = heap32[(r6+3)]; -if(!(r2 ==r6)) //_LBB858_15 -{ -break _14; -} -} - r5 = heap32[(r5+3)]; -} -else{ - r5 = 0; - r2 = r3; -} - if(r5 !=r4) //_LBB858_19 -{ - r2 = r4; -} -} -} while(0); - r4 = sp + -8; - heap32[(g0)] = r4; - heap32[(g0+1)] = r3; - _ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE5eraseENS_14__rw_tree_iterIS6_iPS6_RS6_NS_17__rw_rb_tree_nodeISB_S6_jS8_EEEE(i7); -if(!(r2 !=r1)) //_LBB858_6 -{ -break _6; -} -} - r1 = heap32[(r0+78)]; -} -} - r2 = r1 >> 2; - r3 = heap32[(r0+75)]; - heap32[(r2+3)] = r3; - heap32[(r0+75)] = r1; - r1 = heap32[(r0+74)]; -if(!(r1 ==0)) //_LBB858_26 -{ -__label__ = 16; //SET chanka -_23: while(true){ - r2 = r1 >> 2; - r3 = heap32[(r2)]; - heap32[(r0+74)] = r3; - r2 = heap32[(r2+2)]; - heap32[(g0)] = r2; - _ZdlPv(i7); - heap32[(g0)] = r1; - _ZdlPv(i7); - r1 = heap32[(r0+74)]; - if(r1 !=0) //_LBB858_23 -{ -continue _23; -} -else{ -break _1; -} -} -} -} -} while(0); - r1 = heap32[(r0+65)]; - r2 = heap32[(r0+66)]; - r3 = (r2 - r1)|0; - r3 = r3 >> 5; - if(r3 !=0) //_LBB858_28 -{ - r1 = (r2 + -32)|0; - heap32[(r0+66)] = r1; - r1 = (r2 + -28)|0; - heap32[(g0)] = r1; - _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EED2Ev(i7); -_31: do { -if(!(r3 ==1)) //_LBB858_33 -{ - r1 = (r3 + -1)|0; -_33: while(true){ - r2 = heap32[(r0+66)]; - r3 = (r2 + -32)|0; - heap32[(r0+66)] = r3; - r2 = (r2 + -28)|0; - heap32[(g0)] = r2; - _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EED2Ev(i7); - r1 = (r1 + -1)|0; -if(!(r1 !=0)) //_LBB858_31 -{ -break _31; -} -} -} -} while(0); - r1 = heap32[(r0+65)]; -} - heap32[(g0)] = r1; - _ZdlPv(i7); - r1 = heap32[(r0+63)]; - r2 = heap32[(r0+62)]; - r3 = (r1 - r2)|0; - r4 = (r3 + 11)|0; -if(!(uint(r4) >2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function imandreel_viewport_resize(sp) -{ - var i7; - var fp = sp>>2; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - return; -} - -function _ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE8_C_eraseEPNS_17__rw_rb_tree_nodeISB_S6_jS8_EE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; -if(!(r0 ==0)) //_LBB861_2 -{ -_2: while(true){ - r1 = r0 >> 2; - r2 = heap32[(r1+3)]; - heap32[(g0)] = r2; - r2 = _ZN5my_glL9m_contextE; - _ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE8_C_eraseEPNS_17__rw_rb_tree_nodeISB_S6_jS8_EE(i7); - r2 = r2 >> 2; - r3 = heap32[(r1+2)]; - r4 = heap32[(r2+75)]; - heap32[(r1+3)] = r4; - heap32[(r2+75)] = r0; - r0 = r3; - if(r3 !=0) //_LBB861_1 -{ -continue _2; -} -else{ -break _2; -} -} -} - return; -} - -function _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE8_C_eraseEPNS_17__rw_rb_tree_nodeIS8_S3_SsS5_EE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+1)]; -if(!(r0 ==0)) //_LBB862_6 -{ - r1 = heap32[(fp)]; -_3: while(true){ - r2 = r0; - r3 = r2 >> 2; - r0 = heap32[(r3+3)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE8_C_eraseEPNS_17__rw_rb_tree_nodeIS8_S3_SsS5_EE(i7); - r4 = r1 >> 2; - r0 = heap32[(r3+2)]; - r5 = heap32[(r4+1)]; - heap32[(r3+3)] = r5; - r5 = heap32[(r3+4)]; - r5 = (r5 + -12)|0; - r6 = _ZNSs11_C_null_refE; -if(!(r5 ==r6)) //_LBB862_5 -{ - r5 = r5 >> 2; - r6 = heap32[(r5)]; - r7 = (r6 + -1)|0; - heap32[(r5)] = r7; -if(!(r6 >0)) //_LBB862_5 -{ - r5 = heap32[(r3+4)]; - r5 = (r5 + -12)|0; - heap32[(g0)] = r5; - _ZdlPv(i7); -} -} - heap32[(r3+4)] = 0; - heap32[(r4+1)] = r2; - if(r0 !=0) //_LBB862_2 -{ -continue _3; -} -else{ -break _3; -} -} -} - return; -} - -function _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE5eraseENS_14__rw_tree_iterIS3_iPS3_RS3_NS_17__rw_rb_tree_nodeIS8_S3_SsS5_EEEESF_(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; - var r15; - var r16; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = heap32[(fp+2)]; - r1 = heap32[(fp+1)]; - r0 = r0 >> 2; - r2 = r1 >> 2; - r3 = heap32[(r2+4)]; - r4 = heap32[(r0)]; - r5 = heap32[(fp)]; - r6 = heap32[(fp+3)]; - r7 = r3 >> 2; - r8 = heap32[(r7+2)]; -if(!(r4 !=r8)) //_LBB863_3 -{ -if(!(r3 !=r6)) //_LBB863_3 -{ - r8 = heap32[(r2+5)]; - if(r8 !=0) //_LBB863_4 -{ - r0 = heap32[(r7+1)]; - heap32[(g0)] = r1; - heap32[(g0+1)] = r0; - _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE8_C_eraseEPNS_17__rw_rb_tree_nodeIS8_S3_SsS5_EE(i7); - r0 = heap32[(r2+4)]; - r0 = r0 >> 2; - heap32[(r0+1)] = 0; - r0 = heap32[(r2+4)]; - r1 = r0 >> 2; - heap32[(r1+3)] = r0; - heap32[(r1+2)] = r0; - heap32[(r2+5)] = 0; - r0 = r5 >> 2; - r1 = heap32[(r2+4)]; - heap32[(r0)] = r1; - return; -} -} -} - r1 = r5 >> 2; - heap32[(r1)] = r3; -if(!(r4 ==r6)) //_LBB863_165 -{ -_7: while(true){ - r3 = r4 >> 2; - r5 = heap32[(r3+3)]; - if(r5 !=0) //_LBB863_9 -{ - r7 = r5 >> 2; - r7 = heap32[(r7+2)]; -if(!(r7 ==0)) //_LBB863_11 -{ -_12: while(true){ - r5 = r7; - r7 = r5 >> 2; - r7 = heap32[(r7+2)]; -if(!(r7 !=0)) //_LBB863_12 -{ -break _12; -} -} -} - heap32[(r0)] = r5; -} -else{ - r7 = heap32[(r3+1)]; - r5 = r7 >> 2; - r5 = heap32[(r5+3)]; - if(r4 ==r5) //_LBB863_8 -{ -_17: while(true){ - r5 = r7; - r8 = r5 >> 2; - r7 = heap32[(r8+1)]; - r9 = r7 >> 2; - r9 = heap32[(r9+3)]; -if(!(r5 ==r9)) //_LBB863_14 -{ -break _17; -} -} - heap32[(r0)] = r5; - r8 = heap32[(r8+3)]; -} -else{ - r8 = 0; - r5 = r4; -} - if(r8 !=r7) //_LBB863_18 -{ - heap32[(r0)] = r7; - r5 = r7; -} -} - r7 = heap32[(r2+4)]; - if(r4 !=r7) //_LBB863_21 -{ - r9 = heap32[(r3+3)]; -_26: do { - if(r9 !=0) //_LBB863_25 -{ - r8 = r9 >> 2; - r10 = heap32[(r8+2)]; - if(r10 ==0) //_LBB863_27 -{ - r8 = r9; -} -else{ -_30: while(true){ - r8 = r10; - r10 = r8 >> 2; - r10 = heap32[(r10+2)]; - if(r10 !=0) //_LBB863_28 -{ -continue _30; -} -else{ -break _26; -} -} -} -} -else{ - r8 = heap32[(r3+1)]; - r10 = r8 >> 2; - r10 = heap32[(r10+3)]; - if(r4 ==r10) //_LBB863_24 -{ -_34: while(true){ - r11 = r8; - r10 = r11 >> 2; - r8 = heap32[(r10+1)]; - r12 = r8 >> 2; - r12 = heap32[(r12+3)]; -if(!(r11 ==r12)) //_LBB863_30 -{ -break _34; -} -} - r10 = heap32[(r10+3)]; -} -else{ - r10 = 0; - r11 = r4; -} - if(r10 ==r8) //_LBB863_34 -{ - r8 = r11; -} -} -} while(0); - r10 = heap32[(r3+2)]; - if(r10 !=0) //_LBB863_37 -{ - if(r9 !=0) //_LBB863_39 -{ - r11 = r9 >> 2; - r12 = heap32[(r11+2)]; -_45: do { - if(r12 ==0) //_LBB863_41 -{ - r11 = r9; -} -else{ -_47: while(true){ - r11 = r12; - r12 = r11 >> 2; - r12 = heap32[(r12+2)]; -if(!(r12 !=0)) //_LBB863_42 -{ -break _45; -} -} -} -} while(0); - r13 = r11 >> 2; - r9 = heap32[(r13+3)]; - if(r11 !=r4) //_LBB863_45 -{ - r7 = r10 >> 2; - heap32[(r7+1)] = r11; - r7 = heap32[(r3+2)]; - heap32[(r13+2)] = r7; - r7 = heap32[(r3+3)]; - if(r7 !=r11) //_LBB863_47 -{ - r12 = heap32[(r13+1)]; - if(r9 !=0) //_LBB863_49 -{ - r7 = r9 >> 2; - heap32[(r7+1)] = r12; - r7 = heap32[(r13+1)]; -} -else{ - r7 = r12; -} - r7 = r7 >> 2; - heap32[(r7+2)] = r9; - r7 = heap32[(r3+3)]; - heap32[(r13+3)] = r7; - r7 = heap32[(r3+3)]; - r7 = r7 >> 2; - heap32[(r7+1)] = r11; -} -else{ - r12 = r11; -} - r7 = heap32[(r2+4)]; - r7 = r7 >> 2; - r10 = heap32[(r7+1)]; - if(r10 !=r4) //_LBB863_53 -{ - r7 = heap32[(r3+1)]; - r10 = r7 >> 2; - r10 = heap32[(r10+2)]; - r10 = r10 != r4; - r10 = r10 & 1; - r10 = r10 << 2; - r7 = (r7 + r10)|0; - r7 = (r7 + 8)|0; - r10 = (r4 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r11; -} -else{ - r10 = (r4 + 4)|0; - heap32[(r7+1)] = r11; -} - r7 = r10 >> 2; - r7 = heap32[(r7)]; - heap32[(r13+1)] = r7; - r7 = heap32[(r13)]; - r11 = heap32[(r3)]; - heap32[(r13)] = r11; - heap32[(r3)] = r7; -__label__ = 66; -} -else{ -__label__ = 45; -} -} -else{ - r12 = heap32[(r3+1)]; - r11 = r4; - r9 = r10; -__label__ = 47; -} -} -else{ - r11 = r4; -__label__ = 45; -} -if (__label__ == 45){ - r12 = r11 >> 2; - r12 = heap32[(r12+1)]; - if(r9 ==0) //_LBB863_57 -{ - r9 = 0; -__label__ = 48; -} -else{ -__label__ = 47; -} -} -if (__label__ == 47){ - r7 = r9 >> 2; - heap32[(r7+1)] = r12; - r7 = heap32[(r2+4)]; -__label__ = 48; -} -if (__label__ == 48){ - r7 = r7 >> 2; - r10 = heap32[(r7+1)]; - if(r10 !=r4) //_LBB863_61 -{ - r7 = heap32[(r3+1)]; - r10 = r7 >> 2; - r10 = heap32[(r10+2)]; - r10 = r10 != r4; - r10 = r10 & 1; - r10 = r10 << 2; - r7 = (r7 + r10)|0; - r7 = (r7 + 8)|0; - r7 = r7 >> 2; - heap32[(r7)] = r9; -} -else{ - heap32[(r7+1)] = r9; -} - r7 = heap32[(r2+4)]; - r7 = r7 >> 2; - r10 = heap32[(r7+2)]; -if(!(r10 !=r4)) //_LBB863_70 -{ - r10 = heap32[(r3+3)]; - if(r10 !=0) //_LBB863_65 -{ - r10 = r9 >> 2; - r10 = heap32[(r10+2)]; -_80: do { - if(r10 ==0) //_LBB863_67 -{ - r13 = r9; -} -else{ -_82: while(true){ - r13 = r10; - r10 = r13 >> 2; - r10 = heap32[(r10+2)]; -if(!(r10 !=0)) //_LBB863_68 -{ -break _80; -} -} -} -} while(0); - heap32[(r7+2)] = r13; -} -else{ - r10 = heap32[(r3+1)]; - heap32[(r7+2)] = r10; -} -} - r7 = heap32[(r2+4)]; - r7 = r7 >> 2; - r10 = heap32[(r7+3)]; - if(r10 ==r4) //_LBB863_72 -{ - r4 = heap32[(r3+2)]; - if(r4 !=0) //_LBB863_74 -{ - r4 = r9 >> 2; - r4 = heap32[(r4+3)]; -_91: do { - if(r4 ==0) //_LBB863_76 -{ - r3 = r9; -} -else{ -_93: while(true){ - r3 = r4; - r4 = r3 >> 2; - r4 = heap32[(r4+3)]; -if(!(r4 !=0)) //_LBB863_77 -{ -break _91; -} -} -} -} while(0); - heap32[(r7+3)] = r3; - r4 = r11; -} -else{ - r4 = heap32[(r3+1)]; - heap32[(r7+3)] = r4; - r4 = r11; -} -} -else{ - r4 = r11; -} -} - r3 = r4 >> 2; - r7 = heap32[(r3)]; -_99: do { -if(!(r7 ==0)) //_LBB863_160 -{ -_100: while(true){ - r7 = heap32[(r2+4)]; - r7 = r7 >> 2; - r7 = heap32[(r7+1)]; - if(r7 ==r9) //_LBB863_158 -{ -__label__ = 140; -break _100; -} -else{ -if(!(r9 ==0)) //_LBB863_81 -{ - r7 = r9 >> 2; - r7 = heap32[(r7)]; -if(!(r7 ==1)) //_LBB863_81 -{ -__label__ = 141; -break _100; -} -} - r7 = r12 >> 2; - r10 = heap32[(r7+2)]; - if(r10 !=r9) //_LBB863_119 -{ - r11 = r10 >> 2; - r13 = heap32[(r11)]; - if(r13 ==0) //_LBB863_121 -{ - heap32[(r11)] = 1; - heap32[(r7)] = 0; - r10 = heap32[(r7+2)]; - r11 = r10 >> 2; - r13 = heap32[(r11+3)]; - heap32[(r7+2)] = r13; - r13 = heap32[(r11+3)]; -if(!(r13 ==0)) //_LBB863_123 -{ - r13 = r13 >> 2; - heap32[(r13+1)] = r12; -} - r13 = heap32[(r7+1)]; - heap32[(r11+1)] = r13; - r13 = heap32[(r2+4)]; - r13 = r13 >> 2; - r14 = heap32[(r13+1)]; - if(r14 !=r12) //_LBB863_125 -{ - r13 = heap32[(r7+1)]; - r13 = r13 >> 2; - r14 = heap32[(r13+3)]; - if(r14 !=r12) //_LBB863_127 -{ - heap32[(r13+2)] = r10; -} -else{ - heap32[(r13+3)] = r10; -} -} -else{ - heap32[(r13+1)] = r10; -} - heap32[(r11+3)] = r12; - heap32[(r7+1)] = r10; - r10 = heap32[(r7+2)]; -} - r11 = r10 >> 2; - r13 = heap32[(r11+3)]; -if(!(r13 ==0)) //_LBB863_131 -{ - r13 = r13 >> 2; - r14 = heap32[(r13)]; - if(r14 !=1) //_LBB863_135 -{ -__label__ = 117; -break _100; -} -} - r13 = heap32[(r11+2)]; -if(!(r13 ==0)) //_LBB863_134 -{ - r13 = r13 >> 2; - r13 = heap32[(r13)]; -if(!(r13 ==1)) //_LBB863_134 -{ -__label__ = 127; -break _100; -} -} - heap32[(r11)] = 0; -} -else{ - r10 = heap32[(r7+3)]; - r11 = r10 >> 2; - r13 = heap32[(r11)]; - if(r13 ==0) //_LBB863_84 -{ - heap32[(r11)] = 1; - heap32[(r7)] = 0; - r10 = heap32[(r7+3)]; - r11 = r10 >> 2; - r13 = heap32[(r11+2)]; - heap32[(r7+3)] = r13; - r13 = heap32[(r11+2)]; -if(!(r13 ==0)) //_LBB863_86 -{ - r13 = r13 >> 2; - heap32[(r13+1)] = r12; -} - r13 = heap32[(r7+1)]; - heap32[(r11+1)] = r13; - r13 = heap32[(r2+4)]; - r13 = r13 >> 2; - r14 = heap32[(r13+1)]; - if(r14 !=r12) //_LBB863_88 -{ - r13 = heap32[(r7+1)]; - r13 = r13 >> 2; - r14 = heap32[(r13+2)]; - if(r14 !=r12) //_LBB863_90 -{ - heap32[(r13+3)] = r10; -} -else{ - heap32[(r13+2)] = r10; -} -} -else{ - heap32[(r13+1)] = r10; -} - heap32[(r11+2)] = r12; - heap32[(r7+1)] = r10; - r10 = heap32[(r7+3)]; -} - r11 = r10 >> 2; - r13 = heap32[(r11+2)]; -if(!(r13 ==0)) //_LBB863_94 -{ - r13 = r13 >> 2; - r14 = heap32[(r13)]; - if(r14 !=1) //_LBB863_99 -{ -__label__ = 83; -break _100; -} -} - r13 = heap32[(r11+3)]; -if(!(r13 ==0)) //_LBB863_97 -{ - r13 = r13 >> 2; - r13 = heap32[(r13)]; -if(!(r13 ==1)) //_LBB863_97 -{ -__label__ = 93; -break _100; -} -} - heap32[(r11)] = 0; -} - r10 = heap32[(r7+1)]; - r9 = r12; - r12 = r10; -} -} -_148: do { -switch(__label__ ){//multiple entries -case 117: - r14 = heap32[(r11+2)]; -if(!(r14 ==0)) //_LBB863_137 -{ - r14 = r14 >> 2; - r14 = heap32[(r14)]; - if(r14 !=1) //_LBB863_133 -{ -__label__ = 127; -break _148; -} -} - heap32[(r13)] = 1; - r13 = heap32[(r11+3)]; - r14 = r13 >> 2; - heap32[(r11)] = 0; - r15 = heap32[(r14+2)]; - heap32[(r11+3)] = r15; - r15 = heap32[(r14+2)]; -if(!(r15 ==0)) //_LBB863_139 -{ - r15 = r15 >> 2; - heap32[(r15+1)] = r10; -} - r15 = heap32[(r11+1)]; - heap32[(r14+1)] = r15; - r15 = heap32[(r2+4)]; - r15 = r15 >> 2; - r16 = heap32[(r15+1)]; - if(r16 !=r10) //_LBB863_141 -{ - r15 = heap32[(r11+1)]; - r15 = r15 >> 2; - r16 = heap32[(r15+2)]; - if(r16 !=r10) //_LBB863_143 -{ - heap32[(r15+3)] = r13; -} -else{ - heap32[(r15+2)] = r13; -} -} -else{ - heap32[(r15+1)] = r13; -} - heap32[(r14+2)] = r10; - heap32[(r11+1)] = r13; - r10 = heap32[(r7+2)]; -__label__ = 127; -break _148; -break; -case 83: - r14 = heap32[(r11+3)]; -if(!(r14 ==0)) //_LBB863_101 -{ - r14 = r14 >> 2; - r14 = heap32[(r14)]; - if(r14 !=1) //_LBB863_96 -{ -__label__ = 93; -break _148; -} -} - heap32[(r13)] = 1; - r13 = heap32[(r11+2)]; - r14 = r13 >> 2; - heap32[(r11)] = 0; - r15 = heap32[(r14+3)]; - heap32[(r11+2)] = r15; - r15 = heap32[(r14+3)]; -if(!(r15 ==0)) //_LBB863_103 -{ - r15 = r15 >> 2; - heap32[(r15+1)] = r10; -} - r15 = heap32[(r11+1)]; - heap32[(r14+1)] = r15; - r15 = heap32[(r2+4)]; - r15 = r15 >> 2; - r16 = heap32[(r15+1)]; - if(r16 !=r10) //_LBB863_105 -{ - r15 = heap32[(r11+1)]; - r15 = r15 >> 2; - r16 = heap32[(r15+3)]; - if(r16 !=r10) //_LBB863_107 -{ - heap32[(r15+2)] = r13; -} -else{ - heap32[(r15+3)] = r13; -} -} -else{ - heap32[(r15+1)] = r13; -} - heap32[(r14+3)] = r10; - heap32[(r11+1)] = r13; - r10 = heap32[(r7+3)]; -__label__ = 93; -break; -} -} while(0); -_177: do { -switch(__label__ ){//multiple entries -case 127: - r10 = r10 >> 2; - r11 = heap32[(r7)]; - heap32[(r10)] = r11; - heap32[(r7)] = 1; - r10 = heap32[(r10+2)]; -if(!(r10 ==0)) //_LBB863_147 -{ - r10 = r10 >> 2; - heap32[(r10)] = 1; -} - r10 = heap32[(r7+2)]; - r11 = r10 >> 2; - r13 = heap32[(r11+3)]; - heap32[(r7+2)] = r13; - r13 = heap32[(r11+3)]; -if(!(r13 ==0)) //_LBB863_149 -{ - r13 = r13 >> 2; - heap32[(r13+1)] = r12; -} - r13 = heap32[(r7+1)]; - heap32[(r11+1)] = r13; - r13 = heap32[(r2+4)]; - r13 = r13 >> 2; - r14 = heap32[(r13+1)]; - if(r14 !=r12) //_LBB863_151 -{ - r13 = heap32[(r7+1)]; - r13 = r13 >> 2; - r14 = heap32[(r13+3)]; - if(r14 !=r12) //_LBB863_153 -{ - heap32[(r13+2)] = r10; -} -else{ - heap32[(r13+3)] = r10; -} -} -else{ - heap32[(r13+1)] = r10; -} - heap32[(r11+3)] = r12; - heap32[(r7+1)] = r10; -__label__ = 140; -break _177; -break; -case 93: - r10 = r10 >> 2; - r11 = heap32[(r7)]; - heap32[(r10)] = r11; - heap32[(r7)] = 1; - r10 = heap32[(r10+3)]; -if(!(r10 ==0)) //_LBB863_111 -{ - r10 = r10 >> 2; - heap32[(r10)] = 1; -} - r10 = heap32[(r7+3)]; - r11 = r10 >> 2; - r13 = heap32[(r11+2)]; - heap32[(r7+3)] = r13; - r13 = heap32[(r11+2)]; -if(!(r13 ==0)) //_LBB863_113 -{ - r13 = r13 >> 2; - heap32[(r13+1)] = r12; -} - r13 = heap32[(r7+1)]; - heap32[(r11+1)] = r13; - r13 = heap32[(r2+4)]; - r13 = r13 >> 2; - r14 = heap32[(r13+1)]; - if(r14 !=r12) //_LBB863_115 -{ - r13 = heap32[(r7+1)]; - r13 = r13 >> 2; - r14 = heap32[(r13+2)]; - if(r14 !=r12) //_LBB863_117 -{ - heap32[(r13+3)] = r10; -} -else{ - heap32[(r13+2)] = r10; -} -} -else{ - heap32[(r13+1)] = r10; -} - heap32[(r11+2)] = r12; - heap32[(r7+1)] = r10; -__label__ = 140; -break; -} -} while(0); -if (__label__ == 140){ - if(r9 ==0) //_LBB863_160 -{ -break _99; -} -} - r7 = r9 >> 2; - heap32[(r7)] = 1; -} -} while(0); - r7 = heap32[(r2+1)]; - heap32[(r3+3)] = r7; - r7 = heap32[(r3+4)]; - r7 = (r7 + -12)|0; - r9 = _ZNSs11_C_null_refE; -if(!(r7 ==r9)) //_LBB863_163 -{ - r7 = r7 >> 2; - r9 = heap32[(r7)]; - r10 = (r9 + -1)|0; - heap32[(r7)] = r10; -if(!(r9 >0)) //_LBB863_163 -{ - r7 = heap32[(r3+4)]; - r7 = (r7 + -12)|0; - heap32[(g0)] = r7; - _ZdlPv(i7); -} -} - heap32[(r3+4)] = 0; - heap32[(r2+1)] = r4; - r4 = heap32[(r2+5)]; - r4 = (r4 + -1)|0; - heap32[(r2+5)] = r4; -} -else{ - r8 = r7; -} - heap32[(r1)] = r8; - r4 = r5; - if(r5 !=r6) //_LBB863_5 -{ -continue _7; -} -else{ -break _7; -} -} -} - return; -} - -function _ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE5eraseENS_14__rw_tree_iterIS6_iPS6_RS6_NS_17__rw_rb_tree_nodeISB_S6_jS8_EEEE(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; - var r7; - var r8; - var r9; - var r10; - var r11; - var r12; - var r13; - var r14; -var __label__ = 0; - i7 = sp + 0;var g0 = i7>>2; // save stack - r0 = _ZN5my_glL9m_contextE; - r0 = r0 >> 2; - r1 = heap32[(r0+78)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp)]; - if(r1 !=r2) //_LBB864_2 -{ - r4 = r2 >> 2; - r5 = heap32[(r4+3)]; -_3: do { - if(r5 !=0) //_LBB864_6 -{ - r6 = r5 >> 2; - r7 = heap32[(r6+2)]; - if(r7 ==0) //_LBB864_8 -{ - r6 = r5; -} -else{ -_7: while(true){ - r6 = r7; - r7 = r6 >> 2; - r7 = heap32[(r7+2)]; - if(r7 !=0) //_LBB864_9 -{ -continue _7; -} -else{ -break _3; -} -} -} -} -else{ - r6 = heap32[(r4+1)]; - r7 = r6 >> 2; - r7 = heap32[(r7+3)]; - if(r7 ==r2) //_LBB864_5 -{ -_11: while(true){ - r8 = r6; - r7 = r8 >> 2; - r6 = heap32[(r7+1)]; - r9 = r6 >> 2; - r9 = heap32[(r9+3)]; -if(!(r8 ==r9)) //_LBB864_11 -{ -break _11; -} -} - r7 = heap32[(r7+3)]; -} -else{ - r7 = 0; - r8 = r2; -} - if(r7 ==r6) //_LBB864_15 -{ - r6 = r8; -} -} -} while(0); - r7 = heap32[(r4+2)]; - if(r7 !=0) //_LBB864_18 -{ - if(r5 !=0) //_LBB864_20 -{ - r8 = r5 >> 2; - r9 = heap32[(r8+2)]; -_22: do { - if(r9 ==0) //_LBB864_22 -{ - r8 = r5; -} -else{ -_24: while(true){ - r8 = r9; - r9 = r8 >> 2; - r9 = heap32[(r9+2)]; -if(!(r9 !=0)) //_LBB864_23 -{ -break _22; -} -} -} -} while(0); - r10 = r8 >> 2; - r5 = heap32[(r10+3)]; - if(r8 !=r2) //_LBB864_26 -{ - r9 = r7 >> 2; - heap32[(r9+1)] = r8; - r9 = heap32[(r4+2)]; - heap32[(r10+2)] = r9; - r9 = heap32[(r4+3)]; - if(r9 !=r8) //_LBB864_28 -{ - r9 = heap32[(r10+1)]; - if(r5 !=0) //_LBB864_30 -{ - r7 = r5 >> 2; - heap32[(r7+1)] = r9; - r7 = heap32[(r10+1)]; -} -else{ - r7 = r9; -} - r7 = r7 >> 2; - heap32[(r7+2)] = r5; - r7 = heap32[(r4+3)]; - heap32[(r10+3)] = r7; - r7 = heap32[(r4+3)]; - r7 = r7 >> 2; - heap32[(r7+1)] = r8; -} -else{ - r9 = r8; -} - r7 = r1 >> 2; - r11 = heap32[(r7+1)]; - if(r11 !=r2) //_LBB864_34 -{ - r11 = heap32[(r4+1)]; - r7 = r11 >> 2; - r7 = heap32[(r7+2)]; - r7 = r7 != r2; - r7 = r7 & 1; - r7 = r7 << 2; - r11 = (r11 + r7)|0; - r7 = (r11 + 8)|0; - r11 = (r2 + 4)|0; - r7 = r7 >> 2; - heap32[(r7)] = r8; -} -else{ - r11 = (r2 + 4)|0; - heap32[(r7+1)] = r8; -} - r8 = r11 >> 2; - r8 = heap32[(r8)]; - heap32[(r10+1)] = r8; - r8 = heap32[(r10)]; - r7 = heap32[(r4)]; - heap32[(r10)] = r7; - heap32[(r4)] = r8; -__label__ = 51; -} -else{ -__label__ = 30; -} -} -else{ - r9 = heap32[(r4+1)]; - r8 = r2; - r5 = r7; -__label__ = 32; -} -} -else{ - r8 = r2; -__label__ = 30; -} -if (__label__ == 30){ - r9 = r8 >> 2; - r9 = heap32[(r9+1)]; - if(r5 ==0) //_LBB864_38 -{ - r5 = 0; -__label__ = 33; -} -else{ -__label__ = 32; -} -} -if (__label__ == 32){ - r7 = r5 >> 2; - heap32[(r7+1)] = r9; -__label__ = 33; -} -if (__label__ == 33){ - r7 = r1 >> 2; - r10 = heap32[(r7+1)]; - if(r10 !=r2) //_LBB864_42 -{ - r10 = heap32[(r4+1)]; - r11 = r10 >> 2; - r11 = heap32[(r11+2)]; - r11 = r11 != r2; - r11 = r11 & 1; - r11 = r11 << 2; - r10 = (r10 + r11)|0; - r10 = (r10 + 8)|0; - r10 = r10 >> 2; - heap32[(r10)] = r5; -} -else{ - heap32[(r7+1)] = r5; -} - r10 = heap32[(r7+2)]; -if(!(r10 !=r2)) //_LBB864_51 -{ - r10 = heap32[(r4+3)]; - if(r10 !=0) //_LBB864_46 -{ - r10 = r5 >> 2; - r10 = heap32[(r10+2)]; -_57: do { - if(r10 ==0) //_LBB864_48 -{ - r11 = r5; -} -else{ -_59: while(true){ - r11 = r10; - r10 = r11 >> 2; - r10 = heap32[(r10+2)]; -if(!(r10 !=0)) //_LBB864_49 -{ -break _57; -} -} -} -} while(0); - heap32[(r7+2)] = r11; -} -else{ - r10 = heap32[(r4+1)]; - heap32[(r7+2)] = r10; -} -} - r10 = heap32[(r7+3)]; - if(r10 ==r2) //_LBB864_53 -{ - r2 = heap32[(r4+2)]; - if(r2 !=0) //_LBB864_55 -{ - r2 = r5 >> 2; - r2 = heap32[(r2+3)]; -_68: do { - if(r2 ==0) //_LBB864_57 -{ - r4 = r5; -} -else{ -_70: while(true){ - r4 = r2; - r2 = r4 >> 2; - r2 = heap32[(r2+3)]; -if(!(r2 !=0)) //_LBB864_58 -{ -break _68; -} -} -} -} while(0); - heap32[(r7+3)] = r4; - r2 = r8; -} -else{ - r2 = heap32[(r4+1)]; - heap32[(r7+3)] = r2; - r2 = r8; -} -} -else{ - r2 = r8; -} -} - r4 = r2 >> 2; - r7 = heap32[(r4)]; -_76: do { -if(!(r7 ==0)) //_LBB864_141 -{ -_77: while(true){ - r7 = r1 >> 2; - r8 = heap32[(r7+1)]; - if(r8 ==r5) //_LBB864_139 -{ -__label__ = 125; -break _77; -} -else{ -if(!(r5 ==0)) //_LBB864_62 -{ - r8 = r5 >> 2; - r8 = heap32[(r8)]; -if(!(r8 ==1)) //_LBB864_62 -{ -__label__ = 126; -break _77; -} -} - r8 = r9 >> 2; - r10 = heap32[(r8+2)]; - if(r10 !=r5) //_LBB864_100 -{ - r11 = r10 >> 2; - r12 = heap32[(r11)]; - if(r12 ==0) //_LBB864_102 -{ - heap32[(r11)] = 1; - heap32[(r8)] = 0; - r10 = heap32[(r8+2)]; - r11 = r10 >> 2; - r12 = heap32[(r11+3)]; - heap32[(r8+2)] = r12; - r12 = heap32[(r11+3)]; -if(!(r12 ==0)) //_LBB864_104 -{ - r12 = r12 >> 2; - heap32[(r12+1)] = r9; -} - r12 = heap32[(r8+1)]; - heap32[(r11+1)] = r12; - r12 = heap32[(r7+1)]; - if(r12 !=r9) //_LBB864_106 -{ - r12 = heap32[(r8+1)]; - r12 = r12 >> 2; - r13 = heap32[(r12+3)]; - if(r13 !=r9) //_LBB864_108 -{ - heap32[(r12+2)] = r10; -} -else{ - heap32[(r12+3)] = r10; -} -} -else{ - heap32[(r7+1)] = r10; -} - heap32[(r11+3)] = r9; - heap32[(r8+1)] = r10; - r10 = heap32[(r8+2)]; -} - r11 = r10 >> 2; - r12 = heap32[(r11+3)]; -if(!(r12 ==0)) //_LBB864_112 -{ - r12 = r12 >> 2; - r13 = heap32[(r12)]; - if(r13 !=1) //_LBB864_116 -{ -__label__ = 102; -break _77; -} -} - r12 = heap32[(r11+2)]; -if(!(r12 ==0)) //_LBB864_115 -{ - r12 = r12 >> 2; - r12 = heap32[(r12)]; -if(!(r12 ==1)) //_LBB864_115 -{ -__label__ = 112; -break _77; -} -} - heap32[(r11)] = 0; -} -else{ - r10 = heap32[(r8+3)]; - r11 = r10 >> 2; - r12 = heap32[(r11)]; - if(r12 ==0) //_LBB864_65 -{ - heap32[(r11)] = 1; - heap32[(r8)] = 0; - r10 = heap32[(r8+3)]; - r11 = r10 >> 2; - r12 = heap32[(r11+2)]; - heap32[(r8+3)] = r12; - r12 = heap32[(r11+2)]; -if(!(r12 ==0)) //_LBB864_67 -{ - r12 = r12 >> 2; - heap32[(r12+1)] = r9; -} - r12 = heap32[(r8+1)]; - heap32[(r11+1)] = r12; - r12 = heap32[(r7+1)]; - if(r12 !=r9) //_LBB864_69 -{ - r12 = heap32[(r8+1)]; - r12 = r12 >> 2; - r13 = heap32[(r12+2)]; - if(r13 !=r9) //_LBB864_71 -{ - heap32[(r12+3)] = r10; -} -else{ - heap32[(r12+2)] = r10; -} -} -else{ - heap32[(r7+1)] = r10; -} - heap32[(r11+2)] = r9; - heap32[(r8+1)] = r10; - r10 = heap32[(r8+3)]; -} - r11 = r10 >> 2; - r12 = heap32[(r11+2)]; -if(!(r12 ==0)) //_LBB864_75 -{ - r12 = r12 >> 2; - r13 = heap32[(r12)]; - if(r13 !=1) //_LBB864_80 -{ -__label__ = 68; -break _77; -} -} - r12 = heap32[(r11+3)]; -if(!(r12 ==0)) //_LBB864_78 -{ - r12 = r12 >> 2; - r12 = heap32[(r12)]; -if(!(r12 ==1)) //_LBB864_78 -{ -__label__ = 78; -break _77; -} -} - heap32[(r11)] = 0; -} - r10 = heap32[(r8+1)]; - r5 = r9; - r9 = r10; -} -} -_125: do { -switch(__label__ ){//multiple entries -case 102: - r1 = heap32[(r11+2)]; -if(!(r1 ==0)) //_LBB864_118 -{ - r1 = r1 >> 2; - r1 = heap32[(r1)]; - if(r1 !=1) //_LBB864_114 -{ -__label__ = 112; -break _125; -} -} - heap32[(r12)] = 1; - r1 = heap32[(r11+3)]; - r12 = r1 >> 2; - heap32[(r11)] = 0; - r13 = heap32[(r12+2)]; - heap32[(r11+3)] = r13; - r13 = heap32[(r12+2)]; -if(!(r13 ==0)) //_LBB864_120 -{ - r13 = r13 >> 2; - heap32[(r13+1)] = r10; -} - r13 = heap32[(r11+1)]; - heap32[(r12+1)] = r13; - r13 = heap32[(r7+1)]; - if(r13 !=r10) //_LBB864_122 -{ - r13 = heap32[(r11+1)]; - r13 = r13 >> 2; - r14 = heap32[(r13+2)]; - if(r14 !=r10) //_LBB864_124 -{ - heap32[(r13+3)] = r1; -} -else{ - heap32[(r13+2)] = r1; -} -} -else{ - heap32[(r7+1)] = r1; -} - heap32[(r12+2)] = r10; - heap32[(r11+1)] = r1; - r10 = heap32[(r8+2)]; -__label__ = 112; -break _125; -break; -case 68: - r1 = heap32[(r11+3)]; -if(!(r1 ==0)) //_LBB864_82 -{ - r1 = r1 >> 2; - r1 = heap32[(r1)]; - if(r1 !=1) //_LBB864_77 -{ -__label__ = 78; -break _125; -} -} - heap32[(r12)] = 1; - r1 = heap32[(r11+2)]; - r12 = r1 >> 2; - heap32[(r11)] = 0; - r13 = heap32[(r12+3)]; - heap32[(r11+2)] = r13; - r13 = heap32[(r12+3)]; -if(!(r13 ==0)) //_LBB864_84 -{ - r13 = r13 >> 2; - heap32[(r13+1)] = r10; -} - r13 = heap32[(r11+1)]; - heap32[(r12+1)] = r13; - r13 = heap32[(r7+1)]; - if(r13 !=r10) //_LBB864_86 -{ - r13 = heap32[(r11+1)]; - r13 = r13 >> 2; - r14 = heap32[(r13+3)]; - if(r14 !=r10) //_LBB864_88 -{ - heap32[(r13+2)] = r1; -} -else{ - heap32[(r13+3)] = r1; -} -} -else{ - heap32[(r7+1)] = r1; -} - heap32[(r12+3)] = r10; - heap32[(r11+1)] = r1; - r10 = heap32[(r8+3)]; -__label__ = 78; -break; -} -} while(0); -_154: do { -switch(__label__ ){//multiple entries -case 112: - r1 = r10 >> 2; - r10 = heap32[(r8)]; - heap32[(r1)] = r10; - heap32[(r8)] = 1; - r1 = heap32[(r1+2)]; -if(!(r1 ==0)) //_LBB864_128 -{ - r1 = r1 >> 2; - heap32[(r1)] = 1; -} - r1 = heap32[(r8+2)]; - r10 = r1 >> 2; - r11 = heap32[(r10+3)]; - heap32[(r8+2)] = r11; - r11 = heap32[(r10+3)]; -if(!(r11 ==0)) //_LBB864_130 -{ - r11 = r11 >> 2; - heap32[(r11+1)] = r9; -} - r11 = heap32[(r8+1)]; - heap32[(r10+1)] = r11; - r11 = heap32[(r7+1)]; - if(r11 !=r9) //_LBB864_132 -{ - r7 = heap32[(r8+1)]; - r7 = r7 >> 2; - r11 = heap32[(r7+3)]; - if(r11 !=r9) //_LBB864_134 -{ - heap32[(r7+2)] = r1; -} -else{ - heap32[(r7+3)] = r1; -} -} -else{ - heap32[(r7+1)] = r1; -} - heap32[(r10+3)] = r9; - heap32[(r8+1)] = r1; -__label__ = 125; -break _154; -break; -case 78: - r1 = r10 >> 2; - r10 = heap32[(r8)]; - heap32[(r1)] = r10; - heap32[(r8)] = 1; - r1 = heap32[(r1+3)]; -if(!(r1 ==0)) //_LBB864_92 -{ - r1 = r1 >> 2; - heap32[(r1)] = 1; -} - r1 = heap32[(r8+3)]; - r10 = r1 >> 2; - r11 = heap32[(r10+2)]; - heap32[(r8+3)] = r11; - r11 = heap32[(r10+2)]; -if(!(r11 ==0)) //_LBB864_94 -{ - r11 = r11 >> 2; - heap32[(r11+1)] = r9; -} - r11 = heap32[(r8+1)]; - heap32[(r10+1)] = r11; - r11 = heap32[(r7+1)]; - if(r11 !=r9) //_LBB864_96 -{ - r7 = heap32[(r8+1)]; - r7 = r7 >> 2; - r11 = heap32[(r7+2)]; - if(r11 !=r9) //_LBB864_98 -{ - heap32[(r7+3)] = r1; -} -else{ - heap32[(r7+2)] = r1; -} -} -else{ - heap32[(r7+1)] = r1; -} - heap32[(r10+2)] = r9; - heap32[(r8+1)] = r1; -__label__ = 125; -break; -} -} while(0); -if (__label__ == 125){ - if(r5 ==0) //_LBB864_141 -{ -break _76; -} -} - r1 = r5 >> 2; - heap32[(r1)] = 1; -} -} while(0); - r1 = heap32[(r0+75)]; - heap32[(r4+3)] = r1; - heap32[(r0+75)] = r2; - r1 = heap32[(r0+79)]; - r1 = (r1 + -1)|0; - r2 = r3 >> 2; - heap32[(r0+79)] = r1; - heap32[(r2)] = r6; - return; -} -else{ - r0 = r3 >> 2; - heap32[(r0)] = r1; - return; -} -} - -function _ZN4__rw9__rb_treeIjSt4pairIKjPN5my_gl12TIndexBufferEENS_11__select1stIS6_jEESt4lessIjESaIS6_EE11_C_get_linkEv(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; - var r5; - var r6; -var __label__ = 0; - i7 = sp + -8;var g0 = i7>>2; // save stack - r0 = _ZN5my_glL9m_contextE; - r0 = r0 >> 2; - r1 = heap32[(r0+75)]; - if(r1 ==0) //_LBB865_2 -{ - r1 = heap32[(r0+76)]; - r2 = heap32[(r0+77)]; - if(r1 !=r2) //_LBB865_11 -{ - r2 = (r1 + 24)|0; - heap32[(r0+76)] = r2; -} -else{ - r1 = heap32[(r0+74)]; - if(r1 !=0) //_LBB865_5 -{ - r1 = r1 >> 2; - r1 = heap32[(r1+1)]; -} -else{ - r1 = 0; -} - heap32[(g0)] = 12; - _Znwj(i7); - r2 = r_g0; -if(!(r2 !=0)) //_LBB865_8 -{ - heap32[(g0)] = 3; - _ZN4__rw10__rw_throwEiz(i7); -} - r3 = r1 & 1023; - r3 = (r3 * 1656)|0; - r4 = r1 >>> 10; - r3 = r3 >>> 10; - r4 = (r4 * 1656)|0; - r5 = (r1 + 32)|0; - r3 = (r3 + r4)|0; - r3 = uint(r5) > uint(r3) ? r5 : r3; - r4 = (r1 + 1)|0; - r3 = uint(r3) > uint(r1) ? r3 : r4; - r4 = (r3 * 24)|0; - heap32[(g0)] = r4; - _Znwj(i7); - r1 = r_g0; -if(!(r1 !=0)) //_LBB865_10 -{ - heap32[(g0)] = 3; - _ZN4__rw10__rw_throwEiz(i7); -} - r5 = r2 >> 2; - heap32[(r5+2)] = r1; - r6 = heap32[(r0+74)]; - heap32[(r5)] = r6; - heap32[(r5+1)] = r3; - r3 = (r1 + r4)|0; - heap32[(r0+74)] = r2; - r2 = (r1 + 24)|0; - heap32[(r0+77)] = r3; - heap32[(r0+76)] = r2; -} -} -else{ - r2 = r1 >> 2; - r2 = heap32[(r2+3)]; - heap32[(r0+75)] = r2; -} - r0 = r1 >> 2; - heap32[(r0+1)] = 0; - heap32[(r0+2)] = 0; - heap32[(r0+3)] = 0; - heap32[(r0)] = 0; - r_g0 = r1; - return; -} - -function _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EED2Ev(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; - var r4; -var __label__ = 0; - i7 = sp + -32;var g0 = i7>>2; // save stack - r0 = heap32[(fp)]; - r1 = r0 >> 2; - r2 = heap32[(r1+4)]; -if(!(r2 ==0)) //_LBB866_3 -{ - r3 = r2 >> 2; - r3 = heap32[(r3+2)]; - heap32[(fp+-2)] = r3; - r3 = sp + -16; - r4 = sp + -8; - heap32[(g0)] = r3; - heap32[(g0+1)] = r0; - heap32[(g0+2)] = r4; - heap32[(g0+3)] = r2; - _ZN4__rw9__rb_treeISsSt4pairIKSsiENS_11__select1stIS3_SsEESt4lessISsESaIS3_EE5eraseENS_14__rw_tree_iterIS3_iPS3_RS3_NS_17__rw_rb_tree_nodeIS8_S3_SsS5_EEEESF_(i7); - r0 = heap32[(r1+4)]; - r2 = heap32[(r1+1)]; - r3 = r0 >> 2; - heap32[(r3+3)] = r2; - heap32[(r1+1)] = r0; - r0 = heap32[(r1)]; -if(!(r0 ==0)) //_LBB866_3 -{ -__label__ = 2; //SET chanka -_3: while(true){ - r2 = r0 >> 2; - r3 = heap32[(r2)]; - heap32[(r1)] = r3; - r2 = heap32[(r2+2)]; - heap32[(g0)] = r2; - _ZdlPv(i7); - heap32[(g0)] = r0; - _ZdlPv(i7); - r0 = heap32[(r1)]; - if(r0 !=0) //_LBB866_2 -{ -continue _3; -} -else{ -break _3; -} -} -} -} - return; -} - -function Mandreel_TextureAsync_Loaded(sp) -{ - var i7; - var fp = sp>>2; - var r0; - var r1; - var r2; - var r3; -var __label__ = 0; - i7 = sp + -40;var g0 = i7>>2; // save stack - r0 = 5; - r0 = heap32[(r0)]; - r1 = heap32[(fp)]; - heap32[(g0)] = 0; - heap32[(g0+1)] = 3553; - heap32[(g0+2)] = r1; - r2 = 100; - __FUNCTION_TABLE__[(r0)>>2](i7); - r0 = heap32[(r2)]; - r2 = heap32[(fp+1)]; - r3 = heap32[(fp+2)]; - heap32[(g0)] = 0; - heap32[(g0+1)] = 3553; - heap32[(g0+2)] = 0; - heap32[(g0+3)] = 6408; - heap32[(g0+4)] = r2; - heap32[(g0+5)] = r3; - heap32[(g0+6)] = 0; - heap32[(g0+7)] = 6408; - heap32[(g0+8)] = 5121; - heap32[(g0+9)] = 0; - __FUNCTION_TABLE__[(r0)>>2](i7); - heap32[(g0)] = r1; - Mandreel_TextureAsync_SetData(i7); - return; -} - -var _ZGVZN11btMatrix3x311getIdentityEvE14identityMatrix = Malloc(8); -var _ZGVZN11btTransform11getIdentityEvE17identityTransform = Malloc(8); -var Landscape02Vtx = Malloc(23760); -var _ZTIN16btCollisionWorld17RayResultCallbackE = Malloc(8); -var _ZTSN16btCollisionWorld17RayResultCallbackE = Malloc(40); -var _ZTVN16btCollisionWorld24ClosestRayResultCallbackE = Malloc(24); -var _ZTIN16btCollisionWorld24ClosestRayResultCallbackE = Malloc(12); -var _ZTSN16btCollisionWorld24ClosestRayResultCallbackE = Malloc(47); -var _ZTI13btMotionState = Malloc(8); -var _ZTS13btMotionState = Malloc(16); -var _ZTV20btDefaultMotionState = Malloc(24); -var _ZTI20btDefaultMotionState = Malloc(12); -var _ZTS20btDefaultMotionState = Malloc(23); -var _ZTI17btTypedConstraint = Malloc(24); -var _ZTS17btTypedConstraint = Malloc(20); -var _ZTI13btTypedObject = Malloc(8); -var _ZTS13btTypedObject = Malloc(16); -var _ZTV7RagDoll = Malloc(16); -var _ZTI7RagDoll = Malloc(8); -var _ZTS7RagDoll = Malloc(9); -var _ZTV13BenchmarkDemo = Malloc(36); -var _ZTI13BenchmarkDemo = Malloc(12); -var _ZTS13BenchmarkDemo = Malloc(16); -var _ZTI15DemoApplication = Malloc(8); -var _ZTS15DemoApplication = Malloc(18); -var _ZL10raycastBar = Malloc(40048); -var _2E_str3 = Malloc(48); -var _2E_str4 = Malloc(69); -var _2E_str5 = Malloc(61); -var _2E_str6 = Malloc(50); -var _2E_str7 = Malloc(27); -var _ZL7TaruVtx = Malloc(516); -var LandscapeVtx = Malloc(32); -var Landscape01Vtx = Malloc(24576); -var Landscape03Vtx = Malloc(24576); -var Landscape04Vtx = Malloc(25344); -var Landscape05Vtx = Malloc(26928); -var Landscape06Vtx = Malloc(27720); -var Landscape07Vtx = Malloc(26880); -var Landscape08Vtx = Malloc(26136); -var LandscapeVtxCount = Malloc(32); -var LandscapeIdx = Malloc(32); -var Landscape01Idx = Malloc(23436); -var Landscape02Idx = Malloc(22620); -var Landscape03Idx = Malloc(23436); -var Landscape04Idx = Malloc(24192); -var Landscape05Idx = Malloc(25740); -var Landscape06Idx = Malloc(26520); -var Landscape07Idx = Malloc(25704); -var Landscape08Idx = Malloc(24960); -var LandscapeIdxCount = Malloc(32); -var _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_0_2E_0_2E_0 = Malloc(4); -var _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_1_2E_0_2E_1 = Malloc(4); -var _ZZN11btMatrix3x311getIdentityEvE14identityMatrix_2E_0_2E_2_2E_0_2E_2 = Malloc(4); -var _ZZN11btTransform11getIdentityEvE17identityTransform = Malloc(64); -var _ZTV14BenchmarkDemo4 = Malloc(36); -var _ZTI14BenchmarkDemo4 = Malloc(12); -var _ZTS14BenchmarkDemo4 = Malloc(17); -var _ZL14benchmarkDemo4 = Malloc(80); -var _ZTI21btBroadphaseInterface = Malloc(8); -var _ZTS21btBroadphaseInterface = Malloc(24); -var _ZTI25btOverlappingPairCallback = Malloc(8); -var _ZTS25btOverlappingPairCallback = Malloc(28); -var _ZTI22btOverlappingPairCache = Malloc(12); -var _ZTS22btOverlappingPairCache = Malloc(25); -var _ZTV15btNullPairCache = Malloc(76); -var _ZTI15btNullPairCache = Malloc(12); -var _ZTS15btNullPairCache = Malloc(18); -var _2E_str11 = Malloc(36); -var _2E_str112 = Malloc(67); -var _2E_str213 = Malloc(18); -var _2E_str314 = Malloc(18); -var _ZTV20btAxisSweep3InternalItE = Malloc(64); -var _ZTI20btAxisSweep3InternalItE = Malloc(12); -var _ZTS20btAxisSweep3InternalItE = Malloc(26); -var _ZTV12btAxisSweep3 = Malloc(64); -var _ZTI12btAxisSweep3 = Malloc(12); -var _ZTS12btAxisSweep3 = Malloc(15); -var _ZTV20btCollisionAlgorithm = Malloc(28); -var _ZTI20btCollisionAlgorithm = Malloc(8); -var _ZTS20btCollisionAlgorithm = Malloc(23); -var _ZTIN6btDbvt8ICollideE = Malloc(8); -var _ZTSN6btDbvt8ICollideE = Malloc(19); -var _2E_str1118 = Malloc(63); -var _2E_str22 = Malloc(16); -var _ZTV18btDbvtTreeCollider = Malloc(36); -var _ZTI18btDbvtTreeCollider = Malloc(12); -var _ZTS18btDbvtTreeCollider = Malloc(21); -var _ZTV19BroadphaseRayTester = Malloc(36); -var _ZTI19BroadphaseRayTester = Malloc(12); -var _ZTS19BroadphaseRayTester = Malloc(22); -var _ZTV20BroadphaseAabbTester = Malloc(36); -var _ZTI20BroadphaseAabbTester = Malloc(12); -var _ZTS20BroadphaseAabbTester = Malloc(23); -var _2E_str18 = Malloc(73); -var _ZTV16btDbvtBroadphase = Malloc(64); -var _ZTI16btDbvtBroadphase = Malloc(12); -var _ZTS16btDbvtBroadphase = Malloc(19); -var _ZTV12btDispatcher = Malloc(64); -var _ZTI12btDispatcher = Malloc(8); -var _ZTS12btDispatcher = Malloc(15); -var _ZTI21btNodeOverlapCallback = Malloc(8); -var _ZTS21btNodeOverlapCallback = Malloc(24); -var _2E_str10 = Malloc(2); -var _2E_str212 = Malloc(18); -var _2E_str313 = Malloc(69); -var _2E_str414 = Malloc(36); -var _2E_str515 = Malloc(36); -var _2E_str616 = Malloc(36); -var _2E_str717 = Malloc(36); -var _2E_str820 = Malloc(36); -var _2E_str9 = Malloc(36); -var gOverlappingPairs = Malloc(4); -var _ZTI17btOverlapCallback = Malloc(8); -var _ZTS17btOverlapCallback = Malloc(20); -var _ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback = Malloc(20); -var _ZTIZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback = Malloc(12); -var _ZTSZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback = Malloc(110); -var _ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback = Malloc(20); -var _ZTIZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback = Malloc(12); -var _ZTSZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback = Malloc(129); -var gRemovePairs = Malloc(4); -var _ZTV28btHashedOverlappingPairCache = Malloc(76); -var _ZTI28btHashedOverlappingPairCache = Malloc(12); -var _ZTS28btHashedOverlappingPairCache = Malloc(31); -var _2E_str121 = Malloc(79); -var gAddedPairs = Malloc(4); -var _2E_str222 = Malloc(38); -var _2E_str323 = Malloc(77); -var _2E_str424 = Malloc(38); -var _2E_str525 = Malloc(38); -var _2E_str626 = Malloc(42); -var _2E_str727 = Malloc(22); -var gFindPairs = Malloc(4); -var _2E_str32 = Malloc(23); -var _2E_str133 = Malloc(23); -var _2E_str234 = Malloc(21); -var _2E_str335 = Malloc(24); -var _ZTV14btQuantizedBvh = Malloc(36); -var _ZTI14btQuantizedBvh = Malloc(8); -var _ZTS14btQuantizedBvh = Malloc(17); -var _2E_str537 = Malloc(71); -var _2E_str638 = Malloc(48); -var _2E_str739 = Malloc(13); -var _2E_str941 = Malloc(14); -var _2E_str1143 = Malloc(29); -var maxIterations = Malloc(4); -var _2E_str1844 = Malloc(19); -var _2E_str1921 = Malloc(32); -var _2E_str21 = Malloc(7); -var _2E_str2246 = Malloc(13); -var _ZTV30btActivatingCollisionAlgorithm = Malloc(28); -var _ZTI30btActivatingCollisionAlgorithm = Malloc(12); -var _ZTS30btActivatingCollisionAlgorithm = Malloc(33); -var _2E_str59 = Malloc(14); -var _2E_str160 = Malloc(69); -var _ZTV26btBoxBoxCollisionAlgorithm = Malloc(28); -var _ZTI26btBoxBoxCollisionAlgorithm = Malloc(12); -var _ZTS26btBoxBoxCollisionAlgorithm = Malloc(29); -var _ZTI36btDiscreteCollisionDetectorInterface = Malloc(8); -var _ZTS36btDiscreteCollisionDetectorInterface = Malloc(39); -var _ZTV16btBoxBoxDetector = Malloc(20); -var _ZTI16btBoxBoxDetector = Malloc(12); -var _ZTS16btBoxBoxDetector = Malloc(19); -var _2E_str65 = Malloc(12); -var _2E_str166 = Malloc(71); -var gNumManifold = Malloc(4); -var _ZTIN36btDiscreteCollisionDetectorInterface6ResultE = Malloc(8); -var _ZTSN36btDiscreteCollisionDetectorInterface6ResultE = Malloc(48); -var _ZTV23btCollisionPairCallback = Malloc(20); -var _ZTI23btCollisionPairCallback = Malloc(12); -var _ZTS23btCollisionPairCallback = Malloc(26); -var _2E_str169 = Malloc(45); -var _2E_str270 = Malloc(26); -var _2E_str371 = Malloc(14); -var _2E_str472 = Malloc(34); -var _2E_str573 = Malloc(76); -var _ZTV21btCollisionDispatcher = Malloc(64); -var _ZTI21btCollisionDispatcher = Malloc(12); -var _ZTS21btCollisionDispatcher = Malloc(24); -var _2E_str674 = Malloc(23); -var _2E_str775 = Malloc(6); -var _2E_str876 = Malloc(6); -var _2E_str977 = Malloc(73); -var _ZTV17btCollisionObject = Malloc(36); -var _ZTI17btCollisionObject = Malloc(8); -var _ZTS17btCollisionObject = Malloc(20); -var _2E_str78 = Malloc(27); -var _ZTIN16btCollisionWorld20ConvexResultCallbackE = Malloc(8); -var _ZTSN16btCollisionWorld20ConvexResultCallbackE = Malloc(43); -var _ZTI30btConvexPenetrationDepthSolver = Malloc(8); -var _ZTS30btConvexPenetrationDepthSolver = Malloc(33); -var _ZTVN12btConvexCast10CastResultE = Malloc(24); -var _ZTIN12btConvexCast10CastResultE = Malloc(8); -var _ZTSN12btConvexCast10CastResultE = Malloc(29); -var _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2 = Malloc(24); -var _ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2 = Malloc(12); -var _ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2 = Malloc(140); -var _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder = Malloc(24); -var _ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder = Malloc(12); -var _ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder = Malloc(164); -var _ZTI24btBroadphaseAabbCallback = Malloc(8); -var _ZTS24btBroadphaseAabbCallback = Malloc(27); -var _ZTI23btBroadphaseRayCallback = Malloc(12); -var _ZTS23btBroadphaseRayCallback = Malloc(26); -var _ZTV17DebugDrawcallback = Malloc(44); -var _ZTI17DebugDrawcallback = Malloc(32); -var _ZTS17DebugDrawcallback = Malloc(20); -var _ZTI18btTriangleCallback = Malloc(8); -var _ZTS18btTriangleCallback = Malloc(21); -var _ZTI31btInternalTriangleIndexCallback = Malloc(8); -var _ZTS31btInternalTriangleIndexCallback = Malloc(34); -var _ZTV16btCollisionWorld = Malloc(56); -var _ZTI16btCollisionWorld = Malloc(8); -var _ZTS16btCollisionWorld = Malloc(19); -var _ZTI16btManifoldResult = Malloc(12); -var _ZTS16btManifoldResult = Malloc(19); -var _ZTV21btSingleSweepCallback = Malloc(20); -var _ZTI21btSingleSweepCallback = Malloc(12); -var _ZTS21btSingleSweepCallback = Malloc(24); -var _ZTV19btSingleRayCallback = Malloc(20); -var _ZTI19btSingleRayCallback = Malloc(12); -var _ZTS19btSingleRayCallback = Malloc(22); -var _2E_str382 = Malloc(23); -var _2E_str483 = Malloc(76); -var _2E_str584 = Malloc(19); -var _2E_str685 = Malloc(42); -var _2E_str786 = Malloc(16); -var _2E_str887 = Malloc(71); -var _2E_str988 = Malloc(82); -var _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0 = Malloc(24); -var _ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0 = Malloc(12); -var _ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0 = Malloc(184); -var _ZTI28btTriangleConvexcastCallback = Malloc(12); -var _ZTS28btTriangleConvexcastCallback = Malloc(31); -var _ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback = Malloc(24); -var _ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback = Malloc(12); -var _ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback = Malloc(182); -var _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0 = Malloc(24); -var _ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0 = Malloc(12); -var _ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0 = Malloc(156); -var _ZTI25btTriangleRaycastCallback = Malloc(12); -var _ZTS25btTriangleRaycastCallback = Malloc(28); -var _ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback = Malloc(24); -var _ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback = Malloc(12); -var _ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback = Malloc(154); -var _2E_str1089 = Malloc(16); -var _2E_str1190 = Malloc(34); -var _2E_str1291 = Malloc(26); -var _2E_str1392 = Malloc(26); -var _2E_str1493 = Malloc(20); -var _ZZN16btCollisionWorld16updateSingleAabbEP17btCollisionObjectE8reportMe_2E_b = Malloc(1); -var _2E_str1594 = Malloc(49); -var _2E_str1695 = Malloc(68); -var _2E_str1796 = Malloc(65); -var _2E_str1897 = Malloc(9); -var _2E_str1998 = Malloc(12); -var _ZTV22btCompoundLeafCallback = Malloc(36); -var _ZTI22btCompoundLeafCallback = Malloc(12); -var _ZTS22btCompoundLeafCallback = Malloc(25); -var _2E_str99 = Malloc(42); -var _2E_str1100 = Malloc(83); -var _2E_str2101 = Malloc(43); -var _2E_str3102 = Malloc(41); -var _2E_str4103 = Malloc(43); -var _2E_str5104 = Malloc(43); -var _2E_str6105 = Malloc(9); -var _2E_str7106 = Malloc(41); -var _ZTV28btCompoundCollisionAlgorithm = Malloc(28); -var _ZTI28btCompoundCollisionAlgorithm = Malloc(12); -var _ZTS28btCompoundCollisionAlgorithm = Malloc(31); -var _2E_str109 = Malloc(9); -var _ZTV24btConvexTriangleCallback = Malloc(20); -var _ZTI24btConvexTriangleCallback = Malloc(12); -var _ZTS24btConvexTriangleCallback = Malloc(27); -var _ZTVZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback = Malloc(20); -var _ZTIZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback = Malloc(12); -var _ZTSZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback = Malloc(158); -var _ZTV15btTriangleShape = Malloc(124); -var _ZTI15btTriangleShape = Malloc(12); -var _ZTS15btTriangleShape = Malloc(18); -var _ZTI23btPolyhedralConvexShape = Malloc(12); -var _ZTS23btPolyhedralConvexShape = Malloc(26); -var _ZTI21btConvexInternalShape = Malloc(12); -var _ZTS21btConvexInternalShape = Malloc(24); -var _ZTI13btConvexShape = Malloc(12); -var _ZTS13btConvexShape = Malloc(16); -var _ZTI16btCollisionShape = Malloc(8); -var _ZTS16btCollisionShape = Malloc(19); -var _2E_str1110 = Malloc(26); -var _2E_str3112 = Malloc(66); -var _ZTV33btConvexConcaveCollisionAlgorithm = Malloc(28); -var _ZTI33btConvexConcaveCollisionAlgorithm = Malloc(12); -var _ZTS33btConvexConcaveCollisionAlgorithm = Malloc(36); -var _ZTI30btCollisionAlgorithmCreateFunc = Malloc(8); -var _ZTS30btCollisionAlgorithmCreateFunc = Malloc(33); -var _ZTVN23btConvexConvexAlgorithm10CreateFuncE = Malloc(20); -var _ZTIN23btConvexConvexAlgorithm10CreateFuncE = Malloc(12); -var _ZTSN23btConvexConvexAlgorithm10CreateFuncE = Malloc(40); -var _ZTV24btPerturbedContactResult = Malloc(28); -var _ZTI24btPerturbedContactResult = Malloc(12); -var _ZTS24btPerturbedContactResult = Malloc(27); -var _2E_str115 = Malloc(19); -var _2E_str4119 = Malloc(49); -var _2E_str5120 = Malloc(78); -var _ZTV23btConvexConvexAlgorithm = Malloc(28); -var _ZTI23btConvexConvexAlgorithm = Malloc(12); -var _ZTS23btConvexConvexAlgorithm = Malloc(26); -var _ZTV31btConvexPlaneCollisionAlgorithm = Malloc(28); -var _ZTI31btConvexPlaneCollisionAlgorithm = Malloc(12); -var _ZTS31btConvexPlaneCollisionAlgorithm = Malloc(34); -var _ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE = Malloc(20); -var _ZTIN31btConvexPlaneCollisionAlgorithm10CreateFuncE = Malloc(12); -var _ZTSN31btConvexPlaneCollisionAlgorithm10CreateFuncE = Malloc(48); -var _ZTI24btCollisionConfiguration = Malloc(8); -var _ZTS24btCollisionConfiguration = Malloc(27); -var _ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE = Malloc(20); -var _ZTIN33btConvexConcaveCollisionAlgorithm10CreateFuncE = Malloc(12); -var _ZTSN33btConvexConcaveCollisionAlgorithm10CreateFuncE = Malloc(50); -var _ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE = Malloc(20); -var _ZTIN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE = Malloc(12); -var _ZTSN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE = Malloc(57); -var _ZTVN28btCompoundCollisionAlgorithm10CreateFuncE = Malloc(20); -var _ZTIN28btCompoundCollisionAlgorithm10CreateFuncE = Malloc(12); -var _ZTSN28btCompoundCollisionAlgorithm10CreateFuncE = Malloc(45); -var _ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE = Malloc(20); -var _ZTIN28btCompoundCollisionAlgorithm17SwappedCreateFuncE = Malloc(12); -var _ZTSN28btCompoundCollisionAlgorithm17SwappedCreateFuncE = Malloc(52); -var _ZTVN16btEmptyAlgorithm10CreateFuncE = Malloc(20); -var _ZTIN16btEmptyAlgorithm10CreateFuncE = Malloc(12); -var _ZTSN16btEmptyAlgorithm10CreateFuncE = Malloc(33); -var _ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE = Malloc(20); -var _ZTIN32btSphereSphereCollisionAlgorithm10CreateFuncE = Malloc(12); -var _ZTSN32btSphereSphereCollisionAlgorithm10CreateFuncE = Malloc(49); -var _ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE = Malloc(20); -var _ZTIN34btSphereTriangleCollisionAlgorithm10CreateFuncE = Malloc(12); -var _ZTSN34btSphereTriangleCollisionAlgorithm10CreateFuncE = Malloc(51); -var _ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE = Malloc(20); -var _ZTIN26btBoxBoxCollisionAlgorithm10CreateFuncE = Malloc(12); -var _ZTSN26btBoxBoxCollisionAlgorithm10CreateFuncE = Malloc(43); -var _2E_str128 = Malloc(12); -var _2E_str1129 = Malloc(42); -var _ZTV31btDefaultCollisionConfiguration = Malloc(36); -var _ZTI31btDefaultCollisionConfiguration = Malloc(12); -var _ZTS31btDefaultCollisionConfiguration = Malloc(34); -var _ZTV16btEmptyAlgorithm = Malloc(28); -var _ZTI16btEmptyAlgorithm = Malloc(12); -var _ZTS16btEmptyAlgorithm = Malloc(19); -var _ZTV16btManifoldResult = Malloc(28); -var _2E_str2149 = Malloc(31); -var _2E_str3150 = Malloc(12); -var _2E_str5152 = Malloc(71); -var _2E_str155 = Malloc(28); -var _2E_str1156 = Malloc(73); -var _2E_str2157 = Malloc(80); -var _2E_str3158 = Malloc(15); -var _ZTV25btSimulationIslandManager = Malloc(24); -var _ZTI25btSimulationIslandManager = Malloc(8); -var _ZTS25btSimulationIslandManager = Malloc(28); -var _ZTV32btSphereSphereCollisionAlgorithm = Malloc(28); -var _ZTI32btSphereSphereCollisionAlgorithm = Malloc(12); -var _ZTS32btSphereSphereCollisionAlgorithm = Malloc(35); -var _ZTV34btSphereTriangleCollisionAlgorithm = Malloc(28); -var _ZTI34btSphereTriangleCollisionAlgorithm = Malloc(12); -var _ZTS34btSphereTriangleCollisionAlgorithm = Malloc(37); -var _ZTV22SphereTriangleDetector = Malloc(20); -var _ZTI22SphereTriangleDetector = Malloc(12); -var _ZTS22SphereTriangleDetector = Malloc(25); -var _2E_str173 = Malloc(4); -var _2E_str2175 = Malloc(61); -var _ZTV10btBoxShape = Malloc(124); -var _ZTI10btBoxShape = Malloc(12); -var _ZTS10btBoxShape = Malloc(13); -var _2E_str181 = Malloc(16); -var _ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(20); -var _ZTIZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(12); -var _ZTSZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(104); -var _ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback = Malloc(20); -var _ZTIZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback = Malloc(12); -var _ZTSZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback = Malloc(113); -var _ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(20); -var _ZTIZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(12); -var _ZTSZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback = Malloc(110); -var _2E_str5186 = Malloc(70); -var _2E_str6187 = Malloc(49); -var _2E_str7188 = Malloc(75); -var _2E_str8189 = Malloc(24); -var _ZTV22btBvhTriangleMeshShape = Malloc(88); -var _ZTI22btBvhTriangleMeshShape = Malloc(12); -var _ZTS22btBvhTriangleMeshShape = Malloc(25); -var _ZTI19btTriangleMeshShape = Malloc(12); -var _ZTS19btTriangleMeshShape = Malloc(22); -var _ZTI14btConcaveShape = Malloc(12); -var _ZTS14btConcaveShape = Malloc(17); -var _2E_str194 = Malloc(13); -var _2E_str4198 = Malloc(72); -var _2E_str6199 = Malloc(19); -var _ZTV14btCapsuleShape = Malloc(92); -var _ZTI14btCapsuleShape = Malloc(12); -var _ZTS14btCapsuleShape = Malloc(17); -var _2E_str200 = Malloc(21); -var _ZTV14btConcaveShape = Malloc(72); -var _2E_str219 = Malloc(7); -var _2E_str3222 = Malloc(70); -var _ZTV17btConvexHullShape = Malloc(120); -var _ZTI17btConvexHullShape = Malloc(12); -var _ZTS17btConvexHullShape = Malloc(20); -var _ZTI34btPolyhedralConvexAabbCachingShape = Malloc(12); -var _ZTS34btPolyhedralConvexAabbCachingShape = Malloc(37); -var _2E_str5223 = Malloc(19); -var _2E_str6224 = Malloc(22); -var _2E_str6232 = Malloc(19); -var _ZTV13btConvexShape = Malloc(92); -var _2E_str6249 = Malloc(13); -var _2E_str7250 = Malloc(66); -var _ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback = Malloc(20); -var _ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback = Malloc(12); -var _ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback = Malloc(91); -var _ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback = Malloc(20); -var _ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback = Malloc(12); -var _ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback = Malloc(100); -var _2E_str10306 = Malloc(67); -var _2E_str18314 = Malloc(36); -var _2E_str19315 = Malloc(48); -var _2E_str20316 = Malloc(17); -var _ZTV14btOptimizedBvh = Malloc(40); -var _ZTI14btOptimizedBvh = Malloc(12); -var _ZTS14btOptimizedBvh = Malloc(17); -var _2E_str7331 = Malloc(74); -var _ZGVZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions = Malloc(8); -var _ZZN34btPolyhedralConvexAabbCachingShape15recalcLocalAabbEvE11_directions = Malloc(96); -var _2E_str342 = Malloc(7); -var _ZTV13btSphereShape = Malloc(92); -var _ZTI13btSphereShape = Malloc(12); -var _ZTS13btSphereShape = Malloc(16); -var _2E_str349 = Malloc(15); -var _2E_str1350 = Malloc(27); -var _2E_str3352 = Malloc(76); -var _2E_str5354 = Malloc(20); -var _2E_str6355 = Malloc(44); -var _2E_str7356 = Malloc(15); -var _2E_str8357 = Malloc(28); -var _2E_str9358 = Malloc(61); -var _ZTV23btStridingMeshInterface = Malloc(68); -var _ZTI23btStridingMeshInterface = Malloc(8); -var _ZTS23btStridingMeshInterface = Malloc(26); -var _ZTV31btInternalTriangleIndexCallback = Malloc(20); -var _ZTV18btTriangleCallback = Malloc(20); -var _2E_str367 = Malloc(26); -var _2E_str1368 = Malloc(79); -var _ZTV26btTriangleIndexVertexArray = Malloc(68); -var _ZTI26btTriangleIndexVertexArray = Malloc(12); -var _ZTS26btTriangleIndexVertexArray = Malloc(29); -var _2E_str372 = Malloc(13); -var _ZTV21SupportVertexCallback = Malloc(20); -var _ZTI21SupportVertexCallback = Malloc(12); -var _ZTS21SupportVertexCallback = Malloc(24); -var _ZTVZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback = Malloc(20); -var _ZTIZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback = Malloc(12); -var _ZTSZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback = Malloc(102); -var _2E_str3375 = Malloc(72); -var _ZTV19btTriangleMeshShape = Malloc(80); -var _ZTV16btPointCollector = Malloc(28); -var _ZTI16btPointCollector = Malloc(12); -var _ZTS16btPointCollector = Malloc(19); -var _ZTV27btContinuousConvexCollision = Malloc(20); -var _ZTI27btContinuousConvexCollision = Malloc(12); -var _ZTS27btContinuousConvexCollision = Malloc(30); -var _ZTI12btConvexCast = Malloc(8); -var _ZTS12btConvexCast = Malloc(15); -var _ZTV12btConvexCast = Malloc(20); -var _ZTV15btGjkConvexCast = Malloc(20); -var _ZTI15btGjkConvexCast = Malloc(12); -var _ZTS15btGjkConvexCast = Malloc(18); -var _ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3 = Malloc(12); -var _ZZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonEE4i2m3 = Malloc(12); -var _ZTV30btGjkEpaPenetrationDepthSolver = Malloc(20); -var _ZTI30btGjkEpaPenetrationDepthSolver = Malloc(12); -var _ZTS30btGjkEpaPenetrationDepthSolver = Malloc(33); -var gNumDeepPenetrationChecks = Malloc(4); -var _ZTV17btGjkPairDetector = Malloc(20); -var _ZTI17btGjkPairDetector = Malloc(12); -var _ZTS17btGjkPairDetector = Malloc(20); -var gNumGjkChecks = Malloc(4); -var _2E_str425 = Malloc(39); -var _2E_str1426 = Malloc(71); -var _2E_str2427 = Malloc(18); -var _2E_str3428 = Malloc(75); -var gContactBreakingThreshold = Malloc(4); -var _2E_str434 = Malloc(52); -var _2E_str3437 = Malloc(78); -var _2E_str4438 = Malloc(50); -var _ZTV28btTriangleConvexcastCallback = Malloc(24); -var _ZTV22btSubsimplexConvexCast = Malloc(20); -var _ZTI22btSubsimplexConvexCast = Malloc(12); -var _ZTS22btSubsimplexConvexCast = Malloc(25); -var _2E_str457 = Malloc(16); -var _2E_str1458 = Malloc(80); -var _ZTVN16btCollisionWorld27ClosestConvexResultCallbackE = Malloc(24); -var _ZTIN16btCollisionWorld27ClosestConvexResultCallbackE = Malloc(12); -var _ZTSN16btCollisionWorld27ClosestConvexResultCallbackE = Malloc(50); -var _2E_str36 = Malloc(51); -var _2E_str239 = Malloc(26); -var _ZTV21btConeTwistConstraint = Malloc(52); -var _ZTI21btConeTwistConstraint = Malloc(12); -var _ZTS21btConeTwistConstraint = Malloc(24); -var _2E_str1340 = Malloc(37); -var _2E_str24 = Malloc(74); -var _2E_str442 = Malloc(37); -var _2E_str543 = Malloc(37); -var _2E_str846 = Malloc(24); -var _2E_str947 = Malloc(66); -var _2E_str1149 = Malloc(30); -var _2E_str29 = Malloc(27); -var _ZTV17btHingeConstraint = Malloc(52); -var _ZTI17btHingeConstraint = Malloc(12); -var _ZTS17btHingeConstraint = Malloc(20); -var _2E_str130 = Malloc(34); -var _2E_str231 = Malloc(70); -var _2E_str332 = Malloc(34); -var _2E_str433 = Malloc(34); -var gNumSplitImpulseRecoveries = Malloc(4); -var _ZTI18btConstraintSolver = Malloc(8); -var _ZTS18btConstraintSolver = Malloc(21); -var _ZTV35btSequentialImpulseConstraintSolver = Malloc(48); -var _ZTI35btSequentialImpulseConstraintSolver = Malloc(12); -var _ZTS35btSequentialImpulseConstraintSolver = Malloc(38); -var _ZGVZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed = Malloc(8); -var _ZZN35btSequentialImpulseConstraintSolver12getFixedBodyEvE7s_fixed = Malloc(608); -var _2E_str248 = Malloc(27); -var _2E_str34955 = Malloc(54); -var _2E_str450 = Malloc(11); -var _2E_str551 = Malloc(7); -var _2E_str652 = Malloc(88); -var _2E_str753 = Malloc(10); -var _2E_str854 = Malloc(34); -var _2E_str955 = Malloc(3); -var _2E_str1056 = Malloc(29); -var _2E_str1157 = Malloc(24); -var _2E_str76 = Malloc(22); -var _ZTI23btDiscreteDynamicsWorld = Malloc(12); -var _ZTS23btDiscreteDynamicsWorld = Malloc(26); -var _ZTI15btDynamicsWorld = Malloc(12); -var _ZTS15btDynamicsWorld = Malloc(18); -var _ZTIN25btSimulationIslandManager14IslandCallbackE = Malloc(8); -var _ZTSN25btSimulationIslandManager14IslandCallbackE = Malloc(46); -var _ZTV34btClosestNotMeConvexResultCallback = Malloc(24); -var _ZTI34btClosestNotMeConvexResultCallback = Malloc(12); -var _ZTS34btClosestNotMeConvexResultCallback = Malloc(37); -var _ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback = Malloc(20); -var _ZTIZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback = Malloc(12); -var _ZTSZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback = Malloc(99); -var _2E_str87 = Malloc(26); -var _2E_str188 = Malloc(27); -var _2E_str289 = Malloc(14); -var _2E_str794 = Malloc(20); -var _2E_str895 = Malloc(20); -var gNumClampedCcdMotions = Malloc(4); -var _2E_str996 = Malloc(17); -var _2E_str1097 = Malloc(22); -var _2E_str1198 = Malloc(29); -var _2E_str1299 = Malloc(15); -var _2E_str13100 = Malloc(5); -var _2E_str1461 = Malloc(68); -var _2E_str1562 = Malloc(24); -var _2E_str16101 = Malloc(15); -var _ZTV15btDynamicsWorld = Malloc(140); -var _ZTV23btDiscreteDynamicsWorld = Malloc(180); -var _ZL8uniqueId = Malloc(4); -var _ZTV11btRigidBody = Malloc(36); -var _ZTI11btRigidBody = Malloc(12); -var _ZTS11btRigidBody = Malloc(14); -var _2E_str4144 = Malloc(21); -var gDisableDeactivation = Malloc(1); -var gNumAlignedAllocs = Malloc(4); -var gNumAlignedFree = Malloc(4); -var _ZN15CProfileManager12FrameCounterE = Malloc(4); -var _ZN15CProfileManager4RootE = Malloc(32); -var _ZL13gProfileClock_2E_0 = Malloc(4); -var _ZN15CProfileManager11CurrentNodeE = Malloc(4); -var _2E_str729 = Malloc(5); -var _ZN4__rwL12__rw_catlistE_2E_0 = Malloc(4); -var _ZN4__rwL12__rw_catlistE_2E_1 = Malloc(4); -var _ZN4__rwL12__rw_catlistE_2E_2 = Malloc(4); -var llvm_2E_eh_2E_catch_2E_all_2E_value = Malloc(4); -var _ZTIN4__rw10__rw_facetE = Malloc(12); -var _ZTSN4__rw10__rw_facetE = Malloc(20); -var _ZTIN4__rw17__rw_synchronizedE = Malloc(8); -var _ZTSN4__rw17__rw_synchronizedE = Malloc(27); -var _2E_str4131 = Malloc(10); -var _2E_str15132 = Malloc(21); -var _2E_str26 = Malloc(1); -var _ZN4__rwL13__rw_what_bufE = Malloc(256); -var _ZN4__rwL16__rw_what_refcntE = Malloc(4); -var _2E_str3133 = Malloc(16); -var _2E_str47 = Malloc(25); -var _2E_str5134 = Malloc(18); -var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E7__fname = Malloc(4); -var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E6buffer = Malloc(11); -var _2E_str7136 = Malloc(3); -var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E8__catset = Malloc(4); -var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E4msgs = Malloc(32); -var _ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E5__cat = Malloc(4); -var _ZZN4__rw10__rw_throwEizE6errors = Malloc(100); -var _2E_str8137 = Malloc(26); -var _2E_str9138 = Malloc(18); -var _2E_str10139 = Malloc(29); -var _2E_str11140 = Malloc(33); -var _2E_str12141 = Malloc(17); -var _2E_str138142 = Malloc(20); -var _2E_str14143 = Malloc(21); -var _2E_str159144 = Malloc(25); -var _2E_str16145 = Malloc(51); -var _2E_str17146 = Malloc(47); -var _2E_str18147 = Malloc(22); -var _2E_str19148 = Malloc(44); -var _2E_str20149 = Malloc(23); -var _2E_str21150 = Malloc(24); -var _2E_str22151 = Malloc(39); -var _2E_str23152 = Malloc(38); -var _2E_str24153 = Malloc(38); -var _2E_str25154 = Malloc(29); -var _2E_str2610 = Malloc(44); -var _2E_str27 = Malloc(30); -var _2E_str28155 = Malloc(40); -var _2E_str29156 = Malloc(26); -var _2E_str30 = Malloc(27); -var _2E_str31 = Malloc(30); -var _2E_str32157 = Malloc(32); -var _2E_str33 = Malloc(11); -var _2E_str134 = Malloc(9); -var _2E_str235 = Malloc(12); -var _2E_str336 = Malloc(11); -var _2E_str437 = Malloc(8); -var _ZTVN4__rw10__rw_facetE = Malloc(16); -var _2E_str538 = Malloc(2); -var _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE12n_std_facets = Malloc(4); -var _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE10std_facets = Malloc(4); -var _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE13std_facet_buf = Malloc(1664); -var _ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE17std_facet_bufsize = Malloc(4); -var _ZZN4__rw10__rw_facetD4EvE9destroyed = Malloc(24); -var _ZN4__rw9__rw_catsE = Malloc(72); -var _2E_str785 = Malloc(2); -var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE6global = Malloc(4); -var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE5ginit = Malloc(4); -var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE9n_locales = Malloc(4); -var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7locales = Malloc(4); -var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE10locale_buf = Malloc(32); -var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE14locale_bufsize = Malloc(4); -var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7classic = Malloc(4); -var _ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE12classic_body = Malloc(172); -var _ZN4__rwL22__rw_classic_once_initE_2E_0_2E_b = Malloc(1); -var _ZN4__rwL12__rw_classicE = Malloc(4); -var _2E_str292167 = Malloc(4); -var _2E_str10100175 = Malloc(29); -var _2E_str12102177 = Malloc(33); -var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE4init_2E_b = Malloc(1); -var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs = Malloc(4); -var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11catalog_buf = Malloc(64); -var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize = Malloc(4); -var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE10n_catalogs = Malloc(4); -var _ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11largest_cat = Malloc(4); -var _2E_str115180 = Malloc(27); -var _2E_str1116181 = Malloc(25); -var _2E_str2131 = Malloc(2); -var _2E_str4133 = Malloc(2); -var _ZZN4__rw16__rw_locale_nameEiPKcRNS_14__rw_pod_arrayIcLj256EEEE11locale_root = Malloc(259); -var _ZNSs11_C_null_refE = Malloc(16); -var _ZTVSt8messagesIcE = Malloc(28); -var _ZTISt8messagesIcE = Malloc(32); -var _ZTSSt8messagesIcE = Malloc(15); -var _ZTISt13messages_base = Malloc(8); -var _ZTSSt13messages_base = Malloc(18); -var _2E_str2360 = Malloc(31); -var _2E_str3361 = Malloc(48); -var _2E_str4362 = Malloc(31); -var _ZTVSt9type_info = Malloc(24); -var _ZTISt9type_info = Malloc(8); -var _ZTSSt9type_info = Malloc(13); -var s_max_memory = Malloc(4); -var s_current_memory = Malloc(4); -var block_null = Malloc(16); -var _2E_str643 = Malloc(57); -var _2E_str1648 = Malloc(3); -var _2E_str4651 = Malloc(4); -var _2E_str5652 = Malloc(4); -var my_ctype = Malloc(1028); -var _ZL8nextRand = Malloc(4); -var _2E_str7654 = Malloc(4); -var _2E_str9655 = Malloc(4); -var _ZL8pad_line = Malloc(64); -var _ZL10strtok_pos = Malloc(4); -var _ZTI14CFileInterface = Malloc(8); -var _ZTS14CFileInterface = Malloc(17); -var _ZTV11CFileSystem = Malloc(44); -var _ZTI11CFileSystem = Malloc(12); -var _ZTS11CFileSystem = Malloc(14); -var _ZL13s_file_stdout = Malloc(4); -var _ZTV7CFileLS = Malloc(44); -var _ZTI7CFileLS = Malloc(12); -var _ZTS7CFileLS = Malloc(9); -var _ZTV10CFileCloud = Malloc(44); -var _ZTI10CFileCloud = Malloc(12); -var _ZTS10CFileCloud = Malloc(13); -var _ZL10s_aSockets = Malloc(262336); -var _ZTV11CFileStdout = Malloc(44); -var _ZTI11CFileStdout = Malloc(12); -var _ZTS11CFileStdout = Malloc(14); -var _2E_str31677 = Malloc(4); -var _2E_str32678 = Malloc(4); -var _2E_str33679 = Malloc(5); -var _2E_str34680 = Malloc(8); -var _2E_str35681 = Malloc(53); -var _2E_str37683 = Malloc(4); -var _2E_str38684 = Malloc(7); -var _ZN12mandreel_b64L9b64_charsE = Malloc(65); -var _ZN12mandreel_b64L11b64_indexesE = Malloc(256); -var _ZL25s_mandreel_internal_width = Malloc(4); -var _ZL26s_mandreel_internal_height = Malloc(4); -var g_msgcallback = Malloc(4); -var _ZL24g_pFirstTextureAsyncInfo = Malloc(4); -var _ZL17g_apPackFileNames = Malloc(1024); -var _ZGVZ21Mandreel_GetTickCountE7s_first = Malloc(8); -var _ZZ21Mandreel_GetTickCountE7s_first = Malloc(8); -var _ZZ29__mandreel_internal_preupdateE8s_bfirst_2E_b = Malloc(1); -var _2E_str779 = Malloc(13); -var _2E_str3782 = Malloc(13); -var _2E_str4783 = Malloc(37); -var _2E_str5784 = Malloc(12); -var _2E_str6785 = Malloc(17); -var _ZZ24__mandreel_internal_initE54s_723478567_mandreel___mandreel_internal_SetResolution = Malloc(4); -var _ZZ24__mandreel_internal_initE56s_723478567_mandreel_iMandreel_TextureAsync_IsCompressed = Malloc(4); -var _ZZ24__mandreel_internal_initE57s_723478567_mandreel_iMandreel_TextureAsync_GetPackOffset = Malloc(4); -var _ZZ24__mandreel_internal_initE29s_723478567_mandreel___resize = Malloc(4); -var _ZZ24__mandreel_internal_initE48s_723478567_mandreel_imandreel_restore_glcontext = Malloc(4); -var _ZZ24__mandreel_internal_initE46s_723478567_mandreel_imandreel_viewport_resize = Malloc(4); -var _ZTVN10__cxxabiv120__si_class_type_infoE = Malloc(40); -var _ZTIN10__cxxabiv120__si_class_type_infoE = Malloc(12); -var _ZTSN10__cxxabiv120__si_class_type_infoE = Malloc(37); -var _ZTIN10__cxxabiv117__class_type_infoE = Malloc(12); -var _ZTSN10__cxxabiv117__class_type_infoE = Malloc(34); -var _ZTVN10__cxxabiv117__class_type_infoE = Malloc(40); -var _ZTVN10__cxxabiv121__vmi_class_type_infoE = Malloc(40); -var _ZTIN10__cxxabiv121__vmi_class_type_infoE = Malloc(12); -var _ZTSN10__cxxabiv121__vmi_class_type_infoE = Malloc(38); -var _ZL11g_aChannels = Malloc(9344); -var _ZL7g_bInit_2E_b = Malloc(1); -var _2E_str221 = Malloc(8); -var _2E_str1222 = Malloc(21); -var _ZL21g_pFirstSoundDuration = Malloc(4); -var _2E_str3224 = Malloc(71); -var _2E_str4225 = Malloc(8); -var _ZL15g_iFreeChannels = Malloc(4); -var _ZL15g_aFreeChannels = Malloc(128); -var _ZL6g_bLog = Malloc(1); -var _2E_str12233 = Malloc(5); -var _2E_str22243 = Malloc(21); -var _2E_str24245 = Malloc(86); -var _2E_str26247 = Malloc(8); -var _2E_str27248 = Malloc(4); -var _2E_str28249 = Malloc(60); -var _2E_str29250 = Malloc(10); -var _2E_str30251 = Malloc(3); -var _2E_str31252 = Malloc(75); -var _2E_str32253 = Malloc(5); -var _2E_str33254 = Malloc(4); -var _2E_str34255 = Malloc(9); -var _2E_str35256 = Malloc(22); -var _ZZL32_mandreel_init_tcp_socket_librayvE47s_723478567_mandreel_mandreel_flash_tcp_onError = Malloc(4); -var _ZL13s_fifo_errors = Malloc(24); -var _ZN5my_glL9m_contextE = Malloc(324); -var llvm_2E_global_ctors = Malloc(40); -var llvm_2E_global_dtors = Malloc(56); -var llvm_2E_used = Malloc(300); -function global_init(stackPos) -{ -initHeap(); -emit_start(Landscape02Vtx) -emit_32(3279552512); -emit_32(1077902238); -emit_32(1122144223); -emit_32(3279552512); -emit_32(1074513450); -emit_32(1122656322); -emit_32(3279296528); -emit_32(1070576131); -emit_32(1122144223); -emit_32(3279296528); -emit_32(1069684087); -emit_32(1122656322); -emit_32(3279040545); -emit_32(1062793197); -emit_32(1122144223); -emit_32(3279040545); -emit_32(1059117578); -emit_32(1122656322); -emit_32(3278784496); -emit_32(3207760682); -emit_32(1122144223); -emit_32(3278784496); -emit_32(3205587983); -emit_32(1122656322); -emit_32(3278528512); -emit_32(3223956593); -emit_32(1122144223); -emit_32(3278528512); -emit_32(3221291239); -emit_32(1122656322); -emit_32(3278272528); -emit_32(3228867536); -emit_32(1122144223); -emit_32(3278272528); -emit_32(3227143174); -emit_32(1122656322); -emit_32(3278016545); -emit_32(3229577925); -emit_32(1122144223); -emit_32(3278016545); -emit_32(3228890898); -emit_32(1122656322); -emit_32(3277760496); -emit_32(3232782164); -emit_32(1122144223); -emit_32(3277760496); -emit_32(3231744493); -emit_32(1122656322); -emit_32(3277504512); -emit_32(3233030424); -emit_32(1122144223); -emit_32(3277504512); -emit_32(3231183211); -emit_32(1122656322); -emit_32(3277248528); -emit_32(3231512296); -emit_32(1122144223); -emit_32(3277248528); -emit_32(3226713845); -emit_32(1122656322); -emit_32(3276992545); -emit_32(3225240260); -emit_32(1122144223); -emit_32(3276992545); -emit_32(3222588579); -emit_32(1122656322); -emit_32(3276736496); -emit_32(3223081116); -emit_32(1122144223); -emit_32(3276736496); -emit_32(3218835474); -emit_32(1122656322); -emit_32(3276480512); -emit_32(3217103310); -emit_32(1122144223); -emit_32(3276480512); -emit_32(3214447728); -emit_32(1122656322); -emit_32(3276224528); -emit_32(3188062822); -emit_32(1122144223); -emit_32(3276224528); -emit_32(1046529045); -emit_32(1122656322); -emit_32(3275968545); -emit_32(1065108554); -emit_32(1122144223); -emit_32(3275968545); -emit_32(1070915199); -emit_32(1122656322); -emit_32(3275712496); -emit_32(1078777673); -emit_32(1122144223); -emit_32(3275712496); -emit_32(1082866637); -emit_32(1122656322); -emit_32(3275456512); -emit_32(1083552091); -emit_32(1122144223); -emit_32(3275456512); -emit_32(1087021578); -emit_32(1122656322); -emit_32(3275200528); -emit_32(1086679197); -emit_32(1122144223); -emit_32(3275200528); -emit_32(1090529232); -emit_32(1122656322); -emit_32(3274944545); -emit_32(1090716539); -emit_32(1122144223); -emit_32(3274944545); -emit_32(1092317201); -emit_32(1122656322); -emit_32(3274688496); -emit_32(1091935477); -emit_32(1122144223); -emit_32(3274688496); -emit_32(1093426427); -emit_32(1122656322); -emit_32(3274432512); -emit_32(1092098877); -emit_32(1122144223); -emit_32(3274432512); -emit_32(1094040158); -emit_32(1122656322); -emit_32(3274176528); -emit_32(1094849764); -emit_32(1122144223); -emit_32(3274176528); -emit_32(1095262693); -emit_32(1122656322); -emit_32(3273920545); -emit_32(1097725693); -emit_32(1122144223); -emit_32(3273920545); -emit_32(1097468792); -emit_32(1122656322); -emit_32(3273664496); -emit_32(1099104833); -emit_32(1122144223); -emit_32(3273664496); -emit_32(1099540411); -emit_32(1122656322); -emit_32(3273408512); -emit_32(1100237609); -emit_32(1122144223); -emit_32(3273408512); -emit_32(1100993213); -emit_32(1122656322); -emit_32(3273152528); -emit_32(1102296436); -emit_32(1122144223); -emit_32(3273152528); -emit_32(1102819203); -emit_32(1122656322); -emit_32(3272896545); -emit_32(1104227022); -emit_32(1122144223); -emit_32(3272896545); -emit_32(1104470763); -emit_32(1122656322); -emit_32(3272640496); -emit_32(1105517399); -emit_32(1122144223); -emit_32(3272640496); -emit_32(1105442111); -emit_32(1122656322); -emit_32(3272384512); -emit_32(1106394218); -emit_32(1122144223); -emit_32(3272384512); -emit_32(1106127356); -emit_32(1122656322); -emit_32(3272128528); -emit_32(1107354688); -emit_32(1122144223); -emit_32(3272128528); -emit_32(1106807829); -emit_32(1122656322); -emit_32(3271872545); -emit_32(1107530062); -emit_32(1122144223); -emit_32(3271872545); -emit_32(1107212108); -emit_32(1122656322); -emit_32(3271616496); -emit_32(1107693221); -emit_32(1122144223); -emit_32(3271616496); -emit_32(1107339719); -emit_32(1122656322); -emit_32(3271163904); -emit_32(1108003075); -emit_32(1122144223); -emit_32(3271163904); -emit_32(1108016575); -emit_32(1122656322); -emit_32(3270651937); -emit_32(1108711703); -emit_32(1122144223); -emit_32(3270651937); -emit_32(1108361190); -emit_32(1122656322); -emit_32(3270139970); -emit_32(1108881283); -emit_32(1122144223); -emit_32(3270139970); -emit_32(1108677807); -emit_32(1122656322); -emit_32(3269627871); -emit_32(1108829956); -emit_32(1122144223); -emit_32(3269627871); -emit_32(1108698045); -emit_32(1122656322); -emit_32(3269115904); -emit_32(1108842486); -emit_32(1122144223); -emit_32(3269115904); -emit_32(1108670415); -emit_32(1122656322); -emit_32(3268603937); -emit_32(1108356995); -emit_32(1122144223); -emit_32(3268603937); -emit_32(1108385307); -emit_32(1122656322); -emit_32(3268091970); -emit_32(1107850324); -emit_32(1122144223); -emit_32(3268091970); -emit_32(1107664044); -emit_32(1122656322); -emit_32(3267579911); -emit_32(1107320504); -emit_32(1122144223); -emit_32(3267579911); -emit_32(1106926109); -emit_32(1122656322); -emit_32(3267067904); -emit_32(1106158866); -emit_32(1122144223); -emit_32(3267067904); -emit_32(1105983491); -emit_32(1122656322); -emit_32(3266555911); -emit_32(1106326271); -emit_32(1122144223); -emit_32(3266555911); -emit_32(1105752542); -emit_32(1122656322); -emit_32(3266043904); -emit_32(1105638300); -emit_32(1122144223); -emit_32(3266043904); -emit_32(1105343650); -emit_32(1122656322); -emit_32(3265531911); -emit_32(1104660451); -emit_32(1122144223); -emit_32(3265531911); -emit_32(1104481983); -emit_32(1122656322); -emit_32(3265019904); -emit_32(1103867255); -emit_32(1122144223); -emit_32(3265019904); -emit_32(1103536377); -emit_32(1122656322); -emit_32(3264507911); -emit_32(1102764940); -emit_32(1122144223); -emit_32(3264507911); -emit_32(1102421374); -emit_32(1122656322); -emit_32(3263995904); -emit_32(1101613761); -emit_32(1122144223); -emit_32(3263995904); -emit_32(1101252526); -emit_32(1122656322); -emit_32(3263483911); -emit_32(1100019768); -emit_32(1122144223); -emit_32(3263483911); -emit_32(1099947835); -emit_32(1122656322); -emit_32(3262775296); -emit_32(1099086483); -emit_32(1122144223); -emit_32(3262775296); -emit_32(1099066665); -emit_32(1122656322); -emit_32(3261751309); -emit_32(1097937715); -emit_32(1122144223); -emit_32(3261751309); -emit_32(1097029334); -emit_32(1122656322); -emit_32(3260727296); -emit_32(1097070753); -emit_32(1122144223); -emit_32(3260727296); -emit_32(1095561223); -emit_32(1122656322); -emit_32(3259703309); -emit_32(1096595014); -emit_32(1122144223); -emit_32(3259703309); -emit_32(1095286181); -emit_32(1122656322); -emit_32(3258679296); -emit_32(1095456365); -emit_32(1122144223); -emit_32(3258679296); -emit_32(1094900095); -emit_32(1122656322); -emit_32(3257655309); -emit_32(1093219752); -emit_32(1122144223); -emit_32(3257655309); -emit_32(1093810625); -emit_32(1122656322); -emit_32(3256631296); -emit_32(1092609303); -emit_32(1122144223); -emit_32(3256631296); -emit_32(1093100949); -emit_32(1122656322); -emit_32(3255607309); -emit_32(1093762915); -emit_32(1122144223); -emit_32(3255607309); -emit_32(1093720133); -emit_32(1122656322); -emit_32(3254386688); -emit_32(1094666473); -emit_32(1122144223); -emit_32(3254386688); -emit_32(1094140822); -emit_32(1122656322); -emit_32(3252338714); -emit_32(1094266021); -emit_32(1122144223); -emit_32(3252338714); -emit_32(1093200983); -emit_32(1122656322); -emit_32(3250290688); -emit_32(1093706396); -emit_32(1122144223); -emit_32(3250290688); -emit_32(1093279731); -emit_32(1122656322); -emit_32(3248242714); -emit_32(1095255038); -emit_32(1122144223); -emit_32(3248242714); -emit_32(1095297296); -emit_32(1122656322); -emit_32(3245998080); -emit_32(1096659501); -emit_32(1122144223); -emit_32(3245998080); -emit_32(1096326998); -emit_32(1122656322); -emit_32(3241902132); -emit_32(1097360998); -emit_32(1122144223); -emit_32(3241902132); -emit_32(1097208116); -emit_32(1122656322); -emit_32(3237609472); -emit_32(1097602590); -emit_32(1122144223); -emit_32(3237609472); -emit_32(1098363332); -emit_32(1122656322); -emit_32(3229220864); -emit_32(1098820406); -emit_32(1122144223); -emit_32(3229220864); -emit_32(1098960496); -emit_32(1122656322); -emit_32(0); -emit_32(1099470104); -emit_32(1122144223); -emit_32(0); -emit_32(1099624612); -emit_32(1122656322); -emit_32(1081737216); -emit_32(1100139620); -emit_32(1122144223); -emit_32(1081737216); -emit_32(1100438045); -emit_32(1122656322); -emit_32(3279552512); -emit_32(1083519019); -emit_32(1121632256); -emit_32(3279296528); -emit_32(1074813133); -emit_32(1121632256); -emit_32(3279040545); -emit_32(1064894426); -emit_32(1121632256); -emit_32(3278784496); -emit_32(3220842029); -emit_32(1121632256); -emit_32(3278528512); -emit_32(3224334626); -emit_32(1121632256); -emit_32(3278272528); -emit_32(3228042265); -emit_32(1121632256); -emit_32(3278016545); -emit_32(3230773910); -emit_32(1121632256); -emit_32(3277760496); -emit_32(3234673249); -emit_32(1121632256); -emit_32(3277504512); -emit_32(3235346205); -emit_32(1121632256); -emit_32(3277248528); -emit_32(3233634383); -emit_32(1121632256); -emit_32(3276992545); -emit_32(3231165889); -emit_32(1121632256); -emit_32(3276736496); -emit_32(3226724414); -emit_32(1121632256); -emit_32(3276480512); -emit_32(3221509175); -emit_32(1121632256); -emit_32(3276224528); -emit_32(3212320830); -emit_32(1121632256); -emit_32(3275968545); -emit_32(1049206085); -emit_32(1121632256); -emit_32(3275712496); -emit_32(1073305532); -emit_32(1121632256); -emit_32(3275456512); -emit_32(1077128892); -emit_32(1121632256); -emit_32(3275200528); -emit_32(1082594553); -emit_32(1121632256); -emit_32(3274944545); -emit_32(1084662177); -emit_32(1121632256); -emit_32(3274688496); -emit_32(1089411681); -emit_32(1121632256); -emit_32(3274432512); -emit_32(1092042275); -emit_32(1121632256); -emit_32(3274176528); -emit_32(1095387054); -emit_32(1121632256); -emit_32(3273920545); -emit_32(1097794270); -emit_32(1121632256); -emit_32(3273664496); -emit_32(1099325348); -emit_32(1121632256); -emit_32(3273408512); -emit_32(1100750678); -emit_32(1121632256); -emit_32(3273152528); -emit_32(1101739065); -emit_32(1121632256); -emit_32(3272896545); -emit_32(1103692248); -emit_32(1121632256); -emit_32(3272640496); -emit_32(1105414167); -emit_32(1121632256); -emit_32(3272384512); -emit_32(1106644671); -emit_32(1121632256); -emit_32(3272128528); -emit_32(1107563486); -emit_32(1121632256); -emit_32(3271872545); -emit_32(1107577274); -emit_32(1121632256); -emit_32(3271616496); -emit_32(1107593999); -emit_32(1121632256); -emit_32(3271163904); -emit_32(1108097080); -emit_32(1121632256); -emit_32(3270651937); -emit_32(1108460883); -emit_32(1121632256); -emit_32(3270139970); -emit_32(1108954710); -emit_32(1121632256); -emit_32(3269627871); -emit_32(1109009079); -emit_32(1121632256); -emit_32(3269115904); -emit_32(1108610279); -emit_32(1121632256); -emit_32(3268603937); -emit_32(1108058125); -emit_32(1121632256); -emit_32(3268091970); -emit_32(1107555412); -emit_32(1121632256); -emit_32(3267579911); -emit_32(1106717652); -emit_32(1121632256); -emit_32(3267067904); -emit_32(1106512341); -emit_32(1121632256); -emit_32(3266555911); -emit_32(1106506836); -emit_32(1121632256); -emit_32(3266043904); -emit_32(1105659534); -emit_32(1121632256); -emit_32(3265531911); -emit_32(1105302179); -emit_32(1121632256); -emit_32(3265019904); -emit_32(1104106698); -emit_32(1121632256); -emit_32(3264507911); -emit_32(1102757390); -emit_32(1121632256); -emit_32(3263995904); -emit_32(1101520647); -emit_32(1121632256); -emit_32(3263483911); -emit_32(1100159910); -emit_32(1121632256); -emit_32(3262775296); -emit_32(1099381290); -emit_32(1121632256); -emit_32(3261751309); -emit_32(1098131911); -emit_32(1121632256); -emit_32(3260727296); -emit_32(1097148452); -emit_32(1121632256); -emit_32(3259703309); -emit_32(1096156919); -emit_32(1121632256); -emit_32(3258679296); -emit_32(1095321308); -emit_32(1121632256); -emit_32(3257655309); -emit_32(1094008281); -emit_32(1121632256); -emit_32(3256631296); -emit_32(1093682489); -emit_32(1121632256); -emit_32(3255607309); -emit_32(1094449313); -emit_32(1121632256); -emit_32(3254386688); -emit_32(1095241512); -emit_32(1121632256); -emit_32(3252338714); -emit_32(1095115158); -emit_32(1121632256); -emit_32(3250290688); -emit_32(1095038088); -emit_32(1121632256); -emit_32(3248242714); -emit_32(1095359791); -emit_32(1121632256); -emit_32(3245998080); -emit_32(1096573937); -emit_32(1121632256); -emit_32(3241902132); -emit_32(1097191129); -emit_32(1121632256); -emit_32(3237609472); -emit_32(1097678717); -emit_32(1121632256); -emit_32(3229220864); -emit_32(1098487169); -emit_32(1121632256); -emit_32(0); -emit_32(1099111334); -emit_32(1121632256); -emit_32(1081737216); -emit_32(1099957115); -emit_32(1121632256); -emit_32(3279552512); -emit_32(1084728636); -emit_32(1121120289); -emit_32(3279296528); -emit_32(1077536872); -emit_32(1121120289); -emit_32(3279040545); -emit_32(1049067472); -emit_32(1121120289); -emit_32(3278784496); -emit_32(3197365821); -emit_32(1121120289); -emit_32(3278528512); -emit_32(3211331864); -emit_32(1121120289); -emit_32(3278272528); -emit_32(3222095455); -emit_32(1121120289); -emit_32(3278016545); -emit_32(3228342367); -emit_32(1121120289); -emit_32(3277760496); -emit_32(3232161071); -emit_32(1121120289); -emit_32(3277504512); -emit_32(3233959337); -emit_32(1121120289); -emit_32(3277248528); -emit_32(3232603256); -emit_32(1121120289); -emit_32(3276992545); -emit_32(3231337561); -emit_32(1121120289); -emit_32(3276736496); -emit_32(3226343236); -emit_32(1121120289); -emit_32(3276480512); -emit_32(3222401429); -emit_32(1121120289); -emit_32(3276224528); -emit_32(3217196088); -emit_32(1121120289); -emit_32(3275968545); -emit_32(3174963708); -emit_32(1121120289); -emit_32(3275712496); -emit_32(1071520772); -emit_32(1121120289); -emit_32(3275456512); -emit_32(1076782233); -emit_32(1121120289); -emit_32(3275200528); -emit_32(1082969209); -emit_32(1121120289); -emit_32(3274944545); -emit_32(1085234364); -emit_32(1121120289); -emit_32(3274688496); -emit_32(1089004246); -emit_32(1121120289); -emit_32(3274432512); -emit_32(1092733108); -emit_32(1121120289); -emit_32(3274176528); -emit_32(1095820326); -emit_32(1121120289); -emit_32(3273920545); -emit_32(1098604085); -emit_32(1121120289); -emit_32(3273664496); -emit_32(1099874855); -emit_32(1121120289); -emit_32(3273408512); -emit_32(1100920809); -emit_32(1121120289); -emit_32(3273152528); -emit_32(1101878893); -emit_32(1121120289); -emit_32(3272896545); -emit_32(1103179284); -emit_32(1121120289); -emit_32(3272640496); -emit_32(1105420196); -emit_32(1121120289); -emit_32(3272384512); -emit_32(1107134828); -emit_32(1121120289); -emit_32(3272128528); -emit_32(1107920526); -emit_32(1121120289); -emit_32(3271872545); -emit_32(1108056762); -emit_32(1121120289); -emit_32(3271616496); -emit_32(1107769583); -emit_32(1121120289); -emit_32(3271163904); -emit_32(1107905112); -emit_32(1121120289); -emit_32(3270651937); -emit_32(1108241573); -emit_32(1121120289); -emit_32(3270139970); -emit_32(1108859578); -emit_32(1121120289); -emit_32(3269627871); -emit_32(1109044049); -emit_32(1121120289); -emit_32(3269115904); -emit_32(1108576331); -emit_32(1121120289); -emit_32(3268603937); -emit_32(1107973793); -emit_32(1121120289); -emit_32(3268091970); -emit_32(1107354478); -emit_32(1121120289); -emit_32(3267579911); -emit_32(1106448273); -emit_32(1121120289); -emit_32(3267067904); -emit_32(1106470135); -emit_32(1121120289); -emit_32(3266555911); -emit_32(1106654580); -emit_32(1121120289); -emit_32(3266043904); -emit_32(1106160386); -emit_32(1121120289); -emit_32(3265531911); -emit_32(1105210009); -emit_32(1121120289); -emit_32(3265019904); -emit_32(1104004514); -emit_32(1121120289); -emit_32(3264507911); -emit_32(1102526231); -emit_32(1121120289); -emit_32(3263995904); -emit_32(1101481692); -emit_32(1121120289); -emit_32(3263483911); -emit_32(1100090337); -emit_32(1121120289); -emit_32(3262775296); -emit_32(1099268882); -emit_32(1121120289); -emit_32(3261751309); -emit_32(1098701288); -emit_32(1121120289); -emit_32(3260727296); -emit_32(1097681968); -emit_32(1121120289); -emit_32(3259703309); -emit_32(1096561774); -emit_32(1121120289); -emit_32(3258679296); -emit_32(1095766953); -emit_32(1121120289); -emit_32(3257655309); -emit_32(1094631765); -emit_32(1121120289); -emit_32(3256631296); -emit_32(1094735364); -emit_32(1121120289); -emit_32(3255607309); -emit_32(1094999291); -emit_32(1121120289); -emit_32(3254386688); -emit_32(1095377722); -emit_32(1121120289); -emit_32(3252338714); -emit_32(1095433191); -emit_32(1121120289); -emit_32(3250290688); -emit_32(1095107399); -emit_32(1121120289); -emit_32(3248242714); -emit_32(1095777544); -emit_32(1121120289); -emit_32(3245998080); -emit_32(1096857472); -emit_32(1121120289); -emit_32(3241902132); -emit_32(1097446352); -emit_32(1121120289); -emit_32(3237609472); -emit_32(1097974940); -emit_32(1121120289); -emit_32(3229220864); -emit_32(1098736416); -emit_32(1121120289); -emit_32(0); -emit_32(1099338613); -emit_32(1121120289); -emit_32(1081737216); -emit_32(1099935672); -emit_32(1121120289); -emit_32(3279552512); -emit_32(1082712497); -emit_32(1120608322); -emit_32(3279296528); -emit_32(1077291841); -emit_32(1120608322); -emit_32(3279040545); -emit_32(1073741866); -emit_32(1120608322); -emit_32(3278784496); -emit_32(1070338230); -emit_32(1120608322); -emit_32(3278528512); -emit_32(1056781669); -emit_32(1120608322); -emit_32(3278272528); -emit_32(3219431904); -emit_32(1120608322); -emit_32(3278016545); -emit_32(3224861095); -emit_32(1120608322); -emit_32(3277760496); -emit_32(3231719746); -emit_32(1120608322); -emit_32(3277504512); -emit_32(3233844476); -emit_32(1120608322); -emit_32(3277248528); -emit_32(3232334736); -emit_32(1120608322); -emit_32(3276992545); -emit_32(3229801544); -emit_32(1120608322); -emit_32(3276736496); -emit_32(3228638233); -emit_32(1120608322); -emit_32(3276480512); -emit_32(3223489306); -emit_32(1120608322); -emit_32(3276224528); -emit_32(3213418446); -emit_32(1120608322); -emit_32(3275968545); -emit_32(3202678964); -emit_32(1120608322); -emit_32(3275712496); -emit_32(1069745659); -emit_32(1120608322); -emit_32(3275456512); -emit_32(1079646691); -emit_32(1120608322); -emit_32(3275200528); -emit_32(1083145831); -emit_32(1120608322); -emit_32(3274944545); -emit_32(1087983583); -emit_32(1120608322); -emit_32(3274688496); -emit_32(1091238804); -emit_32(1120608322); -emit_32(3274432512); -emit_32(1093823208); -emit_32(1120608322); -emit_32(3274176528); -emit_32(1097286130); -emit_32(1120608322); -emit_32(3273920545); -emit_32(1099742472); -emit_32(1120608322); -emit_32(3273664496); -emit_32(1100695890); -emit_32(1120608322); -emit_32(3273408512); -emit_32(1101406876); -emit_32(1120608322); -emit_32(3273152528); -emit_32(1102194042); -emit_32(1120608322); -emit_32(3272896545); -emit_32(1103115112); -emit_32(1120608322); -emit_32(3272640496); -emit_32(1105064414); -emit_32(1120608322); -emit_32(3272384512); -emit_32(1107025042); -emit_32(1120608322); -emit_32(3272128528); -emit_32(1107923960); -emit_32(1120608322); -emit_32(3271872545); -emit_32(1108173154); -emit_32(1120608322); -emit_32(3271616496); -emit_32(1108080381); -emit_32(1120608322); -emit_32(3271163904); -emit_32(1107879605); -emit_32(1120608322); -emit_32(3270651937); -emit_32(1108128956); -emit_32(1120608322); -emit_32(3270139970); -emit_32(1108688110); -emit_32(1120608322); -emit_32(3269627871); -emit_32(1108797188); -emit_32(1120608322); -emit_32(3269115904); -emit_32(1108405938); -emit_32(1120608322); -emit_32(3268603937); -emit_32(1107934577); -emit_32(1120608322); -emit_32(3268091970); -emit_32(1107323021); -emit_32(1120608322); -emit_32(3267579911); -emit_32(1106810136); -emit_32(1120608322); -emit_32(3267067904); -emit_32(1106638904); -emit_32(1120608322); -emit_32(3266555911); -emit_32(1106673664); -emit_32(1120608322); -emit_32(3266043904); -emit_32(1106080013); -emit_32(1120608322); -emit_32(3265531911); -emit_32(1104833308); -emit_32(1120608322); -emit_32(3265019904); -emit_32(1103684593); -emit_32(1120608322); -emit_32(3264507911); -emit_32(1102392852); -emit_32(1120608322); -emit_32(3263995904); -emit_32(1101073744); -emit_32(1120608322); -emit_32(3263483911); -emit_32(1099963145); -emit_32(1120608322); -emit_32(3262775296); -emit_32(1099506070); -emit_32(1120608322); -emit_32(3261751309); -emit_32(1099320997); -emit_32(1120608322); -emit_32(3260727296); -emit_32(1098604295); -emit_32(1120608322); -emit_32(3259703309); -emit_32(1097529295); -emit_32(1120608322); -emit_32(3258679296); -emit_32(1096142134); -emit_32(1120608322); -emit_32(3257655309); -emit_32(1094301568); -emit_32(1120608322); -emit_32(3256631296); -emit_32(1094016985); -emit_32(1120608322); -emit_32(3255607309); -emit_32(1095156577); -emit_32(1120608322); -emit_32(3254386688); -emit_32(1095833223); -emit_32(1120608322); -emit_32(3252338714); -emit_32(1095183630); -emit_32(1120608322); -emit_32(3250290688); -emit_32(1094555114); -emit_32(1120608322); -emit_32(3248242714); -emit_32(1096488059); -emit_32(1120608322); -emit_32(3245998080); -emit_32(1097556453); -emit_32(1120608322); -emit_32(3241902132); -emit_32(1097820275); -emit_32(1120608322); -emit_32(3237609472); -emit_32(1097925237); -emit_32(1120608322); -emit_32(3229220864); -emit_32(1098971297); -emit_32(1120608322); -emit_32(0); -emit_32(1099474823); -emit_32(1120608322); -emit_32(1081737216); -emit_32(1099802817); -emit_32(1120608322); -emit_32(3279552512); -emit_32(1082649645); -emit_32(1120096263); -emit_32(3279296528); -emit_32(1081824919); -emit_32(1120096263); -emit_32(3279040545); -emit_32(1078459284); -emit_32(1120096263); -emit_32(3278784496); -emit_32(1074050399); -emit_32(1120096263); -emit_32(3278528512); -emit_32(1053874077); -emit_32(1120096263); -emit_32(3278272528); -emit_32(3211237089); -emit_32(1120096263); -emit_32(3278016545); -emit_32(3223833574); -emit_32(1120096263); -emit_32(3277760496); -emit_32(3229161263); -emit_32(1120096263); -emit_32(3277504512); -emit_32(3233010292); -emit_32(1120096263); -emit_32(3277248528); -emit_32(3229615695); -emit_32(1120096263); -emit_32(3276992545); -emit_32(3222904913); -emit_32(1120096263); -emit_32(3276736496); -emit_32(3222905752); -emit_32(1120096263); -emit_32(3276480512); -emit_32(3220913919); -emit_32(1120096263); -emit_32(3276224528); -emit_32(3216868597); -emit_32(1120096263); -emit_32(3275968545); -emit_32(3184537459); -emit_32(1120096263); -emit_32(3275712496); -emit_32(1071525805); -emit_32(1120096263); -emit_32(3275456512); -emit_32(1080770303); -emit_32(1120096263); -emit_32(3275200528); -emit_32(1084483709); -emit_32(1120096263); -emit_32(3274944545); -emit_32(1089756453); -emit_32(1120096263); -emit_32(3274688496); -emit_32(1092796967); -emit_32(1120096263); -emit_32(3274432512); -emit_32(1095008204); -emit_32(1120096263); -emit_32(3274176528); -emit_32(1098158021); -emit_32(1120096263); -emit_32(3273920545); -emit_32(1100073298); -emit_32(1120096263); -emit_32(3273664496); -emit_32(1101265424); -emit_32(1120096263); -emit_32(3273408512); -emit_32(1101989413); -emit_32(1120096263); -emit_32(3273152528); -emit_32(1102698565); -emit_32(1120096263); -emit_32(3272896545); -emit_32(1103242776); -emit_32(1120096263); -emit_32(3272640496); -emit_32(1105297356); -emit_32(1120096263); -emit_32(3272384512); -emit_32(1106908126); -emit_32(1120096263); -emit_32(3272128528); -emit_32(1107640530); -emit_32(1120096263); -emit_32(3271872545); -emit_32(1108166312); -emit_32(1120096263); -emit_32(3271616496); -emit_32(1108109138); -emit_32(1120096263); -emit_32(3271163904); -emit_32(1108037206); -emit_32(1120096263); -emit_32(3270651937); -emit_32(1107897483); -emit_32(1120096263); -emit_32(3270139970); -emit_32(1108473492); -emit_32(1120096263); -emit_32(3269627871); -emit_32(1108658461); -emit_32(1120096263); -emit_32(3269115904); -emit_32(1108380326); -emit_32(1120096263); -emit_32(3268603937); -emit_32(1107921522); -emit_32(1120096263); -emit_32(3268091970); -emit_32(1106710574); -emit_32(1120096263); -emit_32(3267579911); -emit_32(1106304880); -emit_32(1120096263); -emit_32(3267067904); -emit_32(1106736788); -emit_32(1120096263); -emit_32(3266555911); -emit_32(1106706484); -emit_32(1120096263); -emit_32(3266043904); -emit_32(1105732829); -emit_32(1120096263); -emit_32(3265531911); -emit_32(1104837607); -emit_32(1120096263); -emit_32(3265019904); -emit_32(1103630801); -emit_32(1120096263); -emit_32(3264507911); -emit_32(1101868093); -emit_32(1120096263); -emit_32(3263995904); -emit_32(1100220622); -emit_32(1120096263); -emit_32(3263483911); -emit_32(1100302254); -emit_32(1120096263); -emit_32(3262775296); -emit_32(1100039691); -emit_32(1120096263); -emit_32(3261751309); -emit_32(1099705090); -emit_32(1120096263); -emit_32(3260727296); -emit_32(1099085329); -emit_32(1120096263); -emit_32(3259703309); -emit_32(1097718982); -emit_32(1120096263); -emit_32(3258679296); -emit_32(1096390122); -emit_32(1120096263); -emit_32(3257655309); -emit_32(1094580175); -emit_32(1120096263); -emit_32(3256631296); -emit_32(1094186959); -emit_32(1120096263); -emit_32(3255607309); -emit_32(1094206987); -emit_32(1120096263); -emit_32(3254386688); -emit_32(1095299288); -emit_32(1120096263); -emit_32(3252338714); -emit_32(1094941095); -emit_32(1120096263); -emit_32(3250290688); -emit_32(1093925968); -emit_32(1120096263); -emit_32(3248242714); -emit_32(1096010747); -emit_32(1120096263); -emit_32(3245998080); -emit_32(1096357826); -emit_32(1120096263); -emit_32(3241902132); -emit_32(1096902246); -emit_32(1120096263); -emit_32(3237609472); -emit_32(1097501612); -emit_32(1120096263); -emit_32(3229220864); -emit_32(1097992765); -emit_32(1120096263); -emit_32(0); -emit_32(1098723413); -emit_32(1120096263); -emit_32(1081737216); -emit_32(1099965451); -emit_32(1120096263); -emit_32(3279552512); -emit_32(1084093765); -emit_32(1119584256); -emit_32(3279296528); -emit_32(1080036510); -emit_32(1119584256); -emit_32(3279040545); -emit_32(1077455125); -emit_32(1119584256); -emit_32(3278784496); -emit_32(1074567724); -emit_32(1119584256); -emit_32(3278528512); -emit_32(1069156863); -emit_32(1119584256); -emit_32(3278272528); -emit_32(3189431842); -emit_32(1119584256); -emit_32(3278016545); -emit_32(3213554929); -emit_32(1119584256); -emit_32(3277760496); -emit_32(3222450418); -emit_32(1119584256); -emit_32(3277504512); -emit_32(3228929486); -emit_32(1119584256); -emit_32(3277248528); -emit_32(3224323217); -emit_32(1119584256); -emit_32(3276992545); -emit_32(3222046465); -emit_32(1119584256); -emit_32(3276736496); -emit_32(3194181137); -emit_32(1119584256); -emit_32(3276480512); -emit_32(3186726281); -emit_32(1119584256); -emit_32(3276224528); -emit_32(3191098290); -emit_32(1119584256); -emit_32(3275968545); -emit_32(1068055354); -emit_32(1119584256); -emit_32(3275712496); -emit_32(1076438426); -emit_32(1119584256); -emit_32(3275456512); -emit_32(1080984464); -emit_32(1119584256); -emit_32(3275200528); -emit_32(1085878651); -emit_32(1119584256); -emit_32(3274944545); -emit_32(1091668447); -emit_32(1119584256); -emit_32(3274688496); -emit_32(1094171545); -emit_32(1119584256); -emit_32(3274432512); -emit_32(1095963561); -emit_32(1119584256); -emit_32(3274176528); -emit_32(1098572104); -emit_32(1119584256); -emit_32(3273920545); -emit_32(1099948045); -emit_32(1119584256); -emit_32(3273664496); -emit_32(1101407873); -emit_32(1119584256); -emit_32(3273408512); -emit_32(1102835876); -emit_32(1119584256); -emit_32(3273152528); -emit_32(1103744310); -emit_32(1119584256); -emit_32(3272896545); -emit_32(1104117655); -emit_32(1119584256); -emit_32(3272640496); -emit_32(1105300868); -emit_32(1119584256); -emit_32(3272384512); -emit_32(1107290803); -emit_32(1119584256); -emit_32(3272128528); -emit_32(1107707508); -emit_32(1119584256); -emit_32(3271872545); -emit_32(1108008685); -emit_32(1119584256); -emit_32(3271616496); -emit_32(1108120935); -emit_32(1119584256); -emit_32(3271163904); -emit_32(1108077052); -emit_32(1119584256); -emit_32(3270651937); -emit_32(1107924641); -emit_32(1119584256); -emit_32(3270139970); -emit_32(1108147044); -emit_32(1119584256); -emit_32(3269627871); -emit_32(1108350311); -emit_32(1119584256); -emit_32(3269115904); -emit_32(1108146651); -emit_32(1119584256); -emit_32(3268603937); -emit_32(1107677466); -emit_32(1119584256); -emit_32(3268091970); -emit_32(1106442034); -emit_32(1119584256); -emit_32(3267579911); -emit_32(1106619400); -emit_32(1119584256); -emit_32(3267067904); -emit_32(1106902463); -emit_32(1119584256); -emit_32(3266555911); -emit_32(1106534780); -emit_32(1119584256); -emit_32(3266043904); -emit_32(1105512733); -emit_32(1119584256); -emit_32(3265531911); -emit_32(1104509036); -emit_32(1119584256); -emit_32(3265019904); -emit_32(1103188250); -emit_32(1119584256); -emit_32(3264507911); -emit_32(1101665927); -emit_32(1119584256); -emit_32(3263995904); -emit_32(1100910743); -emit_32(1119584256); -emit_32(3263483911); -emit_32(1100740139); -emit_32(1119584256); -emit_32(3262775296); -emit_32(1100127981); -emit_32(1119584256); -emit_32(3261751309); -emit_32(1100010121); -emit_32(1119584256); -emit_32(3260727296); -emit_32(1099477968); -emit_32(1119584256); -emit_32(3259703309); -emit_32(1097874171); -emit_32(1119584256); -emit_32(3258679296); -emit_32(1096345453); -emit_32(1119584256); -emit_32(3257655309); -emit_32(1093686893); -emit_32(1119584256); -emit_32(3256631296); -emit_32(1093873015); -emit_32(1119584256); -emit_32(3255607309); -emit_32(1093045794); -emit_32(1119584256); -emit_32(3254386688); -emit_32(1093896189); -emit_32(1119584256); -emit_32(3252338714); -emit_32(1094140717); -emit_32(1119584256); -emit_32(3250290688); -emit_32(1094085666); -emit_32(1119584256); -emit_32(3248242714); -emit_32(1094959130); -emit_32(1119584256); -emit_32(3245998080); -emit_32(1096322698); -emit_32(1119584256); -emit_32(3241902132); -emit_32(1097101161); -emit_32(1119584256); -emit_32(3237609472); -emit_32(1096857367); -emit_32(1119584256); -emit_32(3229220864); -emit_32(1096976905); -emit_32(1119584256); -emit_32(0); -emit_32(1098201537); -emit_32(1119584256); -emit_32(1081737216); -emit_32(1099519545); -emit_32(1119584256); -emit_32(3279552512); -emit_32(1085076910); -emit_32(1119072263); -emit_32(3279296528); -emit_32(1081809987); -emit_32(1119072263); -emit_32(3279040545); -emit_32(1077014597); -emit_32(1119072263); -emit_32(3278784496); -emit_32(1075155304); -emit_32(1119072263); -emit_32(3278528512); -emit_32(1069179596); -emit_32(1119072263); -emit_32(3278272528); -emit_32(1056541889); -emit_32(1119072263); -emit_32(3278016545); -emit_32(1062243693); -emit_32(1119072263); -emit_32(3277760496); -emit_32(3195663773); -emit_32(1119072263); -emit_32(3277504512); -emit_32(3221620659); -emit_32(1119072263); -emit_32(3277248528); -emit_32(3216900390); -emit_32(1119072263); -emit_32(3276992545); -emit_32(3207733134); -emit_32(1119072263); -emit_32(3276736496); -emit_32(1061029962); -emit_32(1119072263); -emit_32(3276480512); -emit_32(1067919627); -emit_32(1119072263); -emit_32(3276224528); -emit_32(1069464557); -emit_32(1119072263); -emit_32(3275968545); -emit_32(1076127125); -emit_32(1119072263); -emit_32(3275712496); -emit_32(1080969365); -emit_32(1119072263); -emit_32(3275456512); -emit_32(1083510358); -emit_32(1119072263); -emit_32(3275200528); -emit_32(1088854216); -emit_32(1119072263); -emit_32(3274944545); -emit_32(1092461118); -emit_32(1119072263); -emit_32(3274688496); -emit_32(1095602746); -emit_32(1119072263); -emit_32(3274432512); -emit_32(1097477495); -emit_32(1119072263); -emit_32(3274176528); -emit_32(1099224108); -emit_32(1119072263); -emit_32(3273920545); -emit_32(1100863662); -emit_32(1119072263); -emit_32(3273664496); -emit_32(1102423943); -emit_32(1119072263); -emit_32(3273408512); -emit_32(1103322677); -emit_32(1119072263); -emit_32(3273152528); -emit_32(1104096054); -emit_32(1119072263); -emit_32(3272896545); -emit_32(1104740300); -emit_32(1119072263); -emit_32(3272640496); -emit_32(1105730627); -emit_32(1119072263); -emit_32(3272384512); -emit_32(1107106673); -emit_32(1119072263); -emit_32(3272128528); -emit_32(1107798052); -emit_32(1119072263); -emit_32(3271872545); -emit_32(1107907497); -emit_32(1119072263); -emit_32(3271616496); -emit_32(1108367272); -emit_32(1119072263); -emit_32(3271163904); -emit_32(1108217273); -emit_32(1119072263); -emit_32(3270651937); -emit_32(1108004962); -emit_32(1119072263); -emit_32(3270139970); -emit_32(1107737890); -emit_32(1119072263); -emit_32(3269627871); -emit_32(1107889331); -emit_32(1119072263); -emit_32(3269115904); -emit_32(1107876826); -emit_32(1119072263); -emit_32(3268603937); -emit_32(1107372933); -emit_32(1119072263); -emit_32(3268091970); -emit_32(1106504004); -emit_32(1119072263); -emit_32(3267579911); -emit_32(1106696575); -emit_32(1119072263); -emit_32(3267067904); -emit_32(1107019275); -emit_32(1119072263); -emit_32(3266555911); -emit_32(1106385201); -emit_32(1119072263); -emit_32(3266043904); -emit_32(1105441482); -emit_32(1119072263); -emit_32(3265531911); -emit_32(1104471235); -emit_32(1119072263); -emit_32(3265019904); -emit_32(1103193965); -emit_32(1119072263); -emit_32(3264507911); -emit_32(1102302518); -emit_32(1119072263); -emit_32(3263995904); -emit_32(1101174984); -emit_32(1119072263); -emit_32(3263483911); -emit_32(1100736365); -emit_32(1119072263); -emit_32(3262775296); -emit_32(1100294232); -emit_32(1119072263); -emit_32(3261751309); -emit_32(1099900282); -emit_32(1119072263); -emit_32(3260727296); -emit_32(1099000447); -emit_32(1119072263); -emit_32(3259703309); -emit_32(1098125096); -emit_32(1119072263); -emit_32(3258679296); -emit_32(1096310535); -emit_32(1119072263); -emit_32(3257655309); -emit_32(1094547669); -emit_32(1119072263); -emit_32(3256631296); -emit_32(1092850024); -emit_32(1119072263); -emit_32(3255607309); -emit_32(1092138471); -emit_32(1119072263); -emit_32(3254386688); -emit_32(1092338194); -emit_32(1119072263); -emit_32(3252338714); -emit_32(1093356172); -emit_32(1119072263); -emit_32(3250290688); -emit_32(1094627885); -emit_32(1119072263); -emit_32(3248242714); -emit_32(1095982750); -emit_32(1119072263); -emit_32(3245998080); -emit_32(1095846540); -emit_32(1119072263); -emit_32(3241902132); -emit_32(1095563949); -emit_32(1119072263); -emit_32(3237609472); -emit_32(1095549269); -emit_32(1119072263); -emit_32(3229220864); -emit_32(1096920492); -emit_32(1119072263); -emit_32(0); -emit_32(1097824888); -emit_32(1119072263); -emit_32(1081737216); -emit_32(1098532992); -emit_32(1119072263); -emit_32(3279552512); -emit_32(1086774827); -emit_32(1118560256); -emit_32(3279296528); -emit_32(1083515077); -emit_32(1118560256); -emit_32(3279040545); -emit_32(1079457780); -emit_32(1118560256); -emit_32(3278784496); -emit_32(1073525901); -emit_32(1118560256); -emit_32(3278528512); -emit_32(1058489607); -emit_32(1118560256); -emit_32(3278272528); -emit_32(1073793078); -emit_32(1118560256); -emit_32(3278016545); -emit_32(1074379023); -emit_32(1118560256); -emit_32(3277760496); -emit_32(1061663235); -emit_32(1118560256); -emit_32(3277504512); -emit_32(3201930600); -emit_32(1118560256); -emit_32(3277248528); -emit_32(3204664162); -emit_32(1118560256); -emit_32(3276992545); -emit_32(995186421); -emit_32(1118560256); -emit_32(3276736496); -emit_32(1065832625); -emit_32(1118560256); -emit_32(3276480512); -emit_32(1074242037); -emit_32(1118560256); -emit_32(3276224528); -emit_32(1075791245); -emit_32(1118560256); -emit_32(3275968545); -emit_32(1081708653); -emit_32(1118560256); -emit_32(3275712496); -emit_32(1085735415); -emit_32(1118560256); -emit_32(3275456512); -emit_32(1087198703); -emit_32(1118560256); -emit_32(3275200528); -emit_32(1090399397); -emit_32(1118560256); -emit_32(3274944545); -emit_32(1093618840); -emit_32(1118560256); -emit_32(3274688496); -emit_32(1095966497); -emit_32(1118560256); -emit_32(3274432512); -emit_32(1098679792); -emit_32(1118560256); -emit_32(3274176528); -emit_32(1099796369); -emit_32(1118560256); -emit_32(3273920545); -emit_32(1101123342); -emit_32(1118560256); -emit_32(3273664496); -emit_32(1102326582); -emit_32(1118560256); -emit_32(3273408512); -emit_32(1103526783); -emit_32(1118560256); -emit_32(3273152528); -emit_32(1104500018); -emit_32(1118560256); -emit_32(3272896545); -emit_32(1105044544); -emit_32(1118560256); -emit_32(3272640496); -emit_32(1105840518); -emit_32(1118560256); -emit_32(3272384512); -emit_32(1107014661); -emit_32(1118560256); -emit_32(3272128528); -emit_32(1107845579); -emit_32(1118560256); -emit_32(3271872545); -emit_32(1108007295); -emit_32(1118560256); -emit_32(3271616496); -emit_32(1108389711); -emit_32(1118560256); -emit_32(3271163904); -emit_32(1108469167); -emit_32(1118560256); -emit_32(3270651937); -emit_32(1108186681); -emit_32(1118560256); -emit_32(3270139970); -emit_32(1107912425); -emit_32(1118560256); -emit_32(3269627871); -emit_32(1107694060); -emit_32(1118560256); -emit_32(3269115904); -emit_32(1107557771); -emit_32(1118560256); -emit_32(3268603937); -emit_32(1107185212); -emit_32(1118560256); -emit_32(3268091970); -emit_32(1106863509); -emit_32(1118560256); -emit_32(3267579911); -emit_32(1106786176); -emit_32(1118560256); -emit_32(3267067904); -emit_32(1107049998); -emit_32(1118560256); -emit_32(3266555911); -emit_32(1106706117); -emit_32(1118560256); -emit_32(3266043904); -emit_32(1105274287); -emit_32(1118560256); -emit_32(3265531911); -emit_32(1104108375); -emit_32(1118560256); -emit_32(3265019904); -emit_32(1103313974); -emit_32(1118560256); -emit_32(3264507911); -emit_32(1102052537); -emit_32(1118560256); -emit_32(3263995904); -emit_32(1101026348); -emit_32(1118560256); -emit_32(3263483911); -emit_32(1100975912); -emit_32(1118560256); -emit_32(3262775296); -emit_32(1100160329); -emit_32(1118560256); -emit_32(3261751309); -emit_32(1099423862); -emit_32(1118560256); -emit_32(3260727296); -emit_32(1098504471); -emit_32(1118560256); -emit_32(3259703309); -emit_32(1097455580); -emit_32(1118560256); -emit_32(3258679296); -emit_32(1095484886); -emit_32(1118560256); -emit_32(3257655309); -emit_32(1094881011); -emit_32(1118560256); -emit_32(3256631296); -emit_32(1092725768); -emit_32(1118560256); -emit_32(3255607309); -emit_32(1092211609); -emit_32(1118560256); -emit_32(3254386688); -emit_32(1092698400); -emit_32(1118560256); -emit_32(3252338714); -emit_32(1092845620); -emit_32(1118560256); -emit_32(3250290688); -emit_32(1094266651); -emit_32(1118560256); -emit_32(3248242714); -emit_32(1094578287); -emit_32(1118560256); -emit_32(3245998080); -emit_32(1094619916); -emit_32(1118560256); -emit_32(3241902132); -emit_32(1094198493); -emit_32(1118560256); -emit_32(3237609472); -emit_32(1096808294); -emit_32(1118560256); -emit_32(3229220864); -emit_32(1097696857); -emit_32(1118560256); -emit_32(0); -emit_32(1097643170); -emit_32(1118560256); -emit_32(1081737216); -emit_32(1098479410); -emit_32(1118560256); -emit_32(3279552512); -emit_32(1088302854); -emit_32(1118048263); -emit_32(3279296528); -emit_32(1083747986); -emit_32(1118048263); -emit_32(3279040545); -emit_32(1080542594); -emit_32(1118048263); -emit_32(3278784496); -emit_32(1075852566); -emit_32(1118048263); -emit_32(3278528512); -emit_32(1068737600); -emit_32(1118048263); -emit_32(3278272528); -emit_32(1073988491); -emit_32(1118048263); -emit_32(3278016545); -emit_32(1075493743); -emit_32(1118048263); -emit_32(3277760496); -emit_32(1067344336); -emit_32(1118048263); -emit_32(3277504512); -emit_32(1070348213); -emit_32(1118048263); -emit_32(3277248528); -emit_32(1067476624); -emit_32(1118048263); -emit_32(3276992545); -emit_32(1069849007); -emit_32(1118048263); -emit_32(3276736496); -emit_32(1075129006); -emit_32(1118048263); -emit_32(3276480512); -emit_32(1076245656); -emit_32(1118048263); -emit_32(3276224528); -emit_32(1082664933); -emit_32(1118048263); -emit_32(3275968545); -emit_32(1086033987); -emit_32(1118048263); -emit_32(3275712496); -emit_32(1089567583); -emit_32(1118048263); -emit_32(3275456512); -emit_32(1091286073); -emit_32(1118048263); -emit_32(3275200528); -emit_32(1092256918); -emit_32(1118048263); -emit_32(3274944545); -emit_32(1094223449); -emit_32(1118048263); -emit_32(3274688496); -emit_32(1097132304); -emit_32(1118048263); -emit_32(3274432512); -emit_32(1099059115); -emit_32(1118048263); -emit_32(3274176528); -emit_32(1099766379); -emit_32(1118048263); -emit_32(3273920545); -emit_32(1101236640); -emit_32(1118048263); -emit_32(3273664496); -emit_32(1102554438); -emit_32(1118048263); -emit_32(3273408512); -emit_32(1103664565); -emit_32(1118048263); -emit_32(3273152528); -emit_32(1104878292); -emit_32(1118048263); -emit_32(3272896545); -emit_32(1105616175); -emit_32(1118048263); -emit_32(3272640496); -emit_32(1106382684); -emit_32(1118048263); -emit_32(3272384512); -emit_32(1107450606); -emit_32(1118048263); -emit_32(3272128528); -emit_32(1107817503); -emit_32(1118048263); -emit_32(3271872545); -emit_32(1107947369); -emit_32(1118048263); -emit_32(3271616496); -emit_32(1108283805); -emit_32(1118048263); -emit_32(3271163904); -emit_32(1108371099); -emit_32(1118048263); -emit_32(3270651937); -emit_32(1108326954); -emit_32(1118048263); -emit_32(3270139970); -emit_32(1108075217); -emit_32(1118048263); -emit_32(3269627871); -emit_32(1107641945); -emit_32(1118048263); -emit_32(3269115904); -emit_32(1107268836); -emit_32(1118048263); -emit_32(3268603937); -emit_32(1107004595); -emit_32(1118048263); -emit_32(3268091970); -emit_32(1106919660); -emit_32(1118048263); -emit_32(3267579911); -emit_32(1107317228); -emit_32(1118048263); -emit_32(3267067904); -emit_32(1106983623); -emit_32(1118048263); -emit_32(3266555911); -emit_32(1106392855); -emit_32(1118048263); -emit_32(3266043904); -emit_32(1105271141); -emit_32(1118048263); -emit_32(3265531911); -emit_32(1103878632); -emit_32(1118048263); -emit_32(3265019904); -emit_32(1103197949); -emit_32(1118048263); -emit_32(3264507911); -emit_32(1102375708); -emit_32(1118048263); -emit_32(3263995904); -emit_32(1100616040); -emit_32(1118048263); -emit_32(3263483911); -emit_32(1100311953); -emit_32(1118048263); -emit_32(3262775296); -emit_32(1099845547); -emit_32(1118048263); -emit_32(3261751309); -emit_32(1099214619); -emit_32(1118048263); -emit_32(3260727296); -emit_32(1097535901); -emit_32(1118048263); -emit_32(3259703309); -emit_32(1095712847); -emit_32(1118048263); -emit_32(3258679296); -emit_32(1094870840); -emit_32(1118048263); -emit_32(3257655309); -emit_32(1094035230); -emit_32(1118048263); -emit_32(3256631296); -emit_32(1092438144); -emit_32(1118048263); -emit_32(3255607309); -emit_32(1092567024); -emit_32(1118048263); -emit_32(3254386688); -emit_32(1093416360); -emit_32(1118048263); -emit_32(3252338714); -emit_32(1092845516); -emit_32(1118048263); -emit_32(3250290688); -emit_32(1092728599); -emit_32(1118048263); -emit_32(3248242714); -emit_32(1093978292); -emit_32(1118048263); -emit_32(3245998080); -emit_32(1094248091); -emit_32(1118048263); -emit_32(3241902132); -emit_32(1096725352); -emit_32(1118048263); -emit_32(3237609472); -emit_32(1098118070); -emit_32(1118048263); -emit_32(3229220864); -emit_32(1098579024); -emit_32(1118048263); -emit_32(0); -emit_32(1098875562); -emit_32(1118048263); -emit_32(1081737216); -emit_32(1099413271); -emit_32(1118048263); -emit_32(3279552512); -emit_32(1087158039); -emit_32(1117536256); -emit_32(3279296528); -emit_32(1084423731); -emit_32(1117536256); -emit_32(3279040545); -emit_32(1083252471); -emit_32(1117536256); -emit_32(3278784496); -emit_32(1080977921); -emit_32(1117536256); -emit_32(3278528512); -emit_32(1078047193); -emit_32(1117536256); -emit_32(3278272528); -emit_32(1078022405); -emit_32(1117536256); -emit_32(3278016545); -emit_32(1081630052); -emit_32(1117536256); -emit_32(3277760496); -emit_32(1083124105); -emit_32(1117536256); -emit_32(3277504512); -emit_32(1081459553); -emit_32(1117536256); -emit_32(3277248528); -emit_32(1076823379); -emit_32(1117536256); -emit_32(3276992545); -emit_32(1083284243); -emit_32(1117536256); -emit_32(3276736496); -emit_32(1084323613); -emit_32(1117536256); -emit_32(3276480512); -emit_32(1083093801); -emit_32(1117536256); -emit_32(3276224528); -emit_32(1084912430); -emit_32(1117536256); -emit_32(3275968545); -emit_32(1088711106); -emit_32(1117536256); -emit_32(3275712496); -emit_32(1091460892); -emit_32(1117536256); -emit_32(3275456512); -emit_32(1093026290); -emit_32(1117536256); -emit_32(3275200528); -emit_32(1094050539); -emit_32(1117536256); -emit_32(3274944545); -emit_32(1096188481); -emit_32(1117536256); -emit_32(3274688496); -emit_32(1099085539); -emit_32(1117536256); -emit_32(3274432512); -emit_32(1099851891); -emit_32(1117536256); -emit_32(3274176528); -emit_32(1100504367); -emit_32(1117536256); -emit_32(3273920545); -emit_32(1101748136); -emit_32(1117536256); -emit_32(3273664496); -emit_32(1102868644); -emit_32(1117536256); -emit_32(3273408512); -emit_32(1103833491); -emit_32(1117536256); -emit_32(3273152528); -emit_32(1104656833); -emit_32(1117536256); -emit_32(3272896545); -emit_32(1105628706); -emit_32(1117536256); -emit_32(3272640496); -emit_32(1107011043); -emit_32(1117536256); -emit_32(3272384512); -emit_32(1107650124); -emit_32(1117536256); -emit_32(3272128528); -emit_32(1107880732); -emit_32(1117536256); -emit_32(3271872545); -emit_32(1107976887); -emit_32(1117536256); -emit_32(3271616496); -emit_32(1108276648); -emit_32(1117536256); -emit_32(3271163904); -emit_32(1108202645); -emit_32(1117536256); -emit_32(3270651937); -emit_32(1108292036); -emit_32(1117536256); -emit_32(3270139970); -emit_32(1107942205); -emit_32(1117536256); -emit_32(3269627871); -emit_32(1107800883); -emit_32(1117536256); -emit_32(3269115904); -emit_32(1107311303); -emit_32(1117536256); -emit_32(3268603937); -emit_32(1107125495); -emit_32(1117536256); -emit_32(3268091970); -emit_32(1107112755); -emit_32(1117536256); -emit_32(3267579911); -emit_32(1107267997); -emit_32(1117536256); -emit_32(3267067904); -emit_32(1106890510); -emit_32(1117536256); -emit_32(3266555911); -emit_32(1106494148); -emit_32(1117536256); -emit_32(3266043904); -emit_32(1105071650); -emit_32(1117536256); -emit_32(3265531911); -emit_32(1103864948); -emit_32(1117536256); -emit_32(3265019904); -emit_32(1102783028); -emit_32(1117536256); -emit_32(3264507911); -emit_32(1101893154); -emit_32(1117536256); -emit_32(3263995904); -emit_32(1100313684); -emit_32(1117536256); -emit_32(3263483911); -emit_32(1099645112); -emit_32(1117536256); -emit_32(3262775296); -emit_32(1099500985); -emit_32(1117536256); -emit_32(3261751309); -emit_32(1099174668); -emit_32(1117536256); -emit_32(3260727296); -emit_32(1097807901); -emit_32(1117536256); -emit_32(3259703309); -emit_32(1096000995); -emit_32(1117536256); -emit_32(3258679296); -emit_32(1094151098); -emit_32(1117536256); -emit_32(3257655309); -emit_32(1093022725); -emit_32(1117536256); -emit_32(3256631296); -emit_32(1092315356); -emit_32(1117536256); -emit_32(3255607309); -emit_32(1092666209); -emit_32(1117536256); -emit_32(3254386688); -emit_32(1092956979); -emit_32(1117536256); -emit_32(3252338714); -emit_32(1092948591); -emit_32(1117536256); -emit_32(3250290688); -emit_32(1093567880); -emit_32(1117536256); -emit_32(3248242714); -emit_32(1094483496); -emit_32(1117536256); -emit_32(3245998080); -emit_32(1097010250); -emit_32(1117536256); -emit_32(3241902132); -emit_32(1098491888); -emit_32(1117536256); -emit_32(3237609472); -emit_32(1098958976); -emit_32(1117536256); -emit_32(3229220864); -emit_32(1099244503); -emit_32(1117536256); -emit_32(0); -emit_32(1099580677); -emit_32(1117536256); -emit_32(1081737216); -emit_32(1100388447); -emit_32(1117536256); -emit_32(3279552512); -emit_32(1086400066); -emit_32(1117024263); -emit_32(3279296528); -emit_32(1084596809); -emit_32(1117024263); -emit_32(3279040545); -emit_32(1080887240); -emit_32(1117024263); -emit_32(3278784496); -emit_32(1080830198); -emit_32(1117024263); -emit_32(3278528512); -emit_32(1083401537); -emit_32(1117024263); -emit_32(3278272528); -emit_32(1083235254); -emit_32(1117024263); -emit_32(3278016545); -emit_32(1085484554); -emit_32(1117024263); -emit_32(3277760496); -emit_32(1086866577); -emit_32(1117024263); -emit_32(3277504512); -emit_32(1084469113); -emit_32(1117024263); -emit_32(3277248528); -emit_32(1083540599); -emit_32(1117024263); -emit_32(3276992545); -emit_32(1085825048); -emit_32(1117024263); -emit_32(3276736496); -emit_32(1088012125); -emit_32(1117024263); -emit_32(3276480512); -emit_32(1088318771); -emit_32(1117024263); -emit_32(3276224528); -emit_32(1089174619); -emit_32(1117024263); -emit_32(3275968545); -emit_32(1091189594); -emit_32(1117024263); -emit_32(3275712496); -emit_32(1093050722); -emit_32(1117024263); -emit_32(3275456512); -emit_32(1094514639); -emit_32(1117024263); -emit_32(3275200528); -emit_32(1096242482); -emit_32(1117024263); -emit_32(3274944545); -emit_32(1098453090); -emit_32(1117024263); -emit_32(3274688496); -emit_32(1100090861); -emit_32(1117024263); -emit_32(3274432512); -emit_32(1100571319); -emit_32(1117024263); -emit_32(3274176528); -emit_32(1101691512); -emit_32(1117024263); -emit_32(3273920545); -emit_32(1102911059); -emit_32(1117024263); -emit_32(3273664496); -emit_32(1103791600); -emit_32(1117024263); -emit_32(3273408512); -emit_32(1105004541); -emit_32(1117024263); -emit_32(3273152528); -emit_32(1105668499); -emit_32(1117024263); -emit_32(3272896545); -emit_32(1106514962); -emit_32(1117024263); -emit_32(3272640496); -emit_32(1107399593); -emit_32(1117024263); -emit_32(3272384512); -emit_32(1107645563); -emit_32(1117024263); -emit_32(3272128528); -emit_32(1107768351); -emit_32(1117024263); -emit_32(3271872545); -emit_32(1108103738); -emit_32(1117024263); -emit_32(3271616496); -emit_32(1108013744); -emit_32(1117024263); -emit_32(3271163904); -emit_32(1107916384); -emit_32(1117024263); -emit_32(3270651937); -emit_32(1107875778); -emit_32(1117024263); -emit_32(3270139970); -emit_32(1107601523); -emit_32(1117024263); -emit_32(3269627871); -emit_32(1107312378); -emit_32(1117024263); -emit_32(3269115904); -emit_32(1107317935); -emit_32(1117024263); -emit_32(3268603937); -emit_32(1107418363); -emit_32(1117024263); -emit_32(3268091970); -emit_32(1107103056); -emit_32(1117024263); -emit_32(3267579911); -emit_32(1106756135); -emit_32(1117024263); -emit_32(3267067904); -emit_32(1106586580); -emit_32(1117024263); -emit_32(3266555911); -emit_32(1106229068); -emit_32(1117024263); -emit_32(3266043904); -emit_32(1104905136); -emit_32(1117024263); -emit_32(3265531911); -emit_32(1103773408); -emit_32(1117024263); -emit_32(3265019904); -emit_32(1102876508); -emit_32(1117024263); -emit_32(3264507911); -emit_32(1101347160); -emit_32(1117024263); -emit_32(3263995904); -emit_32(1100029362); -emit_32(1117024263); -emit_32(3263483911); -emit_32(1099777180); -emit_32(1117024263); -emit_32(3262775296); -emit_32(1099578632); -emit_32(1117024263); -emit_32(3261751309); -emit_32(1099224370); -emit_32(1117024263); -emit_32(3260727296); -emit_32(1097535377); -emit_32(1117024263); -emit_32(3259703309); -emit_32(1095910398); -emit_32(1117024263); -emit_32(3258679296); -emit_32(1093599127); -emit_32(1117024263); -emit_32(3257655309); -emit_32(1091981646); -emit_32(1117024263); -emit_32(3256631296); -emit_32(1091797841); -emit_32(1117024263); -emit_32(3255607309); -emit_32(1092352737); -emit_32(1117024263); -emit_32(3254386688); -emit_32(1093028492); -emit_32(1117024263); -emit_32(3252338714); -emit_32(1093454633); -emit_32(1117024263); -emit_32(3250290688); -emit_32(1094245469); -emit_32(1117024263); -emit_32(3248242714); -emit_32(1096330038); -emit_32(1117024263); -emit_32(3245998080); -emit_32(1098523450); -emit_32(1117024263); -emit_32(3241902132); -emit_32(1099109289); -emit_32(1117024263); -emit_32(3237609472); -emit_32(1099818861); -emit_32(1117024263); -emit_32(3229220864); -emit_32(1099945738); -emit_32(1117024263); -emit_32(0); -emit_32(1100568016); -emit_32(1117024263); -emit_32(1081737216); -emit_32(1101362836); -emit_32(1117024263); -emit_32(3279552512); -emit_32(1085174427); -emit_32(1116512256); -emit_32(3279296528); -emit_32(1083887405); -emit_32(1116512256); -emit_32(3279040545); -emit_32(1080456611); -emit_32(1116512256); -emit_32(3278784496); -emit_32(1079046318); -emit_32(1116512256); -emit_32(3278528512); -emit_32(1082259302); -emit_32(1116512256); -emit_32(3278272528); -emit_32(1084889550); -emit_32(1116512256); -emit_32(3278016545); -emit_32(1087704851); -emit_32(1116512256); -emit_32(3277760496); -emit_32(1087804025); -emit_32(1116512256); -emit_32(3277504512); -emit_32(1088280498); -emit_32(1116512256); -emit_32(3277248528); -emit_32(1088103981); -emit_32(1116512256); -emit_32(3276992545); -emit_32(1088351004); -emit_32(1116512256); -emit_32(3276736496); -emit_32(1089973843); -emit_32(1116512256); -emit_32(3276480512); -emit_32(1091239926); -emit_32(1116512256); -emit_32(3276224528); -emit_32(1091632890); -emit_32(1116512256); -emit_32(3275968545); -emit_32(1092700393); -emit_32(1116512256); -emit_32(3275712496); -emit_32(1094925156); -emit_32(1116512256); -emit_32(3275456512); -emit_32(1096876556); -emit_32(1116512256); -emit_32(3275200528); -emit_32(1098626630); -emit_32(1116512256); -emit_32(3274944545); -emit_32(1100164471); -emit_32(1116512256); -emit_32(3274688496); -emit_32(1100745487); -emit_32(1116512256); -emit_32(3274432512); -emit_32(1101472832); -emit_32(1116512256); -emit_32(3274176528); -emit_32(1102779148); -emit_32(1116512256); -emit_32(3273920545); -emit_32(1103935255); -emit_32(1116512256); -emit_32(3273664496); -emit_32(1104701345); -emit_32(1116512256); -emit_32(3273408512); -emit_32(1105539000); -emit_32(1116512256); -emit_32(3273152528); -emit_32(1106980949); -emit_32(1116512256); -emit_32(3272896545); -emit_32(1107434013); -emit_32(1116512256); -emit_32(3272640496); -emit_32(1107566658); -emit_32(1116512256); -emit_32(3272384512); -emit_32(1107582701); -emit_32(1116512256); -emit_32(3272128528); -emit_32(1107757498); -emit_32(1116512256); -emit_32(3271872545); -emit_32(1107869617); -emit_32(1116512256); -emit_32(3271616496); -emit_32(1107687480); -emit_32(1116512256); -emit_32(3271163904); -emit_32(1107868176); -emit_32(1116512256); -emit_32(3270651937); -emit_32(1107680087); -emit_32(1116512256); -emit_32(3270139970); -emit_32(1107380955); -emit_32(1116512256); -emit_32(3269627871); -emit_32(1107328631); -emit_32(1116512256); -emit_32(3269115904); -emit_32(1107472941); -emit_32(1116512256); -emit_32(3268603937); -emit_32(1107494384); -emit_32(1116512256); -emit_32(3268091970); -emit_32(1107424602); -emit_32(1116512256); -emit_32(3267579911); -emit_32(1106664227); -emit_32(1116512256); -emit_32(3267067904); -emit_32(1106309651); -emit_32(1116512256); -emit_32(3266555911); -emit_32(1105564480); -emit_32(1116512256); -emit_32(3266043904); -emit_32(1104468247); -emit_32(1116512256); -emit_32(3265531911); -emit_32(1103524161); -emit_32(1116512256); -emit_32(3265019904); -emit_32(1102766355); -emit_32(1116512256); -emit_32(3264507911); -emit_32(1101285976); -emit_32(1116512256); -emit_32(3263995904); -emit_32(1100106066); -emit_32(1116512256); -emit_32(3263483911); -emit_32(1099771150); -emit_32(1116512256); -emit_32(3262775296); -emit_32(1099629121); -emit_32(1116512256); -emit_32(3261751309); -emit_32(1099071436); -emit_32(1116512256); -emit_32(3260727296); -emit_32(1096827273); -emit_32(1116512256); -emit_32(3259703309); -emit_32(1094327153); -emit_32(1116512256); -emit_32(3258679296); -emit_32(1092289372); -emit_32(1116512256); -emit_32(3257655309); -emit_32(1091186899); -emit_32(1116512256); -emit_32(3256631296); -emit_32(1091068620); -emit_32(1116512256); -emit_32(3255607309); -emit_32(1092988332); -emit_32(1116512256); -emit_32(3254386688); -emit_32(1093789024); -emit_32(1116512256); -emit_32(3252338714); -emit_32(1095575588); -emit_32(1116512256); -emit_32(3250290688); -emit_32(1097077673); -emit_32(1116512256); -emit_32(3248242714); -emit_32(1098285423); -emit_32(1116512256); -emit_32(3245998080); -emit_32(1099366400); -emit_32(1116512256); -emit_32(3241902132); -emit_32(1099809528); -emit_32(1116512256); -emit_32(3237609472); -emit_32(1100308336); -emit_32(1116512256); -emit_32(3229220864); -emit_32(1100857999); -emit_32(1116512256); -emit_32(0); -emit_32(1101690883); -emit_32(1116512256); -emit_32(1081737216); -emit_32(1102550401); -emit_32(1116512256); -emit_32(3279552512); -emit_32(1083244397); -emit_32(1116000263); -emit_32(3279296528); -emit_32(1081021794); -emit_32(1116000263); -emit_32(3279040545); -emit_32(1081320051); -emit_32(1116000263); -emit_32(3278784496); -emit_32(1083021910); -emit_32(1116000263); -emit_32(3278528512); -emit_32(1084294064); -emit_32(1116000263); -emit_32(3278272528); -emit_32(1087656092); -emit_32(1116000263); -emit_32(3278016545); -emit_32(1089797599); -emit_32(1116000263); -emit_32(3277760496); -emit_32(1091098955); -emit_32(1116000263); -emit_32(3277504512); -emit_32(1091272610); -emit_32(1116000263); -emit_32(3277248528); -emit_32(1089866763); -emit_32(1116000263); -emit_32(3276992545); -emit_32(1091139178); -emit_32(1116000263); -emit_32(3276736496); -emit_32(1092341580); -emit_32(1116000263); -emit_32(3276480512); -emit_32(1092757540); -emit_32(1116000263); -emit_32(3276224528); -emit_32(1092728914); -emit_32(1116000263); -emit_32(3275968545); -emit_32(1093810939); -emit_32(1116000263); -emit_32(3275712496); -emit_32(1096373135); -emit_32(1116000263); -emit_32(3275456512); -emit_32(1098378222); -emit_32(1116000263); -emit_32(3275200528); -emit_32(1099724174); -emit_32(1116000263); -emit_32(3274944545); -emit_32(1100967628); -emit_32(1116000263); -emit_32(3274688496); -emit_32(1101558815); -emit_32(1116000263); -emit_32(3274432512); -emit_32(1102315677); -emit_32(1116000263); -emit_32(3274176528); -emit_32(1103940446); -emit_32(1116000263); -emit_32(3273920545); -emit_32(1104679902); -emit_32(1116000263); -emit_32(3273664496); -emit_32(1105155378); -emit_32(1116000263); -emit_32(3273408512); -emit_32(1106194674); -emit_32(1116000263); -emit_32(3273152528); -emit_32(1107343049); -emit_32(1116000263); -emit_32(3272896545); -emit_32(1107838081); -emit_32(1116000263); -emit_32(3272640496); -emit_32(1107954998); -emit_32(1116000263); -emit_32(3272384512); -emit_32(1107867599); -emit_32(1116000263); -emit_32(3272128528); -emit_32(1107645196); -emit_32(1116000263); -emit_32(3271872545); -emit_32(1107550274); -emit_32(1116000263); -emit_32(3271616496); -emit_32(1107544690); -emit_32(1116000263); -emit_32(3271163904); -emit_32(1107694348); -emit_32(1116000263); -emit_32(3270651937); -emit_32(1107550929); -emit_32(1116000263); -emit_32(3270139970); -emit_32(1107424654); -emit_32(1116000263); -emit_32(3269627871); -emit_32(1107580892); -emit_32(1116000263); -emit_32(3269115904); -emit_32(1107466676); -emit_32(1116000263); -emit_32(3268603937); -emit_32(1107518292); -emit_32(1116000263); -emit_32(3268091970); -emit_32(1107507911); -emit_32(1116000263); -emit_32(3267579911); -emit_32(1107068767); -emit_32(1116000263); -emit_32(3267067904); -emit_32(1105975417); -emit_32(1116000263); -emit_32(3266555911); -emit_32(1105550692); -emit_32(1116000263); -emit_32(3266043904); -emit_32(1104364438); -emit_32(1116000263); -emit_32(3265531911); -emit_32(1103311090); -emit_32(1116000263); -emit_32(3265019904); -emit_32(1102266709); -emit_32(1116000263); -emit_32(3264507911); -emit_32(1101111021); -emit_32(1116000263); -emit_32(3263995904); -emit_32(1100245264); -emit_32(1116000263); -emit_32(3263483911); -emit_32(1099460667); -emit_32(1116000263); -emit_32(3262775296); -emit_32(1099464599); -emit_32(1116000263); -emit_32(3261751309); -emit_32(1098898106); -emit_32(1116000263); -emit_32(3260727296); -emit_32(1096169292); -emit_32(1116000263); -emit_32(3259703309); -emit_32(1094572520); -emit_32(1116000263); -emit_32(3258679296); -emit_32(1091595424); -emit_32(1116000263); -emit_32(3257655309); -emit_32(1091557613); -emit_32(1116000263); -emit_32(3256631296); -emit_32(1092673130); -emit_32(1116000263); -emit_32(3255607309); -emit_32(1094406950); -emit_32(1116000263); -emit_32(3254386688); -emit_32(1095233018); -emit_32(1116000263); -emit_32(3252338714); -emit_32(1096870789); -emit_32(1116000263); -emit_32(3250290688); -emit_32(1098084201); -emit_32(1116000263); -emit_32(3248242714); -emit_32(1099279316); -emit_32(1116000263); -emit_32(3245998080); -emit_32(1099851838); -emit_32(1116000263); -emit_32(3241902132); -emit_32(1100485021); -emit_32(1116000263); -emit_32(3237609472); -emit_32(1101521958); -emit_32(1116000263); -emit_32(3229220864); -emit_32(1102417389); -emit_32(1116000263); -emit_32(0); -emit_32(1103083130); -emit_32(1116000263); -emit_32(1081737216); -emit_32(1103917954); -emit_32(1116000263); -emit_32(3279552512); -emit_32(1083552091); -emit_32(1115291648); -emit_32(3279296528); -emit_32(1083005678); -emit_32(1115291648); -emit_32(3279040545); -emit_32(1081863968); -emit_32(1115291648); -emit_32(3278784496); -emit_32(1083192598); -emit_32(1115291648); -emit_32(3278528512); -emit_32(1085321521); -emit_32(1115291648); -emit_32(3278272528); -emit_32(1088639887); -emit_32(1115291648); -emit_32(3278016545); -emit_32(1090626592); -emit_32(1115291648); -emit_32(3277760496); -emit_32(1090904140); -emit_32(1115291648); -emit_32(3277504512); -emit_32(1091130580); -emit_32(1115291648); -emit_32(3277248528); -emit_32(1091114726); -emit_32(1115291648); -emit_32(3276992545); -emit_32(1092567129); -emit_32(1115291648); -emit_32(3276736496); -emit_32(1093130414); -emit_32(1115291648); -emit_32(3276480512); -emit_32(1093467636); -emit_32(1115291648); -emit_32(3276224528); -emit_32(1094287832); -emit_32(1115291648); -emit_32(3275968545); -emit_32(1095800822); -emit_32(1115291648); -emit_32(3275712496); -emit_32(1097484940); -emit_32(1115291648); -emit_32(3275456512); -emit_32(1099294310); -emit_32(1115291648); -emit_32(3275200528); -emit_32(1100172703); -emit_32(1115291648); -emit_32(3274944545); -emit_32(1101504656); -emit_32(1115291648); -emit_32(3274688496); -emit_32(1102638534); -emit_32(1115291648); -emit_32(3274432512); -emit_32(1103640238); -emit_32(1115291648); -emit_32(3274176528); -emit_32(1104536142); -emit_32(1115291648); -emit_32(3273920545); -emit_32(1105040926); -emit_32(1115291648); -emit_32(3273664496); -emit_32(1105781640); -emit_32(1115291648); -emit_32(3273408512); -emit_32(1106871845); -emit_32(1115291648); -emit_32(3273152528); -emit_32(1107552266); -emit_32(1115291648); -emit_32(3272896545); -emit_32(1107681686); -emit_32(1115291648); -emit_32(3272640496); -emit_32(1107745571); -emit_32(1115291648); -emit_32(3272384512); -emit_32(1107728531); -emit_32(1115291648); -emit_32(3272128528); -emit_32(1107564849); -emit_32(1115291648); -emit_32(3271872545); -emit_32(1107489876); -emit_32(1115291648); -emit_32(3271616496); -emit_32(1107455351); -emit_32(1115291648); -emit_32(3271163904); -emit_32(1107468721); -emit_32(1115291648); -emit_32(3270651937); -emit_32(1107084182); -emit_32(1115291648); -emit_32(3270139970); -emit_32(1107222279); -emit_32(1115291648); -emit_32(3269627871); -emit_32(1107484685); -emit_32(1115291648); -emit_32(3269115904); -emit_32(1107529302); -emit_32(1115291648); -emit_32(3268603937); -emit_32(1107488067); -emit_32(1115291648); -emit_32(3268091970); -emit_32(1107407117); -emit_32(1115291648); -emit_32(3267579911); -emit_32(1106883012); -emit_32(1115291648); -emit_32(3267067904); -emit_32(1106605454); -emit_32(1115291648); -emit_32(3266555911); -emit_32(1105505288); -emit_32(1115291648); -emit_32(3266043904); -emit_32(1104212551); -emit_32(1115291648); -emit_32(3265531911); -emit_32(1103004854); -emit_32(1115291648); -emit_32(3265019904); -emit_32(1102070835); -emit_32(1115291648); -emit_32(3264507911); -emit_32(1101098123); -emit_32(1115291648); -emit_32(3263995904); -emit_32(1100325323); -emit_32(1115291648); -emit_32(3263483911); -emit_32(1099328966); -emit_32(1115291648); -emit_32(3262775296); -emit_32(1098611216); -emit_32(1115291648); -emit_32(3261751309); -emit_32(1096735418); -emit_32(1115291648); -emit_32(3260727296); -emit_32(1095838571); -emit_32(1115291648); -emit_32(3259703309); -emit_32(1094605760); -emit_32(1115291648); -emit_32(3258679296); -emit_32(1092525459); -emit_32(1115291648); -emit_32(3257655309); -emit_32(1092767082); -emit_32(1115291648); -emit_32(3256631296); -emit_32(1093983535); -emit_32(1115291648); -emit_32(3255607309); -emit_32(1095249271); -emit_32(1115291648); -emit_32(3254386688); -emit_32(1096927937); -emit_32(1115291648); -emit_32(3252338714); -emit_32(1098207724); -emit_32(1115291648); -emit_32(3250290688); -emit_32(1099233441); -emit_32(1115291648); -emit_32(3248242714); -emit_32(1099875956); -emit_32(1115291648); -emit_32(3245998080); -emit_32(1100637117); -emit_32(1115291648); -emit_32(3241902132); -emit_32(1101503817); -emit_32(1115291648); -emit_32(3237609472); -emit_32(1102802531); -emit_32(1115291648); -emit_32(3229220864); -emit_32(1103593682); -emit_32(1115291648); -emit_32(0); -emit_32(1104232317); -emit_32(1115291648); -emit_32(1081737216); -emit_32(1104775951); -emit_32(1115291648); -emit_32(3279552512); -emit_32(1082632448); -emit_32(1114267661); -emit_32(3279296528); -emit_32(1083847999); -emit_32(1114267661); -emit_32(3279040545); -emit_32(1083453043); -emit_32(1114267661); -emit_32(3278784496); -emit_32(1084836240); -emit_32(1114267661); -emit_32(3278528512); -emit_32(1087335416); -emit_32(1114267661); -emit_32(3278272528); -emit_32(1088125267); -emit_32(1114267661); -emit_32(3278016545); -emit_32(1091016904); -emit_32(1114267661); -emit_32(3277760496); -emit_32(1091320320); -emit_32(1114267661); -emit_32(3277504512); -emit_32(1091823731); -emit_32(1114267661); -emit_32(3277248528); -emit_32(1092277020); -emit_32(1114267661); -emit_32(3276992545); -emit_32(1093461659); -emit_32(1114267661); -emit_32(3276736496); -emit_32(1095052768); -emit_32(1114267661); -emit_32(3276480512); -emit_32(1095490234); -emit_32(1114267661); -emit_32(3276224528); -emit_32(1095508899); -emit_32(1114267661); -emit_32(3275968545); -emit_32(1097193541); -emit_32(1114267661); -emit_32(3275712496); -emit_32(1098984561); -emit_32(1114267661); -emit_32(3275456512); -emit_32(1099457574); -emit_32(1114267661); -emit_32(3275200528); -emit_32(1100590141); -emit_32(1114267661); -emit_32(3274944545); -emit_32(1101940969); -emit_32(1114267661); -emit_32(3274688496); -emit_32(1103512417); -emit_32(1114267661); -emit_32(3274432512); -emit_32(1104276147); -emit_32(1114267661); -emit_32(3274176528); -emit_32(1104819310); -emit_32(1114267661); -emit_32(3273920545); -emit_32(1105352144); -emit_32(1114267661); -emit_32(3273664496); -emit_32(1106559369); -emit_32(1114267661); -emit_32(3273408512); -emit_32(1107364859); -emit_32(1114267661); -emit_32(3273152528); -emit_32(1107533470); -emit_32(1114267661); -emit_32(3272896545); -emit_32(1107506024); -emit_32(1114267661); -emit_32(3272640496); -emit_32(1107420801); -emit_32(1114267661); -emit_32(3272384512); -emit_32(1107402398); -emit_32(1114267661); -emit_32(3272128528); -emit_32(1107706013); -emit_32(1114267661); -emit_32(3271872545); -emit_32(1107658749); -emit_32(1114267661); -emit_32(3271616496); -emit_32(1107586292); -emit_32(1114267661); -emit_32(3271163904); -emit_32(1107376315); -emit_32(1114267661); -emit_32(3270651937); -emit_32(1107428560); -emit_32(1114267661); -emit_32(3270139970); -emit_32(1107381348); -emit_32(1114267661); -emit_32(3269627871); -emit_32(1107411416); -emit_32(1114267661); -emit_32(3269115904); -emit_32(1107441222); -emit_32(1114267661); -emit_32(3268603937); -emit_32(1107539552); -emit_32(1114267661); -emit_32(3268091970); -emit_32(1107219658); -emit_32(1114267661); -emit_32(3267579911); -emit_32(1106732804); -emit_32(1114267661); -emit_32(3267067904); -emit_32(1106474592); -emit_32(1114267661); -emit_32(3266555911); -emit_32(1105371857); -emit_32(1114267661); -emit_32(3266043904); -emit_32(1103908989); -emit_32(1114267661); -emit_32(3265531911); -emit_32(1102613892); -emit_32(1114267661); -emit_32(3265019904); -emit_32(1101793853); -emit_32(1114267661); -emit_32(3264507911); -emit_32(1101568305); -emit_32(1114267661); -emit_32(3263995904); -emit_32(1100542693); -emit_32(1114267661); -emit_32(3263483911); -emit_32(1099317327); -emit_32(1114267661); -emit_32(3262775296); -emit_32(1098087557); -emit_32(1114267661); -emit_32(3261751309); -emit_32(1096945867); -emit_32(1114267661); -emit_32(3260727296); -emit_32(1096008440); -emit_32(1114267661); -emit_32(3259703309); -emit_32(1094604292); -emit_32(1114267661); -emit_32(3258679296); -emit_32(1093760293); -emit_32(1114267661); -emit_32(3257655309); -emit_32(1095498203); -emit_32(1114267661); -emit_32(3256631296); -emit_32(1096500642); -emit_32(1114267661); -emit_32(3255607309); -emit_32(1097453063); -emit_32(1114267661); -emit_32(3254386688); -emit_32(1098431594); -emit_32(1114267661); -emit_32(3252338714); -emit_32(1099318061); -emit_32(1114267661); -emit_32(3250290688); -emit_32(1100353529); -emit_32(1114267661); -emit_32(3248242714); -emit_32(1100897373); -emit_32(1114267661); -emit_32(3245998080); -emit_32(1101979661); -emit_32(1114267661); -emit_32(3241902132); -emit_32(1102434481); -emit_32(1114267661); -emit_32(3237609472); -emit_32(1103617327); -emit_32(1114267661); -emit_32(3229220864); -emit_32(1104375972); -emit_32(1114267661); -emit_32(0); -emit_32(1104908963); -emit_32(1114267661); -emit_32(1081737216); -emit_32(1105382343); -emit_32(1114267661); -emit_32(3279552512); -emit_32(1080567970); -emit_32(1113243648); -emit_32(3279296528); -emit_32(1081431200); -emit_32(1113243648); -emit_32(3279040545); -emit_32(1083053640); -emit_32(1113243648); -emit_32(3278784496); -emit_32(1084804594); -emit_32(1113243648); -emit_32(3278528512); -emit_32(1089344530); -emit_32(1113243648); -emit_32(3278272528); -emit_32(1089662899); -emit_32(1113243648); -emit_32(3278016545); -emit_32(1090822970); -emit_32(1113243648); -emit_32(3277760496); -emit_32(1092219662); -emit_32(1113243648); -emit_32(3277504512); -emit_32(1093309615); -emit_32(1113243648); -emit_32(3277248528); -emit_32(1093760608); -emit_32(1113243648); -emit_32(3276992545); -emit_32(1094942563); -emit_32(1113243648); -emit_32(3276736496); -emit_32(1095970062); -emit_32(1113243648); -emit_32(3276480512); -emit_32(1096808609); -emit_32(1113243648); -emit_32(3276224528); -emit_32(1097144677); -emit_32(1113243648); -emit_32(3275968545); -emit_32(1097732299); -emit_32(1113243648); -emit_32(3275712496); -emit_32(1099213255); -emit_32(1113243648); -emit_32(3275456512); -emit_32(1100077335); -emit_32(1113243648); -emit_32(3275200528); -emit_32(1101037358); -emit_32(1113243648); -emit_32(3274944545); -emit_32(1102522142); -emit_32(1113243648); -emit_32(3274688496); -emit_32(1103670333); -emit_32(1113243648); -emit_32(3274432512); -emit_32(1104447013); -emit_32(1113243648); -emit_32(3274176528); -emit_32(1104860519); -emit_32(1113243648); -emit_32(3273920545); -emit_32(1105841200); -emit_32(1113243648); -emit_32(3273664496); -emit_32(1106724782); -emit_32(1113243648); -emit_32(3273408512); -emit_32(1107646900); -emit_32(1113243648); -emit_32(3273152528); -emit_32(1107527152); -emit_32(1113243648); -emit_32(3272896545); -emit_32(1107447854); -emit_32(1113243648); -emit_32(3272640496); -emit_32(1107457160); -emit_32(1113243648); -emit_32(3272384512); -emit_32(1107532238); -emit_32(1113243648); -emit_32(3272128528); -emit_32(1107881152); -emit_32(1113243648); -emit_32(3271872545); -emit_32(1107776897); -emit_32(1113243648); -emit_32(3271616496); -emit_32(1107520258); -emit_32(1113243648); -emit_32(3271163904); -emit_32(1107733591); -emit_32(1113243648); -emit_32(3270651937); -emit_32(1107557168); -emit_32(1113243648); -emit_32(3270139970); -emit_32(1107429845); -emit_32(1113243648); -emit_32(3269627871); -emit_32(1107409161); -emit_32(1113243648); -emit_32(3269115904); -emit_32(1107202618); -emit_32(1113243648); -emit_32(3268603937); -emit_32(1107218137); -emit_32(1113243648); -emit_32(3268091970); -emit_32(1107106621); -emit_32(1113243648); -emit_32(3267579911); -emit_32(1106476217); -emit_32(1113243648); -emit_32(3267067904); -emit_32(1105687006); -emit_32(1113243648); -emit_32(3266555911); -emit_32(1104462742); -emit_32(1113243648); -emit_32(3266043904); -emit_32(1103481222); -emit_32(1113243648); -emit_32(3265531911); -emit_32(1102608859); -emit_32(1113243648); -emit_32(3265019904); -emit_32(1101715630); -emit_32(1113243648); -emit_32(3264507911); -emit_32(1101203400); -emit_32(1113243648); -emit_32(3263995904); -emit_32(1100648337); -emit_32(1113243648); -emit_32(3263483911); -emit_32(1099410807); -emit_32(1113243648); -emit_32(3262775296); -emit_32(1097508009); -emit_32(1113243648); -emit_32(3261751309); -emit_32(1097324193); -emit_32(1113243648); -emit_32(3260727296); -emit_32(1096121791); -emit_32(1113243648); -emit_32(3259703309); -emit_32(1095057906); -emit_32(1113243648); -emit_32(3258679296); -emit_32(1095394709); -emit_32(1113243648); -emit_32(3257655309); -emit_32(1097088473); -emit_32(1113243648); -emit_32(3256631296); -emit_32(1098581226); -emit_32(1113243648); -emit_32(3255607309); -emit_32(1099014498); -emit_32(1113243648); -emit_32(3254386688); -emit_32(1099554462); -emit_32(1113243648); -emit_32(3252338714); -emit_32(1100356151); -emit_32(1113243648); -emit_32(3250290688); -emit_32(1101134404); -emit_32(1113243648); -emit_32(3248242714); -emit_32(1101886076); -emit_32(1113243648); -emit_32(3245998080); -emit_32(1103145992); -emit_32(1113243648); -emit_32(3241902132); -emit_32(1103709182); -emit_32(1113243648); -emit_32(3237609472); -emit_32(1104517530); -emit_32(1113243648); -emit_32(3229220864); -emit_32(1104959033); -emit_32(1113243648); -emit_32(0); -emit_32(1105369183); -emit_32(1113243648); -emit_32(1081737216); -emit_32(1105831238); -emit_32(1113243648); -emit_32(3279552512); -emit_32(1081067470); -emit_32(1112219661); -emit_32(3279296528); -emit_32(1081676273); -emit_32(1112219661); -emit_32(3279040545); -emit_32(1082388277); -emit_32(1112219661); -emit_32(3278784496); -emit_32(1084582317); -emit_32(1112219661); -emit_32(3278528512); -emit_32(1086962144); -emit_32(1112219661); -emit_32(3278272528); -emit_32(1088882737); -emit_32(1112219661); -emit_32(3278016545); -emit_32(1091161282); -emit_32(1112219661); -emit_32(3277760496); -emit_32(1092751983); -emit_32(1112219661); -emit_32(3277504512); -emit_32(1095008308); -emit_32(1112219661); -emit_32(3277248528); -emit_32(1095060318); -emit_32(1112219661); -emit_32(3276992545); -emit_32(1096171599); -emit_32(1112219661); -emit_32(3276736496); -emit_32(1096970718); -emit_32(1112219661); -emit_32(3276480512); -emit_32(1096845518); -emit_32(1112219661); -emit_32(3276224528); -emit_32(1097664037); -emit_32(1112219661); -emit_32(3275968545); -emit_32(1099269407); -emit_32(1112219661); -emit_32(3275712496); -emit_32(1099766956); -emit_32(1112219661); -emit_32(3275456512); -emit_32(1100617351); -emit_32(1112219661); -emit_32(3275200528); -emit_32(1101396967); -emit_32(1112219661); -emit_32(3274944545); -emit_32(1102752933); -emit_32(1112219661); -emit_32(3274688496); -emit_32(1103879838); -emit_32(1112219661); -emit_32(3274432512); -emit_32(1104593866); -emit_32(1112219661); -emit_32(3274176528); -emit_32(1105083131); -emit_32(1112219661); -emit_32(3273920545); -emit_32(1106256803); -emit_32(1112219661); -emit_32(3273664496); -emit_32(1106808091); -emit_32(1112219661); -emit_32(3273408512); -emit_32(1107450869); -emit_32(1112219661); -emit_32(3273152528); -emit_32(1107444944); -emit_32(1112219661); -emit_32(3272896545); -emit_32(1107418258); -emit_32(1112219661); -emit_32(3272640496); -emit_32(1107742425); -emit_32(1112219661); -emit_32(3272384512); -emit_32(1108019590); -emit_32(1112219661); -emit_32(3272128528); -emit_32(1107796584); -emit_32(1112219661); -emit_32(3271872545); -emit_32(1107736920); -emit_32(1112219661); -emit_32(3271616496); -emit_32(1107725360); -emit_32(1112219661); -emit_32(3271163904); -emit_32(1107830270); -emit_32(1112219661); -emit_32(3270651937); -emit_32(1107833101); -emit_32(1112219661); -emit_32(3270139970); -emit_32(1107955024); -emit_32(1112219661); -emit_32(3269627871); -emit_32(1107743788); -emit_32(1112219661); -emit_32(3269115904); -emit_32(1107368686); -emit_32(1112219661); -emit_32(3268603937); -emit_32(1107312194); -emit_32(1112219661); -emit_32(3268091970); -emit_32(1106815641); -emit_32(1112219661); -emit_32(3267579911); -emit_32(1106204059); -emit_32(1112219661); -emit_32(3267067904); -emit_32(1105597773); -emit_32(1112219661); -emit_32(3266555911); -emit_32(1104651905); -emit_32(1112219661); -emit_32(3266043904); -emit_32(1103516559); -emit_32(1112219661); -emit_32(3265531911); -emit_32(1102993162); -emit_32(1112219661); -emit_32(3265019904); -emit_32(1101898029); -emit_32(1112219661); -emit_32(3264507911); -emit_32(1100758804); -emit_32(1112219661); -emit_32(3263995904); -emit_32(1100657040); -emit_32(1112219661); -emit_32(3263483911); -emit_32(1099876637); -emit_32(1112219661); -emit_32(3262775296); -emit_32(1097071696); -emit_32(1112219661); -emit_32(3261751309); -emit_32(1097587910); -emit_32(1112219661); -emit_32(3260727296); -emit_32(1096851915); -emit_32(1112219661); -emit_32(3259703309); -emit_32(1095734447); -emit_32(1112219661); -emit_32(3258679296); -emit_32(1096755026); -emit_32(1112219661); -emit_32(3257655309); -emit_32(1098731382); -emit_32(1112219661); -emit_32(3256631296); -emit_32(1099251896); -emit_32(1112219661); -emit_32(3255607309); -emit_32(1099497577); -emit_32(1112219661); -emit_32(3254386688); -emit_32(1100323121); -emit_32(1112219661); -emit_32(3252338714); -emit_32(1101464601); -emit_32(1112219661); -emit_32(3250290688); -emit_32(1102066431); -emit_32(1112219661); -emit_32(3248242714); -emit_32(1102544581); -emit_32(1112219661); -emit_32(3245998080); -emit_32(1103985902); -emit_32(1112219661); -emit_32(3241902132); -emit_32(1104242698); -emit_32(1112219661); -emit_32(3237609472); -emit_32(1105399801); -emit_32(1112219661); -emit_32(3229220864); -emit_32(1105617119); -emit_32(1112219661); -emit_32(0); -emit_32(1106104864); -emit_32(1112219661); -emit_32(1081737216); -emit_32(1106473438); -emit_32(1112219661); -emit_32(3279552512); -emit_32(1080840432); -emit_32(1111195648); -emit_32(3279296528); -emit_32(1081651568); -emit_32(1111195648); -emit_32(3279040545); -emit_32(1082066175); -emit_32(1111195648); -emit_32(3278784496); -emit_32(1084264746); -emit_32(1111195648); -emit_32(3278528512); -emit_32(1088920821); -emit_32(1111195648); -emit_32(3278272528); -emit_32(1090060120); -emit_32(1111195648); -emit_32(3278016545); -emit_32(1091098882); -emit_32(1111195648); -emit_32(3277760496); -emit_32(1092897630); -emit_32(1111195648); -emit_32(3277504512); -emit_32(1093865780); -emit_32(1111195648); -emit_32(3277248528); -emit_32(1095144309); -emit_32(1111195648); -emit_32(3276992545); -emit_32(1096518363); -emit_32(1111195648); -emit_32(3276736496); -emit_32(1097299342); -emit_32(1111195648); -emit_32(3276480512); -emit_32(1098421109); -emit_32(1111195648); -emit_32(3276224528); -emit_32(1098491888); -emit_32(1111195648); -emit_32(3275968545); -emit_32(1099350986); -emit_32(1111195648); -emit_32(3275712496); -emit_32(1100200332); -emit_32(1111195648); -emit_32(3275456512); -emit_32(1100698092); -emit_32(1111195648); -emit_32(3275200528); -emit_32(1101450655); -emit_32(1111195648); -emit_32(3274944545); -emit_32(1103069866); -emit_32(1111195648); -emit_32(3274688496); -emit_32(1104305508); -emit_32(1111195648); -emit_32(3274432512); -emit_32(1105027557); -emit_32(1111195648); -emit_32(3274176528); -emit_32(1105330019); -emit_32(1111195648); -emit_32(3273920545); -emit_32(1106064336); -emit_32(1111195648); -emit_32(3273664496); -emit_32(1107261863); -emit_32(1111195648); -emit_32(3273408512); -emit_32(1107667531); -emit_32(1111195648); -emit_32(3273152528); -emit_32(1107670598); -emit_32(1111195648); -emit_32(3272896545); -emit_32(1107641159); -emit_32(1111195648); -emit_32(3272640496); -emit_32(1107722528); -emit_32(1111195648); -emit_32(3272384512); -emit_32(1108132181); -emit_32(1111195648); -emit_32(3272128528); -emit_32(1108041636); -emit_32(1111195648); -emit_32(3271872545); -emit_32(1107852499); -emit_32(1111195648); -emit_32(3271616496); -emit_32(1107940187); -emit_32(1111195648); -emit_32(3271163904); -emit_32(1108075584); -emit_32(1111195648); -emit_32(3270651937); -emit_32(1108051519); -emit_32(1111195648); -emit_32(3270139970); -emit_32(1108131185); -emit_32(1111195648); -emit_32(3269627871); -emit_32(1107856720); -emit_32(1111195648); -emit_32(3269115904); -emit_32(1107481775); -emit_32(1111195648); -emit_32(3268603937); -emit_32(1107354426); -emit_32(1111195648); -emit_32(3268091970); -emit_32(1106901729); -emit_32(1111195648); -emit_32(3267579911); -emit_32(1106228648); -emit_32(1111195648); -emit_32(3267067904); -emit_32(1105262753); -emit_32(1111195648); -emit_32(3266555911); -emit_32(1104721425); -emit_32(1111195648); -emit_32(3266043904); -emit_32(1103674474); -emit_32(1111195648); -emit_32(3265531911); -emit_32(1102786488); -emit_32(1111195648); -emit_32(3265019904); -emit_32(1102197555); -emit_32(1111195648); -emit_32(3264507911); -emit_32(1100931295); -emit_32(1111195648); -emit_32(3263995904); -emit_32(1100417440); -emit_32(1111195648); -emit_32(3263483911); -emit_32(1099561330); -emit_32(1111195648); -emit_32(3262775296); -emit_32(1098381787); -emit_32(1111195648); -emit_32(3261751309); -emit_32(1097372218); -emit_32(1111195648); -emit_32(3260727296); -emit_32(1097540724); -emit_32(1111195648); -emit_32(3259703309); -emit_32(1096128502); -emit_32(1111195648); -emit_32(3258679296); -emit_32(1098525337); -emit_32(1111195648); -emit_32(3257655309); -emit_32(1099283929); -emit_32(1111195648); -emit_32(3256631296); -emit_32(1099669281); -emit_32(1111195648); -emit_32(3255607309); -emit_32(1100104388); -emit_32(1111195648); -emit_32(3254386688); -emit_32(1101177448); -emit_32(1111195648); -emit_32(3252338714); -emit_32(1102411989); -emit_32(1111195648); -emit_32(3250290688); -emit_32(1102859731); -emit_32(1111195648); -emit_32(3248242714); -emit_32(1103261650); -emit_32(1111195648); -emit_32(3245998080); -emit_32(1104208881); -emit_32(1111195648); -emit_32(3241902132); -emit_32(1104930721); -emit_32(1111195648); -emit_32(3237609472); -emit_32(1105910668); -emit_32(1111195648); -emit_32(3229220864); -emit_32(1106135482); -emit_32(1111195648); -emit_32(0); -emit_32(1106438364); -emit_32(1111195648); -emit_32(1081737216); -emit_32(1106707585); -emit_32(1111195648); -emit_32(3279552512); -emit_32(1082299945); -emit_32(1110171661); -emit_32(3279296528); -emit_32(1082335492); -emit_32(1110171661); -emit_32(3279040545); -emit_32(1081611639); -emit_32(1110171661); -emit_32(3278784496); -emit_32(1084483730); -emit_32(1110171661); -emit_32(3278528512); -emit_32(1087813567); -emit_32(1110171661); -emit_32(3278272528); -emit_32(1090011655); -emit_32(1110171661); -emit_32(3278016545); -emit_32(1090662443); -emit_32(1110171661); -emit_32(3277760496); -emit_32(1091411913); -emit_32(1110171661); -emit_32(3277504512); -emit_32(1093599547); -emit_32(1110171661); -emit_32(3277248528); -emit_32(1095137283); -emit_32(1110171661); -emit_32(3276992545); -emit_32(1096248040); -emit_32(1110171661); -emit_32(3276736496); -emit_32(1097581409); -emit_32(1110171661); -emit_32(3276480512); -emit_32(1098493460); -emit_32(1110171661); -emit_32(3276224528); -emit_32(1098645189); -emit_32(1110171661); -emit_32(3275968545); -emit_32(1099528405); -emit_32(1110171661); -emit_32(3275712496); -emit_32(1100673398); -emit_32(1110171661); -emit_32(3275456512); -emit_32(1101618269); -emit_32(1110171661); -emit_32(3275200528); -emit_32(1102431073); -emit_32(1110171661); -emit_32(3274944545); -emit_32(1103528093); -emit_32(1110171661); -emit_32(3274688496); -emit_32(1104554597); -emit_32(1110171661); -emit_32(3274432512); -emit_32(1105069133); -emit_32(1110171661); -emit_32(3274176528); -emit_32(1105654658); -emit_32(1110171661); -emit_32(3273920545); -emit_32(1106835145); -emit_32(1110171661); -emit_32(3273664496); -emit_32(1107634160); -emit_32(1110171661); -emit_32(3273408512); -emit_32(1107894338); -emit_32(1110171661); -emit_32(3273152528); -emit_32(1107815222); -emit_32(1110171661); -emit_32(3272896545); -emit_32(1107886788); -emit_32(1110171661); -emit_32(3272640496); -emit_32(1107869984); -emit_32(1110171661); -emit_32(3272384512); -emit_32(1108048085); -emit_32(1110171661); -emit_32(3272128528); -emit_32(1108254890); -emit_32(1110171661); -emit_32(3271872545); -emit_32(1108213734); -emit_32(1110171661); -emit_32(3271616496); -emit_32(1108197324); -emit_32(1110171661); -emit_32(3271163904); -emit_32(1108442612); -emit_32(1110171661); -emit_32(3270651937); -emit_32(1108195515); -emit_32(1110171661); -emit_32(3270139970); -emit_32(1107913422); -emit_32(1110171661); -emit_32(3269627871); -emit_32(1108099754); -emit_32(1110171661); -emit_32(3269115904); -emit_32(1107690809); -emit_32(1110171661); -emit_32(3268603937); -emit_32(1107419726); -emit_32(1110171661); -emit_32(3268091970); -emit_32(1106916881); -emit_32(1110171661); -emit_32(3267579911); -emit_32(1106123581); -emit_32(1110171661); -emit_32(3267067904); -emit_32(1105152285); -emit_32(1110171661); -emit_32(3266555911); -emit_32(1104426985); -emit_32(1110171661); -emit_32(3266043904); -emit_32(1103754376); -emit_32(1110171661); -emit_32(3265531911); -emit_32(1102897113); -emit_32(1110171661); -emit_32(3265019904); -emit_32(1102036808); -emit_32(1110171661); -emit_32(3264507911); -emit_32(1100742237); -emit_32(1110171661); -emit_32(3263995904); -emit_32(1099863477); -emit_32(1110171661); -emit_32(3263483911); -emit_32(1099645950); -emit_32(1110171661); -emit_32(3262775296); -emit_32(1099481114); -emit_32(1110171661); -emit_32(3261751309); -emit_32(1098210135); -emit_32(1110171661); -emit_32(3260727296); -emit_32(1097645582); -emit_32(1110171661); -emit_32(3259703309); -emit_32(1097853619); -emit_32(1110171661); -emit_32(3258679296); -emit_32(1099526675); -emit_32(1110171661); -emit_32(3257655309); -emit_32(1100018090); -emit_32(1110171661); -emit_32(3256631296); -emit_32(1100522927); -emit_32(1110171661); -emit_32(3255607309); -emit_32(1100845993); -emit_32(1110171661); -emit_32(3254386688); -emit_32(1101870924); -emit_32(1110171661); -emit_32(3252338714); -emit_32(1102805362); -emit_32(1110171661); -emit_32(3250290688); -emit_32(1103401216); -emit_32(1110171661); -emit_32(3248242714); -emit_32(1103731255); -emit_32(1110171661); -emit_32(3245998080); -emit_32(1104590458); -emit_32(1110171661); -emit_32(3241902132); -emit_32(1105688946); -emit_32(1110171661); -emit_32(3237609472); -emit_32(1106199393); -emit_32(1110171661); -emit_32(3229220864); -emit_32(1106912477); -emit_32(1110171661); -emit_32(0); -emit_32(1106977279); -emit_32(1110171661); -emit_32(1081737216); -emit_32(1107240944); -emit_32(1110171661); -emit_32(3279552512); -emit_32(1082717131); -emit_32(1109147648); -emit_32(3279296528); -emit_32(1082557014); -emit_32(1109147648); -emit_32(3279040545); -emit_32(1081304070); -emit_32(1109147648); -emit_32(3278784496); -emit_32(1083792278); -emit_32(1109147648); -emit_32(3278528512); -emit_32(1085314873); -emit_32(1109147648); -emit_32(3278272528); -emit_32(1088245664); -emit_32(1109147648); -emit_32(3278016545); -emit_32(1090788797); -emit_32(1109147648); -emit_32(3277760496); -emit_32(1091410718); -emit_32(1109147648); -emit_32(3277504512); -emit_32(1092169803); -emit_32(1109147648); -emit_32(3277248528); -emit_32(1094073608); -emit_32(1109147648); -emit_32(3276992545); -emit_32(1095322147); -emit_32(1109147648); -emit_32(3276736496); -emit_32(1097073584); -emit_32(1109147648); -emit_32(3276480512); -emit_32(1097631321); -emit_32(1109147648); -emit_32(3276224528); -emit_32(1098886781); -emit_32(1109147648); -emit_32(3275968545); -emit_32(1099653448); -emit_32(1109147648); -emit_32(3275712496); -emit_32(1100796029); -emit_32(1109147648); -emit_32(3275456512); -emit_32(1102110786); -emit_32(1109147648); -emit_32(3275200528); -emit_32(1103014553); -emit_32(1109147648); -emit_32(3274944545); -emit_32(1103661420); -emit_32(1109147648); -emit_32(3274688496); -emit_32(1104730758); -emit_32(1109147648); -emit_32(3274432512); -emit_32(1105461248); -emit_32(1109147648); -emit_32(3274176528); -emit_32(1106228019); -emit_32(1109147648); -emit_32(3273920545); -emit_32(1107398361); -emit_32(1109147648); -emit_32(3273664496); -emit_32(1107773987); -emit_32(1109147648); -emit_32(3273408512); -emit_32(1107908336); -emit_32(1109147648); -emit_32(3273152528); -emit_32(1107942729); -emit_32(1109147648); -emit_32(3272896545); -emit_32(1108010231); -emit_32(1109147648); -emit_32(3272640496); -emit_32(1107850140); -emit_32(1109147648); -emit_32(3272384512); -emit_32(1108057339); -emit_32(1109147648); -emit_32(3272128528); -emit_32(1108245977); -emit_32(1109147648); -emit_32(3271872545); -emit_32(1108269937); -emit_32(1109147648); -emit_32(3271616496); -emit_32(1108532291); -emit_32(1109147648); -emit_32(3271163904); -emit_32(1108595809); -emit_32(1109147648); -emit_32(3270651937); -emit_32(1108363942); -emit_32(1109147648); -emit_32(3270139970); -emit_32(1108139599); -emit_32(1109147648); -emit_32(3269627871); -emit_32(1108065465); -emit_32(1109147648); -emit_32(3269115904); -emit_32(1107970150); -emit_32(1109147648); -emit_32(3268603937); -emit_32(1107690678); -emit_32(1109147648); -emit_32(3268091970); -emit_32(1106957042); -emit_32(1109147648); -emit_32(3267579911); -emit_32(1106262517); -emit_32(1109147648); -emit_32(3267067904); -emit_32(1105527937); -emit_32(1109147648); -emit_32(3266555911); -emit_32(1104380638); -emit_32(1109147648); -emit_32(3266043904); -emit_32(1103529719); -emit_32(1109147648); -emit_32(3265531911); -emit_32(1102593130); -emit_32(1109147648); -emit_32(3265019904); -emit_32(1101585816); -emit_32(1109147648); -emit_32(3264507911); -emit_32(1100545471); -emit_32(1109147648); -emit_32(3263995904); -emit_32(1100004144); -emit_32(1109147648); -emit_32(3263483911); -emit_32(1099601124); -emit_32(1109147648); -emit_32(3262775296); -emit_32(1099485518); -emit_32(1109147648); -emit_32(3261751309); -emit_32(1099132987); -emit_32(1109147648); -emit_32(3260727296); -emit_32(1098562037); -emit_32(1109147648); -emit_32(3259703309); -emit_32(1099204605); -emit_32(1109147648); -emit_32(3258679296); -emit_32(1100206834); -emit_32(1109147648); -emit_32(3257655309); -emit_32(1100697777); -emit_32(1109147648); -emit_32(3256631296); -emit_32(1100970774); -emit_32(1109147648); -emit_32(3255607309); -emit_32(1101185522); -emit_32(1109147648); -emit_32(3254386688); -emit_32(1102281336); -emit_32(1109147648); -emit_32(3252338714); -emit_32(1103401478); -emit_32(1109147648); -emit_32(3250290688); -emit_32(1103912763); -emit_32(1109147648); -emit_32(3248242714); -emit_32(1104404808); -emit_32(1109147648); -emit_32(3245998080); -emit_32(1105352196); -emit_32(1109147648); -emit_32(3241902132); -emit_32(1106248519); -emit_32(1109147648); -emit_32(3237609472); -emit_32(1107362631); -emit_32(1109147648); -emit_32(3229220864); -emit_32(1107724259); -emit_32(1109147648); -emit_32(0); -emit_32(1107777290); -emit_32(1109147648); -emit_32(1081737216); -emit_32(1108060956); -emit_32(1109147648); -emit_32(3279552512); -emit_32(1081790232); -emit_32(1108123661); -emit_32(3279296528); -emit_32(1079535290); -emit_32(1108123661); -emit_32(3279040545); -emit_32(1079065864); -emit_32(1108123661); -emit_32(3278784496); -emit_32(1082272577); -emit_32(1108123661); -emit_32(3278528512); -emit_32(1083963574); -emit_32(1108123661); -emit_32(3278272528); -emit_32(1087349677); -emit_32(1108123661); -emit_32(3278016545); -emit_32(1088785241); -emit_32(1108123661); -emit_32(3277760496); -emit_32(1090741705); -emit_32(1108123661); -emit_32(3277504512); -emit_32(1090749360); -emit_32(1108123661); -emit_32(3277248528); -emit_32(1093053448); -emit_32(1108123661); -emit_32(3276992545); -emit_32(1094660601); -emit_32(1108123661); -emit_32(3276736496); -emit_32(1096196555); -emit_32(1108123661); -emit_32(3276480512); -emit_32(1096902351); -emit_32(1108123661); -emit_32(3276224528); -emit_32(1098391434); -emit_32(1108123661); -emit_32(3275968545); -emit_32(1099380084); -emit_32(1108123661); -emit_32(3275712496); -emit_32(1101235225); -emit_32(1108123661); -emit_32(3275456512); -emit_32(1102578188); -emit_32(1108123661); -emit_32(3275200528); -emit_32(1103112385); -emit_32(1108123661); -emit_32(3274944545); -emit_32(1103997541); -emit_32(1108123661); -emit_32(3274688496); -emit_32(1104833046); -emit_32(1108123661); -emit_32(3274432512); -emit_32(1105701582); -emit_32(1108123661); -emit_32(3274176528); -emit_32(1106849458); -emit_32(1108123661); -emit_32(3273920545); -emit_32(1107522617); -emit_32(1108123661); -emit_32(3273664496); -emit_32(1107703025); -emit_32(1108123661); -emit_32(3273408512); -emit_32(1107971565); -emit_32(1108123661); -emit_32(3273152528); -emit_32(1107971565); -emit_32(1108123661); -emit_32(3272896545); -emit_32(1107873025); -emit_32(1108123661); -emit_32(3272640496); -emit_32(1108008685); -emit_32(1108123661); -emit_32(3272384512); -emit_32(1108230878); -emit_32(1108123661); -emit_32(3272128528); -emit_32(1108292220); -emit_32(1108123661); -emit_32(3271872545); -emit_32(1108636520); -emit_32(1108123661); -emit_32(3271616496); -emit_32(1108671909); -emit_32(1108123661); -emit_32(3271163904); -emit_32(1108573789); -emit_32(1108123661); -emit_32(3270651937); -emit_32(1108191583); -emit_32(1108123661); -emit_32(3270139970); -emit_32(1108044546); -emit_32(1108123661); -emit_32(3269627871); -emit_32(1108195856); -emit_32(1108123661); -emit_32(3269115904); -emit_32(1108061848); -emit_32(1108123661); -emit_32(3268603937); -emit_32(1107692487); -emit_32(1108123661); -emit_32(3268091970); -emit_32(1107358332); -emit_32(1108123661); -emit_32(3267579911); -emit_32(1106436476); -emit_32(1108123661); -emit_32(3267067904); -emit_32(1105876117); -emit_32(1108123661); -emit_32(3266555911); -emit_32(1104926002); -emit_32(1108123661); -emit_32(3266043904); -emit_32(1103527150); -emit_32(1108123661); -emit_32(3265531911); -emit_32(1102838969); -emit_32(1108123661); -emit_32(3265019904); -emit_32(1101768163); -emit_32(1108123661); -emit_32(3264507911); -emit_32(1100951952); -emit_32(1108123661); -emit_32(3263995904); -emit_32(1099817497); -emit_32(1108123661); -emit_32(3263483911); -emit_32(1099592683); -emit_32(1108123661); -emit_32(3262775296); -emit_32(1099523424); -emit_32(1108123661); -emit_32(3261751309); -emit_32(1099184734); -emit_32(1108123661); -emit_32(3260727296); -emit_32(1099580100); -emit_32(1108123661); -emit_32(3259703309); -emit_32(1100319870); -emit_32(1108123661); -emit_32(3258679296); -emit_32(1100702181); -emit_32(1108123661); -emit_32(3257655309); -emit_32(1101110811); -emit_32(1108123661); -emit_32(3256631296); -emit_32(1101752487); -emit_32(1108123661); -emit_32(3255607309); -emit_32(1101832074); -emit_32(1108123661); -emit_32(3254386688); -emit_32(1103107038); -emit_32(1108123661); -emit_32(3252338714); -emit_32(1103861173); -emit_32(1108123661); -emit_32(3250290688); -emit_32(1104152415); -emit_32(1108123661); -emit_32(3248242714); -emit_32(1104902672); -emit_32(1108123661); -emit_32(3245998080); -emit_32(1106376602); -emit_32(1108123661); -emit_32(3241902132); -emit_32(1107508593); -emit_32(1108123661); -emit_32(3237609472); -emit_32(1108028267); -emit_32(1108123661); -emit_32(3229220864); -emit_32(1108316180); -emit_32(1108123661); -emit_32(0); -emit_32(1108600553); -emit_32(1108123661); -emit_32(1081737216); -emit_32(1109011386); -emit_32(1108123661); -emit_32(3279552512); -emit_32(1074938711); -emit_32(1106903040); -emit_32(3279296528); -emit_32(1070708671); -emit_32(1106903040); -emit_32(3279040545); -emit_32(1075430996); -emit_32(1106903040); -emit_32(3278784496); -emit_32(1078754772); -emit_32(1106903040); -emit_32(3278528512); -emit_32(1082105015); -emit_32(1106903040); -emit_32(3278272528); -emit_32(1084220747); -emit_32(1106903040); -emit_32(3278016545); -emit_32(1085553718); -emit_32(1106903040); -emit_32(3277760496); -emit_32(1088135228); -emit_32(1106903040); -emit_32(3277504512); -emit_32(1089208635); -emit_32(1106903040); -emit_32(3277248528); -emit_32(1091931860); -emit_32(1106903040); -emit_32(3276992545); -emit_32(1094402336); -emit_32(1106903040); -emit_32(3276736496); -emit_32(1096213751); -emit_32(1106903040); -emit_32(3276480512); -emit_32(1097279629); -emit_32(1106903040); -emit_32(3276224528); -emit_32(1098783601); -emit_32(1106903040); -emit_32(3275968545); -emit_32(1099888067); -emit_32(1106903040); -emit_32(3275712496); -emit_32(1101525837); -emit_32(1106903040); -emit_32(3275456512); -emit_32(1102857267); -emit_32(1106903040); -emit_32(3275200528); -emit_32(1103317277); -emit_32(1106903040); -emit_32(3274944545); -emit_32(1104193048); -emit_32(1106903040); -emit_32(3274688496); -emit_32(1105188461); -emit_32(1106903040); -emit_32(3274432512); -emit_32(1105975732); -emit_32(1106903040); -emit_32(3274176528); -emit_32(1107142692); -emit_32(1106903040); -emit_32(3273920545); -emit_32(1107580315); -emit_32(1106903040); -emit_32(3273664496); -emit_32(1107715634); -emit_32(1106903040); -emit_32(3273408512); -emit_32(1107697441); -emit_32(1106903040); -emit_32(3273152528); -emit_32(1107818683); -emit_32(1106903040); -emit_32(3272896545); -emit_32(1108195331); -emit_32(1106903040); -emit_32(3272640496); -emit_32(1108463609); -emit_32(1106903040); -emit_32(3272384512); -emit_32(1108323782); -emit_32(1106903040); -emit_32(3272128528); -emit_32(1108524374); -emit_32(1106903040); -emit_32(3271872545); -emit_32(1108820912); -emit_32(1106903040); -emit_32(3271616496); -emit_32(1108768614); -emit_32(1106903040); -emit_32(3271163904); -emit_32(1108591929); -emit_32(1106903040); -emit_32(3270651937); -emit_32(1108250146); -emit_32(1106903040); -emit_32(3270139970); -emit_32(1108083370); -emit_32(1106903040); -emit_32(3269627871); -emit_32(1108183876); -emit_32(1106903040); -emit_32(3269115904); -emit_32(1107985354); -emit_32(1106903040); -emit_32(3268603937); -emit_32(1107793333); -emit_32(1106903040); -emit_32(3268091970); -emit_32(1107344595); -emit_32(1106903040); -emit_32(3267579911); -emit_32(1106660190); -emit_32(1106903040); -emit_32(3267067904); -emit_32(1105863377); -emit_32(1106903040); -emit_32(3266555911); -emit_32(1104810344); -emit_32(1106903040); -emit_32(3266043904); -emit_32(1103848328); -emit_32(1106903040); -emit_32(3265531911); -emit_32(1102592396); -emit_32(1106903040); -emit_32(3265019904); -emit_32(1101769893); -emit_32(1106903040); -emit_32(3264507911); -emit_32(1100719378); -emit_32(1106903040); -emit_32(3263995904); -emit_32(1100007709); -emit_32(1106903040); -emit_32(3263483911); -emit_32(1099495585); -emit_32(1106903040); -emit_32(3262775296); -emit_32(1099523739); -emit_32(1106903040); -emit_32(3261751309); -emit_32(1099506857); -emit_32(1106903040); -emit_32(3260727296); -emit_32(1100188693); -emit_32(1106903040); -emit_32(3259703309); -emit_32(1100974496); -emit_32(1106903040); -emit_32(3258679296); -emit_32(1101640447); -emit_32(1106903040); -emit_32(3257655309); -emit_32(1101639503); -emit_32(1106903040); -emit_32(3256631296); -emit_32(1102123945); -emit_32(1106903040); -emit_32(3255607309); -emit_32(1102739250); -emit_32(1106903040); -emit_32(3254386688); -emit_32(1103471260); -emit_32(1106903040); -emit_32(3252338714); -emit_32(1104291457); -emit_32(1106903040); -emit_32(3250290688); -emit_32(1104973241); -emit_32(1106903040); -emit_32(3248242714); -emit_32(1106462586); -emit_32(1106903040); -emit_32(3245998080); -emit_32(1107570275); -emit_32(1106903040); -emit_32(3241902132); -emit_32(1108078939); -emit_32(1106903040); -emit_32(3237609472); -emit_32(1108626034); -emit_32(1106903040); -emit_32(3229220864); -emit_32(1109189434); -emit_32(1106903040); -emit_32(0); -emit_32(1109489300); -emit_32(1106903040); -emit_32(1081737216); -emit_32(1109770397); -emit_32(1106903040); -emit_32(3279552512); -emit_32(1056202922); -emit_32(1104855066); -emit_32(3279296528); -emit_32(1059176634); -emit_32(1104855066); -emit_32(3279040545); -emit_32(1067152489); -emit_32(1104855066); -emit_32(3278784496); -emit_32(1069776361); -emit_32(1104855066); -emit_32(3278528512); -emit_32(1076809790); -emit_32(1104855066); -emit_32(3278272528); -emit_32(1080678154); -emit_32(1104855066); -emit_32(3278016545); -emit_32(1084300292); -emit_32(1104855066); -emit_32(3277760496); -emit_32(1086892330); -emit_32(1104855066); -emit_32(3277504512); -emit_32(1089616510); -emit_32(1104855066); -emit_32(3277248528); -emit_32(1092235758); -emit_32(1104855066); -emit_32(3276992545); -emit_32(1094086505); -emit_32(1104855066); -emit_32(3276736496); -emit_32(1095456260); -emit_32(1104855066); -emit_32(3276480512); -emit_32(1097209794); -emit_32(1104855066); -emit_32(3276224528); -emit_32(1098815478); -emit_32(1104855066); -emit_32(3275968545); -emit_32(1099901331); -emit_32(1104855066); -emit_32(3275712496); -emit_32(1101448138); -emit_32(1104855066); -emit_32(3275456512); -emit_32(1102457340); -emit_32(1104855066); -emit_32(3275200528); -emit_32(1103405724); -emit_32(1104855014); -emit_32(3274944545); -emit_32(1104703652); -emit_32(1104855066); -emit_32(3274688496); -emit_32(1105909409); -emit_32(1104855014); -emit_32(3274432512); -emit_32(1106485392); -emit_32(1104855066); -emit_32(3274176528); -emit_32(1107410708); -emit_32(1104855014); -emit_32(3273920545); -emit_32(1107950751); -emit_32(1104855066); -emit_32(3273664496); -emit_32(1108072569); -emit_32(1104855014); -emit_32(3273408512); -emit_32(1108067090); -emit_32(1104855066); -emit_32(3273152528); -emit_32(1108270514); -emit_32(1104855014); -emit_32(3272896545); -emit_32(1108617121); -emit_32(1104855066); -emit_32(3272640496); -emit_32(1108893604); -emit_32(1104855014); -emit_32(3272384512); -emit_32(1108708478); -emit_32(1104855066); -emit_32(3272128528); -emit_32(1108458498); -emit_32(1104855014); -emit_32(3271872545); -emit_32(1108616544); -emit_32(1104855066); -emit_32(3271616496); -emit_32(1108674898); -emit_32(1104855014); -emit_32(3271163904); -emit_32(1108489064); -emit_32(1104855066); -emit_32(3270651937); -emit_32(1108208884); -emit_32(1104855014); -emit_32(3270139970); -emit_32(1108168330); -emit_32(1104855066); -emit_32(3269627871); -emit_32(1107919032); -emit_32(1104855014); -emit_32(3269115904); -emit_32(1107884900); -emit_32(1104855066); -emit_32(3268603937); -emit_32(1107737995); -emit_32(1104855014); -emit_32(3268091970); -emit_32(1107388714); -emit_32(1104855066); -emit_32(3267579911); -emit_32(1106305876); -emit_32(1104855014); -emit_32(3267067904); -emit_32(1105456634); -emit_32(1104855066); -emit_32(3266555911); -emit_32(1104695683); -emit_32(1104855014); -emit_32(3266043904); -emit_32(1103610459); -emit_32(1104855066); -emit_32(3265531911); -emit_32(1102562093); -emit_32(1104855014); -emit_32(3265019904); -emit_32(1101922409); -emit_32(1104855066); -emit_32(3264507911); -emit_32(1100403809); -emit_32(1104855066); -emit_32(3263995904); -emit_32(1100079589); -emit_32(1104855066); -emit_32(3263483911); -emit_32(1100150630); -emit_32(1104855066); -emit_32(3262775296); -emit_32(1100309489); -emit_32(1104855066); -emit_32(3261751309); -emit_32(1100247676); -emit_32(1104855066); -emit_32(3260727296); -emit_32(1100564555); -emit_32(1104855066); -emit_32(3259703309); -emit_32(1101442528); -emit_32(1104855066); -emit_32(3258679296); -emit_32(1101848484); -emit_32(1104855066); -emit_32(3257655309); -emit_32(1102017567); -emit_32(1104855014); -emit_32(3256631296); -emit_32(1102603144); -emit_32(1104855066); -emit_32(3255607309); -emit_32(1103556772); -emit_32(1104855014); -emit_32(3254386688); -emit_32(1103988313); -emit_32(1104855066); -emit_32(3252338714); -emit_32(1105183113); -emit_32(1104855014); -emit_32(3250290688); -emit_32(1106410471); -emit_32(1104855066); -emit_32(3248242714); -emit_32(1107817844); -emit_32(1104855014); -emit_32(3245998080); -emit_32(1108265874); -emit_32(1104855066); -emit_32(3241902132); -emit_32(1108848489); -emit_32(1104855014); -emit_32(3237609472); -emit_32(1109428929); -emit_32(1104855066); -emit_32(3229220864); -emit_32(1109814464); -emit_32(1104855014); -emit_32(0); -emit_32(1109989261); -emit_32(1104855066); -emit_32(1081737216); -emit_32(1110109952); -emit_32(1104855014); -emit_32(3279552512); -emit_32(1043753825); -emit_32(1102807040); -emit_32(3279296528); -emit_32(1066019523); -emit_32(1102807040); -emit_32(3279040545); -emit_32(1069754970); -emit_32(1102807040); -emit_32(3278784496); -emit_32(1076201867); -emit_32(1102807040); -emit_32(3278528512); -emit_32(1080094139); -emit_32(1102807040); -emit_32(3278272528); -emit_32(1082614937); -emit_32(1102807040); -emit_32(3278016545); -emit_32(1085915917); -emit_32(1102807040); -emit_32(3277760496); -emit_32(1088968951); -emit_32(1102807040); -emit_32(3277504512); -emit_32(1091412437); -emit_32(1102807040); -emit_32(3277248528); -emit_32(1093562951); -emit_32(1102807040); -emit_32(3276992545); -emit_32(1095461818); -emit_32(1102807040); -emit_32(3276736496); -emit_32(1097780324); -emit_32(1102807040); -emit_32(3276480512); -emit_32(1098541276); -emit_32(1102807040); -emit_32(3276224528); -emit_32(1099184996); -emit_32(1102807040); -emit_32(3275968545); -emit_32(1099512414); -emit_32(1102807040); -emit_32(3275712496); -emit_32(1101300079); -emit_32(1102807040); -emit_32(3275456512); -emit_32(1102630565); -emit_32(1102807040); -emit_32(3275200528); -emit_32(1103513990); -emit_32(1102807040); -emit_32(3274944545); -emit_32(1104603251); -emit_32(1102807040); -emit_32(3274688496); -emit_32(1105499154); -emit_32(1102807040); -emit_32(3274432512); -emit_32(1106400667); -emit_32(1102807040); -emit_32(3274176528); -emit_32(1107499889); -emit_32(1102807040); -emit_32(3273920545); -emit_32(1107983047); -emit_32(1102807040); -emit_32(3273664496); -emit_32(1108263620); -emit_32(1102807040); -emit_32(3273408512); -emit_32(1108637542); -emit_32(1102807040); -emit_32(3273152528); -emit_32(1108628367); -emit_32(1102807040); -emit_32(3272896545); -emit_32(1108868989); -emit_32(1102807040); -emit_32(3272640496); -emit_32(1109049213); -emit_32(1102807040); -emit_32(3272384512); -emit_32(1108849748); -emit_32(1102807040); -emit_32(3272128528); -emit_32(1108540811); -emit_32(1102807040); -emit_32(3271872545); -emit_32(1108655184); -emit_32(1102807040); -emit_32(3271616496); -emit_32(1108572425); -emit_32(1102807040); -emit_32(3271163904); -emit_32(1108411810); -emit_32(1102807040); -emit_32(3270651937); -emit_32(1108042344); -emit_32(1102807040); -emit_32(3270139970); -emit_32(1107971460); -emit_32(1102807040); -emit_32(3269627871); -emit_32(1107793412); -emit_32(1102807040); -emit_32(3269115904); -emit_32(1107689131); -emit_32(1102807040); -emit_32(3268603937); -emit_32(1107563643); -emit_32(1102807040); -emit_32(3268091970); -emit_32(1107010152); -emit_32(1102807040); -emit_32(3267579911); -emit_32(1106032669); -emit_32(1102807040); -emit_32(3267067904); -emit_32(1105136609); -emit_32(1102807040); -emit_32(3266555911); -emit_32(1104406695); -emit_32(1102807040); -emit_32(3266043904); -emit_32(1103385749); -emit_32(1102807040); -emit_32(3265531911); -emit_32(1102373034); -emit_32(1102807040); -emit_32(3265019904); -emit_32(1101728317); -emit_32(1102807040); -emit_32(3264507911); -emit_32(1100615464); -emit_32(1102807040); -emit_32(3263995904); -emit_32(1100840278); -emit_32(1102807040); -emit_32(3263483911); -emit_32(1100652636); -emit_32(1102807040); -emit_32(3262775296); -emit_32(1101193963); -emit_32(1102807040); -emit_32(3261751309); -emit_32(1101527463); -emit_32(1102807040); -emit_32(3260727296); -emit_32(1101300761); -emit_32(1102807040); -emit_32(3259703309); -emit_32(1101861382); -emit_32(1102807040); -emit_32(3258679296); -emit_32(1102090338); -emit_32(1102807040); -emit_32(3257655309); -emit_32(1102730966); -emit_32(1102807040); -emit_32(3256631296); -emit_32(1103554255); -emit_32(1102807040); -emit_32(3255607309); -emit_32(1104113408); -emit_32(1102807040); -emit_32(3254386688); -emit_32(1104786647); -emit_32(1102807040); -emit_32(3252338714); -emit_32(1106105913); -emit_32(1102807040); -emit_32(3250290688); -emit_32(1107509877); -emit_32(1102807040); -emit_32(3248242714); -emit_32(1108222175); -emit_32(1102807040); -emit_32(3245998080); -emit_32(1108925324); -emit_32(1102807040); -emit_32(3241902132); -emit_32(1109456873); -emit_32(1102807040); -emit_32(3237609472); -emit_32(1109851609); -emit_32(1102807040); -emit_32(3229220864); -emit_32(1110277358); -emit_32(1102807040); -emit_32(0); -emit_32(1110377130); -emit_32(1102807040); -emit_32(1081737216); -emit_32(1110619796); -emit_32(1102807040); -emit_32(3279552512); -emit_32(1041074638); -emit_32(1100759066); -emit_32(3279296528); -emit_32(1068712015); -emit_32(1100759066); -emit_32(3279040545); -emit_32(1079048248); -emit_32(1100759066); -emit_32(3278784496); -emit_32(1080674002); -emit_32(1100759066); -emit_32(3278528512); -emit_32(1084030494); -emit_32(1100759066); -emit_32(3278272528); -emit_32(1086394970); -emit_32(1100759066); -emit_32(3278016545); -emit_32(1090514279); -emit_32(1100759066); -emit_32(3277760496); -emit_32(1092005166); -emit_32(1100759066); -emit_32(3277504512); -emit_32(1092661805); -emit_32(1100759066); -emit_32(3277248528); -emit_32(1094882479); -emit_32(1100759066); -emit_32(3276992545); -emit_32(1096495818); -emit_32(1100759066); -emit_32(3276736496); -emit_32(1098656304); -emit_32(1100759066); -emit_32(3276480512); -emit_32(1098988860); -emit_32(1100759066); -emit_32(3276224528); -emit_32(1099485466); -emit_32(1100759066); -emit_32(3275968545); -emit_32(1100054109); -emit_32(1100759066); -emit_32(3275712496); -emit_32(1101363203); -emit_32(1100759066); -emit_32(3275456512); -emit_32(1102623015); -emit_32(1100759014); -emit_32(3275200528); -emit_32(1103260025); -emit_32(1100759066); -emit_32(3274944545); -emit_32(1104497764); -emit_32(1100759014); -emit_32(3274688496); -emit_32(1105320739); -emit_32(1100759066); -emit_32(3274432512); -emit_32(1106586055); -emit_32(1100759014); -emit_32(3274176528); -emit_32(1107523640); -emit_32(1100759066); -emit_32(3273920545); -emit_32(1108105783); -emit_32(1100759014); -emit_32(3273664496); -emit_32(1108678148); -emit_32(1100759066); -emit_32(3273408512); -emit_32(1109027062); -emit_32(1100759014); -emit_32(3273152528); -emit_32(1108942022); -emit_32(1100759066); -emit_32(3272896545); -emit_32(1108995290); -emit_32(1100759014); -emit_32(3272640496); -emit_32(1108955129); -emit_32(1100759066); -emit_32(3272384512); -emit_32(1108906895); -emit_32(1100759014); -emit_32(3272128528); -emit_32(1108765993); -emit_32(1100759014); -emit_32(3271872545); -emit_32(1108661948); -emit_32(1100759014); -emit_32(3271616496); -emit_32(1108494097); -emit_32(1100759014); -emit_32(3271163904); -emit_32(1108408166); -emit_32(1100759014); -emit_32(3270651937); -emit_32(1107959611); -emit_32(1100759014); -emit_32(3270139970); -emit_32(1107654974); -emit_32(1100759014); -emit_32(3269627871); -emit_32(1107500859); -emit_32(1100759014); -emit_32(3269115904); -emit_32(1107220916); -emit_32(1100759014); -emit_32(3268603937); -emit_32(1106950121); -emit_32(1100759014); -emit_32(3268091970); -emit_32(1106110684); -emit_32(1100759014); -emit_32(3267579911); -emit_32(1105572449); -emit_32(1100759014); -emit_32(3267067904); -emit_32(1105141642); -emit_32(1100759014); -emit_32(3266555911); -emit_32(1104163950); -emit_32(1100759014); -emit_32(3266043904); -emit_32(1103388685); -emit_32(1100759014); -emit_32(3265531911); -emit_32(1102762790); -emit_32(1100759014); -emit_32(3265019904); -emit_32(1101771361); -emit_32(1100759066); -emit_32(3264507911); -emit_32(1101188668); -emit_32(1100759066); -emit_32(3263995904); -emit_32(1101103314); -emit_32(1100759066); -emit_32(3263483911); -emit_32(1101520595); -emit_32(1100759066); -emit_32(3262775296); -emit_32(1102173438); -emit_32(1100759014); -emit_32(3261751309); -emit_32(1102239498); -emit_32(1100759014); -emit_32(3260727296); -emit_32(1102454928); -emit_32(1100759014); -emit_32(3259703309); -emit_32(1102538762); -emit_32(1100759014); -emit_32(3258679296); -emit_32(1102868120); -emit_32(1100759014); -emit_32(3257655309); -emit_32(1103304380); -emit_32(1100759014); -emit_32(3256631296); -emit_32(1103894256); -emit_32(1100759014); -emit_32(3255607309); -emit_32(1104606187); -emit_32(1100759014); -emit_32(3254386688); -emit_32(1105706615); -emit_32(1100759014); -emit_32(3252338714); -emit_32(1106778469); -emit_32(1100759014); -emit_32(3250290688); -emit_32(1108039618); -emit_32(1100759014); -emit_32(3248242714); -emit_32(1108668894); -emit_32(1100759014); -emit_32(3245998080); -emit_32(1109286558); -emit_32(1100759014); -emit_32(3241902132); -emit_32(1109804738); -emit_32(1100759014); -emit_32(3237609472); -emit_32(1110243829); -emit_32(1100759014); -emit_32(3229220864); -emit_32(1110734746); -emit_32(1100759014); -emit_32(0); -emit_32(1110902178); -emit_32(1100759014); -emit_32(1081737216); -emit_32(1111203643); -emit_32(1100759014); -emit_32(3279552512); -emit_32(1055720947); -emit_32(1098514432); -emit_32(3279296528); -emit_32(1074391480); -emit_32(1098514432); -emit_32(3279040545); -emit_32(1080839929); -emit_32(1098514432); -emit_32(3278784496); -emit_32(1084004468); -emit_32(1098514432); -emit_32(3278528512); -emit_32(1088331836); -emit_32(1098514432); -emit_32(3278272528); -emit_32(1090916618); -emit_32(1098514432); -emit_32(3278016545); -emit_32(1091793217); -emit_32(1098514432); -emit_32(3277760496); -emit_32(1092681623); -emit_32(1098514432); -emit_32(3277504512); -emit_32(1094343931); -emit_32(1098514432); -emit_32(3277248528); -emit_32(1096031404); -emit_32(1098514432); -emit_32(3276992545); -emit_32(1097722652); -emit_32(1098514432); -emit_32(3276736496); -emit_32(1098892129); -emit_32(1098514432); -emit_32(3276480512); -emit_32(1099445043); -emit_32(1098514432); -emit_32(3276224528); -emit_32(1099878158); -emit_32(1098514432); -emit_32(3275968545); -emit_32(1101192548); -emit_32(1098514432); -emit_32(3275712496); -emit_32(1102096839); -emit_32(1098514432); -emit_32(3275456512); -emit_32(1103322992); -emit_32(1098514432); -emit_32(3275200528); -emit_32(1103921152); -emit_32(1098514432); -emit_32(3274944545); -emit_32(1104725200); -emit_32(1098514432); -emit_32(3274688496); -emit_32(1106297907); -emit_32(1098514432); -emit_32(3274432512); -emit_32(1107190193); -emit_32(1098514432); -emit_32(3274176528); -emit_32(1108005172); -emit_32(1098514432); -emit_32(3273920545); -emit_32(1108650361); -emit_32(1098514432); -emit_32(3273664496); -emit_32(1108785837); -emit_32(1098514432); -emit_32(3273408512); -emit_32(1108769610); -emit_32(1098514432); -emit_32(3273152528); -emit_32(1108817661); -emit_32(1098514432); -emit_32(3272896545); -emit_32(1108831240); -emit_32(1098514432); -emit_32(3272640496); -emit_32(1108859630); -emit_32(1098514432); -emit_32(3272384512); -emit_32(1108733356); -emit_32(1098514432); -emit_32(3272128528); -emit_32(1108612271); -emit_32(1098514432); -emit_32(3271872545); -emit_32(1108465523); -emit_32(1098514432); -emit_32(3271616496); -emit_32(1108386120); -emit_32(1098514432); -emit_32(3271163904); -emit_32(1108193260); -emit_32(1098514432); -emit_32(3270651937); -emit_32(1107694767); -emit_32(1098514432); -emit_32(3270139970); -emit_32(1107326665); -emit_32(1098514432); -emit_32(3269627871); -emit_32(1106737994); -emit_32(1098514432); -emit_32(3269115904); -emit_32(1106158394); -emit_32(1098514432); -emit_32(3268603937); -emit_32(1106202906); -emit_32(1098514432); -emit_32(3268091970); -emit_32(1105578951); -emit_32(1098514432); -emit_32(3267579911); -emit_32(1105052566); -emit_32(1098514432); -emit_32(3267067904); -emit_32(1104895908); -emit_32(1098514432); -emit_32(3266555911); -emit_32(1104074873); -emit_32(1098514432); -emit_32(3266043904); -emit_32(1103133881); -emit_32(1098514432); -emit_32(3265531911); -emit_32(1102465938); -emit_32(1098514432); -emit_32(3265019904); -emit_32(1101262907); -emit_32(1098514432); -emit_32(3264507911); -emit_32(1101530399); -emit_32(1098514432); -emit_32(3263995904); -emit_32(1101685588); -emit_32(1098514432); -emit_32(3263483911); -emit_32(1102353111); -emit_32(1098514432); -emit_32(3262775296); -emit_32(1102607496); -emit_32(1098514432); -emit_32(3261751309); -emit_32(1102688970); -emit_32(1098514432); -emit_32(3260727296); -emit_32(1103199522); -emit_32(1098514432); -emit_32(3259703309); -emit_32(1103396916); -emit_32(1098514432); -emit_32(3258679296); -emit_32(1103692248); -emit_32(1098514432); -emit_32(3257655309); -emit_32(1104150266); -emit_32(1098514432); -emit_32(3256631296); -emit_32(1104605715); -emit_32(1098514432); -emit_32(3255607309); -emit_32(1105125337); -emit_32(1098514432); -emit_32(3254386688); -emit_32(1106191267); -emit_32(1098514432); -emit_32(3252338714); -emit_32(1107529407); -emit_32(1098514432); -emit_32(3250290688); -emit_32(1108420880); -emit_32(1098514432); -emit_32(3248242714); -emit_32(1108934001); -emit_32(1098514432); -emit_32(3245998080); -emit_32(1109548859); -emit_32(1098514432); -emit_32(3241902132); -emit_32(1109995631); -emit_32(1098514432); -emit_32(3237609472); -emit_32(1110790845); -emit_32(1098514432); -emit_32(3229220864); -emit_32(1111318856); -emit_32(1098514432); -emit_32(0); -emit_32(1111747671); -emit_32(1098514432); -emit_32(1081737216); -emit_32(1111812866); -emit_32(1098514432); -emit_32(3279552512); -emit_32(1066749584); -emit_32(1094418484); -emit_32(3279296528); -emit_32(1077908068); -emit_32(1094418484); -emit_32(3279040545); -emit_32(1082923764); -emit_32(1094418484); -emit_32(3278784496); -emit_32(1084680422); -emit_32(1094418484); -emit_32(3278528512); -emit_32(1088094187); -emit_32(1094418484); -emit_32(3278272528); -emit_32(1090882015); -emit_32(1094418484); -emit_32(3278016545); -emit_32(1091863944); -emit_32(1094418484); -emit_32(3277760496); -emit_32(1092512425); -emit_32(1094418484); -emit_32(3277504512); -emit_32(1093582035); -emit_32(1094418380); -emit_32(3277248528); -emit_32(1096483445); -emit_32(1094418380); -emit_32(3276992545); -emit_32(1098671194); -emit_32(1094418380); -emit_32(3276736496); -emit_32(1099029545); -emit_32(1094418380); -emit_32(3276480512); -emit_32(1099564319); -emit_32(1094418380); -emit_32(3276224528); -emit_32(1100538603); -emit_32(1094418380); -emit_32(3275968545); -emit_32(1101777758); -emit_32(1094418380); -emit_32(3275712496); -emit_32(1103112962); -emit_32(1094418380); -emit_32(3275456512); -emit_32(1104081112); -emit_32(1094418380); -emit_32(3275200528); -emit_32(1104685826); -emit_32(1094418380); -emit_32(3274944545); -emit_32(1105332273); -emit_32(1094418380); -emit_32(3274688496); -emit_32(1107088428); -emit_32(1094418380); -emit_32(3274432512); -emit_32(1107461145); -emit_32(1094418380); -emit_32(3274176528); -emit_32(1108070262); -emit_32(1094418380); -emit_32(3273920545); -emit_32(1108560734); -emit_32(1094418380); -emit_32(3273664496); -emit_32(1108646822); -emit_32(1094418380); -emit_32(3273408512); -emit_32(1108781538); -emit_32(1094418380); -emit_32(3273152528); -emit_32(1108714507); -emit_32(1094418380); -emit_32(3272896545); -emit_32(1108628105); -emit_32(1094418380); -emit_32(3272640496); -emit_32(1108772101); -emit_32(1094418380); -emit_32(3272384512); -emit_32(1108535384); -emit_32(1094418380); -emit_32(3272128528); -emit_32(1108471736); -emit_32(1094418380); -emit_32(3271872545); -emit_32(1108149718); -emit_32(1094418380); -emit_32(3271616496); -emit_32(1108005775); -emit_32(1094418380); -emit_32(3271163904); -emit_32(1107845369); -emit_32(1094418380); -emit_32(3270651937); -emit_32(1107488748); -emit_32(1094418380); -emit_32(3270139970); -emit_32(1107065831); -emit_32(1094418380); -emit_32(3269627871); -emit_32(1106640477); -emit_32(1094418380); -emit_32(3269115904); -emit_32(1106331986); -emit_32(1094418380); -emit_32(3268603937); -emit_32(1106202801); -emit_32(1094418380); -emit_32(3268091970); -emit_32(1105489140); -emit_32(1094418380); -emit_32(3267579911); -emit_32(1104258059); -emit_32(1094418380); -emit_32(3267067904); -emit_32(1104173177); -emit_32(1094418380); -emit_32(3266555911); -emit_32(1103722237); -emit_32(1094418380); -emit_32(3266043904); -emit_32(1102993687); -emit_32(1094418380); -emit_32(3265531911); -emit_32(1102417861); -emit_32(1094418380); -emit_32(3265019904); -emit_32(1102043519); -emit_32(1094418380); -emit_32(3264507911); -emit_32(1102232840); -emit_32(1094418380); -emit_32(3263995904); -emit_32(1102313370); -emit_32(1094418380); -emit_32(3263483911); -emit_32(1102548199); -emit_32(1094418380); -emit_32(3262775296); -emit_32(1102923222); -emit_32(1094418380); -emit_32(3261751309); -emit_32(1103187621); -emit_32(1094418380); -emit_32(3260727296); -emit_32(1103562329); -emit_32(1094418380); -emit_32(3259703309); -emit_32(1103808220); -emit_32(1094418380); -emit_32(3258679296); -emit_32(1104024646); -emit_32(1094418380); -emit_32(3257655309); -emit_32(1104470344); -emit_32(1094418380); -emit_32(3256631296); -emit_32(1104938690); -emit_32(1094418380); -emit_32(3255607309); -emit_32(1105867624); -emit_32(1094418380); -emit_32(3254386688); -emit_32(1107251534); -emit_32(1094418380); -emit_32(3252338714); -emit_32(1107872029); -emit_32(1094418380); -emit_32(3250290688); -emit_32(1108547574); -emit_32(1094418380); -emit_32(3248242714); -emit_32(1109195253); -emit_32(1094418380); -emit_32(3245998080); -emit_32(1109741247); -emit_32(1094418380); -emit_32(3241902132); -emit_32(1110512291); -emit_32(1094418380); -emit_32(3237609472); -emit_32(1111292851); -emit_32(1094418380); -emit_32(3229220864); -emit_32(1111810349); -emit_32(1094418380); -emit_32(0); -emit_32(1112081590); -emit_32(1094418380); -emit_32(1081737216); -emit_32(1112309314); -emit_32(1094418380); -emit_32(3279552512); -emit_32(1069773845); -emit_32(1090125824); -emit_32(3279296528); -emit_32(1077819820); -emit_32(1090125824); -emit_32(3279040545); -emit_32(1081179122); -emit_32(1090125824); -emit_32(3278784496); -emit_32(1083831117); -emit_32(1090125824); -emit_32(3278528512); -emit_32(1086208512); -emit_32(1090125824); -emit_32(3278272528); -emit_32(1089372988); -emit_32(1090125824); -emit_32(3278016545); -emit_32(1091534376); -emit_32(1090125824); -emit_32(3277760496); -emit_32(1091959238); -emit_32(1090125824); -emit_32(3277504512); -emit_32(1093016538); -emit_32(1090125824); -emit_32(3277248528); -emit_32(1095828190); -emit_32(1090125824); -emit_32(3276992545); -emit_32(1098471021); -emit_32(1090125824); -emit_32(3276736496); -emit_32(1099512257); -emit_32(1090125824); -emit_32(3276480512); -emit_32(1100641206); -emit_32(1090125824); -emit_32(3276224528); -emit_32(1101920207); -emit_32(1090125824); -emit_32(3275968545); -emit_32(1102579027); -emit_32(1090125824); -emit_32(3275712496); -emit_32(1103724596); -emit_32(1090125824); -emit_32(3275456512); -emit_32(1104932294); -emit_32(1090125824); -emit_32(3275200528); -emit_32(1105540415); -emit_32(1090125824); -emit_32(3274944545); -emit_32(1105706877); -emit_32(1090125824); -emit_32(3274688496); -emit_32(1106838815); -emit_32(1090125824); -emit_32(3274432512); -emit_32(1107416056); -emit_32(1090125824); -emit_32(3274176528); -emit_32(1107934210); -emit_32(1090125824); -emit_32(3273920545); -emit_32(1108321868); -emit_32(1090125824); -emit_32(3273664496); -emit_32(1108477949); -emit_32(1090125824); -emit_32(3273408512); -emit_32(1108606950); -emit_32(1090125824); -emit_32(3273152528); -emit_32(1108594314); -emit_32(1090125824); -emit_32(3272896545); -emit_32(1108861596); -emit_32(1090125824); -emit_32(3272640496); -emit_32(1108850508); -emit_32(1090125824); -emit_32(3272384512); -emit_32(1108746804); -emit_32(1090125824); -emit_32(3272128528); -emit_32(1108418180); -emit_32(1090125824); -emit_32(3271872545); -emit_32(1108132600); -emit_32(1090125824); -emit_32(3271616496); -emit_32(1107751233); -emit_32(1090125824); -emit_32(3271163904); -emit_32(1107845920); -emit_32(1090125824); -emit_32(3270651937); -emit_32(1107711440); -emit_32(1090125824); -emit_32(3270139970); -emit_32(1107541911); -emit_32(1090125824); -emit_32(3269627871); -emit_32(1107305510); -emit_32(1090125824); -emit_32(3269115904); -emit_32(1107014346); -emit_32(1090125824); -emit_32(3268603937); -emit_32(1106519471); -emit_32(1090125824); -emit_32(3268091970); -emit_32(1105586867); -emit_32(1090125824); -emit_32(3267579911); -emit_32(1104817160); -emit_32(1090125824); -emit_32(3267067904); -emit_32(1104215645); -emit_32(1090125824); -emit_32(3266555911); -emit_32(1103400324); -emit_32(1090125824); -emit_32(3266043904); -emit_32(1103065776); -emit_32(1090125824); -emit_32(3265531911); -emit_32(1102978377); -emit_32(1090125824); -emit_32(3265019904); -emit_32(1102293919); -emit_32(1090125824); -emit_32(3264507911); -emit_32(1102336229); -emit_32(1090125824); -emit_32(3263995904); -emit_32(1102542117); -emit_32(1090125824); -emit_32(3263483911); -emit_32(1102806306); -emit_32(1090125824); -emit_32(3262775296); -emit_32(1103245240); -emit_32(1090125824); -emit_32(3261751309); -emit_32(1103200151); -emit_32(1090125824); -emit_32(3260727296); -emit_32(1103241727); -emit_32(1090125824); -emit_32(3259703309); -emit_32(1103758465); -emit_32(1090125824); -emit_32(3258679296); -emit_32(1104333714); -emit_32(1090125824); -emit_32(3257655309); -emit_32(1104589095); -emit_32(1090125824); -emit_32(3256631296); -emit_32(1104963961); -emit_32(1090125824); -emit_32(3255607309); -emit_32(1106480516); -emit_32(1090125824); -emit_32(3254386688); -emit_32(1107703811); -emit_32(1090125824); -emit_32(3252338714); -emit_32(1108381768); -emit_32(1090125824); -emit_32(3250290688); -emit_32(1108898034); -emit_32(1090125824); -emit_32(3248242714); -emit_32(1109345462); -emit_32(1090125824); -emit_32(3245998080); -emit_32(1109947738); -emit_32(1090125824); -emit_32(3241902132); -emit_32(1110798578); -emit_32(1090125824); -emit_32(3237609472); -emit_32(1111401483); -emit_32(1090125824); -emit_32(3229220864); -emit_32(1112005149); -emit_32(1090125824); -emit_32(0); -emit_32(1112489827); -emit_32(1090125824); -emit_32(1081737216); -emit_32(1112605380); -emit_32(1090125824); -emit_32(3279552512); -emit_32(1041185636); -emit_32(1081737216); -emit_32(3279296528); -emit_32(1071476480); -emit_32(1081737216); -emit_32(3279040545); -emit_32(1076263523); -emit_32(1081737216); -emit_32(3278784496); -emit_32(1082158660); -emit_32(1081737216); -emit_32(3278528512); -emit_32(1084513929); -emit_32(1081737216); -emit_32(3278272528); -emit_32(1087785717); -emit_32(1081737216); -emit_32(3278016545); -emit_32(1090972056); -emit_32(1081737216); -emit_32(3277760496); -emit_32(1092442569); -emit_32(1081737216); -emit_32(3277504512); -emit_32(1094046974); -emit_32(1081737216); -emit_32(3277248528); -emit_32(1097043280); -emit_32(1081737216); -emit_32(3276992545); -emit_32(1098999818); -emit_32(1081737216); -emit_32(3276736496); -emit_32(1100434742); -emit_32(1081737216); -emit_32(3276480512); -emit_32(1101659007); -emit_32(1081737216); -emit_32(3276224528); -emit_32(1102608545); -emit_32(1081737216); -emit_32(3275968545); -emit_32(1103417836); -emit_32(1081737216); -emit_32(3275712496); -emit_32(1104053168); -emit_32(1081737216); -emit_32(3275456512); -emit_32(1104973450); -emit_32(1081737216); -emit_32(3275200528); -emit_32(1105837477); -emit_32(1081737216); -emit_32(3274944545); -emit_32(1106081743); -emit_32(1081737216); -emit_32(3274688496); -emit_32(1106636492); -emit_32(1081737216); -emit_32(3274432512); -emit_32(1107002917); -emit_32(1081737216); -emit_32(3274176528); -emit_32(1107580184); -emit_32(1081737216); -emit_32(3273920545); -emit_32(1107983729); -emit_32(1081737216); -emit_32(3273664496); -emit_32(1108213550); -emit_32(1081737216); -emit_32(3273408512); -emit_32(1108715137); -emit_32(1081737216); -emit_32(3273152528); -emit_32(1108987871); -emit_32(1081737216); -emit_32(3272896545); -emit_32(1109130582); -emit_32(1081737216); -emit_32(3272640496); -emit_32(1109075454); -emit_32(1081737216); -emit_32(3272384512); -emit_32(1108764813); -emit_32(1081737216); -emit_32(3272128528); -emit_32(1108391939); -emit_32(1081737216); -emit_32(3271872545); -emit_32(1108080224); -emit_32(1081737216); -emit_32(3271616496); -emit_32(1107854728); -emit_32(1081737216); -emit_32(3271163904); -emit_32(1107912740); -emit_32(1081737216); -emit_32(3270651937); -emit_32(1107731730); -emit_32(1081737216); -emit_32(3270139970); -emit_32(1107480989); -emit_32(1081737216); -emit_32(3269627871); -emit_32(1107400013); -emit_32(1081737216); -emit_32(3269115904); -emit_32(1106814855); -emit_32(1081737216); -emit_32(3268603937); -emit_32(1106747641); -emit_32(1081737216); -emit_32(3268091970); -emit_32(1106153570); -emit_32(1081737216); -emit_32(3267579911); -emit_32(1105450553); -emit_32(1081737216); -emit_32(3267067904); -emit_32(1105015289); -emit_32(1081737216); -emit_32(3266555911); -emit_32(1103926185); -emit_32(1081737216); -emit_32(3266043904); -emit_32(1103220965); -emit_32(1081737216); -emit_32(3265531911); -emit_32(1102714556); -emit_32(1081737216); -emit_32(3265019904); -emit_32(1102293972); -emit_32(1081737216); -emit_32(3264507911); -emit_32(1102696206); -emit_32(1081737216); -emit_32(3263995904); -emit_32(1102841119); -emit_32(1081737216); -emit_32(3263483911); -emit_32(1102940104); -emit_32(1081737216); -emit_32(3262775296); -emit_32(1103457681); -emit_32(1081737216); -emit_32(3261751309); -emit_32(1103885553); -emit_32(1081737216); -emit_32(3260727296); -emit_32(1104135953); -emit_32(1081737216); -emit_32(3259703309); -emit_32(1104254180); -emit_32(1081737216); -emit_32(3258679296); -emit_32(1104598218); -emit_32(1081737216); -emit_32(3257655309); -emit_32(1105055869); -emit_32(1081737216); -emit_32(3256631296); -emit_32(1105830661); -emit_32(1081737216); -emit_32(3255607309); -emit_32(1107186156); -emit_32(1081737216); -emit_32(3254386688); -emit_32(1107890222); -emit_32(1081737216); -emit_32(3252338714); -emit_32(1108342578); -emit_32(1081737216); -emit_32(3250290688); -emit_32(1108968106); -emit_32(1081737216); -emit_32(3248242714); -emit_32(1109363314); -emit_32(1081737216); -emit_32(3245998080); -emit_32(1110217982); -emit_32(1081737216); -emit_32(3241902132); -emit_32(1110836747); -emit_32(1081737216); -emit_32(3237609472); -emit_32(1111340011); -emit_32(1081737216); -emit_32(3229220864); -emit_32(1111989472); -emit_32(1081737216); -emit_32(0); -emit_32(1112547577); -emit_32(1081737216); -emit_32(1081737216); -emit_32(1112701298); -emit_32(1081737216); -emit_start(_ZTIN16btCollisionWorld17RayResultCallbackE) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTSN16btCollisionWorld17RayResultCallbackE); -emit_start(_ZTSN16btCollisionWorld17RayResultCallbackE) -emit_string('N16btCollisionWorld17RayResultCallbackE\x00'); -emit_start(_ZTVN16btCollisionWorld24ClosestRayResultCallbackE) -emit_32(0); -emit_32(_ZTIN16btCollisionWorld24ClosestRayResultCallbackE); -emit_32(_ZN16btCollisionWorld24ClosestRayResultCallbackD1Ev__index__); -emit_32(_ZN16btCollisionWorld24ClosestRayResultCallbackD0Ev__index__); -emit_32(_ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy__index__); -emit_32(_ZN16btCollisionWorld24ClosestRayResultCallback15addSingleResultERNS_14LocalRayResultEb__index__); -emit_start(_ZTIN16btCollisionWorld24ClosestRayResultCallbackE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN16btCollisionWorld24ClosestRayResultCallbackE); -emit_32(_ZTIN16btCollisionWorld17RayResultCallbackE); -emit_start(_ZTSN16btCollisionWorld24ClosestRayResultCallbackE) -emit_string('N16btCollisionWorld24ClosestRayResultCallbackE\x00'); -emit_start(_ZTI13btMotionState) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS13btMotionState); -emit_start(_ZTS13btMotionState) -emit_string('13btMotionState\x00'); -emit_start(_ZTV20btDefaultMotionState) -emit_32(0); -emit_32(_ZTI20btDefaultMotionState); -emit_32(_ZN20btDefaultMotionStateD1Ev__index__); -emit_32(_ZN20btDefaultMotionStateD0Ev__index__); -emit_32(_ZNK20btDefaultMotionState17getWorldTransformER11btTransform__index__); -emit_32(_ZN20btDefaultMotionState17setWorldTransformERK11btTransform__index__); -emit_start(_ZTI20btDefaultMotionState) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS20btDefaultMotionState); -emit_32(_ZTI13btMotionState); -emit_start(_ZTS20btDefaultMotionState) -emit_string('20btDefaultMotionState\x00'); -emit_start(_ZTI17btTypedConstraint) -emit_32(_ZTVN10__cxxabiv121__vmi_class_type_infoE+8); -emit_32(_ZTS17btTypedConstraint); -emit_32(0); -emit_32(1); -emit_32(_ZTI13btTypedObject); -emit_32(1026); -emit_start(_ZTS17btTypedConstraint) -emit_string('17btTypedConstraint\x00'); -emit_start(_ZTI13btTypedObject) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS13btTypedObject); -emit_start(_ZTS13btTypedObject) -emit_string('13btTypedObject\x00'); -emit_start(_ZTV7RagDoll) -emit_32(0); -emit_32(_ZTI7RagDoll); -emit_32(_ZN7RagDollD1Ev__index__); -emit_32(_ZN7RagDollD0Ev__index__); -emit_start(_ZTI7RagDoll) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS7RagDoll); -emit_start(_ZTS7RagDoll) -emit_string('7RagDoll\x00'); -emit_start(_ZTV13BenchmarkDemo) -emit_32(0); -emit_32(_ZTI13BenchmarkDemo); -emit_32(_ZN15DemoApplication6myinitEv__index__); -emit_32(_ZN15DemoApplication16getDynamicsWorldEv__index__); -emit_32(_ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape__index__); -emit_32(_ZN13BenchmarkDemoD1Ev__index__); -emit_32(_ZN13BenchmarkDemoD0Ev__index__); -emit_32(_ZN13BenchmarkDemo20clientMoveAndDisplayEv__index__); -emit_32(_ZN13BenchmarkDemo15displayCallbackEv__index__); -emit_start(_ZTI13BenchmarkDemo) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS13BenchmarkDemo); -emit_32(_ZTI15DemoApplication); -emit_start(_ZTS13BenchmarkDemo) -emit_string('13BenchmarkDemo\x00'); -emit_start(_ZTI15DemoApplication) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS15DemoApplication); -emit_start(_ZTS15DemoApplication) -emit_string('15DemoApplication\x00'); -emit_start(_2E_str3) -emit_string('rayResult.m_hitFraction <= m_closestHitFraction\x00'); -emit_start(_2E_str4) -emit_string('../../../../src/BulletCollision/CollisionDispatch/btCollisionWorld.h\x00'); -emit_start(_2E_str5) -emit_string('(!shape || shape->getShapeType() != INVALID_SHAPE_PROXYTYPE)\x00'); -emit_start(_2E_str6) -emit_string('../../../../Demos/BenchmarkDemo/BenchmarkDemo.cpp\x00'); -emit_start(_2E_str7) -emit_string('%d rays in %d ms %d %d %f\x0a\x00'); -emit_start(_ZL7TaruVtx) -emit_32(1066080005); -emit_32(3221161467); -emit_32(0); -emit_32(1061467093); -emit_32(3221161467); -emit_32(3208950741); -emit_32(1067773497); -emit_32(873485028); -emit_32(3215257145); -emit_32(1072250665); -emit_32(877448406); -emit_32(0); -emit_32(0); -emit_32(3221161467); -emit_32(3213563653); -emit_32(0); -emit_32(0); -emit_32(3219734313); -emit_32(0); -emit_32(3221161467); -emit_32(3213563653); -emit_32(3208950741); -emit_32(3221161467); -emit_32(3208950741); -emit_32(3215257145); -emit_32(873485028); -emit_32(3215257145); -emit_32(0); -emit_32(0); -emit_32(3219734313); -emit_32(3213563653); -emit_32(3221161467); -emit_32(876839787); -emit_32(3219734313); -emit_32(877448406); -emit_32(875236717); -emit_32(3208950741); -emit_32(3221161467); -emit_32(1061467109); -emit_32(3215257145); -emit_32(881107813); -emit_32(1067773497); -emit_32(874053818); -emit_32(3221161467); -emit_32(1066080005); -emit_32(880822819); -emit_32(881928664); -emit_32(1072250665); -emit_32(1061467093); -emit_32(3221161467); -emit_32(1061467093); -emit_32(1067773497); -emit_32(881107813); -emit_32(1067773497); -emit_32(1061467093); -emit_32(1073677819); -emit_32(3208950741); -emit_32(1066080005); -emit_32(1073677819); -emit_32(0); -emit_32(0); -emit_32(1073677819); -emit_32(3213563653); -emit_32(3208950741); -emit_32(1073677819); -emit_32(3208950741); -emit_32(0); -emit_32(1073677819); -emit_32(3213563653); -emit_32(3213563653); -emit_32(1073677819); -emit_32(0); -emit_32(3208950741); -emit_32(1073677819); -emit_32(1061467093); -emit_32(874053818); -emit_32(1073677819); -emit_32(1066080005); -emit_32(1061467093); -emit_32(1073677819); -emit_32(1061467093); -emit_32(874053818); -emit_32(3221161467); -emit_32(1066080005); -emit_32(3208950741); -emit_32(3221161467); -emit_32(1061467109); -emit_32(3213563653); -emit_32(3221161467); -emit_32(876839787); -emit_32(3208950741); -emit_32(3221161467); -emit_32(3208950741); -emit_32(0); -emit_32(3221161467); -emit_32(3213563653); -emit_32(1061467093); -emit_32(3221161467); -emit_32(3208950741); -emit_32(1066080005); -emit_32(3221161467); -emit_32(0); -emit_32(1061467093); -emit_32(3221161467); -emit_32(1061467093); -emit_32(1061467093); -emit_32(1073677819); -emit_32(3208950741); -emit_32(0); -emit_32(1073677819); -emit_32(3213563653); -emit_32(3208950741); -emit_32(1073677819); -emit_32(3208950741); -emit_32(3213563653); -emit_32(1073677819); -emit_32(0); -emit_32(3208950741); -emit_32(1073677819); -emit_32(1061467093); -emit_32(874053818); -emit_32(1073677819); -emit_32(1066080005); -emit_32(1061467093); -emit_32(1073677819); -emit_32(1061467093); -emit_32(1066080005); -emit_32(1073677819); -emit_32(0); -emit_start(LandscapeVtx) -emit_32(Landscape01Vtx); -emit_32(Landscape02Vtx); -emit_32(Landscape03Vtx); -emit_32(Landscape04Vtx); -emit_32(Landscape05Vtx); -emit_32(Landscape06Vtx); -emit_32(Landscape07Vtx); -emit_32(Landscape08Vtx); -emit_start(Landscape01Vtx) -emit_32(1081737258); -emit_32(1055384563); -emit_32(1131812880); -emit_32(1081737258); -emit_32(1069740626); -emit_32(1132068864); -emit_32(1090125824); -emit_32(1066883130); -emit_32(1131812880); -emit_32(1090125845); -emit_32(1071685776); -emit_32(1132068864); -emit_32(1094418484); -emit_32(1074283351); -emit_32(1131812880); -emit_32(1094418484); -emit_32(1076361335); -emit_32(1132068864); -emit_32(1098514432); -emit_32(1077997197); -emit_32(1131812880); -emit_32(1098514432); -emit_32(1078893017); -emit_32(1132068864); -emit_32(1100759066); -emit_32(1082022680); -emit_32(1131812880); -emit_32(1100759066); -emit_32(1080588228); -emit_32(1132068864); -emit_32(1102807040); -emit_32(1082313744); -emit_32(1131812880); -emit_32(1102807040); -emit_32(1082635783); -emit_32(1132068864); -emit_32(1104855066); -emit_32(1085939489); -emit_32(1131812880); -emit_32(1104855066); -emit_32(1086186513); -emit_32(1132068864); -emit_32(1106903040); -emit_32(1088145253); -emit_32(1131812880); -emit_32(1106903040); -emit_32(1089137122); -emit_32(1132068864); -emit_32(1108123661); -emit_32(1090785431); -emit_32(1131812880); -emit_32(1108123661); -emit_32(1091174473); -emit_32(1132068864); -emit_32(1109147648); -emit_32(1090923801); -emit_32(1131812880); -emit_32(1109147648); -emit_32(1091237136); -emit_32(1132068864); -emit_32(1110171661); -emit_32(1088312773); -emit_32(1131812880); -emit_32(1110171661); -emit_32(1089928629); -emit_32(1132068864); -emit_32(1111195648); -emit_32(1083403361); -emit_32(1131812880); -emit_32(1111195648); -emit_32(1086579729); -emit_32(1132068864); -emit_32(1112219661); -emit_32(1080632646); -emit_32(1131812880); -emit_32(1112219661); -emit_32(1084500256); -emit_32(1132068864); -emit_32(1113243648); -emit_32(1082171222); -emit_32(1131812880); -emit_32(1113243648); -emit_32(1085286142); -emit_32(1132068864); -emit_32(1114267661); -emit_32(1082256177); -emit_32(1131812880); -emit_32(1114267661); -emit_32(1084896932); -emit_32(1132068864); -emit_32(1115291648); -emit_32(1082088279); -emit_32(1131812880); -emit_32(1115291648); -emit_32(1085314391); -emit_32(1132068864); -emit_32(1116000263); -emit_32(1085158761); -emit_32(1131812880); -emit_32(1116000263); -emit_32(1088003066); -emit_32(1132068864); -emit_32(1116512256); -emit_32(1086405959); -emit_32(1131812880); -emit_32(1116512256); -emit_32(1089298141); -emit_32(1132068864); -emit_32(1117024263); -emit_32(1087104604); -emit_32(1131812880); -emit_32(1117024263); -emit_32(1090687347); -emit_32(1132068864); -emit_32(1117536256); -emit_32(1087885311); -emit_32(1131812880); -emit_32(1117536256); -emit_32(1091275053); -emit_32(1132068864); -emit_32(1118048263); -emit_32(1089217925); -emit_32(1131812880); -emit_32(1118048263); -emit_32(1092734157); -emit_32(1132068864); -emit_32(1118560256); -emit_32(1091544359); -emit_32(1131812880); -emit_32(1118560256); -emit_32(1093101054); -emit_32(1132068864); -emit_32(1119072263); -emit_32(1093751695); -emit_32(1131812880); -emit_32(1119072263); -emit_32(1094336171); -emit_32(1132068864); -emit_32(1119584256); -emit_32(1095057906); -emit_32(1131812880); -emit_32(1119584256); -emit_32(1095906414); -emit_32(1132068864); -emit_32(1120096263); -emit_32(1096387500); -emit_32(1131812880); -emit_32(1120096263); -emit_32(1097119721); -emit_32(1132068864); -emit_32(1120608322); -emit_32(1098446484); -emit_32(1131812880); -emit_32(1120608322); -emit_32(1099405040); -emit_32(1132068864); -emit_32(1121120289); -emit_32(1099429000); -emit_32(1131812880); -emit_32(1121120289); -emit_32(1100058250); -emit_32(1132068864); -emit_32(1121632256); -emit_32(1099896455); -emit_32(1131812880); -emit_32(1121632256); -emit_32(1100747951); -emit_32(1132068864); -emit_32(1122144223); -emit_32(1100443235); -emit_32(1131812880); -emit_32(1122144223); -emit_32(1101491654); -emit_32(1132068864); -emit_32(1122656322); -emit_32(1100473854); -emit_32(1131812880); -emit_32(1122656322); -emit_32(1101038145); -emit_32(1132068864); -emit_32(1123168289); -emit_32(1100215956); -emit_32(1131812880); -emit_32(1123168289); -emit_32(1101301390); -emit_32(1132068864); -emit_32(1123680256); -emit_32(1101082604); -emit_32(1131812880); -emit_32(1123680256); -emit_32(1101605949); -emit_32(1132068864); -emit_32(1124132848); -emit_32(1101268622); -emit_32(1131812880); -emit_32(1124132848); -emit_32(1102212026); -emit_32(1132068864); -emit_32(1124388897); -emit_32(1101640237); -emit_32(1131812880); -emit_32(1124388897); -emit_32(1102532523); -emit_32(1132068864); -emit_32(1124644880); -emit_32(1102204895); -emit_32(1131812880); -emit_32(1124644880); -emit_32(1103346847); -emit_32(1132068864); -emit_32(1124900864); -emit_32(1102705643); -emit_32(1131812880); -emit_32(1124900864); -emit_32(1103273709); -emit_32(1132068864); -emit_32(1125156848); -emit_32(1102314000); -emit_32(1131812880); -emit_32(1125156848); -emit_32(1103265949); -emit_32(1132068864); -emit_32(1125412897); -emit_32(1102386142); -emit_32(1131812880); -emit_32(1125412897); -emit_32(1103012351); -emit_32(1132068864); -emit_32(1125668880); -emit_32(1102880021); -emit_32(1131812880); -emit_32(1125668880); -emit_32(1103173727); -emit_32(1132068864); -emit_32(1125924864); -emit_32(1103727428); -emit_32(1131812880); -emit_32(1125924864); -emit_32(1103580732); -emit_32(1132068864); -emit_32(1126180848); -emit_32(1103758413); -emit_32(1131812880); -emit_32(1126180848); -emit_32(1103482113); -emit_32(1132068864); -emit_32(1126436897); -emit_32(1104015471); -emit_32(1131812880); -emit_32(1126436897); -emit_32(1103163241); -emit_32(1132068864); -emit_32(1126692880); -emit_32(1103273342); -emit_32(1131812880); -emit_32(1126692880); -emit_32(1103421348); -emit_32(1132068864); -emit_32(1126948864); -emit_32(1103651353); -emit_32(1131812880); -emit_32(1126948864); -emit_32(1103608938); -emit_32(1132068864); -emit_32(1127204848); -emit_32(1103631850); -emit_32(1131812880); -emit_32(1127204848); -emit_32(1103515039); -emit_32(1132068864); -emit_32(1127460897); -emit_32(1102883324); -emit_32(1131812880); -emit_32(1127460897); -emit_32(1102412041); -emit_32(1132068864); -emit_32(1127716880); -emit_32(1101507068); -emit_32(1131812880); -emit_32(1127716880); -emit_32(1101349991); -emit_32(1132068864); -emit_32(1127972864); -emit_32(1100875563); -emit_32(1131812880); -emit_32(1127972864); -emit_32(1101021210); -emit_32(1132068864); -emit_32(1128228848); -emit_32(1101251582); -emit_32(1131812880); -emit_32(1128228848); -emit_32(1101209063); -emit_32(1132068864); -emit_32(1128484897); -emit_32(1100876402); -emit_32(1131812880); -emit_32(1128484897); -emit_32(1101824944); -emit_32(1132068864); -emit_32(1128740880); -emit_32(1100846465); -emit_32(1131812880); -emit_32(1128740880); -emit_32(1101829662); -emit_32(1132068864); -emit_32(1128996864); -emit_32(1101043178); -emit_32(1131812880); -emit_32(1128996864); -emit_32(1101204029); -emit_32(1132068864); -emit_32(1129252848); -emit_32(1100934912); -emit_32(1131812880); -emit_32(1129252848); -emit_32(1100678640); -emit_32(1132068864); -emit_32(1129508897); -emit_32(1100716494); -emit_32(1131812880); -emit_32(1129508897); -emit_32(1100794770); -emit_32(1132068864); -emit_32(1129764880); -emit_32(1100633499); -emit_32(1131812880); -emit_32(1129764880); -emit_32(1100531158); -emit_32(1132068864); -emit_32(1130020864); -emit_32(1100357409); -emit_32(1131812880); -emit_32(1130020864); -emit_32(1100965793); -emit_32(1132068864); -emit_32(1130276848); -emit_32(1100382418); -emit_32(1131812880); -emit_32(1130276848); -emit_32(1100936852); -emit_32(1132068864); -emit_32(1130532897); -emit_32(1100142189); -emit_32(1131812880); -emit_32(1130532897); -emit_32(1100410834); -emit_32(1132068864); -emit_32(1130788880); -emit_32(1099421503); -emit_32(1131812880); -emit_32(1130788880); -emit_32(1099690462); -emit_32(1132068864); -emit_32(1131044864); -emit_32(1098506358); -emit_32(1131812880); -emit_32(1131044864); -emit_32(1098996725); -emit_32(1132068864); -emit_32(1131300848); -emit_32(1098434740); -emit_32(1131812880); -emit_32(1131300848); -emit_32(1098247465); -emit_32(1132068864); -emit_32(1131556897); -emit_32(1098117861); -emit_32(1131812880); -emit_32(1131556897); -emit_32(1097891158); -emit_32(1132068864); -emit_32(1131812880); -emit_32(1096949432); -emit_32(1131812880); -emit_32(1131812880); -emit_32(1097085433); -emit_32(1132068864); -emit_32(1132068864); -emit_32(1097236532); -emit_32(1131812880); -emit_32(1132068864); -emit_32(1097193960); -emit_32(1132068864); -emit_32(1081737258); -emit_32(1074643096); -emit_32(1131556897); -emit_32(1090125866); -emit_32(1074941647); -emit_32(1131556897); -emit_32(1094418484); -emit_32(1081645067); -emit_32(1131556897); -emit_32(1098514432); -emit_32(1079576814); -emit_32(1131556897); -emit_32(1100759066); -emit_32(1080655044); -emit_32(1131556897); -emit_32(1102807040); -emit_32(1082425543); -emit_32(1131556897); -emit_32(1104855066); -emit_32(1085781658); -emit_32(1131556897); -emit_32(1106903040); -emit_32(1087711834); -emit_32(1131556897); -emit_32(1108123661); -emit_32(1089079786); -emit_32(1131556897); -emit_32(1109147648); -emit_32(1089855732); -emit_32(1131556897); -emit_32(1110171661); -emit_32(1088401776); -emit_32(1131556897); -emit_32(1111195648); -emit_32(1084013213); -emit_32(1131556897); -emit_32(1112219661); -emit_32(1076464473); -emit_32(1131556897); -emit_32(1113243648); -emit_32(1076936835); -emit_32(1131556897); -emit_32(1114267661); -emit_32(1078376488); -emit_32(1131556897); -emit_32(1115291648); -emit_32(1083428884); -emit_32(1131556897); -emit_32(1116000263); -emit_32(1084998686); -emit_32(1131556897); -emit_32(1116512256); -emit_32(1085103334); -emit_32(1131556897); -emit_32(1117024263); -emit_32(1085114239); -emit_32(1131556897); -emit_32(1117536256); -emit_32(1085358662); -emit_32(1131556897); -emit_32(1118048263); -emit_32(1085033331); -emit_32(1131556897); -emit_32(1118560256); -emit_32(1090041456); -emit_32(1131556897); -emit_32(1119072263); -emit_32(1091993569); -emit_32(1131556897); -emit_32(1119584256); -emit_32(1093969274); -emit_32(1131556897); -emit_32(1120096263); -emit_32(1094791777); -emit_32(1131556897); -emit_32(1120608322); -emit_32(1096921435); -emit_32(1131556897); -emit_32(1121120289); -emit_32(1098017722); -emit_32(1131556897); -emit_32(1121632256); -emit_32(1098852807); -emit_32(1131556897); -emit_32(1122144223); -emit_32(1099349623); -emit_32(1131556897); -emit_32(1122656322); -emit_32(1099542928); -emit_32(1131556897); -emit_32(1123168289); -emit_32(1100094688); -emit_32(1131556897); -emit_32(1123680256); -emit_32(1100410887); -emit_32(1131556897); -emit_32(1124132848); -emit_32(1100650329); -emit_32(1131556897); -emit_32(1124388897); -emit_32(1101060742); -emit_32(1131556897); -emit_32(1124644880); -emit_32(1101440326); -emit_32(1131556897); -emit_32(1124900864); -emit_32(1101720243); -emit_32(1131556897); -emit_32(1125156848); -emit_32(1101846125); -emit_32(1131556897); -emit_32(1125412897); -emit_32(1102182141); -emit_32(1131556897); -emit_32(1125668880); -emit_32(1102845208); -emit_32(1131556897); -emit_32(1125924864); -emit_32(1103549327); -emit_32(1131556897); -emit_32(1126180848); -emit_32(1103862379); -emit_32(1131556897); -emit_32(1126436897); -emit_32(1104116816); -emit_32(1131556897); -emit_32(1126692880); -emit_32(1103549432); -emit_32(1131556897); -emit_32(1126948864); -emit_32(1103788717); -emit_32(1131556897); -emit_32(1127204848); -emit_32(1103809426); -emit_32(1131556897); -emit_32(1127460897); -emit_32(1103218816); -emit_32(1131556897); -emit_32(1127716880); -emit_32(1101572551); -emit_32(1131556897); -emit_32(1127972864); -emit_32(1100781453); -emit_32(1131556897); -emit_32(1128228848); -emit_32(1100996149); -emit_32(1131556897); -emit_32(1128484897); -emit_32(1100798283); -emit_32(1131556897); -emit_32(1128740880); -emit_32(1100454769); -emit_32(1131556897); -emit_32(1128996864); -emit_32(1101100116); -emit_32(1131556897); -emit_32(1129252848); -emit_32(1100635806); -emit_32(1131556897); -emit_32(1129508897); -emit_32(1100423260); -emit_32(1131556897); -emit_32(1129764880); -emit_32(1100375445); -emit_32(1131556897); -emit_32(1130020864); -emit_32(1100374711); -emit_32(1131556897); -emit_32(1130276848); -emit_32(1100128348); -emit_32(1131556897); -emit_32(1130532897); -emit_32(1099813985); -emit_32(1131556897); -emit_32(1130788880); -emit_32(1098580702); -emit_32(1131556897); -emit_32(1131044864); -emit_32(1098117861); -emit_32(1131556897); -emit_32(1131300848); -emit_32(1098142502); -emit_32(1131556897); -emit_32(1131556897); -emit_32(1097315071); -emit_32(1131556897); -emit_32(1131812880); -emit_32(1097397384); -emit_32(1131556897); -emit_32(1132068864); -emit_32(1096997143); -emit_32(1131556897); -emit_32(1081737258); -emit_32(1078120510); -emit_32(1131300848); -emit_32(1090125866); -emit_32(1081645067); -emit_32(1131300848); -emit_32(1094418484); -emit_32(1083207676); -emit_32(1131300848); -emit_32(1098514432); -emit_32(1082548394); -emit_32(1131300848); -emit_32(1100759066); -emit_32(1083149333); -emit_32(1131300848); -emit_32(1102807040); -emit_32(1084467750); -emit_32(1131300848); -emit_32(1104855066); -emit_32(1084194889); -emit_32(1131300848); -emit_32(1106903040); -emit_32(1085853632); -emit_32(1131300848); -emit_32(1108123661); -emit_32(1085123970); -emit_32(1131300848); -emit_32(1109147648); -emit_32(1087285441); -emit_32(1131300848); -emit_32(1110171661); -emit_32(1085386722); -emit_32(1131300848); -emit_32(1111195648); -emit_32(1080853476); -emit_32(1131300848); -emit_32(1112219661); -emit_32(1078285136); -emit_32(1131300848); -emit_32(1113243648); -emit_32(1077796206); -emit_32(1131300848); -emit_32(1114267661); -emit_32(1081903730); -emit_32(1131300848); -emit_32(1115291648); -emit_32(1083632098); -emit_32(1131300848); -emit_32(1116000263); -emit_32(1084393385); -emit_32(1131300848); -emit_32(1116512256); -emit_32(1085051576); -emit_32(1131300848); -emit_32(1117024263); -emit_32(1082744667); -emit_32(1131300848); -emit_32(1117536256); -emit_32(1082567793); -emit_32(1131300848); -emit_32(1118048263); -emit_32(1084454685); -emit_32(1131300848); -emit_32(1118560256); -emit_32(1085247932); -emit_32(1131300848); -emit_32(1119072263); -emit_32(1088549437); -emit_32(1131300848); -emit_32(1119584256); -emit_32(1091234903); -emit_32(1131300848); -emit_32(1120096263); -emit_32(1092613875); -emit_32(1131300848); -emit_32(1120608322); -emit_32(1094687864); -emit_32(1131300848); -emit_32(1121120289); -emit_32(1095660313); -emit_32(1131300848); -emit_32(1121632256); -emit_32(1096595223); -emit_32(1131300848); -emit_32(1122144223); -emit_32(1096407214); -emit_32(1131300848); -emit_32(1122656322); -emit_32(1098896848); -emit_32(1131300848); -emit_32(1123168289); -emit_32(1100002571); -emit_32(1131300848); -emit_32(1123680256); -emit_32(1100330566); -emit_32(1131300848); -emit_32(1124132848); -emit_32(1100556901); -emit_32(1131300848); -emit_32(1124388897); -emit_32(1101046271); -emit_32(1131300848); -emit_32(1124644880); -emit_32(1101210793); -emit_32(1131300848); -emit_32(1124900864); -emit_32(1101438753); -emit_32(1131300848); -emit_32(1125156848); -emit_32(1101639765); -emit_32(1131300848); -emit_32(1125412897); -emit_32(1102320291); -emit_32(1131300848); -emit_32(1125668880); -emit_32(1103059380); -emit_32(1131300848); -emit_32(1125924864); -emit_32(1103640815); -emit_32(1131300848); -emit_32(1126180848); -emit_32(1104063234); -emit_32(1131300848); -emit_32(1126436897); -emit_32(1103970068); -emit_32(1131300848); -emit_32(1126692880); -emit_32(1103293999); -emit_32(1131300848); -emit_32(1126948864); -emit_32(1106602885); -emit_32(1131300848); -emit_32(1127204848); -emit_32(1106714296); -emit_32(1131300848); -emit_32(1127460897); -emit_32(1105856718); -emit_32(1131300848); -emit_32(1127716880); -emit_32(1104477736); -emit_32(1131300848); -emit_32(1127972864); -emit_32(1103475455); -emit_32(1131300848); -emit_32(1128228848); -emit_32(1102947182); -emit_32(1131300848); -emit_32(1128484897); -emit_32(1102778938); -emit_32(1131300848); -emit_32(1128740880); -emit_32(1102741242); -emit_32(1131300848); -emit_32(1128996864); -emit_32(1099705667); -emit_32(1131300848); -emit_32(1129252848); -emit_32(1099651088); -emit_32(1131300848); -emit_32(1129508897); -emit_32(1099707659); -emit_32(1131300848); -emit_32(1129764880); -emit_32(1100081634); -emit_32(1131300848); -emit_32(1130020864); -emit_32(1100312373); -emit_32(1131300848); -emit_32(1130276848); -emit_32(1100150263); -emit_32(1131300848); -emit_32(1130532897); -emit_32(1099562326); -emit_32(1131300848); -emit_32(1130788880); -emit_32(1099117363); -emit_32(1131300848); -emit_32(1131044864); -emit_32(1098383150); -emit_32(1131300848); -emit_32(1131300848); -emit_32(1097461347); -emit_32(1131300848); -emit_32(1131556897); -emit_32(1097130836); -emit_32(1131300848); -emit_32(1131812880); -emit_32(1097046950); -emit_32(1131300848); -emit_32(1132068864); -emit_32(1096949537); -emit_32(1131300848); -emit_32(1081737258); -emit_32(1084629524); -emit_32(1131044864); -emit_32(1090125866); -emit_32(1084086907); -emit_32(1131044864); -emit_32(1094418484); -emit_32(1082202008); -emit_32(1131044864); -emit_32(1098514432); -emit_32(1080912280); -emit_32(1131044864); -emit_32(1100759066); -emit_32(1083063329); -emit_32(1131044864); -emit_32(1102807040); -emit_32(1084485051); -emit_32(1131044864); -emit_32(1104855066); -emit_32(1083389331); -emit_32(1131044864); -emit_32(1106903040); -emit_32(1083284872); -emit_32(1131044864); -emit_32(1108123661); -emit_32(1083776948); -emit_32(1131044864); -emit_32(1109147648); -emit_32(1084114904); -emit_32(1131044864); -emit_32(1110171661); -emit_32(1084297860); -emit_32(1131044864); -emit_32(1111195648); -emit_32(1078278635); -emit_32(1131044864); -emit_32(1112219661); -emit_32(1076164118); -emit_32(1131044864); -emit_32(1113243648); -emit_32(1078294028); -emit_32(1131044864); -emit_32(1114267661); -emit_32(1082183700); -emit_32(1131044864); -emit_32(1115291648); -emit_32(1083337867); -emit_32(1131044864); -emit_32(1116000263); -emit_32(1083538145); -emit_32(1131044864); -emit_32(1116512256); -emit_32(1083307354); -emit_32(1131044864); -emit_32(1117024263); -emit_32(1082616971); -emit_32(1131044864); -emit_32(1117536256); -emit_32(1082459895); -emit_32(1131044864); -emit_32(1118048263); -emit_32(1082553155); -emit_32(1131044864); -emit_32(1118560256); -emit_32(1082740745); -emit_32(1131044864); -emit_32(1119072263); -emit_32(1085377369); -emit_32(1131044864); -emit_32(1119584256); -emit_32(1088549688); -emit_32(1131044864); -emit_32(1120096263); -emit_32(1090805993); -emit_32(1131044864); -emit_32(1120608322); -emit_32(1092446868); -emit_32(1131044864); -emit_32(1121120289); -emit_32(1093587383); -emit_32(1131044864); -emit_32(1121632256); -emit_32(1094483916); -emit_32(1131044864); -emit_32(1122144223); -emit_32(1096648281); -emit_32(1131044864); -emit_32(1122656322); -emit_32(1098439773); -emit_32(1131044864); -emit_32(1123168289); -emit_32(1099378301); -emit_32(1131044864); -emit_32(1123680256); -emit_32(1100113301); -emit_32(1131044864); -emit_32(1124132848); -emit_32(1100821928); -emit_32(1131044864); -emit_32(1124388897); -emit_32(1100695994); -emit_32(1131044864); -emit_32(1124644880); -emit_32(1100654418); -emit_32(1131044864); -emit_32(1124900864); -emit_32(1101348733); -emit_32(1131044864); -emit_32(1125156848); -emit_32(1101846177); -emit_32(1131044864); -emit_32(1125412897); -emit_32(1102171131); -emit_32(1131044864); -emit_32(1125668880); -emit_32(1102926263); -emit_32(1131044864); -emit_32(1125924864); -emit_32(1103561857); -emit_32(1131044864); -emit_32(1126180848); -emit_32(1105011566); -emit_32(1131044864); -emit_32(1126436897); -emit_32(1105956281); -emit_32(1131044864); -emit_32(1126692880); -emit_32(1106074193); -emit_32(1131044864); -emit_32(1126948864); -emit_32(1106288155); -emit_32(1131044864); -emit_32(1127204848); -emit_32(1106414875); -emit_32(1131044864); -emit_32(1127460897); -emit_32(1105582830); -emit_32(1131044864); -emit_32(1127716880); -emit_32(1104515013); -emit_32(1131044864); -emit_32(1127972864); -emit_32(1103803187); -emit_32(1131044864); -emit_32(1128228848); -emit_32(1103189298); -emit_32(1131044864); -emit_32(1128484897); -emit_32(1102339532); -emit_32(1131044864); -emit_32(1128740880); -emit_32(1102167776); -emit_32(1131044864); -emit_32(1128996864); -emit_32(1102179887); -emit_32(1131044864); -emit_32(1129252848); -emit_32(1101976463); -emit_32(1131044864); -emit_32(1129508897); -emit_32(1099672899); -emit_32(1131044864); -emit_32(1129764880); -emit_32(1099572288); -emit_32(1131044864); -emit_32(1130020864); -emit_32(1099410126); -emit_32(1131044864); -emit_32(1130276848); -emit_32(1099232077); -emit_32(1131044864); -emit_32(1130532897); -emit_32(1099661994); -emit_32(1131044864); -emit_32(1130788880); -emit_32(1099398382); -emit_32(1131044864); -emit_32(1131044864); -emit_32(1098507197); -emit_32(1131044864); -emit_32(1131300848); -emit_32(1098737045); -emit_32(1131044864); -emit_32(1131556897); -emit_32(1097951452); -emit_32(1131044864); -emit_32(1131812880); -emit_32(1097046111); -emit_32(1131044864); -emit_32(1132068864); -emit_32(1096926888); -emit_32(1131044864); -emit_32(1081737258); -emit_32(1086083564); -emit_32(1130788880); -emit_32(1090125845); -emit_32(1085231281); -emit_32(1130788880); -emit_32(1094418484); -emit_32(1084350058); -emit_32(1130788880); -emit_32(1098514432); -emit_32(1082346082); -emit_32(1130788880); -emit_32(1100759066); -emit_32(1082352080); -emit_32(1130788880); -emit_32(1102807040); -emit_32(1083015472); -emit_32(1130788880); -emit_32(1104855066); -emit_32(1082714468); -emit_32(1130788880); -emit_32(1106903040); -emit_32(1082667555); -emit_32(1130788880); -emit_32(1108123661); -emit_32(1081440133); -emit_32(1130788880); -emit_32(1109147648); -emit_32(1079509621); -emit_32(1130788880); -emit_32(1110171661); -emit_32(1082472016); -emit_32(1130788880); -emit_32(1111195648); -emit_32(1077273302); -emit_32(1130788880); -emit_32(1112219661); -emit_32(1077242684); -emit_32(1130788880); -emit_32(1113243648); -emit_32(1078266387); -emit_32(1130788880); -emit_32(1114267661); -emit_32(1079519268); -emit_32(1130788880); -emit_32(1115291648); -emit_32(1082332010); -emit_32(1130788880); -emit_32(1116000263); -emit_32(1083509876); -emit_32(1130788880); -emit_32(1116512256); -emit_32(1083089082); -emit_32(1130788880); -emit_32(1117024263); -emit_32(1081681474); -emit_32(1130788880); -emit_32(1117536256); -emit_32(1081604928); -emit_32(1130788880); -emit_32(1118048263); -emit_32(1083484521); -emit_32(1130788880); -emit_32(1118560256); -emit_32(1085967948); -emit_32(1130788880); -emit_32(1119072263); -emit_32(1087165358); -emit_32(1130788880); -emit_32(1119584256); -emit_32(1089804205); -emit_32(1130788880); -emit_32(1120096263); -emit_32(1090592986); -emit_32(1130788880); -emit_32(1120608322); -emit_32(1092476018); -emit_32(1130788880); -emit_32(1121120289); -emit_32(1094570318); -emit_32(1130788880); -emit_32(1121632256); -emit_32(1095714420); -emit_32(1130788880); -emit_32(1122144223); -emit_32(1097098330); -emit_32(1130788880); -emit_32(1122656322); -emit_32(1098580073); -emit_32(1130788880); -emit_32(1123168289); -emit_32(1099541460); -emit_32(1130788880); -emit_32(1123680256); -emit_32(1100022651); -emit_32(1130788880); -emit_32(1124132848); -emit_32(1100679217); -emit_32(1130788880); -emit_32(1124388897); -emit_32(1100590455); -emit_32(1130788880); -emit_32(1124644880); -emit_32(1100445647); -emit_32(1130788880); -emit_32(1124900864); -emit_32(1100992374); -emit_32(1130788880); -emit_32(1125156848); -emit_32(1101812256); -emit_32(1130788880); -emit_32(1125412897); -emit_32(1101911923); -emit_32(1130788880); -emit_32(1125668880); -emit_32(1102583326); -emit_32(1130788880); -emit_32(1125924864); -emit_32(1105586396); -emit_32(1130788880); -emit_32(1126180848); -emit_32(1105418204); -emit_32(1130788880); -emit_32(1126436897); -emit_32(1105539000); -emit_32(1130788880); -emit_32(1126692880); -emit_32(1106015263); -emit_32(1130788880); -emit_32(1126948864); -emit_32(1106032198); -emit_32(1130788880); -emit_32(1127204848); -emit_32(1106139834); -emit_32(1130788880); -emit_32(1127460897); -emit_32(1105229880); -emit_32(1130788880); -emit_32(1127716880); -emit_32(1105009679); -emit_32(1130788880); -emit_32(1127972864); -emit_32(1104632873); -emit_32(1130788880); -emit_32(1128228848); -emit_32(1104045408); -emit_32(1130788880); -emit_32(1128484897); -emit_32(1103027136); -emit_32(1130788880); -emit_32(1128740880); -emit_32(1102134274); -emit_32(1130788880); -emit_32(1128996864); -emit_32(1101980290); -emit_32(1130788880); -emit_32(1129252848); -emit_32(1101929854); -emit_32(1130788880); -emit_32(1129508897); -emit_32(1102202274); -emit_32(1130788880); -emit_32(1129764880); -emit_32(1102297170); -emit_32(1130788880); -emit_32(1130020864); -emit_32(1099118307); -emit_32(1130788880); -emit_32(1130276848); -emit_32(1098962856); -emit_32(1130788880); -emit_32(1130532897); -emit_32(1099408500); -emit_32(1130788880); -emit_32(1130788880); -emit_32(1099424124); -emit_32(1130788880); -emit_32(1131044864); -emit_32(1098958347); -emit_32(1130788880); -emit_32(1131300848); -emit_32(1098882272); -emit_32(1130788880); -emit_32(1131556897); -emit_32(1098200698); -emit_32(1130788880); -emit_32(1131812880); -emit_32(1098164103); -emit_32(1130788880); -emit_32(1132068864); -emit_32(1097566310); -emit_32(1130788880); -emit_32(1081737258); -emit_32(1088205504); -emit_32(1130532897); -emit_32(1090125845); -emit_32(1087556645); -emit_32(1130532897); -emit_32(1094418484); -emit_32(1086398472); -emit_32(1130532897); -emit_32(1098514432); -emit_32(1083645478); -emit_32(1130532897); -emit_32(1100759066); -emit_32(1080639357); -emit_32(1130532897); -emit_32(1102807040); -emit_32(1082880395); -emit_32(1130532897); -emit_32(1104855066); -emit_32(1082376092); -emit_32(1130532897); -emit_32(1106903040); -emit_32(1082783171); -emit_32(1130532897); -emit_32(1108123661); -emit_32(1079715142); -emit_32(1130532897); -emit_32(1109147648); -emit_32(1074967232); -emit_32(1130532897); -emit_32(1110171661); -emit_32(1075751525); -emit_32(1130532897); -emit_32(1111195648); -emit_32(1074864513); -emit_32(1130532897); -emit_32(1112219661); -emit_32(1066352635); -emit_32(1130532897); -emit_32(1113243648); -emit_32(1075556532); -emit_32(1130532897); -emit_32(1114267661); -emit_32(1081657231); -emit_32(1130532897); -emit_32(1115291648); -emit_32(1082114913); -emit_32(1130532897); -emit_32(1116000263); -emit_32(1082771049); -emit_32(1130532897); -emit_32(1116512256); -emit_32(1083047705); -emit_32(1130532897); -emit_32(1117024263); -emit_32(1081671953); -emit_32(1130532897); -emit_32(1117536256); -emit_32(1082383810); -emit_32(1130532897); -emit_32(1118048263); -emit_32(1085344359); -emit_32(1130532897); -emit_32(1118560256); -emit_32(1087131993); -emit_32(1130532897); -emit_32(1119072263); -emit_32(1088001598); -emit_32(1130532897); -emit_32(1119584256); -emit_32(1090829398); -emit_32(1130532897); -emit_32(1120096263); -emit_32(1091029938); -emit_32(1130532897); -emit_32(1120608322); -emit_32(1092548601); -emit_32(1130532897); -emit_32(1121120289); -emit_32(1094257947); -emit_32(1130532897); -emit_32(1121632256); -emit_32(1095812881); -emit_32(1130532897); -emit_32(1122144223); -emit_32(1096665897); -emit_32(1130532897); -emit_32(1122656322); -emit_32(1097826356); -emit_32(1130532897); -emit_32(1123168289); -emit_32(1099106825); -emit_32(1130532897); -emit_32(1123680256); -emit_32(1099535378); -emit_32(1130532897); -emit_32(1124132848); -emit_32(1099629068); -emit_32(1130532897); -emit_32(1124388897); -emit_32(1100012480); -emit_32(1130532897); -emit_32(1124644880); -emit_32(1100315047); -emit_32(1130532897); -emit_32(1124900864); -emit_32(1100226809); -emit_32(1130532897); -emit_32(1125156848); -emit_32(1101404150); -emit_32(1130532897); -emit_32(1125412897); -emit_32(1101559392); -emit_32(1130532897); -emit_32(1125668880); -emit_32(1104381215); -emit_32(1130532897); -emit_32(1125924864); -emit_32(1104769555); -emit_32(1130532897); -emit_32(1126180848); -emit_32(1104830110); -emit_32(1130532897); -emit_32(1126436897); -emit_32(1105225685); -emit_32(1130532897); -emit_32(1126692880); -emit_32(1105543666); -emit_32(1130532897); -emit_32(1126948864); -emit_32(1105381923); -emit_32(1130532897); -emit_32(1127204848); -emit_32(1102960080); -emit_32(1130532897); -emit_32(1127460897); -emit_32(1102636017); -emit_32(1130532897); -emit_32(1127716880); -emit_32(1102352640); -emit_32(1130532897); -emit_32(1127972864); -emit_32(1102376600); -emit_32(1130532897); -emit_32(1128228848); -emit_32(1101985061); -emit_32(1130532897); -emit_32(1128484897); -emit_32(1100996464); -emit_32(1130532897); -emit_32(1128740880); -emit_32(1102569013); -emit_32(1130532897); -emit_32(1128996864); -emit_32(1102092331); -emit_32(1130532897); -emit_32(1129252848); -emit_32(1102309543); -emit_32(1130532897); -emit_32(1129508897); -emit_32(1102185287); -emit_32(1130532897); -emit_32(1129764880); -emit_32(1102249407); -emit_32(1130532897); -emit_32(1130020864); -emit_32(1102463107); -emit_32(1130532897); -emit_32(1130276848); -emit_32(1099451125); -emit_32(1130532897); -emit_32(1130532897); -emit_32(1098977588); -emit_32(1130532897); -emit_32(1130788880); -emit_32(1099393401); -emit_32(1130532897); -emit_32(1131044864); -emit_32(1099525941); -emit_32(1130532897); -emit_32(1131300848); -emit_32(1099608359); -emit_32(1130532897); -emit_32(1131556897); -emit_32(1099010985); -emit_32(1130532897); -emit_32(1131812880); -emit_32(1098150052); -emit_32(1130532897); -emit_32(1132068864); -emit_32(1097996750); -emit_32(1130532897); -emit_32(1081737258); -emit_32(1088030748); -emit_32(1130276848); -emit_32(1090125845); -emit_32(1088922017); -emit_32(1130276848); -emit_32(1094418484); -emit_32(1086531599); -emit_32(1130276848); -emit_32(1098514432); -emit_32(1084132164); -emit_32(1130276848); -emit_32(1100759066); -emit_32(1081632694); -emit_32(1130276848); -emit_32(1102807040); -emit_32(1082276478); -emit_32(1130276848); -emit_32(1104855066); -emit_32(1081735706); -emit_32(1130276848); -emit_32(1106903040); -emit_32(1082304580); -emit_32(1130276848); -emit_32(1108123661); -emit_32(1079035203); -emit_32(1130276848); -emit_32(1109147648); -emit_32(1069837514); -emit_32(1130276848); -emit_32(1110171661); -emit_32(1072973008); -emit_32(1130276848); -emit_32(1111195648); -emit_32(1073616750); -emit_32(1130276848); -emit_32(1112219661); -emit_32(1074356373); -emit_32(1130276848); -emit_32(1113243648); -emit_32(1076853159); -emit_32(1130276848); -emit_32(1114267661); -emit_32(1081069063); -emit_32(1130276848); -emit_32(1115291648); -emit_32(1082137856); -emit_32(1130276848); -emit_32(1116000263); -emit_32(1082943959); -emit_32(1130276848); -emit_32(1116512256); -emit_32(1081841906); -emit_32(1130276848); -emit_32(1117024263); -emit_32(1079724873); -emit_32(1130276848); -emit_32(1117536256); -emit_32(1084345444); -emit_32(1130276848); -emit_32(1118048263); -emit_32(1086294789); -emit_32(1130276848); -emit_32(1118560256); -emit_32(1087434528); -emit_32(1130276848); -emit_32(1119072263); -emit_32(1088073635); -emit_32(1130276848); -emit_32(1119584256); -emit_32(1089448947); -emit_32(1130276848); -emit_32(1120096263); -emit_32(1090721069); -emit_32(1130276848); -emit_32(1120608322); -emit_32(1091918239); -emit_32(1130276848); -emit_32(1121120289); -emit_32(1094547984); -emit_32(1130276848); -emit_32(1121632256); -emit_32(1095883345); -emit_32(1130276848); -emit_32(1122144223); -emit_32(1096699766); -emit_32(1130276848); -emit_32(1122656322); -emit_32(1097650825); -emit_32(1130276848); -emit_32(1123168289); -emit_32(1098292029); -emit_32(1130276848); -emit_32(1123680256); -emit_32(1098586993); -emit_32(1130276848); -emit_32(1124132848); -emit_32(1099015075); -emit_32(1130276848); -emit_32(1124388897); -emit_32(1099448608); -emit_32(1130276848); -emit_32(1124644880); -emit_32(1100240545); -emit_32(1130276848); -emit_32(1124900864); -emit_32(1100411568); -emit_32(1130276848); -emit_32(1125156848); -emit_32(1100717962); -emit_32(1130276848); -emit_32(1125412897); -emit_32(1104106121); -emit_32(1130276848); -emit_32(1125668880); -emit_32(1103981340); -emit_32(1130276848); -emit_32(1125924864); -emit_32(1104173177); -emit_32(1130276848); -emit_32(1126180848); -emit_32(1104308653); -emit_32(1130276848); -emit_32(1126436897); -emit_32(1104718856); -emit_32(1130276848); -emit_32(1126692880); -emit_32(1104731072); -emit_32(1130276848); -emit_32(1126948864); -emit_32(1102448479); -emit_32(1130276848); -emit_32(1127204848); -emit_32(1102776107); -emit_32(1130276848); -emit_32(1127460897); -emit_32(1102622858); -emit_32(1130276848); -emit_32(1127716880); -emit_32(1102367582); -emit_32(1130276848); -emit_32(1127972864); -emit_32(1102063704); -emit_32(1130276848); -emit_32(1128228848); -emit_32(1101966973); -emit_32(1130276848); -emit_32(1128484897); -emit_32(1101031067); -emit_32(1130276848); -emit_32(1128740880); -emit_32(1100260154); -emit_32(1130276848); -emit_32(1128996864); -emit_32(1100108530); -emit_32(1130276848); -emit_32(1129252848); -emit_32(1102466305); -emit_32(1130276848); -emit_32(1129508897); -emit_32(1102042209); -emit_32(1130276848); -emit_32(1129764880); -emit_32(1101779803); -emit_32(1130276848); -emit_32(1130020864); -emit_32(1101832441); -emit_32(1130276848); -emit_32(1130276848); -emit_32(1101855772); -emit_32(1130276848); -emit_32(1130532897); -emit_32(1099854407); -emit_32(1130276848); -emit_32(1130788880); -emit_32(1099755369); -emit_32(1130276848); -emit_32(1131044864); -emit_32(1100126198); -emit_32(1130276848); -emit_32(1131300848); -emit_32(1100210346); -emit_32(1130276848); -emit_32(1131556897); -emit_32(1099599131); -emit_32(1130276848); -emit_32(1131812880); -emit_32(1099312713); -emit_32(1130276848); -emit_32(1132068864); -emit_32(1099215405); -emit_32(1130276848); -emit_32(1081737300); -emit_32(1090545737); -emit_32(1130020864); -emit_32(1090125845); -emit_32(1090779118); -emit_32(1130020864); -emit_32(1094418484); -emit_32(1088257765); -emit_32(1130020864); -emit_32(1098514432); -emit_32(1086032917); -emit_32(1130020864); -emit_32(1100759066); -emit_32(1083317483); -emit_32(1130020864); -emit_32(1102807040); -emit_32(1080833973); -emit_32(1130020864); -emit_32(1104855066); -emit_32(1082686639); -emit_32(1130020864); -emit_32(1106903040); -emit_32(1079520862); -emit_32(1130020864); -emit_32(1108123661); -emit_32(1071421451); -emit_32(1130020864); -emit_32(1109147648); -emit_32(1074673169); -emit_32(1130020864); -emit_32(1110171661); -emit_32(1076755348); -emit_32(1130020864); -emit_32(1111195648); -emit_32(1078551432); -emit_32(1130020864); -emit_32(1112219661); -emit_32(1078159559); -emit_32(1130020864); -emit_32(1113243648); -emit_32(1078755569); -emit_32(1130020864); -emit_32(1114267661); -emit_32(1080798447); -emit_32(1130020864); -emit_32(1115291648); -emit_32(1079415837); -emit_32(1130020864); -emit_32(1116000263); -emit_32(1082138863); -emit_32(1130020864); -emit_32(1116512256); -emit_32(1077619039); -emit_32(1130020864); -emit_32(1117024263); -emit_32(1082948888); -emit_32(1130020864); -emit_32(1117536256); -emit_32(1085399431); -emit_32(1130020864); -emit_32(1118048263); -emit_32(1087137844); -emit_32(1130020864); -emit_32(1118560256); -emit_32(1087057984); -emit_32(1130020864); -emit_32(1119072263); -emit_32(1088011706); -emit_32(1130020864); -emit_32(1119584256); -emit_32(1087547166); -emit_32(1130020864); -emit_32(1120096263); -emit_32(1089001897); -emit_32(1130020864); -emit_32(1120608322); -emit_32(1092274230); -emit_32(1130020864); -emit_32(1121120289); -emit_32(1093489656); -emit_32(1130020864); -emit_32(1121632256); -emit_32(1094888037); -emit_32(1130020864); -emit_32(1122144223); -emit_32(1095981597); -emit_32(1130020864); -emit_32(1122656322); -emit_32(1097071696); -emit_32(1130020864); -emit_32(1123168289); -emit_32(1097539571); -emit_32(1130020864); -emit_32(1123680256); -emit_32(1097094346); -emit_32(1130020864); -emit_32(1124132848); -emit_32(1098861091); -emit_32(1130020864); -emit_32(1124388897); -emit_32(1099278215); -emit_32(1130020864); -emit_32(1124644880); -emit_32(1099782108); -emit_32(1130020864); -emit_32(1124900864); -emit_32(1100389129); -emit_32(1130020864); -emit_32(1125156848); -emit_32(1103220179); -emit_32(1130020864); -emit_32(1125412897); -emit_32(1103665509); -emit_32(1130020864); -emit_32(1125668880); -emit_32(1104112307); -emit_32(1130020864); -emit_32(1125924864); -emit_32(1104257063); -emit_32(1130020864); -emit_32(1126180848); -emit_32(1103372904); -emit_32(1130020864); -emit_32(1126436897); -emit_32(1104276514); -emit_32(1130020864); -emit_32(1126692880); -emit_32(1104476792); -emit_32(1130020864); -emit_32(1126948864); -emit_32(1102277299); -emit_32(1130020864); -emit_32(1127204848); -emit_32(1102993162); -emit_32(1130020864); -emit_32(1127460897); -emit_32(1102760011); -emit_32(1130020864); -emit_32(1127716880); -emit_32(1102172861); -emit_32(1130020864); -emit_32(1127972864); -emit_32(1102165993); -emit_32(1130020864); -emit_32(1128228848); -emit_32(1101400008); -emit_32(1130020864); -emit_32(1128484897); -emit_32(1100749524); -emit_32(1130020864); -emit_32(1128740880); -emit_32(1100733953); -emit_32(1130020864); -emit_32(1128996864); -emit_32(1100153147); -emit_32(1130020864); -emit_32(1129252848); -emit_32(1100010435); -emit_32(1130020864); -emit_32(1129508897); -emit_32(1101004957); -emit_32(1130020864); -emit_32(1129764880); -emit_32(1102164053); -emit_32(1130020864); -emit_32(1130020864); -emit_32(1101850110); -emit_32(1130020864); -emit_32(1130276848); -emit_32(1102364960); -emit_32(1130020864); -emit_32(1130532897); -emit_32(1103265268); -emit_32(1130020864); -emit_32(1130788880); -emit_32(1100508614); -emit_32(1130020864); -emit_32(1131044864); -emit_32(1100302936); -emit_32(1130020864); -emit_32(1131300848); -emit_32(1100358615); -emit_32(1130020864); -emit_32(1131556897); -emit_32(1100122056); -emit_32(1130020864); -emit_32(1131812880); -emit_32(1099275331); -emit_32(1130020864); -emit_32(1132068864); -emit_32(1099473145); -emit_32(1130020864); -emit_32(1081737300); -emit_32(1091835139); -emit_32(1129764880); -emit_32(1090125845); -emit_32(1092274629); -emit_32(1129764880); -emit_32(1094418484); -emit_32(1091485187); -emit_32(1129764880); -emit_32(1098514432); -emit_32(1088227650); -emit_32(1129764880); -emit_32(1100759066); -emit_32(1086589313); -emit_32(1129764880); -emit_32(1102807040); -emit_32(1084191974); -emit_32(1129764880); -emit_32(1104855066); -emit_32(1080611507); -emit_32(1129764880); -emit_32(1106903040); -emit_32(1075926931); -emit_32(1129764880); -emit_32(1108123661); -emit_32(1079228645); -emit_32(1129764880); -emit_32(1109147648); -emit_32(1082222833); -emit_32(1129764880); -emit_32(1110171661); -emit_32(1083146418); -emit_32(1129764880); -emit_32(1111195648); -emit_32(1082983868); -emit_32(1129764880); -emit_32(1112219661); -emit_32(1081162806); -emit_32(1129764880); -emit_32(1113243648); -emit_32(1077328919); -emit_32(1129764880); -emit_32(1114267661); -emit_32(1076126244); -emit_32(1129764880); -emit_32(1115291648); -emit_32(1076114164); -emit_32(1129764880); -emit_32(1116000263); -emit_32(1077220454); -emit_32(1129764880); -emit_32(1116512256); -emit_32(1076896821); -emit_32(1129764880); -emit_32(1117024263); -emit_32(1084289953); -emit_32(1129764880); -emit_32(1117536256); -emit_32(1085902789); -emit_32(1129764880); -emit_32(1118048263); -emit_32(1086392243); -emit_32(1129764880); -emit_32(1118560256); -emit_32(1086899838); -emit_32(1129764880); -emit_32(1119072263); -emit_32(1086675170); -emit_32(1129764880); -emit_32(1119584256); -emit_32(1088147014); -emit_32(1129764880); -emit_32(1120096263); -emit_32(1090408877); -emit_32(1129764880); -emit_32(1120608322); -emit_32(1091709677); -emit_32(1129764880); -emit_32(1121120289); -emit_32(1092234888); -emit_32(1129764880); -emit_32(1121632256); -emit_32(1092967570); -emit_32(1129764880); -emit_32(1122144223); -emit_32(1095135710); -emit_32(1129764880); -emit_32(1122656322); -emit_32(1095795579); -emit_32(1129764880); -emit_32(1123168289); -emit_32(1096420845); -emit_32(1129764880); -emit_32(1123680256); -emit_32(1097142580); -emit_32(1129764880); -emit_32(1124132848); -emit_32(1097919155); -emit_32(1129764880); -emit_32(1124388897); -emit_32(1099013659); -emit_32(1129764880); -emit_32(1124644880); -emit_32(1099826515); -emit_32(1129764880); -emit_32(1124900864); -emit_32(1102949541); -emit_32(1129764880); -emit_32(1125156848); -emit_32(1103290853); -emit_32(1129764880); -emit_32(1125412897); -emit_32(1103584035); -emit_32(1129764880); -emit_32(1125668880); -emit_32(1103730049); -emit_32(1129764880); -emit_32(1125924864); -emit_32(1101436027); -emit_32(1129764880); -emit_32(1126180848); -emit_32(1103412226); -emit_32(1129764880); -emit_32(1126436897); -emit_32(1103699850); -emit_32(1129764880); -emit_32(1126692880); -emit_32(1104185079); -emit_32(1129764880); -emit_32(1126948864); -emit_32(1102131233); -emit_32(1129764880); -emit_32(1127204848); -emit_32(1105054191); -emit_32(1129764880); -emit_32(1127460897); -emit_32(1104932451); -emit_32(1129764880); -emit_32(1127716880); -emit_32(1104496873); -emit_32(1129764880); -emit_32(1127972864); -emit_32(1104477159); -emit_32(1129764880); -emit_32(1128228848); -emit_32(1104320607); -emit_32(1129764880); -emit_32(1128484897); -emit_32(1103549432); -emit_32(1129764880); -emit_32(1128740880); -emit_32(1102911793); -emit_32(1129764880); -emit_32(1128996864); -emit_32(1101627707); -emit_32(1129764880); -emit_32(1129252848); -emit_32(1100874200); -emit_32(1129764880); -emit_32(1129508897); -emit_32(1102213074); -emit_32(1129764880); -emit_32(1129764880); -emit_32(1102331091); -emit_32(1129764880); -emit_32(1130020864); -emit_32(1102551345); -emit_32(1129764880); -emit_32(1130276848); -emit_32(1102696730); -emit_32(1129764880); -emit_32(1130532897); -emit_32(1103568568); -emit_32(1129764880); -emit_32(1130788880); -emit_32(1102851657); -emit_32(1129764880); -emit_32(1131044864); -emit_32(1100504787); -emit_32(1129764880); -emit_32(1131300848); -emit_32(1099935252); -emit_32(1129764880); -emit_32(1131556897); -emit_32(1100381212); -emit_32(1129764880); -emit_32(1131812880); -emit_32(1099598030); -emit_32(1129764880); -emit_32(1132068864); -emit_32(1099324719); -emit_32(1129764880); -emit_32(1081737300); -emit_32(1093216816); -emit_32(1129508897); -emit_32(1090125845); -emit_32(1092417151); -emit_32(1129508897); -emit_32(1094418484); -emit_32(1092298631); -emit_32(1129508897); -emit_32(1098514432); -emit_32(1090960878); -emit_32(1129508897); -emit_32(1100759066); -emit_32(1088614281); -emit_32(1129508897); -emit_32(1102807040); -emit_32(1087275941); -emit_32(1129508897); -emit_32(1104855066); -emit_32(1083352170); -emit_32(1129508897); -emit_32(1106903040); -emit_32(1082781472); -emit_32(1129508897); -emit_32(1108123661); -emit_32(1082625024); -emit_32(1129508897); -emit_32(1109147648); -emit_32(1083756291); -emit_32(1129508897); -emit_32(1110171661); -emit_32(1085301682); -emit_32(1129508897); -emit_32(1111195648); -emit_32(1085254392); -emit_32(1129508897); -emit_32(1112219661); -emit_32(1083183433); -emit_32(1129508897); -emit_32(1113243648); -emit_32(1082262280); -emit_32(1129508897); -emit_32(1114267661); -emit_32(1079746432); -emit_32(1129508897); -emit_32(1115291648); -emit_32(1079747858); -emit_32(1129508897); -emit_32(1116000263); -emit_32(1080629039); -emit_32(1129508897); -emit_32(1116512256); -emit_32(1084566295); -emit_32(1129508897); -emit_32(1117024263); -emit_32(1087852574); -emit_32(1129508897); -emit_32(1117536256); -emit_32(1089342076); -emit_32(1129508897); -emit_32(1118048263); -emit_32(1089066049); -emit_32(1129508897); -emit_32(1118560256); -emit_32(1087464056); -emit_32(1129508897); -emit_32(1119072263); -emit_32(1086240913); -emit_32(1129508897); -emit_32(1119584256); -emit_32(1087270531); -emit_32(1129508897); -emit_32(1120096263); -emit_32(1090862428); -emit_32(1129508897); -emit_32(1120608322); -emit_32(1091412280); -emit_32(1129508897); -emit_32(1121120289); -emit_32(1092239313); -emit_32(1129508897); -emit_32(1121632256); -emit_32(1093054602); -emit_32(1129508897); -emit_32(1122144223); -emit_32(1094389439); -emit_32(1129508897); -emit_32(1122656322); -emit_32(1094766612); -emit_32(1129508897); -emit_32(1123168289); -emit_32(1095867197); -emit_32(1129508897); -emit_32(1123680256); -emit_32(1097324193); -emit_32(1129508897); -emit_32(1124132848); -emit_32(1097994863); -emit_32(1129508897); -emit_32(1124388897); -emit_32(1098508665); -emit_32(1129508897); -emit_32(1124644880); -emit_32(1099390989); -emit_32(1129508897); -emit_32(1124900864); -emit_32(1102819570); -emit_32(1129508897); -emit_32(1125156848); -emit_32(1103456528); -emit_32(1129508897); -emit_32(1125412897); -emit_32(1104213443); -emit_32(1129508897); -emit_32(1125668880); -emit_32(1101924034); -emit_32(1129508897); -emit_32(1125924864); -emit_32(1101395290); -emit_32(1129508897); -emit_32(1126180848); -emit_32(1103179599); -emit_32(1129508897); -emit_32(1126436897); -emit_32(1104174855); -emit_32(1129508897); -emit_32(1126692880); -emit_32(1103711856); -emit_32(1129508897); -emit_32(1126948864); -emit_32(1101427166); -emit_32(1129508897); -emit_32(1127204848); -emit_32(1104341946); -emit_32(1129508897); -emit_32(1127460897); -emit_32(1103905266); -emit_32(1129508897); -emit_32(1127716880); -emit_32(1104351225); -emit_32(1129508897); -emit_32(1127972864); -emit_32(1104338538); -emit_32(1129508897); -emit_32(1128228848); -emit_32(1104240391); -emit_32(1129508897); -emit_32(1128484897); -emit_32(1104134537); -emit_32(1129508897); -emit_32(1128740880); -emit_32(1103285715); -emit_32(1129508897); -emit_32(1128996864); -emit_32(1103034843); -emit_32(1129508897); -emit_32(1129252848); -emit_32(1102598688); -emit_32(1129508897); -emit_32(1129508897); -emit_32(1102258058); -emit_32(1129508897); -emit_32(1129764880); -emit_32(1102454299); -emit_32(1129508897); -emit_32(1130020864); -emit_32(1102717125); -emit_32(1129508897); -emit_32(1130276848); -emit_32(1103026612); -emit_32(1129508897); -emit_32(1130532897); -emit_32(1103449817); -emit_32(1129508897); -emit_32(1130788880); -emit_32(1103303593); -emit_32(1129508897); -emit_32(1131044864); -emit_32(1100124678); -emit_32(1129508897); -emit_32(1131300848); -emit_32(1099774348); -emit_32(1129508897); -emit_32(1131556897); -emit_32(1099896141); -emit_32(1129508897); -emit_32(1131812880); -emit_32(1099520646); -emit_32(1129508897); -emit_32(1132068864); -emit_32(1098974233); -emit_32(1129508897); -emit_32(1081737258); -emit_32(1093092141); -emit_32(1129252848); -emit_32(1090125845); -emit_32(1092641463); -emit_32(1129252848); -emit_32(1094418484); -emit_32(1093021047); -emit_32(1129252848); -emit_32(1098514432); -emit_32(1091404216); -emit_32(1129252848); -emit_32(1100759066); -emit_32(1090891043); -emit_32(1129252848); -emit_32(1102807040); -emit_32(1087333718); -emit_32(1129252848); -emit_32(1104855066); -emit_32(1086550243); -emit_32(1129252848); -emit_32(1106903040); -emit_32(1086614059); -emit_32(1129252848); -emit_32(1108123661); -emit_32(1087395227); -emit_32(1129252848); -emit_32(1109147648); -emit_32(1087693715); -emit_32(1129252848); -emit_32(1110171661); -emit_32(1086905605); -emit_32(1129252848); -emit_32(1111195648); -emit_32(1085917406); -emit_32(1129252848); -emit_32(1112219661); -emit_32(1086122445); -emit_32(1129252848); -emit_32(1113243648); -emit_32(1085614577); -emit_32(1129252848); -emit_32(1114267661); -emit_32(1083545422); -emit_32(1129252848); -emit_32(1115291648); -emit_32(1083831285); -emit_32(1129252848); -emit_32(1116000263); -emit_32(1086466587); -emit_32(1129252848); -emit_32(1116512256); -emit_32(1089709267); -emit_32(1129252848); -emit_32(1117024263); -emit_32(1091281166); -emit_32(1129252848); -emit_32(1117536256); -emit_32(1091916068); -emit_32(1129252848); -emit_32(1118048263); -emit_32(1091040717); -emit_32(1129252848); -emit_32(1118560256); -emit_32(1090210612); -emit_32(1129252848); -emit_32(1119072263); -emit_32(1089209851); -emit_32(1129252848); -emit_32(1119584256); -emit_32(1089378399); -emit_32(1129252848); -emit_32(1120096263); -emit_32(1090028789); -emit_32(1129252848); -emit_32(1120608322); -emit_32(1091234840); -emit_32(1129252848); -emit_32(1121120289); -emit_32(1093074734); -emit_32(1129252848); -emit_32(1121632256); -emit_32(1093111330); -emit_32(1129252848); -emit_32(1122144223); -emit_32(1094128029); -emit_32(1129252848); -emit_32(1122656322); -emit_32(1095036410); -emit_32(1129252848); -emit_32(1123168289); -emit_32(1095680551); -emit_32(1129252848); -emit_32(1123680256); -emit_32(1097146460); -emit_32(1129252848); -emit_32(1124132848); -emit_32(1098042153); -emit_32(1129252848); -emit_32(1124388897); -emit_32(1097318741); -emit_32(1129252848); -emit_32(1124644880); -emit_32(1101515457); -emit_32(1129252848); -emit_32(1124900864); -emit_32(1102822454); -emit_32(1129252848); -emit_32(1125156848); -emit_32(1103621941); -emit_32(1129252848); -emit_32(1125412897); -emit_32(1104011330); -emit_32(1129252848); -emit_32(1125668880); -emit_32(1101788244); -emit_32(1129252848); -emit_32(1125924864); -emit_32(1102141981); -emit_32(1129252848); -emit_32(1126180848); -emit_32(1103612556); -emit_32(1129252848); -emit_32(1126436897); -emit_32(1104382421); -emit_32(1129252848); -emit_32(1126692880); -emit_32(1104094324); -emit_32(1129252848); -emit_32(1126948864); -emit_32(1101288335); -emit_32(1129252848); -emit_32(1127204848); -emit_32(1103222224); -emit_32(1129252848); -emit_32(1127460897); -emit_32(1103312087); -emit_32(1129252848); -emit_32(1127716880); -emit_32(1103773512); -emit_32(1129252848); -emit_32(1127972864); -emit_32(1104076551); -emit_32(1129252848); -emit_32(1128228848); -emit_32(1104345353); -emit_32(1129252848); -emit_32(1128484897); -emit_32(1104178053); -emit_32(1129252848); -emit_32(1128740880); -emit_32(1103422240); -emit_32(1129252848); -emit_32(1128996864); -emit_32(1103161092); -emit_32(1129252848); -emit_32(1129252848); -emit_32(1102825705); -emit_32(1129252848); -emit_32(1129508897); -emit_32(1102393482); -emit_32(1129252848); -emit_32(1129764880); -emit_32(1102471601); -emit_32(1129252848); -emit_32(1130020864); -emit_32(1100205471); -emit_32(1129252848); -emit_32(1130276848); -emit_32(1102674552); -emit_32(1129252848); -emit_32(1130532897); -emit_32(1102672980); -emit_32(1129252848); -emit_32(1130788880); -emit_32(1102535406); -emit_32(1129252848); -emit_32(1131044864); -emit_32(1100902669); -emit_32(1129252848); -emit_32(1131300848); -emit_32(1099358641); -emit_32(1129252848); -emit_32(1131556897); -emit_32(1099486829); -emit_32(1129252848); -emit_32(1131812880); -emit_32(1098967679); -emit_32(1129252848); -emit_32(1132068864); -emit_32(1097864210); -emit_32(1129252848); -emit_32(1081737258); -emit_32(1094158228); -emit_32(1128996864); -emit_32(1090125845); -emit_32(1093761447); -emit_32(1128996864); -emit_32(1094418484); -emit_32(1094140822); -emit_32(1128996864); -emit_32(1098514432); -emit_32(1093034574); -emit_32(1128996864); -emit_32(1100759066); -emit_32(1091456100); -emit_32(1128996864); -emit_32(1102807040); -emit_32(1089525095); -emit_32(1128996864); -emit_32(1104855066); -emit_32(1088585025); -emit_32(1128996864); -emit_32(1106903040); -emit_32(1090478817); -emit_32(1128996864); -emit_32(1108123661); -emit_32(1091340515); -emit_32(1128996864); -emit_32(1109147648); -emit_32(1091433031); -emit_32(1128996864); -emit_32(1110171661); -emit_32(1090929264); -emit_32(1128996864); -emit_32(1111195648); -emit_32(1089429192); -emit_32(1128996864); -emit_32(1112219661); -emit_32(1087959340); -emit_32(1128996864); -emit_32(1113243648); -emit_32(1088733567); -emit_32(1128996864); -emit_32(1114267661); -emit_32(1087293054); -emit_32(1128996864); -emit_32(1115291648); -emit_32(1087872937); -emit_32(1128996864); -emit_32(1116000263); -emit_32(1089774656); -emit_32(1128996864); -emit_32(1116512256); -emit_32(1091806303); -emit_32(1128996864); -emit_32(1117024263); -emit_32(1092488066); -emit_32(1128996864); -emit_32(1117536256); -emit_32(1092781238); -emit_32(1128996864); -emit_32(1118048263); -emit_32(1092423317); -emit_32(1128996864); -emit_32(1118560256); -emit_32(1092476627); -emit_32(1128996864); -emit_32(1119072263); -emit_32(1092619547); -emit_32(1128996864); -emit_32(1119584256); -emit_32(1092370794); -emit_32(1128996864); -emit_32(1120096263); -emit_32(1091790858); -emit_32(1128996864); -emit_32(1120608322); -emit_32(1091461888); -emit_32(1128996864); -emit_32(1121120289); -emit_32(1092460080); -emit_32(1128996864); -emit_32(1121632256); -emit_32(1094170916); -emit_32(1128996864); -emit_32(1122144223); -emit_32(1094599154); -emit_32(1128996864); -emit_32(1122656322); -emit_32(1095059898); -emit_32(1128996864); -emit_32(1123168289); -emit_32(1096401342); -emit_32(1128996864); -emit_32(1123680256); -emit_32(1096965371); -emit_32(1128996864); -emit_32(1124132848); -emit_32(1097641807); -emit_32(1128996864); -emit_32(1124388897); -emit_32(1099087059); -emit_32(1128996864); -emit_32(1124644880); -emit_32(1102450944); -emit_32(1128996864); -emit_32(1124900864); -emit_32(1103410286); -emit_32(1128996864); -emit_32(1125156848); -emit_32(1103813149); -emit_32(1128996864); -emit_32(1125412897); -emit_32(1101937980); -emit_32(1128996864); -emit_32(1125668880); -emit_32(1103166020); -emit_32(1128996864); -emit_32(1125924864); -emit_32(1104505681); -emit_32(1128996864); -emit_32(1126180848); -emit_32(1103994867); -emit_32(1128996864); -emit_32(1126436897); -emit_32(1104662548); -emit_32(1128996864); -emit_32(1126692880); -emit_32(1104116974); -emit_32(1128996864); -emit_32(1126948864); -emit_32(1100885629); -emit_32(1128996864); -emit_32(1127204848); -emit_32(1100638585); -emit_32(1128996864); -emit_32(1127460897); -emit_32(1100607442); -emit_32(1128996864); -emit_32(1127716880); -emit_32(1103522116); -emit_32(1128996864); -emit_32(1127972864); -emit_32(1103785676); -emit_32(1128996864); -emit_32(1128228848); -emit_32(1103795375); -emit_32(1128996864); -emit_32(1128484897); -emit_32(1101024146); -emit_32(1128996864); -emit_32(1128740880); -emit_32(1100738829); -emit_32(1128996864); -emit_32(1128996864); -emit_32(1102805677); -emit_32(1128996864); -emit_32(1129252848); -emit_32(1102445543); -emit_32(1128996864); -emit_32(1129508897); -emit_32(1102293657); -emit_32(1128996864); -emit_32(1129764880); -emit_32(1100424728); -emit_32(1128996864); -emit_32(1130020864); -emit_32(1099671273); -emit_32(1128996864); -emit_32(1130276848); -emit_32(1100387975); -emit_32(1128996864); -emit_32(1130532897); -emit_32(1101778072); -emit_32(1128996864); -emit_32(1130788880); -emit_32(1101932318); -emit_32(1128996864); -emit_32(1131044864); -emit_32(1101602383); -emit_32(1128996864); -emit_32(1131300848); -emit_32(1098804049); -emit_32(1128996864); -emit_32(1131556897); -emit_32(1098879861); -emit_32(1128996864); -emit_32(1131812880); -emit_32(1098098881); -emit_32(1128996864); -emit_32(1132068864); -emit_32(1096354890); -emit_32(1128996864); -emit_32(1081737258); -emit_32(1094837495); -emit_32(1128740880); -emit_32(1090125845); -emit_32(1095096284); -emit_32(1128740880); -emit_32(1094418484); -emit_32(1094836761); -emit_32(1128740880); -emit_32(1098514432); -emit_32(1093776966); -emit_32(1128740880); -emit_32(1100759066); -emit_32(1092523739); -emit_32(1128740880); -emit_32(1102807040); -emit_32(1091209108); -emit_32(1128740880); -emit_32(1104855066); -emit_32(1090481543); -emit_32(1128740880); -emit_32(1106903040); -emit_32(1091724850); -emit_32(1128740880); -emit_32(1108123661); -emit_32(1092918077); -emit_32(1128740880); -emit_32(1109147648); -emit_32(1092885571); -emit_32(1128740880); -emit_32(1110171661); -emit_32(1092185311); -emit_32(1128740880); -emit_32(1111195648); -emit_32(1090654935); -emit_32(1128740880); -emit_32(1112219661); -emit_32(1090140378); -emit_32(1128740880); -emit_32(1113243648); -emit_32(1091090734); -emit_32(1128740880); -emit_32(1114267661); -emit_32(1090672415); -emit_32(1128740880); -emit_32(1115291648); -emit_32(1091158399); -emit_32(1128740880); -emit_32(1116000263); -emit_32(1092233651); -emit_32(1128740880); -emit_32(1116512256); -emit_32(1093174139); -emit_32(1128740880); -emit_32(1117024263); -emit_32(1092967255); -emit_32(1128740880); -emit_32(1117536256); -emit_32(1093958998); -emit_32(1128740880); -emit_32(1118048263); -emit_32(1094070986); -emit_32(1128740880); -emit_32(1118560256); -emit_32(1094393423); -emit_32(1128740880); -emit_32(1119072263); -emit_32(1095115263); -emit_32(1128740880); -emit_32(1119584256); -emit_32(1095201351); -emit_32(1128740880); -emit_32(1120096263); -emit_32(1094051693); -emit_32(1128740880); -emit_32(1120608322); -emit_32(1092903187); -emit_32(1128740880); -emit_32(1121120289); -emit_32(1093066136); -emit_32(1128740880); -emit_32(1121632256); -emit_32(1093765641); -emit_32(1128740880); -emit_32(1122144223); -emit_32(1094858886); -emit_32(1128740880); -emit_32(1122656322); -emit_32(1095293731); -emit_32(1128740880); -emit_32(1123168289); -emit_32(1096058248); -emit_32(1128740880); -emit_32(1123680256); -emit_32(1098058197); -emit_32(1128740880); -emit_32(1124132848); -emit_32(1099090415); -emit_32(1128740880); -emit_32(1124388897); -emit_32(1099754216); -emit_32(1128740880); -emit_32(1124644880); -emit_32(1103037989); -emit_32(1128740880); -emit_32(1124900864); -emit_32(1103411334); -emit_32(1128740880); -emit_32(1125156848); -emit_32(1104264875); -emit_32(1128740880); -emit_32(1125412897); -emit_32(1101973160); -emit_32(1128740880); -emit_32(1125668880); -emit_32(1104413616); -emit_32(1128740880); -emit_32(1125924864); -emit_32(1104295861); -emit_32(1128740880); -emit_32(1126180848); -emit_32(1104392801); -emit_32(1128740880); -emit_32(1126436897); -emit_32(1104250248); -emit_32(1128740880); -emit_32(1126692880); -emit_32(1104207466); -emit_32(1128740880); -emit_32(1126948864); -emit_32(1101393507); -emit_32(1128740880); -emit_32(1127204848); -emit_32(1101210845); -emit_32(1128740880); -emit_32(1127460897); -emit_32(1100893913); -emit_32(1128740880); -emit_32(1127716880); -emit_32(1101512678); -emit_32(1128740880); -emit_32(1127972864); -emit_32(1103029862); -emit_32(1128740880); -emit_32(1128228848); -emit_32(1103145206); -emit_32(1128740880); -emit_32(1128484897); -emit_32(1100738514); -emit_32(1128740880); -emit_32(1128740880); -emit_32(1101464234); -emit_32(1128740880); -emit_32(1128996864); -emit_32(1102046560); -emit_32(1128740880); -emit_32(1129252848); -emit_32(1102012062); -emit_32(1128740880); -emit_32(1129508897); -emit_32(1101022678); -emit_32(1128740880); -emit_32(1129764880); -emit_32(1098697723); -emit_32(1128740880); -emit_32(1130020864); -emit_32(1098672662); -emit_32(1128740880); -emit_32(1130276848); -emit_32(1098798911); -emit_32(1128740880); -emit_32(1130532897); -emit_32(1100908750); -emit_32(1128740880); -emit_32(1130788880); -emit_32(1100999243); -emit_32(1128740880); -emit_32(1131044864); -emit_32(1100710255); -emit_32(1128740880); -emit_32(1131300848); -emit_32(1097055338); -emit_32(1128740880); -emit_32(1131556897); -emit_32(1097777807); -emit_32(1128740880); -emit_32(1131812880); -emit_32(1096376071); -emit_32(1128740880); -emit_32(1132068864); -emit_32(1094422364); -emit_32(1128740880); -emit_32(1081737258); -emit_32(1096602144); -emit_32(1128484897); -emit_32(1090125845); -emit_32(1096605604); -emit_32(1128484897); -emit_32(1094418484); -emit_32(1095915222); -emit_32(1128484897); -emit_32(1098514432); -emit_32(1094988700); -emit_32(1128484897); -emit_32(1100759066); -emit_32(1093318738); -emit_32(1128484897); -emit_32(1102807040); -emit_32(1092655199); -emit_32(1128484897); -emit_32(1104855066); -emit_32(1091908927); -emit_32(1128484897); -emit_32(1106903040); -emit_32(1093146457); -emit_32(1128484897); -emit_32(1108123661); -emit_32(1093729255); -emit_32(1128484897); -emit_32(1109147648); -emit_32(1093918628); -emit_32(1128484897); -emit_32(1110171661); -emit_32(1093116048); -emit_32(1128484897); -emit_32(1111195648); -emit_32(1091599514); -emit_32(1128484897); -emit_32(1112219661); -emit_32(1092064610); -emit_32(1128484897); -emit_32(1113243648); -emit_32(1092256562); -emit_32(1128484897); -emit_32(1114267661); -emit_32(1092232937); -emit_32(1128484897); -emit_32(1115291648); -emit_32(1092569216); -emit_32(1128484897); -emit_32(1116000263); -emit_32(1093499827); -emit_32(1128484897); -emit_32(1116512256); -emit_32(1094494401); -emit_32(1128484897); -emit_32(1117024263); -emit_32(1094275249); -emit_32(1128484897); -emit_32(1117536256); -emit_32(1095835320); -emit_32(1128484897); -emit_32(1118048263); -emit_32(1096603927); -emit_32(1128484897); -emit_32(1118560256); -emit_32(1095737174); -emit_32(1128484897); -emit_32(1119072263); -emit_32(1097480536); -emit_32(1128484897); -emit_32(1119584256); -emit_32(1097454217); -emit_32(1128484897); -emit_32(1120096263); -emit_32(1096093480); -emit_32(1128484897); -emit_32(1120608322); -emit_32(1095489500); -emit_32(1128484897); -emit_32(1121120289); -emit_32(1095558601); -emit_32(1128484897); -emit_32(1121632256); -emit_32(1094835713); -emit_32(1128484897); -emit_32(1122144223); -emit_32(1095452590); -emit_32(1128484897); -emit_32(1122656322); -emit_32(1095192334); -emit_32(1128484897); -emit_32(1123168289); -emit_32(1096359399); -emit_32(1128484897); -emit_32(1123680256); -emit_32(1098052325); -emit_32(1128484897); -emit_32(1124132848); -emit_32(1099302384); -emit_32(1128484897); -emit_32(1124388897); -emit_32(1100571948); -emit_32(1128484897); -emit_32(1124644880); -emit_32(1103063207); -emit_32(1128484897); -emit_32(1124900864); -emit_32(1104141301); -emit_32(1128484897); -emit_32(1125156848); -emit_32(1104236039); -emit_32(1128484897); -emit_32(1125412897); -emit_32(1101777338); -emit_32(1128484897); -emit_32(1125668880); -emit_32(1103904794); -emit_32(1128484897); -emit_32(1125924864); -emit_32(1104679954); -emit_32(1128484897); -emit_32(1126180848); -emit_32(1104977645); -emit_32(1128484897); -emit_32(1126436897); -emit_32(1104719800); -emit_32(1128484897); -emit_32(1126692880); -emit_32(1104308181); -emit_32(1128484897); -emit_32(1126948864); -emit_32(1102818784); -emit_32(1128484897); -emit_32(1127204848); -emit_32(1104373455); -emit_32(1128484897); -emit_32(1127460897); -emit_32(1101605267); -emit_32(1128484897); -emit_32(1127716880); -emit_32(1101582618); -emit_32(1128484897); -emit_32(1127972864); -emit_32(1103712433); -emit_32(1128484897); -emit_32(1128228848); -emit_32(1103557086); -emit_32(1128484897); -emit_32(1128484897); -emit_32(1103194069); -emit_32(1128484897); -emit_32(1128740880); -emit_32(1101005482); -emit_32(1128484897); -emit_32(1128996864); -emit_32(1102896693); -emit_32(1128484897); -emit_32(1129252848); -emit_32(1102422632); -emit_32(1128484897); -emit_32(1129508897); -emit_32(1099646737); -emit_32(1128484897); -emit_32(1129764880); -emit_32(1099338403); -emit_32(1128484897); -emit_32(1130020864); -emit_32(1099043701); -emit_32(1128484897); -emit_32(1130276848); -emit_32(1098432643); -emit_32(1128484897); -emit_32(1130532897); -emit_32(1101270824); -emit_32(1128484897); -emit_32(1130788880); -emit_32(1101020319); -emit_32(1128484897); -emit_32(1131044864); -emit_32(1100721370); -emit_32(1128484897); -emit_32(1131300848); -emit_32(1097164495); -emit_32(1128484897); -emit_32(1131556897); -emit_32(1096670721); -emit_32(1128484897); -emit_32(1131812880); -emit_32(1095529765); -emit_32(1128484897); -emit_32(1132068864); -emit_32(1095414841); -emit_32(1128484897); -emit_32(1081737258); -emit_32(1097223216); -emit_32(1128228848); -emit_32(1090125845); -emit_32(1097159043); -emit_32(1128228848); -emit_32(1094418484); -emit_32(1096303510); -emit_32(1128228848); -emit_32(1098514432); -emit_32(1095078878); -emit_32(1128228848); -emit_32(1100759066); -emit_32(1093559491); -emit_32(1128228848); -emit_32(1102807040); -emit_32(1093420450); -emit_32(1128228848); -emit_32(1104855066); -emit_32(1094782865); -emit_32(1128228848); -emit_32(1106903040); -emit_32(1094716699); -emit_32(1128228848); -emit_32(1108123661); -emit_32(1095422496); -emit_32(1128228848); -emit_32(1109147648); -emit_32(1095210998); -emit_32(1128228848); -emit_32(1110171661); -emit_32(1093591892); -emit_32(1128228848); -emit_32(1111195648); -emit_32(1093748025); -emit_32(1128228848); -emit_32(1112219661); -emit_32(1093936139); -emit_32(1128228848); -emit_32(1113243648); -emit_32(1093754421); -emit_32(1128228848); -emit_32(1114267661); -emit_32(1092768026); -emit_32(1128228848); -emit_32(1115291648); -emit_32(1093788919); -emit_32(1128228848); -emit_32(1116000263); -emit_32(1094950951); -emit_32(1128228848); -emit_32(1116512256); -emit_32(1095041758); -emit_32(1128228848); -emit_32(1117024263); -emit_32(1096487325); -emit_32(1128228848); -emit_32(1117536256); -emit_32(1097262852); -emit_32(1128228848); -emit_32(1118048263); -emit_32(1097536530); -emit_32(1128228848); -emit_32(1118560256); -emit_32(1098558367); -emit_32(1128228848); -emit_32(1119072263); -emit_32(1098952212); -emit_32(1128228848); -emit_32(1119584256); -emit_32(1099049048); -emit_32(1128228848); -emit_32(1120096263); -emit_32(1099095553); -emit_32(1128228848); -emit_32(1120608322); -emit_32(1098511915); -emit_32(1128228848); -emit_32(1121120289); -emit_32(1097554566); -emit_32(1128228848); -emit_32(1121632256); -emit_32(1096990851); -emit_32(1128228848); -emit_32(1122144223); -emit_32(1096447479); -emit_32(1128228848); -emit_32(1122656322); -emit_32(1097522584); -emit_32(1128228848); -emit_32(1123168289); -emit_32(1098051486); -emit_32(1128228848); -emit_32(1123680256); -emit_32(1099167013); -emit_32(1128228848); -emit_32(1124132848); -emit_32(1099703150); -emit_32(1128228848); -emit_32(1124388897); -emit_32(1102297537); -emit_32(1128228848); -emit_32(1124644880); -emit_32(1103741898); -emit_32(1128228848); -emit_32(1124900864); -emit_32(1104507778); -emit_32(1128228848); -emit_32(1125156848); -emit_32(1104918977); -emit_32(1128228848); -emit_32(1125412897); -emit_32(1102477630); -emit_32(1128228848); -emit_32(1125668880); -emit_32(1102229537); -emit_32(1128228848); -emit_32(1125924864); -emit_32(1105767065); -emit_32(1128228848); -emit_32(1126180848); -emit_32(1105996231); -emit_32(1128228848); -emit_32(1126436897); -emit_32(1105933527); -emit_32(1128228848); -emit_32(1126692880); -emit_32(1105463240); -emit_32(1128228848); -emit_32(1126948864); -emit_32(1105052985); -emit_32(1128228848); -emit_32(1127204848); -emit_32(1105035736); -emit_32(1128228848); -emit_32(1127460897); -emit_32(1104068424); -emit_32(1128228848); -emit_32(1127716880); -emit_32(1102737467); -emit_32(1128228848); -emit_32(1127972864); -emit_32(1105007739); -emit_32(1128228848); -emit_32(1128228848); -emit_32(1104220835); -emit_32(1128228848); -emit_32(1128484897); -emit_32(1104506624); -emit_32(1128228848); -emit_32(1128740880); -emit_32(1102445019); -emit_32(1128228848); -emit_32(1128996864); -emit_32(1102497553); -emit_32(1128228848); -emit_32(1129252848); -emit_32(1101981444); -emit_32(1128228848); -emit_32(1129508897); -emit_32(1101313920); -emit_32(1128228848); -emit_32(1129764880); -emit_32(1101362889); -emit_32(1128228848); -emit_32(1130020864); -emit_32(1098897582); -emit_32(1128228848); -emit_32(1130276848); -emit_32(1099105095); -emit_32(1128228848); -emit_32(1130532897); -emit_32(1101849428); -emit_32(1128228848); -emit_32(1130788880); -emit_32(1101462346); -emit_32(1128228848); -emit_32(1131044864); -emit_32(1101111964); -emit_32(1128228848); -emit_32(1131300848); -emit_32(1098211184); -emit_32(1128228848); -emit_32(1131556897); -emit_32(1097551315); -emit_32(1128228848); -emit_32(1131812880); -emit_32(1097268933); -emit_32(1128228848); -emit_32(1132068864); -emit_32(1096928356); -emit_32(1128228848); -emit_32(1081737258); -emit_32(1096992739); -emit_32(1127972864); -emit_32(1090125866); -emit_32(1097387423); -emit_32(1127972864); -emit_32(1094418484); -emit_32(1096399769); -emit_32(1127972864); -emit_32(1098514432); -emit_32(1094991636); -emit_32(1127972864); -emit_32(1100759066); -emit_32(1094441239); -emit_32(1127972864); -emit_32(1102807040); -emit_32(1095107189); -emit_32(1127972864); -emit_32(1104855066); -emit_32(1096891761); -emit_32(1127972864); -emit_32(1106903040); -emit_32(1096776417); -emit_32(1127972864); -emit_32(1108123661); -emit_32(1097155058); -emit_32(1127972864); -emit_32(1109147648); -emit_32(1095872545); -emit_32(1127972864); -emit_32(1110171661); -emit_32(1095805226); -emit_32(1127972864); -emit_32(1111195648); -emit_32(1096095367); -emit_32(1127972864); -emit_32(1112219661); -emit_32(1095697223); -emit_32(1127972864); -emit_32(1113243648); -emit_32(1095695440); -emit_32(1127972864); -emit_32(1114267661); -emit_32(1094850498); -emit_32(1127972864); -emit_32(1115291648); -emit_32(1095604738); -emit_32(1127972864); -emit_32(1116000263); -emit_32(1095794636); -emit_32(1127972864); -emit_32(1116512256); -emit_32(1095935669); -emit_32(1127972864); -emit_32(1117024263); -emit_32(1097458201); -emit_32(1127972864); -emit_32(1117536256); -emit_32(1099005428); -emit_32(1127972864); -emit_32(1118048263); -emit_32(1099075106); -emit_32(1127972864); -emit_32(1118560256); -emit_32(1099380713); -emit_32(1127972864); -emit_32(1119072263); -emit_32(1099718669); -emit_32(1127972864); -emit_32(1119584256); -emit_32(1100017356); -emit_32(1127972864); -emit_32(1120096263); -emit_32(1100344092); -emit_32(1127972864); -emit_32(1120608322); -emit_32(1100094793); -emit_32(1127972864); -emit_32(1121120289); -emit_32(1099700109); -emit_32(1127972864); -emit_32(1121632256); -emit_32(1099356386); -emit_32(1127972864); -emit_32(1122144223); -emit_32(1098732746); -emit_32(1127972864); -emit_32(1122656322); -emit_32(1099139855); -emit_32(1127972864); -emit_32(1123168289); -emit_32(1099468531); -emit_32(1127972864); -emit_32(1123680256); -emit_32(1099976619); -emit_32(1127972864); -emit_32(1124132848); -emit_32(1100936485); -emit_32(1127972864); -emit_32(1124388897); -emit_32(1103548174); -emit_32(1127972864); -emit_32(1124644880); -emit_32(1104509036); -emit_32(1127972864); -emit_32(1124900864); -emit_32(1105478183); -emit_32(1127972864); -emit_32(1125156848); -emit_32(1105595466); -emit_32(1127972864); -emit_32(1125412897); -emit_32(1103928335); -emit_32(1127972864); -emit_32(1125668880); -emit_32(1104097732); -emit_32(1127972864); -emit_32(1125924864); -emit_32(1105747981); -emit_32(1127972864); -emit_32(1126180848); -emit_32(1107329129); -emit_32(1127972864); -emit_32(1126436897); -emit_32(1107330807); -emit_32(1127972864); -emit_32(1126692880); -emit_32(1107185474); -emit_32(1127972864); -emit_32(1126948864); -emit_32(1106443082); -emit_32(1127972864); -emit_32(1127204848); -emit_32(1106311748); -emit_32(1127972864); -emit_32(1127460897); -emit_32(1106434117); -emit_32(1127972864); -emit_32(1127716880); -emit_32(1106504581); -emit_32(1127972864); -emit_32(1127972864); -emit_32(1105930800); -emit_32(1127972864); -emit_32(1128228848); -emit_32(1106592085); -emit_32(1127972864); -emit_32(1128484897); -emit_32(1106700245); -emit_32(1127972864); -emit_32(1128740880); -emit_32(1104209143); -emit_32(1127972864); -emit_32(1128996864); -emit_32(1103888803); -emit_32(1127972864); -emit_32(1129252848); -emit_32(1103514986); -emit_32(1127972864); -emit_32(1129508897); -emit_32(1104960710); -emit_32(1127972864); -emit_32(1129764880); -emit_32(1103902592); -emit_32(1127972864); -emit_32(1130020864); -emit_32(1101125124); -emit_32(1127972864); -emit_32(1130276848); -emit_32(1099577950); -emit_32(1127972864); -emit_32(1130532897); -emit_32(1102071045); -emit_32(1127972864); -emit_32(1130788880); -emit_32(1102154983); -emit_32(1127972864); -emit_32(1131044864); -emit_32(1101877530); -emit_32(1127972864); -emit_32(1131300848); -emit_32(1099361367); -emit_32(1127972864); -emit_32(1131556897); -emit_32(1098597270); -emit_32(1127972864); -emit_32(1131812880); -emit_32(1098904817); -emit_32(1127972864); -emit_32(1132068864); -emit_32(1098078224); -emit_32(1127972864); -emit_32(1081737258); -emit_32(1096797703); -emit_32(1127716880); -emit_32(1090125866); -emit_32(1097168375); -emit_32(1127716880); -emit_32(1094418484); -emit_32(1095948462); -emit_32(1127716880); -emit_32(1098514432); -emit_32(1095608618); -emit_32(1127716880); -emit_32(1100759066); -emit_32(1096751356); -emit_32(1127716880); -emit_32(1102807040); -emit_32(1097561276); -emit_32(1127716880); -emit_32(1104855066); -emit_32(1097849635); -emit_32(1127716880); -emit_32(1106903040); -emit_32(1098303144); -emit_32(1127716880); -emit_32(1108123661); -emit_32(1098264347); -emit_32(1127716880); -emit_32(1109147648); -emit_32(1097068341); -emit_32(1127716880); -emit_32(1110171661); -emit_32(1098172806); -emit_32(1127716880); -emit_32(1111195648); -emit_32(1098939053); -emit_32(1127716880); -emit_32(1112219661); -emit_32(1097712586); -emit_32(1127716880); -emit_32(1113243648); -emit_32(1097830341); -emit_32(1127716880); -emit_32(1114267661); -emit_32(1096396623); -emit_32(1127716880); -emit_32(1115291648); -emit_32(1095821689); -emit_32(1127716880); -emit_32(1116000263); -emit_32(1096202427); -emit_32(1127716880); -emit_32(1116512256); -emit_32(1096892495); -emit_32(1127716880); -emit_32(1117024263); -emit_32(1098192309); -emit_32(1127716880); -emit_32(1117536256); -emit_32(1099117101); -emit_32(1127716880); -emit_32(1118048263); -emit_32(1099661522); -emit_32(1127716880); -emit_32(1118560256); -emit_32(1099930114); -emit_32(1127716880); -emit_32(1119072263); -emit_32(1100208459); -emit_32(1127716880); -emit_32(1119584256); -emit_32(1100702129); -emit_32(1127716880); -emit_32(1120096263); -emit_32(1101093614); -emit_32(1127716880); -emit_32(1120608322); -emit_32(1101089158); -emit_32(1127716880); -emit_32(1121120289); -emit_32(1100770810); -emit_32(1127716880); -emit_32(1121632256); -emit_32(1100500959); -emit_32(1127716880); -emit_32(1122144223); -emit_32(1100074032); -emit_32(1127716880); -emit_32(1122656322); -emit_32(1100304509); -emit_32(1127716880); -emit_32(1123168289); -emit_32(1100602881); -emit_32(1127716880); -emit_32(1123680256); -emit_32(1101222799); -emit_32(1127716880); -emit_32(1124132848); -emit_32(1101588647); -emit_32(1127716880); -emit_32(1124388897); -emit_32(1103974262); -emit_32(1127716880); -emit_32(1124644880); -emit_32(1104918190); -emit_32(1127716880); -emit_32(1124900864); -emit_32(1105762661); -emit_32(1127716880); -emit_32(1125156848); -emit_32(1106612899); -emit_32(1127716880); -emit_32(1125412897); -emit_32(1104639689); -emit_32(1127716880); -emit_32(1125668880); -emit_32(1105198265); -emit_32(1127716880); -emit_32(1125924864); -emit_32(1105413748); -emit_32(1127716880); -emit_32(1126180848); -emit_32(1107783057); -emit_32(1127716880); -emit_32(1126436897); -emit_32(1107991672); -emit_32(1127716880); -emit_32(1126692880); -emit_32(1107664568); -emit_32(1127716880); -emit_32(1126948864); -emit_32(1107212999); -emit_32(1127716880); -emit_32(1127204848); -emit_32(1107232712); -emit_32(1127716880); -emit_32(1127460897); -emit_32(1107399803); -emit_32(1127716880); -emit_32(1127716880); -emit_32(1107519026); -emit_32(1127716880); -emit_32(1127972864); -emit_32(1105586291); -emit_32(1127716880); -emit_32(1128228848); -emit_32(1107722319); -emit_32(1127716880); -emit_32(1128484897); -emit_32(1107549828); -emit_32(1127716880); -emit_32(1128740880); -emit_32(1107213051); -emit_32(1127716880); -emit_32(1128996864); -emit_32(1104407953); -emit_32(1127716880); -emit_32(1129252848); -emit_32(1105963988); -emit_32(1127716880); -emit_32(1129508897); -emit_32(1105610303); -emit_32(1127716880); -emit_32(1129764880); -emit_32(1104453042); -emit_32(1127716880); -emit_32(1130020864); -emit_32(1103642178); -emit_32(1127716880); -emit_32(1130276848); -emit_32(1100372928); -emit_32(1127716880); -emit_32(1130532897); -emit_32(1102654577); -emit_32(1127716880); -emit_32(1130788880); -emit_32(1102227911); -emit_32(1127716880); -emit_32(1131044864); -emit_32(1101889641); -emit_32(1127716880); -emit_32(1131300848); -emit_32(1099123340); -emit_32(1127716880); -emit_32(1131556897); -emit_32(1099152595); -emit_32(1127716880); -emit_32(1131812880); -emit_32(1099081921); -emit_32(1127716880); -emit_32(1132068864); -emit_32(1098933705); -emit_32(1127716880); -emit_32(1081737258); -emit_32(1097521955); -emit_32(1127460897); -emit_32(1090125866); -emit_32(1097290954); -emit_32(1127460897); -emit_32(1094418484); -emit_32(1096535664); -emit_32(1127460897); -emit_32(1098514432); -emit_32(1096791202); -emit_32(1127460897); -emit_32(1100759066); -emit_32(1097822057); -emit_32(1127460897); -emit_32(1102807040); -emit_32(1098240020); -emit_32(1127460897); -emit_32(1104855066); -emit_32(1098978217); -emit_32(1127460897); -emit_32(1106903040); -emit_32(1099121977); -emit_32(1127460897); -emit_32(1108123661); -emit_32(1099009884); -emit_32(1127460897); -emit_32(1109147648); -emit_32(1099001233); -emit_32(1127460897); -emit_32(1110171661); -emit_32(1099564791); -emit_32(1127460897); -emit_32(1111195648); -emit_32(1099604427); -emit_32(1127460897); -emit_32(1112219661); -emit_32(1098912681); -emit_32(1127460897); -emit_32(1113243648); -emit_32(1098358823); -emit_32(1127460897); -emit_32(1114267661); -emit_32(1096897318); -emit_32(1127460897); -emit_32(1115291648); -emit_32(1095649408); -emit_32(1127460897); -emit_32(1116000263); -emit_32(1096935801); -emit_32(1127460897); -emit_32(1116512256); -emit_32(1097798359); -emit_32(1127460897); -emit_32(1117024263); -emit_32(1098804363); -emit_32(1127460897); -emit_32(1117536256); -emit_32(1099628859); -emit_32(1127460897); -emit_32(1118048263); -emit_32(1100288570); -emit_32(1127460897); -emit_32(1118560256); -emit_32(1100879076); -emit_32(1127460897); -emit_32(1119072263); -emit_32(1100927310); -emit_32(1127460897); -emit_32(1119584256); -emit_32(1101310879); -emit_32(1127460897); -emit_32(1120096263); -emit_32(1101683124); -emit_32(1127460897); -emit_32(1120608322); -emit_32(1101623879); -emit_32(1127460897); -emit_32(1121120289); -emit_32(1101768950); -emit_32(1127460897); -emit_32(1121632256); -emit_32(1101614495); -emit_32(1127460897); -emit_32(1122144223); -emit_32(1101255882); -emit_32(1127460897); -emit_32(1122656322); -emit_32(1101305165); -emit_32(1127460897); -emit_32(1123168289); -emit_32(1101210164); -emit_32(1127460897); -emit_32(1123680256); -emit_32(1101974785); -emit_32(1127460897); -emit_32(1124132848); -emit_32(1102412304); -emit_32(1127460897); -emit_32(1124388897); -emit_32(1102794981); -emit_32(1127460897); -emit_32(1124644880); -emit_32(1105358121); -emit_32(1127460897); -emit_32(1124900864); -emit_32(1106543274); -emit_32(1127460897); -emit_32(1125156848); -emit_32(1107495748); -emit_32(1127460897); -emit_32(1125412897); -emit_32(1105955861); -emit_32(1127460897); -emit_32(1125668880); -emit_32(1106429084); -emit_32(1127460897); -emit_32(1125924864); -emit_32(1107140909); -emit_32(1127460897); -emit_32(1126180848); -emit_32(1108420067); -emit_32(1127460897); -emit_32(1126436897); -emit_32(1108539421); -emit_32(1127460897); -emit_32(1126692880); -emit_32(1108278824); -emit_32(1127460897); -emit_32(1126948864); -emit_32(1106248099); -emit_32(1127460897); -emit_32(1127204848); -emit_32(1106077182); -emit_32(1127460897); -emit_32(1127460897); -emit_32(1107959900); -emit_32(1127460897); -emit_32(1127716880); -emit_32(1107937880); -emit_32(1127460897); -emit_32(1127972864); -emit_32(1107912006); -emit_32(1127460897); -emit_32(1128228848); -emit_32(1107668710); -emit_32(1127460897); -emit_32(1128484897); -emit_32(1106012327); -emit_32(1127460897); -emit_32(1128740880); -emit_32(1105705199); -emit_32(1127460897); -emit_32(1128996864); -emit_32(1105290802); -emit_32(1127460897); -emit_32(1129252848); -emit_32(1106539918); -emit_32(1127460897); -emit_32(1129508897); -emit_32(1105540573); -emit_32(1127460897); -emit_32(1129764880); -emit_32(1104772701); -emit_32(1127460897); -emit_32(1130020864); -emit_32(1101448086); -emit_32(1127460897); -emit_32(1130276848); -emit_32(1101175508); -emit_32(1127460897); -emit_32(1130532897); -emit_32(1103296830); -emit_32(1127460897); -emit_32(1130788880); -emit_32(1102692850); -emit_32(1127460897); -emit_32(1131044864); -emit_32(1101873336); -emit_32(1127460897); -emit_32(1131300848); -emit_32(1099038038); -emit_32(1127460897); -emit_32(1131556897); -emit_32(1099314443); -emit_32(1127460897); -emit_32(1131812880); -emit_32(1099183371); -emit_32(1127460897); -emit_32(1132068864); -emit_32(1098779931); -emit_32(1127460897); -emit_32(1081737258); -emit_32(1098169765); -emit_32(1127204848); -emit_32(1090125866); -emit_32(1097937715); -emit_32(1127204848); -emit_32(1094418484); -emit_32(1097656592); -emit_32(1127204848); -emit_32(1098514432); -emit_32(1097279105); -emit_32(1127204848); -emit_32(1100759066); -emit_32(1098705587); -emit_32(1127204848); -emit_32(1102807040); -emit_32(1099191760); -emit_32(1127204848); -emit_32(1104855066); -emit_32(1099316121); -emit_32(1127204848); -emit_32(1106903040); -emit_32(1099533910); -emit_32(1127204848); -emit_32(1108123661); -emit_32(1099430573); -emit_32(1127204848); -emit_32(1109147648); -emit_32(1099413848); -emit_32(1127204848); -emit_32(1110171661); -emit_32(1099829504); -emit_32(1127204848); -emit_32(1111195648); -emit_32(1100016517); -emit_32(1127204848); -emit_32(1112219661); -emit_32(1099249693); -emit_32(1127204848); -emit_32(1113243648); -emit_32(1098799645); -emit_32(1127204848); -emit_32(1114267661); -emit_32(1098342780); -emit_32(1127204848); -emit_32(1115291648); -emit_32(1097196791); -emit_32(1127204848); -emit_32(1116000263); -emit_32(1097901330); -emit_32(1127204848); -emit_32(1116512256); -emit_32(1098866124); -emit_32(1127204848); -emit_32(1117024263); -emit_32(1099404516); -emit_32(1127204848); -emit_32(1117536256); -emit_32(1099985741); -emit_32(1127204848); -emit_32(1118048263); -emit_32(1100426563); -emit_32(1127204848); -emit_32(1118560256); -emit_32(1101059169); -emit_32(1127204848); -emit_32(1119072263); -emit_32(1101194959); -emit_32(1127204848); -emit_32(1119584256); -emit_32(1101016072); -emit_32(1127204848); -emit_32(1120096263); -emit_32(1101472308); -emit_32(1127204848); -emit_32(1120608322); -emit_32(1101985323); -emit_32(1127204848); -emit_32(1121120289); -emit_32(1102436316); -emit_32(1127204848); -emit_32(1121632256); -emit_32(1102413719); -emit_32(1127204848); -emit_32(1122144223); -emit_32(1101785779); -emit_32(1127204848); -emit_32(1122656322); -emit_32(1101731673); -emit_32(1127204848); -emit_32(1123168289); -emit_32(1102273262); -emit_32(1127204848); -emit_32(1123680256); -emit_32(1102879182); -emit_32(1127204848); -emit_32(1124132848); -emit_32(1103081819); -emit_32(1127204848); -emit_32(1124388897); -emit_32(1103419985); -emit_32(1127204848); -emit_32(1124644880); -emit_32(1106708634); -emit_32(1127204848); -emit_32(1124900864); -emit_32(1107116530); -emit_32(1127204848); -emit_32(1125156848); -emit_32(1107879893); -emit_32(1127204848); -emit_32(1125412897); -emit_32(1106751573); -emit_32(1127204848); -emit_32(1125668880); -emit_32(1108314712); -emit_32(1127204848); -emit_32(1125924864); -emit_32(1109036342); -emit_32(1127204848); -emit_32(1126180848); -emit_32(1109160047); -emit_32(1127204848); -emit_32(1126436897); -emit_32(1109143323); -emit_32(1127204848); -emit_32(1126692880); -emit_32(1108877692); -emit_32(1127204848); -emit_32(1126948864); -emit_32(1108518135); -emit_32(1127204848); -emit_32(1127204848); -emit_32(1108362238); -emit_32(1127204848); -emit_32(1127460897); -emit_32(1108376997); -emit_32(1127204848); -emit_32(1127716880); -emit_32(1108363313); -emit_32(1127204848); -emit_32(1127972864); -emit_32(1108321213); -emit_32(1127204848); -emit_32(1128228848); -emit_32(1106462953); -emit_32(1127204848); -emit_32(1128484897); -emit_32(1106272584); -emit_32(1127204848); -emit_32(1128740880); -emit_32(1105682131); -emit_32(1127204848); -emit_32(1128996864); -emit_32(1107532055); -emit_32(1127204848); -emit_32(1129252848); -emit_32(1106896539); -emit_32(1127204848); -emit_32(1129508897); -emit_32(1106257851); -emit_32(1127204848); -emit_32(1129764880); -emit_32(1102788428); -emit_32(1127204848); -emit_32(1130020864); -emit_32(1101910298); -emit_32(1127204848); -emit_32(1130276848); -emit_32(1101035943); -emit_32(1127204848); -emit_32(1130532897); -emit_32(1103745044); -emit_32(1127204848); -emit_32(1130788880); -emit_32(1103183164); -emit_32(1127204848); -emit_32(1131044864); -emit_32(1102075291); -emit_32(1127204848); -emit_32(1131300848); -emit_32(1098519780); -emit_32(1127204848); -emit_32(1131556897); -emit_32(1098358928); -emit_32(1127204848); -emit_32(1131812880); -emit_32(1098789788); -emit_32(1127204848); -emit_32(1132068864); -emit_32(1097999476); -emit_32(1127204848); -emit_32(1081737258); -emit_32(1098949119); -emit_32(1126948864); -emit_32(1090125845); -emit_32(1098913939); -emit_32(1126948864); -emit_32(1094418484); -emit_32(1097887384); -emit_32(1126948864); -emit_32(1098514432); -emit_32(1098001888); -emit_32(1126948864); -emit_32(1100759066); -emit_32(1099097545); -emit_32(1126948864); -emit_32(1102807040); -emit_32(1099290588); -emit_32(1126948864); -emit_32(1104855066); -emit_32(1099551474); -emit_32(1126948864); -emit_32(1106903040); -emit_32(1099163605); -emit_32(1126948864); -emit_32(1108123661); -emit_32(1099190711); -emit_32(1126948864); -emit_32(1109147648); -emit_32(1099720557); -emit_32(1126948864); -emit_32(1110171661); -emit_32(1099796002); -emit_32(1126948864); -emit_32(1111195648); -emit_32(1099824156); -emit_32(1126948864); -emit_32(1112219661); -emit_32(1099671431); -emit_32(1126948864); -emit_32(1113243648); -emit_32(1099204133); -emit_32(1126948864); -emit_32(1114267661); -emit_32(1098311323); -emit_32(1126948864); -emit_32(1115291648); -emit_32(1097819226); -emit_32(1126948864); -emit_32(1116000263); -emit_32(1098122894); -emit_32(1126948864); -emit_32(1116512256); -emit_32(1099069548); -emit_32(1126948864); -emit_32(1117024263); -emit_32(1099712640); -emit_32(1126948864); -emit_32(1117536256); -emit_32(1100258161); -emit_32(1126948864); -emit_32(1118048263); -emit_32(1100567858); -emit_32(1126948864); -emit_32(1118560256); -emit_32(1100912735); -emit_32(1126948864); -emit_32(1119072263); -emit_32(1101335259); -emit_32(1126948864); -emit_32(1119584256); -emit_32(1101300236); -emit_32(1126948864); -emit_32(1120096263); -emit_32(1101307209); -emit_32(1126948864); -emit_32(1120608322); -emit_32(1101813252); -emit_32(1126948864); -emit_32(1121120289); -emit_32(1102347239); -emit_32(1126948864); -emit_32(1121632256); -emit_32(1102583851); -emit_32(1126948864); -emit_32(1122144223); -emit_32(1102372458); -emit_32(1126948864); -emit_32(1122656322); -emit_32(1102499126); -emit_32(1126948864); -emit_32(1123168289); -emit_32(1102697097); -emit_32(1126948864); -emit_32(1123680256); -emit_32(1103294890); -emit_32(1126948864); -emit_32(1124132848); -emit_32(1103928177); -emit_32(1126948864); -emit_32(1124388897); -emit_32(1105053195); -emit_32(1126948864); -emit_32(1124644880); -emit_32(1107678488); -emit_32(1126948864); -emit_32(1124900864); -emit_32(1107666613); -emit_32(1126948864); -emit_32(1125156848); -emit_32(1108068663); -emit_32(1126948864); -emit_32(1125412897); -emit_32(1107030075); -emit_32(1126948864); -emit_32(1125668880); -emit_32(1109044940); -emit_32(1126948864); -emit_32(1125924864); -emit_32(1109464528); -emit_32(1126948864); -emit_32(1126180848); -emit_32(1109502329); -emit_32(1126948864); -emit_32(1126436897); -emit_32(1109661634); -emit_32(1126948864); -emit_32(1126692880); -emit_32(1109335998); -emit_32(1126948864); -emit_32(1126948864); -emit_32(1108826548); -emit_32(1126948864); -emit_32(1127204848); -emit_32(1108883774); -emit_32(1126948864); -emit_32(1127460897); -emit_32(1107300110); -emit_32(1126948864); -emit_32(1127716880); -emit_32(1108142929); -emit_32(1126948864); -emit_32(1127972864); -emit_32(1108009838); -emit_32(1126948864); -emit_32(1128228848); -emit_32(1107061165); -emit_32(1126948864); -emit_32(1128484897); -emit_32(1105722553); -emit_32(1126948864); -emit_32(1128740880); -emit_32(1106183035); -emit_32(1126948864); -emit_32(1128996864); -emit_32(1107464133); -emit_32(1126948864); -emit_32(1129252848); -emit_32(1106950907); -emit_32(1126948864); -emit_32(1129508897); -emit_32(1105415740); -emit_32(1126948864); -emit_32(1129764880); -emit_32(1102572893); -emit_32(1126948864); -emit_32(1130020864); -emit_32(1101736444); -emit_32(1126948864); -emit_32(1130276848); -emit_32(1103790604); -emit_32(1126948864); -emit_32(1130532897); -emit_32(1103702943); -emit_32(1126948864); -emit_32(1130788880); -emit_32(1102824918); -emit_32(1126948864); -emit_32(1131044864); -emit_32(1102312374); -emit_32(1126948864); -emit_32(1131300848); -emit_32(1098839595); -emit_32(1126948864); -emit_32(1131556897); -emit_32(1098161272); -emit_32(1126948864); -emit_32(1131812880); -emit_32(1097697906); -emit_32(1126948864); -emit_32(1132068864); -emit_32(1097362991); -emit_32(1126948864); -emit_32(1081737258); -emit_32(1099508220); -emit_32(1126692880); -emit_32(1090125845); -emit_32(1099273653); -emit_32(1126692880); -emit_32(1094418484); -emit_32(1099205496); -emit_32(1126692880); -emit_32(1098514432); -emit_32(1098995047); -emit_32(1126692880); -emit_32(1100759066); -emit_32(1099092355); -emit_32(1126692880); -emit_32(1102807040); -emit_32(1099190187); -emit_32(1126692880); -emit_32(1104855066); -emit_32(1099331011); -emit_32(1126692880); -emit_32(1106903040); -emit_32(1099536112); -emit_32(1126692880); -emit_32(1108123661); -emit_32(1099882824); -emit_32(1126692880); -emit_32(1109147648); -emit_32(1100241332); -emit_32(1126692880); -emit_32(1110171661); -emit_32(1100308441); -emit_32(1126692880); -emit_32(1111195648); -emit_32(1099924085); -emit_32(1126692880); -emit_32(1112219661); -emit_32(1099715209); -emit_32(1126692880); -emit_32(1113243648); -emit_32(1099688575); -emit_32(1126692880); -emit_32(1114267661); -emit_32(1099415106); -emit_32(1126692880); -emit_32(1115291648); -emit_32(1099022572); -emit_32(1126692880); -emit_32(1116000263); -emit_32(1098456655); -emit_32(1126692880); -emit_32(1116512256); -emit_32(1099432827); -emit_32(1126692880); -emit_32(1117024263); -emit_32(1099963931); -emit_32(1126692880); -emit_32(1117536256); -emit_32(1100471914); -emit_32(1126692880); -emit_32(1118048263); -emit_32(1100910271); -emit_32(1126692880); -emit_32(1118560256); -emit_32(1100950746); -emit_32(1126692880); -emit_32(1119072263); -emit_32(1101340921); -emit_32(1126692880); -emit_32(1119584256); -emit_32(1101516925); -emit_32(1126692880); -emit_32(1120096263); -emit_32(1101607626); -emit_32(1126692880); -emit_32(1120608322); -emit_32(1101700478); -emit_32(1126692880); -emit_32(1121120289); -emit_32(1102113826); -emit_32(1126692880); -emit_32(1121632256); -emit_32(1102162428); -emit_32(1126692880); -emit_32(1122144223); -emit_32(1102697097); -emit_32(1126692880); -emit_32(1122656322); -emit_32(1103401950); -emit_32(1126692880); -emit_32(1123168289); -emit_32(1103831813); -emit_32(1126692880); -emit_32(1123680256); -emit_32(1104291194); -emit_32(1126692880); -emit_32(1124132848); -emit_32(1105271456); -emit_32(1126692880); -emit_32(1124388897); -emit_32(1106220574); -emit_32(1126692880); -emit_32(1124644880); -emit_32(1108019957); -emit_32(1126692880); -emit_32(1124900864); -emit_32(1108180861); -emit_32(1126692880); -emit_32(1125156848); -emit_32(1108381558); -emit_32(1126692880); -emit_32(1125412897); -emit_32(1108884508); -emit_32(1126692880); -emit_32(1125668880); -emit_32(1109395820); -emit_32(1126692880); -emit_32(1125924864); -emit_32(1109634712); -emit_32(1126692880); -emit_32(1126180848); -emit_32(1109777816); -emit_32(1126692880); -emit_32(1126436897); -emit_32(1109887130); -emit_32(1126692880); -emit_32(1126692880); -emit_32(1109468460); -emit_32(1126692880); -emit_32(1126948864); -emit_32(1108976887); -emit_32(1126692880); -emit_32(1127204848); -emit_32(1108737288); -emit_32(1126692880); -emit_32(1127460897); -emit_32(1107322339); -emit_32(1126692880); -emit_32(1127716880); -emit_32(1108472024); -emit_32(1126692880); -emit_32(1127972864); -emit_32(1107965326); -emit_32(1126692880); -emit_32(1128228848); -emit_32(1107928049); -emit_32(1126692880); -emit_32(1128484897); -emit_32(1106025906); -emit_32(1126692880); -emit_32(1128740880); -emit_32(1107754012); -emit_32(1126692880); -emit_32(1128996864); -emit_32(1107563407); -emit_32(1126692880); -emit_32(1129252848); -emit_32(1107120672); -emit_32(1126692880); -emit_32(1129508897); -emit_32(1103449188); -emit_32(1126692880); -emit_32(1129764880); -emit_32(1102395841); -emit_32(1126692880); -emit_32(1130020864); -emit_32(1101999899); -emit_32(1126692880); -emit_32(1130276848); -emit_32(1104243012); -emit_32(1126692880); -emit_32(1130532897); -emit_32(1103501407); -emit_32(1126692880); -emit_32(1130788880); -emit_32(1102408424); -emit_32(1126692880); -emit_32(1131044864); -emit_32(1099757099); -emit_32(1126692880); -emit_32(1131300848); -emit_32(1098990538); -emit_32(1126692880); -emit_32(1131556897); -emit_32(1097576795); -emit_32(1126692880); -emit_32(1131812880); -emit_32(1097118777); -emit_32(1126692880); -emit_32(1132068864); -emit_32(1095884499); -emit_32(1126692880); -emit_32(1081737300); -emit_32(1099149921); -emit_32(1126436897); -emit_32(1090125845); -emit_32(1099736547); -emit_32(1126436897); -emit_32(1094418484); -emit_32(1099814457); -emit_32(1126436897); -emit_32(1098514432); -emit_32(1099497996); -emit_32(1126436897); -emit_32(1100759066); -emit_32(1099614598); -emit_32(1126436897); -emit_32(1102807040); -emit_32(1099949041); -emit_32(1126436897); -emit_32(1104855066); -emit_32(1100303460); -emit_32(1126436897); -emit_32(1106903040); -emit_32(1100372194); -emit_32(1126436897); -emit_32(1108123661); -emit_32(1100388499); -emit_32(1126436897); -emit_32(1109147648); -emit_32(1100457129); -emit_32(1126436897); -emit_32(1110171661); -emit_32(1100645768); -emit_32(1126436897); -emit_32(1111195648); -emit_32(1100270587); -emit_32(1126436897); -emit_32(1112219661); -emit_32(1099961152); -emit_32(1126436897); -emit_32(1113243648); -emit_32(1099730885); -emit_32(1126436897); -emit_32(1114267661); -emit_32(1099738435); -emit_32(1126436897); -emit_32(1115291648); -emit_32(1099626866); -emit_32(1126436897); -emit_32(1116000263); -emit_32(1099808847); -emit_32(1126436897); -emit_32(1116512256); -emit_32(1099946000); -emit_32(1126436897); -emit_32(1117024263); -emit_32(1100112776); -emit_32(1126436897); -emit_32(1117536256); -emit_32(1100457758); -emit_32(1126436897); -emit_32(1118048263); -emit_32(1101221960); -emit_32(1126436897); -emit_32(1118560256); -emit_32(1101270404); -emit_32(1126436897); -emit_32(1119072263); -emit_32(1101406090); -emit_32(1126436897); -emit_32(1119584256); -emit_32(1101500619); -emit_32(1126436897); -emit_32(1120096263); -emit_32(1101585606); -emit_32(1126436897); -emit_32(1120608322); -emit_32(1101398278); -emit_32(1126436897); -emit_32(1121120289); -emit_32(1101771047); -emit_32(1126436897); -emit_32(1121632256); -emit_32(1102476005); -emit_32(1126436897); -emit_32(1122144223); -emit_32(1103241150); -emit_32(1126436897); -emit_32(1122656322); -emit_32(1103529247); -emit_32(1126436897); -emit_32(1123168289); -emit_32(1104315207); -emit_32(1126436897); -emit_32(1123680256); -emit_32(1105405149); -emit_32(1126436897); -emit_32(1124132848); -emit_32(1106277302); -emit_32(1126436897); -emit_32(1124388897); -emit_32(1107026667); -emit_32(1126436897); -emit_32(1124644880); -emit_32(1107115324); -emit_32(1126436897); -emit_32(1124900864); -emit_32(1108622626); -emit_32(1126436897); -emit_32(1125156848); -emit_32(1108806546); -emit_32(1126436897); -emit_32(1125412897); -emit_32(1109128328); -emit_32(1126436897); -emit_32(1125668880); -emit_32(1109170114); -emit_32(1126436897); -emit_32(1125924864); -emit_32(1108511739); -emit_32(1126436897); -emit_32(1126180848); -emit_32(1109723867); -emit_32(1126436897); -emit_32(1126436897); -emit_32(1109979719); -emit_32(1126436897); -emit_32(1126692880); -emit_32(1109649182); -emit_32(1126436897); -emit_32(1126948864); -emit_32(1107794749); -emit_32(1126436897); -emit_32(1127204848); -emit_32(1107867677); -emit_32(1126436897); -emit_32(1127460897); -emit_32(1107576278); -emit_32(1126436897); -emit_32(1127716880); -emit_32(1108142168); -emit_32(1126436897); -emit_32(1127972864); -emit_32(1108112284); -emit_32(1126436897); -emit_32(1128228848); -emit_32(1108004202); -emit_32(1126436897); -emit_32(1128484897); -emit_32(1106311696); -emit_32(1126436897); -emit_32(1128740880); -emit_32(1107993349); -emit_32(1126436897); -emit_32(1128996864); -emit_32(1107720798); -emit_32(1126436897); -emit_32(1129252848); -emit_32(1106276306); -emit_32(1126436897); -emit_32(1129508897); -emit_32(1103536849); -emit_32(1126436897); -emit_32(1129764880); -emit_32(1102593288); -emit_32(1126436897); -emit_32(1130020864); -emit_32(1104446017); -emit_32(1126436897); -emit_32(1130276848); -emit_32(1104044255); -emit_32(1126436897); -emit_32(1130532897); -emit_32(1102976752); -emit_32(1126436897); -emit_32(1130788880); -emit_32(1102244531); -emit_32(1126436897); -emit_32(1131044864); -emit_32(1099010199); -emit_32(1126436897); -emit_32(1131300848); -emit_32(1097715417); -emit_32(1126436897); -emit_32(1131556897); -emit_32(1096758067); -emit_32(1126436897); -emit_32(1131812880); -emit_32(1097016856); -emit_32(1126436897); -emit_32(1132068864); -emit_32(1096071355); -emit_32(1126436897); -emit_32(1081737300); -emit_32(1099236901); -emit_32(1126180848); -emit_32(1090125845); -emit_32(1099655702); -emit_32(1126180848); -emit_32(1094418484); -emit_32(1099975256); -emit_32(1126180848); -emit_32(1098514432); -emit_32(1100023700); -emit_32(1126180848); -emit_32(1100759066); -emit_32(1100282436); -emit_32(1126180848); -emit_32(1102807040); -emit_32(1100103077); -emit_32(1126180848); -emit_32(1104855066); -emit_32(1100266183); -emit_32(1126180848); -emit_32(1106903040); -emit_32(1100408947); -emit_32(1126180848); -emit_32(1108123661); -emit_32(1100595488); -emit_32(1126180848); -emit_32(1109147648); -emit_32(1100418698); -emit_32(1126180848); -emit_32(1110171661); -emit_32(1100484601); -emit_32(1126180848); -emit_32(1111195648); -emit_32(1100664327); -emit_32(1126180848); -emit_32(1112219661); -emit_32(1099877791); -emit_32(1126180848); -emit_32(1113243648); -emit_32(1100235250); -emit_32(1126180848); -emit_32(1114267661); -emit_32(1100072773); -emit_32(1126180848); -emit_32(1115291648); -emit_32(1099973001); -emit_32(1126180848); -emit_32(1116000263); -emit_32(1100257165); -emit_32(1126180848); -emit_32(1116512256); -emit_32(1100157288); -emit_32(1126180848); -emit_32(1117024263); -emit_32(1100000369); -emit_32(1126180848); -emit_32(1117536256); -emit_32(1100933077); -emit_32(1126180848); -emit_32(1118048263); -emit_32(1101502192); -emit_32(1126180848); -emit_32(1118560256); -emit_32(1101329701); -emit_32(1126180848); -emit_32(1119072263); -emit_32(1101273078); -emit_32(1126180848); -emit_32(1119584256); -emit_32(1101224057); -emit_32(1126180848); -emit_32(1120096263); -emit_32(1100934231); -emit_32(1126180848); -emit_32(1120608322); -emit_32(1101108137); -emit_32(1126180848); -emit_32(1121120289); -emit_32(1102075344); -emit_32(1126180848); -emit_32(1121632256); -emit_32(1102823975); -emit_32(1126180848); -emit_32(1122144223); -emit_32(1103440694); -emit_32(1126180848); -emit_32(1122656322); -emit_32(1104266238); -emit_32(1126180848); -emit_32(1123168289); -emit_32(1105264588); -emit_32(1126180848); -emit_32(1123680256); -emit_32(1106148170); -emit_32(1126180848); -emit_32(1124132848); -emit_32(1107157267); -emit_32(1126180848); -emit_32(1124388897); -emit_32(1107410970); -emit_32(1126180848); -emit_32(1124644880); -emit_32(1107631669); -emit_32(1126180848); -emit_32(1124900864); -emit_32(1108727248); -emit_32(1126180848); -emit_32(1125156848); -emit_32(1109083947); -emit_32(1126180848); -emit_32(1125412897); -emit_32(1109383499); -emit_32(1126180848); -emit_32(1125668880); -emit_32(1109832552); -emit_32(1126180848); -emit_32(1125924864); -emit_32(1108779362); -emit_32(1126180848); -emit_32(1126180848); -emit_32(1109779336); -emit_32(1126180848); -emit_32(1126436897); -emit_32(1109875019); -emit_32(1126180848); -emit_32(1126692880); -emit_32(1109584485); -emit_32(1126180848); -emit_32(1126948864); -emit_32(1108220130); -emit_32(1126180848); -emit_32(1127204848); -emit_32(1107865790); -emit_32(1126180848); -emit_32(1127460897); -emit_32(1107810792); -emit_32(1126180848); -emit_32(1127716880); -emit_32(1107637358); -emit_32(1126180848); -emit_32(1127972864); -emit_32(1108765940); -emit_32(1126180848); -emit_32(1128228848); -emit_32(1108423134); -emit_32(1126180848); -emit_32(1128484897); -emit_32(1107554101); -emit_32(1126180848); -emit_32(1128740880); -emit_32(1107893184); -emit_32(1126180848); -emit_32(1128996864); -emit_32(1107705384); -emit_32(1126180848); -emit_32(1129252848); -emit_32(1104640790); -emit_32(1126180848); -emit_32(1129508897); -emit_32(1103289857); -emit_32(1126180848); -emit_32(1129764880); -emit_32(1103910824); -emit_32(1126180848); -emit_32(1130020864); -emit_32(1104153359); -emit_32(1126180848); -emit_32(1130276848); -emit_32(1103150186); -emit_32(1126180848); -emit_32(1130532897); -emit_32(1102522509); -emit_32(1126180848); -emit_32(1130788880); -emit_32(1099531498); -emit_32(1126180848); -emit_32(1131044864); -emit_32(1097916953); -emit_32(1126180848); -emit_32(1131300848); -emit_32(1097069285); -emit_32(1126180848); -emit_32(1131556897); -emit_32(1096586310); -emit_32(1126180848); -emit_32(1131812880); -emit_32(1097348625); -emit_32(1126180848); -emit_32(1132068864); -emit_32(1097196791); -emit_32(1126180848); -emit_32(1081737300); -emit_32(1099397648); -emit_32(1125924864); -emit_32(1090125845); -emit_32(1100083993); -emit_32(1125924864); -emit_32(1094418484); -emit_32(1100159071); -emit_32(1125924864); -emit_32(1098514432); -emit_32(1100011536); -emit_32(1125924864); -emit_32(1100759066); -emit_32(1100346556); -emit_32(1125924864); -emit_32(1102807040); -emit_32(1100440404); -emit_32(1125924864); -emit_32(1104855066); -emit_32(1100194775); -emit_32(1125924864); -emit_32(1106903040); -emit_32(1100304561); -emit_32(1125924864); -emit_32(1108123661); -emit_32(1100451571); -emit_32(1125924864); -emit_32(1109147648); -emit_32(1100478992); -emit_32(1125924864); -emit_32(1110171661); -emit_32(1100408580); -emit_32(1125924864); -emit_32(1111195648); -emit_32(1100317249); -emit_32(1125924864); -emit_32(1112219661); -emit_32(1100401554); -emit_32(1125924864); -emit_32(1113243648); -emit_32(1100711618); -emit_32(1125924864); -emit_32(1114267661); -emit_32(1100343358); -emit_32(1125924864); -emit_32(1115291648); -emit_32(1099679924); -emit_32(1125924864); -emit_32(1116000263); -emit_32(1100265868); -emit_32(1125924864); -emit_32(1116512256); -emit_32(1100336438); -emit_32(1125924864); -emit_32(1117024263); -emit_32(1100743338); -emit_32(1125924864); -emit_32(1117536256); -emit_32(1100911529); -emit_32(1125924864); -emit_32(1118048263); -emit_32(1100933916); -emit_32(1125924864); -emit_32(1118560256); -emit_32(1100950012); -emit_32(1125924864); -emit_32(1119072263); -emit_32(1100711251); -emit_32(1125924864); -emit_32(1119584256); -emit_32(1100374239); -emit_32(1125924864); -emit_32(1120096263); -emit_32(1100424046); -emit_32(1125924864); -emit_32(1120608322); -emit_32(1101327290); -emit_32(1125924864); -emit_32(1121120289); -emit_32(1102568437); -emit_32(1125924864); -emit_32(1121632256); -emit_32(1103744257); -emit_32(1125924864); -emit_32(1122144223); -emit_32(1104560993); -emit_32(1125924864); -emit_32(1122656322); -emit_32(1105101115); -emit_32(1125924864); -emit_32(1123168289); -emit_32(1106075032); -emit_32(1125924864); -emit_32(1123680256); -emit_32(1107013874); -emit_32(1125924864); -emit_32(1124132848); -emit_32(1107516116); -emit_32(1125924864); -emit_32(1124388897); -emit_32(1107763764); -emit_32(1125924864); -emit_32(1124644880); -emit_32(1107925035); -emit_32(1125924864); -emit_32(1124900864); -emit_32(1108124867); -emit_32(1125924864); -emit_32(1125156848); -emit_32(1109418652); -emit_32(1125924864); -emit_32(1125412897); -emit_32(1109666352); -emit_32(1125924864); -emit_32(1125668880); -emit_32(1109926216); -emit_32(1125924864); -emit_32(1125924864); -emit_32(1109962156); -emit_32(1125924864); -emit_32(1126180848); -emit_32(1109898428); -emit_32(1125924864); -emit_32(1126436897); -emit_32(1110252978); -emit_32(1125924864); -emit_32(1126692880); -emit_32(1110074851); -emit_32(1125924864); -emit_32(1126948864); -emit_32(1108526681); -emit_32(1125924864); -emit_32(1127204848); -emit_32(1108040561); -emit_32(1125924864); -emit_32(1127460897); -emit_32(1108008160); -emit_32(1125924864); -emit_32(1127716880); -emit_32(1107835722); -emit_32(1125924864); -emit_32(1127972864); -emit_32(1107758862); -emit_32(1125924864); -emit_32(1128228848); -emit_32(1107617173); -emit_32(1125924864); -emit_32(1128484897); -emit_32(1107323860); -emit_32(1125924864); -emit_32(1128740880); -emit_32(1106591770); -emit_32(1125924864); -emit_32(1128996864); -emit_32(1107721716); -emit_32(1125924864); -emit_32(1129252848); -emit_32(1105209537); -emit_32(1125924864); -emit_32(1129508897); -emit_32(1106514647); -emit_32(1125924864); -emit_32(1129764880); -emit_32(1105924089); -emit_32(1125924864); -emit_32(1130020864); -emit_32(1104857583); -emit_32(1125924864); -emit_32(1130276848); -emit_32(1104080850); -emit_32(1125924864); -emit_32(1130532897); -emit_32(1103165338); -emit_32(1125924864); -emit_32(1130788880); -emit_32(1099955123); -emit_32(1125924864); -emit_32(1131044864); -emit_32(1098976015); -emit_32(1125924864); -emit_32(1131300848); -emit_32(1097678822); -emit_32(1125924864); -emit_32(1131556897); -emit_32(1095863632); -emit_32(1125924864); -emit_32(1131812880); -emit_32(1096143811); -emit_32(1125924864); -emit_32(1132068864); -emit_32(1096399978); -emit_32(1125924864); -emit_32(1081737300); -emit_32(1099796421); -emit_32(1125668880); -emit_32(1090125845); -emit_32(1100536244); -emit_32(1125668880); -emit_32(1094418484); -emit_32(1100815951); -emit_32(1125668880); -emit_32(1098514432); -emit_32(1100932763); -emit_32(1125668880); -emit_32(1100759066); -emit_32(1100556691); -emit_32(1125668880); -emit_32(1102807040); -emit_32(1100739091); -emit_32(1125668880); -emit_32(1104855066); -emit_32(1100685404); -emit_32(1125668880); -emit_32(1106903040); -emit_32(1100296592); -emit_32(1125668880); -emit_32(1108123661); -emit_32(1100158652); -emit_32(1125668880); -emit_32(1109147648); -emit_32(1100060033); -emit_32(1125668880); -emit_32(1110171661); -emit_32(1100191996); -emit_32(1125668880); -emit_32(1111195648); -emit_32(1099855718); -emit_32(1125668880); -emit_32(1112219661); -emit_32(1100233887); -emit_32(1125668880); -emit_32(1113243648); -emit_32(1100904976); -emit_32(1125668880); -emit_32(1114267661); -emit_32(1100654785); -emit_32(1125668880); -emit_32(1115291648); -emit_32(1100035234); -emit_32(1125668880); -emit_32(1116000263); -emit_32(1099851262); -emit_32(1125668880); -emit_32(1116512256); -emit_32(1099917741); -emit_32(1125668880); -emit_32(1117024263); -emit_32(1100254544); -emit_32(1125668880); -emit_32(1117536256); -emit_32(1100744910); -emit_32(1125668880); -emit_32(1118048263); -emit_32(1101045065); -emit_32(1125668880); -emit_32(1118560256); -emit_32(1100752460); -emit_32(1125668880); -emit_32(1119072263); -emit_32(1101140695); -emit_32(1125668880); -emit_32(1119584256); -emit_32(1100593706); -emit_32(1125668880); -emit_32(1120096263); -emit_32(1101066351); -emit_32(1125668880); -emit_32(1120608322); -emit_32(1102014421); -emit_32(1125668880); -emit_32(1121120289); -emit_32(1103061005); -emit_32(1125668880); -emit_32(1121632256); -emit_32(1104070627); -emit_32(1125668880); -emit_32(1122144223); -emit_32(1105156270); -emit_32(1125668880); -emit_32(1122656322); -emit_32(1105870088); -emit_32(1125668880); -emit_32(1123168289); -emit_32(1106367690); -emit_32(1125668880); -emit_32(1123680256); -emit_32(1107164922); -emit_32(1125668880); -emit_32(1124132848); -emit_32(1107602545); -emit_32(1125668880); -emit_32(1124388897); -emit_32(1107941812); -emit_32(1125668880); -emit_32(1124644880); -emit_32(1108344334); -emit_32(1125668880); -emit_32(1124900864); -emit_32(1108480308); -emit_32(1125668880); -emit_32(1125156848); -emit_32(1108327137); -emit_32(1125668880); -emit_32(1125412897); -emit_32(1109716107); -emit_32(1125668880); -emit_32(1125668880); -emit_32(1110107934); -emit_32(1125668880); -emit_32(1125924864); -emit_32(1110315159); -emit_32(1125668880); -emit_32(1126180848); -emit_32(1110535569); -emit_32(1125668880); -emit_32(1126436897); -emit_32(1110503509); -emit_32(1125668880); -emit_32(1126692880); -emit_32(1109463636); -emit_32(1125668880); -emit_32(1126948864); -emit_32(1108400118); -emit_32(1125668880); -emit_32(1127204848); -emit_32(1108447225); -emit_32(1125668880); -emit_32(1127460897); -emit_32(1108142195); -emit_32(1125668880); -emit_32(1127716880); -emit_32(1108004202); -emit_32(1125668880); -emit_32(1127972864); -emit_32(1108024046); -emit_32(1125668880); -emit_32(1128228848); -emit_32(1107844452); -emit_32(1125668880); -emit_32(1128484897); -emit_32(1107348947); -emit_32(1125668880); -emit_32(1128740880); -emit_32(1106593763); -emit_32(1125668880); -emit_32(1128996864); -emit_32(1105593683); -emit_32(1125668880); -emit_32(1129252848); -emit_32(1107573788); -emit_32(1125668880); -emit_32(1129508897); -emit_32(1107189039); -emit_32(1125668880); -emit_32(1129764880); -emit_32(1106191581); -emit_32(1125668880); -emit_32(1130020864); -emit_32(1104988812); -emit_32(1125668880); -emit_32(1130276848); -emit_32(1104221150); -emit_32(1125668880); -emit_32(1130532897); -emit_32(1100814903); -emit_32(1125668880); -emit_32(1130788880); -emit_32(1100302044); -emit_32(1125668880); -emit_32(1131044864); -emit_32(1099639816); -emit_32(1125668880); -emit_32(1131300848); -emit_32(1098467980); -emit_32(1125668880); -emit_32(1131556897); -emit_32(1096188795); -emit_32(1125668880); -emit_32(1131812880); -emit_32(1095551051); -emit_32(1125668880); -emit_32(1132068864); -emit_32(1095331689); -emit_32(1125668880); -emit_32(1081737258); -emit_32(1100171654); -emit_32(1125412897); -emit_32(1090125845); -emit_32(1100384200); -emit_32(1125412897); -emit_32(1094418484); -emit_32(1101392563); -emit_32(1125412897); -emit_32(1098514432); -emit_32(1101939763); -emit_32(1125412897); -emit_32(1100759066); -emit_32(1101350096); -emit_32(1125412897); -emit_32(1102807040); -emit_32(1100931242); -emit_32(1125412897); -emit_32(1104855066); -emit_32(1101054660); -emit_32(1125412897); -emit_32(1106903040); -emit_32(1100365745); -emit_32(1125412897); -emit_32(1108123661); -emit_32(1100020711); -emit_32(1125412897); -emit_32(1109147648); -emit_32(1099837211); -emit_32(1125412897); -emit_32(1110171661); -emit_32(1099961205); -emit_32(1125412897); -emit_32(1111195648); -emit_32(1099795792); -emit_32(1125412897); -emit_32(1112219661); -emit_32(1099519282); -emit_32(1125412897); -emit_32(1113243648); -emit_32(1100138886); -emit_32(1125412897); -emit_32(1114267661); -emit_32(1100250454); -emit_32(1125412897); -emit_32(1115291648); -emit_32(1100025640); -emit_32(1125412897); -emit_32(1116000263); -emit_32(1099647890); -emit_32(1125412897); -emit_32(1116512256); -emit_32(1099582564); -emit_32(1125412897); -emit_32(1117024263); -emit_32(1099791335); -emit_32(1125412897); -emit_32(1117536256); -emit_32(1100303198); -emit_32(1125412897); -emit_32(1118048263); -emit_32(1100818520); -emit_32(1125412897); -emit_32(1118560256); -emit_32(1100729182); -emit_32(1125412897); -emit_32(1119072263); -emit_32(1101156162); -emit_32(1125412897); -emit_32(1119584256); -emit_32(1101134247); -emit_32(1125412897); -emit_32(1120096263); -emit_32(1101623565); -emit_32(1125412897); -emit_32(1120608322); -emit_32(1102682626); -emit_32(1125412897); -emit_32(1121120289); -emit_32(1103567205); -emit_32(1125412897); -emit_32(1121632256); -emit_32(1104435374); -emit_32(1125412897); -emit_32(1122144223); -emit_32(1105541464); -emit_32(1125412897); -emit_32(1122656322); -emit_32(1106370730); -emit_32(1125412897); -emit_32(1123168289); -emit_32(1107136296); -emit_32(1125412897); -emit_32(1123680256); -emit_32(1107622678); -emit_32(1125412897); -emit_32(1124132848); -emit_32(1107924458); -emit_32(1125412897); -emit_32(1124388897); -emit_32(1108157006); -emit_32(1125412897); -emit_32(1124644880); -emit_32(1108530928); -emit_32(1125412897); -emit_32(1124900864); -emit_32(1108656600); -emit_32(1125412897); -emit_32(1125156848); -emit_32(1108481461); -emit_32(1125412897); -emit_32(1125412897); -emit_32(1108539159); -emit_32(1125412897); -emit_32(1125668880); -emit_32(1110441066); -emit_32(1125412897); -emit_32(1125924864); -emit_32(1110692148); -emit_32(1125412897); -emit_32(1126180848); -emit_32(1110653744); -emit_32(1125412897); -emit_32(1126436897); -emit_32(1110727721); -emit_32(1125412897); -emit_32(1126692880); -emit_32(1110202673); -emit_32(1125412897); -emit_32(1126948864); -emit_32(1109971881); -emit_32(1125412897); -emit_32(1127204848); -emit_32(1109534940); -emit_32(1125412897); -emit_32(1127460897); -emit_32(1108342263); -emit_32(1125412897); -emit_32(1127716880); -emit_32(1107927840); -emit_32(1125412897); -emit_32(1127972864); -emit_32(1108111183); -emit_32(1125412897); -emit_32(1128228848); -emit_32(1107908939); -emit_32(1125412897); -emit_32(1128484897); -emit_32(1108258954); -emit_32(1125412897); -emit_32(1128740880); -emit_32(1108072464); -emit_32(1125412897); -emit_32(1128996864); -emit_32(1107928180); -emit_32(1125412897); -emit_32(1129252848); -emit_32(1107296990); -emit_32(1125412897); -emit_32(1129508897); -emit_32(1106977751); -emit_32(1125412897); -emit_32(1129764880); -emit_32(1105908938); -emit_32(1125412897); -emit_32(1130020864); -emit_32(1105000556); -emit_32(1125412897); -emit_32(1130276848); -emit_32(1101880046); -emit_32(1125412897); -emit_32(1130532897); -emit_32(1101191447); -emit_32(1125412897); -emit_32(1130788880); -emit_32(1100805675); -emit_32(1125412897); -emit_32(1131044864); -emit_32(1099759459); -emit_32(1125412897); -emit_32(1131300848); -emit_32(1099177761); -emit_32(1125412897); -emit_32(1131556897); -emit_32(1097755263); -emit_32(1125412897); -emit_32(1131812880); -emit_32(1095551576); -emit_32(1125412897); -emit_32(1132068864); -emit_32(1095000968); -emit_32(1125412897); -emit_32(1081737258); -emit_32(1099891107); -emit_32(1125156848); -emit_32(1090125845); -emit_32(1100647078); -emit_32(1125156848); -emit_32(1094418484); -emit_32(1101487879); -emit_32(1125156848); -emit_32(1098514432); -emit_32(1101979399); -emit_32(1125156848); -emit_32(1100759066); -emit_32(1101681341); -emit_32(1125156848); -emit_32(1102807040); -emit_32(1100993475); -emit_32(1125156848); -emit_32(1104855066); -emit_32(1100813907); -emit_32(1125156848); -emit_32(1106903040); -emit_32(1100711094); -emit_32(1125156848); -emit_32(1108123661); -emit_32(1100302044); -emit_32(1125156848); -emit_32(1109147648); -emit_32(1099535063); -emit_32(1125156848); -emit_32(1110171661); -emit_32(1099325506); -emit_32(1125156848); -emit_32(1111195648); -emit_32(1099122554); -emit_32(1125156848); -emit_32(1112219661); -emit_32(1099190764); -emit_32(1125156848); -emit_32(1113243648); -emit_32(1099332846); -emit_32(1125156848); -emit_32(1114267661); -emit_32(1099594465); -emit_32(1125156848); -emit_32(1115291648); -emit_32(1099712850); -emit_32(1125156848); -emit_32(1116000263); -emit_32(1099353031); -emit_32(1125156848); -emit_32(1116512256); -emit_32(1099544553); -emit_32(1125156848); -emit_32(1117024263); -emit_32(1099237163); -emit_32(1125156848); -emit_32(1117536256); -emit_32(1099846700); -emit_32(1125156848); -emit_32(1118048263); -emit_32(1100273628); -emit_32(1125156848); -emit_32(1118560256); -emit_32(1100368839); -emit_32(1125156848); -emit_32(1119072263); -emit_32(1101256668); -emit_32(1125156848); -emit_32(1119584256); -emit_32(1101557609); -emit_32(1125156848); -emit_32(1120096263); -emit_32(1101502192); -emit_32(1125156848); -emit_32(1120608322); -emit_32(1102635231); -emit_32(1125156848); -emit_32(1121120289); -emit_32(1103741374); -emit_32(1125156848); -emit_32(1121632256); -emit_32(1104695211); -emit_32(1125156848); -emit_32(1122144223); -emit_32(1105984016); -emit_32(1125156848); -emit_32(1122656322); -emit_32(1106774537); -emit_32(1125156848); -emit_32(1123168289); -emit_32(1107580944); -emit_32(1125156848); -emit_32(1123680256); -emit_32(1107993847); -emit_32(1125156848); -emit_32(1124132848); -emit_32(1108308813); -emit_32(1125156848); -emit_32(1124388897); -emit_32(1108572163); -emit_32(1125156848); -emit_32(1124644880); -emit_32(1108751548); -emit_32(1125156848); -emit_32(1124900864); -emit_32(1108775613); -emit_32(1125156848); -emit_32(1125156848); -emit_32(1108840887); -emit_32(1125156848); -emit_32(1125412897); -emit_32(1108640452); -emit_32(1125156848); -emit_32(1125668880); -emit_32(1109400932); -emit_32(1125156848); -emit_32(1125924864); -emit_32(1110700537); -emit_32(1125156848); -emit_32(1126180848); -emit_32(1110726279); -emit_32(1125156848); -emit_32(1126436897); -emit_32(1110647059); -emit_32(1125156848); -emit_32(1126692880); -emit_32(1110057628); -emit_32(1125156848); -emit_32(1126948864); -emit_32(1109862960); -emit_32(1125156848); -emit_32(1127204848); -emit_32(1109806599); -emit_32(1125156848); -emit_32(1127460897); -emit_32(1109740539); -emit_32(1125156848); -emit_32(1127716880); -emit_32(1109309417); -emit_32(1125156848); -emit_32(1127972864); -emit_32(1109254577); -emit_32(1125156848); -emit_32(1128228848); -emit_32(1109010704); -emit_32(1125156848); -emit_32(1128484897); -emit_32(1108707980); -emit_32(1125156848); -emit_32(1128740880); -emit_32(1108196590); -emit_32(1125156848); -emit_32(1128996864); -emit_32(1107884428); -emit_32(1125156848); -emit_32(1129252848); -emit_32(1107202828); -emit_32(1125156848); -emit_32(1129508897); -emit_32(1106564402); -emit_32(1125156848); -emit_32(1129764880); -emit_32(1104622440); -emit_32(1125156848); -emit_32(1130020864); -emit_32(1102215591); -emit_32(1125156848); -emit_32(1130276848); -emit_32(1101762186); -emit_32(1125156848); -emit_32(1130532897); -emit_32(1101353085); -emit_32(1125156848); -emit_32(1130788880); -emit_32(1101174984); -emit_32(1125156848); -emit_32(1131044864); -emit_32(1099976252); -emit_32(1125156848); -emit_32(1131300848); -emit_32(1098682624); -emit_32(1125156848); -emit_32(1131556897); -emit_32(1097157994); -emit_32(1125156848); -emit_32(1131812880); -emit_32(1095208586); -emit_32(1125156848); -emit_32(1132068864); -emit_32(1095289117); -emit_32(1125156848); -emit_32(1081737258); -emit_32(1100260206); -emit_32(1124900864); -emit_32(1090125845); -emit_32(1100861722); -emit_32(1124900864); -emit_32(1094418484); -emit_32(1101453905); -emit_32(1124900864); -emit_32(1098514432); -emit_32(1101891581); -emit_32(1124900864); -emit_32(1100759066); -emit_32(1101491759); -emit_32(1124900864); -emit_32(1102807040); -emit_32(1101032640); -emit_32(1124900864); -emit_32(1104855066); -emit_32(1100567282); -emit_32(1124900864); -emit_32(1106903040); -emit_32(1100372876); -emit_32(1124900864); -emit_32(1108123661); -emit_32(1100112672); -emit_32(1124900864); -emit_32(1109147648); -emit_32(1099604689); -emit_32(1124900864); -emit_32(1110171661); -emit_32(1099198995); -emit_32(1124900864); -emit_32(1111195648); -emit_32(1098995676); -emit_32(1124900864); -emit_32(1112219661); -emit_32(1098921384); -emit_32(1124900864); -emit_32(1113243648); -emit_32(1098994627); -emit_32(1124900864); -emit_32(1114267661); -emit_32(1099148296); -emit_32(1124900864); -emit_32(1115291648); -emit_32(1099448032); -emit_32(1124900864); -emit_32(1116000263); -emit_32(1099762395); -emit_32(1124900864); -emit_32(1116512256); -emit_32(1099304849); -emit_32(1124900864); -emit_32(1117024263); -emit_32(1099411698); -emit_32(1124900864); -emit_32(1117536256); -emit_32(1099612239); -emit_32(1124900864); -emit_32(1118048263); -emit_32(1099837840); -emit_32(1124900864); -emit_32(1118560256); -emit_32(1100521092); -emit_32(1124900864); -emit_32(1119072263); -emit_32(1101042758); -emit_32(1124900864); -emit_32(1119584256); -emit_32(1101829715); -emit_32(1124900864); -emit_32(1120096263); -emit_32(1101787195); -emit_32(1124900864); -emit_32(1120608322); -emit_32(1103231661); -emit_32(1124900864); -emit_32(1121120289); -emit_32(1104133017); -emit_32(1124900864); -emit_32(1121632256); -emit_32(1105136347); -emit_32(1124900864); -emit_32(1122144223); -emit_32(1106058779); -emit_32(1124900864); -emit_32(1122656322); -emit_32(1107306060); -emit_32(1124900864); -emit_32(1123168289); -emit_32(1107824214); -emit_32(1124900864); -emit_32(1123680256); -emit_32(1108124343); -emit_32(1124900864); -emit_32(1124132848); -emit_32(1108411050); -emit_32(1124900864); -emit_32(1124388897); -emit_32(1108748167); -emit_32(1124900864); -emit_32(1124644880); -emit_32(1108912295); -emit_32(1124900864); -emit_32(1124900864); -emit_32(1108843273); -emit_32(1124900864); -emit_32(1125156848); -emit_32(1109145892); -emit_32(1124900864); -emit_32(1125412897); -emit_32(1108908258); -emit_32(1124900864); -emit_32(1125668880); -emit_32(1109287685); -emit_32(1124900864); -emit_32(1125924864); -emit_32(1109482773); -emit_32(1124900864); -emit_32(1126180848); -emit_32(1109256516); -emit_32(1124900864); -emit_32(1126436897); -emit_32(1110387222); -emit_32(1124900864); -emit_32(1126692880); -emit_32(1110113439); -emit_32(1124900864); -emit_32(1126948864); -emit_32(1109770738); -emit_32(1124900864); -emit_32(1127204848); -emit_32(1109713748); -emit_32(1124900864); -emit_32(1127460897); -emit_32(1109642471); -emit_32(1124900864); -emit_32(1127716880); -emit_32(1109465262); -emit_32(1124900864); -emit_32(1127972864); -emit_32(1109524768); -emit_32(1124900864); -emit_32(1128228848); -emit_32(1109357599); -emit_32(1124900864); -emit_32(1128484897); -emit_32(1108841438); -emit_32(1124900864); -emit_32(1128740880); -emit_32(1108264013); -emit_32(1124900864); -emit_32(1128996864); -emit_32(1107582543); -emit_32(1124900864); -emit_32(1129252848); -emit_32(1106640739); -emit_32(1124900864); -emit_32(1129508897); -emit_32(1103288074); -emit_32(1124900864); -emit_32(1129764880); -emit_32(1102897585); -emit_32(1124900864); -emit_32(1130020864); -emit_32(1102698145); -emit_32(1124900864); -emit_32(1130276848); -emit_32(1101950353); -emit_32(1124900864); -emit_32(1130532897); -emit_32(1101571713); -emit_32(1124900864); -emit_32(1130788880); -emit_32(1101236693); -emit_32(1124900864); -emit_32(1131044864); -emit_32(1100675547); -emit_32(1124900864); -emit_32(1131300848); -emit_32(1099383387); -emit_32(1124900864); -emit_32(1131556897); -emit_32(1098585840); -emit_32(1124900864); -emit_32(1131812880); -emit_32(1096815319); -emit_32(1124900864); -emit_32(1132068864); -emit_32(1095522740); -emit_32(1124900864); -emit_32(1081737258); -emit_32(1100859258); -emit_32(1124644880); -emit_32(1090125845); -emit_32(1101195903); -emit_32(1124644880); -emit_32(1094418484); -emit_32(1101106407); -emit_32(1124644880); -emit_32(1098514432); -emit_32(1101011196); -emit_32(1124644880); -emit_32(1100759066); -emit_32(1101487355); -emit_32(1124644880); -emit_32(1102807040); -emit_32(1101120563); -emit_32(1124644880); -emit_32(1104855066); -emit_32(1100659766); -emit_32(1124644880); -emit_32(1106903040); -emit_32(1100064175); -emit_32(1124644880); -emit_32(1108123661); -emit_32(1099751175); -emit_32(1124644880); -emit_32(1109147648); -emit_32(1099500618); -emit_32(1124644880); -emit_32(1110171661); -emit_32(1099345376); -emit_32(1124644880); -emit_32(1111195648); -emit_32(1099089157); -emit_32(1124644880); -emit_32(1112219661); -emit_32(1098329673); -emit_32(1124644880); -emit_32(1113243648); -emit_32(1098686084); -emit_32(1124644880); -emit_32(1114267661); -emit_32(1099133616); -emit_32(1124644880); -emit_32(1115291648); -emit_32(1099084752); -emit_32(1124644880); -emit_32(1116000263); -emit_32(1099672322); -emit_32(1124644880); -emit_32(1116512256); -emit_32(1099700004); -emit_32(1124644880); -emit_32(1117024263); -emit_32(1099767847); -emit_32(1124644880); -emit_32(1117536256); -emit_32(1099478440); -emit_32(1124644880); -emit_32(1118048263); -emit_32(1099565892); -emit_32(1124644880); -emit_32(1118560256); -emit_32(1100285634); -emit_32(1124644880); -emit_32(1119072263); -emit_32(1100840908); -emit_32(1124644880); -emit_32(1119584256); -emit_32(1101579577); -emit_32(1124644880); -emit_32(1120096263); -emit_32(1101821746); -emit_32(1124644880); -emit_32(1120608322); -emit_32(1103580575); -emit_32(1124644880); -emit_32(1121120289); -emit_32(1104976858); -emit_32(1124644880); -emit_32(1121632256); -emit_32(1105588440); -emit_32(1124644880); -emit_32(1122144223); -emit_32(1106822195); -emit_32(1124644880); -emit_32(1122656322); -emit_32(1107756686); -emit_32(1124644880); -emit_32(1123168289); -emit_32(1108002131); -emit_32(1124644880); -emit_32(1123680256); -emit_32(1108095874); -emit_32(1124644880); -emit_32(1124132848); -emit_32(1108362055); -emit_32(1124644880); -emit_32(1124388897); -emit_32(1108659431); -emit_32(1124644880); -emit_32(1124644880); -emit_32(1109016576); -emit_32(1124644880); -emit_32(1124900864); -emit_32(1109100043); -emit_32(1124644880); -emit_32(1125156848); -emit_32(1109226842); -emit_32(1124644880); -emit_32(1125412897); -emit_32(1109110030); -emit_32(1124644880); -emit_32(1125668880); -emit_32(1109268916); -emit_32(1124644880); -emit_32(1125924864); -emit_32(1109272612); -emit_32(1124644880); -emit_32(1126180848); -emit_32(1109315053); -emit_32(1124644880); -emit_32(1126436897); -emit_32(1108975105); -emit_32(1124644880); -emit_32(1126692880); -emit_32(1108796559); -emit_32(1124644880); -emit_32(1126948864); -emit_32(1108827649); -emit_32(1124644880); -emit_32(1127204848); -emit_32(1109670651); -emit_32(1124644880); -emit_32(1127460897); -emit_32(1109571771); -emit_32(1124644880); -emit_32(1127716880); -emit_32(1109561993); -emit_32(1124644880); -emit_32(1127972864); -emit_32(1109715478); -emit_32(1124644880); -emit_32(1128228848); -emit_32(1109451342); -emit_32(1124644880); -emit_32(1128484897); -emit_32(1108848070); -emit_32(1124644880); -emit_32(1128740880); -emit_32(1106750525); -emit_32(1124644880); -emit_32(1128996864); -emit_32(1105305377); -emit_32(1124644880); -emit_32(1129252848); -emit_32(1103748819); -emit_32(1124644880); -emit_32(1129508897); -emit_32(1103181906); -emit_32(1124644880); -emit_32(1129764880); -emit_32(1102910272); -emit_32(1124644880); -emit_32(1130020864); -emit_32(1102380846); -emit_32(1124644880); -emit_32(1130276848); -emit_32(1101721764); -emit_32(1124644880); -emit_32(1130532897); -emit_32(1101539941); -emit_32(1124644880); -emit_32(1130788880); -emit_32(1101138913); -emit_32(1124644880); -emit_32(1131044864); -emit_32(1100148166); -emit_32(1124644880); -emit_32(1131300848); -emit_32(1099305268); -emit_32(1124644880); -emit_32(1131556897); -emit_32(1099050412); -emit_32(1124644880); -emit_32(1131812880); -emit_32(1097572601); -emit_32(1124644880); -emit_32(1132068864); -emit_32(1096388234); -emit_32(1124644880); -emit_32(1081737258); -emit_32(1100982465); -emit_32(1124388897); -emit_32(1090125824); -emit_32(1101595148); -emit_32(1124388897); -emit_32(1094418484); -emit_32(1101527882); -emit_32(1124388897); -emit_32(1098514432); -emit_32(1101659007); -emit_32(1124388897); -emit_32(1100759066); -emit_32(1101842665); -emit_32(1124388897); -emit_32(1102807040); -emit_32(1101032902); -emit_32(1124388897); -emit_32(1104855066); -emit_32(1100272108); -emit_32(1124388897); -emit_32(1106903040); -emit_32(1100043256); -emit_32(1124388897); -emit_32(1108123661); -emit_32(1099540464); -emit_32(1124388897); -emit_32(1109147648); -emit_32(1099626080); -emit_32(1124388897); -emit_32(1110171661); -emit_32(1099081554); -emit_32(1124388897); -emit_32(1111195648); -emit_32(1098359138); -emit_32(1124388897); -emit_32(1112219661); -emit_32(1097625344); -emit_32(1124388897); -emit_32(1113243648); -emit_32(1097653341); -emit_32(1124388897); -emit_32(1114267661); -emit_32(1098623589); -emit_32(1124388897); -emit_32(1115291648); -emit_32(1099027815); -emit_32(1124388897); -emit_32(1116000263); -emit_32(1099509950); -emit_32(1124388897); -emit_32(1116512256); -emit_32(1099695496); -emit_32(1124388897); -emit_32(1117024263); -emit_32(1099418095); -emit_32(1124388897); -emit_32(1117536256); -emit_32(1099118097); -emit_32(1124388897); -emit_32(1118048263); -emit_32(1099305111); -emit_32(1124388897); -emit_32(1118560256); -emit_32(1100055524); -emit_32(1124388897); -emit_32(1119072263); -emit_32(1101014132); -emit_32(1124388897); -emit_32(1119584256); -emit_32(1101309569); -emit_32(1124388897); -emit_32(1120096263); -emit_32(1102362339); -emit_32(1124388897); -emit_32(1120608322); -emit_32(1103979663); -emit_32(1124388897); -emit_32(1121120289); -emit_32(1105246709); -emit_32(1124388897); -emit_32(1121632256); -emit_32(1105782322); -emit_32(1124388897); -emit_32(1122144223); -emit_32(1107021110); -emit_32(1124388897); -emit_32(1122656322); -emit_32(1107619427); -emit_32(1124388897); -emit_32(1123168289); -emit_32(1107918769); -emit_32(1124388897); -emit_32(1123680256); -emit_32(1108052515); -emit_32(1124388897); -emit_32(1124132848); -emit_32(1108443687); -emit_32(1124388897); -emit_32(1124388897); -emit_32(1108689656); -emit_32(1124388897); -emit_32(1124644880); -emit_32(1109031544); -emit_32(1124388897); -emit_32(1124900864); -emit_32(1109169904); -emit_32(1124388897); -emit_32(1125156848); -emit_32(1109272691); -emit_32(1124388897); -emit_32(1125412897); -emit_32(1109111367); -emit_32(1124388897); -emit_32(1125668880); -emit_32(1109309548); -emit_32(1124388897); -emit_32(1125924864); -emit_32(1109332460); -emit_32(1124388897); -emit_32(1126180848); -emit_32(1109248285); -emit_32(1124388897); -emit_32(1126436897); -emit_32(1108946898); -emit_32(1124388897); -emit_32(1126692880); -emit_32(1108703419); -emit_32(1124388897); -emit_32(1126948864); -emit_32(1108479758); -emit_32(1124388897); -emit_32(1127204848); -emit_32(1108324306); -emit_32(1124388897); -emit_32(1127460897); -emit_32(1108262886); -emit_32(1124388897); -emit_32(1127716880); -emit_32(1108353955); -emit_32(1124388897); -emit_32(1127972864); -emit_32(1108388610); -emit_32(1124388897); -emit_32(1128228848); -emit_32(1108016156); -emit_32(1124388897); -emit_32(1128484897); -emit_32(1107451209); -emit_32(1124388897); -emit_32(1128740880); -emit_32(1106693797); -emit_32(1124388897); -emit_32(1128996864); -emit_32(1105140908); -emit_32(1124388897); -emit_32(1129252848); -emit_32(1103671801); -emit_32(1124388897); -emit_32(1129508897); -emit_32(1102951481); -emit_32(1124388897); -emit_32(1129764880); -emit_32(1102824813); -emit_32(1124388897); -emit_32(1130020864); -emit_32(1102191421); -emit_32(1124388897); -emit_32(1130276848); -emit_32(1101602960); -emit_32(1124388897); -emit_32(1130532897); -emit_32(1101147668); -emit_32(1124388897); -emit_32(1130788880); -emit_32(1100725774); -emit_32(1124388897); -emit_32(1131044864); -emit_32(1100192730); -emit_32(1124388897); -emit_32(1131300848); -emit_32(1099972267); -emit_32(1124388897); -emit_32(1131556897); -emit_32(1099729574); -emit_32(1124388897); -emit_32(1131812880); -emit_32(1099118936); -emit_32(1124388897); -emit_32(1132068864); -emit_32(1097577634); -emit_32(1124388897); -emit_32(1081737258); -emit_32(1101050728); -emit_32(1124132848); -emit_32(1090125866); -emit_32(1101569144); -emit_32(1124132848); -emit_32(1094418484); -emit_32(1101742788); -emit_32(1124132848); -emit_32(1098514432); -emit_32(1102383625); -emit_32(1124132848); -emit_32(1100759066); -emit_32(1102114927); -emit_32(1124132848); -emit_32(1102807040); -emit_32(1101213309); -emit_32(1124132848); -emit_32(1104855066); -emit_32(1100341209); -emit_32(1124132848); -emit_32(1106903040); -emit_32(1099911345); -emit_32(1124132848); -emit_32(1108123661); -emit_32(1099586129); -emit_32(1124132848); -emit_32(1109147648); -emit_32(1099190030); -emit_32(1124132848); -emit_32(1110171661); -emit_32(1098581751); -emit_32(1124132848); -emit_32(1111195648); -emit_32(1097483053); -emit_32(1124132848); -emit_32(1112219661); -emit_32(1097178022); -emit_32(1124132848); -emit_32(1113243648); -emit_32(1096978688); -emit_32(1124132848); -emit_32(1114267661); -emit_32(1097352610); -emit_32(1124132848); -emit_32(1115291648); -emit_32(1097969906); -emit_32(1124132848); -emit_32(1116000263); -emit_32(1098943509); -emit_32(1124132848); -emit_32(1116512256); -emit_32(1099235380); -emit_32(1124132848); -emit_32(1117024263); -emit_32(1098875037); -emit_32(1124132848); -emit_32(1117536256); -emit_32(1098919916); -emit_32(1124132848); -emit_32(1118048263); -emit_32(1099015127); -emit_32(1124132848); -emit_32(1118560256); -emit_32(1100384410); -emit_32(1124132848); -emit_32(1119072263); -emit_32(1100817786); -emit_32(1124132848); -emit_32(1119584256); -emit_32(1101157682); -emit_32(1124132848); -emit_32(1120096263); -emit_32(1102698670); -emit_32(1124132848); -emit_32(1120608322); -emit_32(1104088662); -emit_32(1124132848); -emit_32(1121120289); -emit_32(1104975548); -emit_32(1124132848); -emit_32(1121632256); -emit_32(1105705671); -emit_32(1124132848); -emit_32(1122144223); -emit_32(1106546629); -emit_32(1124132848); -emit_32(1122656322); -emit_32(1107224271); -emit_32(1124132848); -emit_32(1123168289); -emit_32(1107432990); -emit_32(1124132848); -emit_32(1123680256); -emit_32(1107870823); -emit_32(1124132848); -emit_32(1124132848); -emit_32(1108611197); -emit_32(1124132848); -emit_32(1124388897); -emit_32(1109002394); -emit_32(1124132848); -emit_32(1124644880); -emit_32(1109174020); -emit_32(1124132848); -emit_32(1124900864); -emit_32(1109145131); -emit_32(1124132848); -emit_32(1125156848); -emit_32(1109111053); -emit_32(1124132848); -emit_32(1125412897); -emit_32(1108982156); -emit_32(1124132848); -emit_32(1125668880); -emit_32(1109159733); -emit_32(1124132848); -emit_32(1125924864); -emit_32(1109315342); -emit_32(1124132848); -emit_32(1126180848); -emit_32(1109210091); -emit_32(1124132848); -emit_32(1126436897); -emit_32(1108929885); -emit_32(1124132848); -emit_32(1126692880); -emit_32(1108541256); -emit_32(1124132848); -emit_32(1126948864); -emit_32(1108339091); -emit_32(1124132848); -emit_32(1127204848); -emit_32(1108284853); -emit_32(1124132848); -emit_32(1127460897); -emit_32(1108246449); -emit_32(1124132848); -emit_32(1127716880); -emit_32(1108208727); -emit_32(1124132848); -emit_32(1127972864); -emit_32(1108242648); -emit_32(1124132848); -emit_32(1128228848); -emit_32(1107828539); -emit_32(1124132848); -emit_32(1128484897); -emit_32(1107302207); -emit_32(1124132848); -emit_32(1128740880); -emit_32(1106125311); -emit_32(1124132848); -emit_32(1128996864); -emit_32(1104882853); -emit_32(1124132848); -emit_32(1129252848); -emit_32(1103712328); -emit_32(1124132848); -emit_32(1129508897); -emit_32(1103248228); -emit_32(1124132848); -emit_32(1129764880); -emit_32(1102281808); -emit_32(1124132848); -emit_32(1130020864); -emit_32(1101935621); -emit_32(1124132848); -emit_32(1130276848); -emit_32(1100815060); -emit_32(1124132848); -emit_32(1130532897); -emit_32(1100889457); -emit_32(1124132848); -emit_32(1130788880); -emit_32(1101023098); -emit_32(1124132848); -emit_32(1131044864); -emit_32(1100560938); -emit_32(1124132848); -emit_32(1131300848); -emit_32(1099884397); -emit_32(1124132848); -emit_32(1131556897); -emit_32(1099776918); -emit_32(1124132848); -emit_32(1131812880); -emit_32(1099406246); -emit_32(1124132848); -emit_32(1132068864); -emit_32(1099062890); -emit_32(1124132848); -emit_start(Landscape03Vtx) -emit_32(1081737216); -emit_32(1112116167); -emit_32(3054751226); -emit_32(1081737216); -emit_32(1112701298); -emit_32(1081737216); -emit_32(1090125824); -emit_32(1112117215); -emit_32(3054752017); -emit_32(1090125824); -emit_32(1112503694); -emit_32(1081737216); -emit_32(1094418484); -emit_32(1111966902); -emit_32(3054641802); -emit_32(1094418484); -emit_32(1112328084); -emit_32(1081737216); -emit_32(1098514432); -emit_32(1112170824); -emit_32(3054791336); -emit_32(1098514432); -emit_32(1112069951); -emit_32(1081737216); -emit_32(1100759066); -emit_32(1112121016); -emit_32(3054754788); -emit_32(1100759066); -emit_32(1112173655); -emit_32(1081737216); -emit_32(1102807040); -emit_32(1112268577); -emit_32(3054863024); -emit_32(1102807040); -emit_32(1112198559); -emit_32(1081737216); -emit_32(1104855066); -emit_32(1112660640); -emit_32(3055150524); -emit_32(1104855066); -emit_32(1112333694); -emit_32(1081737216); -emit_32(1106903040); -emit_32(1112840733); -emit_32(3055282597); -emit_32(1106903040); -emit_32(1112388744); -emit_32(1081737216); -emit_32(1108123661); -emit_32(1112817271); -emit_32(3055265401); -emit_32(1108123661); -emit_32(1112590726); -emit_32(1081737216); -emit_32(1109147648); -emit_32(1112978804); -emit_32(3055383885); -emit_32(1109147648); -emit_32(1113057735); -emit_32(1081737216); -emit_32(1110171661); -emit_32(1113143692); -emit_32(3055504787); -emit_32(1110171661); -emit_32(1113035296); -emit_32(1081737216); -emit_32(1111195648); -emit_32(1113241551); -emit_32(3055576563); -emit_32(1111195648); -emit_32(1112886896); -emit_32(1081737216); -emit_32(1112219661); -emit_32(1113409140); -emit_32(3055699444); -emit_32(1112219661); -emit_32(1112955971); -emit_32(1081737216); -emit_32(1113243648); -emit_32(1113827049); -emit_32(3056005944); -emit_32(1113243648); -emit_32(1113474440); -emit_32(1081737216); -emit_32(1114267661); -emit_32(1113969787); -emit_32(3056110618); -emit_32(1114267661); -emit_32(1113373252); -emit_32(1081737216); -emit_32(1115291648); -emit_32(1113729217); -emit_32(3055934168); -emit_32(1115291648); -emit_32(1112981923); -emit_32(1081737216); -emit_32(1116000263); -emit_32(1113555888); -emit_32(3055807065); -emit_32(1116000263); -emit_32(1112815462); -emit_32(1081737216); -emit_32(1116512256); -emit_32(1112971595); -emit_32(3055378563); -emit_32(1116512256); -emit_32(1112451711); -emit_32(1081737216); -emit_32(1117024263); -emit_32(1112445996); -emit_32(3054993118); -emit_32(1117024263); -emit_32(1112394144); -emit_32(1081737216); -emit_32(1117536256); -emit_32(1112490508); -emit_32(3055025752); -emit_32(1117536256); -emit_32(1112528414); -emit_32(1081737216); -emit_32(1118048263); -emit_32(1112364810); -emit_32(3054933569); -emit_32(1118048263); -emit_32(1112287950); -emit_32(1081737216); -emit_32(1118560256); -emit_32(1112062978); -emit_32(3054712259); -emit_32(1118560256); -emit_32(1111949653); -emit_32(1081737216); -emit_32(1119072263); -emit_32(1111766755); -emit_32(3054494995); -emit_32(1119072263); -emit_32(1111682685); -emit_32(1081737216); -emit_32(1119584256); -emit_32(1111332435); -emit_32(3054176489); -emit_32(1119584256); -emit_32(1111194678); -emit_32(1081737216); -emit_32(1120096263); -emit_32(1110914210); -emit_32(3053869769); -emit_32(1120096263); -emit_32(1111068639); -emit_32(1081737216); -emit_32(1120608322); -emit_32(1110765653); -emit_32(3053760829); -emit_32(1120608322); -emit_32(1110815303); -emit_32(1081737216); -emit_32(1121120289); -emit_32(1110612404); -emit_32(3053648459); -emit_32(1121120289); -emit_32(1110882674); -emit_32(1081737216); -emit_32(1121632256); -emit_32(1110535543); -emit_32(3053592076); -emit_32(1121632256); -emit_32(1110789010); -emit_32(1081737216); -emit_32(1122144223); -emit_32(1110472052); -emit_32(3053545501); -emit_32(1122144223); -emit_32(1110340062); -emit_32(1081737216); -emit_32(1122656322); -emit_32(1110285668); -emit_32(3053364308); -emit_32(1122656322); -emit_32(1109951539); -emit_32(1081737216); -emit_32(1123168289); -emit_32(1109697652); -emit_32(3052501939); -emit_32(1123168289); -emit_32(1109517848); -emit_32(1081737216); -emit_32(1123680256); -emit_32(1109444526); -emit_32(3052130656); -emit_32(1123680256); -emit_32(1109219108); -emit_32(1081737216); -emit_32(1124132848); -emit_32(1109279611); -emit_32(3051888763); -emit_32(1124132848); -emit_32(1108888571); -emit_32(1081737216); -emit_32(1124388897); -emit_32(1108937068); -emit_32(3051386330); -emit_32(1124388897); -emit_32(1108548203); -emit_32(1081737216); -emit_32(1124644880); -emit_32(1108458524); -emit_32(3050684490); -emit_32(1124644880); -emit_32(1108062057); -emit_32(1081737216); -emit_32(1124900864); -emit_32(1107860049); -emit_32(3049806640); -emit_32(1124900864); -emit_32(1107391755); -emit_32(1081737216); -emit_32(1125156848); -emit_32(1107061952); -emit_32(3048807931); -emit_32(1125156848); -emit_32(1107147201); -emit_32(1081737216); -emit_32(1125412897); -emit_32(1106198187); -emit_32(3048174525); -emit_32(1125412897); -emit_32(1106562515); -emit_32(1081737216); -emit_32(1125668880); -emit_32(1106521306); -emit_32(3048411491); -emit_32(1125668880); -emit_32(1107088323); -emit_32(1081737216); -emit_32(1125924864); -emit_32(1106837714); -emit_32(3048643444); -emit_32(1125924864); -emit_32(1107466728); -emit_32(1081737216); -emit_32(1126180848); -emit_32(1107242569); -emit_32(3048940401); -emit_32(1126180848); -emit_32(1107640477); -emit_32(1081737216); -emit_32(1126436897); -emit_32(1107053196); -emit_32(3048801510); -emit_32(1126436897); -emit_32(1107446858); -emit_32(1081737216); -emit_32(1126692880); -emit_32(1106540495); -emit_32(3048425477); -emit_32(1126692880); -emit_32(1107035003); -emit_32(1081737216); -emit_32(1126948864); -emit_32(1106275362); -emit_32(3048231084); -emit_32(1126948864); -emit_32(1106606398); -emit_32(1081737216); -emit_32(1127204848); -emit_32(1105871923); -emit_32(3047935271); -emit_32(1127204848); -emit_32(1106181305); -emit_32(1081737216); -emit_32(1127460897); -emit_32(1105372958); -emit_32(3047569266); -emit_32(1127460897); -emit_32(1105541831); -emit_32(1081737216); -emit_32(1127716880); -emit_32(1104684096); -emit_32(3047064106); -emit_32(1127716880); -emit_32(1104783501); -emit_32(1081737216); -emit_32(1127972864); -emit_32(1103501774); -emit_32(3046197075); -emit_32(1127972864); -emit_32(1103855197); -emit_32(1081737216); -emit_32(1128228848); -emit_32(1102439829); -emit_32(3045418269); -emit_32(1128228848); -emit_32(1103186310); -emit_32(1081737216); -emit_32(1128484897); -emit_32(1101869718); -emit_32(3044935642); -emit_32(1128484897); -emit_32(1103087482); -emit_32(1081737216); -emit_32(1128740880); -emit_32(1101702785); -emit_32(3044690829); -emit_32(1128740880); -emit_32(1102981471); -emit_32(1081737216); -emit_32(1128996864); -emit_32(1101484419); -emit_32(3044370528); -emit_32(1128996864); -emit_32(1102264716); -emit_32(1081737216); -emit_32(1129252848); -emit_32(1100736102); -emit_32(3043272969); -emit_32(1129252848); -emit_32(1102136581); -emit_32(1081737216); -emit_32(1129508897); -emit_32(1100482452); -emit_32(3042900948); -emit_32(1129508897); -emit_32(1101851735); -emit_32(1081737216); -emit_32(1129764880); -emit_32(1100170134); -emit_32(3042442865); -emit_32(1129764880); -emit_32(1101959109); -emit_32(1081737216); -emit_32(1130020864); -emit_32(1100368052); -emit_32(3042733136); -emit_32(1130020864); -emit_32(1101538001); -emit_32(1081737216); -emit_32(1130276848); -emit_32(1100034710); -emit_32(3042244249); -emit_32(1130276848); -emit_32(1100676386); -emit_32(1081737216); -emit_32(1130532897); -emit_32(1099793118); -emit_32(3041889854); -emit_32(1130532897); -emit_32(1100067740); -emit_32(1081737216); -emit_32(1130788880); -emit_32(1099349570); -emit_32(3041239348); -emit_32(1130788880); -emit_32(1099550582); -emit_32(1081737216); -emit_32(1131044864); -emit_32(1099102264); -emit_32(3040876615); -emit_32(1131044864); -emit_32(1099061684); -emit_32(1081737216); -emit_32(1131300848); -emit_32(1097152227); -emit_32(3039303785); -emit_32(1131300848); -emit_32(1097284243); -emit_32(1081737216); -emit_32(1131556897); -emit_32(1095174088); -emit_32(3037853098); -emit_32(1131556897); -emit_32(1096432799); -emit_32(1081737216); -emit_32(1131812880); -emit_32(1095119772); -emit_32(3037813287); -emit_32(1131812880); -emit_32(1096013998); -emit_32(1081737216); -emit_32(1132068864); -emit_32(1094633233); -emit_32(3037456465); -emit_32(1132068864); -emit_32(1095458043); -emit_32(1081737216); -emit_32(1081737216); -emit_32(1111714929); -emit_32(3229220864); -emit_32(1090125824); -emit_32(1111846420); -emit_32(3229220864); -emit_32(1094418484); -emit_32(1112005149); -emit_32(3229220864); -emit_32(1098514432); -emit_32(1112044365); -emit_32(3229220864); -emit_32(1100759066); -emit_32(1112440753); -emit_32(3229220864); -emit_32(1102807040); -emit_32(1112584120); -emit_32(3229220864); -emit_32(1104855066); -emit_32(1112766651); -emit_32(3229220864); -emit_32(1106903040); -emit_32(1113057657); -emit_32(3229220864); -emit_32(1108123661); -emit_32(1113035846); -emit_32(3229220864); -emit_32(1109147648); -emit_32(1113286037); -emit_32(3229220864); -emit_32(1110171661); -emit_32(1113632643); -emit_32(3229220864); -emit_32(1111195648); -emit_32(1113716556); -emit_32(3229220864); -emit_32(1112219661); -emit_32(1113737894); -emit_32(3229220864); -emit_32(1113243648); -emit_32(1114105892); -emit_32(3229220864); -emit_32(1114267661); -emit_32(1114272563); -emit_32(3229220864); -emit_32(1115291648); -emit_32(1114112603); -emit_32(3229220864); -emit_32(1116000263); -emit_32(1114000379); -emit_32(3229220864); -emit_32(1116512256); -emit_32(1113455303); -emit_32(3229220864); -emit_32(1117024263); -emit_32(1112990522); -emit_32(3229220864); -emit_32(1117536256); -emit_32(1112862360); -emit_32(3229220864); -emit_32(1118048263); -emit_32(1112683289); -emit_32(3229220864); -emit_32(1118560256); -emit_32(1112325279); -emit_32(3229220864); -emit_32(1119072263); -emit_32(1111923989); -emit_32(3229220864); -emit_32(1119584256); -emit_32(1111407434); -emit_32(3229220864); -emit_32(1120096263); -emit_32(1110917251); -emit_32(3229220864); -emit_32(1120608322); -emit_32(1110628080); -emit_32(3229220864); -emit_32(1121120289); -emit_32(1110728560); -emit_32(3229220864); -emit_32(1121632256); -emit_32(1110660245); -emit_32(3229220864); -emit_32(1122144223); -emit_32(1110578220); -emit_32(3229220864); -emit_32(1122656322); -emit_32(1110373800); -emit_32(3229220864); -emit_32(1123168289); -emit_32(1109998646); -emit_32(3229220864); -emit_32(1123680256); -emit_32(1109504138); -emit_32(3229220864); -emit_32(1124132848); -emit_32(1109245821); -emit_32(3229220864); -emit_32(1124388897); -emit_32(1109347533); -emit_32(3229220864); -emit_32(1124644880); -emit_32(1108947213); -emit_32(3229220864); -emit_32(1124900864); -emit_32(1108137607); -emit_32(3229220864); -emit_32(1125156848); -emit_32(1107314396); -emit_32(3229220864); -emit_32(1125412897); -emit_32(1106864505); -emit_32(3229220864); -emit_32(1125668880); -emit_32(1107350389); -emit_32(3229220864); -emit_32(1125924864); -emit_32(1107022263); -emit_32(3229220864); -emit_32(1126180848); -emit_32(1107147673); -emit_32(3229220864); -emit_32(1126436897); -emit_32(1107173940); -emit_32(3229220864); -emit_32(1126692880); -emit_32(1106863299); -emit_32(3229220864); -emit_32(1126948864); -emit_32(1106064966); -emit_32(3229220864); -emit_32(1127204848); -emit_32(1105610408); -emit_32(3229220864); -emit_32(1127460897); -emit_32(1105364464); -emit_32(3229220864); -emit_32(1127716880); -emit_32(1104474905); -emit_32(3229220864); -emit_32(1127972864); -emit_32(1103487985); -emit_32(3229220864); -emit_32(1128228848); -emit_32(1102533729); -emit_32(3229220864); -emit_32(1128484897); -emit_32(1101802294); -emit_32(3229220864); -emit_32(1128740880); -emit_32(1100883847); -emit_32(3229220864); -emit_32(1128996864); -emit_32(1100469607); -emit_32(3229220864); -emit_32(1129252848); -emit_32(1100396573); -emit_32(3229220864); -emit_32(1129508897); -emit_32(1100417440); -emit_32(3229220864); -emit_32(1129764880); -emit_32(1100382103); -emit_32(3229220864); -emit_32(1130020864); -emit_32(1100225498); -emit_32(3229220864); -emit_32(1130276848); -emit_32(1100250192); -emit_32(3229220864); -emit_32(1130532897); -emit_32(1099696859); -emit_32(3229220864); -emit_32(1130788880); -emit_32(1099685587); -emit_32(3229220864); -emit_32(1131044864); -emit_32(1099260389); -emit_32(3229220864); -emit_32(1131300848); -emit_32(1097711642); -emit_32(3229220864); -emit_32(1131556897); -emit_32(1095721340); -emit_32(3229220864); -emit_32(1131812880); -emit_32(1095617636); -emit_32(3229220864); -emit_32(1132068864); -emit_32(1094282799); -emit_32(3229220864); -emit_32(1081737216); -emit_32(1111679959); -emit_32(3237609472); -emit_32(1090125824); -emit_32(1111786285); -emit_32(3237609472); -emit_32(1094418484); -emit_32(1112014979); -emit_32(3237609472); -emit_32(1098514432); -emit_32(1112169408); -emit_32(3237609472); -emit_32(1100759066); -emit_32(1112421145); -emit_32(3237609472); -emit_32(1102807040); -emit_32(1112788461); -emit_32(3237609472); -emit_32(1104855066); -emit_32(1112831951); -emit_32(3237609472); -emit_32(1106903040); -emit_32(1113081302); -emit_32(3237609472); -emit_32(1108123661); -emit_32(1113387250); -emit_32(3237609472); -emit_32(1109147648); -emit_32(1113921710); -emit_32(3237609472); -emit_32(1110171661); -emit_32(1113963574); -emit_32(3237609472); -emit_32(1111195648); -emit_32(1114050658); -emit_32(3237609472); -emit_32(1112219661); -emit_32(1113921264); -emit_32(3237609472); -emit_32(1113243648); -emit_32(1114115854); -emit_32(3237609472); -emit_32(1114267661); -emit_32(1114312278); -emit_32(3237609472); -emit_32(1115291648); -emit_32(1114279117); -emit_32(3237609472); -emit_32(1116000263); -emit_32(1113920609); -emit_32(3237609472); -emit_32(1116512256); -emit_32(1113584645); -emit_32(3237609472); -emit_32(1117024263); -emit_32(1113293246); -emit_32(3237609472); -emit_32(1117536256); -emit_32(1113201469); -emit_32(3237609472); -emit_32(1118048263); -emit_32(1112988661); -emit_32(3237609472); -emit_32(1118560256); -emit_32(1112637047); -emit_32(3237609472); -emit_32(1119072263); -emit_32(1112267476); -emit_32(3237609472); -emit_32(1119584256); -emit_32(1111621186); -emit_32(3237609472); -emit_32(1120096263); -emit_32(1110940949); -emit_32(3237609472); -emit_32(1120608322); -emit_32(1110726751); -emit_32(3237609472); -emit_32(1121120289); -emit_32(1110505737); -emit_32(3237609472); -emit_32(1121632256); -emit_32(1110430476); -emit_32(3237609472); -emit_32(1122144223); -emit_32(1110258876); -emit_32(3237609472); -emit_32(1122656322); -emit_32(1110246425); -emit_32(3237609472); -emit_32(1123168289); -emit_32(1110111368); -emit_32(3237609472); -emit_32(1123680256); -emit_32(1109704075); -emit_32(3237609472); -emit_32(1124132848); -emit_32(1109328449); -emit_32(3237609472); -emit_32(1124388897); -emit_32(1109344020); -emit_32(3237609472); -emit_32(1124644880); -emit_32(1109056501); -emit_32(3237609472); -emit_32(1124900864); -emit_32(1108366983); -emit_32(3237609472); -emit_32(1125156848); -emit_32(1107828618); -emit_32(3237609472); -emit_32(1125412897); -emit_32(1107568047); -emit_32(3237609472); -emit_32(1125668880); -emit_32(1107450056); -emit_32(3237609472); -emit_32(1125924864); -emit_32(1107525842); -emit_32(3237609472); -emit_32(1126180848); -emit_32(1107466650); -emit_32(3237609472); -emit_32(1126436897); -emit_32(1107475195); -emit_32(3237609472); -emit_32(1126692880); -emit_32(1107046852); -emit_32(3237609472); -emit_32(1126948864); -emit_32(1106460593); -emit_32(3237609472); -emit_32(1127204848); -emit_32(1105866051); -emit_32(3237609472); -emit_32(1127460897); -emit_32(1105220967); -emit_32(3237609472); -emit_32(1127716880); -emit_32(1104257535); -emit_32(3237609472); -emit_32(1127972864); -emit_32(1103215618); -emit_32(3237609472); -emit_32(1128228848); -emit_32(1102464785); -emit_32(3237609472); -emit_32(1128484897); -emit_32(1101270562); -emit_32(3237609472); -emit_32(1128740880); -emit_32(1100280706); -emit_32(3237609472); -emit_32(1128996864); -emit_32(1099709599); -emit_32(3237609472); -emit_32(1129252848); -emit_32(1100000579); -emit_32(3237609472); -emit_32(1129508897); -emit_32(1100207987); -emit_32(3237609472); -emit_32(1129764880); -emit_32(1100241227); -emit_32(3237609472); -emit_32(1130020864); -emit_32(1100129029); -emit_32(3237609472); -emit_32(1130276848); -emit_32(1099912079); -emit_32(3237609472); -emit_32(1130532897); -emit_32(1099448608); -emit_32(3237609472); -emit_32(1130788880); -emit_32(1099055392); -emit_32(3237609472); -emit_32(1131044864); -emit_32(1098378012); -emit_32(3237609472); -emit_32(1131300848); -emit_32(1096274779); -emit_32(3237609472); -emit_32(1131556897); -emit_32(1096113088); -emit_32(3237609472); -emit_32(1131812880); -emit_32(1094998137); -emit_32(3237609472); -emit_32(1132068864); -emit_32(1093654387); -emit_32(3237609472); -emit_32(1081737216); -emit_32(1111917802); -emit_32(3241902132); -emit_32(1090125824); -emit_32(1112032752); -emit_32(3241902132); -emit_32(1094418484); -emit_32(1112179868); -emit_32(3241902132); -emit_32(1098514432); -emit_32(1112289968); -emit_32(3241902132); -emit_32(1100759066); -emit_32(1112667167); -emit_32(3241902132); -emit_32(1102807040); -emit_32(1112883777); -emit_32(3241902132); -emit_32(1104855066); -emit_32(1113176434); -emit_32(3241902132); -emit_32(1106903040); -emit_32(1113400908); -emit_32(3241902132); -emit_32(1108123661); -emit_32(1113733176); -emit_32(3241902132); -emit_32(1109147648); -emit_32(1114095642); -emit_32(3241902132); -emit_32(1110171661); -emit_32(1114172346); -emit_32(3241902132); -emit_32(1111195648); -emit_32(1114411342); -emit_32(3241902132); -emit_32(1112219661); -emit_32(1114340694); -emit_32(3241902132); -emit_32(1113243648); -emit_32(1114253374); -emit_32(3241902132); -emit_32(1114267661); -emit_32(1114280192); -emit_32(3241902132); -emit_32(1115291648); -emit_32(1114163721); -emit_32(3241902132); -emit_32(1116000263); -emit_32(1114090190); -emit_32(3241902132); -emit_32(1116512256); -emit_32(1113701666); -emit_32(3241902132); -emit_32(1117024263); -emit_32(1113532950); -emit_32(3241902132); -emit_32(1117536256); -emit_32(1113573556); -emit_32(3241902132); -emit_32(1118048263); -emit_32(1113300219); -emit_32(3241902132); -emit_32(1118560256); -emit_32(1112826289); -emit_32(3241902132); -emit_32(1119072263); -emit_32(1112471713); -emit_32(3241902132); -emit_32(1119584256); -emit_32(1111810323); -emit_32(3241902132); -emit_32(1120096263); -emit_32(1110995816); -emit_32(3241902132); -emit_32(1120608322); -emit_32(1110440752); -emit_32(3241902132); -emit_32(1121120289); -emit_32(1110331281); -emit_32(3241902132); -emit_32(1121632256); -emit_32(1110265928); -emit_32(3241902132); -emit_32(1122144223); -emit_32(1110314897); -emit_32(3241902132); -emit_32(1122656322); -emit_32(1110355136); -emit_32(3241902132); -emit_32(1123168289); -emit_32(1110061272); -emit_32(3241902132); -emit_32(1123680256); -emit_32(1109762481); -emit_32(3241902132); -emit_32(1124132848); -emit_32(1109249543); -emit_32(3241902132); -emit_32(1124388897); -emit_32(1109267133); -emit_32(3241902132); -emit_32(1124644880); -emit_32(1108818474); -emit_32(3241902132); -emit_32(1124900864); -emit_32(1108492996); -emit_32(3241902132); -emit_32(1125156848); -emit_32(1108035555); -emit_32(3241902132); -emit_32(1125412897); -emit_32(1107824896); -emit_32(3241902132); -emit_32(1125668880); -emit_32(1107697625); -emit_32(3241902132); -emit_32(1125924864); -emit_32(1107864374); -emit_32(3241902132); -emit_32(1126180848); -emit_32(1107783896); -emit_32(3241902132); -emit_32(1126436897); -emit_32(1107786911); -emit_32(3241902132); -emit_32(1126692880); -emit_32(1107603043); -emit_32(3241902132); -emit_32(1126948864); -emit_32(1106784603); -emit_32(3241902132); -emit_32(1127204848); -emit_32(1106394376); -emit_32(3241902132); -emit_32(1127460897); -emit_32(1105369026); -emit_32(3241902132); -emit_32(1127716880); -emit_32(1104382892); -emit_32(3241902132); -emit_32(1127972864); -emit_32(1103613552); -emit_32(3241902132); -emit_32(1128228848); -emit_32(1102201959); -emit_32(3241902132); -emit_32(1128484897); -emit_32(1100683674); -emit_32(3241902132); -emit_32(1128740880); -emit_32(1100170081); -emit_32(3241902132); -emit_32(1128996864); -emit_32(1099248330); -emit_32(3241902132); -emit_32(1129252848); -emit_32(1098972398); -emit_32(3241902132); -emit_32(1129508897); -emit_32(1099403729); -emit_32(3241902132); -emit_32(1129764880); -emit_32(1099570243); -emit_32(3241902132); -emit_32(1130020864); -emit_32(1099452174); -emit_32(3241902132); -emit_32(1130276848); -emit_32(1099309567); -emit_32(3241902132); -emit_32(1130532897); -emit_32(1098235616); -emit_32(3241902132); -emit_32(1130788880); -emit_32(1097234960); -emit_32(3241902132); -emit_32(1131044864); -emit_32(1096084777); -emit_32(3241902132); -emit_32(1131300848); -emit_32(1095855768); -emit_32(3241902132); -emit_32(1131556897); -emit_32(1095600649); -emit_32(3241902132); -emit_32(1131812880); -emit_32(1095372584); -emit_32(3241902132); -emit_32(1132068864); -emit_32(1094155711); -emit_32(3241902132); -emit_32(1081737216); -emit_32(1112196121); -emit_32(3245998080); -emit_32(1090125824); -emit_32(1112339435); -emit_32(3245998080); -emit_32(1094418484); -emit_32(1112635054); -emit_32(3245998080); -emit_32(1098514432); -emit_32(1112640664); -emit_32(3245998080); -emit_32(1100759066); -emit_32(1112829670); -emit_32(3245998080); -emit_32(1102807040); -emit_32(1113234342); -emit_32(3245998080); -emit_32(1104855066); -emit_32(1113597123); -emit_32(3245998080); -emit_32(1106903040); -emit_32(1113703003); -emit_32(3245998080); -emit_32(1108123661); -emit_32(1113932589); -emit_32(3245998080); -emit_32(1109147648); -emit_32(1114173735); -emit_32(3245998080); -emit_32(1110171661); -emit_32(1114493341); -emit_32(3245998080); -emit_32(1111195648); -emit_32(1114614687); -emit_32(3245998080); -emit_32(1112219661); -emit_32(1114656971); -emit_32(3245998080); -emit_32(1113243648); -emit_32(1114375193); -emit_32(3245998080); -emit_32(1114267661); -emit_32(1114462251); -emit_32(3245998080); -emit_32(1115291648); -emit_32(1114444425); -emit_32(3245998080); -emit_32(1116000263); -emit_32(1114258040); -emit_32(3245998080); -emit_32(1116512256); -emit_32(1113897068); -emit_32(3245998080); -emit_32(1117024263); -emit_32(1113641399); -emit_32(3245998080); -emit_32(1117536256); -emit_32(1113834835); -emit_32(3245998080); -emit_32(1118048263); -emit_32(1113430688); -emit_32(3245998080); -emit_32(1118560256); -emit_32(1112813260); -emit_32(3245998080); -emit_32(1119072263); -emit_32(1112444187); -emit_32(3245998080); -emit_32(1119584256); -emit_32(1111786704); -emit_32(3245998080); -emit_32(1120096263); -emit_32(1111130558); -emit_32(3245998080); -emit_32(1120608322); -emit_32(1110632169); -emit_32(3245998080); -emit_32(1121120289); -emit_32(1110279953); -emit_32(3245998080); -emit_32(1121632256); -emit_32(1110145840); -emit_32(3245998080); -emit_32(1122144223); -emit_32(1110117869); -emit_32(3245998080); -emit_32(1122656322); -emit_32(1109967425); -emit_32(3245998080); -emit_32(1123168289); -emit_32(1109898533); -emit_32(3245998080); -emit_32(1123680256); -emit_32(1109796192); -emit_32(3245998080); -emit_32(1124132848); -emit_32(1109273031); -emit_32(3245998080); -emit_32(1124388897); -emit_32(1109109716); -emit_32(3245998080); -emit_32(1124644880); -emit_32(1108907052); -emit_32(3245998080); -emit_32(1124900864); -emit_32(1108479705); -emit_32(3245998080); -emit_32(1125156848); -emit_32(1108048504); -emit_32(3245998080); -emit_32(1125412897); -emit_32(1108035581); -emit_32(3245998080); -emit_32(1125668880); -emit_32(1107927761); -emit_32(3245998080); -emit_32(1125924864); -emit_32(1108119231); -emit_32(3245998080); -emit_32(1126180848); -emit_32(1108244955); -emit_32(3245998080); -emit_32(1126436897); -emit_32(1108024597); -emit_32(3245998080); -emit_32(1126692880); -emit_32(1107730052); -emit_32(3245998080); -emit_32(1126948864); -emit_32(1107344019); -emit_32(3245998080); -emit_32(1127204848); -emit_32(1106859314); -emit_32(3245998080); -emit_32(1127460897); -emit_32(1105701057); -emit_32(3245998080); -emit_32(1127716880); -emit_32(1104883954); -emit_32(3245998080); -emit_32(1127972864); -emit_32(1103479492); -emit_32(3245998080); -emit_32(1128228848); -emit_32(1101941126); -emit_32(3245998080); -emit_32(1128484897); -emit_32(1100612003); -emit_32(3245998080); -emit_32(1128740880); -emit_32(1099967182); -emit_32(3245998080); -emit_32(1128996864); -emit_32(1099350200); -emit_32(3245998080); -emit_32(1129252848); -emit_32(1098786642); -emit_32(3245998080); -emit_32(1129508897); -emit_32(1098582799); -emit_32(3245998080); -emit_32(1129764880); -emit_32(1098188639); -emit_32(3245998080); -emit_32(1130020864); -emit_32(1098264032); -emit_32(3245998080); -emit_32(1130276848); -emit_32(1097098120); -emit_32(3245998080); -emit_32(1130532897); -emit_32(1096369150); -emit_32(3245998080); -emit_32(1130788880); -emit_32(1096281280); -emit_32(3245998080); -emit_32(1131044864); -emit_32(1096127244); -emit_32(3245998080); -emit_32(1131300848); -emit_32(1096047342); -emit_32(3245998080); -emit_32(1131556897); -emit_32(1096229061); -emit_32(3245998080); -emit_32(1131812880); -emit_32(1095837942); -emit_32(3245998080); -emit_32(1132068864); -emit_32(1094247567); -emit_32(3245998080); -emit_32(1081737216); -emit_32(1112566084); -emit_32(3248242714); -emit_32(1090125824); -emit_32(1112769036); -emit_32(3248242714); -emit_32(1094418484); -emit_32(1113204903); -emit_32(3248242714); -emit_32(1098514432); -emit_32(1113297807); -emit_32(3248242714); -emit_32(1100759066); -emit_32(1113299590); -emit_32(3248242714); -emit_32(1102807040); -emit_32(1113631778); -emit_32(3248242714); -emit_32(1104855066); -emit_32(1113733962); -emit_32(3248242714); -emit_32(1106903040); -emit_32(1114058575); -emit_32(3248242714); -emit_32(1108123661); -emit_32(1114302841); -emit_32(3248242714); -emit_32(1109147648); -emit_32(1114499816); -emit_32(3248242714); -emit_32(1110171661); -emit_32(1114705389); -emit_32(3248242714); -emit_32(1111195648); -emit_32(1114954505); -emit_32(3248242714); -emit_32(1112219661); -emit_32(1114757818); -emit_32(3248242714); -emit_32(1113243648); -emit_32(1114552664); -emit_32(3248242714); -emit_32(1114267661); -emit_32(1114690499); -emit_32(3248242714); -emit_32(1115291648); -emit_32(1114401800); -emit_32(3248242714); -emit_32(1116000263); -emit_32(1114010445); -emit_32(3248242714); -emit_32(1116512256); -emit_32(1113755904); -emit_32(3248242714); -emit_32(1117024263); -emit_32(1113715219); -emit_32(3248242714); -emit_32(1117536256); -emit_32(1113634478); -emit_32(3248242714); -emit_32(1118048263); -emit_32(1113284962); -emit_32(3248242714); -emit_32(1118560256); -emit_32(1112908602); -emit_32(3248242714); -emit_32(1119072263); -emit_32(1112464713); -emit_32(3248242714); -emit_32(1119584256); -emit_32(1111750948); -emit_32(3248242714); -emit_32(1120096263); -emit_32(1111362529); -emit_32(3248242714); -emit_32(1120608322); -emit_32(1110906005); -emit_32(3248242714); -emit_32(1121120289); -emit_32(1110451867); -emit_32(3248242714); -emit_32(1121632256); -emit_32(1110203905); -emit_32(3248242714); -emit_32(1122144223); -emit_32(1110022344); -emit_32(3248242714); -emit_32(1122656322); -emit_32(1109942023); -emit_32(3248242714); -emit_32(1123168289); -emit_32(1109931930); -emit_32(3248242714); -emit_32(1123680256); -emit_32(1109863432); -emit_32(3248242714); -emit_32(1124132848); -emit_32(1109215989); -emit_32(3248242714); -emit_32(1124388897); -emit_32(1109161384); -emit_32(3248242714); -emit_32(1124644880); -emit_32(1108931536); -emit_32(3248242714); -emit_32(1124900864); -emit_32(1108371544); -emit_32(3248242714); -emit_32(1125156848); -emit_32(1108462875); -emit_32(3248242714); -emit_32(1125412897); -emit_32(1108261182); -emit_32(3248242714); -emit_32(1125668880); -emit_32(1108292980); -emit_32(3248242714); -emit_32(1125924864); -emit_32(1108474724); -emit_32(3248242714); -emit_32(1126180848); -emit_32(1108428377); -emit_32(3248242714); -emit_32(1126436897); -emit_32(1108089713); -emit_32(3248242714); -emit_32(1126692880); -emit_32(1107824057); -emit_32(3248242714); -emit_32(1126948864); -emit_32(1107727614); -emit_32(3248242714); -emit_32(1127204848); -emit_32(1107082976); -emit_32(3248242714); -emit_32(1127460897); -emit_32(1106264772); -emit_32(3248242714); -emit_32(1127716880); -emit_32(1105380141); -emit_32(3248242714); -emit_32(1127972864); -emit_32(1103821223); -emit_32(3248242714); -emit_32(1128228848); -emit_32(1102097049); -emit_32(3248242714); -emit_32(1128484897); -emit_32(1100348129); -emit_32(3248242714); -emit_32(1128740880); -emit_32(1099721186); -emit_32(3248242714); -emit_32(1128996864); -emit_32(1098987759); -emit_32(3248242714); -emit_32(1129252848); -emit_32(1098503317); -emit_32(3248242714); -emit_32(1129508897); -emit_32(1097783679); -emit_32(3248242714); -emit_32(1129764880); -emit_32(1097409338); -emit_32(3248242714); -emit_32(1130020864); -emit_32(1096647547); -emit_32(3248242714); -emit_32(1130276848); -emit_32(1096484599); -emit_32(3248242714); -emit_32(1130532897); -emit_32(1095929168); -emit_32(3248242714); -emit_32(1130788880); -emit_32(1096063071); -emit_32(3248242714); -emit_32(1131044864); -emit_32(1096407109); -emit_32(3248242714); -emit_32(1131300848); -emit_32(1095628227); -emit_32(3248242714); -emit_32(1131556897); -emit_32(1095460769); -emit_32(3248242714); -emit_32(1131812880); -emit_32(1095830916); -emit_32(3248242714); -emit_32(1132068864); -emit_32(1094232467); -emit_32(3248242714); -emit_32(1081737216); -emit_32(1113150456); -emit_32(3250290688); -emit_32(1090125824); -emit_32(1113492292); -emit_32(3250290688); -emit_32(1094418484); -emit_32(1113689922); -emit_32(3250290688); -emit_32(1098514432); -emit_32(1113686357); -emit_32(3250290688); -emit_32(1100759066); -emit_32(1113837352); -emit_32(3250290688); -emit_32(1102807040); -emit_32(1113996473); -emit_32(3250290688); -emit_32(1104855066); -emit_32(1114061039); -emit_32(3250290688); -emit_32(1106903040); -emit_32(1114255891); -emit_32(3250290688); -emit_32(1108123661); -emit_32(1114434988); -emit_32(3250290688); -emit_32(1109147648); -emit_32(1114792814); -emit_32(3250290688); -emit_32(1110171661); -emit_32(1114681586); -emit_32(3250290688); -emit_32(1111195648); -emit_32(1114881157); -emit_32(3250290688); -emit_32(1112219661); -emit_32(1114508309); -emit_32(3250290688); -emit_32(1113243648); -emit_32(1114572115); -emit_32(3250290688); -emit_32(1114267661); -emit_32(1114613377); -emit_32(3250290688); -emit_32(1115291648); -emit_32(1114243334); -emit_32(3250290688); -emit_32(1116000263); -emit_32(1114073701); -emit_32(3250290688); -emit_32(1116512256); -emit_32(1113815594); -emit_32(3250290688); -emit_32(1117024263); -emit_32(1113605721); -emit_32(3250290688); -emit_32(1117536256); -emit_32(1113440702); -emit_32(3250290688); -emit_32(1118048263); -emit_32(1112989159); -emit_32(3250290688); -emit_32(1118560256); -emit_32(1112567395); -emit_32(3250290688); -emit_32(1119072263); -emit_32(1112247344); -emit_32(3250290688); -emit_32(1119584256); -emit_32(1112009920); -emit_32(3250290688); -emit_32(1120096263); -emit_32(1111470454); -emit_32(3250290688); -emit_32(1120608322); -emit_32(1110996838); -emit_32(3250290688); -emit_32(1121120289); -emit_32(1110568495); -emit_32(3250290688); -emit_32(1121632256); -emit_32(1110151633); -emit_32(3250290688); -emit_32(1122144223); -emit_32(1109917460); -emit_32(3250290688); -emit_32(1122656322); -emit_32(1109701663); -emit_32(3250290688); -emit_32(1123168289); -emit_32(1109686721); -emit_32(3250290688); -emit_32(1123680256); -emit_32(1109370549); -emit_32(3250290688); -emit_32(1124132848); -emit_32(1109357783); -emit_32(3250290688); -emit_32(1124388897); -emit_32(1109361348); -emit_32(3250290688); -emit_32(1124644880); -emit_32(1108962627); -emit_32(3250290688); -emit_32(1124900864); -emit_32(1108736108); -emit_32(3250290688); -emit_32(1125156848); -emit_32(1108614185); -emit_32(3250290688); -emit_32(1125412897); -emit_32(1108533864); -emit_32(3250290688); -emit_32(1125668880); -emit_32(1108590068); -emit_32(3250290688); -emit_32(1125924864); -emit_32(1108802404); -emit_32(3250290688); -emit_32(1126180848); -emit_32(1108700955); -emit_32(3250290688); -emit_32(1126436897); -emit_32(1108392988); -emit_32(3250290688); -emit_32(1126692880); -emit_32(1108021871); -emit_32(3250290688); -emit_32(1126948864); -emit_32(1107615521); -emit_32(3250290688); -emit_32(1127204848); -emit_32(1107132835); -emit_32(3250290688); -emit_32(1127460897); -emit_32(1106307239); -emit_32(3250290688); -emit_32(1127716880); -emit_32(1105259659); -emit_32(3250290688); -emit_32(1127972864); -emit_32(1103882145); -emit_32(3250290688); -emit_32(1128228848); -emit_32(1102498916); -emit_32(3250290688); -emit_32(1128484897); -emit_32(1100712509); -emit_32(3250290688); -emit_32(1128740880); -emit_32(1099497629); -emit_32(3250290688); -emit_32(1128996864); -emit_32(1097686476); -emit_32(3250290688); -emit_32(1129252848); -emit_32(1096996199); -emit_32(3250290688); -emit_32(1129508897); -emit_32(1096729441); -emit_32(3250290688); -emit_32(1129764880); -emit_32(1096118855); -emit_32(3250290688); -emit_32(1130020864); -emit_32(1095816970); -emit_32(3250290688); -emit_32(1130276848); -emit_32(1095839934); -emit_32(3250290688); -emit_32(1130532897); -emit_32(1095807218); -emit_32(3250290688); -emit_32(1130788880); -emit_32(1096112249); -emit_32(3250290688); -emit_32(1131044864); -emit_32(1096393372); -emit_32(3250290688); -emit_32(1131300848); -emit_32(1096168558); -emit_32(3250290688); -emit_32(1131556897); -emit_32(1095322776); -emit_32(3250290688); -emit_32(1131812880); -emit_32(1094576924); -emit_32(3250290688); -emit_32(1132068864); -emit_32(1094020760); -emit_32(3250290688); -emit_32(1081737216); -emit_32(1113988085); -emit_32(3252338714); -emit_32(1090125824); -emit_32(1114065260); -emit_32(3252338714); -emit_32(1094418484); -emit_32(1113997338); -emit_32(3252338714); -emit_32(1098514432); -emit_32(1114054171); -emit_32(3252338714); -emit_32(1100759066); -emit_32(1114320378); -emit_32(3252338714); -emit_32(1102807040); -emit_32(1114467126); -emit_32(3252338714); -emit_32(1104855066); -emit_32(1114435984); -emit_32(3252338714); -emit_32(1106903040); -emit_32(1114341953); -emit_32(3252338714); -emit_32(1108123661); -emit_32(1114299407); -emit_32(3252338714); -emit_32(1109147648); -emit_32(1114563438); -emit_32(3252338714); -emit_32(1110171661); -emit_32(1114648268); -emit_32(3252338714); -emit_32(1111195648); -emit_32(1114546084); -emit_32(3252338714); -emit_32(1112219661); -emit_32(1114619144); -emit_32(3252338714); -emit_32(1113243648); -emit_32(1114743636); -emit_32(3252338714); -emit_32(1114267661); -emit_32(1114455592); -emit_32(3252338714); -emit_32(1115291648); -emit_32(1114088040); -emit_32(3252338714); -emit_32(1116000263); -emit_32(1113929390); -emit_32(3252338714); -emit_32(1116512256); -emit_32(1113476511); -emit_32(3252338714); -emit_32(1117024263); -emit_32(1113251303); -emit_32(3252338714); -emit_32(1117536256); -emit_32(1113169592); -emit_32(3252338714); -emit_32(1118048263); -emit_32(1112818162); -emit_32(3252338714); -emit_32(1118560256); -emit_32(1112268839); -emit_32(3252338714); -emit_32(1119072263); -emit_32(1111908916); -emit_32(3252338714); -emit_32(1119584256); -emit_32(1111826550); -emit_32(3252338714); -emit_32(1120096263); -emit_32(1111731418); -emit_32(3252338714); -emit_32(1120608322); -emit_32(1111230146); -emit_32(3252338714); -emit_32(1121120289); -emit_32(1110553815); -emit_32(3252338714); -emit_32(1121632256); -emit_32(1110036683); -emit_32(3252338714); -emit_32(1122144223); -emit_32(1109799364); -emit_32(3252338714); -emit_32(1122656322); -emit_32(1109771393); -emit_32(3252338714); -emit_32(1123168289); -emit_32(1109709003); -emit_32(3252338714); -emit_32(1123680256); -emit_32(1109442691); -emit_32(3252338714); -emit_32(1124132848); -emit_32(1109517769); -emit_32(3252338714); -emit_32(1124388897); -emit_32(1109424524); -emit_32(3252338714); -emit_32(1124644880); -emit_32(1109080277); -emit_32(3252338714); -emit_32(1124900864); -emit_32(1108875411); -emit_32(3252338714); -emit_32(1125156848); -emit_32(1108744733); -emit_32(3252338714); -emit_32(1125412897); -emit_32(1108572268); -emit_32(3252338714); -emit_32(1125668880); -emit_32(1108842041); -emit_32(3252338714); -emit_32(1125924864); -emit_32(1108992537); -emit_32(3252338714); -emit_32(1126180848); -emit_32(1108824136); -emit_32(3252338714); -emit_32(1126436897); -emit_32(1108504583); -emit_32(3252338714); -emit_32(1126692880); -emit_32(1107939112); -emit_32(3252338714); -emit_32(1126948864); -emit_32(1107373221); -emit_32(3252338714); -emit_32(1127204848); -emit_32(1107163454); -emit_32(3252338714); -emit_32(1127460897); -emit_32(1106219106); -emit_32(3252338714); -emit_32(1127716880); -emit_32(1105070444); -emit_32(3252338714); -emit_32(1127972864); -emit_32(1103725960); -emit_32(3252338714); -emit_32(1128228848); -emit_32(1102334919); -emit_32(3252338714); -emit_32(1128484897); -emit_32(1100777102); -emit_32(3252338714); -emit_32(1128740880); -emit_32(1099662937); -emit_32(3252338714); -emit_32(1128996864); -emit_32(1098431490); -emit_32(3252338714); -emit_32(1129252848); -emit_32(1097775186); -emit_32(3252338714); -emit_32(1129508897); -emit_32(1096256848); -emit_32(3252338714); -emit_32(1129764880); -emit_32(1095754895); -emit_32(3252338714); -emit_32(1130020864); -emit_32(1096060659); -emit_32(3252338714); -emit_32(1130276848); -emit_32(1095067238); -emit_32(3252338714); -emit_32(1130532897); -emit_32(1094771330); -emit_32(3252338714); -emit_32(1130788880); -emit_32(1095212047); -emit_32(3252338714); -emit_32(1131044864); -emit_32(1094803207); -emit_32(3252338714); -emit_32(1131300848); -emit_32(1094921801); -emit_32(3252338714); -emit_32(1131556897); -emit_32(1094618028); -emit_32(3252338714); -emit_32(1131812880); -emit_32(1093381757); -emit_32(3252338714); -emit_32(1132068864); -emit_32(1092728180); -emit_32(3252338714); -emit_32(1081737216); -emit_32(1114484349); -emit_32(3254386688); -emit_32(1090125824); -emit_32(1114516331); -emit_32(3254386688); -emit_32(1094418484); -emit_32(1114316079); -emit_32(3254386688); -emit_32(1098514432); -emit_32(1114579953); -emit_32(3254386688); -emit_32(1100759066); -emit_32(1114764660); -emit_32(3254386688); -emit_32(1102807040); -emit_32(1114796065); -emit_32(3254386688); -emit_32(1104855066); -emit_32(1114724998); -emit_32(3254386688); -emit_32(1106903040); -emit_32(1114516881); -emit_32(3254386688); -emit_32(1108123661); -emit_32(1114291254); -emit_32(3254386688); -emit_32(1109147648); -emit_32(1114334036); -emit_32(3254386688); -emit_32(1110171661); -emit_32(1114475987); -emit_32(3254386688); -emit_32(1111195648); -emit_32(1114491322); -emit_32(3254386688); -emit_32(1112219661); -emit_32(1114531378); -emit_32(3254386688); -emit_32(1113243648); -emit_32(1114372755); -emit_32(3254386688); -emit_32(1114267661); -emit_32(1114308136); -emit_32(3254386688); -emit_32(1115291648); -emit_32(1113743609); -emit_32(3254386688); -emit_32(1116000263); -emit_32(1113664809); -emit_32(3254386688); -emit_32(1116512256); -emit_32(1113231799); -emit_32(3254386688); -emit_32(1117024263); -emit_32(1112995057); -emit_32(3254386688); -emit_32(1117536256); -emit_32(1112878744); -emit_32(3254386688); -emit_32(1118048263); -emit_32(1112754959); -emit_32(3254386688); -emit_32(1118560256); -emit_32(1112570436); -emit_32(3254386688); -emit_32(1119072263); -emit_32(1112364417); -emit_32(3254386688); -emit_32(1119584256); -emit_32(1111993903); -emit_32(3254386688); -emit_32(1120096263); -emit_32(1111795748); -emit_32(3254386688); -emit_32(1120608322); -emit_32(1111345490); -emit_32(3254386688); -emit_32(1121120289); -emit_32(1110601525); -emit_32(3254386688); -emit_32(1121632256); -emit_32(1110149693); -emit_32(3254386688); -emit_32(1122144223); -emit_32(1110165946); -emit_32(3254386688); -emit_32(1122656322); -emit_32(1109981554); -emit_32(3254386688); -emit_32(1123168289); -emit_32(1109825395); -emit_32(3254386688); -emit_32(1123680256); -emit_32(1109816797); -emit_32(3254386688); -emit_32(1124132848); -emit_32(1109710052); -emit_32(3254386688); -emit_32(1124388897); -emit_32(1109602468); -emit_32(3254386688); -emit_32(1124644880); -emit_32(1109349918); -emit_32(3254386688); -emit_32(1124900864); -emit_32(1109069634); -emit_32(3254386688); -emit_32(1125156848); -emit_32(1108800622); -emit_32(3254386688); -emit_32(1125412897); -emit_32(1108662341); -emit_32(3254386688); -emit_32(1125668880); -emit_32(1108955051); -emit_32(3254386688); -emit_32(1125924864); -emit_32(1109069896); -emit_32(3254386688); -emit_32(1126180848); -emit_32(1108753986); -emit_32(3254386688); -emit_32(1126436897); -emit_32(1108343941); -emit_32(3254386688); -emit_32(1126692880); -emit_32(1107751600); -emit_32(3254386688); -emit_32(1126948864); -emit_32(1107299113); -emit_32(3254386688); -emit_32(1127204848); -emit_32(1106833257); -emit_32(3254386688); -emit_32(1127460897); -emit_32(1106258742); -emit_32(3254386688); -emit_32(1127716880); -emit_32(1104970147); -emit_32(3254386688); -emit_32(1127972864); -emit_32(1103641549); -emit_32(3254386688); -emit_32(1128228848); -emit_32(1102486700); -emit_32(3254386688); -emit_32(1128484897); -emit_32(1100950903); -emit_32(3254386688); -emit_32(1128740880); -emit_32(1099783943); -emit_32(3254386688); -emit_32(1128996864); -emit_32(1099048105); -emit_32(3254386688); -emit_32(1129252848); -emit_32(1097916324); -emit_32(3254386688); -emit_32(1129508897); -emit_32(1096849293); -emit_32(3254386688); -emit_32(1129764880); -emit_32(1095290166); -emit_32(3254386688); -emit_32(1130020864); -emit_32(1094873566); -emit_32(3254386688); -emit_32(1130276848); -emit_32(1094773742); -emit_32(3254386688); -emit_32(1130532897); -emit_32(1093963298); -emit_32(3254386688); -emit_32(1130788880); -emit_32(1094288251); -emit_32(3254386688); -emit_32(1131044864); -emit_32(1093582560); -emit_32(3254386688); -emit_32(1131300848); -emit_32(1093578994); -emit_32(3254386688); -emit_32(1131556897); -emit_32(1093961096); -emit_32(3254386688); -emit_32(1131812880); -emit_32(1094270950); -emit_32(3254386688); -emit_32(1132068864); -emit_32(1094226805); -emit_32(3254386688); -emit_32(1081737216); -emit_32(1114694274); -emit_32(3255607309); -emit_32(1090125824); -emit_32(1114471950); -emit_32(3255607309); -emit_32(1094418484); -emit_32(1114251644); -emit_32(3255607309); -emit_32(1098514432); -emit_32(1114525794); -emit_32(3255607309); -emit_32(1100759066); -emit_32(1114675374); -emit_32(3255607309); -emit_32(1102807040); -emit_32(1114775146); -emit_32(3255607309); -emit_32(1104855066); -emit_32(1114776168); -emit_32(3255607309); -emit_32(1106903040); -emit_32(1114678755); -emit_32(3255607309); -emit_32(1108123661); -emit_32(1114267373); -emit_32(3255607309); -emit_32(1109147648); -emit_32(1114095459); -emit_32(3255607309); -emit_32(1110171661); -emit_32(1114227474); -emit_32(3255607309); -emit_32(1111195648); -emit_32(1114305305); -emit_32(3255607309); -emit_32(1112219661); -emit_32(1114012333); -emit_32(3255607309); -emit_32(1113243648); -emit_32(1113935761); -emit_32(3255607309); -emit_32(1114267661); -emit_32(1113756087); -emit_32(3255607309); -emit_32(1115291648); -emit_32(1113651780); -emit_32(3255607309); -emit_32(1116000263); -emit_32(1113622315); -emit_32(3255607309); -emit_32(1116512256); -emit_32(1113238353); -emit_32(3255607309); -emit_32(1117024263); -emit_32(1112877931); -emit_32(3255607309); -emit_32(1117536256); -emit_32(1112868625); -emit_32(3255607309); -emit_32(1118048263); -emit_32(1112560842); -emit_32(3255607309); -emit_32(1118560256); -emit_32(1112530249); -emit_32(3255607309); -emit_32(1119072263); -emit_32(1112251957); -emit_32(3255607309); -emit_32(1119584256); -emit_32(1111883697); -emit_32(3255607309); -emit_32(1120096263); -emit_32(1111510168); -emit_32(3255607309); -emit_32(1120608322); -emit_32(1111049686); -emit_32(3255607309); -emit_32(1121120289); -emit_32(1110465000); -emit_32(3255607309); -emit_32(1121632256); -emit_32(1110143926); -emit_32(3255607309); -emit_32(1122144223); -emit_32(1110128565); -emit_32(3255607309); -emit_32(1122656322); -emit_32(1110170613); -emit_32(3255607309); -emit_32(1123168289); -emit_32(1110002133); -emit_32(3255607309); -emit_32(1123680256); -emit_32(1109827938); -emit_32(3255607309); -emit_32(1124132848); -emit_32(1109697652); -emit_32(3255607309); -emit_32(1124388897); -emit_32(1109285929); -emit_32(3255607309); -emit_32(1124644880); -emit_32(1109015973); -emit_32(3255607309); -emit_32(1124900864); -emit_32(1108853103); -emit_32(3255607309); -emit_32(1125156848); -emit_32(1108675186); -emit_32(3255607309); -emit_32(1125412897); -emit_32(1108706171); -emit_32(3255607309); -emit_32(1125668880); -emit_32(1108840441); -emit_32(3255607309); -emit_32(1125924864); -emit_32(1108822485); -emit_32(3255607309); -emit_32(1126180848); -emit_32(1108425782); -emit_32(3255607309); -emit_32(1126436897); -emit_32(1108131997); -emit_32(3255607309); -emit_32(1126692880); -emit_32(1107626584); -emit_32(3255607309); -emit_32(1126948864); -emit_32(1107199630); -emit_32(3255607309); -emit_32(1127204848); -emit_32(1106951065); -emit_32(3255607309); -emit_32(1127460897); -emit_32(1106261574); -emit_32(3255607309); -emit_32(1127716880); -emit_32(1104881543); -emit_32(3255607309); -emit_32(1127972864); -emit_32(1103438021); -emit_32(3255607309); -emit_32(1128228848); -emit_32(1102185759); -emit_32(3255607309); -emit_32(1128484897); -emit_32(1101110234); -emit_32(3255607309); -emit_32(1128740880); -emit_32(1100328678); -emit_32(3255607309); -emit_32(1128996864); -emit_32(1099613287); -emit_32(3255607309); -emit_32(1129252848); -emit_32(1098156658); -emit_32(3255607309); -emit_32(1129508897); -emit_32(1096407528); -emit_32(3255607309); -emit_32(1129764880); -emit_32(1096170131); -emit_32(3255607309); -emit_32(1130020864); -emit_32(1095690512); -emit_32(3255607309); -emit_32(1130276848); -emit_32(1094209084); -emit_32(3255607309); -emit_32(1130532897); -emit_32(1093127687); -emit_32(3255607309); -emit_32(1130788880); -emit_32(1092438259); -emit_32(3255607309); -emit_32(1131044864); -emit_32(1092531729); -emit_32(3255607309); -emit_32(1131300848); -emit_32(1093627753); -emit_32(3255607309); -emit_32(1131556897); -emit_32(1094279863); -emit_32(3255607309); -emit_32(1131812880); -emit_32(1094536449); -emit_32(3255607309); -emit_32(1132068864); -emit_32(1094652422); -emit_32(3255607309); -emit_32(1081737216); -emit_32(1114612538); -emit_32(3256631296); -emit_32(1090125824); -emit_32(1114274713); -emit_32(3256631296); -emit_32(1094418484); -emit_32(1114042532); -emit_32(3256631296); -emit_32(1098514432); -emit_32(1114371758); -emit_32(3256631296); -emit_32(1100759066); -emit_32(1114654061); -emit_32(3256631296); -emit_32(1102807040); -emit_32(1114778344); -emit_32(3256631296); -emit_32(1104855066); -emit_32(1114758762); -emit_32(3256631296); -emit_32(1106903040); -emit_32(1114526817); -emit_32(3256631296); -emit_32(1108123661); -emit_32(1114218640); -emit_32(3256631296); -emit_32(1109147648); -emit_32(1113983497); -emit_32(3256631296); -emit_32(1110171661); -emit_32(1114023684); -emit_32(3256631296); -emit_32(1111195648); -emit_32(1114065102); -emit_32(3256631296); -emit_32(1112219661); -emit_32(1113899585); -emit_32(3256631296); -emit_32(1113243648); -emit_32(1113503538); -emit_32(3256631296); -emit_32(1114267661); -emit_32(1113409769); -emit_32(3256631296); -emit_32(1115291648); -emit_32(1113402665); -emit_32(3256631296); -emit_32(1116000263); -emit_32(1113537931); -emit_32(3256631296); -emit_32(1116512256); -emit_32(1113144426); -emit_32(3256631296); -emit_32(1117024263); -emit_32(1112966772); -emit_32(3256631296); -emit_32(1117536256); -emit_32(1112729086); -emit_32(3256631296); -emit_32(1118048263); -emit_32(1112420463); -emit_32(3256631296); -emit_32(1118560256); -emit_32(1112416322); -emit_32(3256631296); -emit_32(1119072263); -emit_32(1112175306); -emit_32(3256631296); -emit_32(1119584256); -emit_32(1112112733); -emit_32(3256631296); -emit_32(1120096263); -emit_32(1111723265); -emit_32(3256631296); -emit_32(1120608322); -emit_32(1111230539); -emit_32(3256631296); -emit_32(1121120289); -emit_32(1110568521); -emit_32(3256631296); -emit_32(1121632256); -emit_32(1110333220); -emit_32(3256631296); -emit_32(1122144223); -emit_32(1110249780); -emit_32(3256631296); -emit_32(1122656322); -emit_32(1110285117); -emit_32(3256631296); -emit_32(1123168289); -emit_32(1109907735); -emit_32(3256631296); -emit_32(1123680256); -emit_32(1109777213); -emit_32(3256631296); -emit_32(1124132848); -emit_32(1109451630); -emit_32(3256631296); -emit_32(1124388897); -emit_32(1109111184); -emit_32(3256631296); -emit_32(1124644880); -emit_32(1108792102); -emit_32(3256631296); -emit_32(1124900864); -emit_32(1108776190); -emit_32(3256631296); -emit_32(1125156848); -emit_32(1108834805); -emit_32(3256631296); -emit_32(1125412897); -emit_32(1108715477); -emit_32(3256631296); -emit_32(1125668880); -emit_32(1108660453); -emit_32(3256631296); -emit_32(1125924864); -emit_32(1108548623); -emit_32(3256631296); -emit_32(1126180848); -emit_32(1108317621); -emit_32(3256631296); -emit_32(1126436897); -emit_32(1107958091); -emit_32(3256631296); -emit_32(1126692880); -emit_32(1107488198); -emit_32(3256631296); -emit_32(1126948864); -emit_32(1107323624); -emit_32(3256631296); -emit_32(1127204848); -emit_32(1106940264); -emit_32(3256631296); -emit_32(1127460897); -emit_32(1106131026); -emit_32(3256631296); -emit_32(1127716880); -emit_32(1104537505); -emit_32(3256631296); -emit_32(1127972864); -emit_32(1103113277); -emit_32(3256631296); -emit_32(1128228848); -emit_32(1102198604); -emit_32(3256631296); -emit_32(1128484897); -emit_32(1101660003); -emit_32(3256631296); -emit_32(1128740880); -emit_32(1100980106); -emit_32(3256631296); -emit_32(1128996864); -emit_32(1100131808); -emit_32(3256631296); -emit_32(1129252848); -emit_32(1099325034); -emit_32(3256631296); -emit_32(1129508897); -emit_32(1097933521); -emit_32(3256631296); -emit_32(1129764880); -emit_32(1096350800); -emit_32(3256631296); -emit_32(1130020864); -emit_32(1095937976); -emit_32(3256631296); -emit_32(1130276848); -emit_32(1093950924); -emit_32(3256631296); -emit_32(1130532897); -emit_32(1093143101); -emit_32(3256631296); -emit_32(1130788880); -emit_32(1092323492); -emit_32(3256631296); -emit_32(1131044864); -emit_32(1092516462); -emit_32(3256631296); -emit_32(1131300848); -emit_32(1093374417); -emit_32(3256631296); -emit_32(1131556897); -emit_32(1093934567); -emit_32(3256631296); -emit_32(1131812880); -emit_32(1094793141); -emit_32(3256631296); -emit_32(1132068864); -emit_32(1094610584); -emit_32(3256631296); -emit_32(1081737216); -emit_32(1114510642); -emit_32(3257655309); -emit_32(1090125824); -emit_32(1114177090); -emit_32(3257655309); -emit_32(1094418484); -emit_32(1114130088); -emit_32(3257655309); -emit_32(1098514432); -emit_32(1114485503); -emit_32(3257655309); -emit_32(1100759066); -emit_32(1114774202); -emit_32(3257655309); -emit_32(1102807040); -emit_32(1114811400); -emit_32(3257655309); -emit_32(1104855066); -emit_32(1114642894); -emit_32(3257655309); -emit_32(1106903040); -emit_32(1114125710); -emit_32(3257655309); -emit_32(1108123661); -emit_32(1113782380); -emit_32(3257655309); -emit_32(1109147648); -emit_32(1113903464); -emit_32(3257655309); -emit_32(1110171661); -emit_32(1113893372); -emit_32(3257655309); -emit_32(1111195648); -emit_32(1113835831); -emit_32(3257655309); -emit_32(1112219661); -emit_32(1113519056); -emit_32(3257655309); -emit_32(1113243648); -emit_32(1113402219); -emit_32(3257655309); -emit_32(1114267661); -emit_32(1113222650); -emit_32(3257655309); -emit_32(1115291648); -emit_32(1113112760); -emit_32(3257655309); -emit_32(1116000263); -emit_32(1112977441); -emit_32(3257655309); -emit_32(1116512256); -emit_32(1112883121); -emit_32(3257655309); -emit_32(1117024263); -emit_32(1112823615); -emit_32(3257655309); -emit_32(1117536256); -emit_32(1112700957); -emit_32(3257655309); -emit_32(1118048263); -emit_32(1112438473); -emit_32(3257655309); -emit_32(1118560256); -emit_32(1112053645); -emit_32(3257655309); -emit_32(1119072263); -emit_32(1111879136); -emit_32(3257655309); -emit_32(1119584256); -emit_32(1112020641); -emit_32(3257655309); -emit_32(1120096263); -emit_32(1111750895); -emit_32(3257655309); -emit_32(1120608322); -emit_32(1111255810); -emit_32(3257655309); -emit_32(1121120289); -emit_32(1110557852); -emit_32(3257655309); -emit_32(1121632256); -emit_32(1110574917); -emit_32(3257655309); -emit_32(1122144223); -emit_32(1110468329); -emit_32(3257655309); -emit_32(1122656322); -emit_32(1110138264); -emit_32(3257655309); -emit_32(1123168289); -emit_32(1110059752); -emit_32(3257655309); -emit_32(1123680256); -emit_32(1109798447); -emit_32(3257655309); -emit_32(1124132848); -emit_32(1109243252); -emit_32(3257655309); -emit_32(1124388897); -emit_32(1109362344); -emit_32(3257655309); -emit_32(1124644880); -emit_32(1109167073); -emit_32(3257655309); -emit_32(1124900864); -emit_32(1109064601); -emit_32(3257655309); -emit_32(1125156848); -emit_32(1108980715); -emit_32(3257655309); -emit_32(1125412897); -emit_32(1108866472); -emit_32(3257655309); -emit_32(1125668880); -emit_32(1108651960); -emit_32(3257655309); -emit_32(1125924864); -emit_32(1108356130); -emit_32(3257655309); -emit_32(1126180848); -emit_32(1108103240); -emit_32(3257655309); -emit_32(1126436897); -emit_32(1107651828); -emit_32(3257655309); -emit_32(1126692880); -emit_32(1107336154); -emit_32(3257655309); -emit_32(1126948864); -emit_32(1106756135); -emit_32(3257655309); -emit_32(1127204848); -emit_32(1106100145); -emit_32(3257655309); -emit_32(1127460897); -emit_32(1105225790); -emit_32(3257655309); -emit_32(1127716880); -emit_32(1104058987); -emit_32(3257655309); -emit_32(1127972864); -emit_32(1103547702); -emit_32(3257655309); -emit_32(1128228848); -emit_32(1102526860); -emit_32(3257655309); -emit_32(1128484897); -emit_32(1101431308); -emit_32(3257655309); -emit_32(1128740880); -emit_32(1100829216); -emit_32(3257655309); -emit_32(1128996864); -emit_32(1100205418); -emit_32(3257655309); -emit_32(1129252848); -emit_32(1099550373); -emit_32(3257655309); -emit_32(1129508897); -emit_32(1098506148); -emit_32(3257655309); -emit_32(1129764880); -emit_32(1096071564); -emit_32(3257655309); -emit_32(1130020864); -emit_32(1095937976); -emit_32(3257655309); -emit_32(1130276848); -emit_32(1093431145); -emit_32(3257655309); -emit_32(1130532897); -emit_32(1092220816); -emit_32(3257655309); -emit_32(1130788880); -emit_32(1091857117); -emit_32(3257655309); -emit_32(1131044864); -emit_32(1092062974); -emit_32(3257655309); -emit_32(1131300848); -emit_32(1092869004); -emit_32(3257655309); -emit_32(1131556897); -emit_32(1094057460); -emit_32(3257655309); -emit_32(1131812880); -emit_32(1093644845); -emit_32(3257655309); -emit_32(1132068864); -emit_32(1092544669); -emit_32(3257655309); -emit_32(1081737216); -emit_32(1114350184); -emit_32(3258679296); -emit_32(1090125824); -emit_32(1114346619); -emit_32(3258679296); -emit_32(1094418484); -emit_32(1114421513); -emit_32(3258679296); -emit_32(1098514432); -emit_32(1114700304); -emit_32(3258679296); -emit_32(1100759066); -emit_32(1114796563); -emit_32(3258679296); -emit_32(1102807040); -emit_32(1114621582); -emit_32(3258679296); -emit_32(1104855066); -emit_32(1114296549); -emit_32(3258679296); -emit_32(1106903040); -emit_32(1114209753); -emit_32(3258679296); -emit_32(1108123661); -emit_32(1113856567); -emit_32(3258679296); -emit_32(1109147648); -emit_32(1113867944); -emit_32(3258679296); -emit_32(1110171661); -emit_32(1113863907); -emit_32(3258679296); -emit_32(1111195648); -emit_32(1113532976); -emit_32(3258679296); -emit_32(1112219661); -emit_32(1113290808); -emit_32(3258679296); -emit_32(1113243648); -emit_32(1113017942); -emit_32(3258679296); -emit_32(1114267661); -emit_32(1112948867); -emit_32(3258679296); -emit_32(1115291648); -emit_32(1112695872); -emit_32(3258679296); -emit_32(1116000263); -emit_32(1112643627); -emit_32(3258679296); -emit_32(1116512256); -emit_32(1112588707); -emit_32(3258679296); -emit_32(1117024263); -emit_32(1112603833); -emit_32(3258679296); -emit_32(1117536256); -emit_32(1112628213); -emit_32(3258679296); -emit_32(1118048263); -emit_32(1112273715); -emit_32(3258679296); -emit_32(1118560256); -emit_32(1111859449); -emit_32(3258679296); -emit_32(1119072263); -emit_32(1111576936); -emit_32(3258679296); -emit_32(1119584256); -emit_32(1111726726); -emit_32(3258679296); -emit_32(1120096263); -emit_32(1111402296); -emit_32(3258679296); -emit_32(1120608322); -emit_32(1110549489); -emit_32(3258679296); -emit_32(1121120289); -emit_32(1110448511); -emit_32(3258679296); -emit_32(1121632256); -emit_32(1110373695); -emit_32(3258679296); -emit_32(1122144223); -emit_32(1110467333); -emit_32(3258679296); -emit_32(1122656322); -emit_32(1110274028); -emit_32(3258679296); -emit_32(1123168289); -emit_32(1109946532); -emit_32(3258679296); -emit_32(1123680256); -emit_32(1109626795); -emit_32(3258679296); -emit_32(1124132848); -emit_32(1109494622); -emit_32(3258679296); -emit_32(1124388897); -emit_32(1109413069); -emit_32(3258679296); -emit_32(1124644880); -emit_32(1109297647); -emit_32(3258679296); -emit_32(1124900864); -emit_32(1109062294); -emit_32(3258679296); -emit_32(1125156848); -emit_32(1108844007); -emit_32(3258679296); -emit_32(1125412897); -emit_32(1108568860); -emit_32(3258679296); -emit_32(1125668880); -emit_32(1108450004); -emit_32(3258679296); -emit_32(1125924864); -emit_32(1108186943); -emit_32(3258679296); -emit_32(1126180848); -emit_32(1107845369); -emit_32(3258679296); -emit_32(1126436897); -emit_32(1107362972); -emit_32(3258679296); -emit_32(1126692880); -emit_32(1106252189); -emit_32(3258679296); -emit_32(1126948864); -emit_32(1105829298); -emit_32(3258679296); -emit_32(1127204848); -emit_32(1105218083); -emit_32(3258679296); -emit_32(1127460897); -emit_32(1104523506); -emit_32(3258679296); -emit_32(1127716880); -emit_32(1104128351); -emit_32(3258679296); -emit_32(1127972864); -emit_32(1103796214); -emit_32(3258679296); -emit_32(1128228848); -emit_32(1103027818); -emit_32(3258679296); -emit_32(1128484897); -emit_32(1101322309); -emit_32(3258679296); -emit_32(1128740880); -emit_32(1100681576); -emit_32(3258679296); -emit_32(1128996864); -emit_32(1099668023); -emit_32(3258679296); -emit_32(1129252848); -emit_32(1099208380); -emit_32(3258679296); -emit_32(1129508897); -emit_32(1097801400); -emit_32(3258679296); -emit_32(1129764880); -emit_32(1095333472); -emit_32(3258679296); -emit_32(1130020864); -emit_32(1094540329); -emit_32(3258679296); -emit_32(1130276848); -emit_32(1092787739); -emit_32(3258679296); -emit_32(1130532897); -emit_32(1092315051); -emit_32(3258679296); -emit_32(1130788880); -emit_32(1091861091); -emit_32(3258679296); -emit_32(1131044864); -emit_32(1091047459); -emit_32(3258679296); -emit_32(1131300848); -emit_32(1091787586); -emit_32(3258679296); -emit_32(1131556897); -emit_32(1091795230); -emit_32(3258679296); -emit_32(1131812880); -emit_32(1091987980); -emit_32(3258679296); -emit_32(1132068864); -emit_32(1091100066); -emit_32(3258679296); -emit_32(1081737216); -emit_32(1114597202); -emit_32(3259703309); -emit_32(1090125824); -emit_32(1114535127); -emit_32(3259703309); -emit_32(1094418484); -emit_32(1114569520); -emit_32(3259703309); -emit_32(1098514432); -emit_32(1114747935); -emit_32(3259703309); -emit_32(1100759066); -emit_32(1114487233); -emit_32(3259703309); -emit_32(1102807040); -emit_32(1114382795); -emit_32(3259703309); -emit_32(1104855066); -emit_32(1113996919); -emit_32(3259703309); -emit_32(1106903040); -emit_32(1114099181); -emit_32(3259703309); -emit_32(1108123661); -emit_32(1113852163); -emit_32(3259703309); -emit_32(1109147648); -emit_32(1113652435); -emit_32(3259703309); -emit_32(1110171661); -emit_32(1113551117); -emit_32(3259703309); -emit_32(1111195648); -emit_32(1113386543); -emit_32(3259703309); -emit_32(1112219661); -emit_32(1113298436); -emit_32(3259703309); -emit_32(1113243648); -emit_32(1112846185); -emit_32(3259703309); -emit_32(1114267661); -emit_32(1112699621); -emit_32(3259703309); -emit_32(1115291648); -emit_32(1112253320); -emit_32(3259703309); -emit_32(1116000263); -emit_32(1112228338); -emit_32(3259703309); -emit_32(1116512256); -emit_32(1112085679); -emit_32(3259703309); -emit_32(1117024263); -emit_32(1112407068); -emit_32(3259703309); -emit_32(1117536256); -emit_32(1112221391); -emit_32(3259703309); -emit_32(1118048263); -emit_32(1111896936); -emit_32(3259703309); -emit_32(1118560256); -emit_32(1111579322); -emit_32(3259703309); -emit_32(1119072263); -emit_32(1111494309); -emit_32(3259703309); -emit_32(1119584256); -emit_32(1111163588); -emit_32(3259703309); -emit_32(1120096263); -emit_32(1110845004); -emit_32(3259703309); -emit_32(1120608322); -emit_32(1110534835); -emit_32(3259703309); -emit_32(1121120289); -emit_32(1110661294); -emit_32(3259703309); -emit_32(1121632256); -emit_32(1110709161); -emit_32(3259703309); -emit_32(1122144223); -emit_32(1110566843); -emit_32(3259703309); -emit_32(1122656322); -emit_32(1110304385); -emit_32(3259703309); -emit_32(1123168289); -emit_32(1109925298); -emit_32(3259703309); -emit_32(1123680256); -emit_32(1109647897); -emit_32(3259703309); -emit_32(1124132848); -emit_32(1109489300); -emit_32(3259703309); -emit_32(1124388897); -emit_32(1109413541); -emit_32(3259703309); -emit_32(1124644880); -emit_32(1109402137); -emit_32(3259703309); -emit_32(1124900864); -emit_32(1108939034); -emit_32(3259703309); -emit_32(1125156848); -emit_32(1108484450); -emit_32(3259703309); -emit_32(1125412897); -emit_32(1108297200); -emit_32(3259703309); -emit_32(1125668880); -emit_32(1108185815); -emit_32(3259703309); -emit_32(1125924864); -emit_32(1108077104); -emit_32(3259703309); -emit_32(1126180848); -emit_32(1107688659); -emit_32(3259703309); -emit_32(1126436897); -emit_32(1107166075); -emit_32(3259703309); -emit_32(1126692880); -emit_32(1105985012); -emit_32(3259703309); -emit_32(1126948864); -emit_32(1104765465); -emit_32(3259703309); -emit_32(1127204848); -emit_32(1103884766); -emit_32(3259703309); -emit_32(1127460897); -emit_32(1103770157); -emit_32(3259703309); -emit_32(1127716880); -emit_32(1103747613); -emit_32(3259703309); -emit_32(1127972864); -emit_32(1103380349); -emit_32(3259703309); -emit_32(1128228848); -emit_32(1102807669); -emit_32(3259703309); -emit_32(1128484897); -emit_32(1101721240); -emit_32(3259703309); -emit_32(1128740880); -emit_32(1100629095); -emit_32(3259703309); -emit_32(1128996864); -emit_32(1099835323); -emit_32(3259703309); -emit_32(1129252848); -emit_32(1098920598); -emit_32(3259703309); -emit_32(1129508897); -emit_32(1096752929); -emit_32(3259703309); -emit_32(1129764880); -emit_32(1095066609); -emit_32(3259703309); -emit_32(1130020864); -emit_32(1093563371); -emit_32(3259703309); -emit_32(1130276848); -emit_32(1092693157); -emit_32(3259703309); -emit_32(1130532897); -emit_32(1091653725); -emit_32(3259703309); -emit_32(1130788880); -emit_32(1091615085); -emit_32(3259703309); -emit_32(1131044864); -emit_32(1091394161); -emit_32(3259703309); -emit_32(1131300848); -emit_32(1091605134); -emit_32(3259703309); -emit_32(1131556897); -emit_32(1091638730); -emit_32(3259703309); -emit_32(1131812880); -emit_32(1091599786); -emit_32(3259703309); -emit_32(1132068864); -emit_32(1092266859); -emit_32(3259703309); -emit_32(1081737216); -emit_32(1114739258); -emit_32(3260727296); -emit_32(1090125824); -emit_32(1114878378); -emit_32(3260727296); -emit_32(1094418484); -emit_32(1114870802); -emit_32(3260727296); -emit_32(1098514432); -emit_32(1114770794); -emit_32(3260727296); -emit_32(1100759066); -emit_32(1114231276); -emit_32(3260727296); -emit_32(1102807040); -emit_32(1114104450); -emit_32(3260727296); -emit_32(1104855066); -emit_32(1113868626); -emit_32(3260727296); -emit_32(1106903040); -emit_32(1113833393); -emit_32(3260727296); -emit_32(1108123661); -emit_32(1113996840); -emit_32(3260727296); -emit_32(1109147648); -emit_32(1113765393); -emit_32(3260727296); -emit_32(1110171661); -emit_32(1113650627); -emit_32(3260727296); -emit_32(1111195648); -emit_32(1113342896); -emit_32(3260727296); -emit_32(1112219661); -emit_32(1113156380); -emit_32(3260727296); -emit_32(1113243648); -emit_32(1112582154); -emit_32(3260727296); -emit_32(1114267661); -emit_32(1112346277); -emit_32(3260727296); -emit_32(1115291648); -emit_32(1111870249); -emit_32(3260727296); -emit_32(1116000263); -emit_32(1111605930); -emit_32(3260727296); -emit_32(1116512256); -emit_32(1111495305); -emit_32(3260727296); -emit_32(1117024263); -emit_32(1111701219); -emit_32(3260727296); -emit_32(1117536256); -emit_32(1111545768); -emit_32(3260727296); -emit_32(1118048263); -emit_32(1111442876); -emit_32(3260727296); -emit_32(1118560256); -emit_32(1111332802); -emit_32(3260727296); -emit_32(1119072263); -emit_32(1111091472); -emit_32(3260727296); -emit_32(1119584256); -emit_32(1110805001); -emit_32(3260727296); -emit_32(1120096263); -emit_32(1110581864); -emit_32(3260727296); -emit_32(1120608322); -emit_32(1110742008); -emit_32(3260727296); -emit_32(1121120289); -emit_32(1110855516); -emit_32(3260727296); -emit_32(1121632256); -emit_32(1110816168); -emit_32(3260727296); -emit_32(1122144223); -emit_32(1110551665); -emit_32(3260727296); -emit_32(1122656322); -emit_32(1110342579); -emit_32(3260727296); -emit_32(1123168289); -emit_32(1110183327); -emit_32(3260727296); -emit_32(1123680256); -emit_32(1109713040); -emit_32(3260727296); -emit_32(1124132848); -emit_32(1109405598); -emit_32(3260727296); -emit_32(1124388897); -emit_32(1109483874); -emit_32(3260727296); -emit_32(1124644880); -emit_32(1109243252); -emit_32(3260727296); -emit_32(1124900864); -emit_32(1108683915); -emit_32(3260727296); -emit_32(1125156848); -emit_32(1108334268); -emit_32(3260727296); -emit_32(1125412897); -emit_32(1108021346); -emit_32(3260727296); -emit_32(1125668880); -emit_32(1107650229); -emit_32(3260727296); -emit_32(1125924864); -emit_32(1107734875); -emit_32(3260727296); -emit_32(1126180848); -emit_32(1107447356); -emit_32(3260727296); -emit_32(1126436897); -emit_32(1106611641); -emit_32(3260727296); -emit_32(1126692880); -emit_32(1105656650); -emit_32(3260727296); -emit_32(1126948864); -emit_32(1104580601); -emit_32(3260727296); -emit_32(1127204848); -emit_32(1103477447); -emit_32(3260727296); -emit_32(1127460897); -emit_32(1102867753); -emit_32(3260727296); -emit_32(1127716880); -emit_32(1102847882); -emit_32(3260727296); -emit_32(1127972864); -emit_32(1102763996); -emit_32(3260727296); -emit_32(1128228848); -emit_32(1102458913); -emit_32(3260727296); -emit_32(1128484897); -emit_32(1102197083); -emit_32(3260727296); -emit_32(1128740880); -emit_32(1101514251); -emit_32(3260727296); -emit_32(1128996864); -emit_32(1100242957); -emit_32(3260727296); -emit_32(1129252848); -emit_32(1098935488); -emit_32(3260727296); -emit_32(1129508897); -emit_32(1096397147); -emit_32(3260727296); -emit_32(1129764880); -emit_32(1093735442); -emit_32(3260727296); -emit_32(1130020864); -emit_32(1092509887); -emit_32(3260727296); -emit_32(1130276848); -emit_32(1092214797); -emit_32(3260727296); -emit_32(1130532897); -emit_32(1091179916); -emit_32(3260727296); -emit_32(1130788880); -emit_32(1091523565); -emit_32(3260727296); -emit_32(1131044864); -emit_32(1091405317); -emit_32(3260727296); -emit_32(1131300848); -emit_32(1091481213); -emit_32(3260727296); -emit_32(1131556897); -emit_32(1091769446); -emit_32(3260727296); -emit_32(1131812880); -emit_32(1091742634); -emit_32(3260727296); -emit_32(1132068864); -emit_32(1092008249); -emit_32(3260727296); -emit_32(1081737216); -emit_32(1115049086); -emit_32(3261751309); -emit_32(1090125824); -emit_32(1114962395); -emit_32(3261751309); -emit_32(1094418484); -emit_32(1114740674); -emit_32(3261751309); -emit_32(1098514432); -emit_32(1114486001); -emit_32(3261751309); -emit_32(1100759066); -emit_32(1114250779); -emit_32(3261751309); -emit_32(1102807040); -emit_32(1113755799); -emit_32(3261751309); -emit_32(1104855066); -emit_32(1113604699); -emit_32(3261751309); -emit_32(1106903040); -emit_32(1113715717); -emit_32(3261751309); -emit_32(1108123661); -emit_32(1113733516); -emit_32(3261751309); -emit_32(1109147648); -emit_32(1113783009); -emit_32(3261751309); -emit_32(1110171661); -emit_32(1113496093); -emit_32(3261751309); -emit_32(1111195648); -emit_32(1113237016); -emit_32(3261751309); -emit_32(1112219661); -emit_32(1112990181); -emit_32(3261751309); -emit_32(1113243648); -emit_32(1112521022); -emit_32(3261751309); -emit_32(1114267661); -emit_32(1112125315); -emit_32(3261751309); -emit_32(1115291648); -emit_32(1111604671); -emit_32(3261751309); -emit_32(1116000263); -emit_32(1111264408); -emit_32(3261751309); -emit_32(1116512256); -emit_32(1110967242); -emit_32(3261751309); -emit_32(1117024263); -emit_32(1110960898); -emit_32(3261751309); -emit_32(1117536256); -emit_32(1110766938); -emit_32(3261751309); -emit_32(1118048263); -emit_32(1110773334); -emit_32(3261751309); -emit_32(1118560256); -emit_32(1110772364); -emit_32(3261751309); -emit_32(1119072263); -emit_32(1110784763); -emit_32(3261751309); -emit_32(1119584256); -emit_32(1110671203); -emit_32(3261751309); -emit_32(1120096263); -emit_32(1110537562); -emit_32(3261751309); -emit_32(1120608322); -emit_32(1110731470); -emit_32(3261751309); -emit_32(1121120289); -emit_32(1110870222); -emit_32(3261751309); -emit_32(1121632256); -emit_32(1110602652); -emit_32(3261751309); -emit_32(1122144223); -emit_32(1110529357); -emit_32(3261751309); -emit_32(1122656322); -emit_32(1110527626); -emit_32(3261751309); -emit_32(1123168289); -emit_32(1110155303); -emit_32(3261751309); -emit_32(1123680256); -emit_32(1109558559); -emit_32(3261751309); -emit_32(1124132848); -emit_32(1109729686); -emit_32(3261751309); -emit_32(1124388897); -emit_32(1109466835); -emit_32(3261751309); -emit_32(1124644880); -emit_32(1109238455); -emit_32(3261751309); -emit_32(1124900864); -emit_32(1108631067); -emit_32(3261751309); -emit_32(1125156848); -emit_32(1108053590); -emit_32(3261751309); -emit_32(1125412897); -emit_32(1107431549); -emit_32(3261751309); -emit_32(1125668880); -emit_32(1107275127); -emit_32(3261751309); -emit_32(1125924864); -emit_32(1107085807); -emit_32(3261751309); -emit_32(1126180848); -emit_32(1106875043); -emit_32(3261751309); -emit_32(1126436897); -emit_32(1106465207); -emit_32(3261751309); -emit_32(1126692880); -emit_32(1105739330); -emit_32(3261751309); -emit_32(1126948864); -emit_32(1104828380); -emit_32(3261751309); -emit_32(1127204848); -emit_32(1104194306); -emit_32(3261751309); -emit_32(1127460897); -emit_32(1103488510); -emit_32(3261751309); -emit_32(1127716880); -emit_32(1102913680); -emit_32(3261751309); -emit_32(1127972864); -emit_32(1102738044); -emit_32(3261751309); -emit_32(1128228848); -emit_32(1102513753); -emit_32(3261751309); -emit_32(1128484897); -emit_32(1102220624); -emit_32(3261751309); -emit_32(1128740880); -emit_32(1101685640); -emit_32(3261751309); -emit_32(1128996864); -emit_32(1100932081); -emit_32(3261751309); -emit_32(1129252848); -emit_32(1099376414); -emit_32(3261751309); -emit_32(1129508897); -emit_32(1096550344); -emit_32(3261751309); -emit_32(1129764880); -emit_32(1094603244); -emit_32(3261751309); -emit_32(1130020864); -emit_32(1092245762); -emit_32(3261751309); -emit_32(1130276848); -emit_32(1091851801); -emit_32(3261751309); -emit_32(1130532897); -emit_32(1091990360); -emit_32(3261751309); -emit_32(1130788880); -emit_32(1091469343); -emit_32(3261751309); -emit_32(1131044864); -emit_32(1091186889); -emit_32(3261751309); -emit_32(1131300848); -emit_32(1091680191); -emit_32(3261751309); -emit_32(1131556897); -emit_32(1092249820); -emit_32(3261751309); -emit_32(1131812880); -emit_32(1091787240); -emit_32(3261751309); -emit_32(1132068864); -emit_32(1092823076); -emit_32(3261751309); -emit_32(1081737216); -emit_32(1115189700); -emit_32(3262775296); -emit_32(1090125824); -emit_32(1114804086); -emit_32(3262775296); -emit_32(1094418484); -emit_32(1114524457); -emit_32(3262775296); -emit_32(1098514432); -emit_32(1114431554); -emit_32(3262775296); -emit_32(1100759066); -emit_32(1113978044); -emit_32(3262775296); -emit_32(1102807040); -emit_32(1113530381); -emit_32(3262775296); -emit_32(1104855066); -emit_32(1113581814); -emit_32(3262775296); -emit_32(1106903040); -emit_32(1113583963); -emit_32(3262775296); -emit_32(1108123661); -emit_32(1113510458); -emit_32(3262775296); -emit_32(1109147648); -emit_32(1113580162); -emit_32(3262775296); -emit_32(1110171661); -emit_32(1113244408); -emit_32(3262775296); -emit_32(1111195648); -emit_32(1113012699); -emit_32(3262775296); -emit_32(1112219661); -emit_32(1112648765); -emit_32(3262775296); -emit_32(1113243648); -emit_32(1112238483); -emit_32(3262775296); -emit_32(1114267661); -emit_32(1111804976); -emit_32(3262775296); -emit_32(1115291648); -emit_32(1111412362); -emit_32(3262775296); -emit_32(1116000263); -emit_32(1110827074); -emit_32(3262775296); -emit_32(1116512256); -emit_32(1110530694); -emit_32(3262775296); -emit_32(1117024263); -emit_32(1110239399); -emit_32(3262775296); -emit_32(1117536256); -emit_32(1110405048); -emit_32(3262775296); -emit_32(1118048263); -emit_32(1110532476); -emit_32(3262775296); -emit_32(1118560256); -emit_32(1110521885); -emit_32(3262775296); -emit_32(1119072263); -emit_32(1110500757); -emit_32(3262775296); -emit_32(1119584256); -emit_32(1110457372); -emit_32(3262775296); -emit_32(1120096263); -emit_32(1110371651); -emit_32(3262775296); -emit_32(1120608322); -emit_32(1110583332); -emit_32(3262775296); -emit_32(1121120289); -emit_32(1110579793); -emit_32(3262775296); -emit_32(1121632256); -emit_32(1110326510); -emit_32(3262775296); -emit_32(1122144223); -emit_32(1110576044); -emit_32(3262775296); -emit_32(1122656322); -emit_32(1110255731); -emit_32(3262775296); -emit_32(1123168289); -emit_32(1109817767); -emit_32(3262775296); -emit_32(1123680256); -emit_32(1109393120); -emit_32(3262775296); -emit_32(1124132848); -emit_32(1109645407); -emit_32(3262775296); -emit_32(1124388897); -emit_32(1109352881); -emit_32(3262775296); -emit_32(1124644880); -emit_32(1109118131); -emit_32(3262775296); -emit_32(1124900864); -emit_32(1108538950); -emit_32(3262775296); -emit_32(1125156848); -emit_32(1108056028); -emit_32(3262775296); -emit_32(1125412897); -emit_32(1107693981); -emit_32(3262775296); -emit_32(1125668880); -emit_32(1107060169); -emit_32(3262775296); -emit_32(1125924864); -emit_32(1106929307); -emit_32(3262775296); -emit_32(1126180848); -emit_32(1106668945); -emit_32(3262775296); -emit_32(1126436897); -emit_32(1106423893); -emit_32(3262775296); -emit_32(1126692880); -emit_32(1106097157); -emit_32(3262775296); -emit_32(1126948864); -emit_32(1105689628); -emit_32(3262775296); -emit_32(1127204848); -emit_32(1104863822); -emit_32(3262775296); -emit_32(1127460897); -emit_32(1104431232); -emit_32(3262775296); -emit_32(1127716880); -emit_32(1103727061); -emit_32(3262775296); -emit_32(1127972864); -emit_32(1103036154); -emit_32(3262775296); -emit_32(1128228848); -emit_32(1102391227); -emit_32(3262775296); -emit_32(1128484897); -emit_32(1102074977); -emit_32(3262775296); -emit_32(1128740880); -emit_32(1101512049); -emit_32(3262775296); -emit_32(1128996864); -emit_32(1100231108); -emit_32(3262775296); -emit_32(1129252848); -emit_32(1098399508); -emit_32(3262775296); -emit_32(1129508897); -emit_32(1096015571); -emit_32(3262775296); -emit_32(1129764880); -emit_32(1093673366); -emit_32(3262775296); -emit_32(1130020864); -emit_32(1092539069); -emit_32(3262775296); -emit_32(1130276848); -emit_32(1092267928); -emit_32(3262775296); -emit_32(1130532897); -emit_32(1092764041); -emit_32(3262775296); -emit_32(1130788880); -emit_32(1092150519); -emit_32(3262775296); -emit_32(1131044864); -emit_32(1091502594); -emit_32(3262775296); -emit_32(1131300848); -emit_32(1091946980); -emit_32(3262775296); -emit_32(1131556897); -emit_32(1091906568); -emit_32(3262775296); -emit_32(1131812880); -emit_32(1092505546); -emit_32(3262775296); -emit_32(1132068864); -emit_32(1093985842); -emit_32(3262775296); -emit_32(1081737216); -emit_32(1114860919); -emit_32(3263483911); -emit_32(1090125824); -emit_32(1114455068); -emit_32(3263483911); -emit_32(1094418484); -emit_32(1114274320); -emit_32(3263483911); -emit_32(1098514432); -emit_32(1113998492); -emit_32(3263483911); -emit_32(1100759066); -emit_32(1113229912); -emit_32(3263483911); -emit_32(1102807040); -emit_32(1112963364); -emit_32(3263483911); -emit_32(1104855066); -emit_32(1113085549); -emit_32(3263483911); -emit_32(1106903040); -emit_32(1113193500); -emit_32(3263483911); -emit_32(1108123661); -emit_32(1113051339); -emit_32(3263483911); -emit_32(1109147648); -emit_32(1112914631); -emit_32(3263483911); -emit_32(1110171661); -emit_32(1112713593); -emit_32(3263483911); -emit_32(1111195648); -emit_32(1112530774); -emit_32(3263483911); -emit_32(1112219661); -emit_32(1112319538); -emit_32(3263483911); -emit_32(1113243648); -emit_32(1112017836); -emit_32(3263483911); -emit_32(1114267661); -emit_32(1111480022); -emit_32(3263483911); -emit_32(1115291648); -emit_32(1111044889); -emit_32(3263483911); -emit_32(1116000263); -emit_32(1110559058); -emit_32(3263483911); -emit_32(1116512256); -emit_32(1109970151); -emit_32(3263483911); -emit_32(1117024263); -emit_32(1109713014); -emit_32(3263483911); -emit_32(1117536256); -emit_32(1109844532); -emit_32(3263483911); -emit_32(1118048263); -emit_32(1110110713); -emit_32(3263483911); -emit_32(1118560256); -emit_32(1110168096); -emit_32(3263483911); -emit_32(1119072263); -emit_32(1110188910); -emit_32(3263483911); -emit_32(1119584256); -emit_32(1110300531); -emit_32(3263483911); -emit_32(1120096263); -emit_32(1110086438); -emit_32(3263483911); -emit_32(1120608322); -emit_32(1110098418); -emit_32(3263483911); -emit_32(1121120289); -emit_32(1110207470); -emit_32(3263483911); -emit_32(1121632256); -emit_32(1110104814); -emit_32(3263483911); -emit_32(1122144223); -emit_32(1110042057); -emit_32(3263483911); -emit_32(1122656322); -emit_32(1109977963); -emit_32(3263483911); -emit_32(1123168289); -emit_32(1109719017); -emit_32(3263483911); -emit_32(1123680256); -emit_32(1109491371); -emit_32(3263483911); -emit_32(1124132848); -emit_32(1109439493); -emit_32(3263483911); -emit_32(1124388897); -emit_32(1109273372); -emit_32(3263483911); -emit_32(1124644880); -emit_32(1109142720); -emit_32(3263483911); -emit_32(1124900864); -emit_32(1108647110); -emit_32(3263483911); -emit_32(1125156848); -emit_32(1108078520); -emit_32(3263483911); -emit_32(1125412897); -emit_32(1107629520); -emit_32(3263483911); -emit_32(1125668880); -emit_32(1107405963); -emit_32(3263483911); -emit_32(1125924864); -emit_32(1107180388); -emit_32(3263483911); -emit_32(1126180848); -emit_32(1106634447); -emit_32(3263483911); -emit_32(1126436897); -emit_32(1106537297); -emit_32(3263483911); -emit_32(1126692880); -emit_32(1106021869); -emit_32(3263483911); -emit_32(1126948864); -emit_32(1105710599); -emit_32(3263483911); -emit_32(1127204848); -emit_32(1104910693); -emit_32(3263483911); -emit_32(1127460897); -emit_32(1104565083); -emit_32(3263483911); -emit_32(1127716880); -emit_32(1103934836); -emit_32(3263483911); -emit_32(1127972864); -emit_32(1103249120); -emit_32(3263483911); -emit_32(1128228848); -emit_32(1102145336); -emit_32(3263483911); -emit_32(1128484897); -emit_32(1101411962); -emit_32(3263483911); -emit_32(1128740880); -emit_32(1100959711); -emit_32(3263483911); -emit_32(1128996864); -emit_32(1099510055); -emit_32(3263483911); -emit_32(1129252848); -emit_32(1096815005); -emit_32(3263483911); -emit_32(1129508897); -emit_32(1094088393); -emit_32(3263483911); -emit_32(1129764880); -emit_32(1092617450); -emit_32(3263483911); -emit_32(1130020864); -emit_32(1091201757); -emit_32(3263483911); -emit_32(1130276848); -emit_32(1091975481); -emit_32(3263483911); -emit_32(1130532897); -emit_32(1092051219); -emit_32(3263483911); -emit_32(1130788880); -emit_32(1091427243); -emit_32(3263483911); -emit_32(1131044864); -emit_32(1091236570); -emit_32(3263483911); -emit_32(1131300848); -emit_32(1092364376); -emit_32(3263483911); -emit_32(1131556897); -emit_32(1093015385); -emit_32(3263483911); -emit_32(1131812880); -emit_32(1093629116); -emit_32(3263483911); -emit_32(1132068864); -emit_32(1094121318); -emit_32(3263483911); -emit_32(1081737216); -emit_32(1114412994); -emit_32(3263995904); -emit_32(1090125824); -emit_32(1114056740); -emit_32(3263995904); -emit_32(1094418484); -emit_32(1113478634); -emit_32(3263995904); -emit_32(1098514432); -emit_32(1113153890); -emit_32(3263995904); -emit_32(1100759066); -emit_32(1112554235); -emit_32(3263995904); -emit_32(1102807040); -emit_32(1112170430); -emit_32(3263995904); -emit_32(1104855066); -emit_32(1112241550); -emit_32(3263995904); -emit_32(1106903040); -emit_32(1112360406); -emit_32(3263995904); -emit_32(1108123661); -emit_32(1112453310); -emit_32(3263995904); -emit_32(1109147648); -emit_32(1112310127); -emit_32(3263995904); -emit_32(1110171661); -emit_32(1112440544); -emit_32(3263995904); -emit_32(1111195648); -emit_32(1111943545); -emit_32(3263995904); -emit_32(1112219661); -emit_32(1111698283); -emit_32(3263995904); -emit_32(1113243648); -emit_32(1111330233); -emit_32(3263995904); -emit_32(1114267661); -emit_32(1111083634); -emit_32(3263995904); -emit_32(1115291648); -emit_32(1110768275); -emit_32(3263995904); -emit_32(1116000263); -emit_32(1110145158); -emit_32(3263995904); -emit_32(1116512256); -emit_32(1109629941); -emit_32(3263995904); -emit_32(1117024263); -emit_32(1109269781); -emit_32(3263995904); -emit_32(1117536256); -emit_32(1109302287); -emit_32(3263995904); -emit_32(1118048263); -emit_32(1109529015); -emit_32(3263995904); -emit_32(1118560256); -emit_32(1109660900); -emit_32(3263995904); -emit_32(1119072263); -emit_32(1109901076); -emit_32(3263995904); -emit_32(1119584256); -emit_32(1109952850); -emit_32(3263995904); -emit_32(1120096263); -emit_32(1109778733); -emit_32(3263995904); -emit_32(1120608322); -emit_32(1109570460); -emit_32(3263995904); -emit_32(1121120289); -emit_32(1109713381); -emit_32(3263995904); -emit_32(1121632256); -emit_32(1109646849); -emit_32(3263995904); -emit_32(1122144223); -emit_32(1109683837); -emit_32(3263995904); -emit_32(1122656322); -emit_32(1109578377); -emit_32(3263995904); -emit_32(1123168289); -emit_32(1109348975); -emit_32(3263995904); -emit_32(1123680256); -emit_32(1109644804); -emit_32(3263995904); -emit_32(1124132848); -emit_32(1109851662); -emit_32(3263995904); -emit_32(1124388897); -emit_32(1109688451); -emit_32(3263995904); -emit_32(1124644880); -emit_32(1109357599); -emit_32(3263995904); -emit_32(1124900864); -emit_32(1108828593); -emit_32(3263995904); -emit_32(1125156848); -emit_32(1108185291); -emit_32(3263995904); -emit_32(1125412897); -emit_32(1107780226); -emit_32(3263995904); -emit_32(1125668880); -emit_32(1107584457); -emit_32(3263995904); -emit_32(1125924864); -emit_32(1107420958); -emit_32(3263995904); -emit_32(1126180848); -emit_32(1107022525); -emit_32(3263995904); -emit_32(1126436897); -emit_32(1105944170); -emit_32(3263995904); -emit_32(1126692880); -emit_32(1105239946); -emit_32(3263995904); -emit_32(1126948864); -emit_32(1105095295); -emit_32(3263995904); -emit_32(1127204848); -emit_32(1104538816); -emit_32(3263995904); -emit_32(1127460897); -emit_32(1103876692); -emit_32(3263995904); -emit_32(1127716880); -emit_32(1103498786); -emit_32(3263995904); -emit_32(1127972864); -emit_32(1102542589); -emit_32(3263995904); -emit_32(1128228848); -emit_32(1101655913); -emit_32(3263995904); -emit_32(1128484897); -emit_32(1100746955); -emit_32(3263995904); -emit_32(1128740880); -emit_32(1099747662); -emit_32(3263995904); -emit_32(1128996864); -emit_32(1098190422); -emit_32(3263995904); -emit_32(1129252848); -emit_32(1095504599); -emit_32(3263995904); -emit_32(1129508897); -emit_32(1092998503); -emit_32(3263995904); -emit_32(1129764880); -emit_32(1090781394); -emit_32(3263995904); -emit_32(1130020864); -emit_32(1090669165); -emit_32(3263995904); -emit_32(1130276848); -emit_32(1091201548); -emit_32(3263995904); -emit_32(1130532897); -emit_32(1091148238); -emit_32(3263995904); -emit_32(1130788880); -emit_32(1091128944); -emit_32(3263995904); -emit_32(1131044864); -emit_32(1091988745); -emit_32(3263995904); -emit_32(1131300848); -emit_32(1092577195); -emit_32(3263995904); -emit_32(1131556897); -emit_32(1092426756); -emit_32(3263995904); -emit_32(1131812880); -emit_32(1092938944); -emit_32(3263995904); -emit_32(1132068864); -emit_32(1093077985); -emit_32(3263995904); -emit_32(1081737216); -emit_32(1113723162); -emit_32(3264507911); -emit_32(1090125824); -emit_32(1113515282); -emit_32(3264507911); -emit_32(1094418484); -emit_32(1112907160); -emit_32(3264507911); -emit_32(1098514432); -emit_32(1112285197); -emit_32(3264507911); -emit_32(1100759066); -emit_32(1111782615); -emit_32(3264507911); -emit_32(1102807040); -emit_32(1111448565); -emit_32(3264507911); -emit_32(1104855066); -emit_32(1111432364); -emit_32(3264507911); -emit_32(1106903040); -emit_32(1111593242); -emit_32(3264507911); -emit_32(1108123661); -emit_32(1111556175); -emit_32(3264507911); -emit_32(1109147648); -emit_32(1111791947); -emit_32(3264507911); -emit_32(1110171661); -emit_32(1111706147); -emit_32(3264507911); -emit_32(1111195648); -emit_32(1111342658); -emit_32(3264507911); -emit_32(1112219661); -emit_32(1111241785); -emit_32(3264507911); -emit_32(1113243648); -emit_32(1110814700); -emit_32(3264507911); -emit_32(1114267661); -emit_32(1110530720); -emit_32(3264507911); -emit_32(1115291648); -emit_32(1110173496); -emit_32(3264507911); -emit_32(1116000263); -emit_32(1109779887); -emit_32(3264507911); -emit_32(1116512256); -emit_32(1109242701); -emit_32(3264507911); -emit_32(1117024263); -emit_32(1108763528); -emit_32(3264507911); -emit_32(1117536256); -emit_32(1108823140); -emit_32(3264507911); -emit_32(1118048263); -emit_32(1109120202); -emit_32(3264507911); -emit_32(1118560256); -emit_32(1109432205); -emit_32(3264507911); -emit_32(1119072263); -emit_32(1109682684); -emit_32(3264507911); -emit_32(1119584256); -emit_32(1109558821); -emit_32(3264507911); -emit_32(1120096263); -emit_32(1109416031); -emit_32(3264507911); -emit_32(1120608322); -emit_32(1109479208); -emit_32(3264507911); -emit_32(1121120289); -emit_32(1109404235); -emit_32(3264507911); -emit_32(1121632256); -emit_32(1109406882); -emit_32(3264507911); -emit_32(1122144223); -emit_32(1109258378); -emit_32(3264507911); -emit_32(1122656322); -emit_32(1109286008); -emit_32(3264507911); -emit_32(1123168289); -emit_32(1109433857); -emit_32(3264507911); -emit_32(1123680256); -emit_32(1109483166); -emit_32(3264507911); -emit_32(1124132848); -emit_32(1109859762); -emit_32(3264507911); -emit_32(1124388897); -emit_32(1109785995); -emit_32(3264507911); -emit_32(1124644880); -emit_32(1109694218); -emit_32(3264507911); -emit_32(1124900864); -emit_32(1109081588); -emit_32(3264507911); -emit_32(1125156848); -emit_32(1108301316); -emit_32(3264507911); -emit_32(1125412897); -emit_32(1107987923); -emit_32(3264507911); -emit_32(1125668880); -emit_32(1107744208); -emit_32(3264507911); -emit_32(1125924864); -emit_32(1107483348); -emit_32(3264507911); -emit_32(1126180848); -emit_32(1106653741); -emit_32(3264507911); -emit_32(1126436897); -emit_32(1105289282); -emit_32(3264507911); -emit_32(1126692880); -emit_32(1104749946); -emit_32(3264507911); -emit_32(1126948864); -emit_32(1104530532); -emit_32(3264507911); -emit_32(1127204848); -emit_32(1104035552); -emit_32(3264507911); -emit_32(1127460897); -emit_32(1103561123); -emit_32(3264507911); -emit_32(1127716880); -emit_32(1102839493); -emit_32(3264507911); -emit_32(1127972864); -emit_32(1102745908); -emit_32(3264507911); -emit_32(1128228848); -emit_32(1102238083); -emit_32(3264507911); -emit_32(1128484897); -emit_32(1101176504); -emit_32(3264507911); -emit_32(1128740880); -emit_32(1099585395); -emit_32(3264507911); -emit_32(1128996864); -emit_32(1097910033); -emit_32(3264507911); -emit_32(1129252848); -emit_32(1094998662); -emit_32(3264507911); -emit_32(1129508897); -emit_32(1092197905); -emit_32(3264507911); -emit_32(1129764880); -emit_32(1089185482); -emit_32(3264507911); -emit_32(1130020864); -emit_32(1088998898); -emit_32(3264507911); -emit_32(1130276848); -emit_32(1090896014); -emit_32(3264507911); -emit_32(1130532897); -emit_32(1090711286); -emit_32(3264507911); -emit_32(1130788880); -emit_32(1091554068); -emit_32(3264507911); -emit_32(1131044864); -emit_32(1091546760); -emit_32(3264507911); -emit_32(1131300848); -emit_32(1091602523); -emit_32(3264507911); -emit_32(1131556897); -emit_32(1091448749); -emit_32(3264507911); -emit_32(1131812880); -emit_32(1091178993); -emit_32(3264507911); -emit_32(1132068864); -emit_32(1092283059); -emit_32(3264507911); -emit_32(1081737216); -emit_32(1113178820); -emit_32(3265019904); -emit_32(1090125824); -emit_32(1112815043); -emit_32(3265019904); -emit_32(1094418484); -emit_32(1112334769); -emit_32(3265019904); -emit_32(1098514432); -emit_32(1111680641); -emit_32(3265019904); -emit_32(1100759066); -emit_32(1110962104); -emit_32(3265019904); -emit_32(1102807040); -emit_32(1110710079); -emit_32(3265019904); -emit_32(1104855066); -emit_32(1110785366); -emit_32(3265019904); -emit_32(1106903040); -emit_32(1110945956); -emit_32(3265019904); -emit_32(1108123661); -emit_32(1111176643); -emit_32(3265019904); -emit_32(1109147648); -emit_32(1111187364); -emit_32(3265019904); -emit_32(1110171661); -emit_32(1110966901); -emit_32(3265019904); -emit_32(1111195648); -emit_32(1110878952); -emit_32(3265019904); -emit_32(1112219661); -emit_32(1110825343); -emit_32(3265019904); -emit_32(1113243648); -emit_32(1110299718); -emit_32(3265019904); -emit_32(1114267661); -emit_32(1109951067); -emit_32(3265019904); -emit_32(1115291648); -emit_32(1109657859); -emit_32(3265019904); -emit_32(1116000263); -emit_32(1109104185); -emit_32(3265019904); -emit_32(1116512256); -emit_32(1108869644); -emit_32(3265019904); -emit_32(1117024263); -emit_32(1108483296); -emit_32(3265019904); -emit_32(1117536256); -emit_32(1108620057); -emit_32(3265019904); -emit_32(1118048263); -emit_32(1108696603); -emit_32(3265019904); -emit_32(1118560256); -emit_32(1109027874); -emit_32(3265019904); -emit_32(1119072263); -emit_32(1109328580); -emit_32(3265019904); -emit_32(1119584256); -emit_32(1109485499); -emit_32(3265019904); -emit_32(1120096263); -emit_32(1109574785); -emit_32(3265019904); -emit_32(1120608322); -emit_32(1109596203); -emit_32(3265019904); -emit_32(1121120289); -emit_32(1109472235); -emit_32(3265019904); -emit_32(1121632256); -emit_32(1109210510); -emit_32(3265019904); -emit_32(1122144223); -emit_32(1109167152); -emit_32(3265019904); -emit_32(1122656322); -emit_32(1109362999); -emit_32(3265019904); -emit_32(1123168289); -emit_32(1109542149); -emit_32(3265019904); -emit_32(1123680256); -emit_32(1109608156); -emit_32(3265019904); -emit_32(1124132848); -emit_32(1109889647); -emit_32(3265019904); -emit_32(1124388897); -emit_32(1110013300); -emit_32(3265019904); -emit_32(1124644880); -emit_32(1109719908); -emit_32(3265019904); -emit_32(1124900864); -emit_32(1109054299); -emit_32(3265019904); -emit_32(1125156848); -emit_32(1108598561); -emit_32(3265019904); -emit_32(1125412897); -emit_32(1108352696); -emit_32(3265019904); -emit_32(1125668880); -emit_32(1107819128); -emit_32(3265019904); -emit_32(1125924864); -emit_32(1107355868); -emit_32(3265019904); -emit_32(1126180848); -emit_32(1106496193); -emit_32(3265019904); -emit_32(1126436897); -emit_32(1105447564); -emit_32(3265019904); -emit_32(1126692880); -emit_32(1104791208); -emit_32(3265019904); -emit_32(1126948864); -emit_32(1104514122); -emit_32(3265019904); -emit_32(1127204848); -emit_32(1103658956); -emit_32(3265019904); -emit_32(1127460897); -emit_32(1103186887); -emit_32(3265019904); -emit_32(1127716880); -emit_32(1103111179); -emit_32(3265019904); -emit_32(1127972864); -emit_32(1103121823); -emit_32(3265019904); -emit_32(1128228848); -emit_32(1102278872); -emit_32(3265019904); -emit_32(1128484897); -emit_32(1100851603); -emit_32(3265019904); -emit_32(1128740880); -emit_32(1099479699); -emit_32(3265019904); -emit_32(1128996864); -emit_32(1097632580); -emit_32(3265019904); -emit_32(1129252848); -emit_32(1094591185); -emit_32(3265019904); -emit_32(1129508897); -emit_32(1091931629); -emit_32(3265019904); -emit_32(1129764880); -emit_32(1088905806); -emit_32(3265019904); -emit_32(1130020864); -emit_32(1090343655); -emit_32(3265019904); -emit_32(1130276848); -emit_32(1091249918); -emit_32(3265019904); -emit_32(1130532897); -emit_32(1091107417); -emit_32(3265019904); -emit_32(1130788880); -emit_32(1092474068); -emit_32(3265019904); -emit_32(1131044864); -emit_32(1091844765); -emit_32(3265019904); -emit_32(1131300848); -emit_32(1091016830); -emit_32(3265019904); -emit_32(1131556897); -emit_32(1090180560); -emit_32(3265019904); -emit_32(1131812880); -emit_32(1090146502); -emit_32(3265019904); -emit_32(1132068864); -emit_32(1091238625); -emit_32(3265019904); -emit_32(1081737216); -emit_32(1112525767); -emit_32(3265531911); -emit_32(1090125824); -emit_32(1112045230); -emit_32(3265531911); -emit_32(1094418484); -emit_32(1111728246); -emit_32(3265531911); -emit_32(1098514432); -emit_32(1111134490); -emit_32(3265531911); -emit_32(1100759066); -emit_32(1110592061); -emit_32(3265531911); -emit_32(1102807040); -emit_32(1110293873); -emit_32(3265531911); -emit_32(1104855066); -emit_32(1110356761); -emit_32(3265531911); -emit_32(1106903040); -emit_32(1110662159); -emit_32(3265531911); -emit_32(1108123661); -emit_32(1110710760); -emit_32(3265531911); -emit_32(1109147648); -emit_32(1110634267); -emit_32(3265531911); -emit_32(1110171661); -emit_32(1110559556); -emit_32(3265531911); -emit_32(1111195648); -emit_32(1110659144); -emit_32(3265531911); -emit_32(1112219661); -emit_32(1110325251); -emit_32(3265531911); -emit_32(1113243648); -emit_32(1109714954); -emit_32(3265531911); -emit_32(1114267661); -emit_32(1109517035); -emit_32(3265531911); -emit_32(1115291648); -emit_32(1108983441); -emit_32(3265531911); -emit_32(1116000263); -emit_32(1108437998); -emit_32(3265531911); -emit_32(1116512256); -emit_32(1108232687); -emit_32(3265531911); -emit_32(1117024263); -emit_32(1108084497); -emit_32(3265531911); -emit_32(1117536256); -emit_32(1108299979); -emit_32(3265531911); -emit_32(1118048263); -emit_32(1108631434); -emit_32(3265531911); -emit_32(1118560256); -emit_32(1108895544); -emit_32(3265531911); -emit_32(1119072263); -emit_32(1109120306); -emit_32(3265531911); -emit_32(1119584256); -emit_32(1109413095); -emit_32(3265531911); -emit_32(1120096263); -emit_32(1109497977); -emit_32(3265531911); -emit_32(1120608322); -emit_32(1109458603); -emit_32(3265531911); -emit_32(1121120289); -emit_32(1109373328); -emit_32(3265531911); -emit_32(1121632256); -emit_32(1109400669); -emit_32(3265531911); -emit_32(1122144223); -emit_32(1109567655); -emit_32(3265531911); -emit_32(1122656322); -emit_32(1109574287); -emit_32(3265531911); -emit_32(1123168289); -emit_32(1109599375); -emit_32(3265531911); -emit_32(1123680256); -emit_32(1109804660); -emit_32(3265531911); -emit_32(1124132848); -emit_32(1109874704); -emit_32(3265531911); -emit_32(1124388897); -emit_32(1109814254); -emit_32(3265531911); -emit_32(1124644880); -emit_32(1109294763); -emit_32(3265531911); -emit_32(1124900864); -emit_32(1109046460); -emit_32(3265531911); -emit_32(1125156848); -emit_32(1108605901); -emit_32(3265531911); -emit_32(1125412897); -emit_32(1108298039); -emit_32(3265531911); -emit_32(1125668880); -emit_32(1108029997); -emit_32(3265531911); -emit_32(1125924864); -emit_32(1107621262); -emit_32(3265531911); -emit_32(1126180848); -emit_32(1106659980); -emit_32(3265531911); -emit_32(1126436897); -emit_32(1105554362); -emit_32(3265531911); -emit_32(1126692880); -emit_32(1104494356); -emit_32(3265531911); -emit_32(1126948864); -emit_32(1104060455); -emit_32(3265531911); -emit_32(1127204848); -emit_32(1103517817); -emit_32(3265531911); -emit_32(1127460897); -emit_32(1102225500); -emit_32(3265531911); -emit_32(1127716880); -emit_32(1102665010); -emit_32(3265531911); -emit_32(1127972864); -emit_32(1102667894); -emit_32(3265531911); -emit_32(1128228848); -emit_32(1101705144); -emit_32(3265531911); -emit_32(1128484897); -emit_32(1100387503); -emit_32(3265531911); -emit_32(1128740880); -emit_32(1099194486); -emit_32(3265531911); -emit_32(1128996864); -emit_32(1097299866); -emit_32(3265531911); -emit_32(1129252848); -emit_32(1093825515); -emit_32(3265531911); -emit_32(1129508897); -emit_32(1090816720); -emit_32(3265531911); -emit_32(1129764880); -emit_32(1090544321); -emit_32(3265531911); -emit_32(1130020864); -emit_32(1090558718); -emit_32(3265531911); -emit_32(1130276848); -emit_32(1090808845); -emit_32(3265531911); -emit_32(1130532897); -emit_32(1090674481); -emit_32(3265531911); -emit_32(1130788880); -emit_32(1090993898); -emit_32(3265531911); -emit_32(1131044864); -emit_32(1090749297); -emit_32(3265531911); -emit_32(1131300848); -emit_32(1090783533); -emit_32(3265531911); -emit_32(1131556897); -emit_32(1089829685); -emit_32(3265531911); -emit_32(1131812880); -emit_32(1090562483); -emit_32(3265531911); -emit_32(1132068864); -emit_32(1091169052); -emit_32(3265531911); -emit_32(1081737216); -emit_32(1112016683); -emit_32(3266043904); -emit_32(1090125824); -emit_32(1111610963); -emit_32(3266043904); -emit_32(1094418484); -emit_32(1110972380); -emit_32(3266043904); -emit_32(1098514432); -emit_32(1110456559); -emit_32(3266043904); -emit_32(1100759066); -emit_32(1110004833); -emit_32(3266043904); -emit_32(1102807040); -emit_32(1109891010); -emit_32(3266043904); -emit_32(1104855066); -emit_32(1110020745); -emit_32(3266043904); -emit_32(1106903040); -emit_32(1110210065); -emit_32(3266043904); -emit_32(1108123661); -emit_32(1110213526); -emit_32(3266043904); -emit_32(1109147648); -emit_32(1110290465); -emit_32(3266043904); -emit_32(1110171661); -emit_32(1110321843); -emit_32(3266043904); -emit_32(1111195648); -emit_32(1109977832); -emit_32(3266043904); -emit_32(1112219661); -emit_32(1109631120); -emit_32(3266043904); -emit_32(1113243648); -emit_32(1109240762); -emit_32(3266043904); -emit_32(1114267661); -emit_32(1108674478); -emit_32(3266043904); -emit_32(1115291648); -emit_32(1108141775); -emit_32(3266043904); -emit_32(1116000263); -emit_32(1107789637); -emit_32(3266043904); -emit_32(1116512256); -emit_32(1107598534); -emit_32(3266043904); -emit_32(1117024263); -emit_32(1107892555); -emit_32(3266043904); -emit_32(1117536256); -emit_32(1108239712); -emit_32(3266043904); -emit_32(1118048263); -emit_32(1108608811); -emit_32(3266043904); -emit_32(1118560256); -emit_32(1108738520); -emit_32(3266043904); -emit_32(1119072263); -emit_32(1108905191); -emit_32(3266043904); -emit_32(1119584256); -emit_32(1109116820); -emit_32(3266043904); -emit_32(1120096263); -emit_32(1109110843); -emit_32(3266043904); -emit_32(1120608322); -emit_32(1109093384); -emit_32(3266043904); -emit_32(1121120289); -emit_32(1109277331); -emit_32(3266043904); -emit_32(1121632256); -emit_32(1109425678); -emit_32(3266043904); -emit_32(1122144223); -emit_32(1109587814); -emit_32(3266043904); -emit_32(1122656322); -emit_32(1109495330); -emit_32(3266043904); -emit_32(1123168289); -emit_32(1109569438); -emit_32(3266043904); -emit_32(1123680256); -emit_32(1109583358); -emit_32(3266043904); -emit_32(1124132848); -emit_32(1109553945); -emit_32(3266043904); -emit_32(1124388897); -emit_32(1109310833); -emit_32(3266043904); -emit_32(1124644880); -emit_32(1109184820); -emit_32(3266043904); -emit_32(1124900864); -emit_32(1108916725); -emit_32(3266043904); -emit_32(1125156848); -emit_32(1108501594); -emit_32(3266043904); -emit_32(1125412897); -emit_32(1108421037); -emit_32(3266043904); -emit_32(1125668880); -emit_32(1108052070); -emit_32(3266043904); -emit_32(1125924864); -emit_32(1107663887); -emit_32(3266043904); -emit_32(1126180848); -emit_32(1106901100); -emit_32(3266043904); -emit_32(1126436897); -emit_32(1105810896); -emit_32(3266043904); -emit_32(1126692880); -emit_32(1104533153); -emit_32(3266043904); -emit_32(1126948864); -emit_32(1103280577); -emit_32(3266043904); -emit_32(1127204848); -emit_32(1102832153); -emit_32(3266043904); -emit_32(1127460897); -emit_32(1101711226); -emit_32(3266043904); -emit_32(1127716880); -emit_32(1101683910); -emit_32(3266043904); -emit_32(1127972864); -emit_32(1101916956); -emit_32(3266043904); -emit_32(1128228848); -emit_32(1101225945); -emit_32(3266043904); -emit_32(1128484897); -emit_32(1099926497); -emit_32(3266043904); -emit_32(1128740880); -emit_32(1098187591); -emit_32(3266043904); -emit_32(1128996864); -emit_32(1095823367); -emit_32(3266043904); -emit_32(1129252848); -emit_32(1091829718); -emit_32(3266043904); -emit_32(1129508897); -emit_32(1088807932); -emit_32(3266043904); -emit_32(1129764880); -emit_32(1089675104); -emit_32(3266043904); -emit_32(1130020864); -emit_32(1090567704); -emit_32(3266043904); -emit_32(1130276848); -emit_32(1090536174); -emit_32(3266043904); -emit_32(1130532897); -emit_32(1090414497); -emit_32(3266043904); -emit_32(1130788880); -emit_32(1090232632); -emit_32(3266043904); -emit_32(1131044864); -emit_32(1086780888); -emit_32(3266043904); -emit_32(1131300848); -emit_32(1089263098); -emit_32(3266043904); -emit_32(1131556897); -emit_32(1089690267); -emit_32(3266043904); -emit_32(1131812880); -emit_32(1087942248); -emit_32(3266043904); -emit_32(1132068864); -emit_32(1090262202); -emit_32(3266043904); -emit_32(1081737216); -emit_32(1111401326); -emit_32(3266555911); -emit_32(1090125824); -emit_32(1110943623); -emit_32(3266555911); -emit_32(1094418484); -emit_32(1110454960); -emit_32(3266555911); -emit_32(1098514432); -emit_32(1110052097); -emit_32(3266555911); -emit_32(1100759066); -emit_32(1109812734); -emit_32(3266555911); -emit_32(1102807040); -emit_32(1109724706); -emit_32(3266555911); -emit_32(1104855066); -emit_32(1109725597); -emit_32(3266555911); -emit_32(1106903040); -emit_32(1109797162); -emit_32(3266555911); -emit_32(1108123661); -emit_32(1110063972); -emit_32(3266555911); -emit_32(1109147648); -emit_32(1110046147); -emit_32(3266555911); -emit_32(1110171661); -emit_32(1109992119); -emit_32(3266555911); -emit_32(1111195648); -emit_32(1109639850); -emit_32(3266555911); -emit_32(1112219661); -emit_32(1109061691); -emit_32(3266555911); -emit_32(1113243648); -emit_32(1108508410); -emit_32(3266555911); -emit_32(1114267661); -emit_32(1108134540); -emit_32(3266555911); -emit_32(1115291648); -emit_32(1108063604); -emit_32(3266555911); -emit_32(1116000263); -emit_32(1107530351); -emit_32(3266555911); -emit_32(1116512256); -emit_32(1107403761); -emit_32(3266555911); -emit_32(1117024263); -emit_32(1107815668); -emit_32(3266555911); -emit_32(1117536256); -emit_32(1108314030); -emit_32(3266555911); -emit_32(1118048263); -emit_32(1108639613); -emit_32(3266555911); -emit_32(1118560256); -emit_32(1108710628); -emit_32(3266555911); -emit_32(1119072263); -emit_32(1108872213); -emit_32(3266555911); -emit_32(1119584256); -emit_32(1108749215); -emit_32(3266555911); -emit_32(1120096263); -emit_32(1108889462); -emit_32(3266555911); -emit_32(1120608322); -emit_32(1108863484); -emit_32(3266555911); -emit_32(1121120289); -emit_32(1109036604); -emit_32(3266555911); -emit_32(1121632256); -emit_32(1109205713); -emit_32(3266555911); -emit_32(1122144223); -emit_32(1109394116); -emit_32(3266555911); -emit_32(1122656322); -emit_32(1109718781); -emit_32(3266555911); -emit_32(1123168289); -emit_32(1109715871); -emit_32(3266555911); -emit_32(1123680256); -emit_32(1109592926); -emit_32(3266555911); -emit_32(1124132848); -emit_32(1109325932); -emit_32(3266555911); -emit_32(1124388897); -emit_32(1109167623); -emit_32(3266555911); -emit_32(1124644880); -emit_32(1108999930); -emit_32(3266555911); -emit_32(1124900864); -emit_32(1108794147); -emit_32(3266555911); -emit_32(1125156848); -emit_32(1108512054); -emit_32(3266555911); -emit_32(1125412897); -emit_32(1108376184); -emit_32(3266555911); -emit_32(1125668880); -emit_32(1108266215); -emit_32(3266555911); -emit_32(1125924864); -emit_32(1107795326); -emit_32(3266555911); -emit_32(1126180848); -emit_32(1107314763); -emit_32(3266555911); -emit_32(1126436897); -emit_32(1106114511); -emit_32(3266555911); -emit_32(1126692880); -emit_32(1104385514); -emit_32(3266555911); -emit_32(1126948864); -emit_32(1102999506); -emit_32(3266555911); -emit_32(1127204848); -emit_32(1102036337); -emit_32(3266555911); -emit_32(1127460897); -emit_32(1101372378); -emit_32(3266555911); -emit_32(1127716880); -emit_32(1101356021); -emit_32(3266555911); -emit_32(1127972864); -emit_32(1101083863); -emit_32(3266555911); -emit_32(1128228848); -emit_32(1099864211); -emit_32(3266555911); -emit_32(1128484897); -emit_32(1099053662); -emit_32(3266555911); -emit_32(1128740880); -emit_32(1096243846); -emit_32(3266555911); -emit_32(1128996864); -emit_32(1092140631); -emit_32(3266555911); -emit_32(1129252848); -emit_32(1086381925); -emit_32(3266555911); -emit_32(1129508897); -emit_32(1086092015); -emit_32(3266555911); -emit_32(1129764880); -emit_32(1087322309); -emit_32(3266555911); -emit_32(1130020864); -emit_32(1086744250); -emit_32(3266555911); -emit_32(1130276848); -emit_32(1086502784); -emit_32(3266555911); -emit_32(1130532897); -emit_32(1088099933); -emit_32(3266555911); -emit_32(1130788880); -emit_32(1087042801); -emit_32(3266555911); -emit_32(1131044864); -emit_32(1085944166); -emit_32(3266555911); -emit_32(1131300848); -emit_32(1086098348); -emit_32(3266555911); -emit_32(1131556897); -emit_32(1088087979); -emit_32(3266555911); -emit_32(1131812880); -emit_32(1087004759); -emit_32(3266555911); -emit_32(1132068864); -emit_32(1086940628); -emit_32(3266555911); -emit_32(1081737216); -emit_32(1110813757); -emit_32(3267067904); -emit_32(1090125824); -emit_32(1110590462); -emit_32(3267067904); -emit_32(1094418484); -emit_32(1110447410); -emit_32(3267067904); -emit_32(1098514432); -emit_32(1109984621); -emit_32(3267067904); -emit_32(1100759066); -emit_32(1109628053); -emit_32(3267067904); -emit_32(1102807040); -emit_32(1109594341); -emit_32(3267067904); -emit_32(1104855066); -emit_32(1109544298); -emit_32(3267067904); -emit_32(1106903040); -emit_32(1109733881); -emit_32(3267067904); -emit_32(1108123661); -emit_32(1109573291); -emit_32(3267067904); -emit_32(1109147648); -emit_32(1109550878); -emit_32(3267067904); -emit_32(1110171661); -emit_32(1109270961); -emit_32(3267067904); -emit_32(1111195648); -emit_32(1108931091); -emit_32(3267067904); -emit_32(1112219661); -emit_32(1108382633); -emit_32(3267067904); -emit_32(1113243648); -emit_32(1108013298); -emit_32(3267067904); -emit_32(1114267661); -emit_32(1107931011); -emit_32(3267067904); -emit_32(1115291648); -emit_32(1107808171); -emit_32(3267067904); -emit_32(1116000263); -emit_32(1107425519); -emit_32(3267067904); -emit_32(1116512256); -emit_32(1107431129); -emit_32(3267067904); -emit_32(1117024263); -emit_32(1107661423); -emit_32(3267067904); -emit_32(1117536256); -emit_32(1108073723); -emit_32(3267067904); -emit_32(1118048263); -emit_32(1108439492); -emit_32(3267067904); -emit_32(1118560256); -emit_32(1108755874); -emit_32(3267067904); -emit_32(1119072263); -emit_32(1108610122); -emit_32(3267067904); -emit_32(1119584256); -emit_32(1108774538); -emit_32(3267067904); -emit_32(1120096263); -emit_32(1108983703); -emit_32(3267067904); -emit_32(1120608322); -emit_32(1108966611); -emit_32(3267067904); -emit_32(1121120289); -emit_32(1109162171); -emit_32(3267067904); -emit_32(1121632256); -emit_32(1109004596); -emit_32(3267067904); -emit_32(1122144223); -emit_32(1109403972); -emit_32(3267067904); -emit_32(1122656322); -emit_32(1109453098); -emit_32(3267067904); -emit_32(1123168289); -emit_32(1109628944); -emit_32(3267067904); -emit_32(1123680256); -emit_32(1109442953); -emit_32(3267067904); -emit_32(1124132848); -emit_32(1109378597); -emit_32(3267067904); -emit_32(1124388897); -emit_32(1109310151); -emit_32(3267067904); -emit_32(1124644880); -emit_32(1109090370); -emit_32(3267067904); -emit_32(1124900864); -emit_32(1108727012); -emit_32(3267067904); -emit_32(1125156848); -emit_32(1108564378); -emit_32(3267067904); -emit_32(1125412897); -emit_32(1108413016); -emit_32(3267067904); -emit_32(1125668880); -emit_32(1108252662); -emit_32(3267067904); -emit_32(1125924864); -emit_32(1107867468); -emit_32(3267067904); -emit_32(1126180848); -emit_32(1107313322); -emit_32(3267067904); -emit_32(1126436897); -emit_32(1105536274); -emit_32(3267067904); -emit_32(1126692880); -emit_32(1103691199); -emit_32(3267067904); -emit_32(1126948864); -emit_32(1102287156); -emit_32(3267067904); -emit_32(1127204848); -emit_32(1100758437); -emit_32(3267067904); -emit_32(1127460897); -emit_32(1100185390); -emit_32(3267067904); -emit_32(1127716880); -emit_32(1100274781); -emit_32(3267067904); -emit_32(1127972864); -emit_32(1099687789); -emit_32(3267067904); -emit_32(1128228848); -emit_32(1098027264); -emit_32(3267067904); -emit_32(1128484897); -emit_32(1095782577); -emit_32(3267067904); -emit_32(1128740880); -emit_32(1092060656); -emit_32(3267067904); -emit_32(1128996864); -emit_32(1085479584); -emit_32(3267067904); -emit_32(1129252848); -emit_32(1080427922); -emit_32(3267067904); -emit_32(1129508897); -emit_32(1082737893); -emit_32(3267067904); -emit_32(1129764880); -emit_32(1082587842); -emit_32(3267067904); -emit_32(1130020864); -emit_32(1082372569); -emit_32(3267067904); -emit_32(1130276848); -emit_32(1085083537); -emit_32(3267067904); -emit_32(1130532897); -emit_32(1085407211); -emit_32(3267067904); -emit_32(1130788880); -emit_32(1084963160); -emit_32(3267067904); -emit_32(1131044864); -emit_32(1084737318); -emit_32(3267067904); -emit_32(1131300848); -emit_32(1083924504); -emit_32(3267067904); -emit_32(1131556897); -emit_32(1084286829); -emit_32(3267067904); -emit_32(1131812880); -emit_32(1084905342); -emit_32(3267067904); -emit_32(1132068864); -emit_32(1085475641); -emit_32(3267067904); -emit_32(1081737216); -emit_32(1110694612); -emit_32(3267579911); -emit_32(1090125824); -emit_32(1110646797); -emit_32(3267579911); -emit_32(1094418484); -emit_32(1110299640); -emit_32(3267579911); -emit_32(1098514432); -emit_32(1110057393); -emit_32(3267579911); -emit_32(1100759066); -emit_32(1109526053); -emit_32(3267579911); -emit_32(1102807040); -emit_32(1109344807); -emit_32(3267579911); -emit_32(1104855066); -emit_32(1109452259); -emit_32(3267579911); -emit_32(1106903040); -emit_32(1109261550); -emit_32(3267579911); -emit_32(1108123661); -emit_32(1109082820); -emit_32(3267579911); -emit_32(1109147648); -emit_32(1108958406); -emit_32(3267579911); -emit_32(1110171661); -emit_32(1108756398); -emit_32(3267579911); -emit_32(1111195648); -emit_32(1108426831); -emit_32(3267579911); -emit_32(1112219661); -emit_32(1107880234); -emit_32(3267579911); -emit_32(1113243648); -emit_32(1107647398); -emit_32(3267579911); -emit_32(1114267661); -emit_32(1107551060); -emit_32(3267579911); -emit_32(1115291648); -emit_32(1107461800); -emit_32(3267579911); -emit_32(1116000263); -emit_32(1107421980); -emit_32(3267579911); -emit_32(1116512256); -emit_32(1107111287); -emit_32(3267579911); -emit_32(1117024263); -emit_32(1107355396); -emit_32(3267579911); -emit_32(1117536256); -emit_32(1107770029); -emit_32(3267579911); -emit_32(1118048263); -emit_32(1108281682); -emit_32(3267579911); -emit_32(1118560256); -emit_32(1108475930); -emit_32(3267579911); -emit_32(1119072263); -emit_32(1108583724); -emit_32(3267579911); -emit_32(1119584256); -emit_32(1108787908); -emit_32(3267579911); -emit_32(1120096263); -emit_32(1108859761); -emit_32(3267579911); -emit_32(1120608322); -emit_32(1109119625); -emit_32(3267579911); -emit_32(1121120289); -emit_32(1109310125); -emit_32(3267579911); -emit_32(1121632256); -emit_32(1109129088); -emit_32(3267579911); -emit_32(1122144223); -emit_32(1109416267); -emit_32(3267579911); -emit_32(1122656322); -emit_32(1109508751); -emit_32(3267579911); -emit_32(1123168289); -emit_32(1109311540); -emit_32(3267579911); -emit_32(1123680256); -emit_32(1109131552); -emit_32(3267579911); -emit_32(1124132848); -emit_32(1109360247); -emit_32(3267579911); -emit_32(1124388897); -emit_32(1109275522); -emit_32(3267579911); -emit_32(1124644880); -emit_32(1108801749); -emit_32(3267579911); -emit_32(1124900864); -emit_32(1108467804); -emit_32(3267579911); -emit_32(1125156848); -emit_32(1108391100); -emit_32(3267579911); -emit_32(1125412897); -emit_32(1108331096); -emit_32(3267579911); -emit_32(1125668880); -emit_32(1108112599); -emit_32(3267579911); -emit_32(1125924864); -emit_32(1107624355); -emit_32(3267579911); -emit_32(1126180848); -emit_32(1106590564); -emit_32(3267579911); -emit_32(1126436897); -emit_32(1104796346); -emit_32(3267579911); -emit_32(1126692880); -emit_32(1102786068); -emit_32(3267579911); -emit_32(1126948864); -emit_32(1101357226); -emit_32(3267579911); -emit_32(1127204848); -emit_32(1100162793); -emit_32(3267579911); -emit_32(1127460897); -emit_32(1099771412); -emit_32(3267579911); -emit_32(1127716880); -emit_32(1098962017); -emit_32(3267579911); -emit_32(1127972864); -emit_32(1097608462); -emit_32(3267579911); -emit_32(1128228848); -emit_32(1094970874); -emit_32(3267579911); -emit_32(1128484897); -emit_32(1092021933); -emit_32(3267579911); -emit_32(1128740880); -emit_32(1088236919); -emit_32(3267579911); -emit_32(1128996864); -emit_32(1082682696); -emit_32(3267579911); -emit_32(1129252848); -emit_32(1079924773); -emit_32(3267579911); -emit_32(1129508897); -emit_32(1081076487); -emit_32(3267579911); -emit_32(1129764880); -emit_32(1081136801); -emit_32(3267579911); -emit_32(1130020864); -emit_32(1081313088); -emit_32(3267579911); -emit_32(1130276848); -emit_32(1082622067); -emit_32(3267579911); -emit_32(1130532897); -emit_32(1080914755); -emit_32(3267579911); -emit_32(1130788880); -emit_32(1081174131); -emit_32(3267579911); -emit_32(1131044864); -emit_32(1081307258); -emit_32(3267579911); -emit_32(1131300848); -emit_32(1080904101); -emit_32(3267579911); -emit_32(1131556897); -emit_32(1082632301); -emit_32(3267579911); -emit_32(1131812880); -emit_32(1082980177); -emit_32(3267579911); -emit_32(1132068864); -emit_32(1083203964); -emit_32(3267579911); -emit_32(1081737216); -emit_32(1110581209); -emit_32(3268091970); -emit_32(1090125824); -emit_32(1110551586); -emit_32(3268091970); -emit_32(1094418484); -emit_32(1110307347); -emit_32(3268091970); -emit_32(1098514432); -emit_32(1109985591); -emit_32(3268091970); -emit_32(1100759066); -emit_32(1109670180); -emit_32(3268091970); -emit_32(1102807040); -emit_32(1109393303); -emit_32(3268091970); -emit_32(1104855066); -emit_32(1109233946); -emit_32(3268091970); -emit_32(1106903040); -emit_32(1109280450); -emit_32(3268091970); -emit_32(1108123661); -emit_32(1108630281); -emit_32(3268091970); -emit_32(1109147648); -emit_32(1108457449); -emit_32(3268091970); -emit_32(1110171661); -emit_32(1108487176); -emit_32(3268091970); -emit_32(1111195648); -emit_32(1108197114); -emit_32(3268091970); -emit_32(1112219661); -emit_32(1107653847); -emit_32(3268091970); -emit_32(1113243648); -emit_32(1107312745); -emit_32(3268091970); -emit_32(1114267661); -emit_32(1107342131); -emit_32(3268091970); -emit_32(1115291648); -emit_32(1107499418); -emit_32(3268091970); -emit_32(1116000263); -emit_32(1107104104); -emit_32(3268091970); -emit_32(1116512256); -emit_32(1107322497); -emit_32(3268091970); -emit_32(1117024263); -emit_32(1107451078); -emit_32(3268091970); -emit_32(1117536256); -emit_32(1107597774); -emit_32(3268091970); -emit_32(1118048263); -emit_32(1108134383); -emit_32(3268091970); -emit_32(1118560256); -emit_32(1108348292); -emit_32(3268091970); -emit_32(1119072263); -emit_32(1108697206); -emit_32(3268091970); -emit_32(1119584256); -emit_32(1108767120); -emit_32(3268091970); -emit_32(1120096263); -emit_32(1108911089); -emit_32(3268091970); -emit_32(1120608322); -emit_32(1109333115); -emit_32(3268091970); -emit_32(1121120289); -emit_32(1109311147); -emit_32(3268091970); -emit_32(1121632256); -emit_32(1109257853); -emit_32(3268091970); -emit_32(1122144223); -emit_32(1109429663); -emit_32(3268091970); -emit_32(1122656322); -emit_32(1109626926); -emit_32(3268091970); -emit_32(1123168289); -emit_32(1109223460); -emit_32(3268091970); -emit_32(1123680256); -emit_32(1109113464); -emit_32(3268091970); -emit_32(1124132848); -emit_32(1109197770); -emit_32(3268091970); -emit_32(1124388897); -emit_32(1108996941); -emit_32(3268091970); -emit_32(1124644880); -emit_32(1108521910); -emit_32(3268091970); -emit_32(1124900864); -emit_32(1108156167); -emit_32(3268091970); -emit_32(1125156848); -emit_32(1108312169); -emit_32(3268091970); -emit_32(1125412897); -emit_32(1108417210); -emit_32(3268091970); -emit_32(1125668880); -emit_32(1108025410); -emit_32(3268091970); -emit_32(1125924864); -emit_32(1107366039); -emit_32(3268091970); -emit_32(1126180848); -emit_32(1106152836); -emit_32(3268091970); -emit_32(1126436897); -emit_32(1104094377); -emit_32(3268091970); -emit_32(1126692880); -emit_32(1102342783); -emit_32(3268091970); -emit_32(1126948864); -emit_32(1101171838); -emit_32(3268091970); -emit_32(1127204848); -emit_32(1099584871); -emit_32(3268091970); -emit_32(1127460897); -emit_32(1099343069); -emit_32(3268091970); -emit_32(1127716880); -emit_32(1097562115); -emit_32(3268091970); -emit_32(1127972864); -emit_32(1094777202); -emit_32(3268091970); -emit_32(1128228848); -emit_32(1092522051); -emit_32(3268091970); -emit_32(1128484897); -emit_32(1088883870); -emit_32(3268091970); -emit_32(1128740880); -emit_32(1085242165); -emit_32(3268091970); -emit_32(1128996864); -emit_32(1078093792); -emit_32(3268091970); -emit_32(1129252848); -emit_32(1078026222); -emit_32(3268091970); -emit_32(1129508897); -emit_32(1077460788); -emit_32(3268091970); -emit_32(1129764880); -emit_32(1078305017); -emit_32(3268091970); -emit_32(1130020864); -emit_32(1079773820); -emit_32(3268091970); -emit_32(1130276848); -emit_32(1080393613); -emit_32(3268091970); -emit_32(1130532897); -emit_32(1078685021); -emit_32(3268091970); -emit_32(1130788880); -emit_32(1075784911); -emit_32(3268091970); -emit_32(1131044864); -emit_32(1076529820); -emit_32(3268091970); -emit_32(1131300848); -emit_32(1074011602); -emit_32(3268091970); -emit_32(1131556897); -emit_32(1075826561); -emit_32(3268091970); -emit_32(1131812880); -emit_32(1078155029); -emit_32(3268091970); -emit_32(1132068864); -emit_32(1080836699); -emit_32(3268091970); -emit_32(1081737216); -emit_32(1110663915); -emit_32(3268603937); -emit_32(1090125824); -emit_32(1110523301); -emit_32(3268603937); -emit_32(1094418484); -emit_32(1110414092); -emit_32(3268603937); -emit_32(1098514432); -emit_32(1110239740); -emit_32(3268603937); -emit_32(1100759066); -emit_32(1110111263); -emit_32(3268603937); -emit_32(1102807040); -emit_32(1109732989); -emit_32(3268603937); -emit_32(1104855066); -emit_32(1109257434); -emit_32(3268603937); -emit_32(1106903040); -emit_32(1108986639); -emit_32(3268603937); -emit_32(1108123661); -emit_32(1108299324); -emit_32(3268603937); -emit_32(1109147648); -emit_32(1108108666); -emit_32(3268603937); -emit_32(1110171661); -emit_32(1108133256); -emit_32(3268603937); -emit_32(1111195648); -emit_32(1107900341); -emit_32(3268603937); -emit_32(1112219661); -emit_32(1106990544); -emit_32(3268603937); -emit_32(1113243648); -emit_32(1106677911); -emit_32(3268603937); -emit_32(1114267661); -emit_32(1106924116); -emit_32(3268603937); -emit_32(1115291648); -emit_32(1107371465); -emit_32(3268603937); -emit_32(1116000263); -emit_32(1107430500); -emit_32(3268603937); -emit_32(1116512256); -emit_32(1107498631); -emit_32(3268603937); -emit_32(1117024263); -emit_32(1107438390); -emit_32(3268603937); -emit_32(1117536256); -emit_32(1107833808); -emit_32(3268603937); -emit_32(1118048263); -emit_32(1108210981); -emit_32(3268603937); -emit_32(1118560256); -emit_32(1108542226); -emit_32(3268603937); -emit_32(1119072263); -emit_32(1108787882); -emit_32(3268603937); -emit_32(1119584256); -emit_32(1108829274); -emit_32(3268603937); -emit_32(1120096263); -emit_32(1109124029); -emit_32(3268603937); -emit_32(1120608322); -emit_32(1109412387); -emit_32(3268603937); -emit_32(1121120289); -emit_32(1109324752); -emit_32(3268603937); -emit_32(1121632256); -emit_32(1109233631); -emit_32(3268603937); -emit_32(1122144223); -emit_32(1109356105); -emit_32(3268603937); -emit_32(1122656322); -emit_32(1109523353); -emit_32(3268603937); -emit_32(1123168289); -emit_32(1109276492); -emit_32(3268603937); -emit_32(1123680256); -emit_32(1109141330); -emit_32(3268603937); -emit_32(1124132848); -emit_32(1108924485); -emit_32(3268603937); -emit_32(1124388897); -emit_32(1108532029); -emit_32(3268603937); -emit_32(1124644880); -emit_32(1108013482); -emit_32(3268603937); -emit_32(1124900864); -emit_32(1107879159); -emit_32(3268603937); -emit_32(1125156848); -emit_32(1108192290); -emit_32(3268603937); -emit_32(1125412897); -emit_32(1108199499); -emit_32(3268603937); -emit_32(1125668880); -emit_32(1107673455); -emit_32(3268603937); -emit_32(1125924864); -emit_32(1106232371); -emit_32(3268603937); -emit_32(1126180848); -emit_32(1104800226); -emit_32(3268603937); -emit_32(1126436897); -emit_32(1103280682); -emit_32(3268603937); -emit_32(1126692880); -emit_32(1102286055); -emit_32(3268603937); -emit_32(1126948864); -emit_32(1100759748); -emit_32(3268603937); -emit_32(1127204848); -emit_32(1099429367); -emit_32(3268603937); -emit_32(1127460897); -emit_32(1097617900); -emit_32(3268603937); -emit_32(1127716880); -emit_32(1095952341); -emit_32(3268603937); -emit_32(1127972864); -emit_32(1093005319); -emit_32(3268603937); -emit_32(1128228848); -emit_32(1088642320); -emit_32(3268603937); -emit_32(1128484897); -emit_32(1085144270); -emit_32(3268603937); -emit_32(1128740880); -emit_32(1079423554); -emit_32(3268603937); -emit_32(1128996864); -emit_32(1075473065); -emit_32(3268603937); -emit_32(1129252848); -emit_32(1075224804); -emit_32(3268603937); -emit_32(1129508897); -emit_32(1074942527); -emit_32(3268603937); -emit_32(1129764880); -emit_32(1070517327); -emit_32(3268603937); -emit_32(1130020864); -emit_32(1076303998); -emit_32(3268603937); -emit_32(1130276848); -emit_32(1075194647); -emit_32(3268603937); -emit_32(1130532897); -emit_32(1069302069); -emit_32(3268603937); -emit_32(1130788880); -emit_32(1059149840); -emit_32(3268603937); -emit_32(1131044864); -emit_32(1062802928); -emit_32(3268603937); -emit_32(1131300848); -emit_32(1068305922); -emit_32(3268603937); -emit_32(1131556897); -emit_32(1074623970); -emit_32(3268603937); -emit_32(1131812880); -emit_32(1077991619); -emit_32(3268603937); -emit_32(1132068864); -emit_32(1078469350); -emit_32(3268603937); -emit_32(1081737216); -emit_32(1110808645); -emit_32(3269115904); -emit_32(1090125824); -emit_32(1110606427); -emit_32(3269115904); -emit_32(1094418484); -emit_32(1110590725); -emit_32(3269115904); -emit_32(1098514432); -emit_32(1110520575); -emit_32(3269115904); -emit_32(1100759066); -emit_32(1110320952); -emit_32(3269115904); -emit_32(1102807040); -emit_32(1109925718); -emit_32(3269115904); -emit_32(1104855066); -emit_32(1109578691); -emit_32(3269115904); -emit_32(1106903040); -emit_32(1109301579); -emit_32(3269115904); -emit_32(1108123661); -emit_32(1108401481); -emit_32(3269115904); -emit_32(1109147648); -emit_32(1108050418); -emit_32(3269115904); -emit_32(1110171661); -emit_32(1108134828); -emit_32(3269115904); -emit_32(1111195648); -emit_32(1107813047); -emit_32(3269115904); -emit_32(1112219661); -emit_32(1106770867); -emit_32(3269115904); -emit_32(1113243648); -emit_32(1107263016); -emit_32(3269115904); -emit_32(1114267661); -emit_32(1107073696); -emit_32(3269115904); -emit_32(1115291648); -emit_32(1107071861); -emit_32(3269115904); -emit_32(1116000263); -emit_32(1107575911); -emit_32(3269115904); -emit_32(1116512256); -emit_32(1107727326); -emit_32(3269115904); -emit_32(1117024263); -emit_32(1107439570); -emit_32(3269115904); -emit_32(1117536256); -emit_32(1107890956); -emit_32(3269115904); -emit_32(1118048263); -emit_32(1108361426); -emit_32(3269115904); -emit_32(1118560256); -emit_32(1108752964); -emit_32(3269115904); -emit_32(1119072263); -emit_32(1109015894); -emit_32(3269115904); -emit_32(1119584256); -emit_32(1109044966); -emit_32(3269115904); -emit_32(1120096263); -emit_32(1109198320); -emit_32(3269115904); -emit_32(1120608322); -emit_32(1109370103); -emit_32(3269115904); -emit_32(1121120289); -emit_32(1109373380); -emit_32(3269115904); -emit_32(1121632256); -emit_32(1109279795); -emit_32(3269115904); -emit_32(1122144223); -emit_32(1109433568); -emit_32(3269115904); -emit_32(1122656322); -emit_32(1109623387); -emit_32(3269115904); -emit_32(1123168289); -emit_32(1109428273); -emit_32(3269115904); -emit_32(1123680256); -emit_32(1108960346); -emit_32(3269115904); -emit_32(1124132848); -emit_32(1108585323); -emit_32(3269115904); -emit_32(1124388897); -emit_32(1108055818); -emit_32(3269115904); -emit_32(1124644880); -emit_32(1107534728); -emit_32(3269115904); -emit_32(1124900864); -emit_32(1107471001); -emit_32(3269115904); -emit_32(1125156848); -emit_32(1107590041); -emit_32(3269115904); -emit_32(1125412897); -emit_32(1107454172); -emit_32(3269115904); -emit_32(1125668880); -emit_32(1106832209); -emit_32(3269115904); -emit_32(1125924864); -emit_32(1105088217); -emit_32(3269115904); -emit_32(1126180848); -emit_32(1103608676); -emit_32(3269115904); -emit_32(1126436897); -emit_32(1102467039); -emit_32(3269115904); -emit_32(1126692880); -emit_32(1101262068); -emit_32(3269115904); -emit_32(1126948864); -emit_32(1100082158); -emit_32(3269115904); -emit_32(1127204848); -emit_32(1098845677); -emit_32(3269115904); -emit_32(1127460897); -emit_32(1095460140); -emit_32(3269115904); -emit_32(1127716880); -emit_32(1093620938); -emit_32(3269115904); -emit_32(1127972864); -emit_32(1089412289); -emit_32(3269115904); -emit_32(1128228848); -emit_32(1083970620); -emit_32(3269115904); -emit_32(1128484897); -emit_32(1077038086); -emit_32(3269115904); -emit_32(1128740880); -emit_32(1069835165); -emit_32(3269115904); -emit_32(1128996864); -emit_32(1070535279); -emit_32(3269115904); -emit_32(1129252848); -emit_32(1071829221); -emit_32(3269115904); -emit_32(1129508897); -emit_32(1066648753); -emit_32(3269115904); -emit_32(1129764880); -emit_32(1051679953); -emit_32(3269115904); -emit_32(1130020864); -emit_32(1057135450); -emit_32(3269115904); -emit_32(1130276848); -emit_32(1048743000); -emit_32(3269115904); -emit_32(1130532897); -emit_32(3194534264); -emit_32(3269115904); -emit_32(1130788880); -emit_32(3210162995); -emit_32(3269115904); -emit_32(1131044864); -emit_32(3197138557); -emit_32(3269115904); -emit_32(1131300848); -emit_32(1054446180); -emit_32(3269115904); -emit_32(1131556897); -emit_32(1071525302); -emit_32(3269115904); -emit_32(1131812880); -emit_32(1072082306); -emit_32(3269115904); -emit_32(1132068864); -emit_32(1070395189); -emit_32(3269115904); -emit_32(1081737216); -emit_32(1111356054); -emit_32(3269627871); -emit_32(1090125824); -emit_32(1111049765); -emit_32(3269627871); -emit_32(1094418484); -emit_32(1111095011); -emit_32(3269627871); -emit_32(1098514432); -emit_32(1110769821); -emit_32(3269627871); -emit_32(1100759066); -emit_32(1110387956); -emit_32(3269627871); -emit_32(1102807040); -emit_32(1110076608); -emit_32(3269627871); -emit_32(1104855066); -emit_32(1109830507); -emit_32(3269627871); -emit_32(1106903040); -emit_32(1109267474); -emit_32(3269627871); -emit_32(1108123661); -emit_32(1108522670); -emit_32(3269627871); -emit_32(1109147648); -emit_32(1108306716); -emit_32(3269627871); -emit_32(1110171661); -emit_32(1108152078); -emit_32(3269627871); -emit_32(1111195648); -emit_32(1107581521); -emit_32(3269627871); -emit_32(1112219661); -emit_32(1106841751); -emit_32(3269627871); -emit_32(1113243648); -emit_32(1107248808); -emit_32(3269627871); -emit_32(1114267661); -emit_32(1107071599); -emit_32(3269627871); -emit_32(1115291648); -emit_32(1107391729); -emit_32(3269627871); -emit_32(1116000263); -emit_32(1107625981); -emit_32(3269627871); -emit_32(1116512256); -emit_32(1107606818); -emit_32(3269627871); -emit_32(1117024263); -emit_32(1107732044); -emit_32(3269627871); -emit_32(1117536256); -emit_32(1108255231); -emit_32(3269627871); -emit_32(1118048263); -emit_32(1108554259); -emit_32(3269627871); -emit_32(1118560256); -emit_32(1108867835); -emit_32(3269627871); -emit_32(1119072263); -emit_32(1109054272); -emit_32(3269627871); -emit_32(1119584256); -emit_32(1109386251); -emit_32(3269627871); -emit_32(1120096263); -emit_32(1109299298); -emit_32(3269627871); -emit_32(1120608322); -emit_32(1109427959); -emit_32(3269627871); -emit_32(1121120289); -emit_32(1109424079); -emit_32(3269627871); -emit_32(1121632256); -emit_32(1109411181); -emit_32(3269627871); -emit_32(1122144223); -emit_32(1109433621); -emit_32(3269627871); -emit_32(1122656322); -emit_32(1109598955); -emit_32(3269627871); -emit_32(1123168289); -emit_32(1109218086); -emit_32(3269627871); -emit_32(1123680256); -emit_32(1108916909); -emit_32(3269627871); -emit_32(1124132848); -emit_32(1108631119); -emit_32(3269627871); -emit_32(1124388897); -emit_32(1108074483); -emit_32(3269627871); -emit_32(1124644880); -emit_32(1107470084); -emit_32(3269627871); -emit_32(1124900864); -emit_32(1106751049); -emit_32(3269627871); -emit_32(1125156848); -emit_32(1106805732); -emit_32(3269627871); -emit_32(1125412897); -emit_32(1106063917); -emit_32(3269627871); -emit_32(1125668880); -emit_32(1104941941); -emit_32(3269627871); -emit_32(1125924864); -emit_32(1103592738); -emit_32(3269627871); -emit_32(1126180848); -emit_32(1102378749); -emit_32(3269627871); -emit_32(1126436897); -emit_32(1101064359); -emit_32(3269627871); -emit_32(1126692880); -emit_32(1099948989); -emit_32(3269627871); -emit_32(1126948864); -emit_32(1098973289); -emit_32(3269627871); -emit_32(1127204848); -emit_32(1097124125); -emit_32(3269627871); -emit_32(1127460897); -emit_32(1094111671); -emit_32(3269627871); -emit_32(1127716880); -emit_32(1091103611); -emit_32(3269627871); -emit_32(1127972864); -emit_32(1086368084); -emit_32(3269627871); -emit_32(1128228848); -emit_32(1078725915); -emit_32(3269627871); -emit_32(1128484897); -emit_32(1069950844); -emit_32(3269627871); -emit_32(1128740880); -emit_32(1018630897); -emit_32(3269627871); -emit_32(1128996864); -emit_32(3181731986); -emit_32(3269627871); -emit_32(1129252848); -emit_32(3201792590); -emit_32(3269627871); -emit_32(1129508897); -emit_32(3204973752); -emit_32(3269627871); -emit_32(1129764880); -emit_32(3215721958); -emit_32(3269627871); -emit_32(1130020864); -emit_32(3222414389); -emit_32(3269627871); -emit_32(1130276848); -emit_32(3222253076); -emit_32(3269627871); -emit_32(1130532897); -emit_32(3222187310); -emit_32(3269627871); -emit_32(1130788880); -emit_32(3216801991); -emit_32(3269627871); -emit_32(1131044864); -emit_32(3205181336); -emit_32(3269627871); -emit_32(1131300848); -emit_32(3200822633); -emit_32(3269627871); -emit_32(1131556897); -emit_32(3196733320); -emit_32(3269627871); -emit_32(1131812880); -emit_32(3206975391); -emit_32(3269627871); -emit_32(1132068864); -emit_32(1038377734); -emit_32(3269627871); -emit_32(1081737216); -emit_32(1111592455); -emit_32(3270139970); -emit_32(1090125824); -emit_32(1111491609); -emit_32(3270139970); -emit_32(1094418484); -emit_32(1111194940); -emit_32(3270139970); -emit_32(1098514432); -emit_32(1110835331); -emit_32(3270139970); -emit_32(1100759066); -emit_32(1110275365); -emit_32(3270139970); -emit_32(1102807040); -emit_32(1110005567); -emit_32(3270139970); -emit_32(1104855066); -emit_32(1109696499); -emit_32(3270139970); -emit_32(1106903040); -emit_32(1109176772); -emit_32(3270139970); -emit_32(1108123661); -emit_32(1108885556); -emit_32(3270139970); -emit_32(1109147648); -emit_32(1108468774); -emit_32(3270139970); -emit_32(1110171661); -emit_32(1108030285); -emit_32(3270139970); -emit_32(1111195648); -emit_32(1107430028); -emit_32(3270139970); -emit_32(1112219661); -emit_32(1107103737); -emit_32(3270139970); -emit_32(1113243648); -emit_32(1107092098); -emit_32(3270139970); -emit_32(1114267661); -emit_32(1107375004); -emit_32(3270139970); -emit_32(1115291648); -emit_32(1107478708); -emit_32(3270139970); -emit_32(1116000263); -emit_32(1107657884); -emit_32(3270139970); -emit_32(1116512256); -emit_32(1107812575); -emit_32(3270139970); -emit_32(1117024263); -emit_32(1108062005); -emit_32(3270139970); -emit_32(1117536256); -emit_32(1108546316); -emit_32(3270139970); -emit_32(1118048263); -emit_32(1108808198); -emit_32(3270139970); -emit_32(1118560256); -emit_32(1108821253); -emit_32(3270139970); -emit_32(1119072263); -emit_32(1108944565); -emit_32(3270139970); -emit_32(1119584256); -emit_32(1109292509); -emit_32(3270139970); -emit_32(1120096263); -emit_32(1109325827); -emit_32(3270139970); -emit_32(1120608322); -emit_32(1109645355); -emit_32(3270139970); -emit_32(1121120289); -emit_32(1109627555); -emit_32(3270139970); -emit_32(1121632256); -emit_32(1109566502); -emit_32(3270139970); -emit_32(1122144223); -emit_32(1109470347); -emit_32(3270139970); -emit_32(1122656322); -emit_32(1109358831); -emit_32(3270139970); -emit_32(1123168289); -emit_32(1109156561); -emit_32(3270139970); -emit_32(1123680256); -emit_32(1108641920); -emit_32(3270139970); -emit_32(1124132848); -emit_32(1108219580); -emit_32(3270139970); -emit_32(1124388897); -emit_32(1107796112); -emit_32(3270139970); -emit_32(1124644880); -emit_32(1107364885); -emit_32(3270139970); -emit_32(1124900864); -emit_32(1106177268); -emit_32(3270139970); -emit_32(1125156848); -emit_32(1105288443); -emit_32(3270139970); -emit_32(1125412897); -emit_32(1104753197); -emit_32(3270139970); -emit_32(1125668880); -emit_32(1103375473); -emit_32(3270139970); -emit_32(1125924864); -emit_32(1102075344); -emit_32(3270139970); -emit_32(1126180848); -emit_32(1100964849); -emit_32(3270139970); -emit_32(1126436897); -emit_32(1099792384); -emit_32(3270139970); -emit_32(1126692880); -emit_32(1098450049); -emit_32(3270139970); -emit_32(1126948864); -emit_32(1096338322); -emit_32(3270139970); -emit_32(1127204848); -emit_32(1093954280); -emit_32(3270139970); -emit_32(1127460897); -emit_32(1091524247); -emit_32(3270139970); -emit_32(1127716880); -emit_32(1088518839); -emit_32(3270139970); -emit_32(1127972864); -emit_32(1083884385); -emit_32(3270139970); -emit_32(1128228848); -emit_32(1076931424); -emit_32(3270139970); -emit_32(1128484897); -emit_32(1044557454); -emit_32(3270139970); -emit_32(1128740880); -emit_32(3205427693); -emit_32(3270139970); -emit_32(1128996864); -emit_32(3213113940); -emit_32(3270139970); -emit_32(1129252848); -emit_32(3221962118); -emit_32(3270139970); -emit_32(1129508897); -emit_32(3220483500); -emit_32(3270139970); -emit_32(1129764880); -emit_32(3225420531); -emit_32(3270139970); -emit_32(1130020864); -emit_32(3230173831); -emit_32(3270139970); -emit_32(1130276848); -emit_32(3232043735); -emit_32(3270139970); -emit_32(1130532897); -emit_32(3227363752); -emit_32(3270139970); -emit_32(1130788880); -emit_32(3221899790); -emit_32(3270139970); -emit_32(1131044864); -emit_32(3216845360); -emit_32(3270139970); -emit_32(1131300848); -emit_32(3219415546); -emit_32(3270139970); -emit_32(1131556897); -emit_32(3212863456); -emit_32(3270139970); -emit_32(1131812880); -emit_32(3221056106); -emit_32(3270139970); -emit_32(1132068864); -emit_32(3222457423); -emit_32(3270139970); -emit_start(Landscape04Vtx) -emit_32(1081737216); -emit_32(1100462372); -emit_32(1123680256); -emit_32(1081737216); -emit_32(1101050728); -emit_32(1124132848); -emit_32(1090125824); -emit_32(1101307000); -emit_32(1123680256); -emit_32(1090125824); -emit_32(1101569144); -emit_32(1124132848); -emit_32(1094418484); -emit_32(1101816870); -emit_32(1123680256); -emit_32(1094418484); -emit_32(1101742788); -emit_32(1124132848); -emit_32(1098514432); -emit_32(1102313580); -emit_32(1123680256); -emit_32(1098514432); -emit_32(1102383625); -emit_32(1124132848); -emit_32(1100759066); -emit_32(1102224504); -emit_32(1123680256); -emit_32(1100759066); -emit_32(1102114927); -emit_32(1124132848); -emit_32(1102807040); -emit_32(1101213834); -emit_32(1123680256); -emit_32(1102807040); -emit_32(1101213309); -emit_32(1124132848); -emit_32(1104855066); -emit_32(1100303408); -emit_32(1123680256); -emit_32(1104855066); -emit_32(1100341209); -emit_32(1124132848); -emit_32(1106903040); -emit_32(1099679610); -emit_32(1123680256); -emit_32(1106903040); -emit_32(1099911345); -emit_32(1124132848); -emit_32(1108123661); -emit_32(1099160984); -emit_32(1123680256); -emit_32(1108123661); -emit_32(1099586129); -emit_32(1124132848); -emit_32(1109147648); -emit_32(1098137259); -emit_32(1123680256); -emit_32(1109147648); -emit_32(1099190030); -emit_32(1124132848); -emit_32(1110171661); -emit_32(1097207906); -emit_32(1123680256); -emit_32(1110171661); -emit_32(1098581751); -emit_32(1124132848); -emit_32(1111195648); -emit_32(1096797074); -emit_32(1123680256); -emit_32(1111195648); -emit_32(1097483053); -emit_32(1124132848); -emit_32(1112219661); -emit_32(1097544709); -emit_32(1123680256); -emit_32(1112219661); -emit_32(1097178022); -emit_32(1124132848); -emit_32(1113243648); -emit_32(1097976408); -emit_32(1123680256); -emit_32(1113243648); -emit_32(1096978688); -emit_32(1124132848); -emit_32(1114267661); -emit_32(1097506541); -emit_32(1123680256); -emit_32(1114267661); -emit_32(1097352610); -emit_32(1124132848); -emit_32(1115291648); -emit_32(1097510945); -emit_32(1123680256); -emit_32(1115291648); -emit_32(1097969906); -emit_32(1124132848); -emit_32(1116000263); -emit_32(1097837262); -emit_32(1123680256); -emit_32(1116000263); -emit_32(1098943509); -emit_32(1124132848); -emit_32(1116512256); -emit_32(1098359872); -emit_32(1123680256); -emit_32(1116512256); -emit_32(1099235380); -emit_32(1124132848); -emit_32(1117024263); -emit_32(1097957533); -emit_32(1123680256); -emit_32(1117024263); -emit_32(1098875037); -emit_32(1124132848); -emit_32(1117536256); -emit_32(1098416705); -emit_32(1123680256); -emit_32(1117536256); -emit_32(1098919916); -emit_32(1124132848); -emit_32(1118048263); -emit_32(1098948385); -emit_32(1123680256); -emit_32(1118048263); -emit_32(1099015127); -emit_32(1124132848); -emit_32(1118560256); -emit_32(1099890845); -emit_32(1123680256); -emit_32(1118560256); -emit_32(1100384410); -emit_32(1124132848); -emit_32(1119072263); -emit_32(1100416863); -emit_32(1123680256); -emit_32(1119072263); -emit_32(1100817786); -emit_32(1124132848); -emit_32(1119584256); -emit_32(1100910848); -emit_32(1123680256); -emit_32(1119584256); -emit_32(1101157682); -emit_32(1124132848); -emit_32(1120096263); -emit_32(1102712825); -emit_32(1123680256); -emit_32(1120096263); -emit_32(1102698670); -emit_32(1124132848); -emit_32(1120608322); -emit_32(1103789661); -emit_32(1123680256); -emit_32(1120608322); -emit_32(1104088662); -emit_32(1124132848); -emit_32(1121120289); -emit_32(1104607602); -emit_32(1123680256); -emit_32(1121120289); -emit_32(1104975548); -emit_32(1124132848); -emit_32(1121632256); -emit_32(1105587811); -emit_32(1123680256); -emit_32(1121632256); -emit_32(1105705671); -emit_32(1124132848); -emit_32(1122144223); -emit_32(1106213025); -emit_32(1123680256); -emit_32(1122144223); -emit_32(1106546629); -emit_32(1124132848); -emit_32(1122656322); -emit_32(1106606765); -emit_32(1123680256); -emit_32(1122656322); -emit_32(1107224271); -emit_32(1124132848); -emit_32(1123168289); -emit_32(1107406409); -emit_32(1123680256); -emit_32(1123168289); -emit_32(1107432990); -emit_32(1124132848); -emit_32(1123680256); -emit_32(1108017021); -emit_32(1123680256); -emit_32(1123680256); -emit_32(1107870823); -emit_32(1124132848); -emit_32(1124132848); -emit_32(1108642890); -emit_32(1123680256); -emit_32(1124132848); -emit_32(1108611197); -emit_32(1124132848); -emit_32(1124388897); -emit_32(1108976940); -emit_32(1123680256); -emit_32(1124388897); -emit_32(1109002394); -emit_32(1124132848); -emit_32(1124644880); -emit_32(1108915991); -emit_32(1123680256); -emit_32(1124644880); -emit_32(1109174020); -emit_32(1124132848); -emit_32(1124900864); -emit_32(1109069713); -emit_32(1123680256); -emit_32(1124900864); -emit_32(1109145131); -emit_32(1124132848); -emit_32(1125156848); -emit_32(1108852159); -emit_32(1123680256); -emit_32(1125156848); -emit_32(1109111053); -emit_32(1124132848); -emit_32(1125412897); -emit_32(1109018044); -emit_32(1123680256); -emit_32(1125412897); -emit_32(1108982156); -emit_32(1124132848); -emit_32(1125668880); -emit_32(1109032776); -emit_32(1123680256); -emit_32(1125668880); -emit_32(1109159733); -emit_32(1124132848); -emit_32(1125924864); -emit_32(1109297490); -emit_32(1123680256); -emit_32(1125924864); -emit_32(1109315342); -emit_32(1124132848); -emit_32(1126180848); -emit_32(1109331018); -emit_32(1123680256); -emit_32(1126180848); -emit_32(1109210091); -emit_32(1124132848); -emit_32(1126436897); -emit_32(1109010285); -emit_32(1123680256); -emit_32(1126436897); -emit_32(1108929885); -emit_32(1124132848); -emit_32(1126692880); -emit_32(1108437919); -emit_32(1123680256); -emit_32(1126692880); -emit_32(1108541256); -emit_32(1124132848); -emit_32(1126948864); -emit_32(1108395583); -emit_32(1123680256); -emit_32(1126948864); -emit_32(1108339091); -emit_32(1124132848); -emit_32(1127204848); -emit_32(1108230432); -emit_32(1123680256); -emit_32(1127204848); -emit_32(1108284853); -emit_32(1124132848); -emit_32(1127460897); -emit_32(1107992091); -emit_32(1123680256); -emit_32(1127460897); -emit_32(1108246449); -emit_32(1124132848); -emit_32(1127716880); -emit_32(1107862408); -emit_32(1123680256); -emit_32(1127716880); -emit_32(1108208727); -emit_32(1124132848); -emit_32(1127972864); -emit_32(1107704336); -emit_32(1123680256); -emit_32(1127972864); -emit_32(1108242648); -emit_32(1124132848); -emit_32(1128228848); -emit_32(1107562018); -emit_32(1123680256); -emit_32(1128228848); -emit_32(1107828539); -emit_32(1124132848); -emit_32(1128484897); -emit_32(1106914679); -emit_32(1123680256); -emit_32(1128484897); -emit_32(1107302207); -emit_32(1124132848); -emit_32(1128740880); -emit_32(1105855984); -emit_32(1123680256); -emit_32(1128740880); -emit_32(1106125311); -emit_32(1124132848); -emit_32(1128996864); -emit_32(1104645194); -emit_32(1123680256); -emit_32(1128996864); -emit_32(1104882853); -emit_32(1124132848); -emit_32(1129252848); -emit_32(1103670490); -emit_32(1123680256); -emit_32(1129252848); -emit_32(1103712328); -emit_32(1124132848); -emit_32(1129508897); -emit_32(1102923956); -emit_32(1123680256); -emit_32(1129508897); -emit_32(1103248228); -emit_32(1124132848); -emit_32(1129764880); -emit_32(1102092435); -emit_32(1123680256); -emit_32(1129764880); -emit_32(1102281808); -emit_32(1124132848); -emit_32(1130020864); -emit_32(1101172887); -emit_32(1123680256); -emit_32(1130020864); -emit_32(1101935621); -emit_32(1124132848); -emit_32(1130276848); -emit_32(1101025876); -emit_32(1123680256); -emit_32(1130276848); -emit_32(1100815060); -emit_32(1124132848); -emit_32(1130532897); -emit_32(1101065722); -emit_32(1123680256); -emit_32(1130532897); -emit_32(1100889457); -emit_32(1124132848); -emit_32(1130788880); -emit_32(1101130577); -emit_32(1123680256); -emit_32(1130788880); -emit_32(1101023098); -emit_32(1124132848); -emit_32(1131044864); -emit_32(1100802530); -emit_32(1123680256); -emit_32(1131044864); -emit_32(1100560938); -emit_32(1124132848); -emit_32(1131300848); -emit_32(1100276983); -emit_32(1123680256); -emit_32(1131300848); -emit_32(1099884397); -emit_32(1124132848); -emit_32(1131556897); -emit_32(1099626499); -emit_32(1123680256); -emit_32(1131556897); -emit_32(1099776918); -emit_32(1124132848); -emit_32(1131812880); -emit_32(1099785830); -emit_32(1123680256); -emit_32(1131812880); -emit_32(1099406246); -emit_32(1124132848); -emit_32(1132068864); -emit_32(1099641599); -emit_32(1123680256); -emit_32(1132068864); -emit_32(1099062890); -emit_32(1124132848); -emit_32(1081737216); -emit_32(1100235512); -emit_32(1123168289); -emit_32(1090125824); -emit_32(1100861512); -emit_32(1123168289); -emit_32(1094418484); -emit_32(1101523373); -emit_32(1123168289); -emit_32(1098514432); -emit_32(1102177632); -emit_32(1123168289); -emit_32(1100759066); -emit_32(1102223140); -emit_32(1123168289); -emit_32(1102807040); -emit_32(1101084754); -emit_32(1123168289); -emit_32(1104855066); -emit_32(1099931897); -emit_32(1123168289); -emit_32(1106903040); -emit_32(1099771150); -emit_32(1123168289); -emit_32(1108123661); -emit_32(1099034001); -emit_32(1123168289); -emit_32(1109147648); -emit_32(1097525730); -emit_32(1123168289); -emit_32(1110171661); -emit_32(1097329331); -emit_32(1123168289); -emit_32(1111195648); -emit_32(1097895877); -emit_32(1123168289); -emit_32(1112219661); -emit_32(1098267283); -emit_32(1123168289); -emit_32(1113243648); -emit_32(1098019609); -emit_32(1123168289); -emit_32(1114267661); -emit_32(1097783994); -emit_32(1123168289); -emit_32(1115291648); -emit_32(1097984587); -emit_32(1123168289); -emit_32(1116000263); -emit_32(1098022755); -emit_32(1123168289); -emit_32(1116512256); -emit_32(1098026110); -emit_32(1123168289); -emit_32(1117024263); -emit_32(1097933206); -emit_32(1123168289); -emit_32(1117536256); -emit_32(1098931503); -emit_32(1123168289); -emit_32(1118048263); -emit_32(1099231973); -emit_32(1123168289); -emit_32(1118560256); -emit_32(1099649463); -emit_32(1123168289); -emit_32(1119072263); -emit_32(1100347343); -emit_32(1123168289); -emit_32(1119584256); -emit_32(1100400558); -emit_32(1123168289); -emit_32(1120096263); -emit_32(1101890794); -emit_32(1123168289); -emit_32(1120608322); -emit_32(1103399223); -emit_32(1123168289); -emit_32(1121120289); -emit_32(1104023703); -emit_32(1123168289); -emit_32(1121632256); -emit_32(1104903930); -emit_32(1123168289); -emit_32(1122144223); -emit_32(1105787670); -emit_32(1123168289); -emit_32(1122656322); -emit_32(1106319507); -emit_32(1123168289); -emit_32(1123168289); -emit_32(1107324096); -emit_32(1123168289); -emit_32(1123680256); -emit_32(1107997229); -emit_32(1123168289); -emit_32(1124132848); -emit_32(1108634344); -emit_32(1123168289); -emit_32(1124388897); -emit_32(1108819601); -emit_32(1123168289); -emit_32(1124644880); -emit_32(1108814096); -emit_32(1123168289); -emit_32(1124900864); -emit_32(1108757106); -emit_32(1123168289); -emit_32(1125156848); -emit_32(1108647897); -emit_32(1123168289); -emit_32(1125412897); -emit_32(1108920920); -emit_32(1123168289); -emit_32(1125668880); -emit_32(1109111000); -emit_32(1123168289); -emit_32(1125924864); -emit_32(1109475302); -emit_32(1123168289); -emit_32(1126180848); -emit_32(1109573422); -emit_32(1123168289); -emit_32(1126436897); -emit_32(1109272140); -emit_32(1123168289); -emit_32(1126692880); -emit_32(1108874101); -emit_32(1123168289); -emit_32(1126948864); -emit_32(1108464710); -emit_32(1123168289); -emit_32(1127204848); -emit_32(1108148460); -emit_32(1123168289); -emit_32(1127460897); -emit_32(1107996416); -emit_32(1123168289); -emit_32(1127716880); -emit_32(1107704781); -emit_32(1123168289); -emit_32(1127972864); -emit_32(1107621603); -emit_32(1123168289); -emit_32(1128228848); -emit_32(1107169798); -emit_32(1123168289); -emit_32(1128484897); -emit_32(1106434222); -emit_32(1123168289); -emit_32(1128740880); -emit_32(1105659953); -emit_32(1123168289); -emit_32(1128996864); -emit_32(1104548410); -emit_32(1123168289); -emit_32(1129252848); -emit_32(1103654289); -emit_32(1123168289); -emit_32(1129508897); -emit_32(1102602673); -emit_32(1123168289); -emit_32(1129764880); -emit_32(1101366401); -emit_32(1123168289); -emit_32(1130020864); -emit_32(1100673240); -emit_32(1123168289); -emit_32(1130276848); -emit_32(1100637012); -emit_32(1123168289); -emit_32(1130532897); -emit_32(1101126015); -emit_32(1123168289); -emit_32(1130788880); -emit_32(1101170999); -emit_32(1123168289); -emit_32(1131044864); -emit_32(1101134194); -emit_32(1123168289); -emit_32(1131300848); -emit_32(1101200569); -emit_32(1123168289); -emit_32(1131556897); -emit_32(1100148952); -emit_32(1123168289); -emit_32(1131812880); -emit_32(1099244241); -emit_32(1123168289); -emit_32(1132068864); -emit_32(1099746247); -emit_32(1123168289); -emit_32(1081737216); -emit_32(1100438045); -emit_32(1122656322); -emit_32(1090125824); -emit_32(1100591871); -emit_32(1122656322); -emit_32(1094418484); -emit_32(1101406352); -emit_32(1122656322); -emit_32(1098514432); -emit_32(1101309359); -emit_32(1122656322); -emit_32(1100759066); -emit_32(1101169112); -emit_32(1122656322); -emit_32(1102807040); -emit_32(1100305872); -emit_32(1122656322); -emit_32(1104855066); -emit_32(1099701682); -emit_32(1122656322); -emit_32(1106903040); -emit_32(1099474561); -emit_32(1122656322); -emit_32(1108123661); -emit_32(1098570950); -emit_32(1122656322); -emit_32(1109147648); -emit_32(1097605421); -emit_32(1122656322); -emit_32(1110171661); -emit_32(1097274386); -emit_32(1122656322); -emit_32(1111195648); -emit_32(1097648413); -emit_32(1122656322); -emit_32(1112219661); -emit_32(1097935199); -emit_32(1122656322); -emit_32(1113243648); -emit_32(1097655229); -emit_32(1122656322); -emit_32(1114267661); -emit_32(1098651795); -emit_32(1122656322); -emit_32(1115291648); -emit_32(1099066193); -emit_32(1122656322); -emit_32(1116000263); -emit_32(1098931189); -emit_32(1122656322); -emit_32(1116512256); -emit_32(1098814849); -emit_32(1122656322); -emit_32(1117024263); -emit_32(1098993264); -emit_32(1122656322); -emit_32(1117536256); -emit_32(1099606157); -emit_32(1122656322); -emit_32(1118048263); -emit_32(1099571344); -emit_32(1122656322); -emit_32(1118560256); -emit_32(1099949408); -emit_32(1122656322); -emit_32(1119072263); -emit_32(1100115817); -emit_32(1122656322); -emit_32(1119584256); -emit_32(1100095947); -emit_32(1122656322); -emit_32(1120096263); -emit_32(1100761740); -emit_32(1122656322); -emit_32(1120608322); -emit_32(1101924191); -emit_32(1122656322); -emit_32(1121120289); -emit_32(1102920810); -emit_32(1122656322); -emit_32(1121632256); -emit_32(1103899499); -emit_32(1122656322); -emit_32(1122144223); -emit_32(1105260918); -emit_32(1122656322); -emit_32(1122656322); -emit_32(1106034347); -emit_32(1122656322); -emit_32(1123168289); -emit_32(1107198004); -emit_32(1122656322); -emit_32(1123680256); -emit_32(1107826495); -emit_32(1122656322); -emit_32(1124132848); -emit_32(1108446937); -emit_32(1122656322); -emit_32(1124388897); -emit_32(1108618065); -emit_32(1122656322); -emit_32(1124644880); -emit_32(1108561835); -emit_32(1122656322); -emit_32(1124900864); -emit_32(1108406410); -emit_32(1122656322); -emit_32(1125156848); -emit_32(1108576174); -emit_32(1122656322); -emit_32(1125412897); -emit_32(1109301448); -emit_32(1122656322); -emit_32(1125668880); -emit_32(1109829249); -emit_32(1122656322); -emit_32(1125924864); -emit_32(1110051154); -emit_32(1122656322); -emit_32(1126180848); -emit_32(1110198478); -emit_32(1122656322); -emit_32(1126436897); -emit_32(1109858268); -emit_32(1122656322); -emit_32(1126692880); -emit_32(1109550301); -emit_32(1122656322); -emit_32(1126948864); -emit_32(1108917669); -emit_32(1122656322); -emit_32(1127204848); -emit_32(1108613005); -emit_32(1122656322); -emit_32(1127460897); -emit_32(1108306375); -emit_32(1122656322); -emit_32(1127716880); -emit_32(1107971382); -emit_32(1122656322); -emit_32(1127972864); -emit_32(1107731022); -emit_32(1122656322); -emit_32(1128228848); -emit_32(1107436241); -emit_32(1122656322); -emit_32(1128484897); -emit_32(1106805103); -emit_32(1122656322); -emit_32(1128740880); -emit_32(1105736132); -emit_32(1122656322); -emit_32(1128996864); -emit_32(1104687818); -emit_32(1122656322); -emit_32(1129252848); -emit_32(1103709969); -emit_32(1122656322); -emit_32(1129508897); -emit_32(1102382734); -emit_32(1122656322); -emit_32(1129764880); -emit_32(1101330121); -emit_32(1122656322); -emit_32(1130020864); -emit_32(1100614520); -emit_32(1122656322); -emit_32(1130276848); -emit_32(1100389233); -emit_32(1122656322); -emit_32(1130532897); -emit_32(1100597690); -emit_32(1122656322); -emit_32(1130788880); -emit_32(1101237636); -emit_32(1122656322); -emit_32(1131044864); -emit_32(1101286500); -emit_32(1122656322); -emit_32(1131300848); -emit_32(1101166386); -emit_32(1122656322); -emit_32(1131556897); -emit_32(1100711041); -emit_32(1122656322); -emit_32(1131812880); -emit_32(1099946053); -emit_32(1122656322); -emit_32(1132068864); -emit_32(1099609932); -emit_32(1122656322); -emit_32(1081737216); -emit_32(1100139620); -emit_32(1122144223); -emit_32(1090125824); -emit_32(1100323697); -emit_32(1122144223); -emit_32(1094418484); -emit_32(1100674708); -emit_32(1122144223); -emit_32(1098514432); -emit_32(1100753299); -emit_32(1122144223); -emit_32(1100759066); -emit_32(1100255278); -emit_32(1122144223); -emit_32(1102807040); -emit_32(1099783052); -emit_32(1122144223); -emit_32(1104855066); -emit_32(1099327131); -emit_32(1122144223); -emit_32(1106903040); -emit_32(1099190764); -emit_32(1122144223); -emit_32(1108123661); -emit_32(1098756443); -emit_32(1122144223); -emit_32(1109147648); -emit_32(1097994967); -emit_32(1122144223); -emit_32(1110171661); -emit_32(1098760743); -emit_32(1122144223); -emit_32(1111195648); -emit_32(1099136762); -emit_32(1122144223); -emit_32(1112219661); -emit_32(1099063729); -emit_32(1122144223); -emit_32(1113243648); -emit_32(1099278634); -emit_32(1122144223); -emit_32(1114267661); -emit_32(1099336883); -emit_32(1122144223); -emit_32(1115291648); -emit_32(1099511261); -emit_32(1122144223); -emit_32(1116000263); -emit_32(1099185311); -emit_32(1122144223); -emit_32(1116512256); -emit_32(1098779931); -emit_32(1122144223); -emit_32(1117024263); -emit_32(1099229561); -emit_32(1122144223); -emit_32(1117536256); -emit_32(1099456787); -emit_32(1122144223); -emit_32(1118048263); -emit_32(1099608673); -emit_32(1122144223); -emit_32(1118560256); -emit_32(1099933417); -emit_32(1122144223); -emit_32(1119072263); -emit_32(1100161640); -emit_32(1122144223); -emit_32(1119584256); -emit_32(1100494039); -emit_32(1122144223); -emit_32(1120096263); -emit_32(1100626841); -emit_32(1122144223); -emit_32(1120608322); -emit_32(1101085173); -emit_32(1122144223); -emit_32(1121120289); -emit_32(1102206573); -emit_32(1122144223); -emit_32(1121632256); -emit_32(1103460303); -emit_32(1122144223); -emit_32(1122144223); -emit_32(1104032825); -emit_32(1122144223); -emit_32(1122656322); -emit_32(1105660740); -emit_32(1122144223); -emit_32(1123168289); -emit_32(1106883065); -emit_32(1122144223); -emit_32(1123680256); -emit_32(1107680480); -emit_32(1122144223); -emit_32(1124132848); -emit_32(1108110344); -emit_32(1122144223); -emit_32(1124388897); -emit_32(1108454854); -emit_32(1122144223); -emit_32(1124644880); -emit_32(1108686065); -emit_32(1122144223); -emit_32(1124900864); -emit_32(1108654057); -emit_32(1122144223); -emit_32(1125156848); -emit_32(1108922519); -emit_32(1122144223); -emit_32(1125412897); -emit_32(1109770450); -emit_32(1122144223); -emit_32(1125668880); -emit_32(1110434487); -emit_32(1122144223); -emit_32(1125924864); -emit_32(1110705884); -emit_32(1122144223); -emit_32(1126180848); -emit_32(1110743214); -emit_32(1122144223); -emit_32(1126436897); -emit_32(1110390656); -emit_32(1122144223); -emit_32(1126692880); -emit_32(1110053093); -emit_32(1122144223); -emit_32(1126948864); -emit_32(1109488042); -emit_32(1122144223); -emit_32(1127204848); -emit_32(1108960713); -emit_32(1122144223); -emit_32(1127460897); -emit_32(1108725701); -emit_32(1122144223); -emit_32(1127716880); -emit_32(1108233840); -emit_32(1122144223); -emit_32(1127972864); -emit_32(1107884455); -emit_32(1122144223); -emit_32(1128228848); -emit_32(1107301971); -emit_32(1122144223); -emit_32(1128484897); -emit_32(1106353639); -emit_32(1122144223); -emit_32(1128740880); -emit_32(1105631956); -emit_32(1122144223); -emit_32(1128996864); -emit_32(1104783920); -emit_32(1122144223); -emit_32(1129252848); -emit_32(1103622046); -emit_32(1122144223); -emit_32(1129508897); -emit_32(1102332926); -emit_32(1122144223); -emit_32(1129764880); -emit_32(1100887622); -emit_32(1122144223); -emit_32(1130020864); -emit_32(1100248410); -emit_32(1122144223); -emit_32(1130276848); -emit_32(1100033242); -emit_32(1122144223); -emit_32(1130532897); -emit_32(1099938346); -emit_32(1122144223); -emit_32(1130788880); -emit_32(1100585370); -emit_32(1122144223); -emit_32(1131044864); -emit_32(1101043650); -emit_32(1122144223); -emit_32(1131300848); -emit_32(1101065565); -emit_32(1122144223); -emit_32(1131556897); -emit_32(1100500540); -emit_32(1122144223); -emit_32(1131812880); -emit_32(1100135373); -emit_32(1122144223); -emit_32(1132068864); -emit_32(1100354840); -emit_32(1122144223); -emit_32(1081737216); -emit_32(1099957115); -emit_32(1121632256); -emit_32(1090125824); -emit_32(1100037593); -emit_32(1121632256); -emit_32(1094418484); -emit_32(1100062445); -emit_32(1121632256); -emit_32(1098514432); -emit_32(1100063284); -emit_32(1121632256); -emit_32(1100759066); -emit_32(1099841195); -emit_32(1121632256); -emit_32(1102807040); -emit_32(1099713898); -emit_32(1121632256); -emit_32(1104855066); -emit_32(1099359951); -emit_32(1121632256); -emit_32(1106903040); -emit_32(1098837289); -emit_32(1121632256); -emit_32(1108123661); -emit_32(1098060399); -emit_32(1121632256); -emit_32(1109147648); -emit_32(1098949381); -emit_32(1121632256); -emit_32(1110171661); -emit_32(1099007001); -emit_32(1121632256); -emit_32(1111195648); -emit_32(1098883950); -emit_32(1121632256); -emit_32(1112219661); -emit_32(1099407242); -emit_32(1121632256); -emit_32(1113243648); -emit_32(1099479174); -emit_32(1121632256); -emit_32(1114267661); -emit_32(1099627076); -emit_32(1121632256); -emit_32(1115291648); -emit_32(1099212207); -emit_32(1121632256); -emit_32(1116000263); -emit_32(1099332898); -emit_32(1121632256); -emit_32(1116512256); -emit_32(1099391985); -emit_32(1121632256); -emit_32(1117024263); -emit_32(1099349203); -emit_32(1121632256); -emit_32(1117536256); -emit_32(1099452960); -emit_32(1121632256); -emit_32(1118048263); -emit_32(1099360476); -emit_32(1121632256); -emit_32(1118560256); -emit_32(1099645374); -emit_32(1121632256); -emit_32(1119072263); -emit_32(1099926864); -emit_32(1121632256); -emit_32(1119584256); -emit_32(1100231737); -emit_32(1121632256); -emit_32(1120096263); -emit_32(1100104545); -emit_32(1121632256); -emit_32(1120608322); -emit_32(1100531630); -emit_32(1121632256); -emit_32(1121120289); -emit_32(1101229824); -emit_32(1121632256); -emit_32(1121632256); -emit_32(1102138835); -emit_32(1121632256); -emit_32(1122144223); -emit_32(1103981340); -emit_32(1121632256); -emit_32(1122656322); -emit_32(1105126595); -emit_32(1121632256); -emit_32(1123168289); -emit_32(1106590722); -emit_32(1121632256); -emit_32(1123680256); -emit_32(1107669182); -emit_32(1121632256); -emit_32(1124132848); -emit_32(1107932296); -emit_32(1121632256); -emit_32(1124388897); -emit_32(1108574129); -emit_32(1121632256); -emit_32(1124644880); -emit_32(1108726278); -emit_32(1121632256); -emit_32(1124900864); -emit_32(1108737393); -emit_32(1121632256); -emit_32(1125156848); -emit_32(1109413095); -emit_32(1121632256); -emit_32(1125412897); -emit_32(1110114933); -emit_32(1121632256); -emit_32(1125668880); -emit_32(1110645303); -emit_32(1121632256); -emit_32(1125924864); -emit_32(1111013117); -emit_32(1121632256); -emit_32(1126180848); -emit_32(1111064655); -emit_32(1121632256); -emit_32(1126436897); -emit_32(1110758890); -emit_32(1121632256); -emit_32(1126692880); -emit_32(1110376107); -emit_32(1121632256); -emit_32(1126948864); -emit_32(1109822407); -emit_32(1121632256); -emit_32(1127204848); -emit_32(1109326797); -emit_32(1121632256); -emit_32(1127460897); -emit_32(1108601838); -emit_32(1121632256); -emit_32(1127716880); -emit_32(1108258010); -emit_32(1121632256); -emit_32(1127972864); -emit_32(1108088245); -emit_32(1121632256); -emit_32(1128228848); -emit_32(1107411154); -emit_32(1121632256); -emit_32(1128484897); -emit_32(1106040377); -emit_32(1121632256); -emit_32(1128740880); -emit_32(1105294629); -emit_32(1121632256); -emit_32(1128996864); -emit_32(1104278664); -emit_32(1121632256); -emit_32(1129252848); -emit_32(1103177554); -emit_32(1121632256); -emit_32(1129508897); -emit_32(1102109580); -emit_32(1121632256); -emit_32(1129764880); -emit_32(1101025824); -emit_32(1121632256); -emit_32(1130020864); -emit_32(1099990984); -emit_32(1121632256); -emit_32(1130276848); -emit_32(1099361681); -emit_32(1121632256); -emit_32(1130532897); -emit_32(1099399011); -emit_32(1121632256); -emit_32(1130788880); -emit_32(1099424229); -emit_32(1121632256); -emit_32(1131044864); -emit_32(1099786407); -emit_32(1121632256); -emit_32(1131300848); -emit_32(1100148585); -emit_32(1121632256); -emit_32(1131556897); -emit_32(1100174118); -emit_32(1121632256); -emit_32(1131812880); -emit_32(1100070047); -emit_32(1121632256); -emit_32(1132068864); -emit_32(1100267704); -emit_32(1121632256); -emit_32(1081737216); -emit_32(1099935672); -emit_32(1121120289); -emit_32(1090125824); -emit_32(1100185285); -emit_32(1121120289); -emit_32(1094418484); -emit_32(1100187225); -emit_32(1121120289); -emit_32(1098514432); -emit_32(1099887280); -emit_32(1121120289); -emit_32(1100759066); -emit_32(1099826148); -emit_32(1121120289); -emit_32(1102807040); -emit_32(1099732563); -emit_32(1121120289); -emit_32(1104855066); -emit_32(1099085749); -emit_32(1121120289); -emit_32(1106903040); -emit_32(1098762735); -emit_32(1121120289); -emit_32(1108123661); -emit_32(1098970248); -emit_32(1121120289); -emit_32(1109147648); -emit_32(1099373740); -emit_32(1121120289); -emit_32(1110171661); -emit_32(1099054658); -emit_32(1121120289); -emit_32(1111195648); -emit_32(1098747635); -emit_32(1121120289); -emit_32(1112219661); -emit_32(1099059272); -emit_32(1121120289); -emit_32(1113243648); -emit_32(1099057280); -emit_32(1121120289); -emit_32(1114267661); -emit_32(1099293943); -emit_32(1121120289); -emit_32(1115291648); -emit_32(1099644535); -emit_32(1121120289); -emit_32(1116000263); -emit_32(1099369441); -emit_32(1121120289); -emit_32(1116512256); -emit_32(1099598817); -emit_32(1121120289); -emit_32(1117024263); -emit_32(1099807641); -emit_32(1121120289); -emit_32(1117536256); -emit_32(1099466382); -emit_32(1121120289); -emit_32(1118048263); -emit_32(1099290640); -emit_32(1121120289); -emit_32(1118560256); -emit_32(1099113641); -emit_32(1121120289); -emit_32(1119072263); -emit_32(1099247124); -emit_32(1121120289); -emit_32(1119584256); -emit_32(1099832754); -emit_32(1121120289); -emit_32(1120096263); -emit_32(1100177054); -emit_32(1121120289); -emit_32(1120608322); -emit_32(1100171549); -emit_32(1121120289); -emit_32(1121120289); -emit_32(1100677172); -emit_32(1121120289); -emit_32(1121632256); -emit_32(1101971063); -emit_32(1121120289); -emit_32(1122144223); -emit_32(1103633737); -emit_32(1121120289); -emit_32(1122656322); -emit_32(1104631195); -emit_32(1121120289); -emit_32(1123168289); -emit_32(1106163951); -emit_32(1121120289); -emit_32(1123680256); -emit_32(1107425676); -emit_32(1121120289); -emit_32(1124132848); -emit_32(1107927394); -emit_32(1121120289); -emit_32(1124388897); -emit_32(1108148145); -emit_32(1121120289); -emit_32(1124644880); -emit_32(1108470268); -emit_32(1121120289); -emit_32(1124900864); -emit_32(1108816246); -emit_32(1121120289); -emit_32(1125156848); -emit_32(1109543145); -emit_32(1121120289); -emit_32(1125412897); -emit_32(1110276781); -emit_32(1121120289); -emit_32(1125668880); -emit_32(1110909649); -emit_32(1121120289); -emit_32(1125924864); -emit_32(1111224091); -emit_32(1121120289); -emit_32(1126180848); -emit_32(1111301135); -emit_32(1121120289); -emit_32(1126436897); -emit_32(1111167992); -emit_32(1121120289); -emit_32(1126692880); -emit_32(1110709345); -emit_32(1121120289); -emit_32(1126948864); -emit_32(1110071837); -emit_32(1121120289); -emit_32(1127204848); -emit_32(1109390262); -emit_32(1121120289); -emit_32(1127460897); -emit_32(1108886238); -emit_32(1121120289); -emit_32(1127716880); -emit_32(1108757814); -emit_32(1121120289); -emit_32(1127972864); -emit_32(1108248258); -emit_32(1121120289); -emit_32(1128228848); -emit_32(1107404862); -emit_32(1121120289); -emit_32(1128484897); -emit_32(1106003467); -emit_32(1121120289); -emit_32(1128740880); -emit_32(1104821354); -emit_32(1121120289); -emit_32(1128996864); -emit_32(1104184607); -emit_32(1121120289); -emit_32(1129252848); -emit_32(1103554570); -emit_32(1121120289); -emit_32(1129508897); -emit_32(1102588989); -emit_32(1121120289); -emit_32(1129764880); -emit_32(1101617378); -emit_32(1121120289); -emit_32(1130020864); -emit_32(1100444598); -emit_32(1121120289); -emit_32(1130276848); -emit_32(1099799619); -emit_32(1121120289); -emit_32(1130532897); -emit_32(1099403939); -emit_32(1121120289); -emit_32(1130788880); -emit_32(1099507276); -emit_32(1121120289); -emit_32(1131044864); -emit_32(1099782737); -emit_32(1121120289); -emit_32(1131300848); -emit_32(1099916535); -emit_32(1121120289); -emit_32(1131556897); -emit_32(1099956486); -emit_32(1121120289); -emit_32(1131812880); -emit_32(1100280182); -emit_32(1121120289); -emit_32(1132068864); -emit_32(1100594020); -emit_32(1121120289); -emit_32(1081737216); -emit_32(1099802817); -emit_32(1120608322); -emit_32(1090125824); -emit_32(1100171706); -emit_32(1120608322); -emit_32(1094418484); -emit_32(1099951820); -emit_32(1120608322); -emit_32(1098514432); -emit_32(1100236666); -emit_32(1120608322); -emit_32(1100759066); -emit_32(1100302621); -emit_32(1120608322); -emit_32(1102807040); -emit_32(1099644797); -emit_32(1120608322); -emit_32(1104855066); -emit_32(1099555458); -emit_32(1120608322); -emit_32(1106903040); -emit_32(1099452645); -emit_32(1120608322); -emit_32(1108123661); -emit_32(1099951138); -emit_32(1120608322); -emit_32(1109147648); -emit_32(1100092696); -emit_32(1120608322); -emit_32(1110171661); -emit_32(1099905735); -emit_32(1120608322); -emit_32(1111195648); -emit_32(1099555563); -emit_32(1120608322); -emit_32(1112219661); -emit_32(1098964743); -emit_32(1120608322); -emit_32(1113243648); -emit_32(1099224475); -emit_32(1120608322); -emit_32(1114267661); -emit_32(1099204185); -emit_32(1120608322); -emit_32(1115291648); -emit_32(1099361419); -emit_32(1120608322); -emit_32(1116000263); -emit_32(1099438385); -emit_32(1120608322); -emit_32(1116512256); -emit_32(1099693294); -emit_32(1120608322); -emit_32(1117024263); -emit_32(1099966448); -emit_32(1120608322); -emit_32(1117536256); -emit_32(1099611085); -emit_32(1120608322); -emit_32(1118048263); -emit_32(1099352087); -emit_32(1120608322); -emit_32(1118560256); -emit_32(1098341627); -emit_32(1120608322); -emit_32(1119072263); -emit_32(1098488322); -emit_32(1120608322); -emit_32(1119584256); -emit_32(1099373688); -emit_32(1120608322); -emit_32(1120096263); -emit_32(1099586286); -emit_32(1120608322); -emit_32(1120608322); -emit_32(1099611819); -emit_32(1120608322); -emit_32(1121120289); -emit_32(1100077125); -emit_32(1120608322); -emit_32(1121632256); -emit_32(1101296094); -emit_32(1120608322); -emit_32(1122144223); -emit_32(1102346872); -emit_32(1120608322); -emit_32(1122656322); -emit_32(1103678512); -emit_32(1120608322); -emit_32(1123168289); -emit_32(1105306478); -emit_32(1120608322); -emit_32(1123680256); -emit_32(1106488852); -emit_32(1120608322); -emit_32(1124132848); -emit_32(1107446438); -emit_32(1120608322); -emit_32(1124388897); -emit_32(1107966506); -emit_32(1120608322); -emit_32(1124644880); -emit_32(1108466205); -emit_32(1120608322); -emit_32(1124900864); -emit_32(1108823481); -emit_32(1120608322); -emit_32(1125156848); -emit_32(1109507624); -emit_32(1120608322); -emit_32(1125412897); -emit_32(1110351387); -emit_32(1120608322); -emit_32(1125668880); -emit_32(1111019749); -emit_32(1120608322); -emit_32(1125924864); -emit_32(1111329971); -emit_32(1120608322); -emit_32(1126180848); -emit_32(1111365308); -emit_32(1120608322); -emit_32(1126436897); -emit_32(1111184166); -emit_32(1120608322); -emit_32(1126692880); -emit_32(1110574760); -emit_32(1120608322); -emit_32(1126948864); -emit_32(1110380328); -emit_32(1120608322); -emit_32(1127204848); -emit_32(1109912165); -emit_32(1120608322); -emit_32(1127460897); -emit_32(1109599191); -emit_32(1120608322); -emit_32(1127716880); -emit_32(1109069372); -emit_32(1120608322); -emit_32(1127972864); -emit_32(1108386487); -emit_32(1120608322); -emit_32(1128228848); -emit_32(1107668422); -emit_32(1120608322); -emit_32(1128484897); -emit_32(1106120173); -emit_32(1120608322); -emit_32(1128740880); -emit_32(1104797657); -emit_32(1120608322); -emit_32(1128996864); -emit_32(1104352117); -emit_32(1120608322); -emit_32(1129252848); -emit_32(1103791338); -emit_32(1120608322); -emit_32(1129508897); -emit_32(1102834355); -emit_32(1120608322); -emit_32(1129764880); -emit_32(1102173438); -emit_32(1120608322); -emit_32(1130020864); -emit_32(1101005534); -emit_32(1120608322); -emit_32(1130276848); -emit_32(1100530582); -emit_32(1120608322); -emit_32(1130532897); -emit_32(1099941020); -emit_32(1120608322); -emit_32(1130788880); -emit_32(1099395393); -emit_32(1120608322); -emit_32(1131044864); -emit_32(1099621676); -emit_32(1120608322); -emit_32(1131300848); -emit_32(1099449605); -emit_32(1120608322); -emit_32(1131556897); -emit_32(1099506595); -emit_32(1120608322); -emit_32(1131812880); -emit_32(1100131336); -emit_32(1120608322); -emit_32(1132068864); -emit_32(1100624377); -emit_32(1120608322); -emit_32(1081737216); -emit_32(1099965451); -emit_32(1120096263); -emit_32(1090125824); -emit_32(1100056678); -emit_32(1120096263); -emit_32(1094418484); -emit_32(1099809423); -emit_32(1120096263); -emit_32(1098514432); -emit_32(1100136789); -emit_32(1120096263); -emit_32(1100759066); -emit_32(1100328573); -emit_32(1120096263); -emit_32(1102807040); -emit_32(1099649149); -emit_32(1120096263); -emit_32(1104855066); -emit_32(1099960680); -emit_32(1120096263); -emit_32(1106903040); -emit_32(1100214383); -emit_32(1120096263); -emit_32(1108123661); -emit_32(1100707214); -emit_32(1120096263); -emit_32(1109147648); -emit_32(1100899838); -emit_32(1120096263); -emit_32(1110171661); -emit_32(1100765934); -emit_32(1120096263); -emit_32(1111195648); -emit_32(1100769552); -emit_32(1120096263); -emit_32(1112219661); -emit_32(1099924609); -emit_32(1120096263); -emit_32(1113243648); -emit_32(1099242301); -emit_32(1120096263); -emit_32(1114267661); -emit_32(1098940101); -emit_32(1120096263); -emit_32(1115291648); -emit_32(1099295726); -emit_32(1120096263); -emit_32(1116000263); -emit_32(1099408343); -emit_32(1120096263); -emit_32(1116512256); -emit_32(1099741895); -emit_32(1120096263); -emit_32(1117024263); -emit_32(1099493854); -emit_32(1120096263); -emit_32(1117536256); -emit_32(1099382810); -emit_32(1120096263); -emit_32(1118048263); -emit_32(1099116734); -emit_32(1120096263); -emit_32(1118560256); -emit_32(1098839491); -emit_32(1120096263); -emit_32(1119072263); -emit_32(1098942461); -emit_32(1120096263); -emit_32(1119584256); -emit_32(1099008626); -emit_32(1120096263); -emit_32(1120096263); -emit_32(1099170002); -emit_32(1120096263); -emit_32(1120608322); -emit_32(1099494064); -emit_32(1120096263); -emit_32(1121120289); -emit_32(1099581830); -emit_32(1120096263); -emit_32(1121632256); -emit_32(1100481875); -emit_32(1120096263); -emit_32(1122144223); -emit_32(1101530032); -emit_32(1120096263); -emit_32(1122656322); -emit_32(1102909853); -emit_32(1120096263); -emit_32(1123168289); -emit_32(1104403812); -emit_32(1120096263); -emit_32(1123680256); -emit_32(1105884611); -emit_32(1120096263); -emit_32(1124132848); -emit_32(1107445731); -emit_32(1120096263); -emit_32(1124388897); -emit_32(1107970254); -emit_32(1120096263); -emit_32(1124644880); -emit_32(1108388505); -emit_32(1120096263); -emit_32(1124900864); -emit_32(1108761877); -emit_32(1120096263); -emit_32(1125156848); -emit_32(1109478133); -emit_32(1120096263); -emit_32(1125412897); -emit_32(1110090973); -emit_32(1120096263); -emit_32(1125668880); -emit_32(1110851033); -emit_32(1120096263); -emit_32(1125924864); -emit_32(1111411497); -emit_32(1120096263); -emit_32(1126180848); -emit_32(1111336655); -emit_32(1120096263); -emit_32(1126436897); -emit_32(1111269415); -emit_32(1120096263); -emit_32(1126692880); -emit_32(1110784292); -emit_32(1120096263); -emit_32(1126948864); -emit_32(1110653508); -emit_32(1120096263); -emit_32(1127204848); -emit_32(1110359330); -emit_32(1120096263); -emit_32(1127460897); -emit_32(1109834623); -emit_32(1120096263); -emit_32(1127716880); -emit_32(1109238009); -emit_32(1120096263); -emit_32(1127972864); -emit_32(1108505212); -emit_32(1120096263); -emit_32(1128228848); -emit_32(1107662209); -emit_32(1120096263); -emit_32(1128484897); -emit_32(1106214755); -emit_32(1120096263); -emit_32(1128740880); -emit_32(1105231400); -emit_32(1120096263); -emit_32(1128996864); -emit_32(1104882277); -emit_32(1120096263); -emit_32(1129252848); -emit_32(1103989781); -emit_32(1120096263); -emit_32(1129508897); -emit_32(1103333268); -emit_32(1120096263); -emit_32(1129764880); -emit_32(1102701186); -emit_32(1120096263); -emit_32(1130020864); -emit_32(1101762396); -emit_32(1120096263); -emit_32(1130276848); -emit_32(1100764257); -emit_32(1120096263); -emit_32(1130532897); -emit_32(1100213020); -emit_32(1120096263); -emit_32(1130788880); -emit_32(1099813093); -emit_32(1120096263); -emit_32(1131044864); -emit_32(1099177080); -emit_32(1120096263); -emit_32(1131300848); -emit_32(1099042862); -emit_32(1120096263); -emit_32(1131556897); -emit_32(1098988336); -emit_32(1120096263); -emit_32(1131812880); -emit_32(1099476815); -emit_32(1120096263); -emit_32(1132068864); -emit_32(1100226285); -emit_32(1120096263); -emit_32(1081737216); -emit_32(1099519545); -emit_32(1119584256); -emit_32(1090125824); -emit_32(1099335991); -emit_32(1119584256); -emit_32(1094418484); -emit_32(1099709442); -emit_32(1119584256); -emit_32(1098514432); -emit_32(1100359978); -emit_32(1119584256); -emit_32(1100759066); -emit_32(1100132490); -emit_32(1119584256); -emit_32(1102807040); -emit_32(1100526073); -emit_32(1119584256); -emit_32(1104855066); -emit_32(1100876716); -emit_32(1119584256); -emit_32(1106903040); -emit_32(1101010724); -emit_32(1119584256); -emit_32(1108123661); -emit_32(1101185208); -emit_32(1119584256); -emit_32(1109147648); -emit_32(1101761557); -emit_32(1119584256); -emit_32(1110171661); -emit_32(1101844080); -emit_32(1119584256); -emit_32(1111195648); -emit_32(1101813409); -emit_32(1119584256); -emit_32(1112219661); -emit_32(1101402839); -emit_32(1119584256); -emit_32(1113243648); -emit_32(1100438936); -emit_32(1119584256); -emit_32(1114267661); -emit_32(1099786984); -emit_32(1119584256); -emit_32(1115291648); -emit_32(1099715523); -emit_32(1119584256); -emit_32(1116000263); -emit_32(1099745985); -emit_32(1119584256); -emit_32(1116512256); -emit_32(1100093902); -emit_32(1119584256); -emit_32(1117024263); -emit_32(1100168351); -emit_32(1119584256); -emit_32(1117536256); -emit_32(1100068946); -emit_32(1119584256); -emit_32(1118048263); -emit_32(1100204894); -emit_32(1119584256); -emit_32(1118560256); -emit_32(1099776865); -emit_32(1119584256); -emit_32(1119072263); -emit_32(1099815715); -emit_32(1119584256); -emit_32(1119584256); -emit_32(1100174957); -emit_32(1119584256); -emit_32(1120096263); -emit_32(1100503528); -emit_32(1119584256); -emit_32(1120608322); -emit_32(1100870425); -emit_32(1119584256); -emit_32(1121120289); -emit_32(1100930771); -emit_32(1119584256); -emit_32(1121632256); -emit_32(1100869219); -emit_32(1119584256); -emit_32(1122144223); -emit_32(1101778439); -emit_32(1119584256); -emit_32(1122656322); -emit_32(1103199574); -emit_32(1119584256); -emit_32(1123168289); -emit_32(1104588361); -emit_32(1119584256); -emit_32(1123680256); -emit_32(1106227809); -emit_32(1119584256); -emit_32(1124132848); -emit_32(1107512970); -emit_32(1119584256); -emit_32(1124388897); -emit_32(1107998251); -emit_32(1119584256); -emit_32(1124644880); -emit_32(1108347008); -emit_32(1119584256); -emit_32(1124900864); -emit_32(1108602048); -emit_32(1119584256); -emit_32(1125156848); -emit_32(1109290831); -emit_32(1119584256); -emit_32(1125412897); -emit_32(1109977176); -emit_32(1119584256); -emit_32(1125668880); -emit_32(1110570959); -emit_32(1119584256); -emit_32(1125924864); -emit_32(1111274737); -emit_32(1119584256); -emit_32(1126180848); -emit_32(1111376973); -emit_32(1119584256); -emit_32(1126436897); -emit_32(1111218586); -emit_32(1119584256); -emit_32(1126692880); -emit_32(1110884090); -emit_32(1119584256); -emit_32(1126948864); -emit_32(1110905140); -emit_32(1119584256); -emit_32(1127204848); -emit_32(1110659642); -emit_32(1119584256); -emit_32(1127460897); -emit_32(1110072466); -emit_32(1119584256); -emit_32(1127716880); -emit_32(1109486102); -emit_32(1119584256); -emit_32(1127972864); -emit_32(1108855960); -emit_32(1119584256); -emit_32(1128228848); -emit_32(1108119781); -emit_32(1119584256); -emit_32(1128484897); -emit_32(1107034689); -emit_32(1119584256); -emit_32(1128740880); -emit_32(1106087772); -emit_32(1119584256); -emit_32(1128996864); -emit_32(1105093617); -emit_32(1119584256); -emit_32(1129252848); -emit_32(1104335182); -emit_32(1119584256); -emit_32(1129508897); -emit_32(1104074192); -emit_32(1119584256); -emit_32(1129764880); -emit_32(1103483057); -emit_32(1119584256); -emit_32(1130020864); -emit_32(1102981208); -emit_32(1119584256); -emit_32(1130276848); -emit_32(1101489714); -emit_32(1119584256); -emit_32(1130532897); -emit_32(1100552235); -emit_32(1119584256); -emit_32(1130788880); -emit_32(1100255278); -emit_32(1119584256); -emit_32(1131044864); -emit_32(1099722392); -emit_32(1119584256); -emit_32(1131300848); -emit_32(1097754634); -emit_32(1119584256); -emit_32(1131556897); -emit_32(1099078199); -emit_32(1119584256); -emit_32(1131812880); -emit_32(1098909588); -emit_32(1119584256); -emit_32(1132068864); -emit_32(1098899364); -emit_32(1119584256); -emit_32(1081737216); -emit_32(1098532992); -emit_32(1119072263); -emit_32(1090125824); -emit_32(1099050359); -emit_32(1119072263); -emit_32(1094418484); -emit_32(1099771203); -emit_32(1119072263); -emit_32(1098514432); -emit_32(1100405277); -emit_32(1119072263); -emit_32(1100759066); -emit_32(1100821823); -emit_32(1119072263); -emit_32(1102807040); -emit_32(1101489399); -emit_32(1119072263); -emit_32(1104855066); -emit_32(1101426590); -emit_32(1119072263); -emit_32(1106903040); -emit_32(1101124023); -emit_32(1119072263); -emit_32(1108123661); -emit_32(1101831497); -emit_32(1119072263); -emit_32(1109147648); -emit_32(1102350123); -emit_32(1119072263); -emit_32(1110171661); -emit_32(1102793199); -emit_32(1119072263); -emit_32(1111195648); -emit_32(1102843111); -emit_32(1119072263); -emit_32(1112219661); -emit_32(1102558318); -emit_32(1119072263); -emit_32(1113243648); -emit_32(1101824891); -emit_32(1119072263); -emit_32(1114267661); -emit_32(1101196113); -emit_32(1119072263); -emit_32(1115291648); -emit_32(1100804365); -emit_32(1119072263); -emit_32(1116000263); -emit_32(1100310538); -emit_32(1119072263); -emit_32(1116512256); -emit_32(1100314680); -emit_32(1119072263); -emit_32(1117024263); -emit_32(1100878604); -emit_32(1119072263); -emit_32(1117536256); -emit_32(1101233180); -emit_32(1119072263); -emit_32(1118048263); -emit_32(1101099486); -emit_32(1119072263); -emit_32(1118560256); -emit_32(1100717123); -emit_32(1119072263); -emit_32(1119072263); -emit_32(1100634758); -emit_32(1119072263); -emit_32(1119584256); -emit_32(1100997670); -emit_32(1119072263); -emit_32(1120096263); -emit_32(1101349205); -emit_32(1119072263); -emit_32(1120608322); -emit_32(1101475873); -emit_32(1119072263); -emit_32(1121120289); -emit_32(1101425646); -emit_32(1119072263); -emit_32(1121632256); -emit_32(1101796422); -emit_32(1119072263); -emit_32(1122144223); -emit_32(1102446120); -emit_32(1119072263); -emit_32(1122656322); -emit_32(1103203559); -emit_32(1119072263); -emit_32(1123168289); -emit_32(1104856849); -emit_32(1119072263); -emit_32(1123680256); -emit_32(1106223877); -emit_32(1119072263); -emit_32(1124132848); -emit_32(1107396421); -emit_32(1119072263); -emit_32(1124388897); -emit_32(1107875018); -emit_32(1119072263); -emit_32(1124644880); -emit_32(1108277173); -emit_32(1119072263); -emit_32(1124900864); -emit_32(1108512814); -emit_32(1119072263); -emit_32(1125156848); -emit_32(1109177296); -emit_32(1119072263); -emit_32(1125412897); -emit_32(1109962811); -emit_32(1119072263); -emit_32(1125668880); -emit_32(1110386698); -emit_32(1119072263); -emit_32(1125924864); -emit_32(1110954895); -emit_32(1119072263); -emit_32(1126180848); -emit_32(1111373146); -emit_32(1119072263); -emit_32(1126436897); -emit_32(1111232741); -emit_32(1119072263); -emit_32(1126692880); -emit_32(1110968474); -emit_32(1119072263); -emit_32(1126948864); -emit_32(1110976076); -emit_32(1119072263); -emit_32(1127204848); -emit_32(1110947948); -emit_32(1119072263); -emit_32(1127460897); -emit_32(1110319458); -emit_32(1119072263); -emit_32(1127716880); -emit_32(1109529802); -emit_32(1119072263); -emit_32(1127972864); -emit_32(1108903985); -emit_32(1119072263); -emit_32(1128228848); -emit_32(1108310439); -emit_32(1119072263); -emit_32(1128484897); -emit_32(1107575387); -emit_32(1119072263); -emit_32(1128740880); -emit_32(1106795613); -emit_32(1119072263); -emit_32(1128996864); -emit_32(1105037099); -emit_32(1119072263); -emit_32(1129252848); -emit_32(1104566131); -emit_32(1119072263); -emit_32(1129508897); -emit_32(1104325640); -emit_32(1119072263); -emit_32(1129764880); -emit_32(1103661315); -emit_32(1119072263); -emit_32(1130020864); -emit_32(1102795191); -emit_32(1119072263); -emit_32(1130276848); -emit_32(1101517868); -emit_32(1119072263); -emit_32(1130532897); -emit_32(1100461113); -emit_32(1119072263); -emit_32(1130788880); -emit_32(1100370097); -emit_32(1119072263); -emit_32(1131044864); -emit_32(1099572602); -emit_32(1119072263); -emit_32(1131300848); -emit_32(1097838100); -emit_32(1119072263); -emit_32(1131556897); -emit_32(1098295594); -emit_32(1119072263); -emit_32(1131812880); -emit_32(1098303459); -emit_32(1119072263); -emit_32(1132068864); -emit_32(1098824601); -emit_32(1119072263); -emit_32(1081737216); -emit_32(1098479410); -emit_32(1118560256); -emit_32(1090125824); -emit_32(1099112959); -emit_32(1118560256); -emit_32(1094418484); -emit_32(1100063546); -emit_32(1118560256); -emit_32(1098514432); -emit_32(1100578082); -emit_32(1118560256); -emit_32(1100759066); -emit_32(1101399327); -emit_32(1118560256); -emit_32(1102807040); -emit_32(1101862745); -emit_32(1118560256); -emit_32(1104855066); -emit_32(1102014684); -emit_32(1118560256); -emit_32(1106903040); -emit_32(1101855457); -emit_32(1118560256); -emit_32(1108123661); -emit_32(1102305349); -emit_32(1118560256); -emit_32(1109147648); -emit_32(1102995679); -emit_32(1118560256); -emit_32(1110171661); -emit_32(1103423603); -emit_32(1118560256); -emit_32(1111195648); -emit_32(1103543455); -emit_32(1118560256); -emit_32(1112219661); -emit_32(1103387741); -emit_32(1118560256); -emit_32(1113243648); -emit_32(1102938374); -emit_32(1118560256); -emit_32(1114267661); -emit_32(1102169244); -emit_32(1118560256); -emit_32(1115291648); -emit_32(1101791704); -emit_32(1118560256); -emit_32(1116000263); -emit_32(1101646581); -emit_32(1118560256); -emit_32(1116512256); -emit_32(1101112698); -emit_32(1118560256); -emit_32(1117024263); -emit_32(1101184998); -emit_32(1118560256); -emit_32(1117536256); -emit_32(1101989727); -emit_32(1118560256); -emit_32(1118048263); -emit_32(1102023229); -emit_32(1118560256); -emit_32(1118560256); -emit_32(1101345377); -emit_32(1118560256); -emit_32(1119072263); -emit_32(1101364199); -emit_32(1118560256); -emit_32(1119584256); -emit_32(1101345325); -emit_32(1118560256); -emit_32(1120096263); -emit_32(1101567780); -emit_32(1118560256); -emit_32(1120608322); -emit_32(1101948047); -emit_32(1118560256); -emit_32(1121120289); -emit_32(1102252343); -emit_32(1118560256); -emit_32(1121632256); -emit_32(1102278400); -emit_32(1118560256); -emit_32(1122144223); -emit_32(1102915882); -emit_32(1118560256); -emit_32(1122656322); -emit_32(1103545342); -emit_32(1118560256); -emit_32(1123168289); -emit_32(1104523873); -emit_32(1118560256); -emit_32(1123680256); -emit_32(1105840623); -emit_32(1118560256); -emit_32(1124132848); -emit_32(1107083500); -emit_32(1118560256); -emit_32(1124388897); -emit_32(1107781668); -emit_32(1118560256); -emit_32(1124644880); -emit_32(1108269990); -emit_32(1118560256); -emit_32(1124900864); -emit_32(1108523300); -emit_32(1118560256); -emit_32(1125156848); -emit_32(1109103110); -emit_32(1118560256); -emit_32(1125412897); -emit_32(1109825526); -emit_32(1118560256); -emit_32(1125668880); -emit_32(1110495330); -emit_32(1118560256); -emit_32(1125924864); -emit_32(1110756478); -emit_32(1118560256); -emit_32(1126180848); -emit_32(1111016630); -emit_32(1118560256); -emit_32(1126436897); -emit_32(1111283388); -emit_32(1118560256); -emit_32(1126692880); -emit_32(1111246530); -emit_32(1118560256); -emit_32(1126948864); -emit_32(1110841937); -emit_32(1118560256); -emit_32(1127204848); -emit_32(1110618826); -emit_32(1118560256); -emit_32(1127460897); -emit_32(1110342972); -emit_32(1118560256); -emit_32(1127716880); -emit_32(1109456191); -emit_32(1118560256); -emit_32(1127972864); -emit_32(1108985774); -emit_32(1118560256); -emit_32(1128228848); -emit_32(1108475956); -emit_32(1118560256); -emit_32(1128484897); -emit_32(1107767512); -emit_32(1118560256); -emit_32(1128740880); -emit_32(1107083552); -emit_32(1118560256); -emit_32(1128996864); -emit_32(1105634525); -emit_32(1118560256); -emit_32(1129252848); -emit_32(1104932871); -emit_32(1118560256); -emit_32(1129508897); -emit_32(1104170766); -emit_32(1118560256); -emit_32(1129764880); -emit_32(1103195904); -emit_32(1118560256); -emit_32(1130020864); -emit_32(1102135532); -emit_32(1118560256); -emit_32(1130276848); -emit_32(1101066089); -emit_32(1118560256); -emit_32(1130532897); -emit_32(1100669413); -emit_32(1118560256); -emit_32(1130788880); -emit_32(1099835795); -emit_32(1118560256); -emit_32(1131044864); -emit_32(1099072641); -emit_32(1118560256); -emit_32(1131300848); -emit_32(1097951976); -emit_32(1118560256); -emit_32(1131556897); -emit_32(1097998742); -emit_32(1118560256); -emit_32(1131812880); -emit_32(1097628595); -emit_32(1118560256); -emit_32(1132068864); -emit_32(1098095945); -emit_32(1118560256); -emit_32(1081737216); -emit_32(1099413271); -emit_32(1118048263); -emit_32(1090125824); -emit_32(1099851366); -emit_32(1118048263); -emit_32(1094418484); -emit_32(1100634810); -emit_32(1118048263); -emit_32(1098514432); -emit_32(1101543191); -emit_32(1118048263); -emit_32(1100759066); -emit_32(1102227020); -emit_32(1118048263); -emit_32(1102807040); -emit_32(1102623329); -emit_32(1118048263); -emit_32(1104855066); -emit_32(1102636122); -emit_32(1118048263); -emit_32(1106903040); -emit_32(1102855746); -emit_32(1118048263); -emit_32(1108123661); -emit_32(1103180228); -emit_32(1118048263); -emit_32(1109147648); -emit_32(1103670700); -emit_32(1118048263); -emit_32(1110171661); -emit_32(1104191894); -emit_32(1118048263); -emit_32(1111195648); -emit_32(1104328733); -emit_32(1118048263); -emit_32(1112219661); -emit_32(1103856769); -emit_32(1118048263); -emit_32(1113243648); -emit_32(1103570665); -emit_32(1118048263); -emit_32(1114267661); -emit_32(1103155744); -emit_32(1118048263); -emit_32(1115291648); -emit_32(1103141221); -emit_32(1118048263); -emit_32(1116000263); -emit_32(1102853230); -emit_32(1118048263); -emit_32(1116512256); -emit_32(1102033034); -emit_32(1118048263); -emit_32(1117024263); -emit_32(1102017724); -emit_32(1118048263); -emit_32(1117536256); -emit_32(1102380584); -emit_32(1118048263); -emit_32(1118048263); -emit_32(1102405698); -emit_32(1118048263); -emit_32(1118560256); -emit_32(1101754689); -emit_32(1118048263); -emit_32(1119072263); -emit_32(1101894202); -emit_32(1118048263); -emit_32(1119584256); -emit_32(1101906471); -emit_32(1118048263); -emit_32(1120096263); -emit_32(1102313056); -emit_32(1118048263); -emit_32(1120608322); -emit_32(1102601309); -emit_32(1118048263); -emit_32(1121120289); -emit_32(1102592606); -emit_32(1118048263); -emit_32(1121632256); -emit_32(1102703493); -emit_32(1118048263); -emit_32(1122144223); -emit_32(1102937378); -emit_32(1118048263); -emit_32(1122656322); -emit_32(1103504867); -emit_32(1118048263); -emit_32(1123168289); -emit_32(1104384675); -emit_32(1118048263); -emit_32(1123680256); -emit_32(1105635049); -emit_32(1118048263); -emit_32(1124132848); -emit_32(1106752255); -emit_32(1118048263); -emit_32(1124388897); -emit_32(1107767879); -emit_32(1118048263); -emit_32(1124644880); -emit_32(1108294474); -emit_32(1118048263); -emit_32(1124900864); -emit_32(1108613634); -emit_32(1118048263); -emit_32(1125156848); -emit_32(1109065177); -emit_32(1118048263); -emit_32(1125412897); -emit_32(1109930095); -emit_32(1118048263); -emit_32(1125668880); -emit_32(1110386383); -emit_32(1118048263); -emit_32(1125924864); -emit_32(1110751995); -emit_32(1118048263); -emit_32(1126180848); -emit_32(1111030602); -emit_32(1118048263); -emit_32(1126436897); -emit_32(1111233554); -emit_32(1118048263); -emit_32(1126692880); -emit_32(1111303704); -emit_32(1118048263); -emit_32(1126948864); -emit_32(1111031703); -emit_32(1118048263); -emit_32(1127204848); -emit_32(1110529488); -emit_32(1118048263); -emit_32(1127460897); -emit_32(1110208545); -emit_32(1118048263); -emit_32(1127716880); -emit_32(1109599375); -emit_32(1118048263); -emit_32(1127972864); -emit_32(1109300609); -emit_32(1118048263); -emit_32(1128228848); -emit_32(1108749189); -emit_32(1118048263); -emit_32(1128484897); -emit_32(1108160047); -emit_32(1118048263); -emit_32(1128740880); -emit_32(1107724180); -emit_32(1118048263); -emit_32(1128996864); -emit_32(1106714873); -emit_32(1118048263); -emit_32(1129252848); -emit_32(1104821512); -emit_32(1118048263); -emit_32(1129508897); -emit_32(1103852103); -emit_32(1118048263); -emit_32(1129764880); -emit_32(1103039771); -emit_32(1118048263); -emit_32(1130020864); -emit_32(1102286212); -emit_32(1118048263); -emit_32(1130276848); -emit_32(1101202509); -emit_32(1118048263); -emit_32(1130532897); -emit_32(1100589197); -emit_32(1118048263); -emit_32(1130788880); -emit_32(1100484811); -emit_32(1118048263); -emit_32(1131044864); -emit_32(1099835113); -emit_32(1118048263); -emit_32(1131300848); -emit_32(1098729600); -emit_32(1118048263); -emit_32(1131556897); -emit_32(1097121608); -emit_32(1118048263); -emit_32(1131812880); -emit_32(1098002203); -emit_32(1118048263); -emit_32(1132068864); -emit_32(1097770887); -emit_32(1118048263); -emit_32(1081737216); -emit_32(1100388447); -emit_32(1117536256); -emit_32(1090125824); -emit_32(1100757493); -emit_32(1117536256); -emit_32(1094418484); -emit_32(1101501091); -emit_32(1117536256); -emit_32(1098514432); -emit_32(1102103236); -emit_32(1117536256); -emit_32(1100759066); -emit_32(1102707845); -emit_32(1117536256); -emit_32(1102807040); -emit_32(1103009572); -emit_32(1117536256); -emit_32(1104855066); -emit_32(1103428898); -emit_32(1117536256); -emit_32(1106903040); -emit_32(1103146831); -emit_32(1117536256); -emit_32(1108123661); -emit_32(1103947576); -emit_32(1117536256); -emit_32(1109147648); -emit_32(1104597484); -emit_32(1117536256); -emit_32(1110171661); -emit_32(1104667424); -emit_32(1117536256); -emit_32(1111195648); -emit_32(1104486230); -emit_32(1117536256); -emit_32(1112219661); -emit_32(1104487068); -emit_32(1117536256); -emit_32(1113243648); -emit_32(1104896904); -emit_32(1117536256); -emit_32(1114267661); -emit_32(1104464524); -emit_32(1117536256); -emit_32(1115291648); -emit_32(1104222355); -emit_32(1117536256); -emit_32(1116000263); -emit_32(1103558974); -emit_32(1117536256); -emit_32(1116512256); -emit_32(1103033480); -emit_32(1117536256); -emit_32(1117024263); -emit_32(1102717544); -emit_32(1117536256); -emit_32(1117536256); -emit_32(1102634340); -emit_32(1117536256); -emit_32(1118048263); -emit_32(1102741976); -emit_32(1117536256); -emit_32(1118560256); -emit_32(1102625007); -emit_32(1117536256); -emit_32(1119072263); -emit_32(1102725618); -emit_32(1117536256); -emit_32(1119584256); -emit_32(1103254520); -emit_32(1117536256); -emit_32(1120096263); -emit_32(1103392722); -emit_32(1117536256); -emit_32(1120608322); -emit_32(1103322992); -emit_32(1117536256); -emit_32(1121120289); -emit_32(1103436395); -emit_32(1117536256); -emit_32(1121632256); -emit_32(1103376417); -emit_32(1117536256); -emit_32(1122144223); -emit_32(1103563325); -emit_32(1117536256); -emit_32(1122656322); -emit_32(1103992612); -emit_32(1117536256); -emit_32(1123168289); -emit_32(1104630514); -emit_32(1117536256); -emit_32(1123680256); -emit_32(1106116556); -emit_32(1117536256); -emit_32(1124132848); -emit_32(1106961236); -emit_32(1117536256); -emit_32(1124388897); -emit_32(1107803950); -emit_32(1117536256); -emit_32(1124644880); -emit_32(1108189276); -emit_32(1117536256); -emit_32(1124900864); -emit_32(1108506129); -emit_32(1117536256); -emit_32(1125156848); -emit_32(1109028792); -emit_32(1117536256); -emit_32(1125412897); -emit_32(1109715216); -emit_32(1117536256); -emit_32(1125668880); -emit_32(1110237171); -emit_32(1117536256); -emit_32(1125924864); -emit_32(1110769507); -emit_32(1117536256); -emit_32(1126180848); -emit_32(1111106100); -emit_32(1117536256); -emit_32(1126436897); -emit_32(1111271906); -emit_32(1117536256); -emit_32(1126692880); -emit_32(1111370210); -emit_32(1117536256); -emit_32(1126948864); -emit_32(1111065310); -emit_32(1117536256); -emit_32(1127204848); -emit_32(1110676210); -emit_32(1117536256); -emit_32(1127460897); -emit_32(1110374587); -emit_32(1117536256); -emit_32(1127716880); -emit_32(1110042162); -emit_32(1117536256); -emit_32(1127972864); -emit_32(1109530614); -emit_32(1117536256); -emit_32(1128228848); -emit_32(1108942678); -emit_32(1117536256); -emit_32(1128484897); -emit_32(1108422689); -emit_32(1117536256); -emit_32(1128740880); -emit_32(1108099491); -emit_32(1117536256); -emit_32(1128996864); -emit_32(1107404915); -emit_32(1117536256); -emit_32(1129252848); -emit_32(1105961366); -emit_32(1117536256); -emit_32(1129508897); -emit_32(1104014161); -emit_32(1117536256); -emit_32(1129764880); -emit_32(1102659977); -emit_32(1117536256); -emit_32(1130020864); -emit_32(1101498941); -emit_32(1117536256); -emit_32(1130276848); -emit_32(1100603667); -emit_32(1117536256); -emit_32(1130532897); -emit_32(1100248567); -emit_32(1117536256); -emit_32(1130788880); -emit_32(1100396993); -emit_32(1117536256); -emit_32(1131044864); -emit_32(1099775974); -emit_32(1117536256); -emit_32(1131300848); -emit_32(1098614781); -emit_32(1117536256); -emit_32(1131556897); -emit_32(1097165439); -emit_32(1117536256); -emit_32(1131812880); -emit_32(1096806092); -emit_32(1117536256); -emit_32(1132068864); -emit_32(1097532755); -emit_32(1117536256); -emit_32(1081737216); -emit_32(1101362836); -emit_32(1117024263); -emit_32(1090125824); -emit_32(1102440982); -emit_32(1117024263); -emit_32(1094418484); -emit_32(1102525602); -emit_32(1117024263); -emit_32(1098514432); -emit_32(1102772542); -emit_32(1117024263); -emit_32(1100759066); -emit_32(1102996623); -emit_32(1117024263); -emit_32(1102807040); -emit_32(1103394295); -emit_32(1117024263); -emit_32(1104855066); -emit_32(1103807853); -emit_32(1117024263); -emit_32(1106903040); -emit_32(1104063968); -emit_32(1117024263); -emit_32(1108123661); -emit_32(1104272477); -emit_32(1117024263); -emit_32(1109147648); -emit_32(1105094404); -emit_32(1117024263); -emit_32(1110171661); -emit_32(1105462297); -emit_32(1117024263); -emit_32(1111195648); -emit_32(1105615756); -emit_32(1117024263); -emit_32(1112219661); -emit_32(1105780539); -emit_32(1117024263); -emit_32(1113243648); -emit_32(1105949622); -emit_32(1117024263); -emit_32(1114267661); -emit_32(1105825523); -emit_32(1117024263); -emit_32(1115291648); -emit_32(1105325457); -emit_32(1117024263); -emit_32(1116000263); -emit_32(1104503217); -emit_32(1117024263); -emit_32(1116512256); -emit_32(1103914389); -emit_32(1117024263); -emit_32(1117024263); -emit_32(1103220703); -emit_32(1117024263); -emit_32(1117536256); -emit_32(1103554989); -emit_32(1117024263); -emit_32(1118048263); -emit_32(1103557663); -emit_32(1117024263); -emit_32(1118560256); -emit_32(1103000555); -emit_32(1117024263); -emit_32(1119072263); -emit_32(1103407455); -emit_32(1117024263); -emit_32(1119584256); -emit_32(1103934783); -emit_32(1117024263); -emit_32(1120096263); -emit_32(1103628861); -emit_32(1117024263); -emit_32(1120608322); -emit_32(1103876221); -emit_32(1117024263); -emit_32(1121120289); -emit_32(1104062762); -emit_32(1117024263); -emit_32(1121632256); -emit_32(1104076446); -emit_32(1117024263); -emit_32(1122144223); -emit_32(1104571479); -emit_32(1117024263); -emit_32(1122656322); -emit_32(1105134302); -emit_32(1117024263); -emit_32(1123168289); -emit_32(1105662312); -emit_32(1117024263); -emit_32(1123680256); -emit_32(1106251717); -emit_32(1117024263); -emit_32(1124132848); -emit_32(1107284512); -emit_32(1117024263); -emit_32(1124388897); -emit_32(1107873183); -emit_32(1117024263); -emit_32(1124644880); -emit_32(1108188149); -emit_32(1117024263); -emit_32(1124900864); -emit_32(1108443241); -emit_32(1117024263); -emit_32(1125156848); -emit_32(1109131028); -emit_32(1117024263); -emit_32(1125412897); -emit_32(1109732884); -emit_32(1117024263); -emit_32(1125668880); -emit_32(1110471632); -emit_32(1117024263); -emit_32(1125924864); -emit_32(1111024494); -emit_32(1117024263); -emit_32(1126180848); -emit_32(1111170666); -emit_32(1117024263); -emit_32(1126436897); -emit_32(1111345332); -emit_32(1117024263); -emit_32(1126692880); -emit_32(1111265011); -emit_32(1117024263); -emit_32(1126948864); -emit_32(1110964620); -emit_32(1117024263); -emit_32(1127204848); -emit_32(1110816430); -emit_32(1117024263); -emit_32(1127460897); -emit_32(1110708847); -emit_32(1117024263); -emit_32(1127716880); -emit_32(1110212162); -emit_32(1117024263); -emit_32(1127972864); -emit_32(1109715111); -emit_32(1117024263); -emit_32(1128228848); -emit_32(1108818579); -emit_32(1117024263); -emit_32(1128484897); -emit_32(1108483873); -emit_32(1117024263); -emit_32(1128740880); -emit_32(1108125627); -emit_32(1117024263); -emit_32(1128996864); -emit_32(1107598718); -emit_32(1117024263); -emit_32(1129252848); -emit_32(1106363390); -emit_32(1117024263); -emit_32(1129508897); -emit_32(1104237822); -emit_32(1117024263); -emit_32(1129764880); -emit_32(1102138258); -emit_32(1117024263); -emit_32(1130020864); -emit_32(1100193202); -emit_32(1117024263); -emit_32(1130276848); -emit_32(1099480433); -emit_32(1117024263); -emit_32(1130532897); -emit_32(1099613759); -emit_32(1117024263); -emit_32(1130788880); -emit_32(1099142005); -emit_32(1117024263); -emit_32(1131044864); -emit_32(1098613732); -emit_32(1117024263); -emit_32(1131300848); -emit_32(1097637718); -emit_32(1117024263); -emit_32(1131556897); -emit_32(1096434057); -emit_32(1117024263); -emit_32(1131812880); -emit_32(1095523684); -emit_32(1117024263); -emit_32(1132068864); -emit_32(1096168243); -emit_32(1117024263); -emit_32(1081737216); -emit_32(1102550401); -emit_32(1116512256); -emit_32(1090125824); -emit_32(1103281835); -emit_32(1116512256); -emit_32(1094418484); -emit_32(1103432620); -emit_32(1116512256); -emit_32(1098514432); -emit_32(1103624300); -emit_32(1116512256); -emit_32(1100759066); -emit_32(1103732880); -emit_32(1116512256); -emit_32(1102807040); -emit_32(1103772569); -emit_32(1116512256); -emit_32(1104855066); -emit_32(1104059145); -emit_32(1116512256); -emit_32(1106903040); -emit_32(1104733694); -emit_32(1116512256); -emit_32(1108123661); -emit_32(1105135927); -emit_32(1116512256); -emit_32(1109147648); -emit_32(1105641446); -emit_32(1116512256); -emit_32(1110171661); -emit_32(1106189117); -emit_32(1116512256); -emit_32(1111195648); -emit_32(1106590984); -emit_32(1116512256); -emit_32(1112219661); -emit_32(1106792730); -emit_32(1116512256); -emit_32(1113243648); -emit_32(1107103528); -emit_32(1116512256); -emit_32(1114267661); -emit_32(1107045751); -emit_32(1116512256); -emit_32(1115291648); -emit_32(1106493886); -emit_32(1116512256); -emit_32(1116000263); -emit_32(1105577011); -emit_32(1116512256); -emit_32(1116512256); -emit_32(1104601992); -emit_32(1116512256); -emit_32(1117024263); -emit_32(1103981498); -emit_32(1116512256); -emit_32(1117536256); -emit_32(1104213076); -emit_32(1116512256); -emit_32(1118048263); -emit_32(1103729577); -emit_32(1116512256); -emit_32(1118560256); -emit_32(1103354344); -emit_32(1116512256); -emit_32(1119072263); -emit_32(1103689836); -emit_32(1116512256); -emit_32(1119584256); -emit_32(1104224505); -emit_32(1116512256); -emit_32(1120096263); -emit_32(1104374714); -emit_32(1116512256); -emit_32(1120608322); -emit_32(1104188696); -emit_32(1116512256); -emit_32(1121120289); -emit_32(1104209773); -emit_32(1116512256); -emit_32(1121632256); -emit_32(1104973765); -emit_32(1116512256); -emit_32(1122144223); -emit_32(1105524110); -emit_32(1116512256); -emit_32(1122656322); -emit_32(1106275992); -emit_32(1116512256); -emit_32(1123168289); -emit_32(1106381373); -emit_32(1116512256); -emit_32(1123680256); -emit_32(1106763527); -emit_32(1116512256); -emit_32(1124132848); -emit_32(1107402293); -emit_32(1116512256); -emit_32(1124388897); -emit_32(1107816822); -emit_32(1116512256); -emit_32(1124644880); -emit_32(1108307293); -emit_32(1116512256); -emit_32(1124900864); -emit_32(1108759098); -emit_32(1116512256); -emit_32(1125156848); -emit_32(1109471632); -emit_32(1116512256); -emit_32(1125412897); -emit_32(1109900027); -emit_32(1116512256); -emit_32(1125668880); -emit_32(1110484111); -emit_32(1116512256); -emit_32(1125924864); -emit_32(1110873316); -emit_32(1116512256); -emit_32(1126180848); -emit_32(1111321923); -emit_32(1116512256); -emit_32(1126436897); -emit_32(1111520628); -emit_32(1116512256); -emit_32(1126692880); -emit_32(1111429507); -emit_32(1116512256); -emit_32(1126948864); -emit_32(1110992722); -emit_32(1116512256); -emit_32(1127204848); -emit_32(1110804503); -emit_32(1116512256); -emit_32(1127460897); -emit_32(1110532633); -emit_32(1116512256); -emit_32(1127716880); -emit_32(1110132130); -emit_32(1116512256); -emit_32(1127972864); -emit_32(1109531112); -emit_32(1116512256); -emit_32(1128228848); -emit_32(1108783425); -emit_32(1116512256); -emit_32(1128484897); -emit_32(1108534467); -emit_32(1116512256); -emit_32(1128740880); -emit_32(1108104918); -emit_32(1116512256); -emit_32(1128996864); -emit_32(1107580866); -emit_32(1116512256); -emit_32(1129252848); -emit_32(1106274314); -emit_32(1116512256); -emit_32(1129508897); -emit_32(1104539025); -emit_32(1116512256); -emit_32(1129764880); -emit_32(1102452516); -emit_32(1116512256); -emit_32(1130020864); -emit_32(1100238029); -emit_32(1116512256); -emit_32(1130276848); -emit_32(1098493670); -emit_32(1116512256); -emit_32(1130532897); -emit_32(1097538732); -emit_32(1116512256); -emit_32(1130788880); -emit_32(1097860435); -emit_32(1116512256); -emit_32(1131044864); -emit_32(1096806826); -emit_32(1116512256); -emit_32(1131300848); -emit_32(1095175137); -emit_32(1116512256); -emit_32(1131556897); -emit_32(1095179751); -emit_32(1116512256); -emit_32(1131812880); -emit_32(1094445538); -emit_32(1116512256); -emit_32(1132068864); -emit_32(1094491675); -emit_32(1116512256); -emit_32(1081737216); -emit_32(1103917954); -emit_32(1116000263); -emit_32(1090125824); -emit_32(1104214281); -emit_32(1116000263); -emit_32(1094418484); -emit_32(1104273211); -emit_32(1116000263); -emit_32(1098514432); -emit_32(1104389236); -emit_32(1116000263); -emit_32(1100759066); -emit_32(1104665746); -emit_32(1116000263); -emit_32(1102807040); -emit_32(1104683886); -emit_32(1116000263); -emit_32(1104855066); -emit_32(1104862354); -emit_32(1116000263); -emit_32(1106903040); -emit_32(1105668342); -emit_32(1116000263); -emit_32(1108123661); -emit_32(1106303097); -emit_32(1116000263); -emit_32(1109147648); -emit_32(1106378228); -emit_32(1116000263); -emit_32(1110171661); -emit_32(1106845054); -emit_32(1116000263); -emit_32(1111195648); -emit_32(1107149298); -emit_32(1116000263); -emit_32(1112219661); -emit_32(1107634553); -emit_32(1116000263); -emit_32(1113243648); -emit_32(1107721139); -emit_32(1116000263); -emit_32(1114267661); -emit_32(1107693457); -emit_32(1116000263); -emit_32(1115291648); -emit_32(1107040823); -emit_32(1116000263); -emit_32(1116000263); -emit_32(1106302678); -emit_32(1116000263); -emit_32(1116512256); -emit_32(1105678251); -emit_32(1116000263); -emit_32(1117024263); -emit_32(1104723575); -emit_32(1116000263); -emit_32(1117536256); -emit_32(1104584219); -emit_32(1116000263); -emit_32(1118048263); -emit_32(1104086408); -emit_32(1116000263); -emit_32(1118560256); -emit_32(1103762398); -emit_32(1116000263); -emit_32(1119072263); -emit_32(1104084573); -emit_32(1116000263); -emit_32(1119584256); -emit_32(1104925583); -emit_32(1116000263); -emit_32(1120096263); -emit_32(1104774273); -emit_32(1116000263); -emit_32(1120608322); -emit_32(1104591244); -emit_32(1116000263); -emit_32(1121120289); -emit_32(1104826283); -emit_32(1116000263); -emit_32(1121632256); -emit_32(1105545973); -emit_32(1116000263); -emit_32(1122144223); -emit_32(1105872919); -emit_32(1116000263); -emit_32(1122656322); -emit_32(1106423946); -emit_32(1116000263); -emit_32(1123168289); -emit_32(1107313243); -emit_32(1116000263); -emit_32(1123680256); -emit_32(1107471709); -emit_32(1116000263); -emit_32(1124132848); -emit_32(1107748166); -emit_32(1116000263); -emit_32(1124388897); -emit_32(1108035319); -emit_32(1116000263); -emit_32(1124644880); -emit_32(1108525135); -emit_32(1116000263); -emit_32(1124900864); -emit_32(1109011254); -emit_32(1116000263); -emit_32(1125156848); -emit_32(1109529539); -emit_32(1116000263); -emit_32(1125412897); -emit_32(1109929073); -emit_32(1116000263); -emit_32(1125668880); -emit_32(1110361244); -emit_32(1116000263); -emit_32(1125924864); -emit_32(1111018701); -emit_32(1116000263); -emit_32(1126180848); -emit_32(1111418392); -emit_32(1116000263); -emit_32(1126436897); -emit_32(1111581943); -emit_32(1116000263); -emit_32(1126692880); -emit_32(1111596912); -emit_32(1116000263); -emit_32(1126948864); -emit_32(1111336970); -emit_32(1116000263); -emit_32(1127204848); -emit_32(1110946611); -emit_32(1116000263); -emit_32(1127460897); -emit_32(1110462222); -emit_32(1116000263); -emit_32(1127716880); -emit_32(1109940398); -emit_32(1116000263); -emit_32(1127972864); -emit_32(1109463846); -emit_32(1116000263); -emit_32(1128228848); -emit_32(1108875307); -emit_32(1116000263); -emit_32(1128484897); -emit_32(1108586607); -emit_32(1116000263); -emit_32(1128740880); -emit_32(1108248442); -emit_32(1116000263); -emit_32(1128996864); -emit_32(1107558426); -emit_32(1116000263); -emit_32(1129252848); -emit_32(1106322391); -emit_32(1116000263); -emit_32(1129508897); -emit_32(1104389131); -emit_32(1116000263); -emit_32(1129764880); -emit_32(1102274835); -emit_32(1116000263); -emit_32(1130020864); -emit_32(1100247571); -emit_32(1116000263); -emit_32(1130276848); -emit_32(1098982516); -emit_32(1116000263); -emit_32(1130532897); -emit_32(1097852990); -emit_32(1116000263); -emit_32(1130788880); -emit_32(1097777388); -emit_32(1116000263); -emit_32(1131044864); -emit_32(1096162057); -emit_32(1116000263); -emit_32(1131300848); -emit_32(1093655750); -emit_32(1116000263); -emit_32(1131556897); -emit_32(1093255194); -emit_32(1116000263); -emit_32(1131812880); -emit_32(1092384509); -emit_32(1116000263); -emit_32(1132068864); -emit_32(1092614651); -emit_32(1116000263); -emit_32(1081737216); -emit_32(1104775951); -emit_32(1115291648); -emit_32(1090125824); -emit_32(1105273081); -emit_32(1115291648); -emit_32(1094418484); -emit_32(1105163033); -emit_32(1115291648); -emit_32(1098514432); -emit_32(1105037623); -emit_32(1115291648); -emit_32(1100759066); -emit_32(1105121038); -emit_32(1115291648); -emit_32(1102807040); -emit_32(1105312455); -emit_32(1115291648); -emit_32(1104855066); -emit_32(1106012694); -emit_32(1115291648); -emit_32(1106903040); -emit_32(1106371779); -emit_32(1115291648); -emit_32(1108123661); -emit_32(1106828329); -emit_32(1115291648); -emit_32(1109147648); -emit_32(1107099071); -emit_32(1115291648); -emit_32(1110171661); -emit_32(1107519026); -emit_32(1115291648); -emit_32(1111195648); -emit_32(1107598272); -emit_32(1115291648); -emit_32(1112219661); -emit_32(1107988605); -emit_32(1115291648); -emit_32(1113243648); -emit_32(1108084340); -emit_32(1115291648); -emit_32(1114267661); -emit_32(1107768272); -emit_32(1115291648); -emit_32(1115291648); -emit_32(1107585375); -emit_32(1115291648); -emit_32(1116000263); -emit_32(1107334686); -emit_32(1115291648); -emit_32(1116512256); -emit_32(1106384729); -emit_32(1115291648); -emit_32(1117024263); -emit_32(1105355237); -emit_32(1115291648); -emit_32(1117536256); -emit_32(1105239160); -emit_32(1115291648); -emit_32(1118048263); -emit_32(1104804472); -emit_32(1115291648); -emit_32(1118560256); -emit_32(1104295703); -emit_32(1115291648); -emit_32(1119072263); -emit_32(1104303725); -emit_32(1115291648); -emit_32(1119584256); -emit_32(1104739566); -emit_32(1115291648); -emit_32(1120096263); -emit_32(1104935911); -emit_32(1115291648); -emit_32(1120608322); -emit_32(1104793148); -emit_32(1115291648); -emit_32(1121120289); -emit_32(1105350990); -emit_32(1115291648); -emit_32(1121632256); -emit_32(1105666821); -emit_32(1115291648); -emit_32(1122144223); -emit_32(1106542854); -emit_32(1115291648); -emit_32(1122656322); -emit_32(1107330282); -emit_32(1115291648); -emit_32(1123168289); -emit_32(1107522722); -emit_32(1115291648); -emit_32(1123680256); -emit_32(1107991908); -emit_32(1115291648); -emit_32(1124132848); -emit_32(1108210273); -emit_32(1115291648); -emit_32(1124388897); -emit_32(1108506863); -emit_32(1115291648); -emit_32(1124644880); -emit_32(1108775220); -emit_32(1115291648); -emit_32(1124900864); -emit_32(1109189670); -emit_32(1115291648); -emit_32(1125156848); -emit_32(1109527233); -emit_32(1115291648); -emit_32(1125412897); -emit_32(1109974057); -emit_32(1115291648); -emit_32(1125668880); -emit_32(1110321240); -emit_32(1115291648); -emit_32(1125924864); -emit_32(1110734825); -emit_32(1115291648); -emit_32(1126180848); -emit_32(1111142197); -emit_32(1115291648); -emit_32(1126436897); -emit_32(1111340456); -emit_32(1115291648); -emit_32(1126692880); -emit_32(1111407224); -emit_32(1115291648); -emit_32(1126948864); -emit_32(1111510535); -emit_32(1115291648); -emit_32(1127204848); -emit_32(1111087042); -emit_32(1115291648); -emit_32(1127460897); -emit_32(1110641816); -emit_32(1115291648); -emit_32(1127716880); -emit_32(1110084734); -emit_32(1115291648); -emit_32(1127972864); -emit_32(1109478107); -emit_32(1115291648); -emit_32(1128228848); -emit_32(1108983703); -emit_32(1115291648); -emit_32(1128484897); -emit_32(1108396684); -emit_32(1115291648); -emit_32(1128740880); -emit_32(1108182303); -emit_32(1115291648); -emit_32(1128996864); -emit_32(1107304776); -emit_32(1115291648); -emit_32(1129252848); -emit_32(1105830714); -emit_32(1115291648); -emit_32(1129508897); -emit_32(1104926999); -emit_32(1115291648); -emit_32(1129764880); -emit_32(1103134825); -emit_32(1115291648); -emit_32(1130020864); -emit_32(1101331694); -emit_32(1115291648); -emit_32(1130276848); -emit_32(1100242905); -emit_32(1115291648); -emit_32(1130532897); -emit_32(1099575381); -emit_32(1115291648); -emit_32(1130788880); -emit_32(1098291610); -emit_32(1115291648); -emit_32(1131044864); -emit_32(1096472330); -emit_32(1115291648); -emit_32(1131300848); -emit_32(1094126875); -emit_32(1115291648); -emit_32(1131556897); -emit_32(1092334691); -emit_32(1115291648); -emit_32(1131812880); -emit_32(1091097822); -emit_32(1115291648); -emit_32(1132068864); -emit_32(1090977194); -emit_32(1115291648); -emit_32(1081737216); -emit_32(1105382343); -emit_32(1114267661); -emit_32(1090125824); -emit_32(1105662155); -emit_32(1114267661); -emit_32(1094418484); -emit_32(1105488092); -emit_32(1114267661); -emit_32(1098514432); -emit_32(1105646479); -emit_32(1114267661); -emit_32(1100759066); -emit_32(1105753591); -emit_32(1114267661); -emit_32(1102807040); -emit_32(1106409108); -emit_32(1114267661); -emit_32(1104855066); -emit_32(1106974396); -emit_32(1114267661); -emit_32(1106903040); -emit_32(1107565006); -emit_32(1114267661); -emit_32(1108123661); -emit_32(1107665538); -emit_32(1114267661); -emit_32(1109147648); -emit_32(1107918481); -emit_32(1114267661); -emit_32(1110171661); -emit_32(1108002577); -emit_32(1114267661); -emit_32(1111195648); -emit_32(1107850848); -emit_32(1114267661); -emit_32(1112219661); -emit_32(1108010494); -emit_32(1114267661); -emit_32(1113243648); -emit_32(1108185815); -emit_32(1114267661); -emit_32(1114267661); -emit_32(1108069791); -emit_32(1114267661); -emit_32(1115291648); -emit_32(1107943490); -emit_32(1114267661); -emit_32(1116000263); -emit_32(1107599924); -emit_32(1114267661); -emit_32(1116512256); -emit_32(1106557691); -emit_32(1114267661); -emit_32(1117024263); -emit_32(1106465102); -emit_32(1114267661); -emit_32(1117536256); -emit_32(1106678120); -emit_32(1114267661); -emit_32(1118048263); -emit_32(1106208044); -emit_32(1114267661); -emit_32(1118560256); -emit_32(1105390469); -emit_32(1114267661); -emit_32(1119072263); -emit_32(1105130632); -emit_32(1114267661); -emit_32(1119584256); -emit_32(1105068923); -emit_32(1114267661); -emit_32(1120096263); -emit_32(1105156532); -emit_32(1114267661); -emit_32(1120608322); -emit_32(1105073537); -emit_32(1114267661); -emit_32(1121120289); -emit_32(1105331225); -emit_32(1114267661); -emit_32(1121632256); -emit_32(1105964145); -emit_32(1114267661); -emit_32(1122144223); -emit_32(1106908702); -emit_32(1114267661); -emit_32(1122656322); -emit_32(1107699250); -emit_32(1114267661); -emit_32(1123168289); -emit_32(1107951485); -emit_32(1114267661); -emit_32(1123680256); -emit_32(1108124448); -emit_32(1114267661); -emit_32(1124132848); -emit_32(1108505998); -emit_32(1114267661); -emit_32(1124388897); -emit_32(1108644332); -emit_32(1114267661); -emit_32(1124644880); -emit_32(1108925429); -emit_32(1114267661); -emit_32(1124900864); -emit_32(1109130320); -emit_32(1114267661); -emit_32(1125156848); -emit_32(1109477189); -emit_32(1114267661); -emit_32(1125412897); -emit_32(1110047693); -emit_32(1114267661); -emit_32(1125668880); -emit_32(1110276833); -emit_32(1114267661); -emit_32(1125924864); -emit_32(1110533420); -emit_32(1114267661); -emit_32(1126180848); -emit_32(1110872975); -emit_32(1114267635); -emit_32(1126436897); -emit_32(1110877064); -emit_32(1114267635); -emit_32(1126692880); -emit_32(1111218743); -emit_32(1114267661); -emit_32(1126948864); -emit_32(1111252874); -emit_32(1114267661); -emit_32(1127204848); -emit_32(1110924067); -emit_32(1114267635); -emit_32(1127460897); -emit_32(1110454855); -emit_32(1114267635); -emit_32(1127716880); -emit_32(1109824949); -emit_32(1114267661); -emit_32(1127972864); -emit_32(1109367508); -emit_32(1114267661); -emit_32(1128228848); -emit_32(1108826469); -emit_32(1114267661); -emit_32(1128484897); -emit_32(1108105521); -emit_32(1114267661); -emit_32(1128740880); -emit_32(1107979010); -emit_32(1114267661); -emit_32(1128996864); -emit_32(1107413408); -emit_32(1114267661); -emit_32(1129252848); -emit_32(1106515224); -emit_32(1114267661); -emit_32(1129508897); -emit_32(1105576277); -emit_32(1114267661); -emit_32(1129764880); -emit_32(1104326584); -emit_32(1114267661); -emit_32(1130020864); -emit_32(1103294261); -emit_32(1114267661); -emit_32(1130276848); -emit_32(1102143501); -emit_32(1114267661); -emit_32(1130532897); -emit_32(1101094348); -emit_32(1114267661); -emit_32(1130788880); -emit_32(1100028785); -emit_32(1114267661); -emit_32(1131044864); -emit_32(1098592446); -emit_32(1114267661); -emit_32(1131300848); -emit_32(1095355492); -emit_32(1114267661); -emit_32(1131556897); -emit_32(1093903738); -emit_32(1114267661); -emit_32(1131812880); -emit_32(1093133979); -emit_32(1114267661); -emit_32(1132068864); -emit_32(1092040083); -emit_32(1114267661); -emit_32(1081737216); -emit_32(1105831238); -emit_32(1113243648); -emit_32(1090125824); -emit_32(1105941548); -emit_32(1113243648); -emit_32(1094418484); -emit_32(1106052330); -emit_32(1113243648); -emit_32(1098514432); -emit_32(1106181987); -emit_32(1113243648); -emit_32(1100759066); -emit_32(1106947762); -emit_32(1113243648); -emit_32(1102807040); -emit_32(1107434170); -emit_32(1113243648); -emit_32(1104855066); -emit_32(1107922597); -emit_32(1113243648); -emit_32(1106903040); -emit_32(1108070236); -emit_32(1113243648); -emit_32(1108123661); -emit_32(1108318408); -emit_32(1113243648); -emit_32(1109147648); -emit_32(1108398991); -emit_32(1113243648); -emit_32(1110171661); -emit_32(1108455247); -emit_32(1113243648); -emit_32(1111195648); -emit_32(1108380929); -emit_32(1113243648); -emit_32(1112219661); -emit_32(1108193129); -emit_32(1113243648); -emit_32(1113243648); -emit_32(1108214940); -emit_32(1113243648); -emit_32(1114267661); -emit_32(1108368189); -emit_32(1113243648); -emit_32(1115291648); -emit_32(1108351228); -emit_32(1113243648); -emit_32(1116000263); -emit_32(1108058728); -emit_32(1113243648); -emit_32(1116512256); -emit_32(1107523561); -emit_32(1113243648); -emit_32(1117024263); -emit_32(1107704624); -emit_32(1113243648); -emit_32(1117536256); -emit_32(1107780384); -emit_32(1113243648); -emit_32(1118048263); -emit_32(1107523797); -emit_32(1113243648); -emit_32(1118560256); -emit_32(1106889671); -emit_32(1113243648); -emit_32(1119072263); -emit_32(1105955127); -emit_32(1113243648); -emit_32(1119584256); -emit_32(1105678513); -emit_32(1113243648); -emit_32(1120096263); -emit_32(1105031175); -emit_32(1113243648); -emit_32(1120608322); -emit_32(1105177346); -emit_32(1113243648); -emit_32(1121120289); -emit_32(1105487043); -emit_32(1113243648); -emit_32(1121632256); -emit_32(1105785782); -emit_32(1113243648); -emit_32(1122144223); -emit_32(1106626950); -emit_32(1113243648); -emit_32(1122656322); -emit_32(1107401638); -emit_32(1113243648); -emit_32(1123168289); -emit_32(1107915047); -emit_32(1113243648); -emit_32(1123680256); -emit_32(1108256070); -emit_32(1113243648); -emit_32(1124132848); -emit_32(1108654529); -emit_32(1113243648); -emit_32(1124388897); -emit_32(1108830034); -emit_32(1113243648); -emit_32(1124644880); -emit_32(1108955156); -emit_32(1113243648); -emit_32(1124900864); -emit_32(1109136769); -emit_32(1113243648); -emit_32(1125156848); -emit_32(1109352907); -emit_32(1113243648); -emit_32(1125412897); -emit_32(1109748534); -emit_32(1113243648); -emit_32(1125668880); -emit_32(1109939926); -emit_32(1113243648); -emit_32(1125924864); -emit_32(1110036867); -emit_32(1113243648); -emit_32(1126180848); -emit_32(1110259401); -emit_32(1113243648); -emit_32(1126436897); -emit_32(1110514257); -emit_32(1113243648); -emit_32(1126692880); -emit_32(1110728167); -emit_32(1113243648); -emit_32(1126948864); -emit_32(1110690470); -emit_32(1113243648); -emit_32(1127204848); -emit_32(1110543172); -emit_32(1113243648); -emit_32(1127460897); -emit_32(1110206867); -emit_32(1113243648); -emit_32(1127716880); -emit_32(1109792994); -emit_32(1113243648); -emit_32(1127972864); -emit_32(1109392779); -emit_32(1113243648); -emit_32(1128228848); -emit_32(1108657596); -emit_32(1113243648); -emit_32(1128484897); -emit_32(1108142902); -emit_32(1113243648); -emit_32(1128740880); -emit_32(1107935625); -emit_32(1113243648); -emit_32(1128996864); -emit_32(1107490216); -emit_32(1113243648); -emit_32(1129252848); -emit_32(1107021844); -emit_32(1113243648); -emit_32(1129508897); -emit_32(1106216328); -emit_32(1113243648); -emit_32(1129764880); -emit_32(1105553103); -emit_32(1113243648); -emit_32(1130020864); -emit_32(1104695106); -emit_32(1113243648); -emit_32(1130276848); -emit_32(1103352404); -emit_32(1113243648); -emit_32(1130532897); -emit_32(1101904950); -emit_32(1113243648); -emit_32(1130788880); -emit_32(1101020476); -emit_32(1113243648); -emit_32(1131044864); -emit_32(1099594623); -emit_32(1113243648); -emit_32(1131300848); -emit_32(1097008782); -emit_32(1113243648); -emit_32(1131556897); -emit_32(1094881640); -emit_32(1113243648); -emit_32(1131812880); -emit_32(1093566726); -emit_32(1113243648); -emit_32(1132068864); -emit_32(1093310244); -emit_32(1113243648); -emit_32(1081737216); -emit_32(1106473438); -emit_32(1112219661); -emit_32(1090125824); -emit_32(1106755138); -emit_32(1112219661); -emit_32(1094418484); -emit_32(1106932662); -emit_32(1112219661); -emit_32(1098514432); -emit_32(1107310071); -emit_32(1112219661); -emit_32(1100759066); -emit_32(1107799179); -emit_32(1112219661); -emit_32(1102807040); -emit_32(1107999693); -emit_32(1112219661); -emit_32(1104855066); -emit_32(1108293059); -emit_32(1112219661); -emit_32(1106903040); -emit_32(1108560839); -emit_32(1112219661); -emit_32(1108123661); -emit_32(1108867783); -emit_32(1112219661); -emit_32(1109147648); -emit_32(1108932769); -emit_32(1112219661); -emit_32(1110171661); -emit_32(1108709527); -emit_32(1112219661); -emit_32(1111195648); -emit_32(1108681661); -emit_32(1112219661); -emit_32(1112219661); -emit_32(1108461250); -emit_32(1112219661); -emit_32(1113243648); -emit_32(1108501751); -emit_32(1112219661); -emit_32(1114267661); -emit_32(1108538058); -emit_32(1112219661); -emit_32(1115291648); -emit_32(1108506155); -emit_32(1112219661); -emit_32(1116000263); -emit_32(1108331069); -emit_32(1112219661); -emit_32(1116512256); -emit_32(1108130713); -emit_32(1112219661); -emit_32(1117024263); -emit_32(1108289153); -emit_32(1112219661); -emit_32(1117536256); -emit_32(1108320872); -emit_32(1112219661); -emit_32(1118048263); -emit_32(1108083946); -emit_32(1112219661); -emit_32(1118560256); -emit_32(1107747196); -emit_32(1112219661); -emit_32(1119072263); -emit_32(1107465942); -emit_32(1112219661); -emit_32(1119584256); -emit_32(1106748480); -emit_32(1112219661); -emit_32(1120096263); -emit_32(1105589856); -emit_32(1112219661); -emit_32(1120608322); -emit_32(1105803398); -emit_32(1112219661); -emit_32(1121120289); -emit_32(1106245426); -emit_32(1112219661); -emit_32(1121632256); -emit_32(1106538345); -emit_32(1112219661); -emit_32(1122144223); -emit_32(1107136191); -emit_32(1112219661); -emit_32(1122656322); -emit_32(1107495066); -emit_32(1112219661); -emit_32(1123168289); -emit_32(1107886552); -emit_32(1112219661); -emit_32(1123680256); -emit_32(1108441668); -emit_32(1112219661); -emit_32(1124132848); -emit_32(1108593266); -emit_32(1112219661); -emit_32(1124388897); -emit_32(1108683470); -emit_32(1112219661); -emit_32(1124644880); -emit_32(1108825211); -emit_32(1112219661); -emit_32(1124900864); -emit_32(1108891271); -emit_32(1112219661); -emit_32(1125156848); -emit_32(1109395715); -emit_32(1112219661); -emit_32(1125412897); -emit_32(1109608864); -emit_32(1112219661); -emit_32(1125668880); -emit_32(1110023576); -emit_32(1112219661); -emit_32(1125924864); -emit_32(1110077237); -emit_32(1112219661); -emit_32(1126180848); -emit_32(1110323678); -emit_32(1112219661); -emit_32(1126436897); -emit_32(1110319510); -emit_32(1112219661); -emit_32(1126692880); -emit_32(1110497559); -emit_32(1112219635); -emit_32(1126948864); -emit_32(1110356630); -emit_32(1112219661); -emit_32(1127204848); -emit_32(1110231745); -emit_32(1112219661); -emit_32(1127460897); -emit_32(1110168568); -emit_32(1112219661); -emit_32(1127716880); -emit_32(1109786440); -emit_32(1112219661); -emit_32(1127972864); -emit_32(1109264984); -emit_32(1112219661); -emit_32(1128228848); -emit_32(1108914445); -emit_32(1112219661); -emit_32(1128484897); -emit_32(1108210640); -emit_32(1112219661); -emit_32(1128740880); -emit_32(1107987897); -emit_32(1112219661); -emit_32(1128996864); -emit_32(1107869644); -emit_32(1112219661); -emit_32(1129252848); -emit_32(1107326534); -emit_32(1112219661); -emit_32(1129508897); -emit_32(1106725831); -emit_32(1112219661); -emit_32(1129764880); -emit_32(1106425466); -emit_32(1112219661); -emit_32(1130020864); -emit_32(1105264955); -emit_32(1112219661); -emit_32(1130276848); -emit_32(1103574860); -emit_32(1112219661); -emit_32(1130532897); -emit_32(1102181460); -emit_32(1112219661); -emit_32(1130788880); -emit_32(1101485677); -emit_32(1112219661); -emit_32(1131044864); -emit_32(1100402288); -emit_32(1112219661); -emit_32(1131300848); -emit_32(1098898421); -emit_32(1112219661); -emit_32(1131556897); -emit_32(1095522425); -emit_32(1112219661); -emit_32(1131812880); -emit_32(1094313732); -emit_32(1112219661); -emit_32(1132068864); -emit_32(1094995201); -emit_32(1112219661); -emit_32(1081737216); -emit_32(1106707585); -emit_32(1111195648); -emit_32(1090125824); -emit_32(1107420879); -emit_32(1111195648); -emit_32(1094418484); -emit_32(1107741455); -emit_32(1111195648); -emit_32(1098514432); -emit_32(1108119388); -emit_32(1111195648); -emit_32(1100759066); -emit_32(1108616649); -emit_32(1111195648); -emit_32(1102807040); -emit_32(1108965851); -emit_32(1111195648); -emit_32(1104855066); -emit_32(1109029919); -emit_32(1111195648); -emit_32(1106903040); -emit_32(1109125602); -emit_32(1111195648); -emit_32(1108123661); -emit_32(1109390551); -emit_32(1111195648); -emit_32(1109147648); -emit_32(1109477215); -emit_32(1111195648); -emit_32(1110171661); -emit_32(1109385334); -emit_32(1111195648); -emit_32(1111195648); -emit_32(1109314608); -emit_32(1111195648); -emit_32(1112219661); -emit_32(1109240919); -emit_32(1111195648); -emit_32(1113243648); -emit_32(1108946400); -emit_32(1111195648); -emit_32(1114267661); -emit_32(1108953006); -emit_32(1111195648); -emit_32(1115291648); -emit_32(1109031911); -emit_32(1111195648); -emit_32(1116000263); -emit_32(1108925062); -emit_32(1111195648); -emit_32(1116512256); -emit_32(1108595887); -emit_32(1111195648); -emit_32(1117024263); -emit_32(1108683941); -emit_32(1111195648); -emit_32(1117536256); -emit_32(1108833809); -emit_32(1111195648); -emit_32(1118048263); -emit_32(1108582282); -emit_32(1111195648); -emit_32(1118560256); -emit_32(1108393093); -emit_32(1111195648); -emit_32(1119072263); -emit_32(1108034008); -emit_32(1111195648); -emit_32(1119584256); -emit_32(1107578926); -emit_32(1111195648); -emit_32(1120096263); -emit_32(1106764313); -emit_32(1111195648); -emit_32(1120608322); -emit_32(1106737365); -emit_32(1111195648); -emit_32(1121120289); -emit_32(1107324568); -emit_32(1111195648); -emit_32(1121632256); -emit_32(1107570511); -emit_32(1111195648); -emit_32(1122144223); -emit_32(1107538818); -emit_32(1111195648); -emit_32(1122656322); -emit_32(1107646926); -emit_32(1111195648); -emit_32(1123168289); -emit_32(1107876984); -emit_32(1111195648); -emit_32(1123680256); -emit_32(1108102060); -emit_32(1111195648); -emit_32(1124132848); -emit_32(1108560812); -emit_32(1111195648); -emit_32(1124388897); -emit_32(1108645328); -emit_32(1111195648); -emit_32(1124644880); -emit_32(1108748770); -emit_32(1111195648); -emit_32(1124900864); -emit_32(1109085782); -emit_32(1111195648); -emit_32(1125156848); -emit_32(1109583226); -emit_32(1111195648); -emit_32(1125412897); -emit_32(1109638486); -emit_32(1111195648); -emit_32(1125668880); -emit_32(1110035425); -emit_32(1111195648); -emit_32(1125924864); -emit_32(1110433989); -emit_32(1111195648); -emit_32(1126180848); -emit_32(1110499420); -emit_32(1111195648); -emit_32(1126436897); -emit_32(1110684860); -emit_32(1111195648); -emit_32(1126692880); -emit_32(1110426858); -emit_32(1111195648); -emit_32(1126948864); -emit_32(1110251405); -emit_32(1111195648); -emit_32(1127204848); -emit_32(1110246503); -emit_32(1111195648); -emit_32(1127460897); -emit_32(1110057366); -emit_32(1111195648); -emit_32(1127716880); -emit_32(1109702135); -emit_32(1111195648); -emit_32(1127972864); -emit_32(1109224404); -emit_32(1111195648); -emit_32(1128228848); -emit_32(1108823035); -emit_32(1111195648); -emit_32(1128484897); -emit_32(1108466703); -emit_32(1111195648); -emit_32(1128740880); -emit_32(1108265009); -emit_32(1111195648); -emit_32(1128996864); -emit_32(1108131919); -emit_32(1111195648); -emit_32(1129252848); -emit_32(1107543668); -emit_32(1111195648); -emit_32(1129508897); -emit_32(1106964749); -emit_32(1111195648); -emit_32(1129764880); -emit_32(1106629467); -emit_32(1111195648); -emit_32(1130020864); -emit_32(1105373587); -emit_32(1111195648); -emit_32(1130276848); -emit_32(1103657645); -emit_32(1111195648); -emit_32(1130532897); -emit_32(1103203244); -emit_32(1111195648); -emit_32(1130788880); -emit_32(1102255384); -emit_32(1111195648); -emit_32(1131044864); -emit_32(1100737203); -emit_32(1111195648); -emit_32(1131300848); -emit_32(1099366557); -emit_32(1111195648); -emit_32(1131556897); -emit_32(1096754817); -emit_32(1111195648); -emit_32(1131812880); -emit_32(1096073871); -emit_32(1111195648); -emit_32(1132068864); -emit_32(1096026581); -emit_32(1111195648); -emit_32(1081737216); -emit_32(1107240944); -emit_32(1110171661); -emit_32(1090125824); -emit_32(1107823611); -emit_32(1110171661); -emit_32(1094418484); -emit_32(1108408821); -emit_32(1110171661); -emit_32(1098514432); -emit_32(1108701925); -emit_32(1110171661); -emit_32(1100759066); -emit_32(1109285326); -emit_32(1110171661); -emit_32(1102807040); -emit_32(1109681609); -emit_32(1110171661); -emit_32(1104855066); -emit_32(1109940345); -emit_32(1110171661); -emit_32(1106903040); -emit_32(1109939952); -emit_32(1110171661); -emit_32(1108123661); -emit_32(1109971121); -emit_32(1110171661); -emit_32(1109147648); -emit_32(1110303834); -emit_32(1110171661); -emit_32(1110171661); -emit_32(1110120962); -emit_32(1110171661); -emit_32(1111195648); -emit_32(1110000979); -emit_32(1110171661); -emit_32(1112219661); -emit_32(1109972484); -emit_32(1110171661); -emit_32(1113243648); -emit_32(1109736686); -emit_32(1110171661); -emit_32(1114267661); -emit_32(1109619612); -emit_32(1110171661); -emit_32(1115291648); -emit_32(1109518608); -emit_32(1110171661); -emit_32(1116000263); -emit_32(1109430003); -emit_32(1110171661); -emit_32(1116512256); -emit_32(1109161909); -emit_32(1110171661); -emit_32(1117024263); -emit_32(1109167492); -emit_32(1110171661); -emit_32(1117536256); -emit_32(1109168515); -emit_32(1110171661); -emit_32(1118048263); -emit_32(1109105626); -emit_32(1110171661); -emit_32(1118560256); -emit_32(1108756686); -emit_32(1110171661); -emit_32(1119072263); -emit_32(1108552555); -emit_32(1110171661); -emit_32(1119584256); -emit_32(1108023286); -emit_32(1110171661); -emit_32(1120096263); -emit_32(1107602178); -emit_32(1110171661); -emit_32(1120608322); -emit_32(1107405649); -emit_32(1110171661); -emit_32(1121120289); -emit_32(1107570616); -emit_32(1110171661); -emit_32(1121632256); -emit_32(1107660164); -emit_32(1110171661); -emit_32(1122144223); -emit_32(1107756004); -emit_32(1110171661); -emit_32(1122656322); -emit_32(1107706800); -emit_32(1110171661); -emit_32(1123168289); -emit_32(1107795667); -emit_32(1110171661); -emit_32(1123680256); -emit_32(1108061218); -emit_32(1110171661); -emit_32(1124132848); -emit_32(1108159365); -emit_32(1110171661); -emit_32(1124388897); -emit_32(1108652615); -emit_32(1110171661); -emit_32(1124644880); -emit_32(1108895151); -emit_32(1110171661); -emit_32(1124900864); -emit_32(1109068900); -emit_32(1110171661); -emit_32(1125156848); -emit_32(1109317911); -emit_32(1110171661); -emit_32(1125412897); -emit_32(1109583646); -emit_32(1110171661); -emit_32(1125668880); -emit_32(1109982314); -emit_32(1110171661); -emit_32(1125924864); -emit_32(1110319589); -emit_32(1110171661); -emit_32(1126180848); -emit_32(1110618800); -emit_32(1110171635); -emit_32(1126436897); -emit_32(1110589833); -emit_32(1110171661); -emit_32(1126692880); -emit_32(1110601236); -emit_32(1110171661); -emit_32(1126948864); -emit_32(1110238219); -emit_32(1110171661); -emit_32(1127204848); -emit_32(1110066804); -emit_32(1110171661); -emit_32(1127460897); -emit_32(1109910933); -emit_32(1110171661); -emit_32(1127716880); -emit_32(1109484739); -emit_32(1110171661); -emit_32(1127972864); -emit_32(1109107907); -emit_32(1110171661); -emit_32(1128228848); -emit_32(1108797633); -emit_32(1110171661); -emit_32(1128484897); -emit_32(1108483428); -emit_32(1110171661); -emit_32(1128740880); -emit_32(1108328081); -emit_32(1110171661); -emit_32(1128996864); -emit_32(1108125627); -emit_32(1110171661); -emit_32(1129252848); -emit_32(1107731808); -emit_32(1110171661); -emit_32(1129508897); -emit_32(1106917982); -emit_32(1110171661); -emit_32(1129764880); -emit_32(1106313688); -emit_32(1110171661); -emit_32(1130020864); -emit_32(1105521174); -emit_32(1110171661); -emit_32(1130276848); -emit_32(1104211450); -emit_32(1110171661); -emit_32(1130532897); -emit_32(1103253052); -emit_32(1110171661); -emit_32(1130788880); -emit_32(1102325744); -emit_32(1110171661); -emit_32(1131044864); -emit_32(1101081451); -emit_32(1110171661); -emit_32(1131300848); -emit_32(1099684171); -emit_32(1110171661); -emit_32(1131556897); -emit_32(1098145962); -emit_32(1110171661); -emit_32(1131812880); -emit_32(1096588198); -emit_32(1110171661); -emit_32(1132068864); -emit_32(1095942590); -emit_32(1110171661); -emit_32(1081737216); -emit_32(1108060956); -emit_32(1109147648); -emit_32(1090125824); -emit_32(1108546971); -emit_32(1109147648); -emit_32(1094418484); -emit_32(1109017939); -emit_32(1109147648); -emit_32(1098514432); -emit_32(1109407144); -emit_32(1109147648); -emit_32(1100759066); -emit_32(1109980401); -emit_32(1109147648); -emit_32(1102807040); -emit_32(1110240972); -emit_32(1109147648); -emit_32(1104855066); -emit_32(1110658358); -emit_32(1109147648); -emit_32(1106903040); -emit_32(1110751524); -emit_32(1109147648); -emit_32(1108123661); -emit_32(1110695844); -emit_32(1109147648); -emit_32(1109147648); -emit_32(1110721089); -emit_32(1109147648); -emit_32(1110171661); -emit_32(1110727406); -emit_32(1109147648); -emit_32(1111195648); -emit_32(1110842173); -emit_32(1109147648); -emit_32(1112219661); -emit_32(1110770765); -emit_32(1109147648); -emit_32(1113243648); -emit_32(1110489091); -emit_32(1109147648); -emit_32(1114267661); -emit_32(1110249518); -emit_32(1109147648); -emit_32(1115291648); -emit_32(1110116087); -emit_32(1109147648); -emit_32(1116000263); -emit_32(1110026722); -emit_32(1109147648); -emit_32(1116512256); -emit_32(1109757343); -emit_32(1109147648); -emit_32(1117024263); -emit_32(1109707325); -emit_32(1109147648); -emit_32(1117536256); -emit_32(1109736109); -emit_32(1109147648); -emit_32(1118048263); -emit_32(1109670940); -emit_32(1109147648); -emit_32(1118560256); -emit_32(1109409425); -emit_32(1109147648); -emit_32(1119072263); -emit_32(1109060459); -emit_32(1109147648); -emit_32(1119584256); -emit_32(1108683601); -emit_32(1109147648); -emit_32(1120096263); -emit_32(1108291643); -emit_32(1109147648); -emit_32(1120608322); -emit_32(1108134645); -emit_32(1109147648); -emit_32(1121120289); -emit_32(1107726382); -emit_32(1109147648); -emit_32(1121632256); -emit_32(1107627056); -emit_32(1109147648); -emit_32(1122144223); -emit_32(1107778260); -emit_32(1109147648); -emit_32(1122656322); -emit_32(1108018568); -emit_32(1109147648); -emit_32(1123168289); -emit_32(1107783031); -emit_32(1109147648); -emit_32(1123680256); -emit_32(1108023470); -emit_32(1109147648); -emit_32(1124132848); -emit_32(1108274551); -emit_32(1109147648); -emit_32(1124388897); -emit_32(1108502721); -emit_32(1109147648); -emit_32(1124644880); -emit_32(1108792679); -emit_32(1109147648); -emit_32(1124900864); -emit_32(1108934997); -emit_32(1109147648); -emit_32(1125156848); -emit_32(1109183483); -emit_32(1109147648); -emit_32(1125412897); -emit_32(1109454645); -emit_32(1109147648); -emit_32(1125668880); -emit_32(1109678699); -emit_32(1109147648); -emit_32(1125924864); -emit_32(1110022658); -emit_32(1109147648); -emit_32(1126180848); -emit_32(1110147151); -emit_32(1109147648); -emit_32(1126436897); -emit_32(1110222596); -emit_32(1109147648); -emit_32(1126692880); -emit_32(1110347035); -emit_32(1109147648); -emit_32(1126948864); -emit_32(1110235231); -emit_32(1109147648); -emit_32(1127204848); -emit_32(1110061194); -emit_32(1109147648); -emit_32(1127460897); -emit_32(1109745022); -emit_32(1109147648); -emit_32(1127716880); -emit_32(1109246162); -emit_32(1109147648); -emit_32(1127972864); -emit_32(1109124003); -emit_32(1109147648); -emit_32(1128228848); -emit_32(1108700011); -emit_32(1109147648); -emit_32(1128484897); -emit_32(1108308525); -emit_32(1109147648); -emit_32(1128740880); -emit_32(1108062844); -emit_32(1109147648); -emit_32(1128996864); -emit_32(1107977306); -emit_32(1109147648); -emit_32(1129252848); -emit_32(1107731205); -emit_32(1109147648); -emit_32(1129508897); -emit_32(1107357781); -emit_32(1109147648); -emit_32(1129764880); -emit_32(1106463529); -emit_32(1109147648); -emit_32(1130020864); -emit_32(1105450081); -emit_32(1109147648); -emit_32(1130276848); -emit_32(1104493307); -emit_32(1109147648); -emit_32(1130532897); -emit_32(1103358434); -emit_32(1109147648); -emit_32(1130788880); -emit_32(1102558632); -emit_32(1109147648); -emit_32(1131044864); -emit_32(1101338404); -emit_32(1109147648); -emit_32(1131300848); -emit_32(1100196558); -emit_32(1109147648); -emit_32(1131556897); -emit_32(1099061264); -emit_32(1109147648); -emit_32(1131812880); -emit_32(1096545521); -emit_32(1109147648); -emit_32(1132068864); -emit_32(1096018716); -emit_32(1109147648); -emit_32(1081737216); -emit_32(1109011386); -emit_32(1108123661); -emit_32(1090125824); -emit_32(1109203904); -emit_32(1108123661); -emit_32(1094418484); -emit_32(1109519263); -emit_32(1108123661); -emit_32(1098514432); -emit_32(1109988842); -emit_32(1108123661); -emit_32(1100759066); -emit_32(1110461461); -emit_32(1108123635); -emit_32(1102807040); -emit_32(1110941919); -emit_32(1108123635); -emit_32(1104855066); -emit_32(1111344415); -emit_32(1108123661); -emit_32(1106903040); -emit_32(1111428956); -emit_32(1108123661); -emit_32(1108123661); -emit_32(1111187862); -emit_32(1108123635); -emit_32(1109147648); -emit_32(1111258851); -emit_32(1108123635); -emit_32(1110171661); -emit_32(1111121199); -emit_32(1108123661); -emit_32(1111195648); -emit_32(1111334951); -emit_32(1108123661); -emit_32(1112219661); -emit_32(1111280871); -emit_32(1108123635); -emit_32(1113243648); -emit_32(1111290597); -emit_32(1108123635); -emit_32(1114267661); -emit_32(1111219660); -emit_32(1108123661); -emit_32(1115291648); -emit_32(1110791212); -emit_32(1108123661); -emit_32(1116000263); -emit_32(1110556043); -emit_32(1108123635); -emit_32(1116512256); -emit_32(1110407643); -emit_32(1108123635); -emit_32(1117024263); -emit_32(1110379174); -emit_32(1108123661); -emit_32(1117536256); -emit_32(1110347979); -emit_32(1108123661); -emit_32(1118048263); -emit_32(1110338280); -emit_32(1108123661); -emit_32(1118560256); -emit_32(1109911536); -emit_32(1108123661); -emit_32(1119072263); -emit_32(1109549908); -emit_32(1108123661); -emit_32(1119584256); -emit_32(1109081142); -emit_32(1108123661); -emit_32(1120096263); -emit_32(1108718492); -emit_32(1108123661); -emit_32(1120608322); -emit_32(1108472470); -emit_32(1108123661); -emit_32(1121120289); -emit_32(1108029604); -emit_32(1108123661); -emit_32(1121632256); -emit_32(1107454879); -emit_32(1108123661); -emit_32(1122144223); -emit_32(1107399252); -emit_32(1108123661); -emit_32(1122656322); -emit_32(1107660793); -emit_32(1108123661); -emit_32(1123168289); -emit_32(1107749241); -emit_32(1108123661); -emit_32(1123680256); -emit_32(1107770448); -emit_32(1108123661); -emit_32(1124132848); -emit_32(1108146730); -emit_32(1108123661); -emit_32(1124388897); -emit_32(1108341608); -emit_32(1108123661); -emit_32(1124644880); -emit_32(1108443057); -emit_32(1108123661); -emit_32(1124900864); -emit_32(1108765442); -emit_32(1108123661); -emit_32(1125156848); -emit_32(1108966061); -emit_32(1108123661); -emit_32(1125412897); -emit_32(1109234287); -emit_32(1108123661); -emit_32(1125668880); -emit_32(1109396423); -emit_32(1108123661); -emit_32(1125924864); -emit_32(1109622050); -emit_32(1108123661); -emit_32(1126180848); -emit_32(1109584826); -emit_32(1108123661); -emit_32(1126436897); -emit_32(1109832945); -emit_32(1108123661); -emit_32(1126692880); -emit_32(1109962759); -emit_32(1108123661); -emit_32(1126948864); -emit_32(1109897773); -emit_32(1108123661); -emit_32(1127204848); -emit_32(1109645800); -emit_32(1108123661); -emit_32(1127460897); -emit_32(1109215386); -emit_32(1108123661); -emit_32(1127716880); -emit_32(1108859027); -emit_32(1108123661); -emit_32(1127972864); -emit_32(1108683050); -emit_32(1108123661); -emit_32(1128228848); -emit_32(1108384704); -emit_32(1108123661); -emit_32(1128484897); -emit_32(1108232031); -emit_32(1108123661); -emit_32(1128740880); -emit_32(1108097027); -emit_32(1108123661); -emit_32(1128996864); -emit_32(1107779178); -emit_32(1108123661); -emit_32(1129252848); -emit_32(1107602938); -emit_32(1108123661); -emit_32(1129508897); -emit_32(1107406278); -emit_32(1108123661); -emit_32(1129764880); -emit_32(1106809874); -emit_32(1108123661); -emit_32(1130020864); -emit_32(1105779438); -emit_32(1108123661); -emit_32(1130276848); -emit_32(1104361030); -emit_32(1108123661); -emit_32(1130532897); -emit_32(1102937430); -emit_32(1108123661); -emit_32(1130788880); -emit_32(1102218107); -emit_32(1108123661); -emit_32(1131044864); -emit_32(1101488456); -emit_32(1108123661); -emit_32(1131300848); -emit_32(1100298741); -emit_32(1108123661); -emit_32(1131556897); -emit_32(1099192756); -emit_32(1108123661); -emit_32(1131812880); -emit_32(1097382704); -emit_32(1108123661); -emit_32(1132068864); -emit_32(1096297952); -emit_32(1108123661); -emit_32(1081737216); -emit_32(1109770397); -emit_32(1106903040); -emit_32(1090125824); -emit_32(1109777737); -emit_32(1106903040); -emit_32(1094418484); -emit_32(1110054299); -emit_32(1106903040); -emit_32(1098514432); -emit_32(1110481751); -emit_32(1106903040); -emit_32(1100759066); -emit_32(1110921734); -emit_32(1106903040); -emit_32(1102807040); -emit_32(1111312643); -emit_32(1106903040); -emit_32(1104855066); -emit_32(1111792130); -emit_32(1106903040); -emit_32(1106903040); -emit_32(1111787124); -emit_32(1106903040); -emit_32(1108123661); -emit_32(1111611697); -emit_32(1106903040); -emit_32(1109147648); -emit_32(1111513262); -emit_32(1106903040); -emit_32(1110171661); -emit_32(1111366278); -emit_32(1106903040); -emit_32(1111195648); -emit_32(1111544090); -emit_32(1106903040); -emit_32(1112219661); -emit_32(1111560762); -emit_32(1106903040); -emit_32(1113243648); -emit_32(1111668713); -emit_32(1106903040); -emit_32(1114267661); -emit_32(1111792235); -emit_32(1106903040); -emit_32(1115291648); -emit_32(1111628474); -emit_32(1106903040); -emit_32(1116000263); -emit_32(1111299169); -emit_32(1106903040); -emit_32(1116512256); -emit_32(1111051180); -emit_32(1106903040); -emit_32(1117024263); -emit_32(1110941447); -emit_32(1106903040); -emit_32(1117536256); -emit_32(1110781408); -emit_32(1106903040); -emit_32(1118048263); -emit_32(1110736162); -emit_32(1106903040); -emit_32(1118560256); -emit_32(1110488462); -emit_32(1106903040); -emit_32(1119072263); -emit_32(1109937383); -emit_32(1106903040); -emit_32(1119584256); -emit_32(1109345724); -emit_32(1106903040); -emit_32(1120096263); -emit_32(1108919032); -emit_32(1106903040); -emit_32(1120608322); -emit_32(1108581522); -emit_32(1106903040); -emit_32(1121120289); -emit_32(1108342132); -emit_32(1106903040); -emit_32(1121632256); -emit_32(1107848908); -emit_32(1106903040); -emit_32(1122144223); -emit_32(1107817451); -emit_32(1106903040); -emit_32(1122656322); -emit_32(1107677518); -emit_32(1106903040); -emit_32(1123168289); -emit_32(1107491160); -emit_32(1106903040); -emit_32(1123680256); -emit_32(1107374427); -emit_32(1106903040); -emit_32(1124132848); -emit_32(1107634238); -emit_32(1106903040); -emit_32(1124388897); -emit_32(1107933318); -emit_32(1106903040); -emit_32(1124644880); -emit_32(1108214022); -emit_32(1106903040); -emit_32(1124900864); -emit_32(1108453936); -emit_32(1106903040); -emit_32(1125156848); -emit_32(1108889960); -emit_32(1106903040); -emit_32(1125412897); -emit_32(1108978801); -emit_32(1106903040); -emit_32(1125668880); -emit_32(1108913553); -emit_32(1106903040); -emit_32(1125924864); -emit_32(1109166234); -emit_32(1106903040); -emit_32(1126180848); -emit_32(1109341451); -emit_32(1106903040); -emit_32(1126436897); -emit_32(1109498502); -emit_32(1106903040); -emit_32(1126692880); -emit_32(1109568048); -emit_32(1106903040); -emit_32(1126948864); -emit_32(1109560892); -emit_32(1106903040); -emit_32(1127204848); -emit_32(1109393539); -emit_32(1106903040); -emit_32(1127460897); -emit_32(1108906790); -emit_32(1106903040); -emit_32(1127716880); -emit_32(1108388794); -emit_32(1106903040); -emit_32(1127972864); -emit_32(1108280685); -emit_32(1106903040); -emit_32(1128228848); -emit_32(1108149246); -emit_32(1106903040); -emit_32(1128484897); -emit_32(1107958379); -emit_32(1106903040); -emit_32(1128740880); -emit_32(1107807725); -emit_32(1106903040); -emit_32(1128996864); -emit_32(1107773594); -emit_32(1106903040); -emit_32(1129252848); -emit_32(1107432414); -emit_32(1106903040); -emit_32(1129508897); -emit_32(1107128327); -emit_32(1106903040); -emit_32(1129764880); -emit_32(1106506678); -emit_32(1106903040); -emit_32(1130020864); -emit_32(1105675629); -emit_32(1106903040); -emit_32(1130276848); -emit_32(1104725148); -emit_32(1106903040); -emit_32(1130532897); -emit_32(1102879234); -emit_32(1106903040); -emit_32(1130788880); -emit_32(1102337697); -emit_32(1106903040); -emit_32(1131044864); -emit_32(1101447194); -emit_32(1106903040); -emit_32(1131300848); -emit_32(1100372404); -emit_32(1106903040); -emit_32(1131556897); -emit_32(1099275803); -emit_32(1106903040); -emit_32(1131812880); -emit_32(1097451700); -emit_32(1106903040); -emit_32(1132068864); -emit_32(1095526829); -emit_32(1106903040); -emit_32(1081737216); -emit_32(1110109952); -emit_32(1104855014); -emit_32(1090125824); -emit_32(1110275732); -emit_32(1104855066); -emit_32(1094418484); -emit_32(1110685778); -emit_32(1104855014); -emit_32(1098514432); -emit_32(1111152735); -emit_32(1104855066); -emit_32(1100759066); -emit_32(1111517587); -emit_32(1104855014); -emit_32(1102807040); -emit_32(1111678596); -emit_32(1104855066); -emit_32(1104855066); -emit_32(1111775642); -emit_32(1104855014); -emit_32(1106903040); -emit_32(1112048193); -emit_32(1104855066); -emit_32(1108123661); -emit_32(1111799470); -emit_32(1104855014); -emit_32(1109147648); -emit_32(1112134622); -emit_32(1104855066); -emit_32(1110171661); -emit_32(1111941867); -emit_32(1104855014); -emit_32(1111195648); -emit_32(1111767463); -emit_32(1104855066); -emit_32(1112219661); -emit_32(1111687011); -emit_32(1104855014); -emit_32(1113243648); -emit_32(1111766309); -emit_32(1104855066); -emit_32(1114267661); -emit_32(1111969340); -emit_32(1104855014); -emit_32(1115291648); -emit_32(1111967505); -emit_32(1104855066); -emit_32(1116000263); -emit_32(1111727355); -emit_32(1104855014); -emit_32(1116512256); -emit_32(1111359540); -emit_32(1104855066); -emit_32(1117024263); -emit_32(1111157847); -emit_32(1104855014); -emit_32(1117536256); -emit_32(1110917304); -emit_32(1104855066); -emit_32(1118048263); -emit_32(1110816929); -emit_32(1104855014); -emit_32(1118560256); -emit_32(1110568783); -emit_32(1104855066); -emit_32(1119072263); -emit_32(1110093490); -emit_32(1104855014); -emit_32(1119584256); -emit_32(1109527311); -emit_32(1104855066); -emit_32(1120096263); -emit_32(1108993586); -emit_32(1104855014); -emit_32(1120608322); -emit_32(1108933555); -emit_32(1104855066); -emit_32(1121120289); -emit_32(1108821698); -emit_32(1104855014); -emit_32(1121632256); -emit_32(1108751234); -emit_32(1104855066); -emit_32(1122144223); -emit_32(1108472837); -emit_32(1104855014); -emit_32(1122656322); -emit_32(1108266844); -emit_32(1104855066); -emit_32(1123168289); -emit_32(1107914103); -emit_32(1104855014); -emit_32(1123680256); -emit_32(1107834175); -emit_32(1104855066); -emit_32(1124132848); -emit_32(1107903539); -emit_32(1104855014); -emit_32(1124388897); -emit_32(1107817215); -emit_32(1104855066); -emit_32(1124644880); -emit_32(1107776661); -emit_32(1104855014); -emit_32(1124900864); -emit_32(1108217378); -emit_32(1104855066); -emit_32(1125156848); -emit_32(1108340821); -emit_32(1104855014); -emit_32(1125412897); -emit_32(1108427643); -emit_32(1104855066); -emit_32(1125668880); -emit_32(1108896016); -emit_32(1104855014); -emit_32(1125924864); -emit_32(1109136271); -emit_32(1104855066); -emit_32(1126180848); -emit_32(1109149745); -emit_32(1104855014); -emit_32(1126436897); -emit_32(1109121932); -emit_32(1104855066); -emit_32(1126692880); -emit_32(1108894600); -emit_32(1104855014); -emit_32(1126948864); -emit_32(1108941734); -emit_32(1104855066); -emit_32(1127204848); -emit_32(1108756031); -emit_32(1104855014); -emit_32(1127460897); -emit_32(1108342132); -emit_32(1104855066); -emit_32(1127716880); -emit_32(1107861281); -emit_32(1104855014); -emit_32(1127972864); -emit_32(1107811264); -emit_32(1104855066); -emit_32(1128228848); -emit_32(1107808905); -emit_32(1104855014); -emit_32(1128484897); -emit_32(1107751705); -emit_32(1104855066); -emit_32(1128740880); -emit_32(1107656337); -emit_32(1104855014); -emit_32(1128996864); -emit_32(1107347820); -emit_32(1104855066); -emit_32(1129252848); -emit_32(1107352119); -emit_32(1104855014); -emit_32(1129508897); -emit_32(1106497084); -emit_32(1104855066); -emit_32(1129764880); -emit_32(1105749344); -emit_32(1104855014); -emit_32(1130020864); -emit_32(1104957407); -emit_32(1104855066); -emit_32(1130276848); -emit_32(1104016048); -emit_32(1104855014); -emit_32(1130532897); -emit_32(1102858578); -emit_32(1104855066); -emit_32(1130788880); -emit_32(1102331511); -emit_32(1104855014); -emit_32(1131044864); -emit_32(1101186518); -emit_32(1104855066); -emit_32(1131300848); -emit_32(1100268490); -emit_32(1104855066); -emit_32(1131556897); -emit_32(1099251266); -emit_32(1104855066); -emit_32(1131812880); -emit_32(1097610874); -emit_32(1104855066); -emit_32(1132068864); -emit_32(1095739900); -emit_32(1104855066); -emit_32(1081737216); -emit_32(1110619796); -emit_32(1102807040); -emit_32(1090125824); -emit_32(1110999800); -emit_32(1102807040); -emit_32(1094418484); -emit_32(1111488489); -emit_32(1102807040); -emit_32(1098514432); -emit_32(1111646011); -emit_32(1102807040); -emit_32(1100759066); -emit_32(1111969235); -emit_32(1102807040); -emit_32(1102807040); -emit_32(1112017758); -emit_32(1102807040); -emit_32(1104855066); -emit_32(1111955341); -emit_32(1102807040); -emit_32(1106903040); -emit_32(1112183747); -emit_32(1102807040); -emit_32(1108123661); -emit_32(1112078287); -emit_32(1102807040); -emit_32(1109147648); -emit_32(1112415640); -emit_32(1102807040); -emit_32(1110171661); -emit_32(1112379359); -emit_32(1102807040); -emit_32(1111195648); -emit_32(1112160154); -emit_32(1102807040); -emit_32(1112219661); -emit_32(1112004362); -emit_32(1102807040); -emit_32(1113243648); -emit_32(1112284594); -emit_32(1102807040); -emit_32(1114267661); -emit_32(1112145815); -emit_32(1102807040); -emit_32(1115291648); -emit_32(1112028165); -emit_32(1102807040); -emit_32(1116000263); -emit_32(1111869699); -emit_32(1102807040); -emit_32(1116512256); -emit_32(1111690130); -emit_32(1102807040); -emit_32(1117024263); -emit_32(1111495488); -emit_32(1102807040); -emit_32(1117536256); -emit_32(1111516565); -emit_32(1102807040); -emit_32(1118048263); -emit_32(1111279455); -emit_32(1102807040); -emit_32(1118560256); -emit_32(1110753647); -emit_32(1102807040); -emit_32(1119072263); -emit_32(1110422245); -emit_32(1102807040); -emit_32(1119584256); -emit_32(1109864350); -emit_32(1102807040); -emit_32(1120096263); -emit_32(1109488566); -emit_32(1102807040); -emit_32(1120608322); -emit_32(1109477320); -emit_32(1102807040); -emit_32(1121120289); -emit_32(1109194755); -emit_32(1102807040); -emit_32(1121632256); -emit_32(1109034743); -emit_32(1102807040); -emit_32(1122144223); -emit_32(1108849800); -emit_32(1102807040); -emit_32(1122656322); -emit_32(1108636598); -emit_32(1102807040); -emit_32(1123168289); -emit_32(1108210719); -emit_32(1102807040); -emit_32(1123680256); -emit_32(1108302496); -emit_32(1102807040); -emit_32(1124132848); -emit_32(1108212213); -emit_32(1102807040); -emit_32(1124388897); -emit_32(1107870640); -emit_32(1102807040); -emit_32(1124644880); -emit_32(1107736422); -emit_32(1102807040); -emit_32(1124900864); -emit_32(1107676522); -emit_32(1102807040); -emit_32(1125156848); -emit_32(1108209094); -emit_32(1102807040); -emit_32(1125412897); -emit_32(1108349734); -emit_32(1102807040); -emit_32(1125668880); -emit_32(1108929675); -emit_32(1102807040); -emit_32(1125924864); -emit_32(1109162643); -emit_32(1102807040); -emit_32(1126180848); -emit_32(1109107540); -emit_32(1102807040); -emit_32(1126436897); -emit_32(1108914654); -emit_32(1102807040); -emit_32(1126692880); -emit_32(1108541388); -emit_32(1102807040); -emit_32(1126948864); -emit_32(1108505081); -emit_32(1102807040); -emit_32(1127204848); -emit_32(1108237222); -emit_32(1102807040); -emit_32(1127460897); -emit_32(1108014924); -emit_32(1102807040); -emit_32(1127716880); -emit_32(1107468589); -emit_32(1102807040); -emit_32(1127972864); -emit_32(1107449269); -emit_32(1102807040); -emit_32(1128228848); -emit_32(1107434458); -emit_32(1102807040); -emit_32(1128484897); -emit_32(1107390916); -emit_32(1102807040); -emit_32(1128740880); -emit_32(1107022787); -emit_32(1102807040); -emit_32(1128996864); -emit_32(1106671200); -emit_32(1102807040); -emit_32(1129252848); -emit_32(1106222724); -emit_32(1102807040); -emit_32(1129508897); -emit_32(1106247575); -emit_32(1102807040); -emit_32(1129764880); -emit_32(1105452230); -emit_32(1102807040); -emit_32(1130020864); -emit_32(1104502273); -emit_32(1102807040); -emit_32(1130276848); -emit_32(1103619634); -emit_32(1102807040); -emit_32(1130532897); -emit_32(1102588831); -emit_32(1102807040); -emit_32(1130788880); -emit_32(1101717150); -emit_32(1102807040); -emit_32(1131044864); -emit_32(1100508142); -emit_32(1102807040); -emit_32(1131300848); -emit_32(1100011589); -emit_32(1102807040); -emit_32(1131556897); -emit_32(1099322674); -emit_32(1102807040); -emit_32(1131812880); -emit_32(1097813040); -emit_32(1102807040); -emit_32(1132068864); -emit_32(1095768526); -emit_32(1102807040); -emit_32(1081737216); -emit_32(1111203643); -emit_32(1100759014); -emit_32(1090125824); -emit_32(1111589362); -emit_32(1100759014); -emit_32(1094418484); -emit_32(1112030917); -emit_32(1100759014); -emit_32(1098514432); -emit_32(1112275996); -emit_32(1100759014); -emit_32(1100759066); -emit_32(1112319197); -emit_32(1100759014); -emit_32(1102807040); -emit_32(1112479393); -emit_32(1100759014); -emit_32(1104855066); -emit_32(1112429638); -emit_32(1100759014); -emit_32(1106903040); -emit_32(1112415247); -emit_32(1100759014); -emit_32(1108123661); -emit_32(1112431998); -emit_32(1100759014); -emit_32(1109147648); -emit_32(1112654453); -emit_32(1100759014); -emit_32(1110171661); -emit_32(1112696396); -emit_32(1100759014); -emit_32(1111195648); -emit_32(1112521022); -emit_32(1100759014); -emit_32(1112219661); -emit_32(1112435904); -emit_32(1100759014); -emit_32(1113243648); -emit_32(1112240292); -emit_32(1100759014); -emit_32(1114267661); -emit_32(1112316209); -emit_32(1100759014); -emit_32(1115291648); -emit_32(1112066150); -emit_32(1100759014); -emit_32(1116000263); -emit_32(1111963651); -emit_32(1100759014); -emit_32(1116512256); -emit_32(1111800886); -emit_32(1100759014); -emit_32(1117024263); -emit_32(1111681296); -emit_32(1100759014); -emit_32(1117536256); -emit_32(1111620767); -emit_32(1100759014); -emit_32(1118048263); -emit_32(1111346774); -emit_32(1100759014); -emit_32(1118560256); -emit_32(1111034272); -emit_32(1100759014); -emit_32(1119072263); -emit_32(1110619088); -emit_32(1100759014); -emit_32(1119584256); -emit_32(1110189723); -emit_32(1100759014); -emit_32(1120096263); -emit_32(1109747512); -emit_32(1100759014); -emit_32(1120608322); -emit_32(1109609965); -emit_32(1100759014); -emit_32(1121120289); -emit_32(1109538216); -emit_32(1100759014); -emit_32(1121632256); -emit_32(1109322341); -emit_32(1100759014); -emit_32(1122144223); -emit_32(1109116505); -emit_32(1100759014); -emit_32(1122656322); -emit_32(1108968237); -emit_32(1100759014); -emit_32(1123168289); -emit_32(1108596962); -emit_32(1100759014); -emit_32(1123680256); -emit_32(1108337885); -emit_32(1100759014); -emit_32(1124132848); -emit_32(1108184583); -emit_32(1100759014); -emit_32(1124388897); -emit_32(1107955103); -emit_32(1100759014); -emit_32(1124644880); -emit_32(1108010677); -emit_32(1100759014); -emit_32(1124900864); -emit_32(1107800306); -emit_32(1100759014); -emit_32(1125156848); -emit_32(1107894626); -emit_32(1100759014); -emit_32(1125412897); -emit_32(1108230616); -emit_32(1100759014); -emit_32(1125668880); -emit_32(1108803374); -emit_32(1100759014); -emit_32(1125924864); -emit_32(1109075454); -emit_32(1100759014); -emit_32(1126180848); -emit_32(1109027350); -emit_32(1100759014); -emit_32(1126436897); -emit_32(1108939951); -emit_32(1100759014); -emit_32(1126692880); -emit_32(1108326744); -emit_32(1100759014); -emit_32(1126948864); -emit_32(1108036865); -emit_32(1100759014); -emit_32(1127204848); -emit_32(1107817923); -emit_32(1100759014); -emit_32(1127460897); -emit_32(1107732464); -emit_32(1100759014); -emit_32(1127716880); -emit_32(1107137554); -emit_32(1100759014); -emit_32(1127972864); -emit_32(1106958562); -emit_32(1100759014); -emit_32(1128228848); -emit_32(1106960135); -emit_32(1100759014); -emit_32(1128484897); -emit_32(1106646873); -emit_32(1100759014); -emit_32(1128740880); -emit_32(1105859497); -emit_32(1100759014); -emit_32(1128996864); -emit_32(1105603382); -emit_32(1100759014); -emit_32(1129252848); -emit_32(1105170530); -emit_32(1100759014); -emit_32(1129508897); -emit_32(1105374164); -emit_32(1100759014); -emit_32(1129764880); -emit_32(1105401636); -emit_32(1100759014); -emit_32(1130020864); -emit_32(1104911427); -emit_32(1100759014); -emit_32(1130276848); -emit_32(1103660424); -emit_32(1100759014); -emit_32(1130532897); -emit_32(1102697778); -emit_32(1100759014); -emit_32(1130788880); -emit_32(1101449239); -emit_32(1100759066); -emit_32(1131044864); -emit_32(1100702810); -emit_32(1100759066); -emit_32(1131300848); -emit_32(1099801611); -emit_32(1100759066); -emit_32(1131556897); -emit_32(1099221015); -emit_32(1100759066); -emit_32(1131812880); -emit_32(1097633733); -emit_32(1100759066); -emit_32(1132068864); -emit_32(1095588276); -emit_32(1100759066); -emit_32(1081737216); -emit_32(1111812866); -emit_32(1098514432); -emit_32(1090125824); -emit_32(1112034614); -emit_32(1098514432); -emit_32(1094418484); -emit_32(1112430949); -emit_32(1098514432); -emit_32(1098514432); -emit_32(1112552899); -emit_32(1098514432); -emit_32(1100759066); -emit_32(1112388901); -emit_32(1098514432); -emit_32(1102807040); -emit_32(1112497324); -emit_32(1098514432); -emit_32(1104855066); -emit_32(1112626351); -emit_32(1098514432); -emit_32(1106903040); -emit_32(1112804164); -emit_32(1098514432); -emit_32(1108123661); -emit_32(1112732048); -emit_32(1098514432); -emit_32(1109147648); -emit_32(1112876043); -emit_32(1098514432); -emit_32(1110171661); -emit_32(1112974741); -emit_32(1098514432); -emit_32(1111195648); -emit_32(1112667141); -emit_32(1098514432); -emit_32(1112219661); -emit_32(1112522411); -emit_32(1098514432); -emit_32(1113243648); -emit_32(1112234315); -emit_32(1098514432); -emit_32(1114267661); -emit_32(1112061562); -emit_32(1098514432); -emit_32(1115291648); -emit_32(1111763216); -emit_32(1098514432); -emit_32(1116000263); -emit_32(1111779207); -emit_32(1098514432); -emit_32(1116512256); -emit_32(1111697732); -emit_32(1098514432); -emit_32(1117024263); -emit_32(1111651097); -emit_32(1098514432); -emit_32(1117536256); -emit_32(1111523564); -emit_32(1098514432); -emit_32(1118048263); -emit_32(1111418916); -emit_32(1098514432); -emit_32(1118560256); -emit_32(1111207811); -emit_32(1098514432); -emit_32(1119072263); -emit_32(1110728743); -emit_32(1098514432); -emit_32(1119584256); -emit_32(1110351885); -emit_32(1098514432); -emit_32(1120096263); -emit_32(1110067354); -emit_32(1098514432); -emit_32(1120608322); -emit_32(1109906476); -emit_32(1098514432); -emit_32(1121120289); -emit_32(1109648474); -emit_32(1098514432); -emit_32(1121632256); -emit_32(1109594787); -emit_32(1098514432); -emit_32(1122144223); -emit_32(1109226711); -emit_32(1098514432); -emit_32(1122656322); -emit_32(1109203825); -emit_32(1098514432); -emit_32(1123168289); -emit_32(1108763659); -emit_32(1098514432); -emit_32(1123680256); -emit_32(1108360770); -emit_32(1098514432); -emit_32(1124132848); -emit_32(1108356628); -emit_32(1098514432); -emit_32(1124388897); -emit_32(1108118838); -emit_32(1098514432); -emit_32(1124644880); -emit_32(1108079411); -emit_32(1098514432); -emit_32(1124900864); -emit_32(1107833179); -emit_32(1098514432); -emit_32(1125156848); -emit_32(1107770841); -emit_32(1098514432); -emit_32(1125412897); -emit_32(1108082531); -emit_32(1098514432); -emit_32(1125668880); -emit_32(1108414667); -emit_32(1098514432); -emit_32(1125924864); -emit_32(1108808670); -emit_32(1098514432); -emit_32(1126180848); -emit_32(1108779572); -emit_32(1098514432); -emit_32(1126436897); -emit_32(1108586686); -emit_32(1098514432); -emit_32(1126692880); -emit_32(1108017650); -emit_32(1098514432); -emit_32(1126948864); -emit_32(1107632508); -emit_32(1098514432); -emit_32(1127204848); -emit_32(1107530849); -emit_32(1098514432); -emit_32(1127460897); -emit_32(1107331357); -emit_32(1098514432); -emit_32(1127716880); -emit_32(1106461065); -emit_32(1098514432); -emit_32(1127972864); -emit_32(1105721295); -emit_32(1098514432); -emit_32(1128228848); -emit_32(1105899395); -emit_32(1098514432); -emit_32(1128484897); -emit_32(1105780959); -emit_32(1098514432); -emit_32(1128740880); -emit_32(1105112806); -emit_32(1098514432); -emit_32(1128996864); -emit_32(1104398988); -emit_32(1098514432); -emit_32(1129252848); -emit_32(1104246420); -emit_32(1098514432); -emit_32(1129508897); -emit_32(1104877715); -emit_32(1098514432); -emit_32(1129764880); -emit_32(1104934024); -emit_32(1098514432); -emit_32(1130020864); -emit_32(1104407062); -emit_32(1098514432); -emit_32(1130276848); -emit_32(1103509009); -emit_32(1098514432); -emit_32(1130532897); -emit_32(1102561359); -emit_32(1098514432); -emit_32(1130788880); -emit_32(1101226941); -emit_32(1098514432); -emit_32(1131044864); -emit_32(1100378223); -emit_32(1098514432); -emit_32(1131300848); -emit_32(1099670330); -emit_32(1098514432); -emit_32(1131556897); -emit_32(1099052247); -emit_32(1098514432); -emit_32(1131812880); -emit_32(1097040344); -emit_32(1098514432); -emit_32(1132068864); -emit_32(1094514429); -emit_32(1098514432); -emit_32(1081737216); -emit_32(1112309314); -emit_32(1094418380); -emit_32(1090125824); -emit_32(1112490036); -emit_32(1094418380); -emit_32(1094418484); -emit_32(1112564590); -emit_32(1094418380); -emit_32(1098514432); -emit_32(1112495017); -emit_32(1094418380); -emit_32(1100759066); -emit_32(1112570934); -emit_32(1094418380); -emit_32(1102807040); -emit_32(1112483797); -emit_32(1094418380); -emit_32(1104855066); -emit_32(1112593269); -emit_32(1094418380); -emit_32(1106903040); -emit_32(1112653955); -emit_32(1094418380); -emit_32(1108123661); -emit_32(1112696973); -emit_32(1094418380); -emit_32(1109147648); -emit_32(1112876358); -emit_32(1094418380); -emit_32(1110171661); -emit_32(1112771972); -emit_32(1094418380); -emit_32(1111195648); -emit_32(1112696658); -emit_32(1094418380); -emit_32(1112219661); -emit_32(1112760438); -emit_32(1094418380); -emit_32(1113243648); -emit_32(1112709844); -emit_32(1094418380); -emit_32(1114267661); -emit_32(1112445708); -emit_32(1094418380); -emit_32(1115291648); -emit_32(1112126810); -emit_32(1094418380); -emit_32(1116000263); -emit_32(1111838268); -emit_32(1094418380); -emit_32(1116512256); -emit_32(1111661530); -emit_32(1094418380); -emit_32(1117024263); -emit_32(1111906163); -emit_32(1094418380); -emit_32(1117536256); -emit_32(1112106389); -emit_32(1094418380); -emit_32(1118048263); -emit_32(1111761879); -emit_32(1094418380); -emit_32(1118560256); -emit_32(1111398128); -emit_32(1094418380); -emit_32(1119072263); -emit_32(1110978645); -emit_32(1094418380); -emit_32(1119584256); -emit_32(1110634319); -emit_32(1094418380); -emit_32(1120096263); -emit_32(1110529776); -emit_32(1094418380); -emit_32(1120608322); -emit_32(1110304358); -emit_32(1094418380); -emit_32(1121120289); -emit_32(1110165710); -emit_32(1094418380); -emit_32(1121632256); -emit_32(1109858216); -emit_32(1094418380); -emit_32(1122144223); -emit_32(1109581365); -emit_32(1094418380); -emit_32(1122656322); -emit_32(1109235859); -emit_32(1094418380); -emit_32(1123168289); -emit_32(1108903907); -emit_32(1094418380); -emit_32(1123680256); -emit_32(1108430973); -emit_32(1094418380); -emit_32(1124132848); -emit_32(1108410683); -emit_32(1094418380); -emit_32(1124388897); -emit_32(1108135038); -emit_32(1094418380); -emit_32(1124644880); -emit_32(1107804973); -emit_32(1094418380); -emit_32(1124900864); -emit_32(1107639901); -emit_32(1094418380); -emit_32(1125156848); -emit_32(1107772126); -emit_32(1094418380); -emit_32(1125412897); -emit_32(1107737261); -emit_32(1094418380); -emit_32(1125668880); -emit_32(1108006063); -emit_32(1094418380); -emit_32(1125924864); -emit_32(1108199919); -emit_32(1094418380); -emit_32(1126180848); -emit_32(1108248678); -emit_32(1094418380); -emit_32(1126436897); -emit_32(1107916253); -emit_32(1094418380); -emit_32(1126692880); -emit_32(1107555149); -emit_32(1094418380); -emit_32(1126948864); -emit_32(1107371177); -emit_32(1094418380); -emit_32(1127204848); -emit_32(1107332275); -emit_32(1094418380); -emit_32(1127460897); -emit_32(1106749686); -emit_32(1094418380); -emit_32(1127716880); -emit_32(1105781640); -emit_32(1094418380); -emit_32(1127972864); -emit_32(1105277223); -emit_32(1094418380); -emit_32(1128228848); -emit_32(1104907757); -emit_32(1094418380); -emit_32(1128484897); -emit_32(1104873049); -emit_32(1094418380); -emit_32(1128740880); -emit_32(1104381896); -emit_32(1094418380); -emit_32(1128996864); -emit_32(1103612294); -emit_32(1094418380); -emit_32(1129252848); -emit_32(1103676519); -emit_32(1094418380); -emit_32(1129508897); -emit_32(1104280132); -emit_32(1094418380); -emit_32(1129764880); -emit_32(1104232789); -emit_32(1094418380); -emit_32(1130020864); -emit_32(1103550533); -emit_32(1094418380); -emit_32(1130276848); -emit_32(1102514592); -emit_32(1094418380); -emit_32(1130532897); -emit_32(1101953866); -emit_32(1094418380); -emit_32(1130788880); -emit_32(1100634653); -emit_32(1094418380); -emit_32(1131044864); -emit_32(1099709337); -emit_32(1094418380); -emit_32(1131300848); -emit_32(1099034526); -emit_32(1094418380); -emit_32(1131556897); -emit_32(1098146172); -emit_32(1094418380); -emit_32(1131812880); -emit_32(1096675754); -emit_32(1094418380); -emit_32(1132068864); -emit_32(1095032426); -emit_32(1094418380); -emit_32(1081737216); -emit_32(1112605380); -emit_32(1090125824); -emit_32(1090125824); -emit_32(1112742534); -emit_32(1090125824); -emit_32(1094418484); -emit_32(1112581997); -emit_32(1090125824); -emit_32(1098514432); -emit_32(1112591984); -emit_32(1090125824); -emit_32(1100759066); -emit_32(1112534732); -emit_32(1090125824); -emit_32(1102807040); -emit_32(1112399387); -emit_32(1090125824); -emit_32(1104855066); -emit_32(1112277857); -emit_32(1090125824); -emit_32(1106903040); -emit_32(1112201599); -emit_32(1090125824); -emit_32(1108123661); -emit_32(1112445472); -emit_32(1090125824); -emit_32(1109147648); -emit_32(1112670418); -emit_32(1090125824); -emit_32(1110171661); -emit_32(1112875572); -emit_32(1090125824); -emit_32(1111195648); -emit_32(1112679095); -emit_32(1090125824); -emit_32(1112219661); -emit_32(1112703500); -emit_32(1090125824); -emit_32(1113243648); -emit_32(1112775511); -emit_32(1090125824); -emit_32(1114267661); -emit_32(1112764999); -emit_32(1090125824); -emit_32(1115291648); -emit_32(1112475330); -emit_32(1090125824); -emit_32(1116000263); -emit_32(1112362661); -emit_32(1090125824); -emit_32(1116512256); -emit_32(1112174966); -emit_32(1090125824); -emit_32(1117024263); -emit_32(1112258039); -emit_32(1090125824); -emit_32(1117536256); -emit_32(1112460755); -emit_32(1090125824); -emit_32(1118048263); -emit_32(1112160312); -emit_32(1090125824); -emit_32(1118560256); -emit_32(1111604462); -emit_32(1090125824); -emit_32(1119072263); -emit_32(1111322578); -emit_32(1090125824); -emit_32(1119584256); -emit_32(1110893291); -emit_32(1090125824); -emit_32(1120096263); -emit_32(1110900736); -emit_32(1090125824); -emit_32(1120608322); -emit_32(1110553369); -emit_32(1090125824); -emit_32(1121120289); -emit_32(1110630518); -emit_32(1090125824); -emit_32(1121632256); -emit_32(1110571431); -emit_32(1090125824); -emit_32(1122144223); -emit_32(1110245900); -emit_32(1090125824); -emit_32(1122656322); -emit_32(1109753463); -emit_32(1090125824); -emit_32(1123168289); -emit_32(1109358386); -emit_32(1090125824); -emit_32(1123680256); -emit_32(1108613530); -emit_32(1090125824); -emit_32(1124132848); -emit_32(1108478368); -emit_32(1090125824); -emit_32(1124388897); -emit_32(1108175854); -emit_32(1090125824); -emit_32(1124644880); -emit_32(1107804527); -emit_32(1090125824); -emit_32(1124900864); -emit_32(1107498500); -emit_32(1090125824); -emit_32(1125156848); -emit_32(1107513704); -emit_32(1090125824); -emit_32(1125412897); -emit_32(1107414562); -emit_32(1090125824); -emit_32(1125668880); -emit_32(1107678934); -emit_32(1090125824); -emit_32(1125924864); -emit_32(1107910564); -emit_32(1090125824); -emit_32(1126180848); -emit_32(1108046853); -emit_32(1090125824); -emit_32(1126436897); -emit_32(1107743028); -emit_32(1090125824); -emit_32(1126692880); -emit_32(1107443817); -emit_32(1090125824); -emit_32(1126948864); -emit_32(1107040246); -emit_32(1090125824); -emit_32(1127204848); -emit_32(1106762321); -emit_32(1090125824); -emit_32(1127460897); -emit_32(1106354582); -emit_32(1090125824); -emit_32(1127716880); -emit_32(1105464079); -emit_32(1090125824); -emit_32(1127972864); -emit_32(1104597169); -emit_32(1090125824); -emit_32(1128228848); -emit_32(1103944902); -emit_32(1090125824); -emit_32(1128484897); -emit_32(1104198028); -emit_32(1090125824); -emit_32(1128740880); -emit_32(1103790342); -emit_32(1090125824); -emit_32(1128996864); -emit_32(1103102686); -emit_32(1090125824); -emit_32(1129252848); -emit_32(1103136555); -emit_32(1090125824); -emit_32(1129508897); -emit_32(1103360688); -emit_32(1090125824); -emit_32(1129764880); -emit_32(1103301339); -emit_32(1090125824); -emit_32(1130020864); -emit_32(1102581596); -emit_32(1090125824); -emit_32(1130276848); -emit_32(1101582723); -emit_32(1090125824); -emit_32(1130532897); -emit_32(1100502427); -emit_32(1090125824); -emit_32(1130788880); -emit_32(1099934623); -emit_32(1090125824); -emit_32(1131044864); -emit_32(1099180854); -emit_32(1090125824); -emit_32(1131300848); -emit_32(1098378012); -emit_32(1090125824); -emit_32(1131556897); -emit_32(1096908852); -emit_32(1090125824); -emit_32(1131812880); -emit_32(1096091278); -emit_32(1090125824); -emit_32(1132068864); -emit_32(1095719453); -emit_32(1090125824); -emit_32(1081737216); -emit_32(1112701298); -emit_32(1081737216); -emit_32(1090125824); -emit_32(1112503694); -emit_32(1081737216); -emit_32(1094418484); -emit_32(1112328084); -emit_32(1081737216); -emit_32(1098514432); -emit_32(1112069951); -emit_32(1081737216); -emit_32(1100759066); -emit_32(1112173655); -emit_32(1081737216); -emit_32(1102807040); -emit_32(1112198559); -emit_32(1081737216); -emit_32(1104855066); -emit_32(1112333694); -emit_32(1081737216); -emit_32(1106903040); -emit_32(1112388744); -emit_32(1081737216); -emit_32(1108123661); -emit_32(1112590726); -emit_32(1081737216); -emit_32(1109147648); -emit_32(1113057735); -emit_32(1081737216); -emit_32(1110171661); -emit_32(1113035296); -emit_32(1081737216); -emit_32(1111195648); -emit_32(1112886896); -emit_32(1081737216); -emit_32(1112219661); -emit_32(1112955971); -emit_32(1081737216); -emit_32(1113243648); -emit_32(1113474440); -emit_32(1081737216); -emit_32(1114267661); -emit_32(1113373252); -emit_32(1081737216); -emit_32(1115291648); -emit_32(1112981923); -emit_32(1081737216); -emit_32(1116000263); -emit_32(1112815462); -emit_32(1081737216); -emit_32(1116512256); -emit_32(1112451711); -emit_32(1081737216); -emit_32(1117024263); -emit_32(1112394144); -emit_32(1081737216); -emit_32(1117536256); -emit_32(1112528414); -emit_32(1081737216); -emit_32(1118048263); -emit_32(1112287950); -emit_32(1081737216); -emit_32(1118560256); -emit_32(1111949653); -emit_32(1081737216); -emit_32(1119072263); -emit_32(1111682685); -emit_32(1081737216); -emit_32(1119584256); -emit_32(1111194678); -emit_32(1081737216); -emit_32(1120096263); -emit_32(1111068639); -emit_32(1081737216); -emit_32(1120608322); -emit_32(1110815303); -emit_32(1081737216); -emit_32(1121120289); -emit_32(1110882674); -emit_32(1081737216); -emit_32(1121632256); -emit_32(1110789010); -emit_32(1081737216); -emit_32(1122144223); -emit_32(1110340062); -emit_32(1081737216); -emit_32(1122656322); -emit_32(1109951539); -emit_32(1081737216); -emit_32(1123168289); -emit_32(1109517848); -emit_32(1081737216); -emit_32(1123680256); -emit_32(1109219108); -emit_32(1081737216); -emit_32(1124132848); -emit_32(1108888571); -emit_32(1081737216); -emit_32(1124388897); -emit_32(1108548203); -emit_32(1081737216); -emit_32(1124644880); -emit_32(1108062057); -emit_32(1081737216); -emit_32(1124900864); -emit_32(1107391755); -emit_32(1081737216); -emit_32(1125156848); -emit_32(1107147201); -emit_32(1081737216); -emit_32(1125412897); -emit_32(1106562515); -emit_32(1081737216); -emit_32(1125668880); -emit_32(1107088323); -emit_32(1081737216); -emit_32(1125924864); -emit_32(1107466728); -emit_32(1081737216); -emit_32(1126180848); -emit_32(1107640477); -emit_32(1081737216); -emit_32(1126436897); -emit_32(1107446858); -emit_32(1081737216); -emit_32(1126692880); -emit_32(1107035003); -emit_32(1081737216); -emit_32(1126948864); -emit_32(1106606398); -emit_32(1081737216); -emit_32(1127204848); -emit_32(1106181305); -emit_32(1081737216); -emit_32(1127460897); -emit_32(1105541831); -emit_32(1081737216); -emit_32(1127716880); -emit_32(1104783501); -emit_32(1081737216); -emit_32(1127972864); -emit_32(1103855197); -emit_32(1081737216); -emit_32(1128228848); -emit_32(1103186310); -emit_32(1081737216); -emit_32(1128484897); -emit_32(1103087482); -emit_32(1081737216); -emit_32(1128740880); -emit_32(1102981471); -emit_32(1081737216); -emit_32(1128996864); -emit_32(1102264716); -emit_32(1081737216); -emit_32(1129252848); -emit_32(1102136581); -emit_32(1081737216); -emit_32(1129508897); -emit_32(1101851735); -emit_32(1081737216); -emit_32(1129764880); -emit_32(1101959109); -emit_32(1081737216); -emit_32(1130020864); -emit_32(1101538001); -emit_32(1081737216); -emit_32(1130276848); -emit_32(1100676386); -emit_32(1081737216); -emit_32(1130532897); -emit_32(1100067740); -emit_32(1081737216); -emit_32(1130788880); -emit_32(1099550582); -emit_32(1081737216); -emit_32(1131044864); -emit_32(1099061684); -emit_32(1081737216); -emit_32(1131300848); -emit_32(1097284243); -emit_32(1081737216); -emit_32(1131556897); -emit_32(1096432799); -emit_32(1081737216); -emit_32(1131812880); -emit_32(1096013998); -emit_32(1081737216); -emit_32(1132068864); -emit_32(1095458043); -emit_32(1081737216); -emit_start(Landscape05Vtx) -emit_32(3279552512); -emit_32(3212673672); -emit_32(0); -emit_32(3279552512); -emit_32(1041185636); -emit_32(1081737216); -emit_32(3279296528); -emit_32(1059833579); -emit_32(0); -emit_32(3279296528); -emit_32(1071476480); -emit_32(1081737216); -emit_32(3279040545); -emit_32(1072407784); -emit_32(0); -emit_32(3279040545); -emit_32(1076263523); -emit_32(1081737216); -emit_32(3278784496); -emit_32(1080759692); -emit_32(3022808678); -emit_32(3278784496); -emit_32(1082158660); -emit_32(1081737216); -emit_32(3278528512); -emit_32(1084161503); -emit_32(3026792956); -emit_32(3278528512); -emit_32(1084513929); -emit_32(1081737216); -emit_32(3278272528); -emit_32(1087503650); -emit_32(3029991200); -emit_32(3278272528); -emit_32(1087785717); -emit_32(1081737216); -emit_32(3278016545); -emit_32(1090834682); -emit_32(3032665494); -emit_32(3278016545); -emit_32(1090972056); -emit_32(1081737216); -emit_32(3277760496); -emit_32(1092557314); -emit_32(3035192119); -emit_32(3277760496); -emit_32(1092442569); -emit_32(1081737216); -emit_32(3277504512); -emit_32(1094292446); -emit_32(3037206586); -emit_32(3277504512); -emit_32(1094046974); -emit_32(1081737216); -emit_32(3277248528); -emit_32(1097139854); -emit_32(3039294743); -emit_32(3277248528); -emit_32(1097043280); -emit_32(1081737216); -emit_32(3276992545); -emit_32(1099197999); -emit_32(3041017018); -emit_32(3276992545); -emit_32(1098999818); -emit_32(1081737216); -emit_32(3276736496); -emit_32(1100402917); -emit_32(3042784259); -emit_32(3276736496); -emit_32(1100434742); -emit_32(1081737216); -emit_32(3276480512); -emit_32(1101809268); -emit_32(3044847030); -emit_32(3276480512); -emit_32(1101659007); -emit_32(1081737216); -emit_32(3276224528); -emit_32(1102438046); -emit_32(3045416976); -emit_32(3276224528); -emit_32(1102608545); -emit_32(1081737216); -emit_32(3275968545); -emit_32(1103348997); -emit_32(3046085013); -emit_32(3275968545); -emit_32(1103417836); -emit_32(1081737216); -emit_32(3275712496); -emit_32(1104211817); -emit_32(3046717804); -emit_32(3275712496); -emit_32(1104053168); -emit_32(1081737216); -emit_32(3275456512); -emit_32(1104674187); -emit_32(3047056805); -emit_32(3275456512); -emit_32(1104973450); -emit_32(1081737216); -emit_32(3275200528); -emit_32(1105401165); -emit_32(3047590024); -emit_32(3275200528); -emit_32(1105837477); -emit_32(1081737216); -emit_32(3274944545); -emit_32(1105747352); -emit_32(3047843880); -emit_32(3274944545); -emit_32(1106081743); -emit_32(1081737216); -emit_32(3274688496); -emit_32(1106143871); -emit_32(3048134678); -emit_32(3274688496); -emit_32(1106636492); -emit_32(1081737216); -emit_32(3274432512); -emit_32(1106329416); -emit_32(3048270754); -emit_32(3274432512); -emit_32(1107002917); -emit_32(1081737216); -emit_32(3274176528); -emit_32(1107393459); -emit_32(3049122304); -emit_32(3274176528); -emit_32(1107580184); -emit_32(1081737216); -emit_32(3273920545); -emit_32(1108074955); -emit_32(3050121892); -emit_32(3273920545); -emit_32(1107983729); -emit_32(1081737216); -emit_32(3273664496); -emit_32(1108448641); -emit_32(3050669976); -emit_32(3273664496); -emit_32(1108213550); -emit_32(1081737216); -emit_32(3273408512); -emit_32(1108684230); -emit_32(3051015487); -emit_32(3273408512); -emit_32(1108715137); -emit_32(1081737216); -emit_32(3273152528); -emit_32(1108934132); -emit_32(3051382020); -emit_32(3273152528); -emit_32(1108987871); -emit_32(1081737216); -emit_32(3272896545); -emit_32(1108952377); -emit_32(3051408760); -emit_32(3272896545); -emit_32(1109130582); -emit_32(1081737216); -emit_32(3272640496); -emit_32(1108910775); -emit_32(3051347803); -emit_32(3272640496); -emit_32(1109075454); -emit_32(1081737216); -emit_32(3272384512); -emit_32(1108499366); -emit_32(3050744391); -emit_32(3272384512); -emit_32(1108764813); -emit_32(1081737216); -emit_32(3272128528); -emit_32(1108270907); -emit_32(3050409260); -emit_32(3272128528); -emit_32(1108391939); -emit_32(1081737216); -emit_32(3271872545); -emit_32(1107755506); -emit_32(3049653324); -emit_32(3271872545); -emit_32(1108080224); -emit_32(1081737216); -emit_32(3271616496); -emit_32(1107633190); -emit_32(3049473972); -emit_32(3271616496); -emit_32(1107854728); -emit_32(1081737216); -emit_32(3271163904); -emit_32(1107663336); -emit_32(3049518128); -emit_32(3271163904); -emit_32(1107912740); -emit_32(1081737216); -emit_32(3270651937); -emit_32(1107588075); -emit_32(3049407737); -emit_32(3270651937); -emit_32(1107731730); -emit_32(1081737216); -emit_32(3270139970); -emit_32(1107502327); -emit_32(3049282041); -emit_32(3270139970); -emit_32(1107480989); -emit_32(1081737216); -emit_32(3269627871); -emit_32(1107559370); -emit_32(3049365692); -emit_32(3269627871); -emit_32(1107400013); -emit_32(1081737216); -emit_32(3269115904); -emit_32(1107429425); -emit_32(3049175080); -emit_32(3269115904); -emit_32(1106814855); -emit_32(1081737216); -emit_32(3268603937); -emit_32(1107211531); -emit_32(3048917619); -emit_32(3268603937); -emit_32(1106747641); -emit_32(1081737216); -emit_32(3268091970); -emit_32(1106869381); -emit_32(3048666666); -emit_32(3268091970); -emit_32(1106153570); -emit_32(1081737216); -emit_32(3267579911); -emit_32(1106076710); -emit_32(3048085420); -emit_32(3267579911); -emit_32(1105450553); -emit_32(1081737216); -emit_32(3267067904); -emit_32(1105107773); -emit_32(3047374784); -emit_32(3267067904); -emit_32(1105015289); -emit_32(1081737216); -emit_32(3266555911); -emit_32(1104100511); -emit_32(3046636088); -emit_32(3266555911); -emit_32(1103926185); -emit_32(1081737216); -emit_32(3266043904); -emit_32(1102799385); -emit_32(3045681976); -emit_32(3266043904); -emit_32(1103220965); -emit_32(1081737216); -emit_32(3265531911); -emit_32(1102770130); -emit_32(3045660513); -emit_32(3265531911); -emit_32(1102714556); -emit_32(1081737216); -emit_32(3265019904); -emit_32(1102608335); -emit_32(3045541854); -emit_32(3265019904); -emit_32(1102293972); -emit_32(1081737216); -emit_32(3264507911); -emit_32(1103061372); -emit_32(3045874083); -emit_32(3264507911); -emit_32(1102696206); -emit_32(1081737216); -emit_32(3263995904); -emit_32(1102915777); -emit_32(3045767298); -emit_32(3263995904); -emit_32(1102841119); -emit_32(1081737216); -emit_32(3263483911); -emit_32(1102723888); -emit_32(3045626560); -emit_32(3263483911); -emit_32(1102940104); -emit_32(1081737216); -emit_32(3262775296); -emit_32(1103408189); -emit_32(3046128466); -emit_32(3262775296); -emit_32(1103457681); -emit_32(1081737216); -emit_32(3261751309); -emit_32(1103998484); -emit_32(3046561321); -emit_32(3261751309); -emit_32(1103885553); -emit_32(1081737216); -emit_32(3260727296); -emit_32(1104668105); -emit_32(3047052407); -emit_32(3260727296); -emit_32(1104135953); -emit_32(1081737216); -emit_32(3259703309); -emit_32(1105127381); -emit_32(3047389210); -emit_32(3259703309); -emit_32(1104254180); -emit_32(1081737216); -emit_32(3258679296); -emit_32(1105216196); -emit_32(3047454301); -emit_32(3258679296); -emit_32(1104598218); -emit_32(1081737216); -emit_32(3257655309); -emit_32(1105244507); -emit_32(3047475059); -emit_32(3257655309); -emit_32(1105055869); -emit_32(1081737216); -emit_32(3256631296); -emit_32(1106325379); -emit_32(3048267763); -emit_32(3256631296); -emit_32(1105830661); -emit_32(1081737216); -emit_32(3255607309); -emit_32(1107402398); -emit_32(3049135410); -emit_32(3255607309); -emit_32(1107186156); -emit_32(1081737216); -emit_32(3254386688); -emit_32(1107944119); -emit_32(3049929961); -emit_32(3254386688); -emit_32(1107890222); -emit_32(1081737216); -emit_32(3252338714); -emit_32(1108676916); -emit_32(3051004756); -emit_32(3252338714); -emit_32(1108342578); -emit_32(1081737216); -emit_32(3250290688); -emit_32(1109077105); -emit_32(3051591719); -emit_32(3250290688); -emit_32(1108968106); -emit_32(1081737216); -emit_32(3248242714); -emit_32(1109498895); -emit_32(3052210436); -emit_32(3248242714); -emit_32(1109363314); -emit_32(1081737216); -emit_32(3245998080); -emit_32(1110132051); -emit_32(3053139040); -emit_32(3245998080); -emit_32(1110217982); -emit_32(1081737216); -emit_32(3241902132); -emit_32(1110709318); -emit_32(3053719532); -emit_32(3241902132); -emit_32(1110836747); -emit_32(1081737216); -emit_32(3237609472); -emit_32(1111158922); -emit_32(3054049253); -emit_32(3237609472); -emit_32(1111340011); -emit_32(1081737216); -emit_32(3229220864); -emit_32(1111589126); -emit_32(3054364725); -emit_32(3229220864); -emit_32(1111989472); -emit_32(1081737216); -emit_32(0); -emit_32(1111989053); -emit_32(3054658031); -emit_32(0); -emit_32(1112547577); -emit_32(1081737216); -emit_32(1081737216); -emit_32(1112116167); -emit_32(3054751226); -emit_32(1081737216); -emit_32(1112701298); -emit_32(1081737216); -emit_32(3279552512); -emit_32(3209799987); -emit_32(3229220864); -emit_32(3279296528); -emit_32(1059840776); -emit_32(3229220864); -emit_32(3279040545); -emit_32(1077240503); -emit_32(3229220864); -emit_32(3278784496); -emit_32(1082549401); -emit_32(3229220864); -emit_32(3278528512); -emit_32(1085468217); -emit_32(3229220864); -emit_32(3278272528); -emit_32(1088296919); -emit_32(3229220864); -emit_32(3278016545); -emit_32(1090881837); -emit_32(3229220864); -emit_32(3277760496); -emit_32(1092463268); -emit_32(3229220864); -emit_32(3277504512); -emit_32(1093558757); -emit_32(3229220864); -emit_32(3277248528); -emit_32(1096426612); -emit_32(3229220864); -emit_32(3276992545); -emit_32(1099175874); -emit_32(3229220864); -emit_32(3276736496); -emit_32(1099804757); -emit_32(3229220864); -emit_32(3276480512); -emit_32(1101394975); -emit_32(3229220864); -emit_32(3276224528); -emit_32(1102334185); -emit_32(3229220864); -emit_32(3275968545); -emit_32(1103311038); -emit_32(3229220864); -emit_32(3275712496); -emit_32(1104048921); -emit_32(3229220864); -emit_32(3275456512); -emit_32(1104659821); -emit_32(3229220864); -emit_32(3275200528); -emit_32(1105062632); -emit_32(3229220864); -emit_32(3274944545); -emit_32(1105651669); -emit_32(3229220864); -emit_32(3274688496); -emit_32(1106231322); -emit_32(3229220864); -emit_32(3274432512); -emit_32(1107336626); -emit_32(3229220864); -emit_32(3274176528); -emit_32(1107657989); -emit_32(3229220864); -emit_32(3273920545); -emit_32(1108184452); -emit_32(3229220864); -emit_32(3273664496); -emit_32(1108338672); -emit_32(3229220864); -emit_32(3273408512); -emit_32(1108483926); -emit_32(3229220864); -emit_32(3273152528); -emit_32(1108691229); -emit_32(3229220864); -emit_32(3272896545); -emit_32(1108557850); -emit_32(3229220864); -emit_32(3272640496); -emit_32(1108486573); -emit_32(3229220864); -emit_32(3272384512); -emit_32(1108265140); -emit_32(3229220864); -emit_32(3272128528); -emit_32(1108112887); -emit_32(3229220864); -emit_32(3271872545); -emit_32(1107872003); -emit_32(3229220864); -emit_32(3271616496); -emit_32(1107841411); -emit_32(3229220864); -emit_32(3271163904); -emit_32(1107883406); -emit_32(3229220864); -emit_32(3270651937); -emit_32(1107859944); -emit_32(3229220864); -emit_32(3270139970); -emit_32(1107767014); -emit_32(3229220864); -emit_32(3269627871); -emit_32(1107782795); -emit_32(3229220864); -emit_32(3269115904); -emit_32(1107629310); -emit_32(3229220864); -emit_32(3268603937); -emit_32(1107448404); -emit_32(3229220864); -emit_32(3268091970); -emit_32(1107249594); -emit_32(3229220864); -emit_32(3267579911); -emit_32(1106441929); -emit_32(3229220864); -emit_32(3267067904); -emit_32(1105756265); -emit_32(3229220864); -emit_32(3266555911); -emit_32(1104508197); -emit_32(3229220864); -emit_32(3266043904); -emit_32(1103537583); -emit_32(3229220864); -emit_32(3265531911); -emit_32(1103027556); -emit_32(3229220864); -emit_32(3265019904); -emit_32(1102775006); -emit_32(3229220864); -emit_32(3264507911); -emit_32(1103080037); -emit_32(3229220864); -emit_32(3263995904); -emit_32(1103170109); -emit_32(3229220864); -emit_32(3263483911); -emit_32(1103334002); -emit_32(3229220864); -emit_32(3262775296); -emit_32(1103932372); -emit_32(3229220864); -emit_32(3261751309); -emit_32(1104512234); -emit_32(3229220864); -emit_32(3260727296); -emit_32(1105151184); -emit_32(3229220864); -emit_32(3259703309); -emit_32(1105468116); -emit_32(3229220864); -emit_32(3258679296); -emit_32(1105860336); -emit_32(3229220864); -emit_32(3257655309); -emit_32(1105963568); -emit_32(3229220864); -emit_32(3256631296); -emit_32(1106718071); -emit_32(3229220864); -emit_32(3255607309); -emit_32(1107534414); -emit_32(3229220864); -emit_32(3254386688); -emit_32(1108061821); -emit_32(3229220864); -emit_32(3252338714); -emit_32(1108796323); -emit_32(3229220864); -emit_32(3250290688); -emit_32(1109110555); -emit_32(3229220864); -emit_32(3248242714); -emit_32(1109471606); -emit_32(3229220864); -emit_32(3245998080); -emit_32(1109857115); -emit_32(3229220864); -emit_32(3241902132); -emit_32(1110399726); -emit_32(3229220864); -emit_32(3237609472); -emit_32(1110641187); -emit_32(3229220864); -emit_32(3229220864); -emit_32(1111105208); -emit_32(3229220864); -emit_32(0); -emit_32(1111556044); -emit_32(3229220864); -emit_32(1081737216); -emit_32(1111714929); -emit_32(3229220864); -emit_32(3279552512); -emit_32(1054711998); -emit_32(3237609472); -emit_32(3279296528); -emit_32(1073162675); -emit_32(3237609472); -emit_32(3279040545); -emit_32(1079142997); -emit_32(3237609472); -emit_32(3278784496); -emit_32(1083244271); -emit_32(3237609472); -emit_32(3278528512); -emit_32(1085647335); -emit_32(3237609472); -emit_32(3278272528); -emit_32(1089136346); -emit_32(3237609472); -emit_32(3278016545); -emit_32(1091028155); -emit_32(3237609472); -emit_32(3277760496); -emit_32(1092749361); -emit_32(3237609472); -emit_32(3277504512); -emit_32(1094007338); -emit_32(3237609472); -emit_32(3277248528); -emit_32(1096172333); -emit_32(3237609472); -emit_32(3276992545); -emit_32(1098404017); -emit_32(3237609472); -emit_32(3276736496); -emit_32(1099924924); -emit_32(3237609472); -emit_32(3276480512); -emit_32(1101300708); -emit_32(3237609472); -emit_32(3276224528); -emit_32(1102514540); -emit_32(3237609472); -emit_32(3275968545); -emit_32(1102952530); -emit_32(3237609472); -emit_32(3275712496); -emit_32(1104219315); -emit_32(3237609472); -emit_32(3275456512); -emit_32(1105238635); -emit_32(3237609472); -emit_32(3275200528); -emit_32(1105786254); -emit_32(3237609472); -emit_32(3274944545); -emit_32(1106026116); -emit_32(3237609472); -emit_32(3274688496); -emit_32(1106387979); -emit_32(3237609472); -emit_32(3274432512); -emit_32(1107205816); -emit_32(3237609472); -emit_32(3274176528); -emit_32(1107688659); -emit_32(3237609472); -emit_32(3273920545); -emit_32(1107937067); -emit_32(3237609472); -emit_32(3273664496); -emit_32(1108184426); -emit_32(3237609472); -emit_32(3273408512); -emit_32(1108351831); -emit_32(3237609472); -emit_32(3273152528); -emit_32(1108376840); -emit_32(3237609472); -emit_32(3272896545); -emit_32(1108546866); -emit_32(3237609472); -emit_32(3272640496); -emit_32(1108425232); -emit_32(3237609472); -emit_32(3272384512); -emit_32(1108404994); -emit_32(3237609472); -emit_32(3272128528); -emit_32(1108262466); -emit_32(3237609472); -emit_32(3271872545); -emit_32(1107983912); -emit_32(3237609472); -emit_32(3271616496); -emit_32(1107864453); -emit_32(3237609472); -emit_32(3271163904); -emit_32(1107866576); -emit_32(3237609472); -emit_32(3270651937); -emit_32(1107727562); -emit_32(3237609472); -emit_32(3270139970); -emit_32(1107886499); -emit_32(3237609472); -emit_32(3269627871); -emit_32(1107880313); -emit_32(3237609472); -emit_32(3269115904); -emit_32(1107886866); -emit_32(3237609472); -emit_32(3268603937); -emit_32(1107605533); -emit_32(3237609472); -emit_32(3268091970); -emit_32(1107358646); -emit_32(3237609472); -emit_32(3267579911); -emit_32(1106791734); -emit_32(3237609472); -emit_32(3267067904); -emit_32(1106079646); -emit_32(3237609472); -emit_32(3266555911); -emit_32(1104985928); -emit_32(3237609472); -emit_32(3266043904); -emit_32(1104015576); -emit_32(3237609472); -emit_32(3265531911); -emit_32(1103311720); -emit_32(3237609472); -emit_32(3265019904); -emit_32(1103316648); -emit_32(3237609472); -emit_32(3264507911); -emit_32(1103704569); -emit_32(3237609472); -emit_32(3263995904); -emit_32(1103636359); -emit_32(3237609472); -emit_32(3263483911); -emit_32(1103830817); -emit_32(3237609472); -emit_32(3262775296); -emit_32(1104077757); -emit_32(3237609472); -emit_32(3261751309); -emit_32(1104578819); -emit_32(3237609472); -emit_32(3260727296); -emit_32(1105235699); -emit_32(3237609472); -emit_32(3259703309); -emit_32(1105711858); -emit_32(3237609472); -emit_32(3258679296); -emit_32(1105779124); -emit_32(3237609472); -emit_32(3257655309); -emit_32(1106565975); -emit_32(3237609472); -emit_32(3256631296); -emit_32(1107139756); -emit_32(3237609472); -emit_32(3255607309); -emit_32(1107456478); -emit_32(3237609472); -emit_32(3254386688); -emit_32(1107977988); -emit_32(3237609472); -emit_32(3252338714); -emit_32(1108423606); -emit_32(3237609472); -emit_32(3250290688); -emit_32(1108993822); -emit_32(3237609472); -emit_32(3248242714); -emit_32(1109315132); -emit_32(3237609472); -emit_32(3245998080); -emit_32(1109596884); -emit_32(3237609472); -emit_32(3241902132); -emit_32(1110086989); -emit_32(3237609472); -emit_32(3237609472); -emit_32(1110712176); -emit_32(3237609472); -emit_32(3229220864); -emit_32(1111303415); -emit_32(3237609472); -emit_32(0); -emit_32(1111637125); -emit_32(3237609472); -emit_32(1081737216); -emit_32(1111679959); -emit_32(3237609472); -emit_32(3279552512); -emit_32(1058110391); -emit_32(3241902132); -emit_32(3279296528); -emit_32(1072323898); -emit_32(3241902132); -emit_32(3279040545); -emit_32(1079279857); -emit_32(3241902132); -emit_32(3278784496); -emit_32(1082742465); -emit_32(3241902132); -emit_32(3278528512); -emit_32(1086410992); -emit_32(3241902132); -emit_32(3278272528); -emit_32(1088461147); -emit_32(3241902132); -emit_32(3278016545); -emit_32(1091533338); -emit_32(3241902132); -emit_32(3277760496); -emit_32(1093009303); -emit_32(3241902132); -emit_32(3277504512); -emit_32(1094260359); -emit_32(3241902132); -emit_32(3277248528); -emit_32(1096715285); -emit_32(3241902132); -emit_32(3276992545); -emit_32(1098545575); -emit_32(3241902132); -emit_32(3276736496); -emit_32(1100069260); -emit_32(3241902132); -emit_32(3276480512); -emit_32(1101010882); -emit_32(3241902132); -emit_32(3276224528); -emit_32(1101814458); -emit_32(3241902132); -emit_32(3275968545); -emit_32(1102816372); -emit_32(3241902132); -emit_32(3275712496); -emit_32(1104296175); -emit_32(3241902132); -emit_32(3275456512); -emit_32(1105227573); -emit_32(3241902132); -emit_32(3275200528); -emit_32(1105862695); -emit_32(3241902132); -emit_32(3274944545); -emit_32(1106061767); -emit_32(3241902132); -emit_32(3274688496); -emit_32(1106614157); -emit_32(3241902132); -emit_32(3274432512); -emit_32(1106679117); -emit_32(3241902132); -emit_32(3274176528); -emit_32(1107555097); -emit_32(3241902132); -emit_32(3273920545); -emit_32(1107710706); -emit_32(3241902132); -emit_32(3273664496); -emit_32(1107987399); -emit_32(3241902132); -emit_32(3273408512); -emit_32(1108243985); -emit_32(3241902132); -emit_32(3273152528); -emit_32(1108410132); -emit_32(3241902132); -emit_32(3272896545); -emit_32(1108423370); -emit_32(3241902132); -emit_32(3272640496); -emit_32(1108487858); -emit_32(3241902132); -emit_32(3272384512); -emit_32(1108444525); -emit_32(3241902132); -emit_32(3272128528); -emit_32(1108145681); -emit_32(3241902132); -emit_32(3271872545); -emit_32(1107836142); -emit_32(3241902132); -emit_32(3271616496); -emit_32(1107856825); -emit_32(3241902132); -emit_32(3271163904); -emit_32(1107713065); -emit_32(3241902132); -emit_32(3270651937); -emit_32(1107761431); -emit_32(3241902132); -emit_32(3270139970); -emit_32(1107749346); -emit_32(3241902132); -emit_32(3269627871); -emit_32(1107742242); -emit_32(3241902132); -emit_32(3269115904); -emit_32(1107724468); -emit_32(3241902132); -emit_32(3268603937); -emit_32(1107622651); -emit_32(3241902132); -emit_32(3268091970); -emit_32(1107524085); -emit_32(3241902132); -emit_32(3267579911); -emit_32(1106842380); -emit_32(3241902132); -emit_32(3267067904); -emit_32(1106029733); -emit_32(3241902132); -emit_32(3266555911); -emit_32(1104983674); -emit_32(3241902132); -emit_32(3266043904); -emit_32(1104019456); -emit_32(3241902132); -emit_32(3265531911); -emit_32(1103853571); -emit_32(3241902132); -emit_32(3265019904); -emit_32(1103951666); -emit_32(3241902132); -emit_32(3264507911); -emit_32(1103711542); -emit_32(3241902132); -emit_32(3263995904); -emit_32(1103910404); -emit_32(3241902132); -emit_32(3263483911); -emit_32(1103908517); -emit_32(3241902132); -emit_32(3262775296); -emit_32(1104110577); -emit_32(3241902132); -emit_32(3261751309); -emit_32(1104188172); -emit_32(3241902132); -emit_32(3260727296); -emit_32(1104905241); -emit_32(3241902132); -emit_32(3259703309); -emit_32(1105620212); -emit_32(3241902132); -emit_32(3258679296); -emit_32(1106230221); -emit_32(3241902132); -emit_32(3257655309); -emit_32(1107170322); -emit_32(3241902132); -emit_32(3256631296); -emit_32(1107365357); -emit_32(3241902132); -emit_32(3255607309); -emit_32(1107446569); -emit_32(3241902132); -emit_32(3254386688); -emit_32(1107700744); -emit_32(3241902132); -emit_32(3252338714); -emit_32(1108112651); -emit_32(3241902132); -emit_32(3250290688); -emit_32(1108689473); -emit_32(3241902132); -emit_32(3248242714); -emit_32(1109194519); -emit_32(3241902132); -emit_32(3245998080); -emit_32(1109874285); -emit_32(3241902132); -emit_32(3241902132); -emit_32(1110441774); -emit_32(3241902132); -emit_32(3237609472); -emit_32(1111191218); -emit_32(3241902132); -emit_32(3229220864); -emit_32(1111647243); -emit_32(3241902132); -emit_32(0); -emit_32(1111674821); -emit_32(3241902132); -emit_32(1081737216); -emit_32(1111917802); -emit_32(3241902132); -emit_32(3279552512); -emit_32(1069567233); -emit_32(3245998080); -emit_32(3279296528); -emit_32(1071989863); -emit_32(3245998080); -emit_32(3279040545); -emit_32(1075944798); -emit_32(3245998080); -emit_32(3278784496); -emit_32(1082325006); -emit_32(3245998080); -emit_32(3278528512); -emit_32(1086766564); -emit_32(3245998080); -emit_32(3278272528); -emit_32(1089466668); -emit_32(3245998080); -emit_32(3278016545); -emit_32(1091111989); -emit_32(3245998080); -emit_32(3277760496); -emit_32(1092605224); -emit_32(3245998080); -emit_32(3277504512); -emit_32(1095055494); -emit_32(3245998080); -emit_32(3277248528); -emit_32(1097329541); -emit_32(3245998080); -emit_32(3276992545); -emit_32(1098231421); -emit_32(3245998080); -emit_32(3276736496); -emit_32(1099798361); -emit_32(3245998080); -emit_32(3276480512); -emit_32(1100629777); -emit_32(3245998080); -emit_32(3276224528); -emit_32(1101582932); -emit_32(3245998080); -emit_32(3275968545); -emit_32(1102756341); -emit_32(3245998080); -emit_32(3275712496); -emit_32(1103822271); -emit_32(3245998080); -emit_32(3275456512); -emit_32(1104867754); -emit_32(3245998080); -emit_32(3275200528); -emit_32(1105394716); -emit_32(3245998080); -emit_32(3274944545); -emit_32(1106013428); -emit_32(3245998080); -emit_32(3274688496); -emit_32(1106248257); -emit_32(3245998080); -emit_32(3274432512); -emit_32(1106783293); -emit_32(3245998080); -emit_32(3274176528); -emit_32(1107441641); -emit_32(3245998080); -emit_32(3273920545); -emit_32(1107472338); -emit_32(3245998080); -emit_32(3273664496); -emit_32(1107780305); -emit_32(3245998080); -emit_32(3273408512); -emit_32(1108116033); -emit_32(3245998080); -emit_32(3273152528); -emit_32(1108228755); -emit_32(3245998080); -emit_32(3272896545); -emit_32(1108513391); -emit_32(3245998080); -emit_32(3272640496); -emit_32(1108457108); -emit_32(3245998080); -emit_32(3272384512); -emit_32(1108243173); -emit_32(3245998080); -emit_32(3272128528); -emit_32(1108176536); -emit_32(3245998080); -emit_32(3271872545); -emit_32(1107871348); -emit_32(3245998080); -emit_32(3271616496); -emit_32(1107923121); -emit_32(3245998080); -emit_32(3271163904); -emit_32(1107614682); -emit_32(3245998080); -emit_32(3270651937); -emit_32(1107505709); -emit_32(3245998080); -emit_32(3270139970); -emit_32(1107594707); -emit_32(3245998080); -emit_32(3269627871); -emit_32(1107597381); -emit_32(3245998080); -emit_32(3269115904); -emit_32(1107730471); -emit_32(3245998080); -emit_32(3268603937); -emit_32(1107619086); -emit_32(3245998080); -emit_32(3268091970); -emit_32(1107455273); -emit_32(3245998080); -emit_32(3267579911); -emit_32(1106610802); -emit_32(3245998080); -emit_32(3267067904); -emit_32(1105479074); -emit_32(3245998080); -emit_32(3266555911); -emit_32(1105028081); -emit_32(3245998080); -emit_32(3266043904); -emit_32(1104895856); -emit_32(3245998080); -emit_32(3265531911); -emit_32(1104167515); -emit_32(3245998080); -emit_32(3265019904); -emit_32(1104032563); -emit_32(3245998080); -emit_32(3264507911); -emit_32(1104102818); -emit_32(3245998080); -emit_32(3263995904); -emit_32(1103636621); -emit_32(3245998080); -emit_32(3263483911); -emit_32(1104117812); -emit_32(3245998080); -emit_32(3262775296); -emit_32(1104170556); -emit_32(3245998080); -emit_32(3261751309); -emit_32(1104075031); -emit_32(3245998080); -emit_32(3260727296); -emit_32(1104866076); -emit_32(3245998080); -emit_32(3259703309); -emit_32(1105674056); -emit_32(3245998080); -emit_32(3258679296); -emit_32(1106593763); -emit_32(3245998080); -emit_32(3257655309); -emit_32(1107479652); -emit_32(3245998080); -emit_32(3256631296); -emit_32(1107477371); -emit_32(3245998080); -emit_32(3255607309); -emit_32(1107602886); -emit_32(3245998080); -emit_32(3254386688); -emit_32(1108002655); -emit_32(3245998080); -emit_32(3252338714); -emit_32(1108265717); -emit_32(3245998080); -emit_32(3250290688); -emit_32(1108946348); -emit_32(3245998080); -emit_32(3248242714); -emit_32(1109570748); -emit_32(3245998080); -emit_32(3245998080); -emit_32(1110334348); -emit_32(3245998080); -emit_32(3241902132); -emit_32(1111046776); -emit_32(3245998080); -emit_32(3237609472); -emit_32(1111662998); -emit_32(3245998080); -emit_32(3229220864); -emit_32(1111752783); -emit_32(3245998080); -emit_32(0); -emit_32(1112149144); -emit_32(3245998080); -emit_32(1081737216); -emit_32(1112196121); -emit_32(3245998080); -emit_32(3279552512); -emit_32(1069069537); -emit_32(3248242714); -emit_32(3279296528); -emit_32(1070813613); -emit_32(3248242714); -emit_32(3279040545); -emit_32(1077694242); -emit_32(3248242714); -emit_32(3278784496); -emit_32(1083641745); -emit_32(3248242714); -emit_32(3278528512); -emit_32(1087538169); -emit_32(3248242714); -emit_32(3278272528); -emit_32(1089089810); -emit_32(3248242714); -emit_32(3278016545); -emit_32(1090321216); -emit_32(3248242714); -emit_32(3277760496); -emit_32(1092452761); -emit_32(3248242714); -emit_32(3277504512); -emit_32(1094878390); -emit_32(3248242714); -emit_32(3277248528); -emit_32(1096058143); -emit_32(3248242714); -emit_32(3276992545); -emit_32(1098098567); -emit_32(3248242714); -emit_32(3276736496); -emit_32(1099576902); -emit_32(3248242714); -emit_32(3276480512); -emit_32(1100562563); -emit_32(3248242714); -emit_32(3276224528); -emit_32(1101167224); -emit_32(3248242714); -emit_32(3275968545); -emit_32(1102019088); -emit_32(3248242714); -emit_32(3275712496); -emit_32(1103025878); -emit_32(3248242714); -emit_32(3275456512); -emit_32(1104220258); -emit_32(3248242714); -emit_32(3275200528); -emit_32(1104981944); -emit_32(3248242714); -emit_32(3274944545); -emit_32(1105491132); -emit_32(3248242714); -emit_32(3274688496); -emit_32(1105710495); -emit_32(3248242714); -emit_32(3274432512); -emit_32(1106232423); -emit_32(3248242714); -emit_32(3274176528); -emit_32(1106909961); -emit_32(3248242714); -emit_32(3273920545); -emit_32(1107031858); -emit_32(3248242714); -emit_32(3273664496); -emit_32(1107735426); -emit_32(3248242714); -emit_32(3273408512); -emit_32(1108117868); -emit_32(3248242714); -emit_32(3273152528); -emit_32(1108098862); -emit_32(3248242714); -emit_32(3272896545); -emit_32(1108068716); -emit_32(3248242714); -emit_32(3272640496); -emit_32(1108110003); -emit_32(3248242714); -emit_32(3272384512); -emit_32(1108104761); -emit_32(3248242714); -emit_32(3272128528); -emit_32(1108024125); -emit_32(3248242714); -emit_32(3271872545); -emit_32(1107776111); -emit_32(3248242714); -emit_32(3271616496); -emit_32(1107637384); -emit_32(3248242714); -emit_32(3271163904); -emit_32(1107446360); -emit_32(3248242714); -emit_32(3270651937); -emit_32(1107041400); -emit_32(3248242714); -emit_32(3270139970); -emit_32(1107011882); -emit_32(3248242714); -emit_32(3269627871); -emit_32(1107115167); -emit_32(3248242714); -emit_32(3269115904); -emit_32(1107418494); -emit_32(3248242714); -emit_32(3268603937); -emit_32(1107457422); -emit_32(3248242714); -emit_32(3268091970); -emit_32(1106904613); -emit_32(3248242714); -emit_32(3267579911); -emit_32(1106031411); -emit_32(3248242714); -emit_32(3267067904); -emit_32(1105454223); -emit_32(3248242714); -emit_32(3266555911); -emit_32(1105778967); -emit_32(3248242714); -emit_32(3266043904); -emit_32(1105570929); -emit_32(3248242714); -emit_32(3265531911); -emit_32(1104914258); -emit_32(3248242714); -emit_32(3265019904); -emit_32(1104424468); -emit_32(3248242714); -emit_32(3264507911); -emit_32(1104545527); -emit_32(3248242714); -emit_32(3263995904); -emit_32(1104296280); -emit_32(3248242714); -emit_32(3263483911); -emit_32(1103990568); -emit_32(3248242714); -emit_32(3262775296); -emit_32(1104013427); -emit_32(3248242714); -emit_32(3261751309); -emit_32(1104087142); -emit_32(3248242714); -emit_32(3260727296); -emit_32(1104895017); -emit_32(3248242714); -emit_32(3259703309); -emit_32(1105764129); -emit_32(3248242714); -emit_32(3258679296); -emit_32(1106780357); -emit_32(3248242714); -emit_32(3257655309); -emit_32(1107436005); -emit_32(3248242714); -emit_32(3256631296); -emit_32(1107614237); -emit_32(3248242714); -emit_32(3255607309); -emit_32(1107805785); -emit_32(3248242714); -emit_32(3254386688); -emit_32(1108259294); -emit_32(3248242714); -emit_32(3252338714); -emit_32(1108838738); -emit_32(3248242714); -emit_32(3250290688); -emit_32(1109532056); -emit_32(3248242714); -emit_32(3248242714); -emit_32(1110357731); -emit_32(3248242714); -emit_32(3245998080); -emit_32(1111305617); -emit_32(3248242714); -emit_32(3241902132); -emit_32(1111938354); -emit_32(3248242714); -emit_32(3237609472); -emit_32(1112310678); -emit_32(3248242714); -emit_32(3229220864); -emit_32(1112422010); -emit_32(3248242714); -emit_32(0); -emit_32(1112626745); -emit_32(3248242714); -emit_32(1081737216); -emit_32(1112566084); -emit_32(3248242714); -emit_32(3279552512); -emit_32(1065800916); -emit_32(3250290688); -emit_32(3279296528); -emit_32(1067728450); -emit_32(3250290688); -emit_32(3279040545); -emit_32(1079534242); -emit_32(3250290688); -emit_32(3278784496); -emit_32(1083207466); -emit_32(3250290688); -emit_32(3278528512); -emit_32(1085554830); -emit_32(3250290688); -emit_32(3278272528); -emit_32(1087362784); -emit_32(3250290688); -emit_32(3278016545); -emit_32(1089916067); -emit_32(3250290688); -emit_32(3277760496); -emit_32(1091396866); -emit_32(3250290688); -emit_32(3277504512); -emit_32(1093035832); -emit_32(3250290688); -emit_32(3277248528); -emit_32(1094508767); -emit_32(3250290688); -emit_32(3276992545); -emit_32(1096595328); -emit_32(3250290688); -emit_32(3276736496); -emit_32(1099173252); -emit_32(3250290688); -emit_32(3276480512); -emit_32(1100269748); -emit_32(3250290688); -emit_32(3276224528); -emit_32(1101165704); -emit_32(3250290688); -emit_32(3275968545); -emit_32(1101889169); -emit_32(3250290688); -emit_32(3275712496); -emit_32(1102356467); -emit_32(3250290688); -emit_32(3275456512); -emit_32(1103641549); -emit_32(3250290688); -emit_32(3275200528); -emit_32(1104432910); -emit_32(3250290688); -emit_32(3274944545); -emit_32(1104777157); -emit_32(3250290688); -emit_32(3274688496); -emit_32(1105410025); -emit_32(3250290688); -emit_32(3274432512); -emit_32(1105737233); -emit_32(3250290688); -emit_32(3274176528); -emit_32(1106211085); -emit_32(3250290688); -emit_32(3273920545); -emit_32(1107190979); -emit_32(3250290688); -emit_32(3273664496); -emit_32(1107686903); -emit_32(3250290688); -emit_32(3273408512); -emit_32(1107933449); -emit_32(3250290688); -emit_32(3273152528); -emit_32(1107858896); -emit_32(3250290688); -emit_32(3272896545); -emit_32(1107712567); -emit_32(3250290688); -emit_32(3272640496); -emit_32(1107834044); -emit_32(3250290688); -emit_32(3272384512); -emit_32(1107745256); -emit_32(3250290688); -emit_32(3272128528); -emit_32(1107612821); -emit_32(3250290688); -emit_32(3271872545); -emit_32(1107307240); -emit_32(3250290688); -emit_32(3271616496); -emit_32(1106953581); -emit_32(3250290688); -emit_32(3271163904); -emit_32(1106958195); -emit_32(3250290688); -emit_32(3270651937); -emit_32(1106599635); -emit_32(3250290688); -emit_32(3270139970); -emit_32(1106321238); -emit_32(3250290688); -emit_32(3269627871); -emit_32(1106339588); -emit_32(3250290688); -emit_32(3269115904); -emit_32(1106571795); -emit_32(3250290688); -emit_32(3268603937); -emit_32(1106917982); -emit_32(3250290688); -emit_32(3268091970); -emit_32(1106501383); -emit_32(3250290688); -emit_32(3267579911); -emit_32(1105718516); -emit_32(3250290688); -emit_32(3267067904); -emit_32(1105903065); -emit_32(3250290688); -emit_32(3266555911); -emit_32(1106013795); -emit_32(3250290688); -emit_32(3266043904); -emit_32(1105949517); -emit_32(3250290688); -emit_32(3265531911); -emit_32(1105206863); -emit_32(3250290688); -emit_32(3265019904); -emit_32(1104861934); -emit_32(3250290688); -emit_32(3264507911); -emit_32(1104599790); -emit_32(3250290688); -emit_32(3263995904); -emit_32(1103950932); -emit_32(3250290688); -emit_32(3263483911); -emit_32(1104055527); -emit_32(3250290688); -emit_32(3262775296); -emit_32(1103866364); -emit_32(3250290688); -emit_32(3261751309); -emit_32(1104419383); -emit_32(3250290688); -emit_32(3260727296); -emit_32(1104811026); -emit_32(3250290688); -emit_32(3259703309); -emit_32(1105456634); -emit_32(3250290688); -emit_32(3258679296); -emit_32(1106791681); -emit_32(3250290688); -emit_32(3257655309); -emit_32(1107583068); -emit_32(3250290688); -emit_32(3256631296); -emit_32(1107949860); -emit_32(3250290688); -emit_32(3255607309); -emit_32(1108658278); -emit_32(3250290688); -emit_32(3254386688); -emit_32(1109252165); -emit_32(3250290688); -emit_32(3252338714); -emit_32(1109776086); -emit_32(3250290688); -emit_32(3250290688); -emit_32(1110334321); -emit_32(3250290688); -emit_32(3248242714); -emit_32(1111177403); -emit_32(3250290688); -emit_32(3245998080); -emit_32(1111862202); -emit_32(3250290688); -emit_32(3241902132); -emit_32(1112485580); -emit_32(3250290688); -emit_32(3237609472); -emit_32(1112835516); -emit_32(3250290688); -emit_32(3229220864); -emit_32(1112928997); -emit_32(3250290688); -emit_32(0); -emit_32(1112967689); -emit_32(3250290688); -emit_32(1081737216); -emit_32(1113150456); -emit_32(3250290688); -emit_32(3279552512); -emit_32(1065811150); -emit_32(3252338714); -emit_32(3279296528); -emit_32(1074401378); -emit_32(3252338714); -emit_32(3279040545); -emit_32(1078638548); -emit_32(3252338714); -emit_32(3278784496); -emit_32(1082498734); -emit_32(3252338714); -emit_32(3278528512); -emit_32(1084586134); -emit_32(3252338714); -emit_32(3278272528); -emit_32(1087624907); -emit_32(3252338714); -emit_32(3278016545); -emit_32(1088961422); -emit_32(3252338714); -emit_32(3277760496); -emit_32(1091843412); -emit_32(3252338714); -emit_32(3277504512); -emit_32(1093413739); -emit_32(3252338714); -emit_32(3277248528); -emit_32(1094395206); -emit_32(3252338714); -emit_32(3276992545); -emit_32(1095806484); -emit_32(3252338714); -emit_32(3276736496); -emit_32(1097929536); -emit_32(3252338714); -emit_32(3276480512); -emit_32(1099744988); -emit_32(3252338714); -emit_32(3276224528); -emit_32(1100647340); -emit_32(3252338714); -emit_32(3275968545); -emit_32(1101240992); -emit_32(3252338714); -emit_32(3275712496); -emit_32(1101372693); -emit_32(3252338714); -emit_32(3275456512); -emit_32(1102475638); -emit_32(3252338714); -emit_32(3275200528); -emit_32(1103490240); -emit_32(3252338714); -emit_32(3274944545); -emit_32(1104043416); -emit_32(3252338714); -emit_32(3274688496); -emit_32(1105440696); -emit_32(3252338714); -emit_32(3274432512); -emit_32(1105987161); -emit_32(3252338714); -emit_32(3274176528); -emit_32(1106185395); -emit_32(3252338714); -emit_32(3273920545); -emit_32(1107031700); -emit_32(3252338714); -emit_32(3273664496); -emit_32(1107454932); -emit_32(3252338714); -emit_32(3273408512); -emit_32(1107539368); -emit_32(3252338714); -emit_32(3273152528); -emit_32(1107466152); -emit_32(3252338714); -emit_32(3272896545); -emit_32(1107413067); -emit_32(3252338714); -emit_32(3272640496); -emit_32(1107297960); -emit_32(3252338714); -emit_32(3272384512); -emit_32(1107173310); -emit_32(3252338714); -emit_32(3272128528); -emit_32(1107130371); -emit_32(3252338714); -emit_32(3271872545); -emit_32(1106771653); -emit_32(3252338714); -emit_32(3271616496); -emit_32(1106460803); -emit_32(3252338714); -emit_32(3271163904); -emit_32(1106115455); -emit_32(3252338714); -emit_32(3270651937); -emit_32(1105926344); -emit_32(3252338714); -emit_32(3270139970); -emit_32(1105546602); -emit_32(3252338714); -emit_32(3269627871); -emit_32(1105660477); -emit_32(3252338714); -emit_32(3269115904); -emit_32(1105920367); -emit_32(3252338714); -emit_32(3268603937); -emit_32(1106109897); -emit_32(3252338714); -emit_32(3268091970); -emit_32(1105672798); -emit_32(3252338714); -emit_32(3267579911); -emit_32(1105767537); -emit_32(3252338714); -emit_32(3267067904); -emit_32(1105707139); -emit_32(3252338714); -emit_32(3266555911); -emit_32(1105871241); -emit_32(3252338714); -emit_32(3266043904); -emit_32(1105955599); -emit_32(3252338714); -emit_32(3265531911); -emit_32(1105848435); -emit_32(3252338714); -emit_32(3265019904); -emit_32(1105348264); -emit_32(3252338714); -emit_32(3264507911); -emit_32(1104644040); -emit_32(3252338714); -emit_32(3263995904); -emit_32(1104354371); -emit_32(3252338714); -emit_32(3263483911); -emit_32(1104366902); -emit_32(3252338714); -emit_32(3262775296); -emit_32(1104900103); -emit_32(3252338714); -emit_32(3261751309); -emit_32(1105214885); -emit_32(3252338714); -emit_32(3260727296); -emit_32(1105392147); -emit_32(3252338714); -emit_32(3259703309); -emit_32(1106490111); -emit_32(3252338714); -emit_32(3258679296); -emit_32(1107465837); -emit_32(3252338714); -emit_32(3257655309); -emit_32(1108021897); -emit_32(3252338714); -emit_32(3256631296); -emit_32(1108703366); -emit_32(3252338714); -emit_32(3255607309); -emit_32(1109418128); -emit_32(3252338714); -emit_32(3254386688); -emit_32(1110033669); -emit_32(3252338714); -emit_32(3252338714); -emit_32(1110598065); -emit_32(3252338714); -emit_32(3250290688); -emit_32(1111530878); -emit_32(3252338714); -emit_32(3248242714); -emit_32(1112167127); -emit_32(3252338714); -emit_32(3245998080); -emit_32(1112747776); -emit_32(3252338714); -emit_32(3241902132); -emit_32(1113057631); -emit_32(3252338714); -emit_32(3237609472); -emit_32(1113395220); -emit_32(3252338714); -emit_32(3229220864); -emit_32(1113520262); -emit_32(3252338714); -emit_32(0); -emit_32(1113746230); -emit_32(3252338714); -emit_32(1081737216); -emit_32(1113988085); -emit_32(3252338714); -emit_32(3279552512); -emit_32(1073007234); -emit_32(3254386688); -emit_32(3279296528); -emit_32(1071855058); -emit_32(3254386688); -emit_32(3279040545); -emit_32(1077504995); -emit_32(3254386688); -emit_32(3278784496); -emit_32(1083853809); -emit_32(3254386688); -emit_32(3278528512); -emit_32(1085433090); -emit_32(3254386688); -emit_32(3278272528); -emit_32(1086653926); -emit_32(3254386688); -emit_32(3278016545); -emit_32(1089328256); -emit_32(3254386688); -emit_32(3277760496); -emit_32(1091680359); -emit_32(3254386688); -emit_32(3277504512); -emit_32(1093386371); -emit_32(3254386688); -emit_32(3277248528); -emit_32(1094430019); -emit_32(3254386688); -emit_32(3276992545); -emit_32(1095762759); -emit_32(3254386688); -emit_32(3276736496); -emit_32(1097278685); -emit_32(3254386688); -emit_32(3276480512); -emit_32(1099307942); -emit_32(3254386688); -emit_32(3276224528); -emit_32(1100328206); -emit_32(3254386688); -emit_32(3275968545); -emit_32(1100510396); -emit_32(3254386688); -emit_32(3275712496); -emit_32(1100754190); -emit_32(3254386688); -emit_32(3275456512); -emit_32(1101542300); -emit_32(3254386688); -emit_32(3275200528); -emit_32(1102303461); -emit_32(3254386688); -emit_32(3274944545); -emit_32(1103597719); -emit_32(3254386688); -emit_32(3274688496); -emit_32(1104967316); -emit_32(3254386688); -emit_32(3274432512); -emit_32(1105690205); -emit_32(3254386688); -emit_32(3274176528); -emit_32(1106034714); -emit_32(3254386688); -emit_32(3273920545); -emit_32(1106220994); -emit_32(3254386688); -emit_32(3273664496); -emit_32(1106826651); -emit_32(3254386688); -emit_32(3273408512); -emit_32(1107242779); -emit_32(3254386688); -emit_32(3273152528); -emit_32(1107302810); -emit_32(3254386688); -emit_32(3272896545); -emit_32(1107370915); -emit_32(3254386688); -emit_32(3272640496); -emit_32(1107004385); -emit_32(3254386688); -emit_32(3272384512); -emit_32(1106217429); -emit_32(3254386688); -emit_32(3272128528); -emit_32(1106380587); -emit_32(3254386688); -emit_32(3271872545); -emit_32(1106492418); -emit_32(3254386688); -emit_32(3271616496); -emit_32(1106313793); -emit_32(3254386688); -emit_32(3271163904); -emit_32(1105860336); -emit_32(3254386688); -emit_32(3270651937); -emit_32(1104962965); -emit_32(3254386688); -emit_32(3270139970); -emit_32(1104709367); -emit_32(3254386688); -emit_32(3269627871); -emit_32(1104850924); -emit_32(3254386688); -emit_32(3269115904); -emit_32(1105116162); -emit_32(3254386688); -emit_32(3268603937); -emit_32(1105713640); -emit_32(3254386688); -emit_32(3268091970); -emit_32(1105431311); -emit_32(3254386688); -emit_32(3267579911); -emit_32(1105504921); -emit_32(3254386688); -emit_32(3267067904); -emit_32(1105722658); -emit_32(3254386688); -emit_32(3266555911); -emit_32(1106419279); -emit_32(3254386688); -emit_32(3266043904); -emit_32(1106556905); -emit_32(3254386688); -emit_32(3265531911); -emit_32(1106183088); -emit_32(3254386688); -emit_32(3265019904); -emit_32(1105580681); -emit_32(3254386688); -emit_32(3264507911); -emit_32(1105335366); -emit_32(3254386688); -emit_32(3263995904); -emit_32(1104986348); -emit_32(3254386688); -emit_32(3263483911); -emit_32(1105341763); -emit_32(3254386688); -emit_32(3262775296); -emit_32(1105698541); -emit_32(3254386688); -emit_32(3261751309); -emit_32(1105960737); -emit_32(3254386688); -emit_32(3260727296); -emit_32(1106331828); -emit_32(3254386688); -emit_32(3259703309); -emit_32(1107459886); -emit_32(3254386688); -emit_32(3258679296); -emit_32(1108153677); -emit_32(3254386688); -emit_32(3257655309); -emit_32(1108782508); -emit_32(3254386688); -emit_32(3256631296); -emit_32(1109432127); -emit_32(3254386688); -emit_32(3255607309); -emit_32(1110052097); -emit_32(3254386688); -emit_32(3254386688); -emit_32(1110875832); -emit_32(3254386688); -emit_32(3252338714); -emit_32(1111641214); -emit_32(3254386688); -emit_32(3250290688); -emit_32(1112331230); -emit_32(3254386688); -emit_32(3248242714); -emit_32(1112948054); -emit_32(3254386688); -emit_32(3245998080); -emit_32(1113423243); -emit_32(3254386688); -emit_32(3241902132); -emit_32(1113710579); -emit_32(3254386688); -emit_32(3237609472); -emit_32(1113669763); -emit_32(3254386688); -emit_32(3229220864); -emit_32(1114121516); -emit_32(3254386688); -emit_32(0); -emit_32(1114484769); -emit_32(3254386688); -emit_32(1081737216); -emit_32(1114484349); -emit_32(3254386688); -emit_32(3279552512); -emit_32(1072117538); -emit_32(3255607309); -emit_32(3279296528); -emit_32(1066548005); -emit_32(3255607309); -emit_32(3279040545); -emit_32(1074090329); -emit_32(3255607309); -emit_32(3278784496); -emit_32(1080727353); -emit_32(3255607309); -emit_32(3278528512); -emit_32(1083163300); -emit_32(3255607309); -emit_32(3278272528); -emit_32(1085569447); -emit_32(3255607309); -emit_32(3278016545); -emit_32(1089130264); -emit_32(3255607309); -emit_32(3277760496); -emit_32(1091726821); -emit_32(3255607309); -emit_32(3277504512); -emit_32(1092664741); -emit_32(3255607309); -emit_32(3277248528); -emit_32(1094453402); -emit_32(3255607309); -emit_32(3276992545); -emit_32(1095438854); -emit_32(3255607309); -emit_32(3276736496); -emit_32(1096833145); -emit_32(3255607309); -emit_32(3276480512); -emit_32(1097840722); -emit_32(3255607309); -emit_32(3276224528); -emit_32(1099027500); -emit_32(3255607309); -emit_32(3275968545); -emit_32(1099544815); -emit_32(3255607309); -emit_32(3275712496); -emit_32(1099992505); -emit_32(3255607309); -emit_32(3275456512); -emit_32(1100930351); -emit_32(3255607309); -emit_32(3275200528); -emit_32(1102195720); -emit_32(3255607309); -emit_32(3274944545); -emit_32(1103964773); -emit_32(3255607309); -emit_32(3274688496); -emit_32(1105022262); -emit_32(3255607309); -emit_32(3274432512); -emit_32(1105539419); -emit_32(3255607309); -emit_32(3274176528); -emit_32(1106031097); -emit_32(3255607309); -emit_32(3273920545); -emit_32(1106016050); -emit_32(3255607309); -emit_32(3273664496); -emit_32(1106647135); -emit_32(3255607309); -emit_32(3273408512); -emit_32(1106967003); -emit_32(3255607309); -emit_32(3273152528); -emit_32(1107003861); -emit_32(3255607309); -emit_32(3272896545); -emit_32(1107169273); -emit_32(3255607309); -emit_32(3272640496); -emit_32(1106842170); -emit_32(3255607309); -emit_32(3272384512); -emit_32(1105904481); -emit_32(3255607309); -emit_32(3272128528); -emit_32(1105234493); -emit_32(3255607309); -emit_32(3271872545); -emit_32(1105294944); -emit_32(3255607309); -emit_32(3271616496); -emit_32(1105337988); -emit_32(3255607309); -emit_32(3271163904); -emit_32(1104796765); -emit_32(3255607309); -emit_32(3270651937); -emit_32(1104285113); -emit_32(3255607309); -emit_32(3270139970); -emit_32(1103883875); -emit_32(3255607309); -emit_32(3269627871); -emit_32(1103911662); -emit_32(3255607309); -emit_32(3269115904); -emit_32(1104082528); -emit_32(3255607309); -emit_32(3268603937); -emit_32(1105166231); -emit_32(3255607309); -emit_32(3268091970); -emit_32(1105162718); -emit_32(3255607309); -emit_32(3267579911); -emit_32(1105161460); -emit_32(3255607309); -emit_32(3267067904); -emit_32(1105681397); -emit_32(3255607309); -emit_32(3266555911); -emit_32(1106322129); -emit_32(3255607309); -emit_32(3266043904); -emit_32(1106430080); -emit_32(3255607309); -emit_32(3265531911); -emit_32(1106116084); -emit_32(3255607309); -emit_32(3265019904); -emit_32(1105862643); -emit_32(3255607309); -emit_32(3264507911); -emit_32(1105647947); -emit_32(3255607309); -emit_32(3263995904); -emit_32(1105573655); -emit_32(3255607309); -emit_32(3263483911); -emit_32(1105891374); -emit_32(3255607309); -emit_32(3262775296); -emit_32(1106077339); -emit_32(3255607309); -emit_32(3261751309); -emit_32(1106805889); -emit_32(3255607309); -emit_32(3260727296); -emit_32(1107381269); -emit_32(3255607309); -emit_32(3259703309); -emit_32(1107945325); -emit_32(3255607309); -emit_32(3258679296); -emit_32(1108632771); -emit_32(3255607309); -emit_32(3257655309); -emit_32(1109426989); -emit_32(3255607309); -emit_32(3256631296); -emit_32(1110034927); -emit_32(3255607309); -emit_32(3255607309); -emit_32(1110881652); -emit_32(3255607309); -emit_32(3254386688); -emit_32(1111900946); -emit_32(3255607309); -emit_32(3252338714); -emit_32(1112428590); -emit_32(3255607309); -emit_32(3250290688); -emit_32(1112879923); -emit_32(3255607309); -emit_32(3248242714); -emit_32(1113433755); -emit_32(3255607309); -emit_32(3245998080); -emit_32(1113801412); -emit_32(3255607309); -emit_32(3241902132); -emit_32(1113823248); -emit_32(3255607309); -emit_32(3237609472); -emit_32(1114004154); -emit_32(3255607309); -emit_32(3229220864); -emit_32(1114356344); -emit_32(3255607309); -emit_32(0); -emit_32(1114696502); -emit_32(3255607309); -emit_32(1081737216); -emit_32(1114694274); -emit_32(3255607309); -emit_32(3279552512); -emit_32(1076255680); -emit_32(3256631296); -emit_32(3279296528); -emit_32(1069990271); -emit_32(3256631296); -emit_32(3279040545); -emit_32(1068896816); -emit_32(3256631296); -emit_32(3278784496); -emit_32(1077023364); -emit_32(3256631296); -emit_32(3278528512); -emit_32(1081539790); -emit_32(3256631296); -emit_32(3278272528); -emit_32(1084255287); -emit_32(3256631296); -emit_32(3278016545); -emit_32(1087513968); -emit_32(3256631296); -emit_32(3277760496); -emit_32(1090514049); -emit_32(3256631296); -emit_32(3277504512); -emit_32(1092329323); -emit_32(3256631296); -emit_32(3277248528); -emit_32(1094687130); -emit_32(3256631296); -emit_32(3276992545); -emit_32(1095553044); -emit_32(3256631296); -emit_32(3276736496); -emit_32(1096485647); -emit_32(3256631296); -emit_32(3276480512); -emit_32(1097021994); -emit_32(3256631296); -emit_32(3276224528); -emit_32(1097731565); -emit_32(3256631296); -emit_32(3275968545); -emit_32(1099236114); -emit_32(3256631296); -emit_32(3275712496); -emit_32(1099466539); -emit_32(3256631296); -emit_32(3275456512); -emit_32(1100645820); -emit_32(3256631296); -emit_32(3275200528); -emit_32(1102788270); -emit_32(3256631296); -emit_32(3274944545); -emit_32(1104259213); -emit_32(3256631296); -emit_32(3274688496); -emit_32(1105157161); -emit_32(3256631296); -emit_32(3274432512); -emit_32(1105746199); -emit_32(3256631296); -emit_32(3274176528); -emit_32(1105646689); -emit_32(3256631296); -emit_32(3273920545); -emit_32(1106061296); -emit_32(3256631296); -emit_32(3273664496); -emit_32(1106358777); -emit_32(3256631296); -emit_32(3273408512); -emit_32(1106493728); -emit_32(3256631296); -emit_32(3273152528); -emit_32(1106565556); -emit_32(3256631296); -emit_32(3272896545); -emit_32(1106704649); -emit_32(3256631296); -emit_32(3272640496); -emit_32(1106418231); -emit_32(3256631296); -emit_32(3272384512); -emit_32(1105930014); -emit_32(3256631296); -emit_32(3272128528); -emit_32(1105073589); -emit_32(3256631296); -emit_32(3271872545); -emit_32(1104573104); -emit_32(3256631296); -emit_32(3271616496); -emit_32(1104491368); -emit_32(3256631296); -emit_32(3271163904); -emit_32(1103992822); -emit_32(3256631296); -emit_32(3270651937); -emit_32(1103347004); -emit_32(3256631296); -emit_32(3270139970); -emit_32(1103160882); -emit_32(3256631296); -emit_32(3269627871); -emit_32(1103581256); -emit_32(3256631296); -emit_32(3269115904); -emit_32(1103924874); -emit_32(3256631296); -emit_32(3268603937); -emit_32(1103872184); -emit_32(3256631296); -emit_32(3268091970); -emit_32(1104525237); -emit_32(3256631296); -emit_32(3267579911); -emit_32(1104546785); -emit_32(3256631296); -emit_32(3267067904); -emit_32(1105161250); -emit_32(3256631296); -emit_32(3266555911); -emit_32(1105731204); -emit_32(3256631296); -emit_32(3266043904); -emit_32(1105909881); -emit_32(3256631296); -emit_32(3265531911); -emit_32(1106044990); -emit_32(3256631296); -emit_32(3265019904); -emit_32(1105972009); -emit_32(3256631296); -emit_32(3264507911); -emit_32(1105900444); -emit_32(3256631296); -emit_32(3263995904); -emit_32(1106042264); -emit_32(3256631296); -emit_32(3263483911); -emit_32(1105966347); -emit_32(3256631296); -emit_32(3262775296); -emit_32(1106865029); -emit_32(3256631296); -emit_32(3261751309); -emit_32(1107485707); -emit_32(3256631296); -emit_32(3260727296); -emit_32(1107879081); -emit_32(3256631296); -emit_32(3259703309); -emit_32(1108393643); -emit_32(3256631296); -emit_32(3258679296); -emit_32(1109055845); -emit_32(3256631296); -emit_32(3257655309); -emit_32(1109718362); -emit_32(3256631296); -emit_32(3256631296); -emit_32(1110595522); -emit_32(3256631296); -emit_32(3255607309); -emit_32(1111233213); -emit_32(3256631296); -emit_32(3254386688); -emit_32(1112275236); -emit_32(3256631296); -emit_32(3252338714); -emit_32(1112879058); -emit_32(3256631296); -emit_32(3250290688); -emit_32(1113378678); -emit_32(3256631296); -emit_32(3248242714); -emit_32(1113688847); -emit_32(3256631296); -emit_32(3245998080); -emit_32(1114075693); -emit_32(3256631296); -emit_32(3241902132); -emit_32(1114046857); -emit_32(3256631296); -emit_32(3237609472); -emit_32(1114323576); -emit_32(3256631296); -emit_32(3229220864); -emit_32(1114565509); -emit_32(3256631296); -emit_32(0); -emit_32(1114610047); -emit_32(3256631296); -emit_32(1081737216); -emit_32(1114612538); -emit_32(3256631296); -emit_32(3279552512); -emit_32(1076804295); -emit_32(3257655309); -emit_32(3279296528); -emit_32(1073151266); -emit_32(3257655309); -emit_32(3279040545); -emit_32(1073776846); -emit_32(3257655309); -emit_32(3278784496); -emit_32(1078617493); -emit_32(3257655309); -emit_32(3278528512); -emit_32(1079412439); -emit_32(3257655309); -emit_32(3278272528); -emit_32(1083194359); -emit_32(3257655309); -emit_32(3278016545); -emit_32(1086932302); -emit_32(3257655309); -emit_32(3277760496); -emit_32(1090303516); -emit_32(3257655309); -emit_32(3277504512); -emit_32(1091865904); -emit_32(3257655309); -emit_32(3277248528); -emit_32(1094115865); -emit_32(3257655309); -emit_32(3276992545); -emit_32(1095463705); -emit_32(3257655309); -emit_32(3276736496); -emit_32(1096420531); -emit_32(3257655309); -emit_32(3276480512); -emit_32(1097432511); -emit_32(3257655309); -emit_32(3276224528); -emit_32(1097662883); -emit_32(3257655309); -emit_32(3275968545); -emit_32(1098694263); -emit_32(3257655309); -emit_32(3275712496); -emit_32(1099094871); -emit_32(3257655309); -emit_32(3275456512); -emit_32(1101139542); -emit_32(3257655309); -emit_32(3275200528); -emit_32(1102734583); -emit_32(3257655309); -emit_32(3274944545); -emit_32(1103866521); -emit_32(3257655309); -emit_32(3274688496); -emit_32(1104826178); -emit_32(3257655309); -emit_32(3274432512); -emit_32(1105191869); -emit_32(3257655309); -emit_32(3274176528); -emit_32(1105342759); -emit_32(3257655309); -emit_32(3273920545); -emit_32(1105684804); -emit_32(3257655309); -emit_32(3273664496); -emit_32(1105820647); -emit_32(3257655309); -emit_32(3273408512); -emit_32(1106189903); -emit_32(3257655309); -emit_32(3273152528); -emit_32(1105981447); -emit_32(3257655309); -emit_32(3272896545); -emit_32(1105858134); -emit_32(3257655309); -emit_32(3272640496); -emit_32(1105678146); -emit_32(3257655309); -emit_32(3272384512); -emit_32(1104998826); -emit_32(3257655309); -emit_32(3272128528); -emit_32(1104598218); -emit_32(3257655309); -emit_32(3271872545); -emit_32(1104297643); -emit_32(3257655309); -emit_32(3271616496); -emit_32(1103698487); -emit_32(3257655309); -emit_32(3271163904); -emit_32(1103368290); -emit_32(3257655309); -emit_32(3270651937); -emit_32(1103021107); -emit_32(3257655309); -emit_32(3270139970); -emit_32(1102840332); -emit_32(3257655309); -emit_32(3269627871); -emit_32(1103133042); -emit_32(3257655309); -emit_32(3269115904); -emit_32(1103173570); -emit_32(3257655309); -emit_32(3268603937); -emit_32(1103141274); -emit_32(3257655309); -emit_32(3268091970); -emit_32(1103365407); -emit_32(3257655309); -emit_32(3267579911); -emit_32(1103545342); -emit_32(3257655309); -emit_32(3267067904); -emit_32(1104414140); -emit_32(3257655309); -emit_32(3266555911); -emit_32(1104666532); -emit_32(3257655309); -emit_32(3266043904); -emit_32(1105496480); -emit_32(3257655309); -emit_32(3265531911); -emit_32(1105715423); -emit_32(3257655309); -emit_32(3265019904); -emit_32(1105801196); -emit_32(3257655309); -emit_32(3264507911); -emit_32(1105657070); -emit_32(3257655309); -emit_32(3263995904); -emit_32(1106199708); -emit_32(3257655309); -emit_32(3263483911); -emit_32(1107111182); -emit_32(3257655309); -emit_32(3262775296); -emit_32(1107520468); -emit_32(3257655309); -emit_32(3261751309); -emit_32(1107938194); -emit_32(3257655309); -emit_32(3260727296); -emit_32(1108285168); -emit_32(3257655309); -emit_32(3259703309); -emit_32(1109004937); -emit_32(3257655309); -emit_32(3258679296); -emit_32(1109555675); -emit_32(3257655309); -emit_32(3257655309); -emit_32(1110079124); -emit_32(3257655309); -emit_32(3256631296); -emit_32(1110954659); -emit_32(3257655309); -emit_32(3255607309); -emit_32(1111702136); -emit_32(3257655309); -emit_32(3254386688); -emit_32(1112419205); -emit_32(3257655309); -emit_32(3252338714); -emit_32(1113101723); -emit_32(3257655309); -emit_32(3250290688); -emit_32(1113769509); -emit_32(3257655309); -emit_32(3248242714); -emit_32(1113942393); -emit_32(3257655309); -emit_32(3245998080); -emit_32(1114187760); -emit_32(3257655309); -emit_32(3241902132); -emit_32(1114233451); -emit_32(3257655309); -emit_32(3237609472); -emit_32(1114375009); -emit_32(3257655309); -emit_32(3229220864); -emit_32(1114534052); -emit_32(3257655309); -emit_32(0); -emit_32(1114534445); -emit_32(3257655309); -emit_32(1081737216); -emit_32(1114510642); -emit_32(3257655309); -emit_32(3279552512); -emit_32(1073972469); -emit_32(3258679296); -emit_32(3279296528); -emit_32(1069063330); -emit_32(3258679296); -emit_32(3279040545); -emit_32(1073401750); -emit_32(3258679296); -emit_32(3278784496); -emit_32(1075865903); -emit_32(3258679296); -emit_32(3278528512); -emit_32(1078931520); -emit_32(3258679296); -emit_32(3278272528); -emit_32(1083096191); -emit_32(3258679296); -emit_32(3278016545); -emit_32(1086698344); -emit_32(3258679296); -emit_32(3277760496); -emit_32(1089640354); -emit_32(3258679296); -emit_32(3277504512); -emit_32(1091993652); -emit_32(3258679296); -emit_32(3277248528); -emit_32(1094077907); -emit_32(3258679296); -emit_32(3276992545); -emit_32(1095184469); -emit_32(3258679296); -emit_32(3276736496); -emit_32(1095896243); -emit_32(3258679296); -emit_32(3276480512); -emit_32(1096633916); -emit_32(3258679296); -emit_32(3276224528); -emit_32(1096975542); -emit_32(3258679296); -emit_32(3275968545); -emit_32(1097889376); -emit_32(3258679296); -emit_32(3275712496); -emit_32(1099541774); -emit_32(3258679296); -emit_32(3275456512); -emit_32(1101179178); -emit_32(3258679296); -emit_32(3275200528); -emit_32(1102317932); -emit_32(3258679296); -emit_32(3274944545); -emit_32(1103521278); -emit_32(3258679296); -emit_32(3274688496); -emit_32(1104345983); -emit_32(3258679296); -emit_32(3274432512); -emit_32(1104852759); -emit_32(3258679296); -emit_32(3274176528); -emit_32(1104831526); -emit_32(3258679296); -emit_32(3273920545); -emit_32(1104946974); -emit_32(3258679296); -emit_32(3273664496); -emit_32(1105281994); -emit_32(3258679296); -emit_32(3273408512); -emit_32(1105386275); -emit_32(3258679296); -emit_32(3273152528); -emit_32(1104804053); -emit_32(3258679296); -emit_32(3272896545); -emit_32(1105020374); -emit_32(3258679296); -emit_32(3272640496); -emit_32(1104527806); -emit_32(3258679296); -emit_32(3272384512); -emit_32(1103824211); -emit_32(3258679296); -emit_32(3272128528); -emit_32(1103687791); -emit_32(3258679296); -emit_32(3271872545); -emit_32(1103464392); -emit_32(3258679296); -emit_32(3271616496); -emit_32(1103011774); -emit_32(3258679296); -emit_32(3271163904); -emit_32(1102466777); -emit_32(3258679296); -emit_32(3270651937); -emit_32(1102908804); -emit_32(3258679296); -emit_32(3270139970); -emit_32(1102728659); -emit_32(3258679296); -emit_32(3269627871); -emit_32(1102517318); -emit_32(3258679296); -emit_32(3269115904); -emit_32(1102387190); -emit_32(3258679296); -emit_32(3268603937); -emit_32(1102173019); -emit_32(3258679296); -emit_32(3268091970); -emit_32(1102448637); -emit_32(3258679296); -emit_32(3267579911); -emit_32(1102804104); -emit_32(3258679296); -emit_32(3267067904); -emit_32(1103652140); -emit_32(3258679296); -emit_32(3266555911); -emit_32(1104033035); -emit_32(3258679296); -emit_32(3266043904); -emit_32(1104794721); -emit_32(3258679296); -emit_32(3265531911); -emit_32(1105280578); -emit_32(3258679296); -emit_32(3265019904); -emit_32(1105555305); -emit_32(3258679296); -emit_32(3264507911); -emit_32(1106497398); -emit_32(3258679296); -emit_32(3263995904); -emit_32(1107356549); -emit_32(3258679296); -emit_32(3263483911); -emit_32(1107738440); -emit_32(3258679296); -emit_32(3262775296); -emit_32(1108026091); -emit_32(3258679296); -emit_32(3261751309); -emit_32(1108412596); -emit_32(3258679296); -emit_32(3260727296); -emit_32(1108935547); -emit_32(3258679296); -emit_32(3259703309); -emit_32(1109269178); -emit_32(3258679296); -emit_32(3258679296); -emit_32(1109856774); -emit_32(3258679296); -emit_32(3257655309); -emit_32(1110673955); -emit_32(3258679296); -emit_32(3256631296); -emit_32(1111396031); -emit_32(3258679296); -emit_32(3255607309); -emit_32(1111904302); -emit_32(3258679296); -emit_32(3254386688); -emit_32(1112640612); -emit_32(3258679296); -emit_32(3252338714); -emit_32(1113308083); -emit_32(3258679296); -emit_32(3250290688); -emit_32(1113763480); -emit_32(3258679296); -emit_32(3248242714); -emit_32(1113823117); -emit_32(3258679296); -emit_32(3245998080); -emit_32(1114289734); -emit_32(3258679296); -emit_32(3241902132); -emit_32(1114547028); -emit_32(3258679296); -emit_32(3237609472); -emit_32(1114378417); -emit_32(3258679296); -emit_32(3229220864); -emit_32(1114468175); -emit_32(3258679296); -emit_32(0); -emit_32(1114253689); -emit_32(3258679296); -emit_32(1081737216); -emit_32(1114350184); -emit_32(3258679296); -emit_32(3279552512); -emit_32(1076163699); -emit_32(3259703309); -emit_32(3279296528); -emit_32(1074005017); -emit_32(3259703309); -emit_32(3279040545); -emit_32(1074851343); -emit_32(3259703309); -emit_32(3278784496); -emit_32(1075567479); -emit_32(3259703309); -emit_32(3278528512); -emit_32(1076420223); -emit_32(3259703309); -emit_32(3278272528); -emit_32(1083073395); -emit_32(3259703309); -emit_32(3278016545); -emit_32(1087377339); -emit_32(3259703309); -emit_32(3277760496); -emit_32(1090634446); -emit_32(3259703309); -emit_32(3277504512); -emit_32(1092723461); -emit_32(3259703309); -emit_32(3277248528); -emit_32(1094053580); -emit_32(3259703309); -emit_32(3276992545); -emit_32(1095488766); -emit_32(3259703309); -emit_32(3276736496); -emit_32(1096447794); -emit_32(3259703309); -emit_32(3276480512); -emit_32(1096424305); -emit_32(3259703309); -emit_32(3276224528); -emit_32(1096267648); -emit_32(3259703309); -emit_32(3275968545); -emit_32(1098177000); -emit_32(3259703309); -emit_32(3275712496); -emit_32(1099698536); -emit_32(3259703309); -emit_32(3275456512); -emit_32(1100780981); -emit_32(3259703309); -emit_32(3275200528); -emit_32(1102100247); -emit_32(3259703309); -emit_32(3274944545); -emit_32(1103045696); -emit_32(3259703309); -emit_32(3274688496); -emit_32(1103591375); -emit_32(3259703309); -emit_32(3274432512); -emit_32(1104209510); -emit_32(3259703309); -emit_32(3274176528); -emit_32(1104099882); -emit_32(3259703309); -emit_32(3273920545); -emit_32(1104651171); -emit_32(3259703309); -emit_32(3273664496); -emit_32(1104566760); -emit_32(3259703309); -emit_32(3273408512); -emit_32(1104331250); -emit_32(3259703309); -emit_32(3273152528); -emit_32(1103945269); -emit_32(3259703309); -emit_32(3272896545); -emit_32(1103774247); -emit_32(3259703309); -emit_32(3272640496); -emit_32(1103880729); -emit_32(3259703309); -emit_32(3272384512); -emit_32(1103052669); -emit_32(3259703309); -emit_32(3272128528); -emit_32(1102949594); -emit_32(3259703309); -emit_32(3271872545); -emit_32(1102556640); -emit_32(3259703309); -emit_32(3271616496); -emit_32(1102215329); -emit_32(3259703309); -emit_32(3271163904); -emit_32(1102211711); -emit_32(3259703309); -emit_32(3270651937); -emit_32(1102750102); -emit_32(3259703309); -emit_32(3270139970); -emit_32(1102672246); -emit_32(3259703309); -emit_32(3269627871); -emit_32(1102404282); -emit_32(3259703309); -emit_32(3269115904); -emit_32(1101664721); -emit_32(3259703309); -emit_32(3268603937); -emit_32(1101247965); -emit_32(3259703309); -emit_32(3268091970); -emit_32(1101781742); -emit_32(3259703309); -emit_32(3267579911); -emit_32(1102060559); -emit_32(3259703309); -emit_32(3267067904); -emit_32(1102827382); -emit_32(3259703309); -emit_32(3266555911); -emit_32(1103737651); -emit_32(3259703309); -emit_32(3266043904); -emit_32(1104384360); -emit_32(3259703309); -emit_32(3265531911); -emit_32(1104969151); -emit_32(3259703309); -emit_32(3265019904); -emit_32(1106019143); -emit_32(3259703309); -emit_32(3264507911); -emit_32(1106853337); -emit_32(3259703309); -emit_32(3263995904); -emit_32(1107698306); -emit_32(3259703309); -emit_32(3263483911); -emit_32(1108253868); -emit_32(3259703309); -emit_32(3262775296); -emit_32(1108408245); -emit_32(3259703309); -emit_32(3261751309); -emit_32(1108719619); -emit_32(3259703309); -emit_32(3260727296); -emit_32(1109327662); -emit_32(3259703309); -emit_32(3259703309); -emit_32(1109785051); -emit_32(3259703309); -emit_32(3258679296); -emit_32(1110584826); -emit_32(3259703309); -emit_32(3257655309); -emit_32(1111298907); -emit_32(3259703309); -emit_32(3256631296); -emit_32(1111928472); -emit_32(3259703309); -emit_32(3255607309); -emit_32(1112511401); -emit_32(3259703309); -emit_32(3254386688); -emit_32(1113049871); -emit_32(3259703309); -emit_32(3252338714); -emit_32(1113389636); -emit_32(3259703309); -emit_32(3250290688); -emit_32(1113731419); -emit_32(3259703309); -emit_32(3248242714); -emit_32(1114257359); -emit_32(3259703309); -emit_32(3245998080); -emit_32(1114519870); -emit_32(3259703309); -emit_32(3241902132); -emit_32(1114340039); -emit_32(3259703309); -emit_32(3237609472); -emit_32(1114383922); -emit_32(3259703309); -emit_32(3229220864); -emit_32(1114528390); -emit_32(3259703309); -emit_32(0); -emit_32(1114544302); -emit_32(3259703309); -emit_32(1081737216); -emit_32(1114597202); -emit_32(3259703309); -emit_32(3279552512); -emit_32(1073915300); -emit_32(3260727296); -emit_32(3279296528); -emit_32(1076045336); -emit_32(3260727296); -emit_32(3279040545); -emit_32(1076717767); -emit_32(3260727296); -emit_32(3278784496); -emit_32(1077967921); -emit_32(3260727296); -emit_32(3278528512); -emit_32(1080230706); -emit_32(3260727296); -emit_32(3278272528); -emit_32(1084434174); -emit_32(3260727296); -emit_32(3278016545); -emit_32(1088619209); -emit_32(3260727296); -emit_32(3277760496); -emit_32(1090948694); -emit_32(3260727296); -emit_32(3277504512); -emit_32(1092674388); -emit_32(3260727296); -emit_32(3277248528); -emit_32(1094185071); -emit_32(3260727296); -emit_32(3276992545); -emit_32(1094902717); -emit_32(3260727296); -emit_32(3276736496); -emit_32(1095470101); -emit_32(3260727296); -emit_32(3276480512); -emit_32(1095440531); -emit_32(3260727296); -emit_32(3276224528); -emit_32(1096837654); -emit_32(3260727296); -emit_32(3275968545); -emit_32(1098967784); -emit_32(3260727296); -emit_32(3275712496); -emit_32(1100160067); -emit_32(3260727296); -emit_32(3275456512); -emit_32(1100666582); -emit_32(3260727296); -emit_32(3275200528); -emit_32(1101873178); -emit_32(3260727296); -emit_32(3274944545); -emit_32(1102572736); -emit_32(3260727296); -emit_32(3274688496); -emit_32(1102982834); -emit_32(3260727296); -emit_32(3274432512); -emit_32(1103746092); -emit_32(3260727296); -emit_32(3274176528); -emit_32(1104190584); -emit_32(3260727296); -emit_32(3273920545); -emit_32(1104541647); -emit_32(3260727296); -emit_32(3273664496); -emit_32(1104309335); -emit_32(3260727296); -emit_32(3273408512); -emit_32(1103949831); -emit_32(3260727296); -emit_32(3273152528); -emit_32(1103383495); -emit_32(3260727296); -emit_32(3272896545); -emit_32(1103021107); -emit_32(3260727296); -emit_32(3272640496); -emit_32(1102773014); -emit_32(3260727296); -emit_32(3272384512); -emit_32(1102509192); -emit_32(3260727296); -emit_32(3272128528); -emit_32(1102328470); -emit_32(3260727296); -emit_32(3271872545); -emit_32(1101757678); -emit_32(3260727296); -emit_32(3271616496); -emit_32(1101776133); -emit_32(3260727296); -emit_32(3271163904); -emit_32(1102138363); -emit_32(3260727296); -emit_32(3270651937); -emit_32(1102294496); -emit_32(3260727296); -emit_32(3270139970); -emit_32(1101746563); -emit_32(3260727296); -emit_32(3269627871); -emit_32(1101436656); -emit_32(3260727296); -emit_32(3269115904); -emit_32(1100808559); -emit_32(3260727296); -emit_32(3268603937); -emit_32(1101081451); -emit_32(3260727296); -emit_32(3268091970); -emit_32(1101838156); -emit_32(3260727296); -emit_32(3267579911); -emit_32(1102177947); -emit_32(3260727296); -emit_32(3267067904); -emit_32(1102933656); -emit_32(3260727296); -emit_32(3266555911); -emit_32(1103594940); -emit_32(3260727296); -emit_32(3266043904); -emit_32(1104370991); -emit_32(3260727296); -emit_32(3265531911); -emit_32(1105153229); -emit_32(3260727296); -emit_32(3265019904); -emit_32(1106283803); -emit_32(3260727296); -emit_32(3264507911); -emit_32(1107489928); -emit_32(3260727296); -emit_32(3263995904); -emit_32(1107912347); -emit_32(3260727296); -emit_32(3263483911); -emit_32(1108259976); -emit_32(3260727296); -emit_32(3262775296); -emit_32(1108728218); -emit_32(3260727296); -emit_32(3261751309); -emit_32(1108959507); -emit_32(3260727296); -emit_32(3260727296); -emit_32(1109551402); -emit_32(3260727296); -emit_32(3259703309); -emit_32(1110560788); -emit_32(3260727296); -emit_32(3258679296); -emit_32(1111390473); -emit_32(3260727296); -emit_32(3257655309); -emit_32(1111954109); -emit_32(3260727296); -emit_32(3256631296); -emit_32(1112588288); -emit_32(3260727296); -emit_32(3255607309); -emit_32(1113193211); -emit_32(3260727296); -emit_32(3254386688); -emit_32(1113572953); -emit_32(3260727296); -emit_32(3252338714); -emit_32(1113885324); -emit_32(3260727296); -emit_32(3250290688); -emit_32(1114116194); -emit_32(3260727296); -emit_32(3248242714); -emit_32(1114531771); -emit_32(3260727296); -emit_32(3245998080); -emit_32(1114632933); -emit_32(3260727296); -emit_32(3241902132); -emit_32(1114591697); -emit_32(3260727296); -emit_32(3237609472); -emit_32(1114663420); -emit_32(3260727296); -emit_32(3229220864); -emit_32(1114860631); -emit_32(3260727296); -emit_32(0); -emit_32(1114783587); -emit_32(3260727296); -emit_32(1081737216); -emit_32(1114739258); -emit_32(3260727296); -emit_32(3279552512); -emit_32(1082154906); -emit_32(3261751309); -emit_32(3279296528); -emit_32(1078227213); -emit_32(3261751309); -emit_32(3279040545); -emit_32(1079515745); -emit_32(3261751309); -emit_32(3278784496); -emit_32(1080953133); -emit_32(3261751309); -emit_32(3278528512); -emit_32(1082315317); -emit_32(3261751309); -emit_32(3278272528); -emit_32(1085410084); -emit_32(3261751309); -emit_32(3278016545); -emit_32(1089116884); -emit_32(3261751309); -emit_32(3277760496); -emit_32(1091162058); -emit_32(3261751309); -emit_32(3277504512); -emit_32(1092383922); -emit_32(3261751309); -emit_32(3277248528); -emit_32(1094686500); -emit_32(3261751309); -emit_32(3276992545); -emit_32(1095695440); -emit_32(3261751309); -emit_32(3276736496); -emit_32(1096304558); -emit_32(3261751309); -emit_32(3276480512); -emit_32(1096755970); -emit_32(3261751309); -emit_32(3276224528); -emit_32(1097235484); -emit_32(3261751309); -emit_32(3275968545); -emit_32(1098986081); -emit_32(3261751309); -emit_32(3275712496); -emit_32(1099885602); -emit_32(3261751309); -emit_32(3275456512); -emit_32(1100472805); -emit_32(3261751309); -emit_32(3275200528); -emit_32(1101685588); -emit_32(3261751309); -emit_32(3274944545); -emit_32(1102836243); -emit_32(3261751309); -emit_32(3274688496); -emit_32(1103812048); -emit_32(3261751309); -emit_32(3274432512); -emit_32(1104207518); -emit_32(3261751309); -emit_32(3274176528); -emit_32(1104457970); -emit_32(3261751309); -emit_32(3273920545); -emit_32(1104083891); -emit_32(3261751309); -emit_32(3273664496); -emit_32(1103629805); -emit_32(3261751309); -emit_32(3273408512); -emit_32(1103776553); -emit_32(3261751309); -emit_32(3273152528); -emit_32(1103074794); -emit_32(3261751309); -emit_32(3272896545); -emit_32(1102698250); -emit_32(3261751309); -emit_32(3272640496); -emit_32(1102376914); -emit_32(3261751309); -emit_32(3272384512); -emit_32(1101790760); -emit_32(3261751309); -emit_32(3272128528); -emit_32(1101572184); -emit_32(3261751309); -emit_32(3271872545); -emit_32(1101531028); -emit_32(3261751309); -emit_32(3271616496); -emit_32(1101967498); -emit_32(3261751309); -emit_32(3271163904); -emit_32(1101842874); -emit_32(3261751309); -emit_32(3270651937); -emit_32(1101503398); -emit_32(3261751309); -emit_32(3270139970); -emit_32(1101637406); -emit_32(3261751309); -emit_32(3269627871); -emit_32(1100872627); -emit_32(3261751309); -emit_32(3269115904); -emit_32(1100259629); -emit_32(3261751309); -emit_32(3268603937); -emit_32(1101213676); -emit_32(3261751309); -emit_32(3268091970); -emit_32(1102188118); -emit_32(3261751309); -emit_32(3267579911); -emit_32(1102756499); -emit_32(3261751309); -emit_32(3267067904); -emit_32(1103291744); -emit_32(3261751309); -emit_32(3266555911); -emit_32(1104021763); -emit_32(3261751309); -emit_32(3266043904); -emit_32(1105069185); -emit_32(3261751309); -emit_32(3265531911); -emit_32(1105681659); -emit_32(3261751309); -emit_32(3265019904); -emit_32(1106673612); -emit_32(3261751309); -emit_32(3264507911); -emit_32(1107534728); -emit_32(3261751309); -emit_32(3263995904); -emit_32(1108049579); -emit_32(3261751309); -emit_32(3263483911); -emit_32(1108358411); -emit_32(3261751309); -emit_32(3262775296); -emit_32(1109001765); -emit_32(3261751309); -emit_32(3261751309); -emit_32(1109732911); -emit_32(3261751309); -emit_32(3260727296); -emit_32(1110268628); -emit_32(3261751309); -emit_32(3259703309); -emit_32(1111109324); -emit_32(3261751309); -emit_32(3258679296); -emit_32(1111815854); -emit_32(3261751309); -emit_32(3257655309); -emit_32(1112380434); -emit_32(3261751309); -emit_32(3256631296); -emit_32(1113088511); -emit_32(3261751309); -emit_32(3255607309); -emit_32(1113540657); -emit_32(3261751309); -emit_32(3254386688); -emit_32(1113874498); -emit_32(3261751309); -emit_32(3252338714); -emit_32(1114128672); -emit_32(3261751309); -emit_32(3250290688); -emit_32(1114325883); -emit_32(3261751309); -emit_32(3248242714); -emit_32(1114630023); -emit_32(3261751309); -emit_32(3245998080); -emit_32(1114691181); -emit_32(3261751309); -emit_32(3241902132); -emit_32(1114643497); -emit_32(3261751309); -emit_32(3237609472); -emit_32(1114924410); -emit_32(3261751309); -emit_32(3229220864); -emit_32(1115023894); -emit_32(3261751309); -emit_32(0); -emit_32(1115026751); -emit_32(3261751309); -emit_32(1081737216); -emit_32(1115049086); -emit_32(3261751309); -emit_32(3279552512); -emit_32(1085379717); -emit_32(3262775296); -emit_32(3279296528); -emit_32(1082515763); -emit_32(3262775296); -emit_32(3279040545); -emit_32(1081713392); -emit_32(3262775296); -emit_32(3278784496); -emit_32(1082674664); -emit_32(3262775296); -emit_32(3278528512); -emit_32(1083857751); -emit_32(3262775296); -emit_32(3278272528); -emit_32(1086391782); -emit_32(3262775296); -emit_32(3278016545); -emit_32(1089887986); -emit_32(3262775296); -emit_32(3277760496); -emit_32(1091366562); -emit_32(3262775296); -emit_32(3277504512); -emit_32(1093480323); -emit_32(3262775296); -emit_32(3277248528); -emit_32(1096367053); -emit_32(3262775296); -emit_32(3276992545); -emit_32(1097288647); -emit_32(3262775296); -emit_32(3276736496); -emit_32(1097900491); -emit_32(3262775296); -emit_32(3276480512); -emit_32(1097387737); -emit_32(3262775296); -emit_32(3276224528); -emit_32(1098997092); -emit_32(3262775296); -emit_32(3275968545); -emit_32(1099406141); -emit_32(3262775296); -emit_32(3275712496); -emit_32(1100061920); -emit_32(3262775296); -emit_32(3275456512); -emit_32(1100936328); -emit_32(3262775296); -emit_32(3275200528); -emit_32(1102376704); -emit_32(3262775296); -emit_32(3274944545); -emit_32(1103402212); -emit_32(3262775296); -emit_32(3274688496); -emit_32(1104153831); -emit_32(3262775296); -emit_32(3274432512); -emit_32(1104171447); -emit_32(3262775296); -emit_32(3274176528); -emit_32(1104486911); -emit_32(3262775296); -emit_32(3273920545); -emit_32(1103965769); -emit_32(3262775296); -emit_32(3273664496); -emit_32(1103343911); -emit_32(3262775296); -emit_32(3273408512); -emit_32(1102855274); -emit_32(3262775296); -emit_32(3273152528); -emit_32(1102990751); -emit_32(3262775296); -emit_32(3272896545); -emit_32(1102516113); -emit_32(3262775296); -emit_32(3272640496); -emit_32(1101872916); -emit_32(3262775296); -emit_32(3272384512); -emit_32(1101340606); -emit_32(3262775296); -emit_32(3272128528); -emit_32(1101093667); -emit_32(3262775296); -emit_32(3271872545); -emit_32(1101409288); -emit_32(3262775296); -emit_32(3271616496); -emit_32(1101315074); -emit_32(3262775296); -emit_32(3271163904); -emit_32(1101239471); -emit_32(3262775296); -emit_32(3270651937); -emit_32(1100955936); -emit_32(3262775296); -emit_32(3270139970); -emit_32(1100734163); -emit_32(3262775296); -emit_32(3269627871); -emit_32(1099873911); -emit_32(3262775296); -emit_32(3269115904); -emit_32(1100253023); -emit_32(3262775296); -emit_32(3268603937); -emit_32(1101062786); -emit_32(3262775296); -emit_32(3268091970); -emit_32(1101695916); -emit_32(3262775296); -emit_32(3267579911); -emit_32(1102727139); -emit_32(3262775296); -emit_32(3267067904); -emit_32(1103290748); -emit_32(3262775296); -emit_32(3266555911); -emit_32(1104346717); -emit_32(3262775296); -emit_32(3266043904); -emit_32(1105063261); -emit_32(3262775296); -emit_32(3265531911); -emit_32(1106002838); -emit_32(3262775296); -emit_32(3265019904); -emit_32(1107066723); -emit_32(3262775296); -emit_32(3264507911); -emit_32(1107631093); -emit_32(3262775296); -emit_32(3263995904); -emit_32(1108240630); -emit_32(3262775296); -emit_32(3263483911); -emit_32(1108980662); -emit_32(3262775296); -emit_32(3262775296); -emit_32(1109633532); -emit_32(3262775296); -emit_32(3261751309); -emit_32(1110425679); -emit_32(3262775296); -emit_32(3260727296); -emit_32(1110943098); -emit_32(3262775296); -emit_32(3259703309); -emit_32(1111573843); -emit_32(3262775296); -emit_32(3258679296); -emit_32(1112066674); -emit_32(3262775296); -emit_32(3257655309); -emit_32(1112658464); -emit_32(3262775296); -emit_32(3256631296); -emit_32(1113241131); -emit_32(3262775296); -emit_32(3255607309); -emit_32(1113628711); -emit_32(3262775296); -emit_32(3254386688); -emit_32(1113998361); -emit_32(3262775296); -emit_32(3252338714); -emit_32(1114315476); -emit_32(3262775296); -emit_32(3250290688); -emit_32(1114404291); -emit_32(3262775296); -emit_32(3248242714); -emit_32(1114257097); -emit_32(3262775296); -emit_32(3245998080); -emit_32(1114167496); -emit_32(3262775296); -emit_32(3241902132); -emit_32(1114396767); -emit_32(3262775296); -emit_32(3237609472); -emit_32(1114735247); -emit_32(3262775296); -emit_32(3229220864); -emit_32(1114903465); -emit_32(3262775296); -emit_32(0); -emit_32(1115124924); -emit_32(3262775296); -emit_32(1081737216); -emit_32(1115189700); -emit_32(3262775296); -emit_32(3279552512); -emit_32(1086492571); -emit_32(3263483911); -emit_32(3279296528); -emit_32(1084509819); -emit_32(3263483911); -emit_32(3279040545); -emit_32(1084430379); -emit_32(3263483911); -emit_32(3278784496); -emit_32(1085001978); -emit_32(3263483911); -emit_32(3278528512); -emit_32(1084687406); -emit_32(3263483911); -emit_32(3278272528); -emit_32(1087121591); -emit_32(3263483911); -emit_32(3278016545); -emit_32(1090205138); -emit_32(3263483911); -emit_32(3277760496); -emit_32(1091946330); -emit_32(3263483911); -emit_32(3277504512); -emit_32(1094604292); -emit_32(3263483911); -emit_32(3277248528); -emit_32(1096763205); -emit_32(3263483911); -emit_32(3276992545); -emit_32(1098349072); -emit_32(3263483911); -emit_32(3276736496); -emit_32(1098895589); -emit_32(3263483911); -emit_32(3276480512); -emit_32(1099139645); -emit_32(3263483911); -emit_32(3276224528); -emit_32(1099654916); -emit_32(3263483911); -emit_32(3275968545); -emit_32(1100028838); -emit_32(3263483911); -emit_32(3275712496); -emit_32(1100411096); -emit_32(3263483911); -emit_32(3275456512); -emit_32(1101073796); -emit_32(3263483911); -emit_32(3275200528); -emit_32(1102500803); -emit_32(3263483911); -emit_32(3274944545); -emit_32(1103383180); -emit_32(3263483911); -emit_32(3274688496); -emit_32(1103953081); -emit_32(3263483911); -emit_32(3274432512); -emit_32(1104117078); -emit_32(3263483911); -emit_32(3274176528); -emit_32(1104031777); -emit_32(3263483911); -emit_32(3273920545); -emit_32(1103706141); -emit_32(3263483911); -emit_32(3273664496); -emit_32(1103324512); -emit_32(3263483911); -emit_32(3273408512); -emit_32(1102513124); -emit_32(3263483911); -emit_32(3273152528); -emit_32(1102512757); -emit_32(3263483911); -emit_32(3272896545); -emit_32(1102001367); -emit_32(3263483911); -emit_32(3272640496); -emit_32(1101489347); -emit_32(3263483911); -emit_32(3272384512); -emit_32(1101058382); -emit_32(3263483911); -emit_32(3272128528); -emit_32(1100785805); -emit_32(3263483911); -emit_32(3271872545); -emit_32(1100711985); -emit_32(3263483911); -emit_32(3271616496); -emit_32(1100454979); -emit_32(3263483911); -emit_32(3271163904); -emit_32(1100441924); -emit_32(3263483911); -emit_32(3270651937); -emit_32(1100316829); -emit_32(3263483911); -emit_32(3270139970); -emit_32(1099903690); -emit_32(3263483911); -emit_32(3269627871); -emit_32(1099946525); -emit_32(3263483911); -emit_32(3269115904); -emit_32(1100095265); -emit_32(3263483911); -emit_32(3268603937); -emit_32(1100759958); -emit_32(3263483911); -emit_32(3268091970); -emit_32(1101531447); -emit_32(3263483911); -emit_32(3267579911); -emit_32(1102182403); -emit_32(3263483911); -emit_32(3267067904); -emit_32(1102954575); -emit_32(3263483911); -emit_32(3266555911); -emit_32(1103927181); -emit_32(3263483911); -emit_32(3266043904); -emit_32(1104963174); -emit_32(3263483911); -emit_32(3265531911); -emit_32(1106107695); -emit_32(3263483911); -emit_32(3265019904); -emit_32(1106811971); -emit_32(3263483911); -emit_32(3264507911); -emit_32(1107810242); -emit_32(3263483911); -emit_32(3263995904); -emit_32(1108701217); -emit_32(3263483911); -emit_32(3263483911); -emit_32(1109660533); -emit_32(3263483911); -emit_32(3262775296); -emit_32(1110370838); -emit_32(3263483911); -emit_32(3261751309); -emit_32(1111099363); -emit_32(3263483911); -emit_32(3260727296); -emit_32(1111486628); -emit_32(3263483911); -emit_32(3259703309); -emit_32(1111821464); -emit_32(3263483911); -emit_32(3258679296); -emit_32(1112262967); -emit_32(3263483911); -emit_32(3257655309); -emit_32(1112778211); -emit_32(3263483911); -emit_32(3256631296); -emit_32(1113334717); -emit_32(3263483911); -emit_32(3255607309); -emit_32(1113699910); -emit_32(3263483911); -emit_32(3254386688); -emit_32(1113953429); -emit_32(3263483911); -emit_32(3252338714); -emit_32(1114251775); -emit_32(3263483911); -emit_32(3250290688); -emit_32(1114199242); -emit_32(3263483911); -emit_32(3248242714); -emit_32(1113838033); -emit_32(3263483911); -emit_32(3245998080); -emit_32(1113833787); -emit_32(3263483911); -emit_32(3241902132); -emit_32(1114207840); -emit_32(3263483911); -emit_32(3237609472); -emit_32(1114546556); -emit_32(3263483911); -emit_32(3229220864); -emit_32(1114598697); -emit_32(3263483911); -emit_32(0); -emit_32(1114817954); -emit_32(3263483911); -emit_32(1081737216); -emit_32(1114860919); -emit_32(3263483911); -emit_32(3279552512); -emit_32(1087139710); -emit_32(3263995904); -emit_32(3279296528); -emit_32(1087121150); -emit_32(3263995904); -emit_32(3279040545); -emit_32(1087424797); -emit_32(3263995904); -emit_32(3278784496); -emit_32(1088288866); -emit_32(3263995904); -emit_32(3278528512); -emit_32(1087946275); -emit_32(3263995904); -emit_32(3278272528); -emit_32(1088967861); -emit_32(3263995904); -emit_32(3278016545); -emit_32(1091560444); -emit_32(3263995904); -emit_32(3277760496); -emit_32(1093142053); -emit_32(3263995904); -emit_32(3277504512); -emit_32(1094326419); -emit_32(3263995904); -emit_32(3277248528); -emit_32(1096867958); -emit_32(3263995904); -emit_32(3276992545); -emit_32(1098819882); -emit_32(3263995904); -emit_32(3276736496); -emit_32(1099265422); -emit_32(3263995904); -emit_32(3276480512); -emit_32(1099487668); -emit_32(3263995904); -emit_32(3276224528); -emit_32(1099990827); -emit_32(3263995904); -emit_32(3275968545); -emit_32(1100246627); -emit_32(3263995904); -emit_32(3275712496); -emit_32(1100397937); -emit_32(3263995904); -emit_32(3275456512); -emit_32(1101410127); -emit_32(3263995904); -emit_32(3275200528); -emit_32(1102521513); -emit_32(3263995904); -emit_32(3274944545); -emit_32(1103207386); -emit_32(3263995904); -emit_32(3274688496); -emit_32(1103390940); -emit_32(3263995904); -emit_32(3274432512); -emit_32(1103443263); -emit_32(3263995904); -emit_32(3274176528); -emit_32(1103097024); -emit_32(3263995904); -emit_32(3273920545); -emit_32(1102906864); -emit_32(3263995904); -emit_32(3273664496); -emit_32(1102900730); -emit_32(3263995904); -emit_32(3273408512); -emit_32(1102220938); -emit_32(3263995904); -emit_32(3273152528); -emit_32(1102144078); -emit_32(3263995904); -emit_32(3272896545); -emit_32(1101363046); -emit_32(3263995904); -emit_32(3272640496); -emit_32(1100839544); -emit_32(3263995904); -emit_32(3272384512); -emit_32(1100199127); -emit_32(3263995904); -emit_32(3272128528); -emit_32(1100097362); -emit_32(3263995904); -emit_32(3271872545); -emit_32(1099987419); -emit_32(3263995904); -emit_32(3271616496); -emit_32(1099540044); -emit_32(3263995904); -emit_32(3271163904); -emit_32(1099437336); -emit_32(3263995904); -emit_32(3270651937); -emit_32(1099514983); -emit_32(3263995904); -emit_32(3270139970); -emit_32(1099717201); -emit_32(3263995904); -emit_32(3269627871); -emit_32(1099729155); -emit_32(3263995904); -emit_32(3269115904); -emit_32(1099827039); -emit_32(3263995904); -emit_32(3268603937); -emit_32(1100161378); -emit_32(3263995904); -emit_32(3268091970); -emit_32(1100861355); -emit_32(3263995904); -emit_32(3267579911); -emit_32(1101473671); -emit_32(3263995904); -emit_32(3267067904); -emit_32(1102447483); -emit_32(3263995904); -emit_32(3266555911); -emit_32(1103703782); -emit_32(3263995904); -emit_32(3266043904); -emit_32(1104882067); -emit_32(3263995904); -emit_32(3265531911); -emit_32(1105992194); -emit_32(3263995904); -emit_32(3265019904); -emit_32(1106919608); -emit_32(3263995904); -emit_32(3264507911); -emit_32(1107993271); -emit_32(3263995904); -emit_32(3263995904); -emit_32(1108925769); -emit_32(3263995904); -emit_32(3263483911); -emit_32(1110019198); -emit_32(3263995904); -emit_32(3262775296); -emit_32(1110818501); -emit_32(3263995904); -emit_32(3261751309); -emit_32(1111233161); -emit_32(3263995904); -emit_32(3260727296); -emit_32(1111683183); -emit_32(3263995904); -emit_32(3259703309); -emit_32(1111981792); -emit_32(3263995904); -emit_32(3258679296); -emit_32(1112340798); -emit_32(3263995904); -emit_32(3257655309); -emit_32(1112786705); -emit_32(3263995904); -emit_32(3256631296); -emit_32(1113283966); -emit_32(3263995904); -emit_32(3255607309); -emit_32(1113555626); -emit_32(3263995904); -emit_32(3254386688); -emit_32(1113825948); -emit_32(3263995904); -emit_32(3252338714); -emit_32(1113819107); -emit_32(3263995904); -emit_32(3250290688); -emit_32(1113630940); -emit_32(3263995904); -emit_32(3248242714); -emit_32(1113321059); -emit_32(3263995904); -emit_32(3245998080); -emit_32(1113733018); -emit_32(3263995904); -emit_32(3241902132); -emit_32(1114113861); -emit_32(3263995904); -emit_32(3237609472); -emit_32(1114143562); -emit_32(3263995904); -emit_32(3229220864); -emit_32(1114322213); -emit_32(3263995904); -emit_32(0); -emit_32(1114472841); -emit_32(3263995904); -emit_32(1081737216); -emit_32(1114412994); -emit_32(3263995904); -emit_32(3279552512); -emit_32(1089045854); -emit_32(3264507911); -emit_32(3279296528); -emit_32(1088278862); -emit_32(3264507911); -emit_32(3279040545); -emit_32(1090412714); -emit_32(3264507911); -emit_32(3278784496); -emit_32(1089711259); -emit_32(3264507911); -emit_32(3278528512); -emit_32(1090927439); -emit_32(3264507911); -emit_32(3278272528); -emit_32(1091410686); -emit_32(3264507911); -emit_32(3278016545); -emit_32(1093437227); -emit_32(3264507911); -emit_32(3277760496); -emit_32(1094926205); -emit_32(3264507911); -emit_32(3277504512); -emit_32(1095460140); -emit_32(3264507911); -emit_32(3277248528); -emit_32(1097105460); -emit_32(3264507911); -emit_32(3276992545); -emit_32(1098968413); -emit_32(3264507911); -emit_32(3276736496); -emit_32(1099353345); -emit_32(3264507911); -emit_32(3276480512); -emit_32(1099813618); -emit_32(3264507911); -emit_32(3276224528); -emit_32(1100320499); -emit_32(3264507911); -emit_32(3275968545); -emit_32(1100493829); -emit_32(3264507911); -emit_32(3275712496); -emit_32(1100473906); -emit_32(3264507911); -emit_32(3275456512); -emit_32(1101401948); -emit_32(3264507911); -emit_32(3275200528); -emit_32(1102298848); -emit_32(3264507911); -emit_32(3274944545); -emit_32(1102989230); -emit_32(3264507911); -emit_32(3274688496); -emit_32(1102648967); -emit_32(3264507911); -emit_32(3274432512); -emit_32(1102203952); -emit_32(3264507911); -emit_32(3274176528); -emit_32(1102020923); -emit_32(3264507911); -emit_32(3273920545); -emit_32(1102482244); -emit_32(3264507911); -emit_32(3273664496); -emit_32(1101949515); -emit_32(3264507911); -emit_32(3273408512); -emit_32(1101712379); -emit_32(3264507911); -emit_32(3273152528); -emit_32(1100957195); -emit_32(3264507911); -emit_32(3272896545); -emit_32(1100760377); -emit_32(3264507911); -emit_32(3272640496); -emit_32(1100597271); -emit_32(3264507911); -emit_32(3272384512); -emit_32(1099567360); -emit_32(3264507911); -emit_32(3272128528); -emit_32(1098669307); -emit_32(3264507911); -emit_32(3271872545); -emit_32(1098076022); -emit_32(3264507911); -emit_32(3271616496); -emit_32(1097956485); -emit_32(3264507911); -emit_32(3271163904); -emit_32(1098180565); -emit_32(3264507911); -emit_32(3270651937); -emit_32(1097980812); -emit_32(3264507911); -emit_32(3270139970); -emit_32(1098969042); -emit_32(3264507911); -emit_32(3269627871); -emit_32(1099581411); -emit_32(3264507911); -emit_32(3269115904); -emit_32(1099345900); -emit_32(3264507911); -emit_32(3268603937); -emit_32(1099778595); -emit_32(3264507911); -emit_32(3268091970); -emit_32(1100042784); -emit_32(3264507911); -emit_32(3267579911); -emit_32(1100446643); -emit_32(3264507911); -emit_32(3267067904); -emit_32(1101589486); -emit_32(3264507911); -emit_32(3266555911); -emit_32(1103063522); -emit_32(3264507911); -emit_32(3266043904); -emit_32(1104431599); -emit_32(3264507911); -emit_32(3265531911); -emit_32(1106038332); -emit_32(3264507911); -emit_32(3265019904); -emit_32(1107210011); -emit_32(3264507911); -emit_32(3264507911); -emit_32(1107970254); -emit_32(3264507911); -emit_32(3263995904); -emit_32(1108769794); -emit_32(3264507911); -emit_32(3263483911); -emit_32(1109911929); -emit_32(3264507911); -emit_32(3262775296); -emit_32(1110640427); -emit_32(3264507911); -emit_32(3261751309); -emit_32(1111295551); -emit_32(3264507911); -emit_32(3260727296); -emit_32(1111699227); -emit_32(3264507911); -emit_32(3259703309); -emit_32(1112037130); -emit_32(3264507911); -emit_32(3258679296); -emit_32(1112388927); -emit_32(3264507911); -emit_32(3257655309); -emit_32(1112777766); -emit_32(3264507911); -emit_32(3256631296); -emit_32(1112967610); -emit_32(3264507911); -emit_32(3255607309); -emit_32(1113472080); -emit_32(3264507911); -emit_32(3254386688); -emit_32(1113707171); -emit_32(3264507911); -emit_32(3252338714); -emit_32(1113542073); -emit_32(3264507911); -emit_32(3250290688); -emit_32(1113390370); -emit_32(3264507911); -emit_32(3248242714); -emit_32(1113303574); -emit_32(3264507911); -emit_32(3245998080); -emit_32(1113650705); -emit_32(3264507911); -emit_32(3241902132); -emit_32(1114040330); -emit_32(3264507911); -emit_32(3237609472); -emit_32(1114029556); -emit_32(3264507911); -emit_32(3229220864); -emit_32(1113975580); -emit_32(3264507911); -emit_32(0); -emit_32(1113691390); -emit_32(3264507911); -emit_32(1081737216); -emit_32(1113723162); -emit_32(3264507911); -emit_32(3279552512); -emit_32(1091448267); -emit_32(3265019904); -emit_32(3279296528); -emit_32(1090852236); -emit_32(3265019904); -emit_32(3279040545); -emit_32(1091224616); -emit_32(3265019904); -emit_32(3278784496); -emit_32(1092115172); -emit_32(3265019904); -emit_32(3278528512); -emit_32(1092387560); -emit_32(3265019904); -emit_32(3278272528); -emit_32(1093982696); -emit_32(3265019904); -emit_32(3278016545); -emit_32(1095925288); -emit_32(3265019904); -emit_32(3277760496); -emit_32(1097267780); -emit_32(3265019904); -emit_32(3277504512); -emit_32(1098458962); -emit_32(3265019904); -emit_32(3277248528); -emit_32(1097176554); -emit_32(3265019904); -emit_32(3276992545); -emit_32(1098529427); -emit_32(3265019904); -emit_32(3276736496); -emit_32(1099386480); -emit_32(3265019904); -emit_32(3276480512); -emit_32(1100029729); -emit_32(3265019904); -emit_32(3276224528); -emit_32(1100574360); -emit_32(3265019904); -emit_32(3275968545); -emit_32(1100451571); -emit_32(3265019904); -emit_32(3275712496); -emit_32(1100757808); -emit_32(3265019904); -emit_32(3275456512); -emit_32(1101452909); -emit_32(3265019904); -emit_32(3275200528); -emit_32(1102452412); -emit_32(3265019904); -emit_32(3274944545); -emit_32(1102489269); -emit_32(3265019904); -emit_32(3274688496); -emit_32(1101956383); -emit_32(3265019904); -emit_32(3274432512); -emit_32(1102164106); -emit_32(3265019904); -emit_32(3274176528); -emit_32(1102017829); -emit_32(3265019904); -emit_32(3273920545); -emit_32(1101687633); -emit_32(3265019904); -emit_32(3273664496); -emit_32(1101190398); -emit_32(3265019904); -emit_32(3273408512); -emit_32(1100930771); -emit_32(3265019904); -emit_32(3273152528); -emit_32(1099875379); -emit_32(3265019904); -emit_32(3272896545); -emit_32(1099988363); -emit_32(3265019904); -emit_32(3272640496); -emit_32(1099466749); -emit_32(3265019904); -emit_32(3272384512); -emit_32(1099025927); -emit_32(3265019904); -emit_32(3272128528); -emit_32(1097133667); -emit_32(3265019904); -emit_32(3271872545); -emit_32(1096125042); -emit_32(3265019904); -emit_32(3271616496); -emit_32(1097217448); -emit_32(3265019904); -emit_32(3271163904); -emit_32(1097530343); -emit_32(3265019904); -emit_32(3270651937); -emit_32(1097021365); -emit_32(3265019904); -emit_32(3270139970); -emit_32(1098337432); -emit_32(3265019904); -emit_32(3269627871); -emit_32(1099231186); -emit_32(3265019904); -emit_32(3269115904); -emit_32(1099058066); -emit_32(3265019904); -emit_32(3268603937); -emit_32(1098845363); -emit_32(3265019904); -emit_32(3268091970); -emit_32(1099724436); -emit_32(3265019904); -emit_32(3267579911); -emit_32(1100562825); -emit_32(3265019904); -emit_32(3267067904); -emit_32(1101564635); -emit_32(3265019904); -emit_32(3266555911); -emit_32(1102663280); -emit_32(3265019904); -emit_32(3266043904); -emit_32(1103783055); -emit_32(3265019904); -emit_32(3265531911); -emit_32(1105695185); -emit_32(3265019904); -emit_32(3265019904); -emit_32(1107222541); -emit_32(3265019904); -emit_32(3264507911); -emit_32(1108142824); -emit_32(3265019904); -emit_32(3263995904); -emit_32(1108595363); -emit_32(3265019904); -emit_32(3263483911); -emit_32(1109574812); -emit_32(3265019904); -emit_32(3262775296); -emit_32(1110596754); -emit_32(3265019904); -emit_32(3261751309); -emit_32(1111223304); -emit_32(3265019904); -emit_32(3260727296); -emit_32(1111571117); -emit_32(3265019904); -emit_32(3259703309); -emit_32(1111962445); -emit_32(3265019904); -emit_32(3258679296); -emit_32(1112404944); -emit_32(3265019904); -emit_32(3257655309); -emit_32(1112735429); -emit_32(3265019904); -emit_32(3256631296); -emit_32(1112827337); -emit_32(3265019904); -emit_32(3255607309); -emit_32(1113233949); -emit_32(3265019904); -emit_32(3254386688); -emit_32(1113414513); -emit_32(3265019904); -emit_32(3252338714); -emit_32(1113420150); -emit_32(3265019904); -emit_32(3250290688); -emit_32(1113163904); -emit_32(3265019904); -emit_32(3248242714); -emit_32(1113052807); -emit_32(3265019904); -emit_32(3245998080); -emit_32(1113343787); -emit_32(3265019904); -emit_32(3241902132); -emit_32(1113698599); -emit_32(3265019904); -emit_32(3237609472); -emit_32(1113628816); -emit_32(3265019904); -emit_32(3229220864); -emit_32(1113662187); -emit_32(3265019904); -emit_32(0); -emit_32(1113260242); -emit_32(3265019904); -emit_32(1081737216); -emit_32(1113178820); -emit_32(3265019904); -emit_32(3279552512); -emit_32(1093438171); -emit_32(3265531911); -emit_32(3279296528); -emit_32(1092747788); -emit_32(3265531911); -emit_32(3279040545); -emit_32(1093310454); -emit_32(3265531911); -emit_32(3278784496); -emit_32(1094102234); -emit_32(3265531911); -emit_32(3278528512); -emit_32(1095034523); -emit_32(3265531911); -emit_32(3278272528); -emit_32(1096277295); -emit_32(3265531911); -emit_32(3278016545); -emit_32(1097766063); -emit_32(3265531911); -emit_32(3277760496); -emit_32(1099194067); -emit_32(3265531911); -emit_32(3277504512); -emit_32(1099628649); -emit_32(3265531911); -emit_32(3277248528); -emit_32(1099258973); -emit_32(3265531911); -emit_32(3276992545); -emit_32(1098472174); -emit_32(3265531911); -emit_32(3276736496); -emit_32(1099274020); -emit_32(3265531911); -emit_32(3276480512); -emit_32(1099770049); -emit_32(3265531911); -emit_32(3276224528); -emit_32(1100217110); -emit_32(3265531911); -emit_32(3275968545); -emit_32(1099973526); -emit_32(3265531911); -emit_32(3275712496); -emit_32(1100572682); -emit_32(3265531911); -emit_32(3275456512); -emit_32(1101377883); -emit_32(3265531911); -emit_32(3275200528); -emit_32(1101817027); -emit_32(3265531911); -emit_32(3274944545); -emit_32(1101419407); -emit_32(3265531911); -emit_32(3274688496); -emit_32(1101366087); -emit_32(3265531911); -emit_32(3274432512); -emit_32(1101862955); -emit_32(3265531911); -emit_32(3274176528); -emit_32(1101888854); -emit_32(3265531911); -emit_32(3273920545); -emit_32(1101226888); -emit_32(3265531911); -emit_32(3273664496); -emit_32(1100713768); -emit_32(3265531911); -emit_32(3273408512); -emit_32(1099889010); -emit_32(3265531911); -emit_32(3273152528); -emit_32(1098959238); -emit_32(3265531911); -emit_32(3272896545); -emit_32(1098971873); -emit_32(3265531911); -emit_32(3272640496); -emit_32(1098173750); -emit_32(3265531911); -emit_32(3272384512); -emit_32(1096822345); -emit_32(3265531911); -emit_32(3272128528); -emit_32(1095460769); -emit_32(3265531911); -emit_32(3271872545); -emit_32(1095939654); -emit_32(3265531911); -emit_32(3271616496); -emit_32(1096979107); -emit_32(3265531911); -emit_32(3271163904); -emit_32(1096816787); -emit_32(3265531911); -emit_32(3270651937); -emit_32(1096356567); -emit_32(3265531911); -emit_32(3270139970); -emit_32(1097648308); -emit_32(3265531911); -emit_32(3269627871); -emit_32(1098574096); -emit_32(3265531911); -emit_32(3269115904); -emit_32(1097968858); -emit_32(3265531911); -emit_32(3268603937); -emit_32(1098365115); -emit_32(3265531911); -emit_32(3268091970); -emit_32(1099546126); -emit_32(3265531911); -emit_32(3267579911); -emit_32(1100574569); -emit_32(3265531911); -emit_32(3267067904); -emit_32(1101687475); -emit_32(3265531911); -emit_32(3266555911); -emit_32(1102052380); -emit_32(3265531911); -emit_32(3266043904); -emit_32(1103313292); -emit_32(3265531911); -emit_32(3265531911); -emit_32(1105621785); -emit_32(3265531911); -emit_32(3265019904); -emit_32(1107169169); -emit_32(3265531911); -emit_32(3264507911); -emit_32(1107983021); -emit_32(3265531911); -emit_32(3263995904); -emit_32(1108610777); -emit_32(3265531911); -emit_32(3263483911); -emit_32(1109287292); -emit_32(3265531911); -emit_32(3262775296); -emit_32(1110292405); -emit_32(3265531911); -emit_32(3261751309); -emit_32(1110956075); -emit_32(3265531911); -emit_32(3260727296); -emit_32(1111332749); -emit_32(3265531911); -emit_32(3259703309); -emit_32(1111901392); -emit_32(3265531911); -emit_32(3258679296); -emit_32(1112404473); -emit_32(3265531911); -emit_32(3257655309); -emit_32(1112625041); -emit_32(3265531911); -emit_32(3256631296); -emit_32(1112715716); -emit_32(3265531911); -emit_32(3255607309); -emit_32(1112946875); -emit_32(3265531911); -emit_32(3254386688); -emit_32(1113184299); -emit_32(3265531911); -emit_32(3252338714); -emit_32(1112883882); -emit_32(3265531911); -emit_32(3250290688); -emit_32(1112791607); -emit_32(3265531911); -emit_32(3248242714); -emit_32(1112621633); -emit_32(3265531911); -emit_32(3245998080); -emit_32(1113008138); -emit_32(3265531911); -emit_32(3241902132); -emit_32(1113167285); -emit_32(3265531911); -emit_32(3237609472); -emit_32(1113124399); -emit_32(3265531911); -emit_32(3229220864); -emit_32(1112977362); -emit_32(3265531911); -emit_32(0); -emit_32(1112766703); -emit_32(3265531911); -emit_32(1081737216); -emit_32(1112525767); -emit_32(3265531911); -emit_32(3279552512); -emit_32(1095002332); -emit_32(3266043904); -emit_32(3279296528); -emit_32(1094609640); -emit_32(3266043904); -emit_32(3279040545); -emit_32(1096233255); -emit_32(3266043904); -emit_32(3278784496); -emit_32(1097215037); -emit_32(3266043904); -emit_32(3278528512); -emit_32(1097707028); -emit_32(3266043904); -emit_32(3278272528); -emit_32(1098213910); -emit_32(3266043904); -emit_32(3278016545); -emit_32(1099607939); -emit_32(3266043904); -emit_32(3277760496); -emit_32(1100328888); -emit_32(3266043904); -emit_32(3277504512); -emit_32(1099961205); -emit_32(3266043904); -emit_32(3277248528); -emit_32(1099657799); -emit_32(3266043904); -emit_32(3276992545); -emit_32(1099461558); -emit_32(3266043904); -emit_32(3276736496); -emit_32(1099119408); -emit_32(3266043904); -emit_32(3276480512); -emit_32(1099612763); -emit_32(3266043904); -emit_32(3276224528); -emit_32(1099736862); -emit_32(3266043904); -emit_32(3275968545); -emit_32(1099825729); -emit_32(3266043904); -emit_32(3275712496); -emit_32(1100371460); -emit_32(3266043904); -emit_32(3275456512); -emit_32(1100899051); -emit_32(3266043904); -emit_32(3275200528); -emit_32(1100798702); -emit_32(3266043904); -emit_32(3274944545); -emit_32(1100553703); -emit_32(3266043904); -emit_32(3274688496); -emit_32(1100490159); -emit_32(3266043904); -emit_32(3274432512); -emit_32(1100873309); -emit_32(3266043904); -emit_32(3274176528); -emit_32(1100817524); -emit_32(3266043904); -emit_32(3273920545); -emit_32(1100275568); -emit_32(3266043904); -emit_32(3273664496); -emit_32(1100060977); -emit_32(3266043904); -emit_32(3273408512); -emit_32(1099264636); -emit_32(3266043904); -emit_32(3273152528); -emit_32(1097887279); -emit_32(3266043904); -emit_32(3272896545); -emit_32(1096157548); -emit_32(3266043904); -emit_32(3272640496); -emit_32(1095486249); -emit_32(3266043904); -emit_32(3272384512); -emit_32(1094979368); -emit_32(3266043904); -emit_32(3272128528); -emit_32(1095398693); -emit_32(3266043904); -emit_32(3271872545); -emit_32(1095531024); -emit_32(3266043904); -emit_32(3271616496); -emit_32(1095980968); -emit_32(3266043904); -emit_32(3271163904); -emit_32(1095589534); -emit_32(3266043904); -emit_32(3270651937); -emit_32(1095288383); -emit_32(3266043904); -emit_32(3270139970); -emit_32(1096315044); -emit_32(3266043904); -emit_32(3269627871); -emit_32(1096326788); -emit_32(3266043904); -emit_32(3269115904); -emit_32(1096402705); -emit_32(3266043904); -emit_32(3268603937); -emit_32(1097546911); -emit_32(3266043904); -emit_32(3268091970); -emit_32(1099249798); -emit_32(3266043904); -emit_32(3267579911); -emit_32(1099942016); -emit_32(3266043904); -emit_32(3267067904); -emit_32(1100913469); -emit_32(3266043904); -emit_32(3266555911); -emit_32(1101943433); -emit_32(3266043904); -emit_32(3266043904); -emit_32(1102787536); -emit_32(3266043904); -emit_32(3265531911); -emit_32(1104904507); -emit_32(3266043904); -emit_32(3265019904); -emit_32(1106333873); -emit_32(3266043904); -emit_32(3264507911); -emit_32(1107759779); -emit_32(3266043904); -emit_32(3263995904); -emit_32(1108391467); -emit_32(3266043904); -emit_32(3263483911); -emit_32(1108904981); -emit_32(3266043904); -emit_32(3262775296); -emit_32(1109806757); -emit_32(3266043904); -emit_32(3261751309); -emit_32(1110385151); -emit_32(3266043904); -emit_32(3260727296); -emit_32(1110931145); -emit_32(3266043904); -emit_32(3259703309); -emit_32(1111641319); -emit_32(3266043904); -emit_32(3258679296); -emit_32(1112124634); -emit_32(3266043904); -emit_32(3257655309); -emit_32(1112283257); -emit_32(3266043904); -emit_32(3256631296); -emit_32(1112339618); -emit_32(3266043904); -emit_32(3255607309); -emit_32(1112509383); -emit_32(3266043904); -emit_32(3254386688); -emit_32(1112776009); -emit_32(3266043904); -emit_32(3252338714); -emit_32(1112680825); -emit_32(3266043904); -emit_32(3250290688); -emit_32(1112625539); -emit_32(3266043904); -emit_32(3248242714); -emit_32(1112693513); -emit_32(3266043904); -emit_32(3245998080); -emit_32(1112618644); -emit_32(3266043904); -emit_32(3241902132); -emit_32(1112571616); -emit_32(3266043904); -emit_32(3237609472); -emit_32(1112555074); -emit_32(3266043904); -emit_32(3229220864); -emit_32(1112282576); -emit_32(3266043904); -emit_32(0); -emit_32(1112161675); -emit_32(3266043904); -emit_32(1081737216); -emit_32(1112016683); -emit_32(3266043904); -emit_32(3279552512); -emit_32(1096435525); -emit_32(3266555911); -emit_32(3279296528); -emit_32(1097116575); -emit_32(3266555911); -emit_32(3279040545); -emit_32(1098870633); -emit_32(3266555911); -emit_32(3278784496); -emit_32(1099498730); -emit_32(3266555911); -emit_32(3278528512); -emit_32(1099914596); -emit_32(3266555911); -emit_32(3278272528); -emit_32(1099951872); -emit_32(3266555911); -emit_32(3278016545); -emit_32(1100659976); -emit_32(3266555911); -emit_32(3277760496); -emit_32(1101078253); -emit_32(3266555911); -emit_32(3277504512); -emit_32(1100635177); -emit_32(3266555911); -emit_32(3277248528); -emit_32(1100013948); -emit_32(3266555911); -emit_32(3276992545); -emit_32(1099614650); -emit_32(3266555911); -emit_32(3276736496); -emit_32(1099488402); -emit_32(3266555911); -emit_32(3276480512); -emit_32(1099820591); -emit_32(3266555911); -emit_32(3276224528); -emit_32(1099553833); -emit_32(3266555911); -emit_32(3275968545); -emit_32(1099782999); -emit_32(3266555911); -emit_32(3275712496); -emit_32(1100398566); -emit_32(3266555911); -emit_32(3275456512); -emit_32(1100575303); -emit_32(3266555911); -emit_32(3275200528); -emit_32(1100289986); -emit_32(3266555911); -emit_32(3274944545); -emit_32(1099602382); -emit_32(3266555911); -emit_32(3274688496); -emit_32(1099733506); -emit_32(3266555911); -emit_32(3274432512); -emit_32(1100008915); -emit_32(3266555911); -emit_32(3274176528); -emit_32(1100003777); -emit_32(3266555911); -emit_32(3273920545); -emit_32(1099179753); -emit_32(3266555911); -emit_32(3273664496); -emit_32(1098406953); -emit_32(3266555911); -emit_32(3273408512); -emit_32(1097223320); -emit_32(3266555911); -emit_32(3273152528); -emit_32(1096202217); -emit_32(3266555911); -emit_32(3272896545); -emit_32(1095613442); -emit_32(3266555911); -emit_32(3272640496); -emit_32(1095615539); -emit_32(3266555911); -emit_32(3272384512); -emit_32(1095008728); -emit_32(3266555911); -emit_32(3272128528); -emit_32(1095144623); -emit_32(3266555911); -emit_32(3271872545); -emit_32(1095756572); -emit_32(3266555911); -emit_32(3271616496); -emit_32(1094683564); -emit_32(3266555911); -emit_32(3271163904); -emit_32(1094540119); -emit_32(3266555911); -emit_32(3270651937); -emit_32(1094978843); -emit_32(3266555911); -emit_32(3270139970); -emit_32(1095340707); -emit_32(3266555911); -emit_32(3269627871); -emit_32(1095981597); -emit_32(3266555911); -emit_32(3269115904); -emit_32(1096517838); -emit_32(3266555911); -emit_32(3268603937); -emit_32(1096669463); -emit_32(3266555911); -emit_32(3268091970); -emit_32(1097720555); -emit_32(3266555911); -emit_32(3267579911); -emit_32(1098962122); -emit_32(3266555911); -emit_32(3267067904); -emit_32(1099956067); -emit_32(3266555911); -emit_32(3266555911); -emit_32(1101017750); -emit_32(3266555911); -emit_32(3266043904); -emit_32(1102473436); -emit_32(3266555911); -emit_32(3265531911); -emit_32(1104059040); -emit_32(3266555911); -emit_32(3265019904); -emit_32(1105738491); -emit_32(3266555911); -emit_32(3264507911); -emit_32(1107208438); -emit_32(3266555911); -emit_32(3263995904); -emit_32(1107891008); -emit_32(3266555911); -emit_32(3263483911); -emit_32(1108674504); -emit_32(3266555911); -emit_32(3262775296); -emit_32(1109604067); -emit_32(3266555911); -emit_32(3261751309); -emit_32(1110189120); -emit_32(3266555911); -emit_32(3260727296); -emit_32(1110577670); -emit_32(3266555911); -emit_32(3259703309); -emit_32(1111354953); -emit_32(3266555911); -emit_32(3258679296); -emit_32(1111734537); -emit_32(3266555911); -emit_32(3257655309); -emit_32(1111705518); -emit_32(3266555911); -emit_32(3256631296); -emit_32(1111723527); -emit_32(3266555911); -emit_32(3255607309); -emit_32(1112027955); -emit_32(3266555911); -emit_32(3254386688); -emit_32(1112257410); -emit_32(3266555911); -emit_32(3252338714); -emit_32(1112640297); -emit_32(3266555911); -emit_32(3250290688); -emit_32(1112609967); -emit_32(3266555911); -emit_32(3248242714); -emit_32(1112557696); -emit_32(3266555911); -emit_32(3245998080); -emit_32(1112351231); -emit_32(3266555911); -emit_32(3241902132); -emit_32(1112040774); -emit_32(3266555911); -emit_32(3237609472); -emit_32(1111912900); -emit_32(3266555911); -emit_32(3229220864); -emit_32(1111694639); -emit_32(3266555911); -emit_32(0); -emit_32(1111678858); -emit_32(3266555911); -emit_32(1081737216); -emit_32(1111401326); -emit_32(3266555911); -emit_32(3279552512); -emit_32(1098118070); -emit_32(3267067904); -emit_32(3279296528); -emit_32(1099747453); -emit_32(3267067904); -emit_32(3279040545); -emit_32(1100611269); -emit_32(3267067904); -emit_32(3278784496); -emit_32(1101443210); -emit_32(3267067904); -emit_32(3278528512); -emit_32(1101232603); -emit_32(3267067904); -emit_32(3278272528); -emit_32(1101611506); -emit_32(3267067904); -emit_32(3278016545); -emit_32(1101693243); -emit_32(3267067904); -emit_32(3277760496); -emit_32(1101466016); -emit_32(3267067904); -emit_32(3277504512); -emit_32(1101285137); -emit_32(3267067904); -emit_32(3277248528); -emit_32(1100667106); -emit_32(3267067904); -emit_32(3276992545); -emit_32(1100084308); -emit_32(3267067904); -emit_32(3276736496); -emit_32(1099746194); -emit_32(3267067904); -emit_32(3276480512); -emit_32(1099973840); -emit_32(3267067904); -emit_32(3276224528); -emit_32(1099985637); -emit_32(3267067904); -emit_32(3275968545); -emit_32(1099784782); -emit_32(3267067904); -emit_32(3275712496); -emit_32(1100330146); -emit_32(3267067904); -emit_32(3275456512); -emit_32(1100180200); -emit_32(3267067904); -emit_32(3275200528); -emit_32(1099997118); -emit_32(3267067904); -emit_32(3274944545); -emit_32(1099326240); -emit_32(3267067904); -emit_32(3274688496); -emit_32(1099003435); -emit_32(3267067904); -emit_32(3274432512); -emit_32(1099218918); -emit_32(3267067904); -emit_32(3274176528); -emit_32(1098944243); -emit_32(3267067904); -emit_32(3273920545); -emit_32(1097839464); -emit_32(3267067904); -emit_32(3273664496); -emit_32(1095942065); -emit_32(3267067904); -emit_32(3273408512); -emit_32(1094895587); -emit_32(3267067904); -emit_32(3273152528); -emit_32(1094953468); -emit_32(3267067904); -emit_32(3272896545); -emit_32(1095007260); -emit_32(3267067904); -emit_32(3272640496); -emit_32(1095264895); -emit_32(3267067904); -emit_32(3272384512); -emit_32(1094611422); -emit_32(3267067904); -emit_32(3272128528); -emit_32(1095079402); -emit_32(3267067904); -emit_32(3271872545); -emit_32(1094441973); -emit_32(3267067904); -emit_32(3271616496); -emit_32(1094236766); -emit_32(3267067904); -emit_32(3271163904); -emit_32(1094323798); -emit_32(3267067904); -emit_32(3270651937); -emit_32(1094165987); -emit_32(3267067904); -emit_32(3270139970); -emit_32(1094226805); -emit_32(3267067904); -emit_32(3269627871); -emit_32(1094579336); -emit_32(3267067904); -emit_32(3269115904); -emit_32(1095352975); -emit_32(3267067904); -emit_32(3268603937); -emit_32(1095436757); -emit_32(3267067904); -emit_32(3268091970); -emit_32(1095935879); -emit_32(3267067904); -emit_32(3267579911); -emit_32(1097439012); -emit_32(3267067904); -emit_32(3267067904); -emit_32(1099223007); -emit_32(3267067904); -emit_32(3266555911); -emit_32(1100974863); -emit_32(3267067904); -emit_32(3266043904); -emit_32(1102518734); -emit_32(3267067904); -emit_32(3265531911); -emit_32(1104318772); -emit_32(3267067904); -emit_32(3265019904); -emit_32(1105646112); -emit_32(3267067904); -emit_32(3264507911); -emit_32(1106403341); -emit_32(3267067904); -emit_32(3263995904); -emit_32(1107600264); -emit_32(3267067904); -emit_32(3263483911); -emit_32(1108414248); -emit_32(3267067904); -emit_32(3262775296); -emit_32(1109181543); -emit_32(3267067904); -emit_32(3261751309); -emit_32(1109764892); -emit_32(3267067904); -emit_32(3260727296); -emit_32(1110292536); -emit_32(3267067904); -emit_32(3259703309); -emit_32(1110846682); -emit_32(3267067904); -emit_32(3258679296); -emit_32(1111130925); -emit_32(3267067904); -emit_32(3257655309); -emit_32(1111171793); -emit_32(3267067904); -emit_32(3256631296); -emit_32(1111317938); -emit_32(3267067904); -emit_32(3255607309); -emit_32(1111635762); -emit_32(3267067904); -emit_32(3254386688); -emit_32(1112164637); -emit_32(3267067904); -emit_32(3252338714); -emit_32(1112290938); -emit_32(3267067904); -emit_32(3250290688); -emit_32(1112478450); -emit_32(3267067904); -emit_32(3248242714); -emit_32(1112372360); -emit_32(3267067904); -emit_32(3245998080); -emit_32(1111917566); -emit_32(3267067904); -emit_32(3241902132); -emit_32(1112023289); -emit_32(3267067904); -emit_32(3237609472); -emit_32(1111655422); -emit_32(3267067904); -emit_32(3229220864); -emit_32(1111168988); -emit_32(3267067904); -emit_32(0); -emit_32(1110861231); -emit_32(3267067904); -emit_32(1081737216); -emit_32(1110813757); -emit_32(3267067904); -emit_32(3279552512); -emit_32(1100220360); -emit_32(3267579911); -emit_32(3279296528); -emit_32(1101067662); -emit_32(3267579911); -emit_32(3279040545); -emit_32(1102439514); -emit_32(3267579911); -emit_32(3278784496); -emit_32(1103265006); -emit_32(3267579911); -emit_32(3278528512); -emit_32(1103236799); -emit_32(3267579911); -emit_32(3278272528); -emit_32(1103276120); -emit_32(3267579911); -emit_32(3278016545); -emit_32(1103285505); -emit_32(3267579911); -emit_32(3277760496); -emit_32(1102760850); -emit_32(3267579911); -emit_32(3277504512); -emit_32(1101931584); -emit_32(3267579911); -emit_32(3277248528); -emit_32(1101349415); -emit_32(3267579911); -emit_32(3276992545); -emit_32(1100402341); -emit_32(3267579911); -emit_32(3276736496); -emit_32(1100027265); -emit_32(3267579911); -emit_32(3276480512); -emit_32(1100259525); -emit_32(3267579911); -emit_32(3276224528); -emit_32(1100063651); -emit_32(3267579911); -emit_32(3275968545); -emit_32(1099648782); -emit_32(3267579911); -emit_32(3275712496); -emit_32(1100276302); -emit_32(3267579911); -emit_32(3275456512); -emit_32(1100001260); -emit_32(3267579911); -emit_32(3275200528); -emit_32(1099604217); -emit_32(3267579911); -emit_32(3274944545); -emit_32(1099253678); -emit_32(3267579911); -emit_32(3274688496); -emit_32(1098028836); -emit_32(3267579911); -emit_32(3274432512); -emit_32(1097094660); -emit_32(3267579911); -emit_32(3274176528); -emit_32(1096265341); -emit_32(3267579911); -emit_32(3273920545); -emit_32(1095381601); -emit_32(3267579911); -emit_32(3273664496); -emit_32(1094132852); -emit_32(3267579911); -emit_32(3273408512); -emit_32(1094233411); -emit_32(3267579911); -emit_32(3273152528); -emit_32(1094498386); -emit_32(3267579911); -emit_32(3272896545); -emit_32(1093571235); -emit_32(3267579911); -emit_32(3272640496); -emit_32(1093897237); -emit_32(3267579911); -emit_32(3272384512); -emit_32(1093720657); -emit_32(3267579911); -emit_32(3272128528); -emit_32(1094242743); -emit_32(3267579911); -emit_32(3271872545); -emit_32(1094359764); -emit_32(3267579911); -emit_32(3271616496); -emit_32(1093621672); -emit_32(3267579911); -emit_32(3271163904); -emit_32(1093012449); -emit_32(3267579911); -emit_32(3270651937); -emit_32(1092577332); -emit_32(3267579911); -emit_32(3270139970); -emit_32(1093321674); -emit_32(3267579911); -emit_32(3269627871); -emit_32(1093936035); -emit_32(3267579911); -emit_32(3269115904); -emit_32(1093928170); -emit_32(3267579911); -emit_32(3268603937); -emit_32(1094840746); -emit_32(3267579911); -emit_32(3268091970); -emit_32(1094808555); -emit_32(3267579911); -emit_32(3267579911); -emit_32(1096373764); -emit_32(3267579911); -emit_32(3267067904); -emit_32(1099250323); -emit_32(3267579911); -emit_32(3266555911); -emit_32(1100852966); -emit_32(3267579911); -emit_32(3266043904); -emit_32(1102489846); -emit_32(3267579911); -emit_32(3265531911); -emit_32(1104539655); -emit_32(3267579911); -emit_32(3265019904); -emit_32(1105973058); -emit_32(3267579911); -emit_32(3264507911); -emit_32(1106325275); -emit_32(3267579911); -emit_32(3263995904); -emit_32(1107714664); -emit_32(3267579911); -emit_32(3263483911); -emit_32(1108389003); -emit_32(3267579911); -emit_32(3262775296); -emit_32(1108702606); -emit_32(3267579911); -emit_32(3261751309); -emit_32(1109247787); -emit_32(3267579911); -emit_32(3260727296); -emit_32(1109490349); -emit_32(3267579911); -emit_32(3259703309); -emit_32(1110247866); -emit_32(3267579911); -emit_32(3258679296); -emit_32(1110389712); -emit_32(3267579911); -emit_32(3257655309); -emit_32(1110661425); -emit_32(3267579911); -emit_32(3256631296); -emit_32(1111202018); -emit_32(3267579911); -emit_32(3255607309); -emit_32(1111704260); -emit_32(3267579911); -emit_32(3254386688); -emit_32(1112088275); -emit_32(3267579911); -emit_32(3252338714); -emit_32(1111942549); -emit_32(3267579911); -emit_32(3250290688); -emit_32(1111975579); -emit_32(3267579911); -emit_32(3248242714); -emit_32(1111977309); -emit_32(3267579911); -emit_32(3245998080); -emit_32(1111576202); -emit_32(3267579911); -emit_32(3241902132); -emit_32(1111451789); -emit_32(3267579911); -emit_32(3237609472); -emit_32(1111316601); -emit_32(3267579911); -emit_32(3229220864); -emit_32(1111007166); -emit_32(3267579911); -emit_32(0); -emit_32(1110677022); -emit_32(3267579911); -emit_32(1081737216); -emit_32(1110694612); -emit_32(3267579911); -emit_32(3279552512); -emit_32(1101546599); -emit_32(3268091970); -emit_32(3279296528); -emit_32(1102626423); -emit_32(3268091970); -emit_32(3279040545); -emit_32(1103845864); -emit_32(3268091970); -emit_32(3278784496); -emit_32(1104837345); -emit_32(3268091970); -emit_32(3278528512); -emit_32(1104581650); -emit_32(3268091970); -emit_32(3278272528); -emit_32(1104347136); -emit_32(3268091970); -emit_32(3278016545); -emit_32(1104555173); -emit_32(3268091970); -emit_32(3277760496); -emit_32(1103817186); -emit_32(3268091970); -emit_32(3277504512); -emit_32(1102977119); -emit_32(3268091970); -emit_32(3277248528); -emit_32(1101762816); -emit_32(3268091970); -emit_32(3276992545); -emit_32(1100889928); -emit_32(3268091970); -emit_32(3276736496); -emit_32(1100508824); -emit_32(3268091970); -emit_32(3276480512); -emit_32(1100799646); -emit_32(3268091970); -emit_32(3276224528); -emit_32(1100611741); -emit_32(3268091970); -emit_32(3275968545); -emit_32(1099998639); -emit_32(3268091970); -emit_32(3275712496); -emit_32(1099825152); -emit_32(3268091970); -emit_32(3275456512); -emit_32(1099499674); -emit_32(3268091970); -emit_32(3275200528); -emit_32(1099020422); -emit_32(3268091970); -emit_32(3274944545); -emit_32(1098795241); -emit_32(3268091970); -emit_32(3274688496); -emit_32(1097320733); -emit_32(3268091970); -emit_32(3274432512); -emit_32(1096709728); -emit_32(3268091970); -emit_32(3274176528); -emit_32(1095004848); -emit_32(3268091970); -emit_32(3273920545); -emit_32(1094273362); -emit_32(3268091970); -emit_32(3273664496); -emit_32(1094729282); -emit_32(3268091970); -emit_32(3273408512); -emit_32(1094410620); -emit_32(3268091970); -emit_32(3273152528); -emit_32(1093402205); -emit_32(3268091970); -emit_32(3272896545); -emit_32(1092271431); -emit_32(3268091970); -emit_32(3272640496); -emit_32(1092329176); -emit_32(3268091970); -emit_32(3272384512); -emit_32(1092614609); -emit_32(3268091970); -emit_32(3272128528); -emit_32(1093144674); -emit_32(3268091970); -emit_32(3271872545); -emit_32(1093760922); -emit_32(3268091970); -emit_32(3271616496); -emit_32(1093140165); -emit_32(3268091970); -emit_32(3271163904); -emit_32(1091696654); -emit_32(3268091970); -emit_32(3270651937); -emit_32(1090884374); -emit_32(3268091970); -emit_32(3270139970); -emit_32(1091484506); -emit_32(3268091970); -emit_32(3269627871); -emit_32(1092037976); -emit_32(3268091970); -emit_32(3269115904); -emit_32(1093188295); -emit_32(3268091970); -emit_32(3268603937); -emit_32(1093395808); -emit_32(3268091970); -emit_32(3268091970); -emit_32(1094337220); -emit_32(3268091970); -emit_32(3267579911); -emit_32(1097044643); -emit_32(3268091970); -emit_32(3267067904); -emit_32(1099465543); -emit_32(3268091970); -emit_32(3266555911); -emit_32(1101317433); -emit_32(3268091970); -emit_32(3266043904); -emit_32(1102556745); -emit_32(3268091970); -emit_32(3265531911); -emit_32(1104196718); -emit_32(3268091970); -emit_32(3265019904); -emit_32(1105380036); -emit_32(3268091970); -emit_32(3264507911); -emit_32(1106482194); -emit_32(3268091970); -emit_32(3263995904); -emit_32(1107758783); -emit_32(3268091970); -emit_32(3263483911); -emit_32(1108425415); -emit_32(3268091970); -emit_32(3262775296); -emit_32(1108887024); -emit_32(3268091970); -emit_32(3261751309); -emit_32(1109173128); -emit_32(3268091970); -emit_32(3260727296); -emit_32(1109482432); -emit_32(3268091970); -emit_32(3259703309); -emit_32(1109785208); -emit_32(3268091970); -emit_32(3258679296); -emit_32(1110180600); -emit_32(3268091970); -emit_32(3257655309); -emit_32(1110663076); -emit_32(3268091970); -emit_32(3256631296); -emit_32(1111283309); -emit_32(3268091970); -emit_32(3255607309); -emit_32(1111318829); -emit_32(3268091970); -emit_32(3254386688); -emit_32(1111804844); -emit_32(3268091970); -emit_32(3252338714); -emit_32(1111712072); -emit_32(3268091970); -emit_32(3250290688); -emit_32(1111394877); -emit_32(3268091970); -emit_32(3248242714); -emit_32(1111473652); -emit_32(3268091970); -emit_32(3245998080); -emit_32(1111266139); -emit_32(3268091970); -emit_32(3241902132); -emit_32(1110947660); -emit_32(3268091970); -emit_32(3237609472); -emit_32(1111203722); -emit_32(3268091970); -emit_32(3229220864); -emit_32(1110998647); -emit_32(3268091970); -emit_32(0); -emit_32(1110773727); -emit_32(3268091970); -emit_32(1081737216); -emit_32(1110581209); -emit_32(3268091970); -emit_32(3279552512); -emit_32(1103102267); -emit_32(3268603937); -emit_32(3279296528); -emit_32(1104534831); -emit_32(3268603937); -emit_32(3279040545); -emit_32(1105424810); -emit_32(3268603937); -emit_32(3278784496); -emit_32(1105745989); -emit_32(3268603937); -emit_32(3278528512); -emit_32(1105282046); -emit_32(3268603937); -emit_32(3278272528); -emit_32(1105208436); -emit_32(3268603937); -emit_32(3278016545); -emit_32(1104906394); -emit_32(3268603937); -emit_32(3277760496); -emit_32(1104679063); -emit_32(3268603937); -emit_32(3277504512); -emit_32(1103607680); -emit_32(3268603937); -emit_32(3277248528); -emit_32(1102510188); -emit_32(3268603937); -emit_32(3276992545); -emit_32(1101765385); -emit_32(3268603937); -emit_32(3276736496); -emit_32(1101636986); -emit_32(3268603937); -emit_32(3276480512); -emit_32(1101430207); -emit_32(3268603937); -emit_32(3276224528); -emit_32(1101386534); -emit_32(3268603937); -emit_32(3275968545); -emit_32(1100866283); -emit_32(3268603937); -emit_32(3275712496); -emit_32(1100204370); -emit_32(3268603937); -emit_32(3275456512); -emit_32(1099530240); -emit_32(3268603937); -emit_32(3275200528); -emit_32(1098318663); -emit_32(3268603937); -emit_32(3274944545); -emit_32(1096968831); -emit_32(3268603937); -emit_32(3274688496); -emit_32(1096686764); -emit_32(3268603937); -emit_32(3274432512); -emit_32(1095657901); -emit_32(3268603937); -emit_32(3274176528); -emit_32(1093922718); -emit_32(3268603937); -emit_32(3273920545); -emit_32(1093799720); -emit_32(3268603937); -emit_32(3273664496); -emit_32(1093400527); -emit_32(3268603937); -emit_32(3273408512); -emit_32(1094189371); -emit_32(3268603937); -emit_32(3273152528); -emit_32(1093002383); -emit_32(3268603937); -emit_32(3272896545); -emit_32(1092483505); -emit_32(3268603937); -emit_32(3272640496); -emit_32(1092251707); -emit_32(3268603937); -emit_32(3272384512); -emit_32(1090906562); -emit_32(3268603937); -emit_32(3272128528); -emit_32(1091695983); -emit_32(3268603937); -emit_32(3271872545); -emit_32(1092003666); -emit_32(3268603937); -emit_32(3271616496); -emit_32(1091543866); -emit_32(3268603937); -emit_32(3271163904); -emit_32(1090300789); -emit_32(3268603937); -emit_32(3270651937); -emit_32(1088844569); -emit_32(3268603937); -emit_32(3270139970); -emit_32(1087660223); -emit_32(3268603937); -emit_32(3269627871); -emit_32(1090808153); -emit_32(3268603937); -emit_32(3269115904); -emit_32(1090929306); -emit_32(3268603937); -emit_32(3268603937); -emit_32(1092294940); -emit_32(3268603937); -emit_32(3268091970); -emit_32(1094951266); -emit_32(3268603937); -emit_32(3267579911); -emit_32(1098255958); -emit_32(3268603937); -emit_32(3267067904); -emit_32(1100042365); -emit_32(3268603937); -emit_32(3266555911); -emit_32(1101461717); -emit_32(3268603937); -emit_32(3266043904); -emit_32(1102844841); -emit_32(3268603937); -emit_32(3265531911); -emit_32(1103734872); -emit_32(3268603937); -emit_32(3265019904); -emit_32(1105122348); -emit_32(3268603937); -emit_32(3264507911); -emit_32(1106689969); -emit_32(3268603937); -emit_32(3263995904); -emit_32(1107793438); -emit_32(3268603937); -emit_32(3263483911); -emit_32(1108426280); -emit_32(3268603937); -emit_32(3262775296); -emit_32(1108850534); -emit_32(3268603937); -emit_32(3261751309); -emit_32(1109340009); -emit_32(3268603937); -emit_32(3260727296); -emit_32(1109539003); -emit_32(3268603937); -emit_32(3259703309); -emit_32(1109953715); -emit_32(3268603937); -emit_32(3258679296); -emit_32(1110117502); -emit_32(3268603937); -emit_32(3257655309); -emit_32(1110591485); -emit_32(3268603937); -emit_32(3256631296); -emit_32(1111088562); -emit_32(3268603937); -emit_32(3255607309); -emit_32(1111126206); -emit_32(3268603937); -emit_32(3254386688); -emit_32(1111259559); -emit_32(3268603937); -emit_32(3252338714); -emit_32(1111504191); -emit_32(3268603937); -emit_32(3250290688); -emit_32(1111434068); -emit_32(3268603937); -emit_32(3248242714); -emit_32(1111442299); -emit_32(3268603937); -emit_32(3245998080); -emit_32(1111170010); -emit_32(3268603937); -emit_32(3241902132); -emit_32(1110967137); -emit_32(3268603937); -emit_32(3237609472); -emit_32(1111303415); -emit_32(3268603937); -emit_32(3229220864); -emit_32(1111224012); -emit_32(3268603937); -emit_32(0); -emit_32(1110873788); -emit_32(3268603937); -emit_32(1081737216); -emit_32(1110663915); -emit_32(3268603937); -emit_32(3279552512); -emit_32(1104677595); -emit_32(3269115904); -emit_32(3279296528); -emit_32(1105454590); -emit_32(3269115904); -emit_32(3279040545); -emit_32(1106154304); -emit_32(3269115904); -emit_32(3278784496); -emit_32(1106277093); -emit_32(3269115904); -emit_32(3278528512); -emit_32(1105875016); -emit_32(3269115904); -emit_32(3278272528); -emit_32(1106034452); -emit_32(3269115904); -emit_32(3278016545); -emit_32(1105655077); -emit_32(3269115904); -emit_32(3277760496); -emit_32(1104930721); -emit_32(3269115904); -emit_32(3277504512); -emit_32(1104001892); -emit_32(3269115904); -emit_32(3277248528); -emit_32(1103101166); -emit_32(3269115904); -emit_32(3276992545); -emit_32(1102785177); -emit_32(3269115904); -emit_32(3276736496); -emit_32(1102764678); -emit_32(3269115904); -emit_32(3276480512); -emit_32(1102751256); -emit_32(3269115904); -emit_32(3276224528); -emit_32(1102164210); -emit_32(3269115904); -emit_32(3275968545); -emit_32(1101552786); -emit_32(3269115904); -emit_32(3275712496); -emit_32(1101117679); -emit_32(3269115904); -emit_32(3275456512); -emit_32(1100386245); -emit_32(3269115904); -emit_32(3275200528); -emit_32(1099326974); -emit_32(3269115904); -emit_32(3274944545); -emit_32(1098796709); -emit_32(3269115904); -emit_32(3274688496); -emit_32(1097716256); -emit_32(3269115904); -emit_32(3274432512); -emit_32(1095916585); -emit_32(3269115904); -emit_32(3274176528); -emit_32(1095486669); -emit_32(3269115904); -emit_32(3273920545); -emit_32(1093398010); -emit_32(3269115904); -emit_32(3273664496); -emit_32(1092921118); -emit_32(3269115904); -emit_32(3273408512); -emit_32(1092252829); -emit_32(3269115904); -emit_32(3273152528); -emit_32(1092749676); -emit_32(3269115904); -emit_32(3272896545); -emit_32(1092530481); -emit_32(3269115904); -emit_32(3272640496); -emit_32(1091486131); -emit_32(3269115904); -emit_32(3272384512); -emit_32(1090876730); -emit_32(3269115904); -emit_32(3272128528); -emit_32(1090142454); -emit_32(3269115904); -emit_32(3271872545); -emit_32(1088793147); -emit_32(3269115904); -emit_32(3271616496); -emit_32(1089015130); -emit_32(3269115904); -emit_32(3271163904); -emit_32(1088303693); -emit_32(3269115904); -emit_32(3270651937); -emit_32(1087535674); -emit_32(3269115904); -emit_32(3270139970); -emit_32(1085670299); -emit_32(3269115904); -emit_32(3269627871); -emit_32(1085625420); -emit_32(3269115904); -emit_32(3269115904); -emit_32(1088308013); -emit_32(3269115904); -emit_32(3268603937); -emit_32(1092417340); -emit_32(3269115904); -emit_32(3268091970); -emit_32(1095410752); -emit_32(3269115904); -emit_32(3267579911); -emit_32(1098094582); -emit_32(3269115904); -emit_32(3267067904); -emit_32(1100161430); -emit_32(3269115904); -emit_32(3266555911); -emit_32(1101552891); -emit_32(3269115904); -emit_32(3266043904); -emit_32(1102765307); -emit_32(3269115904); -emit_32(3265531911); -emit_32(1103641549); -emit_32(3269115904); -emit_32(3265019904); -emit_32(1105704360); -emit_32(3269115904); -emit_32(3264507911); -emit_32(1107288811); -emit_32(3269115904); -emit_32(3263995904); -emit_32(1107972981); -emit_32(3269115904); -emit_32(3263483911); -emit_32(1108646167); -emit_32(3269115904); -emit_32(3262775296); -emit_32(1109009918); -emit_32(3269115904); -emit_32(3261751309); -emit_32(1109314581); -emit_32(3269115904); -emit_32(3260727296); -emit_32(1109742427); -emit_32(3269115904); -emit_32(3259703309); -emit_32(1110003653); -emit_32(3269115904); -emit_32(3258679296); -emit_32(1110284435); -emit_32(3269115904); -emit_32(3257655309); -emit_32(1110677153); -emit_32(3269115904); -emit_32(3256631296); -emit_32(1111084630); -emit_32(3269115904); -emit_32(3255607309); -emit_32(1111141489); -emit_32(3269115904); -emit_32(3254386688); -emit_32(1111299090); -emit_32(3269115904); -emit_32(3252338714); -emit_32(1111545138); -emit_32(3269115904); -emit_32(3250290688); -emit_32(1111299378); -emit_32(3269115904); -emit_32(3248242714); -emit_32(1111477977); -emit_32(3269115904); -emit_32(3245998080); -emit_32(1111335580); -emit_32(3269115904); -emit_32(3241902132); -emit_32(1111332776); -emit_32(3269115904); -emit_32(3237609472); -emit_32(1111510640); -emit_32(3269115904); -emit_32(3229220864); -emit_32(1111358806); -emit_32(3269115904); -emit_32(0); -emit_32(1111013904); -emit_32(3269115904); -emit_32(1081737216); -emit_32(1110808645); -emit_32(3269115904); -emit_32(3279552512); -emit_32(1105473988); -emit_32(3269627871); -emit_32(3279296528); -emit_32(1106406644); -emit_32(3269627871); -emit_32(3279040545); -emit_32(1106900052); -emit_32(3269627871); -emit_32(3278784496); -emit_32(1106631983); -emit_32(3269627871); -emit_32(3278528512); -emit_32(1106899527); -emit_32(3269627871); -emit_32(3278272528); -emit_32(1107077575); -emit_32(3269627871); -emit_32(3278016545); -emit_32(1106405386); -emit_32(3269627871); -emit_32(3277760496); -emit_32(1105322207); -emit_32(3269627871); -emit_32(3277504512); -emit_32(1104051752); -emit_32(3269627871); -emit_32(3277248528); -emit_32(1103820331); -emit_32(3269627871); -emit_32(3276992545); -emit_32(1103544189); -emit_32(3269627871); -emit_32(3276736496); -emit_32(1104020714); -emit_32(3269627871); -emit_32(3276480512); -emit_32(1104151629); -emit_32(3269627871); -emit_32(3276224528); -emit_32(1103575069); -emit_32(3269627871); -emit_32(3275968545); -emit_32(1102962911); -emit_32(3269627871); -emit_32(3275712496); -emit_32(1102032824); -emit_32(3269627871); -emit_32(3275456512); -emit_32(1101115320); -emit_32(3269627871); -emit_32(3275200528); -emit_32(1100461113); -emit_32(3269627871); -emit_32(3274944545); -emit_32(1099847644); -emit_32(3269627871); -emit_32(3274688496); -emit_32(1099097702); -emit_32(3269627871); -emit_32(3274432512); -emit_32(1097494692); -emit_32(3269627871); -emit_32(3274176528); -emit_32(1096228851); -emit_32(3269627871); -emit_32(3273920545); -emit_32(1094225966); -emit_32(3269627871); -emit_32(3273664496); -emit_32(1093095391); -emit_32(3269627871); -emit_32(3273408512); -emit_32(1092478294); -emit_32(3269627871); -emit_32(3273152528); -emit_32(1092368508); -emit_32(3269627871); -emit_32(3272896545); -emit_32(1091995425); -emit_32(3269627871); -emit_32(3272640496); -emit_32(1090918526); -emit_32(3269627871); -emit_32(3272384512); -emit_32(1090551315); -emit_32(3269627871); -emit_32(3272128528); -emit_32(1089373156); -emit_32(3269627871); -emit_32(3271872545); -emit_32(1087003689); -emit_32(3269627871); -emit_32(3271616496); -emit_32(1086132763); -emit_32(3269627871); -emit_32(3271163904); -emit_32(1085152973); -emit_32(3269627871); -emit_32(3270651937); -emit_32(1085347149); -emit_32(3269627871); -emit_32(3270139970); -emit_32(1084963286); -emit_32(3269627871); -emit_32(3269627871); -emit_32(1086623454); -emit_32(3269627871); -emit_32(3269115904); -emit_32(1089942512); -emit_32(3269627871); -emit_32(3268603937); -emit_32(1092605381); -emit_32(3269627871); -emit_32(3268091970); -emit_32(1095649093); -emit_32(3269627871); -emit_32(3267579911); -emit_32(1098551656); -emit_32(3269627871); -emit_32(3267067904); -emit_32(1100188326); -emit_32(3269627871); -emit_32(3266555911); -emit_32(1101247703); -emit_32(3269627871); -emit_32(3266043904); -emit_32(1102236038); -emit_32(3269627871); -emit_32(3265531911); -emit_32(1104015996); -emit_32(3269627871); -emit_32(3265019904); -emit_32(1106019562); -emit_32(3269627871); -emit_32(3264507911); -emit_32(1107489640); -emit_32(3269627871); -emit_32(3263995904); -emit_32(1107939269); -emit_32(3269627871); -emit_32(3263483911); -emit_32(1108609493); -emit_32(3269627871); -emit_32(3262775296); -emit_32(1108936360); -emit_32(3269627871); -emit_32(3261751309); -emit_32(1109365909); -emit_32(3269627871); -emit_32(3260727296); -emit_32(1109731836); -emit_32(3269627871); -emit_32(3259703309); -emit_32(1110075454); -emit_32(3269627871); -emit_32(3258679296); -emit_32(1110274841); -emit_32(3269627871); -emit_32(3257655309); -emit_32(1110532397); -emit_32(3269627871); -emit_32(3256631296); -emit_32(1110820677); -emit_32(3269627871); -emit_32(3255607309); -emit_32(1110970388); -emit_32(3269627871); -emit_32(3254386688); -emit_32(1111402270); -emit_32(3269627871); -emit_32(3252338714); -emit_32(1111410187); -emit_32(3269627871); -emit_32(3250290688); -emit_32(1111092730); -emit_32(3269627871); -emit_32(3248242714); -emit_32(1111561549); -emit_32(3269627871); -emit_32(3245998080); -emit_32(1111622576); -emit_32(3269627871); -emit_32(3241902132); -emit_32(1111406543); -emit_32(3269627871); -emit_32(3237609472); -emit_32(1111614869); -emit_32(3269627871); -emit_32(3229220864); -emit_32(1111623991); -emit_32(3269627871); -emit_32(0); -emit_32(1111334244); -emit_32(3269627871); -emit_32(1081737216); -emit_32(1111356054); -emit_32(3269627871); -emit_32(3279552512); -emit_32(1106615049); -emit_32(3270139970); -emit_32(3279296528); -emit_32(1107119309); -emit_32(3270139970); -emit_32(3279040545); -emit_32(1107204296); -emit_32(3270139970); -emit_32(3278784496); -emit_32(1107426043); -emit_32(3270139970); -emit_32(3278528512); -emit_32(1107651514); -emit_32(3270139970); -emit_32(3278272528); -emit_32(1107492104); -emit_32(3270139970); -emit_32(3278016545); -emit_32(1106671934); -emit_32(3270139970); -emit_32(3277760496); -emit_32(1105363468); -emit_32(3270139970); -emit_32(3277504512); -emit_32(1104722631); -emit_32(3270139970); -emit_32(3277248528); -emit_32(1104684463); -emit_32(3270139970); -emit_32(3276992545); -emit_32(1104973765); -emit_32(3270139970); -emit_32(3276736496); -emit_32(1105162981); -emit_32(3270139970); -emit_32(3276480512); -emit_32(1105246762); -emit_32(3270139970); -emit_32(3276224528); -emit_32(1104513126); -emit_32(3270139970); -emit_32(3275968545); -emit_32(1103992350); -emit_32(3270139970); -emit_32(3275712496); -emit_32(1103134301); -emit_32(3270139970); -emit_32(3275456512); -emit_32(1102130761); -emit_32(3270139970); -emit_32(3275200528); -emit_32(1101510214); -emit_32(3270139970); -emit_32(3274944545); -emit_32(1100554804); -emit_32(3270139970); -emit_32(3274688496); -emit_32(1100005560); -emit_32(3270139970); -emit_32(3274432512); -emit_32(1099090258); -emit_32(3270139970); -emit_32(3274176528); -emit_32(1096702388); -emit_32(3270139970); -emit_32(3273920545); -emit_32(1094929875); -emit_32(3270139970); -emit_32(3273664496); -emit_32(1093071903); -emit_32(3270139970); -emit_32(3273408512); -emit_32(1091864185); -emit_32(3270139970); -emit_32(3273152528); -emit_32(1090738538); -emit_32(3270139970); -emit_32(3272896545); -emit_32(1089872215); -emit_32(3270139970); -emit_32(3272640496); -emit_32(1088532009); -emit_32(3270139970); -emit_32(3272384512); -emit_32(1087136019); -emit_32(3270139970); -emit_32(3272128528); -emit_32(1086091155); -emit_32(3270139970); -emit_32(3271872545); -emit_32(1083137212); -emit_32(3270139970); -emit_32(3271616496); -emit_32(1082194374); -emit_32(3270139970); -emit_32(3271163904); -emit_32(1084156344); -emit_32(3270139970); -emit_32(3270651937); -emit_32(1086494710); -emit_32(3270139970); -emit_32(3270139970); -emit_32(1087925178); -emit_32(3270139970); -emit_32(3269627871); -emit_32(1089283545); -emit_32(3270139970); -emit_32(3269115904); -emit_32(1089544493); -emit_32(3270139970); -emit_32(3268603937); -emit_32(1092490552); -emit_32(3270139970); -emit_32(3268091970); -emit_32(1094596637); -emit_32(3270139970); -emit_32(3267579911); -emit_32(1097303536); -emit_32(3270139970); -emit_32(3267067904); -emit_32(1099546598); -emit_32(3270139970); -emit_32(3266555911); -emit_32(1101122293); -emit_32(3270139970); -emit_32(3266043904); -emit_32(1102198394); -emit_32(3270139970); -emit_32(3265531911); -emit_32(1104133751); -emit_32(3270139970); -emit_32(3265019904); -emit_32(1105876641); -emit_32(3270139970); -emit_32(3264507911); -emit_32(1107287081); -emit_32(3270139970); -emit_32(3263995904); -emit_32(1107840362); -emit_32(3270139970); -emit_32(3263483911); -emit_32(1108323913); -emit_32(3270139970); -emit_32(3262775296); -emit_32(1108846340); -emit_32(3270139970); -emit_32(3261751309); -emit_32(1109191243); -emit_32(3270139970); -emit_32(3260727296); -emit_32(1109548335); -emit_32(3270139970); -emit_32(3259703309); -emit_32(1110053775); -emit_32(3270139970); -emit_32(3258679296); -emit_32(1110107410); -emit_32(3270139970); -emit_32(3257655309); -emit_32(1110399726); -emit_32(3270139970); -emit_32(3256631296); -emit_32(1110760515); -emit_32(3270139970); -emit_32(3255607309); -emit_32(1110729294); -emit_32(3270139970); -emit_32(3254386688); -emit_32(1110963755); -emit_32(3270139970); -emit_32(3252338714); -emit_32(1110772128); -emit_32(3270139970); -emit_32(3250290688); -emit_32(1110896358); -emit_32(3270139970); -emit_32(3248242714); -emit_32(1111339775); -emit_32(3270139970); -emit_32(3245998080); -emit_32(1111522542); -emit_32(3270139970); -emit_32(3241902132); -emit_32(1111498739); -emit_32(3270139970); -emit_32(3237609472); -emit_32(1111764002); -emit_32(3270139970); -emit_32(3229220864); -emit_32(1111826209); -emit_32(3270139970); -emit_32(0); -emit_32(1111701062); -emit_32(3270139970); -emit_32(1081737216); -emit_32(1111592455); -emit_32(3270139970); -emit_32(3279552512); -emit_32(1107165027); -emit_32(3270651937); -emit_32(3279296528); -emit_32(1106980268); -emit_32(3270651937); -emit_32(3279040545); -emit_32(1107315707); -emit_32(3270651937); -emit_32(3278784496); -emit_32(1107598272); -emit_32(3270651937); -emit_32(3278528512); -emit_32(1107717469); -emit_32(3270651937); -emit_32(3278272528); -emit_32(1107286557); -emit_32(3270651937); -emit_32(3278016545); -emit_32(1106402712); -emit_32(3270651937); -emit_32(3277760496); -emit_32(1105497896); -emit_32(3270651937); -emit_32(3277504512); -emit_32(1105374898); -emit_32(3270651937); -emit_32(3277248528); -emit_32(1105640659); -emit_32(3270651937); -emit_32(3276992545); -emit_32(1105948416); -emit_32(3270651937); -emit_32(3276736496); -emit_32(1105871923); -emit_32(3270651937); -emit_32(3276480512); -emit_32(1105415268); -emit_32(3270651937); -emit_32(3276224528); -emit_32(1104908386); -emit_32(3270651937); -emit_32(3275968545); -emit_32(1104625166); -emit_32(3270651937); -emit_32(3275712496); -emit_32(1103529981); -emit_32(3270651937); -emit_32(3275456512); -emit_32(1102284535); -emit_32(3270651937); -emit_32(3275200528); -emit_32(1101814668); -emit_32(3270651937); -emit_32(3274944545); -emit_32(1101354395); -emit_32(3270651937); -emit_32(3274688496); -emit_32(1100467772); -emit_32(3270651937); -emit_32(3274432512); -emit_32(1099331902); -emit_32(3270651937); -emit_32(3274176528); -emit_32(1097334469); -emit_32(3270651937); -emit_32(3273920545); -emit_32(1095774713); -emit_32(3270651937); -emit_32(3273664496); -emit_32(1093969274); -emit_32(3270651937); -emit_32(3273408512); -emit_32(1092236870); -emit_32(3270651937); -emit_32(3273152528); -emit_32(1091177242); -emit_32(3270651937); -emit_32(3272896545); -emit_32(1089194521); -emit_32(3270651937); -emit_32(3272640496); -emit_32(1087253250); -emit_32(3270651937); -emit_32(3272384512); -emit_32(1085293042); -emit_32(3270651937); -emit_32(3272128528); -emit_32(1086332055); -emit_32(3270651937); -emit_32(3271872545); -emit_32(1083552217); -emit_32(3270651937); -emit_32(3271616496); -emit_32(1081840228); -emit_32(3270651937); -emit_32(3271163904); -emit_32(1085052373); -emit_32(3270651937); -emit_32(3270651937); -emit_32(1088324601); -emit_32(3270651937); -emit_32(3270139970); -emit_32(1090526128); -emit_32(3270651937); -emit_32(3269627871); -emit_32(1090035353); -emit_32(3270651937); -emit_32(3269115904); -emit_32(1091146088); -emit_32(3270651937); -emit_32(3268603937); -emit_32(1092321972); -emit_32(3270651937); -emit_32(3268091970); -emit_32(1094166931); -emit_32(3270651937); -emit_32(3267579911); -emit_32(1096361705); -emit_32(3270651937); -emit_32(3267067904); -emit_32(1098923167); -emit_32(3270651937); -emit_32(3266555911); -emit_32(1100222510); -emit_32(3270651937); -emit_32(3266043904); -emit_32(1102327683); -emit_32(3270651937); -emit_32(3265531911); -emit_32(1104008865); -emit_32(3270651937); -emit_32(3265019904); -emit_32(1105745465); -emit_32(3270651937); -emit_32(3264507911); -emit_32(1107240472); -emit_32(3270651937); -emit_32(3263995904); -emit_32(1107738152); -emit_32(3270651937); -emit_32(3263483911); -emit_32(1108317333); -emit_32(3270651937); -emit_32(3262775296); -emit_32(1108718230); -emit_32(3270651937); -emit_32(3261751309); -emit_32(1109166313); -emit_32(3270651937); -emit_32(3260727296); -emit_32(1109572767); -emit_32(3270651937); -emit_32(3259703309); -emit_32(1109886999); -emit_32(3270651937); -emit_32(3258679296); -emit_32(1110175934); -emit_32(3270651937); -emit_32(3257655309); -emit_32(1110012409); -emit_32(3270651937); -emit_32(3256631296); -emit_32(1110458420); -emit_32(3270651937); -emit_32(3255607309); -emit_32(1110277908); -emit_32(3270651937); -emit_32(3254386688); -emit_32(1110242571); -emit_32(3270651937); -emit_32(3252338714); -emit_32(1110493941); -emit_32(3270651937); -emit_32(3250290688); -emit_32(1110776139); -emit_32(3270651937); -emit_32(3248242714); -emit_32(1111135643); -emit_32(3270651937); -emit_32(3245998080); -emit_32(1111317021); -emit_32(3270651937); -emit_32(3241902132); -emit_32(1111525111); -emit_32(3270651937); -emit_32(3237609472); -emit_32(1111847102); -emit_32(3270651937); -emit_32(3229220864); -emit_32(1111929704); -emit_32(3270651937); -emit_32(0); -emit_32(1111847364); -emit_32(3270651937); -emit_32(1081737216); -emit_32(1111930149); -emit_32(3270651937); -emit_32(3279552512); -emit_32(1106982994); -emit_32(3271163904); -emit_32(3279296528); -emit_32(1106990334); -emit_32(3271163904); -emit_32(3279040545); -emit_32(1107378569); -emit_32(3271163904); -emit_32(3278784496); -emit_32(1107553734); -emit_32(3271163904); -emit_32(3278528512); -emit_32(1107478761); -emit_32(3271163904); -emit_32(3278272528); -emit_32(1106962389); -emit_32(3271163904); -emit_32(3278016545); -emit_32(1105953607); -emit_32(3271163904); -emit_32(3277760496); -emit_32(1105995497); -emit_32(3271163904); -emit_32(3277504512); -emit_32(1105958325); -emit_32(3271163904); -emit_32(3277248528); -emit_32(1106168041); -emit_32(3271163904); -emit_32(3276992545); -emit_32(1106461590); -emit_32(3271163904); -emit_32(3276736496); -emit_32(1106400248); -emit_32(3271163904); -emit_32(3276480512); -emit_32(1105590904); -emit_32(3271163904); -emit_32(3276224528); -emit_32(1105294315); -emit_32(3271163904); -emit_32(3275968545); -emit_32(1104823661); -emit_32(3271163904); -emit_32(3275712496); -emit_32(1103994185); -emit_32(3271163904); -emit_32(3275456512); -emit_32(1102728764); -emit_32(3271163904); -emit_32(3275200528); -emit_32(1102137996); -emit_32(3271163904); -emit_32(3274944545); -emit_32(1101349782); -emit_32(3271163904); -emit_32(3274688496); -emit_32(1100398356); -emit_32(3271163904); -emit_32(3274432512); -emit_32(1099098489); -emit_32(3271163904); -emit_32(3274176528); -emit_32(1097575747); -emit_32(3271163904); -emit_32(3273920545); -emit_32(1095747135); -emit_32(3271163904); -emit_32(3273664496); -emit_32(1094011427); -emit_32(3271163904); -emit_32(3273408512); -emit_32(1092817099); -emit_32(3271163904); -emit_32(3273152528); -emit_32(1090935010); -emit_32(3271163904); -emit_32(3272896545); -emit_32(1086813205); -emit_32(3271163904); -emit_32(3272640496); -emit_32(1085254874); -emit_32(3271163904); -emit_32(3272384512); -emit_32(1084610859); -emit_32(3271163904); -emit_32(3272128528); -emit_32(1085403226); -emit_32(3271163904); -emit_32(3271872545); -emit_32(1085803741); -emit_32(3271163904); -emit_32(3271616496); -emit_32(1084901902); -emit_32(3271163904); -emit_32(3271163904); -emit_32(1086653402); -emit_32(3271163904); -emit_32(3270651937); -emit_32(1089541201); -emit_32(3271163904); -emit_32(3270139970); -emit_32(1090924587); -emit_32(3271163904); -emit_32(3269627871); -emit_32(1091193002); -emit_32(3271163904); -emit_32(3269115904); -emit_32(1091042709); -emit_32(3271163904); -emit_32(3268603937); -emit_32(1091824318); -emit_32(3271163904); -emit_32(3268091970); -emit_32(1094207721); -emit_32(3271163904); -emit_32(3267579911); -emit_32(1096193199); -emit_32(3271163904); -emit_32(3267067904); -emit_32(1098383045); -emit_32(3271163904); -emit_32(3266555911); -emit_32(1099615542); -emit_32(3271163904); -emit_32(3266043904); -emit_32(1101433038); -emit_32(3271163904); -emit_32(3265531911); -emit_32(1103595045); -emit_32(3271163904); -emit_32(3265019904); -emit_32(1105129950); -emit_32(3271163904); -emit_32(3264507911); -emit_32(1106326061); -emit_32(3271163904); -emit_32(3263995904); -emit_32(1107411652); -emit_32(3271163904); -emit_32(3263483911); -emit_32(1107887050); -emit_32(3271163904); -emit_32(3262775296); -emit_32(1108492236); -emit_32(3271163904); -emit_32(3261751309); -emit_32(1109105757); -emit_32(3271163904); -emit_32(3260727296); -emit_32(1109424656); -emit_32(3271163904); -emit_32(3259703309); -emit_32(1109901784); -emit_32(3271163904); -emit_32(3258679296); -emit_32(1109885321); -emit_32(3271163904); -emit_32(3257655309); -emit_32(1109822564); -emit_32(3271163904); -emit_32(3256631296); -emit_32(1109824163); -emit_32(3271163904); -emit_32(3255607309); -emit_32(1109730315); -emit_32(3271163904); -emit_32(3254386688); -emit_32(1109803113); -emit_32(3271163904); -emit_32(3252338714); -emit_32(1109995186); -emit_32(3271163904); -emit_32(3250290688); -emit_32(1110434618); -emit_32(3271163904); -emit_32(3248242714); -emit_32(1111024783); -emit_32(3271163904); -emit_32(3245998080); -emit_32(1111309785); -emit_32(3271163904); -emit_32(3241902132); -emit_32(1111384208); -emit_32(3271163904); -emit_32(3237609472); -emit_32(1111783952); -emit_32(3271163904); -emit_32(3229220864); -emit_32(1111918930); -emit_32(3271163904); -emit_32(0); -emit_32(1112106100); -emit_32(3271163904); -emit_32(1081737216); -emit_32(1112094042); -emit_32(3271163904); -emit_start(Landscape06Vtx) -emit_32(3279552512); -emit_32(1085562023); -emit_32(1131812880); -emit_32(3279552512); -emit_32(1090639836); -emit_32(1132068864); -emit_32(3279296528); -emit_32(1088557385); -emit_32(1131812880); -emit_32(3279296528); -emit_32(1092330749); -emit_32(1132068864); -emit_32(3279040545); -emit_32(1092455865); -emit_32(1131812880); -emit_32(3279040545); -emit_32(1094355780); -emit_32(1132068864); -emit_32(3278784496); -emit_32(1095594567); -emit_32(1131812880); -emit_32(3278784496); -emit_32(1095302539); -emit_32(1132068864); -emit_32(3278528512); -emit_32(1096797808); -emit_32(1131812880); -emit_32(3278528512); -emit_32(1095711379); -emit_32(1132068864); -emit_32(3278272528); -emit_32(1098618136); -emit_32(1131812880); -emit_32(3278272528); -emit_32(1098003041); -emit_32(1132068864); -emit_32(3278016545); -emit_32(1099699061); -emit_32(1131812880); -emit_32(3278016545); -emit_32(1099454009); -emit_32(1132068864); -emit_32(3277760496); -emit_32(1100182821); -emit_32(1131812880); -emit_32(3277760496); -emit_32(1099951977); -emit_32(1132068864); -emit_32(3277504512); -emit_32(1100520096); -emit_32(1131812880); -emit_32(3277504512); -emit_32(1100371355); -emit_32(1132068864); -emit_32(3277248528); -emit_32(1100966579); -emit_32(1131812880); -emit_32(3277248528); -emit_32(1100780352); -emit_32(1132068864); -emit_32(3276992545); -emit_32(1100860306); -emit_32(1131812880); -emit_32(3276992545); -emit_32(1101050203); -emit_32(1132068864); -emit_32(3276736496); -emit_32(1100465622); -emit_32(1131812880); -emit_32(3276736496); -emit_32(1100893074); -emit_32(1132068864); -emit_32(3276480512); -emit_32(1100581280); -emit_32(1131812880); -emit_32(3276480512); -emit_32(1101018641); -emit_32(1132068864); -emit_32(3276224528); -emit_32(1099877895); -emit_32(1131812880); -emit_32(3276224528); -emit_32(1100648651); -emit_32(1132068864); -emit_32(3275968545); -emit_32(1098108633); -emit_32(1131812880); -emit_32(3275968545); -emit_32(1099969017); -emit_32(1132068864); -emit_32(3275712496); -emit_32(1097534433); -emit_32(1131812880); -emit_32(3275712496); -emit_32(1099061736); -emit_32(1132068864); -emit_32(3275456512); -emit_32(1095741263); -emit_32(1131812880); -emit_32(3275456512); -emit_32(1097819121); -emit_32(1132068864); -emit_32(3275200528); -emit_32(1094351061); -emit_32(1131812880); -emit_32(3275200528); -emit_32(1095413373); -emit_32(1132068864); -emit_32(3274944545); -emit_32(1095198940); -emit_32(1131812880); -emit_32(3274944545); -emit_32(1096465724); -emit_32(1132068864); -emit_32(3274688496); -emit_32(1095888378); -emit_32(1131812880); -emit_32(3274688496); -emit_32(1097378510); -emit_32(1132068864); -emit_32(3274432512); -emit_32(1096087503); -emit_32(1131812880); -emit_32(3274432512); -emit_32(1098800064); -emit_32(1132068864); -emit_32(3274176528); -emit_32(1096238288); -emit_32(1131812880); -emit_32(3274176528); -emit_32(1098870004); -emit_32(1132068864); -emit_32(3273920545); -emit_32(1096234303); -emit_32(1131812880); -emit_32(3273920545); -emit_32(1098365115); -emit_32(1132068864); -emit_32(3273664496); -emit_32(1097531182); -emit_32(1131812880); -emit_32(3273664496); -emit_32(1097973681); -emit_32(1132068864); -emit_32(3273408512); -emit_32(1096980680); -emit_32(1131812880); -emit_32(3273408512); -emit_32(1097661835); -emit_32(1132068864); -emit_32(3273152528); -emit_32(1096822135); -emit_32(1131812880); -emit_32(3273152528); -emit_32(1097231709); -emit_32(1132068864); -emit_32(3272896545); -emit_32(1095973103); -emit_32(1131812880); -emit_32(3272896545); -emit_32(1097116261); -emit_32(1132068864); -emit_32(3272640496); -emit_32(1095621621); -emit_32(1131812880); -emit_32(3272640496); -emit_32(1096358035); -emit_32(1132068864); -emit_32(3272384512); -emit_32(1095942380); -emit_32(1131812880); -emit_32(3272384512); -emit_32(1097122133); -emit_32(1132068864); -emit_32(3272128528); -emit_32(1095707289); -emit_32(1131812880); -emit_32(3272128528); -emit_32(1097935303); -emit_32(1132068864); -emit_32(3271872545); -emit_32(1096204524); -emit_32(1131812880); -emit_32(3271872545); -emit_32(1097370855); -emit_32(1132068864); -emit_32(3271616496); -emit_32(1096900883); -emit_32(1131812880); -emit_32(3271616496); -emit_32(1098608280); -emit_32(1132068864); -emit_32(3271163904); -emit_32(1096266285); -emit_32(1131812880); -emit_32(3271163904); -emit_32(1098342256); -emit_32(1132068864); -emit_32(3270651937); -emit_32(1095366397); -emit_32(1131812880); -emit_32(3270651937); -emit_32(1098053793); -emit_32(1132068864); -emit_32(3270139970); -emit_32(1094774581); -emit_32(1131812880); -emit_32(3270139970); -emit_32(1098324640); -emit_32(1132068864); -emit_32(3269627871); -emit_32(1095465488); -emit_32(1131812880); -emit_32(3269627871); -emit_32(1098790417); -emit_32(1132068864); -emit_32(3269115904); -emit_32(1095080136); -emit_32(1131812880); -emit_32(3269115904); -emit_32(1098071199); -emit_32(1132068864); -emit_32(3268603937); -emit_32(1095775027); -emit_32(1131812880); -emit_32(3268603937); -emit_32(1098042258); -emit_32(1132068864); -emit_32(3268091970); -emit_32(1096498335); -emit_32(1131812880); -emit_32(3268091970); -emit_32(1097596823); -emit_32(1132068864); -emit_32(3267579911); -emit_32(1096881170); -emit_32(1131812880); -emit_32(3267579911); -emit_32(1097962986); -emit_32(1132068864); -emit_32(3267067904); -emit_32(1096646604); -emit_32(1131812880); -emit_32(3267067904); -emit_32(1097510525); -emit_32(1132068864); -emit_32(3266555911); -emit_32(1097473930); -emit_32(1131812880); -emit_32(3266555911); -emit_32(1096970614); -emit_32(1132068864); -emit_32(3266043904); -emit_32(1096072928); -emit_32(1131812880); -emit_32(3266043904); -emit_32(1096851181); -emit_32(1132068864); -emit_32(3265531911); -emit_32(1095562061); -emit_32(1131812880); -emit_32(3265531911); -emit_32(1096578341); -emit_32(1132068864); -emit_32(3265019904); -emit_32(1094504258); -emit_32(1131812880); -emit_32(3265019904); -emit_32(1095833747); -emit_32(1132068864); -emit_32(3264507911); -emit_32(1094381679); -emit_32(1131812880); -emit_32(3264507911); -emit_32(1095590058); -emit_32(1132068864); -emit_32(3263995904); -emit_32(1093698952); -emit_32(1131812880); -emit_32(3263995904); -emit_32(1095093872); -emit_32(1132068864); -emit_32(3263483911); -emit_32(1094601146); -emit_32(1131812880); -emit_32(3263483911); -emit_32(1093864941); -emit_32(1132068864); -emit_32(3262775296); -emit_32(1093294516); -emit_32(1131812880); -emit_32(3262775296); -emit_32(1092542435); -emit_32(1132068864); -emit_32(3261751309); -emit_32(1091098766); -emit_32(1131812880); -emit_32(3261751309); -emit_32(1091449232); -emit_32(1132068864); -emit_32(3260727296); -emit_32(1088637685); -emit_32(1131812880); -emit_32(3260727296); -emit_32(1089462705); -emit_32(1132068864); -emit_32(3259703309); -emit_32(1088371137); -emit_32(1131812880); -emit_32(3259703309); -emit_32(1086825892); -emit_32(1132068864); -emit_32(3258679296); -emit_32(1090482591); -emit_32(1131812880); -emit_32(3258679296); -emit_32(1088189482); -emit_32(1132068864); -emit_32(3257655309); -emit_32(1091688768); -emit_32(1131812880); -emit_32(3257655309); -emit_32(1089036752); -emit_32(1132068864); -emit_32(3256631296); -emit_32(1091298897); -emit_32(1131812880); -emit_32(3256631296); -emit_32(1088194704); -emit_32(1132068864); -emit_32(3255607309); -emit_32(1089392345); -emit_32(1131812880); -emit_32(3255607309); -emit_32(1087706759); -emit_32(1132068864); -emit_32(3254386688); -emit_32(1089840108); -emit_32(1131812880); -emit_32(3254386688); -emit_32(1087906072); -emit_32(1132068864); -emit_32(3252338714); -emit_32(1088432604); -emit_32(1131812880); -emit_32(3252338714); -emit_32(1086651325); -emit_32(1132068864); -emit_32(3250290688); -emit_32(1085565840); -emit_32(1131812880); -emit_32(3250290688); -emit_32(1085752989); -emit_32(1132068864); -emit_32(3248242714); -emit_32(1084476831); -emit_32(1131812880); -emit_32(3248242714); -emit_32(1082147671); -emit_32(1132068864); -emit_32(3245998080); -emit_32(1080454304); -emit_32(1131812880); -emit_32(3245998080); -emit_32(1080053035); -emit_32(1132068864); -emit_32(3241902132); -emit_32(1078160817); -emit_32(1131812880); -emit_32(3241902132); -emit_32(1078352203); -emit_32(1132068864); -emit_32(3237609472); -emit_32(1075763269); -emit_32(1131812880); -emit_32(3237609472); -emit_32(1075673385); -emit_32(1132068864); -emit_32(3229220864); -emit_32(1071152764); -emit_32(1131812880); -emit_32(3229220864); -emit_32(1076050788); -emit_32(1132068864); -emit_32(0); -emit_32(1066573591); -emit_32(1131812880); -emit_32(0); -emit_32(1074500112); -emit_32(1132068864); -emit_32(1081737216); -emit_32(1055384530); -emit_32(1131812880); -emit_32(1081737216); -emit_32(1069740626); -emit_32(1132068864); -emit_32(3279552512); -emit_32(1084680359); -emit_32(1131556897); -emit_32(3279296528); -emit_32(1089160463); -emit_32(1131556897); -emit_32(3279040545); -emit_32(1092855687); -emit_32(1131556897); -emit_32(3278784496); -emit_32(1095505229); -emit_32(1131556897); -emit_32(3278528512); -emit_32(1097158309); -emit_32(1131556897); -emit_32(3278272528); -emit_32(1099096077); -emit_32(1131556897); -emit_32(3278016545); -emit_32(1099862691); -emit_32(1131556897); -emit_32(3277760496); -emit_32(1100235198); -emit_32(1131556897); -emit_32(3277504512); -emit_32(1100353529); -emit_32(1131556897); -emit_32(3277248528); -emit_32(1100744753); -emit_32(1131556897); -emit_32(3276992545); -emit_32(1100450208); -emit_32(1131556897); -emit_32(3276736496); -emit_32(1099944218); -emit_32(1131556897); -emit_32(3276480512); -emit_32(1099578632); -emit_32(1131556897); -emit_32(3276224528); -emit_32(1098095211); -emit_32(1131556897); -emit_32(3275968545); -emit_32(1096681416); -emit_32(1131556897); -emit_32(3275712496); -emit_32(1095628436); -emit_32(1131556897); -emit_32(3275456512); -emit_32(1094488739); -emit_32(1131556897); -emit_32(3275200528); -emit_32(1095225678); -emit_32(1131556897); -emit_32(3274944545); -emit_32(1095742416); -emit_32(1131556897); -emit_32(3274688496); -emit_32(1096313995); -emit_32(1131556897); -emit_32(3274432512); -emit_32(1096609379); -emit_32(1131556897); -emit_32(3274176528); -emit_32(1096643458); -emit_32(1131556897); -emit_32(3273920545); -emit_32(1096377644); -emit_32(1131556897); -emit_32(3273664496); -emit_32(1096630875); -emit_32(1131556897); -emit_32(3273408512); -emit_32(1096367787); -emit_32(1131556897); -emit_32(3273152528); -emit_32(1095764646); -emit_32(1131556897); -emit_32(3272896545); -emit_32(1095369648); -emit_32(1131556897); -emit_32(3272640496); -emit_32(1095202610); -emit_32(1131556897); -emit_32(3272384512); -emit_32(1095378141); -emit_32(1131556897); -emit_32(3272128528); -emit_32(1094896425); -emit_32(1131556897); -emit_32(3271872545); -emit_32(1094491570); -emit_32(1131556897); -emit_32(3271616496); -emit_32(1094140717); -emit_32(1131556897); -emit_32(3271163904); -emit_32(1093673576); -emit_32(1131556897); -emit_32(3270651937); -emit_32(1092775680); -emit_32(1131556897); -emit_32(3270139970); -emit_32(1093246176); -emit_32(1131556897); -emit_32(3269627871); -emit_32(1092835135); -emit_32(1131556897); -emit_32(3269115904); -emit_32(1093700839); -emit_32(1131556897); -emit_32(3268603937); -emit_32(1093815868); -emit_32(1131556897); -emit_32(3268091970); -emit_32(1095128475); -emit_32(1131556897); -emit_32(3267579911); -emit_32(1096138044); -emit_32(1131556897); -emit_32(3267067904); -emit_32(1097063727); -emit_32(1131556897); -emit_32(3266555911); -emit_32(1096790468); -emit_32(1131556897); -emit_32(3266043904); -emit_32(1096105433); -emit_32(1131556897); -emit_32(3265531911); -emit_32(1094675490); -emit_32(1131556897); -emit_32(3265019904); -emit_32(1094279548); -emit_32(1131556897); -emit_32(3264507911); -emit_32(1094433060); -emit_32(1131556897); -emit_32(3263995904); -emit_32(1094244316); -emit_32(1131556897); -emit_32(3263483911); -emit_32(1095101212); -emit_32(1131556897); -emit_32(3262775296); -emit_32(1093870184); -emit_32(1131556897); -emit_32(3261751309); -emit_32(1092196416); -emit_32(1131556897); -emit_32(3260727296); -emit_32(1090926800); -emit_32(1131556897); -emit_32(3259703309); -emit_32(1089315547); -emit_32(1131556897); -emit_32(3258679296); -emit_32(1090882864); -emit_32(1131556897); -emit_32(3257655309); -emit_32(1092302982); -emit_32(1131556897); -emit_32(3256631296); -emit_32(1091679478); -emit_32(1131556897); -emit_32(3255607309); -emit_32(1090777587); -emit_32(1131556897); -emit_32(3254386688); -emit_32(1090588833); -emit_32(1131556897); -emit_32(3252338714); -emit_32(1088391584); -emit_32(1131556897); -emit_32(3250290688); -emit_32(1088187762); -emit_32(1131556897); -emit_32(3248242714); -emit_32(1086074735); -emit_32(1131556897); -emit_32(3245998080); -emit_32(1083035311); -emit_32(1131556897); -emit_32(3241902132); -emit_32(1080697784); -emit_32(1131556897); -emit_32(3237609472); -emit_32(1077335797); -emit_32(1131556897); -emit_32(3229220864); -emit_32(1072342604); -emit_32(1131556897); -emit_32(0); -emit_32(1073908380); -emit_32(1131556897); -emit_32(1081737216); -emit_32(1074643096); -emit_32(1131556897); -emit_32(3279552512); -emit_32(1085160041); -emit_32(1131300848); -emit_32(3279296528); -emit_32(1090327885); -emit_32(1131300848); -emit_32(3279040545); -emit_32(1093025976); -emit_32(1131300848); -emit_32(3278784496); -emit_32(1095630848); -emit_32(1131300848); -emit_32(3278528512); -emit_32(1097676095); -emit_32(1131300848); -emit_32(3278272528); -emit_32(1099190973); -emit_32(1131300848); -emit_32(3278016545); -emit_32(1099857081); -emit_32(1131300848); -emit_32(3277760496); -emit_32(1100491260); -emit_32(1131300848); -emit_32(3277504512); -emit_32(1100352848); -emit_32(1131300848); -emit_32(3277248528); -emit_32(1100472753); -emit_32(1131300848); -emit_32(3276992545); -emit_32(1100152989); -emit_32(1131300848); -emit_32(3276736496); -emit_32(1099265684); -emit_32(1131300848); -emit_32(3276480512); -emit_32(1098708314); -emit_32(1131300848); -emit_32(3276224528); -emit_32(1096067580); -emit_32(1131300848); -emit_32(3275968545); -emit_32(1096230633); -emit_32(1131300848); -emit_32(3275712496); -emit_32(1096388025); -emit_32(1131300848); -emit_32(3275456512); -emit_32(1094867799); -emit_32(1131300848); -emit_32(3275200528); -emit_32(1096132172); -emit_32(1131300848); -emit_32(3274944545); -emit_32(1097306682); -emit_32(1131300848); -emit_32(3274688496); -emit_32(1097887069); -emit_32(1131300848); -emit_32(3274432512); -emit_32(1097633838); -emit_32(1131300848); -emit_32(3274176528); -emit_32(1098457389); -emit_32(1131300848); -emit_32(3273920545); -emit_32(1097090466); -emit_32(1131300848); -emit_32(3273664496); -emit_32(1096891446); -emit_32(1131300848); -emit_32(3273408512); -emit_32(1095233962); -emit_32(1131300848); -emit_32(3273152528); -emit_32(1094867799); -emit_32(1131300848); -emit_32(3272896545); -emit_32(1094576295); -emit_32(1131300848); -emit_32(3272640496); -emit_32(1093957845); -emit_32(1131300848); -emit_32(3272384512); -emit_32(1093473193); -emit_32(1131300848); -emit_32(3272128528); -emit_32(1093446664); -emit_32(1131300848); -emit_32(3271872545); -emit_32(1093505489); -emit_32(1131300848); -emit_32(3271616496); -emit_32(1092573494); -emit_32(1131300848); -emit_32(3271163904); -emit_32(1092718533); -emit_32(1131300848); -emit_32(3270651937); -emit_32(1091299642); -emit_32(1131300848); -emit_32(3270139970); -emit_32(1091752270); -emit_32(1131300848); -emit_32(3269627871); -emit_32(1092863027); -emit_32(1131300848); -emit_32(3269115904); -emit_32(1093352607); -emit_32(1131300848); -emit_32(3268603937); -emit_32(1094334389); -emit_32(1131300848); -emit_32(3268091970); -emit_32(1095530080); -emit_32(1131300848); -emit_32(3267579911); -emit_32(1096764359); -emit_32(1131300848); -emit_32(3267067904); -emit_32(1096925944); -emit_32(1131300848); -emit_32(3266555911); -emit_32(1096040107); -emit_32(1131300848); -emit_32(3266043904); -emit_32(1094881536); -emit_32(1131300848); -emit_32(3265531911); -emit_32(1094389753); -emit_32(1131300848); -emit_32(3265019904); -emit_32(1094053370); -emit_32(1131300848); -emit_32(3264507911); -emit_32(1094865283); -emit_32(1131300848); -emit_32(3263995904); -emit_32(1095186461); -emit_32(1131300848); -emit_32(3263483911); -emit_32(1095388208); -emit_32(1131300848); -emit_32(3262775296); -emit_32(1094366475); -emit_32(1131300848); -emit_32(3261751309); -emit_32(1093486930); -emit_32(1131300848); -emit_32(3260727296); -emit_32(1091443444); -emit_32(1131300848); -emit_32(3259703309); -emit_32(1090412169); -emit_32(1131300848); -emit_32(3258679296); -emit_32(1091017376); -emit_32(1131300848); -emit_32(3257655309); -emit_32(1091659503); -emit_32(1131300848); -emit_32(3256631296); -emit_32(1091788813); -emit_32(1131300848); -emit_32(3255607309); -emit_32(1091703155); -emit_32(1131300848); -emit_32(3254386688); -emit_32(1091097539); -emit_32(1131300848); -emit_32(3252338714); -emit_32(1090228501); -emit_32(1131300848); -emit_32(3250290688); -emit_32(1089127831); -emit_32(1131300848); -emit_32(3248242714); -emit_32(1087112238); -emit_32(1131300848); -emit_32(3245998080); -emit_32(1085471698); -emit_32(1131300848); -emit_32(3241902132); -emit_32(1083846552); -emit_32(1131300848); -emit_32(3237609472); -emit_32(1082879010); -emit_32(1131300848); -emit_32(3229220864); -emit_32(1080627152); -emit_32(1131300848); -emit_32(0); -emit_32(1080885311); -emit_32(1131300848); -emit_32(1081737216); -emit_32(1078120510); -emit_32(1131300848); -emit_32(3279552512); -emit_32(1086174748); -emit_32(1131044864); -emit_32(3279296528); -emit_32(1090628574); -emit_32(1131044864); -emit_32(3279040545); -emit_32(1092984871); -emit_32(1131044864); -emit_32(3278784496); -emit_32(1095235954); -emit_32(1131044864); -emit_32(3278528512); -emit_32(1097962986); -emit_32(1131044864); -emit_32(3278272528); -emit_32(1098907753); -emit_32(1131044864); -emit_32(3278016545); -emit_32(1099567464); -emit_32(1131044864); -emit_32(3277760496); -emit_32(1100053322); -emit_32(1131044864); -emit_32(3277504512); -emit_32(1100365745); -emit_32(1131044864); -emit_32(3277248528); -emit_32(1100199389); -emit_32(1131044864); -emit_32(3276992545); -emit_32(1100122476); -emit_32(1131044864); -emit_32(3276736496); -emit_32(1098964533); -emit_32(1131044864); -emit_32(3276480512); -emit_32(1098061028); -emit_32(1131044864); -emit_32(3276224528); -emit_32(1096998401); -emit_32(1131044864); -emit_32(3275968545); -emit_32(1096347969); -emit_32(1131044864); -emit_32(3275712496); -emit_32(1096743597); -emit_32(1131044864); -emit_32(3275456512); -emit_32(1096079639); -emit_32(1131044864); -emit_32(3275200528); -emit_32(1096454190); -emit_32(1131044864); -emit_32(3274944545); -emit_32(1097972947); -emit_32(1131044864); -emit_32(3274688496); -emit_32(1098482241); -emit_32(1131044864); -emit_32(3274432512); -emit_32(1098243165); -emit_32(1131044864); -emit_32(3274176528); -emit_32(1097818073); -emit_32(1131044864); -emit_32(3273920545); -emit_32(1097259811); -emit_32(1131044864); -emit_32(3273664496); -emit_32(1096971138); -emit_32(1131044864); -emit_32(3273408512); -emit_32(1095776495); -emit_32(1131044864); -emit_32(3273152528); -emit_32(1094346657); -emit_32(1131044864); -emit_32(3272896545); -emit_32(1094305658); -emit_32(1131044864); -emit_32(3272640496); -emit_32(1093779797); -emit_32(1131044864); -emit_32(3272384512); -emit_32(1093535059); -emit_32(1131044864); -emit_32(3272128528); -emit_32(1092859566); -emit_32(1131044864); -emit_32(3271872545); -emit_32(1092315471); -emit_32(1131044864); -emit_32(3271616496); -emit_32(1091613628); -emit_32(1131044864); -emit_32(3271163904); -emit_32(1092129045); -emit_32(1131044864); -emit_32(3270651937); -emit_32(1090623961); -emit_32(1131044864); -emit_32(3270139970); -emit_32(1091745329); -emit_32(1131044864); -emit_32(3269627871); -emit_32(1092278802); -emit_32(1131044864); -emit_32(3269115904); -emit_32(1092897106); -emit_32(1131044864); -emit_32(3268603937); -emit_32(1093630060); -emit_32(1131044864); -emit_32(3268091970); -emit_32(1095021835); -emit_32(1131044864); -emit_32(3267579911); -emit_32(1096071460); -emit_32(1131044864); -emit_32(3267067904); -emit_32(1095859647); -emit_32(1131044864); -emit_32(3266555911); -emit_32(1095186671); -emit_32(1131044864); -emit_32(3266043904); -emit_32(1094964478); -emit_32(1131044864); -emit_32(3265531911); -emit_32(1094463993); -emit_32(1131044864); -emit_32(3265019904); -emit_32(1094678322); -emit_32(1131044864); -emit_32(3264507911); -emit_32(1094959340); -emit_32(1131044864); -emit_32(3263995904); -emit_32(1095934725); -emit_32(1131044864); -emit_32(3263483911); -emit_32(1096292499); -emit_32(1131044864); -emit_32(3262775296); -emit_32(1095947833); -emit_32(1131044864); -emit_32(3261751309); -emit_32(1094626102); -emit_32(1131044864); -emit_32(3260727296); -emit_32(1092638002); -emit_32(1131044864); -emit_32(3259703309); -emit_32(1091654302); -emit_32(1131044864); -emit_32(3258679296); -emit_32(1090981043); -emit_32(1131044864); -emit_32(3257655309); -emit_32(1091856132); -emit_32(1131044864); -emit_32(3256631296); -emit_32(1092849815); -emit_32(1131044864); -emit_32(3255607309); -emit_32(1092381563); -emit_32(1131044864); -emit_32(3254386688); -emit_32(1091755762); -emit_32(1131044864); -emit_32(3252338714); -emit_32(1091392210); -emit_32(1131044864); -emit_32(3250290688); -emit_32(1090522762); -emit_32(1131044864); -emit_32(3248242714); -emit_32(1089201336); -emit_32(1131044864); -emit_32(3245998080); -emit_32(1088158150); -emit_32(1131044864); -emit_32(3241902132); -emit_32(1086827927); -emit_32(1131044864); -emit_32(3237609472); -emit_32(1085289603); -emit_32(1131044864); -emit_32(3229220864); -emit_32(1084371008); -emit_32(1131044864); -emit_32(0); -emit_32(1084371155); -emit_32(1131044864); -emit_32(1081737216); -emit_32(1084629524); -emit_32(1131044864); -emit_32(3279552512); -emit_32(1084191198); -emit_32(1130788880); -emit_32(3279296528); -emit_32(1090263187); -emit_32(1130788880); -emit_32(3279040545); -emit_32(1093579624); -emit_32(1130788880); -emit_32(3278784496); -emit_32(1095609772); -emit_32(1130788880); -emit_32(3278528512); -emit_32(1097395392); -emit_32(1130788880); -emit_32(3278272528); -emit_32(1098942775); -emit_32(1130788880); -emit_32(3278016545); -emit_32(1099952973); -emit_32(1130788880); -emit_32(3277760496); -emit_32(1100137051); -emit_32(1130788880); -emit_32(3277504512); -emit_32(1100188117); -emit_32(1130788880); -emit_32(3277248528); -emit_32(1100449631); -emit_32(1130788880); -emit_32(3276992545); -emit_32(1099596091); -emit_32(1130788880); -emit_32(3276736496); -emit_32(1098204263); -emit_32(1130788880); -emit_32(3276480512); -emit_32(1098412510); -emit_32(1130788880); -emit_32(3276224528); -emit_32(1097801505); -emit_32(1130788880); -emit_32(3275968545); -emit_32(1096603507); -emit_32(1130788880); -emit_32(3275712496); -emit_32(1095928224); -emit_32(1130788880); -emit_32(3275456512); -emit_32(1096222035); -emit_32(1130788880); -emit_32(3275200528); -emit_32(1097042546); -emit_32(1130788880); -emit_32(3274944545); -emit_32(1097761554); -emit_32(1130788880); -emit_32(3274688496); -emit_32(1098099720); -emit_32(1130788880); -emit_32(3274432512); -emit_32(1097722862); -emit_32(1130788880); -emit_32(3274176528); -emit_32(1096956563); -emit_32(1130788880); -emit_32(3273920545); -emit_32(1096582850); -emit_32(1130788880); -emit_32(3273664496); -emit_32(1095826303); -emit_32(1130788880); -emit_32(3273408512); -emit_32(1095071538); -emit_32(1130788880); -emit_32(3273152528); -emit_32(1094227434); -emit_32(1130788880); -emit_32(3272896545); -emit_32(1094210132); -emit_32(1130788880); -emit_32(3272640496); -emit_32(1093761027); -emit_32(1130788880); -emit_32(3272384512); -emit_32(1093810520); -emit_32(1130788880); -emit_32(3272128528); -emit_32(1092656772); -emit_32(1130788880); -emit_32(3271872545); -emit_32(1091138738); -emit_32(1130788880); -emit_32(3271616496); -emit_32(1089927035); -emit_32(1130788880); -emit_32(3271163904); -emit_32(1089350360); -emit_32(1130788880); -emit_32(3270651937); -emit_32(1090698210); -emit_32(1130788880); -emit_32(3270139970); -emit_32(1090875577); -emit_32(1130788880); -emit_32(3269627871); -emit_32(1091800075); -emit_32(1130788880); -emit_32(3269115904); -emit_32(1092846354); -emit_32(1130788880); -emit_32(3268603937); -emit_32(1094213173); -emit_32(1130788880); -emit_32(3268091970); -emit_32(1095490444); -emit_32(1130788880); -emit_32(3267579911); -emit_32(1095492331); -emit_32(1130788880); -emit_32(3267067904); -emit_32(1095128475); -emit_32(1130788880); -emit_32(3266555911); -emit_32(1094457387); -emit_32(1130788880); -emit_32(3266043904); -emit_32(1093000915); -emit_32(1130788880); -emit_32(3265531911); -emit_32(1092702700); -emit_32(1130788880); -emit_32(3265019904); -emit_32(1094131489); -emit_32(1130788880); -emit_32(3264507911); -emit_32(1094959759); -emit_32(1130788880); -emit_32(3263995904); -emit_32(1096392743); -emit_32(1130788880); -emit_32(3263483911); -emit_32(1097205809); -emit_32(1130788880); -emit_32(3262775296); -emit_32(1096775893); -emit_32(1130788880); -emit_32(3261751309); -emit_32(1095617217); -emit_32(1130788880); -emit_32(3260727296); -emit_32(1094159591); -emit_32(1130788880); -emit_32(3259703309); -emit_32(1092609701); -emit_32(1130788880); -emit_32(3258679296); -emit_32(1091241058); -emit_32(1130788880); -emit_32(3257655309); -emit_32(1092023201); -emit_32(1130788880); -emit_32(3256631296); -emit_32(1093109862); -emit_32(1130788880); -emit_32(3255607309); -emit_32(1093719399); -emit_32(1130788880); -emit_32(3254386688); -emit_32(1093231077); -emit_32(1130788880); -emit_32(3252338714); -emit_32(1093489761); -emit_32(1130788880); -emit_32(3250290688); -emit_32(1092575423); -emit_32(1130788880); -emit_32(3248242714); -emit_32(1091158975); -emit_32(1130788880); -emit_32(3245998080); -emit_32(1089311227); -emit_32(1130788880); -emit_32(3241902132); -emit_32(1087230748); -emit_32(1130788880); -emit_32(3237609472); -emit_32(1087094936); -emit_32(1130788880); -emit_32(3229220864); -emit_32(1087427439); -emit_32(1130788880); -emit_32(0); -emit_32(1086716610); -emit_32(1130788880); -emit_32(1081737216); -emit_32(1086083564); -emit_32(1130788880); -emit_32(3279552512); -emit_32(1084064572); -emit_32(1130532897); -emit_32(3279296528); -emit_32(1091219604); -emit_32(1130532897); -emit_32(3279040545); -emit_32(1094461581); -emit_32(1130532897); -emit_32(3278784496); -emit_32(1096451988); -emit_32(1130532897); -emit_32(3278528512); -emit_32(1098531104); -emit_32(1130532897); -emit_32(3278272528); -emit_32(1099322203); -emit_32(1130532897); -emit_32(3278016545); -emit_32(1099673423); -emit_32(1130532897); -emit_32(3277760496); -emit_32(1100210032); -emit_32(1130532897); -emit_32(3277504512); -emit_32(1100192468); -emit_32(1130532897); -emit_32(3277248528); -emit_32(1099743153); -emit_32(1130532897); -emit_32(3276992545); -emit_32(1099219128); -emit_32(1130532897); -emit_32(3276736496); -emit_32(1097733767); -emit_32(1130532897); -emit_32(3276480512); -emit_32(1098251554); -emit_32(1130532897); -emit_32(3276224528); -emit_32(1098330197); -emit_32(1130532897); -emit_32(3275968545); -emit_32(1097354078); -emit_32(1130532897); -emit_32(3275712496); -emit_32(1095686947); -emit_32(1130532897); -emit_32(3275456512); -emit_32(1096170655); -emit_32(1130532897); -emit_32(3275200528); -emit_32(1096848035); -emit_32(1130532897); -emit_32(3274944545); -emit_32(1098161481); -emit_32(1130532897); -emit_32(3274688496); -emit_32(1097829712); -emit_32(1130532897); -emit_32(3274432512); -emit_32(1097057436); -emit_32(1130532897); -emit_32(3274176528); -emit_32(1096473484); -emit_32(1130532897); -emit_32(3273920545); -emit_32(1095842765); -emit_32(1130532897); -emit_32(3273664496); -emit_32(1095539517); -emit_32(1130532897); -emit_32(3273408512); -emit_32(1095213200); -emit_32(1130532897); -emit_32(3273152528); -emit_32(1094205414); -emit_32(1130532897); -emit_32(3272896545); -emit_32(1093845647); -emit_32(1130532897); -emit_32(3272640496); -emit_32(1093546174); -emit_32(1130532897); -emit_32(3272384512); -emit_32(1092377452); -emit_32(1130532897); -emit_32(3272128528); -emit_32(1091313106); -emit_32(1130532897); -emit_32(3271872545); -emit_32(1087954328); -emit_32(1130532897); -emit_32(3271616496); -emit_32(1087060480); -emit_32(1130532897); -emit_32(3271163904); -emit_32(1087580678); -emit_32(1130532897); -emit_32(3270651937); -emit_32(1090126768); -emit_32(1130532897); -emit_32(3270139970); -emit_32(1090624715); -emit_32(1130532897); -emit_32(3269627871); -emit_32(1091647664); -emit_32(1130532897); -emit_32(3269115904); -emit_32(1092856211); -emit_32(1130532897); -emit_32(3268603937); -emit_32(1094224917); -emit_32(1130532897); -emit_32(3268091970); -emit_32(1095671952); -emit_32(1130532897); -emit_32(3267579911); -emit_32(1095628646); -emit_32(1130532897); -emit_32(3267067904); -emit_32(1095567829); -emit_32(1130532897); -emit_32(3266555911); -emit_32(1093630270); -emit_32(1130532897); -emit_32(3266043904); -emit_32(1092684245); -emit_32(1130532897); -emit_32(3265531911); -emit_32(1091861343); -emit_32(1130532897); -emit_32(3265019904); -emit_32(1092755023); -emit_32(1130532897); -emit_32(3264507911); -emit_32(1094570528); -emit_32(1130532897); -emit_32(3263995904); -emit_32(1095357275); -emit_32(1130532897); -emit_32(3263483911); -emit_32(1096480299); -emit_32(1130532897); -emit_32(3262775296); -emit_32(1096746428); -emit_32(1130532897); -emit_32(3261751309); -emit_32(1096329514); -emit_32(1130532897); -emit_32(3260727296); -emit_32(1095223896); -emit_32(1130532897); -emit_32(3259703309); -emit_32(1093955643); -emit_32(1130532897); -emit_32(3258679296); -emit_32(1093246281); -emit_32(1130532897); -emit_32(3257655309); -emit_32(1094172174); -emit_32(1130532897); -emit_32(3256631296); -emit_32(1095280414); -emit_32(1130532897); -emit_32(3255607309); -emit_32(1095624976); -emit_32(1130532897); -emit_32(3254386688); -emit_32(1095264161); -emit_32(1130532897); -emit_32(3252338714); -emit_32(1094911210); -emit_32(1130532897); -emit_32(3250290688); -emit_32(1094226385); -emit_32(1130532897); -emit_32(3248242714); -emit_32(1092124945); -emit_32(1130532897); -emit_32(3245998080); -emit_32(1090831631); -emit_32(1130532897); -emit_32(3241902132); -emit_32(1089226670); -emit_32(1130532897); -emit_32(3237609472); -emit_32(1089629994); -emit_32(1130532897); -emit_32(3229220864); -emit_32(1089284992); -emit_32(1130532897); -emit_32(0); -emit_32(1088387495); -emit_32(1130532897); -emit_32(1081737216); -emit_32(1088205504); -emit_32(1130532897); -emit_32(3279552512); -emit_32(1083530931); -emit_32(1130276848); -emit_32(3279296528); -emit_32(1090306850); -emit_32(1130276848); -emit_32(3279040545); -emit_32(1093521008); -emit_32(1130276848); -emit_32(3278784496); -emit_32(1096939995); -emit_32(1130276848); -emit_32(3278528512); -emit_32(1098488322); -emit_32(1130276848); -emit_32(3278272528); -emit_32(1099450129); -emit_32(1130276848); -emit_32(3278016545); -emit_32(1099687369); -emit_32(1130276848); -emit_32(3277760496); -emit_32(1099754740); -emit_32(1130276848); -emit_32(3277504512); -emit_32(1099338246); -emit_32(1130276848); -emit_32(3277248528); -emit_32(1099121348); -emit_32(1130276848); -emit_32(3276992545); -emit_32(1097937191); -emit_32(1130276848); -emit_32(3276736496); -emit_32(1097116051); -emit_32(1130276848); -emit_32(3276480512); -emit_32(1097449498); -emit_32(1130276848); -emit_32(3276224528); -emit_32(1097296721); -emit_32(1130276848); -emit_32(3275968545); -emit_32(1096895116); -emit_32(1130276848); -emit_32(3275712496); -emit_32(1095191390); -emit_32(1130276848); -emit_32(3275456512); -emit_32(1095800403); -emit_32(1130276848); -emit_32(3275200528); -emit_32(1096784282); -emit_32(1130276848); -emit_32(3274944545); -emit_32(1097651454); -emit_32(1130276848); -emit_32(3274688496); -emit_32(1097454846); -emit_32(1130276848); -emit_32(3274432512); -emit_32(1096258211); -emit_32(1130276848); -emit_32(3274176528); -emit_32(1096116863); -emit_32(1130276848); -emit_32(3273920545); -emit_32(1096517943); -emit_32(1130276848); -emit_32(3273664496); -emit_32(1095318897); -emit_32(1130276848); -emit_32(3273408512); -emit_32(1094673498); -emit_32(1130276848); -emit_32(3273152528); -emit_32(1093918733); -emit_32(1130276848); -emit_32(3272896545); -emit_32(1093483364); -emit_32(1130276848); -emit_32(3272640496); -emit_32(1092914826); -emit_32(1130276848); -emit_32(3272384512); -emit_32(1091000567); -emit_32(1130276848); -emit_32(3272128528); -emit_32(1089935654); -emit_32(1130276848); -emit_32(3271872545); -emit_32(1086818510); -emit_32(1130276848); -emit_32(3271616496); -emit_32(1085690389); -emit_32(1130276848); -emit_32(3271163904); -emit_32(1086952309); -emit_32(1130276848); -emit_32(3270651937); -emit_32(1088839431); -emit_32(1130276848); -emit_32(3270139970); -emit_32(1089612819); -emit_32(1130276848); -emit_32(3269627871); -emit_32(1091440686); -emit_32(1130276848); -emit_32(3269115904); -emit_32(1092535473); -emit_32(1130276848); -emit_32(3268603937); -emit_32(1092891758); -emit_32(1130276848); -emit_32(3268091970); -emit_32(1094112510); -emit_32(1130276848); -emit_32(3267579911); -emit_32(1095020472); -emit_32(1130276848); -emit_32(3267067904); -emit_32(1094302617); -emit_32(1130276848); -emit_32(3266555911); -emit_32(1094287622); -emit_32(1130276848); -emit_32(3266043904); -emit_32(1092792667); -emit_32(1130276848); -emit_32(3265531911); -emit_32(1093051561); -emit_32(1130276848); -emit_32(3265019904); -emit_32(1093418353); -emit_32(1130276848); -emit_32(3264507911); -emit_32(1094221667); -emit_32(1130276848); -emit_32(3263995904); -emit_32(1095632001); -emit_32(1130276848); -emit_32(3263483911); -emit_32(1097732614); -emit_32(1130276848); -emit_32(3262775296); -emit_32(1098628832); -emit_32(1130276848); -emit_32(3261751309); -emit_32(1097948306); -emit_32(1130276848); -emit_32(3260727296); -emit_32(1097305319); -emit_32(1130276848); -emit_32(3259703309); -emit_32(1096485333); -emit_32(1130276848); -emit_32(3258679296); -emit_32(1095850210); -emit_32(1130276848); -emit_32(3257655309); -emit_32(1095872964); -emit_32(1130276848); -emit_32(3256631296); -emit_32(1096804414); -emit_32(1130276848); -emit_32(3255607309); -emit_32(1096692741); -emit_32(1130276848); -emit_32(3254386688); -emit_32(1096946077); -emit_32(1130276848); -emit_32(3252338714); -emit_32(1096420006); -emit_32(1130276848); -emit_32(3250290688); -emit_32(1094944660); -emit_32(1130276848); -emit_32(3248242714); -emit_32(1093505489); -emit_32(1130276848); -emit_32(3245998080); -emit_32(1092313867); -emit_32(1130276848); -emit_32(3241902132); -emit_32(1091062559); -emit_32(1130276848); -emit_32(3237609472); -emit_32(1091612432); -emit_32(1130276848); -emit_32(3229220864); -emit_32(1091011671); -emit_32(1130276848); -emit_32(0); -emit_32(1090792142); -emit_32(1130276848); -emit_32(1081737216); -emit_32(1088030748); -emit_32(1130276848); -emit_32(3279552512); -emit_32(1084583764); -emit_32(1130020864); -emit_32(3279296528); -emit_32(1087682243); -emit_32(1130020864); -emit_32(3279040545); -emit_32(1092094075); -emit_32(1130020864); -emit_32(3278784496); -emit_32(1095249691); -emit_32(1130020864); -emit_32(3278528512); -emit_32(1098698877); -emit_32(1130020864); -emit_32(3278272528); -emit_32(1099753796); -emit_32(1130020864); -emit_32(3278016545); -emit_32(1100023333); -emit_32(1130020864); -emit_32(3277760496); -emit_32(1099595042); -emit_32(1130020864); -emit_32(3277504512); -emit_32(1099115371); -emit_32(1130020864); -emit_32(3277248528); -emit_32(1098920493); -emit_32(1130020864); -emit_32(3276992545); -emit_32(1097370855); -emit_32(1130020864); -emit_32(3276736496); -emit_32(1096229480); -emit_32(1130020864); -emit_32(3276480512); -emit_32(1096179987); -emit_32(1130020864); -emit_32(3276224528); -emit_32(1096332765); -emit_32(1130020864); -emit_32(3275968545); -emit_32(1094920228); -emit_32(1130020864); -emit_32(3275712496); -emit_32(1094538966); -emit_32(1130020864); -emit_32(3275456512); -emit_32(1096079324); -emit_32(1130020864); -emit_32(3275200528); -emit_32(1096062022); -emit_32(1130020864); -emit_32(3274944545); -emit_32(1097415524); -emit_32(1130020864); -emit_32(3274688496); -emit_32(1097262642); -emit_32(1130020864); -emit_32(3274432512); -emit_32(1096083309); -emit_32(1130020864); -emit_32(3274176528); -emit_32(1097096338); -emit_32(1130020864); -emit_32(3273920545); -emit_32(1097389520); -emit_32(1130020864); -emit_32(3273664496); -emit_32(1096628987); -emit_32(1130020864); -emit_32(3273408512); -emit_32(1095157311); -emit_32(1130020864); -emit_32(3273152528); -emit_32(1093144150); -emit_32(1130020864); -emit_32(3272896545); -emit_32(1092252305); -emit_32(1130020864); -emit_32(3272640496); -emit_32(1090906174); -emit_32(1130020864); -emit_32(3272384512); -emit_32(1089256785); -emit_32(1130020864); -emit_32(3272128528); -emit_32(1086933413); -emit_32(1130020864); -emit_32(3271872545); -emit_32(1085005690); -emit_32(1130020864); -emit_32(3271616496); -emit_32(1084837205); -emit_32(1130020864); -emit_32(3271163904); -emit_32(1085479500); -emit_32(1130020864); -emit_32(3270651937); -emit_32(1086647781); -emit_32(1130020864); -emit_32(3270139970); -emit_32(1088754391); -emit_32(1130020864); -emit_32(3269627871); -emit_32(1090605474); -emit_32(1130020864); -emit_32(3269115904); -emit_32(1091545984); -emit_32(1130020864); -emit_32(3268603937); -emit_32(1092272018); -emit_32(1130020864); -emit_32(3268091970); -emit_32(1093427580); -emit_32(1130020864); -emit_32(3267579911); -emit_32(1094111042); -emit_32(1130020864); -emit_32(3267067904); -emit_32(1094388915); -emit_32(1130020864); -emit_32(3266555911); -emit_32(1094139458); -emit_32(1130020864); -emit_32(3266043904); -emit_32(1094235718); -emit_32(1130020864); -emit_32(3265531911); -emit_32(1094648752); -emit_32(1130020864); -emit_32(3265019904); -emit_32(1095187300); -emit_32(1130020864); -emit_32(3264507911); -emit_32(1096097674); -emit_32(1130020864); -emit_32(3263995904); -emit_32(1097057016); -emit_32(1130020864); -emit_32(3263483911); -emit_32(1097881092); -emit_32(1130020864); -emit_32(3262775296); -emit_32(1098962856); -emit_32(1130020864); -emit_32(3261751309); -emit_32(1098940835); -emit_32(1130020864); -emit_32(3260727296); -emit_32(1098504366); -emit_32(1130020864); -emit_32(3259703309); -emit_32(1098210030); -emit_32(1130020864); -emit_32(3258679296); -emit_32(1097752537); -emit_32(1130020864); -emit_32(3257655309); -emit_32(1096972082); -emit_32(1130020864); -emit_32(3256631296); -emit_32(1097685323); -emit_32(1130020864); -emit_32(3255607309); -emit_32(1097690566); -emit_32(1130020864); -emit_32(3254386688); -emit_32(1097717514); -emit_32(1130020864); -emit_32(3252338714); -emit_32(1096801373); -emit_32(1130020864); -emit_32(3250290688); -emit_32(1096574462); -emit_32(1130020864); -emit_32(3248242714); -emit_32(1095368389); -emit_32(1130020864); -emit_32(3245998080); -emit_32(1094028204); -emit_32(1130020864); -emit_32(3241902132); -emit_32(1093145513); -emit_32(1130020864); -emit_32(3237609472); -emit_32(1092561058); -emit_32(1130020864); -emit_32(3229220864); -emit_32(1091353465); -emit_32(1130020864); -emit_32(0); -emit_32(1090850872); -emit_32(1130020864); -emit_32(1081737216); -emit_32(1090545737); -emit_32(1130020864); -emit_32(3279552512); -emit_32(1083020778); -emit_32(1129764880); -emit_32(3279296528); -emit_32(1086653695); -emit_32(1129764880); -emit_32(3279040545); -emit_32(1091034835); -emit_32(1129764880); -emit_32(3278784496); -emit_32(1094988805); -emit_32(1129764880); -emit_32(3278528512); -emit_32(1098825335); -emit_32(1129764880); -emit_32(3278272528); -emit_32(1099793485); -emit_32(1129764880); -emit_32(3278016545); -emit_32(1100052431); -emit_32(1129764880); -emit_32(3277760496); -emit_32(1099921673); -emit_32(1129764880); -emit_32(3277504512); -emit_32(1099421608); -emit_32(1129764880); -emit_32(3277248528); -emit_32(1098552915); -emit_32(1129764880); -emit_32(3276992545); -emit_32(1097228773); -emit_32(1129764880); -emit_32(3276736496); -emit_32(1095528822); -emit_32(1129764880); -emit_32(3276480512); -emit_32(1095513932); -emit_32(1129764880); -emit_32(3276224528); -emit_32(1095608094); -emit_32(1129764880); -emit_32(3275968545); -emit_32(1094888666); -emit_32(1129764880); -emit_32(3275712496); -emit_32(1094960493); -emit_32(1129764880); -emit_32(3275456512); -emit_32(1095322147); -emit_32(1129764880); -emit_32(3275200528); -emit_32(1095300232); -emit_32(1129764880); -emit_32(3274944545); -emit_32(1096422103); -emit_32(1129764880); -emit_32(3274688496); -emit_32(1096640836); -emit_32(1129764880); -emit_32(3274432512); -emit_32(1097230031); -emit_32(1129764880); -emit_32(3274176528); -emit_32(1097125279); -emit_32(1129764880); -emit_32(3273920545); -emit_32(1097162084); -emit_32(1129764880); -emit_32(3273664496); -emit_32(1096846777); -emit_32(1129764880); -emit_32(3273408512); -emit_32(1095743360); -emit_32(1129764880); -emit_32(3273152528); -emit_32(1093469838); -emit_32(1129764880); -emit_32(3272896545); -emit_32(1092165598); -emit_32(1129764880); -emit_32(3272640496); -emit_32(1090712261); -emit_32(1129764880); -emit_32(3272384512); -emit_32(1088210873); -emit_32(1129764880); -emit_32(3272128528); -emit_32(1085889095); -emit_32(1129764880); -emit_32(3271872545); -emit_32(1083392330); -emit_32(1129764880); -emit_32(3271616496); -emit_32(1083388073); -emit_32(1129764880); -emit_32(3271163904); -emit_32(1084653180); -emit_32(1129764880); -emit_32(3270651937); -emit_32(1086692618); -emit_32(1129764880); -emit_32(3270139970); -emit_32(1088701795); -emit_32(1129764880); -emit_32(3269627871); -emit_32(1090628616); -emit_32(1129764880); -emit_32(3269115904); -emit_32(1091284553); -emit_32(1129764880); -emit_32(3268603937); -emit_32(1092579376); -emit_32(1129764880); -emit_32(3268091970); -emit_32(1093773715); -emit_32(1129764880); -emit_32(3267579911); -emit_32(1094376856); -emit_32(1129764880); -emit_32(3267067904); -emit_32(1094634281); -emit_32(1129764880); -emit_32(3266555911); -emit_32(1094720789); -emit_32(1129764880); -emit_32(3266043904); -emit_32(1095562586); -emit_32(1129764880); -emit_32(3265531911); -emit_32(1096146957); -emit_32(1129764880); -emit_32(3265019904); -emit_32(1096371248); -emit_32(1129764880); -emit_32(3264507911); -emit_32(1097603115); -emit_32(1129764880); -emit_32(3263995904); -emit_32(1098307233); -emit_32(1129764880); -emit_32(3263483911); -emit_32(1098369729); -emit_32(1129764880); -emit_32(3262775296); -emit_32(1099083075); -emit_32(1129764880); -emit_32(3261751309); -emit_32(1099129946); -emit_32(1129764880); -emit_32(3260727296); -emit_32(1099485099); -emit_32(1129764880); -emit_32(3259703309); -emit_32(1099764335); -emit_32(1129764880); -emit_32(3258679296); -emit_32(1099176713); -emit_32(1129764880); -emit_32(3257655309); -emit_32(1098040266); -emit_32(1129764880); -emit_32(3256631296); -emit_32(1098351798); -emit_32(1129764880); -emit_32(3255607309); -emit_32(1098988388); -emit_32(1129764880); -emit_32(3254386688); -emit_32(1098753193); -emit_32(1129764880); -emit_32(3252338714); -emit_32(1098284479); -emit_32(1129764880); -emit_32(3250290688); -emit_32(1097489554); -emit_32(1129764880); -emit_32(3248242714); -emit_32(1095940702); -emit_32(1129764880); -emit_32(3245998080); -emit_32(1094687549); -emit_32(1129764880); -emit_32(3241902132); -emit_32(1094446272); -emit_32(1129764880); -emit_32(3237609472); -emit_32(1093495318); -emit_32(1129764880); -emit_32(3229220864); -emit_32(1092748208); -emit_32(1129764880); -emit_32(0); -emit_32(1092091118); -emit_32(1129764880); -emit_32(1081737216); -emit_32(1091835139); -emit_32(1129764880); -emit_32(3279552512); -emit_32(1080463993); -emit_32(1129508897); -emit_32(3279296528); -emit_32(1085016910); -emit_32(1129508897); -emit_32(3279040545); -emit_32(1089825176); -emit_32(1129508897); -emit_32(3278784496); -emit_32(1094698979); -emit_32(1129508897); -emit_32(3278528512); -emit_32(1097809265); -emit_32(1129508897); -emit_32(3278272528); -emit_32(1099171575); -emit_32(1129508897); -emit_32(3278016545); -emit_32(1099886127); -emit_32(1129508897); -emit_32(3277760496); -emit_32(1099484470); -emit_32(1129508897); -emit_32(3277504512); -emit_32(1098929301); -emit_32(1129508897); -emit_32(3277248528); -emit_32(1097703463); -emit_32(1129508897); -emit_32(3276992545); -emit_32(1096695572); -emit_32(1129508897); -emit_32(3276736496); -emit_32(1094705899); -emit_32(1129508897); -emit_32(3276480512); -emit_32(1094521559); -emit_32(1129508897); -emit_32(3276224528); -emit_32(1094382938); -emit_32(1129508897); -emit_32(3275968545); -emit_32(1093723488); -emit_32(1129508897); -emit_32(3275712496); -emit_32(1094327258); -emit_32(1129508897); -emit_32(3275456512); -emit_32(1094643404); -emit_32(1129508897); -emit_32(3275200528); -emit_32(1095341441); -emit_32(1129508897); -emit_32(3274944545); -emit_32(1096856319); -emit_32(1129508897); -emit_32(3274688496); -emit_32(1097642751); -emit_32(1129508897); -emit_32(3274432512); -emit_32(1097737857); -emit_32(1129508897); -emit_32(3274176528); -emit_32(1097157784); -emit_32(1129508897); -emit_32(3273920545); -emit_32(1096063805); -emit_32(1129508897); -emit_32(3273664496); -emit_32(1095072272); -emit_32(1129508897); -emit_32(3273408512); -emit_32(1094164729); -emit_32(1129508897); -emit_32(3273152528); -emit_32(1092558321); -emit_32(1129508897); -emit_32(3272896545); -emit_32(1090029460); -emit_32(1129508897); -emit_32(3272640496); -emit_32(1087566627); -emit_32(1129508897); -emit_32(3272384512); -emit_32(1087370124); -emit_32(1129508897); -emit_32(3272128528); -emit_32(1084743064); -emit_32(1129508897); -emit_32(3271872545); -emit_32(1082700102); -emit_32(1129508897); -emit_32(3271616496); -emit_32(1083566646); -emit_32(1129508897); -emit_32(3271163904); -emit_32(1084803462); -emit_32(1129508897); -emit_32(3270651937); -emit_32(1086593633); -emit_32(1129508897); -emit_32(3270139970); -emit_32(1090542266); -emit_32(1129508897); -emit_32(3269627871); -emit_32(1091515565); -emit_32(1129508897); -emit_32(3269115904); -emit_32(1092537947); -emit_32(1129508897); -emit_32(3268603937); -emit_32(1093041704); -emit_32(1129508897); -emit_32(3268091970); -emit_32(1093964870); -emit_32(1129508897); -emit_32(3267579911); -emit_32(1094427502); -emit_32(1129508897); -emit_32(3267067904); -emit_32(1095046267); -emit_32(1129508897); -emit_32(3266555911); -emit_32(1095386844); -emit_32(1129508897); -emit_32(3266043904); -emit_32(1095993865); -emit_32(1129508897); -emit_32(3265531911); -emit_32(1096745379); -emit_32(1129508897); -emit_32(3265019904); -emit_32(1098208458); -emit_32(1129508897); -emit_32(3264507911); -emit_32(1099059325); -emit_32(1129508897); -emit_32(3263995904); -emit_32(1098961755); -emit_32(1129508897); -emit_32(3263483911); -emit_32(1099315859); -emit_32(1129508897); -emit_32(3262775296); -emit_32(1099329071); -emit_32(1129508897); -emit_32(3261751309); -emit_32(1098988231); -emit_32(1129508897); -emit_32(3260727296); -emit_32(1099657694); -emit_32(1129508897); -emit_32(3259703309); -emit_32(1099596038); -emit_32(1129508897); -emit_32(3258679296); -emit_32(1099042285); -emit_32(1129508897); -emit_32(3257655309); -emit_32(1098921594); -emit_32(1129508897); -emit_32(3256631296); -emit_32(1099409339); -emit_32(1129508897); -emit_32(3255607309); -emit_32(1099994654); -emit_32(1129508897); -emit_32(3254386688); -emit_32(1099682493); -emit_32(1129508897); -emit_32(3252338714); -emit_32(1099586024); -emit_32(1129508897); -emit_32(3250290688); -emit_32(1098985085); -emit_32(1129508897); -emit_32(3248242714); -emit_32(1098287940); -emit_32(1129508897); -emit_32(3245998080); -emit_32(1096812488); -emit_32(1129508897); -emit_32(3241902132); -emit_32(1096132172); -emit_32(1129508897); -emit_32(3237609472); -emit_32(1095219072); -emit_32(1129508897); -emit_32(3229220864); -emit_32(1094487061); -emit_32(1129508897); -emit_32(0); -emit_32(1093746137); -emit_32(1129508897); -emit_32(1081737216); -emit_32(1093216816); -emit_32(1129508897); -emit_32(3279552512); -emit_32(1080029128); -emit_32(1129252848); -emit_32(3279296528); -emit_32(1082132361); -emit_32(1129252848); -emit_32(3279040545); -emit_32(1088551786); -emit_32(1129252848); -emit_32(3278784496); -emit_32(1092773688); -emit_32(1129252848); -emit_32(3278528512); -emit_32(1095789393); -emit_32(1129252848); -emit_32(3278272528); -emit_32(1098426352); -emit_32(1129252848); -emit_32(3278016545); -emit_32(1099118884); -emit_32(1129252848); -emit_32(3277760496); -emit_32(1098946498); -emit_32(1129252848); -emit_32(3277504512); -emit_32(1098247674); -emit_32(1129252848); -emit_32(3277248528); -emit_32(1097180538); -emit_32(1129252848); -emit_32(3276992545); -emit_32(1095903583); -emit_32(1129252848); -emit_32(3276736496); -emit_32(1093972944); -emit_32(1129252848); -emit_32(3276480512); -emit_32(1094119535); -emit_32(1129252848); -emit_32(3276224528); -emit_32(1094115656); -emit_32(1129252848); -emit_32(3275968545); -emit_32(1093250371); -emit_32(1129252848); -emit_32(3275712496); -emit_32(1093516919); -emit_32(1129252848); -emit_32(3275456512); -emit_32(1094550500); -emit_32(1129252848); -emit_32(3275200528); -emit_32(1095584186); -emit_32(1129252848); -emit_32(3274944545); -emit_32(1097766378); -emit_32(1129252848); -emit_32(3274688496); -emit_32(1097882665); -emit_32(1129252848); -emit_32(3274432512); -emit_32(1097698640); -emit_32(1129252848); -emit_32(3274176528); -emit_32(1096544577); -emit_32(1129252848); -emit_32(3273920545); -emit_32(1095417568); -emit_32(1129252848); -emit_32(3273664496); -emit_32(1093038558); -emit_32(1129252848); -emit_32(3273408512); -emit_32(1092208883); -emit_32(1129252848); -emit_32(3273152528); -emit_32(1091657217); -emit_32(1129252848); -emit_32(3272896545); -emit_32(1088339847); -emit_32(1129252848); -emit_32(3272640496); -emit_32(1087749541); -emit_32(1129252848); -emit_32(3272384512); -emit_32(1086492760); -emit_32(1129252848); -emit_32(3272128528); -emit_32(1084289744); -emit_32(1129252848); -emit_32(3271872545); -emit_32(1084101671); -emit_32(1129252848); -emit_32(3271616496); -emit_32(1084133212); -emit_32(1129252848); -emit_32(3271163904); -emit_32(1084719282); -emit_32(1129252848); -emit_32(3270651937); -emit_32(1088718929); -emit_32(1129252848); -emit_32(3270139970); -emit_32(1091794685); -emit_32(1129252848); -emit_32(3269627871); -emit_32(1093539149); -emit_32(1129252848); -emit_32(3269115904); -emit_32(1093719084); -emit_32(1129252848); -emit_32(3268603937); -emit_32(1094263190); -emit_32(1129252848); -emit_32(3268091970); -emit_32(1095010510); -emit_32(1129252848); -emit_32(3267579911); -emit_32(1095499566); -emit_32(1129252848); -emit_32(3267067904); -emit_32(1095406243); -emit_32(1129252848); -emit_32(3266555911); -emit_32(1095095969); -emit_32(1129252848); -emit_32(3266043904); -emit_32(1095937871); -emit_32(1129252848); -emit_32(3265531911); -emit_32(1096329200); -emit_32(1129252848); -emit_32(3265019904); -emit_32(1097172045); -emit_32(1129252848); -emit_32(3264507911); -emit_32(1098488847); -emit_32(1129252848); -emit_32(3263995904); -emit_32(1099439328); -emit_32(1129252848); -emit_32(3263483911); -emit_32(1099647261); -emit_32(1129252848); -emit_32(3262775296); -emit_32(1099958583); -emit_32(1129252848); -emit_32(3261751309); -emit_32(1099777022); -emit_32(1129252848); -emit_32(3260727296); -emit_32(1099447507); -emit_32(1129252848); -emit_32(3259703309); -emit_32(1099254674); -emit_32(1129252848); -emit_32(3258679296); -emit_32(1099498363); -emit_32(1129252848); -emit_32(3257655309); -emit_32(1099988625); -emit_32(1129252848); -emit_32(3256631296); -emit_32(1100359821); -emit_32(1129252848); -emit_32(3255607309); -emit_32(1100639581); -emit_32(1129252848); -emit_32(3254386688); -emit_32(1100562616); -emit_32(1129252848); -emit_32(3252338714); -emit_32(1100538551); -emit_32(1129252848); -emit_32(3250290688); -emit_32(1099604846); -emit_32(1129252848); -emit_32(3248242714); -emit_32(1098614466); -emit_32(1129252848); -emit_32(3245998080); -emit_32(1097631216); -emit_32(1129252848); -emit_32(3241902132); -emit_32(1097023042); -emit_32(1129252848); -emit_32(3237609472); -emit_32(1096365690); -emit_32(1129252848); -emit_32(3229220864); -emit_32(1095964819); -emit_32(1129252848); -emit_32(0); -emit_32(1094558784); -emit_32(1129252848); -emit_32(1081737216); -emit_32(1093092141); -emit_32(1129252848); -emit_32(3279552512); -emit_32(1081540755); -emit_32(1128996864); -emit_32(3279296528); -emit_32(1081307971); -emit_32(1128996864); -emit_32(3279040545); -emit_32(1088074180); -emit_32(1128996864); -emit_32(3278784496); -emit_32(1092649012); -emit_32(1128996864); -emit_32(3278528512); -emit_32(1095750805); -emit_32(1128996864); -emit_32(3278272528); -emit_32(1098025586); -emit_32(1128996864); -emit_32(3278016545); -emit_32(1098512754); -emit_32(1128996864); -emit_32(3277760496); -emit_32(1097976513); -emit_32(1128996864); -emit_32(3277504512); -emit_32(1097395287); -emit_32(1128996864); -emit_32(3277248528); -emit_32(1096884211); -emit_32(1128996864); -emit_32(3276992545); -emit_32(1096131333); -emit_32(1128996864); -emit_32(3276736496); -emit_32(1094845884); -emit_32(1128996864); -emit_32(3276480512); -emit_32(1093703565); -emit_32(1128996864); -emit_32(3276224528); -emit_32(1092970506); -emit_32(1128996864); -emit_32(3275968545); -emit_32(1093979341); -emit_32(1128996864); -emit_32(3275712496); -emit_32(1093333942); -emit_32(1128996864); -emit_32(3275456512); -emit_32(1094401183); -emit_32(1128996864); -emit_32(3275200528); -emit_32(1095977612); -emit_32(1128996864); -emit_32(3274944545); -emit_32(1096785330); -emit_32(1128996864); -emit_32(3274688496); -emit_32(1097852781); -emit_32(1128996864); -emit_32(3274432512); -emit_32(1097488400); -emit_32(1128996864); -emit_32(3274176528); -emit_32(1096273520); -emit_32(1128996864); -emit_32(3273920545); -emit_32(1094778041); -emit_32(1128996864); -emit_32(3273664496); -emit_32(1093292943); -emit_32(1128996864); -emit_32(3273408512); -emit_32(1092898574); -emit_32(1128996864); -emit_32(3273152528); -emit_32(1090867996); -emit_32(1128996864); -emit_32(3272896545); -emit_32(1089691860); -emit_32(1128996864); -emit_32(3272640496); -emit_32(1086739427); -emit_32(1128996864); -emit_32(3272384512); -emit_32(1085853087); -emit_32(1128996864); -emit_32(3272128528); -emit_32(1084833724); -emit_32(1128996864); -emit_32(3271872545); -emit_32(1084451895); -emit_32(1128996864); -emit_32(3271616496); -emit_32(1085526644); -emit_32(1128996864); -emit_32(3271163904); -emit_32(1089112459); -emit_32(1128996864); -emit_32(3270651937); -emit_32(1091663645); -emit_32(1128996864); -emit_32(3270139970); -emit_32(1093345162); -emit_32(1128996864); -emit_32(3269627871); -emit_32(1094246728); -emit_32(1128996864); -emit_32(3269115904); -emit_32(1095325398); -emit_32(1128996864); -emit_32(3268603937); -emit_32(1096227907); -emit_32(1128996864); -emit_32(3268091970); -emit_32(1097145097); -emit_32(1128996864); -emit_32(3267579911); -emit_32(1097392036); -emit_32(1128996864); -emit_32(3267067904); -emit_32(1096728288); -emit_32(1128996864); -emit_32(3266555911); -emit_32(1095835320); -emit_32(1128996864); -emit_32(3266043904); -emit_32(1095814034); -emit_32(1128996864); -emit_32(3265531911); -emit_32(1096693475); -emit_32(1128996864); -emit_32(3265019904); -emit_32(1097025244); -emit_32(1128996864); -emit_32(3264507911); -emit_32(1099054920); -emit_32(1128996864); -emit_32(3263995904); -emit_32(1099511523); -emit_32(1128996864); -emit_32(3263483911); -emit_32(1100212234); -emit_32(1128996864); -emit_32(3262775296); -emit_32(1100597481); -emit_32(1128996864); -emit_32(3261751309); -emit_32(1100490945); -emit_32(1128996864); -emit_32(3260727296); -emit_32(1100197711); -emit_32(1128996864); -emit_32(3259703309); -emit_32(1099593207); -emit_32(1128996864); -emit_32(3258679296); -emit_32(1099432565); -emit_32(1128996864); -emit_32(3257655309); -emit_32(1100182245); -emit_32(1128996864); -emit_32(3256631296); -emit_32(1100992112); -emit_32(1128996864); -emit_32(3255607309); -emit_32(1101070441); -emit_32(1128996864); -emit_32(3254386688); -emit_32(1101070860); -emit_32(1128996864); -emit_32(3252338714); -emit_32(1100442554); -emit_32(1128996864); -emit_32(3250290688); -emit_32(1100162689); -emit_32(1128996864); -emit_32(3248242714); -emit_32(1099264741); -emit_32(1128996864); -emit_32(3245998080); -emit_32(1098634809); -emit_32(1128996864); -emit_32(3241902132); -emit_32(1097542192); -emit_32(1128996864); -emit_32(3237609472); -emit_32(1097603953); -emit_32(1128996864); -emit_32(3229220864); -emit_32(1097205809); -emit_32(1128996864); -emit_32(0); -emit_32(1095764961); -emit_32(1128996864); -emit_32(1081737216); -emit_32(1094158228); -emit_32(1128996864); -emit_32(3279552512); -emit_32(1083563940); -emit_32(1128740880); -emit_32(3279296528); -emit_32(1083505514); -emit_32(1128740880); -emit_32(3279040545); -emit_32(1087057166); -emit_32(1128740880); -emit_32(3278784496); -emit_32(1091606046); -emit_32(1128740880); -emit_32(3278528512); -emit_32(1094145750); -emit_32(1128740880); -emit_32(3278272528); -emit_32(1096803366); -emit_32(1128740880); -emit_32(3278016545); -emit_32(1097677459); -emit_32(1128740880); -emit_32(3277760496); -emit_32(1096868377); -emit_32(1128740880); -emit_32(3277504512); -emit_32(1097277637); -emit_32(1128740880); -emit_32(3277248528); -emit_32(1097130626); -emit_32(1128740880); -emit_32(3276992545); -emit_32(1095319526); -emit_32(1128740880); -emit_32(3276736496); -emit_32(1094270635); -emit_32(1128740880); -emit_32(3276480512); -emit_32(1092528657); -emit_32(1128740880); -emit_32(3276224528); -emit_32(1091786055); -emit_32(1128740880); -emit_32(3275968545); -emit_32(1092729228); -emit_32(1128740880); -emit_32(3275712496); -emit_32(1093207379); -emit_32(1128740880); -emit_32(3275456512); -emit_32(1094361966); -emit_32(1128740880); -emit_32(3275200528); -emit_32(1096155975); -emit_32(1128740880); -emit_32(3274944545); -emit_32(1098072457); -emit_32(1128740880); -emit_32(3274688496); -emit_32(1097534957); -emit_32(1128740880); -emit_32(3274432512); -emit_32(1096843212); -emit_32(1128740880); -emit_32(3274176528); -emit_32(1095427215); -emit_32(1128740880); -emit_32(3273920545); -emit_32(1095393870); -emit_32(1128740880); -emit_32(3273664496); -emit_32(1094328831); -emit_32(1128740880); -emit_32(3273408512); -emit_32(1093549005); -emit_32(1128740880); -emit_32(3273152528); -emit_32(1091282907); -emit_32(1128740880); -emit_32(3272896545); -emit_32(1089591113); -emit_32(1128740880); -emit_32(3272640496); -emit_32(1087793476); -emit_32(1128740880); -emit_32(3272384512); -emit_32(1084819170); -emit_32(1128740880); -emit_32(3272128528); -emit_32(1085220523); -emit_32(1128740880); -emit_32(3271872545); -emit_32(1088960395); -emit_32(1128740880); -emit_32(3271616496); -emit_32(1091632869); -emit_32(1128740880); -emit_32(3271163904); -emit_32(1092528154); -emit_32(1128740880); -emit_32(3270651937); -emit_32(1093541036); -emit_32(1128740880); -emit_32(3270139970); -emit_32(1094536554); -emit_32(1128740880); -emit_32(3269627871); -emit_32(1095733504); -emit_32(1128740880); -emit_32(3269115904); -emit_32(1096930453); -emit_32(1128740880); -emit_32(3268603937); -emit_32(1097898289); -emit_32(1128740880); -emit_32(3268091970); -emit_32(1098312162); -emit_32(1128740880); -emit_32(3267579911); -emit_32(1098889088); -emit_32(1128740880); -emit_32(3267067904); -emit_32(1098348023); -emit_32(1128740880); -emit_32(3266555911); -emit_32(1097239783); -emit_32(1128740880); -emit_32(3266043904); -emit_32(1096978163); -emit_32(1128740880); -emit_32(3265531911); -emit_32(1097254987); -emit_32(1128740880); -emit_32(3265019904); -emit_32(1097619682); -emit_32(1128740880); -emit_32(3264507911); -emit_32(1098276300); -emit_32(1128740880); -emit_32(3263995904); -emit_32(1099118097); -emit_32(1128740880); -emit_32(3263483911); -emit_32(1099929276); -emit_32(1128740880); -emit_32(3262775296); -emit_32(1100678011); -emit_32(1128740880); -emit_32(3261751309); -emit_32(1100864396); -emit_32(1128740880); -emit_32(3260727296); -emit_32(1100514486); -emit_32(1128740880); -emit_32(3259703309); -emit_32(1100086300); -emit_32(1128740880); -emit_32(3258679296); -emit_32(1099510946); -emit_32(1128740880); -emit_32(3257655309); -emit_32(1100286840); -emit_32(1128740880); -emit_32(3256631296); -emit_32(1100610850); -emit_32(1128740880); -emit_32(3255607309); -emit_32(1101170370); -emit_32(1128740880); -emit_32(3254386688); -emit_32(1100818206); -emit_32(1128740880); -emit_32(3252338714); -emit_32(1100338640); -emit_32(1128740880); -emit_32(3250290688); -emit_32(1099906469); -emit_32(1128740880); -emit_32(3248242714); -emit_32(1099577688); -emit_32(1128740880); -emit_32(3245998080); -emit_32(1099007892); -emit_32(1128740880); -emit_32(3241902132); -emit_32(1098245472); -emit_32(1128740880); -emit_32(3237609472); -emit_32(1097688783); -emit_32(1128740880); -emit_32(3229220864); -emit_32(1096704380); -emit_32(1128740880); -emit_32(0); -emit_32(1095305265); -emit_32(1128740880); -emit_32(1081737216); -emit_32(1094837495); -emit_32(1128740880); -emit_32(3279552512); -emit_32(1085717569); -emit_32(1128484897); -emit_32(3279296528); -emit_32(1083562745); -emit_32(1128484897); -emit_32(3279040545); -emit_32(1084856981); -emit_32(1128484897); -emit_32(3278784496); -emit_32(1089938108); -emit_32(1128484897); -emit_32(3278528512); -emit_32(1093643482); -emit_32(1128484897); -emit_32(3278272528); -emit_32(1095378456); -emit_32(1128484897); -emit_32(3278016545); -emit_32(1096701654); -emit_32(1128484897); -emit_32(3277760496); -emit_32(1095991453); -emit_32(1128484897); -emit_32(3277504512); -emit_32(1096837130); -emit_32(1128484897); -emit_32(3277248528); -emit_32(1097429470); -emit_32(1128484897); -emit_32(3276992545); -emit_32(1095425747); -emit_32(1128484897); -emit_32(3276736496); -emit_32(1092456704); -emit_32(1128484897); -emit_32(3276480512); -emit_32(1090579469); -emit_32(1128484897); -emit_32(3276224528); -emit_32(1089853278); -emit_32(1128484897); -emit_32(3275968545); -emit_32(1091601590); -emit_32(1128484897); -emit_32(3275712496); -emit_32(1093452222); -emit_32(1128484897); -emit_32(3275456512); -emit_32(1094872308); -emit_32(1128484897); -emit_32(3275200528); -emit_32(1095959891); -emit_32(1128484897); -emit_32(3274944545); -emit_32(1097078827); -emit_32(1128484897); -emit_32(3274688496); -emit_32(1096858206); -emit_32(1128484897); -emit_32(3274432512); -emit_32(1096053948); -emit_32(1128484897); -emit_32(3274176528); -emit_32(1095523264); -emit_32(1128484897); -emit_32(3273920545); -emit_32(1095300547); -emit_32(1128484897); -emit_32(3273664496); -emit_32(1094152041); -emit_32(1128484897); -emit_32(3273408512); -emit_32(1093293887); -emit_32(1128484897); -emit_32(3273152528); -emit_32(1091954824); -emit_32(1128484897); -emit_32(3272896545); -emit_32(1090264488); -emit_32(1128484897); -emit_32(3272640496); -emit_32(1087964038); -emit_32(1128484897); -emit_32(3272384512); -emit_32(1084913101); -emit_32(1128484897); -emit_32(3272128528); -emit_32(1087644432); -emit_32(1128484897); -emit_32(3271872545); -emit_32(1091545292); -emit_32(1128484897); -emit_32(3271616496); -emit_32(1092949010); -emit_32(1128484897); -emit_32(3271163904); -emit_32(1093888744); -emit_32(1128484897); -emit_32(3270651937); -emit_32(1095009252); -emit_32(1128484897); -emit_32(3270139970); -emit_32(1096532728); -emit_32(1128484897); -emit_32(3269627871); -emit_32(1096831048); -emit_32(1128484897); -emit_32(3269115904); -emit_32(1098431280); -emit_32(1128484897); -emit_32(3268603937); -emit_32(1098981153); -emit_32(1128484897); -emit_32(3268091970); -emit_32(1099259917); -emit_32(1128484897); -emit_32(3267579911); -emit_32(1099047004); -emit_32(1128484897); -emit_32(3267067904); -emit_32(1099189663); -emit_32(1128484897); -emit_32(3266555911); -emit_32(1097994233); -emit_32(1128484897); -emit_32(3266043904); -emit_32(1097616536); -emit_32(1128484897); -emit_32(3265531911); -emit_32(1098345402); -emit_32(1128484897); -emit_32(3265019904); -emit_32(1098214644); -emit_32(1128484897); -emit_32(3264507911); -emit_32(1097712481); -emit_32(1128484897); -emit_32(3263995904); -emit_32(1099049258); -emit_32(1128484897); -emit_32(3263483911); -emit_32(1099930586); -emit_32(1128484897); -emit_32(3262775296); -emit_32(1100537135); -emit_32(1128484897); -emit_32(3261751309); -emit_32(1100755920); -emit_32(1128484897); -emit_32(3260727296); -emit_32(1100566915); -emit_32(1128484897); -emit_32(3259703309); -emit_32(1099988940); -emit_32(1128484897); -emit_32(3258679296); -emit_32(1099547332); -emit_32(1128484897); -emit_32(3257655309); -emit_32(1100698878); -emit_32(1128484897); -emit_32(3256631296); -emit_32(1101203033); -emit_32(1128484897); -emit_32(3255607309); -emit_32(1100897845); -emit_32(1128484897); -emit_32(3254386688); -emit_32(1100472176); -emit_32(1128484897); -emit_32(3252338714); -emit_32(1100121008); -emit_32(1128484897); -emit_32(3250290688); -emit_32(1100059666); -emit_32(1128484897); -emit_32(3248242714); -emit_32(1099700424); -emit_32(1128484897); -emit_32(3245998080); -emit_32(1099220596); -emit_32(1128484897); -emit_32(3241902132); -emit_32(1098230163); -emit_32(1128484897); -emit_32(3237609472); -emit_32(1097298503); -emit_32(1128484897); -emit_32(3229220864); -emit_32(1096617663); -emit_32(1128484897); -emit_32(0); -emit_32(1095209006); -emit_32(1128484897); -emit_32(1081737216); -emit_32(1096602144); -emit_32(1128484897); -emit_32(3279552512); -emit_32(1086488964); -emit_32(1128228848); -emit_32(3279296528); -emit_32(1085207394); -emit_32(1128228848); -emit_32(3279040545); -emit_32(1083144426); -emit_32(1128228848); -emit_32(3278784496); -emit_32(1087877279); -emit_32(1128228848); -emit_32(3278528512); -emit_32(1092360979); -emit_32(1128228848); -emit_32(3278272528); -emit_32(1094229112); -emit_32(1128228848); -emit_32(3278016545); -emit_32(1095715678); -emit_32(1128228848); -emit_32(3277760496); -emit_32(1095363042); -emit_32(1128228848); -emit_32(3277504512); -emit_32(1095186881); -emit_32(1128228848); -emit_32(3277248528); -emit_32(1096363593); -emit_32(1128228848); -emit_32(3276992545); -emit_32(1094958082); -emit_32(1128228848); -emit_32(3276736496); -emit_32(1091948081); -emit_32(1128228848); -emit_32(3276480512); -emit_32(1089598789); -emit_32(1128228848); -emit_32(3276224528); -emit_32(1090830991); -emit_32(1128228848); -emit_32(3275968545); -emit_32(1092661490); -emit_32(1128228848); -emit_32(3275712496); -emit_32(1094218416); -emit_32(1128228848); -emit_32(3275456512); -emit_32(1095692504); -emit_32(1128228848); -emit_32(3275200528); -emit_32(1096747267); -emit_32(1128228848); -emit_32(3274944545); -emit_32(1096959708); -emit_32(1128228848); -emit_32(3274688496); -emit_32(1096562717); -emit_32(1128228848); -emit_32(3274432512); -emit_32(1095550422); -emit_32(1128228848); -emit_32(3274176528); -emit_32(1095356331); -emit_32(1128228848); -emit_32(3273920545); -emit_32(1094786744); -emit_32(1128228848); -emit_32(3273664496); -emit_32(1094402651); -emit_32(1128228848); -emit_32(3273408512); -emit_32(1093003326); -emit_32(1128228848); -emit_32(3273152528); -emit_32(1091879924); -emit_32(1128228848); -emit_32(3272896545); -emit_32(1090340950); -emit_32(1128228848); -emit_32(3272640496); -emit_32(1088120653); -emit_32(1128228848); -emit_32(3272384512); -emit_32(1090582175); -emit_32(1128228848); -emit_32(3272128528); -emit_32(1091421633); -emit_32(1128228848); -emit_32(3271872545); -emit_32(1093724013); -emit_32(1128228848); -emit_32(3271616496); -emit_32(1095136025); -emit_32(1128228848); -emit_32(3271163904); -emit_32(1096213647); -emit_32(1128228848); -emit_32(3270651937); -emit_32(1096677537); -emit_32(1128228848); -emit_32(3270139970); -emit_32(1097917268); -emit_32(1128228848); -emit_32(3269627871); -emit_32(1098919130); -emit_32(1128228848); -emit_32(3269115904); -emit_32(1099360947); -emit_32(1128228848); -emit_32(3268603937); -emit_32(1099387686); -emit_32(1128228848); -emit_32(3268091970); -emit_32(1099422027); -emit_32(1128228848); -emit_32(3267579911); -emit_32(1099524892); -emit_32(1128228848); -emit_32(3267067904); -emit_32(1099391723); -emit_32(1128228848); -emit_32(3266555911); -emit_32(1098232680); -emit_32(1128228848); -emit_32(3266043904); -emit_32(1097328073); -emit_32(1128228848); -emit_32(3265531911); -emit_32(1098499542); -emit_32(1128228848); -emit_32(3265019904); -emit_32(1098867278); -emit_32(1128228848); -emit_32(3264507911); -emit_32(1097477915); -emit_32(1128228848); -emit_32(3263995904); -emit_32(1098419431); -emit_32(1128228848); -emit_32(3263483911); -emit_32(1099657118); -emit_32(1128228848); -emit_32(3262775296); -emit_32(1100094951); -emit_32(1128228848); -emit_32(3261751309); -emit_32(1100491260); -emit_32(1128228848); -emit_32(3260727296); -emit_32(1100506884); -emit_32(1128228848); -emit_32(3259703309); -emit_32(1099794324); -emit_32(1128228848); -emit_32(3258679296); -emit_32(1099789291); -emit_32(1128228848); -emit_32(3257655309); -emit_32(1100379115); -emit_32(1128228848); -emit_32(3256631296); -emit_32(1100923221); -emit_32(1128228848); -emit_32(3255607309); -emit_32(1100371932); -emit_32(1128228848); -emit_32(3254386688); -emit_32(1100316148); -emit_32(1128228848); -emit_32(3252338714); -emit_32(1100515692); -emit_32(1128228848); -emit_32(3250290688); -emit_32(1100307916); -emit_32(1128228848); -emit_32(3248242714); -emit_32(1099810210); -emit_32(1128228848); -emit_32(3245998080); -emit_32(1099154640); -emit_32(1128228848); -emit_32(3241902132); -emit_32(1098355573); -emit_32(1128228848); -emit_32(3237609472); -emit_32(1097472777); -emit_32(1128228848); -emit_32(3229220864); -emit_32(1096682465); -emit_32(1128228848); -emit_32(0); -emit_32(1096577398); -emit_32(1128228848); -emit_32(1081737216); -emit_32(1097223216); -emit_32(1128228848); -emit_32(3279552512); -emit_32(1086853617); -emit_32(1127972864); -emit_32(3279296528); -emit_32(1086298564); -emit_32(1127972864); -emit_32(3279040545); -emit_32(1085278425); -emit_32(1127972864); -emit_32(3278784496); -emit_32(1085319131); -emit_32(1127972864); -emit_32(3278528512); -emit_32(1090251360); -emit_32(1127972864); -emit_32(3278272528); -emit_32(1092641777); -emit_32(1127972864); -emit_32(3278016545); -emit_32(1093620623); -emit_32(1127972864); -emit_32(3277760496); -emit_32(1094102653); -emit_32(1127972864); -emit_32(3277504512); -emit_32(1093830758); -emit_32(1127972864); -emit_32(3277248528); -emit_32(1094796916); -emit_32(1127972864); -emit_32(3276992545); -emit_32(1093478751); -emit_32(1127972864); -emit_32(3276736496); -emit_32(1091477050); -emit_32(1127972864); -emit_32(3276480512); -emit_32(1089930831); -emit_32(1127972864); -emit_32(3276224528); -emit_32(1091537375); -emit_32(1127972864); -emit_32(3275968545); -emit_32(1093540302); -emit_32(1127972864); -emit_32(3275712496); -emit_32(1095329278); -emit_32(1127972864); -emit_32(3275456512); -emit_32(1096120323); -emit_32(1127972864); -emit_32(3275200528); -emit_32(1096433743); -emit_32(1127972864); -emit_32(3274944545); -emit_32(1096683304); -emit_32(1127972864); -emit_32(3274688496); -emit_32(1096592182); -emit_32(1127972864); -emit_32(3274432512); -emit_32(1095725220); -emit_32(1127972864); -emit_32(3274176528); -emit_32(1094999815); -emit_32(1127972864); -emit_32(3273920545); -emit_32(1094300520); -emit_32(1127972864); -emit_32(3273664496); -emit_32(1093576583); -emit_32(1127972864); -emit_32(3273408512); -emit_32(1092872779); -emit_32(1127972864); -emit_32(3273152528); -emit_32(1091911098); -emit_32(1127972864); -emit_32(3272896545); -emit_32(1091753434); -emit_32(1127972864); -emit_32(3272640496); -emit_32(1092133438); -emit_32(1127972864); -emit_32(3272384512); -emit_32(1093071169); -emit_32(1127972864); -emit_32(3272128528); -emit_32(1094518728); -emit_32(1127972864); -emit_32(3271872545); -emit_32(1096084986); -emit_32(1127972864); -emit_32(3271616496); -emit_32(1096360657); -emit_32(1127972864); -emit_32(3271163904); -emit_32(1096731014); -emit_32(1127972864); -emit_32(3270651937); -emit_32(1098285738); -emit_32(1127972864); -emit_32(3270139970); -emit_32(1099415631); -emit_32(1127972864); -emit_32(3269627871); -emit_32(1099949408); -emit_32(1127972864); -emit_32(3269115904); -emit_32(1100367161); -emit_32(1127972864); -emit_32(3268603937); -emit_32(1100361866); -emit_32(1127972864); -emit_32(3268091970); -emit_32(1100305714); -emit_32(1127972864); -emit_32(3267579911); -emit_32(1100208354); -emit_32(1127972864); -emit_32(3267067904); -emit_32(1100142975); -emit_32(1127972864); -emit_32(3266555911); -emit_32(1099102421); -emit_32(1127972864); -emit_32(3266043904); -emit_32(1097385430); -emit_32(1127972864); -emit_32(3265531911); -emit_32(1097822162); -emit_32(1127972864); -emit_32(3265019904); -emit_32(1098963275); -emit_32(1127972864); -emit_32(3264507911); -emit_32(1097304900); -emit_32(1127972864); -emit_32(3263995904); -emit_32(1097683121); -emit_32(1127972864); -emit_32(3263483911); -emit_32(1099069810); -emit_32(1127972864); -emit_32(3262775296); -emit_32(1099605213); -emit_32(1127972864); -emit_32(3261751309); -emit_32(1100129868); -emit_32(1127972864); -emit_32(3260727296); -emit_32(1100106433); -emit_32(1127972864); -emit_32(3259703309); -emit_32(1099661207); -emit_32(1127972864); -emit_32(3258679296); -emit_32(1099945896); -emit_32(1127972864); -emit_32(3257655309); -emit_32(1100312216); -emit_32(1127972864); -emit_32(3256631296); -emit_32(1100604401); -emit_32(1127972864); -emit_32(3255607309); -emit_32(1101000920); -emit_32(1127972864); -emit_32(3254386688); -emit_32(1100943301); -emit_32(1127972864); -emit_32(3252338714); -emit_32(1100628886); -emit_32(1127972864); -emit_32(3250290688); -emit_32(1100484759); -emit_32(1127972864); -emit_32(3248242714); -emit_32(1099700843); -emit_32(1127972864); -emit_32(3245998080); -emit_32(1099261752); -emit_32(1127972864); -emit_32(3241902132); -emit_32(1098560045); -emit_32(1127972864); -emit_32(3237609472); -emit_32(1097453588); -emit_32(1127972864); -emit_32(3229220864); -emit_32(1096754712); -emit_32(1127972864); -emit_32(0); -emit_32(1097041812); -emit_32(1127972864); -emit_32(1081737216); -emit_32(1096992739); -emit_32(1127972864); -emit_32(3279552512); -emit_32(1088632086); -emit_32(1127716880); -emit_32(3279296528); -emit_32(1087150511); -emit_32(1127716880); -emit_32(3279040545); -emit_32(1085863719); -emit_32(1127716880); -emit_32(3278784496); -emit_32(1084379313); -emit_32(1127716880); -emit_32(3278528512); -emit_32(1086294621); -emit_32(1127716880); -emit_32(3278272528); -emit_32(1089793845); -emit_32(1127716880); -emit_32(3278016545); -emit_32(1091311124); -emit_32(1127716880); -emit_32(3277760496); -emit_32(1092520195); -emit_32(1127716880); -emit_32(3277504512); -emit_32(1092832933); -emit_32(1127716880); -emit_32(3277248528); -emit_32(1092827899); -emit_32(1127716880); -emit_32(3276992545); -emit_32(1091811620); -emit_32(1127716880); -emit_32(3276736496); -emit_32(1089828825); -emit_32(1127716880); -emit_32(3276480512); -emit_32(1090682052); -emit_32(1127716880); -emit_32(3276224528); -emit_32(1092010839); -emit_32(1127716880); -emit_32(3275968545); -emit_32(1093459876); -emit_32(1127716880); -emit_32(3275712496); -emit_32(1096080897); -emit_32(1127716880); -emit_32(3275456512); -emit_32(1096807455); -emit_32(1127716880); -emit_32(3275200528); -emit_32(1096413086); -emit_32(1127716880); -emit_32(3274944545); -emit_32(1096350381); -emit_32(1127716880); -emit_32(3274688496); -emit_32(1096323642); -emit_32(1127716880); -emit_32(3274432512); -emit_32(1095633784); -emit_32(1127716880); -emit_32(3274176528); -emit_32(1094753714); -emit_32(1127716880); -emit_32(3273920545); -emit_32(1094125198); -emit_32(1127716880); -emit_32(3273664496); -emit_32(1093062361); -emit_32(1127716880); -emit_32(3273408512); -emit_32(1093213041); -emit_32(1127716880); -emit_32(3273152528); -emit_32(1093187876); -emit_32(1127716880); -emit_32(3272896545); -emit_32(1094195347); -emit_32(1127716880); -emit_32(3272640496); -emit_32(1094880172); -emit_32(1127716880); -emit_32(3272384512); -emit_32(1095364719); -emit_32(1127716880); -emit_32(3272128528); -emit_32(1096288829); -emit_32(1127716880); -emit_32(3271872545); -emit_32(1097163132); -emit_32(1127716880); -emit_32(3271616496); -emit_32(1097356385); -emit_32(1127716880); -emit_32(3271163904); -emit_32(1098373084); -emit_32(1127716880); -emit_32(3270651937); -emit_32(1099643172); -emit_32(1127716880); -emit_32(3270139970); -emit_32(1099931949); -emit_32(1127716880); -emit_32(3269627871); -emit_32(1100246260); -emit_32(1127716880); -emit_32(3269115904); -emit_32(1100634600); -emit_32(1127716880); -emit_32(3268603937); -emit_32(1100611741); -emit_32(1127716880); -emit_32(3268091970); -emit_32(1100940417); -emit_32(1127716880); -emit_32(3267579911); -emit_32(1100834564); -emit_32(1127716880); -emit_32(3267067904); -emit_32(1100309804); -emit_32(1127716880); -emit_32(3266555911); -emit_32(1099846386); -emit_32(1127716880); -emit_32(3266043904); -emit_32(1098992216); -emit_32(1127716880); -emit_32(3265531911); -emit_32(1098681051); -emit_32(1127716880); -emit_32(3265019904); -emit_32(1098547986); -emit_32(1127716880); -emit_32(3264507911); -emit_32(1097247857); -emit_32(1127716880); -emit_32(3263995904); -emit_32(1097448345); -emit_32(1127716880); -emit_32(3263483911); -emit_32(1098445645); -emit_32(1127716880); -emit_32(3262775296); -emit_32(1098977798); -emit_32(1127716880); -emit_32(3261751309); -emit_32(1099491390); -emit_32(1127716880); -emit_32(3260727296); -emit_32(1099337145); -emit_32(1127716880); -emit_32(3259703309); -emit_32(1099792908); -emit_32(1127716880); -emit_32(3258679296); -emit_32(1100235722); -emit_32(1127716880); -emit_32(3257655309); -emit_32(1100866336); -emit_32(1127716880); -emit_32(3256631296); -emit_32(1101422448); -emit_32(1127716880); -emit_32(3255607309); -emit_32(1101221855); -emit_32(1127716880); -emit_32(3254386688); -emit_32(1101088005); -emit_32(1127716880); -emit_32(3252338714); -emit_32(1100972556); -emit_32(1127716880); -emit_32(3250290688); -emit_32(1100202325); -emit_32(1127716880); -emit_32(3248242714); -emit_32(1099418409); -emit_32(1127716880); -emit_32(3245998080); -emit_32(1098944243); -emit_32(1127716880); -emit_32(3241902132); -emit_32(1098327366); -emit_32(1127716880); -emit_32(3237609472); -emit_32(1097923455); -emit_32(1127716880); -emit_32(3229220864); -emit_32(1098086089); -emit_32(1127716880); -emit_32(0); -emit_32(1097086481); -emit_32(1127716880); -emit_32(1081737216); -emit_32(1096797703); -emit_32(1127716880); -emit_32(3279552512); -emit_32(1090697067); -emit_32(1127460897); -emit_32(3279296528); -emit_32(1088464754); -emit_32(1127460897); -emit_32(3279040545); -emit_32(1087359387); -emit_32(1127460897); -emit_32(3278784496); -emit_32(1086695387); -emit_32(1127460897); -emit_32(3278528512); -emit_32(1083514070); -emit_32(1127460897); -emit_32(3278272528); -emit_32(1084835276); -emit_32(1127460897); -emit_32(3278016545); -emit_32(1088646514); -emit_32(1127460897); -emit_32(3277760496); -emit_32(1090551147); -emit_32(1127460897); -emit_32(3277504512); -emit_32(1091910700); -emit_32(1127460897); -emit_32(3277248528); -emit_32(1091808013); -emit_32(1127460897); -emit_32(3276992545); -emit_32(1091196294); -emit_32(1127460897); -emit_32(3276736496); -emit_32(1090026922); -emit_32(1127460897); -emit_32(3276480512); -emit_32(1090912801); -emit_32(1127460897); -emit_32(3276224528); -emit_32(1091162887); -emit_32(1127460897); -emit_32(3275968545); -emit_32(1093409649); -emit_32(1127460897); -emit_32(3275712496); -emit_32(1094918970); -emit_32(1127460897); -emit_32(3275456512); -emit_32(1096294177); -emit_32(1127460897); -emit_32(3275200528); -emit_32(1096363698); -emit_32(1127460897); -emit_32(3274944545); -emit_32(1096394421); -emit_32(1127460897); -emit_32(3274688496); -emit_32(1096326893); -emit_32(1127460897); -emit_32(3274432512); -emit_32(1095806484); -emit_32(1127460897); -emit_32(3274176528); -emit_32(1096379007); -emit_32(1127460897); -emit_32(3273920545); -emit_32(1096041470); -emit_32(1127460897); -emit_32(3273664496); -emit_32(1094485488); -emit_32(1127460897); -emit_32(3273408512); -emit_32(1095082128); -emit_32(1127460897); -emit_32(3273152528); -emit_32(1095898969); -emit_32(1127460897); -emit_32(3272896545); -emit_32(1096463208); -emit_32(1127460897); -emit_32(3272640496); -emit_32(1096556741); -emit_32(1127460897); -emit_32(3272384512); -emit_32(1096834613); -emit_32(1127460897); -emit_32(3272128528); -emit_32(1098017826); -emit_32(1127460897); -emit_32(3271872545); -emit_32(1098909745); -emit_32(1127460897); -emit_32(3271616496); -emit_32(1099379035); -emit_32(1127460897); -emit_32(3271163904); -emit_32(1099621519); -emit_32(1127460897); -emit_32(3270651937); -emit_32(1100273890); -emit_32(1127460897); -emit_32(3270139970); -emit_32(1100651587); -emit_32(1127460897); -emit_32(3269627871); -emit_32(1100583063); -emit_32(1127460897); -emit_32(3269115904); -emit_32(1100899471); -emit_32(1127460897); -emit_32(3268603937); -emit_32(1101366926); -emit_32(1127460897); -emit_32(3268091970); -emit_32(1101899183); -emit_32(1127460897); -emit_32(3267579911); -emit_32(1101822427); -emit_32(1127460897); -emit_32(3267067904); -emit_32(1101218290); -emit_32(1127460897); -emit_32(3266555911); -emit_32(1100574150); -emit_32(1127460897); -emit_32(3266043904); -emit_32(1100108005); -emit_32(1127460897); -emit_32(3265531911); -emit_32(1099514144); -emit_32(1127460897); -emit_32(3265019904); -emit_32(1098172701); -emit_32(1127460897); -emit_32(3264507911); -emit_32(1096910216); -emit_32(1127460897); -emit_32(3263995904); -emit_32(1097118253); -emit_32(1127460897); -emit_32(3263483911); -emit_32(1097919785); -emit_32(1127460897); -emit_32(3262775296); -emit_32(1098225759); -emit_32(1127460897); -emit_32(3261751309); -emit_32(1098294021); -emit_32(1127460897); -emit_32(3260727296); -emit_32(1099564476); -emit_32(1127460897); -emit_32(3259703309); -emit_32(1100155453); -emit_32(1127460897); -emit_32(3258679296); -emit_32(1100660343); -emit_32(1127460897); -emit_32(3257655309); -emit_32(1101117574); -emit_32(1127460897); -emit_32(3256631296); -emit_32(1101606787); -emit_32(1127460897); -emit_32(3255607309); -emit_32(1101430155); -emit_32(1127460897); -emit_32(3254386688); -emit_32(1100673712); -emit_32(1127460897); -emit_32(3252338714); -emit_32(1100216585); -emit_32(1127460897); -emit_32(3250290688); -emit_32(1099492858); -emit_32(1127460897); -emit_32(3248242714); -emit_32(1098998822); -emit_32(1127460897); -emit_32(3245998080); -emit_32(1097972423); -emit_32(1127460897); -emit_32(3241902132); -emit_32(1098463681); -emit_32(1127460897); -emit_32(3237609472); -emit_32(1099098961); -emit_32(1127460897); -emit_32(3229220864); -emit_32(1099075315); -emit_32(1127460897); -emit_32(0); -emit_32(1098576717); -emit_32(1127460897); -emit_32(1081737216); -emit_32(1097521955); -emit_32(1127460897); -emit_32(3279552512); -emit_32(1091907942); -emit_32(1127204848); -emit_32(3279296528); -emit_32(1090913000); -emit_32(1127204848); -emit_32(3279040545); -emit_32(1089627792); -emit_32(1127204848); -emit_32(3278784496); -emit_32(1088453282); -emit_32(1127204848); -emit_32(3278528512); -emit_32(1085638149); -emit_32(1127204848); -emit_32(3278272528); -emit_32(1082820290); -emit_32(1127204848); -emit_32(3278016545); -emit_32(1084647581); -emit_32(1127204848); -emit_32(3277760496); -emit_32(1086976132); -emit_32(1127204848); -emit_32(3277504512); -emit_32(1089606024); -emit_32(1127204848); -emit_32(3277248528); -emit_32(1090895206); -emit_32(1127204848); -emit_32(3276992545); -emit_32(1090776528); -emit_32(1127204848); -emit_32(3276736496); -emit_32(1089657215); -emit_32(1127204848); -emit_32(3276480512); -emit_32(1090767154); -emit_32(1127204848); -emit_32(3276224528); -emit_32(1091192603); -emit_32(1127204848); -emit_32(3275968545); -emit_32(1093123912); -emit_32(1127204848); -emit_32(3275712496); -emit_32(1094534667); -emit_32(1127204848); -emit_32(3275456512); -emit_32(1096318399); -emit_32(1127204848); -emit_32(3275200528); -emit_32(1097169319); -emit_32(1127204848); -emit_32(3274944545); -emit_32(1096886518); -emit_32(1127204848); -emit_32(3274688496); -emit_32(1097439642); -emit_32(1127204848); -emit_32(3274432512); -emit_32(1096797599); -emit_32(1127204848); -emit_32(3274176528); -emit_32(1096554224); -emit_32(1127204848); -emit_32(3273920545); -emit_32(1096240490); -emit_32(1127204848); -emit_32(3273664496); -emit_32(1096477363); -emit_32(1127204848); -emit_32(3273408512); -emit_32(1097087635); -emit_32(1127204848); -emit_32(3273152528); -emit_32(1097338349); -emit_32(1127204848); -emit_32(3272896545); -emit_32(1097759457); -emit_32(1127204848); -emit_32(3272640496); -emit_32(1097880778); -emit_32(1127204848); -emit_32(3272384512); -emit_32(1098146906); -emit_32(1127204848); -emit_32(3272128528); -emit_32(1099303643); -emit_32(1127204848); -emit_32(3271872545); -emit_32(1099944532); -emit_32(1127204848); -emit_32(3271616496); -emit_32(1100242905); -emit_32(1127204848); -emit_32(3271163904); -emit_32(1100588882); -emit_32(1127204848); -emit_32(3270651937); -emit_32(1100605502); -emit_32(1127204848); -emit_32(3270139970); -emit_32(1100742289); -emit_32(1127204848); -emit_32(3269627871); -emit_32(1101124128); -emit_32(1127204848); -emit_32(3269115904); -emit_32(1101735972); -emit_32(1127204848); -emit_32(3268603937); -emit_32(1102084728); -emit_32(1127204848); -emit_32(3268091970); -emit_32(1102719903); -emit_32(1127204848); -emit_32(3267579911); -emit_32(1102404177); -emit_32(1127204848); -emit_32(3267067904); -emit_32(1101692613); -emit_32(1127204848); -emit_32(3266555911); -emit_32(1101323724); -emit_32(1127204848); -emit_32(3266043904); -emit_32(1100739353); -emit_32(1127204848); -emit_32(3265531911); -emit_32(1100060977); -emit_32(1127204848); -emit_32(3265019904); -emit_32(1098668153); -emit_32(1127204848); -emit_32(3264507911); -emit_32(1097066139); -emit_32(1127204848); -emit_32(3263995904); -emit_32(1097240936); -emit_32(1127204848); -emit_32(3263483911); -emit_32(1098056099); -emit_32(1127204848); -emit_32(3262775296); -emit_32(1098692270); -emit_32(1127204848); -emit_32(3261751309); -emit_32(1099028339); -emit_32(1127204848); -emit_32(3260727296); -emit_32(1099487406); -emit_32(1127204848); -emit_32(3259703309); -emit_32(1100464154); -emit_32(1127204848); -emit_32(3258679296); -emit_32(1100643146); -emit_32(1127204848); -emit_32(3257655309); -emit_32(1100685089); -emit_32(1127204848); -emit_32(3256631296); -emit_32(1100823658); -emit_32(1127204848); -emit_32(3255607309); -emit_32(1100633027); -emit_32(1127204848); -emit_32(3254386688); -emit_32(1100238553); -emit_32(1127204848); -emit_32(3252338714); -emit_32(1099137706); -emit_32(1127204848); -emit_32(3250290688); -emit_32(1098443758); -emit_32(1127204848); -emit_32(3248242714); -emit_32(1098669202); -emit_32(1127204848); -emit_32(3245998080); -emit_32(1099104571); -emit_32(1127204848); -emit_32(3241902132); -emit_32(1099412328); -emit_32(1127204848); -emit_32(3237609472); -emit_32(1099546755); -emit_32(1127204848); -emit_32(3229220864); -emit_32(1099464966); -emit_32(1127204848); -emit_32(0); -emit_32(1099096864); -emit_32(1127204848); -emit_32(1081737216); -emit_32(1098169765); -emit_32(1127204848); -emit_32(3279552512); -emit_32(1092650690); -emit_32(1126948864); -emit_32(3279296528); -emit_32(1091119434); -emit_32(1126948864); -emit_32(3279040545); -emit_32(1090136415); -emit_32(1126948864); -emit_32(3278784496); -emit_32(1088411612); -emit_32(1126948864); -emit_32(3278528512); -emit_32(1085469077); -emit_32(1126948864); -emit_32(3278272528); -emit_32(1083833424); -emit_32(1126948864); -emit_32(3278016545); -emit_32(1083689035); -emit_32(1126948864); -emit_32(3277760496); -emit_32(1085122711); -emit_32(1126948864); -emit_32(3277504512); -emit_32(1086667243); -emit_32(1126948864); -emit_32(3277248528); -emit_32(1087657958); -emit_32(1126948864); -emit_32(3276992545); -emit_32(1088371095); -emit_32(1126948864); -emit_32(3276736496); -emit_32(1089466354); -emit_32(1126948864); -emit_32(3276480512); -emit_32(1091055439); -emit_32(1126948864); -emit_32(3276224528); -emit_32(1090400677); -emit_32(1126948864); -emit_32(3275968545); -emit_32(1092101142); -emit_32(1126948864); -emit_32(3275712496); -emit_32(1093636037); -emit_32(1126948864); -emit_32(3275456512); -emit_32(1095931999); -emit_32(1126948864); -emit_32(3275200528); -emit_32(1096626890); -emit_32(1126948864); -emit_32(3274944545); -emit_32(1098060923); -emit_32(1126948864); -emit_32(3274688496); -emit_32(1097783994); -emit_32(1126948864); -emit_32(3274432512); -emit_32(1096721367); -emit_32(1126948864); -emit_32(3274176528); -emit_32(1097047264); -emit_32(1126948864); -emit_32(3273920545); -emit_32(1096218051); -emit_32(1126948864); -emit_32(3273664496); -emit_32(1096743282); -emit_32(1126948864); -emit_32(3273408512); -emit_32(1097750335); -emit_32(1126948864); -emit_32(3273152528); -emit_32(1098166619); -emit_32(1126948864); -emit_32(3272896545); -emit_32(1097872074); -emit_32(1126948864); -emit_32(3272640496); -emit_32(1097941595); -emit_32(1126948864); -emit_32(3272384512); -emit_32(1098064383); -emit_32(1126948864); -emit_32(3272128528); -emit_32(1099511103); -emit_32(1126948864); -emit_32(3271872545); -emit_32(1100417545); -emit_32(1126948864); -emit_32(3271616496); -emit_32(1100756969); -emit_32(1126948864); -emit_32(3271163904); -emit_32(1100841956); -emit_32(1126948864); -emit_32(3270651937); -emit_32(1100819517); -emit_32(1126948864); -emit_32(3270139970); -emit_32(1101316280); -emit_32(1126948864); -emit_32(3269627871); -emit_32(1101803658); -emit_32(1126948864); -emit_32(3269115904); -emit_32(1102338327); -emit_32(1126948864); -emit_32(3268603937); -emit_32(1102614679); -emit_32(1126948864); -emit_32(3268091970); -emit_32(1102899577); -emit_32(1126948864); -emit_32(3267579911); -emit_32(1102273472); -emit_32(1126948864); -emit_32(3267067904); -emit_32(1102032300); -emit_32(1126948864); -emit_32(3266555911); -emit_32(1102213336); -emit_32(1126948864); -emit_32(3266043904); -emit_32(1101920154); -emit_32(1126948864); -emit_32(3265531911); -emit_32(1101073377); -emit_32(1126948864); -emit_32(3265019904); -emit_32(1099747453); -emit_32(1126948864); -emit_32(3264507911); -emit_32(1097970221); -emit_32(1126948864); -emit_32(3263995904); -emit_32(1098951583); -emit_32(1126948864); -emit_32(3263483911); -emit_32(1099125385); -emit_32(1126948864); -emit_32(3262775296); -emit_32(1099384383); -emit_32(1126948864); -emit_32(3261751309); -emit_32(1099297666); -emit_32(1126948864); -emit_32(3260727296); -emit_32(1099151914); -emit_32(1126948864); -emit_32(3259703309); -emit_32(1100003043); -emit_32(1126948864); -emit_32(3258679296); -emit_32(1100391278); -emit_32(1126948864); -emit_32(3257655309); -emit_32(1100196872); -emit_32(1126948864); -emit_32(3256631296); -emit_32(1100006189); -emit_32(1126948864); -emit_32(3255607309); -emit_32(1100085251); -emit_32(1126948864); -emit_32(3254386688); -emit_32(1099464704); -emit_32(1126948864); -emit_32(3252338714); -emit_32(1098192624); -emit_32(1126948864); -emit_32(3250290688); -emit_32(1098051695); -emit_32(1126948864); -emit_32(3248242714); -emit_32(1099538104); -emit_32(1126948864); -emit_32(3245998080); -emit_32(1100121060); -emit_32(1126948864); -emit_32(3241902132); -emit_32(1100174380); -emit_32(1126948864); -emit_32(3237609472); -emit_32(1100128138); -emit_32(1126948864); -emit_32(3229220864); -emit_32(1099728526); -emit_32(1126948864); -emit_32(0); -emit_32(1099015494); -emit_32(1126948864); -emit_32(1081737216); -emit_32(1098949119); -emit_32(1126948864); -emit_32(3279552512); -emit_32(1092053820); -emit_32(1126692880); -emit_32(3279296528); -emit_32(1091482168); -emit_32(1126692880); -emit_32(3279040545); -emit_32(1090170556); -emit_32(1126692880); -emit_32(3278784496); -emit_32(1089291577); -emit_32(1126692880); -emit_32(3278528512); -emit_32(1087031308); -emit_32(1126692880); -emit_32(3278272528); -emit_32(1085157335); -emit_32(1126692880); -emit_32(3278016545); -emit_32(1082956060); -emit_32(1126692880); -emit_32(3277760496); -emit_32(1079787745); -emit_32(1126692880); -emit_32(3277504512); -emit_32(1083066831); -emit_32(1126692880); -emit_32(3277248528); -emit_32(1084997260); -emit_32(1126692880); -emit_32(3276992545); -emit_32(1086936056); -emit_32(1126692880); -emit_32(3276736496); -emit_32(1087077194); -emit_32(1126692880); -emit_32(3276480512); -emit_32(1089181120); -emit_32(1126692880); -emit_32(3276224528); -emit_32(1090090592); -emit_32(1126692880); -emit_32(3275968545); -emit_32(1091979287); -emit_32(1126692880); -emit_32(3275712496); -emit_32(1093947779); -emit_32(1126692880); -emit_32(3275456512); -emit_32(1095104148); -emit_32(1126692880); -emit_32(3275200528); -emit_32(1097546806); -emit_32(1126692880); -emit_32(3274944545); -emit_32(1098312476); -emit_32(1126692880); -emit_32(3274688496); -emit_32(1098096050); -emit_32(1126692880); -emit_32(3274432512); -emit_32(1096460062); -emit_32(1126692880); -emit_32(3274176528); -emit_32(1096848350); -emit_32(1126692880); -emit_32(3273920545); -emit_32(1096377539); -emit_32(1126692880); -emit_32(3273664496); -emit_32(1097570714); -emit_32(1126692880); -emit_32(3273408512); -emit_32(1098430756); -emit_32(1126692880); -emit_32(3273152528); -emit_32(1099100848); -emit_32(1126692880); -emit_32(3272896545); -emit_32(1099443103); -emit_32(1126692880); -emit_32(3272640496); -emit_32(1099024459); -emit_32(1126692880); -emit_32(3272384512); -emit_32(1097976827); -emit_32(1126692880); -emit_32(3272128528); -emit_32(1099397281); -emit_32(1126692880); -emit_32(3271872545); -emit_32(1100167250); -emit_32(1126692880); -emit_32(3271616496); -emit_32(1101001916); -emit_32(1126692880); -emit_32(3271163904); -emit_32(1101218133); -emit_32(1126692880); -emit_32(3270651937); -emit_32(1101763445); -emit_32(1126692880); -emit_32(3270139970); -emit_32(1102254703); -emit_32(1126692880); -emit_32(3269627871); -emit_32(1102306188); -emit_32(1126692880); -emit_32(3269115904); -emit_32(1102526179); -emit_32(1126692880); -emit_32(3268603937); -emit_32(1102836453); -emit_32(1126692880); -emit_32(3268091970); -emit_32(1102582120); -emit_32(1126692880); -emit_32(3267579911); -emit_32(1102493673); -emit_32(1126692880); -emit_32(3267067904); -emit_32(1102731752); -emit_32(1126692880); -emit_32(3266555911); -emit_32(1102752566); -emit_32(1126692880); -emit_32(3266043904); -emit_32(1102414243); -emit_32(1126692880); -emit_32(3265531911); -emit_32(1101987945); -emit_32(1126692880); -emit_32(3265019904); -emit_32(1100347133); -emit_32(1126692880); -emit_32(3264507911); -emit_32(1099205706); -emit_32(1126692880); -emit_32(3263995904); -emit_32(1099525784); -emit_32(1126692880); -emit_32(3263483911); -emit_32(1100012533); -emit_32(1126692880); -emit_32(3262775296); -emit_32(1100473434); -emit_32(1126692880); -emit_32(3261751309); -emit_32(1099686268); -emit_32(1126692880); -emit_32(3260727296); -emit_32(1099578474); -emit_32(1126692880); -emit_32(3259703309); -emit_32(1099386952); -emit_32(1126692880); -emit_32(3258679296); -emit_32(1099512257); -emit_32(1126692880); -emit_32(3257655309); -emit_32(1099849269); -emit_32(1126692880); -emit_32(3256631296); -emit_32(1099792017); -emit_32(1126692880); -emit_32(3255607309); -emit_32(1099326974); -emit_32(1126692880); -emit_32(3254386688); -emit_32(1098936798); -emit_32(1126692880); -emit_32(3252338714); -emit_32(1097635096); -emit_32(1126692880); -emit_32(3250290688); -emit_32(1099347316); -emit_32(1126692880); -emit_32(3248242714); -emit_32(1099939237); -emit_32(1126692880); -emit_32(3245998080); -emit_32(1100173489); -emit_32(1126692880); -emit_32(3241902132); -emit_32(1100441086); -emit_32(1126692880); -emit_32(3237609472); -emit_32(1100198130); -emit_32(1126692880); -emit_32(3229220864); -emit_32(1099547122); -emit_32(1126692880); -emit_32(0); -emit_32(1099279735); -emit_32(1126692880); -emit_32(1081737216); -emit_32(1099508220); -emit_32(1126692880); -emit_32(3279552512); -emit_32(1091859760); -emit_32(1126436897); -emit_32(3279296528); -emit_32(1091230761); -emit_32(1126436897); -emit_32(3279040545); -emit_32(1090930805); -emit_32(1126436897); -emit_32(3278784496); -emit_32(1089555210); -emit_32(1126436897); -emit_32(3278528512); -emit_32(1087108253); -emit_32(1126436897); -emit_32(3278272528); -emit_32(1084241425); -emit_32(1126436897); -emit_32(3278016545); -emit_32(1080584495); -emit_32(1126436897); -emit_32(3277760496); -emit_32(1077009103); -emit_32(1126436897); -emit_32(3277504512); -emit_32(1077476097); -emit_32(1126436897); -emit_32(3277248528); -emit_32(1082163798); -emit_32(1126436897); -emit_32(3276992545); -emit_32(1083224118); -emit_32(1126436897); -emit_32(3276736496); -emit_32(1083925510); -emit_32(1126436897); -emit_32(3276480512); -emit_32(1086781055); -emit_32(1126436897); -emit_32(3276224528); -emit_32(1090787203); -emit_32(1126436897); -emit_32(3275968545); -emit_32(1093020523); -emit_32(1126436897); -emit_32(3275712496); -emit_32(1094356094); -emit_32(1126436897); -emit_32(3275456512); -emit_32(1095272654); -emit_32(1126436897); -emit_32(3275200528); -emit_32(1096919967); -emit_32(1126436897); -emit_32(3274944545); -emit_32(1097664981); -emit_32(1126436897); -emit_32(3274688496); -emit_32(1097850264); -emit_32(1126436897); -emit_32(3274432512); -emit_32(1097462501); -emit_32(1126436897); -emit_32(3274176528); -emit_32(1097374001); -emit_32(1126436897); -emit_32(3273920545); -emit_32(1096574357); -emit_32(1126436897); -emit_32(3273664496); -emit_32(1097971165); -emit_32(1126436897); -emit_32(3273408512); -emit_32(1099181588); -emit_32(1126436897); -emit_32(3273152528); -emit_32(1099865208); -emit_32(1126436897); -emit_32(3272896545); -emit_32(1100222353); -emit_32(1126436897); -emit_32(3272640496); -emit_32(1099751699); -emit_32(1126436897); -emit_32(3272384512); -emit_32(1099151756); -emit_32(1126436897); -emit_32(3272128528); -emit_32(1099314548); -emit_32(1126436897); -emit_32(3271872545); -emit_32(1100567124); -emit_32(1126436897); -emit_32(3271616496); -emit_32(1101301023); -emit_32(1126436897); -emit_32(3271163904); -emit_32(1101937036); -emit_32(1126436897); -emit_32(3270651937); -emit_32(1102452516); -emit_32(1126436897); -emit_32(3270139970); -emit_32(1102878763); -emit_32(1126436897); -emit_32(3269627871); -emit_32(1102764678); -emit_32(1126436897); -emit_32(3269115904); -emit_32(1103315599); -emit_32(1126436897); -emit_32(3268603937); -emit_32(1103337986); -emit_32(1126436897); -emit_32(3268091970); -emit_32(1103125021); -emit_32(1126436897); -emit_32(3267579911); -emit_32(1103452701); -emit_32(1126436897); -emit_32(3267067904); -emit_32(1103518551); -emit_32(1126436897); -emit_32(3266555911); -emit_32(1103087377); -emit_32(1126436897); -emit_32(3266043904); -emit_32(1102707740); -emit_32(1126436897); -emit_32(3265531911); -emit_32(1102273682); -emit_32(1126436897); -emit_32(3265019904); -emit_32(1100733009); -emit_32(1126436897); -emit_32(3264507911); -emit_32(1100143447); -emit_32(1126436897); -emit_32(3263995904); -emit_32(1100648022); -emit_32(1126436897); -emit_32(3263483911); -emit_32(1100809555); -emit_32(1126436897); -emit_32(3262775296); -emit_32(1100886835); -emit_32(1126436897); -emit_32(3261751309); -emit_32(1100168508); -emit_32(1126436897); -emit_32(3260727296); -emit_32(1099798833); -emit_32(1126436897); -emit_32(3259703309); -emit_32(1099326502); -emit_32(1126436897); -emit_32(3258679296); -emit_32(1099188195); -emit_32(1126436897); -emit_32(3257655309); -emit_32(1098951478); -emit_32(1126436897); -emit_32(3256631296); -emit_32(1099140746); -emit_32(1126436897); -emit_32(3255607309); -emit_32(1097892836); -emit_32(1126436897); -emit_32(3254386688); -emit_32(1096986552); -emit_32(1126436897); -emit_32(3252338714); -emit_32(1098931818); -emit_32(1126436897); -emit_32(3250290688); -emit_32(1099424072); -emit_32(1126436897); -emit_32(3248242714); -emit_32(1099604217); -emit_32(1126436897); -emit_32(3245998080); -emit_32(1100206309); -emit_32(1126436897); -emit_32(3241902132); -emit_32(1099889954); -emit_32(1126436897); -emit_32(3237609472); -emit_32(1099854460); -emit_32(1126436897); -emit_32(3229220864); -emit_32(1099540935); -emit_32(1126436897); -emit_32(0); -emit_32(1099312713); -emit_32(1126436897); -emit_32(1081737216); -emit_32(1099149921); -emit_32(1126436897); -emit_32(3279552512); -emit_32(1091110007); -emit_32(1126180848); -emit_32(3279296528); -emit_32(1090566603); -emit_32(1126180848); -emit_32(3279040545); -emit_32(1089927538); -emit_32(1126180848); -emit_32(3278784496); -emit_32(1088849057); -emit_32(1126180848); -emit_32(3278528512); -emit_32(1085306191); -emit_32(1126180848); -emit_32(3278272528); -emit_32(1084238930); -emit_32(1126180848); -emit_32(3278016545); -emit_32(1082904260); -emit_32(1126180848); -emit_32(3277760496); -emit_32(1078098238); -emit_32(1126180848); -emit_32(3277504512); -emit_32(1077638962); -emit_32(1126180848); -emit_32(3277248528); -emit_32(1076413302); -emit_32(1126180848); -emit_32(3276992545); -emit_32(1076646547); -emit_32(1126180848); -emit_32(3276736496); -emit_32(1080275711); -emit_32(1126180848); -emit_32(3276480512); -emit_32(1085520143); -emit_32(1126180848); -emit_32(3276224528); -emit_32(1089702514); -emit_32(1126180848); -emit_32(3275968545); -emit_32(1092246705); -emit_32(1126180848); -emit_32(3275712496); -emit_32(1093963402); -emit_32(1126180848); -emit_32(3275456512); -emit_32(1095512778); -emit_32(1126180848); -emit_32(3275200528); -emit_32(1096063386); -emit_32(1126180848); -emit_32(3274944545); -emit_32(1098150157); -emit_32(1126180848); -emit_32(3274688496); -emit_32(1098201747); -emit_32(1126180848); -emit_32(3274432512); -emit_32(1098080322); -emit_32(1126180848); -emit_32(3274176528); -emit_32(1097170158); -emit_32(1126180848); -emit_32(3273920545); -emit_32(1097720975); -emit_32(1126180848); -emit_32(3273664496); -emit_32(1098994627); -emit_32(1126180848); -emit_32(3273408512); -emit_32(1099145570); -emit_32(1126180848); -emit_32(3273152528); -emit_32(1100249878); -emit_32(1126180848); -emit_32(3272896545); -emit_32(1100617613); -emit_32(1126180848); -emit_32(3272640496); -emit_32(1100383781); -emit_32(1126180848); -emit_32(3272384512); -emit_32(1099661417); -emit_32(1126180848); -emit_32(3272128528); -emit_32(1099771570); -emit_32(1126180848); -emit_32(3271872545); -emit_32(1100856322); -emit_32(1126180848); -emit_32(3271616496); -emit_32(1101777863); -emit_32(1126180848); -emit_32(3271163904); -emit_32(1102608912); -emit_32(1126180848); -emit_32(3270651937); -emit_32(1103420142); -emit_32(1126180848); -emit_32(3270139970); -emit_32(1104133541); -emit_32(1126180848); -emit_32(3269627871); -emit_32(1104300737); -emit_32(1126180848); -emit_32(3269115904); -emit_32(1104750366); -emit_32(1126180848); -emit_32(3268603937); -emit_32(1104692327); -emit_32(1126180848); -emit_32(3268091970); -emit_32(1104180255); -emit_32(1126180848); -emit_32(3267579911); -emit_32(1104286004); -emit_32(1126180848); -emit_32(3267067904); -emit_32(1104294760); -emit_32(1126180848); -emit_32(3266555911); -emit_32(1103989519); -emit_32(1126180848); -emit_32(3266043904); -emit_32(1103116370); -emit_32(1126180848); -emit_32(3265531911); -emit_32(1102176374); -emit_32(1126180848); -emit_32(3265019904); -emit_32(1101252683); -emit_32(1126180848); -emit_32(3264507911); -emit_32(1100807091); -emit_32(1126180848); -emit_32(3263995904); -emit_32(1101057072); -emit_32(1126180848); -emit_32(3263483911); -emit_32(1101590954); -emit_32(1126180848); -emit_32(3262775296); -emit_32(1101241516); -emit_32(1126180848); -emit_32(3261751309); -emit_32(1100721632); -emit_32(1126180848); -emit_32(3260727296); -emit_32(1100065328); -emit_32(1126180848); -emit_32(3259703309); -emit_32(1099340867); -emit_32(1126180848); -emit_32(3258679296); -emit_32(1099102631); -emit_32(1126180848); -emit_32(3257655309); -emit_32(1098007550); -emit_32(1126180848); -emit_32(3256631296); -emit_32(1097436391); -emit_32(1126180848); -emit_32(3255607309); -emit_32(1097548589); -emit_32(1126180848); -emit_32(3254386688); -emit_32(1097682282); -emit_32(1126180848); -emit_32(3252338714); -emit_32(1099124127); -emit_32(1126180848); -emit_32(3250290688); -emit_32(1098983145); -emit_32(1126180848); -emit_32(3248242714); -emit_32(1099734136); -emit_32(1126180848); -emit_32(3245998080); -emit_32(1099916745); -emit_32(1126180848); -emit_32(3241902132); -emit_32(1099462450); -emit_32(1126180848); -emit_32(3237609472); -emit_32(1099513410); -emit_32(1126180848); -emit_32(3229220864); -emit_32(1099346425); -emit_32(1126180848); -emit_32(0); -emit_32(1099133931); -emit_32(1126180848); -emit_32(1081737216); -emit_32(1099236901); -emit_32(1126180848); -emit_32(3279552512); -emit_32(1089511002); -emit_32(1125924864); -emit_32(3279296528); -emit_32(1089751084); -emit_32(1125924864); -emit_32(3279040545); -emit_32(1089625192); -emit_32(1125924864); -emit_32(3278784496); -emit_32(1088308768); -emit_32(1125924864); -emit_32(3278528512); -emit_32(1083791334); -emit_32(1125924864); -emit_32(3278272528); -emit_32(1083037702); -emit_32(1125924864); -emit_32(3278016545); -emit_32(1082409647); -emit_32(1125924864); -emit_32(3277760496); -emit_32(1076909237); -emit_32(1125924864); -emit_32(3277504512); -emit_32(1076578474); -emit_32(1125924864); -emit_32(3277248528); -emit_32(1079282500); -emit_32(1125924864); -emit_32(3276992545); -emit_32(1079322891); -emit_32(1125924864); -emit_32(3276736496); -emit_32(1080482867); -emit_32(1125924864); -emit_32(3276480512); -emit_32(1083066517); -emit_32(1125924864); -emit_32(3276224528); -emit_32(1086368944); -emit_32(1125924864); -emit_32(3275968545); -emit_32(1090788545); -emit_32(1125924864); -emit_32(3275712496); -emit_32(1093220381); -emit_32(1125924864); -emit_32(3275456512); -emit_32(1094138095); -emit_32(1125924864); -emit_32(3275200528); -emit_32(1095485201); -emit_32(1125924864); -emit_32(3274944545); -emit_32(1098300103); -emit_32(1125924864); -emit_32(3274688496); -emit_32(1099012348); -emit_32(1125924864); -emit_32(3274432512); -emit_32(1097753795); -emit_32(1125924864); -emit_32(3274176528); -emit_32(1096927727); -emit_32(1125924864); -emit_32(3273920545); -emit_32(1098937847); -emit_32(1125924864); -emit_32(3273664496); -emit_32(1099750598); -emit_32(1125924864); -emit_32(3273408512); -emit_32(1099826096); -emit_32(1125924864); -emit_32(3273152528); -emit_32(1100180514); -emit_32(1125924864); -emit_32(3272896545); -emit_32(1100786015); -emit_32(1125924864); -emit_32(3272640496); -emit_32(1100625006); -emit_32(1125924864); -emit_32(3272384512); -emit_32(1100107638); -emit_32(1125924864); -emit_32(3272128528); -emit_32(1100331457); -emit_32(1125924864); -emit_32(3271872545); -emit_32(1101249590); -emit_32(1125924864); -emit_32(3271616496); -emit_32(1102354737); -emit_32(1125924864); -emit_32(3271163904); -emit_32(1103441691); -emit_32(1125924864); -emit_32(3270651937); -emit_32(1104738936); -emit_32(1125924864); -emit_32(3270139970); -emit_32(1105236276); -emit_32(1125924864); -emit_32(3269627871); -emit_32(1105460304); -emit_32(1125924864); -emit_32(3269115904); -emit_32(1105771993); -emit_32(1125924864); -emit_32(3268603937); -emit_32(1105867833); -emit_32(1125924864); -emit_32(3268091970); -emit_32(1105681868); -emit_32(1125924864); -emit_32(3267579911); -emit_32(1105399854); -emit_32(1125924864); -emit_32(3267067904); -emit_32(1104596592); -emit_32(1125924864); -emit_32(3266555911); -emit_32(1104130657); -emit_32(1125924864); -emit_32(3266043904); -emit_32(1103243877); -emit_32(1125924864); -emit_32(3265531911); -emit_32(1102380270); -emit_32(1125924864); -emit_32(3265019904); -emit_32(1102020241); -emit_32(1125924864); -emit_32(3264507911); -emit_32(1101572656); -emit_32(1125924864); -emit_32(3263995904); -emit_32(1101722026); -emit_32(1125924864); -emit_32(3263483911); -emit_32(1101703833); -emit_32(1125924864); -emit_32(3262775296); -emit_32(1101282463); -emit_32(1125924864); -emit_32(3261751309); -emit_32(1100994314); -emit_32(1125924864); -emit_32(3260727296); -emit_32(1100261255); -emit_32(1125924864); -emit_32(3259703309); -emit_32(1099538104); -emit_32(1125924864); -emit_32(3258679296); -emit_32(1099005113); -emit_32(1125924864); -emit_32(3257655309); -emit_32(1097288542); -emit_32(1125924864); -emit_32(3256631296); -emit_32(1096558523); -emit_32(1125924864); -emit_32(3255607309); -emit_32(1097476761); -emit_32(1125924864); -emit_32(3254386688); -emit_32(1098510552); -emit_32(1125924864); -emit_32(3252338714); -emit_32(1098575249); -emit_32(1125924864); -emit_32(3250290688); -emit_32(1099187146); -emit_32(1125924864); -emit_32(3248242714); -emit_32(1099341339); -emit_32(1125924864); -emit_32(3245998080); -emit_32(1099196531); -emit_32(1125924864); -emit_32(3241902132); -emit_32(1099085906); -emit_32(1125924864); -emit_32(3237609472); -emit_32(1099120876); -emit_32(1125924864); -emit_32(3229220864); -emit_32(1098773955); -emit_32(1125924864); -emit_32(0); -emit_32(1099088580); -emit_32(1125924864); -emit_32(1081737216); -emit_32(1099397648); -emit_32(1125924864); -emit_32(3279552512); -emit_32(1087350222); -emit_32(1125668880); -emit_32(3279296528); -emit_32(1087173453); -emit_32(1125668880); -emit_32(3279040545); -emit_32(1087524370); -emit_32(1125668880); -emit_32(3278784496); -emit_32(1085198146); -emit_32(1125668880); -emit_32(3278528512); -emit_32(1082565654); -emit_32(1125668880); -emit_32(3278272528); -emit_32(1077145753); -emit_32(1125668880); -emit_32(3278016545); -emit_32(1072746264); -emit_32(1125668880); -emit_32(3277760496); -emit_32(1070147557); -emit_32(1125668880); -emit_32(3277504512); -emit_32(1075759536); -emit_32(1125668880); -emit_32(3277248528); -emit_32(1077469889); -emit_32(1125668880); -emit_32(3276992545); -emit_32(1076408479); -emit_32(1125668880); -emit_32(3276736496); -emit_32(1077817429); -emit_32(1125668880); -emit_32(3276480512); -emit_32(1080487943); -emit_32(1125668880); -emit_32(3276224528); -emit_32(1082089831); -emit_32(1125668880); -emit_32(3275968545); -emit_32(1089194856); -emit_32(1125668880); -emit_32(3275712496); -emit_32(1092143819); -emit_32(1125668880); -emit_32(3275456512); -emit_32(1093271971); -emit_32(1125668880); -emit_32(3275200528); -emit_32(1095061157); -emit_32(1125668880); -emit_32(3274944545); -emit_32(1096826225); -emit_32(1125668880); -emit_32(3274688496); -emit_32(1097739220); -emit_32(1125668880); -emit_32(3274432512); -emit_32(1097853200); -emit_32(1125668880); -emit_32(3274176528); -emit_32(1097601856); -emit_32(1125668880); -emit_32(3273920545); -emit_32(1099313866); -emit_32(1125668880); -emit_32(3273664496); -emit_32(1100242538); -emit_32(1125668880); -emit_32(3273408512); -emit_32(1100791520); -emit_32(1125668880); -emit_32(3273152528); -emit_32(1100534671); -emit_32(1125668880); -emit_32(3272896545); -emit_32(1100486803); -emit_32(1125668880); -emit_32(3272640496); -emit_32(1100712667); -emit_32(1125668880); -emit_32(3272384512); -emit_32(1100661549); -emit_32(1125668880); -emit_32(3272128528); -emit_32(1101351407); -emit_32(1125668880); -emit_32(3271872545); -emit_32(1102206154); -emit_32(1125668880); -emit_32(3271616496); -emit_32(1103301286); -emit_32(1125668880); -emit_32(3271163904); -emit_32(1104362760); -emit_32(1125668880); -emit_32(3270651937); -emit_32(1105383916); -emit_32(1125668880); -emit_32(3270139970); -emit_32(1106277093); -emit_32(1125668880); -emit_32(3269627871); -emit_32(1106308235); -emit_32(1125668880); -emit_32(3269115904); -emit_32(1106719801); -emit_32(1125668880); -emit_32(3268603937); -emit_32(1106707323); -emit_32(1125668880); -emit_32(3268091970); -emit_32(1106722475); -emit_32(1125668880); -emit_32(3267579911); -emit_32(1106438259); -emit_32(1125668880); -emit_32(3267067904); -emit_32(1105408609); -emit_32(1125668880); -emit_32(3266555911); -emit_32(1104049917); -emit_32(1125668880); -emit_32(3266043904); -emit_32(1103297564); -emit_32(1125668880); -emit_32(3265531911); -emit_32(1102461429); -emit_32(1125668880); -emit_32(3265019904); -emit_32(1102366533); -emit_32(1125668880); -emit_32(3264507911); -emit_32(1101967340); -emit_32(1125668880); -emit_32(3263995904); -emit_32(1101786146); -emit_32(1125668880); -emit_32(3263483911); -emit_32(1101553258); -emit_32(1125668880); -emit_32(3262775296); -emit_32(1101001340); -emit_32(1125668880); -emit_32(3261751309); -emit_32(1100728448); -emit_32(1125668880); -emit_32(3260727296); -emit_32(1100022546); -emit_32(1125668880); -emit_32(3259703309); -emit_32(1099153224); -emit_32(1125668880); -emit_32(3258679296); -emit_32(1097869977); -emit_32(1125668880); -emit_32(3257655309); -emit_32(1096668099); -emit_32(1125668880); -emit_32(3256631296); -emit_32(1097741107); -emit_32(1125668880); -emit_32(3255607309); -emit_32(1097981755); -emit_32(1125668880); -emit_32(3254386688); -emit_32(1097933206); -emit_32(1125668880); -emit_32(3252338714); -emit_32(1098260572); -emit_32(1125668880); -emit_32(3250290688); -emit_32(1098406219); -emit_32(1125668880); -emit_32(3248242714); -emit_32(1098084516); -emit_32(1125668880); -emit_32(3245998080); -emit_32(1098079168); -emit_32(1125668880); -emit_32(3241902132); -emit_32(1098423520); -emit_32(1125668880); -emit_32(3237609472); -emit_32(1098536662); -emit_32(1125668880); -emit_32(3229220864); -emit_32(1098183711); -emit_32(1125668880); -emit_32(0); -emit_32(1099109709); -emit_32(1125668880); -emit_32(1081737216); -emit_32(1099796421); -emit_32(1125668880); -emit_32(3279552512); -emit_32(1084599032); -emit_32(1125412897); -emit_32(3279296528); -emit_32(1083540012); -emit_32(1125412897); -emit_32(3279040545); -emit_32(1082794369); -emit_32(1125412897); -emit_32(3278784496); -emit_32(1078855100); -emit_32(1125412897); -emit_32(3278528512); -emit_32(1074302393); -emit_32(1125412897); -emit_32(3278272528); -emit_32(1066993608); -emit_32(1125412897); -emit_32(3278016545); -emit_32(1038259757); -emit_32(1125412897); -emit_32(3277760496); -emit_32(1064430889); -emit_32(1125412897); -emit_32(3277504512); -emit_32(1068992026); -emit_32(1125412897); -emit_32(3277248528); -emit_32(1074031860); -emit_32(1125412897); -emit_32(3276992545); -emit_32(1074904275); -emit_32(1125412897); -emit_32(3276736496); -emit_32(1074708653); -emit_32(1125412897); -emit_32(3276480512); -emit_32(1076428066); -emit_32(1125412897); -emit_32(3276224528); -emit_32(1077918302); -emit_32(1125412897); -emit_32(3275968545); -emit_32(1085074875); -emit_32(1125412897); -emit_32(3275712496); -emit_32(1090557240); -emit_32(1125412897); -emit_32(3275456512); -emit_32(1092638422); -emit_32(1125412897); -emit_32(3275200528); -emit_32(1094944555); -emit_32(1125412897); -emit_32(3274944545); -emit_32(1097008048); -emit_32(1125412897); -emit_32(3274688496); -emit_32(1097387737); -emit_32(1125412897); -emit_32(3274432512); -emit_32(1098056204); -emit_32(1125412897); -emit_32(3274176528); -emit_32(1098092066); -emit_32(1125412897); -emit_32(3273920545); -emit_32(1099683122); -emit_32(1125412897); -emit_32(3273664496); -emit_32(1100803369); -emit_32(1125412897); -emit_32(3273408512); -emit_32(1101115267); -emit_32(1125412897); -emit_32(3273152528); -emit_32(1101294207); -emit_32(1125412897); -emit_32(3272896545); -emit_32(1101133932); -emit_32(1125412897); -emit_32(3272640496); -emit_32(1101242093); -emit_32(1125412897); -emit_32(3272384512); -emit_32(1101498994); -emit_32(1125412897); -emit_32(3272128528); -emit_32(1102385303); -emit_32(1125412897); -emit_32(3271872545); -emit_32(1103696757); -emit_32(1125412897); -emit_32(3271616496); -emit_32(1104690492); -emit_32(1125412897); -emit_32(3271163904); -emit_32(1105923146); -emit_32(1125412897); -emit_32(3270651937); -emit_32(1106797868); -emit_32(1125412897); -emit_32(3270139970); -emit_32(1107151867); -emit_32(1125412897); -emit_32(3269627871); -emit_32(1107261181); -emit_32(1125412897); -emit_32(3269115904); -emit_32(1107270933); -emit_32(1125412897); -emit_32(3268603937); -emit_32(1107353141); -emit_32(1125412897); -emit_32(3268091970); -emit_32(1107243880); -emit_32(1125412897); -emit_32(3267579911); -emit_32(1106494620); -emit_32(1125412897); -emit_32(3267067904); -emit_32(1105521174); -emit_32(1125412897); -emit_32(3266555911); -emit_32(1104449162); -emit_32(1125412897); -emit_32(3266043904); -emit_32(1103510110); -emit_32(1125412897); -emit_32(3265531911); -emit_32(1102747953); -emit_32(1125412897); -emit_32(3265019904); -emit_32(1102196874); -emit_32(1125412897); -emit_32(3264507911); -emit_32(1102074085); -emit_32(1125412897); -emit_32(3263995904); -emit_32(1101784888); -emit_32(1125412897); -emit_32(3263483911); -emit_32(1101295203); -emit_32(1125412897); -emit_32(3262775296); -emit_32(1100689231); -emit_32(1125412897); -emit_32(3261751309); -emit_32(1100003515); -emit_32(1125412897); -emit_32(3260727296); -emit_32(1099230295); -emit_32(1125412897); -emit_32(3259703309); -emit_32(1098733375); -emit_32(1125412897); -emit_32(3258679296); -emit_32(1096895326); -emit_32(1125412897); -emit_32(3257655309); -emit_32(1095571918); -emit_32(1125412897); -emit_32(3256631296); -emit_32(1096896374); -emit_32(1125412897); -emit_32(3255607309); -emit_32(1097195638); -emit_32(1125412897); -emit_32(3254386688); -emit_32(1097122238); -emit_32(1125412897); -emit_32(3252338714); -emit_32(1098028522); -emit_32(1125412897); -emit_32(3250290688); -emit_32(1096753663); -emit_32(1125412897); -emit_32(3248242714); -emit_32(1097797416); -emit_32(1125412897); -emit_32(3245998080); -emit_32(1098329673); -emit_32(1125412897); -emit_32(3241902132); -emit_32(1098215273); -emit_32(1125412897); -emit_32(3237609472); -emit_32(1097896401); -emit_32(1125412897); -emit_32(3229220864); -emit_32(1098533411); -emit_32(1125412897); -emit_32(0); -emit_32(1099233650); -emit_32(1125412897); -emit_32(1081737216); -emit_32(1100171654); -emit_32(1125412897); -emit_32(3279552512); -emit_32(1085043754); -emit_32(1125156848); -emit_32(3279296528); -emit_32(1082745359); -emit_32(1125156848); -emit_32(3279040545); -emit_32(1077929543); -emit_32(1125156848); -emit_32(3278784496); -emit_32(1077120797); -emit_32(1125156848); -emit_32(3278528512); -emit_32(1070829467); -emit_32(1125156848); -emit_32(3278272528); -emit_32(3196693122); -emit_32(1125156848); -emit_32(3278016545); -emit_32(3203591578); -emit_32(1125156848); -emit_32(3277760496); -emit_32(3178809932); -emit_32(1125156848); -emit_32(3277504512); -emit_32(1062996554); -emit_32(1125156848); -emit_32(3277248528); -emit_32(1067740194); -emit_32(1125156848); -emit_32(3276992545); -emit_32(1071204690); -emit_32(1125156848); -emit_32(3276736496); -emit_32(1074277437); -emit_32(1125156848); -emit_32(3276480512); -emit_32(1077601171); -emit_32(1125156848); -emit_32(3276224528); -emit_32(1081521125); -emit_32(1125156848); -emit_32(3275968545); -emit_32(1082948300); -emit_32(1125156848); -emit_32(3275712496); -emit_32(1087836804); -emit_32(1125156848); -emit_32(3275456512); -emit_32(1091823815); -emit_32(1125156848); -emit_32(3275200528); -emit_32(1094296745); -emit_32(1125156848); -emit_32(3274944545); -emit_32(1095976039); -emit_32(1125156848); -emit_32(3274688496); -emit_32(1097507484); -emit_32(1125156848); -emit_32(3274432512); -emit_32(1097570923); -emit_32(1125156848); -emit_32(3274176528); -emit_32(1098982359); -emit_32(1125156848); -emit_32(3273920545); -emit_32(1100051802); -emit_32(1125156848); -emit_32(3273664496); -emit_32(1100994419); -emit_32(1125156848); -emit_32(3273408512); -emit_32(1102158705); -emit_32(1125156848); -emit_32(3273152528); -emit_32(1102017357); -emit_32(1125156848); -emit_32(3272896545); -emit_32(1102232735); -emit_32(1125156848); -emit_32(3272640496); -emit_32(1101864265); -emit_32(1125156848); -emit_32(3272384512); -emit_32(1102610222); -emit_32(1125156848); -emit_32(3272128528); -emit_32(1103466332); -emit_32(1125156848); -emit_32(3271872545); -emit_32(1104473437); -emit_32(1125156848); -emit_32(3271616496); -emit_32(1106243066); -emit_32(1125156848); -emit_32(3271163904); -emit_32(1107111235); -emit_32(1125156848); -emit_32(3270651937); -emit_32(1107425205); -emit_32(1125156848); -emit_32(3270139970); -emit_32(1107552502); -emit_32(1125156848); -emit_32(3269627871); -emit_32(1107600002); -emit_32(1125156848); -emit_32(3269115904); -emit_32(1107564875); -emit_32(1125156848); -emit_32(3268603937); -emit_32(1107418258); -emit_32(1125156848); -emit_32(3268091970); -emit_32(1107034584); -emit_32(1125156848); -emit_32(3267579911); -emit_32(1106363600); -emit_32(1125156848); -emit_32(3267067904); -emit_32(1105390731); -emit_32(1125156848); -emit_32(3266555911); -emit_32(1104501591); -emit_32(1125156848); -emit_32(3266043904); -emit_32(1103946108); -emit_32(1125156848); -emit_32(3265531911); -emit_32(1102869325); -emit_32(1125156848); -emit_32(3265019904); -emit_32(1101989360); -emit_32(1125156848); -emit_32(3264507911); -emit_32(1101780170); -emit_32(1125156848); -emit_32(3263995904); -emit_32(1101640971); -emit_32(1125156848); -emit_32(3263483911); -emit_32(1101030700); -emit_32(1125156848); -emit_32(3262775296); -emit_32(1100725564); -emit_32(1125156848); -emit_32(3261751309); -emit_32(1099604322); -emit_32(1125156848); -emit_32(3260727296); -emit_32(1099292318); -emit_32(1125156848); -emit_32(3259703309); -emit_32(1098829949); -emit_32(1125156848); -emit_32(3258679296); -emit_32(1097125803); -emit_32(1125156848); -emit_32(3257655309); -emit_32(1096142658); -emit_32(1125156848); -emit_32(3256631296); -emit_32(1095542138); -emit_32(1125156848); -emit_32(3255607309); -emit_32(1096456811); -emit_32(1125156848); -emit_32(3254386688); -emit_32(1096482501); -emit_32(1125156848); -emit_32(3252338714); -emit_32(1096896270); -emit_32(1125156848); -emit_32(3250290688); -emit_32(1096761213); -emit_32(1125156848); -emit_32(3248242714); -emit_32(1096850971); -emit_32(1125156848); -emit_32(3245998080); -emit_32(1096941463); -emit_32(1125156848); -emit_32(3241902132); -emit_32(1096922589); -emit_32(1125156848); -emit_32(3237609472); -emit_32(1097331429); -emit_32(1125156848); -emit_32(3229220864); -emit_32(1098308177); -emit_32(1125156848); -emit_32(0); -emit_32(1099200882); -emit_32(1125156848); -emit_32(1081737216); -emit_32(1099891107); -emit_32(1125156848); -emit_32(3279552512); -emit_32(1084907963); -emit_32(1124900864); -emit_32(3279296528); -emit_32(1083246159); -emit_32(1124900864); -emit_32(3279040545); -emit_32(1077321704); -emit_32(1124900864); -emit_32(3278784496); -emit_32(1069416909); -emit_32(1124900864); -emit_32(3278528512); -emit_32(1044789651); -emit_32(1124900864); -emit_32(3278272528); -emit_32(3167012033); -emit_32(1124900864); -emit_32(3278016545); -emit_32(3192403624); -emit_32(1124900864); -emit_32(3277760496); -emit_32(3204872485); -emit_32(1124900864); -emit_32(3277504512); -emit_32(1048751859); -emit_32(1124900864); -emit_32(3277248528); -emit_32(1057065154); -emit_32(1124900864); -emit_32(3276992545); -emit_32(1067451207); -emit_32(1124900864); -emit_32(3276736496); -emit_32(1076983266); -emit_32(1124900864); -emit_32(3276480512); -emit_32(1078929255); -emit_32(1124900864); -emit_32(3276224528); -emit_32(1081361406); -emit_32(1124900864); -emit_32(3275968545); -emit_32(1083089858); -emit_32(1124900864); -emit_32(3275712496); -emit_32(1087525083); -emit_32(1124900864); -emit_32(3275456512); -emit_32(1091337443); -emit_32(1124900864); -emit_32(3275200528); -emit_32(1093300912); -emit_32(1124900864); -emit_32(3274944545); -emit_32(1094898103); -emit_32(1124900864); -emit_32(3274688496); -emit_32(1096638530); -emit_32(1124900864); -emit_32(3274432512); -emit_32(1097274071); -emit_32(1124900864); -emit_32(3274176528); -emit_32(1099026766); -emit_32(1124900864); -emit_32(3273920545); -emit_32(1099861538); -emit_32(1124900864); -emit_32(3273664496); -emit_32(1101176137); -emit_32(1124900864); -emit_32(3273408512); -emit_32(1101893049); -emit_32(1124900864); -emit_32(3273152528); -emit_32(1101975047); -emit_32(1124900864); -emit_32(3272896545); -emit_32(1102502691); -emit_32(1124900864); -emit_32(3272640496); -emit_32(1102587573); -emit_32(1124900864); -emit_32(3272384512); -emit_32(1103471103); -emit_32(1124900864); -emit_32(3272128528); -emit_32(1104395895); -emit_32(1124900864); -emit_32(3271872545); -emit_32(1105537742); -emit_32(1124900864); -emit_32(3271616496); -emit_32(1106756659); -emit_32(1124900864); -emit_32(3271163904); -emit_32(1107634867); -emit_32(1124900864); -emit_32(3270651937); -emit_32(1108079516); -emit_32(1124900864); -emit_32(3270139970); -emit_32(1107976153); -emit_32(1124900864); -emit_32(3269627871); -emit_32(1107884271); -emit_32(1124900864); -emit_32(3269115904); -emit_32(1107747642); -emit_32(1124900864); -emit_32(3268603937); -emit_32(1107549985); -emit_32(1124900864); -emit_32(3268091970); -emit_32(1106944773); -emit_32(1124900864); -emit_32(3267579911); -emit_32(1106247732); -emit_32(1124900864); -emit_32(3267067904); -emit_32(1105208646); -emit_32(1124900864); -emit_32(3266555911); -emit_32(1104283802); -emit_32(1124900864); -emit_32(3266043904); -emit_32(1103606946); -emit_32(1124900864); -emit_32(3265531911); -emit_32(1102871160); -emit_32(1124900864); -emit_32(3265019904); -emit_32(1101718513); -emit_32(1124900864); -emit_32(3264507911); -emit_32(1101446513); -emit_32(1124900864); -emit_32(3263995904); -emit_32(1101370543); -emit_32(1124900864); -emit_32(3263483911); -emit_32(1100714292); -emit_32(1124900864); -emit_32(3262775296); -emit_32(1099954599); -emit_32(1124900864); -emit_32(3261751309); -emit_32(1099576325); -emit_32(1124900864); -emit_32(3260727296); -emit_32(1099307680); -emit_32(1124900864); -emit_32(3259703309); -emit_32(1098767978); -emit_32(1124900864); -emit_32(3258679296); -emit_32(1098097938); -emit_32(1124900864); -emit_32(3257655309); -emit_32(1096914095); -emit_32(1124900864); -emit_32(3256631296); -emit_32(1096195192); -emit_32(1124900864); -emit_32(3255607309); -emit_32(1095657482); -emit_32(1124900864); -emit_32(3254386688); -emit_32(1095370487); -emit_32(1124900864); -emit_32(3252338714); -emit_32(1095450703); -emit_32(1124900864); -emit_32(3250290688); -emit_32(1094766612); -emit_32(1124900864); -emit_32(3248242714); -emit_32(1095587018); -emit_32(1124900864); -emit_32(3245998080); -emit_32(1094951266); -emit_32(1124900864); -emit_32(3241902132); -emit_32(1094949903); -emit_32(1124900864); -emit_32(3237609472); -emit_32(1096714656); -emit_32(1124900864); -emit_32(3229220864); -emit_32(1098445226); -emit_32(1124900864); -emit_32(0); -emit_32(1099331587); -emit_32(1124900864); -emit_32(1081737216); -emit_32(1100260206); -emit_32(1124900864); -emit_32(3279552512); -emit_32(1083591665); -emit_32(1124644880); -emit_32(3279296528); -emit_32(1079852212); -emit_32(1124644880); -emit_32(3279040545); -emit_32(1072228855); -emit_32(1124644880); -emit_32(3278784496); -emit_32(1066448684); -emit_32(1124644880); -emit_32(3278528512); -emit_32(1057555518); -emit_32(1124644880); -emit_32(3278272528); -emit_32(1063153790); -emit_32(1124644880); -emit_32(3278016545); -emit_32(1058210333); -emit_32(1124644880); -emit_32(3277760496); -emit_32(1049561427); -emit_32(1124644880); -emit_32(3277504512); -emit_32(3214410567); -emit_32(1124644880); -emit_32(3277248528); -emit_32(3207614251); -emit_32(1124644880); -emit_32(3276992545); -emit_32(1055980993); -emit_32(1124644880); -emit_32(3276736496); -emit_32(1073762292); -emit_32(1124644880); -emit_32(3276480512); -emit_32(1079724747); -emit_32(1124644880); -emit_32(3276224528); -emit_32(1082560411); -emit_32(1124644880); -emit_32(3275968545); -emit_32(1084722260); -emit_32(1124644880); -emit_32(3275712496); -emit_32(1086375571); -emit_32(1124644880); -emit_32(3275456512); -emit_32(1090446500); -emit_32(1124644880); -emit_32(3275200528); -emit_32(1093171832); -emit_32(1124644880); -emit_32(3274944545); -emit_32(1094812015); -emit_32(1124644880); -emit_32(3274688496); -emit_32(1096292290); -emit_32(1124644880); -emit_32(3274432512); -emit_32(1097734921); -emit_32(1124644880); -emit_32(3274176528); -emit_32(1099196531); -emit_32(1124644880); -emit_32(3273920545); -emit_32(1099805229); -emit_32(1124644880); -emit_32(3273664496); -emit_32(1100823187); -emit_32(1124644880); -emit_32(3273408512); -emit_32(1101755685); -emit_32(1124644880); -emit_32(3273152528); -emit_32(1102405698); -emit_32(1124644880); -emit_32(3272896545); -emit_32(1102759225); -emit_32(1124644880); -emit_32(3272640496); -emit_32(1103381607); -emit_32(1124644880); -emit_32(3272384512); -emit_32(1104182510); -emit_32(1124644880); -emit_32(3272128528); -emit_32(1105063995); -emit_32(1124644880); -emit_32(3271872545); -emit_32(1106336390); -emit_32(1124644880); -emit_32(3271616496); -emit_32(1107656416); -emit_32(1124644880); -emit_32(3271163904); -emit_32(1108075925); -emit_32(1124644880); -emit_32(3270651937); -emit_32(1108328763); -emit_32(1124644880); -emit_32(3270139970); -emit_32(1108369080); -emit_32(1124644880); -emit_32(3269627871); -emit_32(1108254366); -emit_32(1124644880); -emit_32(3269115904); -emit_32(1107968551); -emit_32(1124644880); -emit_32(3268603937); -emit_32(1107979456); -emit_32(1124644880); -emit_32(3268091970); -emit_32(1107515802); -emit_32(1124644880); -emit_32(3267579911); -emit_32(1106388084); -emit_32(1124644880); -emit_32(3267067904); -emit_32(1104790841); -emit_32(1124644880); -emit_32(3266555911); -emit_32(1104209563); -emit_32(1124644880); -emit_32(3266043904); -emit_32(1103624405); -emit_32(1124644880); -emit_32(3265531911); -emit_32(1102359613); -emit_32(1124644880); -emit_32(3265019904); -emit_32(1101907257); -emit_32(1124644880); -emit_32(3264507911); -emit_32(1101809058); -emit_32(1124644880); -emit_32(3263995904); -emit_32(1101301128); -emit_32(1124644880); -emit_32(3263483911); -emit_32(1100497289); -emit_32(1124644880); -emit_32(3262775296); -emit_32(1099654863); -emit_32(1124644880); -emit_32(3261751309); -emit_32(1099315701); -emit_32(1124644880); -emit_32(3260727296); -emit_32(1098867697); -emit_32(1124644880); -emit_32(3259703309); -emit_32(1097723491); -emit_32(1124644880); -emit_32(3258679296); -emit_32(1097140063); -emit_32(1124644880); -emit_32(3257655309); -emit_32(1096683933); -emit_32(1124644880); -emit_32(3256631296); -emit_32(1095379399); -emit_32(1124644880); -emit_32(3255607309); -emit_32(1094758747); -emit_32(1124644880); -emit_32(3254386688); -emit_32(1094561405); -emit_32(1124644880); -emit_32(3252338714); -emit_32(1094733582); -emit_32(1124644880); -emit_32(3250290688); -emit_32(1093957845); -emit_32(1124644880); -emit_32(3248242714); -emit_32(1094294123); -emit_32(1124644880); -emit_32(3245998080); -emit_32(1093574905); -emit_32(1124644880); -emit_32(3241902132); -emit_32(1094867799); -emit_32(1124644880); -emit_32(3237609472); -emit_32(1097134821); -emit_32(1124644880); -emit_32(3229220864); -emit_32(1099036099); -emit_32(1124644880); -emit_32(0); -emit_32(1099596615); -emit_32(1124644880); -emit_32(1081737216); -emit_32(1100859258); -emit_32(1124644880); -emit_32(3279552512); -emit_32(1081904485); -emit_32(1124388897); -emit_32(3279296528); -emit_32(1075136304); -emit_32(1124388897); -emit_32(3279040545); -emit_32(1073454011); -emit_32(1124388897); -emit_32(3278784496); -emit_32(1066813673); -emit_32(1124388897); -emit_32(3278528512); -emit_32(1058745375); -emit_32(1124388897); -emit_32(3278272528); -emit_32(1007923565); -emit_32(1124388897); -emit_32(3278016545); -emit_32(1041418101); -emit_32(1124388897); -emit_32(3277760496); -emit_32(3199617458); -emit_32(1124388897); -emit_32(3277504512); -emit_32(3217487424); -emit_32(1124388897); -emit_32(3277248528); -emit_32(3214749551); -emit_32(1124388897); -emit_32(3276992545); -emit_32(3200772133); -emit_32(1124388897); -emit_32(3276736496); -emit_32(1066640783); -emit_32(1124388897); -emit_32(3276480512); -emit_32(1076373750); -emit_32(1124388897); -emit_32(3276224528); -emit_32(1080280534); -emit_32(1124388897); -emit_32(3275968545); -emit_32(1084212505); -emit_32(1124388897); -emit_32(3275712496); -emit_32(1084220726); -emit_32(1124388897); -emit_32(3275456512); -emit_32(1088347817); -emit_32(1124388897); -emit_32(3275200528); -emit_32(1092688649); -emit_32(1124388897); -emit_32(3274944545); -emit_32(1095110020); -emit_32(1124388897); -emit_32(3274688496); -emit_32(1096019765); -emit_32(1124388897); -emit_32(3274432512); -emit_32(1097191863); -emit_32(1124388897); -emit_32(3274176528); -emit_32(1099076574); -emit_32(1124388897); -emit_32(3273920545); -emit_32(1099798099); -emit_32(1124388897); -emit_32(3273664496); -emit_32(1100653265); -emit_32(1124388897); -emit_32(3273408512); -emit_32(1101516925); -emit_32(1124388897); -emit_32(3273152528); -emit_32(1102653791); -emit_32(1124388897); -emit_32(3272896545); -emit_32(1103041659); -emit_32(1124388897); -emit_32(3272640496); -emit_32(1103477814); -emit_32(1124388897); -emit_32(3272384512); -emit_32(1104761586); -emit_32(1124388897); -emit_32(3272128528); -emit_32(1105735555); -emit_32(1124388897); -emit_32(3271872545); -emit_32(1106382579); -emit_32(1124388897); -emit_32(3271616496); -emit_32(1107704231); -emit_32(1124388897); -emit_32(3271163904); -emit_32(1108131394); -emit_32(1124388897); -emit_32(3270651937); -emit_32(1108458393); -emit_32(1124388897); -emit_32(3270139970); -emit_32(1108511529); -emit_32(1124388897); -emit_32(3269627871); -emit_32(1108351464); -emit_32(1124388897); -emit_32(3269115904); -emit_32(1108007374); -emit_32(1124388897); -emit_32(3268603937); -emit_32(1107999667); -emit_32(1124388897); -emit_32(3268091970); -emit_32(1107747353); -emit_32(1124388897); -emit_32(3267579911); -emit_32(1106761954); -emit_32(1124388897); -emit_32(3267067904); -emit_32(1105151446); -emit_32(1124388897); -emit_32(3266555911); -emit_32(1103997960); -emit_32(1124388897); -emit_32(3266043904); -emit_32(1103338930); -emit_32(1124388897); -emit_32(3265531911); -emit_32(1102310120); -emit_32(1124388897); -emit_32(3265019904); -emit_32(1102078804); -emit_32(1124388897); -emit_32(3264507911); -emit_32(1102132910); -emit_32(1124388897); -emit_32(3263995904); -emit_32(1101260338); -emit_32(1124388897); -emit_32(3263483911); -emit_32(1100505783); -emit_32(1124388897); -emit_32(3262775296); -emit_32(1099485361); -emit_32(1124388897); -emit_32(3261751309); -emit_32(1099317379); -emit_32(1124388897); -emit_32(3260727296); -emit_32(1097990459); -emit_32(1124388897); -emit_32(3259703309); -emit_32(1097342543); -emit_32(1124388897); -emit_32(3258679296); -emit_32(1095513512); -emit_32(1124388897); -emit_32(3257655309); -emit_32(1095404880); -emit_32(1124388897); -emit_32(3256631296); -emit_32(1094651059); -emit_32(1124388897); -emit_32(3255607309); -emit_32(1094446901); -emit_32(1124388897); -emit_32(3254386688); -emit_32(1093497625); -emit_32(1124388897); -emit_32(3252338714); -emit_32(1093705977); -emit_32(1124388897); -emit_32(3250290688); -emit_32(1093119299); -emit_32(1124388897); -emit_32(3248242714); -emit_32(1093472354); -emit_32(1124388897); -emit_32(3245998080); -emit_32(1095171362); -emit_32(1124388897); -emit_32(3241902132); -emit_32(1096014103); -emit_32(1124388897); -emit_32(3237609472); -emit_32(1097783784); -emit_32(1124388897); -emit_32(3229220864); -emit_32(1099140904); -emit_32(1124388897); -emit_32(0); -emit_32(1099863844); -emit_32(1124388897); -emit_32(1081737216); -emit_32(1100982465); -emit_32(1124388897); -emit_32(3279552512); -emit_32(1076151032); -emit_32(1124132848); -emit_32(3279296528); -emit_32(1074265021); -emit_32(1124132848); -emit_32(3279040545); -emit_32(1059897651); -emit_32(1124132848); -emit_32(3278784496); -emit_32(3197909672); -emit_32(1124132848); -emit_32(3278528512); -emit_32(3211975304); -emit_32(1124132848); -emit_32(3278272528); -emit_32(3212548900); -emit_32(1124132848); -emit_32(3278016545); -emit_32(3214293881); -emit_32(1124132848); -emit_32(3277760496); -emit_32(3216921864); -emit_32(1124132848); -emit_32(3277504512); -emit_32(3222195908); -emit_32(1124132848); -emit_32(3277248528); -emit_32(3221805335); -emit_32(1124132848); -emit_32(3276992545); -emit_32(3213409470); -emit_32(1124132848); -emit_32(3276736496); -emit_32(1032354486); -emit_32(1124132848); -emit_32(3276480512); -emit_32(1066671654); -emit_32(1124132848); -emit_32(3276224528); -emit_32(1078555291); -emit_32(1124132848); -emit_32(3275968545); -emit_32(1082316198); -emit_32(1124132848); -emit_32(3275712496); -emit_32(1084389652); -emit_32(1124132848); -emit_32(3275456512); -emit_32(1090589284); -emit_32(1124132848); -emit_32(3275200528); -emit_32(1093399793); -emit_32(1124132848); -emit_32(3274944545); -emit_32(1094797335); -emit_32(1124132848); -emit_32(3274688496); -emit_32(1095931475); -emit_32(1124132848); -emit_32(3274432512); -emit_32(1097364459); -emit_32(1124132848); -emit_32(3274176528); -emit_32(1098713452); -emit_32(1124132848); -emit_32(3273920545); -emit_32(1099383020); -emit_32(1124132848); -emit_32(3273664496); -emit_32(1100286158); -emit_32(1124132848); -emit_32(3273408512); -emit_32(1101469791); -emit_32(1124132848); -emit_32(3273152528); -emit_32(1102376757); -emit_32(1124132848); -emit_32(3272896545); -emit_32(1103068345); -emit_32(1124132848); -emit_32(3272640496); -emit_32(1104423682); -emit_32(1124132848); -emit_32(3272384512); -emit_32(1104904507); -emit_32(1124132848); -emit_32(3272128528); -emit_32(1106022131); -emit_32(1124132848); -emit_32(3271872545); -emit_32(1106604720); -emit_32(1124132848); -emit_32(3271616496); -emit_32(1107631800); -emit_32(1124132848); -emit_32(3271163904); -emit_32(1108172682); -emit_32(1124132848); -emit_32(3270651937); -emit_32(1108436818); -emit_32(1124132848); -emit_32(3270139970); -emit_32(1108399830); -emit_32(1124132848); -emit_32(3269627871); -emit_32(1108123845); -emit_32(1124132848); -emit_32(3269115904); -emit_32(1108184505); -emit_32(1124132848); -emit_32(3268603937); -emit_32(1108270331); -emit_32(1124132848); -emit_32(3268091970); -emit_32(1107910957); -emit_32(1124132848); -emit_32(3267579911); -emit_32(1107432518); -emit_32(1124132848); -emit_32(3267067904); -emit_32(1105755426); -emit_32(1124132848); -emit_32(3266555911); -emit_32(1104147644); -emit_32(1124132848); -emit_32(3266043904); -emit_32(1103239525); -emit_32(1124132848); -emit_32(3265531911); -emit_32(1102590666); -emit_32(1124132848); -emit_32(3265019904); -emit_32(1101844290); -emit_32(1124132848); -emit_32(3264507911); -emit_32(1101550007); -emit_32(1124132848); -emit_32(3263995904); -emit_32(1101094925); -emit_32(1124132848); -emit_32(3263483911); -emit_32(1100315990); -emit_32(1124132848); -emit_32(3262775296); -emit_32(1099604269); -emit_32(1124132848); -emit_32(3261751309); -emit_32(1098955673); -emit_32(1124132848); -emit_32(3260727296); -emit_32(1096931397); -emit_32(1124132848); -emit_32(3259703309); -emit_32(1095373108); -emit_32(1124132848); -emit_32(3258679296); -emit_32(1094758538); -emit_32(1124132848); -emit_32(3257655309); -emit_32(1094166512); -emit_32(1124132848); -emit_32(3256631296); -emit_32(1094620021); -emit_32(1124132848); -emit_32(3255607309); -emit_32(1094357772); -emit_32(1124132848); -emit_32(3254386688); -emit_32(1093070435); -emit_32(1124132848); -emit_32(3252338714); -emit_32(1092280920); -emit_32(1124132848); -emit_32(3250290688); -emit_32(1092453726); -emit_32(1124132848); -emit_32(3248242714); -emit_32(1094304085); -emit_32(1124132848); -emit_32(3245998080); -emit_32(1096070621); -emit_32(1124132848); -emit_32(3241902132); -emit_32(1096864812); -emit_32(1124132848); -emit_32(3237609472); -emit_32(1098173435); -emit_32(1124132848); -emit_32(3229220864); -emit_32(1099365404); -emit_32(1124132848); -emit_32(0); -emit_32(1099987367); -emit_32(1124132848); -emit_32(1081737216); -emit_32(1101050728); -emit_32(1124132848); -emit_32(3279552512); -emit_32(1075745946); -emit_32(1123680256); -emit_32(3279296528); -emit_32(1067640202); -emit_32(1123680256); -emit_32(3279040545); -emit_32(3205049803); -emit_32(1123680256); -emit_32(3278784496); -emit_32(3215612571); -emit_32(1123680256); -emit_32(3278528512); -emit_32(3218144588); -emit_32(1123680256); -emit_32(3278272528); -emit_32(3222509223); -emit_32(1123680256); -emit_32(3278016545); -emit_32(3221797869); -emit_32(1123680256); -emit_32(3277760496); -emit_32(3225243909); -emit_32(1123680256); -emit_32(3277504512); -emit_32(3225089810); -emit_32(1123680256); -emit_32(3277248528); -emit_32(3226837912); -emit_32(1123680256); -emit_32(3276992545); -emit_32(3222475668); -emit_32(1123680256); -emit_32(3276736496); -emit_32(3210500905); -emit_32(1123680256); -emit_32(3276480512); -emit_32(1057082501); -emit_32(1123680256); -emit_32(3276224528); -emit_32(1069886755); -emit_32(1123680256); -emit_32(3275968545); -emit_32(1079284135); -emit_32(1123680256); -emit_32(3275712496); -emit_32(1085833856); -emit_32(1123680256); -emit_32(3275456512); -emit_32(1090703044); -emit_32(1123680256); -emit_32(3275200528); -emit_32(1093163863); -emit_32(1123680256); -emit_32(3274944545); -emit_32(1094161898); -emit_32(1123680256); -emit_32(3274688496); -emit_32(1095085064); -emit_32(1123680256); -emit_32(3274432512); -emit_32(1096343041); -emit_32(1123680256); -emit_32(3274176528); -emit_32(1097267465); -emit_32(1123680256); -emit_32(3273920545); -emit_32(1099232549); -emit_32(1123680256); -emit_32(3273664496); -emit_32(1100352638); -emit_32(1123680256); -emit_32(3273408512); -emit_32(1101666347); -emit_32(1123680256); -emit_32(3273152528); -emit_32(1102553599); -emit_32(1123680256); -emit_32(3272896545); -emit_32(1103499048); -emit_32(1123680256); -emit_32(3272640496); -emit_32(1104589619); -emit_32(1123680256); -emit_32(3272384512); -emit_32(1105372486); -emit_32(1123680256); -emit_32(3272128528); -emit_32(1105859602); -emit_32(1123680256); -emit_32(3271872545); -emit_32(1106894337); -emit_32(1123680256); -emit_32(3271616496); -emit_32(1107538372); -emit_32(1123680256); -emit_32(3271163904); -emit_32(1107947762); -emit_32(1123680256); -emit_32(3270651937); -emit_32(1108124343); -emit_32(1123680256); -emit_32(3270139970); -emit_32(1107942572); -emit_32(1123680256); -emit_32(3269627871); -emit_32(1108284329); -emit_32(1123680256); -emit_32(3269115904); -emit_32(1108344439); -emit_32(1123680256); -emit_32(3268603937); -emit_32(1108291722); -emit_32(1123680256); -emit_32(3268091970); -emit_32(1107980426); -emit_32(1123680256); -emit_32(3267579911); -emit_32(1107402844); -emit_32(1123680256); -emit_32(3267067904); -emit_32(1105639401); -emit_32(1123680256); -emit_32(3266555911); -emit_32(1104157868); -emit_32(1123680256); -emit_32(3266043904); -emit_32(1103642965); -emit_32(1123680256); -emit_32(3265531911); -emit_32(1102980579); -emit_32(1123680256); -emit_32(3265019904); -emit_32(1102268282); -emit_32(1123680256); -emit_32(3264507911); -emit_32(1101485362); -emit_32(1123680256); -emit_32(3263995904); -emit_32(1100559260); -emit_32(1123680256); -emit_32(3263483911); -emit_32(1099869979); -emit_32(1123680256); -emit_32(3262775296); -emit_32(1099177447); -emit_32(1123680256); -emit_32(3261751309); -emit_32(1097774032); -emit_32(1123680256); -emit_32(3260727296); -emit_32(1096015990); -emit_32(1123680256); -emit_32(3259703309); -emit_32(1094982618); -emit_32(1123680256); -emit_32(3258679296); -emit_32(1094173642); -emit_32(1123680256); -emit_32(3257655309); -emit_32(1093433557); -emit_32(1123680256); -emit_32(3256631296); -emit_32(1092957084); -emit_32(1123680256); -emit_32(3255607309); -emit_32(1093043696); -emit_32(1123680256); -emit_32(3254386688); -emit_32(1092576367); -emit_32(1123680256); -emit_32(3252338714); -emit_32(1092381919); -emit_32(1123680256); -emit_32(3250290688); -emit_32(1093319052); -emit_32(1123680256); -emit_32(3248242714); -emit_32(1094929141); -emit_32(1123680256); -emit_32(3245998080); -emit_32(1096641151); -emit_32(1123680256); -emit_32(3241902132); -emit_32(1098022230); -emit_32(1123680256); -emit_32(3237609472); -emit_32(1098658716); -emit_32(1123680256); -emit_32(3229220864); -emit_32(1099385274); -emit_32(1123680256); -emit_32(0); -emit_32(1099998324); -emit_32(1123680256); -emit_32(1081737216); -emit_32(1100462372); -emit_32(1123680256); -emit_32(3279552512); -emit_32(1073527831); -emit_32(1123168289); -emit_32(3279296528); -emit_32(1067716203); -emit_32(1123168289); -emit_32(3279040545); -emit_32(1032802545); -emit_32(1123168289); -emit_32(3278784496); -emit_32(3215483554); -emit_32(1123168289); -emit_32(3278528512); -emit_32(3222614416); -emit_32(1123168289); -emit_32(3278272528); -emit_32(3226235358); -emit_32(1123168289); -emit_32(3278016545); -emit_32(3229265659); -emit_32(1123168289); -emit_32(3277760496); -emit_32(3229676575); -emit_32(1123168289); -emit_32(3277504512); -emit_32(3230314529); -emit_32(1123168289); -emit_32(3277248528); -emit_32(3227686797); -emit_32(1123168289); -emit_32(3276992545); -emit_32(3224163288); -emit_32(1123168289); -emit_32(3276736496); -emit_32(3224837816); -emit_32(1123168289); -emit_32(3276480512); -emit_32(3214911115); -emit_32(1123168289); -emit_32(3276224528); -emit_32(1045755414); -emit_32(1123168289); -emit_32(3275968545); -emit_32(1075946895); -emit_32(1123168289); -emit_32(3275712496); -emit_32(1083922239); -emit_32(1123168289); -emit_32(3275456512); -emit_32(1089208404); -emit_32(1123168289); -emit_32(3275200528); -emit_32(1091995729); -emit_32(1123168289); -emit_32(3274944545); -emit_32(1093743097); -emit_32(1123168289); -emit_32(3274688496); -emit_32(1094702019); -emit_32(1123168289); -emit_32(3274432512); -emit_32(1095065456); -emit_32(1123168289); -emit_32(3274176528); -emit_32(1095980443); -emit_32(1123168289); -emit_32(3273920545); -emit_32(1098763574); -emit_32(1123168289); -emit_32(3273664496); -emit_32(1100013791); -emit_32(1123168289); -emit_32(3273408512); -emit_32(1101157106); -emit_32(1123168289); -emit_32(3273152528); -emit_32(1102482401); -emit_32(1123168289); -emit_32(3272896545); -emit_32(1103806543); -emit_32(1123168289); -emit_32(3272640496); -emit_32(1104565135); -emit_32(1123168289); -emit_32(3272384512); -emit_32(1105773671); -emit_32(1123168289); -emit_32(3272128528); -emit_32(1106220312); -emit_32(1123168289); -emit_32(3271872545); -emit_32(1106669942); -emit_32(1123168289); -emit_32(3271616496); -emit_32(1107272401); -emit_32(1123168289); -emit_32(3271163904); -emit_32(1107768771); -emit_32(1123168289); -emit_32(3270651937); -emit_32(1108156770); -emit_32(1123168289); -emit_32(3270139970); -emit_32(1108407039); -emit_32(1123168289); -emit_32(3269627871); -emit_32(1108550903); -emit_32(1123168289); -emit_32(3269115904); -emit_32(1108478263); -emit_32(1123168289); -emit_32(3268603937); -emit_32(1108278274); -emit_32(1123168289); -emit_32(3268091970); -emit_32(1107762925); -emit_32(1123168289); -emit_32(3267579911); -emit_32(1106660819); -emit_32(1123168289); -emit_32(3267067904); -emit_32(1105273658); -emit_32(1123168289); -emit_32(3266555911); -emit_32(1104481668); -emit_32(1123168289); -emit_32(3266043904); -emit_32(1104168826); -emit_32(1123168289); -emit_32(3265531911); -emit_32(1103522536); -emit_32(1123168289); -emit_32(3265019904); -emit_32(1102851185); -emit_32(1123168289); -emit_32(3264507911); -emit_32(1101917061); -emit_32(1123168289); -emit_32(3263995904); -emit_32(1101010095); -emit_32(1123168289); -emit_32(3263483911); -emit_32(1099888329); -emit_32(1123168289); -emit_32(3262775296); -emit_32(1098570531); -emit_32(1123168289); -emit_32(3261751309); -emit_32(1096537866); -emit_32(1123168289); -emit_32(3260727296); -emit_32(1095068497); -emit_32(1123168289); -emit_32(3259703309); -emit_32(1094656406); -emit_32(1123168289); -emit_32(3258679296); -emit_32(1094724039); -emit_32(1123168289); -emit_32(3257655309); -emit_32(1093671584); -emit_32(1123168289); -emit_32(3256631296); -emit_32(1092454407); -emit_32(1123168289); -emit_32(3255607309); -emit_32(1092709935); -emit_32(1123168289); -emit_32(3254386688); -emit_32(1093178858); -emit_32(1123168289); -emit_32(3252338714); -emit_32(1092563312); -emit_32(1123168289); -emit_32(3250290688); -emit_32(1093668753); -emit_32(1123168289); -emit_32(3248242714); -emit_32(1095561013); -emit_32(1123168289); -emit_32(3245998080); -emit_32(1096702388); -emit_32(1123168289); -emit_32(3241902132); -emit_32(1097769524); -emit_32(1123168289); -emit_32(3237609472); -emit_32(1098298111); -emit_32(1123168289); -emit_32(3229220864); -emit_32(1098956931); -emit_32(1123168289); -emit_32(0); -emit_32(1099464022); -emit_32(1123168289); -emit_32(1081737216); -emit_32(1100235512); -emit_32(1123168289); -emit_32(3279552512); -emit_32(1074513450); -emit_32(1122656322); -emit_32(3279296528); -emit_32(1069684087); -emit_32(1122656322); -emit_32(3279040545); -emit_32(1059117578); -emit_32(1122656322); -emit_32(3278784496); -emit_32(3205587983); -emit_32(1122656322); -emit_32(3278528512); -emit_32(3221291239); -emit_32(1122656322); -emit_32(3278272528); -emit_32(3227143174); -emit_32(1122656322); -emit_32(3278016545); -emit_32(3228890898); -emit_32(1122656322); -emit_32(3277760496); -emit_32(3231744493); -emit_32(1122656322); -emit_32(3277504512); -emit_32(3231183211); -emit_32(1122656322); -emit_32(3277248528); -emit_32(3226713845); -emit_32(1122656322); -emit_32(3276992545); -emit_32(3222588579); -emit_32(1122656322); -emit_32(3276736496); -emit_32(3218835474); -emit_32(1122656322); -emit_32(3276480512); -emit_32(3214447728); -emit_32(1122656322); -emit_32(3276224528); -emit_32(1046529045); -emit_32(1122656322); -emit_32(3275968545); -emit_32(1070915199); -emit_32(1122656322); -emit_32(3275712496); -emit_32(1082866637); -emit_32(1122656322); -emit_32(3275456512); -emit_32(1087021578); -emit_32(1122656322); -emit_32(3275200528); -emit_32(1090529232); -emit_32(1122656322); -emit_32(3274944545); -emit_32(1092317201); -emit_32(1122656322); -emit_32(3274688496); -emit_32(1093426427); -emit_32(1122656322); -emit_32(3274432512); -emit_32(1094040158); -emit_32(1122656322); -emit_32(3274176528); -emit_32(1095262693); -emit_32(1122656322); -emit_32(3273920545); -emit_32(1097468792); -emit_32(1122656322); -emit_32(3273664496); -emit_32(1099540411); -emit_32(1122656322); -emit_32(3273408512); -emit_32(1100993213); -emit_32(1122656322); -emit_32(3273152528); -emit_32(1102819203); -emit_32(1122656322); -emit_32(3272896545); -emit_32(1104470763); -emit_32(1122656322); -emit_32(3272640496); -emit_32(1105442111); -emit_32(1122656322); -emit_32(3272384512); -emit_32(1106127356); -emit_32(1122656322); -emit_32(3272128528); -emit_32(1106807829); -emit_32(1122656322); -emit_32(3271872545); -emit_32(1107212108); -emit_32(1122656322); -emit_32(3271616496); -emit_32(1107339719); -emit_32(1122656322); -emit_32(3271163904); -emit_32(1108016575); -emit_32(1122656322); -emit_32(3270651937); -emit_32(1108361190); -emit_32(1122656322); -emit_32(3270139970); -emit_32(1108677807); -emit_32(1122656322); -emit_32(3269627871); -emit_32(1108698045); -emit_32(1122656322); -emit_32(3269115904); -emit_32(1108670415); -emit_32(1122656322); -emit_32(3268603937); -emit_32(1108385307); -emit_32(1122656322); -emit_32(3268091970); -emit_32(1107664044); -emit_32(1122656322); -emit_32(3267579911); -emit_32(1106926109); -emit_32(1122656322); -emit_32(3267067904); -emit_32(1105983491); -emit_32(1122656322); -emit_32(3266555911); -emit_32(1105752542); -emit_32(1122656322); -emit_32(3266043904); -emit_32(1105343650); -emit_32(1122656322); -emit_32(3265531911); -emit_32(1104481983); -emit_32(1122656322); -emit_32(3265019904); -emit_32(1103536377); -emit_32(1122656322); -emit_32(3264507911); -emit_32(1102421374); -emit_32(1122656322); -emit_32(3263995904); -emit_32(1101252526); -emit_32(1122656322); -emit_32(3263483911); -emit_32(1099947835); -emit_32(1122656322); -emit_32(3262775296); -emit_32(1099066665); -emit_32(1122656322); -emit_32(3261751309); -emit_32(1097029334); -emit_32(1122656322); -emit_32(3260727296); -emit_32(1095561223); -emit_32(1122656322); -emit_32(3259703309); -emit_32(1095286181); -emit_32(1122656322); -emit_32(3258679296); -emit_32(1094900095); -emit_32(1122656322); -emit_32(3257655309); -emit_32(1093810625); -emit_32(1122656322); -emit_32(3256631296); -emit_32(1093100949); -emit_32(1122656322); -emit_32(3255607309); -emit_32(1093720133); -emit_32(1122656322); -emit_32(3254386688); -emit_32(1094140822); -emit_32(1122656322); -emit_32(3252338714); -emit_32(1093200983); -emit_32(1122656322); -emit_32(3250290688); -emit_32(1093279731); -emit_32(1122656322); -emit_32(3248242714); -emit_32(1095297296); -emit_32(1122656322); -emit_32(3245998080); -emit_32(1096326998); -emit_32(1122656322); -emit_32(3241902132); -emit_32(1097208116); -emit_32(1122656322); -emit_32(3237609472); -emit_32(1098363332); -emit_32(1122656322); -emit_32(3229220864); -emit_32(1098960496); -emit_32(1122656322); -emit_32(0); -emit_32(1099624612); -emit_32(1122656322); -emit_32(1081737216); -emit_32(1100438045); -emit_32(1122656322); -emit_start(Landscape07Vtx) -emit_32(1081737216); -emit_32(1111930149); -emit_32(3270651937); -emit_32(1081737216); -emit_32(1111592455); -emit_32(3270139970); -emit_32(1090125824); -emit_32(1111718284); -emit_32(3270651937); -emit_32(1090125824); -emit_32(1111491609); -emit_32(3270139970); -emit_32(1094418484); -emit_32(1111318934); -emit_32(3270651937); -emit_32(1094418484); -emit_32(1111194940); -emit_32(3270139970); -emit_32(1098514432); -emit_32(1110681374); -emit_32(3270651937); -emit_32(1098514432); -emit_32(1110835331); -emit_32(3270139970); -emit_32(1100759066); -emit_32(1110219843); -emit_32(3270651937); -emit_32(1100759066); -emit_32(1110275365); -emit_32(3270139970); -emit_32(1102807040); -emit_32(1109758994); -emit_32(3270651937); -emit_32(1102807040); -emit_32(1110005567); -emit_32(3270139970); -emit_32(1104855066); -emit_32(1109428771); -emit_32(3270651937); -emit_32(1104855066); -emit_32(1109696499); -emit_32(3270139970); -emit_32(1106903040); -emit_32(1109202908); -emit_32(3270651937); -emit_32(1106903040); -emit_32(1109176772); -emit_32(3270139970); -emit_32(1108123661); -emit_32(1108966585); -emit_32(3270651937); -emit_32(1108123661); -emit_32(1108885556); -emit_32(3270139970); -emit_32(1109147648); -emit_32(1108648919); -emit_32(3270651937); -emit_32(1109147648); -emit_32(1108468774); -emit_32(3270139970); -emit_32(1110171661); -emit_32(1108152890); -emit_32(3270651937); -emit_32(1110171661); -emit_32(1108030285); -emit_32(3270139970); -emit_32(1111195648); -emit_32(1107519839); -emit_32(3270651937); -emit_32(1111195648); -emit_32(1107430028); -emit_32(3270139970); -emit_32(1112219661); -emit_32(1107320478); -emit_32(3270651937); -emit_32(1112219661); -emit_32(1107103737); -emit_32(3270139970); -emit_32(1113243648); -emit_32(1107611170); -emit_32(3270651937); -emit_32(1113243648); -emit_32(1107092098); -emit_32(3270139970); -emit_32(1114267661); -emit_32(1107859839); -emit_32(3270651937); -emit_32(1114267661); -emit_32(1107375004); -emit_32(3270139970); -emit_32(1115291648); -emit_32(1107759596); -emit_32(3270651937); -emit_32(1115291648); -emit_32(1107478708); -emit_32(3270139970); -emit_32(1116000263); -emit_32(1107948785); -emit_32(3270651937); -emit_32(1116000263); -emit_32(1107657884); -emit_32(3270139970); -emit_32(1116512256); -emit_32(1108015605); -emit_32(3270651937); -emit_32(1116512256); -emit_32(1107812575); -emit_32(3270139970); -emit_32(1117024263); -emit_32(1108198949); -emit_32(3270651937); -emit_32(1117024263); -emit_32(1108062005); -emit_32(3270139970); -emit_32(1117536256); -emit_32(1108525082); -emit_32(3270651937); -emit_32(1117536256); -emit_32(1108546316); -emit_32(3270139970); -emit_32(1118048263); -emit_32(1108838475); -emit_32(3270651937); -emit_32(1118048263); -emit_32(1108808198); -emit_32(3270139970); -emit_32(1118560256); -emit_32(1108830663); -emit_32(3270651937); -emit_32(1118560256); -emit_32(1108821253); -emit_32(3270139970); -emit_32(1119072263); -emit_32(1108933791); -emit_32(3270651937); -emit_32(1119072263); -emit_32(1108944565); -emit_32(3270139970); -emit_32(1119584256); -emit_32(1109285510); -emit_32(3270651937); -emit_32(1119584256); -emit_32(1109292509); -emit_32(3270139970); -emit_32(1120096263); -emit_32(1109319064); -emit_32(3270651937); -emit_32(1120096263); -emit_32(1109325827); -emit_32(3270139970); -emit_32(1120608322); -emit_32(1109471003); -emit_32(3270651937); -emit_32(1120608322); -emit_32(1109645355); -emit_32(3270139970); -emit_32(1121120289); -emit_32(1109582728); -emit_32(3270651937); -emit_32(1121120289); -emit_32(1109627555); -emit_32(3270139970); -emit_32(1121632256); -emit_32(1109427592); -emit_32(3270651937); -emit_32(1121632256); -emit_32(1109566502); -emit_32(3270139970); -emit_32(1122144223); -emit_32(1109250959); -emit_32(3270651937); -emit_32(1122144223); -emit_32(1109470347); -emit_32(3270139970); -emit_32(1122656322); -emit_32(1109132050); -emit_32(3270651937); -emit_32(1122656322); -emit_32(1109358831); -emit_32(3270139970); -emit_32(1123168289); -emit_32(1108892975); -emit_32(3270651937); -emit_32(1123168289); -emit_32(1109156561); -emit_32(3270139970); -emit_32(1123680256); -emit_32(1108663599); -emit_32(3270651937); -emit_32(1123680256); -emit_32(1108641920); -emit_32(3270139970); -emit_32(1124132848); -emit_32(1108204087); -emit_32(3270651937); -emit_32(1124132848); -emit_32(1108219580); -emit_32(3270139970); -emit_32(1124388897); -emit_32(1107681555); -emit_32(3270651937); -emit_32(1124388897); -emit_32(1107796112); -emit_32(3270139970); -emit_32(1124644880); -emit_32(1107061165); -emit_32(3270651937); -emit_32(1124644880); -emit_32(1107364885); -emit_32(3270139970); -emit_32(1124900864); -emit_32(1105549119); -emit_32(3270651937); -emit_32(1124900864); -emit_32(1106177268); -emit_32(3270139970); -emit_32(1125156848); -emit_32(1104447065); -emit_32(3270651937); -emit_32(1125156848); -emit_32(1105288443); -emit_32(3270139970); -emit_32(1125412897); -emit_32(1103204817); -emit_32(3270651937); -emit_32(1125412897); -emit_32(1104753197); -emit_32(3270139970); -emit_32(1125668880); -emit_32(1102168352); -emit_32(3270651937); -emit_32(1125668880); -emit_32(1103375473); -emit_32(3270139970); -emit_32(1125924864); -emit_32(1101100116); -emit_32(3270651937); -emit_32(1125924864); -emit_32(1102075344); -emit_32(3270139970); -emit_32(1126180848); -emit_32(1099752591); -emit_32(3270651937); -emit_32(1126180848); -emit_32(1100964849); -emit_32(3270139970); -emit_32(1126436897); -emit_32(1098425093); -emit_32(3270651937); -emit_32(1126436897); -emit_32(1099792384); -emit_32(3270139970); -emit_32(1126692880); -emit_32(1096597845); -emit_32(3270651937); -emit_32(1126692880); -emit_32(1098450049); -emit_32(3270139970); -emit_32(1126948864); -emit_32(1094429285); -emit_32(3270651937); -emit_32(1126948864); -emit_32(1096338322); -emit_32(3270139970); -emit_32(1127204848); -emit_32(1091900413); -emit_32(3270651937); -emit_32(1127204848); -emit_32(1093954280); -emit_32(3270139970); -emit_32(1127460897); -emit_32(1087591940); -emit_32(3270651937); -emit_32(1127460897); -emit_32(1091524247); -emit_32(3270139970); -emit_32(1127716880); -emit_32(1083181671); -emit_32(3270651937); -emit_32(1127716880); -emit_32(1088518839); -emit_32(3270139970); -emit_32(1127972864); -emit_32(1076995723); -emit_32(3270651937); -emit_32(1127972864); -emit_32(1083884385); -emit_32(3270139970); -emit_32(1128228848); -emit_32(1068649268); -emit_32(3270651937); -emit_32(1128228848); -emit_32(1076931424); -emit_32(3270139970); -emit_32(1128484897); -emit_32(3216283995); -emit_32(3270651937); -emit_32(1128484897); -emit_32(1044557454); -emit_32(3270139970); -emit_32(1128740880); -emit_32(3221805544); -emit_32(3270651937); -emit_32(1128740880); -emit_32(3205427693); -emit_32(3270139970); -emit_32(1128996864); -emit_32(3223037537); -emit_32(3270651937); -emit_32(1128996864); -emit_32(3213113940); -emit_32(3270139970); -emit_32(1129252848); -emit_32(3228540254); -emit_32(3270651937); -emit_32(1129252848); -emit_32(3221962118); -emit_32(3270139970); -emit_32(1129508897); -emit_32(3230275333); -emit_32(3270651937); -emit_32(1129508897); -emit_32(3220483500); -emit_32(3270139970); -emit_32(1129764880); -emit_32(3232612273); -emit_32(3270651937); -emit_32(1129764880); -emit_32(3225420531); -emit_32(3270139970); -emit_32(1130020864); -emit_32(3235277565); -emit_32(3270651937); -emit_32(1130020864); -emit_32(3230173831); -emit_32(3270139970); -emit_32(1130276848); -emit_32(3234218671); -emit_32(3270651937); -emit_32(1130276848); -emit_32(3232043735); -emit_32(3270139970); -emit_32(1130532897); -emit_32(3231045470); -emit_32(3270651937); -emit_32(1130532897); -emit_32(3227363752); -emit_32(3270139970); -emit_32(1130788880); -emit_32(3226755997); -emit_32(3270651937); -emit_32(1130788880); -emit_32(3221899790); -emit_32(3270139970); -emit_32(1131044864); -emit_32(3229128715); -emit_32(3270651937); -emit_32(1131044864); -emit_32(3216845360); -emit_32(3270139970); -emit_32(1131300848); -emit_32(3228788683); -emit_32(3270651937); -emit_32(1131300848); -emit_32(3219415546); -emit_32(3270139970); -emit_32(1131556897); -emit_32(3227247276); -emit_32(3270651937); -emit_32(1131556897); -emit_32(3212863456); -emit_32(3270139970); -emit_32(1131812880); -emit_32(3228672710); -emit_32(3270651937); -emit_32(1131812880); -emit_32(3221056106); -emit_32(3270139970); -emit_32(1132068864); -emit_32(3228908137); -emit_32(3270651937); -emit_32(1132068864); -emit_32(3222457423); -emit_32(3270139970); -emit_32(1081737216); -emit_32(1112094042); -emit_32(3271163904); -emit_32(1090125824); -emit_32(1112019724); -emit_32(3271163904); -emit_32(1094418484); -emit_32(1111438813); -emit_32(3271163904); -emit_32(1098514432); -emit_32(1110812184); -emit_32(3271163904); -emit_32(1100759066); -emit_32(1110106545); -emit_32(3271163904); -emit_32(1102807040); -emit_32(1109946348); -emit_32(3271163904); -emit_32(1104855066); -emit_32(1109673168); -emit_32(3271163904); -emit_32(1106903040); -emit_32(1109472471); -emit_32(3271163904); -emit_32(1108123661); -emit_32(1108974240); -emit_32(3271163904); -emit_32(1109147648); -emit_32(1108497164); -emit_32(3271163904); -emit_32(1110171661); -emit_32(1108102899); -emit_32(3271163904); -emit_32(1111195648); -emit_32(1107538870); -emit_32(3271163904); -emit_32(1112219661); -emit_32(1106915413); -emit_32(3271163904); -emit_32(1113243648); -emit_32(1107679563); -emit_32(3271163904); -emit_32(1114267661); -emit_32(1107902857); -emit_32(3271163904); -emit_32(1115291648); -emit_32(1107930251); -emit_32(3271163904); -emit_32(1116000263); -emit_32(1107983335); -emit_32(3271163904); -emit_32(1116512256); -emit_32(1108070420); -emit_32(3271163904); -emit_32(1117024263); -emit_32(1108274184); -emit_32(3271163904); -emit_32(1117536256); -emit_32(1108723525); -emit_32(3271163904); -emit_32(1118048263); -emit_32(1108785863); -emit_32(3271163904); -emit_32(1118560256); -emit_32(1108864795); -emit_32(3271163904); -emit_32(1119072263); -emit_32(1109018883); -emit_32(3271163904); -emit_32(1119584256); -emit_32(1109278065); -emit_32(3271163904); -emit_32(1120096263); -emit_32(1109410316); -emit_32(3271163904); -emit_32(1120608322); -emit_32(1109373406); -emit_32(3271163904); -emit_32(1121120289); -emit_32(1109364887); -emit_32(3271163904); -emit_32(1121632256); -emit_32(1109384967); -emit_32(3271163904); -emit_32(1122144223); -emit_32(1109332197); -emit_32(3271163904); -emit_32(1122656322); -emit_32(1109067825); -emit_32(3271163904); -emit_32(1123168289); -emit_32(1108783609); -emit_32(3271163904); -emit_32(1123680256); -emit_32(1108563460); -emit_32(3271163904); -emit_32(1124132848); -emit_32(1108020743); -emit_32(3271163904); -emit_32(1124388897); -emit_32(1107280056); -emit_32(3271163904); -emit_32(1124644880); -emit_32(1106630987); -emit_32(3271163904); -emit_32(1124900864); -emit_32(1105186941); -emit_32(3271163904); -emit_32(1125156848); -emit_32(1103741583); -emit_32(3271163904); -emit_32(1125412897); -emit_32(1102190530); -emit_32(3271163904); -emit_32(1125668880); -emit_32(1101340292); -emit_32(3271163904); -emit_32(1125924864); -emit_32(1100447115); -emit_32(3271163904); -emit_32(1126180848); -emit_32(1099367868); -emit_32(3271163904); -emit_32(1126436897); -emit_32(1097589064); -emit_32(3271163904); -emit_32(1126692880); -emit_32(1095164127); -emit_32(3271163904); -emit_32(1126948864); -emit_32(1092722832); -emit_32(3271163904); -emit_32(1127204848); -emit_32(1090145097); -emit_32(3271163904); -emit_32(1127460897); -emit_32(1085202802); -emit_32(3271163904); -emit_32(1127716880); -emit_32(1076722968); -emit_32(3271163904); -emit_32(1127972864); -emit_32(1066002159); -emit_32(3271163904); -emit_32(1128228848); -emit_32(3206002464); -emit_32(3271163904); -emit_32(1128484897); -emit_32(3225385089); -emit_32(3271163904); -emit_32(1128740880); -emit_32(3230254068); -emit_32(3271163904); -emit_32(1128996864); -emit_32(3231283224); -emit_32(3271163904); -emit_32(1129252848); -emit_32(3234493545); -emit_32(3271163904); -emit_32(1129508897); -emit_32(3235258355); -emit_32(3271163904); -emit_32(1129764880); -emit_32(3238361175); -emit_32(3271163904); -emit_32(1130020864); -emit_32(3238992240); -emit_32(3271163904); -emit_32(1130276848); -emit_32(3236249825); -emit_32(3271163904); -emit_32(1130532897); -emit_32(3232841681); -emit_32(3271163904); -emit_32(1130788880); -emit_32(3231925288); -emit_32(3271163904); -emit_32(1131044864); -emit_32(3233336672); -emit_32(3271163904); -emit_32(1131300848); -emit_32(3232958618); -emit_32(3271163904); -emit_32(1131556897); -emit_32(3233414623); -emit_32(3271163904); -emit_32(1131812880); -emit_32(3232723968); -emit_32(3271163904); -emit_32(1132068864); -emit_32(3232386725); -emit_32(3271163904); -emit_32(1081737216); -emit_32(1112138475); -emit_32(3271616496); -emit_32(1090125824); -emit_32(1112117661); -emit_32(3271616496); -emit_32(1094418484); -emit_32(1111516696); -emit_32(3271616496); -emit_32(1098514432); -emit_32(1110701375); -emit_32(3271616496); -emit_32(1100759066); -emit_32(1110259479); -emit_32(3271616496); -emit_32(1102807040); -emit_32(1110148252); -emit_32(3271616496); -emit_32(1104855066); -emit_32(1109941420); -emit_32(3271616496); -emit_32(1106903040); -emit_32(1109408245); -emit_32(3271616496); -emit_32(1108123661); -emit_32(1108791106); -emit_32(3271616496); -emit_32(1109147648); -emit_32(1108280161); -emit_32(3271616496); -emit_32(1110171661); -emit_32(1107557063); -emit_32(3271616496); -emit_32(1111195648); -emit_32(1107163926); -emit_32(3271616496); -emit_32(1112219661); -emit_32(1106741192); -emit_32(3271616496); -emit_32(1113243648); -emit_32(1107262911); -emit_32(3271616496); -emit_32(1114267661); -emit_32(1107611563); -emit_32(3271616496); -emit_32(1115291648); -emit_32(1107823244); -emit_32(3271616496); -emit_32(1116000263); -emit_32(1107902490); -emit_32(3271616496); -emit_32(1116512256); -emit_32(1107980347); -emit_32(3271616496); -emit_32(1117024263); -emit_32(1108314974); -emit_32(3271616496); -emit_32(1117536256); -emit_32(1108495670); -emit_32(3271616496); -emit_32(1118048263); -emit_32(1108580998); -emit_32(3271616496); -emit_32(1118560256); -emit_32(1108703707); -emit_32(3271616496); -emit_32(1119072263); -emit_32(1108940790); -emit_32(3271616496); -emit_32(1119584256); -emit_32(1109066200); -emit_32(3271616496); -emit_32(1120096263); -emit_32(1109329864); -emit_32(3271616496); -emit_32(1120608322); -emit_32(1109220734); -emit_32(3271616496); -emit_32(1121120289); -emit_32(1109504138); -emit_32(3271616496); -emit_32(1121632256); -emit_32(1109526053); -emit_32(3271616496); -emit_32(1122144223); -emit_32(1109328108); -emit_32(3271616496); -emit_32(1122656322); -emit_32(1109031859); -emit_32(3271616496); -emit_32(1123168289); -emit_32(1108646638); -emit_32(3271616496); -emit_32(1123680256); -emit_32(1108345618); -emit_32(3271616496); -emit_32(1124132848); -emit_32(1107854806); -emit_32(3271616496); -emit_32(1124388897); -emit_32(1107061532); -emit_32(3271616496); -emit_32(1124644880); -emit_32(1105828407); -emit_32(3271616496); -emit_32(1124900864); -emit_32(1104345458); -emit_32(3271616496); -emit_32(1125156848); -emit_32(1103146569); -emit_32(3271616496); -emit_32(1125412897); -emit_32(1101554883); -emit_32(3271616496); -emit_32(1125668880); -emit_32(1100465255); -emit_32(3271616496); -emit_32(1125924864); -emit_32(1099197894); -emit_32(3271616496); -emit_32(1126180848); -emit_32(1097396440); -emit_32(3271616496); -emit_32(1126436897); -emit_32(1095592680); -emit_32(3271616496); -emit_32(1126692880); -emit_32(1093988988); -emit_32(3271616496); -emit_32(1126948864); -emit_32(1091770998); -emit_32(3271616496); -emit_32(1127204848); -emit_32(1088099283); -emit_32(3271616496); -emit_32(1127460897); -emit_32(1081294172); -emit_32(3271616496); -emit_32(1127716880); -emit_32(1060903076); -emit_32(3271616496); -emit_32(1127972864); -emit_32(1039720717); -emit_32(3271616496); -emit_32(1128228848); -emit_32(3220556900); -emit_32(3271616496); -emit_32(1128484897); -emit_32(3232451338); -emit_32(3271616496); -emit_32(1128740880); -emit_32(3236043424); -emit_32(3271616496); -emit_32(1128996864); -emit_32(3238289211); -emit_32(3271616496); -emit_32(1129252848); -emit_32(3238868193); -emit_32(3271616496); -emit_32(1129508897); -emit_32(3239430691); -emit_32(3271616496); -emit_32(1129764880); -emit_32(3241001301); -emit_32(3271616496); -emit_32(1130020864); -emit_32(3240828600); -emit_32(3271616496); -emit_32(1130276848); -emit_32(3238957018); -emit_32(3271616496); -emit_32(1130532897); -emit_32(3238262997); -emit_32(3271616496); -emit_32(1130788880); -emit_32(3237575372); -emit_32(3271616496); -emit_32(1131044864); -emit_32(3235372398); -emit_32(3271616496); -emit_32(1131300848); -emit_32(3236771345); -emit_32(3271616496); -emit_32(1131556897); -emit_32(3235935337); -emit_32(3271616496); -emit_32(1131812880); -emit_32(3235730822); -emit_32(3271616496); -emit_32(1132068864); -emit_32(3234015499); -emit_32(3271616496); -emit_32(1081737216); -emit_32(1111780334); -emit_32(3271872545); -emit_32(1090125824); -emit_32(1111692673); -emit_32(3271872545); -emit_32(1094418484); -emit_32(1111222256); -emit_32(3271872545); -emit_32(1098514432); -emit_32(1110566135); -emit_32(3271872545); -emit_32(1100759066); -emit_32(1110232950); -emit_32(3271872545); -emit_32(1102807040); -emit_32(1109993665); -emit_32(3271872545); -emit_32(1104855066); -emit_32(1109851950); -emit_32(3271872545); -emit_32(1106903040); -emit_32(1109283098); -emit_32(3271872545); -emit_32(1108123661); -emit_32(1108493022); -emit_32(3271872545); -emit_32(1109147648); -emit_32(1107705515); -emit_32(3271872545); -emit_32(1110171661); -emit_32(1107275494); -emit_32(3271872545); -emit_32(1111195648); -emit_32(1106747326); -emit_32(3271872545); -emit_32(1112219661); -emit_32(1106557639); -emit_32(3271872545); -emit_32(1113243648); -emit_32(1107170427); -emit_32(3271872545); -emit_32(1114267661); -emit_32(1107580499); -emit_32(3271872545); -emit_32(1115291648); -emit_32(1107671725); -emit_32(3271872545); -emit_32(1116000263); -emit_32(1107801250); -emit_32(3271872545); -emit_32(1116512256); -emit_32(1107801355); -emit_32(3271872545); -emit_32(1117024263); -emit_32(1107771313); -emit_32(3271872545); -emit_32(1117536256); -emit_32(1108068427); -emit_32(3271872545); -emit_32(1118048263); -emit_32(1108248048); -emit_32(3271872545); -emit_32(1118560256); -emit_32(1108300713); -emit_32(3271872545); -emit_32(1119072263); -emit_32(1108561232); -emit_32(3271872545); -emit_32(1119584256); -emit_32(1108758521); -emit_32(3271872545); -emit_32(1120096263); -emit_32(1109143559); -emit_32(3271872545); -emit_32(1120608322); -emit_32(1109106360); -emit_32(3271872545); -emit_32(1121120289); -emit_32(1109227104); -emit_32(3271872545); -emit_32(1121632256); -emit_32(1109385701); -emit_32(3271872545); -emit_32(1122144223); -emit_32(1109080854); -emit_32(3271872545); -emit_32(1122656322); -emit_32(1108826600); -emit_32(3271872545); -emit_32(1123168289); -emit_32(1108564194); -emit_32(3271872545); -emit_32(1123680256); -emit_32(1108304829); -emit_32(3271872545); -emit_32(1124132848); -emit_32(1107781275); -emit_32(3271872545); -emit_32(1124388897); -emit_32(1107099700); -emit_32(3271872545); -emit_32(1124644880); -emit_32(1105344908); -emit_32(3271872545); -emit_32(1124900864); -emit_32(1103617904); -emit_32(3271872545); -emit_32(1125156848); -emit_32(1102172966); -emit_32(3271872545); -emit_32(1125412897); -emit_32(1100636435); -emit_32(3271872545); -emit_32(1125668880); -emit_32(1099511418); -emit_32(3271872545); -emit_32(1125924864); -emit_32(1097613076); -emit_32(3271872545); -emit_32(1126180848); -emit_32(1095954124); -emit_32(3271872545); -emit_32(1126436897); -emit_32(1093684062); -emit_32(3271872545); -emit_32(1126692880); -emit_32(1091734235); -emit_32(3271872545); -emit_32(1126948864); -emit_32(1088057634); -emit_32(3271872545); -emit_32(1127204848); -emit_32(1082772853); -emit_32(3271872545); -emit_32(1127460897); -emit_32(1073941095); -emit_32(3271872545); -emit_32(1127716880); -emit_32(3208567734); -emit_32(3271872545); -emit_32(1127972864); -emit_32(3214907844); -emit_32(3271872545); -emit_32(1128228848); -emit_32(3228392866); -emit_32(3271872545); -emit_32(1128484897); -emit_32(3236333837); -emit_32(3271872545); -emit_32(1128740880); -emit_32(3239712465); -emit_32(3271872545); -emit_32(1128996864); -emit_32(3240772082); -emit_32(3271872545); -emit_32(1129252848); -emit_32(3241312099); -emit_32(3271872545); -emit_32(1129508897); -emit_32(3242196782); -emit_32(3271872545); -emit_32(1129764880); -emit_32(3243389118); -emit_32(3271872545); -emit_32(1130020864); -emit_32(3242673360); -emit_32(3271872545); -emit_32(1130276848); -emit_32(3241675955); -emit_32(3271872545); -emit_32(1130532897); -emit_32(3241634116); -emit_32(3271872545); -emit_32(1130788880); -emit_32(3240687986); -emit_32(3271872545); -emit_32(1131044864); -emit_32(3240058075); -emit_32(3271872545); -emit_32(1131300848); -emit_32(3239722845); -emit_32(3271872545); -emit_32(1131556897); -emit_32(3238832237); -emit_32(3271872545); -emit_32(1131812880); -emit_32(3238354108); -emit_32(3271872545); -emit_32(1132068864); -emit_32(3234493083); -emit_32(3271872545); -emit_32(1081737216); -emit_32(1111464346); -emit_32(3272128528); -emit_32(1090125824); -emit_32(1111239505); -emit_32(3272128528); -emit_32(1094418484); -emit_32(1110994767); -emit_32(3272128528); -emit_32(1098514432); -emit_32(1110132890); -emit_32(3272128528); -emit_32(1100759066); -emit_32(1109887445); -emit_32(3272128528); -emit_32(1102807040); -emit_32(1109762271); -emit_32(3272128528); -emit_32(1104855066); -emit_32(1109309469); -emit_32(3272128528); -emit_32(1106903040); -emit_32(1108918429); -emit_32(3272128528); -emit_32(1108123661); -emit_32(1108186287); -emit_32(3272128528); -emit_32(1109147648); -emit_32(1107206970); -emit_32(3272128528); -emit_32(1110171661); -emit_32(1106779308); -emit_32(3272128528); -emit_32(1111195648); -emit_32(1105875436); -emit_32(3272128528); -emit_32(1112219661); -emit_32(1105956962); -emit_32(3272128528); -emit_32(1113243648); -emit_32(1106440618); -emit_32(3272128528); -emit_32(1114267661); -emit_32(1107100225); -emit_32(3272128528); -emit_32(1115291648); -emit_32(1107233499); -emit_32(3272128528); -emit_32(1116000263); -emit_32(1107508645); -emit_32(3272128528); -emit_32(1116512256); -emit_32(1107671935); -emit_32(3272128528); -emit_32(1117024263); -emit_32(1107608207); -emit_32(3272128528); -emit_32(1117536256); -emit_32(1107752387); -emit_32(3272128528); -emit_32(1118048263); -emit_32(1108110134); -emit_32(3272128528); -emit_32(1118560256); -emit_32(1108408690); -emit_32(3272128528); -emit_32(1119072263); -emit_32(1108474017); -emit_32(3272128528); -emit_32(1119584256); -emit_32(1108395164); -emit_32(3272128528); -emit_32(1120096263); -emit_32(1108750369); -emit_32(3272128528); -emit_32(1120608322); -emit_32(1108885688); -emit_32(3272128528); -emit_32(1121120289); -emit_32(1109040851); -emit_32(3272128528); -emit_32(1121632256); -emit_32(1108986665); -emit_32(3272128528); -emit_32(1122144223); -emit_32(1108827727); -emit_32(3272128528); -emit_32(1122656322); -emit_32(1108753462); -emit_32(3272128528); -emit_32(1123168289); -emit_32(1108679852); -emit_32(3272128528); -emit_32(1123680256); -emit_32(1108175513); -emit_32(3272128528); -emit_32(1124132848); -emit_32(1107583015); -emit_32(3272128528); -emit_32(1124388897); -emit_32(1106521358); -emit_32(3272128528); -emit_32(1124644880); -emit_32(1104987134); -emit_32(3272128528); -emit_32(1124900864); -emit_32(1103342862); -emit_32(3272128528); -emit_32(1125156848); -emit_32(1101546652); -emit_32(3272128528); -emit_32(1125412897); -emit_32(1099964770); -emit_32(3272128528); -emit_32(1125668880); -emit_32(1098242746); -emit_32(3272128528); -emit_32(1125924864); -emit_32(1096185125); -emit_32(3272128528); -emit_32(1126180848); -emit_32(1094379792); -emit_32(3272128528); -emit_32(1126436897); -emit_32(1092287841); -emit_32(3272128528); -emit_32(1126692880); -emit_32(1089612693); -emit_32(3272128528); -emit_32(1126948864); -emit_32(1083167159); -emit_32(3272128528); -emit_32(1127204848); -emit_32(1069990774); -emit_32(3272128528); -emit_32(1127460897); -emit_32(1049416773); -emit_32(3272128528); -emit_32(1127716880); -emit_32(3222071379); -emit_32(3272128528); -emit_32(1127972864); -emit_32(3226126181); -emit_32(3272128528); -emit_32(1128228848); -emit_32(3233267570); -emit_32(3272128528); -emit_32(1128484897); -emit_32(3238358344); -emit_32(3272128528); -emit_32(1128740880); -emit_32(3242189233); -emit_32(3272128528); -emit_32(1128996864); -emit_32(3244019627); -emit_32(3272128528); -emit_32(1129252848); -emit_32(3244520951); -emit_32(3272128528); -emit_32(1129508897); -emit_32(3245091062); -emit_32(3272128528); -emit_32(1129764880); -emit_32(3245124302); -emit_32(3272128528); -emit_32(1130020864); -emit_32(3245824436); -emit_32(3272128528); -emit_32(1130276848); -emit_32(3245103854); -emit_32(3272128528); -emit_32(1130532897); -emit_32(3245100184); -emit_32(3272128528); -emit_32(1130788880); -emit_32(3243298207); -emit_32(3272128528); -emit_32(1131044864); -emit_32(3242985731); -emit_32(3272128528); -emit_32(1131300848); -emit_32(3242330895); -emit_32(3272128528); -emit_32(1131556897); -emit_32(3242176545); -emit_32(3272128528); -emit_32(1131812880); -emit_32(3239330856); -emit_32(3272128528); -emit_32(1132068864); -emit_32(3234703260); -emit_32(3272128528); -emit_32(1081737216); -emit_32(1111298697); -emit_32(3272384512); -emit_32(1090125824); -emit_32(1111058363); -emit_32(3272384512); -emit_32(1094418484); -emit_32(1110735087); -emit_32(3272384512); -emit_32(1098514432); -emit_32(1110169171); -emit_32(3272384512); -emit_32(1100759066); -emit_32(1109403894); -emit_32(3272384512); -emit_32(1102807040); -emit_32(1108912557); -emit_32(3272384512); -emit_32(1104855066); -emit_32(1108673482); -emit_32(3272384512); -emit_32(1106903040); -emit_32(1108260081); -emit_32(3272384512); -emit_32(1108123661); -emit_32(1107647870); -emit_32(3272384512); -emit_32(1109147648); -emit_32(1106643832); -emit_32(3272384512); -emit_32(1110171661); -emit_32(1105736919); -emit_32(3272384512); -emit_32(1111195648); -emit_32(1105100643); -emit_32(3272384512); -emit_32(1112219661); -emit_32(1104911375); -emit_32(3272384512); -emit_32(1113243648); -emit_32(1105299348); -emit_32(3272384512); -emit_32(1114267661); -emit_32(1106150267); -emit_32(3272384512); -emit_32(1115291648); -emit_32(1106320766); -emit_32(3272384512); -emit_32(1116000263); -emit_32(1106620187); -emit_32(3272384512); -emit_32(1116512256); -emit_32(1107259294); -emit_32(3272384512); -emit_32(1117024263); -emit_32(1107471604); -emit_32(3272384512); -emit_32(1117536256); -emit_32(1107538267); -emit_32(3272384512); -emit_32(1118048263); -emit_32(1108219553); -emit_32(3272384512); -emit_32(1118560256); -emit_32(1108391625); -emit_32(3272384512); -emit_32(1119072263); -emit_32(1108309180); -emit_32(3272384512); -emit_32(1119584256); -emit_32(1108147516); -emit_32(3272384512); -emit_32(1120096263); -emit_32(1108248730); -emit_32(3272384512); -emit_32(1120608322); -emit_32(1108495801); -emit_32(3272384512); -emit_32(1121120289); -emit_32(1108672669); -emit_32(3272384512); -emit_32(1121632256); -emit_32(1108534860); -emit_32(3272384512); -emit_32(1122144223); -emit_32(1108457213); -emit_32(3272384512); -emit_32(1122656322); -emit_32(1108523588); -emit_32(3272384512); -emit_32(1123168289); -emit_32(1108457397); -emit_32(3272384512); -emit_32(1123680256); -emit_32(1108144502); -emit_32(3272384512); -emit_32(1124132848); -emit_32(1107554966); -emit_32(3272384512); -emit_32(1124388897); -emit_32(1106329469); -emit_32(3272384512); -emit_32(1124644880); -emit_32(1104699510); -emit_32(3272384512); -emit_32(1124900864); -emit_32(1103026140); -emit_32(3272384512); -emit_32(1125156848); -emit_32(1101214148); -emit_32(3272384512); -emit_32(1125412897); -emit_32(1099233965); -emit_32(3272384512); -emit_32(1125668880); -emit_32(1095822737); -emit_32(3272384512); -emit_32(1125924864); -emit_32(1093805801); -emit_32(3272384512); -emit_32(1126180848); -emit_32(1091936012); -emit_32(3272384512); -emit_32(1126436897); -emit_32(1089180931); -emit_32(3272384512); -emit_32(1126692880); -emit_32(1084894877); -emit_32(3272384512); -emit_32(1126948864); -emit_32(1077040728); -emit_32(3272384512); -emit_32(1127204848); -emit_32(1063155099); -emit_32(3272384512); -emit_32(1127460897); -emit_32(3215476340); -emit_32(3272384512); -emit_32(1127716880); -emit_32(3228112477); -emit_32(3272384512); -emit_32(1127972864); -emit_32(3232515133); -emit_32(3272384512); -emit_32(1128228848); -emit_32(3238089206); -emit_32(3272384512); -emit_32(1128484897); -emit_32(3241062852); -emit_32(3272384512); -emit_32(1128740880); -emit_32(3244581139); -emit_32(3272384512); -emit_32(1128996864); -emit_32(3246469677); -emit_32(3272384512); -emit_32(1129252848); -emit_32(3246870181); -emit_32(3272384512); -emit_32(1129508897); -emit_32(3246893302); -emit_32(3272384512); -emit_32(1129764880); -emit_32(3247231363); -emit_32(3272384512); -emit_32(1130020864); -emit_32(3247263344); -emit_32(3272384512); -emit_32(1130276848); -emit_32(3246998946); -emit_32(3272384512); -emit_32(1130532897); -emit_32(3246499404); -emit_32(3272384512); -emit_32(1130788880); -emit_32(3246148551); -emit_32(3272384512); -emit_32(1131044864); -emit_32(3245400077); -emit_32(3272384512); -emit_32(1131300848); -emit_32(3245118115); -emit_32(3272384512); -emit_32(1131556897); -emit_32(3243091847); -emit_32(3272384512); -emit_32(1131812880); -emit_32(3239267260); -emit_32(3272384512); -emit_32(1132068864); -emit_32(3232983029); -emit_32(3272384512); -emit_32(1081737216); -emit_32(1110766990); -emit_32(3272640496); -emit_32(1090125824); -emit_32(1110715348); -emit_32(3272640496); -emit_32(1094418484); -emit_32(1110472891); -emit_32(3272640496); -emit_32(1098514432); -emit_32(1110034088); -emit_32(3272640496); -emit_32(1100759066); -emit_32(1109323153); -emit_32(3272640496); -emit_32(1102807040); -emit_32(1108619533); -emit_32(3272640496); -emit_32(1104855066); -emit_32(1107915545); -emit_32(3272640496); -emit_32(1106903040); -emit_32(1107624277); -emit_32(3272640496); -emit_32(1108123661); -emit_32(1106832051); -emit_32(3272640496); -emit_32(1109147648); -emit_32(1105866313); -emit_32(3272640496); -emit_32(1110171661); -emit_32(1104840439); -emit_32(3272640496); -emit_32(1111195648); -emit_32(1104739880); -emit_32(3272640496); -emit_32(1112219661); -emit_32(1104492573); -emit_32(3272640496); -emit_32(1113243648); -emit_32(1104325483); -emit_32(3272640496); -emit_32(1114267661); -emit_32(1105104785); -emit_32(3272640496); -emit_32(1115291648); -emit_32(1105118154); -emit_32(3272640496); -emit_32(1116000263); -emit_32(1105110290); -emit_32(3272640496); -emit_32(1116512256); -emit_32(1106190585); -emit_32(3272640496); -emit_32(1117024263); -emit_32(1106806938); -emit_32(3272640496); -emit_32(1117536256); -emit_32(1107447723); -emit_32(3272640496); -emit_32(1118048263); -emit_32(1107960450); -emit_32(3272640496); -emit_32(1118560256); -emit_32(1108120882); -emit_32(3272640496); -emit_32(1119072263); -emit_32(1108021058); -emit_32(3272640496); -emit_32(1119584256); -emit_32(1107844897); -emit_32(3272640496); -emit_32(1120096263); -emit_32(1107897457); -emit_32(3272640496); -emit_32(1120608322); -emit_32(1108031465); -emit_32(3272640496); -emit_32(1121120289); -emit_32(1108410263); -emit_32(3272640496); -emit_32(1121632256); -emit_32(1108301604); -emit_32(3272640496); -emit_32(1122144223); -emit_32(1108298380); -emit_32(3272640496); -emit_32(1122656322); -emit_32(1108279165); -emit_32(3272640496); -emit_32(1123168289); -emit_32(1108038648); -emit_32(3272640496); -emit_32(1123680256); -emit_32(1107908388); -emit_32(3272640496); -emit_32(1124132848); -emit_32(1107420617); -emit_32(3272640496); -emit_32(1124388897); -emit_32(1106088663); -emit_32(3272640496); -emit_32(1124644880); -emit_32(1104288416); -emit_32(3272640496); -emit_32(1124900864); -emit_32(1102764101); -emit_32(3272640496); -emit_32(1125156848); -emit_32(1100664904); -emit_32(3272640496); -emit_32(1125412897); -emit_32(1097290744); -emit_32(3272640496); -emit_32(1125668880); -emit_32(1093918838); -emit_32(3272640496); -emit_32(1125924864); -emit_32(1092359438); -emit_32(3272640496); -emit_32(1126180848); -emit_32(1090438216); -emit_32(3272640496); -emit_32(1126436897); -emit_32(1085633179); -emit_32(3272640496); -emit_32(1126692880); -emit_32(1082298330); -emit_32(3272640496); -emit_32(1126948864); -emit_32(1071317684); -emit_32(3272640496); -emit_32(1127204848); -emit_32(3211416991); -emit_32(3272640496); -emit_32(1127460897); -emit_32(3224008099); -emit_32(3272640496); -emit_32(1127716880); -emit_32(3232930936); -emit_32(3272640496); -emit_32(1127972864); -emit_32(3237569689); -emit_32(3272640496); -emit_32(1128228848); -emit_32(3240285648); -emit_32(3272640496); -emit_32(1128484897); -emit_32(3243818405); -emit_32(3272640496); -emit_32(1128740880); -emit_32(3246427577); -emit_32(3272640496); -emit_32(1128996864); -emit_32(3247046918); -emit_32(3272640496); -emit_32(1129252848); -emit_32(3247819509); -emit_32(3272640496); -emit_32(1129508897); -emit_32(3247822340); -emit_32(3272640496); -emit_32(1129764880); -emit_32(3248121446); -emit_32(3272640496); -emit_32(1130020864); -emit_32(3248655224); -emit_32(3272640496); -emit_32(1130276848); -emit_32(3248219541); -emit_32(3272640496); -emit_32(1130532897); -emit_32(3247726395); -emit_32(3272640496); -emit_32(1130788880); -emit_32(3247190835); -emit_32(3272640496); -emit_32(1131044864); -emit_32(3246657425); -emit_32(3272640496); -emit_32(1131300848); -emit_32(3245446844); -emit_32(3272640496); -emit_32(1131556897); -emit_32(3243320646); -emit_32(3272640496); -emit_32(1131812880); -emit_32(3240090015); -emit_32(3272640496); -emit_32(1132068864); -emit_32(3233059449); -emit_32(3272640496); -emit_32(1081737216); -emit_32(1110289075); -emit_32(3272896545); -emit_32(1090125824); -emit_32(1110184899); -emit_32(3272896545); -emit_32(1094418484); -emit_32(1110081326); -emit_32(3272896545); -emit_32(1098514432); -emit_32(1109624907); -emit_32(3272896545); -emit_32(1100759066); -emit_32(1109048007); -emit_32(3272896545); -emit_32(1102807040); -emit_32(1108349472); -emit_32(3272896545); -emit_32(1104855066); -emit_32(1107549330); -emit_32(3272896545); -emit_32(1106903040); -emit_32(1106981421); -emit_32(3272896545); -emit_32(1108123661); -emit_32(1105990831); -emit_32(3272896545); -emit_32(1109147648); -emit_32(1104915359); -emit_32(3272896545); -emit_32(1110171661); -emit_32(1103693873); -emit_32(3272896545); -emit_32(1111195648); -emit_32(1103863900); -emit_32(3272896545); -emit_32(1112219661); -emit_32(1103998799); -emit_32(3272896545); -emit_32(1113243648); -emit_32(1104012640); -emit_32(3272896545); -emit_32(1114267661); -emit_32(1104234834); -emit_32(3272896545); -emit_32(1115291648); -emit_32(1104799230); -emit_32(3272896545); -emit_32(1116000263); -emit_32(1104865395); -emit_32(3272896545); -emit_32(1116512256); -emit_32(1105083079); -emit_32(3272896545); -emit_32(1117024263); -emit_32(1105770892); -emit_32(3272896545); -emit_32(1117536256); -emit_32(1106981264); -emit_32(3272896545); -emit_32(1118048263); -emit_32(1107541964); -emit_32(3272896545); -emit_32(1118560256); -emit_32(1107753173); -emit_32(3272896545); -emit_32(1119072263); -emit_32(1107932348); -emit_32(3272896545); -emit_32(1119584256); -emit_32(1107696026); -emit_32(3272896545); -emit_32(1120096263); -emit_32(1107774171); -emit_32(3272896545); -emit_32(1120608322); -emit_32(1107999483); -emit_32(3272896545); -emit_32(1121120289); -emit_32(1108089897); -emit_32(3272896545); -emit_32(1121632256); -emit_32(1107942887); -emit_32(3272896545); -emit_32(1122144223); -emit_32(1108011018); -emit_32(3272896545); -emit_32(1122656322); -emit_32(1107841201); -emit_32(3272896545); -emit_32(1123168289); -emit_32(1107624487); -emit_32(3272896545); -emit_32(1123680256); -emit_32(1107346430); -emit_32(3272896545); -emit_32(1124132848); -emit_32(1106655681); -emit_32(3272896545); -emit_32(1124388897); -emit_32(1105650778); -emit_32(3272896545); -emit_32(1124644880); -emit_32(1103819755); -emit_32(3272896545); -emit_32(1124900864); -emit_32(1101832441); -emit_32(3272896545); -emit_32(1125156848); -emit_32(1099587597); -emit_32(3272896545); -emit_32(1125412897); -emit_32(1095963771); -emit_32(3272896545); -emit_32(1125668880); -emit_32(1092682462); -emit_32(3272896545); -emit_32(1125924864); -emit_32(1090858999); -emit_32(3272896545); -emit_32(1126180848); -emit_32(1087538064); -emit_32(3272896545); -emit_32(1126436897); -emit_32(1082518866); -emit_32(3272896545); -emit_32(1126692880); -emit_32(1074794217); -emit_32(3272896545); -emit_32(1126948864); -emit_32(1055151058); -emit_32(3272896545); -emit_32(1127204848); -emit_32(3219019520); -emit_32(3272896545); -emit_32(1127460897); -emit_32(3227302431); -emit_32(3272896545); -emit_32(1127716880); -emit_32(3235425456); -emit_32(3272896545); -emit_32(1127972864); -emit_32(3239324219); -emit_32(3272896545); -emit_32(1128228848); -emit_32(3242595451); -emit_32(3272896545); -emit_32(1128484897); -emit_32(3244970790); -emit_32(3272896545); -emit_32(1128740880); -emit_32(3246227194); -emit_32(3272896545); -emit_32(1128996864); -emit_32(3247085558); -emit_32(3272896545); -emit_32(1129252848); -emit_32(3248170310); -emit_32(3272896545); -emit_32(1129508897); -emit_32(3248369697); -emit_32(3272896545); -emit_32(1129764880); -emit_32(3248556238); -emit_32(3272896545); -emit_32(1130020864); -emit_32(3248791329); -emit_32(3272896545); -emit_32(1130276848); -emit_32(3248863052); -emit_32(3272896545); -emit_32(1130532897); -emit_32(3248823992); -emit_32(3272896545); -emit_32(1130788880); -emit_32(3248329641); -emit_32(3272896545); -emit_32(1131044864); -emit_32(3247178567); -emit_32(3272896545); -emit_32(1131300848); -emit_32(3244969427); -emit_32(3272896545); -emit_32(1131556897); -emit_32(3242521421); -emit_32(3272896545); -emit_32(1131812880); -emit_32(3240271177); -emit_32(3272896545); -emit_32(1132068864); -emit_32(3235475683); -emit_32(3272896545); -emit_32(1081737216); -emit_32(1110106754); -emit_32(3273152528); -emit_32(1090125824); -emit_32(1109851190); -emit_32(3273152528); -emit_32(1094418484); -emit_32(1109531007); -emit_32(3273152528); -emit_32(1098514432); -emit_32(1109268234); -emit_32(3273152528); -emit_32(1100759066); -emit_32(1108527468); -emit_32(3273152528); -emit_32(1102807040); -emit_32(1107822510); -emit_32(3273152528); -emit_32(1104855066); -emit_32(1106879657); -emit_32(3273152528); -emit_32(1106903040); -emit_32(1105644854); -emit_32(3273152528); -emit_32(1108123661); -emit_32(1104812442); -emit_32(3273152528); -emit_32(1109147648); -emit_32(1103599816); -emit_32(3273152528); -emit_32(1110171661); -emit_32(1102886837); -emit_32(3273152528); -emit_32(1111195648); -emit_32(1102824551); -emit_32(3273152528); -emit_32(1112219661); -emit_32(1103195800); -emit_32(3273152528); -emit_32(1113243648); -emit_32(1103637250); -emit_32(3273152528); -emit_32(1114267661); -emit_32(1103975626); -emit_32(3273152528); -emit_32(1115291648); -emit_32(1103996545); -emit_32(3273152528); -emit_32(1116000263); -emit_32(1104513755); -emit_32(3273152528); -emit_32(1116512256); -emit_32(1104583642); -emit_32(3273152528); -emit_32(1117024263); -emit_32(1105332745); -emit_32(3273152528); -emit_32(1117536256); -emit_32(1106424522); -emit_32(3273152528); -emit_32(1118048263); -emit_32(1107096712); -emit_32(3273152528); -emit_32(1118560256); -emit_32(1107537140); -emit_32(3273152528); -emit_32(1119072263); -emit_32(1107484004); -emit_32(3273152528); -emit_32(1119584256); -emit_32(1107558426); -emit_32(3273152528); -emit_32(1120096263); -emit_32(1107936071); -emit_32(3273152528); -emit_32(1120608322); -emit_32(1108104000); -emit_32(3273152528); -emit_32(1121120289); -emit_32(1107929150); -emit_32(3273152528); -emit_32(1121632256); -emit_32(1107694584); -emit_32(3273152528); -emit_32(1122144223); -emit_32(1107539263); -emit_32(3273152528); -emit_32(1122656322); -emit_32(1107466886); -emit_32(3273152528); -emit_32(1123168289); -emit_32(1107473859); -emit_32(3273152528); -emit_32(1123680256); -emit_32(1106712723); -emit_32(3273152528); -emit_32(1124132848); -emit_32(1105424338); -emit_32(3273152528); -emit_32(1124388897); -emit_32(1104440931); -emit_32(3273152528); -emit_32(1124644880); -emit_32(1103144052); -emit_32(3273152528); -emit_32(1124900864); -emit_32(1101107560); -emit_32(3273152528); -emit_32(1125156848); -emit_32(1099132725); -emit_32(3273152528); -emit_32(1125412897); -emit_32(1095577685); -emit_32(3273152528); -emit_32(1125668880); -emit_32(1092369556); -emit_32(3273152528); -emit_32(1125924864); -emit_32(1088719809); -emit_32(3273152528); -emit_32(1126180848); -emit_32(1083696669); -emit_32(3273152528); -emit_32(1126436897); -emit_32(1075000451); -emit_32(3273152528); -emit_32(1126692880); -emit_32(1069530827); -emit_32(3273152528); -emit_32(1126948864); -emit_32(3206582150); -emit_32(3273152528); -emit_32(1127204848); -emit_32(3221141921); -emit_32(3273152528); -emit_32(1127460897); -emit_32(3231308055); -emit_32(3273152528); -emit_32(1127716880); -emit_32(3238013027); -emit_32(3273152528); -emit_32(1127972864); -emit_32(3241648692); -emit_32(3273152528); -emit_32(1128228848); -emit_32(3243113762); -emit_32(3273152528); -emit_32(1128484897); -emit_32(3244161289); -emit_32(3273152528); -emit_32(1128740880); -emit_32(3245421258); -emit_32(3273152528); -emit_32(1128996864); -emit_32(3246875424); -emit_32(3273152528); -emit_32(1129252848); -emit_32(3247610685); -emit_32(3273152528); -emit_32(1129508897); -emit_32(3248309299); -emit_32(3273152528); -emit_32(1129764880); -emit_32(3248981069); -emit_32(3273152528); -emit_32(1130020864); -emit_32(3249435889); -emit_32(3273152528); -emit_32(1130276848); -emit_32(3249270057); -emit_32(3273152528); -emit_32(1130532897); -emit_32(3249259047); -emit_32(3273152528); -emit_32(1130788880); -emit_32(3248161974); -emit_32(3273152528); -emit_32(1131044864); -emit_32(3246939072); -emit_32(3273152528); -emit_32(1131300848); -emit_32(3244307041); -emit_32(3273152528); -emit_32(1131556897); -emit_32(3241397138); -emit_32(3273152528); -emit_32(1131812880); -emit_32(3239169606); -emit_32(3273152528); -emit_32(1132068864); -emit_32(3235418829); -emit_32(3273152528); -emit_32(1081737216); -emit_32(1109848700); -emit_32(3273408512); -emit_32(1090125824); -emit_32(1109616073); -emit_32(3273408512); -emit_32(1094418484); -emit_32(1109191190); -emit_32(3273408512); -emit_32(1098514432); -emit_32(1108732386); -emit_32(3273408512); -emit_32(1100759066); -emit_32(1108353876); -emit_32(3273408512); -emit_32(1102807040); -emit_32(1107813099); -emit_32(3273408512); -emit_32(1104855066); -emit_32(1106931404); -emit_32(3273408512); -emit_32(1106903040); -emit_32(1105711700); -emit_32(3273408512); -emit_32(1108123661); -emit_32(1104199496); -emit_32(3273408512); -emit_32(1109147648); -emit_32(1102966738); -emit_32(3273408512); -emit_32(1110171661); -emit_32(1102284115); -emit_32(3273408512); -emit_32(1111195648); -emit_32(1102118283); -emit_32(3273408512); -emit_32(1112219661); -emit_32(1102403024); -emit_32(3273408512); -emit_32(1113243648); -emit_32(1102981471); -emit_32(3273408512); -emit_32(1114267661); -emit_32(1103432253); -emit_32(3273408512); -emit_32(1115291648); -emit_32(1103738700); -emit_32(3273408512); -emit_32(1116000263); -emit_32(1104470396); -emit_32(3273408512); -emit_32(1116512256); -emit_32(1104866915); -emit_32(3273408512); -emit_32(1117024263); -emit_32(1105262543); -emit_32(3273408512); -emit_32(1117536256); -emit_32(1106001527); -emit_32(3273408512); -emit_32(1118048263); -emit_32(1106476637); -emit_32(3273408512); -emit_32(1118560256); -emit_32(1106576409); -emit_32(3273408512); -emit_32(1119072263); -emit_32(1106461537); -emit_32(3273408512); -emit_32(1119584256); -emit_32(1107353561); -emit_32(3273408512); -emit_32(1120096263); -emit_32(1107634841); -emit_32(3273408512); -emit_32(1120608322); -emit_32(1107769845); -emit_32(3273408512); -emit_32(1121120289); -emit_32(1107434380); -emit_32(3273408512); -emit_32(1121632256); -emit_32(1107315943); -emit_32(3273408512); -emit_32(1122144223); -emit_32(1106787592); -emit_32(3273408512); -emit_32(1122656322); -emit_32(1106765100); -emit_32(3273408512); -emit_32(1123168289); -emit_32(1106762845); -emit_32(3273408512); -emit_32(1123680256); -emit_32(1105758834); -emit_32(3273408512); -emit_32(1124132848); -emit_32(1104621758); -emit_32(3273408512); -emit_32(1124388897); -emit_32(1103142375); -emit_32(3273408512); -emit_32(1124644880); -emit_32(1101953080); -emit_32(3273408512); -emit_32(1124900864); -emit_32(1100385039); -emit_32(3273408512); -emit_32(1125156848); -emit_32(1097070857); -emit_32(3273408512); -emit_32(1125412897); -emit_32(1093584657); -emit_32(3273408512); -emit_32(1125668880); -emit_32(1091629985); -emit_32(3273408512); -emit_32(1125924864); -emit_32(1088130111); -emit_32(3273408512); -emit_32(1126180848); -emit_32(1080062598); -emit_32(3273408512); -emit_32(1126436897); -emit_32(1066603370); -emit_32(3273408512); -emit_32(1126692880); -emit_32(3206794499); -emit_32(3273408512); -emit_32(1126948864); -emit_32(3224322043); -emit_32(3273408512); -emit_32(1127204848); -emit_32(3229663824); -emit_32(3273408512); -emit_32(1127460897); -emit_32(3234125914); -emit_32(3273408512); -emit_32(1127716880); -emit_32(3238854457); -emit_32(3273408512); -emit_32(1127972864); -emit_32(3240458138); -emit_32(3273408512); -emit_32(1128228848); -emit_32(3241347121); -emit_32(3273408512); -emit_32(1128484897); -emit_32(3243399080); -emit_32(3273408512); -emit_32(1128740880); -emit_32(3244860480); -emit_32(3273408512); -emit_32(1128996864); -emit_32(3246331213); -emit_32(3273408512); -emit_32(1129252848); -emit_32(3247173534); -emit_32(3273408512); -emit_32(1129508897); -emit_32(3247995565); -emit_32(3273408512); -emit_32(1129764880); -emit_32(3249070460); -emit_32(3273408512); -emit_32(1130020864); -emit_32(3249215740); -emit_32(3273408512); -emit_32(1130276848); -emit_32(3249090383); -emit_32(3273408512); -emit_32(1130532897); -emit_32(3248637136); -emit_32(3273408512); -emit_32(1130788880); -emit_32(3247527900); -emit_32(3273408512); -emit_32(1131044864); -emit_32(3246097695); -emit_32(3273408512); -emit_32(1131300848); -emit_32(3243725711); -emit_32(3273408512); -emit_32(1131556897); -emit_32(3240252198); -emit_32(3273408512); -emit_32(1131812880); -emit_32(3238101369); -emit_32(3273408512); -emit_32(1132068864); -emit_32(3232685716); -emit_32(3273408512); -emit_32(1081737216); -emit_32(1109518057); -emit_32(3273664496); -emit_32(1090125824); -emit_32(1109209645); -emit_32(3273664496); -emit_32(1094418484); -emit_32(1108711100); -emit_32(3273664496); -emit_32(1098514432); -emit_32(1108394482); -emit_32(3273664496); -emit_32(1100759066); -emit_32(1107902805); -emit_32(3273664496); -emit_32(1102807040); -emit_32(1107530351); -emit_32(3273664496); -emit_32(1104855066); -emit_32(1106484396); -emit_32(3273664496); -emit_32(1106903040); -emit_32(1105503610); -emit_32(3273664496); -emit_32(1108123661); -emit_32(1104089658); -emit_32(3273664496); -emit_32(1109147648); -emit_32(1103023571); -emit_32(3273664496); -emit_32(1110171661); -emit_32(1102213651); -emit_32(3273664496); -emit_32(1111195648); -emit_32(1101760718); -emit_32(3273664496); -emit_32(1112219661); -emit_32(1102038119); -emit_32(3273664496); -emit_32(1113243648); -emit_32(1102582016); -emit_32(3273664496); -emit_32(1114267661); -emit_32(1103573287); -emit_32(3273664496); -emit_32(1115291648); -emit_32(1103737913); -emit_32(3273664496); -emit_32(1116000263); -emit_32(1104225396); -emit_32(3273664496); -emit_32(1116512256); -emit_32(1104815063); -emit_32(3273664496); -emit_32(1117024263); -emit_32(1105243301); -emit_32(3273664496); -emit_32(1117536256); -emit_32(1105695814); -emit_32(3273664496); -emit_32(1118048263); -emit_32(1105989625); -emit_32(3273664496); -emit_32(1118560256); -emit_32(1106114930); -emit_32(3273664496); -emit_32(1119072263); -emit_32(1106699669); -emit_32(3273664496); -emit_32(1119584256); -emit_32(1107034164); -emit_32(3273664496); -emit_32(1120096263); -emit_32(1107327294); -emit_32(3273664496); -emit_32(1120608322); -emit_32(1106913106); -emit_32(3273664496); -emit_32(1121120289); -emit_32(1106509038); -emit_32(3273664496); -emit_32(1121632256); -emit_32(1105952401); -emit_32(3273664496); -emit_32(1122144223); -emit_32(1106608862); -emit_32(3273664496); -emit_32(1122656322); -emit_32(1106050443); -emit_32(3273664496); -emit_32(1123168289); -emit_32(1105539210); -emit_32(3273664496); -emit_32(1123680256); -emit_32(1104316937); -emit_32(3273664496); -emit_32(1124132848); -emit_32(1103423078); -emit_32(3273664496); -emit_32(1124388897); -emit_32(1102157867); -emit_32(3273664496); -emit_32(1124644880); -emit_32(1100686767); -emit_32(3273664496); -emit_32(1124900864); -emit_32(1099193752); -emit_32(3273664496); -emit_32(1125156848); -emit_32(1096183867); -emit_32(3273664496); -emit_32(1125412897); -emit_32(1092300434); -emit_32(3273664496); -emit_32(1125668880); -emit_32(1090658553); -emit_32(3273664496); -emit_32(1125924864); -emit_32(1087350684); -emit_32(3273664496); -emit_32(1126180848); -emit_32(1076097052); -emit_32(3273664496); -emit_32(1126436897); -emit_32(1033250201); -emit_32(3273664496); -emit_32(1126692880); -emit_32(3213794340); -emit_32(3273664496); -emit_32(1126948864); -emit_32(3225617244); -emit_32(3273664496); -emit_32(1127204848); -emit_32(3234199587); -emit_32(3273664496); -emit_32(1127460897); -emit_32(3236783823); -emit_32(3273664496); -emit_32(1127716880); -emit_32(3239231409); -emit_32(3273664496); -emit_32(1127972864); -emit_32(3239869436); -emit_32(3273664496); -emit_32(1128228848); -emit_32(3240676137); -emit_32(3273664496); -emit_32(1128484897); -emit_32(3242958153); -emit_32(3273664496); -emit_32(1128740880); -emit_32(3244196417); -emit_32(3273664496); -emit_32(1128996864); -emit_32(3245843100); -emit_32(3273664496); -emit_32(1129252848); -emit_32(3247245204); -emit_32(3273664496); -emit_32(1129508897); -emit_32(3248095337); -emit_32(3273664496); -emit_32(1129764880); -emit_32(3248269505); -emit_32(3273664496); -emit_32(1130020864); -emit_32(3248127423); -emit_32(3273664496); -emit_32(1130276848); -emit_32(3248240250); -emit_32(3273664496); -emit_32(1130532897); -emit_32(3247358398); -emit_32(3273664496); -emit_32(1130788880); -emit_32(3246549998); -emit_32(3273664496); -emit_32(1131044864); -emit_32(3244820005); -emit_32(3273664496); -emit_32(1131300848); -emit_32(3242185563); -emit_32(3273664496); -emit_32(1131556897); -emit_32(3239470873); -emit_32(3273664496); -emit_32(1131812880); -emit_32(3235146241); -emit_32(3273664496); -emit_32(1132068864); -emit_32(3228421765); -emit_32(3273664496); -emit_32(1081737216); -emit_32(1109095429); -emit_32(3273920545); -emit_32(1090125824); -emit_32(1108721848); -emit_32(3273920545); -emit_32(1094418484); -emit_32(1108271799); -emit_32(3273920545); -emit_32(1098514432); -emit_32(1107836640); -emit_32(3273920545); -emit_32(1100759066); -emit_32(1107583487); -emit_32(3273920545); -emit_32(1102807040); -emit_32(1107305929); -emit_32(3273920545); -emit_32(1104855066); -emit_32(1106095427); -emit_32(3273920545); -emit_32(1106903040); -emit_32(1104843427); -emit_32(3273920545); -emit_32(1108123661); -emit_32(1103754481); -emit_32(3273920545); -emit_32(1109147648); -emit_32(1102895959); -emit_32(3273920545); -emit_32(1110171661); -emit_32(1102181460); -emit_32(3273920545); -emit_32(1111195648); -emit_32(1101676256); -emit_32(3273920545); -emit_32(1112219661); -emit_32(1101547858); -emit_32(3273920545); -emit_32(1113243648); -emit_32(1102482086); -emit_32(3273920545); -emit_32(1114267661); -emit_32(1103334421); -emit_32(3273920545); -emit_32(1115291648); -emit_32(1103698330); -emit_32(3273920545); -emit_32(1116000263); -emit_32(1103797472); -emit_32(3273920545); -emit_32(1116512256); -emit_32(1104470449); -emit_32(3273920545); -emit_32(1117024263); -emit_32(1105019221); -emit_32(3273920545); -emit_32(1117536256); -emit_32(1105107249); -emit_32(3273920545); -emit_32(1118048263); -emit_32(1105221177); -emit_32(3273920545); -emit_32(1118560256); -emit_32(1105813517); -emit_32(3273920545); -emit_32(1119072263); -emit_32(1106222986); -emit_32(3273920545); -emit_32(1119584256); -emit_32(1106744181); -emit_32(3273920545); -emit_32(1120096263); -emit_32(1106572162); -emit_32(3273920545); -emit_32(1120608322); -emit_32(1106138261); -emit_32(3273920545); -emit_32(1121120289); -emit_32(1105034373); -emit_32(3273920545); -emit_32(1121632256); -emit_32(1104844371); -emit_32(3273920545); -emit_32(1122144223); -emit_32(1105102006); -emit_32(3273920545); -emit_32(1122656322); -emit_32(1104862039); -emit_32(3273920545); -emit_32(1123168289); -emit_32(1104232946); -emit_32(3273920545); -emit_32(1123680256); -emit_32(1103026297); -emit_32(3273920545); -emit_32(1124132848); -emit_32(1101863741); -emit_32(3273920545); -emit_32(1124388897); -emit_32(1100516216); -emit_32(3273920545); -emit_32(1124644880); -emit_32(1099293105); -emit_32(3273920545); -emit_32(1124900864); -emit_32(1097230346); -emit_32(3273920545); -emit_32(1125156848); -emit_32(1093750751); -emit_32(3273920545); -emit_32(1125412897); -emit_32(1090925405); -emit_32(3273920545); -emit_32(1125668880); -emit_32(1088433213); -emit_32(3273920545); -emit_32(1125924864); -emit_32(1084125285); -emit_32(3273920545); -emit_32(1126180848); -emit_32(1075725646); -emit_32(3273920545); -emit_32(1126436897); -emit_32(1061623490); -emit_32(3273920545); -emit_32(1126692880); -emit_32(3216532465); -emit_32(3273920545); -emit_32(1126948864); -emit_32(3227819673); -emit_32(3273920545); -emit_32(1127204848); -emit_32(3234520577); -emit_32(3273920545); -emit_32(1127460897); -emit_32(3236952791); -emit_32(3273920545); -emit_32(1127716880); -emit_32(3239234608); -emit_32(3273920545); -emit_32(1127972864); -emit_32(3240023346); -emit_32(3273920545); -emit_32(1128228848); -emit_32(3241225696); -emit_32(3273920545); -emit_32(1128484897); -emit_32(3243063535); -emit_32(3273920545); -emit_32(1128740880); -emit_32(3245269949); -emit_32(3273920545); -emit_32(1128996864); -emit_32(3246344425); -emit_32(3273920545); -emit_32(1129252848); -emit_32(3246962665); -emit_32(3273920545); -emit_32(1129508897); -emit_32(3247716853); -emit_32(3273920545); -emit_32(1129764880); -emit_32(3247725609); -emit_32(3273920545); -emit_32(1130020864); -emit_32(3247729803); -emit_32(3273920545); -emit_32(1130276848); -emit_32(3247215739); -emit_32(3273920545); -emit_32(1130532897); -emit_32(3246018422); -emit_32(3273920545); -emit_32(1130788880); -emit_32(3244886589); -emit_32(3273920545); -emit_32(1131044864); -emit_32(3242781888); -emit_32(3273920545); -emit_32(1131300848); -emit_32(3240781205); -emit_32(3273920545); -emit_32(1131556897); -emit_32(3238299267); -emit_32(3273920545); -emit_32(1131812880); -emit_32(3233550057); -emit_32(3273920545); -emit_32(1132068864); -emit_32(3223464811); -emit_32(3273920545); -emit_32(1081737216); -emit_32(1108664621); -emit_32(3274176528); -emit_32(1090125824); -emit_32(1108522618); -emit_32(3274176528); -emit_32(1094418484); -emit_32(1108407563); -emit_32(3274176528); -emit_32(1098514432); -emit_32(1107682787); -emit_32(3274176528); -emit_32(1100759066); -emit_32(1107320583); -emit_32(3274176528); -emit_32(1102807040); -emit_32(1106544532); -emit_32(3274176528); -emit_32(1104855066); -emit_32(1105511999); -emit_32(3274176528); -emit_32(1106903040); -emit_32(1104375867); -emit_32(3274176528); -emit_32(1108123661); -emit_32(1103074112); -emit_32(3274176528); -emit_32(1109147648); -emit_32(1102337278); -emit_32(3274176528); -emit_32(1110171661); -emit_32(1101962517); -emit_32(3274176528); -emit_32(1111195648); -emit_32(1101639031); -emit_32(3274176528); -emit_32(1112219661); -emit_32(1101573181); -emit_32(3274176528); -emit_32(1113243648); -emit_32(1101942070); -emit_32(3274176528); -emit_32(1114267661); -emit_32(1102543638); -emit_32(3274176528); -emit_32(1115291648); -emit_32(1103135559); -emit_32(3274176528); -emit_32(1116000263); -emit_32(1103322153); -emit_32(3274176528); -emit_32(1116512256); -emit_32(1103539995); -emit_32(3274176528); -emit_32(1117024263); -emit_32(1103767850); -emit_32(3274176528); -emit_32(1117536256); -emit_32(1104163740); -emit_32(3274176528); -emit_32(1118048263); -emit_32(1104602045); -emit_32(3274176528); -emit_32(1118560256); -emit_32(1104897953); -emit_32(3274176528); -emit_32(1119072263); -emit_32(1105720246); -emit_32(3274176528); -emit_32(1119584256); -emit_32(1105815981); -emit_32(3274176528); -emit_32(1120096263); -emit_32(1105144788); -emit_32(3274176528); -emit_32(1120608322); -emit_32(1104485233); -emit_32(3274176528); -emit_32(1121120289); -emit_32(1103618061); -emit_32(3274176528); -emit_32(1121632256); -emit_32(1103661315); -emit_32(3274176528); -emit_32(1122144223); -emit_32(1103401845); -emit_32(3274176528); -emit_32(1122656322); -emit_32(1102987500); -emit_32(3274176528); -emit_32(1123168289); -emit_32(1102162900); -emit_32(3274176528); -emit_32(1123680256); -emit_32(1100880701); -emit_32(3274176528); -emit_32(1124132848); -emit_32(1099831339); -emit_32(3274176528); -emit_32(1124388897); -emit_32(1098628622); -emit_32(3274176528); -emit_32(1124644880); -emit_32(1096283587); -emit_32(3274176528); -emit_32(1124900864); -emit_32(1094436939); -emit_32(3274176528); -emit_32(1125156848); -emit_32(1092462586); -emit_32(3274176528); -emit_32(1125412897); -emit_32(1090574426); -emit_32(3274176528); -emit_32(1125668880); -emit_32(1088368683); -emit_32(3274176528); -emit_32(1125924864); -emit_32(1084468987); -emit_32(3274176528); -emit_32(1126180848); -emit_32(1078479458); -emit_32(3274176528); -emit_32(1126436897); -emit_32(1070097393); -emit_32(3274176528); -emit_32(1126692880); -emit_32(3219330905); -emit_32(3274176528); -emit_32(1126948864); -emit_32(3229956377); -emit_32(3274176528); -emit_32(1127204848); -emit_32(3233498299); -emit_32(3274176528); -emit_32(1127460897); -emit_32(3237958480); -emit_32(3274176528); -emit_32(1127716880); -emit_32(3239973518); -emit_32(3274176528); -emit_32(1127972864); -emit_32(3240389457); -emit_32(3274176528); -emit_32(1128228848); -emit_32(3241706154); -emit_32(3274176528); -emit_32(1128484897); -emit_32(3243624314); -emit_32(3274176528); -emit_32(1128740880); -emit_32(3245731637); -emit_32(3274176528); -emit_32(1128996864); -emit_32(3246688777); -emit_32(3274176528); -emit_32(1129252848); -emit_32(3247277500); -emit_32(3274176528); -emit_32(1129508897); -emit_32(3247268744); -emit_32(3274176528); -emit_32(1129764880); -emit_32(3246821579); -emit_32(3274176528); -emit_32(1130020864); -emit_32(3246928901); -emit_32(3274176528); -emit_32(1130276848); -emit_32(3246584024); -emit_32(3274176528); -emit_32(1130532897); -emit_32(3244589423); -emit_32(3274176528); -emit_32(1130788880); -emit_32(3243611311); -emit_32(3274176528); -emit_32(1131044864); -emit_32(3242211253); -emit_32(3274176528); -emit_32(1131300848); -emit_32(3239996199); -emit_32(3274176528); -emit_32(1131556897); -emit_32(3237841102); -emit_32(3274176528); -emit_32(1131812880); -emit_32(3232583521); -emit_32(3274176528); -emit_32(1132068864); -emit_32(3220160035); -emit_32(3274176528); -emit_32(1081737216); -emit_32(1108184872); -emit_32(3274432512); -emit_32(1090125824); -emit_32(1108148932); -emit_32(3274432512); -emit_32(1094418484); -emit_32(1107903853); -emit_32(3274432512); -emit_32(1098514432); -emit_32(1107577694); -emit_32(3274432512); -emit_32(1100759066); -emit_32(1106982365); -emit_32(3274432512); -emit_32(1102807040); -emit_32(1105680086); -emit_32(3274432512); -emit_32(1104855066); -emit_32(1104468771); -emit_32(3274432512); -emit_32(1106903040); -emit_32(1103509114); -emit_32(3274432512); -emit_32(1108123661); -emit_32(1102687764); -emit_32(3274432512); -emit_32(1109147648); -emit_32(1102002520); -emit_32(3274432512); -emit_32(1110171661); -emit_32(1101411123); -emit_32(3274432512); -emit_32(1111195648); -emit_32(1101064569); -emit_32(3274432512); -emit_32(1112219661); -emit_32(1100846150); -emit_32(3274432512); -emit_32(1113243648); -emit_32(1101357436); -emit_32(3274432512); -emit_32(1114267661); -emit_32(1102179729); -emit_32(3274432512); -emit_32(1115291648); -emit_32(1102092698); -emit_32(3274432512); -emit_32(1116000263); -emit_32(1102408371); -emit_32(3274432512); -emit_32(1116512256); -emit_32(1102286999); -emit_32(3274432512); -emit_32(1117024263); -emit_32(1102506518); -emit_32(3274432512); -emit_32(1117536256); -emit_32(1103483005); -emit_32(3274432512); -emit_32(1118048263); -emit_32(1103994238); -emit_32(3274432512); -emit_32(1118560256); -emit_32(1104213233); -emit_32(3274432512); -emit_32(1119072263); -emit_32(1103948992); -emit_32(3274432512); -emit_32(1119584256); -emit_32(1103515143); -emit_32(3274432512); -emit_32(1120096263); -emit_32(1103105832); -emit_32(3274432512); -emit_32(1120608322); -emit_32(1102826124); -emit_32(3274432512); -emit_32(1121120289); -emit_32(1102767456); -emit_32(3274432512); -emit_32(1121632256); -emit_32(1102189901); -emit_32(3274432512); -emit_32(1122144223); -emit_32(1101674421); -emit_32(3274432512); -emit_32(1122656322); -emit_32(1100890243); -emit_32(3274432512); -emit_32(1123168289); -emit_32(1099939761); -emit_32(3274432512); -emit_32(1123680256); -emit_32(1099075997); -emit_32(3274432512); -emit_32(1124132848); -emit_32(1097086376); -emit_32(3274432512); -emit_32(1124388897); -emit_32(1095228614); -emit_32(3274432512); -emit_32(1124644880); -emit_32(1093029436); -emit_32(3274432512); -emit_32(1124900864); -emit_32(1091479672); -emit_32(3274432512); -emit_32(1125156848); -emit_32(1091750163); -emit_32(3274432512); -emit_32(1125412897); -emit_32(1089138149); -emit_32(3274432512); -emit_32(1125668880); -emit_32(1086598540); -emit_32(3274432512); -emit_32(1125924864); -emit_32(1083352484); -emit_32(3274432512); -emit_32(1126180848); -emit_32(1076974919); -emit_32(3274432512); -emit_32(1126436897); -emit_32(1066291146); -emit_32(3274432512); -emit_32(1126692880); -emit_32(3221226898); -emit_32(3274432512); -emit_32(1126948864); -emit_32(3228126151); -emit_32(3274432512); -emit_32(1127204848); -emit_32(3231975515); -emit_32(3274432512); -emit_32(1127460897); -emit_32(3238351340); -emit_32(3274432512); -emit_32(1127716880); -emit_32(3240184460); -emit_32(3274432512); -emit_32(1127972864); -emit_32(3241040832); -emit_32(3274432512); -emit_32(1128228848); -emit_32(3242157461); -emit_32(3274432512); -emit_32(1128484897); -emit_32(3244822731); -emit_32(3274432512); -emit_32(1128740880); -emit_32(3246247536); -emit_32(3274432512); -emit_32(1128996864); -emit_32(3247038372); -emit_32(3274432512); -emit_32(1129252848); -emit_32(3247585939); -emit_32(3274432512); -emit_32(1129508897); -emit_32(3246884389); -emit_32(3274432512); -emit_32(1129764880); -emit_32(3246474763); -emit_32(3274432512); -emit_32(1130020864); -emit_32(3246383746); -emit_32(3274432512); -emit_32(1130276848); -emit_32(3245256632); -emit_32(3274432512); -emit_32(1130532897); -emit_32(3243907010); -emit_32(3274432512); -emit_32(1130788880); -emit_32(3243058921); -emit_32(3274432512); -emit_32(1131044864); -emit_32(3241166032); -emit_32(3274432512); -emit_32(1131300848); -emit_32(3238570922); -emit_32(3274432512); -emit_32(1131556897); -emit_32(3234153659); -emit_32(3274432512); -emit_32(1131812880); -emit_32(3230360226); -emit_32(3274432512); -emit_32(1132068864); -emit_32(3219833634); -emit_32(3274432512); -emit_32(1081737216); -emit_32(1108036289); -emit_32(3274688496); -emit_32(1090125824); -emit_32(1107810609); -emit_32(3274688496); -emit_32(1094418484); -emit_32(1107747825); -emit_32(3274688496); -emit_32(1098514432); -emit_32(1107286871); -emit_32(3274688496); -emit_32(1100759066); -emit_32(1106086881); -emit_32(3274688496); -emit_32(1102807040); -emit_32(1104804315); -emit_32(3274688496); -emit_32(1104855066); -emit_32(1103699326); -emit_32(3274688496); -emit_32(1106903040); -emit_32(1102741504); -emit_32(3274688496); -emit_32(1108123661); -emit_32(1101680083); -emit_32(3274688496); -emit_32(1109147648); -emit_32(1101656595); -emit_32(3274688496); -emit_32(1110171661); -emit_32(1100849663); -emit_32(3274688496); -emit_32(1111195648); -emit_32(1100640053); -emit_32(3274688496); -emit_32(1112219661); -emit_32(1100253443); -emit_32(3274688496); -emit_32(1113243648); -emit_32(1100764047); -emit_32(3274688496); -emit_32(1114267661); -emit_32(1101163554); -emit_32(3274688496); -emit_32(1115291648); -emit_32(1101305217); -emit_32(3274688496); -emit_32(1116000263); -emit_32(1101417624); -emit_32(3274688496); -emit_32(1116512256); -emit_32(1101765385); -emit_32(3274688496); -emit_32(1117024263); -emit_32(1102533938); -emit_32(3274688496); -emit_32(1117536256); -emit_32(1102938689); -emit_32(3274688496); -emit_32(1118048263); -emit_32(1103318955); -emit_32(3274688496); -emit_32(1118560256); -emit_32(1103683754); -emit_32(3274688496); -emit_32(1119072263); -emit_32(1103175090); -emit_32(3274688496); -emit_32(1119584256); -emit_32(1102854593); -emit_32(3274688496); -emit_32(1120096263); -emit_32(1102466567); -emit_32(3274688496); -emit_32(1120608322); -emit_32(1101638507); -emit_32(3274688496); -emit_32(1121120289); -emit_32(1101343542); -emit_32(3274688496); -emit_32(1121632256); -emit_32(1100858629); -emit_32(3274688496); -emit_32(1122144223); -emit_32(1099916326); -emit_32(3274688496); -emit_32(1122656322); -emit_32(1099386952); -emit_32(3274688496); -emit_32(1123168289); -emit_32(1098990538); -emit_32(3274688496); -emit_32(1123680256); -emit_32(1097981860); -emit_32(3274688496); -emit_32(1124132848); -emit_32(1095898759); -emit_32(3274688496); -emit_32(1124388897); -emit_32(1092934435); -emit_32(3274688496); -emit_32(1124644880); -emit_32(1090423368); -emit_32(3274688496); -emit_32(1124900864); -emit_32(1089465599); -emit_32(3274688496); -emit_32(1125156848); -emit_32(1090025916); -emit_32(3274688496); -emit_32(1125412897); -emit_32(1088093013); -emit_32(3274688496); -emit_32(1125668880); -emit_32(1086367518); -emit_32(3274688496); -emit_32(1125924864); -emit_32(1083889418); -emit_32(3274688496); -emit_32(1126180848); -emit_32(1076254464); -emit_32(3274688496); -emit_32(1126436897); -emit_32(1068370850); -emit_32(3274688496); -emit_32(1126692880); -emit_32(3216221248); -emit_32(3274688496); -emit_32(1126948864); -emit_32(3228349497); -emit_32(3274688496); -emit_32(1127204848); -emit_32(3232983910); -emit_32(3274688496); -emit_32(1127460897); -emit_32(3238169558); -emit_32(3274688496); -emit_32(1127716880); -emit_32(3239092054); -emit_32(3274688496); -emit_32(1127972864); -emit_32(3241438976); -emit_32(3274688496); -emit_32(1128228848); -emit_32(3243388489); -emit_32(3274688496); -emit_32(1128484897); -emit_32(3245180191); -emit_32(3274688496); -emit_32(1128740880); -emit_32(3246270710); -emit_32(3274688496); -emit_32(1128996864); -emit_32(3247252229); -emit_32(3274688496); -emit_32(1129252848); -emit_32(3247543262); -emit_32(3274688496); -emit_32(1129508897); -emit_32(3246603737); -emit_32(3274688496); -emit_32(1129764880); -emit_32(3246628379); -emit_32(3274688496); -emit_32(1130020864); -emit_32(3246208949); -emit_32(3274688496); -emit_32(1130276848); -emit_32(3243960277); -emit_32(3274688496); -emit_32(1130532897); -emit_32(3243077167); -emit_32(3274688496); -emit_32(1130788880); -emit_32(3241817407); -emit_32(3274688496); -emit_32(1131044864); -emit_32(3238920664); -emit_32(3274688496); -emit_32(1131300848); -emit_32(3235529538); -emit_32(3274688496); -emit_32(1131556897); -emit_32(3228900545); -emit_32(3274688496); -emit_32(1131812880); -emit_32(3222674310); -emit_32(3274688496); -emit_32(1132068864); -emit_32(3208271280); -emit_32(3274688496); -emit_32(1081737216); -emit_32(1107544270); -emit_32(3274944545); -emit_32(1090125824); -emit_32(1107321186); -emit_32(3274944545); -emit_32(1094418484); -emit_32(1106832838); -emit_32(3274944545); -emit_32(1098514432); -emit_32(1105933107); -emit_32(3274944545); -emit_32(1100759066); -emit_32(1104947236); -emit_32(3274944545); -emit_32(1102807040); -emit_32(1104326217); -emit_32(3274944545); -emit_32(1104855066); -emit_32(1103138967); -emit_32(3274944545); -emit_32(1106903040); -emit_32(1102036441); -emit_32(3274944545); -emit_32(1108123661); -emit_32(1101087742); -emit_32(3274944545); -emit_32(1109147648); -emit_32(1100669465); -emit_32(3274944545); -emit_32(1110171661); -emit_32(1100266183); -emit_32(3274944545); -emit_32(1111195648); -emit_32(1100000526); -emit_32(3274944545); -emit_32(1112219661); -emit_32(1099972529); -emit_32(3274944545); -emit_32(1113243648); -emit_32(1099715681); -emit_32(3274944545); -emit_32(1114267661); -emit_32(1099811521); -emit_32(3274944545); -emit_32(1115291648); -emit_32(1100048079); -emit_32(3274944545); -emit_32(1116000263); -emit_32(1100398461); -emit_32(3274944545); -emit_32(1116512256); -emit_32(1101470735); -emit_32(3274944545); -emit_32(1117024263); -emit_32(1102010332); -emit_32(3274944545); -emit_32(1117536256); -emit_32(1102212969); -emit_32(3274944545); -emit_32(1118048263); -emit_32(1102131547); -emit_32(3274944545); -emit_32(1118560256); -emit_32(1102714503); -emit_32(3274944545); -emit_32(1119072263); -emit_32(1102278033); -emit_32(3274944545); -emit_32(1119584256); -emit_32(1101809792); -emit_32(3274944545); -emit_32(1120096263); -emit_32(1100816004); -emit_32(3274944545); -emit_32(1120608322); -emit_32(1100025011); -emit_32(3274944545); -emit_32(1121120289); -emit_32(1099466277); -emit_32(3274944545); -emit_32(1121632256); -emit_32(1098984771); -emit_32(3274944545); -emit_32(1122144223); -emit_32(1098724776); -emit_32(3274944545); -emit_32(1122656322); -emit_32(1097818073); -emit_32(3274944545); -emit_32(1123168289); -emit_32(1098331770); -emit_32(3274944545); -emit_32(1123680256); -emit_32(1097767007); -emit_32(3274944545); -emit_32(1124132848); -emit_32(1095061891); -emit_32(3274944545); -emit_32(1124388897); -emit_32(1092565693); -emit_32(3274944545); -emit_32(1124644880); -emit_32(1089087839); -emit_32(3274944545); -emit_32(1124900864); -emit_32(1088235430); -emit_32(3274944545); -emit_32(1125156848); -emit_32(1089040317); -emit_32(3274944545); -emit_32(1125412897); -emit_32(1087875957); -emit_32(3274944545); -emit_32(1125668880); -emit_32(1086441128); -emit_32(3274944545); -emit_32(1125924864); -emit_32(1085113966); -emit_32(3274944545); -emit_32(1126180848); -emit_32(1081486648); -emit_32(3274944545); -emit_32(1126436897); -emit_32(1075610470); -emit_32(3274944545); -emit_32(1126692880); -emit_32(3191896348); -emit_32(3274944545); -emit_32(1126948864); -emit_32(3225446032); -emit_32(3274944545); -emit_32(1127204848); -emit_32(3232519202); -emit_32(3274944545); -emit_32(1127460897); -emit_32(3234831920); -emit_32(3274944545); -emit_32(1127716880); -emit_32(3239305806); -emit_32(3274944545); -emit_32(1127972864); -emit_32(3241685497); -emit_32(3274944545); -emit_32(1128228848); -emit_32(3242903208); -emit_32(3274944545); -emit_32(1128484897); -emit_32(3244487397); -emit_32(3274944545); -emit_32(1128740880); -emit_32(3245844673); -emit_32(3274944545); -emit_32(1128996864); -emit_32(3246709067); -emit_32(3274944545); -emit_32(1129252848); -emit_32(3246977188); -emit_32(3274944545); -emit_32(1129508897); -emit_32(3246402830); -emit_32(3274944545); -emit_32(1129764880); -emit_32(3246323034); -emit_32(3274944545); -emit_32(1130020864); -emit_32(3244941011); -emit_32(3274944545); -emit_32(1130276848); -emit_32(3243260877); -emit_32(3274944545); -emit_32(1130532897); -emit_32(3242406707); -emit_32(3274944545); -emit_32(1130788880); -emit_32(3239902383); -emit_32(3274944545); -emit_32(1131044864); -emit_32(3235323031); -emit_32(3274944545); -emit_32(1131300848); -emit_32(3229858692); -emit_32(3274944545); -emit_32(1131556897); -emit_32(3221983215); -emit_32(3274944545); -emit_32(1131812880); -emit_32(3204619249); -emit_32(3274944545); -emit_32(1132068864); -emit_32(1069430331); -emit_32(3274944545); -emit_32(1081737216); -emit_32(1106249096); -emit_32(3275200528); -emit_32(1090125824); -emit_32(1106043942); -emit_32(3275200528); -emit_32(1094418484); -emit_32(1105378410); -emit_32(3275200528); -emit_32(1098514432); -emit_32(1104642467); -emit_32(3275200528); -emit_32(1100759066); -emit_32(1104162010); -emit_32(3275200528); -emit_32(1102807040); -emit_32(1103635153); -emit_32(3275200528); -emit_32(1104855066); -emit_32(1102464995); -emit_32(3275200528); -emit_32(1106903040); -emit_32(1101344958); -emit_32(3275200528); -emit_32(1108123661); -emit_32(1100328835); -emit_32(3275200528); -emit_32(1109147648); -emit_32(1099478755); -emit_32(3275200528); -emit_32(1110171661); -emit_32(1099658219); -emit_32(3275200528); -emit_32(1111195648); -emit_32(1099600285); -emit_32(3275200528); -emit_32(1112219661); -emit_32(1099186464); -emit_32(3275200528); -emit_32(1113243648); -emit_32(1099013135); -emit_32(3275200528); -emit_32(1114267661); -emit_32(1099476763); -emit_32(3275200528); -emit_32(1115291648); -emit_32(1099561540); -emit_32(3275200528); -emit_32(1116000263); -emit_32(1099962673); -emit_32(3275200528); -emit_32(1116512256); -emit_32(1100314837); -emit_32(3275200528); -emit_32(1117024263); -emit_32(1100808192); -emit_32(3275200528); -emit_32(1117536256); -emit_32(1100975545); -emit_32(3275200528); -emit_32(1118048263); -emit_32(1100964744); -emit_32(3275200528); -emit_32(1118560256); -emit_32(1100600364); -emit_32(3275200528); -emit_32(1119072263); -emit_32(1100761426); -emit_32(3275200528); -emit_32(1119584256); -emit_32(1100181144); -emit_32(3275200528); -emit_32(1120096263); -emit_32(1098976749); -emit_32(3275200528); -emit_32(1120608322); -emit_32(1097199518); -emit_32(3275200528); -emit_32(1121120289); -emit_32(1096699347); -emit_32(3275200528); -emit_32(1121632256); -emit_32(1096334128); -emit_32(3275200528); -emit_32(1122144223); -emit_32(1096532414); -emit_32(3275200528); -emit_32(1122656322); -emit_32(1096818675); -emit_32(3275200528); -emit_32(1123168289); -emit_32(1097088578); -emit_32(3275200528); -emit_32(1123680256); -emit_32(1096387291); -emit_32(3275200528); -emit_32(1124132848); -emit_32(1094034810); -emit_32(3275200528); -emit_32(1124388897); -emit_32(1090976691); -emit_32(3275200528); -emit_32(1124644880); -emit_32(1088321497); -emit_32(3275200528); -emit_32(1124900864); -emit_32(1088758712); -emit_32(3275200528); -emit_32(1125156848); -emit_32(1087833868); -emit_32(3275200528); -emit_32(1125412897); -emit_32(1084974107); -emit_32(3275200528); -emit_32(1125668880); -emit_32(1084703805); -emit_32(3275200528); -emit_32(1125924864); -emit_32(1084375328); -emit_32(3275200528); -emit_32(1126180848); -emit_32(1079810898); -emit_32(3275200528); -emit_32(1126436897); -emit_32(1075134836); -emit_32(3275200528); -emit_32(1126692880); -emit_32(1055694338); -emit_32(3275200528); -emit_32(1126948864); -emit_32(3222544916); -emit_32(3275200528); -emit_32(1127204848); -emit_32(3231495477); -emit_32(3275200528); -emit_32(1127460897); -emit_32(3235209219); -emit_32(3275200528); -emit_32(1127716880); -emit_32(3239322940); -emit_32(3275200528); -emit_32(1127972864); -emit_32(3240031389); -emit_32(3275200528); -emit_32(1128228848); -emit_32(3242234426); -emit_32(3275200528); -emit_32(1128484897); -emit_32(3243694988); -emit_32(3275200528); -emit_32(1128740880); -emit_32(3244783934); -emit_32(3275200528); -emit_32(1128996864); -emit_32(3245353415); -emit_32(3275200528); -emit_32(1129252848); -emit_32(3245143910); -emit_32(3275200528); -emit_32(1129508897); -emit_32(3243741859); -emit_32(3275200528); -emit_32(1129764880); -emit_32(3244369117); -emit_32(3275200528); -emit_32(1130020864); -emit_32(3244547480); -emit_32(3275200528); -emit_32(1130276848); -emit_32(3242487867); -emit_32(3275200528); -emit_32(1130532897); -emit_32(3241258307); -emit_32(3275200528); -emit_32(1130788880); -emit_32(3238763409); -emit_32(3275200528); -emit_32(1131044864); -emit_32(3232771615); -emit_32(3275200528); -emit_32(1131300848); -emit_32(3224658636); -emit_32(3275200528); -emit_32(1131556897); -emit_32(3205375013); -emit_32(3275200528); -emit_32(1131812880); -emit_32(1065955266); -emit_32(3275200528); -emit_32(1132068864); -emit_32(1078364786); -emit_32(3275200528); -emit_32(1081737216); -emit_32(1105010622); -emit_32(3275456512); -emit_32(1090125824); -emit_32(1104741191); -emit_32(3275456512); -emit_32(1094418484); -emit_32(1104199864); -emit_32(3275456512); -emit_32(1098514432); -emit_32(1103701895); -emit_32(3275456512); -emit_32(1100759066); -emit_32(1103428898); -emit_32(3275456512); -emit_32(1102807040); -emit_32(1102959031); -emit_32(3275456512); -emit_32(1104855066); -emit_32(1102357044); -emit_32(3275456512); -emit_32(1106903040); -emit_32(1100872784); -emit_32(3275456512); -emit_32(1108123661); -emit_32(1099789972); -emit_32(3275456512); -emit_32(1109147648); -emit_32(1099200043); -emit_32(3275456512); -emit_32(1110171661); -emit_32(1098764622); -emit_32(3275456512); -emit_32(1111195648); -emit_32(1098958399); -emit_32(3275456512); -emit_32(1112219661); -emit_32(1098447743); -emit_32(3275456512); -emit_32(1113243648); -emit_32(1098347184); -emit_32(3275456512); -emit_32(1114267661); -emit_32(1099067032); -emit_32(3275456512); -emit_32(1115291648); -emit_32(1099311664); -emit_32(3275456512); -emit_32(1116000263); -emit_32(1099114584); -emit_32(3275456512); -emit_32(1116512256); -emit_32(1099262119); -emit_32(3275456512); -emit_32(1117024263); -emit_32(1099307522); -emit_32(3275456512); -emit_32(1117536256); -emit_32(1099567150); -emit_32(3275456512); -emit_32(1118048263); -emit_32(1099285555); -emit_32(3275456512); -emit_32(1118560256); -emit_32(1099184367); -emit_32(3275456512); -emit_32(1119072263); -emit_32(1099025665); -emit_32(3275456512); -emit_32(1119584256); -emit_32(1097936771); -emit_32(3275456512); -emit_32(1120096263); -emit_32(1097086062); -emit_32(3275456512); -emit_32(1120608322); -emit_32(1095166329); -emit_32(3275456512); -emit_32(1121120289); -emit_32(1093547013); -emit_32(3275456512); -emit_32(1121632256); -emit_32(1094611632); -emit_32(3275456512); -emit_32(1122144223); -emit_32(1095301176); -emit_32(3275456512); -emit_32(1122656322); -emit_32(1096040002); -emit_32(3275456512); -emit_32(1123168289); -emit_32(1096486905); -emit_32(3275456512); -emit_32(1123680256); -emit_32(1095536371); -emit_32(3275456512); -emit_32(1124132848); -emit_32(1093119718); -emit_32(3275456512); -emit_32(1124388897); -emit_32(1091308366); -emit_32(3275456512); -emit_32(1124644880); -emit_32(1088220394); -emit_32(3275456512); -emit_32(1124900864); -emit_32(1088246482); -emit_32(3275456512); -emit_32(1125156848); -emit_32(1087966198); -emit_32(3275456512); -emit_32(1125412897); -emit_32(1084761016); -emit_32(3275456512); -emit_32(1125668880); -emit_32(1082433638); -emit_32(3275456512); -emit_32(1125924864); -emit_32(1080387489); -emit_32(3275456512); -emit_32(1126180848); -emit_32(1080768877); -emit_32(3275456512); -emit_32(1126436897); -emit_32(1072749536); -emit_32(3275456512); -emit_32(1126692880); -emit_32(1066725424); -emit_32(3275456512); -emit_32(1126948864); -emit_32(3211315758); -emit_32(3275456512); -emit_32(1127204848); -emit_32(3229615254); -emit_32(3275456512); -emit_32(1127460897); -emit_32(3234924069); -emit_32(3275456512); -emit_32(1127716880); -emit_32(3238308600); -emit_32(3275456512); -emit_32(1127972864); -emit_32(3239071816); -emit_32(3275456512); -emit_32(1128228848); -emit_32(3240224516); -emit_32(3275456512); -emit_32(1128484897); -emit_32(3241289869); -emit_32(3275456512); -emit_32(1128740880); -emit_32(3242705866); -emit_32(3275456512); -emit_32(1128996864); -emit_32(3242964969); -emit_32(3275456512); -emit_32(1129252848); -emit_32(3243192091); -emit_32(3275456512); -emit_32(1129508897); -emit_32(3242061516); -emit_32(3275456512); -emit_32(1129764880); -emit_32(3242460709); -emit_32(3275456512); -emit_32(1130020864); -emit_32(3243083563); -emit_32(3275456512); -emit_32(1130276848); -emit_32(3240930627); -emit_32(3275456512); -emit_32(1130532897); -emit_32(3238871108); -emit_32(3275456512); -emit_32(1130788880); -emit_32(3236675631); -emit_32(3275456512); -emit_32(1131044864); -emit_32(3232208551); -emit_32(3275456512); -emit_32(1131300848); -emit_32(3223881892); -emit_32(3275456512); -emit_32(1131556897); -emit_32(1056471794); -emit_32(3275456512); -emit_32(1131812880); -emit_32(1077025041); -emit_32(3275456512); -emit_32(1132068864); -emit_32(1081975788); -emit_32(3275456512); -emit_32(1081737216); -emit_32(1103817710); -emit_32(3275712496); -emit_32(1090125824); -emit_32(1103479177); -emit_32(3275712496); -emit_32(1094418484); -emit_32(1103628337); -emit_32(3275712496); -emit_32(1098514432); -emit_32(1103194908); -emit_32(3275712496); -emit_32(1100759066); -emit_32(1102441087); -emit_32(3275712496); -emit_32(1102807040); -emit_32(1101777548); -emit_32(3275712496); -emit_32(1104855066); -emit_32(1101550322); -emit_32(3275712496); -emit_32(1106903040); -emit_32(1100130340); -emit_32(3275712496); -emit_32(1108123661); -emit_32(1099405250); -emit_32(3275712496); -emit_32(1109147648); -emit_32(1098058092); -emit_32(3275712496); -emit_32(1110171661); -emit_32(1097423074); -emit_32(3275712496); -emit_32(1111195648); -emit_32(1097055863); -emit_32(3275712496); -emit_32(1112219661); -emit_32(1096882743); -emit_32(3275712496); -emit_32(1113243648); -emit_32(1098289303); -emit_32(3275712496); -emit_32(1114267661); -emit_32(1097937610); -emit_32(3275712496); -emit_32(1115291648); -emit_32(1097533279); -emit_32(3275712496); -emit_32(1116000263); -emit_32(1097752851); -emit_32(3275712496); -emit_32(1116512256); -emit_32(1097273547); -emit_32(3275712496); -emit_32(1117024263); -emit_32(1097170787); -emit_32(3275712496); -emit_32(1117536256); -emit_32(1096374708); -emit_32(3275712496); -emit_32(1118048263); -emit_32(1096180197); -emit_32(3275712496); -emit_32(1118560256); -emit_32(1097218602); -emit_32(3275712496); -emit_32(1119072263); -emit_32(1096138883); -emit_32(3275712496); -emit_32(1119584256); -emit_32(1096076912); -emit_32(3275712496); -emit_32(1120096263); -emit_32(1094562034); -emit_32(3275712496); -emit_32(1120608322); -emit_32(1092095962); -emit_32(3275712496); -emit_32(1121120289); -emit_32(1091662502); -emit_32(3275712496); -emit_32(1121632256); -emit_32(1092889556); -emit_32(3275712496); -emit_32(1122144223); -emit_32(1094008177); -emit_32(3275712496); -emit_32(1122656322); -emit_32(1094597791); -emit_32(3275712496); -emit_32(1123168289); -emit_32(1094669828); -emit_32(3275712496); -emit_32(1123680256); -emit_32(1093668333); -emit_32(3275712496); -emit_32(1124132848); -emit_32(1092690012); -emit_32(3275712496); -emit_32(1124388897); -emit_32(1091404793); -emit_32(3275712496); -emit_32(1124644880); -emit_32(1089616677); -emit_32(3275712496); -emit_32(1124900864); -emit_32(1087718650); -emit_32(3275712496); -emit_32(1125156848); -emit_32(1085433635); -emit_32(3275712496); -emit_32(1125412897); -emit_32(1083051984); -emit_32(3275712496); -emit_32(1125668880); -emit_32(1080094894); -emit_32(3275712496); -emit_32(1125924864); -emit_32(1077582632); -emit_32(3275712496); -emit_32(1126180848); -emit_32(1079746432); -emit_32(3275712496); -emit_32(1126436897); -emit_32(1073545866); -emit_32(3275712496); -emit_32(1126692880); -emit_32(1068480405); -emit_32(3275712496); -emit_32(1126948864); -emit_32(3205219354); -emit_32(3275712496); -emit_32(1127204848); -emit_32(3228713018); -emit_32(3275712496); -emit_32(1127460897); -emit_32(3234007257); -emit_32(3275712496); -emit_32(1127716880); -emit_32(3234765252); -emit_32(3275712496); -emit_32(1127972864); -emit_32(3236479652); -emit_32(3275712496); -emit_32(1128228848); -emit_32(3239043033); -emit_32(3275712496); -emit_32(1128484897); -emit_32(3239994091); -emit_32(3275712496); -emit_32(1128740880); -emit_32(3241107312); -emit_32(3275712496); -emit_32(1128996864); -emit_32(3240979281); -emit_32(3275712496); -emit_32(1129252848); -emit_32(3240651496); -emit_32(3275712496); -emit_32(1129508897); -emit_32(3240242971); -emit_32(3275712496); -emit_32(1129764880); -emit_32(3240761491); -emit_32(3275712496); -emit_32(1130020864); -emit_32(3240982007); -emit_32(3275712496); -emit_32(1130276848); -emit_32(3239091351); -emit_32(3275712496); -emit_32(1130532897); -emit_32(3236735400); -emit_32(3275712496); -emit_32(1130788880); -emit_32(3231377575); -emit_32(3275712496); -emit_32(1131044864); -emit_32(3227422808); -emit_32(3275712496); -emit_32(1131300848); -emit_32(3218146098); -emit_32(3275712496); -emit_32(1131556897); -emit_32(1069112487); -emit_32(3275712496); -emit_32(1131812880); -emit_32(1077648441); -emit_32(3275712496); -emit_32(1132068864); -emit_32(1082214129); -emit_32(3275712496); -emit_32(1081737216); -emit_32(1102629726); -emit_32(3275968545); -emit_32(1090125824); -emit_32(1102698722); -emit_32(3275968545); -emit_32(1094418484); -emit_32(1102802741); -emit_32(3275968545); -emit_32(1098514432); -emit_32(1102285373); -emit_32(3275968545); -emit_32(1100759066); -emit_32(1101786251); -emit_32(3275968545); -emit_32(1102807040); -emit_32(1100824812); -emit_32(3275968545); -emit_32(1104855066); -emit_32(1100025640); -emit_32(3275968545); -emit_32(1106903040); -emit_32(1099634940); -emit_32(3275968545); -emit_32(1108123661); -emit_32(1099046584); -emit_32(3275968545); -emit_32(1109147648); -emit_32(1096636223); -emit_32(3275968545); -emit_32(1110171661); -emit_32(1095513303); -emit_32(3275968545); -emit_32(1111195648); -emit_32(1095867407); -emit_32(3275968545); -emit_32(1112219661); -emit_32(1096126929); -emit_32(3275968545); -emit_32(1113243648); -emit_32(1096604870); -emit_32(3275968545); -emit_32(1114267661); -emit_32(1095827037); -emit_32(3275968545); -emit_32(1115291648); -emit_32(1095170838); -emit_32(3275968545); -emit_32(1116000263); -emit_32(1095497679); -emit_32(3275968545); -emit_32(1116512256); -emit_32(1095025715); -emit_32(3275968545); -emit_32(1117024263); -emit_32(1094083884); -emit_32(3275968545); -emit_32(1117536256); -emit_32(1094884996); -emit_32(3275968545); -emit_32(1118048263); -emit_32(1094938054); -emit_32(3275968545); -emit_32(1118560256); -emit_32(1094814322); -emit_32(3275968545); -emit_32(1119072263); -emit_32(1094028414); -emit_32(3275968545); -emit_32(1119584256); -emit_32(1093868087); -emit_32(3275968545); -emit_32(1120096263); -emit_32(1091898725); -emit_32(3275968545); -emit_32(1120608322); -emit_32(1091588902); -emit_32(3275968545); -emit_32(1121120289); -emit_32(1090929599); -emit_32(3275968545); -emit_32(1121632256); -emit_32(1091279268); -emit_32(3275968545); -emit_32(1122144223); -emit_32(1091962195); -emit_32(3275968545); -emit_32(1122656322); -emit_32(1092164916); -emit_32(3275968545); -emit_32(1123168289); -emit_32(1092135976); -emit_32(3275968545); -emit_32(1123680256); -emit_32(1091891196); -emit_32(3275968545); -emit_32(1124132848); -emit_32(1091591995); -emit_32(3275968545); -emit_32(1124388897); -emit_32(1091090063); -emit_32(3275968545); -emit_32(1124644880); -emit_32(1090340509); -emit_32(3275968545); -emit_32(1124900864); -emit_32(1086101389); -emit_32(3275968545); -emit_32(1125156848); -emit_32(1083757927); -emit_32(3275968545); -emit_32(1125412897); -emit_32(1078075547); -emit_32(3275968545); -emit_32(1125668880); -emit_32(1076426137); -emit_32(3275968545); -emit_32(1125924864); -emit_32(1072504840); -emit_32(3275968545); -emit_32(1126180848); -emit_32(1076195660); -emit_32(3275968545); -emit_32(1126436897); -emit_32(1072621609); -emit_32(3275968545); -emit_32(1126692880); -emit_32(1056034915); -emit_32(3275968545); -emit_32(1126948864); -emit_32(3209808342); -emit_32(3275968545); -emit_32(1127204848); -emit_32(3226594391); -emit_32(3275968545); -emit_32(1127460897); -emit_32(3229765557); -emit_32(3275968545); -emit_32(1127716880); -emit_32(3232195653); -emit_32(3275968545); -emit_32(1127972864); -emit_32(3233670937); -emit_32(3275968545); -emit_32(1128228848); -emit_32(3236746137); -emit_32(3275968545); -emit_32(1128484897); -emit_32(3239602763); -emit_32(3275968545); -emit_32(1128740880); -emit_32(3239120397); -emit_32(3275968545); -emit_32(1128996864); -emit_32(3238680404); -emit_32(3275968545); -emit_32(1129252848); -emit_32(3238748498); -emit_32(3275968545); -emit_32(1129508897); -emit_32(3237309495); -emit_32(3275968545); -emit_32(1129764880); -emit_32(3238233637); -emit_32(3275968545); -emit_32(1130020864); -emit_32(3238814642); -emit_32(3275968545); -emit_32(1130276848); -emit_32(3237583887); -emit_32(3275968545); -emit_32(1130532897); -emit_32(3232326054); -emit_32(3275968545); -emit_32(1130788880); -emit_32(3225982694); -emit_32(3275968545); -emit_32(1131044864); -emit_32(3216861550); -emit_32(3275968545); -emit_32(1131300848); -emit_32(1026734803); -emit_32(3275968545); -emit_32(1131556897); -emit_32(1070114842); -emit_32(3275968545); -emit_32(1131812880); -emit_32(1079071526); -emit_32(3275968545); -emit_32(1132068864); -emit_32(1085031464); -emit_32(3275968545); -emit_32(1081737216); -emit_32(1101834591); -emit_32(3276224528); -emit_32(1090125824); -emit_32(1101837579); -emit_32(3276224528); -emit_32(1094418484); -emit_32(1102082264); -emit_32(3276224528); -emit_32(1098514432); -emit_32(1101628441); -emit_32(3276224528); -emit_32(1100759066); -emit_32(1100985349); -emit_32(3276224528); -emit_32(1102807040); -emit_32(1100055367); -emit_32(3276224528); -emit_32(1104855066); -emit_32(1099637142); -emit_32(3276224528); -emit_32(1106903040); -emit_32(1098680317); -emit_32(3276224528); -emit_32(1108123661); -emit_32(1096761947); -emit_32(3276224528); -emit_32(1109147648); -emit_32(1094480980); -emit_32(3276224528); -emit_32(1110171661); -emit_32(1095392087); -emit_32(3276224528); -emit_32(1111195648); -emit_32(1094890029); -emit_32(3276224528); -emit_32(1112219661); -emit_32(1094984506); -emit_32(3276224528); -emit_32(1113243648); -emit_32(1094746898); -emit_32(3276224528); -emit_32(1114267661); -emit_32(1095240253); -emit_32(3276224528); -emit_32(1115291648); -emit_32(1094944765); -emit_32(3276224528); -emit_32(1116000263); -emit_32(1093070435); -emit_32(3276224528); -emit_32(1116512256); -emit_32(1092835659); -emit_32(3276224528); -emit_32(1117024263); -emit_32(1092160439); -emit_32(3276224528); -emit_32(1117536256); -emit_32(1093144779); -emit_32(3276224528); -emit_32(1118048263); -emit_32(1093574171); -emit_32(3276224528); -emit_32(1118560256); -emit_32(1093277109); -emit_32(3276224528); -emit_32(1119072263); -emit_32(1093819957); -emit_32(3276224528); -emit_32(1119584256); -emit_32(1092843628); -emit_32(3276224528); -emit_32(1120096263); -emit_32(1091116372); -emit_32(3276224528); -emit_32(1120608322); -emit_32(1091376859); -emit_32(3276224528); -emit_32(1121120289); -emit_32(1090364648); -emit_32(3276224528); -emit_32(1121632256); -emit_32(1090493874); -emit_32(3276224528); -emit_32(1122144223); -emit_32(1090596026); -emit_32(3276224528); -emit_32(1122656322); -emit_32(1090953811); -emit_32(3276224528); -emit_32(1123168289); -emit_32(1090983737); -emit_32(3276224528); -emit_32(1123680256); -emit_32(1091497519); -emit_32(3276224528); -emit_32(1124132848); -emit_32(1090542549); -emit_32(3276224528); -emit_32(1124388897); -emit_32(1090078156); -emit_32(3276224528); -emit_32(1124644880); -emit_32(1088934054); -emit_32(3276224528); -emit_32(1124900864); -emit_32(1087697720); -emit_32(3276224528); -emit_32(1125156848); -emit_32(1085563428); -emit_32(3276224528); -emit_32(1125412897); -emit_32(1080952084); -emit_32(3276224528); -emit_32(1125668880); -emit_32(1073321471); -emit_32(3276224528); -emit_32(1125924864); -emit_32(1070202670); -emit_32(3276224528); -emit_32(1126180848); -emit_32(1076022141); -emit_32(3276224528); -emit_32(1126436897); -emit_32(1074767541); -emit_32(3276224528); -emit_32(1126692880); -emit_32(1043406403); -emit_32(3276224528); -emit_32(1126948864); -emit_32(3214856505); -emit_32(3276224528); -emit_32(1127204848); -emit_32(3221624644); -emit_32(3276224528); -emit_32(1127460897); -emit_32(3223744907); -emit_32(3276224528); -emit_32(1127716880); -emit_32(3226922931); -emit_32(3276224528); -emit_32(1127972864); -emit_32(3231769868); -emit_32(3276224528); -emit_32(1128228848); -emit_32(3235400940); -emit_32(3276224528); -emit_32(1128484897); -emit_32(3237712778); -emit_32(3276224528); -emit_32(1128740880); -emit_32(3237178570); -emit_32(3276224528); -emit_32(1128996864); -emit_32(3236152161); -emit_32(3276224528); -emit_32(1129252848); -emit_32(3236365358); -emit_32(3276224528); -emit_32(1129508897); -emit_32(3234550776); -emit_32(3276224528); -emit_32(1129764880); -emit_32(3234356705); -emit_32(3276224528); -emit_32(1130020864); -emit_32(3236727662); -emit_32(3276224528); -emit_32(1130276848); -emit_32(3234020867); -emit_32(3276224528); -emit_32(1130532897); -emit_32(3229942851); -emit_32(3276224528); -emit_32(1130788880); -emit_32(3218905099); -emit_32(3276224528); -emit_32(1131044864); -emit_32(1046590114); -emit_32(3276224528); -emit_32(1131300848); -emit_32(1071351155); -emit_32(3276224528); -emit_32(1131556897); -emit_32(1075089706); -emit_32(3276224528); -emit_32(1131812880); -emit_32(1081837670); -emit_32(3276224528); -emit_32(1132068864); -emit_32(1088418344); -emit_32(3276224528); -emit_32(1081737216); -emit_32(1101171471); -emit_32(3276480512); -emit_32(1090125824); -emit_32(1100482504); -emit_32(3276480512); -emit_32(1094418484); -emit_32(1100941623); -emit_32(3276480512); -emit_32(1098514432); -emit_32(1100408685); -emit_32(3276480512); -emit_32(1100759066); -emit_32(1099563690); -emit_32(3276480512); -emit_32(1102807040); -emit_32(1099315859); -emit_32(3276480512); -emit_32(1104855066); -emit_32(1099149083); -emit_32(3276480512); -emit_32(1106903040); -emit_32(1096909482); -emit_32(3276480512); -emit_32(1108123661); -emit_32(1095417463); -emit_32(3276480512); -emit_32(1109147648); -emit_32(1095014180); -emit_32(3276480512); -emit_32(1110171661); -emit_32(1094740188); -emit_32(3276480512); -emit_32(1111195648); -emit_32(1094116495); -emit_32(3276480512); -emit_32(1112219661); -emit_32(1094245994); -emit_32(3276480512); -emit_32(1113243648); -emit_32(1093480953); -emit_32(3276480512); -emit_32(1114267661); -emit_32(1095278002); -emit_32(3276480512); -emit_32(1115291648); -emit_32(1094897264); -emit_32(3276480512); -emit_32(1116000263); -emit_32(1092706055); -emit_32(3276480512); -emit_32(1116512256); -emit_32(1091291358); -emit_32(3276480512); -emit_32(1117024263); -emit_32(1090889429); -emit_32(3276480512); -emit_32(1117536256); -emit_32(1091305986); -emit_32(3276480512); -emit_32(1118048263); -emit_32(1092298620); -emit_32(3276480512); -emit_32(1118560256); -emit_32(1092551684); -emit_32(3276480512); -emit_32(1119072263); -emit_32(1092611295); -emit_32(3276480512); -emit_32(1119584256); -emit_32(1091871042); -emit_32(3276480512); -emit_32(1120096263); -emit_32(1090718773); -emit_32(3276480512); -emit_32(1120608322); -emit_32(1090155373); -emit_32(3276480512); -emit_32(1121120289); -emit_32(1087795930); -emit_32(3276480512); -emit_32(1121632256); -emit_32(1087063877); -emit_32(3276480512); -emit_32(1122144223); -emit_32(1088019466); -emit_32(3276480512); -emit_32(1122656322); -emit_32(1090277322); -emit_32(3276480512); -emit_32(1123168289); -emit_32(1091326066); -emit_32(3276480512); -emit_32(1123680256); -emit_32(1091923220); -emit_32(3276480512); -emit_32(1124132848); -emit_32(1091702285); -emit_32(3276480512); -emit_32(1124388897); -emit_32(1089725142); -emit_32(3276480512); -emit_32(1124644880); -emit_32(1087013462); -emit_32(3276480512); -emit_32(1124900864); -emit_32(1086960152); -emit_32(3276480512); -emit_32(1125156848); -emit_32(1085873156); -emit_32(3276480512); -emit_32(1125412897); -emit_32(1082634587); -emit_32(3276480512); -emit_32(1125668880); -emit_32(1076934109); -emit_32(3276480512); -emit_32(1125924864); -emit_32(1073398227); -emit_32(3276480512); -emit_32(1126180848); -emit_32(1074881249); -emit_32(3276480512); -emit_32(1126436897); -emit_32(1074681558); -emit_32(3276480512); -emit_32(1126692880); -emit_32(1066383253); -emit_32(3276480512); -emit_32(1126948864); -emit_32(3190627924); -emit_32(3276480512); -emit_32(1127204848); -emit_32(3210951893); -emit_32(3276480512); -emit_32(1127460897); -emit_32(3211101009); -emit_32(3276480512); -emit_32(1127716880); -emit_32(3222970470); -emit_32(3276480512); -emit_32(1127972864); -emit_32(3228079929); -emit_32(3276480512); -emit_32(1128228848); -emit_32(3233825706); -emit_32(3276480512); -emit_32(1128484897); -emit_32(3233542381); -emit_32(3276480512); -emit_32(1128740880); -emit_32(3232104805); -emit_32(3276480512); -emit_32(1128996864); -emit_32(3230112405); -emit_32(3276480512); -emit_32(1129252848); -emit_32(3231152970); -emit_32(3276480512); -emit_32(1129508897); -emit_32(3231464292); -emit_32(3276480512); -emit_32(1129764880); -emit_32(3231339491); -emit_32(3276480512); -emit_32(1130020864); -emit_32(3231844149); -emit_32(3276480512); -emit_32(1130276848); -emit_32(3231999318); -emit_32(3276480512); -emit_32(1130532897); -emit_32(3224338359); -emit_32(3276480512); -emit_32(1130788880); -emit_32(1034571239); -emit_32(3276480512); -emit_32(1131044864); -emit_32(1073783180); -emit_32(3276480512); -emit_32(1131300848); -emit_32(1077514055); -emit_32(3276480512); -emit_32(1131556897); -emit_32(1081268167); -emit_32(3276480512); -emit_32(1131812880); -emit_32(1085146577); -emit_32(3276480512); -emit_32(1132068864); -emit_32(1091014199); -emit_32(3276480512); -emit_32(1081737216); -emit_32(1100121322); -emit_32(3276736496); -emit_32(1090125824); -emit_32(1099396180); -emit_32(3276736496); -emit_32(1094418484); -emit_32(1099281098); -emit_32(3276736496); -emit_32(1098514432); -emit_32(1098942251); -emit_32(3276736496); -emit_32(1100759066); -emit_32(1098739981); -emit_32(3276736496); -emit_32(1102807040); -emit_32(1097837366); -emit_32(3276736496); -emit_32(1104855066); -emit_32(1096300469); -emit_32(3276736496); -emit_32(1106903040); -emit_32(1095044694); -emit_32(3276736496); -emit_32(1108123661); -emit_32(1095162764); -emit_32(3276736496); -emit_32(1109147648); -emit_32(1095334730); -emit_32(3276736496); -emit_32(1110171661); -emit_32(1095152697); -emit_32(3276736496); -emit_32(1111195648); -emit_32(1094407894); -emit_32(3276736496); -emit_32(1112219661); -emit_32(1093563371); -emit_32(3276736496); -emit_32(1113243648); -emit_32(1092844257); -emit_32(3276736496); -emit_32(1114267661); -emit_32(1093382386); -emit_32(3276736496); -emit_32(1115291648); -emit_32(1092541009); -emit_32(3276736496); -emit_32(1116000263); -emit_32(1091687762); -emit_32(3276736496); -emit_32(1116512256); -emit_32(1088040290); -emit_32(3276736496); -emit_32(1117024263); -emit_32(1088119038); -emit_32(3276736496); -emit_32(1117536256); -emit_32(1088383007); -emit_32(3276736496); -emit_32(1118048263); -emit_32(1090949575); -emit_32(3276736496); -emit_32(1118560256); -emit_32(1091368575); -emit_32(3276736496); -emit_32(1119072263); -emit_32(1091839008); -emit_32(3276736496); -emit_32(1119584256); -emit_32(1091040497); -emit_32(3276736496); -emit_32(1120096263); -emit_32(1088659118); -emit_32(3276736496); -emit_32(1120608322); -emit_32(1086563119); -emit_32(3276736496); -emit_32(1121120289); -emit_32(1083266480); -emit_32(3276736496); -emit_32(1121632256); -emit_32(1082063323); -emit_32(3276736496); -emit_32(1122144223); -emit_32(1086818322); -emit_32(3276736496); -emit_32(1122656322); -emit_32(1089302105); -emit_32(3276736496); -emit_32(1123168289); -emit_32(1090938523); -emit_32(3276736496); -emit_32(1123680256); -emit_32(1091787911); -emit_32(3276736496); -emit_32(1124132848); -emit_32(1091673658); -emit_32(3276736496); -emit_32(1124388897); -emit_32(1091250789); -emit_32(3276736496); -emit_32(1124644880); -emit_32(1088596245); -emit_32(3276736496); -emit_32(1124900864); -emit_32(1086620707); -emit_32(3276736496); -emit_32(1125156848); -emit_32(1083915591); -emit_32(3276736496); -emit_32(1125412897); -emit_32(1083242195); -emit_32(3276736496); -emit_32(1125668880); -emit_32(1083662443); -emit_32(3276736496); -emit_32(1125924864); -emit_32(1080051525); -emit_32(3276736496); -emit_32(1126180848); -emit_32(1078023915); -emit_32(3276736496); -emit_32(1126436897); -emit_32(1076481418); -emit_32(3276736496); -emit_32(1126692880); -emit_32(1073065367); -emit_32(3276736496); -emit_32(1126948864); -emit_32(1068007204); -emit_32(3276736496); -emit_32(1127204848); -emit_32(1059175291); -emit_32(3276736496); -emit_32(1127460897); -emit_32(3191698780); -emit_32(3276736496); -emit_32(1127716880); -emit_32(3213224166); -emit_32(3276736496); -emit_32(1127972864); -emit_32(3223725026); -emit_32(3276736496); -emit_32(1128228848); -emit_32(3228029430); -emit_32(3276736496); -emit_32(1128484897); -emit_32(3226148159); -emit_32(3276736496); -emit_32(1128740880); -emit_32(3225760353); -emit_32(3276736496); -emit_32(1128996864); -emit_32(3222121585); -emit_32(3276736496); -emit_32(1129252848); -emit_32(3225539356); -emit_32(3276736496); -emit_32(1129508897); -emit_32(3229882998); -emit_32(3276736496); -emit_32(1129764880); -emit_32(3227190108); -emit_32(3276736496); -emit_32(1130020864); -emit_32(3228912960); -emit_32(3276736496); -emit_32(1130276848); -emit_32(3228921307); -emit_32(3276736496); -emit_32(1130532897); -emit_32(3219664184); -emit_32(3276736496); -emit_32(1130788880); -emit_32(1065871800); -emit_32(3276736496); -emit_32(1131044864); -emit_32(1077962552); -emit_32(3276736496); -emit_32(1131300848); -emit_32(1082028972); -emit_32(3276736496); -emit_32(1131556897); -emit_32(1084764119); -emit_32(3276736496); -emit_32(1131812880); -emit_32(1086553745); -emit_32(3276736496); -emit_32(1132068864); -emit_32(1092505651); -emit_32(3276736496); -emit_32(1081737216); -emit_32(1099020213); -emit_32(3276992545); -emit_32(1090125824); -emit_32(1098714186); -emit_32(3276992545); -emit_32(1094418484); -emit_32(1097828034); -emit_32(3276992545); -emit_32(1098514432); -emit_32(1097529085); -emit_32(3276992545); -emit_32(1100759066); -emit_32(1097159252); -emit_32(3276992545); -emit_32(1102807040); -emit_32(1096861667); -emit_32(3276992545); -emit_32(1104855066); -emit_32(1094929036); -emit_32(3276992545); -emit_32(1106903040); -emit_32(1095502502); -emit_32(3276992545); -emit_32(1108123661); -emit_32(1095915851); -emit_32(3276992545); -emit_32(1109147648); -emit_32(1095718928); -emit_32(3276992545); -emit_32(1110171661); -emit_32(1095125539); -emit_32(3276992545); -emit_32(1111195648); -emit_32(1094669094); -emit_32(3276992545); -emit_32(1112219661); -emit_32(1093180431); -emit_32(3276992545); -emit_32(1113243648); -emit_32(1091863545); -emit_32(3276992545); -emit_32(1114267661); -emit_32(1091778558); -emit_32(3276992545); -emit_32(1115291648); -emit_32(1091298751); -emit_32(3276992545); -emit_32(1116000263); -emit_32(1089644695); -emit_32(3276992545); -emit_32(1116512256); -emit_32(1086301730); -emit_32(3276992545); -emit_32(1117024263); -emit_32(1086163570); -emit_32(3276992545); -emit_32(1117536256); -emit_32(1086958244); -emit_32(3276992545); -emit_32(1118048263); -emit_32(1089172396); -emit_32(3276992545); -emit_32(1118560256); -emit_32(1089779354); -emit_32(3276992545); -emit_32(1119072263); -emit_32(1090296616); -emit_32(3276992545); -emit_32(1119584256); -emit_32(1089775033); -emit_32(3276992545); -emit_32(1120096263); -emit_32(1085622735); -emit_32(3276992545); -emit_32(1120608322); -emit_32(1082413128); -emit_32(3276992545); -emit_32(1121120289); -emit_32(1076491106); -emit_32(3276992545); -emit_32(1121632256); -emit_32(1082562760); -emit_32(3276992545); -emit_32(1122144223); -emit_32(1085964047); -emit_32(3276992545); -emit_32(1122656322); -emit_32(1088268397); -emit_32(3276992545); -emit_32(1123168289); -emit_32(1091065421); -emit_32(3276992545); -emit_32(1123680256); -emit_32(1091881444); -emit_32(3276992545); -emit_32(1124132848); -emit_32(1092768655); -emit_32(3276992545); -emit_32(1124388897); -emit_32(1091984761); -emit_32(3276992545); -emit_32(1124644880); -emit_32(1091281397); -emit_32(3276992545); -emit_32(1124900864); -emit_32(1090331513); -emit_32(3276992545); -emit_32(1125156848); -emit_32(1084916184); -emit_32(3276992545); -emit_32(1125412897); -emit_32(1084859729); -emit_32(3276992545); -emit_32(1125668880); -emit_32(1084191807); -emit_32(3276992545); -emit_32(1125924864); -emit_32(1084800757); -emit_32(3276992545); -emit_32(1126180848); -emit_32(1082243678); -emit_32(3276992545); -emit_32(1126436897); -emit_32(1082662102); -emit_32(3276992545); -emit_32(1126692880); -emit_32(1080485887); -emit_32(3276992545); -emit_32(1126948864); -emit_32(1077722135); -emit_32(3276992545); -emit_32(1127204848); -emit_32(1073495534); -emit_32(3276992545); -emit_32(1127460897); -emit_32(1067137892); -emit_32(3276992545); -emit_32(1127716880); -emit_32(3201755546); -emit_32(3276992545); -emit_32(1127972864); -emit_32(3219314631); -emit_32(3276992545); -emit_32(1128228848); -emit_32(3220786161); -emit_32(3276992545); -emit_32(1128484897); -emit_32(3215535647); -emit_32(3276992545); -emit_32(1128740880); -emit_32(3219082434); -emit_32(3276992545); -emit_32(1128996864); -emit_32(3207719209); -emit_32(3276992545); -emit_32(1129252848); -emit_32(3219319329); -emit_32(3276992545); -emit_32(1129508897); -emit_32(3222885200); -emit_32(3276992545); -emit_32(1129764880); -emit_32(3223784878); -emit_32(3276992545); -emit_32(1130020864); -emit_32(3226090865); -emit_32(3276992545); -emit_32(1130276848); -emit_32(3223180269); -emit_32(3276992545); -emit_32(1130532897); -emit_32(3210523051); -emit_32(3276992545); -emit_32(1130788880); -emit_32(1069117184); -emit_32(3276992545); -emit_32(1131044864); -emit_32(1079791646); -emit_32(3276992545); -emit_32(1131300848); -emit_32(1085107318); -emit_32(3276992545); -emit_32(1131556897); -emit_32(1086920663); -emit_32(3276992545); -emit_32(1131812880); -emit_32(1088946029); -emit_32(3276992545); -emit_32(1132068864); -emit_32(1093373998); -emit_32(3276992545); -emit_32(1081737216); -emit_32(1097108292); -emit_32(3277248528); -emit_32(1090125824); -emit_32(1096843002); -emit_32(3277248528); -emit_32(1094418484); -emit_32(1095568248); -emit_32(3277248528); -emit_32(1098514432); -emit_32(1095018899); -emit_32(3277248528); -emit_32(1100759066); -emit_32(1094782235); -emit_32(3277248528); -emit_32(1102807040); -emit_32(1095180170); -emit_32(3277248528); -emit_32(1104855066); -emit_32(1095450493); -emit_32(3277248528); -emit_32(1106903040); -emit_32(1095069965); -emit_32(3277248528); -emit_32(1108123661); -emit_32(1095994599); -emit_32(3277248528); -emit_32(1109147648); -emit_32(1095664822); -emit_32(3277248528); -emit_32(1110171661); -emit_32(1095335569); -emit_32(3277248528); -emit_32(1111195648); -emit_32(1094159381); -emit_32(3277248528); -emit_32(1112219661); -emit_32(1093190812); -emit_32(3277248528); -emit_32(1113243648); -emit_32(1092024942); -emit_32(3277248528); -emit_32(1114267661); -emit_32(1092719162); -emit_32(3277248528); -emit_32(1115291648); -emit_32(1091950724); -emit_32(3277248528); -emit_32(1116000263); -emit_32(1090594496); -emit_32(3277248528); -emit_32(1116512256); -emit_32(1087264889); -emit_32(3277248528); -emit_32(1117024263); -emit_32(1085915770); -emit_32(3277248528); -emit_32(1117536256); -emit_32(1085498563); -emit_32(3277248528); -emit_32(1118048263); -emit_32(1087685913); -emit_32(3277248528); -emit_32(1118560256); -emit_32(1089772496); -emit_32(3277248528); -emit_32(1119072263); -emit_32(1090845682); -emit_32(3277248528); -emit_32(1119584256); -emit_32(1090463340); -emit_32(3277248528); -emit_32(1120096263); -emit_32(1085056987); -emit_32(3277248528); -emit_32(1120608322); -emit_32(1080738301); -emit_32(3277248528); -emit_32(1121120289); -emit_32(1078775408); -emit_32(3277248528); -emit_32(1121632256); -emit_32(1086143815); -emit_32(3277248528); -emit_32(1122144223); -emit_32(1089267858); -emit_32(3277248528); -emit_32(1122656322); -emit_32(1090842075); -emit_32(3277248528); -emit_32(1123168289); -emit_32(1092362164); -emit_32(3277248528); -emit_32(1123680256); -emit_32(1092866068); -emit_32(3277248528); -emit_32(1124132848); -emit_32(1092973547); -emit_32(3277248528); -emit_32(1124388897); -emit_32(1093272810); -emit_32(3277248528); -emit_32(1124644880); -emit_32(1093540826); -emit_32(3277248528); -emit_32(1124900864); -emit_32(1091662900); -emit_32(3277248528); -emit_32(1125156848); -emit_32(1087337472); -emit_32(3277248528); -emit_32(1125412897); -emit_32(1084271960); -emit_32(3277248528); -emit_32(1125668880); -emit_32(1086273209); -emit_32(3277248528); -emit_32(1125924864); -emit_32(1087017908); -emit_32(3277248528); -emit_32(1126180848); -emit_32(1086137020); -emit_32(3277248528); -emit_32(1126436897); -emit_32(1084291023); -emit_32(3277248528); -emit_32(1126692880); -emit_32(1084252771); -emit_32(3277248528); -emit_32(1126948864); -emit_32(1082890062); -emit_32(3277248528); -emit_32(1127204848); -emit_32(1080838922); -emit_32(3277248528); -emit_32(1127460897); -emit_32(1077790963); -emit_32(3277248528); -emit_32(1127716880); -emit_32(1069026504); -emit_32(3277248528); -emit_32(1127972864); -emit_32(3200230497); -emit_32(3277248528); -emit_32(1128228848); -emit_32(3212093549); -emit_32(3277248528); -emit_32(1128484897); -emit_32(3187505818); -emit_32(3277248528); -emit_32(1128740880); -emit_32(3186118946); -emit_32(3277248528); -emit_32(1128996864); -emit_32(3163350412); -emit_32(3277248528); -emit_32(1129252848); -emit_32(3213662303); -emit_32(3277248528); -emit_32(1129508897); -emit_32(3213755333); -emit_32(3277248528); -emit_32(1129764880); -emit_32(3220593894); -emit_32(3277248528); -emit_32(1130020864); -emit_32(3222323667); -emit_32(3277248528); -emit_32(1130276848); -emit_32(3215526587); -emit_32(3277248528); -emit_32(1130532897); -emit_32(1045835140); -emit_32(3277248528); -emit_32(1130788880); -emit_32(1075469835); -emit_32(3277248528); -emit_32(1131044864); -emit_32(1083532819); -emit_32(3277248528); -emit_32(1131300848); -emit_32(1086949121); -emit_32(3277248528); -emit_32(1131556897); -emit_32(1088845177); -emit_32(3277248528); -emit_32(1131812880); -emit_32(1090603115); -emit_32(3277248528); -emit_32(1132068864); -emit_32(1092936742); -emit_32(3277248528); -emit_32(1081737216); -emit_32(1096047133); -emit_32(3277504512); -emit_32(1090125824); -emit_32(1095575064); -emit_32(3277504512); -emit_32(1094418484); -emit_32(1094514324); -emit_32(3277504512); -emit_32(1098514432); -emit_32(1094409781); -emit_32(3277504512); -emit_32(1100759066); -emit_32(1094209084); -emit_32(3277504512); -emit_32(1102807040); -emit_32(1094844731); -emit_32(3277504512); -emit_32(1104855066); -emit_32(1094741236); -emit_32(3277504512); -emit_32(1106903040); -emit_32(1095085484); -emit_32(3277504512); -emit_32(1108123661); -emit_32(1095114110); -emit_32(3277504512); -emit_32(1109147648); -emit_32(1094994362); -emit_32(3277504512); -emit_32(1110171661); -emit_32(1095239939); -emit_32(3277504512); -emit_32(1111195648); -emit_32(1093966548); -emit_32(3277504512); -emit_32(1112219661); -emit_32(1092807347); -emit_32(3277504512); -emit_32(1113243648); -emit_32(1093061208); -emit_32(3277504512); -emit_32(1114267661); -emit_32(1092621120); -emit_32(3277504512); -emit_32(1115291648); -emit_32(1092574889); -emit_32(3277504512); -emit_32(1116000263); -emit_32(1091199283); -emit_32(3277504512); -emit_32(1116512256); -emit_32(1087281792); -emit_32(3277504512); -emit_32(1117024263); -emit_32(1084862056); -emit_32(3277504512); -emit_32(1117536256); -emit_32(1084838904); -emit_32(3277504512); -emit_32(1118048263); -emit_32(1088961905); -emit_32(3277504512); -emit_32(1118560256); -emit_32(1090683457); -emit_32(3277504512); -emit_32(1119072263); -emit_32(1091541548); -emit_32(3277504512); -emit_32(1119584256); -emit_32(1089950880); -emit_32(3277504512); -emit_32(1120096263); -emit_32(1085097923); -emit_32(3277504512); -emit_32(1120608322); -emit_32(1082634273); -emit_32(3277504512); -emit_32(1121120289); -emit_32(1085048283); -emit_32(3277504512); -emit_32(1121632256); -emit_32(1089879786); -emit_32(3277504512); -emit_32(1122144223); -emit_32(1091437760); -emit_32(3277504512); -emit_32(1122656322); -emit_32(1092036938); -emit_32(3277504512); -emit_32(1123168289); -emit_32(1091792777); -emit_32(3277504512); -emit_32(1123680256); -emit_32(1092759427); -emit_32(3277504512); -emit_32(1124132848); -emit_32(1094303141); -emit_32(3277504512); -emit_32(1124388897); -emit_32(1094722047); -emit_32(3277504512); -emit_32(1124644880); -emit_32(1095047211); -emit_32(3277504512); -emit_32(1124900864); -emit_32(1093500980); -emit_32(3277504512); -emit_32(1125156848); -emit_32(1089802590); -emit_32(3277504512); -emit_32(1125412897); -emit_32(1086478164); -emit_32(3277504512); -emit_32(1125668880); -emit_32(1087292152); -emit_32(3277504512); -emit_32(1125924864); -emit_32(1088463244); -emit_32(3277504512); -emit_32(1126180848); -emit_32(1088955697); -emit_32(3277504512); -emit_32(1126436897); -emit_32(1086983577); -emit_32(3277504512); -emit_32(1126692880); -emit_32(1087333382); -emit_32(3277504512); -emit_32(1126948864); -emit_32(1086099795); -emit_32(3277504512); -emit_32(1127204848); -emit_32(1085722623); -emit_32(3277504512); -emit_32(1127460897); -emit_32(1082769224); -emit_32(3277504512); -emit_32(1127716880); -emit_32(1075827190); -emit_32(3277504512); -emit_32(1127972864); -emit_32(1066775588); -emit_32(3277504512); -emit_32(1128228848); -emit_32(1067171279); -emit_32(3277504512); -emit_32(1128484897); -emit_32(1067001745); -emit_32(3277504512); -emit_32(1128740880); -emit_32(1067686843); -emit_32(3277504512); -emit_32(1128996864); -emit_32(1065883795); -emit_32(3277504512); -emit_32(1129252848); -emit_32(1040732182); -emit_32(3277504512); -emit_32(1129508897); -emit_32(3197189593); -emit_32(3277504512); -emit_32(1129764880); -emit_32(3203486016); -emit_32(3277504512); -emit_32(1130020864); -emit_32(3211855951); -emit_32(3277504512); -emit_32(1130276848); -emit_32(3212062612); -emit_32(3277504512); -emit_32(1130532897); -emit_32(1061179313); -emit_32(3277504512); -emit_32(1130788880); -emit_32(1076017024); -emit_32(3277504512); -emit_32(1131044864); -emit_32(1084602198); -emit_32(3277504512); -emit_32(1131300848); -emit_32(1088897291); -emit_32(3277504512); -emit_32(1131556897); -emit_32(1090987995); -emit_32(3277504512); -emit_32(1131812880); -emit_32(1091140101); -emit_32(3277504512); -emit_32(1132068864); -emit_32(1093070540); -emit_32(3277504512); -emit_32(1081737216); -emit_32(1095782787); -emit_32(3277760496); -emit_32(1090125824); -emit_32(1095949510); -emit_32(3277760496); -emit_32(1094418484); -emit_32(1095197157); -emit_32(3277760496); -emit_32(1098514432); -emit_32(1093509684); -emit_32(3277760496); -emit_32(1100759066); -emit_32(1093932365); -emit_32(3277760496); -emit_32(1102807040); -emit_32(1094883004); -emit_32(3277760496); -emit_32(1104855066); -emit_32(1095364195); -emit_32(3277760496); -emit_32(1106903040); -emit_32(1095467794); -emit_32(3277760496); -emit_32(1108123661); -emit_32(1095382231); -emit_32(3277760496); -emit_32(1109147648); -emit_32(1095263532); -emit_32(3277760496); -emit_32(1110171661); -emit_32(1094240751); -emit_32(3277760496); -emit_32(1111195648); -emit_32(1093792485); -emit_32(3277760496); -emit_32(1112219661); -emit_32(1093773400); -emit_32(3277760496); -emit_32(1113243648); -emit_32(1093969799); -emit_32(3277760496); -emit_32(1114267661); -emit_32(1092613235); -emit_32(3277760496); -emit_32(1115291648); -emit_32(1091641803); -emit_32(3277760496); -emit_32(1116000263); -emit_32(1090223425); -emit_32(3277760496); -emit_32(1116512256); -emit_32(1086325449); -emit_32(3277760496); -emit_32(1117024263); -emit_32(1086748822); -emit_32(3277760496); -emit_32(1117536256); -emit_32(1088214081); -emit_32(3277760496); -emit_32(1118048263); -emit_32(1090683918); -emit_32(3277760496); -emit_32(1118560256); -emit_32(1091490273); -emit_32(3277760496); -emit_32(1119072263); -emit_32(1092135263); -emit_32(3277760496); -emit_32(1119584256); -emit_32(1090576429); -emit_32(3277760496); -emit_32(1120096263); -emit_32(1085919021); -emit_32(3277760496); -emit_32(1120608322); -emit_32(1084273260); -emit_32(3277760496); -emit_32(1121120289); -emit_32(1088748708); -emit_32(3277760496); -emit_32(1121632256); -emit_32(1091512618); -emit_32(3277760496); -emit_32(1122144223); -emit_32(1092476008); -emit_32(3277760496); -emit_32(1122656322); -emit_32(1093289483); -emit_32(3277760496); -emit_32(1123168289); -emit_32(1093443623); -emit_32(3277760496); -emit_32(1123680256); -emit_32(1093739846); -emit_32(3277760496); -emit_32(1124132848); -emit_32(1095381916); -emit_32(3277760496); -emit_32(1124388897); -emit_32(1095171886); -emit_32(3277760496); -emit_32(1124644880); -emit_32(1094833196); -emit_32(3277760496); -emit_32(1124900864); -emit_32(1094087134); -emit_32(3277760496); -emit_32(1125156848); -emit_32(1091517725); -emit_32(3277760496); -emit_32(1125412897); -emit_32(1088065624); -emit_32(3277760496); -emit_32(1125668880); -emit_32(1089789588); -emit_32(3277760496); -emit_32(1125924864); -emit_32(1090797741); -emit_32(3277760496); -emit_32(1126180848); -emit_32(1090448785); -emit_32(3277760496); -emit_32(1126436897); -emit_32(1089515972); -emit_32(3277760496); -emit_32(1126692880); -emit_32(1088794300); -emit_32(3277760496); -emit_32(1126948864); -emit_32(1086317606); -emit_32(3277760496); -emit_32(1127204848); -emit_32(1085853170); -emit_32(3277760496); -emit_32(1127460897); -emit_32(1083759395); -emit_32(3277760496); -emit_32(1127716880); -emit_32(1079594766); -emit_32(3277760496); -emit_32(1127972864); -emit_32(1077764623); -emit_32(3277760496); -emit_32(1128228848); -emit_32(1072514403); -emit_32(3277760496); -emit_32(1128484897); -emit_32(1067984303); -emit_32(3277760496); -emit_32(1128740880); -emit_32(1066412026); -emit_32(3277760496); -emit_32(1128996864); -emit_32(1069352569); -emit_32(3277760496); -emit_32(1129252848); -emit_32(1072856490); -emit_32(3277760496); -emit_32(1129508897); -emit_32(1059155041); -emit_32(3277760496); -emit_32(1129764880); -emit_32(1050172017); -emit_32(3277760496); -emit_32(1130020864); -emit_32(3157538945); -emit_32(3277760496); -emit_32(1130276848); -emit_32(3194387429); -emit_32(3277760496); -emit_32(1130532897); -emit_32(1059188931); -emit_32(3277760496); -emit_32(1130788880); -emit_32(1077509609); -emit_32(3277760496); -emit_32(1131044864); -emit_32(1085587356); -emit_32(3277760496); -emit_32(1131300848); -emit_32(1088891944); -emit_32(3277760496); -emit_32(1131556897); -emit_32(1090308297); -emit_32(3277760496); -emit_32(1131812880); -emit_32(1091359484); -emit_32(3277760496); -emit_32(1132068864); -emit_32(1093623035); -emit_32(3277760496); -emit_32(1081737216); -emit_32(1094685347); -emit_32(3278016545); -emit_32(1090125824); -emit_32(1095642592); -emit_32(3278016545); -emit_32(1094418484); -emit_32(1094847876); -emit_32(3278016545); -emit_32(1098514432); -emit_32(1093374732); -emit_32(3278016545); -emit_32(1100759066); -emit_32(1094384720); -emit_32(3278016545); -emit_32(1102807040); -emit_32(1095400371); -emit_32(3278016545); -emit_32(1104855066); -emit_32(1095484362); -emit_32(3278016545); -emit_32(1106903040); -emit_32(1094502790); -emit_32(3278016545); -emit_32(1108123661); -emit_32(1093875112); -emit_32(3278016545); -emit_32(1109147648); -emit_32(1093633206); -emit_32(3278016545); -emit_32(1110171661); -emit_32(1093418667); -emit_32(3278016545); -emit_32(1111195648); -emit_32(1093659211); -emit_32(3278016545); -emit_32(1112219661); -emit_32(1093957426); -emit_32(3278016545); -emit_32(1113243648); -emit_32(1093739846); -emit_32(3278016545); -emit_32(1114267661); -emit_32(1093359842); -emit_32(3278016545); -emit_32(1115291648); -emit_32(1091739111); -emit_32(3278016545); -emit_32(1116000263); -emit_32(1089668246); -emit_32(3278016545); -emit_32(1116512256); -emit_32(1087761327); -emit_32(3278016545); -emit_32(1117024263); -emit_32(1088382734); -emit_32(3278016545); -emit_32(1117536256); -emit_32(1089936850); -emit_32(3278016545); -emit_32(1118048263); -emit_32(1091570688); -emit_32(3278016545); -emit_32(1118560256); -emit_32(1092069527); -emit_32(3278016545); -emit_32(1119072263); -emit_32(1091509504); -emit_32(3278016545); -emit_32(1119584256); -emit_32(1090092228); -emit_32(3278016545); -emit_32(1120096263); -emit_32(1086488041); -emit_32(3278016545); -emit_32(1120608322); -emit_32(1087594478); -emit_32(3278016545); -emit_32(1121120289); -emit_32(1091111695); -emit_32(3278016545); -emit_32(1121632256); -emit_32(1092917028); -emit_32(3278016545); -emit_32(1122144223); -emit_32(1094162946); -emit_32(3278016545); -emit_32(1122656322); -emit_32(1094317402); -emit_32(3278016545); -emit_32(1123168289); -emit_32(1094797545); -emit_32(3278016545); -emit_32(1123680256); -emit_32(1095272759); -emit_32(3278016545); -emit_32(1124132848); -emit_32(1096382467); -emit_32(3278016545); -emit_32(1124388897); -emit_32(1095677824); -emit_32(3278016545); -emit_32(1124644880); -emit_32(1094211076); -emit_32(3278016545); -emit_32(1124900864); -emit_32(1093289168); -emit_32(3278016545); -emit_32(1125156848); -emit_32(1091399110); -emit_32(3278016545); -emit_32(1125412897); -emit_32(1091357282); -emit_32(3278016545); -emit_32(1125668880); -emit_32(1092084459); -emit_32(3278016545); -emit_32(1125924864); -emit_32(1092576409); -emit_32(3278016545); -emit_32(1126180848); -emit_32(1091310967); -emit_32(3278016545); -emit_32(1126436897); -emit_32(1089767358); -emit_32(3278016545); -emit_32(1126692880); -emit_32(1088833559); -emit_32(3278016545); -emit_32(1126948864); -emit_32(1088084855); -emit_32(3278016545); -emit_32(1127204848); -emit_32(1086548397); -emit_32(3278016545); -emit_32(1127460897); -emit_32(1083608358); -emit_32(3278016545); -emit_32(1127716880); -emit_32(1083278790); -emit_32(3278016545); -emit_32(1127972864); -emit_32(1080394661); -emit_32(3278016545); -emit_32(1128228848); -emit_32(1077852158); -emit_32(3278016545); -emit_32(1128484897); -emit_32(1069478650); -emit_32(3278016545); -emit_32(1128740880); -emit_32(1072553494); -emit_32(3278016545); -emit_32(1128996864); -emit_32(1069471100); -emit_32(3278016545); -emit_32(1129252848); -emit_32(1068704381); -emit_32(3278016545); -emit_32(1129508897); -emit_32(1063054771); -emit_32(3278016545); -emit_32(1129764880); -emit_32(1066657309); -emit_32(3278016545); -emit_32(1130020864); -emit_32(1058799582); -emit_32(3278016545); -emit_32(1130276848); -emit_32(1065716610); -emit_32(3278016545); -emit_32(1130532897); -emit_32(1070221796); -emit_32(3278016545); -emit_32(1130788880); -emit_32(1082372632); -emit_32(3278016545); -emit_32(1131044864); -emit_32(1085584357); -emit_32(3278016545); -emit_32(1131300848); -emit_32(1087618406); -emit_32(3278016545); -emit_32(1131556897); -emit_32(1089074731); -emit_32(3278016545); -emit_32(1131812880); -emit_32(1091116256); -emit_32(3278016545); -emit_32(1132068864); -emit_32(1093443623); -emit_32(3278016545); -emit_32(1081737216); -emit_32(1093100529); -emit_32(3278272528); -emit_32(1090125824); -emit_32(1094102968); -emit_32(3278272528); -emit_32(1094418484); -emit_32(1093438380); -emit_32(3278272528); -emit_32(1098514432); -emit_32(1093242192); -emit_32(3278272528); -emit_32(1100759066); -emit_32(1093664663); -emit_32(3278272528); -emit_32(1102807040); -emit_32(1094290978); -emit_32(3278272528); -emit_32(1104855066); -emit_32(1094142185); -emit_32(3278272528); -emit_32(1106903040); -emit_32(1092722622); -emit_32(3278272528); -emit_32(1108123661); -emit_32(1093048205); -emit_32(3278272528); -emit_32(1109147648); -emit_32(1092329868); -emit_32(3278272528); -emit_32(1110171661); -emit_32(1092322308); -emit_32(3278272528); -emit_32(1111195648); -emit_32(1093430621); -emit_32(3278272528); -emit_32(1112219661); -emit_32(1093536317); -emit_32(3278272528); -emit_32(1113243648); -emit_32(1092950268); -emit_32(3278272528); -emit_32(1114267661); -emit_32(1093055336); -emit_32(3278272528); -emit_32(1115291648); -emit_32(1091513918); -emit_32(3278272528); -emit_32(1116000263); -emit_32(1090353428); -emit_32(3278272528); -emit_32(1116512256); -emit_32(1091025450); -emit_32(3278272528); -emit_32(1117024263); -emit_32(1091303186); -emit_32(3278272528); -emit_32(1117536256); -emit_32(1091441535); -emit_32(3278272528); -emit_32(1118048263); -emit_32(1092287275); -emit_32(3278272528); -emit_32(1118560256); -emit_32(1092144259); -emit_32(3278272528); -emit_32(1119072263); -emit_32(1091616102); -emit_32(3278272528); -emit_32(1119584256); -emit_32(1091037110); -emit_32(3278272528); -emit_32(1120096263); -emit_32(1090309493); -emit_32(3278272528); -emit_32(1120608322); -emit_32(1091784220); -emit_32(3278272528); -emit_32(1121120289); -emit_32(1093152434); -emit_32(3278272528); -emit_32(1121632256); -emit_32(1094218836); -emit_32(3278272528); -emit_32(1122144223); -emit_32(1094752980); -emit_32(3278272528); -emit_32(1122656322); -emit_32(1095698796); -emit_32(3278272528); -emit_32(1123168289); -emit_32(1095918053); -emit_32(3278272528); -emit_32(1123680256); -emit_32(1096702912); -emit_32(3278272528); -emit_32(1124132848); -emit_32(1097339817); -emit_32(3278272528); -emit_32(1124388897); -emit_32(1095953075); -emit_32(3278272528); -emit_32(1124644880); -emit_32(1094317611); -emit_32(3278272528); -emit_32(1124900864); -emit_32(1093780950); -emit_32(3278272528); -emit_32(1125156848); -emit_32(1092660022); -emit_32(3278272528); -emit_32(1125412897); -emit_32(1092828633); -emit_32(3278272528); -emit_32(1125668880); -emit_32(1093621252); -emit_32(3278272528); -emit_32(1125924864); -emit_32(1093691821); -emit_32(3278272528); -emit_32(1126180848); -emit_32(1092496151); -emit_32(3278272528); -emit_32(1126436897); -emit_32(1091489371); -emit_32(3278272528); -emit_32(1126692880); -emit_32(1090315742); -emit_32(3278272528); -emit_32(1126948864); -emit_32(1088919605); -emit_32(3278272528); -emit_32(1127204848); -emit_32(1086524028); -emit_32(3278272528); -emit_32(1127460897); -emit_32(1084543520); -emit_32(3278272528); -emit_32(1127716880); -emit_32(1083661479); -emit_32(3278272528); -emit_32(1127972864); -emit_32(1082237198); -emit_32(3278272528); -emit_32(1128228848); -emit_32(1078013052); -emit_32(3278272528); -emit_32(1128484897); -emit_32(1072342353); -emit_32(3278272528); -emit_32(1128740880); -emit_32(1077011074); -emit_32(3278272528); -emit_32(1128996864); -emit_32(1078172393); -emit_32(3278272528); -emit_32(1129252848); -emit_32(1074035719); -emit_32(3278272528); -emit_32(1129508897); -emit_32(1073825416); -emit_32(3278272528); -emit_32(1129764880); -emit_32(1074307678); -emit_32(3278272528); -emit_32(1130020864); -emit_32(1070873927); -emit_32(3278272528); -emit_32(1130276848); -emit_32(1072403002); -emit_32(3278272528); -emit_32(1130532897); -emit_32(1077025838); -emit_32(3278272528); -emit_32(1130788880); -emit_32(1081902304); -emit_32(3278272528); -emit_32(1131044864); -emit_32(1085968619); -emit_32(3278272528); -emit_32(1131300848); -emit_32(1088231676); -emit_32(3278272528); -emit_32(1131556897); -emit_32(1090439956); -emit_32(3278272528); -emit_32(1131812880); -emit_32(1089744184); -emit_32(3278272528); -emit_32(1132068864); -emit_32(1092872988); -emit_32(3278272528); -emit_32(1081737216); -emit_32(1091412678); -emit_32(3278528512); -emit_32(1090125824); -emit_32(1091988504); -emit_32(3278528512); -emit_32(1094418484); -emit_32(1092226269); -emit_32(3278528512); -emit_32(1098514432); -emit_32(1092585521); -emit_32(3278528512); -emit_32(1100759066); -emit_32(1092575014); -emit_32(3278528512); -emit_32(1102807040); -emit_32(1092307292); -emit_32(3278528512); -emit_32(1104855066); -emit_32(1092661805); -emit_32(3278528512); -emit_32(1106903040); -emit_32(1092468123); -emit_32(3278528512); -emit_32(1108123661); -emit_32(1092120016); -emit_32(3278528512); -emit_32(1109147648); -emit_32(1091309048); -emit_32(3278528512); -emit_32(1110171661); -emit_32(1091564323); -emit_32(3278528512); -emit_32(1111195648); -emit_32(1092158059); -emit_32(3278528512); -emit_32(1112219661); -emit_32(1092138943); -emit_32(3278528512); -emit_32(1113243648); -emit_32(1092639785); -emit_32(3278528512); -emit_32(1114267661); -emit_32(1092158950); -emit_32(3278528512); -emit_32(1115291648); -emit_32(1091761330); -emit_32(3278528512); -emit_32(1116000263); -emit_32(1091873884); -emit_32(3278528512); -emit_32(1116512256); -emit_32(1093128002); -emit_32(3278528512); -emit_32(1117024263); -emit_32(1093545755); -emit_32(3278528512); -emit_32(1117536256); -emit_32(1093685844); -emit_32(3278528512); -emit_32(1118048263); -emit_32(1094474478); -emit_32(3278528512); -emit_32(1118560256); -emit_32(1093835057); -emit_32(3278528512); -emit_32(1119072263); -emit_32(1093247435); -emit_32(3278528512); -emit_32(1119584256); -emit_32(1092545770); -emit_32(3278528512); -emit_32(1120096263); -emit_32(1092881691); -emit_32(3278528512); -emit_32(1120608322); -emit_32(1093753687); -emit_32(3278528512); -emit_32(1121120289); -emit_32(1095402888); -emit_32(3278528512); -emit_32(1121632256); -emit_32(1096263454); -emit_32(3278528512); -emit_32(1122144223); -emit_32(1097648518); -emit_32(3278528512); -emit_32(1122656322); -emit_32(1098257845); -emit_32(3278528512); -emit_32(1123168289); -emit_32(1098906075); -emit_32(3278528512); -emit_32(1123680256); -emit_32(1097757884); -emit_32(3278528512); -emit_32(1124132848); -emit_32(1097095184); -emit_32(3278528512); -emit_32(1124388897); -emit_32(1096820772); -emit_32(3278528512); -emit_32(1124644880); -emit_32(1095881563); -emit_32(3278528512); -emit_32(1124900864); -emit_32(1095322462); -emit_32(3278528512); -emit_32(1125156848); -emit_32(1094560881); -emit_32(3278528512); -emit_32(1125412897); -emit_32(1094212020); -emit_32(3278528512); -emit_32(1125668880); -emit_32(1094591919); -emit_32(3278528512); -emit_32(1125924864); -emit_32(1094354836); -emit_32(3278528512); -emit_32(1126180848); -emit_32(1093487244); -emit_32(3278528512); -emit_32(1126436897); -emit_32(1092900566); -emit_32(3278528512); -emit_32(1126692880); -emit_32(1091131859); -emit_32(3278528512); -emit_32(1126948864); -emit_32(1088434303); -emit_32(3278528512); -emit_32(1127204848); -emit_32(1085602330); -emit_32(3278528512); -emit_32(1127460897); -emit_32(1084383381); -emit_32(3278528512); -emit_32(1127716880); -emit_32(1082990348); -emit_32(3278528512); -emit_32(1127972864); -emit_32(1081942359); -emit_32(3278528512); -emit_32(1128228848); -emit_32(1079707928); -emit_32(3278528512); -emit_32(1128484897); -emit_32(1076020757); -emit_32(3278528512); -emit_32(1128740880); -emit_32(1081959766); -emit_32(3278528512); -emit_32(1128996864); -emit_32(1081769302); -emit_32(3278528512); -emit_32(1129252848); -emit_32(1077543709); -emit_32(3278528512); -emit_32(1129508897); -emit_32(1078419522); -emit_32(3278528512); -emit_32(1129764880); -emit_32(1079325911); -emit_32(3278528512); -emit_32(1130020864); -emit_32(1076435784); -emit_32(3278528512); -emit_32(1130276848); -emit_32(1076442830); -emit_32(3278528512); -emit_32(1130532897); -emit_32(1078716269); -emit_32(3278528512); -emit_32(1130788880); -emit_32(1083099337); -emit_32(3278528512); -emit_32(1131044864); -emit_32(1086173385); -emit_32(3278528512); -emit_32(1131300848); -emit_32(1088001787); -emit_32(3278528512); -emit_32(1131556897); -emit_32(1091260069); -emit_32(3278528512); -emit_32(1131812880); -emit_32(1091015247); -emit_32(3278528512); -emit_32(1132068864); -emit_32(1093018740); -emit_32(3278528512); -emit_32(1081737216); -emit_32(1090509120); -emit_32(3278784496); -emit_32(1090125824); -emit_32(1091171244); -emit_32(3278784496); -emit_32(1094418484); -emit_32(1091637818); -emit_32(3278784496); -emit_32(1098514432); -emit_32(1091699621); -emit_32(3278784496); -emit_32(1100759066); -emit_32(1091545869); -emit_32(3278784496); -emit_32(1102807040); -emit_32(1092355642); -emit_32(3278784496); -emit_32(1104855066); -emit_32(1092176189); -emit_32(3278784496); -emit_32(1106903040); -emit_32(1091883961); -emit_32(3278784496); -emit_32(1108123661); -emit_32(1091185924); -emit_32(3278784496); -emit_32(1109147648); -emit_32(1091284217); -emit_32(3278784496); -emit_32(1110171661); -emit_32(1091038221); -emit_32(3278784496); -emit_32(1111195648); -emit_32(1091340725); -emit_32(3278784496); -emit_32(1112219661); -emit_32(1091305944); -emit_32(3278784496); -emit_32(1113243648); -emit_32(1091527623); -emit_32(3278784496); -emit_32(1114267661); -emit_32(1092680260); -emit_32(3278784496); -emit_32(1115291648); -emit_32(1093798461); -emit_32(3278784496); -emit_32(1116000263); -emit_32(1093476968); -emit_32(3278784496); -emit_32(1116512256); -emit_32(1094724669); -emit_32(3278784496); -emit_32(1117024263); -emit_32(1095984847); -emit_32(3278784496); -emit_32(1117536256); -emit_32(1096949223); -emit_32(3278784496); -emit_32(1118048263); -emit_32(1097185362); -emit_32(3278784496); -emit_32(1118560256); -emit_32(1096053529); -emit_32(3278784496); -emit_32(1119072263); -emit_32(1095554721); -emit_32(3278784496); -emit_32(1119584256); -emit_32(1094764095); -emit_32(3278784496); -emit_32(1120096263); -emit_32(1095516239); -emit_32(3278784496); -emit_32(1120608322); -emit_32(1096842687); -emit_32(3278784496); -emit_32(1121120289); -emit_32(1098862245); -emit_32(3278784496); -emit_32(1121632256); -emit_32(1099841038); -emit_32(3278784496); -emit_32(1122144223); -emit_32(1100521249); -emit_32(3278784496); -emit_32(1122656322); -emit_32(1100352324); -emit_32(3278784496); -emit_32(1123168289); -emit_32(1100382418); -emit_32(3278784496); -emit_32(1123680256); -emit_32(1099683961); -emit_32(3278784496); -emit_32(1124132848); -emit_32(1099118517); -emit_32(3278784496); -emit_32(1124388897); -emit_32(1098912891); -emit_32(3278784496); -emit_32(1124644880); -emit_32(1098053268); -emit_32(3278784496); -emit_32(1124900864); -emit_32(1096737201); -emit_32(3278784496); -emit_32(1125156848); -emit_32(1095640390); -emit_32(3278784496); -emit_32(1125412897); -emit_32(1094410096); -emit_32(3278784496); -emit_32(1125668880); -emit_32(1094098878); -emit_32(3278784496); -emit_32(1125924864); -emit_32(1093723488); -emit_32(3278784496); -emit_32(1126180848); -emit_32(1093527195); -emit_32(3278784496); -emit_32(1126436897); -emit_32(1093210944); -emit_32(3278784496); -emit_32(1126692880); -emit_32(1092714548); -emit_32(3278784496); -emit_32(1126948864); -emit_32(1089965455); -emit_32(3278784496); -emit_32(1127204848); -emit_32(1086218431); -emit_32(3278784496); -emit_32(1127460897); -emit_32(1085307869); -emit_32(3278784496); -emit_32(1127716880); -emit_32(1084803231); -emit_32(3278784496); -emit_32(1127972864); -emit_32(1084117756); -emit_32(3278784496); -emit_32(1128228848); -emit_32(1082406438); -emit_32(3278784496); -emit_32(1128484897); -emit_32(1080428635); -emit_32(3278784496); -emit_32(1128740880); -emit_32(1082196765); -emit_32(3278784496); -emit_32(1128996864); -emit_32(1082931292); -emit_32(3278784496); -emit_32(1129252848); -emit_32(1078353839); -emit_32(3278784496); -emit_32(1129508897); -emit_32(1078676842); -emit_32(3278784496); -emit_32(1129764880); -emit_32(1078175832); -emit_32(3278784496); -emit_32(1130020864); -emit_32(1078788788); -emit_32(3278784496); -emit_32(1130276848); -emit_32(1075988503); -emit_32(3278784496); -emit_32(1130532897); -emit_32(1078470902); -emit_32(3278784496); -emit_32(1130788880); -emit_32(1083278329); -emit_32(3278784496); -emit_32(1131044864); -emit_32(1086190728); -emit_32(3278784496); -emit_32(1131300848); -emit_32(1088421406); -emit_32(3278784496); -emit_32(1131556897); -emit_32(1090737280); -emit_32(3278784496); -emit_32(1131812880); -emit_32(1092161257); -emit_32(3278784496); -emit_32(1132068864); -emit_32(1094162946); -emit_32(3278784496); -emit_32(1081737216); -emit_32(1087170664); -emit_32(3279040545); -emit_32(1090125824); -emit_32(1090282922); -emit_32(3279040545); -emit_32(1094418484); -emit_32(1091155117); -emit_32(3279040545); -emit_32(1098514432); -emit_32(1091115921); -emit_32(3279040545); -emit_32(1100759066); -emit_32(1091154351); -emit_32(3279040545); -emit_32(1102807040); -emit_32(1091182076); -emit_32(3279040545); -emit_32(1104855066); -emit_32(1090880379); -emit_32(3279040545); -emit_32(1106903040); -emit_32(1089488437); -emit_32(3279040545); -emit_32(1108123661); -emit_32(1089764611); -emit_32(3279040545); -emit_32(1109147648); -emit_32(1090012599); -emit_32(3279040545); -emit_32(1110171661); -emit_32(1089610386); -emit_32(3279040545); -emit_32(1111195648); -emit_32(1090497943); -emit_32(3279040545); -emit_32(1112219661); -emit_32(1092221833); -emit_32(3279040545); -emit_32(1113243648); -emit_32(1091868673); -emit_32(3279040545); -emit_32(1114267661); -emit_32(1093013812); -emit_32(3279040545); -emit_32(1115291648); -emit_32(1093957635); -emit_32(3279040545); -emit_32(1116000263); -emit_32(1095032950); -emit_32(3279040545); -emit_32(1116512256); -emit_32(1096314729); -emit_32(3279040545); -emit_32(1117024263); -emit_32(1097345375); -emit_32(3279040545); -emit_32(1117536256); -emit_32(1098078329); -emit_32(3279040545); -emit_32(1118048263); -emit_32(1098803524); -emit_32(3279040545); -emit_32(1118560256); -emit_32(1098341522); -emit_32(3279040545); -emit_32(1119072263); -emit_32(1097352715); -emit_32(3279040545); -emit_32(1119584256); -emit_32(1097048103); -emit_32(3279040545); -emit_32(1120096263); -emit_32(1096764149); -emit_32(3279040545); -emit_32(1120608322); -emit_32(1098722469); -emit_32(3279040545); -emit_32(1121120289); -emit_32(1100309647); -emit_32(3279040545); -emit_32(1121632256); -emit_32(1101387321); -emit_32(3279040545); -emit_32(1122144223); -emit_32(1101809739); -emit_32(3279040545); -emit_32(1122656322); -emit_32(1101519703); -emit_32(3279040545); -emit_32(1123168289); -emit_32(1101121821); -emit_32(3279040545); -emit_32(1123680256); -emit_32(1100240545); -emit_32(3279040545); -emit_32(1124132848); -emit_32(1099882352); -emit_32(3279040545); -emit_32(1124388897); -emit_32(1099784048); -emit_32(3279040545); -emit_32(1124644880); -emit_32(1099378563); -emit_32(3279040545); -emit_32(1124900864); -emit_32(1097709545); -emit_32(3279040545); -emit_32(1125156848); -emit_32(1095839095); -emit_32(3279040545); -emit_32(1125412897); -emit_32(1095221589); -emit_32(3279040545); -emit_32(1125668880); -emit_32(1094514219); -emit_32(3279040545); -emit_32(1125924864); -emit_32(1094489263); -emit_32(3279040545); -emit_32(1126180848); -emit_32(1094114397); -emit_32(3279040545); -emit_32(1126436897); -emit_32(1093523525); -emit_32(3279040545); -emit_32(1126692880); -emit_32(1092364020); -emit_32(3279040545); -emit_32(1126948864); -emit_32(1090657578); -emit_32(3279040545); -emit_32(1127204848); -emit_32(1088250991); -emit_32(3279040545); -emit_32(1127460897); -emit_32(1086186701); -emit_32(3279040545); -emit_32(1127716880); -emit_32(1085899685); -emit_32(3279040545); -emit_32(1127972864); -emit_32(1085922502); -emit_32(3279040545); -emit_32(1128228848); -emit_32(1083915444); -emit_32(3279040545); -emit_32(1128484897); -emit_32(1082705891); -emit_32(3279040545); -emit_32(1128740880); -emit_32(1082612966); -emit_32(3279040545); -emit_32(1128996864); -emit_32(1082123763); -emit_32(3279040545); -emit_32(1129252848); -emit_32(1079957992); -emit_32(3279040545); -emit_32(1129508897); -emit_32(1080918362); -emit_32(3279040545); -emit_32(1129764880); -emit_32(1080150846); -emit_32(3279040545); -emit_32(1130020864); -emit_32(1079666824); -emit_32(3279040545); -emit_32(1130276848); -emit_32(1075451758); -emit_32(3279040545); -emit_32(1130532897); -emit_32(1079618505); -emit_32(3279040545); -emit_32(1130788880); -emit_32(1083212437); -emit_32(3279040545); -emit_32(1131044864); -emit_32(1086243597); -emit_32(3279040545); -emit_32(1131300848); -emit_32(1089861499); -emit_32(3279040545); -emit_32(1131556897); -emit_32(1091090891); -emit_32(3279040545); -emit_32(1131812880); -emit_32(1092085392); -emit_32(3279040545); -emit_32(1132068864); -emit_32(1094769128); -emit_32(3279040545); -emit_32(1081737216); -emit_32(1086522393); -emit_32(3279296528); -emit_32(1090125824); -emit_32(1089733279); -emit_32(3279296528); -emit_32(1094418484); -emit_32(1090866549); -emit_32(3279296528); -emit_32(1098514432); -emit_32(1091166221); -emit_32(3279296528); -emit_32(1100759066); -emit_32(1091316692); -emit_32(3279296528); -emit_32(1102807040); -emit_32(1090303012); -emit_32(3279296528); -emit_32(1104855066); -emit_32(1090054898); -emit_32(3279296528); -emit_32(1106903040); -emit_32(1089282496); -emit_32(3279296528); -emit_32(1108123661); -emit_32(1087524370); -emit_32(3279296528); -emit_32(1109147648); -emit_32(1086986471); -emit_32(3279296528); -emit_32(1110171661); -emit_32(1089941925); -emit_32(3279296528); -emit_32(1111195648); -emit_32(1091445195); -emit_32(3279296528); -emit_32(1112219661); -emit_32(1092661595); -emit_32(3279296528); -emit_32(1113243648); -emit_32(1093449286); -emit_32(3279296528); -emit_32(1114267661); -emit_32(1094451829); -emit_32(3279296528); -emit_32(1115291648); -emit_32(1095908406); -emit_32(3279296528); -emit_32(1116000263); -emit_32(1095897606); -emit_32(3279296528); -emit_32(1116512256); -emit_32(1097742156); -emit_32(3279296528); -emit_32(1117024263); -emit_32(1098429917); -emit_32(3279296528); -emit_32(1117536256); -emit_32(1099162819); -emit_32(3279296528); -emit_32(1118048263); -emit_32(1099463446); -emit_32(3279296528); -emit_32(1118560256); -emit_32(1099555196); -emit_32(3279296528); -emit_32(1119072263); -emit_32(1099132672); -emit_32(3279296528); -emit_32(1119584256); -emit_32(1099075420); -emit_32(3279296528); -emit_32(1120096263); -emit_32(1099448871); -emit_32(3279296528); -emit_32(1120608322); -emit_32(1099721553); -emit_32(3279296528); -emit_32(1121120289); -emit_32(1101033321); -emit_32(3279296528); -emit_32(1121632256); -emit_32(1101927337); -emit_32(3279296528); -emit_32(1122144223); -emit_32(1102231686); -emit_32(3279296528); -emit_32(1122656322); -emit_32(1102467092); -emit_32(3279296528); -emit_32(1123168289); -emit_32(1101898711); -emit_32(3279296528); -emit_32(1123680256); -emit_32(1101260390); -emit_32(3279296528); -emit_32(1124132848); -emit_32(1100638480); -emit_32(3279296528); -emit_32(1124388897); -emit_32(1100231685); -emit_32(3279296528); -emit_32(1124644880); -emit_32(1099651036); -emit_32(3279296528); -emit_32(1124900864); -emit_32(1097614020); -emit_32(3279296528); -emit_32(1125156848); -emit_32(1096696726); -emit_32(3279296528); -emit_32(1125412897); -emit_32(1094775629); -emit_32(3279296528); -emit_32(1125668880); -emit_32(1094539595); -emit_32(3279296528); -emit_32(1125924864); -emit_32(1095046372); -emit_32(3279296528); -emit_32(1126180848); -emit_32(1095477441); -emit_32(3279296528); -emit_32(1126436897); -emit_32(1093641594); -emit_32(3279296528); -emit_32(1126692880); -emit_32(1092818357); -emit_32(3279296528); -emit_32(1126948864); -emit_32(1090737490); -emit_32(3279296528); -emit_32(1127204848); -emit_32(1089918898); -emit_32(3279296528); -emit_32(1127460897); -emit_32(1089673426); -emit_32(3279296528); -emit_32(1127716880); -emit_32(1088381686); -emit_32(3279296528); -emit_32(1127972864); -emit_32(1088024583); -emit_32(3279296528); -emit_32(1128228848); -emit_32(1086615842); -emit_32(3279296528); -emit_32(1128484897); -emit_32(1083021134); -emit_32(3279296528); -emit_32(1128740880); -emit_32(1082006448); -emit_32(3279296528); -emit_32(1128996864); -emit_32(1082259554); -emit_32(3279296528); -emit_32(1129252848); -emit_32(1081019948); -emit_32(3279296528); -emit_32(1129508897); -emit_32(1083076688); -emit_32(3279296528); -emit_32(1129764880); -emit_32(1079712290); -emit_32(3279296528); -emit_32(1130020864); -emit_32(1076696460); -emit_32(3279296528); -emit_32(1130276848); -emit_32(1081628248); -emit_32(3279296528); -emit_32(1130532897); -emit_32(1083251486); -emit_32(3279296528); -emit_32(1130788880); -emit_32(1085680051); -emit_32(3279296528); -emit_32(1131044864); -emit_32(1086814757); -emit_32(3279296528); -emit_32(1131300848); -emit_32(1089239043); -emit_32(3279296528); -emit_32(1131556897); -emit_32(1091530717); -emit_32(3279296528); -emit_32(1131812880); -emit_32(1093644321); -emit_32(3279296528); -emit_32(1132068864); -emit_32(1095779536); -emit_32(3279296528); -emit_32(1081737216); -emit_32(1086994839); -emit_32(3279552512); -emit_32(1090125824); -emit_32(1088197052); -emit_32(3279552512); -emit_32(1094418484); -emit_32(1091183439); -emit_32(3279552512); -emit_32(1098514432); -emit_32(1091864132); -emit_32(3279552512); -emit_32(1100759066); -emit_32(1091623966); -emit_32(3279552512); -emit_32(1102807040); -emit_32(1091056907); -emit_32(3279552512); -emit_32(1104855066); -emit_32(1090799639); -emit_32(3279552512); -emit_32(1106903040); -emit_32(1090240475); -emit_32(3279552512); -emit_32(1108123661); -emit_32(1087500672); -emit_32(3279552512); -emit_32(1109147648); -emit_32(1087952231); -emit_32(3279552512); -emit_32(1110171661); -emit_32(1091227636); -emit_32(3279552512); -emit_32(1111195648); -emit_32(1092866173); -emit_32(3279552512); -emit_32(1112219661); -emit_32(1094198074); -emit_32(3279552512); -emit_32(1113243648); -emit_32(1095474505); -emit_32(3279552512); -emit_32(1114267661); -emit_32(1097295462); -emit_32(3279552512); -emit_32(1115291648); -emit_32(1098629985); -emit_32(3279552512); -emit_32(1116000263); -emit_32(1098063859); -emit_32(3279552512); -emit_32(1116512256); -emit_32(1098990748); -emit_32(3279552512); -emit_32(1117024263); -emit_32(1099487406); -emit_32(3279552512); -emit_32(1117536256); -emit_32(1099589956); -emit_32(3279552512); -emit_32(1118048263); -emit_32(1100319660); -emit_32(3279552512); -emit_32(1118560256); -emit_32(1100278032); -emit_32(3279552512); -emit_32(1119072263); -emit_32(1099978821); -emit_32(3279552512); -emit_32(1119584256); -emit_32(1100109840); -emit_32(3279552512); -emit_32(1120096263); -emit_32(1100236089); -emit_32(3279552512); -emit_32(1120608322); -emit_32(1100377385); -emit_32(3279552512); -emit_32(1121120289); -emit_32(1102160173); -emit_32(3279552512); -emit_32(1121632256); -emit_32(1103122924); -emit_32(3279552512); -emit_32(1122144223); -emit_32(1103474721); -emit_32(3279552512); -emit_32(1122656322); -emit_32(1103248805); -emit_32(3279552512); -emit_32(1123168289); -emit_32(1102632819); -emit_32(3279552512); -emit_32(1123680256); -emit_32(1102047399); -emit_32(3279552512); -emit_32(1124132848); -emit_32(1101668391); -emit_32(3279552512); -emit_32(1124388897); -emit_32(1100761740); -emit_32(3279552512); -emit_32(1124644880); -emit_32(1100232943); -emit_32(3279552512); -emit_32(1124900864); -emit_32(1098887306); -emit_32(3279552512); -emit_32(1125156848); -emit_32(1097709860); -emit_32(3279552512); -emit_32(1125412897); -emit_32(1096144126); -emit_32(3279552512); -emit_32(1125668880); -emit_32(1095560803); -emit_32(3279552512); -emit_32(1125924864); -emit_32(1096148740); -emit_32(3279552512); -emit_32(1126180848); -emit_32(1095494428); -emit_32(3279552512); -emit_32(1126436897); -emit_32(1093780950); -emit_32(3279552512); -emit_32(1126692880); -emit_32(1092196667); -emit_32(3279552512); -emit_32(1126948864); -emit_32(1091446736); -emit_32(3279552512); -emit_32(1127204848); -emit_32(1090928352); -emit_32(3279552512); -emit_32(1127460897); -emit_32(1090343508); -emit_32(3279552512); -emit_32(1127716880); -emit_32(1089285495); -emit_32(3279552512); -emit_32(1127972864); -emit_32(1088381665); -emit_32(3279552512); -emit_32(1128228848); -emit_32(1088857949); -emit_32(3279552512); -emit_32(1128484897); -emit_32(1086741545); -emit_32(3279552512); -emit_32(1128740880); -emit_32(1082250913); -emit_32(3279552512); -emit_32(1128996864); -emit_32(1083512120); -emit_32(3279552512); -emit_32(1129252848); -emit_32(1081116417); -emit_32(3279552512); -emit_32(1129508897); -emit_32(1082497517); -emit_32(3279552512); -emit_32(1129764880); -emit_32(1082917200); -emit_32(3279552512); -emit_32(1130020864); -emit_32(1083584702); -emit_32(3279552512); -emit_32(1130276848); -emit_32(1086066325); -emit_32(3279552512); -emit_32(1130532897); -emit_32(1086918125); -emit_32(3279552512); -emit_32(1130788880); -emit_32(1088867533); -emit_32(3279552512); -emit_32(1131044864); -emit_32(1089594720); -emit_32(3279552512); -emit_32(1131300848); -emit_32(1090391575); -emit_32(3279552512); -emit_32(1131556897); -emit_32(1092483358); -emit_32(3279552512); -emit_32(1131812880); -emit_32(1094289405); -emit_32(3279552512); -emit_32(1132068864); -emit_32(1096120323); -emit_32(3279552512); -emit_start(Landscape08Vtx) -emit_32(3279552512); -emit_32(1106761482); -emit_32(3271616496); -emit_32(3279552512); -emit_32(1106982994); -emit_32(3271163904); -emit_32(3279296528); -emit_32(1107171947); -emit_32(3271616496); -emit_32(3279296528); -emit_32(1106990334); -emit_32(3271163904); -emit_32(3279040545); -emit_32(1107445390); -emit_32(3271616496); -emit_32(3279040545); -emit_32(1107378569); -emit_32(3271163904); -emit_32(3278784496); -emit_32(1107535462); -emit_32(3271616496); -emit_32(3278784496); -emit_32(1107553734); -emit_32(3271163904); -emit_32(3278528512); -emit_32(1107451314); -emit_32(3271616496); -emit_32(3278528512); -emit_32(1107478761); -emit_32(3271163904); -emit_32(3278272528); -emit_32(1106913945); -emit_32(3271616496); -emit_32(3278272528); -emit_32(1106962389); -emit_32(3271163904); -emit_32(3278016545); -emit_32(1106520939); -emit_32(3271616496); -emit_32(3278016545); -emit_32(1105953607); -emit_32(3271163904); -emit_32(3277760496); -emit_32(1106354163); -emit_32(3271616496); -emit_32(3277760496); -emit_32(1105995497); -emit_32(3271163904); -emit_32(3277504512); -emit_32(1106487909); -emit_32(3271616496); -emit_32(3277504512); -emit_32(1105958325); -emit_32(3271163904); -emit_32(3277248528); -emit_32(1106611588); -emit_32(3271616496); -emit_32(3277248528); -emit_32(1106168041); -emit_32(3271163904); -emit_32(3276992545); -emit_32(1106511659); -emit_32(3271616496); -emit_32(3276992545); -emit_32(1106461590); -emit_32(3271163904); -emit_32(3276736496); -emit_32(1106390601); -emit_32(3271616496); -emit_32(3276736496); -emit_32(1106400248); -emit_32(3271163904); -emit_32(3276480512); -emit_32(1105922621); -emit_32(3271616496); -emit_32(3276480512); -emit_32(1105590904); -emit_32(3271163904); -emit_32(3276224528); -emit_32(1105564690); -emit_32(3271616496); -emit_32(3276224528); -emit_32(1105294315); -emit_32(3271163904); -emit_32(3275968545); -emit_32(1105186941); -emit_32(3271616496); -emit_32(3275968545); -emit_32(1104823661); -emit_32(3271163904); -emit_32(3275712496); -emit_32(1104211817); -emit_32(3271616496); -emit_32(3275712496); -emit_32(1103994185); -emit_32(3271163904); -emit_32(3275456512); -emit_32(1103031068); -emit_32(3271616496); -emit_32(3275456512); -emit_32(1102728764); -emit_32(3271163904); -emit_32(3275200528); -emit_32(1102027162); -emit_32(3271616496); -emit_32(3275200528); -emit_32(1102137996); -emit_32(3271163904); -emit_32(3274944545); -emit_32(1100836923); -emit_32(3271616496); -emit_32(3274944545); -emit_32(1101349782); -emit_32(3271163904); -emit_32(3274688496); -emit_32(1099615804); -emit_32(3271616496); -emit_32(3274688496); -emit_32(1100398356); -emit_32(3271163904); -emit_32(3274432512); -emit_32(1098688915); -emit_32(3271616496); -emit_32(3274432512); -emit_32(1099098489); -emit_32(3271163904); -emit_32(3274176528); -emit_32(1097203188); -emit_32(3271616496); -emit_32(3274176528); -emit_32(1097575747); -emit_32(3271163904); -emit_32(3273920545); -emit_32(1095228300); -emit_32(3271616496); -emit_32(3273920545); -emit_32(1095747135); -emit_32(3271163904); -emit_32(3273664496); -emit_32(1093720657); -emit_32(3271616496); -emit_32(3273664496); -emit_32(1094011427); -emit_32(3271163904); -emit_32(3273408512); -emit_32(1091725553); -emit_32(3271616496); -emit_32(3273408512); -emit_32(1092817099); -emit_32(3271163904); -emit_32(3273152528); -emit_32(1087752037); -emit_32(3271616496); -emit_32(3273152528); -emit_32(1090935010); -emit_32(3271163904); -emit_32(3272896545); -emit_32(1085425309); -emit_32(3271616496); -emit_32(3272896545); -emit_32(1086813205); -emit_32(3271163904); -emit_32(3272640496); -emit_32(1084703847); -emit_32(3271616496); -emit_32(3272640496); -emit_32(1085254874); -emit_32(3271163904); -emit_32(3272384512); -emit_32(1086064186); -emit_32(3271616496); -emit_32(3272384512); -emit_32(1084610859); -emit_32(3271163904); -emit_32(3272128528); -emit_32(1088120192); -emit_32(3271616496); -emit_32(3272128528); -emit_32(1085403226); -emit_32(3271163904); -emit_32(3271872545); -emit_32(1088130111); -emit_32(3271616496); -emit_32(3271872545); -emit_32(1085803741); -emit_32(3271163904); -emit_32(3271616496); -emit_32(1088638754); -emit_32(3271616496); -emit_32(3271616496); -emit_32(1084901902); -emit_32(3271163904); -emit_32(3271163904); -emit_32(1089569596); -emit_32(3271616496); -emit_32(3271163904); -emit_32(1086653402); -emit_32(3271163904); -emit_32(3270651937); -emit_32(1090542371); -emit_32(3271616496); -emit_32(3270651937); -emit_32(1089541201); -emit_32(3271163904); -emit_32(3270139970); -emit_32(1091253725); -emit_32(3271616496); -emit_32(3270139970); -emit_32(1090924587); -emit_32(3271163904); -emit_32(3269627871); -emit_32(1091983785); -emit_32(3271616496); -emit_32(3269627871); -emit_32(1091193002); -emit_32(3271163904); -emit_32(3269115904); -emit_32(1091362609); -emit_32(3271616496); -emit_32(3269115904); -emit_32(1091042709); -emit_32(3271163904); -emit_32(3268603937); -emit_32(1092022341); -emit_32(3271616496); -emit_32(3268603937); -emit_32(1091824318); -emit_32(3271163904); -emit_32(3268091970); -emit_32(1093526356); -emit_32(3271616496); -emit_32(3268091970); -emit_32(1094207721); -emit_32(3271163904); -emit_32(3267579911); -emit_32(1095594567); -emit_32(3271616496); -emit_32(3267579911); -emit_32(1096193199); -emit_32(3271163904); -emit_32(3267067904); -emit_32(1097671796); -emit_32(3271616496); -emit_32(3267067904); -emit_32(1098383045); -emit_32(3271163904); -emit_32(3266555911); -emit_32(1099231658); -emit_32(3271616496); -emit_32(3266555911); -emit_32(1099615542); -emit_32(3271163904); -emit_32(3266043904); -emit_32(1101135662); -emit_32(3271616496); -emit_32(3266043904); -emit_32(1101433038); -emit_32(3271163904); -emit_32(3265531911); -emit_32(1102943093); -emit_32(3271616496); -emit_32(3265531911); -emit_32(1103595045); -emit_32(3271163904); -emit_32(3265019904); -emit_32(1104383889); -emit_32(3271616496); -emit_32(3265019904); -emit_32(1105129950); -emit_32(3271163904); -emit_32(3264507911); -emit_32(1105613344); -emit_32(3271616496); -emit_32(3264507911); -emit_32(1106326061); -emit_32(3271163904); -emit_32(3263995904); -emit_32(1106984409); -emit_32(3271616496); -emit_32(3263995904); -emit_32(1107411652); -emit_32(3271163904); -emit_32(3263483911); -emit_32(1107639822); -emit_32(3271616496); -emit_32(3263483911); -emit_32(1107887050); -emit_32(3271163904); -emit_32(3262775296); -emit_32(1108306507); -emit_32(3271616496); -emit_32(3262775296); -emit_32(1108492236); -emit_32(3271163904); -emit_32(3261751309); -emit_32(1108863825); -emit_32(3271616496); -emit_32(3261751309); -emit_32(1109105757); -emit_32(3271163904); -emit_32(3260727296); -emit_32(1109236279); -emit_32(3271616496); -emit_32(3260727296); -emit_32(1109424656); -emit_32(3271163904); -emit_32(3259703309); -emit_32(1109566004); -emit_32(3271616496); -emit_32(3259703309); -emit_32(1109901784); -emit_32(3271163904); -emit_32(3258679296); -emit_32(1109626611); -emit_32(3271616496); -emit_32(3258679296); -emit_32(1109885321); -emit_32(3271163904); -emit_32(3257655309); -emit_32(1109381454); -emit_32(3271616496); -emit_32(3257655309); -emit_32(1109822564); -emit_32(3271163904); -emit_32(3256631296); -emit_32(1109416817); -emit_32(3271616496); -emit_32(3256631296); -emit_32(1109824163); -emit_32(3271163904); -emit_32(3255607309); -emit_32(1109214704); -emit_32(3271616496); -emit_32(3255607309); -emit_32(1109730315); -emit_32(3271163904); -emit_32(3254386688); -emit_32(1109356052); -emit_32(3271616496); -emit_32(3254386688); -emit_32(1109803113); -emit_32(3271163904); -emit_32(3252338714); -emit_32(1109796533); -emit_32(3271616496); -emit_32(3252338714); -emit_32(1109995186); -emit_32(3271163904); -emit_32(3250290688); -emit_32(1110456690); -emit_32(3271616496); -emit_32(3250290688); -emit_32(1110434618); -emit_32(3271163904); -emit_32(3248242714); -emit_32(1110816797); -emit_32(3271616496); -emit_32(3248242714); -emit_32(1111024783); -emit_32(3271163904); -emit_32(3245998080); -emit_32(1111345699); -emit_32(3271616496); -emit_32(3245998080); -emit_32(1111309785); -emit_32(3271163904); -emit_32(3241902132); -emit_32(1111491032); -emit_32(3271616496); -emit_32(3241902132); -emit_32(1111384208); -emit_32(3271163904); -emit_32(3237609472); -emit_32(1111509356); -emit_32(3271616496); -emit_32(3237609472); -emit_32(1111783952); -emit_32(3271163904); -emit_32(3229220864); -emit_32(1111680693); -emit_32(3271616496); -emit_32(3229220864); -emit_32(1111918930); -emit_32(3271163904); -emit_32(0); -emit_32(1111962419); -emit_32(3271616496); -emit_32(0); -emit_32(1112106100); -emit_32(3271163904); -emit_32(1081737216); -emit_32(1112138475); -emit_32(3271616496); -emit_32(1081737216); -emit_32(1112094042); -emit_32(3271163904); -emit_32(3279552512); -emit_32(1106831999); -emit_32(3271872545); -emit_32(3279296528); -emit_32(1107221283); -emit_32(3271872545); -emit_32(3279040545); -emit_32(1107491448); -emit_32(3271872545); -emit_32(3278784496); -emit_32(1107603856); -emit_32(3271872545); -emit_32(3278528512); -emit_32(1107347427); -emit_32(3271872545); -emit_32(3278272528); -emit_32(1107241678); -emit_32(3271872545); -emit_32(3278016545); -emit_32(1107331016); -emit_32(3271872545); -emit_32(3277760496); -emit_32(1107339012); -emit_32(3271872545); -emit_32(3277504512); -emit_32(1106970935); -emit_32(3271872545); -emit_32(3277248528); -emit_32(1106766096); -emit_32(3271872545); -emit_32(3276992545); -emit_32(1106540075); -emit_32(3271872545); -emit_32(3276736496); -emit_32(1106320661); -emit_32(3271872545); -emit_32(3276480512); -emit_32(1106168093); -emit_32(3271872545); -emit_32(3276224528); -emit_32(1105508591); -emit_32(3271872545); -emit_32(3275968545); -emit_32(1104919711); -emit_32(3271872545); -emit_32(3275712496); -emit_32(1103890062); -emit_32(3271872545); -emit_32(3275456512); -emit_32(1102724412); -emit_32(3271872545); -emit_32(3275200528); -emit_32(1101678300); -emit_32(3271872545); -emit_32(3274944545); -emit_32(1100687815); -emit_32(3271872545); -emit_32(3274688496); -emit_32(1100014525); -emit_32(3271872545); -emit_32(3274432512); -emit_32(1099108503); -emit_32(3271872545); -emit_32(3274176528); -emit_32(1097338769); -emit_32(3271872545); -emit_32(3273920545); -emit_32(1095563634); -emit_32(3271872545); -emit_32(3273664496); -emit_32(1093020942); -emit_32(3271872545); -emit_32(3273408512); -emit_32(1090382432); -emit_32(3271872545); -emit_32(3273152528); -emit_32(1088955592); -emit_32(3271872545); -emit_32(3272896545); -emit_32(1086743621); -emit_32(3271872545); -emit_32(3272640496); -emit_32(1086106171); -emit_32(3271872545); -emit_32(3272384512); -emit_32(1087622538); -emit_32(3271872545); -emit_32(3272128528); -emit_32(1089541390); -emit_32(3271872545); -emit_32(3271872545); -emit_32(1090739493); -emit_32(3271872545); -emit_32(3271616496); -emit_32(1091296192); -emit_32(3271872545); -emit_32(3271163904); -emit_32(1091536652); -emit_32(3271872545); -emit_32(3270651937); -emit_32(1092000751); -emit_32(3271872545); -emit_32(3270139970); -emit_32(1092665265); -emit_32(3271872545); -emit_32(3269627871); -emit_32(1092064683); -emit_32(3271872545); -emit_32(3269115904); -emit_32(1092005921); -emit_32(3271872545); -emit_32(3268603937); -emit_32(1092949220); -emit_32(3271872545); -emit_32(3268091970); -emit_32(1093979446); -emit_32(3271872545); -emit_32(3267579911); -emit_32(1095270977); -emit_32(3271872545); -emit_32(3267067904); -emit_32(1097543031); -emit_32(3271872545); -emit_32(3266555911); -emit_32(1099248173); -emit_32(3271872545); -emit_32(3266043904); -emit_32(1100580441); -emit_32(3271872545); -emit_32(3265531911); -emit_32(1102805677); -emit_32(3271872545); -emit_32(3265019904); -emit_32(1104235935); -emit_32(3271872545); -emit_32(3264507911); -emit_32(1105586553); -emit_32(3271872545); -emit_32(3263995904); -emit_32(1106838605); -emit_32(3271872545); -emit_32(3263483911); -emit_32(1107360534); -emit_32(3271872545); -emit_32(3262775296); -emit_32(1107828487); -emit_32(3271872545); -emit_32(3261751309); -emit_32(1108377181); -emit_32(3271872545); -emit_32(3260727296); -emit_32(1108949179); -emit_32(3271872545); -emit_32(3259703309); -emit_32(1109077157); -emit_32(3271872545); -emit_32(3258679296); -emit_32(1109165841); -emit_32(3271872545); -emit_32(3257655309); -emit_32(1109169589); -emit_32(3271872545); -emit_32(3256631296); -emit_32(1108993167); -emit_32(3271872545); -emit_32(3255607309); -emit_32(1108949362); -emit_32(3271872545); -emit_32(3254386688); -emit_32(1109262310); -emit_32(3271872545); -emit_32(3252338714); -emit_32(1109890250); -emit_32(3271872545); -emit_32(3250290688); -emit_32(1110249177); -emit_32(3271872545); -emit_32(3248242714); -emit_32(1110644779); -emit_32(3271872545); -emit_32(3245998080); -emit_32(1111031572); -emit_32(3271872545); -emit_32(3241902132); -emit_32(1111347089); -emit_32(3271872545); -emit_32(3237609472); -emit_32(1111265300); -emit_32(3271872545); -emit_32(3229220864); -emit_32(1111507023); -emit_32(3271872545); -emit_32(0); -emit_32(1111638698); -emit_32(3271872545); -emit_32(1081737216); -emit_32(1111780334); -emit_32(3271872545); -emit_32(3279552512); -emit_32(1106638851); -emit_32(3272128528); -emit_32(3279296528); -emit_32(1106692434); -emit_32(3272128528); -emit_32(3279040545); -emit_32(1107345539); -emit_32(3272128528); -emit_32(3278784496); -emit_32(1107597459); -emit_32(3272128528); -emit_32(3278528512); -emit_32(1107379225); -emit_32(3272128528); -emit_32(3278272528); -emit_32(1107456950); -emit_32(3272128528); -emit_32(3278016545); -emit_32(1107643492); -emit_32(3272128528); -emit_32(3277760496); -emit_32(1107464788); -emit_32(3272128528); -emit_32(3277504512); -emit_32(1107237641); -emit_32(3272128528); -emit_32(3277248528); -emit_32(1107040666); -emit_32(3272128528); -emit_32(3276992545); -emit_32(1106355945); -emit_32(3272128528); -emit_32(3276736496); -emit_32(1106248938); -emit_32(3272128528); -emit_32(3276480512); -emit_32(1106022184); -emit_32(3272128528); -emit_32(3276224528); -emit_32(1105264378); -emit_32(3272128528); -emit_32(3275968545); -emit_32(1104551084); -emit_32(3272128528); -emit_32(3275712496); -emit_32(1103522693); -emit_32(3272128528); -emit_32(3275456512); -emit_32(1102465624); -emit_32(3272128528); -emit_32(3275200528); -emit_32(1101580416); -emit_32(3272128528); -emit_32(3274944545); -emit_32(1100781558); -emit_32(3272128528); -emit_32(3274688496); -emit_32(1099917584); -emit_32(3272128528); -emit_32(3274432512); -emit_32(1098955253); -emit_32(3272128528); -emit_32(3274176528); -emit_32(1097496474); -emit_32(3272128528); -emit_32(3273920545); -emit_32(1095188768); -emit_32(3272128528); -emit_32(3273664496); -emit_32(1092550792); -emit_32(3272128528); -emit_32(3273408512); -emit_32(1090256602); -emit_32(3272128528); -emit_32(3273152528); -emit_32(1088560866); -emit_32(3272128528); -emit_32(3272896545); -emit_32(1086795610); -emit_32(3272128528); -emit_32(3272640496); -emit_32(1087160745); -emit_32(3272128528); -emit_32(3272384512); -emit_32(1088465991); -emit_32(3272128528); -emit_32(3272128528); -emit_32(1090214701); -emit_32(3272128528); -emit_32(3271872545); -emit_32(1091916110); -emit_32(3272128528); -emit_32(3271616496); -emit_32(1093188714); -emit_32(3272128528); -emit_32(3271163904); -emit_32(1092821503); -emit_32(3272128528); -emit_32(3270651937); -emit_32(1092462943); -emit_32(3272128528); -emit_32(3270139970); -emit_32(1092871730); -emit_32(3272128528); -emit_32(3269627871); -emit_32(1092567339); -emit_32(3272128528); -emit_32(3269115904); -emit_32(1091624103); -emit_32(3272128528); -emit_32(3268603937); -emit_32(1092971030); -emit_32(3272128528); -emit_32(3268091970); -emit_32(1093964556); -emit_32(3272128528); -emit_32(3267579911); -emit_32(1095084959); -emit_32(3272128528); -emit_32(3267067904); -emit_32(1096871523); -emit_32(3272128528); -emit_32(3266555911); -emit_32(1098883740); -emit_32(3272128528); -emit_32(3266043904); -emit_32(1100410939); -emit_32(3272128528); -emit_32(3265531911); -emit_32(1102172809); -emit_32(3272128528); -emit_32(3265019904); -emit_32(1103650777); -emit_32(3272128528); -emit_32(3264507911); -emit_32(1105013087); -emit_32(3272128528); -emit_32(3263995904); -emit_32(1105804657); -emit_32(3272128528); -emit_32(3263483911); -emit_32(1106638642); -emit_32(3272128528); -emit_32(3262775296); -emit_32(1107472469); -emit_32(3272128528); -emit_32(3261751309); -emit_32(1107957436); -emit_32(3272128528); -emit_32(3260727296); -emit_32(1108447173); -emit_32(3272128528); -emit_32(3259703309); -emit_32(1108395845); -emit_32(3272128528); -emit_32(3258679296); -emit_32(1108480990); -emit_32(3272128528); -emit_32(3257655309); -emit_32(1108416004); -emit_32(3272128528); -emit_32(3256631296); -emit_32(1108454539); -emit_32(3272128528); -emit_32(3255607309); -emit_32(1108650702); -emit_32(3272128528); -emit_32(3254386688); -emit_32(1108972221); -emit_32(3272128528); -emit_32(3252338714); -emit_32(1109614028); -emit_32(3272128528); -emit_32(3250290688); -emit_32(1110107567); -emit_32(3272128528); -emit_32(3248242714); -emit_32(1110378204); -emit_32(3272128528); -emit_32(3245998080); -emit_32(1110643966); -emit_32(3272128528); -emit_32(3241902132); -emit_32(1110789770); -emit_32(3272128528); -emit_32(3237609472); -emit_32(1111079780); -emit_32(3272128528); -emit_32(3229220864); -emit_32(1111310572); -emit_32(3272128528); -emit_32(0); -emit_32(1111599245); -emit_32(3272128528); -emit_32(1081737216); -emit_32(1111464346); -emit_32(3272128528); -emit_32(3279552512); -emit_32(1105805967); -emit_32(3272384512); -emit_32(3279296528); -emit_32(1106518894); -emit_32(3272384512); -emit_32(3279040545); -emit_32(1107073958); -emit_32(3272384512); -emit_32(3278784496); -emit_32(1107138550); -emit_32(3272384512); -emit_32(3278528512); -emit_32(1107533837); -emit_32(3272384512); -emit_32(3278272528); -emit_32(1107630542); -emit_32(3272384512); -emit_32(3278016545); -emit_32(1107506050); -emit_32(3272384512); -emit_32(3277760496); -emit_32(1107593265); -emit_32(3272384512); -emit_32(3277504512); -emit_32(1107310490); -emit_32(3272384512); -emit_32(3277248528); -emit_32(1106912058); -emit_32(3272384512); -emit_32(3276992545); -emit_32(1106372356); -emit_32(3272384512); -emit_32(3276736496); -emit_32(1106038489); -emit_32(3272384512); -emit_32(3276480512); -emit_32(1105442531); -emit_32(3272384512); -emit_32(3276224528); -emit_32(1104607235); -emit_32(3272384512); -emit_32(3275968545); -emit_32(1103592686); -emit_32(3272384512); -emit_32(3275712496); -emit_32(1102531265); -emit_32(3272384512); -emit_32(3275456512); -emit_32(1101975100); -emit_32(3272384512); -emit_32(3275200528); -emit_32(1101237322); -emit_32(3272384512); -emit_32(3274944545); -emit_32(1100189794); -emit_32(3272384512); -emit_32(3274688496); -emit_32(1099519335); -emit_32(3272384512); -emit_32(3274432512); -emit_32(1098076861); -emit_32(3272384512); -emit_32(3274176528); -emit_32(1096265132); -emit_32(3272384512); -emit_32(3273920545); -emit_32(1094474583); -emit_32(3272384512); -emit_32(3273664496); -emit_32(1091850260); -emit_32(3272384512); -emit_32(3273408512); -emit_32(1089607366); -emit_32(3272384512); -emit_32(3273152528); -emit_32(1087214767); -emit_32(3272384512); -emit_32(3272896545); -emit_32(1087594331); -emit_32(3272384512); -emit_32(3272640496); -emit_32(1087250901); -emit_32(3272384512); -emit_32(3272384512); -emit_32(1087478526); -emit_32(3272384512); -emit_32(3272128528); -emit_32(1089739004); -emit_32(3272384512); -emit_32(3271872545); -emit_32(1091784944); -emit_32(3272384512); -emit_32(3271616496); -emit_32(1093147086); -emit_32(3272384512); -emit_32(3271163904); -emit_32(1093336249); -emit_32(3272384512); -emit_32(3270651937); -emit_32(1091955799); -emit_32(3272384512); -emit_32(3270139970); -emit_32(1092128436); -emit_32(3272384512); -emit_32(3269627871); -emit_32(1091415572); -emit_32(3272384512); -emit_32(3269115904); -emit_32(1091890787); -emit_32(3272384512); -emit_32(3268603937); -emit_32(1092277691); -emit_32(3272384512); -emit_32(3268091970); -emit_32(1093164912); -emit_32(3272384512); -emit_32(3267579911); -emit_32(1094506355); -emit_32(3272384512); -emit_32(3267067904); -emit_32(1095937556); -emit_32(3272384512); -emit_32(3266555911); -emit_32(1098124362); -emit_32(3272384512); -emit_32(3266043904); -emit_32(1100012533); -emit_32(3272384512); -emit_32(3265531911); -emit_32(1101424440); -emit_32(3272384512); -emit_32(3265019904); -emit_32(1102978797); -emit_32(3272384512); -emit_32(3264507911); -emit_32(1103996754); -emit_32(3272384512); -emit_32(3263995904); -emit_32(1104943566); -emit_32(3272384512); -emit_32(3263483911); -emit_32(1106152836); -emit_32(3272384512); -emit_32(3262775296); -emit_32(1107158211); -emit_32(3272384512); -emit_32(3261751309); -emit_32(1107529328); -emit_32(3272384512); -emit_32(3260727296); -emit_32(1107846470); -emit_32(3272384512); -emit_32(3259703309); -emit_32(1107994739); -emit_32(3272384512); -emit_32(3258679296); -emit_32(1107829064); -emit_32(3272384512); -emit_32(3257655309); -emit_32(1107762165); -emit_32(3272384512); -emit_32(3256631296); -emit_32(1107865711); -emit_32(3272384512); -emit_32(3255607309); -emit_32(1108367403); -emit_32(3272384512); -emit_32(3254386688); -emit_32(1109093568); -emit_32(3272384512); -emit_32(3252338714); -emit_32(1109542411); -emit_32(3272384512); -emit_32(3250290688); -emit_32(1110096793); -emit_32(3272384512); -emit_32(3248242714); -emit_32(1110312223); -emit_32(3272384512); -emit_32(3245998080); -emit_32(1110368505); -emit_32(3272384512); -emit_32(3241902132); -emit_32(1110406752); -emit_32(3272384512); -emit_32(3237609472); -emit_32(1110868545); -emit_32(3272384512); -emit_32(3229220864); -emit_32(1111168464); -emit_32(3272384512); -emit_32(0); -emit_32(1111261315); -emit_32(3272384512); -emit_32(1081737216); -emit_32(1111298697); -emit_32(3272384512); -emit_32(3279552512); -emit_32(1105376733); -emit_32(3272640496); -emit_32(3279296528); -emit_32(1106021659); -emit_32(3272640496); -emit_32(3279040545); -emit_32(1106269805); -emit_32(3272640496); -emit_32(3278784496); -emit_32(1106578978); -emit_32(3272640496); -emit_32(3278528512); -emit_32(1107451288); -emit_32(3272640496); -emit_32(3278272528); -emit_32(1107638616); -emit_32(3272640496); -emit_32(3278016545); -emit_32(1107539132); -emit_32(3272640496); -emit_32(3277760496); -emit_32(1107436844); -emit_32(3272640496); -emit_32(3277504512); -emit_32(1107235701); -emit_32(3272640496); -emit_32(3277248528); -emit_32(1107161462); -emit_32(3272640496); -emit_32(3276992545); -emit_32(1106065280); -emit_32(3272640496); -emit_32(3276736496); -emit_32(1105372171); -emit_32(3272640496); -emit_32(3276480512); -emit_32(1104578662); -emit_32(3272640496); -emit_32(3276224528); -emit_32(1103665876); -emit_32(3272640496); -emit_32(3275968545); -emit_32(1102629464); -emit_32(3272640496); -emit_32(3275712496); -emit_32(1101635885); -emit_32(3272640496); -emit_32(3275456512); -emit_32(1101146882); -emit_32(3272640496); -emit_32(3275200528); -emit_32(1100175848); -emit_32(3272640496); -emit_32(3274944545); -emit_32(1099030961); -emit_32(3272640496); -emit_32(3274688496); -emit_32(1097580151); -emit_32(3272640496); -emit_32(3274432512); -emit_32(1096760374); -emit_32(3272640496); -emit_32(3274176528); -emit_32(1095282721); -emit_32(3272640496); -emit_32(3273920545); -emit_32(1093280465); -emit_32(3272640496); -emit_32(3273664496); -emit_32(1091084065); -emit_32(3272640496); -emit_32(3273408512); -emit_32(1089099247); -emit_32(3272640496); -emit_32(3273152528); -emit_32(1087789576); -emit_32(3272640496); -emit_32(3272896545); -emit_32(1085020140); -emit_32(3272640496); -emit_32(3272640496); -emit_32(1085329784); -emit_32(3272640496); -emit_32(3272384512); -emit_32(1086214027); -emit_32(3272640496); -emit_32(3272128528); -emit_32(1088756363); -emit_32(3272640496); -emit_32(3271872545); -emit_32(1091099217); -emit_32(3272640496); -emit_32(3271616496); -emit_32(1092281151); -emit_32(3272640496); -emit_32(3271163904); -emit_32(1092410891); -emit_32(3272640496); -emit_32(3270651937); -emit_32(1092270707); -emit_32(3272640496); -emit_32(3270139970); -emit_32(1092436770); -emit_32(3272640496); -emit_32(3269627871); -emit_32(1091996431); -emit_32(3272640496); -emit_32(3269115904); -emit_32(1092130995); -emit_32(3272640496); -emit_32(3268603937); -emit_32(1092506794); -emit_32(3272640496); -emit_32(3268091970); -emit_32(1093085115); -emit_32(3272640496); -emit_32(3267579911); -emit_32(1094064590); -emit_32(3272640496); -emit_32(3267067904); -emit_32(1096463103); -emit_32(3272640496); -emit_32(3266555911); -emit_32(1098582275); -emit_32(3272640496); -emit_32(3266043904); -emit_32(1099782894); -emit_32(3272640496); -emit_32(3265531911); -emit_32(1101033216); -emit_32(3272640496); -emit_32(3265019904); -emit_32(1102204423); -emit_32(3272640496); -emit_32(3264507911); -emit_32(1103112962); -emit_32(3272640496); -emit_32(3263995904); -emit_32(1104476688); -emit_32(3272640496); -emit_32(3263483911); -emit_32(1105600027); -emit_32(3272640496); -emit_32(3262775296); -emit_32(1106773279); -emit_32(3272640496); -emit_32(3261751309); -emit_32(1107254942); -emit_32(3272640496); -emit_32(3260727296); -emit_32(1107325721); -emit_32(3272640496); -emit_32(3259703309); -emit_32(1107680454); -emit_32(3272640496); -emit_32(3258679296); -emit_32(1107700272); -emit_32(3272640496); -emit_32(3257655309); -emit_32(1107704204); -emit_32(3272640496); -emit_32(3256631296); -emit_32(1107913946); -emit_32(3272640496); -emit_32(3255607309); -emit_32(1108409896); -emit_32(3272640496); -emit_32(3254386688); -emit_32(1108866499); -emit_32(3272640496); -emit_32(3252338714); -emit_32(1109485866); -emit_32(3272640496); -emit_32(3250290688); -emit_32(1110027901); -emit_32(3272640496); -emit_32(3248242714); -emit_32(1110441984); -emit_32(3272640496); -emit_32(3245998080); -emit_32(1110489956); -emit_32(3272640496); -emit_32(3241902132); -emit_32(1110446834); -emit_32(3272640496); -emit_32(3237609472); -emit_32(1110725100); -emit_32(3272640496); -emit_32(3229220864); -emit_32(1110855752); -emit_32(3272640496); -emit_32(0); -emit_32(1110654897); -emit_32(3272640496); -emit_32(1081737216); -emit_32(1110766990); -emit_32(3272640496); -emit_32(3279552512); -emit_32(1104945611); -emit_32(3272896545); -emit_32(3279296528); -emit_32(1105445886); -emit_32(3272896545); -emit_32(3279040545); -emit_32(1105654868); -emit_32(3272896545); -emit_32(3278784496); -emit_32(1106191896); -emit_32(3272896545); -emit_32(3278528512); -emit_32(1106771024); -emit_32(3272896545); -emit_32(3278272528); -emit_32(1107252111); -emit_32(3272896545); -emit_32(3278016545); -emit_32(1107581652); -emit_32(3272896545); -emit_32(3277760496); -emit_32(1107333218); -emit_32(3272896545); -emit_32(3277504512); -emit_32(1106792310); -emit_32(3272896545); -emit_32(3277248528); -emit_32(1106541229); -emit_32(3272896545); -emit_32(3276992545); -emit_32(1105789924); -emit_32(3272896545); -emit_32(3276736496); -emit_32(1104474486); -emit_32(3272896545); -emit_32(3276480512); -emit_32(1103776134); -emit_32(3272896545); -emit_32(3276224528); -emit_32(1102639635); -emit_32(3272896545); -emit_32(3275968545); -emit_32(1101601964); -emit_32(3272896545); -emit_32(3275712496); -emit_32(1100849820); -emit_32(3272896545); -emit_32(3275456512); -emit_32(1100186229); -emit_32(3272896545); -emit_32(3275200528); -emit_32(1099765540); -emit_32(3272896545); -emit_32(3274944545); -emit_32(1098773850); -emit_32(3272896545); -emit_32(3274688496); -emit_32(1097286550); -emit_32(3272896545); -emit_32(3274432512); -emit_32(1095977088); -emit_32(3272896545); -emit_32(3274176528); -emit_32(1094472381); -emit_32(3272896545); -emit_32(3273920545); -emit_32(1093136810); -emit_32(3272896545); -emit_32(3273664496); -emit_32(1090824857); -emit_32(3272896545); -emit_32(3273408512); -emit_32(1088942045); -emit_32(3272896545); -emit_32(3273152528); -emit_32(1087994509); -emit_32(3272896545); -emit_32(3272896545); -emit_32(1085242018); -emit_32(3272896545); -emit_32(3272640496); -emit_32(1082368710); -emit_32(3272896545); -emit_32(3272384512); -emit_32(1083511616); -emit_32(3272896545); -emit_32(3272128528); -emit_32(1086745865); -emit_32(3272896545); -emit_32(3271872545); -emit_32(1089841387); -emit_32(3272896545); -emit_32(3271616496); -emit_32(1091645420); -emit_32(3272896545); -emit_32(3271163904); -emit_32(1091360837); -emit_32(3272896545); -emit_32(3270651937); -emit_32(1091891626); -emit_32(3272896545); -emit_32(3270139970); -emit_32(1091846705); -emit_32(3272896545); -emit_32(3269627871); -emit_32(1092497818); -emit_32(3272896545); -emit_32(3269115904); -emit_32(1091767087); -emit_32(3272896545); -emit_32(3268603937); -emit_32(1092058643); -emit_32(3272896545); -emit_32(3268091970); -emit_32(1092782286); -emit_32(3272896545); -emit_32(3267579911); -emit_32(1093942536); -emit_32(3272896545); -emit_32(3267067904); -emit_32(1096261042); -emit_32(3272896545); -emit_32(3266555911); -emit_32(1098731278); -emit_32(3272896545); -emit_32(3266043904); -emit_32(1099753639); -emit_32(3272896545); -emit_32(3265531911); -emit_32(1100349178); -emit_32(3272896545); -emit_32(3265019904); -emit_32(1101287129); -emit_32(3272896545); -emit_32(3264507911); -emit_32(1102874726); -emit_32(3272896545); -emit_32(3263995904); -emit_32(1104299216); -emit_32(3272896545); -emit_32(3263483911); -emit_32(1105581310); -emit_32(3272896545); -emit_32(3262775296); -emit_32(1106449741); -emit_32(3272896545); -emit_32(3261751309); -emit_32(1106767197); -emit_32(3272896545); -emit_32(3260727296); -emit_32(1106996783); -emit_32(3272896545); -emit_32(3259703309); -emit_32(1107252216); -emit_32(3272896545); -emit_32(3258679296); -emit_32(1107420643); -emit_32(3272896545); -emit_32(3257655309); -emit_32(1107319351); -emit_32(3272896545); -emit_32(3256631296); -emit_32(1107826600); -emit_32(3272896545); -emit_32(3255607309); -emit_32(1108251299); -emit_32(3272896545); -emit_32(3254386688); -emit_32(1108771550); -emit_32(3272896545); -emit_32(3252338714); -emit_32(1109302182); -emit_32(3272896545); -emit_32(3250290688); -emit_32(1110005147); -emit_32(3272896545); -emit_32(3248242714); -emit_32(1110267291); -emit_32(3272896545); -emit_32(3245998080); -emit_32(1110424394); -emit_32(3272896545); -emit_32(3241902132); -emit_32(1110409006); -emit_32(3272896545); -emit_32(3237609472); -emit_32(1110530064); -emit_32(3272896545); -emit_32(3229220864); -emit_32(1110513759); -emit_32(3272896545); -emit_32(0); -emit_32(1110086228); -emit_32(3272896545); -emit_32(1081737216); -emit_32(1110289075); -emit_32(3272896545); -emit_32(3279552512); -emit_32(1105076106); -emit_32(3273152528); -emit_32(3279296528); -emit_32(1105334790); -emit_32(3273152528); -emit_32(3279040545); -emit_32(1105218241); -emit_32(3273152528); -emit_32(3278784496); -emit_32(1105960947); -emit_32(3273152528); -emit_32(3278528512); -emit_32(1107217980); -emit_32(3273152528); -emit_32(3278272528); -emit_32(1107295574); -emit_32(3273152528); -emit_32(3278016545); -emit_32(1107365331); -emit_32(3273152528); -emit_32(3277760496); -emit_32(1107416134); -emit_32(3273152528); -emit_32(3277504512); -emit_32(1106446438); -emit_32(3273152528); -emit_32(3277248528); -emit_32(1105782794); -emit_32(3273152528); -emit_32(3276992545); -emit_32(1105013821); -emit_32(3273152528); -emit_32(3276736496); -emit_32(1103915857); -emit_32(3273152528); -emit_32(3276480512); -emit_32(1103026979); -emit_32(3273152528); -emit_32(3276224528); -emit_32(1101908673); -emit_32(3273152528); -emit_32(3275968545); -emit_32(1100983409); -emit_32(3273152528); -emit_32(3275712496); -emit_32(1100304771); -emit_32(3273152528); -emit_32(3275456512); -emit_32(1099637090); -emit_32(3273152528); -emit_32(3275200528); -emit_32(1099595147); -emit_32(3273152528); -emit_32(3274944545); -emit_32(1098779302); -emit_32(3273152528); -emit_32(3274688496); -emit_32(1096597425); -emit_32(3273152528); -emit_32(3274432512); -emit_32(1094709255); -emit_32(3273152528); -emit_32(3274176528); -emit_32(1093592941); -emit_32(3273152528); -emit_32(3273920545); -emit_32(1091822808); -emit_32(3273152528); -emit_32(3273664496); -emit_32(1090429890); -emit_32(3273152528); -emit_32(3273408512); -emit_32(1088328040); -emit_32(3273152528); -emit_32(3273152528); -emit_32(1087421546); -emit_32(3273152528); -emit_32(3272896545); -emit_32(1085534382); -emit_32(3273152528); -emit_32(3272640496); -emit_32(1082800241); -emit_32(3273152528); -emit_32(3272384512); -emit_32(1078440703); -emit_32(3273152528); -emit_32(3272128528); -emit_32(1084200594); -emit_32(3273152528); -emit_32(3271872545); -emit_32(1087678322); -emit_32(3273152528); -emit_32(3271616496); -emit_32(1089442320); -emit_32(3273152528); -emit_32(3271163904); -emit_32(1090607372); -emit_32(3273152528); -emit_32(3270651937); -emit_32(1091531566); -emit_32(3273152528); -emit_32(3270139970); -emit_32(1091674141); -emit_32(3273152528); -emit_32(3269627871); -emit_32(1091966117); -emit_32(3273152528); -emit_32(3269115904); -emit_32(1091542251); -emit_32(3273152528); -emit_32(3268603937); -emit_32(1091342288); -emit_32(3273152528); -emit_32(3268091970); -emit_32(1092373405); -emit_32(3273152528); -emit_32(3267579911); -emit_32(1093066975); -emit_32(3273152528); -emit_32(3267067904); -emit_32(1096397252); -emit_32(3273152528); -emit_32(3266555911); -emit_32(1099075053); -emit_32(3273152528); -emit_32(3266043904); -emit_32(1099796788); -emit_32(3273152528); -emit_32(3265531911); -emit_32(1100246942); -emit_32(3273152528); -emit_32(3265019904); -emit_32(1101066614); -emit_32(3273152528); -emit_32(3264507911); -emit_32(1102540440); -emit_32(3273152528); -emit_32(3263995904); -emit_32(1104067323); -emit_32(3273152528); -emit_32(3263483911); -emit_32(1105420039); -emit_32(3273152528); -emit_32(3262775296); -emit_32(1106257484); -emit_32(3273152528); -emit_32(3261751309); -emit_32(1106472337); -emit_32(3273152528); -emit_32(3260727296); -emit_32(1106731912); -emit_32(3273152528); -emit_32(3259703309); -emit_32(1106956465); -emit_32(3273152528); -emit_32(3258679296); -emit_32(1106821199); -emit_32(3273152528); -emit_32(3257655309); -emit_32(1106379643); -emit_32(3273152528); -emit_32(3256631296); -emit_32(1107530954); -emit_32(3273152528); -emit_32(3255607309); -emit_32(1108003992); -emit_32(3273152528); -emit_32(3254386688); -emit_32(1108557352); -emit_32(3273152528); -emit_32(3252338714); -emit_32(1109091706); -emit_32(3273152528); -emit_32(3250290688); -emit_32(1109753830); -emit_32(3273152528); -emit_32(3248242714); -emit_32(1109939664); -emit_32(3273152528); -emit_32(3245998080); -emit_32(1109999118); -emit_32(3273152528); -emit_32(3241902132); -emit_32(1110432914); -emit_32(3273152528); -emit_32(3237609472); -emit_32(1110537457); -emit_32(3273152528); -emit_32(3229220864); -emit_32(1110226685); -emit_32(3273152528); -emit_32(0); -emit_32(1109884928); -emit_32(3273152528); -emit_32(1081737216); -emit_32(1110106754); -emit_32(3273152528); -emit_32(3279552512); -emit_32(1104836087); -emit_32(3273408512); -emit_32(3279296528); -emit_32(1105132991); -emit_32(3273408512); -emit_32(3279040545); -emit_32(1105059486); -emit_32(3273408512); -emit_32(3278784496); -emit_32(1105434981); -emit_32(3273408512); -emit_32(3278528512); -emit_32(1106513389); -emit_32(3273408512); -emit_32(3278272528); -emit_32(1106841489); -emit_32(3273408512); -emit_32(3278016545); -emit_32(1107378805); -emit_32(3273408512); -emit_32(3277760496); -emit_32(1106914784); -emit_32(3273408512); -emit_32(3277504512); -emit_32(1106011069); -emit_32(3273408512); -emit_32(3277248528); -emit_32(1104591349); -emit_32(3273408512); -emit_32(3276992545); -emit_32(1103757469); -emit_32(3273408512); -emit_32(3276736496); -emit_32(1103249329); -emit_32(3273408512); -emit_32(3276480512); -emit_32(1103030387); -emit_32(3273408512); -emit_32(3276224528); -emit_32(1102188275); -emit_32(3273408512); -emit_32(3275968545); -emit_32(1101338667); -emit_32(3273408512); -emit_32(3275712496); -emit_32(1100738567); -emit_32(3273408512); -emit_32(3275456512); -emit_32(1099970956); -emit_32(3273408512); -emit_32(3275200528); -emit_32(1098288778); -emit_32(3273408512); -emit_32(3274944545); -emit_32(1096724093); -emit_32(3273408512); -emit_32(3274688496); -emit_32(1094523761); -emit_32(3273408512); -emit_32(3274432512); -emit_32(1091893849); -emit_32(3273408512); -emit_32(3274176528); -emit_32(1091370138); -emit_32(3273408512); -emit_32(3273920545); -emit_32(1090570504); -emit_32(3273408512); -emit_32(3273664496); -emit_32(1087323819); -emit_32(3273408512); -emit_32(3273408512); -emit_32(1085981977); -emit_32(3273408512); -emit_32(3273152528); -emit_32(1085699218); -emit_32(3273408512); -emit_32(3272896545); -emit_32(1086443980); -emit_32(3273408512); -emit_32(3272640496); -emit_32(1082061813); -emit_32(3273408512); -emit_32(3272384512); -emit_32(1077123943); -emit_32(3273408512); -emit_32(3272128528); -emit_32(1080172783); -emit_32(3273408512); -emit_32(3271872545); -emit_32(1084168381); -emit_32(3273408512); -emit_32(3271616496); -emit_32(1087820404); -emit_32(3273408512); -emit_32(3271163904); -emit_32(1090796682); -emit_32(3273408512); -emit_32(3270651937); -emit_32(1091577148); -emit_32(3273408512); -emit_32(3270139970); -emit_32(1091446925); -emit_32(3273408512); -emit_32(3269627871); -emit_32(1092098762); -emit_32(3273408512); -emit_32(3269115904); -emit_32(1091744595); -emit_32(3273408512); -emit_32(3268603937); -emit_32(1091408191); -emit_32(3273408512); -emit_32(3268091970); -emit_32(1092385663); -emit_32(3273408512); -emit_32(3267579911); -emit_32(1093825829); -emit_32(3273408512); -emit_32(3267067904); -emit_32(1096198128); -emit_32(3273408512); -emit_32(3266555911); -emit_32(1098768607); -emit_32(3273408512); -emit_32(3266043904); -emit_32(1099579471); -emit_32(3273408512); -emit_32(3265531911); -emit_32(1100058880); -emit_32(3273408512); -emit_32(3265019904); -emit_32(1100744596); -emit_32(3273408512); -emit_32(3264507911); -emit_32(1102061083); -emit_32(3273408512); -emit_32(3263995904); -emit_32(1103274338); -emit_32(3273408512); -emit_32(3263483911); -emit_32(1104422791); -emit_32(3273408512); -emit_32(3262775296); -emit_32(1105176612); -emit_32(3273408512); -emit_32(3261751309); -emit_32(1105646007); -emit_32(3273408512); -emit_32(3260727296); -emit_32(1106575308); -emit_32(3273408512); -emit_32(3259703309); -emit_32(1106762741); -emit_32(3273408512); -emit_32(3258679296); -emit_32(1106791472); -emit_32(3273408512); -emit_32(3257655309); -emit_32(1106362447); -emit_32(3273408512); -emit_32(3256631296); -emit_32(1107312824); -emit_32(3273408512); -emit_32(3255607309); -emit_32(1107822143); -emit_32(3273408512); -emit_32(3254386688); -emit_32(1108186890); -emit_32(3273408512); -emit_32(3252338714); -emit_32(1108816848); -emit_32(3273408512); -emit_32(3250290688); -emit_32(1109429689); -emit_32(3273408512); -emit_32(3248242714); -emit_32(1109536408); -emit_32(3273408512); -emit_32(3245998080); -emit_32(1109813992); -emit_32(3273408512); -emit_32(3241902132); -emit_32(1110208099); -emit_32(3273408512); -emit_32(3237609472); -emit_32(1110335213); -emit_32(3273408512); -emit_32(3229220864); -emit_32(1110186263); -emit_32(3273408512); -emit_32(0); -emit_32(1109755796); -emit_32(3273408512); -emit_32(1081737216); -emit_32(1109848700); -emit_32(3273408512); -emit_32(3279552512); -emit_32(1104733956); -emit_32(3273664496); -emit_32(3279296528); -emit_32(1104666690); -emit_32(3273664496); -emit_32(3279040545); -emit_32(1104540231); -emit_32(3273664496); -emit_32(3278784496); -emit_32(1104872840); -emit_32(3273664496); -emit_32(3278528512); -emit_32(1105814775); -emit_32(3273664496); -emit_32(3278272528); -emit_32(1106809297); -emit_32(3273664496); -emit_32(3278016545); -emit_32(1106966322); -emit_32(3273664496); -emit_32(3277760496); -emit_32(1106369682); -emit_32(3273664496); -emit_32(3277504512); -emit_32(1105145102); -emit_32(3273664496); -emit_32(3277248528); -emit_32(1104371673); -emit_32(3273664496); -emit_32(3276992545); -emit_32(1103102319); -emit_32(3273664496); -emit_32(3276736496); -emit_32(1102915568); -emit_32(3273664496); -emit_32(3276480512); -emit_32(1102916721); -emit_32(3273664496); -emit_32(3276224528); -emit_32(1102503005); -emit_32(3273664496); -emit_32(3275968545); -emit_32(1101360162); -emit_32(3273664496); -emit_32(3275712496); -emit_32(1100655152); -emit_32(3273664496); -emit_32(3275456512); -emit_32(1099898185); -emit_32(3273664496); -emit_32(3275200528); -emit_32(1097164495); -emit_32(3273664496); -emit_32(3274944545); -emit_32(1094617294); -emit_32(3273664496); -emit_32(3274688496); -emit_32(1092199750); -emit_32(3273664496); -emit_32(3274432512); -emit_32(1090062511); -emit_32(3273664496); -emit_32(3274176528); -emit_32(1090680196); -emit_32(3273664496); -emit_32(3273920545); -emit_32(1089407214); -emit_32(3273664496); -emit_32(3273664496); -emit_32(1087342316); -emit_32(3273664496); -emit_32(3273408512); -emit_32(1084811578); -emit_32(3273664496); -emit_32(3273152528); -emit_32(1083587386); -emit_32(3273664496); -emit_32(3272896545); -emit_32(1084521563); -emit_32(3273664496); -emit_32(3272640496); -emit_32(1079059237); -emit_32(3273664496); -emit_32(3272384512); -emit_32(1079341513); -emit_32(3273664496); -emit_32(3272128528); -emit_32(1075719690); -emit_32(3273664496); -emit_32(3271872545); -emit_32(1082462285); -emit_32(3273664496); -emit_32(3271616496); -emit_32(1087277514); -emit_32(3273664496); -emit_32(3271163904); -emit_32(1090505891); -emit_32(3273664496); -emit_32(3270651937); -emit_32(1090927198); -emit_32(3273664496); -emit_32(3270139970); -emit_32(1091146109); -emit_32(3273664496); -emit_32(3269627871); -emit_32(1092080475); -emit_32(3273664496); -emit_32(3269115904); -emit_32(1091780718); -emit_32(3273664496); -emit_32(3268603937); -emit_32(1090802554); -emit_32(3273664496); -emit_32(3268091970); -emit_32(1092320997); -emit_32(3273664496); -emit_32(3267579911); -emit_32(1094564132); -emit_32(3273664496); -emit_32(3267067904); -emit_32(1097435447); -emit_32(3273664496); -emit_32(3266555911); -emit_32(1098963118); -emit_32(3273664496); -emit_32(3266043904); -emit_32(1099774348); -emit_32(3273664496); -emit_32(3265531911); -emit_32(1100067530); -emit_32(3273664496); -emit_32(3265019904); -emit_32(1100332401); -emit_32(3273664496); -emit_32(3264507911); -emit_32(1101386639); -emit_32(3273664496); -emit_32(3263995904); -emit_32(1102851185); -emit_32(3273664496); -emit_32(3263483911); -emit_32(1104372774); -emit_32(3273664496); -emit_32(3262775296); -emit_32(1105071702); -emit_32(3273664496); -emit_32(3261751309); -emit_32(1105296726); -emit_32(3273664496); -emit_32(3260727296); -emit_32(1105674895); -emit_32(3273664496); -emit_32(3259703309); -emit_32(1106000583); -emit_32(3273664496); -emit_32(3258679296); -emit_32(1105931639); -emit_32(3273664496); -emit_32(3257655309); -emit_32(1106021188); -emit_32(3273664496); -emit_32(3256631296); -emit_32(1106564874); -emit_32(3273664496); -emit_32(3255607309); -emit_32(1107568073); -emit_32(3273664496); -emit_32(3254386688); -emit_32(1108016890); -emit_32(3273664496); -emit_32(3252338714); -emit_32(1108734483); -emit_32(3273664496); -emit_32(3250290688); -emit_32(1109191321); -emit_32(3273664496); -emit_32(3248242714); -emit_32(1109295759); -emit_32(3273664496); -emit_32(3245998080); -emit_32(1109358019); -emit_32(3273664496); -emit_32(3241902132); -emit_32(1109703603); -emit_32(3273664496); -emit_32(3237609472); -emit_32(1109859736); -emit_32(3273664496); -emit_32(3229220864); -emit_32(1109838319); -emit_32(3273664496); -emit_32(0); -emit_32(1109492761); -emit_32(3273664496); -emit_32(1081737216); -emit_32(1109518057); -emit_32(3273664496); -emit_32(3279552512); -emit_32(1104359299); -emit_32(3273920545); -emit_32(3279296528); -emit_32(1104339586); -emit_32(3273920545); -emit_32(3279040545); -emit_32(1104491735); -emit_32(3273920545); -emit_32(3278784496); -emit_32(1104791627); -emit_32(3273920545); -emit_32(3278528512); -emit_32(1105811577); -emit_32(3273920545); -emit_32(3278272528); -emit_32(1106308497); -emit_32(3273920545); -emit_32(3278016545); -emit_32(1106435952); -emit_32(3273920545); -emit_32(3277760496); -emit_32(1105655916); -emit_32(3273920545); -emit_32(3277504512); -emit_32(1104594023); -emit_32(3273920545); -emit_32(3277248528); -emit_32(1103614234); -emit_32(3273920545); -emit_32(3276992545); -emit_32(1103342128); -emit_32(3273920545); -emit_32(3276736496); -emit_32(1102922855); -emit_32(3273920545); -emit_32(3276480512); -emit_32(1102436945); -emit_32(3273920545); -emit_32(3276224528); -emit_32(1101625347); -emit_32(3273920545); -emit_32(3275968545); -emit_32(1100801953); -emit_32(3273920545); -emit_32(3275712496); -emit_32(1100227910); -emit_32(3273920545); -emit_32(3275456512); -emit_32(1099339661); -emit_32(3273920545); -emit_32(3275200528); -emit_32(1096681731); -emit_32(3273920545); -emit_32(3274944545); -emit_32(1093027548); -emit_32(3273920545); -emit_32(3274688496); -emit_32(1089483949); -emit_32(3273920545); -emit_32(3274432512); -emit_32(1087550857); -emit_32(3273920545); -emit_32(3274176528); -emit_32(1088032090); -emit_32(3273920545); -emit_32(3273920545); -emit_32(1088175452); -emit_32(3273920545); -emit_32(3273664496); -emit_32(1087974251); -emit_32(3273920545); -emit_32(3273408512); -emit_32(1084612369); -emit_32(3273920545); -emit_32(3273152528); -emit_32(1083056807); -emit_32(3273920545); -emit_32(3272896545); -emit_32(1083313058); -emit_32(3273920545); -emit_32(3272640496); -emit_32(1077966411); -emit_32(3273920545); -emit_32(3272384512); -emit_32(1077466701); -emit_32(3273920545); -emit_32(3272128528); -emit_32(1076194527); -emit_32(3273920545); -emit_32(3271872545); -emit_32(1078813199); -emit_32(3273920545); -emit_32(3271616496); -emit_32(1084920546); -emit_32(3273920545); -emit_32(3271163904); -emit_32(1087870295); -emit_32(3273920545); -emit_32(3270651937); -emit_32(1089931229); -emit_32(3273920545); -emit_32(3270139970); -emit_32(1090987638); -emit_32(3273920545); -emit_32(3269627871); -emit_32(1091623883); -emit_32(3273920545); -emit_32(3269115904); -emit_32(1091369550); -emit_32(3273920545); -emit_32(3268603937); -emit_32(1090009558); -emit_32(3273920545); -emit_32(3268091970); -emit_32(1093783362); -emit_32(3273920545); -emit_32(3267579911); -emit_32(1095581880); -emit_32(3273920545); -emit_32(3267067904); -emit_32(1097625344); -emit_32(3273920545); -emit_32(3266555911); -emit_32(1099002544); -emit_32(3273920545); -emit_32(3266043904); -emit_32(1099653605); -emit_32(3273920545); -emit_32(3265531911); -emit_32(1100228067); -emit_32(3273920545); -emit_32(3265019904); -emit_32(1100644195); -emit_32(3273920545); -emit_32(3264507911); -emit_32(1101087218); -emit_32(3273920545); -emit_32(3263995904); -emit_32(1102441873); -emit_32(3273920545); -emit_32(3263483911); -emit_32(1103411859); -emit_32(3273920545); -emit_32(3262775296); -emit_32(1104352169); -emit_32(3273920545); -emit_32(3261751309); -emit_32(1104534045); -emit_32(3273920545); -emit_32(3260727296); -emit_32(1104718961); -emit_32(3273920545); -emit_32(3259703309); -emit_32(1105600394); -emit_32(3273920545); -emit_32(3258679296); -emit_32(1105578322); -emit_32(3273920545); -emit_32(3257655309); -emit_32(1105873968); -emit_32(3273920545); -emit_32(3256631296); -emit_32(1105977043); -emit_32(3273920545); -emit_32(3255607309); -emit_32(1107501987); -emit_32(3273920545); -emit_32(3254386688); -emit_32(1108022657); -emit_32(3273920545); -emit_32(3252338714); -emit_32(1108493730); -emit_32(3273920545); -emit_32(3250290688); -emit_32(1108751627); -emit_32(3273920545); -emit_32(3248242714); -emit_32(1108976756); -emit_32(3273920545); -emit_32(3245998080); -emit_32(1109209357); -emit_32(3273920545); -emit_32(3241902132); -emit_32(1109224928); -emit_32(3273920545); -emit_32(3237609472); -emit_32(1109394299); -emit_32(3273920545); -emit_32(3229220864); -emit_32(1109287790); -emit_32(3273920545); -emit_32(0); -emit_32(1109096556); -emit_32(3273920545); -emit_32(1081737216); -emit_32(1109095429); -emit_32(3273920545); -emit_32(3279552512); -emit_32(1103777917); -emit_32(3274176528); -emit_32(3279296528); -emit_32(1103682863); -emit_32(3274176528); -emit_32(3279040545); -emit_32(1103889852); -emit_32(3274176528); -emit_32(3278784496); -emit_32(1104470082); -emit_32(3274176528); -emit_32(3278528512); -emit_32(1105367977); -emit_32(3274176528); -emit_32(3278272528); -emit_32(1105484998); -emit_32(3274176528); -emit_32(3278016545); -emit_32(1105335157); -emit_32(3274176528); -emit_32(3277760496); -emit_32(1104592136); -emit_32(3274176528); -emit_32(3277504512); -emit_32(1103631063); -emit_32(3274176528); -emit_32(3277248528); -emit_32(1103255306); -emit_32(3274176528); -emit_32(3276992545); -emit_32(1103018276); -emit_32(3274176528); -emit_32(3276736496); -emit_32(1102447378); -emit_32(3274176528); -emit_32(3276480512); -emit_32(1102332926); -emit_32(3274176528); -emit_32(3276224528); -emit_32(1101176976); -emit_32(3274176528); -emit_32(3275968545); -emit_32(1100388132); -emit_32(3274176528); -emit_32(3275712496); -emit_32(1099436969); -emit_32(3274176528); -emit_32(3275456512); -emit_32(1097622199); -emit_32(3274176528); -emit_32(3275200528); -emit_32(1095157206); -emit_32(3274176528); -emit_32(3274944545); -emit_32(1091943761); -emit_32(3274176528); -emit_32(3274688496); -emit_32(1087145897); -emit_32(3274176528); -emit_32(3274432512); -emit_32(1084175847); -emit_32(3274176528); -emit_32(3274176528); -emit_32(1083923161); -emit_32(3274176528); -emit_32(3273920545); -emit_32(1085375292); -emit_32(3274176528); -emit_32(3273664496); -emit_32(1084407834); -emit_32(3274176528); -emit_32(3273408512); -emit_32(1081391354); -emit_32(3274176528); -emit_32(3273152528); -emit_32(1081952216); -emit_32(3274176528); -emit_32(3272896545); -emit_32(1083406885); -emit_32(3274176528); -emit_32(3272640496); -emit_32(1079981732); -emit_32(3274176528); -emit_32(3272384512); -emit_32(1079058020); -emit_32(3274176528); -emit_32(3272128528); -emit_32(1072707676); -emit_32(3274176528); -emit_32(3271872545); -emit_32(1076687568); -emit_32(3274176528); -emit_32(3271616496); -emit_32(1083207089); -emit_32(3274176528); -emit_32(3271163904); -emit_32(1086389538); -emit_32(3274176528); -emit_32(3270651937); -emit_32(1089283314); -emit_32(3274176528); -emit_32(3270139970); -emit_32(1089347172); -emit_32(3274176528); -emit_32(3269627871); -emit_32(1089486696); -emit_32(3274176528); -emit_32(3269115904); -emit_32(1088193739); -emit_32(3274176528); -emit_32(3268603937); -emit_32(1090655722); -emit_32(3274176528); -emit_32(3268091970); -emit_32(1094451515); -emit_32(3274176528); -emit_32(3267579911); -emit_32(1096952893); -emit_32(3274176528); -emit_32(3267067904); -emit_32(1098336489); -emit_32(3274176528); -emit_32(3266555911); -emit_32(1099234437); -emit_32(3274176528); -emit_32(3266043904); -emit_32(1099379612); -emit_32(3274176528); -emit_32(3265531911); -emit_32(1100215799); -emit_32(3274176528); -emit_32(3265019904); -emit_32(1100530162); -emit_32(3274176528); -emit_32(3264507911); -emit_32(1101031329); -emit_32(3274176528); -emit_32(3263995904); -emit_32(1101498994); -emit_32(3274176528); -emit_32(3263483911); -emit_32(1102563928); -emit_32(3274176528); -emit_32(3262775296); -emit_32(1103428531); -emit_32(3274176528); -emit_32(3261751309); -emit_32(1104384360); -emit_32(3274176528); -emit_32(3260727296); -emit_32(1104488589); -emit_32(3274176528); -emit_32(3259703309); -emit_32(1104535827); -emit_32(3274176528); -emit_32(3258679296); -emit_32(1105265479); -emit_32(3274176528); -emit_32(3257655309); -emit_32(1106039747); -emit_32(3274176528); -emit_32(3256631296); -emit_32(1106434956); -emit_32(3274176528); -emit_32(3255607309); -emit_32(1107058596); -emit_32(3274176528); -emit_32(3254386688); -emit_32(1107738703); -emit_32(3274176528); -emit_32(3252338714); -emit_32(1108236567); -emit_32(3274176528); -emit_32(3250290688); -emit_32(1108369447); -emit_32(3274176528); -emit_32(3248242714); -emit_32(1108738258); -emit_32(3274176528); -emit_32(3245998080); -emit_32(1108925140); -emit_32(3274176528); -emit_32(3241902132); -emit_32(1108891219); -emit_32(3274176528); -emit_32(3237609472); -emit_32(1109019224); -emit_32(3274176528); -emit_32(3229220864); -emit_32(1108962574); -emit_32(3274176528); -emit_32(0); -emit_32(1108838921); -emit_32(3274176528); -emit_32(1081737216); -emit_32(1108664621); -emit_32(3274176528); -emit_32(3279552512); -emit_32(1103175247); -emit_32(3274432512); -emit_32(3279296528); -emit_32(1103008996); -emit_32(3274432512); -emit_32(3279040545); -emit_32(1103511840); -emit_32(3274432512); -emit_32(3278784496); -emit_32(1104205736); -emit_32(3274432512); -emit_32(3278528512); -emit_32(1104650804); -emit_32(3274432512); -emit_32(3278272528); -emit_32(1104410365); -emit_32(3274432512); -emit_32(3278016545); -emit_32(1103881359); -emit_32(3274432512); -emit_32(3277760496); -emit_32(1103489768); -emit_32(3274432512); -emit_32(3277504512); -emit_32(1102805048); -emit_32(3274432512); -emit_32(3277248528); -emit_32(1102700452); -emit_32(3274432512); -emit_32(3276992545); -emit_32(1102108688); -emit_32(3274432512); -emit_32(3276736496); -emit_32(1101386429); -emit_32(3274432512); -emit_32(3276480512); -emit_32(1101386115); -emit_32(3274432512); -emit_32(3276224528); -emit_32(1100548774); -emit_32(3274432512); -emit_32(3275968545); -emit_32(1099100534); -emit_32(3274432512); -emit_32(3275712496); -emit_32(1097287388); -emit_32(3274432512); -emit_32(3275456512); -emit_32(1095246545); -emit_32(3274432512); -emit_32(3275200528); -emit_32(1092624685); -emit_32(3274432512); -emit_32(3274944545); -emit_32(1090219567); -emit_32(3274432512); -emit_32(3274688496); -emit_32(1082930516); -emit_32(3274432512); -emit_32(3274432512); -emit_32(1078918434); -emit_32(3274432512); -emit_32(3274176528); -emit_32(1079511215); -emit_32(3274432512); -emit_32(3273920545); -emit_32(1081732351); -emit_32(3274432512); -emit_32(3273664496); -emit_32(1079040698); -emit_32(3274432512); -emit_32(3273408512); -emit_32(1077451183); -emit_32(3274432512); -emit_32(3273152528); -emit_32(1082592749); -emit_32(3274432512); -emit_32(3272896545); -emit_32(1081429857); -emit_32(3274432512); -emit_32(3272640496); -emit_32(1077879421); -emit_32(3274432512); -emit_32(3272384512); -emit_32(1077261516); -emit_32(3274432512); -emit_32(3272128528); -emit_32(1073521036); -emit_32(3274432512); -emit_32(3271872545); -emit_32(1072559785); -emit_32(3274432512); -emit_32(3271616496); -emit_32(1078796380); -emit_32(3274432512); -emit_32(3271163904); -emit_32(1084493587); -emit_32(3274432512); -emit_32(3270651937); -emit_32(1086050198); -emit_32(3274432512); -emit_32(3270139970); -emit_32(1087277451); -emit_32(3274432512); -emit_32(3269627871); -emit_32(1086930582); -emit_32(3274432512); -emit_32(3269115904); -emit_32(1089544619); -emit_32(3274432512); -emit_32(3268603937); -emit_32(1092037839); -emit_32(3274432512); -emit_32(3268091970); -emit_32(1094101185); -emit_32(3274432512); -emit_32(3267579911); -emit_32(1096539125); -emit_32(3274432512); -emit_32(3267067904); -emit_32(1097682387); -emit_32(3274432512); -emit_32(3266555911); -emit_32(1098380005); -emit_32(3274432512); -emit_32(3266043904); -emit_32(1099089471); -emit_32(3274432512); -emit_32(3265531911); -emit_32(1100092801); -emit_32(3274432512); -emit_32(3265019904); -emit_32(1099999687); -emit_32(3274432512); -emit_32(3264507911); -emit_32(1100034290); -emit_32(3274432512); -emit_32(3263995904); -emit_32(1101354920); -emit_32(3274432512); -emit_32(3263483911); -emit_32(1102642361); -emit_32(3274432512); -emit_32(3262775296); -emit_32(1103324617); -emit_32(3274432512); -emit_32(3261751309); -emit_32(1104424364); -emit_32(3274432512); -emit_32(3260727296); -emit_32(1104375238); -emit_32(3274432512); -emit_32(3259703309); -emit_32(1104526075); -emit_32(3274432512); -emit_32(3258679296); -emit_32(1105221963); -emit_32(3274432512); -emit_32(3257655309); -emit_32(1106081009); -emit_32(3274432512); -emit_32(3256631296); -emit_32(1106625692); -emit_32(3274432512); -emit_32(3255607309); -emit_32(1106869957); -emit_32(3274432512); -emit_32(3254386688); -emit_32(1107361976); -emit_32(3274432512); -emit_32(3252338714); -emit_32(1107660584); -emit_32(3274432512); -emit_32(3250290688); -emit_32(1107794539); -emit_32(3274432512); -emit_32(3248242714); -emit_32(1108030993); -emit_32(3274432512); -emit_32(3245998080); -emit_32(1108270855); -emit_32(3274432512); -emit_32(3241902132); -emit_32(1108287055); -emit_32(3274432512); -emit_32(3237609472); -emit_32(1108250041); -emit_32(3274432512); -emit_32(3229220864); -emit_32(1108216958); -emit_32(3274432512); -emit_32(0); -emit_32(1108239267); -emit_32(3274432512); -emit_32(1081737216); -emit_32(1108184872); -emit_32(3274432512); -emit_32(3279552512); -emit_32(1102812126); -emit_32(3274688496); -emit_32(3279296528); -emit_32(1103117418); -emit_32(3274688496); -emit_32(3279040545); -emit_32(1103649885); -emit_32(3274688496); -emit_32(3278784496); -emit_32(1104097313); -emit_32(3274688496); -emit_32(3278528512); -emit_32(1104444654); -emit_32(3274688496); -emit_32(3278272528); -emit_32(1104063601); -emit_32(3274688496); -emit_32(3278016545); -emit_32(1103545814); -emit_32(3274688496); -emit_32(3277760496); -emit_32(1103584507); -emit_32(3274688496); -emit_32(3277504512); -emit_32(1102679009); -emit_32(3274688496); -emit_32(3277248528); -emit_32(1102258687); -emit_32(3274688496); -emit_32(3276992545); -emit_32(1101507854); -emit_32(3274688496); -emit_32(3276736496); -emit_32(1100690909); -emit_32(3274688496); -emit_32(3276480512); -emit_32(1100132332); -emit_32(3274688496); -emit_32(3276224528); -emit_32(1099019583); -emit_32(3274688496); -emit_32(3275968545); -emit_32(1097127376); -emit_32(3274688496); -emit_32(3275712496); -emit_32(1095215822); -emit_32(3274688496); -emit_32(3275456512); -emit_32(1092786166); -emit_32(3274688496); -emit_32(3275200528); -emit_32(1090176785); -emit_32(3274688496); -emit_32(3274944545); -emit_32(1085473439); -emit_32(3274688496); -emit_32(3274688496); -emit_32(1079921376); -emit_32(3274688496); -emit_32(3274432512); -emit_32(1075489590); -emit_32(3274688496); -emit_32(3274176528); -emit_32(1074320386); -emit_32(3274688496); -emit_32(3273920545); -emit_32(1075278281); -emit_32(3274688496); -emit_32(3273664496); -emit_32(1075627373); -emit_32(3274688496); -emit_32(3273408512); -emit_32(1075421307); -emit_32(3274688496); -emit_32(3273152528); -emit_32(1077995687); -emit_32(3274688496); -emit_32(3272896545); -emit_32(1076187271); -emit_32(3274688496); -emit_32(3272640496); -emit_32(1078197056); -emit_32(3274688496); -emit_32(3272384512); -emit_32(1077490273); -emit_32(3274688496); -emit_32(3272128528); -emit_32(1076221287); -emit_32(3274688496); -emit_32(3271872545); -emit_32(1074908092); -emit_32(3274688496); -emit_32(3271616496); -emit_32(1080775462); -emit_32(3274688496); -emit_32(3271163904); -emit_32(1084715256); -emit_32(3274688496); -emit_32(3270651937); -emit_32(1086583504); -emit_32(3274688496); -emit_32(3270139970); -emit_32(1086842502); -emit_32(3274688496); -emit_32(3269627871); -emit_32(1087987400); -emit_32(3274688496); -emit_32(3269115904); -emit_32(1090173891); -emit_32(3274688496); -emit_32(3268603937); -emit_32(1091923838); -emit_32(3274688496); -emit_32(3268091970); -emit_32(1093947988); -emit_32(3274688496); -emit_32(3267579911); -emit_32(1095834167); -emit_32(3274688496); -emit_32(3267067904); -emit_32(1096733950); -emit_32(3274688496); -emit_32(3266555911); -emit_32(1097836842); -emit_32(3274688496); -emit_32(3266043904); -emit_32(1098556060); -emit_32(3274688496); -emit_32(3265531911); -emit_32(1099108608); -emit_32(3274688496); -emit_32(3265019904); -emit_32(1098963275); -emit_32(3274688496); -emit_32(3264507911); -emit_32(1099819542); -emit_32(3274688496); -emit_32(3263995904); -emit_32(1100942305); -emit_32(3274688496); -emit_32(3263483911); -emit_32(1102197608); -emit_32(3274688496); -emit_32(3262775296); -emit_32(1103022837); -emit_32(3274688496); -emit_32(3261751309); -emit_32(1103801562); -emit_32(3274688496); -emit_32(3260727296); -emit_32(1104507988); -emit_32(3274688496); -emit_32(3259703309); -emit_32(1105154592); -emit_32(3274688496); -emit_32(3258679296); -emit_32(1105464079); -emit_32(3274688496); -emit_32(3257655309); -emit_32(1106093382); -emit_32(3274688496); -emit_32(3256631296); -emit_32(1106574311); -emit_32(3274688496); -emit_32(3255607309); -emit_32(1107051990); -emit_32(3274688496); -emit_32(3254386688); -emit_32(1107119571); -emit_32(3274688496); -emit_32(3252338714); -emit_32(1106870849); -emit_32(3274688496); -emit_32(3250290688); -emit_32(1107053878); -emit_32(3274688496); -emit_32(3248242714); -emit_32(1107270461); -emit_32(3274688496); -emit_32(3245998080); -emit_32(1107546577); -emit_32(3274688496); -emit_32(3241902132); -emit_32(1107761064); -emit_32(3274688496); -emit_32(3237609472); -emit_32(1107768718); -emit_32(3274688496); -emit_32(3229220864); -emit_32(1107959035); -emit_32(3274688496); -emit_32(0); -emit_32(1108028398); -emit_32(3274688496); -emit_32(1081737216); -emit_32(1108036289); -emit_32(3274688496); -emit_32(3279552512); -emit_32(1102194829); -emit_32(3274944545); -emit_32(3279296528); -emit_32(1102979740); -emit_32(3274944545); -emit_32(3279040545); -emit_32(1103411282); -emit_32(3274944545); -emit_32(3278784496); -emit_32(1104236354); -emit_32(3274944545); -emit_32(3278528512); -emit_32(1103902330); -emit_32(3274944545); -emit_32(3278272528); -emit_32(1103359430); -emit_32(3274944545); -emit_32(3278016545); -emit_32(1103570665); -emit_32(3274944545); -emit_32(3277760496); -emit_32(1102969255); -emit_32(3274944545); -emit_32(3277504512); -emit_32(1102559995); -emit_32(3274944545); -emit_32(3277248528); -emit_32(1101349467); -emit_32(3274944545); -emit_32(3276992545); -emit_32(1100611689); -emit_32(3274944545); -emit_32(3276736496); -emit_32(1099639921); -emit_32(3274944545); -emit_32(3276480512); -emit_32(1098874513); -emit_32(3274944545); -emit_32(3276224528); -emit_32(1096071040); -emit_32(3274944545); -emit_32(3275968545); -emit_32(1094641831); -emit_32(3274944545); -emit_32(3275712496); -emit_32(1092240938); -emit_32(3274944545); -emit_32(3275456512); -emit_32(1090400551); -emit_32(3274944545); -emit_32(3275200528); -emit_32(1086726760); -emit_32(3274944545); -emit_32(3274944545); -emit_32(1082213060); -emit_32(3274944545); -emit_32(3274688496); -emit_32(1073126939); -emit_32(3274944545); -emit_32(3274432512); -emit_32(1071516914); -emit_32(3274944545); -emit_32(3274176528); -emit_32(1065259968); -emit_32(3274944545); -emit_32(3273920545); -emit_32(1065288959); -emit_32(3274944545); -emit_32(3273664496); -emit_32(1065357243); -emit_32(3274944545); -emit_32(3273408512); -emit_32(1069920478); -emit_32(3274944545); -emit_32(3273152528); -emit_32(1062828597); -emit_32(3274944545); -emit_32(3272896545); -emit_32(1067908386); -emit_32(3274944545); -emit_32(3272640496); -emit_32(1068584424); -emit_32(3274944545); -emit_32(3272384512); -emit_32(1063954466); -emit_32(3274944545); -emit_32(3272128528); -emit_32(1068682235); -emit_32(3274944545); -emit_32(3271872545); -emit_32(1074494492); -emit_32(3274944545); -emit_32(3271616496); -emit_32(1082171809); -emit_32(3274944545); -emit_32(3271163904); -emit_32(1085758274); -emit_32(3274944545); -emit_32(3270651937); -emit_32(1088930825); -emit_32(3274944545); -emit_32(3270139970); -emit_32(1088551890); -emit_32(3274944545); -emit_32(3269627871); -emit_32(1090336420); -emit_32(3274944545); -emit_32(3269115904); -emit_32(1090128550); -emit_32(3274944545); -emit_32(3268603937); -emit_32(1092723147); -emit_32(3274944545); -emit_32(3268091970); -emit_32(1094514744); -emit_32(3274944545); -emit_32(3267579911); -emit_32(1095724381); -emit_32(3274944545); -emit_32(3267067904); -emit_32(1096378378); -emit_32(3274944545); -emit_32(3266555911); -emit_32(1096239232); -emit_32(3274944545); -emit_32(3266043904); -emit_32(1097003853); -emit_32(3274944545); -emit_32(3265531911); -emit_32(1097209165); -emit_32(3274944545); -emit_32(3265019904); -emit_32(1098262459); -emit_32(3274944545); -emit_32(3264507911); -emit_32(1099551893); -emit_32(3274944545); -emit_32(3263995904); -emit_32(1100443025); -emit_32(3274944545); -emit_32(3263483911); -emit_32(1101006635); -emit_32(3274944545); -emit_32(3262775296); -emit_32(1102193466); -emit_32(3274944545); -emit_32(3261751309); -emit_32(1103692405); -emit_32(3274944545); -emit_32(3260727296); -emit_32(1104818733); -emit_32(3274944545); -emit_32(3259703309); -emit_32(1105337935); -emit_32(3274944545); -emit_32(3258679296); -emit_32(1105923932); -emit_32(3274944545); -emit_32(3257655309); -emit_32(1106359720); -emit_32(3274944545); -emit_32(3256631296); -emit_32(1106972561); -emit_32(3274944545); -emit_32(3255607309); -emit_32(1106903040); -emit_32(3274944545); -emit_32(3254386688); -emit_32(1106792520); -emit_32(3274944545); -emit_32(3252338714); -emit_32(1106424313); -emit_32(3274944545); -emit_32(3250290688); -emit_32(1106536196); -emit_32(3274944545); -emit_32(3248242714); -emit_32(1106757026); -emit_32(3274944545); -emit_32(3245998080); -emit_32(1107206445); -emit_32(3274944545); -emit_32(3241902132); -emit_32(1107332773); -emit_32(3274944545); -emit_32(3237609472); -emit_32(1107315261); -emit_32(3274944545); -emit_32(3229220864); -emit_32(1107468589); -emit_32(3274944545); -emit_32(0); -emit_32(1107529276); -emit_32(3274944545); -emit_32(1081737216); -emit_32(1107544270); -emit_32(3274944545); -emit_32(3279552512); -emit_32(1102256485); -emit_32(3275200528); -emit_32(3279296528); -emit_32(1102476581); -emit_32(3275200528); -emit_32(3279040545); -emit_32(1102648600); -emit_32(3275200528); -emit_32(3278784496); -emit_32(1103151707); -emit_32(3275200528); -emit_32(3278528512); -emit_32(1103103315); -emit_32(3275200528); -emit_32(3278272528); -emit_32(1102817788); -emit_32(3275200528); -emit_32(3278016545); -emit_32(1103034843); -emit_32(3275200528); -emit_32(3277760496); -emit_32(1102561411); -emit_32(3275200528); -emit_32(3277504512); -emit_32(1101968179); -emit_32(3275200528); -emit_32(3277248528); -emit_32(1100968939); -emit_32(3275200528); -emit_32(3276992545); -emit_32(1099333370); -emit_32(3275200528); -emit_32(3276736496); -emit_32(1098046662); -emit_32(3275200528); -emit_32(3276480512); -emit_32(1096587778); -emit_32(3275200528); -emit_32(3276224528); -emit_32(1094379687); -emit_32(3275200528); -emit_32(3275968545); -emit_32(1092357099); -emit_32(3275200528); -emit_32(3275712496); -emit_32(1088608073); -emit_32(3275200528); -emit_32(3275456512); -emit_32(1087226532); -emit_32(3275200528); -emit_32(3275200528); -emit_32(1084547148); -emit_32(3275200528); -emit_32(3274944545); -emit_32(1081193131); -emit_32(3275200528); -emit_32(3274688496); -emit_32(1078008983); -emit_32(3275200528); -emit_32(3274432512); -emit_32(1069241755); -emit_32(3275200528); -emit_32(3274176528); -emit_32(1061457513); -emit_32(3275200528); -emit_32(3273920545); -emit_32(1073613814); -emit_32(3275200528); -emit_32(3273664496); -emit_32(1066147869); -emit_32(3275200528); -emit_32(3273408512); -emit_32(1067857803); -emit_32(3275200528); -emit_32(3273152528); -emit_32(3192938482); -emit_32(3275200528); -emit_32(3272896545); -emit_32(3204552258); -emit_32(3275200528); -emit_32(3272640496); -emit_32(3207444717); -emit_32(3275200528); -emit_32(3272384512); -emit_32(1042926373); -emit_32(3275200528); -emit_32(3272128528); -emit_32(1069107873); -emit_32(3275200528); -emit_32(3271872545); -emit_32(1068988587); -emit_32(3275200528); -emit_32(3271616496); -emit_32(1078926571); -emit_32(3275200528); -emit_32(3271163904); -emit_32(1083921610); -emit_32(3275200528); -emit_32(3270651937); -emit_32(1087667710); -emit_32(3275200528); -emit_32(3270139970); -emit_32(1090444214); -emit_32(3275200528); -emit_32(3269627871); -emit_32(1091070528); -emit_32(3275200528); -emit_32(3269115904); -emit_32(1090066034); -emit_32(3275200528); -emit_32(3268603937); -emit_32(1092043900); -emit_32(3275200528); -emit_32(3268091970); -emit_32(1094000103); -emit_32(3275200528); -emit_32(3267579911); -emit_32(1094961752); -emit_32(3275200528); -emit_32(3267067904); -emit_32(1095524208); -emit_32(3275200528); -emit_32(3266555911); -emit_32(1095676356); -emit_32(3275200528); -emit_32(3266043904); -emit_32(1095717880); -emit_32(3275200528); -emit_32(3265531911); -emit_32(1096110676); -emit_32(3275200528); -emit_32(3265019904); -emit_32(1097228249); -emit_32(3275200528); -emit_32(3264507911); -emit_32(1099051146); -emit_32(3275200528); -emit_32(3263995904); -emit_32(1099955228); -emit_32(3275200528); -emit_32(3263483911); -emit_32(1100759119); -emit_32(3275200528); -emit_32(3262775296); -emit_32(1101740848); -emit_32(3275200528); -emit_32(3261751309); -emit_32(1103570928); -emit_32(3275200528); -emit_32(3260727296); -emit_32(1104669783); -emit_32(3275200528); -emit_32(3259703309); -emit_32(1105525316); -emit_32(3275200528); -emit_32(3258679296); -emit_32(1106359248); -emit_32(3275200528); -emit_32(3257655309); -emit_32(1106517269); -emit_32(3275200528); -emit_32(3256631296); -emit_32(1106616045); -emit_32(3275200528); -emit_32(3255607309); -emit_32(1106583906); -emit_32(3275200528); -emit_32(3254386688); -emit_32(1106124944); -emit_32(3275200528); -emit_32(3252338714); -emit_32(1106384676); -emit_32(3275200528); -emit_32(3250290688); -emit_32(1106808354); -emit_32(3275200528); -emit_32(3248242714); -emit_32(1106794879); -emit_32(3275200528); -emit_32(3245998080); -emit_32(1106762741); -emit_32(3275200528); -emit_32(3241902132); -emit_32(1106491369); -emit_32(3275200528); -emit_32(3237609472); -emit_32(1106295705); -emit_32(3275200528); -emit_32(3229220864); -emit_32(1106289675); -emit_32(3275200528); -emit_32(0); -emit_32(1106247261); -emit_32(3275200528); -emit_32(1081737216); -emit_32(1106249096); -emit_32(3275200528); -emit_32(3279552512); -emit_32(1102201697); -emit_32(3275456512); -emit_32(3279296528); -emit_32(1102659820); -emit_32(3275456512); -emit_32(3279040545); -emit_32(1102694528); -emit_32(3275456512); -emit_32(3278784496); -emit_32(1102926001); -emit_32(3275456512); -emit_32(3278528512); -emit_32(1102847567); -emit_32(3275456512); -emit_32(3278272528); -emit_32(1102512443); -emit_32(3275456512); -emit_32(3278016545); -emit_32(1102182928); -emit_32(3275456512); -emit_32(3277760496); -emit_32(1101754112); -emit_32(3275456512); -emit_32(3277504512); -emit_32(1101220178); -emit_32(3275456512); -emit_32(3277248528); -emit_32(1100092591); -emit_32(3275456512); -emit_32(3276992545); -emit_32(1099095081); -emit_32(3275456512); -emit_32(3276736496); -emit_32(1095841821); -emit_32(3275456512); -emit_32(3276480512); -emit_32(1094285106); -emit_32(3275456512); -emit_32(3276224528); -emit_32(1092426242); -emit_32(3275456512); -emit_32(3275968545); -emit_32(1091118752); -emit_32(3275456512); -emit_32(3275712496); -emit_32(1086196076); -emit_32(3275456512); -emit_32(3275456512); -emit_32(1084558955); -emit_32(3275456512); -emit_32(3275200528); -emit_32(1081694099); -emit_32(3275456512); -emit_32(3274944545); -emit_32(1083225900); -emit_32(3275456512); -emit_32(3274688496); -emit_32(1082574231); -emit_32(3275456512); -emit_32(3274432512); -emit_32(1076364145); -emit_32(3275456512); -emit_32(3274176528); -emit_32(1072545021); -emit_32(3275456512); -emit_32(3273920545); -emit_32(1074334018); -emit_32(3275456512); -emit_32(3273664496); -emit_32(1076300014); -emit_32(3275456512); -emit_32(3273408512); -emit_32(1073720181); -emit_32(3275456512); -emit_32(3273152528); -emit_32(1062607037); -emit_32(3275456512); -emit_32(3272896545); -emit_32(3187287312); -emit_32(3275456512); -emit_32(3272640496); -emit_32(3214601911); -emit_32(3275456512); -emit_32(3272384512); -emit_32(1058984736); -emit_32(3275456512); -emit_32(3272128528); -emit_32(1074596288); -emit_32(3275456512); -emit_32(3271872545); -emit_32(1076067859); -emit_32(3275456512); -emit_32(3271616496); -emit_32(1078353210); -emit_32(3275456512); -emit_32(3271163904); -emit_32(1083728860); -emit_32(3275456512); -emit_32(3270651937); -emit_32(1087570235); -emit_32(3275456512); -emit_32(3270139970); -emit_32(1089274527); -emit_32(3275456512); -emit_32(3269627871); -emit_32(1090698305); -emit_32(3275456512); -emit_32(3269115904); -emit_32(1091459088); -emit_32(3275456512); -emit_32(3268603937); -emit_32(1092135063); -emit_32(3275456512); -emit_32(3268091970); -emit_32(1093474242); -emit_32(3275456512); -emit_32(3267579911); -emit_32(1094959235); -emit_32(3275456512); -emit_32(3267067904); -emit_32(1094655672); -emit_32(3275456512); -emit_32(3266555911); -emit_32(1095034523); -emit_32(3275456512); -emit_32(3266043904); -emit_32(1095524522); -emit_32(3275456512); -emit_32(3265531911); -emit_32(1096032557); -emit_32(3275456512); -emit_32(3265019904); -emit_32(1097045482); -emit_32(3275456512); -emit_32(3264507911); -emit_32(1098064278); -emit_32(3275456512); -emit_32(3263995904); -emit_32(1099811573); -emit_32(3275456512); -emit_32(3263483911); -emit_32(1101577899); -emit_32(3275456512); -emit_32(3262775296); -emit_32(1102983515); -emit_32(3275456512); -emit_32(3261751309); -emit_32(1103562015); -emit_32(3275456512); -emit_32(3260727296); -emit_32(1104461116); -emit_32(3275456512); -emit_32(3259703309); -emit_32(1105235752); -emit_32(3275456512); -emit_32(3258679296); -emit_32(1106329049); -emit_32(3275456512); -emit_32(3257655309); -emit_32(1106693744); -emit_32(3275456512); -emit_32(3256631296); -emit_32(1106663703); -emit_32(3275456512); -emit_32(3255607309); -emit_32(1106416710); -emit_32(3275456512); -emit_32(3254386688); -emit_32(1105642390); -emit_32(3275456512); -emit_32(3252338714); -emit_32(1106355631); -emit_32(3275456512); -emit_32(3250290688); -emit_32(1107058020); -emit_32(3275456512); -emit_32(3248242714); -emit_32(1106806414); -emit_32(3275456512); -emit_32(3245998080); -emit_32(1106545790); -emit_32(3275456512); -emit_32(3241902132); -emit_32(1106234783); -emit_32(3275456512); -emit_32(3237609472); -emit_32(1105605637); -emit_32(3275456512); -emit_32(3229220864); -emit_32(1105327922); -emit_32(3275456512); -emit_32(0); -emit_32(1104886890); -emit_32(3275456512); -emit_32(1081737216); -emit_32(1105010622); -emit_32(3275456512); -emit_32(3279552512); -emit_32(1101796265); -emit_32(3275712496); -emit_32(3279296528); -emit_32(1102154616); -emit_32(3275712496); -emit_32(3279040545); -emit_32(1102271480); -emit_32(3275712496); -emit_32(3278784496); -emit_32(1102377910); -emit_32(3275712496); -emit_32(3278528512); -emit_32(1102537923); -emit_32(3275712496); -emit_32(3278272528); -emit_32(1102370151); -emit_32(3275712496); -emit_32(3278016545); -emit_32(1101809268); -emit_32(3275712496); -emit_32(3277760496); -emit_32(1101123289); -emit_32(3275712496); -emit_32(3277504512); -emit_32(1100805466); -emit_32(3275712496); -emit_32(3277248528); -emit_32(1100000736); -emit_32(3275712496); -emit_32(3276992545); -emit_32(1098896743); -emit_32(3275712496); -emit_32(3276736496); -emit_32(1095489500); -emit_32(3275712496); -emit_32(3276480512); -emit_32(1092604647); -emit_32(3275712496); -emit_32(3276224528); -emit_32(1089231431); -emit_32(3275712496); -emit_32(3275968545); -emit_32(1086808717); -emit_32(3275712496); -emit_32(3275712496); -emit_32(1083957890); -emit_32(3275712496); -emit_32(3275456512); -emit_32(1083971564); -emit_32(3275712496); -emit_32(3275200528); -emit_32(1083249913); -emit_32(3275712496); -emit_32(3274944545); -emit_32(1084720771); -emit_32(3275712496); -emit_32(3274688496); -emit_32(1082599125); -emit_32(3275712496); -emit_32(3274432512); -emit_32(1079874484); -emit_32(3275712496); -emit_32(3274176528); -emit_32(1080545069); -emit_32(3275712496); -emit_32(3273920545); -emit_32(1078235685); -emit_32(3275712496); -emit_32(3273664496); -emit_32(1080867653); -emit_32(3275712496); -emit_32(3273408512); -emit_32(1082567206); -emit_32(3275712496); -emit_32(3273152528); -emit_32(1074733945); -emit_32(3275712496); -emit_32(3272896545); -emit_32(1058342370); -emit_32(3275712496); -emit_32(3272640496); -emit_32(1055267089); -emit_32(3275712496); -emit_32(3272384512); -emit_32(1075522138); -emit_32(3275712496); -emit_32(3272128528); -emit_32(1080234900); -emit_32(3275712496); -emit_32(3271872545); -emit_32(1080374822); -emit_32(3275712496); -emit_32(3271616496); -emit_32(1083014633); -emit_32(3275712496); -emit_32(3271163904); -emit_32(1084734109); -emit_32(3275712496); -emit_32(3270651937); -emit_32(1087494779); -emit_32(3275712496); -emit_32(3270139970); -emit_32(1088284965); -emit_32(3275712496); -emit_32(3269627871); -emit_32(1089959289); -emit_32(3275712496); -emit_32(3269115904); -emit_32(1090565890); -emit_32(3275712496); -emit_32(3268603937); -emit_32(1091730439); -emit_32(3275712496); -emit_32(3268091970); -emit_32(1093621042); -emit_32(3275712496); -emit_32(3267579911); -emit_32(1094912259); -emit_32(3275712496); -emit_32(3267067904); -emit_32(1094344350); -emit_32(3275712496); -emit_32(3266555911); -emit_32(1094347810); -emit_32(3275712496); -emit_32(3266043904); -emit_32(1095166958); -emit_32(3275712496); -emit_32(3265531911); -emit_32(1096161218); -emit_32(3275712496); -emit_32(3265019904); -emit_32(1097215246); -emit_32(3275712496); -emit_32(3264507911); -emit_32(1099003068); -emit_32(3275712496); -emit_32(3263995904); -emit_32(1100476894); -emit_32(3275712496); -emit_32(3263483911); -emit_32(1102488954); -emit_32(3275712496); -emit_32(3262775296); -emit_32(1103829035); -emit_32(3275712496); -emit_32(3261751309); -emit_32(1104228332); -emit_32(3275712496); -emit_32(3260727296); -emit_32(1103954339); -emit_32(3275712496); -emit_32(3259703309); -emit_32(1104646714); -emit_32(3275712496); -emit_32(3258679296); -emit_32(1105727324); -emit_32(3275712496); -emit_32(3257655309); -emit_32(1106170243); -emit_32(3275712496); -emit_32(3256631296); -emit_32(1106312482); -emit_32(3275712496); -emit_32(3255607309); -emit_32(1106119596); -emit_32(3275712496); -emit_32(3254386688); -emit_32(1105456687); -emit_32(3275712496); -emit_32(3252338714); -emit_32(1106005931); -emit_32(3275712496); -emit_32(3250290688); -emit_32(1106493309); -emit_32(3275712496); -emit_32(3248242714); -emit_32(1106443921); -emit_32(3275712496); -emit_32(3245998080); -emit_32(1106444917); -emit_32(3275712496); -emit_32(3241902132); -emit_32(1105728582); -emit_32(3275712496); -emit_32(3237609472); -emit_32(1105301445); -emit_32(3275712496); -emit_32(3229220864); -emit_32(1104221307); -emit_32(3275712496); -emit_32(0); -emit_32(1103753013); -emit_32(3275712496); -emit_32(1081737216); -emit_32(1103817710); -emit_32(3275712496); -emit_32(3279552512); -emit_32(1101413745); -emit_32(3275968545); -emit_32(3279296528); -emit_32(1101438858); -emit_32(3275968545); -emit_32(3279040545); -emit_32(1101644379); -emit_32(3275968545); -emit_32(3278784496); -emit_32(1102087560); -emit_32(3275968545); -emit_32(3278528512); -emit_32(1102163214); -emit_32(3275968545); -emit_32(3278272528); -emit_32(1102125308); -emit_32(3275968545); -emit_32(3278016545); -emit_32(1101537739); -emit_32(3275968545); -emit_32(3277760496); -emit_32(1100699350); -emit_32(3275968545); -emit_32(3277504512); -emit_32(1099847539); -emit_32(3275968545); -emit_32(3277248528); -emit_32(1099231239); -emit_32(3275968545); -emit_32(3276992545); -emit_32(1097551315); -emit_32(3275968545); -emit_32(3276736496); -emit_32(1094513590); -emit_32(3275968545); -emit_32(3276480512); -emit_32(1092236859); -emit_32(3275968545); -emit_32(3276224528); -emit_32(1087371425); -emit_32(3275968545); -emit_32(3275968545); -emit_32(1086821908); -emit_32(3275968545); -emit_32(3275712496); -emit_32(1087590871); -emit_32(3275968545); -emit_32(3275456512); -emit_32(1086797791); -emit_32(3275968545); -emit_32(3275200528); -emit_32(1085233189); -emit_32(3275968545); -emit_32(3274944545); -emit_32(1084580975); -emit_32(3275968545); -emit_32(3274688496); -emit_32(1083882351); -emit_32(3275968545); -emit_32(3274432512); -emit_32(1082486780); -emit_32(3275968545); -emit_32(3274176528); -emit_32(1085077623); -emit_32(3275968545); -emit_32(3273920545); -emit_32(1084260342); -emit_32(3275968545); -emit_32(3273664496); -emit_32(1083367290); -emit_32(3275968545); -emit_32(3273408512); -emit_32(1083666638); -emit_32(3275968545); -emit_32(3273152528); -emit_32(1078547909); -emit_32(3275968545); -emit_32(3272896545); -emit_32(1066770387); -emit_32(3275968545); -emit_32(3272640496); -emit_32(1075803744); -emit_32(3275968545); -emit_32(3272384512); -emit_32(1082085679); -emit_32(3275968545); -emit_32(3272128528); -emit_32(1084581185); -emit_32(3275968545); -emit_32(3271872545); -emit_32(1085673172); -emit_32(3275968545); -emit_32(3271616496); -emit_32(1085188394); -emit_32(3275968545); -emit_32(3271163904); -emit_32(1084552768); -emit_32(3275968545); -emit_32(3270651937); -emit_32(1087292635); -emit_32(3275968545); -emit_32(3270139970); -emit_32(1089188963); -emit_32(3275968545); -emit_32(3269627871); -emit_32(1090660503); -emit_32(3275968545); -emit_32(3269115904); -emit_32(1089489254); -emit_32(3275968545); -emit_32(3268603937); -emit_32(1091501157); -emit_32(3275968545); -emit_32(3268091970); -emit_32(1093299130); -emit_32(3275968545); -emit_32(3267579911); -emit_32(1093272076); -emit_32(3275968545); -emit_32(3267067904); -emit_32(1093175293); -emit_32(3275968545); -emit_32(3266555911); -emit_32(1094268538); -emit_32(3275968545); -emit_32(3266043904); -emit_32(1094260359); -emit_32(3275968545); -emit_32(3265531911); -emit_32(1097064147); -emit_32(3275968545); -emit_32(3265019904); -emit_32(1098974337); -emit_32(3275968545); -emit_32(3264507911); -emit_32(1099484050); -emit_32(3275968545); -emit_32(3263995904); -emit_32(1101248646); -emit_32(3275968545); -emit_32(3263483911); -emit_32(1102857634); -emit_32(3275968545); -emit_32(3262775296); -emit_32(1103688158); -emit_32(3275968545); -emit_32(3261751309); -emit_32(1104120486); -emit_32(3275968545); -emit_32(3260727296); -emit_32(1103897087); -emit_32(3275968545); -emit_32(3259703309); -emit_32(1103680084); -emit_32(3275968545); -emit_32(3258679296); -emit_32(1104794406); -emit_32(3275968545); -emit_32(3257655309); -emit_32(1105582830); -emit_32(3275968545); -emit_32(3256631296); -emit_32(1105670124); -emit_32(3275968545); -emit_32(3255607309); -emit_32(1105372486); -emit_32(3275968545); -emit_32(3254386688); -emit_32(1104924063); -emit_32(3275968545); -emit_32(3252338714); -emit_32(1105134250); -emit_32(3275968545); -emit_32(3250290688); -emit_32(1105252739); -emit_32(3275968545); -emit_32(3248242714); -emit_32(1105713693); -emit_32(3275968545); -emit_32(3245998080); -emit_32(1105505760); -emit_32(3275968545); -emit_32(3241902132); -emit_32(1104815692); -emit_32(3275968545); -emit_32(3237609472); -emit_32(1104575830); -emit_32(3275968545); -emit_32(3229220864); -emit_32(1103816871); -emit_32(3275968545); -emit_32(0); -emit_32(1102689547); -emit_32(3275968545); -emit_32(1081737216); -emit_32(1102629726); -emit_32(3275968545); -emit_32(3279552512); -emit_32(1101111021); -emit_32(3276224528); -emit_32(3279296528); -emit_32(1100789580); -emit_32(3276224528); -emit_32(3279040545); -emit_32(1101187724); -emit_32(3276224528); -emit_32(3278784496); -emit_32(1101544450); -emit_32(3276224528); -emit_32(3278528512); -emit_32(1101809215); -emit_32(3276224528); -emit_32(3278272528); -emit_32(1101364409); -emit_32(3276224528); -emit_32(3278016545); -emit_32(1100966999); -emit_32(3276224528); -emit_32(3277760496); -emit_32(1100334603); -emit_32(3276224528); -emit_32(3277504512); -emit_32(1099684538); -emit_32(3276224528); -emit_32(3277248528); -emit_32(1097905000); -emit_32(3276224528); -emit_32(3276992545); -emit_32(1096189949); -emit_32(3276224528); -emit_32(3276736496); -emit_32(1093369908); -emit_32(3276224528); -emit_32(3276480512); -emit_32(1090856430); -emit_32(3276224528); -emit_32(3276224528); -emit_32(1089059569); -emit_32(3276224528); -emit_32(3275968545); -emit_32(1088475764); -emit_32(3276224528); -emit_32(3275712496); -emit_32(1089236128); -emit_32(3276224528); -emit_32(3275456512); -emit_32(1088316066); -emit_32(3276224528); -emit_32(3275200528); -emit_32(1087626375); -emit_32(3276224528); -emit_32(3274944545); -emit_32(1087484629); -emit_32(3276224528); -emit_32(3274688496); -emit_32(1087038397); -emit_32(3276224528); -emit_32(3274432512); -emit_32(1084227794); -emit_32(3276224528); -emit_32(3274176528); -emit_32(1087406111); -emit_32(3276224528); -emit_32(3273920545); -emit_32(1087788003); -emit_32(3276224528); -emit_32(3273664496); -emit_32(1085636639); -emit_32(3276224528); -emit_32(3273408512); -emit_32(1084012206); -emit_32(3276224528); -emit_32(3273152528); -emit_32(1079773149); -emit_32(3276224528); -emit_32(3272896545); -emit_32(1074099640); -emit_32(3276224528); -emit_32(3272640496); -emit_32(1081570199); -emit_32(3276224528); -emit_32(3272384512); -emit_32(1086505511); -emit_32(3276224528); -emit_32(3272128528); -emit_32(1088421783); -emit_32(3276224528); -emit_32(3271872545); -emit_32(1090863057); -emit_32(3276224528); -emit_32(3271616496); -emit_32(1091104240); -emit_32(3276224528); -emit_32(3271163904); -emit_32(1090801149); -emit_32(3276224528); -emit_32(3270651937); -emit_32(1091187329); -emit_32(3276224528); -emit_32(3270139970); -emit_32(1091684071); -emit_32(3276224528); -emit_32(3269627871); -emit_32(1092334691); -emit_32(3276224528); -emit_32(3269115904); -emit_32(1091715549); -emit_32(3276224528); -emit_32(3268603937); -emit_32(1091937239); -emit_32(3276224528); -emit_32(3268091970); -emit_32(1092157765); -emit_32(3276224528); -emit_32(3267579911); -emit_32(1092352643); -emit_32(3276224528); -emit_32(3267067904); -emit_32(1093649249); -emit_32(3276224528); -emit_32(3266555911); -emit_32(1095125015); -emit_32(3276224528); -emit_32(3266043904); -emit_32(1096433743); -emit_32(3276224528); -emit_32(3265531911); -emit_32(1098895694); -emit_32(3276224528); -emit_32(3265019904); -emit_32(1099846805); -emit_32(3276224528); -emit_32(3264507911); -emit_32(1100394109); -emit_32(3276224528); -emit_32(3263995904); -emit_32(1101147301); -emit_32(3276224528); -emit_32(3263483911); -emit_32(1102840332); -emit_32(3276224528); -emit_32(3262775296); -emit_32(1103420352); -emit_32(3276224528); -emit_32(3261751309); -emit_32(1103784994); -emit_32(3276224528); -emit_32(3260727296); -emit_32(1103743890); -emit_32(3276224528); -emit_32(3259703309); -emit_32(1103097863); -emit_32(3276224528); -emit_32(3258679296); -emit_32(1103438807); -emit_32(3276224528); -emit_32(3257655309); -emit_32(1104475534); -emit_32(3276224528); -emit_32(3256631296); -emit_32(1104961811); -emit_32(3276224528); -emit_32(3255607309); -emit_32(1104919763); -emit_32(3276224528); -emit_32(3254386688); -emit_32(1104827174); -emit_32(3276224528); -emit_32(3252338714); -emit_32(1104406905); -emit_32(3276224528); -emit_32(3250290688); -emit_32(1104336860); -emit_32(3276224528); -emit_32(3248242714); -emit_32(1104244218); -emit_32(3276224528); -emit_32(3245998080); -emit_32(1104283592); -emit_32(3276224528); -emit_32(3241902132); -emit_32(1104029627); -emit_32(3276224528); -emit_32(3237609472); -emit_32(1103767326); -emit_32(3276224528); -emit_32(3229220864); -emit_32(1102780406); -emit_32(3276224528); -emit_32(0); -emit_32(1102353111); -emit_32(3276224528); -emit_32(1081737216); -emit_32(1101834591); -emit_32(3276224528); -emit_32(3279552512); -emit_32(1100665376); -emit_32(3276480512); -emit_32(3279296528); -emit_32(1100635911); -emit_32(3276480512); -emit_32(3279040545); -emit_32(1100599001); -emit_32(3276480512); -emit_32(3278784496); -emit_32(1100704593); -emit_32(3276480512); -emit_32(3278528512); -emit_32(1100706847); -emit_32(3276480512); -emit_32(3278272528); -emit_32(1100641940); -emit_32(3276480512); -emit_32(3278016545); -emit_32(1100067373); -emit_32(3276480512); -emit_32(3277760496); -emit_32(1099870817); -emit_32(3276480512); -emit_32(3277504512); -emit_32(1099360738); -emit_32(3276480512); -emit_32(3277248528); -emit_32(1097705875); -emit_32(3276480512); -emit_32(3276992545); -emit_32(1095158989); -emit_32(3276480512); -emit_32(3276736496); -emit_32(1092654884); -emit_32(3276480512); -emit_32(3276480512); -emit_32(1091569199); -emit_32(3276480512); -emit_32(3276224528); -emit_32(1091162174); -emit_32(3276480512); -emit_32(3275968545); -emit_32(1090619556); -emit_32(3276480512); -emit_32(3275712496); -emit_32(1090709283); -emit_32(3276480512); -emit_32(3275456512); -emit_32(1090001987); -emit_32(3276480512); -emit_32(3275200528); -emit_32(1089948027); -emit_32(3276480512); -emit_32(3274944545); -emit_32(1089924476); -emit_32(3276480512); -emit_32(3274688496); -emit_32(1089951446); -emit_32(3276480512); -emit_32(3274432512); -emit_32(1087795175); -emit_32(3276480512); -emit_32(3274176528); -emit_32(1087558449); -emit_32(3276480512); -emit_32(3273920545); -emit_32(1087330845); -emit_32(3276480512); -emit_32(3273664496); -emit_32(1086250308); -emit_32(3276480512); -emit_32(3273408512); -emit_32(1086015469); -emit_32(3276480512); -emit_32(3273152528); -emit_32(1084541779); -emit_32(3276480512); -emit_32(3272896545); -emit_32(1083402271); -emit_32(3276480512); -emit_32(3272640496); -emit_32(1087092084); -emit_32(3276480512); -emit_32(3272384512); -emit_32(1089818319); -emit_32(3276480512); -emit_32(3272128528); -emit_32(1091233068); -emit_32(3276480512); -emit_32(3271872545); -emit_32(1092479059); -emit_32(3276480512); -emit_32(3271616496); -emit_32(1092547835); -emit_32(3276480512); -emit_32(3271163904); -emit_32(1093621252); -emit_32(3276480512); -emit_32(3270651937); -emit_32(1093588327); -emit_32(3276480512); -emit_32(3270139970); -emit_32(1094120689); -emit_32(3276480512); -emit_32(3269627871); -emit_32(1093722230); -emit_32(3276480512); -emit_32(3269115904); -emit_32(1093927017); -emit_32(3276480512); -emit_32(3268603937); -emit_32(1094469340); -emit_32(3276480512); -emit_32(3268091970); -emit_32(1093549320); -emit_32(3276480512); -emit_32(3267579911); -emit_32(1094062283); -emit_32(3276480512); -emit_32(3267067904); -emit_32(1094889505); -emit_32(3276480512); -emit_32(3266555911); -emit_32(1095517287); -emit_32(3276480512); -emit_32(3266043904); -emit_32(1098112303); -emit_32(3276480512); -emit_32(3265531911); -emit_32(1099944847); -emit_32(3276480512); -emit_32(3265019904); -emit_32(1100805204); -emit_32(3276480512); -emit_32(3264507911); -emit_32(1100813068); -emit_32(3276480512); -emit_32(3263995904); -emit_32(1100890191); -emit_32(3276480512); -emit_32(3263483911); -emit_32(1101765018); -emit_32(3276480512); -emit_32(3262775296); -emit_32(1103166125); -emit_32(3276480512); -emit_32(3261751309); -emit_32(1103581413); -emit_32(3276480512); -emit_32(3260727296); -emit_32(1103239001); -emit_32(3276480512); -emit_32(3259703309); -emit_32(1103115059); -emit_32(3276480512); -emit_32(3258679296); -emit_32(1102634916); -emit_32(3276480512); -emit_32(3257655309); -emit_32(1103117366); -emit_32(3276480512); -emit_32(3256631296); -emit_32(1103874962); -emit_32(3276480512); -emit_32(3255607309); -emit_32(1104123108); -emit_32(3276480512); -emit_32(3254386688); -emit_32(1103935308); -emit_32(3276480512); -emit_32(3252338714); -emit_32(1103665666); -emit_32(3276480512); -emit_32(3250290688); -emit_32(1103444679); -emit_32(3276480512); -emit_32(3248242714); -emit_32(1103627551); -emit_32(3276480512); -emit_32(3245998080); -emit_32(1103736865); -emit_32(3276480512); -emit_32(3241902132); -emit_32(1103212210); -emit_32(3276480512); -emit_32(3237609472); -emit_32(1102649124); -emit_32(3276480512); -emit_32(3229220864); -emit_32(1101755266); -emit_32(3276480512); -emit_32(0); -emit_32(1101465335); -emit_32(3276480512); -emit_32(1081737216); -emit_32(1101171471); -emit_32(3276480512); -emit_32(3279552512); -emit_32(1100210871); -emit_32(3276736496); -emit_32(3279296528); -emit_32(1100433483); -emit_32(3276736496); -emit_32(3279040545); -emit_32(1099833855); -emit_32(3276736496); -emit_32(3278784496); -emit_32(1100155611); -emit_32(3276736496); -emit_32(3278528512); -emit_32(1099838049); -emit_32(3276736496); -emit_32(3278272528); -emit_32(1100058775); -emit_32(3276736496); -emit_32(3278016545); -emit_32(1099672899); -emit_32(3276736496); -emit_32(3277760496); -emit_32(1099187932); -emit_32(3276736496); -emit_32(3277504512); -emit_32(1098271477); -emit_32(3276736496); -emit_32(3277248528); -emit_32(1096846357); -emit_32(3276736496); -emit_32(3276992545); -emit_32(1094240646); -emit_32(3276736496); -emit_32(3276736496); -emit_32(1093510208); -emit_32(3276736496); -emit_32(3276480512); -emit_32(1093157677); -emit_32(3276736496); -emit_32(3276224528); -emit_32(1093135971); -emit_32(3276736496); -emit_32(3275968545); -emit_32(1092174626); -emit_32(3276736496); -emit_32(3275712496); -emit_32(1092008343); -emit_32(3276736496); -emit_32(3275456512); -emit_32(1091657206); -emit_32(3276736496); -emit_32(3275200528); -emit_32(1090624757); -emit_32(3276736496); -emit_32(3274944545); -emit_32(1091109598); -emit_32(3276736496); -emit_32(3274688496); -emit_32(1091299097); -emit_32(3276736496); -emit_32(3274432512); -emit_32(1091108078); -emit_32(3276736496); -emit_32(3274176528); -emit_32(1088708464); -emit_32(3276736496); -emit_32(3273920545); -emit_32(1088400979); -emit_32(3276736496); -emit_32(3273664496); -emit_32(1088671869); -emit_32(3276736496); -emit_32(3273408512); -emit_32(1086687543); -emit_32(3276736496); -emit_32(3273152528); -emit_32(1087251530); -emit_32(3276736496); -emit_32(3272896545); -emit_32(1088748687); -emit_32(3276736496); -emit_32(3272640496); -emit_32(1089984811); -emit_32(3276736496); -emit_32(3272384512); -emit_32(1091974946); -emit_32(3276736496); -emit_32(3272128528); -emit_32(1092819930); -emit_32(3276736496); -emit_32(3271872545); -emit_32(1093160927); -emit_32(3276736496); -emit_32(3271616496); -emit_32(1094132118); -emit_32(3276736496); -emit_32(3271163904); -emit_32(1095157206); -emit_32(3276736496); -emit_32(3270651937); -emit_32(1095618580); -emit_32(3276736496); -emit_32(3270139970); -emit_32(1096186069); -emit_32(3276736496); -emit_32(3269627871); -emit_32(1095671113); -emit_32(3276736496); -emit_32(3269115904); -emit_32(1095678348); -emit_32(3276736496); -emit_32(3268603937); -emit_32(1095989776); -emit_32(3276736496); -emit_32(3268091970); -emit_32(1095663878); -emit_32(3276736496); -emit_32(3267579911); -emit_32(1095691351); -emit_32(3276736496); -emit_32(3267067904); -emit_32(1096383306); -emit_32(3276736496); -emit_32(3266555911); -emit_32(1097384277); -emit_32(3276736496); -emit_32(3266043904); -emit_32(1099122606); -emit_32(3276736496); -emit_32(3265531911); -emit_32(1100558316); -emit_32(3276736496); -emit_32(3265019904); -emit_32(1101303015); -emit_32(3276736496); -emit_32(3264507911); -emit_32(1101081556); -emit_32(3276736496); -emit_32(3263995904); -emit_32(1100970826); -emit_32(3276736496); -emit_32(3263483911); -emit_32(1101242984); -emit_32(3276736496); -emit_32(3262775296); -emit_32(1102057728); -emit_32(3276736496); -emit_32(3261751309); -emit_32(1102727925); -emit_32(3276736496); -emit_32(3260727296); -emit_32(1102747638); -emit_32(3276736496); -emit_32(3259703309); -emit_32(1102584322); -emit_32(3276736496); -emit_32(3258679296); -emit_32(1102811234); -emit_32(3276736496); -emit_32(3257655309); -emit_32(1102829742); -emit_32(3276736496); -emit_32(3256631296); -emit_32(1103344278); -emit_32(3276736496); -emit_32(3255607309); -emit_32(1103685065); -emit_32(3276736496); -emit_32(3254386688); -emit_32(1103826413); -emit_32(3276736496); -emit_32(3252338714); -emit_32(1103104626); -emit_32(3276736496); -emit_32(3250290688); -emit_32(1102261571); -emit_32(3276736496); -emit_32(3248242714); -emit_32(1102829899); -emit_32(3276736496); -emit_32(3245998080); -emit_32(1103020530); -emit_32(3276736496); -emit_32(3241902132); -emit_32(1102258477); -emit_32(3276736496); -emit_32(3237609472); -emit_32(1101911084); -emit_32(3276736496); -emit_32(3229220864); -emit_32(1101090364); -emit_32(3276736496); -emit_32(0); -emit_32(1100301573); -emit_32(3276736496); -emit_32(1081737216); -emit_32(1100121322); -emit_32(3276736496); -emit_32(3279552512); -emit_32(1099773614); -emit_32(3276992545); -emit_32(3279296528); -emit_32(1099858287); -emit_32(3276992545); -emit_32(3279040545); -emit_32(1099688523); -emit_32(3276992545); -emit_32(3278784496); -emit_32(1099279211); -emit_32(3276992545); -emit_32(3278528512); -emit_32(1098814430); -emit_32(3276992545); -emit_32(3278272528); -emit_32(1099260651); -emit_32(3276992545); -emit_32(3278016545); -emit_32(1099269983); -emit_32(3276992545); -emit_32(3277760496); -emit_32(1097458201); -emit_32(3276992545); -emit_32(3277504512); -emit_32(1096491624); -emit_32(3276992545); -emit_32(3277248528); -emit_32(1094951371); -emit_32(3276992545); -emit_32(3276992545); -emit_32(1094228482); -emit_32(3276992545); -emit_32(3276736496); -emit_32(1094425929); -emit_32(3276992545); -emit_32(3276480512); -emit_32(1094168504); -emit_32(3276992545); -emit_32(3276224528); -emit_32(1094579965); -emit_32(3276992545); -emit_32(3275968545); -emit_32(1094436205); -emit_32(3276992545); -emit_32(3275712496); -emit_32(1093278787); -emit_32(3276992545); -emit_32(3275456512); -emit_32(1093351873); -emit_32(3276992545); -emit_32(3275200528); -emit_32(1092131865); -emit_32(3276992545); -emit_32(3274944545); -emit_32(1092250753); -emit_32(3276992545); -emit_32(3274688496); -emit_32(1092049888); -emit_32(3276992545); -emit_32(3274432512); -emit_32(1092031821); -emit_32(3276992545); -emit_32(3274176528); -emit_32(1090545517); -emit_32(3276992545); -emit_32(3273920545); -emit_32(1087815580); -emit_32(3276992545); -emit_32(3273664496); -emit_32(1088895152); -emit_32(3276992545); -emit_32(3273408512); -emit_32(1089520607); -emit_32(3276992545); -emit_32(3273152528); -emit_32(1091009407); -emit_32(3276992545); -emit_32(3272896545); -emit_32(1091156585); -emit_32(3276992545); -emit_32(3272640496); -emit_32(1092501331); -emit_32(3276992545); -emit_32(3272384512); -emit_32(1093577002); -emit_32(3276992545); -emit_32(3272128528); -emit_32(1094131384); -emit_32(3276992545); -emit_32(3271872545); -emit_32(1095441999); -emit_32(3276992545); -emit_32(3271616496); -emit_32(1096144126); -emit_32(3276992545); -emit_32(3271163904); -emit_32(1097375574); -emit_32(3276992545); -emit_32(3270651937); -emit_32(1097616746); -emit_32(3276992545); -emit_32(3270139970); -emit_32(1098727817); -emit_32(3276992545); -emit_32(3269627871); -emit_32(1098389442); -emit_32(3276992545); -emit_32(3269115904); -emit_32(1097181902); -emit_32(3276992545); -emit_32(3268603937); -emit_32(1097851522); -emit_32(3276992545); -emit_32(3268091970); -emit_32(1097817234); -emit_32(3276992545); -emit_32(3267579911); -emit_32(1098027054); -emit_32(3276992545); -emit_32(3267067904); -emit_32(1098025691); -emit_32(3276992545); -emit_32(3266555911); -emit_32(1099190816); -emit_32(3276992545); -emit_32(3266043904); -emit_32(1100082420); -emit_32(3276992545); -emit_32(3265531911); -emit_32(1100900257); -emit_32(3276992545); -emit_32(3265019904); -emit_32(1101488351); -emit_32(3276992545); -emit_32(3264507911); -emit_32(1101299188); -emit_32(3276992545); -emit_32(3263995904); -emit_32(1101555565); -emit_32(3276992545); -emit_32(3263483911); -emit_32(1101541671); -emit_32(3276992545); -emit_32(3262775296); -emit_32(1101907414); -emit_32(3276992545); -emit_32(3261751309); -emit_32(1102511446); -emit_32(3276992545); -emit_32(3260727296); -emit_32(1102908490); -emit_32(3276992545); -emit_32(3259703309); -emit_32(1102906130); -emit_32(3276992545); -emit_32(3258679296); -emit_32(1102873153); -emit_32(3276992545); -emit_32(3257655309); -emit_32(1103170057); -emit_32(3276992545); -emit_32(3256631296); -emit_32(1103437234); -emit_32(3276992545); -emit_32(3255607309); -emit_32(1103795952); -emit_32(3276992545); -emit_32(3254386688); -emit_32(1103493018); -emit_32(3276992545); -emit_32(3252338714); -emit_32(1102175378); -emit_32(3276992545); -emit_32(3250290688); -emit_32(1101859861); -emit_32(3276992545); -emit_32(3248242714); -emit_32(1102213756); -emit_32(3276992545); -emit_32(3245998080); -emit_32(1102152676); -emit_32(3276992545); -emit_32(3241902132); -emit_32(1101638559); -emit_32(3276992545); -emit_32(3237609472); -emit_32(1101182167); -emit_32(3276992545); -emit_32(3229220864); -emit_32(1100207830); -emit_32(3276992545); -emit_32(0); -emit_32(1099526308); -emit_32(3276992545); -emit_32(1081737216); -emit_32(1099020213); -emit_32(3276992545); -emit_32(3279552512); -emit_32(1099775187); -emit_32(3277248528); -emit_32(3279296528); -emit_32(1099528667); -emit_32(3277248528); -emit_32(3279040545); -emit_32(1099794376); -emit_32(3277248528); -emit_32(3278784496); -emit_32(1099371223); -emit_32(3277248528); -emit_32(3278528512); -emit_32(1097562220); -emit_32(3277248528); -emit_32(3278272528); -emit_32(1098308597); -emit_32(3277248528); -emit_32(3278016545); -emit_32(1097403885); -emit_32(3277248528); -emit_32(3277760496); -emit_32(1095946050); -emit_32(3277248528); -emit_32(3277504512); -emit_32(1094735364); -emit_32(3277248528); -emit_32(3277248528); -emit_32(1094678007); -emit_32(3277248528); -emit_32(3276992545); -emit_32(1095274332); -emit_32(3277248528); -emit_32(3276736496); -emit_32(1095321728); -emit_32(3277248528); -emit_32(3276480512); -emit_32(1095493170); -emit_32(3277248528); -emit_32(3276224528); -emit_32(1095747135); -emit_32(3277248528); -emit_32(3275968545); -emit_32(1095522216); -emit_32(3277248528); -emit_32(3275712496); -emit_32(1094690590); -emit_32(3277248528); -emit_32(3275456512); -emit_32(1094638056); -emit_32(3277248528); -emit_32(3275200528); -emit_32(1093416570); -emit_32(3277248528); -emit_32(3274944545); -emit_32(1092979314); -emit_32(3277248528); -emit_32(3274688496); -emit_32(1092811961); -emit_32(3277248528); -emit_32(3274432512); -emit_32(1093012554); -emit_32(3277248528); -emit_32(3274176528); -emit_32(1091374384); -emit_32(3277248528); -emit_32(3273920545); -emit_32(1089032851); -emit_32(3277248528); -emit_32(3273664496); -emit_32(1090993437); -emit_32(3277248528); -emit_32(3273408512); -emit_32(1092377368); -emit_32(3277248528); -emit_32(3273152528); -emit_32(1093095077); -emit_32(3277248528); -emit_32(3272896545); -emit_32(1093715519); -emit_32(3277248528); -emit_32(3272640496); -emit_32(1094921486); -emit_32(3277248528); -emit_32(3272384512); -emit_32(1096565129); -emit_32(3277248528); -emit_32(3272128528); -emit_32(1097767112); -emit_32(3277248528); -emit_32(3271872545); -emit_32(1098339005); -emit_32(3277248528); -emit_32(3271616496); -emit_32(1099085958); -emit_32(3277248528); -emit_32(3271163904); -emit_32(1099220281); -emit_32(3277248528); -emit_32(3270651937); -emit_32(1099411227); -emit_32(3277248528); -emit_32(3270139970); -emit_32(1099194958); -emit_32(3277248528); -emit_32(3269627871); -emit_32(1099275174); -emit_32(3277248528); -emit_32(3269115904); -emit_32(1099273968); -emit_32(3277248528); -emit_32(3268603937); -emit_32(1098980681); -emit_32(3277248528); -emit_32(3268091970); -emit_32(1098318243); -emit_32(3277248528); -emit_32(3267579911); -emit_32(1098900413); -emit_32(3277248528); -emit_32(3267067904); -emit_32(1099325086); -emit_32(3277248528); -emit_32(3266555911); -emit_32(1100242695); -emit_32(3277248528); -emit_32(3266043904); -emit_32(1101153383); -emit_32(3277248528); -emit_32(3265531911); -emit_32(1101448505); -emit_32(3277248528); -emit_32(3265019904); -emit_32(1101666976); -emit_32(3277248528); -emit_32(3264507911); -emit_32(1102125203); -emit_32(3277248528); -emit_32(3263995904); -emit_32(1102137996); -emit_32(3277248528); -emit_32(3263483911); -emit_32(1101933104); -emit_32(3277248528); -emit_32(3262775296); -emit_32(1102603669); -emit_32(3277248528); -emit_32(3261751309); -emit_32(1102617615); -emit_32(3277248528); -emit_32(3260727296); -emit_32(1103215355); -emit_32(3277248528); -emit_32(3259703309); -emit_32(1103071281); -emit_32(3277248528); -emit_32(3258679296); -emit_32(1102637957); -emit_32(3277248528); -emit_32(3257655309); -emit_32(1103331118); -emit_32(3277248528); -emit_32(3256631296); -emit_32(1104015943); -emit_32(3277248528); -emit_32(3255607309); -emit_32(1103436710); -emit_32(3277248528); -emit_32(3254386688); -emit_32(1102725618); -emit_32(3277248528); -emit_32(3252338714); -emit_32(1101979084); -emit_32(3277248528); -emit_32(3250290688); -emit_32(1101652401); -emit_32(3277248528); -emit_32(3248242714); -emit_32(1101690778); -emit_32(3277248528); -emit_32(3245998080); -emit_32(1101385643); -emit_32(3277248528); -emit_32(3241902132); -emit_32(1100831785); -emit_32(3277248528); -emit_32(3237609472); -emit_32(1100385721); -emit_32(3277248528); -emit_32(3229220864); -emit_32(1099248645); -emit_32(3277248528); -emit_32(0); -emit_32(1097731041); -emit_32(3277248528); -emit_32(1081737216); -emit_32(1097108292); -emit_32(3277248528); -emit_32(3279552512); -emit_32(1099513148); -emit_32(3277504512); -emit_32(3279296528); -emit_32(1099237687); -emit_32(3277504512); -emit_32(3279040545); -emit_32(1099823002); -emit_32(3277504512); -emit_32(3278784496); -emit_32(1099636094); -emit_32(3277504512); -emit_32(3278528512); -emit_32(1098146172); -emit_32(3277504512); -emit_32(3278272528); -emit_32(1096179673); -emit_32(3277504512); -emit_32(3278016545); -emit_32(1095619209); -emit_32(3277504512); -emit_32(3277760496); -emit_32(1095051510); -emit_32(3277504512); -emit_32(3277504512); -emit_32(1094914041); -emit_32(3277504512); -emit_32(3277248528); -emit_32(1095143680); -emit_32(3277504512); -emit_32(3276992545); -emit_32(1095686213); -emit_32(3277504512); -emit_32(3276736496); -emit_32(1096167719); -emit_32(3277504512); -emit_32(3276480512); -emit_32(1096217212); -emit_32(3277504512); -emit_32(3276224528); -emit_32(1095494009); -emit_32(3277504512); -emit_32(3275968545); -emit_32(1095282721); -emit_32(3277504512); -emit_32(3275712496); -emit_32(1094864024); -emit_32(3277504512); -emit_32(3275456512); -emit_32(1095079402); -emit_32(3277504512); -emit_32(3275200528); -emit_32(1093909506); -emit_32(3277504512); -emit_32(3274944545); -emit_32(1094085876); -emit_32(3277504512); -emit_32(3274688496); -emit_32(1093922193); -emit_32(3277504512); -emit_32(3274432512); -emit_32(1093002173); -emit_32(3277504512); -emit_32(3274176528); -emit_32(1091809376); -emit_32(3277504512); -emit_32(3273920545); -emit_32(1090895154); -emit_32(3277504512); -emit_32(3273664496); -emit_32(1092994938); -emit_32(3277504512); -emit_32(3273408512); -emit_32(1094548613); -emit_32(3277504512); -emit_32(3273152528); -emit_32(1095987783); -emit_32(3277504512); -emit_32(3272896545); -emit_32(1096416022); -emit_32(3277504512); -emit_32(3272640496); -emit_32(1097685323); -emit_32(3277504512); -emit_32(3272384512); -emit_32(1098440927); -emit_32(3277504512); -emit_32(3272128528); -emit_32(1099405512); -emit_32(3277504512); -emit_32(3271872545); -emit_32(1099913599); -emit_32(3277504512); -emit_32(3271616496); -emit_32(1099823422); -emit_32(3277504512); -emit_32(3271163904); -emit_32(1099863373); -emit_32(3277504512); -emit_32(3270651937); -emit_32(1099663042); -emit_32(3277504512); -emit_32(3270139970); -emit_32(1099637929); -emit_32(3277504512); -emit_32(3269627871); -emit_32(1099948936); -emit_32(3277504512); -emit_32(3269115904); -emit_32(1099967024); -emit_32(3277504512); -emit_32(3268603937); -emit_32(1099787770); -emit_32(3277504512); -emit_32(3268091970); -emit_32(1099629540); -emit_32(3277504512); -emit_32(3267579911); -emit_32(1099729889); -emit_32(3277504512); -emit_32(3267067904); -emit_32(1099959737); -emit_32(3277504512); -emit_32(3266555911); -emit_32(1100461585); -emit_32(3277504512); -emit_32(3266043904); -emit_32(1101443996); -emit_32(3277504512); -emit_32(3265531911); -emit_32(1102161904); -emit_32(3277504512); -emit_32(3265019904); -emit_32(1102642623); -emit_32(3277504512); -emit_32(3264507911); -emit_32(1102254703); -emit_32(3277504512); -emit_32(3263995904); -emit_32(1102207464); -emit_32(3277504512); -emit_32(3263483911); -emit_32(1101959424); -emit_32(3277504512); -emit_32(3262775296); -emit_32(1102549248); -emit_32(3277504512); -emit_32(3261751309); -emit_32(1103235488); -emit_32(3277504512); -emit_32(3260727296); -emit_32(1103408923); -emit_32(3277504512); -emit_32(3259703309); -emit_32(1103077258); -emit_32(3277504512); -emit_32(3258679296); -emit_32(1102537084); -emit_32(3277504512); -emit_32(3257655309); -emit_32(1103679455); -emit_32(3277504512); -emit_32(3256631296); -emit_32(1103709654); -emit_32(3277504512); -emit_32(3255607309); -emit_32(1102899891); -emit_32(3277504512); -emit_32(3254386688); -emit_32(1101944534); -emit_32(3277504512); -emit_32(3252338714); -emit_32(1101169793); -emit_32(3277504512); -emit_32(3250290688); -emit_32(1100964273); -emit_32(3277504512); -emit_32(3248242714); -emit_32(1101176085); -emit_32(3277504512); -emit_32(3245998080); -emit_32(1100580284); -emit_32(3277504512); -emit_32(3241902132); -emit_32(1099596143); -emit_32(3277504512); -emit_32(3237609472); -emit_32(1099177394); -emit_32(3277504512); -emit_32(3229220864); -emit_32(1098487274); -emit_32(3277504512); -emit_32(0); -emit_32(1096586625); -emit_32(3277504512); -emit_32(1081737216); -emit_32(1096047133); -emit_32(3277504512); -emit_32(3279552512); -emit_32(1099302751); -emit_32(3277760496); -emit_32(3279296528); -emit_32(1099310930); -emit_32(3277760496); -emit_32(3279040545); -emit_32(1099757833); -emit_32(3277760496); -emit_32(3278784496); -emit_32(1099826410); -emit_32(3277760496); -emit_32(3278528512); -emit_32(1098603771); -emit_32(3277760496); -emit_32(3278272528); -emit_32(1096803575); -emit_32(3277760496); -emit_32(3278016545); -emit_32(1095899388); -emit_32(3277760496); -emit_32(3277760496); -emit_32(1096413925); -emit_32(3277760496); -emit_32(3277504512); -emit_32(1096685925); -emit_32(3277760496); -emit_32(3277248528); -emit_32(1096488373); -emit_32(3277760496); -emit_32(3276992545); -emit_32(1096023854); -emit_32(3277760496); -emit_32(3276736496); -emit_32(1096726505); -emit_32(3277760496); -emit_32(3276480512); -emit_32(1097672845); -emit_32(3277760496); -emit_32(3276224528); -emit_32(1097630587); -emit_32(3277760496); -emit_32(3275968545); -emit_32(1097242300); -emit_32(3277760496); -emit_32(3275712496); -emit_32(1096015780); -emit_32(3277760496); -emit_32(3275456512); -emit_32(1095966707); -emit_32(3277760496); -emit_32(3275200528); -emit_32(1094654729); -emit_32(3277760496); -emit_32(3274944545); -emit_32(1094504258); -emit_32(3277760496); -emit_32(3274688496); -emit_32(1093927856); -emit_32(3277760496); -emit_32(3274432512); -emit_32(1092392111); -emit_32(3277760496); -emit_32(3274176528); -emit_32(1091411231); -emit_32(3277760496); -emit_32(3273920545); -emit_32(1093339290); -emit_32(3277760496); -emit_32(3273664496); -emit_32(1095670904); -emit_32(3277760496); -emit_32(3273408512); -emit_32(1096393163); -emit_32(3277760496); -emit_32(3273152528); -emit_32(1098248199); -emit_32(3277760496); -emit_32(3272896545); -emit_32(1099000342); -emit_32(3277760496); -emit_32(3272640496); -emit_32(1099390150); -emit_32(3277760496); -emit_32(3272384512); -emit_32(1099453117); -emit_32(3277760496); -emit_32(3272128528); -emit_32(1100216690); -emit_32(3277760496); -emit_32(3271872545); -emit_32(1100387294); -emit_32(3277760496); -emit_32(3271616496); -emit_32(1100623957); -emit_32(3277760496); -emit_32(3271163904); -emit_32(1100583063); -emit_32(3277760496); -emit_32(3270651937); -emit_32(1100270692); -emit_32(3277760496); -emit_32(3270139970); -emit_32(1100221199); -emit_32(3277760496); -emit_32(3269627871); -emit_32(1100837028); -emit_32(3277760496); -emit_32(3269115904); -emit_32(1100744648); -emit_32(3277760496); -emit_32(3268603937); -emit_32(1100729496); -emit_32(3277760496); -emit_32(3268091970); -emit_32(1100349650); -emit_32(3277760496); -emit_32(3267579911); -emit_32(1100277141); -emit_32(3277760496); -emit_32(3267067904); -emit_32(1100539180); -emit_32(3277760496); -emit_32(3266555911); -emit_32(1101285137); -emit_32(3277760496); -emit_32(3266043904); -emit_32(1101760404); -emit_32(3277760496); -emit_32(3265531911); -emit_32(1102151418); -emit_32(3277760496); -emit_32(3265019904); -emit_32(1102545368); -emit_32(3277760496); -emit_32(3264507911); -emit_32(1102327369); -emit_32(3277760496); -emit_32(3263995904); -emit_32(1102437312); -emit_32(3277760496); -emit_32(3263483911); -emit_32(1102836190); -emit_32(3277760496); -emit_32(3262775296); -emit_32(1103463449); -emit_32(3277760496); -emit_32(3261751309); -emit_32(1103612871); -emit_32(3277760496); -emit_32(3260727296); -emit_32(1103521907); -emit_32(3277760496); -emit_32(3259703309); -emit_32(1102694842); -emit_32(3277760496); -emit_32(3258679296); -emit_32(1102314104); -emit_32(3277760496); -emit_32(3257655309); -emit_32(1103092829); -emit_32(3277760496); -emit_32(3256631296); -emit_32(1102811392); -emit_32(3277760496); -emit_32(3255607309); -emit_32(1102399406); -emit_32(3277760496); -emit_32(3254386688); -emit_32(1101424807); -emit_32(3277760496); -emit_32(3252338714); -emit_32(1100416025); -emit_32(3277760496); -emit_32(3250290688); -emit_32(1099956172); -emit_32(3277760496); -emit_32(3248242714); -emit_32(1100071882); -emit_32(3277760496); -emit_32(3245998080); -emit_32(1099877633); -emit_32(3277760496); -emit_32(3241902132); -emit_32(1099019059); -emit_32(3277760496); -emit_32(3237609472); -emit_32(1098372560); -emit_32(3277760496); -emit_32(3229220864); -emit_32(1097025244); -emit_32(3277760496); -emit_32(0); -emit_32(1095913230); -emit_32(3277760496); -emit_32(1081737216); -emit_32(1095782787); -emit_32(3277760496); -emit_32(3279552512); -emit_32(1098903349); -emit_32(3278016545); -emit_32(3279296528); -emit_32(1099112225); -emit_32(3278016545); -emit_32(3279040545); -emit_32(1099559495); -emit_32(3278016545); -emit_32(3278784496); -emit_32(1099374422); -emit_32(3278016545); -emit_32(3278528512); -emit_32(1099044802); -emit_32(3278016545); -emit_32(3278272528); -emit_32(1099082498); -emit_32(3278016545); -emit_32(3278016545); -emit_32(1098243061); -emit_32(3278016545); -emit_32(3277760496); -emit_32(1097484626); -emit_32(3278016545); -emit_32(3277504512); -emit_32(1098172282); -emit_32(3278016545); -emit_32(3277248528); -emit_32(1097990039); -emit_32(3278016545); -emit_32(3276992545); -emit_32(1097473301); -emit_32(3278016545); -emit_32(3276736496); -emit_32(1098280600); -emit_32(3278016545); -emit_32(3276480512); -emit_32(1098467561); -emit_32(3278016545); -emit_32(3276224528); -emit_32(1098700449); -emit_32(3278016545); -emit_32(3275968545); -emit_32(1097813354); -emit_32(3278016545); -emit_32(3275712496); -emit_32(1097573020); -emit_32(3278016545); -emit_32(3275456512); -emit_32(1096889034); -emit_32(3278016545); -emit_32(3275200528); -emit_32(1095010930); -emit_32(3278016545); -emit_32(3274944545); -emit_32(1094741446); -emit_32(3278016545); -emit_32(3274688496); -emit_32(1093564105); -emit_32(3278016545); -emit_32(3274432512); -emit_32(1092621330); -emit_32(3278016545); -emit_32(3274176528); -emit_32(1092464757); -emit_32(3278016545); -emit_32(3273920545); -emit_32(1094580175); -emit_32(3278016545); -emit_32(3273664496); -emit_32(1096882219); -emit_32(3278016545); -emit_32(3273408512); -emit_32(1098358718); -emit_32(3278016545); -emit_32(3273152528); -emit_32(1099298662); -emit_32(3278016545); -emit_32(3272896545); -emit_32(1099922617); -emit_32(3278016545); -emit_32(3272640496); -emit_32(1100192521); -emit_32(3278016545); -emit_32(3272384512); -emit_32(1100137470); -emit_32(3278016545); -emit_32(3272128528); -emit_32(1101007893); -emit_32(3278016545); -emit_32(3271872545); -emit_32(1101168640); -emit_32(3278016545); -emit_32(3271616496); -emit_32(1100874252); -emit_32(3278016545); -emit_32(3271163904); -emit_32(1100904346); -emit_32(3278016545); -emit_32(3270651937); -emit_32(1100957142); -emit_32(3278016545); -emit_32(3270139970); -emit_32(1101183110); -emit_32(3278016545); -emit_32(3269627871); -emit_32(1101430574); -emit_32(3278016545); -emit_32(3269115904); -emit_32(1101303906); -emit_32(3278016545); -emit_32(3268603937); -emit_32(1101524317); -emit_32(3278016545); -emit_32(3268091970); -emit_32(1101223481); -emit_32(3278016545); -emit_32(3267579911); -emit_32(1100917768); -emit_32(3278016545); -emit_32(3267067904); -emit_32(1100967523); -emit_32(3278016545); -emit_32(3266555911); -emit_32(1101230506); -emit_32(3278016545); -emit_32(3266043904); -emit_32(1101743889); -emit_32(3278016545); -emit_32(3265531911); -emit_32(1102035865); -emit_32(3278016545); -emit_32(3265019904); -emit_32(1102327683); -emit_32(3278016545); -emit_32(3264507911); -emit_32(1102160803); -emit_32(3278016545); -emit_32(3263995904); -emit_32(1102422737); -emit_32(3278016545); -emit_32(3263483911); -emit_32(1102993582); -emit_32(3278016545); -emit_32(3262775296); -emit_32(1103413274); -emit_32(3278016545); -emit_32(3261751309); -emit_32(1103424966); -emit_32(3278016545); -emit_32(3260727296); -emit_32(1102892656); -emit_32(3278016545); -emit_32(3259703309); -emit_32(1102022495); -emit_32(3278016545); -emit_32(3258679296); -emit_32(1101852259); -emit_32(3278016545); -emit_32(3257655309); -emit_32(1102344408); -emit_32(3278016545); -emit_32(3256631296); -emit_32(1102317198); -emit_32(3278016545); -emit_32(3255607309); -emit_32(1101799883); -emit_32(3278016545); -emit_32(3254386688); -emit_32(1100918922); -emit_32(3278016545); -emit_32(3252338714); -emit_32(1099744779); -emit_32(3278016545); -emit_32(3250290688); -emit_32(1098585945); -emit_32(3278016545); -emit_32(3248242714); -emit_32(1098674235); -emit_32(3278016545); -emit_32(3245998080); -emit_32(1098530685); -emit_32(3278016545); -emit_32(3241902132); -emit_32(1097602066); -emit_32(3278016545); -emit_32(3237609472); -emit_32(1097146565); -emit_32(3278016545); -emit_32(3229220864); -emit_32(1096070935); -emit_32(3278016545); -emit_32(0); -emit_32(1094636379); -emit_32(3278016545); -emit_32(1081737216); -emit_32(1094685347); -emit_32(3278016545); -emit_32(3279552512); -emit_32(1098113142); -emit_32(3278272528); -emit_32(3279296528); -emit_32(1099020003); -emit_32(3278272528); -emit_32(3279040545); -emit_32(1099561016); -emit_32(3278272528); -emit_32(3278784496); -emit_32(1099848273); -emit_32(3278272528); -emit_32(3278528512); -emit_32(1100167460); -emit_32(3278272528); -emit_32(3278272528); -emit_32(1100256431); -emit_32(3278272528); -emit_32(3278016545); -emit_32(1099679872); -emit_32(3278272528); -emit_32(3277760496); -emit_32(1098851759); -emit_32(3278272528); -emit_32(3277504512); -emit_32(1098385562); -emit_32(3278272528); -emit_32(3277248528); -emit_32(1098603142); -emit_32(3278272528); -emit_32(3276992545); -emit_32(1098517158); -emit_32(3278272528); -emit_32(3276736496); -emit_32(1098595697); -emit_32(3278272528); -emit_32(3276480512); -emit_32(1097738591); -emit_32(3278272528); -emit_32(3276224528); -emit_32(1097722757); -emit_32(3278272528); -emit_32(3275968545); -emit_32(1097226886); -emit_32(3278272528); -emit_32(3275712496); -emit_32(1097415629); -emit_32(3278272528); -emit_32(3275456512); -emit_32(1096617873); -emit_32(3278272528); -emit_32(3275200528); -emit_32(1095510786); -emit_32(3278272528); -emit_32(3274944545); -emit_32(1095328858); -emit_32(3278272528); -emit_32(3274688496); -emit_32(1093740999); -emit_32(3278272528); -emit_32(3274432512); -emit_32(1092633598); -emit_32(3278272528); -emit_32(3274176528); -emit_32(1095320155); -emit_32(3278272528); -emit_32(3273920545); -emit_32(1096140771); -emit_32(3278272528); -emit_32(3273664496); -emit_32(1097600808); -emit_32(3278272528); -emit_32(3273408512); -emit_32(1098894960); -emit_32(3278272528); -emit_32(3273152528); -emit_32(1099788032); -emit_32(3278272528); -emit_32(3272896545); -emit_32(1100230112); -emit_32(3278272528); -emit_32(3272640496); -emit_32(1100219731); -emit_32(3278272528); -emit_32(3272384512); -emit_32(1100734897); -emit_32(3278272528); -emit_32(3272128528); -emit_32(1101173726); -emit_32(3278272528); -emit_32(3271872545); -emit_32(1101152072); -emit_32(3278272528); -emit_32(3271616496); -emit_32(1101550479); -emit_32(3278272528); -emit_32(3271163904); -emit_32(1101252736); -emit_32(3278272528); -emit_32(3270651937); -emit_32(1101467694); -emit_32(3278272528); -emit_32(3270139970); -emit_32(1101808009); -emit_32(3278272528); -emit_32(3269627871); -emit_32(1101705930); -emit_32(3278272528); -emit_32(3269115904); -emit_32(1102054110); -emit_32(3278272528); -emit_32(3268603937); -emit_32(1102131180); -emit_32(3278272528); -emit_32(3268091970); -emit_32(1101898868); -emit_32(3278272528); -emit_32(3267579911); -emit_32(1101280313); -emit_32(3278272528); -emit_32(3267067904); -emit_32(1100809188); -emit_32(3278272528); -emit_32(3266555911); -emit_32(1101005429); -emit_32(3278272528); -emit_32(3266043904); -emit_32(1101565631); -emit_32(3278272528); -emit_32(3265531911); -emit_32(1101958585); -emit_32(3278272528); -emit_32(3265019904); -emit_32(1102447903); -emit_32(3278272528); -emit_32(3264507911); -emit_32(1102259526); -emit_32(3278272528); -emit_32(3263995904); -emit_32(1102073456); -emit_32(3278272528); -emit_32(3263483911); -emit_32(1102367372); -emit_32(3278272528); -emit_32(3262775296); -emit_32(1102600104); -emit_32(3278272528); -emit_32(3261751309); -emit_32(1102289935); -emit_32(3278272528); -emit_32(3260727296); -emit_32(1101835692); -emit_32(3278272528); -emit_32(3259703309); -emit_32(1101049364); -emit_32(3278272528); -emit_32(3258679296); -emit_32(1100957929); -emit_32(3278272528); -emit_32(3257655309); -emit_32(1101280366); -emit_32(3278272528); -emit_32(3256631296); -emit_32(1101113432); -emit_32(3278272528); -emit_32(3255607309); -emit_32(1100449789); -emit_32(3278272528); -emit_32(3254386688); -emit_32(1099921726); -emit_32(3278272528); -emit_32(3252338714); -emit_32(1098223138); -emit_32(3278272528); -emit_32(3250290688); -emit_32(1095989776); -emit_32(3278272528); -emit_32(3248242714); -emit_32(1095913754); -emit_32(3278272528); -emit_32(3245998080); -emit_32(1096548981); -emit_32(3278272528); -emit_32(3241902132); -emit_32(1095493380); -emit_32(3278272528); -emit_32(3237609472); -emit_32(1095273074); -emit_32(3278272528); -emit_32(3229220864); -emit_32(1094758957); -emit_32(3278272528); -emit_32(0); -emit_32(1093715414); -emit_32(3278272528); -emit_32(1081737216); -emit_32(1093100529); -emit_32(3278272528); -emit_32(3279552512); -emit_32(1098580387); -emit_32(3278528512); -emit_32(3279296528); -emit_32(1099781479); -emit_32(3278528512); -emit_32(3279040545); -emit_32(1100398041); -emit_32(3278528512); -emit_32(3278784496); -emit_32(1100822715); -emit_32(3278528512); -emit_32(3278528512); -emit_32(1100898841); -emit_32(3278528512); -emit_32(3278272528); -emit_32(1100936538); -emit_32(3278528512); -emit_32(3278016545); -emit_32(1100571528); -emit_32(3278528512); -emit_32(3277760496); -emit_32(1099431674); -emit_32(3278528512); -emit_32(3277504512); -emit_32(1098338586); -emit_32(3278528512); -emit_32(3277248528); -emit_32(1098519046); -emit_32(3278528512); -emit_32(3276992545); -emit_32(1098311533); -emit_32(3278528512); -emit_32(3276736496); -emit_32(1097988991); -emit_32(3278528512); -emit_32(3276480512); -emit_32(1097511993); -emit_32(3278528512); -emit_32(3276224528); -emit_32(1097291373); -emit_32(3278528512); -emit_32(3275968545); -emit_32(1096949852); -emit_32(3278528512); -emit_32(3275712496); -emit_32(1096869007); -emit_32(3278528512); -emit_32(3275456512); -emit_32(1096154717); -emit_32(3278528512); -emit_32(3275200528); -emit_32(1096008126); -emit_32(3278528512); -emit_32(3274944545); -emit_32(1096113612); -emit_32(3278528512); -emit_32(3274688496); -emit_32(1094873986); -emit_32(3278528512); -emit_32(3274432512); -emit_32(1094166512); -emit_32(3278528512); -emit_32(3274176528); -emit_32(1095465592); -emit_32(3278528512); -emit_32(3273920545); -emit_32(1096875193); -emit_32(3278528512); -emit_32(3273664496); -emit_32(1098212128); -emit_32(3278528512); -emit_32(3273408512); -emit_32(1099232497); -emit_32(3278528512); -emit_32(3273152528); -emit_32(1099782003); -emit_32(3278528512); -emit_32(3272896545); -emit_32(1100205261); -emit_32(3278528512); -emit_32(3272640496); -emit_32(1100910690); -emit_32(3278528512); -emit_32(3272384512); -emit_32(1100846098); -emit_32(3278528512); -emit_32(3272128528); -emit_32(1101316856); -emit_32(3278528512); -emit_32(3271872545); -emit_32(1101188668); -emit_32(3278528512); -emit_32(3271616496); -emit_32(1101462451); -emit_32(3278528512); -emit_32(3271163904); -emit_32(1102020713); -emit_32(3278528512); -emit_32(3270651937); -emit_32(1101996543); -emit_32(3278528512); -emit_32(3270139970); -emit_32(1102033138); -emit_32(3278528512); -emit_32(3269627871); -emit_32(1102145231); -emit_32(3278528512); -emit_32(3269115904); -emit_32(1102204423); -emit_32(3278528512); -emit_32(3268603937); -emit_32(1102633396); -emit_32(3278528512); -emit_32(3268091970); -emit_32(1102830685); -emit_32(3278528512); -emit_32(3267579911); -emit_32(1102366271); -emit_32(3278528512); -emit_32(3267067904); -emit_32(1101693819); -emit_32(3278528512); -emit_32(3266555911); -emit_32(1100984300); -emit_32(3278528512); -emit_32(3266043904); -emit_32(1101757311); -emit_32(3278528512); -emit_32(3265531911); -emit_32(1102038486); -emit_32(3278528512); -emit_32(3265019904); -emit_32(1102416078); -emit_32(3278528512); -emit_32(3264507911); -emit_32(1102030360); -emit_32(3278528512); -emit_32(3263995904); -emit_32(1101690831); -emit_32(3278528512); -emit_32(3263483911); -emit_32(1101744256); -emit_32(3278528512); -emit_32(3262775296); -emit_32(1101786199); -emit_32(3278528512); -emit_32(3261751309); -emit_32(1101134142); -emit_32(3278528512); -emit_32(3260727296); -emit_32(1100560990); -emit_32(3278528512); -emit_32(3259703309); -emit_32(1099935148); -emit_32(3278528512); -emit_32(3258679296); -emit_32(1099979765); -emit_32(3278528512); -emit_32(3257655309); -emit_32(1100145597); -emit_32(3278528512); -emit_32(3256631296); -emit_32(1099694499); -emit_32(3278528512); -emit_32(3255607309); -emit_32(1099317589); -emit_32(3278528512); -emit_32(3254386688); -emit_32(1098312896); -emit_32(3278528512); -emit_32(3252338714); -emit_32(1096783967); -emit_32(3278528512); -emit_32(3250290688); -emit_32(1094909218); -emit_32(3278528512); -emit_32(3248242714); -emit_32(1094802158); -emit_32(3278528512); -emit_32(3245998080); -emit_32(1094635749); -emit_32(3278528512); -emit_32(3241902132); -emit_32(1093985423); -emit_32(3278528512); -emit_32(3237609472); -emit_32(1093684376); -emit_32(3278528512); -emit_32(3229220864); -emit_32(1092749885); -emit_32(3278528512); -emit_32(0); -emit_32(1092334471); -emit_32(3278528512); -emit_32(1081737216); -emit_32(1091412678); -emit_32(3278528512); -emit_32(3279552512); -emit_32(1099246495); -emit_32(3278784496); -emit_32(3279296528); -emit_32(1100406168); -emit_32(3278784496); -emit_32(3279040545); -emit_32(1100809188); -emit_32(3278784496); -emit_32(3278784496); -emit_32(1101173726); -emit_32(3278784496); -emit_32(3278528512); -emit_32(1101440798); -emit_32(3278784496); -emit_32(3278272528); -emit_32(1101323148); -emit_32(3278784496); -emit_32(3278016545); -emit_32(1100602724); -emit_32(3278784496); -emit_32(3277760496); -emit_32(1099957325); -emit_32(3278784496); -emit_32(3277504512); -emit_32(1099164077); -emit_32(3278784496); -emit_32(3277248528); -emit_32(1098681680); -emit_32(3278784496); -emit_32(3276992545); -emit_32(1098343724); -emit_32(3278784496); -emit_32(3276736496); -emit_32(1097173198); -emit_32(3278784496); -emit_32(3276480512); -emit_32(1097496684); -emit_32(3278784496); -emit_32(3276224528); -emit_32(1096577607); -emit_32(3278784496); -emit_32(3275968545); -emit_32(1096202217); -emit_32(3278784496); -emit_32(3275712496); -emit_32(1095980968); -emit_32(3278784496); -emit_32(3275456512); -emit_32(1095241407); -emit_32(3278784496); -emit_32(3275200528); -emit_32(1095384223); -emit_32(3278784496); -emit_32(3274944545); -emit_32(1095777649); -emit_32(3278784496); -emit_32(3274688496); -emit_32(1095404356); -emit_32(3278784496); -emit_32(3274432512); -emit_32(1096055626); -emit_32(3278784496); -emit_32(3274176528); -emit_32(1096762996); -emit_32(3278784496); -emit_32(3273920545); -emit_32(1097732404); -emit_32(3278784496); -emit_32(3273664496); -emit_32(1099124913); -emit_32(3278784496); -emit_32(3273408512); -emit_32(1099487615); -emit_32(3278784496); -emit_32(3273152528); -emit_32(1099905263); -emit_32(3278784496); -emit_32(3272896545); -emit_32(1100576090); -emit_32(3278784496); -emit_32(3272640496); -emit_32(1101366716); -emit_32(3278784496); -emit_32(3272384512); -emit_32(1100955150); -emit_32(3278784496); -emit_32(3272128528); -emit_32(1101465911); -emit_32(3278784496); -emit_32(3271872545); -emit_32(1101897872); -emit_32(3278784496); -emit_32(3271616496); -emit_32(1101968074); -emit_32(3278784496); -emit_32(3271163904); -emit_32(1102322545); -emit_32(3278784496); -emit_32(3270651937); -emit_32(1102468507); -emit_32(3278784496); -emit_32(3270139970); -emit_32(1102636699); -emit_32(3278784496); -emit_32(3269627871); -emit_32(1102593812); -emit_32(3278784496); -emit_32(3269115904); -emit_32(1102955781); -emit_32(3278784496); -emit_32(3268603937); -emit_32(1103423183); -emit_32(3278784496); -emit_32(3268091970); -emit_32(1103413484); -emit_32(3278784496); -emit_32(3267579911); -emit_32(1103118467); -emit_32(3278784496); -emit_32(3267067904); -emit_32(1102692536); -emit_32(3278784496); -emit_32(3266555911); -emit_32(1101705878); -emit_32(3278784496); -emit_32(3266043904); -emit_32(1101340082); -emit_32(3278784496); -emit_32(3265531911); -emit_32(1102200596); -emit_32(3278784496); -emit_32(3265019904); -emit_32(1102209457); -emit_32(3278784496); -emit_32(3264507911); -emit_32(1101833280); -emit_32(3278784496); -emit_32(3263995904); -emit_32(1101273812); -emit_32(3278784496); -emit_32(3263483911); -emit_32(1101051042); -emit_32(3278784496); -emit_32(3262775296); -emit_32(1100997722); -emit_32(3278784496); -emit_32(3261751309); -emit_32(1100555118); -emit_32(3278784496); -emit_32(3260727296); -emit_32(1099388420); -emit_32(3278784496); -emit_32(3259703309); -emit_32(1098921070); -emit_32(3278784496); -emit_32(3258679296); -emit_32(1098291295); -emit_32(3278784496); -emit_32(3257655309); -emit_32(1097914751); -emit_32(3278784496); -emit_32(3256631296); -emit_32(1098783811); -emit_32(3278784496); -emit_32(3255607309); -emit_32(1097200986); -emit_32(3278784496); -emit_32(3254386688); -emit_32(1095754580); -emit_32(3278784496); -emit_32(3252338714); -emit_32(1094603034); -emit_32(3278784496); -emit_32(3250290688); -emit_32(1092756596); -emit_32(3278784496); -emit_32(3248242714); -emit_32(1093057118); -emit_32(3278784496); -emit_32(3245998080); -emit_32(1093385742); -emit_32(3278784496); -emit_32(3241902132); -emit_32(1092478325); -emit_32(3278784496); -emit_32(3237609472); -emit_32(1091460850); -emit_32(3278784496); -emit_32(3229220864); -emit_32(1090737647); -emit_32(3278784496); -emit_32(0); -emit_32(1090290346); -emit_32(3278784496); -emit_32(1081737216); -emit_32(1090509120); -emit_32(3278784496); -emit_32(3279552512); -emit_32(1099149345); -emit_32(3279040545); -emit_32(3279296528); -emit_32(1100408318); -emit_32(3279040545); -emit_32(3279040545); -emit_32(1100800170); -emit_32(3279040545); -emit_32(3278784496); -emit_32(1101432986); -emit_32(3279040545); -emit_32(3278528512); -emit_32(1101564058); -emit_32(3279040545); -emit_32(3278272528); -emit_32(1101179755); -emit_32(3279040545); -emit_32(3278016545); -emit_32(1100480145); -emit_32(3279040545); -emit_32(3277760496); -emit_32(1099858759); -emit_32(3279040545); -emit_32(3277504512); -emit_32(1099623354); -emit_32(3279040545); -emit_32(3277248528); -emit_32(1098996934); -emit_32(3279040545); -emit_32(3276992545); -emit_32(1098237818); -emit_32(3279040545); -emit_32(3276736496); -emit_32(1097341285); -emit_32(3279040545); -emit_32(3276480512); -emit_32(1096845414); -emit_32(3279040545); -emit_32(3276224528); -emit_32(1095838571); -emit_32(3279040545); -emit_32(3275968545); -emit_32(1095836998); -emit_32(3279040545); -emit_32(3275712496); -emit_32(1095004114); -emit_32(3279040545); -emit_32(3275456512); -emit_32(1094881011); -emit_32(3279040545); -emit_32(3275200528); -emit_32(1094801529); -emit_32(3279040545); -emit_32(3274944545); -emit_32(1093872281); -emit_32(3279040545); -emit_32(3274688496); -emit_32(1094479197); -emit_32(3279040545); -emit_32(3274432512); -emit_32(1096306341); -emit_32(3279040545); -emit_32(3274176528); -emit_32(1096403334); -emit_32(3279040545); -emit_32(3273920545); -emit_32(1097374315); -emit_32(3279040545); -emit_32(3273664496); -emit_32(1098966788); -emit_32(3279040545); -emit_32(3273408512); -emit_32(1099462921); -emit_32(3279040545); -emit_32(3273152528); -emit_32(1099984903); -emit_32(3279040545); -emit_32(3272896545); -emit_32(1101000973); -emit_32(3279040545); -emit_32(3272640496); -emit_32(1101297982); -emit_32(3279040545); -emit_32(3272384512); -emit_32(1101298506); -emit_32(3279040545); -emit_32(3272128528); -emit_32(1101350044); -emit_32(3279040545); -emit_32(3271872545); -emit_32(1102416393); -emit_32(3279040545); -emit_32(3271616496); -emit_32(1102828588); -emit_32(3279040545); -emit_32(3271163904); -emit_32(1103097810); -emit_32(3279040545); -emit_32(3270651937); -emit_32(1103270825); -emit_32(3279040545); -emit_32(3270139970); -emit_32(1103513256); -emit_32(3279040545); -emit_32(3269627871); -emit_32(1103154119); -emit_32(3279040545); -emit_32(3269115904); -emit_32(1103932214); -emit_32(3279040545); -emit_32(3268603937); -emit_32(1103727532); -emit_32(3279040545); -emit_32(3268091970); -emit_32(1103627393); -emit_32(3279040545); -emit_32(3267579911); -emit_32(1103400272); -emit_32(3279040545); -emit_32(3267067904); -emit_32(1103403365); -emit_32(3279040545); -emit_32(3266555911); -emit_32(1102403496); -emit_32(3279040545); -emit_32(3266043904); -emit_32(1101353556); -emit_32(3279040545); -emit_32(3265531911); -emit_32(1101619213); -emit_32(3279040545); -emit_32(3265019904); -emit_32(1102006295); -emit_32(3279040545); -emit_32(3264507911); -emit_32(1101503503); -emit_32(3279040545); -emit_32(3263995904); -emit_32(1100538131); -emit_32(3279040545); -emit_32(3263483911); -emit_32(1100080271); -emit_32(3279040545); -emit_32(3262775296); -emit_32(1099418881); -emit_32(3279040545); -emit_32(3261751309); -emit_32(1099399430); -emit_32(3279040545); -emit_32(3260727296); -emit_32(1099101215); -emit_32(3279040545); -emit_32(3259703309); -emit_32(1097408394); -emit_32(3279040545); -emit_32(3258679296); -emit_32(1096341468); -emit_32(3279040545); -emit_32(3257655309); -emit_32(1095779641); -emit_32(3279040545); -emit_32(3256631296); -emit_32(1094671296); -emit_32(3279040545); -emit_32(3255607309); -emit_32(1094154977); -emit_32(3279040545); -emit_32(3254386688); -emit_32(1092748732); -emit_32(3279040545); -emit_32(3252338714); -emit_32(1091621345); -emit_32(3279040545); -emit_32(3250290688); -emit_32(1090704869); -emit_32(3279040545); -emit_32(3248242714); -emit_32(1090960134); -emit_32(3279040545); -emit_32(3245998080); -emit_32(1090657442); -emit_32(3279040545); -emit_32(3241902132); -emit_32(1089905497); -emit_32(3279040545); -emit_32(3237609472); -emit_32(1088557112); -emit_32(3279040545); -emit_32(3229220864); -emit_32(1086833925); -emit_32(3279040545); -emit_32(0); -emit_32(1087077467); -emit_32(3279040545); -emit_32(1081737216); -emit_32(1087170664); -emit_32(3279040545); -emit_32(3279552512); -emit_32(1099250847); -emit_32(3279296528); -emit_32(3279296528); -emit_32(1099782632); -emit_32(3279296528); -emit_32(3279040545); -emit_32(1100353372); -emit_32(3279296528); -emit_32(3278784496); -emit_32(1101212785); -emit_32(3279296528); -emit_32(3278528512); -emit_32(1101165494); -emit_32(3279296528); -emit_32(3278272528); -emit_32(1101113957); -emit_32(3279296528); -emit_32(3278016545); -emit_32(1100762736); -emit_32(3279296528); -emit_32(3277760496); -emit_32(1099820381); -emit_32(3279296528); -emit_32(3277504512); -emit_32(1099259340); -emit_32(3279296528); -emit_32(3277248528); -emit_32(1098864027); -emit_32(3279296528); -emit_32(3276992545); -emit_32(1097692558); -emit_32(3279296528); -emit_32(3276736496); -emit_32(1097396755); -emit_32(3279296528); -emit_32(3276480512); -emit_32(1096710776); -emit_32(3279296528); -emit_32(3276224528); -emit_32(1095208586); -emit_32(3279296528); -emit_32(3275968545); -emit_32(1094436625); -emit_32(3279296528); -emit_32(3275712496); -emit_32(1094237605); -emit_32(3279296528); -emit_32(3275456512); -emit_32(1093631948); -emit_32(3279296528); -emit_32(3275200528); -emit_32(1093328699); -emit_32(3279296528); -emit_32(3274944545); -emit_32(1093335096); -emit_32(3279296528); -emit_32(3274688496); -emit_32(1093281199); -emit_32(3279296528); -emit_32(3274432512); -emit_32(1094777307); -emit_32(3279296528); -emit_32(3274176528); -emit_32(1095041653); -emit_32(3279296528); -emit_32(3273920545); -emit_32(1096648281); -emit_32(3279296528); -emit_32(3273664496); -emit_32(1098228380); -emit_32(3279296528); -emit_32(3273408512); -emit_32(1099209114); -emit_32(3279296528); -emit_32(3273152528); -emit_32(1099931582); -emit_32(3279296528); -emit_32(3272896545); -emit_32(1100442291); -emit_32(3279296528); -emit_32(3272640496); -emit_32(1100819359); -emit_32(3279296528); -emit_32(3272384512); -emit_32(1101023045); -emit_32(3279296528); -emit_32(3272128528); -emit_32(1101474877); -emit_32(3279296528); -emit_32(3271872545); -emit_32(1102424624); -emit_32(3279296528); -emit_32(3271616496); -emit_32(1103221962); -emit_32(3279296528); -emit_32(3271163904); -emit_32(1103274757); -emit_32(3279296528); -emit_32(3270651937); -emit_32(1103895200); -emit_32(3279296528); -emit_32(3270139970); -emit_32(1104182824); -emit_32(3279296528); -emit_32(3269627871); -emit_32(1104099462); -emit_32(3279296528); -emit_32(3269115904); -emit_32(1103825102); -emit_32(3279296528); -emit_32(3268603937); -emit_32(1104155037); -emit_32(3279296528); -emit_32(3268091970); -emit_32(1104133122); -emit_32(3279296528); -emit_32(3267579911); -emit_32(1103855721); -emit_32(3279296528); -emit_32(3267067904); -emit_32(1103437391); -emit_32(3279296528); -emit_32(3266555911); -emit_32(1102382472); -emit_32(3279296528); -emit_32(3266043904); -emit_32(1101496425); -emit_32(3279296528); -emit_32(3265531911); -emit_32(1101309673); -emit_32(3279296528); -emit_32(3265019904); -emit_32(1101136973); -emit_32(3279296528); -emit_32(3264507911); -emit_32(1100555957); -emit_32(3279296528); -emit_32(3263995904); -emit_32(1099877161); -emit_32(3279296528); -emit_32(3263483911); -emit_32(1099240414); -emit_32(3279296528); -emit_32(3262775296); -emit_32(1098818938); -emit_32(3279296528); -emit_32(3261751309); -emit_32(1097030487); -emit_32(3279296528); -emit_32(3260727296); -emit_32(1096386557); -emit_32(3279296528); -emit_32(3259703309); -emit_32(1095308516); -emit_32(3279296528); -emit_32(3258679296); -emit_32(1093918733); -emit_32(3279296528); -emit_32(3257655309); -emit_32(1093062885); -emit_32(3279296528); -emit_32(3256631296); -emit_32(1092790780); -emit_32(3279296528); -emit_32(3255607309); -emit_32(1091773189); -emit_32(3279296528); -emit_32(3254386688); -emit_32(1089177744); -emit_32(3279296528); -emit_32(3252338714); -emit_32(1085799588); -emit_32(3279296528); -emit_32(3250290688); -emit_32(1085098154); -emit_32(3279296528); -emit_32(3248242714); -emit_32(1086394194); -emit_32(3279296528); -emit_32(3245998080); -emit_32(1086183912); -emit_32(3279296528); -emit_32(3241902132); -emit_32(1084926145); -emit_32(3279296528); -emit_32(3237609472); -emit_32(1085235454); -emit_32(3279296528); -emit_32(3229220864); -emit_32(1084071682); -emit_32(3279296528); -emit_32(0); -emit_32(1084345968); -emit_32(3279296528); -emit_32(1081737216); -emit_32(1086522393); -emit_32(3279296528); -emit_32(3279552512); -emit_32(1099558709); -emit_32(3279552512); -emit_32(3279296528); -emit_32(1099939394); -emit_32(3279552512); -emit_32(3279040545); -emit_32(1100668731); -emit_32(3279552512); -emit_32(3278784496); -emit_32(1100652321); -emit_32(3279552512); -emit_32(3278528512); -emit_32(1101087375); -emit_32(3279552512); -emit_32(3278272528); -emit_32(1100952319); -emit_32(3279552512); -emit_32(3278016545); -emit_32(1100463787); -emit_32(3279552512); -emit_32(3277760496); -emit_32(1099835428); -emit_32(3279552512); -emit_32(3277504512); -emit_32(1098509084); -emit_32(3279552512); -emit_32(3277248528); -emit_32(1097497838); -emit_32(3279552512); -emit_32(3276992545); -emit_32(1095815817); -emit_32(3279552512); -emit_32(3276736496); -emit_32(1096394106); -emit_32(3279552512); -emit_32(3276480512); -emit_32(1095914488); -emit_32(3279552512); -emit_32(3276224528); -emit_32(1094719216); -emit_32(3279552512); -emit_32(3275968545); -emit_32(1093850681); -emit_32(3279552512); -emit_32(3275712496); -emit_32(1093377773); -emit_32(3279552512); -emit_32(3275456512); -emit_32(1092882845); -emit_32(3279552512); -emit_32(3275200528); -emit_32(1092368613); -emit_32(3279552512); -emit_32(3274944545); -emit_32(1091574149); -emit_32(3279552512); -emit_32(3274688496); -emit_32(1092064893); -emit_32(3279552512); -emit_32(3274432512); -emit_32(1093456206); -emit_32(3279552512); -emit_32(3274176528); -emit_32(1095174193); -emit_32(3279552512); -emit_32(3273920545); -emit_32(1096573098); -emit_32(3279552512); -emit_32(3273664496); -emit_32(1096908852); -emit_32(3279552512); -emit_32(3273408512); -emit_32(1098744804); -emit_32(3279552512); -emit_32(3273152528); -emit_32(1099535483); -emit_32(3279552512); -emit_32(3272896545); -emit_32(1099936825); -emit_32(3279552512); -emit_32(3272640496); -emit_32(1100672506); -emit_32(3279552512); -emit_32(3272384512); -emit_32(1101166805); -emit_32(3279552512); -emit_32(3272128528); -emit_32(1102004250); -emit_32(3279552512); -emit_32(3271872545); -emit_32(1102491838); -emit_32(3279552512); -emit_32(3271616496); -emit_32(1103105779); -emit_32(3279552512); -emit_32(3271163904); -emit_32(1103782950); -emit_32(3279552512); -emit_32(3270651937); -emit_32(1104304878); -emit_32(3279552512); -emit_32(3270139970); -emit_32(1104909802); -emit_32(3279552512); -emit_32(3269627871); -emit_32(1104927680); -emit_32(3279552512); -emit_32(3269115904); -emit_32(1104823452); -emit_32(3279552512); -emit_32(3268603937); -emit_32(1104924063); -emit_32(3279552512); -emit_32(3268091970); -emit_32(1105080143); -emit_32(3279552512); -emit_32(3267579911); -emit_32(1104516533); -emit_32(3279552512); -emit_32(3267067904); -emit_32(1103348315); -emit_32(3279552512); -emit_32(3266555911); -emit_32(1102478049); -emit_32(3279552512); -emit_32(3266043904); -emit_32(1101882406); -emit_32(3279552512); -emit_32(3265531911); -emit_32(1100937324); -emit_32(3279552512); -emit_32(3265019904); -emit_32(1100262828); -emit_32(3279552512); -emit_32(3264507911); -emit_32(1099805963); -emit_32(3279552512); -emit_32(3263995904); -emit_32(1098412301); -emit_32(3279552512); -emit_32(3263483911); -emit_32(1097524052); -emit_32(3279552512); -emit_32(3262775296); -emit_32(1096845309); -emit_32(3279552512); -emit_32(3261751309); -emit_32(1094863186); -emit_32(3279552512); -emit_32(3260727296); -emit_32(1092933596); -emit_32(3279552512); -emit_32(3259703309); -emit_32(1092280658); -emit_32(3279552512); -emit_32(3258679296); -emit_32(1090650752); -emit_32(3279552512); -emit_32(3257655309); -emit_32(1090797762); -emit_32(3279552512); -emit_32(3256631296); -emit_32(1090478271); -emit_32(3279552512); -emit_32(3255607309); -emit_32(1089328172); -emit_32(3279552512); -emit_32(3254386688); -emit_32(1087017593); -emit_32(3279552512); -emit_32(3252338714); -emit_32(1083442180); -emit_32(3279552512); -emit_32(3250290688); -emit_32(1081443237); -emit_32(3279552512); -emit_32(3248242714); -emit_32(1082646268); -emit_32(3279552512); -emit_32(3245998080); -emit_32(1081291445); -emit_32(3279552512); -emit_32(3241902132); -emit_32(1081059249); -emit_32(3279552512); -emit_32(3237609472); -emit_32(1081285406); -emit_32(3279552512); -emit_32(3229220864); -emit_32(1081938249); -emit_32(3279552512); -emit_32(0); -emit_32(1085708656); -emit_32(3279552512); -emit_32(1081737216); -emit_32(1086994839); -emit_32(3279552512); -emit_start(LandscapeVtxCount) -emit_32(2048); -emit_32(1980); -emit_32(2048); -emit_32(2112); -emit_32(2244); -emit_32(2310); -emit_32(2240); -emit_32(2178); -emit_start(LandscapeIdx) -emit_32(Landscape01Idx); -emit_32(Landscape02Idx); -emit_32(Landscape03Idx); -emit_32(Landscape04Idx); -emit_32(Landscape05Idx); -emit_32(Landscape06Idx); -emit_32(Landscape07Idx); -emit_32(Landscape08Idx); -emit_start(Landscape01Idx) -emit_16(0); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(2); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(4); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(6); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(8); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(10); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(12); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(14); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(16); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(18); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(20); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(22); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(24); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(26); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(28); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(30); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(32); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(34); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(36); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(38); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(40); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(42); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(44); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(46); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(48); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(50); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(52); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(54); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(56); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(58); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(60); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(62); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(64); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(66); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(68); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(70); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(72); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(74); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(76); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(78); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(80); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(82); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(84); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(86); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(88); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(90); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(92); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(94); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(96); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(98); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(100); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(102); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(104); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(106); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(108); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(110); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(112); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(114); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(116); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(118); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(120); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(122); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(124); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(126); -emit_16(127); -emit_16(126); -emit_16(125); -emit_16(128); -emit_16(0); -emit_16(129); -emit_16(2); -emit_16(129); -emit_16(0); -emit_16(129); -emit_16(2); -emit_16(130); -emit_16(4); -emit_16(130); -emit_16(2); -emit_16(130); -emit_16(4); -emit_16(131); -emit_16(6); -emit_16(131); -emit_16(4); -emit_16(131); -emit_16(6); -emit_16(132); -emit_16(8); -emit_16(132); -emit_16(6); -emit_16(132); -emit_16(8); -emit_16(133); -emit_16(10); -emit_16(133); -emit_16(8); -emit_16(133); -emit_16(10); -emit_16(134); -emit_16(12); -emit_16(134); -emit_16(10); -emit_16(134); -emit_16(12); -emit_16(135); -emit_16(14); -emit_16(135); -emit_16(12); -emit_16(135); -emit_16(14); -emit_16(136); -emit_16(16); -emit_16(136); -emit_16(14); -emit_16(136); -emit_16(16); -emit_16(137); -emit_16(18); -emit_16(137); -emit_16(16); -emit_16(137); -emit_16(18); -emit_16(138); -emit_16(20); -emit_16(138); -emit_16(18); -emit_16(138); -emit_16(20); -emit_16(139); -emit_16(22); -emit_16(139); -emit_16(20); -emit_16(139); -emit_16(22); -emit_16(140); -emit_16(24); -emit_16(140); -emit_16(22); -emit_16(140); -emit_16(24); -emit_16(141); -emit_16(26); -emit_16(141); -emit_16(24); -emit_16(141); -emit_16(26); -emit_16(142); -emit_16(28); -emit_16(142); -emit_16(26); -emit_16(142); -emit_16(28); -emit_16(143); -emit_16(30); -emit_16(143); -emit_16(28); -emit_16(143); -emit_16(30); -emit_16(144); -emit_16(32); -emit_16(144); -emit_16(30); -emit_16(144); -emit_16(32); -emit_16(145); -emit_16(34); -emit_16(145); -emit_16(32); -emit_16(145); -emit_16(34); -emit_16(146); -emit_16(36); -emit_16(146); -emit_16(34); -emit_16(146); -emit_16(36); -emit_16(147); -emit_16(38); -emit_16(147); -emit_16(36); -emit_16(147); -emit_16(38); -emit_16(148); -emit_16(40); -emit_16(148); -emit_16(38); -emit_16(148); -emit_16(40); -emit_16(149); -emit_16(42); -emit_16(149); -emit_16(40); -emit_16(149); -emit_16(42); -emit_16(150); -emit_16(44); -emit_16(150); -emit_16(42); -emit_16(150); -emit_16(44); -emit_16(151); -emit_16(46); -emit_16(151); -emit_16(44); -emit_16(151); -emit_16(46); -emit_16(152); -emit_16(48); -emit_16(152); -emit_16(46); -emit_16(152); -emit_16(48); -emit_16(153); -emit_16(50); -emit_16(153); -emit_16(48); -emit_16(153); -emit_16(50); -emit_16(154); -emit_16(52); -emit_16(154); -emit_16(50); -emit_16(154); -emit_16(52); -emit_16(155); -emit_16(54); -emit_16(155); -emit_16(52); -emit_16(155); -emit_16(54); -emit_16(156); -emit_16(56); -emit_16(156); -emit_16(54); -emit_16(156); -emit_16(56); -emit_16(157); -emit_16(58); -emit_16(157); -emit_16(56); -emit_16(157); -emit_16(58); -emit_16(158); -emit_16(60); -emit_16(158); -emit_16(58); -emit_16(158); -emit_16(60); -emit_16(159); -emit_16(62); -emit_16(159); -emit_16(60); -emit_16(159); -emit_16(62); -emit_16(160); -emit_16(64); -emit_16(160); -emit_16(62); -emit_16(160); -emit_16(64); -emit_16(161); -emit_16(66); -emit_16(161); -emit_16(64); -emit_16(161); -emit_16(66); -emit_16(162); -emit_16(68); -emit_16(162); -emit_16(66); -emit_16(162); -emit_16(68); -emit_16(163); -emit_16(70); -emit_16(163); -emit_16(68); -emit_16(163); -emit_16(70); -emit_16(164); -emit_16(72); -emit_16(164); -emit_16(70); -emit_16(164); -emit_16(72); -emit_16(165); -emit_16(74); -emit_16(165); -emit_16(72); -emit_16(165); -emit_16(74); -emit_16(166); -emit_16(76); -emit_16(166); -emit_16(74); -emit_16(166); -emit_16(76); -emit_16(167); -emit_16(78); -emit_16(167); -emit_16(76); -emit_16(167); -emit_16(78); -emit_16(168); -emit_16(80); -emit_16(168); -emit_16(78); -emit_16(168); -emit_16(80); -emit_16(169); -emit_16(82); -emit_16(169); -emit_16(80); -emit_16(169); -emit_16(82); -emit_16(170); -emit_16(84); -emit_16(170); -emit_16(82); -emit_16(170); -emit_16(84); -emit_16(171); -emit_16(86); -emit_16(171); -emit_16(84); -emit_16(171); -emit_16(86); -emit_16(172); -emit_16(88); -emit_16(172); -emit_16(86); -emit_16(172); -emit_16(88); -emit_16(173); -emit_16(90); -emit_16(173); -emit_16(88); -emit_16(173); -emit_16(90); -emit_16(174); -emit_16(92); -emit_16(174); -emit_16(90); -emit_16(174); -emit_16(92); -emit_16(175); -emit_16(94); -emit_16(175); -emit_16(92); -emit_16(175); -emit_16(94); -emit_16(176); -emit_16(96); -emit_16(176); -emit_16(94); -emit_16(176); -emit_16(96); -emit_16(177); -emit_16(98); -emit_16(177); -emit_16(96); -emit_16(177); -emit_16(98); -emit_16(178); -emit_16(100); -emit_16(178); -emit_16(98); -emit_16(178); -emit_16(100); -emit_16(179); -emit_16(102); -emit_16(179); -emit_16(100); -emit_16(179); -emit_16(102); -emit_16(180); -emit_16(104); -emit_16(180); -emit_16(102); -emit_16(180); -emit_16(104); -emit_16(181); -emit_16(106); -emit_16(181); -emit_16(104); -emit_16(181); -emit_16(106); -emit_16(182); -emit_16(108); -emit_16(182); -emit_16(106); -emit_16(182); -emit_16(108); -emit_16(183); -emit_16(110); -emit_16(183); -emit_16(108); -emit_16(183); -emit_16(110); -emit_16(184); -emit_16(112); -emit_16(184); -emit_16(110); -emit_16(184); -emit_16(112); -emit_16(185); -emit_16(114); -emit_16(185); -emit_16(112); -emit_16(185); -emit_16(114); -emit_16(186); -emit_16(116); -emit_16(186); -emit_16(114); -emit_16(186); -emit_16(116); -emit_16(187); -emit_16(118); -emit_16(187); -emit_16(116); -emit_16(187); -emit_16(118); -emit_16(188); -emit_16(120); -emit_16(188); -emit_16(118); -emit_16(188); -emit_16(120); -emit_16(189); -emit_16(122); -emit_16(189); -emit_16(120); -emit_16(189); -emit_16(122); -emit_16(190); -emit_16(124); -emit_16(190); -emit_16(122); -emit_16(190); -emit_16(124); -emit_16(191); -emit_16(126); -emit_16(191); -emit_16(124); -emit_16(192); -emit_16(128); -emit_16(193); -emit_16(129); -emit_16(193); -emit_16(128); -emit_16(193); -emit_16(129); -emit_16(194); -emit_16(130); -emit_16(194); -emit_16(129); -emit_16(194); -emit_16(130); -emit_16(195); -emit_16(131); -emit_16(195); -emit_16(130); -emit_16(195); -emit_16(131); -emit_16(196); -emit_16(132); -emit_16(196); -emit_16(131); -emit_16(196); -emit_16(132); -emit_16(197); -emit_16(133); -emit_16(197); -emit_16(132); -emit_16(197); -emit_16(133); -emit_16(198); -emit_16(134); -emit_16(198); -emit_16(133); -emit_16(198); -emit_16(134); -emit_16(199); -emit_16(135); -emit_16(199); -emit_16(134); -emit_16(199); -emit_16(135); -emit_16(200); -emit_16(136); -emit_16(200); -emit_16(135); -emit_16(200); -emit_16(136); -emit_16(201); -emit_16(137); -emit_16(201); -emit_16(136); -emit_16(201); -emit_16(137); -emit_16(202); -emit_16(138); -emit_16(202); -emit_16(137); -emit_16(202); -emit_16(138); -emit_16(203); -emit_16(139); -emit_16(203); -emit_16(138); -emit_16(203); -emit_16(139); -emit_16(204); -emit_16(140); -emit_16(204); -emit_16(139); -emit_16(204); -emit_16(140); -emit_16(205); -emit_16(141); -emit_16(205); -emit_16(140); -emit_16(205); -emit_16(141); -emit_16(206); -emit_16(142); -emit_16(206); -emit_16(141); -emit_16(206); -emit_16(142); -emit_16(207); -emit_16(143); -emit_16(207); -emit_16(142); -emit_16(207); -emit_16(143); -emit_16(208); -emit_16(144); -emit_16(208); -emit_16(143); -emit_16(208); -emit_16(144); -emit_16(209); -emit_16(145); -emit_16(209); -emit_16(144); -emit_16(209); -emit_16(145); -emit_16(210); -emit_16(146); -emit_16(210); -emit_16(145); -emit_16(210); -emit_16(146); -emit_16(211); -emit_16(147); -emit_16(211); -emit_16(146); -emit_16(211); -emit_16(147); -emit_16(212); -emit_16(148); -emit_16(212); -emit_16(147); -emit_16(212); -emit_16(148); -emit_16(213); -emit_16(149); -emit_16(213); -emit_16(148); -emit_16(213); -emit_16(149); -emit_16(214); -emit_16(150); -emit_16(214); -emit_16(149); -emit_16(214); -emit_16(150); -emit_16(215); -emit_16(151); -emit_16(215); -emit_16(150); -emit_16(215); -emit_16(151); -emit_16(216); -emit_16(152); -emit_16(216); -emit_16(151); -emit_16(216); -emit_16(152); -emit_16(217); -emit_16(153); -emit_16(217); -emit_16(152); -emit_16(217); -emit_16(153); -emit_16(218); -emit_16(154); -emit_16(218); -emit_16(153); -emit_16(218); -emit_16(154); -emit_16(219); -emit_16(155); -emit_16(219); -emit_16(154); -emit_16(219); -emit_16(155); -emit_16(220); -emit_16(156); -emit_16(220); -emit_16(155); -emit_16(220); -emit_16(156); -emit_16(221); -emit_16(157); -emit_16(221); -emit_16(156); -emit_16(221); -emit_16(157); -emit_16(222); -emit_16(158); -emit_16(222); -emit_16(157); -emit_16(222); -emit_16(158); -emit_16(223); -emit_16(159); -emit_16(223); -emit_16(158); -emit_16(223); -emit_16(159); -emit_16(224); -emit_16(160); -emit_16(224); -emit_16(159); -emit_16(224); -emit_16(160); -emit_16(225); -emit_16(161); -emit_16(225); -emit_16(160); -emit_16(225); -emit_16(161); -emit_16(226); -emit_16(162); -emit_16(226); -emit_16(161); -emit_16(226); -emit_16(162); -emit_16(227); -emit_16(163); -emit_16(227); -emit_16(162); -emit_16(227); -emit_16(163); -emit_16(228); -emit_16(164); -emit_16(228); -emit_16(163); -emit_16(228); -emit_16(164); -emit_16(229); -emit_16(165); -emit_16(229); -emit_16(164); -emit_16(229); -emit_16(165); -emit_16(230); -emit_16(166); -emit_16(230); -emit_16(165); -emit_16(230); -emit_16(166); -emit_16(231); -emit_16(167); -emit_16(231); -emit_16(166); -emit_16(231); -emit_16(167); -emit_16(232); -emit_16(168); -emit_16(232); -emit_16(167); -emit_16(232); -emit_16(168); -emit_16(233); -emit_16(169); -emit_16(233); -emit_16(168); -emit_16(233); -emit_16(169); -emit_16(234); -emit_16(170); -emit_16(234); -emit_16(169); -emit_16(234); -emit_16(170); -emit_16(235); -emit_16(171); -emit_16(235); -emit_16(170); -emit_16(235); -emit_16(171); -emit_16(236); -emit_16(172); -emit_16(236); -emit_16(171); -emit_16(236); -emit_16(172); -emit_16(237); -emit_16(173); -emit_16(237); -emit_16(172); -emit_16(237); -emit_16(173); -emit_16(238); -emit_16(174); -emit_16(238); -emit_16(173); -emit_16(238); -emit_16(174); -emit_16(239); -emit_16(175); -emit_16(239); -emit_16(174); -emit_16(239); -emit_16(175); -emit_16(240); -emit_16(176); -emit_16(240); -emit_16(175); -emit_16(240); -emit_16(176); -emit_16(241); -emit_16(177); -emit_16(241); -emit_16(176); -emit_16(241); -emit_16(177); -emit_16(242); -emit_16(178); -emit_16(242); -emit_16(177); -emit_16(242); -emit_16(178); -emit_16(243); -emit_16(179); -emit_16(243); -emit_16(178); -emit_16(243); -emit_16(179); -emit_16(244); -emit_16(180); -emit_16(244); -emit_16(179); -emit_16(244); -emit_16(180); -emit_16(245); -emit_16(181); -emit_16(245); -emit_16(180); -emit_16(245); -emit_16(181); -emit_16(246); -emit_16(182); -emit_16(246); -emit_16(181); -emit_16(246); -emit_16(182); -emit_16(247); -emit_16(183); -emit_16(247); -emit_16(182); -emit_16(247); -emit_16(183); -emit_16(248); -emit_16(184); -emit_16(248); -emit_16(183); -emit_16(248); -emit_16(184); -emit_16(249); -emit_16(185); -emit_16(249); -emit_16(184); -emit_16(249); -emit_16(185); -emit_16(250); -emit_16(186); -emit_16(250); -emit_16(185); -emit_16(250); -emit_16(186); -emit_16(251); -emit_16(187); -emit_16(251); -emit_16(186); -emit_16(251); -emit_16(187); -emit_16(252); -emit_16(188); -emit_16(252); -emit_16(187); -emit_16(252); -emit_16(188); -emit_16(253); -emit_16(189); -emit_16(253); -emit_16(188); -emit_16(253); -emit_16(189); -emit_16(254); -emit_16(190); -emit_16(254); -emit_16(189); -emit_16(254); -emit_16(190); -emit_16(255); -emit_16(191); -emit_16(255); -emit_16(190); -emit_16(256); -emit_16(192); -emit_16(257); -emit_16(193); -emit_16(257); -emit_16(192); -emit_16(257); -emit_16(193); -emit_16(258); -emit_16(194); -emit_16(258); -emit_16(193); -emit_16(258); -emit_16(194); -emit_16(259); -emit_16(195); -emit_16(259); -emit_16(194); -emit_16(259); -emit_16(195); -emit_16(260); -emit_16(196); -emit_16(260); -emit_16(195); -emit_16(260); -emit_16(196); -emit_16(261); -emit_16(197); -emit_16(261); -emit_16(196); -emit_16(261); -emit_16(197); -emit_16(262); -emit_16(198); -emit_16(262); -emit_16(197); -emit_16(262); -emit_16(198); -emit_16(263); -emit_16(199); -emit_16(263); -emit_16(198); -emit_16(263); -emit_16(199); -emit_16(264); -emit_16(200); -emit_16(264); -emit_16(199); -emit_16(264); -emit_16(200); -emit_16(265); -emit_16(201); -emit_16(265); -emit_16(200); -emit_16(265); -emit_16(201); -emit_16(266); -emit_16(202); -emit_16(266); -emit_16(201); -emit_16(266); -emit_16(202); -emit_16(267); -emit_16(203); -emit_16(267); -emit_16(202); -emit_16(267); -emit_16(203); -emit_16(268); -emit_16(204); -emit_16(268); -emit_16(203); -emit_16(268); -emit_16(204); -emit_16(269); -emit_16(205); -emit_16(269); -emit_16(204); -emit_16(269); -emit_16(205); -emit_16(270); -emit_16(206); -emit_16(270); -emit_16(205); -emit_16(270); -emit_16(206); -emit_16(271); -emit_16(207); -emit_16(271); -emit_16(206); -emit_16(271); -emit_16(207); -emit_16(272); -emit_16(208); -emit_16(272); -emit_16(207); -emit_16(272); -emit_16(208); -emit_16(273); -emit_16(209); -emit_16(273); -emit_16(208); -emit_16(273); -emit_16(209); -emit_16(274); -emit_16(210); -emit_16(274); -emit_16(209); -emit_16(274); -emit_16(210); -emit_16(275); -emit_16(211); -emit_16(275); -emit_16(210); -emit_16(275); -emit_16(211); -emit_16(276); -emit_16(212); -emit_16(276); -emit_16(211); -emit_16(276); -emit_16(212); -emit_16(277); -emit_16(213); -emit_16(277); -emit_16(212); -emit_16(277); -emit_16(213); -emit_16(278); -emit_16(214); -emit_16(278); -emit_16(213); -emit_16(278); -emit_16(214); -emit_16(279); -emit_16(215); -emit_16(279); -emit_16(214); -emit_16(279); -emit_16(215); -emit_16(280); -emit_16(216); -emit_16(280); -emit_16(215); -emit_16(280); -emit_16(216); -emit_16(281); -emit_16(217); -emit_16(281); -emit_16(216); -emit_16(281); -emit_16(217); -emit_16(282); -emit_16(218); -emit_16(282); -emit_16(217); -emit_16(282); -emit_16(218); -emit_16(283); -emit_16(219); -emit_16(283); -emit_16(218); -emit_16(283); -emit_16(219); -emit_16(284); -emit_16(220); -emit_16(284); -emit_16(219); -emit_16(284); -emit_16(220); -emit_16(285); -emit_16(221); -emit_16(285); -emit_16(220); -emit_16(285); -emit_16(221); -emit_16(286); -emit_16(222); -emit_16(286); -emit_16(221); -emit_16(286); -emit_16(222); -emit_16(287); -emit_16(223); -emit_16(287); -emit_16(222); -emit_16(287); -emit_16(223); -emit_16(288); -emit_16(224); -emit_16(288); -emit_16(223); -emit_16(288); -emit_16(224); -emit_16(289); -emit_16(225); -emit_16(289); -emit_16(224); -emit_16(289); -emit_16(225); -emit_16(290); -emit_16(226); -emit_16(290); -emit_16(225); -emit_16(290); -emit_16(226); -emit_16(291); -emit_16(227); -emit_16(291); -emit_16(226); -emit_16(291); -emit_16(227); -emit_16(292); -emit_16(228); -emit_16(292); -emit_16(227); -emit_16(292); -emit_16(228); -emit_16(293); -emit_16(229); -emit_16(293); -emit_16(228); -emit_16(293); -emit_16(229); -emit_16(294); -emit_16(230); -emit_16(294); -emit_16(229); -emit_16(294); -emit_16(230); -emit_16(295); -emit_16(231); -emit_16(295); -emit_16(230); -emit_16(295); -emit_16(231); -emit_16(296); -emit_16(232); -emit_16(296); -emit_16(231); -emit_16(296); -emit_16(232); -emit_16(297); -emit_16(233); -emit_16(297); -emit_16(232); -emit_16(297); -emit_16(233); -emit_16(298); -emit_16(234); -emit_16(298); -emit_16(233); -emit_16(298); -emit_16(234); -emit_16(299); -emit_16(235); -emit_16(299); -emit_16(234); -emit_16(299); -emit_16(235); -emit_16(300); -emit_16(236); -emit_16(300); -emit_16(235); -emit_16(300); -emit_16(236); -emit_16(301); -emit_16(237); -emit_16(301); -emit_16(236); -emit_16(301); -emit_16(237); -emit_16(302); -emit_16(238); -emit_16(302); -emit_16(237); -emit_16(302); -emit_16(238); -emit_16(303); -emit_16(239); -emit_16(303); -emit_16(238); -emit_16(303); -emit_16(239); -emit_16(304); -emit_16(240); -emit_16(304); -emit_16(239); -emit_16(304); -emit_16(240); -emit_16(305); -emit_16(241); -emit_16(305); -emit_16(240); -emit_16(305); -emit_16(241); -emit_16(306); -emit_16(242); -emit_16(306); -emit_16(241); -emit_16(306); -emit_16(242); -emit_16(307); -emit_16(243); -emit_16(307); -emit_16(242); -emit_16(307); -emit_16(243); -emit_16(308); -emit_16(244); -emit_16(308); -emit_16(243); -emit_16(308); -emit_16(244); -emit_16(309); -emit_16(245); -emit_16(309); -emit_16(244); -emit_16(309); -emit_16(245); -emit_16(310); -emit_16(246); -emit_16(310); -emit_16(245); -emit_16(310); -emit_16(246); -emit_16(311); -emit_16(247); -emit_16(311); -emit_16(246); -emit_16(311); -emit_16(247); -emit_16(312); -emit_16(248); -emit_16(312); -emit_16(247); -emit_16(312); -emit_16(248); -emit_16(313); -emit_16(249); -emit_16(313); -emit_16(248); -emit_16(313); -emit_16(249); -emit_16(314); -emit_16(250); -emit_16(314); -emit_16(249); -emit_16(314); -emit_16(250); -emit_16(315); -emit_16(251); -emit_16(315); -emit_16(250); -emit_16(315); -emit_16(251); -emit_16(316); -emit_16(252); -emit_16(316); -emit_16(251); -emit_16(316); -emit_16(252); -emit_16(317); -emit_16(253); -emit_16(317); -emit_16(252); -emit_16(317); -emit_16(253); -emit_16(318); -emit_16(254); -emit_16(318); -emit_16(253); -emit_16(318); -emit_16(254); -emit_16(319); -emit_16(255); -emit_16(319); -emit_16(254); -emit_16(320); -emit_16(256); -emit_16(321); -emit_16(257); -emit_16(321); -emit_16(256); -emit_16(321); -emit_16(257); -emit_16(322); -emit_16(258); -emit_16(322); -emit_16(257); -emit_16(322); -emit_16(258); -emit_16(323); -emit_16(259); -emit_16(323); -emit_16(258); -emit_16(323); -emit_16(259); -emit_16(324); -emit_16(260); -emit_16(324); -emit_16(259); -emit_16(324); -emit_16(260); -emit_16(325); -emit_16(261); -emit_16(325); -emit_16(260); -emit_16(325); -emit_16(261); -emit_16(326); -emit_16(262); -emit_16(326); -emit_16(261); -emit_16(326); -emit_16(262); -emit_16(327); -emit_16(263); -emit_16(327); -emit_16(262); -emit_16(327); -emit_16(263); -emit_16(328); -emit_16(264); -emit_16(328); -emit_16(263); -emit_16(328); -emit_16(264); -emit_16(329); -emit_16(265); -emit_16(329); -emit_16(264); -emit_16(329); -emit_16(265); -emit_16(330); -emit_16(266); -emit_16(330); -emit_16(265); -emit_16(330); -emit_16(266); -emit_16(331); -emit_16(267); -emit_16(331); -emit_16(266); -emit_16(331); -emit_16(267); -emit_16(332); -emit_16(268); -emit_16(332); -emit_16(267); -emit_16(332); -emit_16(268); -emit_16(333); -emit_16(269); -emit_16(333); -emit_16(268); -emit_16(333); -emit_16(269); -emit_16(334); -emit_16(270); -emit_16(334); -emit_16(269); -emit_16(334); -emit_16(270); -emit_16(335); -emit_16(271); -emit_16(335); -emit_16(270); -emit_16(335); -emit_16(271); -emit_16(336); -emit_16(272); -emit_16(336); -emit_16(271); -emit_16(336); -emit_16(272); -emit_16(337); -emit_16(273); -emit_16(337); -emit_16(272); -emit_16(337); -emit_16(273); -emit_16(338); -emit_16(274); -emit_16(338); -emit_16(273); -emit_16(338); -emit_16(274); -emit_16(339); -emit_16(275); -emit_16(339); -emit_16(274); -emit_16(339); -emit_16(275); -emit_16(340); -emit_16(276); -emit_16(340); -emit_16(275); -emit_16(340); -emit_16(276); -emit_16(341); -emit_16(277); -emit_16(341); -emit_16(276); -emit_16(341); -emit_16(277); -emit_16(342); -emit_16(278); -emit_16(342); -emit_16(277); -emit_16(342); -emit_16(278); -emit_16(343); -emit_16(279); -emit_16(343); -emit_16(278); -emit_16(343); -emit_16(279); -emit_16(344); -emit_16(280); -emit_16(344); -emit_16(279); -emit_16(344); -emit_16(280); -emit_16(345); -emit_16(281); -emit_16(345); -emit_16(280); -emit_16(345); -emit_16(281); -emit_16(346); -emit_16(282); -emit_16(346); -emit_16(281); -emit_16(346); -emit_16(282); -emit_16(347); -emit_16(283); -emit_16(347); -emit_16(282); -emit_16(347); -emit_16(283); -emit_16(348); -emit_16(284); -emit_16(348); -emit_16(283); -emit_16(348); -emit_16(284); -emit_16(349); -emit_16(285); -emit_16(349); -emit_16(284); -emit_16(349); -emit_16(285); -emit_16(350); -emit_16(286); -emit_16(350); -emit_16(285); -emit_16(350); -emit_16(286); -emit_16(351); -emit_16(287); -emit_16(351); -emit_16(286); -emit_16(351); -emit_16(287); -emit_16(352); -emit_16(288); -emit_16(352); -emit_16(287); -emit_16(352); -emit_16(288); -emit_16(353); -emit_16(289); -emit_16(353); -emit_16(288); -emit_16(353); -emit_16(289); -emit_16(354); -emit_16(290); -emit_16(354); -emit_16(289); -emit_16(354); -emit_16(290); -emit_16(355); -emit_16(291); -emit_16(355); -emit_16(290); -emit_16(355); -emit_16(291); -emit_16(356); -emit_16(292); -emit_16(356); -emit_16(291); -emit_16(356); -emit_16(292); -emit_16(357); -emit_16(293); -emit_16(357); -emit_16(292); -emit_16(357); -emit_16(293); -emit_16(358); -emit_16(294); -emit_16(358); -emit_16(293); -emit_16(358); -emit_16(294); -emit_16(359); -emit_16(295); -emit_16(359); -emit_16(294); -emit_16(359); -emit_16(295); -emit_16(360); -emit_16(296); -emit_16(360); -emit_16(295); -emit_16(360); -emit_16(296); -emit_16(361); -emit_16(297); -emit_16(361); -emit_16(296); -emit_16(361); -emit_16(297); -emit_16(362); -emit_16(298); -emit_16(362); -emit_16(297); -emit_16(362); -emit_16(298); -emit_16(363); -emit_16(299); -emit_16(363); -emit_16(298); -emit_16(363); -emit_16(299); -emit_16(364); -emit_16(300); -emit_16(364); -emit_16(299); -emit_16(364); -emit_16(300); -emit_16(365); -emit_16(301); -emit_16(365); -emit_16(300); -emit_16(365); -emit_16(301); -emit_16(366); -emit_16(302); -emit_16(366); -emit_16(301); -emit_16(366); -emit_16(302); -emit_16(367); -emit_16(303); -emit_16(367); -emit_16(302); -emit_16(367); -emit_16(303); -emit_16(368); -emit_16(304); -emit_16(368); -emit_16(303); -emit_16(368); -emit_16(304); -emit_16(369); -emit_16(305); -emit_16(369); -emit_16(304); -emit_16(369); -emit_16(305); -emit_16(370); -emit_16(306); -emit_16(370); -emit_16(305); -emit_16(370); -emit_16(306); -emit_16(371); -emit_16(307); -emit_16(371); -emit_16(306); -emit_16(371); -emit_16(307); -emit_16(372); -emit_16(308); -emit_16(372); -emit_16(307); -emit_16(372); -emit_16(308); -emit_16(373); -emit_16(309); -emit_16(373); -emit_16(308); -emit_16(373); -emit_16(309); -emit_16(374); -emit_16(310); -emit_16(374); -emit_16(309); -emit_16(374); -emit_16(310); -emit_16(375); -emit_16(311); -emit_16(375); -emit_16(310); -emit_16(375); -emit_16(311); -emit_16(376); -emit_16(312); -emit_16(376); -emit_16(311); -emit_16(376); -emit_16(312); -emit_16(377); -emit_16(313); -emit_16(377); -emit_16(312); -emit_16(377); -emit_16(313); -emit_16(378); -emit_16(314); -emit_16(378); -emit_16(313); -emit_16(378); -emit_16(314); -emit_16(379); -emit_16(315); -emit_16(379); -emit_16(314); -emit_16(379); -emit_16(315); -emit_16(380); -emit_16(316); -emit_16(380); -emit_16(315); -emit_16(380); -emit_16(316); -emit_16(381); -emit_16(317); -emit_16(381); -emit_16(316); -emit_16(381); -emit_16(317); -emit_16(382); -emit_16(318); -emit_16(382); -emit_16(317); -emit_16(382); -emit_16(318); -emit_16(383); -emit_16(319); -emit_16(383); -emit_16(318); -emit_16(384); -emit_16(320); -emit_16(385); -emit_16(321); -emit_16(385); -emit_16(320); -emit_16(385); -emit_16(321); -emit_16(386); -emit_16(322); -emit_16(386); -emit_16(321); -emit_16(386); -emit_16(322); -emit_16(387); -emit_16(323); -emit_16(387); -emit_16(322); -emit_16(387); -emit_16(323); -emit_16(388); -emit_16(324); -emit_16(388); -emit_16(323); -emit_16(388); -emit_16(324); -emit_16(389); -emit_16(325); -emit_16(389); -emit_16(324); -emit_16(389); -emit_16(325); -emit_16(390); -emit_16(326); -emit_16(390); -emit_16(325); -emit_16(390); -emit_16(326); -emit_16(391); -emit_16(327); -emit_16(391); -emit_16(326); -emit_16(391); -emit_16(327); -emit_16(392); -emit_16(328); -emit_16(392); -emit_16(327); -emit_16(392); -emit_16(328); -emit_16(393); -emit_16(329); -emit_16(393); -emit_16(328); -emit_16(393); -emit_16(329); -emit_16(394); -emit_16(330); -emit_16(394); -emit_16(329); -emit_16(394); -emit_16(330); -emit_16(395); -emit_16(331); -emit_16(395); -emit_16(330); -emit_16(395); -emit_16(331); -emit_16(396); -emit_16(332); -emit_16(396); -emit_16(331); -emit_16(396); -emit_16(332); -emit_16(397); -emit_16(333); -emit_16(397); -emit_16(332); -emit_16(397); -emit_16(333); -emit_16(398); -emit_16(334); -emit_16(398); -emit_16(333); -emit_16(398); -emit_16(334); -emit_16(399); -emit_16(335); -emit_16(399); -emit_16(334); -emit_16(399); -emit_16(335); -emit_16(400); -emit_16(336); -emit_16(400); -emit_16(335); -emit_16(400); -emit_16(336); -emit_16(401); -emit_16(337); -emit_16(401); -emit_16(336); -emit_16(401); -emit_16(337); -emit_16(402); -emit_16(338); -emit_16(402); -emit_16(337); -emit_16(402); -emit_16(338); -emit_16(403); -emit_16(339); -emit_16(403); -emit_16(338); -emit_16(403); -emit_16(339); -emit_16(404); -emit_16(340); -emit_16(404); -emit_16(339); -emit_16(404); -emit_16(340); -emit_16(405); -emit_16(341); -emit_16(405); -emit_16(340); -emit_16(405); -emit_16(341); -emit_16(406); -emit_16(342); -emit_16(406); -emit_16(341); -emit_16(406); -emit_16(342); -emit_16(407); -emit_16(343); -emit_16(407); -emit_16(342); -emit_16(407); -emit_16(343); -emit_16(408); -emit_16(344); -emit_16(408); -emit_16(343); -emit_16(408); -emit_16(344); -emit_16(409); -emit_16(345); -emit_16(409); -emit_16(344); -emit_16(409); -emit_16(345); -emit_16(410); -emit_16(346); -emit_16(410); -emit_16(345); -emit_16(410); -emit_16(346); -emit_16(411); -emit_16(347); -emit_16(411); -emit_16(346); -emit_16(411); -emit_16(347); -emit_16(412); -emit_16(348); -emit_16(412); -emit_16(347); -emit_16(412); -emit_16(348); -emit_16(413); -emit_16(349); -emit_16(413); -emit_16(348); -emit_16(413); -emit_16(349); -emit_16(414); -emit_16(350); -emit_16(414); -emit_16(349); -emit_16(414); -emit_16(350); -emit_16(415); -emit_16(351); -emit_16(415); -emit_16(350); -emit_16(415); -emit_16(351); -emit_16(416); -emit_16(352); -emit_16(416); -emit_16(351); -emit_16(416); -emit_16(352); -emit_16(417); -emit_16(353); -emit_16(417); -emit_16(352); -emit_16(417); -emit_16(353); -emit_16(418); -emit_16(354); -emit_16(418); -emit_16(353); -emit_16(418); -emit_16(354); -emit_16(419); -emit_16(355); -emit_16(419); -emit_16(354); -emit_16(419); -emit_16(355); -emit_16(420); -emit_16(356); -emit_16(420); -emit_16(355); -emit_16(420); -emit_16(356); -emit_16(421); -emit_16(357); -emit_16(421); -emit_16(356); -emit_16(421); -emit_16(357); -emit_16(422); -emit_16(358); -emit_16(422); -emit_16(357); -emit_16(422); -emit_16(358); -emit_16(423); -emit_16(359); -emit_16(423); -emit_16(358); -emit_16(423); -emit_16(359); -emit_16(424); -emit_16(360); -emit_16(424); -emit_16(359); -emit_16(424); -emit_16(360); -emit_16(425); -emit_16(361); -emit_16(425); -emit_16(360); -emit_16(425); -emit_16(361); -emit_16(426); -emit_16(362); -emit_16(426); -emit_16(361); -emit_16(426); -emit_16(362); -emit_16(427); -emit_16(363); -emit_16(427); -emit_16(362); -emit_16(427); -emit_16(363); -emit_16(428); -emit_16(364); -emit_16(428); -emit_16(363); -emit_16(428); -emit_16(364); -emit_16(429); -emit_16(365); -emit_16(429); -emit_16(364); -emit_16(429); -emit_16(365); -emit_16(430); -emit_16(366); -emit_16(430); -emit_16(365); -emit_16(430); -emit_16(366); -emit_16(431); -emit_16(367); -emit_16(431); -emit_16(366); -emit_16(431); -emit_16(367); -emit_16(432); -emit_16(368); -emit_16(432); -emit_16(367); -emit_16(432); -emit_16(368); -emit_16(433); -emit_16(369); -emit_16(433); -emit_16(368); -emit_16(433); -emit_16(369); -emit_16(434); -emit_16(370); -emit_16(434); -emit_16(369); -emit_16(434); -emit_16(370); -emit_16(435); -emit_16(371); -emit_16(435); -emit_16(370); -emit_16(435); -emit_16(371); -emit_16(436); -emit_16(372); -emit_16(436); -emit_16(371); -emit_16(436); -emit_16(372); -emit_16(437); -emit_16(373); -emit_16(437); -emit_16(372); -emit_16(437); -emit_16(373); -emit_16(438); -emit_16(374); -emit_16(438); -emit_16(373); -emit_16(438); -emit_16(374); -emit_16(439); -emit_16(375); -emit_16(439); -emit_16(374); -emit_16(439); -emit_16(375); -emit_16(440); -emit_16(376); -emit_16(440); -emit_16(375); -emit_16(440); -emit_16(376); -emit_16(441); -emit_16(377); -emit_16(441); -emit_16(376); -emit_16(441); -emit_16(377); -emit_16(442); -emit_16(378); -emit_16(442); -emit_16(377); -emit_16(442); -emit_16(378); -emit_16(443); -emit_16(379); -emit_16(443); -emit_16(378); -emit_16(443); -emit_16(379); -emit_16(444); -emit_16(380); -emit_16(444); -emit_16(379); -emit_16(444); -emit_16(380); -emit_16(445); -emit_16(381); -emit_16(445); -emit_16(380); -emit_16(445); -emit_16(381); -emit_16(446); -emit_16(382); -emit_16(446); -emit_16(381); -emit_16(446); -emit_16(382); -emit_16(447); -emit_16(383); -emit_16(447); -emit_16(382); -emit_16(448); -emit_16(384); -emit_16(449); -emit_16(385); -emit_16(449); -emit_16(384); -emit_16(449); -emit_16(385); -emit_16(450); -emit_16(386); -emit_16(450); -emit_16(385); -emit_16(450); -emit_16(386); -emit_16(451); -emit_16(387); -emit_16(451); -emit_16(386); -emit_16(451); -emit_16(387); -emit_16(452); -emit_16(388); -emit_16(452); -emit_16(387); -emit_16(452); -emit_16(388); -emit_16(453); -emit_16(389); -emit_16(453); -emit_16(388); -emit_16(453); -emit_16(389); -emit_16(454); -emit_16(390); -emit_16(454); -emit_16(389); -emit_16(454); -emit_16(390); -emit_16(455); -emit_16(391); -emit_16(455); -emit_16(390); -emit_16(455); -emit_16(391); -emit_16(456); -emit_16(392); -emit_16(456); -emit_16(391); -emit_16(456); -emit_16(392); -emit_16(457); -emit_16(393); -emit_16(457); -emit_16(392); -emit_16(457); -emit_16(393); -emit_16(458); -emit_16(394); -emit_16(458); -emit_16(393); -emit_16(458); -emit_16(394); -emit_16(459); -emit_16(395); -emit_16(459); -emit_16(394); -emit_16(459); -emit_16(395); -emit_16(460); -emit_16(396); -emit_16(460); -emit_16(395); -emit_16(460); -emit_16(396); -emit_16(461); -emit_16(397); -emit_16(461); -emit_16(396); -emit_16(461); -emit_16(397); -emit_16(462); -emit_16(398); -emit_16(462); -emit_16(397); -emit_16(462); -emit_16(398); -emit_16(463); -emit_16(399); -emit_16(463); -emit_16(398); -emit_16(463); -emit_16(399); -emit_16(464); -emit_16(400); -emit_16(464); -emit_16(399); -emit_16(464); -emit_16(400); -emit_16(465); -emit_16(401); -emit_16(465); -emit_16(400); -emit_16(465); -emit_16(401); -emit_16(466); -emit_16(402); -emit_16(466); -emit_16(401); -emit_16(466); -emit_16(402); -emit_16(467); -emit_16(403); -emit_16(467); -emit_16(402); -emit_16(467); -emit_16(403); -emit_16(468); -emit_16(404); -emit_16(468); -emit_16(403); -emit_16(468); -emit_16(404); -emit_16(469); -emit_16(405); -emit_16(469); -emit_16(404); -emit_16(469); -emit_16(405); -emit_16(470); -emit_16(406); -emit_16(470); -emit_16(405); -emit_16(470); -emit_16(406); -emit_16(471); -emit_16(407); -emit_16(471); -emit_16(406); -emit_16(471); -emit_16(407); -emit_16(472); -emit_16(408); -emit_16(472); -emit_16(407); -emit_16(472); -emit_16(408); -emit_16(473); -emit_16(409); -emit_16(473); -emit_16(408); -emit_16(473); -emit_16(409); -emit_16(474); -emit_16(410); -emit_16(474); -emit_16(409); -emit_16(474); -emit_16(410); -emit_16(475); -emit_16(411); -emit_16(475); -emit_16(410); -emit_16(475); -emit_16(411); -emit_16(476); -emit_16(412); -emit_16(476); -emit_16(411); -emit_16(476); -emit_16(412); -emit_16(477); -emit_16(413); -emit_16(477); -emit_16(412); -emit_16(477); -emit_16(413); -emit_16(478); -emit_16(414); -emit_16(478); -emit_16(413); -emit_16(478); -emit_16(414); -emit_16(479); -emit_16(415); -emit_16(479); -emit_16(414); -emit_16(479); -emit_16(415); -emit_16(480); -emit_16(416); -emit_16(480); -emit_16(415); -emit_16(480); -emit_16(416); -emit_16(481); -emit_16(417); -emit_16(481); -emit_16(416); -emit_16(481); -emit_16(417); -emit_16(482); -emit_16(418); -emit_16(482); -emit_16(417); -emit_16(482); -emit_16(418); -emit_16(483); -emit_16(419); -emit_16(483); -emit_16(418); -emit_16(483); -emit_16(419); -emit_16(484); -emit_16(420); -emit_16(484); -emit_16(419); -emit_16(484); -emit_16(420); -emit_16(485); -emit_16(421); -emit_16(485); -emit_16(420); -emit_16(485); -emit_16(421); -emit_16(486); -emit_16(422); -emit_16(486); -emit_16(421); -emit_16(486); -emit_16(422); -emit_16(487); -emit_16(423); -emit_16(487); -emit_16(422); -emit_16(487); -emit_16(423); -emit_16(488); -emit_16(424); -emit_16(488); -emit_16(423); -emit_16(488); -emit_16(424); -emit_16(489); -emit_16(425); -emit_16(489); -emit_16(424); -emit_16(489); -emit_16(425); -emit_16(490); -emit_16(426); -emit_16(490); -emit_16(425); -emit_16(490); -emit_16(426); -emit_16(491); -emit_16(427); -emit_16(491); -emit_16(426); -emit_16(491); -emit_16(427); -emit_16(492); -emit_16(428); -emit_16(492); -emit_16(427); -emit_16(492); -emit_16(428); -emit_16(493); -emit_16(429); -emit_16(493); -emit_16(428); -emit_16(493); -emit_16(429); -emit_16(494); -emit_16(430); -emit_16(494); -emit_16(429); -emit_16(494); -emit_16(430); -emit_16(495); -emit_16(431); -emit_16(495); -emit_16(430); -emit_16(495); -emit_16(431); -emit_16(496); -emit_16(432); -emit_16(496); -emit_16(431); -emit_16(496); -emit_16(432); -emit_16(497); -emit_16(433); -emit_16(497); -emit_16(432); -emit_16(497); -emit_16(433); -emit_16(498); -emit_16(434); -emit_16(498); -emit_16(433); -emit_16(498); -emit_16(434); -emit_16(499); -emit_16(435); -emit_16(499); -emit_16(434); -emit_16(499); -emit_16(435); -emit_16(500); -emit_16(436); -emit_16(500); -emit_16(435); -emit_16(500); -emit_16(436); -emit_16(501); -emit_16(437); -emit_16(501); -emit_16(436); -emit_16(501); -emit_16(437); -emit_16(502); -emit_16(438); -emit_16(502); -emit_16(437); -emit_16(502); -emit_16(438); -emit_16(503); -emit_16(439); -emit_16(503); -emit_16(438); -emit_16(503); -emit_16(439); -emit_16(504); -emit_16(440); -emit_16(504); -emit_16(439); -emit_16(504); -emit_16(440); -emit_16(505); -emit_16(441); -emit_16(505); -emit_16(440); -emit_16(505); -emit_16(441); -emit_16(506); -emit_16(442); -emit_16(506); -emit_16(441); -emit_16(506); -emit_16(442); -emit_16(507); -emit_16(443); -emit_16(507); -emit_16(442); -emit_16(507); -emit_16(443); -emit_16(508); -emit_16(444); -emit_16(508); -emit_16(443); -emit_16(508); -emit_16(444); -emit_16(509); -emit_16(445); -emit_16(509); -emit_16(444); -emit_16(509); -emit_16(445); -emit_16(510); -emit_16(446); -emit_16(510); -emit_16(445); -emit_16(510); -emit_16(446); -emit_16(511); -emit_16(447); -emit_16(511); -emit_16(446); -emit_16(512); -emit_16(448); -emit_16(513); -emit_16(449); -emit_16(513); -emit_16(448); -emit_16(513); -emit_16(449); -emit_16(514); -emit_16(450); -emit_16(514); -emit_16(449); -emit_16(514); -emit_16(450); -emit_16(515); -emit_16(451); -emit_16(515); -emit_16(450); -emit_16(515); -emit_16(451); -emit_16(516); -emit_16(452); -emit_16(516); -emit_16(451); -emit_16(516); -emit_16(452); -emit_16(517); -emit_16(453); -emit_16(517); -emit_16(452); -emit_16(517); -emit_16(453); -emit_16(518); -emit_16(454); -emit_16(518); -emit_16(453); -emit_16(518); -emit_16(454); -emit_16(519); -emit_16(455); -emit_16(519); -emit_16(454); -emit_16(519); -emit_16(455); -emit_16(520); -emit_16(456); -emit_16(520); -emit_16(455); -emit_16(520); -emit_16(456); -emit_16(521); -emit_16(457); -emit_16(521); -emit_16(456); -emit_16(521); -emit_16(457); -emit_16(522); -emit_16(458); -emit_16(522); -emit_16(457); -emit_16(522); -emit_16(458); -emit_16(523); -emit_16(459); -emit_16(523); -emit_16(458); -emit_16(523); -emit_16(459); -emit_16(524); -emit_16(460); -emit_16(524); -emit_16(459); -emit_16(524); -emit_16(460); -emit_16(525); -emit_16(461); -emit_16(525); -emit_16(460); -emit_16(525); -emit_16(461); -emit_16(526); -emit_16(462); -emit_16(526); -emit_16(461); -emit_16(526); -emit_16(462); -emit_16(527); -emit_16(463); -emit_16(527); -emit_16(462); -emit_16(527); -emit_16(463); -emit_16(528); -emit_16(464); -emit_16(528); -emit_16(463); -emit_16(528); -emit_16(464); -emit_16(529); -emit_16(465); -emit_16(529); -emit_16(464); -emit_16(529); -emit_16(465); -emit_16(530); -emit_16(466); -emit_16(530); -emit_16(465); -emit_16(530); -emit_16(466); -emit_16(531); -emit_16(467); -emit_16(531); -emit_16(466); -emit_16(531); -emit_16(467); -emit_16(532); -emit_16(468); -emit_16(532); -emit_16(467); -emit_16(532); -emit_16(468); -emit_16(533); -emit_16(469); -emit_16(533); -emit_16(468); -emit_16(533); -emit_16(469); -emit_16(534); -emit_16(470); -emit_16(534); -emit_16(469); -emit_16(534); -emit_16(470); -emit_16(535); -emit_16(471); -emit_16(535); -emit_16(470); -emit_16(535); -emit_16(471); -emit_16(536); -emit_16(472); -emit_16(536); -emit_16(471); -emit_16(536); -emit_16(472); -emit_16(537); -emit_16(473); -emit_16(537); -emit_16(472); -emit_16(537); -emit_16(473); -emit_16(538); -emit_16(474); -emit_16(538); -emit_16(473); -emit_16(538); -emit_16(474); -emit_16(539); -emit_16(475); -emit_16(539); -emit_16(474); -emit_16(539); -emit_16(475); -emit_16(540); -emit_16(476); -emit_16(540); -emit_16(475); -emit_16(540); -emit_16(476); -emit_16(541); -emit_16(477); -emit_16(541); -emit_16(476); -emit_16(541); -emit_16(477); -emit_16(542); -emit_16(478); -emit_16(542); -emit_16(477); -emit_16(542); -emit_16(478); -emit_16(543); -emit_16(479); -emit_16(543); -emit_16(478); -emit_16(543); -emit_16(479); -emit_16(544); -emit_16(480); -emit_16(544); -emit_16(479); -emit_16(544); -emit_16(480); -emit_16(545); -emit_16(481); -emit_16(545); -emit_16(480); -emit_16(545); -emit_16(481); -emit_16(546); -emit_16(482); -emit_16(546); -emit_16(481); -emit_16(546); -emit_16(482); -emit_16(547); -emit_16(483); -emit_16(547); -emit_16(482); -emit_16(547); -emit_16(483); -emit_16(548); -emit_16(484); -emit_16(548); -emit_16(483); -emit_16(548); -emit_16(484); -emit_16(549); -emit_16(485); -emit_16(549); -emit_16(484); -emit_16(549); -emit_16(485); -emit_16(550); -emit_16(486); -emit_16(550); -emit_16(485); -emit_16(550); -emit_16(486); -emit_16(551); -emit_16(487); -emit_16(551); -emit_16(486); -emit_16(551); -emit_16(487); -emit_16(552); -emit_16(488); -emit_16(552); -emit_16(487); -emit_16(552); -emit_16(488); -emit_16(553); -emit_16(489); -emit_16(553); -emit_16(488); -emit_16(553); -emit_16(489); -emit_16(554); -emit_16(490); -emit_16(554); -emit_16(489); -emit_16(554); -emit_16(490); -emit_16(555); -emit_16(491); -emit_16(555); -emit_16(490); -emit_16(555); -emit_16(491); -emit_16(556); -emit_16(492); -emit_16(556); -emit_16(491); -emit_16(556); -emit_16(492); -emit_16(557); -emit_16(493); -emit_16(557); -emit_16(492); -emit_16(557); -emit_16(493); -emit_16(558); -emit_16(494); -emit_16(558); -emit_16(493); -emit_16(558); -emit_16(494); -emit_16(559); -emit_16(495); -emit_16(559); -emit_16(494); -emit_16(559); -emit_16(495); -emit_16(560); -emit_16(496); -emit_16(560); -emit_16(495); -emit_16(560); -emit_16(496); -emit_16(561); -emit_16(497); -emit_16(561); -emit_16(496); -emit_16(561); -emit_16(497); -emit_16(562); -emit_16(498); -emit_16(562); -emit_16(497); -emit_16(562); -emit_16(498); -emit_16(563); -emit_16(499); -emit_16(563); -emit_16(498); -emit_16(563); -emit_16(499); -emit_16(564); -emit_16(500); -emit_16(564); -emit_16(499); -emit_16(564); -emit_16(500); -emit_16(565); -emit_16(501); -emit_16(565); -emit_16(500); -emit_16(565); -emit_16(501); -emit_16(566); -emit_16(502); -emit_16(566); -emit_16(501); -emit_16(566); -emit_16(502); -emit_16(567); -emit_16(503); -emit_16(567); -emit_16(502); -emit_16(567); -emit_16(503); -emit_16(568); -emit_16(504); -emit_16(568); -emit_16(503); -emit_16(568); -emit_16(504); -emit_16(569); -emit_16(505); -emit_16(569); -emit_16(504); -emit_16(569); -emit_16(505); -emit_16(570); -emit_16(506); -emit_16(570); -emit_16(505); -emit_16(570); -emit_16(506); -emit_16(571); -emit_16(507); -emit_16(571); -emit_16(506); -emit_16(571); -emit_16(507); -emit_16(572); -emit_16(508); -emit_16(572); -emit_16(507); -emit_16(572); -emit_16(508); -emit_16(573); -emit_16(509); -emit_16(573); -emit_16(508); -emit_16(573); -emit_16(509); -emit_16(574); -emit_16(510); -emit_16(574); -emit_16(509); -emit_16(574); -emit_16(510); -emit_16(575); -emit_16(511); -emit_16(575); -emit_16(510); -emit_16(576); -emit_16(512); -emit_16(577); -emit_16(513); -emit_16(577); -emit_16(512); -emit_16(577); -emit_16(513); -emit_16(578); -emit_16(514); -emit_16(578); -emit_16(513); -emit_16(578); -emit_16(514); -emit_16(579); -emit_16(515); -emit_16(579); -emit_16(514); -emit_16(579); -emit_16(515); -emit_16(580); -emit_16(516); -emit_16(580); -emit_16(515); -emit_16(580); -emit_16(516); -emit_16(581); -emit_16(517); -emit_16(581); -emit_16(516); -emit_16(581); -emit_16(517); -emit_16(582); -emit_16(518); -emit_16(582); -emit_16(517); -emit_16(582); -emit_16(518); -emit_16(583); -emit_16(519); -emit_16(583); -emit_16(518); -emit_16(583); -emit_16(519); -emit_16(584); -emit_16(520); -emit_16(584); -emit_16(519); -emit_16(584); -emit_16(520); -emit_16(585); -emit_16(521); -emit_16(585); -emit_16(520); -emit_16(585); -emit_16(521); -emit_16(586); -emit_16(522); -emit_16(586); -emit_16(521); -emit_16(586); -emit_16(522); -emit_16(587); -emit_16(523); -emit_16(587); -emit_16(522); -emit_16(587); -emit_16(523); -emit_16(588); -emit_16(524); -emit_16(588); -emit_16(523); -emit_16(588); -emit_16(524); -emit_16(589); -emit_16(525); -emit_16(589); -emit_16(524); -emit_16(589); -emit_16(525); -emit_16(590); -emit_16(526); -emit_16(590); -emit_16(525); -emit_16(590); -emit_16(526); -emit_16(591); -emit_16(527); -emit_16(591); -emit_16(526); -emit_16(591); -emit_16(527); -emit_16(592); -emit_16(528); -emit_16(592); -emit_16(527); -emit_16(592); -emit_16(528); -emit_16(593); -emit_16(529); -emit_16(593); -emit_16(528); -emit_16(593); -emit_16(529); -emit_16(594); -emit_16(530); -emit_16(594); -emit_16(529); -emit_16(594); -emit_16(530); -emit_16(595); -emit_16(531); -emit_16(595); -emit_16(530); -emit_16(595); -emit_16(531); -emit_16(596); -emit_16(532); -emit_16(596); -emit_16(531); -emit_16(596); -emit_16(532); -emit_16(597); -emit_16(533); -emit_16(597); -emit_16(532); -emit_16(597); -emit_16(533); -emit_16(598); -emit_16(534); -emit_16(598); -emit_16(533); -emit_16(598); -emit_16(534); -emit_16(599); -emit_16(535); -emit_16(599); -emit_16(534); -emit_16(599); -emit_16(535); -emit_16(600); -emit_16(536); -emit_16(600); -emit_16(535); -emit_16(600); -emit_16(536); -emit_16(601); -emit_16(537); -emit_16(601); -emit_16(536); -emit_16(601); -emit_16(537); -emit_16(602); -emit_16(538); -emit_16(602); -emit_16(537); -emit_16(602); -emit_16(538); -emit_16(603); -emit_16(539); -emit_16(603); -emit_16(538); -emit_16(603); -emit_16(539); -emit_16(604); -emit_16(540); -emit_16(604); -emit_16(539); -emit_16(604); -emit_16(540); -emit_16(605); -emit_16(541); -emit_16(605); -emit_16(540); -emit_16(605); -emit_16(541); -emit_16(606); -emit_16(542); -emit_16(606); -emit_16(541); -emit_16(606); -emit_16(542); -emit_16(607); -emit_16(543); -emit_16(607); -emit_16(542); -emit_16(607); -emit_16(543); -emit_16(608); -emit_16(544); -emit_16(608); -emit_16(543); -emit_16(608); -emit_16(544); -emit_16(609); -emit_16(545); -emit_16(609); -emit_16(544); -emit_16(609); -emit_16(545); -emit_16(610); -emit_16(546); -emit_16(610); -emit_16(545); -emit_16(610); -emit_16(546); -emit_16(611); -emit_16(547); -emit_16(611); -emit_16(546); -emit_16(611); -emit_16(547); -emit_16(612); -emit_16(548); -emit_16(612); -emit_16(547); -emit_16(612); -emit_16(548); -emit_16(613); -emit_16(549); -emit_16(613); -emit_16(548); -emit_16(613); -emit_16(549); -emit_16(614); -emit_16(550); -emit_16(614); -emit_16(549); -emit_16(614); -emit_16(550); -emit_16(615); -emit_16(551); -emit_16(615); -emit_16(550); -emit_16(615); -emit_16(551); -emit_16(616); -emit_16(552); -emit_16(616); -emit_16(551); -emit_16(616); -emit_16(552); -emit_16(617); -emit_16(553); -emit_16(617); -emit_16(552); -emit_16(617); -emit_16(553); -emit_16(618); -emit_16(554); -emit_16(618); -emit_16(553); -emit_16(618); -emit_16(554); -emit_16(619); -emit_16(555); -emit_16(619); -emit_16(554); -emit_16(619); -emit_16(555); -emit_16(620); -emit_16(556); -emit_16(620); -emit_16(555); -emit_16(620); -emit_16(556); -emit_16(621); -emit_16(557); -emit_16(621); -emit_16(556); -emit_16(621); -emit_16(557); -emit_16(622); -emit_16(558); -emit_16(622); -emit_16(557); -emit_16(622); -emit_16(558); -emit_16(623); -emit_16(559); -emit_16(623); -emit_16(558); -emit_16(623); -emit_16(559); -emit_16(624); -emit_16(560); -emit_16(624); -emit_16(559); -emit_16(624); -emit_16(560); -emit_16(625); -emit_16(561); -emit_16(625); -emit_16(560); -emit_16(625); -emit_16(561); -emit_16(626); -emit_16(562); -emit_16(626); -emit_16(561); -emit_16(626); -emit_16(562); -emit_16(627); -emit_16(563); -emit_16(627); -emit_16(562); -emit_16(627); -emit_16(563); -emit_16(628); -emit_16(564); -emit_16(628); -emit_16(563); -emit_16(628); -emit_16(564); -emit_16(629); -emit_16(565); -emit_16(629); -emit_16(564); -emit_16(629); -emit_16(565); -emit_16(630); -emit_16(566); -emit_16(630); -emit_16(565); -emit_16(630); -emit_16(566); -emit_16(631); -emit_16(567); -emit_16(631); -emit_16(566); -emit_16(631); -emit_16(567); -emit_16(632); -emit_16(568); -emit_16(632); -emit_16(567); -emit_16(632); -emit_16(568); -emit_16(633); -emit_16(569); -emit_16(633); -emit_16(568); -emit_16(633); -emit_16(569); -emit_16(634); -emit_16(570); -emit_16(634); -emit_16(569); -emit_16(634); -emit_16(570); -emit_16(635); -emit_16(571); -emit_16(635); -emit_16(570); -emit_16(635); -emit_16(571); -emit_16(636); -emit_16(572); -emit_16(636); -emit_16(571); -emit_16(636); -emit_16(572); -emit_16(637); -emit_16(573); -emit_16(637); -emit_16(572); -emit_16(637); -emit_16(573); -emit_16(638); -emit_16(574); -emit_16(638); -emit_16(573); -emit_16(638); -emit_16(574); -emit_16(639); -emit_16(575); -emit_16(639); -emit_16(574); -emit_16(640); -emit_16(576); -emit_16(641); -emit_16(577); -emit_16(641); -emit_16(576); -emit_16(641); -emit_16(577); -emit_16(642); -emit_16(578); -emit_16(642); -emit_16(577); -emit_16(642); -emit_16(578); -emit_16(643); -emit_16(579); -emit_16(643); -emit_16(578); -emit_16(643); -emit_16(579); -emit_16(644); -emit_16(580); -emit_16(644); -emit_16(579); -emit_16(644); -emit_16(580); -emit_16(645); -emit_16(581); -emit_16(645); -emit_16(580); -emit_16(645); -emit_16(581); -emit_16(646); -emit_16(582); -emit_16(646); -emit_16(581); -emit_16(646); -emit_16(582); -emit_16(647); -emit_16(583); -emit_16(647); -emit_16(582); -emit_16(647); -emit_16(583); -emit_16(648); -emit_16(584); -emit_16(648); -emit_16(583); -emit_16(648); -emit_16(584); -emit_16(649); -emit_16(585); -emit_16(649); -emit_16(584); -emit_16(649); -emit_16(585); -emit_16(650); -emit_16(586); -emit_16(650); -emit_16(585); -emit_16(650); -emit_16(586); -emit_16(651); -emit_16(587); -emit_16(651); -emit_16(586); -emit_16(651); -emit_16(587); -emit_16(652); -emit_16(588); -emit_16(652); -emit_16(587); -emit_16(652); -emit_16(588); -emit_16(653); -emit_16(589); -emit_16(653); -emit_16(588); -emit_16(653); -emit_16(589); -emit_16(654); -emit_16(590); -emit_16(654); -emit_16(589); -emit_16(654); -emit_16(590); -emit_16(655); -emit_16(591); -emit_16(655); -emit_16(590); -emit_16(655); -emit_16(591); -emit_16(656); -emit_16(592); -emit_16(656); -emit_16(591); -emit_16(656); -emit_16(592); -emit_16(657); -emit_16(593); -emit_16(657); -emit_16(592); -emit_16(657); -emit_16(593); -emit_16(658); -emit_16(594); -emit_16(658); -emit_16(593); -emit_16(658); -emit_16(594); -emit_16(659); -emit_16(595); -emit_16(659); -emit_16(594); -emit_16(659); -emit_16(595); -emit_16(660); -emit_16(596); -emit_16(660); -emit_16(595); -emit_16(660); -emit_16(596); -emit_16(661); -emit_16(597); -emit_16(661); -emit_16(596); -emit_16(661); -emit_16(597); -emit_16(662); -emit_16(598); -emit_16(662); -emit_16(597); -emit_16(662); -emit_16(598); -emit_16(663); -emit_16(599); -emit_16(663); -emit_16(598); -emit_16(663); -emit_16(599); -emit_16(664); -emit_16(600); -emit_16(664); -emit_16(599); -emit_16(664); -emit_16(600); -emit_16(665); -emit_16(601); -emit_16(665); -emit_16(600); -emit_16(665); -emit_16(601); -emit_16(666); -emit_16(602); -emit_16(666); -emit_16(601); -emit_16(666); -emit_16(602); -emit_16(667); -emit_16(603); -emit_16(667); -emit_16(602); -emit_16(667); -emit_16(603); -emit_16(668); -emit_16(604); -emit_16(668); -emit_16(603); -emit_16(668); -emit_16(604); -emit_16(669); -emit_16(605); -emit_16(669); -emit_16(604); -emit_16(669); -emit_16(605); -emit_16(670); -emit_16(606); -emit_16(670); -emit_16(605); -emit_16(670); -emit_16(606); -emit_16(671); -emit_16(607); -emit_16(671); -emit_16(606); -emit_16(671); -emit_16(607); -emit_16(672); -emit_16(608); -emit_16(672); -emit_16(607); -emit_16(672); -emit_16(608); -emit_16(673); -emit_16(609); -emit_16(673); -emit_16(608); -emit_16(673); -emit_16(609); -emit_16(674); -emit_16(610); -emit_16(674); -emit_16(609); -emit_16(674); -emit_16(610); -emit_16(675); -emit_16(611); -emit_16(675); -emit_16(610); -emit_16(675); -emit_16(611); -emit_16(676); -emit_16(612); -emit_16(676); -emit_16(611); -emit_16(676); -emit_16(612); -emit_16(677); -emit_16(613); -emit_16(677); -emit_16(612); -emit_16(677); -emit_16(613); -emit_16(678); -emit_16(614); -emit_16(678); -emit_16(613); -emit_16(678); -emit_16(614); -emit_16(679); -emit_16(615); -emit_16(679); -emit_16(614); -emit_16(679); -emit_16(615); -emit_16(680); -emit_16(616); -emit_16(680); -emit_16(615); -emit_16(680); -emit_16(616); -emit_16(681); -emit_16(617); -emit_16(681); -emit_16(616); -emit_16(681); -emit_16(617); -emit_16(682); -emit_16(618); -emit_16(682); -emit_16(617); -emit_16(682); -emit_16(618); -emit_16(683); -emit_16(619); -emit_16(683); -emit_16(618); -emit_16(683); -emit_16(619); -emit_16(684); -emit_16(620); -emit_16(684); -emit_16(619); -emit_16(684); -emit_16(620); -emit_16(685); -emit_16(621); -emit_16(685); -emit_16(620); -emit_16(685); -emit_16(621); -emit_16(686); -emit_16(622); -emit_16(686); -emit_16(621); -emit_16(686); -emit_16(622); -emit_16(687); -emit_16(623); -emit_16(687); -emit_16(622); -emit_16(687); -emit_16(623); -emit_16(688); -emit_16(624); -emit_16(688); -emit_16(623); -emit_16(688); -emit_16(624); -emit_16(689); -emit_16(625); -emit_16(689); -emit_16(624); -emit_16(689); -emit_16(625); -emit_16(690); -emit_16(626); -emit_16(690); -emit_16(625); -emit_16(690); -emit_16(626); -emit_16(691); -emit_16(627); -emit_16(691); -emit_16(626); -emit_16(691); -emit_16(627); -emit_16(692); -emit_16(628); -emit_16(692); -emit_16(627); -emit_16(692); -emit_16(628); -emit_16(693); -emit_16(629); -emit_16(693); -emit_16(628); -emit_16(693); -emit_16(629); -emit_16(694); -emit_16(630); -emit_16(694); -emit_16(629); -emit_16(694); -emit_16(630); -emit_16(695); -emit_16(631); -emit_16(695); -emit_16(630); -emit_16(695); -emit_16(631); -emit_16(696); -emit_16(632); -emit_16(696); -emit_16(631); -emit_16(696); -emit_16(632); -emit_16(697); -emit_16(633); -emit_16(697); -emit_16(632); -emit_16(697); -emit_16(633); -emit_16(698); -emit_16(634); -emit_16(698); -emit_16(633); -emit_16(698); -emit_16(634); -emit_16(699); -emit_16(635); -emit_16(699); -emit_16(634); -emit_16(699); -emit_16(635); -emit_16(700); -emit_16(636); -emit_16(700); -emit_16(635); -emit_16(700); -emit_16(636); -emit_16(701); -emit_16(637); -emit_16(701); -emit_16(636); -emit_16(701); -emit_16(637); -emit_16(702); -emit_16(638); -emit_16(702); -emit_16(637); -emit_16(702); -emit_16(638); -emit_16(703); -emit_16(639); -emit_16(703); -emit_16(638); -emit_16(704); -emit_16(640); -emit_16(705); -emit_16(641); -emit_16(705); -emit_16(640); -emit_16(705); -emit_16(641); -emit_16(706); -emit_16(642); -emit_16(706); -emit_16(641); -emit_16(706); -emit_16(642); -emit_16(707); -emit_16(643); -emit_16(707); -emit_16(642); -emit_16(707); -emit_16(643); -emit_16(708); -emit_16(644); -emit_16(708); -emit_16(643); -emit_16(708); -emit_16(644); -emit_16(709); -emit_16(645); -emit_16(709); -emit_16(644); -emit_16(709); -emit_16(645); -emit_16(710); -emit_16(646); -emit_16(710); -emit_16(645); -emit_16(710); -emit_16(646); -emit_16(711); -emit_16(647); -emit_16(711); -emit_16(646); -emit_16(711); -emit_16(647); -emit_16(712); -emit_16(648); -emit_16(712); -emit_16(647); -emit_16(712); -emit_16(648); -emit_16(713); -emit_16(649); -emit_16(713); -emit_16(648); -emit_16(713); -emit_16(649); -emit_16(714); -emit_16(650); -emit_16(714); -emit_16(649); -emit_16(714); -emit_16(650); -emit_16(715); -emit_16(651); -emit_16(715); -emit_16(650); -emit_16(715); -emit_16(651); -emit_16(716); -emit_16(652); -emit_16(716); -emit_16(651); -emit_16(716); -emit_16(652); -emit_16(717); -emit_16(653); -emit_16(717); -emit_16(652); -emit_16(717); -emit_16(653); -emit_16(718); -emit_16(654); -emit_16(718); -emit_16(653); -emit_16(718); -emit_16(654); -emit_16(719); -emit_16(655); -emit_16(719); -emit_16(654); -emit_16(719); -emit_16(655); -emit_16(720); -emit_16(656); -emit_16(720); -emit_16(655); -emit_16(720); -emit_16(656); -emit_16(721); -emit_16(657); -emit_16(721); -emit_16(656); -emit_16(721); -emit_16(657); -emit_16(722); -emit_16(658); -emit_16(722); -emit_16(657); -emit_16(722); -emit_16(658); -emit_16(723); -emit_16(659); -emit_16(723); -emit_16(658); -emit_16(723); -emit_16(659); -emit_16(724); -emit_16(660); -emit_16(724); -emit_16(659); -emit_16(724); -emit_16(660); -emit_16(725); -emit_16(661); -emit_16(725); -emit_16(660); -emit_16(725); -emit_16(661); -emit_16(726); -emit_16(662); -emit_16(726); -emit_16(661); -emit_16(726); -emit_16(662); -emit_16(727); -emit_16(663); -emit_16(727); -emit_16(662); -emit_16(727); -emit_16(663); -emit_16(728); -emit_16(664); -emit_16(728); -emit_16(663); -emit_16(728); -emit_16(664); -emit_16(729); -emit_16(665); -emit_16(729); -emit_16(664); -emit_16(729); -emit_16(665); -emit_16(730); -emit_16(666); -emit_16(730); -emit_16(665); -emit_16(730); -emit_16(666); -emit_16(731); -emit_16(667); -emit_16(731); -emit_16(666); -emit_16(731); -emit_16(667); -emit_16(732); -emit_16(668); -emit_16(732); -emit_16(667); -emit_16(732); -emit_16(668); -emit_16(733); -emit_16(669); -emit_16(733); -emit_16(668); -emit_16(733); -emit_16(669); -emit_16(734); -emit_16(670); -emit_16(734); -emit_16(669); -emit_16(734); -emit_16(670); -emit_16(735); -emit_16(671); -emit_16(735); -emit_16(670); -emit_16(735); -emit_16(671); -emit_16(736); -emit_16(672); -emit_16(736); -emit_16(671); -emit_16(736); -emit_16(672); -emit_16(737); -emit_16(673); -emit_16(737); -emit_16(672); -emit_16(737); -emit_16(673); -emit_16(738); -emit_16(674); -emit_16(738); -emit_16(673); -emit_16(738); -emit_16(674); -emit_16(739); -emit_16(675); -emit_16(739); -emit_16(674); -emit_16(739); -emit_16(675); -emit_16(740); -emit_16(676); -emit_16(740); -emit_16(675); -emit_16(740); -emit_16(676); -emit_16(741); -emit_16(677); -emit_16(741); -emit_16(676); -emit_16(741); -emit_16(677); -emit_16(742); -emit_16(678); -emit_16(742); -emit_16(677); -emit_16(742); -emit_16(678); -emit_16(743); -emit_16(679); -emit_16(743); -emit_16(678); -emit_16(743); -emit_16(679); -emit_16(744); -emit_16(680); -emit_16(744); -emit_16(679); -emit_16(744); -emit_16(680); -emit_16(745); -emit_16(681); -emit_16(745); -emit_16(680); -emit_16(745); -emit_16(681); -emit_16(746); -emit_16(682); -emit_16(746); -emit_16(681); -emit_16(746); -emit_16(682); -emit_16(747); -emit_16(683); -emit_16(747); -emit_16(682); -emit_16(747); -emit_16(683); -emit_16(748); -emit_16(684); -emit_16(748); -emit_16(683); -emit_16(748); -emit_16(684); -emit_16(749); -emit_16(685); -emit_16(749); -emit_16(684); -emit_16(749); -emit_16(685); -emit_16(750); -emit_16(686); -emit_16(750); -emit_16(685); -emit_16(750); -emit_16(686); -emit_16(751); -emit_16(687); -emit_16(751); -emit_16(686); -emit_16(751); -emit_16(687); -emit_16(752); -emit_16(688); -emit_16(752); -emit_16(687); -emit_16(752); -emit_16(688); -emit_16(753); -emit_16(689); -emit_16(753); -emit_16(688); -emit_16(753); -emit_16(689); -emit_16(754); -emit_16(690); -emit_16(754); -emit_16(689); -emit_16(754); -emit_16(690); -emit_16(755); -emit_16(691); -emit_16(755); -emit_16(690); -emit_16(755); -emit_16(691); -emit_16(756); -emit_16(692); -emit_16(756); -emit_16(691); -emit_16(756); -emit_16(692); -emit_16(757); -emit_16(693); -emit_16(757); -emit_16(692); -emit_16(757); -emit_16(693); -emit_16(758); -emit_16(694); -emit_16(758); -emit_16(693); -emit_16(758); -emit_16(694); -emit_16(759); -emit_16(695); -emit_16(759); -emit_16(694); -emit_16(759); -emit_16(695); -emit_16(760); -emit_16(696); -emit_16(760); -emit_16(695); -emit_16(760); -emit_16(696); -emit_16(761); -emit_16(697); -emit_16(761); -emit_16(696); -emit_16(761); -emit_16(697); -emit_16(762); -emit_16(698); -emit_16(762); -emit_16(697); -emit_16(762); -emit_16(698); -emit_16(763); -emit_16(699); -emit_16(763); -emit_16(698); -emit_16(763); -emit_16(699); -emit_16(764); -emit_16(700); -emit_16(764); -emit_16(699); -emit_16(764); -emit_16(700); -emit_16(765); -emit_16(701); -emit_16(765); -emit_16(700); -emit_16(765); -emit_16(701); -emit_16(766); -emit_16(702); -emit_16(766); -emit_16(701); -emit_16(766); -emit_16(702); -emit_16(767); -emit_16(703); -emit_16(767); -emit_16(702); -emit_16(768); -emit_16(704); -emit_16(769); -emit_16(705); -emit_16(769); -emit_16(704); -emit_16(769); -emit_16(705); -emit_16(770); -emit_16(706); -emit_16(770); -emit_16(705); -emit_16(770); -emit_16(706); -emit_16(771); -emit_16(707); -emit_16(771); -emit_16(706); -emit_16(771); -emit_16(707); -emit_16(772); -emit_16(708); -emit_16(772); -emit_16(707); -emit_16(772); -emit_16(708); -emit_16(773); -emit_16(709); -emit_16(773); -emit_16(708); -emit_16(773); -emit_16(709); -emit_16(774); -emit_16(710); -emit_16(774); -emit_16(709); -emit_16(774); -emit_16(710); -emit_16(775); -emit_16(711); -emit_16(775); -emit_16(710); -emit_16(775); -emit_16(711); -emit_16(776); -emit_16(712); -emit_16(776); -emit_16(711); -emit_16(776); -emit_16(712); -emit_16(777); -emit_16(713); -emit_16(777); -emit_16(712); -emit_16(777); -emit_16(713); -emit_16(778); -emit_16(714); -emit_16(778); -emit_16(713); -emit_16(778); -emit_16(714); -emit_16(779); -emit_16(715); -emit_16(779); -emit_16(714); -emit_16(779); -emit_16(715); -emit_16(780); -emit_16(716); -emit_16(780); -emit_16(715); -emit_16(780); -emit_16(716); -emit_16(781); -emit_16(717); -emit_16(781); -emit_16(716); -emit_16(781); -emit_16(717); -emit_16(782); -emit_16(718); -emit_16(782); -emit_16(717); -emit_16(782); -emit_16(718); -emit_16(783); -emit_16(719); -emit_16(783); -emit_16(718); -emit_16(783); -emit_16(719); -emit_16(784); -emit_16(720); -emit_16(784); -emit_16(719); -emit_16(784); -emit_16(720); -emit_16(785); -emit_16(721); -emit_16(785); -emit_16(720); -emit_16(785); -emit_16(721); -emit_16(786); -emit_16(722); -emit_16(786); -emit_16(721); -emit_16(786); -emit_16(722); -emit_16(787); -emit_16(723); -emit_16(787); -emit_16(722); -emit_16(787); -emit_16(723); -emit_16(788); -emit_16(724); -emit_16(788); -emit_16(723); -emit_16(788); -emit_16(724); -emit_16(789); -emit_16(725); -emit_16(789); -emit_16(724); -emit_16(789); -emit_16(725); -emit_16(790); -emit_16(726); -emit_16(790); -emit_16(725); -emit_16(790); -emit_16(726); -emit_16(791); -emit_16(727); -emit_16(791); -emit_16(726); -emit_16(791); -emit_16(727); -emit_16(792); -emit_16(728); -emit_16(792); -emit_16(727); -emit_16(792); -emit_16(728); -emit_16(793); -emit_16(729); -emit_16(793); -emit_16(728); -emit_16(793); -emit_16(729); -emit_16(794); -emit_16(730); -emit_16(794); -emit_16(729); -emit_16(794); -emit_16(730); -emit_16(795); -emit_16(731); -emit_16(795); -emit_16(730); -emit_16(795); -emit_16(731); -emit_16(796); -emit_16(732); -emit_16(796); -emit_16(731); -emit_16(796); -emit_16(732); -emit_16(797); -emit_16(733); -emit_16(797); -emit_16(732); -emit_16(797); -emit_16(733); -emit_16(798); -emit_16(734); -emit_16(798); -emit_16(733); -emit_16(798); -emit_16(734); -emit_16(799); -emit_16(735); -emit_16(799); -emit_16(734); -emit_16(799); -emit_16(735); -emit_16(800); -emit_16(736); -emit_16(800); -emit_16(735); -emit_16(800); -emit_16(736); -emit_16(801); -emit_16(737); -emit_16(801); -emit_16(736); -emit_16(801); -emit_16(737); -emit_16(802); -emit_16(738); -emit_16(802); -emit_16(737); -emit_16(802); -emit_16(738); -emit_16(803); -emit_16(739); -emit_16(803); -emit_16(738); -emit_16(803); -emit_16(739); -emit_16(804); -emit_16(740); -emit_16(804); -emit_16(739); -emit_16(804); -emit_16(740); -emit_16(805); -emit_16(741); -emit_16(805); -emit_16(740); -emit_16(805); -emit_16(741); -emit_16(806); -emit_16(742); -emit_16(806); -emit_16(741); -emit_16(806); -emit_16(742); -emit_16(807); -emit_16(743); -emit_16(807); -emit_16(742); -emit_16(807); -emit_16(743); -emit_16(808); -emit_16(744); -emit_16(808); -emit_16(743); -emit_16(808); -emit_16(744); -emit_16(809); -emit_16(745); -emit_16(809); -emit_16(744); -emit_16(809); -emit_16(745); -emit_16(810); -emit_16(746); -emit_16(810); -emit_16(745); -emit_16(810); -emit_16(746); -emit_16(811); -emit_16(747); -emit_16(811); -emit_16(746); -emit_16(811); -emit_16(747); -emit_16(812); -emit_16(748); -emit_16(812); -emit_16(747); -emit_16(812); -emit_16(748); -emit_16(813); -emit_16(749); -emit_16(813); -emit_16(748); -emit_16(813); -emit_16(749); -emit_16(814); -emit_16(750); -emit_16(814); -emit_16(749); -emit_16(814); -emit_16(750); -emit_16(815); -emit_16(751); -emit_16(815); -emit_16(750); -emit_16(815); -emit_16(751); -emit_16(816); -emit_16(752); -emit_16(816); -emit_16(751); -emit_16(816); -emit_16(752); -emit_16(817); -emit_16(753); -emit_16(817); -emit_16(752); -emit_16(817); -emit_16(753); -emit_16(818); -emit_16(754); -emit_16(818); -emit_16(753); -emit_16(818); -emit_16(754); -emit_16(819); -emit_16(755); -emit_16(819); -emit_16(754); -emit_16(819); -emit_16(755); -emit_16(820); -emit_16(756); -emit_16(820); -emit_16(755); -emit_16(820); -emit_16(756); -emit_16(821); -emit_16(757); -emit_16(821); -emit_16(756); -emit_16(821); -emit_16(757); -emit_16(822); -emit_16(758); -emit_16(822); -emit_16(757); -emit_16(822); -emit_16(758); -emit_16(823); -emit_16(759); -emit_16(823); -emit_16(758); -emit_16(823); -emit_16(759); -emit_16(824); -emit_16(760); -emit_16(824); -emit_16(759); -emit_16(824); -emit_16(760); -emit_16(825); -emit_16(761); -emit_16(825); -emit_16(760); -emit_16(825); -emit_16(761); -emit_16(826); -emit_16(762); -emit_16(826); -emit_16(761); -emit_16(826); -emit_16(762); -emit_16(827); -emit_16(763); -emit_16(827); -emit_16(762); -emit_16(827); -emit_16(763); -emit_16(828); -emit_16(764); -emit_16(828); -emit_16(763); -emit_16(828); -emit_16(764); -emit_16(829); -emit_16(765); -emit_16(829); -emit_16(764); -emit_16(829); -emit_16(765); -emit_16(830); -emit_16(766); -emit_16(830); -emit_16(765); -emit_16(830); -emit_16(766); -emit_16(831); -emit_16(767); -emit_16(831); -emit_16(766); -emit_16(832); -emit_16(768); -emit_16(833); -emit_16(769); -emit_16(833); -emit_16(768); -emit_16(833); -emit_16(769); -emit_16(834); -emit_16(770); -emit_16(834); -emit_16(769); -emit_16(834); -emit_16(770); -emit_16(835); -emit_16(771); -emit_16(835); -emit_16(770); -emit_16(835); -emit_16(771); -emit_16(836); -emit_16(772); -emit_16(836); -emit_16(771); -emit_16(836); -emit_16(772); -emit_16(837); -emit_16(773); -emit_16(837); -emit_16(772); -emit_16(837); -emit_16(773); -emit_16(838); -emit_16(774); -emit_16(838); -emit_16(773); -emit_16(838); -emit_16(774); -emit_16(839); -emit_16(775); -emit_16(839); -emit_16(774); -emit_16(839); -emit_16(775); -emit_16(840); -emit_16(776); -emit_16(840); -emit_16(775); -emit_16(840); -emit_16(776); -emit_16(841); -emit_16(777); -emit_16(841); -emit_16(776); -emit_16(841); -emit_16(777); -emit_16(842); -emit_16(778); -emit_16(842); -emit_16(777); -emit_16(842); -emit_16(778); -emit_16(843); -emit_16(779); -emit_16(843); -emit_16(778); -emit_16(843); -emit_16(779); -emit_16(844); -emit_16(780); -emit_16(844); -emit_16(779); -emit_16(844); -emit_16(780); -emit_16(845); -emit_16(781); -emit_16(845); -emit_16(780); -emit_16(845); -emit_16(781); -emit_16(846); -emit_16(782); -emit_16(846); -emit_16(781); -emit_16(846); -emit_16(782); -emit_16(847); -emit_16(783); -emit_16(847); -emit_16(782); -emit_16(847); -emit_16(783); -emit_16(848); -emit_16(784); -emit_16(848); -emit_16(783); -emit_16(848); -emit_16(784); -emit_16(849); -emit_16(785); -emit_16(849); -emit_16(784); -emit_16(849); -emit_16(785); -emit_16(850); -emit_16(786); -emit_16(850); -emit_16(785); -emit_16(850); -emit_16(786); -emit_16(851); -emit_16(787); -emit_16(851); -emit_16(786); -emit_16(851); -emit_16(787); -emit_16(852); -emit_16(788); -emit_16(852); -emit_16(787); -emit_16(852); -emit_16(788); -emit_16(853); -emit_16(789); -emit_16(853); -emit_16(788); -emit_16(853); -emit_16(789); -emit_16(854); -emit_16(790); -emit_16(854); -emit_16(789); -emit_16(854); -emit_16(790); -emit_16(855); -emit_16(791); -emit_16(855); -emit_16(790); -emit_16(855); -emit_16(791); -emit_16(856); -emit_16(792); -emit_16(856); -emit_16(791); -emit_16(856); -emit_16(792); -emit_16(857); -emit_16(793); -emit_16(857); -emit_16(792); -emit_16(857); -emit_16(793); -emit_16(858); -emit_16(794); -emit_16(858); -emit_16(793); -emit_16(858); -emit_16(794); -emit_16(859); -emit_16(795); -emit_16(859); -emit_16(794); -emit_16(859); -emit_16(795); -emit_16(860); -emit_16(796); -emit_16(860); -emit_16(795); -emit_16(860); -emit_16(796); -emit_16(861); -emit_16(797); -emit_16(861); -emit_16(796); -emit_16(861); -emit_16(797); -emit_16(862); -emit_16(798); -emit_16(862); -emit_16(797); -emit_16(862); -emit_16(798); -emit_16(863); -emit_16(799); -emit_16(863); -emit_16(798); -emit_16(863); -emit_16(799); -emit_16(864); -emit_16(800); -emit_16(864); -emit_16(799); -emit_16(864); -emit_16(800); -emit_16(865); -emit_16(801); -emit_16(865); -emit_16(800); -emit_16(865); -emit_16(801); -emit_16(866); -emit_16(802); -emit_16(866); -emit_16(801); -emit_16(866); -emit_16(802); -emit_16(867); -emit_16(803); -emit_16(867); -emit_16(802); -emit_16(867); -emit_16(803); -emit_16(868); -emit_16(804); -emit_16(868); -emit_16(803); -emit_16(868); -emit_16(804); -emit_16(869); -emit_16(805); -emit_16(869); -emit_16(804); -emit_16(869); -emit_16(805); -emit_16(870); -emit_16(806); -emit_16(870); -emit_16(805); -emit_16(870); -emit_16(806); -emit_16(871); -emit_16(807); -emit_16(871); -emit_16(806); -emit_16(871); -emit_16(807); -emit_16(872); -emit_16(808); -emit_16(872); -emit_16(807); -emit_16(872); -emit_16(808); -emit_16(873); -emit_16(809); -emit_16(873); -emit_16(808); -emit_16(873); -emit_16(809); -emit_16(874); -emit_16(810); -emit_16(874); -emit_16(809); -emit_16(874); -emit_16(810); -emit_16(875); -emit_16(811); -emit_16(875); -emit_16(810); -emit_16(875); -emit_16(811); -emit_16(876); -emit_16(812); -emit_16(876); -emit_16(811); -emit_16(876); -emit_16(812); -emit_16(877); -emit_16(813); -emit_16(877); -emit_16(812); -emit_16(877); -emit_16(813); -emit_16(878); -emit_16(814); -emit_16(878); -emit_16(813); -emit_16(878); -emit_16(814); -emit_16(879); -emit_16(815); -emit_16(879); -emit_16(814); -emit_16(879); -emit_16(815); -emit_16(880); -emit_16(816); -emit_16(880); -emit_16(815); -emit_16(880); -emit_16(816); -emit_16(881); -emit_16(817); -emit_16(881); -emit_16(816); -emit_16(881); -emit_16(817); -emit_16(882); -emit_16(818); -emit_16(882); -emit_16(817); -emit_16(882); -emit_16(818); -emit_16(883); -emit_16(819); -emit_16(883); -emit_16(818); -emit_16(883); -emit_16(819); -emit_16(884); -emit_16(820); -emit_16(884); -emit_16(819); -emit_16(884); -emit_16(820); -emit_16(885); -emit_16(821); -emit_16(885); -emit_16(820); -emit_16(885); -emit_16(821); -emit_16(886); -emit_16(822); -emit_16(886); -emit_16(821); -emit_16(886); -emit_16(822); -emit_16(887); -emit_16(823); -emit_16(887); -emit_16(822); -emit_16(887); -emit_16(823); -emit_16(888); -emit_16(824); -emit_16(888); -emit_16(823); -emit_16(888); -emit_16(824); -emit_16(889); -emit_16(825); -emit_16(889); -emit_16(824); -emit_16(889); -emit_16(825); -emit_16(890); -emit_16(826); -emit_16(890); -emit_16(825); -emit_16(890); -emit_16(826); -emit_16(891); -emit_16(827); -emit_16(891); -emit_16(826); -emit_16(891); -emit_16(827); -emit_16(892); -emit_16(828); -emit_16(892); -emit_16(827); -emit_16(892); -emit_16(828); -emit_16(893); -emit_16(829); -emit_16(893); -emit_16(828); -emit_16(893); -emit_16(829); -emit_16(894); -emit_16(830); -emit_16(894); -emit_16(829); -emit_16(894); -emit_16(830); -emit_16(895); -emit_16(831); -emit_16(895); -emit_16(830); -emit_16(896); -emit_16(832); -emit_16(897); -emit_16(833); -emit_16(897); -emit_16(832); -emit_16(897); -emit_16(833); -emit_16(898); -emit_16(834); -emit_16(898); -emit_16(833); -emit_16(898); -emit_16(834); -emit_16(899); -emit_16(835); -emit_16(899); -emit_16(834); -emit_16(899); -emit_16(835); -emit_16(900); -emit_16(836); -emit_16(900); -emit_16(835); -emit_16(900); -emit_16(836); -emit_16(901); -emit_16(837); -emit_16(901); -emit_16(836); -emit_16(901); -emit_16(837); -emit_16(902); -emit_16(838); -emit_16(902); -emit_16(837); -emit_16(902); -emit_16(838); -emit_16(903); -emit_16(839); -emit_16(903); -emit_16(838); -emit_16(903); -emit_16(839); -emit_16(904); -emit_16(840); -emit_16(904); -emit_16(839); -emit_16(904); -emit_16(840); -emit_16(905); -emit_16(841); -emit_16(905); -emit_16(840); -emit_16(905); -emit_16(841); -emit_16(906); -emit_16(842); -emit_16(906); -emit_16(841); -emit_16(906); -emit_16(842); -emit_16(907); -emit_16(843); -emit_16(907); -emit_16(842); -emit_16(907); -emit_16(843); -emit_16(908); -emit_16(844); -emit_16(908); -emit_16(843); -emit_16(908); -emit_16(844); -emit_16(909); -emit_16(845); -emit_16(909); -emit_16(844); -emit_16(909); -emit_16(845); -emit_16(910); -emit_16(846); -emit_16(910); -emit_16(845); -emit_16(910); -emit_16(846); -emit_16(911); -emit_16(847); -emit_16(911); -emit_16(846); -emit_16(911); -emit_16(847); -emit_16(912); -emit_16(848); -emit_16(912); -emit_16(847); -emit_16(912); -emit_16(848); -emit_16(913); -emit_16(849); -emit_16(913); -emit_16(848); -emit_16(913); -emit_16(849); -emit_16(914); -emit_16(850); -emit_16(914); -emit_16(849); -emit_16(914); -emit_16(850); -emit_16(915); -emit_16(851); -emit_16(915); -emit_16(850); -emit_16(915); -emit_16(851); -emit_16(916); -emit_16(852); -emit_16(916); -emit_16(851); -emit_16(916); -emit_16(852); -emit_16(917); -emit_16(853); -emit_16(917); -emit_16(852); -emit_16(917); -emit_16(853); -emit_16(918); -emit_16(854); -emit_16(918); -emit_16(853); -emit_16(918); -emit_16(854); -emit_16(919); -emit_16(855); -emit_16(919); -emit_16(854); -emit_16(919); -emit_16(855); -emit_16(920); -emit_16(856); -emit_16(920); -emit_16(855); -emit_16(920); -emit_16(856); -emit_16(921); -emit_16(857); -emit_16(921); -emit_16(856); -emit_16(921); -emit_16(857); -emit_16(922); -emit_16(858); -emit_16(922); -emit_16(857); -emit_16(922); -emit_16(858); -emit_16(923); -emit_16(859); -emit_16(923); -emit_16(858); -emit_16(923); -emit_16(859); -emit_16(924); -emit_16(860); -emit_16(924); -emit_16(859); -emit_16(924); -emit_16(860); -emit_16(925); -emit_16(861); -emit_16(925); -emit_16(860); -emit_16(925); -emit_16(861); -emit_16(926); -emit_16(862); -emit_16(926); -emit_16(861); -emit_16(926); -emit_16(862); -emit_16(927); -emit_16(863); -emit_16(927); -emit_16(862); -emit_16(927); -emit_16(863); -emit_16(928); -emit_16(864); -emit_16(928); -emit_16(863); -emit_16(928); -emit_16(864); -emit_16(929); -emit_16(865); -emit_16(929); -emit_16(864); -emit_16(929); -emit_16(865); -emit_16(930); -emit_16(866); -emit_16(930); -emit_16(865); -emit_16(930); -emit_16(866); -emit_16(931); -emit_16(867); -emit_16(931); -emit_16(866); -emit_16(931); -emit_16(867); -emit_16(932); -emit_16(868); -emit_16(932); -emit_16(867); -emit_16(932); -emit_16(868); -emit_16(933); -emit_16(869); -emit_16(933); -emit_16(868); -emit_16(933); -emit_16(869); -emit_16(934); -emit_16(870); -emit_16(934); -emit_16(869); -emit_16(934); -emit_16(870); -emit_16(935); -emit_16(871); -emit_16(935); -emit_16(870); -emit_16(935); -emit_16(871); -emit_16(936); -emit_16(872); -emit_16(936); -emit_16(871); -emit_16(936); -emit_16(872); -emit_16(937); -emit_16(873); -emit_16(937); -emit_16(872); -emit_16(937); -emit_16(873); -emit_16(938); -emit_16(874); -emit_16(938); -emit_16(873); -emit_16(938); -emit_16(874); -emit_16(939); -emit_16(875); -emit_16(939); -emit_16(874); -emit_16(939); -emit_16(875); -emit_16(940); -emit_16(876); -emit_16(940); -emit_16(875); -emit_16(940); -emit_16(876); -emit_16(941); -emit_16(877); -emit_16(941); -emit_16(876); -emit_16(941); -emit_16(877); -emit_16(942); -emit_16(878); -emit_16(942); -emit_16(877); -emit_16(942); -emit_16(878); -emit_16(943); -emit_16(879); -emit_16(943); -emit_16(878); -emit_16(943); -emit_16(879); -emit_16(944); -emit_16(880); -emit_16(944); -emit_16(879); -emit_16(944); -emit_16(880); -emit_16(945); -emit_16(881); -emit_16(945); -emit_16(880); -emit_16(945); -emit_16(881); -emit_16(946); -emit_16(882); -emit_16(946); -emit_16(881); -emit_16(946); -emit_16(882); -emit_16(947); -emit_16(883); -emit_16(947); -emit_16(882); -emit_16(947); -emit_16(883); -emit_16(948); -emit_16(884); -emit_16(948); -emit_16(883); -emit_16(948); -emit_16(884); -emit_16(949); -emit_16(885); -emit_16(949); -emit_16(884); -emit_16(949); -emit_16(885); -emit_16(950); -emit_16(886); -emit_16(950); -emit_16(885); -emit_16(950); -emit_16(886); -emit_16(951); -emit_16(887); -emit_16(951); -emit_16(886); -emit_16(951); -emit_16(887); -emit_16(952); -emit_16(888); -emit_16(952); -emit_16(887); -emit_16(952); -emit_16(888); -emit_16(953); -emit_16(889); -emit_16(953); -emit_16(888); -emit_16(953); -emit_16(889); -emit_16(954); -emit_16(890); -emit_16(954); -emit_16(889); -emit_16(954); -emit_16(890); -emit_16(955); -emit_16(891); -emit_16(955); -emit_16(890); -emit_16(955); -emit_16(891); -emit_16(956); -emit_16(892); -emit_16(956); -emit_16(891); -emit_16(956); -emit_16(892); -emit_16(957); -emit_16(893); -emit_16(957); -emit_16(892); -emit_16(957); -emit_16(893); -emit_16(958); -emit_16(894); -emit_16(958); -emit_16(893); -emit_16(958); -emit_16(894); -emit_16(959); -emit_16(895); -emit_16(959); -emit_16(894); -emit_16(960); -emit_16(896); -emit_16(961); -emit_16(897); -emit_16(961); -emit_16(896); -emit_16(961); -emit_16(897); -emit_16(962); -emit_16(898); -emit_16(962); -emit_16(897); -emit_16(962); -emit_16(898); -emit_16(963); -emit_16(899); -emit_16(963); -emit_16(898); -emit_16(963); -emit_16(899); -emit_16(964); -emit_16(900); -emit_16(964); -emit_16(899); -emit_16(964); -emit_16(900); -emit_16(965); -emit_16(901); -emit_16(965); -emit_16(900); -emit_16(965); -emit_16(901); -emit_16(966); -emit_16(902); -emit_16(966); -emit_16(901); -emit_16(966); -emit_16(902); -emit_16(967); -emit_16(903); -emit_16(967); -emit_16(902); -emit_16(967); -emit_16(903); -emit_16(968); -emit_16(904); -emit_16(968); -emit_16(903); -emit_16(968); -emit_16(904); -emit_16(969); -emit_16(905); -emit_16(969); -emit_16(904); -emit_16(969); -emit_16(905); -emit_16(970); -emit_16(906); -emit_16(970); -emit_16(905); -emit_16(970); -emit_16(906); -emit_16(971); -emit_16(907); -emit_16(971); -emit_16(906); -emit_16(971); -emit_16(907); -emit_16(972); -emit_16(908); -emit_16(972); -emit_16(907); -emit_16(972); -emit_16(908); -emit_16(973); -emit_16(909); -emit_16(973); -emit_16(908); -emit_16(973); -emit_16(909); -emit_16(974); -emit_16(910); -emit_16(974); -emit_16(909); -emit_16(974); -emit_16(910); -emit_16(975); -emit_16(911); -emit_16(975); -emit_16(910); -emit_16(975); -emit_16(911); -emit_16(976); -emit_16(912); -emit_16(976); -emit_16(911); -emit_16(976); -emit_16(912); -emit_16(977); -emit_16(913); -emit_16(977); -emit_16(912); -emit_16(977); -emit_16(913); -emit_16(978); -emit_16(914); -emit_16(978); -emit_16(913); -emit_16(978); -emit_16(914); -emit_16(979); -emit_16(915); -emit_16(979); -emit_16(914); -emit_16(979); -emit_16(915); -emit_16(980); -emit_16(916); -emit_16(980); -emit_16(915); -emit_16(980); -emit_16(916); -emit_16(981); -emit_16(917); -emit_16(981); -emit_16(916); -emit_16(981); -emit_16(917); -emit_16(982); -emit_16(918); -emit_16(982); -emit_16(917); -emit_16(982); -emit_16(918); -emit_16(983); -emit_16(919); -emit_16(983); -emit_16(918); -emit_16(983); -emit_16(919); -emit_16(984); -emit_16(920); -emit_16(984); -emit_16(919); -emit_16(984); -emit_16(920); -emit_16(985); -emit_16(921); -emit_16(985); -emit_16(920); -emit_16(985); -emit_16(921); -emit_16(986); -emit_16(922); -emit_16(986); -emit_16(921); -emit_16(986); -emit_16(922); -emit_16(987); -emit_16(923); -emit_16(987); -emit_16(922); -emit_16(987); -emit_16(923); -emit_16(988); -emit_16(924); -emit_16(988); -emit_16(923); -emit_16(988); -emit_16(924); -emit_16(989); -emit_16(925); -emit_16(989); -emit_16(924); -emit_16(989); -emit_16(925); -emit_16(990); -emit_16(926); -emit_16(990); -emit_16(925); -emit_16(990); -emit_16(926); -emit_16(991); -emit_16(927); -emit_16(991); -emit_16(926); -emit_16(991); -emit_16(927); -emit_16(992); -emit_16(928); -emit_16(992); -emit_16(927); -emit_16(992); -emit_16(928); -emit_16(993); -emit_16(929); -emit_16(993); -emit_16(928); -emit_16(993); -emit_16(929); -emit_16(994); -emit_16(930); -emit_16(994); -emit_16(929); -emit_16(994); -emit_16(930); -emit_16(995); -emit_16(931); -emit_16(995); -emit_16(930); -emit_16(995); -emit_16(931); -emit_16(996); -emit_16(932); -emit_16(996); -emit_16(931); -emit_16(996); -emit_16(932); -emit_16(997); -emit_16(933); -emit_16(997); -emit_16(932); -emit_16(997); -emit_16(933); -emit_16(998); -emit_16(934); -emit_16(998); -emit_16(933); -emit_16(998); -emit_16(934); -emit_16(999); -emit_16(935); -emit_16(999); -emit_16(934); -emit_16(999); -emit_16(935); -emit_16(1000); -emit_16(936); -emit_16(1000); -emit_16(935); -emit_16(1000); -emit_16(936); -emit_16(1001); -emit_16(937); -emit_16(1001); -emit_16(936); -emit_16(1001); -emit_16(937); -emit_16(1002); -emit_16(938); -emit_16(1002); -emit_16(937); -emit_16(1002); -emit_16(938); -emit_16(1003); -emit_16(939); -emit_16(1003); -emit_16(938); -emit_16(1003); -emit_16(939); -emit_16(1004); -emit_16(940); -emit_16(1004); -emit_16(939); -emit_16(1004); -emit_16(940); -emit_16(1005); -emit_16(941); -emit_16(1005); -emit_16(940); -emit_16(1005); -emit_16(941); -emit_16(1006); -emit_16(942); -emit_16(1006); -emit_16(941); -emit_16(1006); -emit_16(942); -emit_16(1007); -emit_16(943); -emit_16(1007); -emit_16(942); -emit_16(1007); -emit_16(943); -emit_16(1008); -emit_16(944); -emit_16(1008); -emit_16(943); -emit_16(1008); -emit_16(944); -emit_16(1009); -emit_16(945); -emit_16(1009); -emit_16(944); -emit_16(1009); -emit_16(945); -emit_16(1010); -emit_16(946); -emit_16(1010); -emit_16(945); -emit_16(1010); -emit_16(946); -emit_16(1011); -emit_16(947); -emit_16(1011); -emit_16(946); -emit_16(1011); -emit_16(947); -emit_16(1012); -emit_16(948); -emit_16(1012); -emit_16(947); -emit_16(1012); -emit_16(948); -emit_16(1013); -emit_16(949); -emit_16(1013); -emit_16(948); -emit_16(1013); -emit_16(949); -emit_16(1014); -emit_16(950); -emit_16(1014); -emit_16(949); -emit_16(1014); -emit_16(950); -emit_16(1015); -emit_16(951); -emit_16(1015); -emit_16(950); -emit_16(1015); -emit_16(951); -emit_16(1016); -emit_16(952); -emit_16(1016); -emit_16(951); -emit_16(1016); -emit_16(952); -emit_16(1017); -emit_16(953); -emit_16(1017); -emit_16(952); -emit_16(1017); -emit_16(953); -emit_16(1018); -emit_16(954); -emit_16(1018); -emit_16(953); -emit_16(1018); -emit_16(954); -emit_16(1019); -emit_16(955); -emit_16(1019); -emit_16(954); -emit_16(1019); -emit_16(955); -emit_16(1020); -emit_16(956); -emit_16(1020); -emit_16(955); -emit_16(1020); -emit_16(956); -emit_16(1021); -emit_16(957); -emit_16(1021); -emit_16(956); -emit_16(1021); -emit_16(957); -emit_16(1022); -emit_16(958); -emit_16(1022); -emit_16(957); -emit_16(1022); -emit_16(958); -emit_16(1023); -emit_16(959); -emit_16(1023); -emit_16(958); -emit_16(1024); -emit_16(960); -emit_16(1025); -emit_16(961); -emit_16(1025); -emit_16(960); -emit_16(1025); -emit_16(961); -emit_16(1026); -emit_16(962); -emit_16(1026); -emit_16(961); -emit_16(1026); -emit_16(962); -emit_16(1027); -emit_16(963); -emit_16(1027); -emit_16(962); -emit_16(1027); -emit_16(963); -emit_16(1028); -emit_16(964); -emit_16(1028); -emit_16(963); -emit_16(1028); -emit_16(964); -emit_16(1029); -emit_16(965); -emit_16(1029); -emit_16(964); -emit_16(1029); -emit_16(965); -emit_16(1030); -emit_16(966); -emit_16(1030); -emit_16(965); -emit_16(1030); -emit_16(966); -emit_16(1031); -emit_16(967); -emit_16(1031); -emit_16(966); -emit_16(1031); -emit_16(967); -emit_16(1032); -emit_16(968); -emit_16(1032); -emit_16(967); -emit_16(1032); -emit_16(968); -emit_16(1033); -emit_16(969); -emit_16(1033); -emit_16(968); -emit_16(1033); -emit_16(969); -emit_16(1034); -emit_16(970); -emit_16(1034); -emit_16(969); -emit_16(1034); -emit_16(970); -emit_16(1035); -emit_16(971); -emit_16(1035); -emit_16(970); -emit_16(1035); -emit_16(971); -emit_16(1036); -emit_16(972); -emit_16(1036); -emit_16(971); -emit_16(1036); -emit_16(972); -emit_16(1037); -emit_16(973); -emit_16(1037); -emit_16(972); -emit_16(1037); -emit_16(973); -emit_16(1038); -emit_16(974); -emit_16(1038); -emit_16(973); -emit_16(1038); -emit_16(974); -emit_16(1039); -emit_16(975); -emit_16(1039); -emit_16(974); -emit_16(1039); -emit_16(975); -emit_16(1040); -emit_16(976); -emit_16(1040); -emit_16(975); -emit_16(1040); -emit_16(976); -emit_16(1041); -emit_16(977); -emit_16(1041); -emit_16(976); -emit_16(1041); -emit_16(977); -emit_16(1042); -emit_16(978); -emit_16(1042); -emit_16(977); -emit_16(1042); -emit_16(978); -emit_16(1043); -emit_16(979); -emit_16(1043); -emit_16(978); -emit_16(1043); -emit_16(979); -emit_16(1044); -emit_16(980); -emit_16(1044); -emit_16(979); -emit_16(1044); -emit_16(980); -emit_16(1045); -emit_16(981); -emit_16(1045); -emit_16(980); -emit_16(1045); -emit_16(981); -emit_16(1046); -emit_16(982); -emit_16(1046); -emit_16(981); -emit_16(1046); -emit_16(982); -emit_16(1047); -emit_16(983); -emit_16(1047); -emit_16(982); -emit_16(1047); -emit_16(983); -emit_16(1048); -emit_16(984); -emit_16(1048); -emit_16(983); -emit_16(1048); -emit_16(984); -emit_16(1049); -emit_16(985); -emit_16(1049); -emit_16(984); -emit_16(1049); -emit_16(985); -emit_16(1050); -emit_16(986); -emit_16(1050); -emit_16(985); -emit_16(1050); -emit_16(986); -emit_16(1051); -emit_16(987); -emit_16(1051); -emit_16(986); -emit_16(1051); -emit_16(987); -emit_16(1052); -emit_16(988); -emit_16(1052); -emit_16(987); -emit_16(1052); -emit_16(988); -emit_16(1053); -emit_16(989); -emit_16(1053); -emit_16(988); -emit_16(1053); -emit_16(989); -emit_16(1054); -emit_16(990); -emit_16(1054); -emit_16(989); -emit_16(1054); -emit_16(990); -emit_16(1055); -emit_16(991); -emit_16(1055); -emit_16(990); -emit_16(1055); -emit_16(991); -emit_16(1056); -emit_16(992); -emit_16(1056); -emit_16(991); -emit_16(1056); -emit_16(992); -emit_16(1057); -emit_16(993); -emit_16(1057); -emit_16(992); -emit_16(1057); -emit_16(993); -emit_16(1058); -emit_16(994); -emit_16(1058); -emit_16(993); -emit_16(1058); -emit_16(994); -emit_16(1059); -emit_16(995); -emit_16(1059); -emit_16(994); -emit_16(1059); -emit_16(995); -emit_16(1060); -emit_16(996); -emit_16(1060); -emit_16(995); -emit_16(1060); -emit_16(996); -emit_16(1061); -emit_16(997); -emit_16(1061); -emit_16(996); -emit_16(1061); -emit_16(997); -emit_16(1062); -emit_16(998); -emit_16(1062); -emit_16(997); -emit_16(1062); -emit_16(998); -emit_16(1063); -emit_16(999); -emit_16(1063); -emit_16(998); -emit_16(1063); -emit_16(999); -emit_16(1064); -emit_16(1000); -emit_16(1064); -emit_16(999); -emit_16(1064); -emit_16(1000); -emit_16(1065); -emit_16(1001); -emit_16(1065); -emit_16(1000); -emit_16(1065); -emit_16(1001); -emit_16(1066); -emit_16(1002); -emit_16(1066); -emit_16(1001); -emit_16(1066); -emit_16(1002); -emit_16(1067); -emit_16(1003); -emit_16(1067); -emit_16(1002); -emit_16(1067); -emit_16(1003); -emit_16(1068); -emit_16(1004); -emit_16(1068); -emit_16(1003); -emit_16(1068); -emit_16(1004); -emit_16(1069); -emit_16(1005); -emit_16(1069); -emit_16(1004); -emit_16(1069); -emit_16(1005); -emit_16(1070); -emit_16(1006); -emit_16(1070); -emit_16(1005); -emit_16(1070); -emit_16(1006); -emit_16(1071); -emit_16(1007); -emit_16(1071); -emit_16(1006); -emit_16(1071); -emit_16(1007); -emit_16(1072); -emit_16(1008); -emit_16(1072); -emit_16(1007); -emit_16(1072); -emit_16(1008); -emit_16(1073); -emit_16(1009); -emit_16(1073); -emit_16(1008); -emit_16(1073); -emit_16(1009); -emit_16(1074); -emit_16(1010); -emit_16(1074); -emit_16(1009); -emit_16(1074); -emit_16(1010); -emit_16(1075); -emit_16(1011); -emit_16(1075); -emit_16(1010); -emit_16(1075); -emit_16(1011); -emit_16(1076); -emit_16(1012); -emit_16(1076); -emit_16(1011); -emit_16(1076); -emit_16(1012); -emit_16(1077); -emit_16(1013); -emit_16(1077); -emit_16(1012); -emit_16(1077); -emit_16(1013); -emit_16(1078); -emit_16(1014); -emit_16(1078); -emit_16(1013); -emit_16(1078); -emit_16(1014); -emit_16(1079); -emit_16(1015); -emit_16(1079); -emit_16(1014); -emit_16(1079); -emit_16(1015); -emit_16(1080); -emit_16(1016); -emit_16(1080); -emit_16(1015); -emit_16(1080); -emit_16(1016); -emit_16(1081); -emit_16(1017); -emit_16(1081); -emit_16(1016); -emit_16(1081); -emit_16(1017); -emit_16(1082); -emit_16(1018); -emit_16(1082); -emit_16(1017); -emit_16(1082); -emit_16(1018); -emit_16(1083); -emit_16(1019); -emit_16(1083); -emit_16(1018); -emit_16(1083); -emit_16(1019); -emit_16(1084); -emit_16(1020); -emit_16(1084); -emit_16(1019); -emit_16(1084); -emit_16(1020); -emit_16(1085); -emit_16(1021); -emit_16(1085); -emit_16(1020); -emit_16(1085); -emit_16(1021); -emit_16(1086); -emit_16(1022); -emit_16(1086); -emit_16(1021); -emit_16(1086); -emit_16(1022); -emit_16(1087); -emit_16(1023); -emit_16(1087); -emit_16(1022); -emit_16(1088); -emit_16(1024); -emit_16(1089); -emit_16(1025); -emit_16(1089); -emit_16(1024); -emit_16(1089); -emit_16(1025); -emit_16(1090); -emit_16(1026); -emit_16(1090); -emit_16(1025); -emit_16(1090); -emit_16(1026); -emit_16(1091); -emit_16(1027); -emit_16(1091); -emit_16(1026); -emit_16(1091); -emit_16(1027); -emit_16(1092); -emit_16(1028); -emit_16(1092); -emit_16(1027); -emit_16(1092); -emit_16(1028); -emit_16(1093); -emit_16(1029); -emit_16(1093); -emit_16(1028); -emit_16(1093); -emit_16(1029); -emit_16(1094); -emit_16(1030); -emit_16(1094); -emit_16(1029); -emit_16(1094); -emit_16(1030); -emit_16(1095); -emit_16(1031); -emit_16(1095); -emit_16(1030); -emit_16(1095); -emit_16(1031); -emit_16(1096); -emit_16(1032); -emit_16(1096); -emit_16(1031); -emit_16(1096); -emit_16(1032); -emit_16(1097); -emit_16(1033); -emit_16(1097); -emit_16(1032); -emit_16(1097); -emit_16(1033); -emit_16(1098); -emit_16(1034); -emit_16(1098); -emit_16(1033); -emit_16(1098); -emit_16(1034); -emit_16(1099); -emit_16(1035); -emit_16(1099); -emit_16(1034); -emit_16(1099); -emit_16(1035); -emit_16(1100); -emit_16(1036); -emit_16(1100); -emit_16(1035); -emit_16(1100); -emit_16(1036); -emit_16(1101); -emit_16(1037); -emit_16(1101); -emit_16(1036); -emit_16(1101); -emit_16(1037); -emit_16(1102); -emit_16(1038); -emit_16(1102); -emit_16(1037); -emit_16(1102); -emit_16(1038); -emit_16(1103); -emit_16(1039); -emit_16(1103); -emit_16(1038); -emit_16(1103); -emit_16(1039); -emit_16(1104); -emit_16(1040); -emit_16(1104); -emit_16(1039); -emit_16(1104); -emit_16(1040); -emit_16(1105); -emit_16(1041); -emit_16(1105); -emit_16(1040); -emit_16(1105); -emit_16(1041); -emit_16(1106); -emit_16(1042); -emit_16(1106); -emit_16(1041); -emit_16(1106); -emit_16(1042); -emit_16(1107); -emit_16(1043); -emit_16(1107); -emit_16(1042); -emit_16(1107); -emit_16(1043); -emit_16(1108); -emit_16(1044); -emit_16(1108); -emit_16(1043); -emit_16(1108); -emit_16(1044); -emit_16(1109); -emit_16(1045); -emit_16(1109); -emit_16(1044); -emit_16(1109); -emit_16(1045); -emit_16(1110); -emit_16(1046); -emit_16(1110); -emit_16(1045); -emit_16(1110); -emit_16(1046); -emit_16(1111); -emit_16(1047); -emit_16(1111); -emit_16(1046); -emit_16(1111); -emit_16(1047); -emit_16(1112); -emit_16(1048); -emit_16(1112); -emit_16(1047); -emit_16(1112); -emit_16(1048); -emit_16(1113); -emit_16(1049); -emit_16(1113); -emit_16(1048); -emit_16(1113); -emit_16(1049); -emit_16(1114); -emit_16(1050); -emit_16(1114); -emit_16(1049); -emit_16(1114); -emit_16(1050); -emit_16(1115); -emit_16(1051); -emit_16(1115); -emit_16(1050); -emit_16(1115); -emit_16(1051); -emit_16(1116); -emit_16(1052); -emit_16(1116); -emit_16(1051); -emit_16(1116); -emit_16(1052); -emit_16(1117); -emit_16(1053); -emit_16(1117); -emit_16(1052); -emit_16(1117); -emit_16(1053); -emit_16(1118); -emit_16(1054); -emit_16(1118); -emit_16(1053); -emit_16(1118); -emit_16(1054); -emit_16(1119); -emit_16(1055); -emit_16(1119); -emit_16(1054); -emit_16(1119); -emit_16(1055); -emit_16(1120); -emit_16(1056); -emit_16(1120); -emit_16(1055); -emit_16(1120); -emit_16(1056); -emit_16(1121); -emit_16(1057); -emit_16(1121); -emit_16(1056); -emit_16(1121); -emit_16(1057); -emit_16(1122); -emit_16(1058); -emit_16(1122); -emit_16(1057); -emit_16(1122); -emit_16(1058); -emit_16(1123); -emit_16(1059); -emit_16(1123); -emit_16(1058); -emit_16(1123); -emit_16(1059); -emit_16(1124); -emit_16(1060); -emit_16(1124); -emit_16(1059); -emit_16(1124); -emit_16(1060); -emit_16(1125); -emit_16(1061); -emit_16(1125); -emit_16(1060); -emit_16(1125); -emit_16(1061); -emit_16(1126); -emit_16(1062); -emit_16(1126); -emit_16(1061); -emit_16(1126); -emit_16(1062); -emit_16(1127); -emit_16(1063); -emit_16(1127); -emit_16(1062); -emit_16(1127); -emit_16(1063); -emit_16(1128); -emit_16(1064); -emit_16(1128); -emit_16(1063); -emit_16(1128); -emit_16(1064); -emit_16(1129); -emit_16(1065); -emit_16(1129); -emit_16(1064); -emit_16(1129); -emit_16(1065); -emit_16(1130); -emit_16(1066); -emit_16(1130); -emit_16(1065); -emit_16(1130); -emit_16(1066); -emit_16(1131); -emit_16(1067); -emit_16(1131); -emit_16(1066); -emit_16(1131); -emit_16(1067); -emit_16(1132); -emit_16(1068); -emit_16(1132); -emit_16(1067); -emit_16(1132); -emit_16(1068); -emit_16(1133); -emit_16(1069); -emit_16(1133); -emit_16(1068); -emit_16(1133); -emit_16(1069); -emit_16(1134); -emit_16(1070); -emit_16(1134); -emit_16(1069); -emit_16(1134); -emit_16(1070); -emit_16(1135); -emit_16(1071); -emit_16(1135); -emit_16(1070); -emit_16(1135); -emit_16(1071); -emit_16(1136); -emit_16(1072); -emit_16(1136); -emit_16(1071); -emit_16(1136); -emit_16(1072); -emit_16(1137); -emit_16(1073); -emit_16(1137); -emit_16(1072); -emit_16(1137); -emit_16(1073); -emit_16(1138); -emit_16(1074); -emit_16(1138); -emit_16(1073); -emit_16(1138); -emit_16(1074); -emit_16(1139); -emit_16(1075); -emit_16(1139); -emit_16(1074); -emit_16(1139); -emit_16(1075); -emit_16(1140); -emit_16(1076); -emit_16(1140); -emit_16(1075); -emit_16(1140); -emit_16(1076); -emit_16(1141); -emit_16(1077); -emit_16(1141); -emit_16(1076); -emit_16(1141); -emit_16(1077); -emit_16(1142); -emit_16(1078); -emit_16(1142); -emit_16(1077); -emit_16(1142); -emit_16(1078); -emit_16(1143); -emit_16(1079); -emit_16(1143); -emit_16(1078); -emit_16(1143); -emit_16(1079); -emit_16(1144); -emit_16(1080); -emit_16(1144); -emit_16(1079); -emit_16(1144); -emit_16(1080); -emit_16(1145); -emit_16(1081); -emit_16(1145); -emit_16(1080); -emit_16(1145); -emit_16(1081); -emit_16(1146); -emit_16(1082); -emit_16(1146); -emit_16(1081); -emit_16(1146); -emit_16(1082); -emit_16(1147); -emit_16(1083); -emit_16(1147); -emit_16(1082); -emit_16(1147); -emit_16(1083); -emit_16(1148); -emit_16(1084); -emit_16(1148); -emit_16(1083); -emit_16(1148); -emit_16(1084); -emit_16(1149); -emit_16(1085); -emit_16(1149); -emit_16(1084); -emit_16(1149); -emit_16(1085); -emit_16(1150); -emit_16(1086); -emit_16(1150); -emit_16(1085); -emit_16(1150); -emit_16(1086); -emit_16(1151); -emit_16(1087); -emit_16(1151); -emit_16(1086); -emit_16(1152); -emit_16(1088); -emit_16(1153); -emit_16(1089); -emit_16(1153); -emit_16(1088); -emit_16(1153); -emit_16(1089); -emit_16(1154); -emit_16(1090); -emit_16(1154); -emit_16(1089); -emit_16(1154); -emit_16(1090); -emit_16(1155); -emit_16(1091); -emit_16(1155); -emit_16(1090); -emit_16(1155); -emit_16(1091); -emit_16(1156); -emit_16(1092); -emit_16(1156); -emit_16(1091); -emit_16(1156); -emit_16(1092); -emit_16(1157); -emit_16(1093); -emit_16(1157); -emit_16(1092); -emit_16(1157); -emit_16(1093); -emit_16(1158); -emit_16(1094); -emit_16(1158); -emit_16(1093); -emit_16(1158); -emit_16(1094); -emit_16(1159); -emit_16(1095); -emit_16(1159); -emit_16(1094); -emit_16(1159); -emit_16(1095); -emit_16(1160); -emit_16(1096); -emit_16(1160); -emit_16(1095); -emit_16(1160); -emit_16(1096); -emit_16(1161); -emit_16(1097); -emit_16(1161); -emit_16(1096); -emit_16(1161); -emit_16(1097); -emit_16(1162); -emit_16(1098); -emit_16(1162); -emit_16(1097); -emit_16(1162); -emit_16(1098); -emit_16(1163); -emit_16(1099); -emit_16(1163); -emit_16(1098); -emit_16(1163); -emit_16(1099); -emit_16(1164); -emit_16(1100); -emit_16(1164); -emit_16(1099); -emit_16(1164); -emit_16(1100); -emit_16(1165); -emit_16(1101); -emit_16(1165); -emit_16(1100); -emit_16(1165); -emit_16(1101); -emit_16(1166); -emit_16(1102); -emit_16(1166); -emit_16(1101); -emit_16(1166); -emit_16(1102); -emit_16(1167); -emit_16(1103); -emit_16(1167); -emit_16(1102); -emit_16(1167); -emit_16(1103); -emit_16(1168); -emit_16(1104); -emit_16(1168); -emit_16(1103); -emit_16(1168); -emit_16(1104); -emit_16(1169); -emit_16(1105); -emit_16(1169); -emit_16(1104); -emit_16(1169); -emit_16(1105); -emit_16(1170); -emit_16(1106); -emit_16(1170); -emit_16(1105); -emit_16(1170); -emit_16(1106); -emit_16(1171); -emit_16(1107); -emit_16(1171); -emit_16(1106); -emit_16(1171); -emit_16(1107); -emit_16(1172); -emit_16(1108); -emit_16(1172); -emit_16(1107); -emit_16(1172); -emit_16(1108); -emit_16(1173); -emit_16(1109); -emit_16(1173); -emit_16(1108); -emit_16(1173); -emit_16(1109); -emit_16(1174); -emit_16(1110); -emit_16(1174); -emit_16(1109); -emit_16(1174); -emit_16(1110); -emit_16(1175); -emit_16(1111); -emit_16(1175); -emit_16(1110); -emit_16(1175); -emit_16(1111); -emit_16(1176); -emit_16(1112); -emit_16(1176); -emit_16(1111); -emit_16(1176); -emit_16(1112); -emit_16(1177); -emit_16(1113); -emit_16(1177); -emit_16(1112); -emit_16(1177); -emit_16(1113); -emit_16(1178); -emit_16(1114); -emit_16(1178); -emit_16(1113); -emit_16(1178); -emit_16(1114); -emit_16(1179); -emit_16(1115); -emit_16(1179); -emit_16(1114); -emit_16(1179); -emit_16(1115); -emit_16(1180); -emit_16(1116); -emit_16(1180); -emit_16(1115); -emit_16(1180); -emit_16(1116); -emit_16(1181); -emit_16(1117); -emit_16(1181); -emit_16(1116); -emit_16(1181); -emit_16(1117); -emit_16(1182); -emit_16(1118); -emit_16(1182); -emit_16(1117); -emit_16(1182); -emit_16(1118); -emit_16(1183); -emit_16(1119); -emit_16(1183); -emit_16(1118); -emit_16(1183); -emit_16(1119); -emit_16(1184); -emit_16(1120); -emit_16(1184); -emit_16(1119); -emit_16(1184); -emit_16(1120); -emit_16(1185); -emit_16(1121); -emit_16(1185); -emit_16(1120); -emit_16(1185); -emit_16(1121); -emit_16(1186); -emit_16(1122); -emit_16(1186); -emit_16(1121); -emit_16(1186); -emit_16(1122); -emit_16(1187); -emit_16(1123); -emit_16(1187); -emit_16(1122); -emit_16(1187); -emit_16(1123); -emit_16(1188); -emit_16(1124); -emit_16(1188); -emit_16(1123); -emit_16(1188); -emit_16(1124); -emit_16(1189); -emit_16(1125); -emit_16(1189); -emit_16(1124); -emit_16(1189); -emit_16(1125); -emit_16(1190); -emit_16(1126); -emit_16(1190); -emit_16(1125); -emit_16(1190); -emit_16(1126); -emit_16(1191); -emit_16(1127); -emit_16(1191); -emit_16(1126); -emit_16(1191); -emit_16(1127); -emit_16(1192); -emit_16(1128); -emit_16(1192); -emit_16(1127); -emit_16(1192); -emit_16(1128); -emit_16(1193); -emit_16(1129); -emit_16(1193); -emit_16(1128); -emit_16(1193); -emit_16(1129); -emit_16(1194); -emit_16(1130); -emit_16(1194); -emit_16(1129); -emit_16(1194); -emit_16(1130); -emit_16(1195); -emit_16(1131); -emit_16(1195); -emit_16(1130); -emit_16(1195); -emit_16(1131); -emit_16(1196); -emit_16(1132); -emit_16(1196); -emit_16(1131); -emit_16(1196); -emit_16(1132); -emit_16(1197); -emit_16(1133); -emit_16(1197); -emit_16(1132); -emit_16(1197); -emit_16(1133); -emit_16(1198); -emit_16(1134); -emit_16(1198); -emit_16(1133); -emit_16(1198); -emit_16(1134); -emit_16(1199); -emit_16(1135); -emit_16(1199); -emit_16(1134); -emit_16(1199); -emit_16(1135); -emit_16(1200); -emit_16(1136); -emit_16(1200); -emit_16(1135); -emit_16(1200); -emit_16(1136); -emit_16(1201); -emit_16(1137); -emit_16(1201); -emit_16(1136); -emit_16(1201); -emit_16(1137); -emit_16(1202); -emit_16(1138); -emit_16(1202); -emit_16(1137); -emit_16(1202); -emit_16(1138); -emit_16(1203); -emit_16(1139); -emit_16(1203); -emit_16(1138); -emit_16(1203); -emit_16(1139); -emit_16(1204); -emit_16(1140); -emit_16(1204); -emit_16(1139); -emit_16(1204); -emit_16(1140); -emit_16(1205); -emit_16(1141); -emit_16(1205); -emit_16(1140); -emit_16(1205); -emit_16(1141); -emit_16(1206); -emit_16(1142); -emit_16(1206); -emit_16(1141); -emit_16(1206); -emit_16(1142); -emit_16(1207); -emit_16(1143); -emit_16(1207); -emit_16(1142); -emit_16(1207); -emit_16(1143); -emit_16(1208); -emit_16(1144); -emit_16(1208); -emit_16(1143); -emit_16(1208); -emit_16(1144); -emit_16(1209); -emit_16(1145); -emit_16(1209); -emit_16(1144); -emit_16(1209); -emit_16(1145); -emit_16(1210); -emit_16(1146); -emit_16(1210); -emit_16(1145); -emit_16(1210); -emit_16(1146); -emit_16(1211); -emit_16(1147); -emit_16(1211); -emit_16(1146); -emit_16(1211); -emit_16(1147); -emit_16(1212); -emit_16(1148); -emit_16(1212); -emit_16(1147); -emit_16(1212); -emit_16(1148); -emit_16(1213); -emit_16(1149); -emit_16(1213); -emit_16(1148); -emit_16(1213); -emit_16(1149); -emit_16(1214); -emit_16(1150); -emit_16(1214); -emit_16(1149); -emit_16(1214); -emit_16(1150); -emit_16(1215); -emit_16(1151); -emit_16(1215); -emit_16(1150); -emit_16(1216); -emit_16(1152); -emit_16(1217); -emit_16(1153); -emit_16(1217); -emit_16(1152); -emit_16(1217); -emit_16(1153); -emit_16(1218); -emit_16(1154); -emit_16(1218); -emit_16(1153); -emit_16(1218); -emit_16(1154); -emit_16(1219); -emit_16(1155); -emit_16(1219); -emit_16(1154); -emit_16(1219); -emit_16(1155); -emit_16(1220); -emit_16(1156); -emit_16(1220); -emit_16(1155); -emit_16(1220); -emit_16(1156); -emit_16(1221); -emit_16(1157); -emit_16(1221); -emit_16(1156); -emit_16(1221); -emit_16(1157); -emit_16(1222); -emit_16(1158); -emit_16(1222); -emit_16(1157); -emit_16(1222); -emit_16(1158); -emit_16(1223); -emit_16(1159); -emit_16(1223); -emit_16(1158); -emit_16(1223); -emit_16(1159); -emit_16(1224); -emit_16(1160); -emit_16(1224); -emit_16(1159); -emit_16(1224); -emit_16(1160); -emit_16(1225); -emit_16(1161); -emit_16(1225); -emit_16(1160); -emit_16(1225); -emit_16(1161); -emit_16(1226); -emit_16(1162); -emit_16(1226); -emit_16(1161); -emit_16(1226); -emit_16(1162); -emit_16(1227); -emit_16(1163); -emit_16(1227); -emit_16(1162); -emit_16(1227); -emit_16(1163); -emit_16(1228); -emit_16(1164); -emit_16(1228); -emit_16(1163); -emit_16(1228); -emit_16(1164); -emit_16(1229); -emit_16(1165); -emit_16(1229); -emit_16(1164); -emit_16(1229); -emit_16(1165); -emit_16(1230); -emit_16(1166); -emit_16(1230); -emit_16(1165); -emit_16(1230); -emit_16(1166); -emit_16(1231); -emit_16(1167); -emit_16(1231); -emit_16(1166); -emit_16(1231); -emit_16(1167); -emit_16(1232); -emit_16(1168); -emit_16(1232); -emit_16(1167); -emit_16(1232); -emit_16(1168); -emit_16(1233); -emit_16(1169); -emit_16(1233); -emit_16(1168); -emit_16(1233); -emit_16(1169); -emit_16(1234); -emit_16(1170); -emit_16(1234); -emit_16(1169); -emit_16(1234); -emit_16(1170); -emit_16(1235); -emit_16(1171); -emit_16(1235); -emit_16(1170); -emit_16(1235); -emit_16(1171); -emit_16(1236); -emit_16(1172); -emit_16(1236); -emit_16(1171); -emit_16(1236); -emit_16(1172); -emit_16(1237); -emit_16(1173); -emit_16(1237); -emit_16(1172); -emit_16(1237); -emit_16(1173); -emit_16(1238); -emit_16(1174); -emit_16(1238); -emit_16(1173); -emit_16(1238); -emit_16(1174); -emit_16(1239); -emit_16(1175); -emit_16(1239); -emit_16(1174); -emit_16(1239); -emit_16(1175); -emit_16(1240); -emit_16(1176); -emit_16(1240); -emit_16(1175); -emit_16(1240); -emit_16(1176); -emit_16(1241); -emit_16(1177); -emit_16(1241); -emit_16(1176); -emit_16(1241); -emit_16(1177); -emit_16(1242); -emit_16(1178); -emit_16(1242); -emit_16(1177); -emit_16(1242); -emit_16(1178); -emit_16(1243); -emit_16(1179); -emit_16(1243); -emit_16(1178); -emit_16(1243); -emit_16(1179); -emit_16(1244); -emit_16(1180); -emit_16(1244); -emit_16(1179); -emit_16(1244); -emit_16(1180); -emit_16(1245); -emit_16(1181); -emit_16(1245); -emit_16(1180); -emit_16(1245); -emit_16(1181); -emit_16(1246); -emit_16(1182); -emit_16(1246); -emit_16(1181); -emit_16(1246); -emit_16(1182); -emit_16(1247); -emit_16(1183); -emit_16(1247); -emit_16(1182); -emit_16(1247); -emit_16(1183); -emit_16(1248); -emit_16(1184); -emit_16(1248); -emit_16(1183); -emit_16(1248); -emit_16(1184); -emit_16(1249); -emit_16(1185); -emit_16(1249); -emit_16(1184); -emit_16(1249); -emit_16(1185); -emit_16(1250); -emit_16(1186); -emit_16(1250); -emit_16(1185); -emit_16(1250); -emit_16(1186); -emit_16(1251); -emit_16(1187); -emit_16(1251); -emit_16(1186); -emit_16(1251); -emit_16(1187); -emit_16(1252); -emit_16(1188); -emit_16(1252); -emit_16(1187); -emit_16(1252); -emit_16(1188); -emit_16(1253); -emit_16(1189); -emit_16(1253); -emit_16(1188); -emit_16(1253); -emit_16(1189); -emit_16(1254); -emit_16(1190); -emit_16(1254); -emit_16(1189); -emit_16(1254); -emit_16(1190); -emit_16(1255); -emit_16(1191); -emit_16(1255); -emit_16(1190); -emit_16(1255); -emit_16(1191); -emit_16(1256); -emit_16(1192); -emit_16(1256); -emit_16(1191); -emit_16(1256); -emit_16(1192); -emit_16(1257); -emit_16(1193); -emit_16(1257); -emit_16(1192); -emit_16(1257); -emit_16(1193); -emit_16(1258); -emit_16(1194); -emit_16(1258); -emit_16(1193); -emit_16(1258); -emit_16(1194); -emit_16(1259); -emit_16(1195); -emit_16(1259); -emit_16(1194); -emit_16(1259); -emit_16(1195); -emit_16(1260); -emit_16(1196); -emit_16(1260); -emit_16(1195); -emit_16(1260); -emit_16(1196); -emit_16(1261); -emit_16(1197); -emit_16(1261); -emit_16(1196); -emit_16(1261); -emit_16(1197); -emit_16(1262); -emit_16(1198); -emit_16(1262); -emit_16(1197); -emit_16(1262); -emit_16(1198); -emit_16(1263); -emit_16(1199); -emit_16(1263); -emit_16(1198); -emit_16(1263); -emit_16(1199); -emit_16(1264); -emit_16(1200); -emit_16(1264); -emit_16(1199); -emit_16(1264); -emit_16(1200); -emit_16(1265); -emit_16(1201); -emit_16(1265); -emit_16(1200); -emit_16(1265); -emit_16(1201); -emit_16(1266); -emit_16(1202); -emit_16(1266); -emit_16(1201); -emit_16(1266); -emit_16(1202); -emit_16(1267); -emit_16(1203); -emit_16(1267); -emit_16(1202); -emit_16(1267); -emit_16(1203); -emit_16(1268); -emit_16(1204); -emit_16(1268); -emit_16(1203); -emit_16(1268); -emit_16(1204); -emit_16(1269); -emit_16(1205); -emit_16(1269); -emit_16(1204); -emit_16(1269); -emit_16(1205); -emit_16(1270); -emit_16(1206); -emit_16(1270); -emit_16(1205); -emit_16(1270); -emit_16(1206); -emit_16(1271); -emit_16(1207); -emit_16(1271); -emit_16(1206); -emit_16(1271); -emit_16(1207); -emit_16(1272); -emit_16(1208); -emit_16(1272); -emit_16(1207); -emit_16(1272); -emit_16(1208); -emit_16(1273); -emit_16(1209); -emit_16(1273); -emit_16(1208); -emit_16(1273); -emit_16(1209); -emit_16(1274); -emit_16(1210); -emit_16(1274); -emit_16(1209); -emit_16(1274); -emit_16(1210); -emit_16(1275); -emit_16(1211); -emit_16(1275); -emit_16(1210); -emit_16(1275); -emit_16(1211); -emit_16(1276); -emit_16(1212); -emit_16(1276); -emit_16(1211); -emit_16(1276); -emit_16(1212); -emit_16(1277); -emit_16(1213); -emit_16(1277); -emit_16(1212); -emit_16(1277); -emit_16(1213); -emit_16(1278); -emit_16(1214); -emit_16(1278); -emit_16(1213); -emit_16(1278); -emit_16(1214); -emit_16(1279); -emit_16(1215); -emit_16(1279); -emit_16(1214); -emit_16(1280); -emit_16(1216); -emit_16(1281); -emit_16(1217); -emit_16(1281); -emit_16(1216); -emit_16(1281); -emit_16(1217); -emit_16(1282); -emit_16(1218); -emit_16(1282); -emit_16(1217); -emit_16(1282); -emit_16(1218); -emit_16(1283); -emit_16(1219); -emit_16(1283); -emit_16(1218); -emit_16(1283); -emit_16(1219); -emit_16(1284); -emit_16(1220); -emit_16(1284); -emit_16(1219); -emit_16(1284); -emit_16(1220); -emit_16(1285); -emit_16(1221); -emit_16(1285); -emit_16(1220); -emit_16(1285); -emit_16(1221); -emit_16(1286); -emit_16(1222); -emit_16(1286); -emit_16(1221); -emit_16(1286); -emit_16(1222); -emit_16(1287); -emit_16(1223); -emit_16(1287); -emit_16(1222); -emit_16(1287); -emit_16(1223); -emit_16(1288); -emit_16(1224); -emit_16(1288); -emit_16(1223); -emit_16(1288); -emit_16(1224); -emit_16(1289); -emit_16(1225); -emit_16(1289); -emit_16(1224); -emit_16(1289); -emit_16(1225); -emit_16(1290); -emit_16(1226); -emit_16(1290); -emit_16(1225); -emit_16(1290); -emit_16(1226); -emit_16(1291); -emit_16(1227); -emit_16(1291); -emit_16(1226); -emit_16(1291); -emit_16(1227); -emit_16(1292); -emit_16(1228); -emit_16(1292); -emit_16(1227); -emit_16(1292); -emit_16(1228); -emit_16(1293); -emit_16(1229); -emit_16(1293); -emit_16(1228); -emit_16(1293); -emit_16(1229); -emit_16(1294); -emit_16(1230); -emit_16(1294); -emit_16(1229); -emit_16(1294); -emit_16(1230); -emit_16(1295); -emit_16(1231); -emit_16(1295); -emit_16(1230); -emit_16(1295); -emit_16(1231); -emit_16(1296); -emit_16(1232); -emit_16(1296); -emit_16(1231); -emit_16(1296); -emit_16(1232); -emit_16(1297); -emit_16(1233); -emit_16(1297); -emit_16(1232); -emit_16(1297); -emit_16(1233); -emit_16(1298); -emit_16(1234); -emit_16(1298); -emit_16(1233); -emit_16(1298); -emit_16(1234); -emit_16(1299); -emit_16(1235); -emit_16(1299); -emit_16(1234); -emit_16(1299); -emit_16(1235); -emit_16(1300); -emit_16(1236); -emit_16(1300); -emit_16(1235); -emit_16(1300); -emit_16(1236); -emit_16(1301); -emit_16(1237); -emit_16(1301); -emit_16(1236); -emit_16(1301); -emit_16(1237); -emit_16(1302); -emit_16(1238); -emit_16(1302); -emit_16(1237); -emit_16(1302); -emit_16(1238); -emit_16(1303); -emit_16(1239); -emit_16(1303); -emit_16(1238); -emit_16(1303); -emit_16(1239); -emit_16(1304); -emit_16(1240); -emit_16(1304); -emit_16(1239); -emit_16(1304); -emit_16(1240); -emit_16(1305); -emit_16(1241); -emit_16(1305); -emit_16(1240); -emit_16(1305); -emit_16(1241); -emit_16(1306); -emit_16(1242); -emit_16(1306); -emit_16(1241); -emit_16(1306); -emit_16(1242); -emit_16(1307); -emit_16(1243); -emit_16(1307); -emit_16(1242); -emit_16(1307); -emit_16(1243); -emit_16(1308); -emit_16(1244); -emit_16(1308); -emit_16(1243); -emit_16(1308); -emit_16(1244); -emit_16(1309); -emit_16(1245); -emit_16(1309); -emit_16(1244); -emit_16(1309); -emit_16(1245); -emit_16(1310); -emit_16(1246); -emit_16(1310); -emit_16(1245); -emit_16(1310); -emit_16(1246); -emit_16(1311); -emit_16(1247); -emit_16(1311); -emit_16(1246); -emit_16(1311); -emit_16(1247); -emit_16(1312); -emit_16(1248); -emit_16(1312); -emit_16(1247); -emit_16(1312); -emit_16(1248); -emit_16(1313); -emit_16(1249); -emit_16(1313); -emit_16(1248); -emit_16(1313); -emit_16(1249); -emit_16(1314); -emit_16(1250); -emit_16(1314); -emit_16(1249); -emit_16(1314); -emit_16(1250); -emit_16(1315); -emit_16(1251); -emit_16(1315); -emit_16(1250); -emit_16(1315); -emit_16(1251); -emit_16(1316); -emit_16(1252); -emit_16(1316); -emit_16(1251); -emit_16(1316); -emit_16(1252); -emit_16(1317); -emit_16(1253); -emit_16(1317); -emit_16(1252); -emit_16(1317); -emit_16(1253); -emit_16(1318); -emit_16(1254); -emit_16(1318); -emit_16(1253); -emit_16(1318); -emit_16(1254); -emit_16(1319); -emit_16(1255); -emit_16(1319); -emit_16(1254); -emit_16(1319); -emit_16(1255); -emit_16(1320); -emit_16(1256); -emit_16(1320); -emit_16(1255); -emit_16(1320); -emit_16(1256); -emit_16(1321); -emit_16(1257); -emit_16(1321); -emit_16(1256); -emit_16(1321); -emit_16(1257); -emit_16(1322); -emit_16(1258); -emit_16(1322); -emit_16(1257); -emit_16(1322); -emit_16(1258); -emit_16(1323); -emit_16(1259); -emit_16(1323); -emit_16(1258); -emit_16(1323); -emit_16(1259); -emit_16(1324); -emit_16(1260); -emit_16(1324); -emit_16(1259); -emit_16(1324); -emit_16(1260); -emit_16(1325); -emit_16(1261); -emit_16(1325); -emit_16(1260); -emit_16(1325); -emit_16(1261); -emit_16(1326); -emit_16(1262); -emit_16(1326); -emit_16(1261); -emit_16(1326); -emit_16(1262); -emit_16(1327); -emit_16(1263); -emit_16(1327); -emit_16(1262); -emit_16(1327); -emit_16(1263); -emit_16(1328); -emit_16(1264); -emit_16(1328); -emit_16(1263); -emit_16(1328); -emit_16(1264); -emit_16(1329); -emit_16(1265); -emit_16(1329); -emit_16(1264); -emit_16(1329); -emit_16(1265); -emit_16(1330); -emit_16(1266); -emit_16(1330); -emit_16(1265); -emit_16(1330); -emit_16(1266); -emit_16(1331); -emit_16(1267); -emit_16(1331); -emit_16(1266); -emit_16(1331); -emit_16(1267); -emit_16(1332); -emit_16(1268); -emit_16(1332); -emit_16(1267); -emit_16(1332); -emit_16(1268); -emit_16(1333); -emit_16(1269); -emit_16(1333); -emit_16(1268); -emit_16(1333); -emit_16(1269); -emit_16(1334); -emit_16(1270); -emit_16(1334); -emit_16(1269); -emit_16(1334); -emit_16(1270); -emit_16(1335); -emit_16(1271); -emit_16(1335); -emit_16(1270); -emit_16(1335); -emit_16(1271); -emit_16(1336); -emit_16(1272); -emit_16(1336); -emit_16(1271); -emit_16(1336); -emit_16(1272); -emit_16(1337); -emit_16(1273); -emit_16(1337); -emit_16(1272); -emit_16(1337); -emit_16(1273); -emit_16(1338); -emit_16(1274); -emit_16(1338); -emit_16(1273); -emit_16(1338); -emit_16(1274); -emit_16(1339); -emit_16(1275); -emit_16(1339); -emit_16(1274); -emit_16(1339); -emit_16(1275); -emit_16(1340); -emit_16(1276); -emit_16(1340); -emit_16(1275); -emit_16(1340); -emit_16(1276); -emit_16(1341); -emit_16(1277); -emit_16(1341); -emit_16(1276); -emit_16(1341); -emit_16(1277); -emit_16(1342); -emit_16(1278); -emit_16(1342); -emit_16(1277); -emit_16(1342); -emit_16(1278); -emit_16(1343); -emit_16(1279); -emit_16(1343); -emit_16(1278); -emit_16(1344); -emit_16(1280); -emit_16(1345); -emit_16(1281); -emit_16(1345); -emit_16(1280); -emit_16(1345); -emit_16(1281); -emit_16(1346); -emit_16(1282); -emit_16(1346); -emit_16(1281); -emit_16(1346); -emit_16(1282); -emit_16(1347); -emit_16(1283); -emit_16(1347); -emit_16(1282); -emit_16(1347); -emit_16(1283); -emit_16(1348); -emit_16(1284); -emit_16(1348); -emit_16(1283); -emit_16(1348); -emit_16(1284); -emit_16(1349); -emit_16(1285); -emit_16(1349); -emit_16(1284); -emit_16(1349); -emit_16(1285); -emit_16(1350); -emit_16(1286); -emit_16(1350); -emit_16(1285); -emit_16(1350); -emit_16(1286); -emit_16(1351); -emit_16(1287); -emit_16(1351); -emit_16(1286); -emit_16(1351); -emit_16(1287); -emit_16(1352); -emit_16(1288); -emit_16(1352); -emit_16(1287); -emit_16(1352); -emit_16(1288); -emit_16(1353); -emit_16(1289); -emit_16(1353); -emit_16(1288); -emit_16(1353); -emit_16(1289); -emit_16(1354); -emit_16(1290); -emit_16(1354); -emit_16(1289); -emit_16(1354); -emit_16(1290); -emit_16(1355); -emit_16(1291); -emit_16(1355); -emit_16(1290); -emit_16(1355); -emit_16(1291); -emit_16(1356); -emit_16(1292); -emit_16(1356); -emit_16(1291); -emit_16(1356); -emit_16(1292); -emit_16(1357); -emit_16(1293); -emit_16(1357); -emit_16(1292); -emit_16(1357); -emit_16(1293); -emit_16(1358); -emit_16(1294); -emit_16(1358); -emit_16(1293); -emit_16(1358); -emit_16(1294); -emit_16(1359); -emit_16(1295); -emit_16(1359); -emit_16(1294); -emit_16(1359); -emit_16(1295); -emit_16(1360); -emit_16(1296); -emit_16(1360); -emit_16(1295); -emit_16(1360); -emit_16(1296); -emit_16(1361); -emit_16(1297); -emit_16(1361); -emit_16(1296); -emit_16(1361); -emit_16(1297); -emit_16(1362); -emit_16(1298); -emit_16(1362); -emit_16(1297); -emit_16(1362); -emit_16(1298); -emit_16(1363); -emit_16(1299); -emit_16(1363); -emit_16(1298); -emit_16(1363); -emit_16(1299); -emit_16(1364); -emit_16(1300); -emit_16(1364); -emit_16(1299); -emit_16(1364); -emit_16(1300); -emit_16(1365); -emit_16(1301); -emit_16(1365); -emit_16(1300); -emit_16(1365); -emit_16(1301); -emit_16(1366); -emit_16(1302); -emit_16(1366); -emit_16(1301); -emit_16(1366); -emit_16(1302); -emit_16(1367); -emit_16(1303); -emit_16(1367); -emit_16(1302); -emit_16(1367); -emit_16(1303); -emit_16(1368); -emit_16(1304); -emit_16(1368); -emit_16(1303); -emit_16(1368); -emit_16(1304); -emit_16(1369); -emit_16(1305); -emit_16(1369); -emit_16(1304); -emit_16(1369); -emit_16(1305); -emit_16(1370); -emit_16(1306); -emit_16(1370); -emit_16(1305); -emit_16(1370); -emit_16(1306); -emit_16(1371); -emit_16(1307); -emit_16(1371); -emit_16(1306); -emit_16(1371); -emit_16(1307); -emit_16(1372); -emit_16(1308); -emit_16(1372); -emit_16(1307); -emit_16(1372); -emit_16(1308); -emit_16(1373); -emit_16(1309); -emit_16(1373); -emit_16(1308); -emit_16(1373); -emit_16(1309); -emit_16(1374); -emit_16(1310); -emit_16(1374); -emit_16(1309); -emit_16(1374); -emit_16(1310); -emit_16(1375); -emit_16(1311); -emit_16(1375); -emit_16(1310); -emit_16(1375); -emit_16(1311); -emit_16(1376); -emit_16(1312); -emit_16(1376); -emit_16(1311); -emit_16(1376); -emit_16(1312); -emit_16(1377); -emit_16(1313); -emit_16(1377); -emit_16(1312); -emit_16(1377); -emit_16(1313); -emit_16(1378); -emit_16(1314); -emit_16(1378); -emit_16(1313); -emit_16(1378); -emit_16(1314); -emit_16(1379); -emit_16(1315); -emit_16(1379); -emit_16(1314); -emit_16(1379); -emit_16(1315); -emit_16(1380); -emit_16(1316); -emit_16(1380); -emit_16(1315); -emit_16(1380); -emit_16(1316); -emit_16(1381); -emit_16(1317); -emit_16(1381); -emit_16(1316); -emit_16(1381); -emit_16(1317); -emit_16(1382); -emit_16(1318); -emit_16(1382); -emit_16(1317); -emit_16(1382); -emit_16(1318); -emit_16(1383); -emit_16(1319); -emit_16(1383); -emit_16(1318); -emit_16(1383); -emit_16(1319); -emit_16(1384); -emit_16(1320); -emit_16(1384); -emit_16(1319); -emit_16(1384); -emit_16(1320); -emit_16(1385); -emit_16(1321); -emit_16(1385); -emit_16(1320); -emit_16(1385); -emit_16(1321); -emit_16(1386); -emit_16(1322); -emit_16(1386); -emit_16(1321); -emit_16(1386); -emit_16(1322); -emit_16(1387); -emit_16(1323); -emit_16(1387); -emit_16(1322); -emit_16(1387); -emit_16(1323); -emit_16(1388); -emit_16(1324); -emit_16(1388); -emit_16(1323); -emit_16(1388); -emit_16(1324); -emit_16(1389); -emit_16(1325); -emit_16(1389); -emit_16(1324); -emit_16(1389); -emit_16(1325); -emit_16(1390); -emit_16(1326); -emit_16(1390); -emit_16(1325); -emit_16(1390); -emit_16(1326); -emit_16(1391); -emit_16(1327); -emit_16(1391); -emit_16(1326); -emit_16(1391); -emit_16(1327); -emit_16(1392); -emit_16(1328); -emit_16(1392); -emit_16(1327); -emit_16(1392); -emit_16(1328); -emit_16(1393); -emit_16(1329); -emit_16(1393); -emit_16(1328); -emit_16(1393); -emit_16(1329); -emit_16(1394); -emit_16(1330); -emit_16(1394); -emit_16(1329); -emit_16(1394); -emit_16(1330); -emit_16(1395); -emit_16(1331); -emit_16(1395); -emit_16(1330); -emit_16(1395); -emit_16(1331); -emit_16(1396); -emit_16(1332); -emit_16(1396); -emit_16(1331); -emit_16(1396); -emit_16(1332); -emit_16(1397); -emit_16(1333); -emit_16(1397); -emit_16(1332); -emit_16(1397); -emit_16(1333); -emit_16(1398); -emit_16(1334); -emit_16(1398); -emit_16(1333); -emit_16(1398); -emit_16(1334); -emit_16(1399); -emit_16(1335); -emit_16(1399); -emit_16(1334); -emit_16(1399); -emit_16(1335); -emit_16(1400); -emit_16(1336); -emit_16(1400); -emit_16(1335); -emit_16(1400); -emit_16(1336); -emit_16(1401); -emit_16(1337); -emit_16(1401); -emit_16(1336); -emit_16(1401); -emit_16(1337); -emit_16(1402); -emit_16(1338); -emit_16(1402); -emit_16(1337); -emit_16(1402); -emit_16(1338); -emit_16(1403); -emit_16(1339); -emit_16(1403); -emit_16(1338); -emit_16(1403); -emit_16(1339); -emit_16(1404); -emit_16(1340); -emit_16(1404); -emit_16(1339); -emit_16(1404); -emit_16(1340); -emit_16(1405); -emit_16(1341); -emit_16(1405); -emit_16(1340); -emit_16(1405); -emit_16(1341); -emit_16(1406); -emit_16(1342); -emit_16(1406); -emit_16(1341); -emit_16(1406); -emit_16(1342); -emit_16(1407); -emit_16(1343); -emit_16(1407); -emit_16(1342); -emit_16(1408); -emit_16(1344); -emit_16(1409); -emit_16(1345); -emit_16(1409); -emit_16(1344); -emit_16(1409); -emit_16(1345); -emit_16(1410); -emit_16(1346); -emit_16(1410); -emit_16(1345); -emit_16(1410); -emit_16(1346); -emit_16(1411); -emit_16(1347); -emit_16(1411); -emit_16(1346); -emit_16(1411); -emit_16(1347); -emit_16(1412); -emit_16(1348); -emit_16(1412); -emit_16(1347); -emit_16(1412); -emit_16(1348); -emit_16(1413); -emit_16(1349); -emit_16(1413); -emit_16(1348); -emit_16(1413); -emit_16(1349); -emit_16(1414); -emit_16(1350); -emit_16(1414); -emit_16(1349); -emit_16(1414); -emit_16(1350); -emit_16(1415); -emit_16(1351); -emit_16(1415); -emit_16(1350); -emit_16(1415); -emit_16(1351); -emit_16(1416); -emit_16(1352); -emit_16(1416); -emit_16(1351); -emit_16(1416); -emit_16(1352); -emit_16(1417); -emit_16(1353); -emit_16(1417); -emit_16(1352); -emit_16(1417); -emit_16(1353); -emit_16(1418); -emit_16(1354); -emit_16(1418); -emit_16(1353); -emit_16(1418); -emit_16(1354); -emit_16(1419); -emit_16(1355); -emit_16(1419); -emit_16(1354); -emit_16(1419); -emit_16(1355); -emit_16(1420); -emit_16(1356); -emit_16(1420); -emit_16(1355); -emit_16(1420); -emit_16(1356); -emit_16(1421); -emit_16(1357); -emit_16(1421); -emit_16(1356); -emit_16(1421); -emit_16(1357); -emit_16(1422); -emit_16(1358); -emit_16(1422); -emit_16(1357); -emit_16(1422); -emit_16(1358); -emit_16(1423); -emit_16(1359); -emit_16(1423); -emit_16(1358); -emit_16(1423); -emit_16(1359); -emit_16(1424); -emit_16(1360); -emit_16(1424); -emit_16(1359); -emit_16(1424); -emit_16(1360); -emit_16(1425); -emit_16(1361); -emit_16(1425); -emit_16(1360); -emit_16(1425); -emit_16(1361); -emit_16(1426); -emit_16(1362); -emit_16(1426); -emit_16(1361); -emit_16(1426); -emit_16(1362); -emit_16(1427); -emit_16(1363); -emit_16(1427); -emit_16(1362); -emit_16(1427); -emit_16(1363); -emit_16(1428); -emit_16(1364); -emit_16(1428); -emit_16(1363); -emit_16(1428); -emit_16(1364); -emit_16(1429); -emit_16(1365); -emit_16(1429); -emit_16(1364); -emit_16(1429); -emit_16(1365); -emit_16(1430); -emit_16(1366); -emit_16(1430); -emit_16(1365); -emit_16(1430); -emit_16(1366); -emit_16(1431); -emit_16(1367); -emit_16(1431); -emit_16(1366); -emit_16(1431); -emit_16(1367); -emit_16(1432); -emit_16(1368); -emit_16(1432); -emit_16(1367); -emit_16(1432); -emit_16(1368); -emit_16(1433); -emit_16(1369); -emit_16(1433); -emit_16(1368); -emit_16(1433); -emit_16(1369); -emit_16(1434); -emit_16(1370); -emit_16(1434); -emit_16(1369); -emit_16(1434); -emit_16(1370); -emit_16(1435); -emit_16(1371); -emit_16(1435); -emit_16(1370); -emit_16(1435); -emit_16(1371); -emit_16(1436); -emit_16(1372); -emit_16(1436); -emit_16(1371); -emit_16(1436); -emit_16(1372); -emit_16(1437); -emit_16(1373); -emit_16(1437); -emit_16(1372); -emit_16(1437); -emit_16(1373); -emit_16(1438); -emit_16(1374); -emit_16(1438); -emit_16(1373); -emit_16(1438); -emit_16(1374); -emit_16(1439); -emit_16(1375); -emit_16(1439); -emit_16(1374); -emit_16(1439); -emit_16(1375); -emit_16(1440); -emit_16(1376); -emit_16(1440); -emit_16(1375); -emit_16(1440); -emit_16(1376); -emit_16(1441); -emit_16(1377); -emit_16(1441); -emit_16(1376); -emit_16(1441); -emit_16(1377); -emit_16(1442); -emit_16(1378); -emit_16(1442); -emit_16(1377); -emit_16(1442); -emit_16(1378); -emit_16(1443); -emit_16(1379); -emit_16(1443); -emit_16(1378); -emit_16(1443); -emit_16(1379); -emit_16(1444); -emit_16(1380); -emit_16(1444); -emit_16(1379); -emit_16(1444); -emit_16(1380); -emit_16(1445); -emit_16(1381); -emit_16(1445); -emit_16(1380); -emit_16(1445); -emit_16(1381); -emit_16(1446); -emit_16(1382); -emit_16(1446); -emit_16(1381); -emit_16(1446); -emit_16(1382); -emit_16(1447); -emit_16(1383); -emit_16(1447); -emit_16(1382); -emit_16(1447); -emit_16(1383); -emit_16(1448); -emit_16(1384); -emit_16(1448); -emit_16(1383); -emit_16(1448); -emit_16(1384); -emit_16(1449); -emit_16(1385); -emit_16(1449); -emit_16(1384); -emit_16(1449); -emit_16(1385); -emit_16(1450); -emit_16(1386); -emit_16(1450); -emit_16(1385); -emit_16(1450); -emit_16(1386); -emit_16(1451); -emit_16(1387); -emit_16(1451); -emit_16(1386); -emit_16(1451); -emit_16(1387); -emit_16(1452); -emit_16(1388); -emit_16(1452); -emit_16(1387); -emit_16(1452); -emit_16(1388); -emit_16(1453); -emit_16(1389); -emit_16(1453); -emit_16(1388); -emit_16(1453); -emit_16(1389); -emit_16(1454); -emit_16(1390); -emit_16(1454); -emit_16(1389); -emit_16(1454); -emit_16(1390); -emit_16(1455); -emit_16(1391); -emit_16(1455); -emit_16(1390); -emit_16(1455); -emit_16(1391); -emit_16(1456); -emit_16(1392); -emit_16(1456); -emit_16(1391); -emit_16(1456); -emit_16(1392); -emit_16(1457); -emit_16(1393); -emit_16(1457); -emit_16(1392); -emit_16(1457); -emit_16(1393); -emit_16(1458); -emit_16(1394); -emit_16(1458); -emit_16(1393); -emit_16(1458); -emit_16(1394); -emit_16(1459); -emit_16(1395); -emit_16(1459); -emit_16(1394); -emit_16(1459); -emit_16(1395); -emit_16(1460); -emit_16(1396); -emit_16(1460); -emit_16(1395); -emit_16(1460); -emit_16(1396); -emit_16(1461); -emit_16(1397); -emit_16(1461); -emit_16(1396); -emit_16(1461); -emit_16(1397); -emit_16(1462); -emit_16(1398); -emit_16(1462); -emit_16(1397); -emit_16(1462); -emit_16(1398); -emit_16(1463); -emit_16(1399); -emit_16(1463); -emit_16(1398); -emit_16(1463); -emit_16(1399); -emit_16(1464); -emit_16(1400); -emit_16(1464); -emit_16(1399); -emit_16(1464); -emit_16(1400); -emit_16(1465); -emit_16(1401); -emit_16(1465); -emit_16(1400); -emit_16(1465); -emit_16(1401); -emit_16(1466); -emit_16(1402); -emit_16(1466); -emit_16(1401); -emit_16(1466); -emit_16(1402); -emit_16(1467); -emit_16(1403); -emit_16(1467); -emit_16(1402); -emit_16(1467); -emit_16(1403); -emit_16(1468); -emit_16(1404); -emit_16(1468); -emit_16(1403); -emit_16(1468); -emit_16(1404); -emit_16(1469); -emit_16(1405); -emit_16(1469); -emit_16(1404); -emit_16(1469); -emit_16(1405); -emit_16(1470); -emit_16(1406); -emit_16(1470); -emit_16(1405); -emit_16(1470); -emit_16(1406); -emit_16(1471); -emit_16(1407); -emit_16(1471); -emit_16(1406); -emit_16(1472); -emit_16(1408); -emit_16(1473); -emit_16(1409); -emit_16(1473); -emit_16(1408); -emit_16(1473); -emit_16(1409); -emit_16(1474); -emit_16(1410); -emit_16(1474); -emit_16(1409); -emit_16(1474); -emit_16(1410); -emit_16(1475); -emit_16(1411); -emit_16(1475); -emit_16(1410); -emit_16(1475); -emit_16(1411); -emit_16(1476); -emit_16(1412); -emit_16(1476); -emit_16(1411); -emit_16(1476); -emit_16(1412); -emit_16(1477); -emit_16(1413); -emit_16(1477); -emit_16(1412); -emit_16(1477); -emit_16(1413); -emit_16(1478); -emit_16(1414); -emit_16(1478); -emit_16(1413); -emit_16(1478); -emit_16(1414); -emit_16(1479); -emit_16(1415); -emit_16(1479); -emit_16(1414); -emit_16(1479); -emit_16(1415); -emit_16(1480); -emit_16(1416); -emit_16(1480); -emit_16(1415); -emit_16(1480); -emit_16(1416); -emit_16(1481); -emit_16(1417); -emit_16(1481); -emit_16(1416); -emit_16(1481); -emit_16(1417); -emit_16(1482); -emit_16(1418); -emit_16(1482); -emit_16(1417); -emit_16(1482); -emit_16(1418); -emit_16(1483); -emit_16(1419); -emit_16(1483); -emit_16(1418); -emit_16(1483); -emit_16(1419); -emit_16(1484); -emit_16(1420); -emit_16(1484); -emit_16(1419); -emit_16(1484); -emit_16(1420); -emit_16(1485); -emit_16(1421); -emit_16(1485); -emit_16(1420); -emit_16(1485); -emit_16(1421); -emit_16(1486); -emit_16(1422); -emit_16(1486); -emit_16(1421); -emit_16(1486); -emit_16(1422); -emit_16(1487); -emit_16(1423); -emit_16(1487); -emit_16(1422); -emit_16(1487); -emit_16(1423); -emit_16(1488); -emit_16(1424); -emit_16(1488); -emit_16(1423); -emit_16(1488); -emit_16(1424); -emit_16(1489); -emit_16(1425); -emit_16(1489); -emit_16(1424); -emit_16(1489); -emit_16(1425); -emit_16(1490); -emit_16(1426); -emit_16(1490); -emit_16(1425); -emit_16(1490); -emit_16(1426); -emit_16(1491); -emit_16(1427); -emit_16(1491); -emit_16(1426); -emit_16(1491); -emit_16(1427); -emit_16(1492); -emit_16(1428); -emit_16(1492); -emit_16(1427); -emit_16(1492); -emit_16(1428); -emit_16(1493); -emit_16(1429); -emit_16(1493); -emit_16(1428); -emit_16(1493); -emit_16(1429); -emit_16(1494); -emit_16(1430); -emit_16(1494); -emit_16(1429); -emit_16(1494); -emit_16(1430); -emit_16(1495); -emit_16(1431); -emit_16(1495); -emit_16(1430); -emit_16(1495); -emit_16(1431); -emit_16(1496); -emit_16(1432); -emit_16(1496); -emit_16(1431); -emit_16(1496); -emit_16(1432); -emit_16(1497); -emit_16(1433); -emit_16(1497); -emit_16(1432); -emit_16(1497); -emit_16(1433); -emit_16(1498); -emit_16(1434); -emit_16(1498); -emit_16(1433); -emit_16(1498); -emit_16(1434); -emit_16(1499); -emit_16(1435); -emit_16(1499); -emit_16(1434); -emit_16(1499); -emit_16(1435); -emit_16(1500); -emit_16(1436); -emit_16(1500); -emit_16(1435); -emit_16(1500); -emit_16(1436); -emit_16(1501); -emit_16(1437); -emit_16(1501); -emit_16(1436); -emit_16(1501); -emit_16(1437); -emit_16(1502); -emit_16(1438); -emit_16(1502); -emit_16(1437); -emit_16(1502); -emit_16(1438); -emit_16(1503); -emit_16(1439); -emit_16(1503); -emit_16(1438); -emit_16(1503); -emit_16(1439); -emit_16(1504); -emit_16(1440); -emit_16(1504); -emit_16(1439); -emit_16(1504); -emit_16(1440); -emit_16(1505); -emit_16(1441); -emit_16(1505); -emit_16(1440); -emit_16(1505); -emit_16(1441); -emit_16(1506); -emit_16(1442); -emit_16(1506); -emit_16(1441); -emit_16(1506); -emit_16(1442); -emit_16(1507); -emit_16(1443); -emit_16(1507); -emit_16(1442); -emit_16(1507); -emit_16(1443); -emit_16(1508); -emit_16(1444); -emit_16(1508); -emit_16(1443); -emit_16(1508); -emit_16(1444); -emit_16(1509); -emit_16(1445); -emit_16(1509); -emit_16(1444); -emit_16(1509); -emit_16(1445); -emit_16(1510); -emit_16(1446); -emit_16(1510); -emit_16(1445); -emit_16(1510); -emit_16(1446); -emit_16(1511); -emit_16(1447); -emit_16(1511); -emit_16(1446); -emit_16(1511); -emit_16(1447); -emit_16(1512); -emit_16(1448); -emit_16(1512); -emit_16(1447); -emit_16(1512); -emit_16(1448); -emit_16(1513); -emit_16(1449); -emit_16(1513); -emit_16(1448); -emit_16(1513); -emit_16(1449); -emit_16(1514); -emit_16(1450); -emit_16(1514); -emit_16(1449); -emit_16(1514); -emit_16(1450); -emit_16(1515); -emit_16(1451); -emit_16(1515); -emit_16(1450); -emit_16(1515); -emit_16(1451); -emit_16(1516); -emit_16(1452); -emit_16(1516); -emit_16(1451); -emit_16(1516); -emit_16(1452); -emit_16(1517); -emit_16(1453); -emit_16(1517); -emit_16(1452); -emit_16(1517); -emit_16(1453); -emit_16(1518); -emit_16(1454); -emit_16(1518); -emit_16(1453); -emit_16(1518); -emit_16(1454); -emit_16(1519); -emit_16(1455); -emit_16(1519); -emit_16(1454); -emit_16(1519); -emit_16(1455); -emit_16(1520); -emit_16(1456); -emit_16(1520); -emit_16(1455); -emit_16(1520); -emit_16(1456); -emit_16(1521); -emit_16(1457); -emit_16(1521); -emit_16(1456); -emit_16(1521); -emit_16(1457); -emit_16(1522); -emit_16(1458); -emit_16(1522); -emit_16(1457); -emit_16(1522); -emit_16(1458); -emit_16(1523); -emit_16(1459); -emit_16(1523); -emit_16(1458); -emit_16(1523); -emit_16(1459); -emit_16(1524); -emit_16(1460); -emit_16(1524); -emit_16(1459); -emit_16(1524); -emit_16(1460); -emit_16(1525); -emit_16(1461); -emit_16(1525); -emit_16(1460); -emit_16(1525); -emit_16(1461); -emit_16(1526); -emit_16(1462); -emit_16(1526); -emit_16(1461); -emit_16(1526); -emit_16(1462); -emit_16(1527); -emit_16(1463); -emit_16(1527); -emit_16(1462); -emit_16(1527); -emit_16(1463); -emit_16(1528); -emit_16(1464); -emit_16(1528); -emit_16(1463); -emit_16(1528); -emit_16(1464); -emit_16(1529); -emit_16(1465); -emit_16(1529); -emit_16(1464); -emit_16(1529); -emit_16(1465); -emit_16(1530); -emit_16(1466); -emit_16(1530); -emit_16(1465); -emit_16(1530); -emit_16(1466); -emit_16(1531); -emit_16(1467); -emit_16(1531); -emit_16(1466); -emit_16(1531); -emit_16(1467); -emit_16(1532); -emit_16(1468); -emit_16(1532); -emit_16(1467); -emit_16(1532); -emit_16(1468); -emit_16(1533); -emit_16(1469); -emit_16(1533); -emit_16(1468); -emit_16(1533); -emit_16(1469); -emit_16(1534); -emit_16(1470); -emit_16(1534); -emit_16(1469); -emit_16(1534); -emit_16(1470); -emit_16(1535); -emit_16(1471); -emit_16(1535); -emit_16(1470); -emit_16(1536); -emit_16(1472); -emit_16(1537); -emit_16(1473); -emit_16(1537); -emit_16(1472); -emit_16(1537); -emit_16(1473); -emit_16(1538); -emit_16(1474); -emit_16(1538); -emit_16(1473); -emit_16(1538); -emit_16(1474); -emit_16(1539); -emit_16(1475); -emit_16(1539); -emit_16(1474); -emit_16(1539); -emit_16(1475); -emit_16(1540); -emit_16(1476); -emit_16(1540); -emit_16(1475); -emit_16(1540); -emit_16(1476); -emit_16(1541); -emit_16(1477); -emit_16(1541); -emit_16(1476); -emit_16(1541); -emit_16(1477); -emit_16(1542); -emit_16(1478); -emit_16(1542); -emit_16(1477); -emit_16(1542); -emit_16(1478); -emit_16(1543); -emit_16(1479); -emit_16(1543); -emit_16(1478); -emit_16(1543); -emit_16(1479); -emit_16(1544); -emit_16(1480); -emit_16(1544); -emit_16(1479); -emit_16(1544); -emit_16(1480); -emit_16(1545); -emit_16(1481); -emit_16(1545); -emit_16(1480); -emit_16(1545); -emit_16(1481); -emit_16(1546); -emit_16(1482); -emit_16(1546); -emit_16(1481); -emit_16(1546); -emit_16(1482); -emit_16(1547); -emit_16(1483); -emit_16(1547); -emit_16(1482); -emit_16(1547); -emit_16(1483); -emit_16(1548); -emit_16(1484); -emit_16(1548); -emit_16(1483); -emit_16(1548); -emit_16(1484); -emit_16(1549); -emit_16(1485); -emit_16(1549); -emit_16(1484); -emit_16(1549); -emit_16(1485); -emit_16(1550); -emit_16(1486); -emit_16(1550); -emit_16(1485); -emit_16(1550); -emit_16(1486); -emit_16(1551); -emit_16(1487); -emit_16(1551); -emit_16(1486); -emit_16(1551); -emit_16(1487); -emit_16(1552); -emit_16(1488); -emit_16(1552); -emit_16(1487); -emit_16(1552); -emit_16(1488); -emit_16(1553); -emit_16(1489); -emit_16(1553); -emit_16(1488); -emit_16(1553); -emit_16(1489); -emit_16(1554); -emit_16(1490); -emit_16(1554); -emit_16(1489); -emit_16(1554); -emit_16(1490); -emit_16(1555); -emit_16(1491); -emit_16(1555); -emit_16(1490); -emit_16(1555); -emit_16(1491); -emit_16(1556); -emit_16(1492); -emit_16(1556); -emit_16(1491); -emit_16(1556); -emit_16(1492); -emit_16(1557); -emit_16(1493); -emit_16(1557); -emit_16(1492); -emit_16(1557); -emit_16(1493); -emit_16(1558); -emit_16(1494); -emit_16(1558); -emit_16(1493); -emit_16(1558); -emit_16(1494); -emit_16(1559); -emit_16(1495); -emit_16(1559); -emit_16(1494); -emit_16(1559); -emit_16(1495); -emit_16(1560); -emit_16(1496); -emit_16(1560); -emit_16(1495); -emit_16(1560); -emit_16(1496); -emit_16(1561); -emit_16(1497); -emit_16(1561); -emit_16(1496); -emit_16(1561); -emit_16(1497); -emit_16(1562); -emit_16(1498); -emit_16(1562); -emit_16(1497); -emit_16(1562); -emit_16(1498); -emit_16(1563); -emit_16(1499); -emit_16(1563); -emit_16(1498); -emit_16(1563); -emit_16(1499); -emit_16(1564); -emit_16(1500); -emit_16(1564); -emit_16(1499); -emit_16(1564); -emit_16(1500); -emit_16(1565); -emit_16(1501); -emit_16(1565); -emit_16(1500); -emit_16(1565); -emit_16(1501); -emit_16(1566); -emit_16(1502); -emit_16(1566); -emit_16(1501); -emit_16(1566); -emit_16(1502); -emit_16(1567); -emit_16(1503); -emit_16(1567); -emit_16(1502); -emit_16(1567); -emit_16(1503); -emit_16(1568); -emit_16(1504); -emit_16(1568); -emit_16(1503); -emit_16(1568); -emit_16(1504); -emit_16(1569); -emit_16(1505); -emit_16(1569); -emit_16(1504); -emit_16(1569); -emit_16(1505); -emit_16(1570); -emit_16(1506); -emit_16(1570); -emit_16(1505); -emit_16(1570); -emit_16(1506); -emit_16(1571); -emit_16(1507); -emit_16(1571); -emit_16(1506); -emit_16(1571); -emit_16(1507); -emit_16(1572); -emit_16(1508); -emit_16(1572); -emit_16(1507); -emit_16(1572); -emit_16(1508); -emit_16(1573); -emit_16(1509); -emit_16(1573); -emit_16(1508); -emit_16(1573); -emit_16(1509); -emit_16(1574); -emit_16(1510); -emit_16(1574); -emit_16(1509); -emit_16(1574); -emit_16(1510); -emit_16(1575); -emit_16(1511); -emit_16(1575); -emit_16(1510); -emit_16(1575); -emit_16(1511); -emit_16(1576); -emit_16(1512); -emit_16(1576); -emit_16(1511); -emit_16(1576); -emit_16(1512); -emit_16(1577); -emit_16(1513); -emit_16(1577); -emit_16(1512); -emit_16(1577); -emit_16(1513); -emit_16(1578); -emit_16(1514); -emit_16(1578); -emit_16(1513); -emit_16(1578); -emit_16(1514); -emit_16(1579); -emit_16(1515); -emit_16(1579); -emit_16(1514); -emit_16(1579); -emit_16(1515); -emit_16(1580); -emit_16(1516); -emit_16(1580); -emit_16(1515); -emit_16(1580); -emit_16(1516); -emit_16(1581); -emit_16(1517); -emit_16(1581); -emit_16(1516); -emit_16(1581); -emit_16(1517); -emit_16(1582); -emit_16(1518); -emit_16(1582); -emit_16(1517); -emit_16(1582); -emit_16(1518); -emit_16(1583); -emit_16(1519); -emit_16(1583); -emit_16(1518); -emit_16(1583); -emit_16(1519); -emit_16(1584); -emit_16(1520); -emit_16(1584); -emit_16(1519); -emit_16(1584); -emit_16(1520); -emit_16(1585); -emit_16(1521); -emit_16(1585); -emit_16(1520); -emit_16(1585); -emit_16(1521); -emit_16(1586); -emit_16(1522); -emit_16(1586); -emit_16(1521); -emit_16(1586); -emit_16(1522); -emit_16(1587); -emit_16(1523); -emit_16(1587); -emit_16(1522); -emit_16(1587); -emit_16(1523); -emit_16(1588); -emit_16(1524); -emit_16(1588); -emit_16(1523); -emit_16(1588); -emit_16(1524); -emit_16(1589); -emit_16(1525); -emit_16(1589); -emit_16(1524); -emit_16(1589); -emit_16(1525); -emit_16(1590); -emit_16(1526); -emit_16(1590); -emit_16(1525); -emit_16(1590); -emit_16(1526); -emit_16(1591); -emit_16(1527); -emit_16(1591); -emit_16(1526); -emit_16(1591); -emit_16(1527); -emit_16(1592); -emit_16(1528); -emit_16(1592); -emit_16(1527); -emit_16(1592); -emit_16(1528); -emit_16(1593); -emit_16(1529); -emit_16(1593); -emit_16(1528); -emit_16(1593); -emit_16(1529); -emit_16(1594); -emit_16(1530); -emit_16(1594); -emit_16(1529); -emit_16(1594); -emit_16(1530); -emit_16(1595); -emit_16(1531); -emit_16(1595); -emit_16(1530); -emit_16(1595); -emit_16(1531); -emit_16(1596); -emit_16(1532); -emit_16(1596); -emit_16(1531); -emit_16(1596); -emit_16(1532); -emit_16(1597); -emit_16(1533); -emit_16(1597); -emit_16(1532); -emit_16(1597); -emit_16(1533); -emit_16(1598); -emit_16(1534); -emit_16(1598); -emit_16(1533); -emit_16(1598); -emit_16(1534); -emit_16(1599); -emit_16(1535); -emit_16(1599); -emit_16(1534); -emit_16(1600); -emit_16(1536); -emit_16(1601); -emit_16(1537); -emit_16(1601); -emit_16(1536); -emit_16(1601); -emit_16(1537); -emit_16(1602); -emit_16(1538); -emit_16(1602); -emit_16(1537); -emit_16(1602); -emit_16(1538); -emit_16(1603); -emit_16(1539); -emit_16(1603); -emit_16(1538); -emit_16(1603); -emit_16(1539); -emit_16(1604); -emit_16(1540); -emit_16(1604); -emit_16(1539); -emit_16(1604); -emit_16(1540); -emit_16(1605); -emit_16(1541); -emit_16(1605); -emit_16(1540); -emit_16(1605); -emit_16(1541); -emit_16(1606); -emit_16(1542); -emit_16(1606); -emit_16(1541); -emit_16(1606); -emit_16(1542); -emit_16(1607); -emit_16(1543); -emit_16(1607); -emit_16(1542); -emit_16(1607); -emit_16(1543); -emit_16(1608); -emit_16(1544); -emit_16(1608); -emit_16(1543); -emit_16(1608); -emit_16(1544); -emit_16(1609); -emit_16(1545); -emit_16(1609); -emit_16(1544); -emit_16(1609); -emit_16(1545); -emit_16(1610); -emit_16(1546); -emit_16(1610); -emit_16(1545); -emit_16(1610); -emit_16(1546); -emit_16(1611); -emit_16(1547); -emit_16(1611); -emit_16(1546); -emit_16(1611); -emit_16(1547); -emit_16(1612); -emit_16(1548); -emit_16(1612); -emit_16(1547); -emit_16(1612); -emit_16(1548); -emit_16(1613); -emit_16(1549); -emit_16(1613); -emit_16(1548); -emit_16(1613); -emit_16(1549); -emit_16(1614); -emit_16(1550); -emit_16(1614); -emit_16(1549); -emit_16(1614); -emit_16(1550); -emit_16(1615); -emit_16(1551); -emit_16(1615); -emit_16(1550); -emit_16(1615); -emit_16(1551); -emit_16(1616); -emit_16(1552); -emit_16(1616); -emit_16(1551); -emit_16(1616); -emit_16(1552); -emit_16(1617); -emit_16(1553); -emit_16(1617); -emit_16(1552); -emit_16(1617); -emit_16(1553); -emit_16(1618); -emit_16(1554); -emit_16(1618); -emit_16(1553); -emit_16(1618); -emit_16(1554); -emit_16(1619); -emit_16(1555); -emit_16(1619); -emit_16(1554); -emit_16(1619); -emit_16(1555); -emit_16(1620); -emit_16(1556); -emit_16(1620); -emit_16(1555); -emit_16(1620); -emit_16(1556); -emit_16(1621); -emit_16(1557); -emit_16(1621); -emit_16(1556); -emit_16(1621); -emit_16(1557); -emit_16(1622); -emit_16(1558); -emit_16(1622); -emit_16(1557); -emit_16(1622); -emit_16(1558); -emit_16(1623); -emit_16(1559); -emit_16(1623); -emit_16(1558); -emit_16(1623); -emit_16(1559); -emit_16(1624); -emit_16(1560); -emit_16(1624); -emit_16(1559); -emit_16(1624); -emit_16(1560); -emit_16(1625); -emit_16(1561); -emit_16(1625); -emit_16(1560); -emit_16(1625); -emit_16(1561); -emit_16(1626); -emit_16(1562); -emit_16(1626); -emit_16(1561); -emit_16(1626); -emit_16(1562); -emit_16(1627); -emit_16(1563); -emit_16(1627); -emit_16(1562); -emit_16(1627); -emit_16(1563); -emit_16(1628); -emit_16(1564); -emit_16(1628); -emit_16(1563); -emit_16(1628); -emit_16(1564); -emit_16(1629); -emit_16(1565); -emit_16(1629); -emit_16(1564); -emit_16(1629); -emit_16(1565); -emit_16(1630); -emit_16(1566); -emit_16(1630); -emit_16(1565); -emit_16(1630); -emit_16(1566); -emit_16(1631); -emit_16(1567); -emit_16(1631); -emit_16(1566); -emit_16(1631); -emit_16(1567); -emit_16(1632); -emit_16(1568); -emit_16(1632); -emit_16(1567); -emit_16(1632); -emit_16(1568); -emit_16(1633); -emit_16(1569); -emit_16(1633); -emit_16(1568); -emit_16(1633); -emit_16(1569); -emit_16(1634); -emit_16(1570); -emit_16(1634); -emit_16(1569); -emit_16(1634); -emit_16(1570); -emit_16(1635); -emit_16(1571); -emit_16(1635); -emit_16(1570); -emit_16(1635); -emit_16(1571); -emit_16(1636); -emit_16(1572); -emit_16(1636); -emit_16(1571); -emit_16(1636); -emit_16(1572); -emit_16(1637); -emit_16(1573); -emit_16(1637); -emit_16(1572); -emit_16(1637); -emit_16(1573); -emit_16(1638); -emit_16(1574); -emit_16(1638); -emit_16(1573); -emit_16(1638); -emit_16(1574); -emit_16(1639); -emit_16(1575); -emit_16(1639); -emit_16(1574); -emit_16(1639); -emit_16(1575); -emit_16(1640); -emit_16(1576); -emit_16(1640); -emit_16(1575); -emit_16(1640); -emit_16(1576); -emit_16(1641); -emit_16(1577); -emit_16(1641); -emit_16(1576); -emit_16(1641); -emit_16(1577); -emit_16(1642); -emit_16(1578); -emit_16(1642); -emit_16(1577); -emit_16(1642); -emit_16(1578); -emit_16(1643); -emit_16(1579); -emit_16(1643); -emit_16(1578); -emit_16(1643); -emit_16(1579); -emit_16(1644); -emit_16(1580); -emit_16(1644); -emit_16(1579); -emit_16(1644); -emit_16(1580); -emit_16(1645); -emit_16(1581); -emit_16(1645); -emit_16(1580); -emit_16(1645); -emit_16(1581); -emit_16(1646); -emit_16(1582); -emit_16(1646); -emit_16(1581); -emit_16(1646); -emit_16(1582); -emit_16(1647); -emit_16(1583); -emit_16(1647); -emit_16(1582); -emit_16(1647); -emit_16(1583); -emit_16(1648); -emit_16(1584); -emit_16(1648); -emit_16(1583); -emit_16(1648); -emit_16(1584); -emit_16(1649); -emit_16(1585); -emit_16(1649); -emit_16(1584); -emit_16(1649); -emit_16(1585); -emit_16(1650); -emit_16(1586); -emit_16(1650); -emit_16(1585); -emit_16(1650); -emit_16(1586); -emit_16(1651); -emit_16(1587); -emit_16(1651); -emit_16(1586); -emit_16(1651); -emit_16(1587); -emit_16(1652); -emit_16(1588); -emit_16(1652); -emit_16(1587); -emit_16(1652); -emit_16(1588); -emit_16(1653); -emit_16(1589); -emit_16(1653); -emit_16(1588); -emit_16(1653); -emit_16(1589); -emit_16(1654); -emit_16(1590); -emit_16(1654); -emit_16(1589); -emit_16(1654); -emit_16(1590); -emit_16(1655); -emit_16(1591); -emit_16(1655); -emit_16(1590); -emit_16(1655); -emit_16(1591); -emit_16(1656); -emit_16(1592); -emit_16(1656); -emit_16(1591); -emit_16(1656); -emit_16(1592); -emit_16(1657); -emit_16(1593); -emit_16(1657); -emit_16(1592); -emit_16(1657); -emit_16(1593); -emit_16(1658); -emit_16(1594); -emit_16(1658); -emit_16(1593); -emit_16(1658); -emit_16(1594); -emit_16(1659); -emit_16(1595); -emit_16(1659); -emit_16(1594); -emit_16(1659); -emit_16(1595); -emit_16(1660); -emit_16(1596); -emit_16(1660); -emit_16(1595); -emit_16(1660); -emit_16(1596); -emit_16(1661); -emit_16(1597); -emit_16(1661); -emit_16(1596); -emit_16(1661); -emit_16(1597); -emit_16(1662); -emit_16(1598); -emit_16(1662); -emit_16(1597); -emit_16(1662); -emit_16(1598); -emit_16(1663); -emit_16(1599); -emit_16(1663); -emit_16(1598); -emit_16(1664); -emit_16(1600); -emit_16(1665); -emit_16(1601); -emit_16(1665); -emit_16(1600); -emit_16(1665); -emit_16(1601); -emit_16(1666); -emit_16(1602); -emit_16(1666); -emit_16(1601); -emit_16(1666); -emit_16(1602); -emit_16(1667); -emit_16(1603); -emit_16(1667); -emit_16(1602); -emit_16(1667); -emit_16(1603); -emit_16(1668); -emit_16(1604); -emit_16(1668); -emit_16(1603); -emit_16(1668); -emit_16(1604); -emit_16(1669); -emit_16(1605); -emit_16(1669); -emit_16(1604); -emit_16(1669); -emit_16(1605); -emit_16(1670); -emit_16(1606); -emit_16(1670); -emit_16(1605); -emit_16(1670); -emit_16(1606); -emit_16(1671); -emit_16(1607); -emit_16(1671); -emit_16(1606); -emit_16(1671); -emit_16(1607); -emit_16(1672); -emit_16(1608); -emit_16(1672); -emit_16(1607); -emit_16(1672); -emit_16(1608); -emit_16(1673); -emit_16(1609); -emit_16(1673); -emit_16(1608); -emit_16(1673); -emit_16(1609); -emit_16(1674); -emit_16(1610); -emit_16(1674); -emit_16(1609); -emit_16(1674); -emit_16(1610); -emit_16(1675); -emit_16(1611); -emit_16(1675); -emit_16(1610); -emit_16(1675); -emit_16(1611); -emit_16(1676); -emit_16(1612); -emit_16(1676); -emit_16(1611); -emit_16(1676); -emit_16(1612); -emit_16(1677); -emit_16(1613); -emit_16(1677); -emit_16(1612); -emit_16(1677); -emit_16(1613); -emit_16(1678); -emit_16(1614); -emit_16(1678); -emit_16(1613); -emit_16(1678); -emit_16(1614); -emit_16(1679); -emit_16(1615); -emit_16(1679); -emit_16(1614); -emit_16(1679); -emit_16(1615); -emit_16(1680); -emit_16(1616); -emit_16(1680); -emit_16(1615); -emit_16(1680); -emit_16(1616); -emit_16(1681); -emit_16(1617); -emit_16(1681); -emit_16(1616); -emit_16(1681); -emit_16(1617); -emit_16(1682); -emit_16(1618); -emit_16(1682); -emit_16(1617); -emit_16(1682); -emit_16(1618); -emit_16(1683); -emit_16(1619); -emit_16(1683); -emit_16(1618); -emit_16(1683); -emit_16(1619); -emit_16(1684); -emit_16(1620); -emit_16(1684); -emit_16(1619); -emit_16(1684); -emit_16(1620); -emit_16(1685); -emit_16(1621); -emit_16(1685); -emit_16(1620); -emit_16(1685); -emit_16(1621); -emit_16(1686); -emit_16(1622); -emit_16(1686); -emit_16(1621); -emit_16(1686); -emit_16(1622); -emit_16(1687); -emit_16(1623); -emit_16(1687); -emit_16(1622); -emit_16(1687); -emit_16(1623); -emit_16(1688); -emit_16(1624); -emit_16(1688); -emit_16(1623); -emit_16(1688); -emit_16(1624); -emit_16(1689); -emit_16(1625); -emit_16(1689); -emit_16(1624); -emit_16(1689); -emit_16(1625); -emit_16(1690); -emit_16(1626); -emit_16(1690); -emit_16(1625); -emit_16(1690); -emit_16(1626); -emit_16(1691); -emit_16(1627); -emit_16(1691); -emit_16(1626); -emit_16(1691); -emit_16(1627); -emit_16(1692); -emit_16(1628); -emit_16(1692); -emit_16(1627); -emit_16(1692); -emit_16(1628); -emit_16(1693); -emit_16(1629); -emit_16(1693); -emit_16(1628); -emit_16(1693); -emit_16(1629); -emit_16(1694); -emit_16(1630); -emit_16(1694); -emit_16(1629); -emit_16(1694); -emit_16(1630); -emit_16(1695); -emit_16(1631); -emit_16(1695); -emit_16(1630); -emit_16(1695); -emit_16(1631); -emit_16(1696); -emit_16(1632); -emit_16(1696); -emit_16(1631); -emit_16(1696); -emit_16(1632); -emit_16(1697); -emit_16(1633); -emit_16(1697); -emit_16(1632); -emit_16(1697); -emit_16(1633); -emit_16(1698); -emit_16(1634); -emit_16(1698); -emit_16(1633); -emit_16(1698); -emit_16(1634); -emit_16(1699); -emit_16(1635); -emit_16(1699); -emit_16(1634); -emit_16(1699); -emit_16(1635); -emit_16(1700); -emit_16(1636); -emit_16(1700); -emit_16(1635); -emit_16(1700); -emit_16(1636); -emit_16(1701); -emit_16(1637); -emit_16(1701); -emit_16(1636); -emit_16(1701); -emit_16(1637); -emit_16(1702); -emit_16(1638); -emit_16(1702); -emit_16(1637); -emit_16(1702); -emit_16(1638); -emit_16(1703); -emit_16(1639); -emit_16(1703); -emit_16(1638); -emit_16(1703); -emit_16(1639); -emit_16(1704); -emit_16(1640); -emit_16(1704); -emit_16(1639); -emit_16(1704); -emit_16(1640); -emit_16(1705); -emit_16(1641); -emit_16(1705); -emit_16(1640); -emit_16(1705); -emit_16(1641); -emit_16(1706); -emit_16(1642); -emit_16(1706); -emit_16(1641); -emit_16(1706); -emit_16(1642); -emit_16(1707); -emit_16(1643); -emit_16(1707); -emit_16(1642); -emit_16(1707); -emit_16(1643); -emit_16(1708); -emit_16(1644); -emit_16(1708); -emit_16(1643); -emit_16(1708); -emit_16(1644); -emit_16(1709); -emit_16(1645); -emit_16(1709); -emit_16(1644); -emit_16(1709); -emit_16(1645); -emit_16(1710); -emit_16(1646); -emit_16(1710); -emit_16(1645); -emit_16(1710); -emit_16(1646); -emit_16(1711); -emit_16(1647); -emit_16(1711); -emit_16(1646); -emit_16(1711); -emit_16(1647); -emit_16(1712); -emit_16(1648); -emit_16(1712); -emit_16(1647); -emit_16(1712); -emit_16(1648); -emit_16(1713); -emit_16(1649); -emit_16(1713); -emit_16(1648); -emit_16(1713); -emit_16(1649); -emit_16(1714); -emit_16(1650); -emit_16(1714); -emit_16(1649); -emit_16(1714); -emit_16(1650); -emit_16(1715); -emit_16(1651); -emit_16(1715); -emit_16(1650); -emit_16(1715); -emit_16(1651); -emit_16(1716); -emit_16(1652); -emit_16(1716); -emit_16(1651); -emit_16(1716); -emit_16(1652); -emit_16(1717); -emit_16(1653); -emit_16(1717); -emit_16(1652); -emit_16(1717); -emit_16(1653); -emit_16(1718); -emit_16(1654); -emit_16(1718); -emit_16(1653); -emit_16(1718); -emit_16(1654); -emit_16(1719); -emit_16(1655); -emit_16(1719); -emit_16(1654); -emit_16(1719); -emit_16(1655); -emit_16(1720); -emit_16(1656); -emit_16(1720); -emit_16(1655); -emit_16(1720); -emit_16(1656); -emit_16(1721); -emit_16(1657); -emit_16(1721); -emit_16(1656); -emit_16(1721); -emit_16(1657); -emit_16(1722); -emit_16(1658); -emit_16(1722); -emit_16(1657); -emit_16(1722); -emit_16(1658); -emit_16(1723); -emit_16(1659); -emit_16(1723); -emit_16(1658); -emit_16(1723); -emit_16(1659); -emit_16(1724); -emit_16(1660); -emit_16(1724); -emit_16(1659); -emit_16(1724); -emit_16(1660); -emit_16(1725); -emit_16(1661); -emit_16(1725); -emit_16(1660); -emit_16(1725); -emit_16(1661); -emit_16(1726); -emit_16(1662); -emit_16(1726); -emit_16(1661); -emit_16(1726); -emit_16(1662); -emit_16(1727); -emit_16(1663); -emit_16(1727); -emit_16(1662); -emit_16(1728); -emit_16(1664); -emit_16(1729); -emit_16(1665); -emit_16(1729); -emit_16(1664); -emit_16(1729); -emit_16(1665); -emit_16(1730); -emit_16(1666); -emit_16(1730); -emit_16(1665); -emit_16(1730); -emit_16(1666); -emit_16(1731); -emit_16(1667); -emit_16(1731); -emit_16(1666); -emit_16(1731); -emit_16(1667); -emit_16(1732); -emit_16(1668); -emit_16(1732); -emit_16(1667); -emit_16(1732); -emit_16(1668); -emit_16(1733); -emit_16(1669); -emit_16(1733); -emit_16(1668); -emit_16(1733); -emit_16(1669); -emit_16(1734); -emit_16(1670); -emit_16(1734); -emit_16(1669); -emit_16(1734); -emit_16(1670); -emit_16(1735); -emit_16(1671); -emit_16(1735); -emit_16(1670); -emit_16(1735); -emit_16(1671); -emit_16(1736); -emit_16(1672); -emit_16(1736); -emit_16(1671); -emit_16(1736); -emit_16(1672); -emit_16(1737); -emit_16(1673); -emit_16(1737); -emit_16(1672); -emit_16(1737); -emit_16(1673); -emit_16(1738); -emit_16(1674); -emit_16(1738); -emit_16(1673); -emit_16(1738); -emit_16(1674); -emit_16(1739); -emit_16(1675); -emit_16(1739); -emit_16(1674); -emit_16(1739); -emit_16(1675); -emit_16(1740); -emit_16(1676); -emit_16(1740); -emit_16(1675); -emit_16(1740); -emit_16(1676); -emit_16(1741); -emit_16(1677); -emit_16(1741); -emit_16(1676); -emit_16(1741); -emit_16(1677); -emit_16(1742); -emit_16(1678); -emit_16(1742); -emit_16(1677); -emit_16(1742); -emit_16(1678); -emit_16(1743); -emit_16(1679); -emit_16(1743); -emit_16(1678); -emit_16(1743); -emit_16(1679); -emit_16(1744); -emit_16(1680); -emit_16(1744); -emit_16(1679); -emit_16(1744); -emit_16(1680); -emit_16(1745); -emit_16(1681); -emit_16(1745); -emit_16(1680); -emit_16(1745); -emit_16(1681); -emit_16(1746); -emit_16(1682); -emit_16(1746); -emit_16(1681); -emit_16(1746); -emit_16(1682); -emit_16(1747); -emit_16(1683); -emit_16(1747); -emit_16(1682); -emit_16(1747); -emit_16(1683); -emit_16(1748); -emit_16(1684); -emit_16(1748); -emit_16(1683); -emit_16(1748); -emit_16(1684); -emit_16(1749); -emit_16(1685); -emit_16(1749); -emit_16(1684); -emit_16(1749); -emit_16(1685); -emit_16(1750); -emit_16(1686); -emit_16(1750); -emit_16(1685); -emit_16(1750); -emit_16(1686); -emit_16(1751); -emit_16(1687); -emit_16(1751); -emit_16(1686); -emit_16(1751); -emit_16(1687); -emit_16(1752); -emit_16(1688); -emit_16(1752); -emit_16(1687); -emit_16(1752); -emit_16(1688); -emit_16(1753); -emit_16(1689); -emit_16(1753); -emit_16(1688); -emit_16(1753); -emit_16(1689); -emit_16(1754); -emit_16(1690); -emit_16(1754); -emit_16(1689); -emit_16(1754); -emit_16(1690); -emit_16(1755); -emit_16(1691); -emit_16(1755); -emit_16(1690); -emit_16(1755); -emit_16(1691); -emit_16(1756); -emit_16(1692); -emit_16(1756); -emit_16(1691); -emit_16(1756); -emit_16(1692); -emit_16(1757); -emit_16(1693); -emit_16(1757); -emit_16(1692); -emit_16(1757); -emit_16(1693); -emit_16(1758); -emit_16(1694); -emit_16(1758); -emit_16(1693); -emit_16(1758); -emit_16(1694); -emit_16(1759); -emit_16(1695); -emit_16(1759); -emit_16(1694); -emit_16(1759); -emit_16(1695); -emit_16(1760); -emit_16(1696); -emit_16(1760); -emit_16(1695); -emit_16(1760); -emit_16(1696); -emit_16(1761); -emit_16(1697); -emit_16(1761); -emit_16(1696); -emit_16(1761); -emit_16(1697); -emit_16(1762); -emit_16(1698); -emit_16(1762); -emit_16(1697); -emit_16(1762); -emit_16(1698); -emit_16(1763); -emit_16(1699); -emit_16(1763); -emit_16(1698); -emit_16(1763); -emit_16(1699); -emit_16(1764); -emit_16(1700); -emit_16(1764); -emit_16(1699); -emit_16(1764); -emit_16(1700); -emit_16(1765); -emit_16(1701); -emit_16(1765); -emit_16(1700); -emit_16(1765); -emit_16(1701); -emit_16(1766); -emit_16(1702); -emit_16(1766); -emit_16(1701); -emit_16(1766); -emit_16(1702); -emit_16(1767); -emit_16(1703); -emit_16(1767); -emit_16(1702); -emit_16(1767); -emit_16(1703); -emit_16(1768); -emit_16(1704); -emit_16(1768); -emit_16(1703); -emit_16(1768); -emit_16(1704); -emit_16(1769); -emit_16(1705); -emit_16(1769); -emit_16(1704); -emit_16(1769); -emit_16(1705); -emit_16(1770); -emit_16(1706); -emit_16(1770); -emit_16(1705); -emit_16(1770); -emit_16(1706); -emit_16(1771); -emit_16(1707); -emit_16(1771); -emit_16(1706); -emit_16(1771); -emit_16(1707); -emit_16(1772); -emit_16(1708); -emit_16(1772); -emit_16(1707); -emit_16(1772); -emit_16(1708); -emit_16(1773); -emit_16(1709); -emit_16(1773); -emit_16(1708); -emit_16(1773); -emit_16(1709); -emit_16(1774); -emit_16(1710); -emit_16(1774); -emit_16(1709); -emit_16(1774); -emit_16(1710); -emit_16(1775); -emit_16(1711); -emit_16(1775); -emit_16(1710); -emit_16(1775); -emit_16(1711); -emit_16(1776); -emit_16(1712); -emit_16(1776); -emit_16(1711); -emit_16(1776); -emit_16(1712); -emit_16(1777); -emit_16(1713); -emit_16(1777); -emit_16(1712); -emit_16(1777); -emit_16(1713); -emit_16(1778); -emit_16(1714); -emit_16(1778); -emit_16(1713); -emit_16(1778); -emit_16(1714); -emit_16(1779); -emit_16(1715); -emit_16(1779); -emit_16(1714); -emit_16(1779); -emit_16(1715); -emit_16(1780); -emit_16(1716); -emit_16(1780); -emit_16(1715); -emit_16(1780); -emit_16(1716); -emit_16(1781); -emit_16(1717); -emit_16(1781); -emit_16(1716); -emit_16(1781); -emit_16(1717); -emit_16(1782); -emit_16(1718); -emit_16(1782); -emit_16(1717); -emit_16(1782); -emit_16(1718); -emit_16(1783); -emit_16(1719); -emit_16(1783); -emit_16(1718); -emit_16(1783); -emit_16(1719); -emit_16(1784); -emit_16(1720); -emit_16(1784); -emit_16(1719); -emit_16(1784); -emit_16(1720); -emit_16(1785); -emit_16(1721); -emit_16(1785); -emit_16(1720); -emit_16(1785); -emit_16(1721); -emit_16(1786); -emit_16(1722); -emit_16(1786); -emit_16(1721); -emit_16(1786); -emit_16(1722); -emit_16(1787); -emit_16(1723); -emit_16(1787); -emit_16(1722); -emit_16(1787); -emit_16(1723); -emit_16(1788); -emit_16(1724); -emit_16(1788); -emit_16(1723); -emit_16(1788); -emit_16(1724); -emit_16(1789); -emit_16(1725); -emit_16(1789); -emit_16(1724); -emit_16(1789); -emit_16(1725); -emit_16(1790); -emit_16(1726); -emit_16(1790); -emit_16(1725); -emit_16(1790); -emit_16(1726); -emit_16(1791); -emit_16(1727); -emit_16(1791); -emit_16(1726); -emit_16(1792); -emit_16(1728); -emit_16(1793); -emit_16(1729); -emit_16(1793); -emit_16(1728); -emit_16(1793); -emit_16(1729); -emit_16(1794); -emit_16(1730); -emit_16(1794); -emit_16(1729); -emit_16(1794); -emit_16(1730); -emit_16(1795); -emit_16(1731); -emit_16(1795); -emit_16(1730); -emit_16(1795); -emit_16(1731); -emit_16(1796); -emit_16(1732); -emit_16(1796); -emit_16(1731); -emit_16(1796); -emit_16(1732); -emit_16(1797); -emit_16(1733); -emit_16(1797); -emit_16(1732); -emit_16(1797); -emit_16(1733); -emit_16(1798); -emit_16(1734); -emit_16(1798); -emit_16(1733); -emit_16(1798); -emit_16(1734); -emit_16(1799); -emit_16(1735); -emit_16(1799); -emit_16(1734); -emit_16(1799); -emit_16(1735); -emit_16(1800); -emit_16(1736); -emit_16(1800); -emit_16(1735); -emit_16(1800); -emit_16(1736); -emit_16(1801); -emit_16(1737); -emit_16(1801); -emit_16(1736); -emit_16(1801); -emit_16(1737); -emit_16(1802); -emit_16(1738); -emit_16(1802); -emit_16(1737); -emit_16(1802); -emit_16(1738); -emit_16(1803); -emit_16(1739); -emit_16(1803); -emit_16(1738); -emit_16(1803); -emit_16(1739); -emit_16(1804); -emit_16(1740); -emit_16(1804); -emit_16(1739); -emit_16(1804); -emit_16(1740); -emit_16(1805); -emit_16(1741); -emit_16(1805); -emit_16(1740); -emit_16(1805); -emit_16(1741); -emit_16(1806); -emit_16(1742); -emit_16(1806); -emit_16(1741); -emit_16(1806); -emit_16(1742); -emit_16(1807); -emit_16(1743); -emit_16(1807); -emit_16(1742); -emit_16(1807); -emit_16(1743); -emit_16(1808); -emit_16(1744); -emit_16(1808); -emit_16(1743); -emit_16(1808); -emit_16(1744); -emit_16(1809); -emit_16(1745); -emit_16(1809); -emit_16(1744); -emit_16(1809); -emit_16(1745); -emit_16(1810); -emit_16(1746); -emit_16(1810); -emit_16(1745); -emit_16(1810); -emit_16(1746); -emit_16(1811); -emit_16(1747); -emit_16(1811); -emit_16(1746); -emit_16(1811); -emit_16(1747); -emit_16(1812); -emit_16(1748); -emit_16(1812); -emit_16(1747); -emit_16(1812); -emit_16(1748); -emit_16(1813); -emit_16(1749); -emit_16(1813); -emit_16(1748); -emit_16(1813); -emit_16(1749); -emit_16(1814); -emit_16(1750); -emit_16(1814); -emit_16(1749); -emit_16(1814); -emit_16(1750); -emit_16(1815); -emit_16(1751); -emit_16(1815); -emit_16(1750); -emit_16(1815); -emit_16(1751); -emit_16(1816); -emit_16(1752); -emit_16(1816); -emit_16(1751); -emit_16(1816); -emit_16(1752); -emit_16(1817); -emit_16(1753); -emit_16(1817); -emit_16(1752); -emit_16(1817); -emit_16(1753); -emit_16(1818); -emit_16(1754); -emit_16(1818); -emit_16(1753); -emit_16(1818); -emit_16(1754); -emit_16(1819); -emit_16(1755); -emit_16(1819); -emit_16(1754); -emit_16(1819); -emit_16(1755); -emit_16(1820); -emit_16(1756); -emit_16(1820); -emit_16(1755); -emit_16(1820); -emit_16(1756); -emit_16(1821); -emit_16(1757); -emit_16(1821); -emit_16(1756); -emit_16(1821); -emit_16(1757); -emit_16(1822); -emit_16(1758); -emit_16(1822); -emit_16(1757); -emit_16(1822); -emit_16(1758); -emit_16(1823); -emit_16(1759); -emit_16(1823); -emit_16(1758); -emit_16(1823); -emit_16(1759); -emit_16(1824); -emit_16(1760); -emit_16(1824); -emit_16(1759); -emit_16(1824); -emit_16(1760); -emit_16(1825); -emit_16(1761); -emit_16(1825); -emit_16(1760); -emit_16(1825); -emit_16(1761); -emit_16(1826); -emit_16(1762); -emit_16(1826); -emit_16(1761); -emit_16(1826); -emit_16(1762); -emit_16(1827); -emit_16(1763); -emit_16(1827); -emit_16(1762); -emit_16(1827); -emit_16(1763); -emit_16(1828); -emit_16(1764); -emit_16(1828); -emit_16(1763); -emit_16(1828); -emit_16(1764); -emit_16(1829); -emit_16(1765); -emit_16(1829); -emit_16(1764); -emit_16(1829); -emit_16(1765); -emit_16(1830); -emit_16(1766); -emit_16(1830); -emit_16(1765); -emit_16(1830); -emit_16(1766); -emit_16(1831); -emit_16(1767); -emit_16(1831); -emit_16(1766); -emit_16(1831); -emit_16(1767); -emit_16(1832); -emit_16(1768); -emit_16(1832); -emit_16(1767); -emit_16(1832); -emit_16(1768); -emit_16(1833); -emit_16(1769); -emit_16(1833); -emit_16(1768); -emit_16(1833); -emit_16(1769); -emit_16(1834); -emit_16(1770); -emit_16(1834); -emit_16(1769); -emit_16(1834); -emit_16(1770); -emit_16(1835); -emit_16(1771); -emit_16(1835); -emit_16(1770); -emit_16(1835); -emit_16(1771); -emit_16(1836); -emit_16(1772); -emit_16(1836); -emit_16(1771); -emit_16(1836); -emit_16(1772); -emit_16(1837); -emit_16(1773); -emit_16(1837); -emit_16(1772); -emit_16(1837); -emit_16(1773); -emit_16(1838); -emit_16(1774); -emit_16(1838); -emit_16(1773); -emit_16(1838); -emit_16(1774); -emit_16(1839); -emit_16(1775); -emit_16(1839); -emit_16(1774); -emit_16(1839); -emit_16(1775); -emit_16(1840); -emit_16(1776); -emit_16(1840); -emit_16(1775); -emit_16(1840); -emit_16(1776); -emit_16(1841); -emit_16(1777); -emit_16(1841); -emit_16(1776); -emit_16(1841); -emit_16(1777); -emit_16(1842); -emit_16(1778); -emit_16(1842); -emit_16(1777); -emit_16(1842); -emit_16(1778); -emit_16(1843); -emit_16(1779); -emit_16(1843); -emit_16(1778); -emit_16(1843); -emit_16(1779); -emit_16(1844); -emit_16(1780); -emit_16(1844); -emit_16(1779); -emit_16(1844); -emit_16(1780); -emit_16(1845); -emit_16(1781); -emit_16(1845); -emit_16(1780); -emit_16(1845); -emit_16(1781); -emit_16(1846); -emit_16(1782); -emit_16(1846); -emit_16(1781); -emit_16(1846); -emit_16(1782); -emit_16(1847); -emit_16(1783); -emit_16(1847); -emit_16(1782); -emit_16(1847); -emit_16(1783); -emit_16(1848); -emit_16(1784); -emit_16(1848); -emit_16(1783); -emit_16(1848); -emit_16(1784); -emit_16(1849); -emit_16(1785); -emit_16(1849); -emit_16(1784); -emit_16(1849); -emit_16(1785); -emit_16(1850); -emit_16(1786); -emit_16(1850); -emit_16(1785); -emit_16(1850); -emit_16(1786); -emit_16(1851); -emit_16(1787); -emit_16(1851); -emit_16(1786); -emit_16(1851); -emit_16(1787); -emit_16(1852); -emit_16(1788); -emit_16(1852); -emit_16(1787); -emit_16(1852); -emit_16(1788); -emit_16(1853); -emit_16(1789); -emit_16(1853); -emit_16(1788); -emit_16(1853); -emit_16(1789); -emit_16(1854); -emit_16(1790); -emit_16(1854); -emit_16(1789); -emit_16(1854); -emit_16(1790); -emit_16(1855); -emit_16(1791); -emit_16(1855); -emit_16(1790); -emit_16(1856); -emit_16(1792); -emit_16(1857); -emit_16(1793); -emit_16(1857); -emit_16(1792); -emit_16(1857); -emit_16(1793); -emit_16(1858); -emit_16(1794); -emit_16(1858); -emit_16(1793); -emit_16(1858); -emit_16(1794); -emit_16(1859); -emit_16(1795); -emit_16(1859); -emit_16(1794); -emit_16(1859); -emit_16(1795); -emit_16(1860); -emit_16(1796); -emit_16(1860); -emit_16(1795); -emit_16(1860); -emit_16(1796); -emit_16(1861); -emit_16(1797); -emit_16(1861); -emit_16(1796); -emit_16(1861); -emit_16(1797); -emit_16(1862); -emit_16(1798); -emit_16(1862); -emit_16(1797); -emit_16(1862); -emit_16(1798); -emit_16(1863); -emit_16(1799); -emit_16(1863); -emit_16(1798); -emit_16(1863); -emit_16(1799); -emit_16(1864); -emit_16(1800); -emit_16(1864); -emit_16(1799); -emit_16(1864); -emit_16(1800); -emit_16(1865); -emit_16(1801); -emit_16(1865); -emit_16(1800); -emit_16(1865); -emit_16(1801); -emit_16(1866); -emit_16(1802); -emit_16(1866); -emit_16(1801); -emit_16(1866); -emit_16(1802); -emit_16(1867); -emit_16(1803); -emit_16(1867); -emit_16(1802); -emit_16(1867); -emit_16(1803); -emit_16(1868); -emit_16(1804); -emit_16(1868); -emit_16(1803); -emit_16(1868); -emit_16(1804); -emit_16(1869); -emit_16(1805); -emit_16(1869); -emit_16(1804); -emit_16(1869); -emit_16(1805); -emit_16(1870); -emit_16(1806); -emit_16(1870); -emit_16(1805); -emit_16(1870); -emit_16(1806); -emit_16(1871); -emit_16(1807); -emit_16(1871); -emit_16(1806); -emit_16(1871); -emit_16(1807); -emit_16(1872); -emit_16(1808); -emit_16(1872); -emit_16(1807); -emit_16(1872); -emit_16(1808); -emit_16(1873); -emit_16(1809); -emit_16(1873); -emit_16(1808); -emit_16(1873); -emit_16(1809); -emit_16(1874); -emit_16(1810); -emit_16(1874); -emit_16(1809); -emit_16(1874); -emit_16(1810); -emit_16(1875); -emit_16(1811); -emit_16(1875); -emit_16(1810); -emit_16(1875); -emit_16(1811); -emit_16(1876); -emit_16(1812); -emit_16(1876); -emit_16(1811); -emit_16(1876); -emit_16(1812); -emit_16(1877); -emit_16(1813); -emit_16(1877); -emit_16(1812); -emit_16(1877); -emit_16(1813); -emit_16(1878); -emit_16(1814); -emit_16(1878); -emit_16(1813); -emit_16(1878); -emit_16(1814); -emit_16(1879); -emit_16(1815); -emit_16(1879); -emit_16(1814); -emit_16(1879); -emit_16(1815); -emit_16(1880); -emit_16(1816); -emit_16(1880); -emit_16(1815); -emit_16(1880); -emit_16(1816); -emit_16(1881); -emit_16(1817); -emit_16(1881); -emit_16(1816); -emit_16(1881); -emit_16(1817); -emit_16(1882); -emit_16(1818); -emit_16(1882); -emit_16(1817); -emit_16(1882); -emit_16(1818); -emit_16(1883); -emit_16(1819); -emit_16(1883); -emit_16(1818); -emit_16(1883); -emit_16(1819); -emit_16(1884); -emit_16(1820); -emit_16(1884); -emit_16(1819); -emit_16(1884); -emit_16(1820); -emit_16(1885); -emit_16(1821); -emit_16(1885); -emit_16(1820); -emit_16(1885); -emit_16(1821); -emit_16(1886); -emit_16(1822); -emit_16(1886); -emit_16(1821); -emit_16(1886); -emit_16(1822); -emit_16(1887); -emit_16(1823); -emit_16(1887); -emit_16(1822); -emit_16(1887); -emit_16(1823); -emit_16(1888); -emit_16(1824); -emit_16(1888); -emit_16(1823); -emit_16(1888); -emit_16(1824); -emit_16(1889); -emit_16(1825); -emit_16(1889); -emit_16(1824); -emit_16(1889); -emit_16(1825); -emit_16(1890); -emit_16(1826); -emit_16(1890); -emit_16(1825); -emit_16(1890); -emit_16(1826); -emit_16(1891); -emit_16(1827); -emit_16(1891); -emit_16(1826); -emit_16(1891); -emit_16(1827); -emit_16(1892); -emit_16(1828); -emit_16(1892); -emit_16(1827); -emit_16(1892); -emit_16(1828); -emit_16(1893); -emit_16(1829); -emit_16(1893); -emit_16(1828); -emit_16(1893); -emit_16(1829); -emit_16(1894); -emit_16(1830); -emit_16(1894); -emit_16(1829); -emit_16(1894); -emit_16(1830); -emit_16(1895); -emit_16(1831); -emit_16(1895); -emit_16(1830); -emit_16(1895); -emit_16(1831); -emit_16(1896); -emit_16(1832); -emit_16(1896); -emit_16(1831); -emit_16(1896); -emit_16(1832); -emit_16(1897); -emit_16(1833); -emit_16(1897); -emit_16(1832); -emit_16(1897); -emit_16(1833); -emit_16(1898); -emit_16(1834); -emit_16(1898); -emit_16(1833); -emit_16(1898); -emit_16(1834); -emit_16(1899); -emit_16(1835); -emit_16(1899); -emit_16(1834); -emit_16(1899); -emit_16(1835); -emit_16(1900); -emit_16(1836); -emit_16(1900); -emit_16(1835); -emit_16(1900); -emit_16(1836); -emit_16(1901); -emit_16(1837); -emit_16(1901); -emit_16(1836); -emit_16(1901); -emit_16(1837); -emit_16(1902); -emit_16(1838); -emit_16(1902); -emit_16(1837); -emit_16(1902); -emit_16(1838); -emit_16(1903); -emit_16(1839); -emit_16(1903); -emit_16(1838); -emit_16(1903); -emit_16(1839); -emit_16(1904); -emit_16(1840); -emit_16(1904); -emit_16(1839); -emit_16(1904); -emit_16(1840); -emit_16(1905); -emit_16(1841); -emit_16(1905); -emit_16(1840); -emit_16(1905); -emit_16(1841); -emit_16(1906); -emit_16(1842); -emit_16(1906); -emit_16(1841); -emit_16(1906); -emit_16(1842); -emit_16(1907); -emit_16(1843); -emit_16(1907); -emit_16(1842); -emit_16(1907); -emit_16(1843); -emit_16(1908); -emit_16(1844); -emit_16(1908); -emit_16(1843); -emit_16(1908); -emit_16(1844); -emit_16(1909); -emit_16(1845); -emit_16(1909); -emit_16(1844); -emit_16(1909); -emit_16(1845); -emit_16(1910); -emit_16(1846); -emit_16(1910); -emit_16(1845); -emit_16(1910); -emit_16(1846); -emit_16(1911); -emit_16(1847); -emit_16(1911); -emit_16(1846); -emit_16(1911); -emit_16(1847); -emit_16(1912); -emit_16(1848); -emit_16(1912); -emit_16(1847); -emit_16(1912); -emit_16(1848); -emit_16(1913); -emit_16(1849); -emit_16(1913); -emit_16(1848); -emit_16(1913); -emit_16(1849); -emit_16(1914); -emit_16(1850); -emit_16(1914); -emit_16(1849); -emit_16(1914); -emit_16(1850); -emit_16(1915); -emit_16(1851); -emit_16(1915); -emit_16(1850); -emit_16(1915); -emit_16(1851); -emit_16(1916); -emit_16(1852); -emit_16(1916); -emit_16(1851); -emit_16(1916); -emit_16(1852); -emit_16(1917); -emit_16(1853); -emit_16(1917); -emit_16(1852); -emit_16(1917); -emit_16(1853); -emit_16(1918); -emit_16(1854); -emit_16(1918); -emit_16(1853); -emit_16(1918); -emit_16(1854); -emit_16(1919); -emit_16(1855); -emit_16(1919); -emit_16(1854); -emit_16(1920); -emit_16(1856); -emit_16(1921); -emit_16(1857); -emit_16(1921); -emit_16(1856); -emit_16(1921); -emit_16(1857); -emit_16(1922); -emit_16(1858); -emit_16(1922); -emit_16(1857); -emit_16(1922); -emit_16(1858); -emit_16(1923); -emit_16(1859); -emit_16(1923); -emit_16(1858); -emit_16(1923); -emit_16(1859); -emit_16(1924); -emit_16(1860); -emit_16(1924); -emit_16(1859); -emit_16(1924); -emit_16(1860); -emit_16(1925); -emit_16(1861); -emit_16(1925); -emit_16(1860); -emit_16(1925); -emit_16(1861); -emit_16(1926); -emit_16(1862); -emit_16(1926); -emit_16(1861); -emit_16(1926); -emit_16(1862); -emit_16(1927); -emit_16(1863); -emit_16(1927); -emit_16(1862); -emit_16(1927); -emit_16(1863); -emit_16(1928); -emit_16(1864); -emit_16(1928); -emit_16(1863); -emit_16(1928); -emit_16(1864); -emit_16(1929); -emit_16(1865); -emit_16(1929); -emit_16(1864); -emit_16(1929); -emit_16(1865); -emit_16(1930); -emit_16(1866); -emit_16(1930); -emit_16(1865); -emit_16(1930); -emit_16(1866); -emit_16(1931); -emit_16(1867); -emit_16(1931); -emit_16(1866); -emit_16(1931); -emit_16(1867); -emit_16(1932); -emit_16(1868); -emit_16(1932); -emit_16(1867); -emit_16(1932); -emit_16(1868); -emit_16(1933); -emit_16(1869); -emit_16(1933); -emit_16(1868); -emit_16(1933); -emit_16(1869); -emit_16(1934); -emit_16(1870); -emit_16(1934); -emit_16(1869); -emit_16(1934); -emit_16(1870); -emit_16(1935); -emit_16(1871); -emit_16(1935); -emit_16(1870); -emit_16(1935); -emit_16(1871); -emit_16(1936); -emit_16(1872); -emit_16(1936); -emit_16(1871); -emit_16(1936); -emit_16(1872); -emit_16(1937); -emit_16(1873); -emit_16(1937); -emit_16(1872); -emit_16(1937); -emit_16(1873); -emit_16(1938); -emit_16(1874); -emit_16(1938); -emit_16(1873); -emit_16(1938); -emit_16(1874); -emit_16(1939); -emit_16(1875); -emit_16(1939); -emit_16(1874); -emit_16(1939); -emit_16(1875); -emit_16(1940); -emit_16(1876); -emit_16(1940); -emit_16(1875); -emit_16(1940); -emit_16(1876); -emit_16(1941); -emit_16(1877); -emit_16(1941); -emit_16(1876); -emit_16(1941); -emit_16(1877); -emit_16(1942); -emit_16(1878); -emit_16(1942); -emit_16(1877); -emit_16(1942); -emit_16(1878); -emit_16(1943); -emit_16(1879); -emit_16(1943); -emit_16(1878); -emit_16(1943); -emit_16(1879); -emit_16(1944); -emit_16(1880); -emit_16(1944); -emit_16(1879); -emit_16(1944); -emit_16(1880); -emit_16(1945); -emit_16(1881); -emit_16(1945); -emit_16(1880); -emit_16(1945); -emit_16(1881); -emit_16(1946); -emit_16(1882); -emit_16(1946); -emit_16(1881); -emit_16(1946); -emit_16(1882); -emit_16(1947); -emit_16(1883); -emit_16(1947); -emit_16(1882); -emit_16(1947); -emit_16(1883); -emit_16(1948); -emit_16(1884); -emit_16(1948); -emit_16(1883); -emit_16(1948); -emit_16(1884); -emit_16(1949); -emit_16(1885); -emit_16(1949); -emit_16(1884); -emit_16(1949); -emit_16(1885); -emit_16(1950); -emit_16(1886); -emit_16(1950); -emit_16(1885); -emit_16(1950); -emit_16(1886); -emit_16(1951); -emit_16(1887); -emit_16(1951); -emit_16(1886); -emit_16(1951); -emit_16(1887); -emit_16(1952); -emit_16(1888); -emit_16(1952); -emit_16(1887); -emit_16(1952); -emit_16(1888); -emit_16(1953); -emit_16(1889); -emit_16(1953); -emit_16(1888); -emit_16(1953); -emit_16(1889); -emit_16(1954); -emit_16(1890); -emit_16(1954); -emit_16(1889); -emit_16(1954); -emit_16(1890); -emit_16(1955); -emit_16(1891); -emit_16(1955); -emit_16(1890); -emit_16(1955); -emit_16(1891); -emit_16(1956); -emit_16(1892); -emit_16(1956); -emit_16(1891); -emit_16(1956); -emit_16(1892); -emit_16(1957); -emit_16(1893); -emit_16(1957); -emit_16(1892); -emit_16(1957); -emit_16(1893); -emit_16(1958); -emit_16(1894); -emit_16(1958); -emit_16(1893); -emit_16(1958); -emit_16(1894); -emit_16(1959); -emit_16(1895); -emit_16(1959); -emit_16(1894); -emit_16(1959); -emit_16(1895); -emit_16(1960); -emit_16(1896); -emit_16(1960); -emit_16(1895); -emit_16(1960); -emit_16(1896); -emit_16(1961); -emit_16(1897); -emit_16(1961); -emit_16(1896); -emit_16(1961); -emit_16(1897); -emit_16(1962); -emit_16(1898); -emit_16(1962); -emit_16(1897); -emit_16(1962); -emit_16(1898); -emit_16(1963); -emit_16(1899); -emit_16(1963); -emit_16(1898); -emit_16(1963); -emit_16(1899); -emit_16(1964); -emit_16(1900); -emit_16(1964); -emit_16(1899); -emit_16(1964); -emit_16(1900); -emit_16(1965); -emit_16(1901); -emit_16(1965); -emit_16(1900); -emit_16(1965); -emit_16(1901); -emit_16(1966); -emit_16(1902); -emit_16(1966); -emit_16(1901); -emit_16(1966); -emit_16(1902); -emit_16(1967); -emit_16(1903); -emit_16(1967); -emit_16(1902); -emit_16(1967); -emit_16(1903); -emit_16(1968); -emit_16(1904); -emit_16(1968); -emit_16(1903); -emit_16(1968); -emit_16(1904); -emit_16(1969); -emit_16(1905); -emit_16(1969); -emit_16(1904); -emit_16(1969); -emit_16(1905); -emit_16(1970); -emit_16(1906); -emit_16(1970); -emit_16(1905); -emit_16(1970); -emit_16(1906); -emit_16(1971); -emit_16(1907); -emit_16(1971); -emit_16(1906); -emit_16(1971); -emit_16(1907); -emit_16(1972); -emit_16(1908); -emit_16(1972); -emit_16(1907); -emit_16(1972); -emit_16(1908); -emit_16(1973); -emit_16(1909); -emit_16(1973); -emit_16(1908); -emit_16(1973); -emit_16(1909); -emit_16(1974); -emit_16(1910); -emit_16(1974); -emit_16(1909); -emit_16(1974); -emit_16(1910); -emit_16(1975); -emit_16(1911); -emit_16(1975); -emit_16(1910); -emit_16(1975); -emit_16(1911); -emit_16(1976); -emit_16(1912); -emit_16(1976); -emit_16(1911); -emit_16(1976); -emit_16(1912); -emit_16(1977); -emit_16(1913); -emit_16(1977); -emit_16(1912); -emit_16(1977); -emit_16(1913); -emit_16(1978); -emit_16(1914); -emit_16(1978); -emit_16(1913); -emit_16(1978); -emit_16(1914); -emit_16(1979); -emit_16(1915); -emit_16(1979); -emit_16(1914); -emit_16(1979); -emit_16(1915); -emit_16(1980); -emit_16(1916); -emit_16(1980); -emit_16(1915); -emit_16(1980); -emit_16(1916); -emit_16(1981); -emit_16(1917); -emit_16(1981); -emit_16(1916); -emit_16(1981); -emit_16(1917); -emit_16(1982); -emit_16(1918); -emit_16(1982); -emit_16(1917); -emit_16(1982); -emit_16(1918); -emit_16(1983); -emit_16(1919); -emit_16(1983); -emit_16(1918); -emit_16(1984); -emit_16(1920); -emit_16(1985); -emit_16(1921); -emit_16(1985); -emit_16(1920); -emit_16(1985); -emit_16(1921); -emit_16(1986); -emit_16(1922); -emit_16(1986); -emit_16(1921); -emit_16(1986); -emit_16(1922); -emit_16(1987); -emit_16(1923); -emit_16(1987); -emit_16(1922); -emit_16(1987); -emit_16(1923); -emit_16(1988); -emit_16(1924); -emit_16(1988); -emit_16(1923); -emit_16(1988); -emit_16(1924); -emit_16(1989); -emit_16(1925); -emit_16(1989); -emit_16(1924); -emit_16(1989); -emit_16(1925); -emit_16(1990); -emit_16(1926); -emit_16(1990); -emit_16(1925); -emit_16(1990); -emit_16(1926); -emit_16(1991); -emit_16(1927); -emit_16(1991); -emit_16(1926); -emit_16(1991); -emit_16(1927); -emit_16(1992); -emit_16(1928); -emit_16(1992); -emit_16(1927); -emit_16(1992); -emit_16(1928); -emit_16(1993); -emit_16(1929); -emit_16(1993); -emit_16(1928); -emit_16(1993); -emit_16(1929); -emit_16(1994); -emit_16(1930); -emit_16(1994); -emit_16(1929); -emit_16(1994); -emit_16(1930); -emit_16(1995); -emit_16(1931); -emit_16(1995); -emit_16(1930); -emit_16(1995); -emit_16(1931); -emit_16(1996); -emit_16(1932); -emit_16(1996); -emit_16(1931); -emit_16(1996); -emit_16(1932); -emit_16(1997); -emit_16(1933); -emit_16(1997); -emit_16(1932); -emit_16(1997); -emit_16(1933); -emit_16(1998); -emit_16(1934); -emit_16(1998); -emit_16(1933); -emit_16(1998); -emit_16(1934); -emit_16(1999); -emit_16(1935); -emit_16(1999); -emit_16(1934); -emit_16(1999); -emit_16(1935); -emit_16(2000); -emit_16(1936); -emit_16(2000); -emit_16(1935); -emit_16(2000); -emit_16(1936); -emit_16(2001); -emit_16(1937); -emit_16(2001); -emit_16(1936); -emit_16(2001); -emit_16(1937); -emit_16(2002); -emit_16(1938); -emit_16(2002); -emit_16(1937); -emit_16(2002); -emit_16(1938); -emit_16(2003); -emit_16(1939); -emit_16(2003); -emit_16(1938); -emit_16(2003); -emit_16(1939); -emit_16(2004); -emit_16(1940); -emit_16(2004); -emit_16(1939); -emit_16(2004); -emit_16(1940); -emit_16(2005); -emit_16(1941); -emit_16(2005); -emit_16(1940); -emit_16(2005); -emit_16(1941); -emit_16(2006); -emit_16(1942); -emit_16(2006); -emit_16(1941); -emit_16(2006); -emit_16(1942); -emit_16(2007); -emit_16(1943); -emit_16(2007); -emit_16(1942); -emit_16(2007); -emit_16(1943); -emit_16(2008); -emit_16(1944); -emit_16(2008); -emit_16(1943); -emit_16(2008); -emit_16(1944); -emit_16(2009); -emit_16(1945); -emit_16(2009); -emit_16(1944); -emit_16(2009); -emit_16(1945); -emit_16(2010); -emit_16(1946); -emit_16(2010); -emit_16(1945); -emit_16(2010); -emit_16(1946); -emit_16(2011); -emit_16(1947); -emit_16(2011); -emit_16(1946); -emit_16(2011); -emit_16(1947); -emit_16(2012); -emit_16(1948); -emit_16(2012); -emit_16(1947); -emit_16(2012); -emit_16(1948); -emit_16(2013); -emit_16(1949); -emit_16(2013); -emit_16(1948); -emit_16(2013); -emit_16(1949); -emit_16(2014); -emit_16(1950); -emit_16(2014); -emit_16(1949); -emit_16(2014); -emit_16(1950); -emit_16(2015); -emit_16(1951); -emit_16(2015); -emit_16(1950); -emit_16(2015); -emit_16(1951); -emit_16(2016); -emit_16(1952); -emit_16(2016); -emit_16(1951); -emit_16(2016); -emit_16(1952); -emit_16(2017); -emit_16(1953); -emit_16(2017); -emit_16(1952); -emit_16(2017); -emit_16(1953); -emit_16(2018); -emit_16(1954); -emit_16(2018); -emit_16(1953); -emit_16(2018); -emit_16(1954); -emit_16(2019); -emit_16(1955); -emit_16(2019); -emit_16(1954); -emit_16(2019); -emit_16(1955); -emit_16(2020); -emit_16(1956); -emit_16(2020); -emit_16(1955); -emit_16(2020); -emit_16(1956); -emit_16(2021); -emit_16(1957); -emit_16(2021); -emit_16(1956); -emit_16(2021); -emit_16(1957); -emit_16(2022); -emit_16(1958); -emit_16(2022); -emit_16(1957); -emit_16(2022); -emit_16(1958); -emit_16(2023); -emit_16(1959); -emit_16(2023); -emit_16(1958); -emit_16(2023); -emit_16(1959); -emit_16(2024); -emit_16(1960); -emit_16(2024); -emit_16(1959); -emit_16(2024); -emit_16(1960); -emit_16(2025); -emit_16(1961); -emit_16(2025); -emit_16(1960); -emit_16(2025); -emit_16(1961); -emit_16(2026); -emit_16(1962); -emit_16(2026); -emit_16(1961); -emit_16(2026); -emit_16(1962); -emit_16(2027); -emit_16(1963); -emit_16(2027); -emit_16(1962); -emit_16(2027); -emit_16(1963); -emit_16(2028); -emit_16(1964); -emit_16(2028); -emit_16(1963); -emit_16(2028); -emit_16(1964); -emit_16(2029); -emit_16(1965); -emit_16(2029); -emit_16(1964); -emit_16(2029); -emit_16(1965); -emit_16(2030); -emit_16(1966); -emit_16(2030); -emit_16(1965); -emit_16(2030); -emit_16(1966); -emit_16(2031); -emit_16(1967); -emit_16(2031); -emit_16(1966); -emit_16(2031); -emit_16(1967); -emit_16(2032); -emit_16(1968); -emit_16(2032); -emit_16(1967); -emit_16(2032); -emit_16(1968); -emit_16(2033); -emit_16(1969); -emit_16(2033); -emit_16(1968); -emit_16(2033); -emit_16(1969); -emit_16(2034); -emit_16(1970); -emit_16(2034); -emit_16(1969); -emit_16(2034); -emit_16(1970); -emit_16(2035); -emit_16(1971); -emit_16(2035); -emit_16(1970); -emit_16(2035); -emit_16(1971); -emit_16(2036); -emit_16(1972); -emit_16(2036); -emit_16(1971); -emit_16(2036); -emit_16(1972); -emit_16(2037); -emit_16(1973); -emit_16(2037); -emit_16(1972); -emit_16(2037); -emit_16(1973); -emit_16(2038); -emit_16(1974); -emit_16(2038); -emit_16(1973); -emit_16(2038); -emit_16(1974); -emit_16(2039); -emit_16(1975); -emit_16(2039); -emit_16(1974); -emit_16(2039); -emit_16(1975); -emit_16(2040); -emit_16(1976); -emit_16(2040); -emit_16(1975); -emit_16(2040); -emit_16(1976); -emit_16(2041); -emit_16(1977); -emit_16(2041); -emit_16(1976); -emit_16(2041); -emit_16(1977); -emit_16(2042); -emit_16(1978); -emit_16(2042); -emit_16(1977); -emit_16(2042); -emit_16(1978); -emit_16(2043); -emit_16(1979); -emit_16(2043); -emit_16(1978); -emit_16(2043); -emit_16(1979); -emit_16(2044); -emit_16(1980); -emit_16(2044); -emit_16(1979); -emit_16(2044); -emit_16(1980); -emit_16(2045); -emit_16(1981); -emit_16(2045); -emit_16(1980); -emit_16(2045); -emit_16(1981); -emit_16(2046); -emit_16(1982); -emit_16(2046); -emit_16(1981); -emit_16(2046); -emit_16(1982); -emit_16(2047); -emit_16(1983); -emit_16(2047); -emit_16(1982); -emit_start(Landscape02Idx) -emit_16(0); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(2); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(4); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(6); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(8); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(10); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(12); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(14); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(16); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(18); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(20); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(22); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(24); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(26); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(28); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(30); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(32); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(34); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(36); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(38); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(40); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(42); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(44); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(46); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(48); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(50); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(52); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(54); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(56); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(58); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(60); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(62); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(64); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(66); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(68); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(70); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(72); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(74); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(76); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(78); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(80); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(82); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(84); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(86); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(88); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(90); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(92); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(94); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(96); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(98); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(100); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(102); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(104); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(106); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(108); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(110); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(112); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(114); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(116); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(118); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(120); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(122); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(124); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(126); -emit_16(127); -emit_16(126); -emit_16(125); -emit_16(126); -emit_16(127); -emit_16(128); -emit_16(129); -emit_16(128); -emit_16(127); -emit_16(128); -emit_16(129); -emit_16(130); -emit_16(131); -emit_16(130); -emit_16(129); -emit_16(132); -emit_16(0); -emit_16(133); -emit_16(2); -emit_16(133); -emit_16(0); -emit_16(133); -emit_16(2); -emit_16(134); -emit_16(4); -emit_16(134); -emit_16(2); -emit_16(134); -emit_16(4); -emit_16(135); -emit_16(6); -emit_16(135); -emit_16(4); -emit_16(135); -emit_16(6); -emit_16(136); -emit_16(8); -emit_16(136); -emit_16(6); -emit_16(136); -emit_16(8); -emit_16(137); -emit_16(10); -emit_16(137); -emit_16(8); -emit_16(137); -emit_16(10); -emit_16(138); -emit_16(12); -emit_16(138); -emit_16(10); -emit_16(138); -emit_16(12); -emit_16(139); -emit_16(14); -emit_16(139); -emit_16(12); -emit_16(139); -emit_16(14); -emit_16(140); -emit_16(16); -emit_16(140); -emit_16(14); -emit_16(140); -emit_16(16); -emit_16(141); -emit_16(18); -emit_16(141); -emit_16(16); -emit_16(141); -emit_16(18); -emit_16(142); -emit_16(20); -emit_16(142); -emit_16(18); -emit_16(142); -emit_16(20); -emit_16(143); -emit_16(22); -emit_16(143); -emit_16(20); -emit_16(143); -emit_16(22); -emit_16(144); -emit_16(24); -emit_16(144); -emit_16(22); -emit_16(144); -emit_16(24); -emit_16(145); -emit_16(26); -emit_16(145); -emit_16(24); -emit_16(145); -emit_16(26); -emit_16(146); -emit_16(28); -emit_16(146); -emit_16(26); -emit_16(146); -emit_16(28); -emit_16(147); -emit_16(30); -emit_16(147); -emit_16(28); -emit_16(147); -emit_16(30); -emit_16(148); -emit_16(32); -emit_16(148); -emit_16(30); -emit_16(148); -emit_16(32); -emit_16(149); -emit_16(34); -emit_16(149); -emit_16(32); -emit_16(149); -emit_16(34); -emit_16(150); -emit_16(36); -emit_16(150); -emit_16(34); -emit_16(150); -emit_16(36); -emit_16(151); -emit_16(38); -emit_16(151); -emit_16(36); -emit_16(151); -emit_16(38); -emit_16(152); -emit_16(40); -emit_16(152); -emit_16(38); -emit_16(152); -emit_16(40); -emit_16(153); -emit_16(42); -emit_16(153); -emit_16(40); -emit_16(153); -emit_16(42); -emit_16(154); -emit_16(44); -emit_16(154); -emit_16(42); -emit_16(154); -emit_16(44); -emit_16(155); -emit_16(46); -emit_16(155); -emit_16(44); -emit_16(155); -emit_16(46); -emit_16(156); -emit_16(48); -emit_16(156); -emit_16(46); -emit_16(156); -emit_16(48); -emit_16(157); -emit_16(50); -emit_16(157); -emit_16(48); -emit_16(157); -emit_16(50); -emit_16(158); -emit_16(52); -emit_16(158); -emit_16(50); -emit_16(158); -emit_16(52); -emit_16(159); -emit_16(54); -emit_16(159); -emit_16(52); -emit_16(159); -emit_16(54); -emit_16(160); -emit_16(56); -emit_16(160); -emit_16(54); -emit_16(160); -emit_16(56); -emit_16(161); -emit_16(58); -emit_16(161); -emit_16(56); -emit_16(161); -emit_16(58); -emit_16(162); -emit_16(60); -emit_16(162); -emit_16(58); -emit_16(162); -emit_16(60); -emit_16(163); -emit_16(62); -emit_16(163); -emit_16(60); -emit_16(163); -emit_16(62); -emit_16(164); -emit_16(64); -emit_16(164); -emit_16(62); -emit_16(164); -emit_16(64); -emit_16(165); -emit_16(66); -emit_16(165); -emit_16(64); -emit_16(165); -emit_16(66); -emit_16(166); -emit_16(68); -emit_16(166); -emit_16(66); -emit_16(166); -emit_16(68); -emit_16(167); -emit_16(70); -emit_16(167); -emit_16(68); -emit_16(167); -emit_16(70); -emit_16(168); -emit_16(72); -emit_16(168); -emit_16(70); -emit_16(168); -emit_16(72); -emit_16(169); -emit_16(74); -emit_16(169); -emit_16(72); -emit_16(169); -emit_16(74); -emit_16(170); -emit_16(76); -emit_16(170); -emit_16(74); -emit_16(170); -emit_16(76); -emit_16(171); -emit_16(78); -emit_16(171); -emit_16(76); -emit_16(171); -emit_16(78); -emit_16(172); -emit_16(80); -emit_16(172); -emit_16(78); -emit_16(172); -emit_16(80); -emit_16(173); -emit_16(82); -emit_16(173); -emit_16(80); -emit_16(173); -emit_16(82); -emit_16(174); -emit_16(84); -emit_16(174); -emit_16(82); -emit_16(174); -emit_16(84); -emit_16(175); -emit_16(86); -emit_16(175); -emit_16(84); -emit_16(175); -emit_16(86); -emit_16(176); -emit_16(88); -emit_16(176); -emit_16(86); -emit_16(176); -emit_16(88); -emit_16(177); -emit_16(90); -emit_16(177); -emit_16(88); -emit_16(177); -emit_16(90); -emit_16(178); -emit_16(92); -emit_16(178); -emit_16(90); -emit_16(178); -emit_16(92); -emit_16(179); -emit_16(94); -emit_16(179); -emit_16(92); -emit_16(179); -emit_16(94); -emit_16(180); -emit_16(96); -emit_16(180); -emit_16(94); -emit_16(180); -emit_16(96); -emit_16(181); -emit_16(98); -emit_16(181); -emit_16(96); -emit_16(181); -emit_16(98); -emit_16(182); -emit_16(100); -emit_16(182); -emit_16(98); -emit_16(182); -emit_16(100); -emit_16(183); -emit_16(102); -emit_16(183); -emit_16(100); -emit_16(183); -emit_16(102); -emit_16(184); -emit_16(104); -emit_16(184); -emit_16(102); -emit_16(184); -emit_16(104); -emit_16(185); -emit_16(106); -emit_16(185); -emit_16(104); -emit_16(185); -emit_16(106); -emit_16(186); -emit_16(108); -emit_16(186); -emit_16(106); -emit_16(186); -emit_16(108); -emit_16(187); -emit_16(110); -emit_16(187); -emit_16(108); -emit_16(187); -emit_16(110); -emit_16(188); -emit_16(112); -emit_16(188); -emit_16(110); -emit_16(188); -emit_16(112); -emit_16(189); -emit_16(114); -emit_16(189); -emit_16(112); -emit_16(189); -emit_16(114); -emit_16(190); -emit_16(116); -emit_16(190); -emit_16(114); -emit_16(190); -emit_16(116); -emit_16(191); -emit_16(118); -emit_16(191); -emit_16(116); -emit_16(191); -emit_16(118); -emit_16(192); -emit_16(120); -emit_16(192); -emit_16(118); -emit_16(192); -emit_16(120); -emit_16(193); -emit_16(122); -emit_16(193); -emit_16(120); -emit_16(193); -emit_16(122); -emit_16(194); -emit_16(124); -emit_16(194); -emit_16(122); -emit_16(194); -emit_16(124); -emit_16(195); -emit_16(126); -emit_16(195); -emit_16(124); -emit_16(195); -emit_16(126); -emit_16(196); -emit_16(128); -emit_16(196); -emit_16(126); -emit_16(196); -emit_16(128); -emit_16(197); -emit_16(130); -emit_16(197); -emit_16(128); -emit_16(198); -emit_16(132); -emit_16(199); -emit_16(133); -emit_16(199); -emit_16(132); -emit_16(199); -emit_16(133); -emit_16(200); -emit_16(134); -emit_16(200); -emit_16(133); -emit_16(200); -emit_16(134); -emit_16(201); -emit_16(135); -emit_16(201); -emit_16(134); -emit_16(201); -emit_16(135); -emit_16(202); -emit_16(136); -emit_16(202); -emit_16(135); -emit_16(202); -emit_16(136); -emit_16(203); -emit_16(137); -emit_16(203); -emit_16(136); -emit_16(203); -emit_16(137); -emit_16(204); -emit_16(138); -emit_16(204); -emit_16(137); -emit_16(204); -emit_16(138); -emit_16(205); -emit_16(139); -emit_16(205); -emit_16(138); -emit_16(205); -emit_16(139); -emit_16(206); -emit_16(140); -emit_16(206); -emit_16(139); -emit_16(206); -emit_16(140); -emit_16(207); -emit_16(141); -emit_16(207); -emit_16(140); -emit_16(207); -emit_16(141); -emit_16(208); -emit_16(142); -emit_16(208); -emit_16(141); -emit_16(208); -emit_16(142); -emit_16(209); -emit_16(143); -emit_16(209); -emit_16(142); -emit_16(209); -emit_16(143); -emit_16(210); -emit_16(144); -emit_16(210); -emit_16(143); -emit_16(210); -emit_16(144); -emit_16(211); -emit_16(145); -emit_16(211); -emit_16(144); -emit_16(211); -emit_16(145); -emit_16(212); -emit_16(146); -emit_16(212); -emit_16(145); -emit_16(212); -emit_16(146); -emit_16(213); -emit_16(147); -emit_16(213); -emit_16(146); -emit_16(213); -emit_16(147); -emit_16(214); -emit_16(148); -emit_16(214); -emit_16(147); -emit_16(214); -emit_16(148); -emit_16(215); -emit_16(149); -emit_16(215); -emit_16(148); -emit_16(215); -emit_16(149); -emit_16(216); -emit_16(150); -emit_16(216); -emit_16(149); -emit_16(216); -emit_16(150); -emit_16(217); -emit_16(151); -emit_16(217); -emit_16(150); -emit_16(217); -emit_16(151); -emit_16(218); -emit_16(152); -emit_16(218); -emit_16(151); -emit_16(218); -emit_16(152); -emit_16(219); -emit_16(153); -emit_16(219); -emit_16(152); -emit_16(219); -emit_16(153); -emit_16(220); -emit_16(154); -emit_16(220); -emit_16(153); -emit_16(220); -emit_16(154); -emit_16(221); -emit_16(155); -emit_16(221); -emit_16(154); -emit_16(221); -emit_16(155); -emit_16(222); -emit_16(156); -emit_16(222); -emit_16(155); -emit_16(222); -emit_16(156); -emit_16(223); -emit_16(157); -emit_16(223); -emit_16(156); -emit_16(223); -emit_16(157); -emit_16(224); -emit_16(158); -emit_16(224); -emit_16(157); -emit_16(224); -emit_16(158); -emit_16(225); -emit_16(159); -emit_16(225); -emit_16(158); -emit_16(225); -emit_16(159); -emit_16(226); -emit_16(160); -emit_16(226); -emit_16(159); -emit_16(226); -emit_16(160); -emit_16(227); -emit_16(161); -emit_16(227); -emit_16(160); -emit_16(227); -emit_16(161); -emit_16(228); -emit_16(162); -emit_16(228); -emit_16(161); -emit_16(228); -emit_16(162); -emit_16(229); -emit_16(163); -emit_16(229); -emit_16(162); -emit_16(229); -emit_16(163); -emit_16(230); -emit_16(164); -emit_16(230); -emit_16(163); -emit_16(230); -emit_16(164); -emit_16(231); -emit_16(165); -emit_16(231); -emit_16(164); -emit_16(231); -emit_16(165); -emit_16(232); -emit_16(166); -emit_16(232); -emit_16(165); -emit_16(232); -emit_16(166); -emit_16(233); -emit_16(167); -emit_16(233); -emit_16(166); -emit_16(233); -emit_16(167); -emit_16(234); -emit_16(168); -emit_16(234); -emit_16(167); -emit_16(234); -emit_16(168); -emit_16(235); -emit_16(169); -emit_16(235); -emit_16(168); -emit_16(235); -emit_16(169); -emit_16(236); -emit_16(170); -emit_16(236); -emit_16(169); -emit_16(236); -emit_16(170); -emit_16(237); -emit_16(171); -emit_16(237); -emit_16(170); -emit_16(237); -emit_16(171); -emit_16(238); -emit_16(172); -emit_16(238); -emit_16(171); -emit_16(238); -emit_16(172); -emit_16(239); -emit_16(173); -emit_16(239); -emit_16(172); -emit_16(239); -emit_16(173); -emit_16(240); -emit_16(174); -emit_16(240); -emit_16(173); -emit_16(240); -emit_16(174); -emit_16(241); -emit_16(175); -emit_16(241); -emit_16(174); -emit_16(241); -emit_16(175); -emit_16(242); -emit_16(176); -emit_16(242); -emit_16(175); -emit_16(242); -emit_16(176); -emit_16(243); -emit_16(177); -emit_16(243); -emit_16(176); -emit_16(243); -emit_16(177); -emit_16(244); -emit_16(178); -emit_16(244); -emit_16(177); -emit_16(244); -emit_16(178); -emit_16(245); -emit_16(179); -emit_16(245); -emit_16(178); -emit_16(245); -emit_16(179); -emit_16(246); -emit_16(180); -emit_16(246); -emit_16(179); -emit_16(246); -emit_16(180); -emit_16(247); -emit_16(181); -emit_16(247); -emit_16(180); -emit_16(247); -emit_16(181); -emit_16(248); -emit_16(182); -emit_16(248); -emit_16(181); -emit_16(248); -emit_16(182); -emit_16(249); -emit_16(183); -emit_16(249); -emit_16(182); -emit_16(249); -emit_16(183); -emit_16(250); -emit_16(184); -emit_16(250); -emit_16(183); -emit_16(250); -emit_16(184); -emit_16(251); -emit_16(185); -emit_16(251); -emit_16(184); -emit_16(251); -emit_16(185); -emit_16(252); -emit_16(186); -emit_16(252); -emit_16(185); -emit_16(252); -emit_16(186); -emit_16(253); -emit_16(187); -emit_16(253); -emit_16(186); -emit_16(253); -emit_16(187); -emit_16(254); -emit_16(188); -emit_16(254); -emit_16(187); -emit_16(254); -emit_16(188); -emit_16(255); -emit_16(189); -emit_16(255); -emit_16(188); -emit_16(255); -emit_16(189); -emit_16(256); -emit_16(190); -emit_16(256); -emit_16(189); -emit_16(256); -emit_16(190); -emit_16(257); -emit_16(191); -emit_16(257); -emit_16(190); -emit_16(257); -emit_16(191); -emit_16(258); -emit_16(192); -emit_16(258); -emit_16(191); -emit_16(258); -emit_16(192); -emit_16(259); -emit_16(193); -emit_16(259); -emit_16(192); -emit_16(259); -emit_16(193); -emit_16(260); -emit_16(194); -emit_16(260); -emit_16(193); -emit_16(260); -emit_16(194); -emit_16(261); -emit_16(195); -emit_16(261); -emit_16(194); -emit_16(261); -emit_16(195); -emit_16(262); -emit_16(196); -emit_16(262); -emit_16(195); -emit_16(262); -emit_16(196); -emit_16(263); -emit_16(197); -emit_16(263); -emit_16(196); -emit_16(264); -emit_16(198); -emit_16(265); -emit_16(199); -emit_16(265); -emit_16(198); -emit_16(265); -emit_16(199); -emit_16(266); -emit_16(200); -emit_16(266); -emit_16(199); -emit_16(266); -emit_16(200); -emit_16(267); -emit_16(201); -emit_16(267); -emit_16(200); -emit_16(267); -emit_16(201); -emit_16(268); -emit_16(202); -emit_16(268); -emit_16(201); -emit_16(268); -emit_16(202); -emit_16(269); -emit_16(203); -emit_16(269); -emit_16(202); -emit_16(269); -emit_16(203); -emit_16(270); -emit_16(204); -emit_16(270); -emit_16(203); -emit_16(270); -emit_16(204); -emit_16(271); -emit_16(205); -emit_16(271); -emit_16(204); -emit_16(271); -emit_16(205); -emit_16(272); -emit_16(206); -emit_16(272); -emit_16(205); -emit_16(272); -emit_16(206); -emit_16(273); -emit_16(207); -emit_16(273); -emit_16(206); -emit_16(273); -emit_16(207); -emit_16(274); -emit_16(208); -emit_16(274); -emit_16(207); -emit_16(274); -emit_16(208); -emit_16(275); -emit_16(209); -emit_16(275); -emit_16(208); -emit_16(275); -emit_16(209); -emit_16(276); -emit_16(210); -emit_16(276); -emit_16(209); -emit_16(276); -emit_16(210); -emit_16(277); -emit_16(211); -emit_16(277); -emit_16(210); -emit_16(277); -emit_16(211); -emit_16(278); -emit_16(212); -emit_16(278); -emit_16(211); -emit_16(278); -emit_16(212); -emit_16(279); -emit_16(213); -emit_16(279); -emit_16(212); -emit_16(279); -emit_16(213); -emit_16(280); -emit_16(214); -emit_16(280); -emit_16(213); -emit_16(280); -emit_16(214); -emit_16(281); -emit_16(215); -emit_16(281); -emit_16(214); -emit_16(281); -emit_16(215); -emit_16(282); -emit_16(216); -emit_16(282); -emit_16(215); -emit_16(282); -emit_16(216); -emit_16(283); -emit_16(217); -emit_16(283); -emit_16(216); -emit_16(283); -emit_16(217); -emit_16(284); -emit_16(218); -emit_16(284); -emit_16(217); -emit_16(284); -emit_16(218); -emit_16(285); -emit_16(219); -emit_16(285); -emit_16(218); -emit_16(285); -emit_16(219); -emit_16(286); -emit_16(220); -emit_16(286); -emit_16(219); -emit_16(286); -emit_16(220); -emit_16(287); -emit_16(221); -emit_16(287); -emit_16(220); -emit_16(287); -emit_16(221); -emit_16(288); -emit_16(222); -emit_16(288); -emit_16(221); -emit_16(288); -emit_16(222); -emit_16(289); -emit_16(223); -emit_16(289); -emit_16(222); -emit_16(289); -emit_16(223); -emit_16(290); -emit_16(224); -emit_16(290); -emit_16(223); -emit_16(290); -emit_16(224); -emit_16(291); -emit_16(225); -emit_16(291); -emit_16(224); -emit_16(291); -emit_16(225); -emit_16(292); -emit_16(226); -emit_16(292); -emit_16(225); -emit_16(292); -emit_16(226); -emit_16(293); -emit_16(227); -emit_16(293); -emit_16(226); -emit_16(293); -emit_16(227); -emit_16(294); -emit_16(228); -emit_16(294); -emit_16(227); -emit_16(294); -emit_16(228); -emit_16(295); -emit_16(229); -emit_16(295); -emit_16(228); -emit_16(295); -emit_16(229); -emit_16(296); -emit_16(230); -emit_16(296); -emit_16(229); -emit_16(296); -emit_16(230); -emit_16(297); -emit_16(231); -emit_16(297); -emit_16(230); -emit_16(297); -emit_16(231); -emit_16(298); -emit_16(232); -emit_16(298); -emit_16(231); -emit_16(298); -emit_16(232); -emit_16(299); -emit_16(233); -emit_16(299); -emit_16(232); -emit_16(299); -emit_16(233); -emit_16(300); -emit_16(234); -emit_16(300); -emit_16(233); -emit_16(300); -emit_16(234); -emit_16(301); -emit_16(235); -emit_16(301); -emit_16(234); -emit_16(301); -emit_16(235); -emit_16(302); -emit_16(236); -emit_16(302); -emit_16(235); -emit_16(302); -emit_16(236); -emit_16(303); -emit_16(237); -emit_16(303); -emit_16(236); -emit_16(303); -emit_16(237); -emit_16(304); -emit_16(238); -emit_16(304); -emit_16(237); -emit_16(304); -emit_16(238); -emit_16(305); -emit_16(239); -emit_16(305); -emit_16(238); -emit_16(305); -emit_16(239); -emit_16(306); -emit_16(240); -emit_16(306); -emit_16(239); -emit_16(306); -emit_16(240); -emit_16(307); -emit_16(241); -emit_16(307); -emit_16(240); -emit_16(307); -emit_16(241); -emit_16(308); -emit_16(242); -emit_16(308); -emit_16(241); -emit_16(308); -emit_16(242); -emit_16(309); -emit_16(243); -emit_16(309); -emit_16(242); -emit_16(309); -emit_16(243); -emit_16(310); -emit_16(244); -emit_16(310); -emit_16(243); -emit_16(310); -emit_16(244); -emit_16(311); -emit_16(245); -emit_16(311); -emit_16(244); -emit_16(311); -emit_16(245); -emit_16(312); -emit_16(246); -emit_16(312); -emit_16(245); -emit_16(312); -emit_16(246); -emit_16(313); -emit_16(247); -emit_16(313); -emit_16(246); -emit_16(313); -emit_16(247); -emit_16(314); -emit_16(248); -emit_16(314); -emit_16(247); -emit_16(314); -emit_16(248); -emit_16(315); -emit_16(249); -emit_16(315); -emit_16(248); -emit_16(315); -emit_16(249); -emit_16(316); -emit_16(250); -emit_16(316); -emit_16(249); -emit_16(316); -emit_16(250); -emit_16(317); -emit_16(251); -emit_16(317); -emit_16(250); -emit_16(317); -emit_16(251); -emit_16(318); -emit_16(252); -emit_16(318); -emit_16(251); -emit_16(318); -emit_16(252); -emit_16(319); -emit_16(253); -emit_16(319); -emit_16(252); -emit_16(319); -emit_16(253); -emit_16(320); -emit_16(254); -emit_16(320); -emit_16(253); -emit_16(320); -emit_16(254); -emit_16(321); -emit_16(255); -emit_16(321); -emit_16(254); -emit_16(321); -emit_16(255); -emit_16(322); -emit_16(256); -emit_16(322); -emit_16(255); -emit_16(322); -emit_16(256); -emit_16(323); -emit_16(257); -emit_16(323); -emit_16(256); -emit_16(323); -emit_16(257); -emit_16(324); -emit_16(258); -emit_16(324); -emit_16(257); -emit_16(324); -emit_16(258); -emit_16(325); -emit_16(259); -emit_16(325); -emit_16(258); -emit_16(325); -emit_16(259); -emit_16(326); -emit_16(260); -emit_16(326); -emit_16(259); -emit_16(326); -emit_16(260); -emit_16(327); -emit_16(261); -emit_16(327); -emit_16(260); -emit_16(327); -emit_16(261); -emit_16(328); -emit_16(262); -emit_16(328); -emit_16(261); -emit_16(328); -emit_16(262); -emit_16(329); -emit_16(263); -emit_16(329); -emit_16(262); -emit_16(330); -emit_16(264); -emit_16(331); -emit_16(265); -emit_16(331); -emit_16(264); -emit_16(331); -emit_16(265); -emit_16(332); -emit_16(266); -emit_16(332); -emit_16(265); -emit_16(332); -emit_16(266); -emit_16(333); -emit_16(267); -emit_16(333); -emit_16(266); -emit_16(333); -emit_16(267); -emit_16(334); -emit_16(268); -emit_16(334); -emit_16(267); -emit_16(334); -emit_16(268); -emit_16(335); -emit_16(269); -emit_16(335); -emit_16(268); -emit_16(335); -emit_16(269); -emit_16(336); -emit_16(270); -emit_16(336); -emit_16(269); -emit_16(336); -emit_16(270); -emit_16(337); -emit_16(271); -emit_16(337); -emit_16(270); -emit_16(337); -emit_16(271); -emit_16(338); -emit_16(272); -emit_16(338); -emit_16(271); -emit_16(338); -emit_16(272); -emit_16(339); -emit_16(273); -emit_16(339); -emit_16(272); -emit_16(339); -emit_16(273); -emit_16(340); -emit_16(274); -emit_16(340); -emit_16(273); -emit_16(340); -emit_16(274); -emit_16(341); -emit_16(275); -emit_16(341); -emit_16(274); -emit_16(341); -emit_16(275); -emit_16(342); -emit_16(276); -emit_16(342); -emit_16(275); -emit_16(342); -emit_16(276); -emit_16(343); -emit_16(277); -emit_16(343); -emit_16(276); -emit_16(343); -emit_16(277); -emit_16(344); -emit_16(278); -emit_16(344); -emit_16(277); -emit_16(344); -emit_16(278); -emit_16(345); -emit_16(279); -emit_16(345); -emit_16(278); -emit_16(345); -emit_16(279); -emit_16(346); -emit_16(280); -emit_16(346); -emit_16(279); -emit_16(346); -emit_16(280); -emit_16(347); -emit_16(281); -emit_16(347); -emit_16(280); -emit_16(347); -emit_16(281); -emit_16(348); -emit_16(282); -emit_16(348); -emit_16(281); -emit_16(348); -emit_16(282); -emit_16(349); -emit_16(283); -emit_16(349); -emit_16(282); -emit_16(349); -emit_16(283); -emit_16(350); -emit_16(284); -emit_16(350); -emit_16(283); -emit_16(350); -emit_16(284); -emit_16(351); -emit_16(285); -emit_16(351); -emit_16(284); -emit_16(351); -emit_16(285); -emit_16(352); -emit_16(286); -emit_16(352); -emit_16(285); -emit_16(352); -emit_16(286); -emit_16(353); -emit_16(287); -emit_16(353); -emit_16(286); -emit_16(353); -emit_16(287); -emit_16(354); -emit_16(288); -emit_16(354); -emit_16(287); -emit_16(354); -emit_16(288); -emit_16(355); -emit_16(289); -emit_16(355); -emit_16(288); -emit_16(355); -emit_16(289); -emit_16(356); -emit_16(290); -emit_16(356); -emit_16(289); -emit_16(356); -emit_16(290); -emit_16(357); -emit_16(291); -emit_16(357); -emit_16(290); -emit_16(357); -emit_16(291); -emit_16(358); -emit_16(292); -emit_16(358); -emit_16(291); -emit_16(358); -emit_16(292); -emit_16(359); -emit_16(293); -emit_16(359); -emit_16(292); -emit_16(359); -emit_16(293); -emit_16(360); -emit_16(294); -emit_16(360); -emit_16(293); -emit_16(360); -emit_16(294); -emit_16(361); -emit_16(295); -emit_16(361); -emit_16(294); -emit_16(361); -emit_16(295); -emit_16(362); -emit_16(296); -emit_16(362); -emit_16(295); -emit_16(362); -emit_16(296); -emit_16(363); -emit_16(297); -emit_16(363); -emit_16(296); -emit_16(363); -emit_16(297); -emit_16(364); -emit_16(298); -emit_16(364); -emit_16(297); -emit_16(364); -emit_16(298); -emit_16(365); -emit_16(299); -emit_16(365); -emit_16(298); -emit_16(365); -emit_16(299); -emit_16(366); -emit_16(300); -emit_16(366); -emit_16(299); -emit_16(366); -emit_16(300); -emit_16(367); -emit_16(301); -emit_16(367); -emit_16(300); -emit_16(367); -emit_16(301); -emit_16(368); -emit_16(302); -emit_16(368); -emit_16(301); -emit_16(368); -emit_16(302); -emit_16(369); -emit_16(303); -emit_16(369); -emit_16(302); -emit_16(369); -emit_16(303); -emit_16(370); -emit_16(304); -emit_16(370); -emit_16(303); -emit_16(370); -emit_16(304); -emit_16(371); -emit_16(305); -emit_16(371); -emit_16(304); -emit_16(371); -emit_16(305); -emit_16(372); -emit_16(306); -emit_16(372); -emit_16(305); -emit_16(372); -emit_16(306); -emit_16(373); -emit_16(307); -emit_16(373); -emit_16(306); -emit_16(373); -emit_16(307); -emit_16(374); -emit_16(308); -emit_16(374); -emit_16(307); -emit_16(374); -emit_16(308); -emit_16(375); -emit_16(309); -emit_16(375); -emit_16(308); -emit_16(375); -emit_16(309); -emit_16(376); -emit_16(310); -emit_16(376); -emit_16(309); -emit_16(376); -emit_16(310); -emit_16(377); -emit_16(311); -emit_16(377); -emit_16(310); -emit_16(377); -emit_16(311); -emit_16(378); -emit_16(312); -emit_16(378); -emit_16(311); -emit_16(378); -emit_16(312); -emit_16(379); -emit_16(313); -emit_16(379); -emit_16(312); -emit_16(379); -emit_16(313); -emit_16(380); -emit_16(314); -emit_16(380); -emit_16(313); -emit_16(380); -emit_16(314); -emit_16(381); -emit_16(315); -emit_16(381); -emit_16(314); -emit_16(381); -emit_16(315); -emit_16(382); -emit_16(316); -emit_16(382); -emit_16(315); -emit_16(382); -emit_16(316); -emit_16(383); -emit_16(317); -emit_16(383); -emit_16(316); -emit_16(383); -emit_16(317); -emit_16(384); -emit_16(318); -emit_16(384); -emit_16(317); -emit_16(384); -emit_16(318); -emit_16(385); -emit_16(319); -emit_16(385); -emit_16(318); -emit_16(385); -emit_16(319); -emit_16(386); -emit_16(320); -emit_16(386); -emit_16(319); -emit_16(386); -emit_16(320); -emit_16(387); -emit_16(321); -emit_16(387); -emit_16(320); -emit_16(387); -emit_16(321); -emit_16(388); -emit_16(322); -emit_16(388); -emit_16(321); -emit_16(388); -emit_16(322); -emit_16(389); -emit_16(323); -emit_16(389); -emit_16(322); -emit_16(389); -emit_16(323); -emit_16(390); -emit_16(324); -emit_16(390); -emit_16(323); -emit_16(390); -emit_16(324); -emit_16(391); -emit_16(325); -emit_16(391); -emit_16(324); -emit_16(391); -emit_16(325); -emit_16(392); -emit_16(326); -emit_16(392); -emit_16(325); -emit_16(392); -emit_16(326); -emit_16(393); -emit_16(327); -emit_16(393); -emit_16(326); -emit_16(393); -emit_16(327); -emit_16(394); -emit_16(328); -emit_16(394); -emit_16(327); -emit_16(394); -emit_16(328); -emit_16(395); -emit_16(329); -emit_16(395); -emit_16(328); -emit_16(396); -emit_16(330); -emit_16(397); -emit_16(331); -emit_16(397); -emit_16(330); -emit_16(397); -emit_16(331); -emit_16(398); -emit_16(332); -emit_16(398); -emit_16(331); -emit_16(398); -emit_16(332); -emit_16(399); -emit_16(333); -emit_16(399); -emit_16(332); -emit_16(399); -emit_16(333); -emit_16(400); -emit_16(334); -emit_16(400); -emit_16(333); -emit_16(400); -emit_16(334); -emit_16(401); -emit_16(335); -emit_16(401); -emit_16(334); -emit_16(401); -emit_16(335); -emit_16(402); -emit_16(336); -emit_16(402); -emit_16(335); -emit_16(402); -emit_16(336); -emit_16(403); -emit_16(337); -emit_16(403); -emit_16(336); -emit_16(403); -emit_16(337); -emit_16(404); -emit_16(338); -emit_16(404); -emit_16(337); -emit_16(404); -emit_16(338); -emit_16(405); -emit_16(339); -emit_16(405); -emit_16(338); -emit_16(405); -emit_16(339); -emit_16(406); -emit_16(340); -emit_16(406); -emit_16(339); -emit_16(406); -emit_16(340); -emit_16(407); -emit_16(341); -emit_16(407); -emit_16(340); -emit_16(407); -emit_16(341); -emit_16(408); -emit_16(342); -emit_16(408); -emit_16(341); -emit_16(408); -emit_16(342); -emit_16(409); -emit_16(343); -emit_16(409); -emit_16(342); -emit_16(409); -emit_16(343); -emit_16(410); -emit_16(344); -emit_16(410); -emit_16(343); -emit_16(410); -emit_16(344); -emit_16(411); -emit_16(345); -emit_16(411); -emit_16(344); -emit_16(411); -emit_16(345); -emit_16(412); -emit_16(346); -emit_16(412); -emit_16(345); -emit_16(412); -emit_16(346); -emit_16(413); -emit_16(347); -emit_16(413); -emit_16(346); -emit_16(413); -emit_16(347); -emit_16(414); -emit_16(348); -emit_16(414); -emit_16(347); -emit_16(414); -emit_16(348); -emit_16(415); -emit_16(349); -emit_16(415); -emit_16(348); -emit_16(415); -emit_16(349); -emit_16(416); -emit_16(350); -emit_16(416); -emit_16(349); -emit_16(416); -emit_16(350); -emit_16(417); -emit_16(351); -emit_16(417); -emit_16(350); -emit_16(417); -emit_16(351); -emit_16(418); -emit_16(352); -emit_16(418); -emit_16(351); -emit_16(418); -emit_16(352); -emit_16(419); -emit_16(353); -emit_16(419); -emit_16(352); -emit_16(419); -emit_16(353); -emit_16(420); -emit_16(354); -emit_16(420); -emit_16(353); -emit_16(420); -emit_16(354); -emit_16(421); -emit_16(355); -emit_16(421); -emit_16(354); -emit_16(421); -emit_16(355); -emit_16(422); -emit_16(356); -emit_16(422); -emit_16(355); -emit_16(422); -emit_16(356); -emit_16(423); -emit_16(357); -emit_16(423); -emit_16(356); -emit_16(423); -emit_16(357); -emit_16(424); -emit_16(358); -emit_16(424); -emit_16(357); -emit_16(424); -emit_16(358); -emit_16(425); -emit_16(359); -emit_16(425); -emit_16(358); -emit_16(425); -emit_16(359); -emit_16(426); -emit_16(360); -emit_16(426); -emit_16(359); -emit_16(426); -emit_16(360); -emit_16(427); -emit_16(361); -emit_16(427); -emit_16(360); -emit_16(427); -emit_16(361); -emit_16(428); -emit_16(362); -emit_16(428); -emit_16(361); -emit_16(428); -emit_16(362); -emit_16(429); -emit_16(363); -emit_16(429); -emit_16(362); -emit_16(429); -emit_16(363); -emit_16(430); -emit_16(364); -emit_16(430); -emit_16(363); -emit_16(430); -emit_16(364); -emit_16(431); -emit_16(365); -emit_16(431); -emit_16(364); -emit_16(431); -emit_16(365); -emit_16(432); -emit_16(366); -emit_16(432); -emit_16(365); -emit_16(432); -emit_16(366); -emit_16(433); -emit_16(367); -emit_16(433); -emit_16(366); -emit_16(433); -emit_16(367); -emit_16(434); -emit_16(368); -emit_16(434); -emit_16(367); -emit_16(434); -emit_16(368); -emit_16(435); -emit_16(369); -emit_16(435); -emit_16(368); -emit_16(435); -emit_16(369); -emit_16(436); -emit_16(370); -emit_16(436); -emit_16(369); -emit_16(436); -emit_16(370); -emit_16(437); -emit_16(371); -emit_16(437); -emit_16(370); -emit_16(437); -emit_16(371); -emit_16(438); -emit_16(372); -emit_16(438); -emit_16(371); -emit_16(438); -emit_16(372); -emit_16(439); -emit_16(373); -emit_16(439); -emit_16(372); -emit_16(439); -emit_16(373); -emit_16(440); -emit_16(374); -emit_16(440); -emit_16(373); -emit_16(440); -emit_16(374); -emit_16(441); -emit_16(375); -emit_16(441); -emit_16(374); -emit_16(441); -emit_16(375); -emit_16(442); -emit_16(376); -emit_16(442); -emit_16(375); -emit_16(442); -emit_16(376); -emit_16(443); -emit_16(377); -emit_16(443); -emit_16(376); -emit_16(443); -emit_16(377); -emit_16(444); -emit_16(378); -emit_16(444); -emit_16(377); -emit_16(444); -emit_16(378); -emit_16(445); -emit_16(379); -emit_16(445); -emit_16(378); -emit_16(445); -emit_16(379); -emit_16(446); -emit_16(380); -emit_16(446); -emit_16(379); -emit_16(446); -emit_16(380); -emit_16(447); -emit_16(381); -emit_16(447); -emit_16(380); -emit_16(447); -emit_16(381); -emit_16(448); -emit_16(382); -emit_16(448); -emit_16(381); -emit_16(448); -emit_16(382); -emit_16(449); -emit_16(383); -emit_16(449); -emit_16(382); -emit_16(449); -emit_16(383); -emit_16(450); -emit_16(384); -emit_16(450); -emit_16(383); -emit_16(450); -emit_16(384); -emit_16(451); -emit_16(385); -emit_16(451); -emit_16(384); -emit_16(451); -emit_16(385); -emit_16(452); -emit_16(386); -emit_16(452); -emit_16(385); -emit_16(452); -emit_16(386); -emit_16(453); -emit_16(387); -emit_16(453); -emit_16(386); -emit_16(453); -emit_16(387); -emit_16(454); -emit_16(388); -emit_16(454); -emit_16(387); -emit_16(454); -emit_16(388); -emit_16(455); -emit_16(389); -emit_16(455); -emit_16(388); -emit_16(455); -emit_16(389); -emit_16(456); -emit_16(390); -emit_16(456); -emit_16(389); -emit_16(456); -emit_16(390); -emit_16(457); -emit_16(391); -emit_16(457); -emit_16(390); -emit_16(457); -emit_16(391); -emit_16(458); -emit_16(392); -emit_16(458); -emit_16(391); -emit_16(458); -emit_16(392); -emit_16(459); -emit_16(393); -emit_16(459); -emit_16(392); -emit_16(459); -emit_16(393); -emit_16(460); -emit_16(394); -emit_16(460); -emit_16(393); -emit_16(460); -emit_16(394); -emit_16(461); -emit_16(395); -emit_16(461); -emit_16(394); -emit_16(462); -emit_16(396); -emit_16(463); -emit_16(397); -emit_16(463); -emit_16(396); -emit_16(463); -emit_16(397); -emit_16(464); -emit_16(398); -emit_16(464); -emit_16(397); -emit_16(464); -emit_16(398); -emit_16(465); -emit_16(399); -emit_16(465); -emit_16(398); -emit_16(465); -emit_16(399); -emit_16(466); -emit_16(400); -emit_16(466); -emit_16(399); -emit_16(466); -emit_16(400); -emit_16(467); -emit_16(401); -emit_16(467); -emit_16(400); -emit_16(467); -emit_16(401); -emit_16(468); -emit_16(402); -emit_16(468); -emit_16(401); -emit_16(468); -emit_16(402); -emit_16(469); -emit_16(403); -emit_16(469); -emit_16(402); -emit_16(469); -emit_16(403); -emit_16(470); -emit_16(404); -emit_16(470); -emit_16(403); -emit_16(470); -emit_16(404); -emit_16(471); -emit_16(405); -emit_16(471); -emit_16(404); -emit_16(471); -emit_16(405); -emit_16(472); -emit_16(406); -emit_16(472); -emit_16(405); -emit_16(472); -emit_16(406); -emit_16(473); -emit_16(407); -emit_16(473); -emit_16(406); -emit_16(473); -emit_16(407); -emit_16(474); -emit_16(408); -emit_16(474); -emit_16(407); -emit_16(474); -emit_16(408); -emit_16(475); -emit_16(409); -emit_16(475); -emit_16(408); -emit_16(475); -emit_16(409); -emit_16(476); -emit_16(410); -emit_16(476); -emit_16(409); -emit_16(476); -emit_16(410); -emit_16(477); -emit_16(411); -emit_16(477); -emit_16(410); -emit_16(477); -emit_16(411); -emit_16(478); -emit_16(412); -emit_16(478); -emit_16(411); -emit_16(478); -emit_16(412); -emit_16(479); -emit_16(413); -emit_16(479); -emit_16(412); -emit_16(479); -emit_16(413); -emit_16(480); -emit_16(414); -emit_16(480); -emit_16(413); -emit_16(480); -emit_16(414); -emit_16(481); -emit_16(415); -emit_16(481); -emit_16(414); -emit_16(481); -emit_16(415); -emit_16(482); -emit_16(416); -emit_16(482); -emit_16(415); -emit_16(482); -emit_16(416); -emit_16(483); -emit_16(417); -emit_16(483); -emit_16(416); -emit_16(483); -emit_16(417); -emit_16(484); -emit_16(418); -emit_16(484); -emit_16(417); -emit_16(484); -emit_16(418); -emit_16(485); -emit_16(419); -emit_16(485); -emit_16(418); -emit_16(485); -emit_16(419); -emit_16(486); -emit_16(420); -emit_16(486); -emit_16(419); -emit_16(486); -emit_16(420); -emit_16(487); -emit_16(421); -emit_16(487); -emit_16(420); -emit_16(487); -emit_16(421); -emit_16(488); -emit_16(422); -emit_16(488); -emit_16(421); -emit_16(488); -emit_16(422); -emit_16(489); -emit_16(423); -emit_16(489); -emit_16(422); -emit_16(489); -emit_16(423); -emit_16(490); -emit_16(424); -emit_16(490); -emit_16(423); -emit_16(490); -emit_16(424); -emit_16(491); -emit_16(425); -emit_16(491); -emit_16(424); -emit_16(491); -emit_16(425); -emit_16(492); -emit_16(426); -emit_16(492); -emit_16(425); -emit_16(492); -emit_16(426); -emit_16(493); -emit_16(427); -emit_16(493); -emit_16(426); -emit_16(493); -emit_16(427); -emit_16(494); -emit_16(428); -emit_16(494); -emit_16(427); -emit_16(494); -emit_16(428); -emit_16(495); -emit_16(429); -emit_16(495); -emit_16(428); -emit_16(495); -emit_16(429); -emit_16(496); -emit_16(430); -emit_16(496); -emit_16(429); -emit_16(496); -emit_16(430); -emit_16(497); -emit_16(431); -emit_16(497); -emit_16(430); -emit_16(497); -emit_16(431); -emit_16(498); -emit_16(432); -emit_16(498); -emit_16(431); -emit_16(498); -emit_16(432); -emit_16(499); -emit_16(433); -emit_16(499); -emit_16(432); -emit_16(499); -emit_16(433); -emit_16(500); -emit_16(434); -emit_16(500); -emit_16(433); -emit_16(500); -emit_16(434); -emit_16(501); -emit_16(435); -emit_16(501); -emit_16(434); -emit_16(501); -emit_16(435); -emit_16(502); -emit_16(436); -emit_16(502); -emit_16(435); -emit_16(502); -emit_16(436); -emit_16(503); -emit_16(437); -emit_16(503); -emit_16(436); -emit_16(503); -emit_16(437); -emit_16(504); -emit_16(438); -emit_16(504); -emit_16(437); -emit_16(504); -emit_16(438); -emit_16(505); -emit_16(439); -emit_16(505); -emit_16(438); -emit_16(505); -emit_16(439); -emit_16(506); -emit_16(440); -emit_16(506); -emit_16(439); -emit_16(506); -emit_16(440); -emit_16(507); -emit_16(441); -emit_16(507); -emit_16(440); -emit_16(507); -emit_16(441); -emit_16(508); -emit_16(442); -emit_16(508); -emit_16(441); -emit_16(508); -emit_16(442); -emit_16(509); -emit_16(443); -emit_16(509); -emit_16(442); -emit_16(509); -emit_16(443); -emit_16(510); -emit_16(444); -emit_16(510); -emit_16(443); -emit_16(510); -emit_16(444); -emit_16(511); -emit_16(445); -emit_16(511); -emit_16(444); -emit_16(511); -emit_16(445); -emit_16(512); -emit_16(446); -emit_16(512); -emit_16(445); -emit_16(512); -emit_16(446); -emit_16(513); -emit_16(447); -emit_16(513); -emit_16(446); -emit_16(513); -emit_16(447); -emit_16(514); -emit_16(448); -emit_16(514); -emit_16(447); -emit_16(514); -emit_16(448); -emit_16(515); -emit_16(449); -emit_16(515); -emit_16(448); -emit_16(515); -emit_16(449); -emit_16(516); -emit_16(450); -emit_16(516); -emit_16(449); -emit_16(516); -emit_16(450); -emit_16(517); -emit_16(451); -emit_16(517); -emit_16(450); -emit_16(517); -emit_16(451); -emit_16(518); -emit_16(452); -emit_16(518); -emit_16(451); -emit_16(518); -emit_16(452); -emit_16(519); -emit_16(453); -emit_16(519); -emit_16(452); -emit_16(519); -emit_16(453); -emit_16(520); -emit_16(454); -emit_16(520); -emit_16(453); -emit_16(520); -emit_16(454); -emit_16(521); -emit_16(455); -emit_16(521); -emit_16(454); -emit_16(521); -emit_16(455); -emit_16(522); -emit_16(456); -emit_16(522); -emit_16(455); -emit_16(522); -emit_16(456); -emit_16(523); -emit_16(457); -emit_16(523); -emit_16(456); -emit_16(523); -emit_16(457); -emit_16(524); -emit_16(458); -emit_16(524); -emit_16(457); -emit_16(524); -emit_16(458); -emit_16(525); -emit_16(459); -emit_16(525); -emit_16(458); -emit_16(525); -emit_16(459); -emit_16(526); -emit_16(460); -emit_16(526); -emit_16(459); -emit_16(526); -emit_16(460); -emit_16(527); -emit_16(461); -emit_16(527); -emit_16(460); -emit_16(528); -emit_16(462); -emit_16(529); -emit_16(463); -emit_16(529); -emit_16(462); -emit_16(529); -emit_16(463); -emit_16(530); -emit_16(464); -emit_16(530); -emit_16(463); -emit_16(530); -emit_16(464); -emit_16(531); -emit_16(465); -emit_16(531); -emit_16(464); -emit_16(531); -emit_16(465); -emit_16(532); -emit_16(466); -emit_16(532); -emit_16(465); -emit_16(532); -emit_16(466); -emit_16(533); -emit_16(467); -emit_16(533); -emit_16(466); -emit_16(533); -emit_16(467); -emit_16(534); -emit_16(468); -emit_16(534); -emit_16(467); -emit_16(534); -emit_16(468); -emit_16(535); -emit_16(469); -emit_16(535); -emit_16(468); -emit_16(535); -emit_16(469); -emit_16(536); -emit_16(470); -emit_16(536); -emit_16(469); -emit_16(536); -emit_16(470); -emit_16(537); -emit_16(471); -emit_16(537); -emit_16(470); -emit_16(537); -emit_16(471); -emit_16(538); -emit_16(472); -emit_16(538); -emit_16(471); -emit_16(538); -emit_16(472); -emit_16(539); -emit_16(473); -emit_16(539); -emit_16(472); -emit_16(539); -emit_16(473); -emit_16(540); -emit_16(474); -emit_16(540); -emit_16(473); -emit_16(540); -emit_16(474); -emit_16(541); -emit_16(475); -emit_16(541); -emit_16(474); -emit_16(541); -emit_16(475); -emit_16(542); -emit_16(476); -emit_16(542); -emit_16(475); -emit_16(542); -emit_16(476); -emit_16(543); -emit_16(477); -emit_16(543); -emit_16(476); -emit_16(543); -emit_16(477); -emit_16(544); -emit_16(478); -emit_16(544); -emit_16(477); -emit_16(544); -emit_16(478); -emit_16(545); -emit_16(479); -emit_16(545); -emit_16(478); -emit_16(545); -emit_16(479); -emit_16(546); -emit_16(480); -emit_16(546); -emit_16(479); -emit_16(546); -emit_16(480); -emit_16(547); -emit_16(481); -emit_16(547); -emit_16(480); -emit_16(547); -emit_16(481); -emit_16(548); -emit_16(482); -emit_16(548); -emit_16(481); -emit_16(548); -emit_16(482); -emit_16(549); -emit_16(483); -emit_16(549); -emit_16(482); -emit_16(549); -emit_16(483); -emit_16(550); -emit_16(484); -emit_16(550); -emit_16(483); -emit_16(550); -emit_16(484); -emit_16(551); -emit_16(485); -emit_16(551); -emit_16(484); -emit_16(551); -emit_16(485); -emit_16(552); -emit_16(486); -emit_16(552); -emit_16(485); -emit_16(552); -emit_16(486); -emit_16(553); -emit_16(487); -emit_16(553); -emit_16(486); -emit_16(553); -emit_16(487); -emit_16(554); -emit_16(488); -emit_16(554); -emit_16(487); -emit_16(554); -emit_16(488); -emit_16(555); -emit_16(489); -emit_16(555); -emit_16(488); -emit_16(555); -emit_16(489); -emit_16(556); -emit_16(490); -emit_16(556); -emit_16(489); -emit_16(556); -emit_16(490); -emit_16(557); -emit_16(491); -emit_16(557); -emit_16(490); -emit_16(557); -emit_16(491); -emit_16(558); -emit_16(492); -emit_16(558); -emit_16(491); -emit_16(558); -emit_16(492); -emit_16(559); -emit_16(493); -emit_16(559); -emit_16(492); -emit_16(559); -emit_16(493); -emit_16(560); -emit_16(494); -emit_16(560); -emit_16(493); -emit_16(560); -emit_16(494); -emit_16(561); -emit_16(495); -emit_16(561); -emit_16(494); -emit_16(561); -emit_16(495); -emit_16(562); -emit_16(496); -emit_16(562); -emit_16(495); -emit_16(562); -emit_16(496); -emit_16(563); -emit_16(497); -emit_16(563); -emit_16(496); -emit_16(563); -emit_16(497); -emit_16(564); -emit_16(498); -emit_16(564); -emit_16(497); -emit_16(564); -emit_16(498); -emit_16(565); -emit_16(499); -emit_16(565); -emit_16(498); -emit_16(565); -emit_16(499); -emit_16(566); -emit_16(500); -emit_16(566); -emit_16(499); -emit_16(566); -emit_16(500); -emit_16(567); -emit_16(501); -emit_16(567); -emit_16(500); -emit_16(567); -emit_16(501); -emit_16(568); -emit_16(502); -emit_16(568); -emit_16(501); -emit_16(568); -emit_16(502); -emit_16(569); -emit_16(503); -emit_16(569); -emit_16(502); -emit_16(569); -emit_16(503); -emit_16(570); -emit_16(504); -emit_16(570); -emit_16(503); -emit_16(570); -emit_16(504); -emit_16(571); -emit_16(505); -emit_16(571); -emit_16(504); -emit_16(571); -emit_16(505); -emit_16(572); -emit_16(506); -emit_16(572); -emit_16(505); -emit_16(572); -emit_16(506); -emit_16(573); -emit_16(507); -emit_16(573); -emit_16(506); -emit_16(573); -emit_16(507); -emit_16(574); -emit_16(508); -emit_16(574); -emit_16(507); -emit_16(574); -emit_16(508); -emit_16(575); -emit_16(509); -emit_16(575); -emit_16(508); -emit_16(575); -emit_16(509); -emit_16(576); -emit_16(510); -emit_16(576); -emit_16(509); -emit_16(576); -emit_16(510); -emit_16(577); -emit_16(511); -emit_16(577); -emit_16(510); -emit_16(577); -emit_16(511); -emit_16(578); -emit_16(512); -emit_16(578); -emit_16(511); -emit_16(578); -emit_16(512); -emit_16(579); -emit_16(513); -emit_16(579); -emit_16(512); -emit_16(579); -emit_16(513); -emit_16(580); -emit_16(514); -emit_16(580); -emit_16(513); -emit_16(580); -emit_16(514); -emit_16(581); -emit_16(515); -emit_16(581); -emit_16(514); -emit_16(581); -emit_16(515); -emit_16(582); -emit_16(516); -emit_16(582); -emit_16(515); -emit_16(582); -emit_16(516); -emit_16(583); -emit_16(517); -emit_16(583); -emit_16(516); -emit_16(583); -emit_16(517); -emit_16(584); -emit_16(518); -emit_16(584); -emit_16(517); -emit_16(584); -emit_16(518); -emit_16(585); -emit_16(519); -emit_16(585); -emit_16(518); -emit_16(585); -emit_16(519); -emit_16(586); -emit_16(520); -emit_16(586); -emit_16(519); -emit_16(586); -emit_16(520); -emit_16(587); -emit_16(521); -emit_16(587); -emit_16(520); -emit_16(587); -emit_16(521); -emit_16(588); -emit_16(522); -emit_16(588); -emit_16(521); -emit_16(588); -emit_16(522); -emit_16(589); -emit_16(523); -emit_16(589); -emit_16(522); -emit_16(589); -emit_16(523); -emit_16(590); -emit_16(524); -emit_16(590); -emit_16(523); -emit_16(590); -emit_16(524); -emit_16(591); -emit_16(525); -emit_16(591); -emit_16(524); -emit_16(591); -emit_16(525); -emit_16(592); -emit_16(526); -emit_16(592); -emit_16(525); -emit_16(592); -emit_16(526); -emit_16(593); -emit_16(527); -emit_16(593); -emit_16(526); -emit_16(594); -emit_16(528); -emit_16(595); -emit_16(529); -emit_16(595); -emit_16(528); -emit_16(595); -emit_16(529); -emit_16(596); -emit_16(530); -emit_16(596); -emit_16(529); -emit_16(596); -emit_16(530); -emit_16(597); -emit_16(531); -emit_16(597); -emit_16(530); -emit_16(597); -emit_16(531); -emit_16(598); -emit_16(532); -emit_16(598); -emit_16(531); -emit_16(598); -emit_16(532); -emit_16(599); -emit_16(533); -emit_16(599); -emit_16(532); -emit_16(599); -emit_16(533); -emit_16(600); -emit_16(534); -emit_16(600); -emit_16(533); -emit_16(600); -emit_16(534); -emit_16(601); -emit_16(535); -emit_16(601); -emit_16(534); -emit_16(601); -emit_16(535); -emit_16(602); -emit_16(536); -emit_16(602); -emit_16(535); -emit_16(602); -emit_16(536); -emit_16(603); -emit_16(537); -emit_16(603); -emit_16(536); -emit_16(603); -emit_16(537); -emit_16(604); -emit_16(538); -emit_16(604); -emit_16(537); -emit_16(604); -emit_16(538); -emit_16(605); -emit_16(539); -emit_16(605); -emit_16(538); -emit_16(605); -emit_16(539); -emit_16(606); -emit_16(540); -emit_16(606); -emit_16(539); -emit_16(606); -emit_16(540); -emit_16(607); -emit_16(541); -emit_16(607); -emit_16(540); -emit_16(607); -emit_16(541); -emit_16(608); -emit_16(542); -emit_16(608); -emit_16(541); -emit_16(608); -emit_16(542); -emit_16(609); -emit_16(543); -emit_16(609); -emit_16(542); -emit_16(609); -emit_16(543); -emit_16(610); -emit_16(544); -emit_16(610); -emit_16(543); -emit_16(610); -emit_16(544); -emit_16(611); -emit_16(545); -emit_16(611); -emit_16(544); -emit_16(611); -emit_16(545); -emit_16(612); -emit_16(546); -emit_16(612); -emit_16(545); -emit_16(612); -emit_16(546); -emit_16(613); -emit_16(547); -emit_16(613); -emit_16(546); -emit_16(613); -emit_16(547); -emit_16(614); -emit_16(548); -emit_16(614); -emit_16(547); -emit_16(614); -emit_16(548); -emit_16(615); -emit_16(549); -emit_16(615); -emit_16(548); -emit_16(615); -emit_16(549); -emit_16(616); -emit_16(550); -emit_16(616); -emit_16(549); -emit_16(616); -emit_16(550); -emit_16(617); -emit_16(551); -emit_16(617); -emit_16(550); -emit_16(617); -emit_16(551); -emit_16(618); -emit_16(552); -emit_16(618); -emit_16(551); -emit_16(618); -emit_16(552); -emit_16(619); -emit_16(553); -emit_16(619); -emit_16(552); -emit_16(619); -emit_16(553); -emit_16(620); -emit_16(554); -emit_16(620); -emit_16(553); -emit_16(620); -emit_16(554); -emit_16(621); -emit_16(555); -emit_16(621); -emit_16(554); -emit_16(621); -emit_16(555); -emit_16(622); -emit_16(556); -emit_16(622); -emit_16(555); -emit_16(622); -emit_16(556); -emit_16(623); -emit_16(557); -emit_16(623); -emit_16(556); -emit_16(623); -emit_16(557); -emit_16(624); -emit_16(558); -emit_16(624); -emit_16(557); -emit_16(624); -emit_16(558); -emit_16(625); -emit_16(559); -emit_16(625); -emit_16(558); -emit_16(625); -emit_16(559); -emit_16(626); -emit_16(560); -emit_16(626); -emit_16(559); -emit_16(626); -emit_16(560); -emit_16(627); -emit_16(561); -emit_16(627); -emit_16(560); -emit_16(627); -emit_16(561); -emit_16(628); -emit_16(562); -emit_16(628); -emit_16(561); -emit_16(628); -emit_16(562); -emit_16(629); -emit_16(563); -emit_16(629); -emit_16(562); -emit_16(629); -emit_16(563); -emit_16(630); -emit_16(564); -emit_16(630); -emit_16(563); -emit_16(630); -emit_16(564); -emit_16(631); -emit_16(565); -emit_16(631); -emit_16(564); -emit_16(631); -emit_16(565); -emit_16(632); -emit_16(566); -emit_16(632); -emit_16(565); -emit_16(632); -emit_16(566); -emit_16(633); -emit_16(567); -emit_16(633); -emit_16(566); -emit_16(633); -emit_16(567); -emit_16(634); -emit_16(568); -emit_16(634); -emit_16(567); -emit_16(634); -emit_16(568); -emit_16(635); -emit_16(569); -emit_16(635); -emit_16(568); -emit_16(635); -emit_16(569); -emit_16(636); -emit_16(570); -emit_16(636); -emit_16(569); -emit_16(636); -emit_16(570); -emit_16(637); -emit_16(571); -emit_16(637); -emit_16(570); -emit_16(637); -emit_16(571); -emit_16(638); -emit_16(572); -emit_16(638); -emit_16(571); -emit_16(638); -emit_16(572); -emit_16(639); -emit_16(573); -emit_16(639); -emit_16(572); -emit_16(639); -emit_16(573); -emit_16(640); -emit_16(574); -emit_16(640); -emit_16(573); -emit_16(640); -emit_16(574); -emit_16(641); -emit_16(575); -emit_16(641); -emit_16(574); -emit_16(641); -emit_16(575); -emit_16(642); -emit_16(576); -emit_16(642); -emit_16(575); -emit_16(642); -emit_16(576); -emit_16(643); -emit_16(577); -emit_16(643); -emit_16(576); -emit_16(643); -emit_16(577); -emit_16(644); -emit_16(578); -emit_16(644); -emit_16(577); -emit_16(644); -emit_16(578); -emit_16(645); -emit_16(579); -emit_16(645); -emit_16(578); -emit_16(645); -emit_16(579); -emit_16(646); -emit_16(580); -emit_16(646); -emit_16(579); -emit_16(646); -emit_16(580); -emit_16(647); -emit_16(581); -emit_16(647); -emit_16(580); -emit_16(647); -emit_16(581); -emit_16(648); -emit_16(582); -emit_16(648); -emit_16(581); -emit_16(648); -emit_16(582); -emit_16(649); -emit_16(583); -emit_16(649); -emit_16(582); -emit_16(649); -emit_16(583); -emit_16(650); -emit_16(584); -emit_16(650); -emit_16(583); -emit_16(650); -emit_16(584); -emit_16(651); -emit_16(585); -emit_16(651); -emit_16(584); -emit_16(651); -emit_16(585); -emit_16(652); -emit_16(586); -emit_16(652); -emit_16(585); -emit_16(652); -emit_16(586); -emit_16(653); -emit_16(587); -emit_16(653); -emit_16(586); -emit_16(653); -emit_16(587); -emit_16(654); -emit_16(588); -emit_16(654); -emit_16(587); -emit_16(654); -emit_16(588); -emit_16(655); -emit_16(589); -emit_16(655); -emit_16(588); -emit_16(655); -emit_16(589); -emit_16(656); -emit_16(590); -emit_16(656); -emit_16(589); -emit_16(656); -emit_16(590); -emit_16(657); -emit_16(591); -emit_16(657); -emit_16(590); -emit_16(657); -emit_16(591); -emit_16(658); -emit_16(592); -emit_16(658); -emit_16(591); -emit_16(658); -emit_16(592); -emit_16(659); -emit_16(593); -emit_16(659); -emit_16(592); -emit_16(660); -emit_16(594); -emit_16(661); -emit_16(595); -emit_16(661); -emit_16(594); -emit_16(661); -emit_16(595); -emit_16(662); -emit_16(596); -emit_16(662); -emit_16(595); -emit_16(662); -emit_16(596); -emit_16(663); -emit_16(597); -emit_16(663); -emit_16(596); -emit_16(663); -emit_16(597); -emit_16(664); -emit_16(598); -emit_16(664); -emit_16(597); -emit_16(664); -emit_16(598); -emit_16(665); -emit_16(599); -emit_16(665); -emit_16(598); -emit_16(665); -emit_16(599); -emit_16(666); -emit_16(600); -emit_16(666); -emit_16(599); -emit_16(666); -emit_16(600); -emit_16(667); -emit_16(601); -emit_16(667); -emit_16(600); -emit_16(667); -emit_16(601); -emit_16(668); -emit_16(602); -emit_16(668); -emit_16(601); -emit_16(668); -emit_16(602); -emit_16(669); -emit_16(603); -emit_16(669); -emit_16(602); -emit_16(669); -emit_16(603); -emit_16(670); -emit_16(604); -emit_16(670); -emit_16(603); -emit_16(670); -emit_16(604); -emit_16(671); -emit_16(605); -emit_16(671); -emit_16(604); -emit_16(671); -emit_16(605); -emit_16(672); -emit_16(606); -emit_16(672); -emit_16(605); -emit_16(672); -emit_16(606); -emit_16(673); -emit_16(607); -emit_16(673); -emit_16(606); -emit_16(673); -emit_16(607); -emit_16(674); -emit_16(608); -emit_16(674); -emit_16(607); -emit_16(674); -emit_16(608); -emit_16(675); -emit_16(609); -emit_16(675); -emit_16(608); -emit_16(675); -emit_16(609); -emit_16(676); -emit_16(610); -emit_16(676); -emit_16(609); -emit_16(676); -emit_16(610); -emit_16(677); -emit_16(611); -emit_16(677); -emit_16(610); -emit_16(677); -emit_16(611); -emit_16(678); -emit_16(612); -emit_16(678); -emit_16(611); -emit_16(678); -emit_16(612); -emit_16(679); -emit_16(613); -emit_16(679); -emit_16(612); -emit_16(679); -emit_16(613); -emit_16(680); -emit_16(614); -emit_16(680); -emit_16(613); -emit_16(680); -emit_16(614); -emit_16(681); -emit_16(615); -emit_16(681); -emit_16(614); -emit_16(681); -emit_16(615); -emit_16(682); -emit_16(616); -emit_16(682); -emit_16(615); -emit_16(682); -emit_16(616); -emit_16(683); -emit_16(617); -emit_16(683); -emit_16(616); -emit_16(683); -emit_16(617); -emit_16(684); -emit_16(618); -emit_16(684); -emit_16(617); -emit_16(684); -emit_16(618); -emit_16(685); -emit_16(619); -emit_16(685); -emit_16(618); -emit_16(685); -emit_16(619); -emit_16(686); -emit_16(620); -emit_16(686); -emit_16(619); -emit_16(686); -emit_16(620); -emit_16(687); -emit_16(621); -emit_16(687); -emit_16(620); -emit_16(687); -emit_16(621); -emit_16(688); -emit_16(622); -emit_16(688); -emit_16(621); -emit_16(688); -emit_16(622); -emit_16(689); -emit_16(623); -emit_16(689); -emit_16(622); -emit_16(689); -emit_16(623); -emit_16(690); -emit_16(624); -emit_16(690); -emit_16(623); -emit_16(690); -emit_16(624); -emit_16(691); -emit_16(625); -emit_16(691); -emit_16(624); -emit_16(691); -emit_16(625); -emit_16(692); -emit_16(626); -emit_16(692); -emit_16(625); -emit_16(692); -emit_16(626); -emit_16(693); -emit_16(627); -emit_16(693); -emit_16(626); -emit_16(693); -emit_16(627); -emit_16(694); -emit_16(628); -emit_16(694); -emit_16(627); -emit_16(694); -emit_16(628); -emit_16(695); -emit_16(629); -emit_16(695); -emit_16(628); -emit_16(695); -emit_16(629); -emit_16(696); -emit_16(630); -emit_16(696); -emit_16(629); -emit_16(696); -emit_16(630); -emit_16(697); -emit_16(631); -emit_16(697); -emit_16(630); -emit_16(697); -emit_16(631); -emit_16(698); -emit_16(632); -emit_16(698); -emit_16(631); -emit_16(698); -emit_16(632); -emit_16(699); -emit_16(633); -emit_16(699); -emit_16(632); -emit_16(699); -emit_16(633); -emit_16(700); -emit_16(634); -emit_16(700); -emit_16(633); -emit_16(700); -emit_16(634); -emit_16(701); -emit_16(635); -emit_16(701); -emit_16(634); -emit_16(701); -emit_16(635); -emit_16(702); -emit_16(636); -emit_16(702); -emit_16(635); -emit_16(702); -emit_16(636); -emit_16(703); -emit_16(637); -emit_16(703); -emit_16(636); -emit_16(703); -emit_16(637); -emit_16(704); -emit_16(638); -emit_16(704); -emit_16(637); -emit_16(704); -emit_16(638); -emit_16(705); -emit_16(639); -emit_16(705); -emit_16(638); -emit_16(705); -emit_16(639); -emit_16(706); -emit_16(640); -emit_16(706); -emit_16(639); -emit_16(706); -emit_16(640); -emit_16(707); -emit_16(641); -emit_16(707); -emit_16(640); -emit_16(707); -emit_16(641); -emit_16(708); -emit_16(642); -emit_16(708); -emit_16(641); -emit_16(708); -emit_16(642); -emit_16(709); -emit_16(643); -emit_16(709); -emit_16(642); -emit_16(709); -emit_16(643); -emit_16(710); -emit_16(644); -emit_16(710); -emit_16(643); -emit_16(710); -emit_16(644); -emit_16(711); -emit_16(645); -emit_16(711); -emit_16(644); -emit_16(711); -emit_16(645); -emit_16(712); -emit_16(646); -emit_16(712); -emit_16(645); -emit_16(712); -emit_16(646); -emit_16(713); -emit_16(647); -emit_16(713); -emit_16(646); -emit_16(713); -emit_16(647); -emit_16(714); -emit_16(648); -emit_16(714); -emit_16(647); -emit_16(714); -emit_16(648); -emit_16(715); -emit_16(649); -emit_16(715); -emit_16(648); -emit_16(715); -emit_16(649); -emit_16(716); -emit_16(650); -emit_16(716); -emit_16(649); -emit_16(716); -emit_16(650); -emit_16(717); -emit_16(651); -emit_16(717); -emit_16(650); -emit_16(717); -emit_16(651); -emit_16(718); -emit_16(652); -emit_16(718); -emit_16(651); -emit_16(718); -emit_16(652); -emit_16(719); -emit_16(653); -emit_16(719); -emit_16(652); -emit_16(719); -emit_16(653); -emit_16(720); -emit_16(654); -emit_16(720); -emit_16(653); -emit_16(720); -emit_16(654); -emit_16(721); -emit_16(655); -emit_16(721); -emit_16(654); -emit_16(721); -emit_16(655); -emit_16(722); -emit_16(656); -emit_16(722); -emit_16(655); -emit_16(722); -emit_16(656); -emit_16(723); -emit_16(657); -emit_16(723); -emit_16(656); -emit_16(723); -emit_16(657); -emit_16(724); -emit_16(658); -emit_16(724); -emit_16(657); -emit_16(724); -emit_16(658); -emit_16(725); -emit_16(659); -emit_16(725); -emit_16(658); -emit_16(726); -emit_16(660); -emit_16(727); -emit_16(661); -emit_16(727); -emit_16(660); -emit_16(727); -emit_16(661); -emit_16(728); -emit_16(662); -emit_16(728); -emit_16(661); -emit_16(728); -emit_16(662); -emit_16(729); -emit_16(663); -emit_16(729); -emit_16(662); -emit_16(729); -emit_16(663); -emit_16(730); -emit_16(664); -emit_16(730); -emit_16(663); -emit_16(730); -emit_16(664); -emit_16(731); -emit_16(665); -emit_16(731); -emit_16(664); -emit_16(731); -emit_16(665); -emit_16(732); -emit_16(666); -emit_16(732); -emit_16(665); -emit_16(732); -emit_16(666); -emit_16(733); -emit_16(667); -emit_16(733); -emit_16(666); -emit_16(733); -emit_16(667); -emit_16(734); -emit_16(668); -emit_16(734); -emit_16(667); -emit_16(734); -emit_16(668); -emit_16(735); -emit_16(669); -emit_16(735); -emit_16(668); -emit_16(735); -emit_16(669); -emit_16(736); -emit_16(670); -emit_16(736); -emit_16(669); -emit_16(736); -emit_16(670); -emit_16(737); -emit_16(671); -emit_16(737); -emit_16(670); -emit_16(737); -emit_16(671); -emit_16(738); -emit_16(672); -emit_16(738); -emit_16(671); -emit_16(738); -emit_16(672); -emit_16(739); -emit_16(673); -emit_16(739); -emit_16(672); -emit_16(739); -emit_16(673); -emit_16(740); -emit_16(674); -emit_16(740); -emit_16(673); -emit_16(740); -emit_16(674); -emit_16(741); -emit_16(675); -emit_16(741); -emit_16(674); -emit_16(741); -emit_16(675); -emit_16(742); -emit_16(676); -emit_16(742); -emit_16(675); -emit_16(742); -emit_16(676); -emit_16(743); -emit_16(677); -emit_16(743); -emit_16(676); -emit_16(743); -emit_16(677); -emit_16(744); -emit_16(678); -emit_16(744); -emit_16(677); -emit_16(744); -emit_16(678); -emit_16(745); -emit_16(679); -emit_16(745); -emit_16(678); -emit_16(745); -emit_16(679); -emit_16(746); -emit_16(680); -emit_16(746); -emit_16(679); -emit_16(746); -emit_16(680); -emit_16(747); -emit_16(681); -emit_16(747); -emit_16(680); -emit_16(747); -emit_16(681); -emit_16(748); -emit_16(682); -emit_16(748); -emit_16(681); -emit_16(748); -emit_16(682); -emit_16(749); -emit_16(683); -emit_16(749); -emit_16(682); -emit_16(749); -emit_16(683); -emit_16(750); -emit_16(684); -emit_16(750); -emit_16(683); -emit_16(750); -emit_16(684); -emit_16(751); -emit_16(685); -emit_16(751); -emit_16(684); -emit_16(751); -emit_16(685); -emit_16(752); -emit_16(686); -emit_16(752); -emit_16(685); -emit_16(752); -emit_16(686); -emit_16(753); -emit_16(687); -emit_16(753); -emit_16(686); -emit_16(753); -emit_16(687); -emit_16(754); -emit_16(688); -emit_16(754); -emit_16(687); -emit_16(754); -emit_16(688); -emit_16(755); -emit_16(689); -emit_16(755); -emit_16(688); -emit_16(755); -emit_16(689); -emit_16(756); -emit_16(690); -emit_16(756); -emit_16(689); -emit_16(756); -emit_16(690); -emit_16(757); -emit_16(691); -emit_16(757); -emit_16(690); -emit_16(757); -emit_16(691); -emit_16(758); -emit_16(692); -emit_16(758); -emit_16(691); -emit_16(758); -emit_16(692); -emit_16(759); -emit_16(693); -emit_16(759); -emit_16(692); -emit_16(759); -emit_16(693); -emit_16(760); -emit_16(694); -emit_16(760); -emit_16(693); -emit_16(760); -emit_16(694); -emit_16(761); -emit_16(695); -emit_16(761); -emit_16(694); -emit_16(761); -emit_16(695); -emit_16(762); -emit_16(696); -emit_16(762); -emit_16(695); -emit_16(762); -emit_16(696); -emit_16(763); -emit_16(697); -emit_16(763); -emit_16(696); -emit_16(763); -emit_16(697); -emit_16(764); -emit_16(698); -emit_16(764); -emit_16(697); -emit_16(764); -emit_16(698); -emit_16(765); -emit_16(699); -emit_16(765); -emit_16(698); -emit_16(765); -emit_16(699); -emit_16(766); -emit_16(700); -emit_16(766); -emit_16(699); -emit_16(766); -emit_16(700); -emit_16(767); -emit_16(701); -emit_16(767); -emit_16(700); -emit_16(767); -emit_16(701); -emit_16(768); -emit_16(702); -emit_16(768); -emit_16(701); -emit_16(768); -emit_16(702); -emit_16(769); -emit_16(703); -emit_16(769); -emit_16(702); -emit_16(769); -emit_16(703); -emit_16(770); -emit_16(704); -emit_16(770); -emit_16(703); -emit_16(770); -emit_16(704); -emit_16(771); -emit_16(705); -emit_16(771); -emit_16(704); -emit_16(771); -emit_16(705); -emit_16(772); -emit_16(706); -emit_16(772); -emit_16(705); -emit_16(772); -emit_16(706); -emit_16(773); -emit_16(707); -emit_16(773); -emit_16(706); -emit_16(773); -emit_16(707); -emit_16(774); -emit_16(708); -emit_16(774); -emit_16(707); -emit_16(774); -emit_16(708); -emit_16(775); -emit_16(709); -emit_16(775); -emit_16(708); -emit_16(775); -emit_16(709); -emit_16(776); -emit_16(710); -emit_16(776); -emit_16(709); -emit_16(776); -emit_16(710); -emit_16(777); -emit_16(711); -emit_16(777); -emit_16(710); -emit_16(777); -emit_16(711); -emit_16(778); -emit_16(712); -emit_16(778); -emit_16(711); -emit_16(778); -emit_16(712); -emit_16(779); -emit_16(713); -emit_16(779); -emit_16(712); -emit_16(779); -emit_16(713); -emit_16(780); -emit_16(714); -emit_16(780); -emit_16(713); -emit_16(780); -emit_16(714); -emit_16(781); -emit_16(715); -emit_16(781); -emit_16(714); -emit_16(781); -emit_16(715); -emit_16(782); -emit_16(716); -emit_16(782); -emit_16(715); -emit_16(782); -emit_16(716); -emit_16(783); -emit_16(717); -emit_16(783); -emit_16(716); -emit_16(783); -emit_16(717); -emit_16(784); -emit_16(718); -emit_16(784); -emit_16(717); -emit_16(784); -emit_16(718); -emit_16(785); -emit_16(719); -emit_16(785); -emit_16(718); -emit_16(785); -emit_16(719); -emit_16(786); -emit_16(720); -emit_16(786); -emit_16(719); -emit_16(786); -emit_16(720); -emit_16(787); -emit_16(721); -emit_16(787); -emit_16(720); -emit_16(787); -emit_16(721); -emit_16(788); -emit_16(722); -emit_16(788); -emit_16(721); -emit_16(788); -emit_16(722); -emit_16(789); -emit_16(723); -emit_16(789); -emit_16(722); -emit_16(789); -emit_16(723); -emit_16(790); -emit_16(724); -emit_16(790); -emit_16(723); -emit_16(790); -emit_16(724); -emit_16(791); -emit_16(725); -emit_16(791); -emit_16(724); -emit_16(792); -emit_16(726); -emit_16(793); -emit_16(727); -emit_16(793); -emit_16(726); -emit_16(793); -emit_16(727); -emit_16(794); -emit_16(728); -emit_16(794); -emit_16(727); -emit_16(794); -emit_16(728); -emit_16(795); -emit_16(729); -emit_16(795); -emit_16(728); -emit_16(795); -emit_16(729); -emit_16(796); -emit_16(730); -emit_16(796); -emit_16(729); -emit_16(796); -emit_16(730); -emit_16(797); -emit_16(731); -emit_16(797); -emit_16(730); -emit_16(797); -emit_16(731); -emit_16(798); -emit_16(732); -emit_16(798); -emit_16(731); -emit_16(798); -emit_16(732); -emit_16(799); -emit_16(733); -emit_16(799); -emit_16(732); -emit_16(799); -emit_16(733); -emit_16(800); -emit_16(734); -emit_16(800); -emit_16(733); -emit_16(800); -emit_16(734); -emit_16(801); -emit_16(735); -emit_16(801); -emit_16(734); -emit_16(801); -emit_16(735); -emit_16(802); -emit_16(736); -emit_16(802); -emit_16(735); -emit_16(802); -emit_16(736); -emit_16(803); -emit_16(737); -emit_16(803); -emit_16(736); -emit_16(803); -emit_16(737); -emit_16(804); -emit_16(738); -emit_16(804); -emit_16(737); -emit_16(804); -emit_16(738); -emit_16(805); -emit_16(739); -emit_16(805); -emit_16(738); -emit_16(805); -emit_16(739); -emit_16(806); -emit_16(740); -emit_16(806); -emit_16(739); -emit_16(806); -emit_16(740); -emit_16(807); -emit_16(741); -emit_16(807); -emit_16(740); -emit_16(807); -emit_16(741); -emit_16(808); -emit_16(742); -emit_16(808); -emit_16(741); -emit_16(808); -emit_16(742); -emit_16(809); -emit_16(743); -emit_16(809); -emit_16(742); -emit_16(809); -emit_16(743); -emit_16(810); -emit_16(744); -emit_16(810); -emit_16(743); -emit_16(810); -emit_16(744); -emit_16(811); -emit_16(745); -emit_16(811); -emit_16(744); -emit_16(811); -emit_16(745); -emit_16(812); -emit_16(746); -emit_16(812); -emit_16(745); -emit_16(812); -emit_16(746); -emit_16(813); -emit_16(747); -emit_16(813); -emit_16(746); -emit_16(813); -emit_16(747); -emit_16(814); -emit_16(748); -emit_16(814); -emit_16(747); -emit_16(814); -emit_16(748); -emit_16(815); -emit_16(749); -emit_16(815); -emit_16(748); -emit_16(815); -emit_16(749); -emit_16(816); -emit_16(750); -emit_16(816); -emit_16(749); -emit_16(816); -emit_16(750); -emit_16(817); -emit_16(751); -emit_16(817); -emit_16(750); -emit_16(817); -emit_16(751); -emit_16(818); -emit_16(752); -emit_16(818); -emit_16(751); -emit_16(818); -emit_16(752); -emit_16(819); -emit_16(753); -emit_16(819); -emit_16(752); -emit_16(819); -emit_16(753); -emit_16(820); -emit_16(754); -emit_16(820); -emit_16(753); -emit_16(820); -emit_16(754); -emit_16(821); -emit_16(755); -emit_16(821); -emit_16(754); -emit_16(821); -emit_16(755); -emit_16(822); -emit_16(756); -emit_16(822); -emit_16(755); -emit_16(822); -emit_16(756); -emit_16(823); -emit_16(757); -emit_16(823); -emit_16(756); -emit_16(823); -emit_16(757); -emit_16(824); -emit_16(758); -emit_16(824); -emit_16(757); -emit_16(824); -emit_16(758); -emit_16(825); -emit_16(759); -emit_16(825); -emit_16(758); -emit_16(825); -emit_16(759); -emit_16(826); -emit_16(760); -emit_16(826); -emit_16(759); -emit_16(826); -emit_16(760); -emit_16(827); -emit_16(761); -emit_16(827); -emit_16(760); -emit_16(827); -emit_16(761); -emit_16(828); -emit_16(762); -emit_16(828); -emit_16(761); -emit_16(828); -emit_16(762); -emit_16(829); -emit_16(763); -emit_16(829); -emit_16(762); -emit_16(829); -emit_16(763); -emit_16(830); -emit_16(764); -emit_16(830); -emit_16(763); -emit_16(830); -emit_16(764); -emit_16(831); -emit_16(765); -emit_16(831); -emit_16(764); -emit_16(831); -emit_16(765); -emit_16(832); -emit_16(766); -emit_16(832); -emit_16(765); -emit_16(832); -emit_16(766); -emit_16(833); -emit_16(767); -emit_16(833); -emit_16(766); -emit_16(833); -emit_16(767); -emit_16(834); -emit_16(768); -emit_16(834); -emit_16(767); -emit_16(834); -emit_16(768); -emit_16(835); -emit_16(769); -emit_16(835); -emit_16(768); -emit_16(835); -emit_16(769); -emit_16(836); -emit_16(770); -emit_16(836); -emit_16(769); -emit_16(836); -emit_16(770); -emit_16(837); -emit_16(771); -emit_16(837); -emit_16(770); -emit_16(837); -emit_16(771); -emit_16(838); -emit_16(772); -emit_16(838); -emit_16(771); -emit_16(838); -emit_16(772); -emit_16(839); -emit_16(773); -emit_16(839); -emit_16(772); -emit_16(839); -emit_16(773); -emit_16(840); -emit_16(774); -emit_16(840); -emit_16(773); -emit_16(840); -emit_16(774); -emit_16(841); -emit_16(775); -emit_16(841); -emit_16(774); -emit_16(841); -emit_16(775); -emit_16(842); -emit_16(776); -emit_16(842); -emit_16(775); -emit_16(842); -emit_16(776); -emit_16(843); -emit_16(777); -emit_16(843); -emit_16(776); -emit_16(843); -emit_16(777); -emit_16(844); -emit_16(778); -emit_16(844); -emit_16(777); -emit_16(844); -emit_16(778); -emit_16(845); -emit_16(779); -emit_16(845); -emit_16(778); -emit_16(845); -emit_16(779); -emit_16(846); -emit_16(780); -emit_16(846); -emit_16(779); -emit_16(846); -emit_16(780); -emit_16(847); -emit_16(781); -emit_16(847); -emit_16(780); -emit_16(847); -emit_16(781); -emit_16(848); -emit_16(782); -emit_16(848); -emit_16(781); -emit_16(848); -emit_16(782); -emit_16(849); -emit_16(783); -emit_16(849); -emit_16(782); -emit_16(849); -emit_16(783); -emit_16(850); -emit_16(784); -emit_16(850); -emit_16(783); -emit_16(850); -emit_16(784); -emit_16(851); -emit_16(785); -emit_16(851); -emit_16(784); -emit_16(851); -emit_16(785); -emit_16(852); -emit_16(786); -emit_16(852); -emit_16(785); -emit_16(852); -emit_16(786); -emit_16(853); -emit_16(787); -emit_16(853); -emit_16(786); -emit_16(853); -emit_16(787); -emit_16(854); -emit_16(788); -emit_16(854); -emit_16(787); -emit_16(854); -emit_16(788); -emit_16(855); -emit_16(789); -emit_16(855); -emit_16(788); -emit_16(855); -emit_16(789); -emit_16(856); -emit_16(790); -emit_16(856); -emit_16(789); -emit_16(856); -emit_16(790); -emit_16(857); -emit_16(791); -emit_16(857); -emit_16(790); -emit_16(858); -emit_16(792); -emit_16(859); -emit_16(793); -emit_16(859); -emit_16(792); -emit_16(859); -emit_16(793); -emit_16(860); -emit_16(794); -emit_16(860); -emit_16(793); -emit_16(860); -emit_16(794); -emit_16(861); -emit_16(795); -emit_16(861); -emit_16(794); -emit_16(861); -emit_16(795); -emit_16(862); -emit_16(796); -emit_16(862); -emit_16(795); -emit_16(862); -emit_16(796); -emit_16(863); -emit_16(797); -emit_16(863); -emit_16(796); -emit_16(863); -emit_16(797); -emit_16(864); -emit_16(798); -emit_16(864); -emit_16(797); -emit_16(864); -emit_16(798); -emit_16(865); -emit_16(799); -emit_16(865); -emit_16(798); -emit_16(865); -emit_16(799); -emit_16(866); -emit_16(800); -emit_16(866); -emit_16(799); -emit_16(866); -emit_16(800); -emit_16(867); -emit_16(801); -emit_16(867); -emit_16(800); -emit_16(867); -emit_16(801); -emit_16(868); -emit_16(802); -emit_16(868); -emit_16(801); -emit_16(868); -emit_16(802); -emit_16(869); -emit_16(803); -emit_16(869); -emit_16(802); -emit_16(869); -emit_16(803); -emit_16(870); -emit_16(804); -emit_16(870); -emit_16(803); -emit_16(870); -emit_16(804); -emit_16(871); -emit_16(805); -emit_16(871); -emit_16(804); -emit_16(871); -emit_16(805); -emit_16(872); -emit_16(806); -emit_16(872); -emit_16(805); -emit_16(872); -emit_16(806); -emit_16(873); -emit_16(807); -emit_16(873); -emit_16(806); -emit_16(873); -emit_16(807); -emit_16(874); -emit_16(808); -emit_16(874); -emit_16(807); -emit_16(874); -emit_16(808); -emit_16(875); -emit_16(809); -emit_16(875); -emit_16(808); -emit_16(875); -emit_16(809); -emit_16(876); -emit_16(810); -emit_16(876); -emit_16(809); -emit_16(876); -emit_16(810); -emit_16(877); -emit_16(811); -emit_16(877); -emit_16(810); -emit_16(877); -emit_16(811); -emit_16(878); -emit_16(812); -emit_16(878); -emit_16(811); -emit_16(878); -emit_16(812); -emit_16(879); -emit_16(813); -emit_16(879); -emit_16(812); -emit_16(879); -emit_16(813); -emit_16(880); -emit_16(814); -emit_16(880); -emit_16(813); -emit_16(880); -emit_16(814); -emit_16(881); -emit_16(815); -emit_16(881); -emit_16(814); -emit_16(881); -emit_16(815); -emit_16(882); -emit_16(816); -emit_16(882); -emit_16(815); -emit_16(882); -emit_16(816); -emit_16(883); -emit_16(817); -emit_16(883); -emit_16(816); -emit_16(883); -emit_16(817); -emit_16(884); -emit_16(818); -emit_16(884); -emit_16(817); -emit_16(884); -emit_16(818); -emit_16(885); -emit_16(819); -emit_16(885); -emit_16(818); -emit_16(885); -emit_16(819); -emit_16(886); -emit_16(820); -emit_16(886); -emit_16(819); -emit_16(886); -emit_16(820); -emit_16(887); -emit_16(821); -emit_16(887); -emit_16(820); -emit_16(887); -emit_16(821); -emit_16(888); -emit_16(822); -emit_16(888); -emit_16(821); -emit_16(888); -emit_16(822); -emit_16(889); -emit_16(823); -emit_16(889); -emit_16(822); -emit_16(889); -emit_16(823); -emit_16(890); -emit_16(824); -emit_16(890); -emit_16(823); -emit_16(890); -emit_16(824); -emit_16(891); -emit_16(825); -emit_16(891); -emit_16(824); -emit_16(891); -emit_16(825); -emit_16(892); -emit_16(826); -emit_16(892); -emit_16(825); -emit_16(892); -emit_16(826); -emit_16(893); -emit_16(827); -emit_16(893); -emit_16(826); -emit_16(893); -emit_16(827); -emit_16(894); -emit_16(828); -emit_16(894); -emit_16(827); -emit_16(894); -emit_16(828); -emit_16(895); -emit_16(829); -emit_16(895); -emit_16(828); -emit_16(895); -emit_16(829); -emit_16(896); -emit_16(830); -emit_16(896); -emit_16(829); -emit_16(896); -emit_16(830); -emit_16(897); -emit_16(831); -emit_16(897); -emit_16(830); -emit_16(897); -emit_16(831); -emit_16(898); -emit_16(832); -emit_16(898); -emit_16(831); -emit_16(898); -emit_16(832); -emit_16(899); -emit_16(833); -emit_16(899); -emit_16(832); -emit_16(899); -emit_16(833); -emit_16(900); -emit_16(834); -emit_16(900); -emit_16(833); -emit_16(900); -emit_16(834); -emit_16(901); -emit_16(835); -emit_16(901); -emit_16(834); -emit_16(901); -emit_16(835); -emit_16(902); -emit_16(836); -emit_16(902); -emit_16(835); -emit_16(902); -emit_16(836); -emit_16(903); -emit_16(837); -emit_16(903); -emit_16(836); -emit_16(903); -emit_16(837); -emit_16(904); -emit_16(838); -emit_16(904); -emit_16(837); -emit_16(904); -emit_16(838); -emit_16(905); -emit_16(839); -emit_16(905); -emit_16(838); -emit_16(905); -emit_16(839); -emit_16(906); -emit_16(840); -emit_16(906); -emit_16(839); -emit_16(906); -emit_16(840); -emit_16(907); -emit_16(841); -emit_16(907); -emit_16(840); -emit_16(907); -emit_16(841); -emit_16(908); -emit_16(842); -emit_16(908); -emit_16(841); -emit_16(908); -emit_16(842); -emit_16(909); -emit_16(843); -emit_16(909); -emit_16(842); -emit_16(909); -emit_16(843); -emit_16(910); -emit_16(844); -emit_16(910); -emit_16(843); -emit_16(910); -emit_16(844); -emit_16(911); -emit_16(845); -emit_16(911); -emit_16(844); -emit_16(911); -emit_16(845); -emit_16(912); -emit_16(846); -emit_16(912); -emit_16(845); -emit_16(912); -emit_16(846); -emit_16(913); -emit_16(847); -emit_16(913); -emit_16(846); -emit_16(913); -emit_16(847); -emit_16(914); -emit_16(848); -emit_16(914); -emit_16(847); -emit_16(914); -emit_16(848); -emit_16(915); -emit_16(849); -emit_16(915); -emit_16(848); -emit_16(915); -emit_16(849); -emit_16(916); -emit_16(850); -emit_16(916); -emit_16(849); -emit_16(916); -emit_16(850); -emit_16(917); -emit_16(851); -emit_16(917); -emit_16(850); -emit_16(917); -emit_16(851); -emit_16(918); -emit_16(852); -emit_16(918); -emit_16(851); -emit_16(918); -emit_16(852); -emit_16(919); -emit_16(853); -emit_16(919); -emit_16(852); -emit_16(919); -emit_16(853); -emit_16(920); -emit_16(854); -emit_16(920); -emit_16(853); -emit_16(920); -emit_16(854); -emit_16(921); -emit_16(855); -emit_16(921); -emit_16(854); -emit_16(921); -emit_16(855); -emit_16(922); -emit_16(856); -emit_16(922); -emit_16(855); -emit_16(922); -emit_16(856); -emit_16(923); -emit_16(857); -emit_16(923); -emit_16(856); -emit_16(924); -emit_16(858); -emit_16(925); -emit_16(859); -emit_16(925); -emit_16(858); -emit_16(925); -emit_16(859); -emit_16(926); -emit_16(860); -emit_16(926); -emit_16(859); -emit_16(926); -emit_16(860); -emit_16(927); -emit_16(861); -emit_16(927); -emit_16(860); -emit_16(927); -emit_16(861); -emit_16(928); -emit_16(862); -emit_16(928); -emit_16(861); -emit_16(928); -emit_16(862); -emit_16(929); -emit_16(863); -emit_16(929); -emit_16(862); -emit_16(929); -emit_16(863); -emit_16(930); -emit_16(864); -emit_16(930); -emit_16(863); -emit_16(930); -emit_16(864); -emit_16(931); -emit_16(865); -emit_16(931); -emit_16(864); -emit_16(931); -emit_16(865); -emit_16(932); -emit_16(866); -emit_16(932); -emit_16(865); -emit_16(932); -emit_16(866); -emit_16(933); -emit_16(867); -emit_16(933); -emit_16(866); -emit_16(933); -emit_16(867); -emit_16(934); -emit_16(868); -emit_16(934); -emit_16(867); -emit_16(934); -emit_16(868); -emit_16(935); -emit_16(869); -emit_16(935); -emit_16(868); -emit_16(935); -emit_16(869); -emit_16(936); -emit_16(870); -emit_16(936); -emit_16(869); -emit_16(936); -emit_16(870); -emit_16(937); -emit_16(871); -emit_16(937); -emit_16(870); -emit_16(937); -emit_16(871); -emit_16(938); -emit_16(872); -emit_16(938); -emit_16(871); -emit_16(938); -emit_16(872); -emit_16(939); -emit_16(873); -emit_16(939); -emit_16(872); -emit_16(939); -emit_16(873); -emit_16(940); -emit_16(874); -emit_16(940); -emit_16(873); -emit_16(940); -emit_16(874); -emit_16(941); -emit_16(875); -emit_16(941); -emit_16(874); -emit_16(941); -emit_16(875); -emit_16(942); -emit_16(876); -emit_16(942); -emit_16(875); -emit_16(942); -emit_16(876); -emit_16(943); -emit_16(877); -emit_16(943); -emit_16(876); -emit_16(943); -emit_16(877); -emit_16(944); -emit_16(878); -emit_16(944); -emit_16(877); -emit_16(944); -emit_16(878); -emit_16(945); -emit_16(879); -emit_16(945); -emit_16(878); -emit_16(945); -emit_16(879); -emit_16(946); -emit_16(880); -emit_16(946); -emit_16(879); -emit_16(946); -emit_16(880); -emit_16(947); -emit_16(881); -emit_16(947); -emit_16(880); -emit_16(947); -emit_16(881); -emit_16(948); -emit_16(882); -emit_16(948); -emit_16(881); -emit_16(948); -emit_16(882); -emit_16(949); -emit_16(883); -emit_16(949); -emit_16(882); -emit_16(949); -emit_16(883); -emit_16(950); -emit_16(884); -emit_16(950); -emit_16(883); -emit_16(950); -emit_16(884); -emit_16(951); -emit_16(885); -emit_16(951); -emit_16(884); -emit_16(951); -emit_16(885); -emit_16(952); -emit_16(886); -emit_16(952); -emit_16(885); -emit_16(952); -emit_16(886); -emit_16(953); -emit_16(887); -emit_16(953); -emit_16(886); -emit_16(953); -emit_16(887); -emit_16(954); -emit_16(888); -emit_16(954); -emit_16(887); -emit_16(954); -emit_16(888); -emit_16(955); -emit_16(889); -emit_16(955); -emit_16(888); -emit_16(955); -emit_16(889); -emit_16(956); -emit_16(890); -emit_16(956); -emit_16(889); -emit_16(956); -emit_16(890); -emit_16(957); -emit_16(891); -emit_16(957); -emit_16(890); -emit_16(957); -emit_16(891); -emit_16(958); -emit_16(892); -emit_16(958); -emit_16(891); -emit_16(958); -emit_16(892); -emit_16(959); -emit_16(893); -emit_16(959); -emit_16(892); -emit_16(959); -emit_16(893); -emit_16(960); -emit_16(894); -emit_16(960); -emit_16(893); -emit_16(960); -emit_16(894); -emit_16(961); -emit_16(895); -emit_16(961); -emit_16(894); -emit_16(961); -emit_16(895); -emit_16(962); -emit_16(896); -emit_16(962); -emit_16(895); -emit_16(962); -emit_16(896); -emit_16(963); -emit_16(897); -emit_16(963); -emit_16(896); -emit_16(963); -emit_16(897); -emit_16(964); -emit_16(898); -emit_16(964); -emit_16(897); -emit_16(964); -emit_16(898); -emit_16(965); -emit_16(899); -emit_16(965); -emit_16(898); -emit_16(965); -emit_16(899); -emit_16(966); -emit_16(900); -emit_16(966); -emit_16(899); -emit_16(966); -emit_16(900); -emit_16(967); -emit_16(901); -emit_16(967); -emit_16(900); -emit_16(967); -emit_16(901); -emit_16(968); -emit_16(902); -emit_16(968); -emit_16(901); -emit_16(968); -emit_16(902); -emit_16(969); -emit_16(903); -emit_16(969); -emit_16(902); -emit_16(969); -emit_16(903); -emit_16(970); -emit_16(904); -emit_16(970); -emit_16(903); -emit_16(970); -emit_16(904); -emit_16(971); -emit_16(905); -emit_16(971); -emit_16(904); -emit_16(971); -emit_16(905); -emit_16(972); -emit_16(906); -emit_16(972); -emit_16(905); -emit_16(972); -emit_16(906); -emit_16(973); -emit_16(907); -emit_16(973); -emit_16(906); -emit_16(973); -emit_16(907); -emit_16(974); -emit_16(908); -emit_16(974); -emit_16(907); -emit_16(974); -emit_16(908); -emit_16(975); -emit_16(909); -emit_16(975); -emit_16(908); -emit_16(975); -emit_16(909); -emit_16(976); -emit_16(910); -emit_16(976); -emit_16(909); -emit_16(976); -emit_16(910); -emit_16(977); -emit_16(911); -emit_16(977); -emit_16(910); -emit_16(977); -emit_16(911); -emit_16(978); -emit_16(912); -emit_16(978); -emit_16(911); -emit_16(978); -emit_16(912); -emit_16(979); -emit_16(913); -emit_16(979); -emit_16(912); -emit_16(979); -emit_16(913); -emit_16(980); -emit_16(914); -emit_16(980); -emit_16(913); -emit_16(980); -emit_16(914); -emit_16(981); -emit_16(915); -emit_16(981); -emit_16(914); -emit_16(981); -emit_16(915); -emit_16(982); -emit_16(916); -emit_16(982); -emit_16(915); -emit_16(982); -emit_16(916); -emit_16(983); -emit_16(917); -emit_16(983); -emit_16(916); -emit_16(983); -emit_16(917); -emit_16(984); -emit_16(918); -emit_16(984); -emit_16(917); -emit_16(984); -emit_16(918); -emit_16(985); -emit_16(919); -emit_16(985); -emit_16(918); -emit_16(985); -emit_16(919); -emit_16(986); -emit_16(920); -emit_16(986); -emit_16(919); -emit_16(986); -emit_16(920); -emit_16(987); -emit_16(921); -emit_16(987); -emit_16(920); -emit_16(987); -emit_16(921); -emit_16(988); -emit_16(922); -emit_16(988); -emit_16(921); -emit_16(988); -emit_16(922); -emit_16(989); -emit_16(923); -emit_16(989); -emit_16(922); -emit_16(990); -emit_16(924); -emit_16(991); -emit_16(925); -emit_16(991); -emit_16(924); -emit_16(991); -emit_16(925); -emit_16(992); -emit_16(926); -emit_16(992); -emit_16(925); -emit_16(992); -emit_16(926); -emit_16(993); -emit_16(927); -emit_16(993); -emit_16(926); -emit_16(993); -emit_16(927); -emit_16(994); -emit_16(928); -emit_16(994); -emit_16(927); -emit_16(994); -emit_16(928); -emit_16(995); -emit_16(929); -emit_16(995); -emit_16(928); -emit_16(995); -emit_16(929); -emit_16(996); -emit_16(930); -emit_16(996); -emit_16(929); -emit_16(996); -emit_16(930); -emit_16(997); -emit_16(931); -emit_16(997); -emit_16(930); -emit_16(997); -emit_16(931); -emit_16(998); -emit_16(932); -emit_16(998); -emit_16(931); -emit_16(998); -emit_16(932); -emit_16(999); -emit_16(933); -emit_16(999); -emit_16(932); -emit_16(999); -emit_16(933); -emit_16(1000); -emit_16(934); -emit_16(1000); -emit_16(933); -emit_16(1000); -emit_16(934); -emit_16(1001); -emit_16(935); -emit_16(1001); -emit_16(934); -emit_16(1001); -emit_16(935); -emit_16(1002); -emit_16(936); -emit_16(1002); -emit_16(935); -emit_16(1002); -emit_16(936); -emit_16(1003); -emit_16(937); -emit_16(1003); -emit_16(936); -emit_16(1003); -emit_16(937); -emit_16(1004); -emit_16(938); -emit_16(1004); -emit_16(937); -emit_16(1004); -emit_16(938); -emit_16(1005); -emit_16(939); -emit_16(1005); -emit_16(938); -emit_16(1005); -emit_16(939); -emit_16(1006); -emit_16(940); -emit_16(1006); -emit_16(939); -emit_16(1006); -emit_16(940); -emit_16(1007); -emit_16(941); -emit_16(1007); -emit_16(940); -emit_16(1007); -emit_16(941); -emit_16(1008); -emit_16(942); -emit_16(1008); -emit_16(941); -emit_16(1008); -emit_16(942); -emit_16(1009); -emit_16(943); -emit_16(1009); -emit_16(942); -emit_16(1009); -emit_16(943); -emit_16(1010); -emit_16(944); -emit_16(1010); -emit_16(943); -emit_16(1010); -emit_16(944); -emit_16(1011); -emit_16(945); -emit_16(1011); -emit_16(944); -emit_16(1011); -emit_16(945); -emit_16(1012); -emit_16(946); -emit_16(1012); -emit_16(945); -emit_16(1012); -emit_16(946); -emit_16(1013); -emit_16(947); -emit_16(1013); -emit_16(946); -emit_16(1013); -emit_16(947); -emit_16(1014); -emit_16(948); -emit_16(1014); -emit_16(947); -emit_16(1014); -emit_16(948); -emit_16(1015); -emit_16(949); -emit_16(1015); -emit_16(948); -emit_16(1015); -emit_16(949); -emit_16(1016); -emit_16(950); -emit_16(1016); -emit_16(949); -emit_16(1016); -emit_16(950); -emit_16(1017); -emit_16(951); -emit_16(1017); -emit_16(950); -emit_16(1017); -emit_16(951); -emit_16(1018); -emit_16(952); -emit_16(1018); -emit_16(951); -emit_16(1018); -emit_16(952); -emit_16(1019); -emit_16(953); -emit_16(1019); -emit_16(952); -emit_16(1019); -emit_16(953); -emit_16(1020); -emit_16(954); -emit_16(1020); -emit_16(953); -emit_16(1020); -emit_16(954); -emit_16(1021); -emit_16(955); -emit_16(1021); -emit_16(954); -emit_16(1021); -emit_16(955); -emit_16(1022); -emit_16(956); -emit_16(1022); -emit_16(955); -emit_16(1022); -emit_16(956); -emit_16(1023); -emit_16(957); -emit_16(1023); -emit_16(956); -emit_16(1023); -emit_16(957); -emit_16(1024); -emit_16(958); -emit_16(1024); -emit_16(957); -emit_16(1024); -emit_16(958); -emit_16(1025); -emit_16(959); -emit_16(1025); -emit_16(958); -emit_16(1025); -emit_16(959); -emit_16(1026); -emit_16(960); -emit_16(1026); -emit_16(959); -emit_16(1026); -emit_16(960); -emit_16(1027); -emit_16(961); -emit_16(1027); -emit_16(960); -emit_16(1027); -emit_16(961); -emit_16(1028); -emit_16(962); -emit_16(1028); -emit_16(961); -emit_16(1028); -emit_16(962); -emit_16(1029); -emit_16(963); -emit_16(1029); -emit_16(962); -emit_16(1029); -emit_16(963); -emit_16(1030); -emit_16(964); -emit_16(1030); -emit_16(963); -emit_16(1030); -emit_16(964); -emit_16(1031); -emit_16(965); -emit_16(1031); -emit_16(964); -emit_16(1031); -emit_16(965); -emit_16(1032); -emit_16(966); -emit_16(1032); -emit_16(965); -emit_16(1032); -emit_16(966); -emit_16(1033); -emit_16(967); -emit_16(1033); -emit_16(966); -emit_16(1033); -emit_16(967); -emit_16(1034); -emit_16(968); -emit_16(1034); -emit_16(967); -emit_16(1034); -emit_16(968); -emit_16(1035); -emit_16(969); -emit_16(1035); -emit_16(968); -emit_16(1035); -emit_16(969); -emit_16(1036); -emit_16(970); -emit_16(1036); -emit_16(969); -emit_16(1036); -emit_16(970); -emit_16(1037); -emit_16(971); -emit_16(1037); -emit_16(970); -emit_16(1037); -emit_16(971); -emit_16(1038); -emit_16(972); -emit_16(1038); -emit_16(971); -emit_16(1038); -emit_16(972); -emit_16(1039); -emit_16(973); -emit_16(1039); -emit_16(972); -emit_16(1039); -emit_16(973); -emit_16(1040); -emit_16(974); -emit_16(1040); -emit_16(973); -emit_16(1040); -emit_16(974); -emit_16(1041); -emit_16(975); -emit_16(1041); -emit_16(974); -emit_16(1041); -emit_16(975); -emit_16(1042); -emit_16(976); -emit_16(1042); -emit_16(975); -emit_16(1042); -emit_16(976); -emit_16(1043); -emit_16(977); -emit_16(1043); -emit_16(976); -emit_16(1043); -emit_16(977); -emit_16(1044); -emit_16(978); -emit_16(1044); -emit_16(977); -emit_16(1044); -emit_16(978); -emit_16(1045); -emit_16(979); -emit_16(1045); -emit_16(978); -emit_16(1045); -emit_16(979); -emit_16(1046); -emit_16(980); -emit_16(1046); -emit_16(979); -emit_16(1046); -emit_16(980); -emit_16(1047); -emit_16(981); -emit_16(1047); -emit_16(980); -emit_16(1047); -emit_16(981); -emit_16(1048); -emit_16(982); -emit_16(1048); -emit_16(981); -emit_16(1048); -emit_16(982); -emit_16(1049); -emit_16(983); -emit_16(1049); -emit_16(982); -emit_16(1049); -emit_16(983); -emit_16(1050); -emit_16(984); -emit_16(1050); -emit_16(983); -emit_16(1050); -emit_16(984); -emit_16(1051); -emit_16(985); -emit_16(1051); -emit_16(984); -emit_16(1051); -emit_16(985); -emit_16(1052); -emit_16(986); -emit_16(1052); -emit_16(985); -emit_16(1052); -emit_16(986); -emit_16(1053); -emit_16(987); -emit_16(1053); -emit_16(986); -emit_16(1053); -emit_16(987); -emit_16(1054); -emit_16(988); -emit_16(1054); -emit_16(987); -emit_16(1054); -emit_16(988); -emit_16(1055); -emit_16(989); -emit_16(1055); -emit_16(988); -emit_16(1056); -emit_16(990); -emit_16(1057); -emit_16(991); -emit_16(1057); -emit_16(990); -emit_16(1057); -emit_16(991); -emit_16(1058); -emit_16(992); -emit_16(1058); -emit_16(991); -emit_16(1058); -emit_16(992); -emit_16(1059); -emit_16(993); -emit_16(1059); -emit_16(992); -emit_16(1059); -emit_16(993); -emit_16(1060); -emit_16(994); -emit_16(1060); -emit_16(993); -emit_16(1060); -emit_16(994); -emit_16(1061); -emit_16(995); -emit_16(1061); -emit_16(994); -emit_16(1061); -emit_16(995); -emit_16(1062); -emit_16(996); -emit_16(1062); -emit_16(995); -emit_16(1062); -emit_16(996); -emit_16(1063); -emit_16(997); -emit_16(1063); -emit_16(996); -emit_16(1063); -emit_16(997); -emit_16(1064); -emit_16(998); -emit_16(1064); -emit_16(997); -emit_16(1064); -emit_16(998); -emit_16(1065); -emit_16(999); -emit_16(1065); -emit_16(998); -emit_16(1065); -emit_16(999); -emit_16(1066); -emit_16(1000); -emit_16(1066); -emit_16(999); -emit_16(1066); -emit_16(1000); -emit_16(1067); -emit_16(1001); -emit_16(1067); -emit_16(1000); -emit_16(1067); -emit_16(1001); -emit_16(1068); -emit_16(1002); -emit_16(1068); -emit_16(1001); -emit_16(1068); -emit_16(1002); -emit_16(1069); -emit_16(1003); -emit_16(1069); -emit_16(1002); -emit_16(1069); -emit_16(1003); -emit_16(1070); -emit_16(1004); -emit_16(1070); -emit_16(1003); -emit_16(1070); -emit_16(1004); -emit_16(1071); -emit_16(1005); -emit_16(1071); -emit_16(1004); -emit_16(1071); -emit_16(1005); -emit_16(1072); -emit_16(1006); -emit_16(1072); -emit_16(1005); -emit_16(1072); -emit_16(1006); -emit_16(1073); -emit_16(1007); -emit_16(1073); -emit_16(1006); -emit_16(1073); -emit_16(1007); -emit_16(1074); -emit_16(1008); -emit_16(1074); -emit_16(1007); -emit_16(1074); -emit_16(1008); -emit_16(1075); -emit_16(1009); -emit_16(1075); -emit_16(1008); -emit_16(1075); -emit_16(1009); -emit_16(1076); -emit_16(1010); -emit_16(1076); -emit_16(1009); -emit_16(1076); -emit_16(1010); -emit_16(1077); -emit_16(1011); -emit_16(1077); -emit_16(1010); -emit_16(1077); -emit_16(1011); -emit_16(1078); -emit_16(1012); -emit_16(1078); -emit_16(1011); -emit_16(1078); -emit_16(1012); -emit_16(1079); -emit_16(1013); -emit_16(1079); -emit_16(1012); -emit_16(1079); -emit_16(1013); -emit_16(1080); -emit_16(1014); -emit_16(1080); -emit_16(1013); -emit_16(1080); -emit_16(1014); -emit_16(1081); -emit_16(1015); -emit_16(1081); -emit_16(1014); -emit_16(1081); -emit_16(1015); -emit_16(1082); -emit_16(1016); -emit_16(1082); -emit_16(1015); -emit_16(1082); -emit_16(1016); -emit_16(1083); -emit_16(1017); -emit_16(1083); -emit_16(1016); -emit_16(1083); -emit_16(1017); -emit_16(1084); -emit_16(1018); -emit_16(1084); -emit_16(1017); -emit_16(1084); -emit_16(1018); -emit_16(1085); -emit_16(1019); -emit_16(1085); -emit_16(1018); -emit_16(1085); -emit_16(1019); -emit_16(1086); -emit_16(1020); -emit_16(1086); -emit_16(1019); -emit_16(1086); -emit_16(1020); -emit_16(1087); -emit_16(1021); -emit_16(1087); -emit_16(1020); -emit_16(1087); -emit_16(1021); -emit_16(1088); -emit_16(1022); -emit_16(1088); -emit_16(1021); -emit_16(1088); -emit_16(1022); -emit_16(1089); -emit_16(1023); -emit_16(1089); -emit_16(1022); -emit_16(1089); -emit_16(1023); -emit_16(1090); -emit_16(1024); -emit_16(1090); -emit_16(1023); -emit_16(1090); -emit_16(1024); -emit_16(1091); -emit_16(1025); -emit_16(1091); -emit_16(1024); -emit_16(1091); -emit_16(1025); -emit_16(1092); -emit_16(1026); -emit_16(1092); -emit_16(1025); -emit_16(1092); -emit_16(1026); -emit_16(1093); -emit_16(1027); -emit_16(1093); -emit_16(1026); -emit_16(1093); -emit_16(1027); -emit_16(1094); -emit_16(1028); -emit_16(1094); -emit_16(1027); -emit_16(1094); -emit_16(1028); -emit_16(1095); -emit_16(1029); -emit_16(1095); -emit_16(1028); -emit_16(1095); -emit_16(1029); -emit_16(1096); -emit_16(1030); -emit_16(1096); -emit_16(1029); -emit_16(1096); -emit_16(1030); -emit_16(1097); -emit_16(1031); -emit_16(1097); -emit_16(1030); -emit_16(1097); -emit_16(1031); -emit_16(1098); -emit_16(1032); -emit_16(1098); -emit_16(1031); -emit_16(1098); -emit_16(1032); -emit_16(1099); -emit_16(1033); -emit_16(1099); -emit_16(1032); -emit_16(1099); -emit_16(1033); -emit_16(1100); -emit_16(1034); -emit_16(1100); -emit_16(1033); -emit_16(1100); -emit_16(1034); -emit_16(1101); -emit_16(1035); -emit_16(1101); -emit_16(1034); -emit_16(1101); -emit_16(1035); -emit_16(1102); -emit_16(1036); -emit_16(1102); -emit_16(1035); -emit_16(1102); -emit_16(1036); -emit_16(1103); -emit_16(1037); -emit_16(1103); -emit_16(1036); -emit_16(1103); -emit_16(1037); -emit_16(1104); -emit_16(1038); -emit_16(1104); -emit_16(1037); -emit_16(1104); -emit_16(1038); -emit_16(1105); -emit_16(1039); -emit_16(1105); -emit_16(1038); -emit_16(1105); -emit_16(1039); -emit_16(1106); -emit_16(1040); -emit_16(1106); -emit_16(1039); -emit_16(1106); -emit_16(1040); -emit_16(1107); -emit_16(1041); -emit_16(1107); -emit_16(1040); -emit_16(1107); -emit_16(1041); -emit_16(1108); -emit_16(1042); -emit_16(1108); -emit_16(1041); -emit_16(1108); -emit_16(1042); -emit_16(1109); -emit_16(1043); -emit_16(1109); -emit_16(1042); -emit_16(1109); -emit_16(1043); -emit_16(1110); -emit_16(1044); -emit_16(1110); -emit_16(1043); -emit_16(1110); -emit_16(1044); -emit_16(1111); -emit_16(1045); -emit_16(1111); -emit_16(1044); -emit_16(1111); -emit_16(1045); -emit_16(1112); -emit_16(1046); -emit_16(1112); -emit_16(1045); -emit_16(1112); -emit_16(1046); -emit_16(1113); -emit_16(1047); -emit_16(1113); -emit_16(1046); -emit_16(1113); -emit_16(1047); -emit_16(1114); -emit_16(1048); -emit_16(1114); -emit_16(1047); -emit_16(1114); -emit_16(1048); -emit_16(1115); -emit_16(1049); -emit_16(1115); -emit_16(1048); -emit_16(1115); -emit_16(1049); -emit_16(1116); -emit_16(1050); -emit_16(1116); -emit_16(1049); -emit_16(1116); -emit_16(1050); -emit_16(1117); -emit_16(1051); -emit_16(1117); -emit_16(1050); -emit_16(1117); -emit_16(1051); -emit_16(1118); -emit_16(1052); -emit_16(1118); -emit_16(1051); -emit_16(1118); -emit_16(1052); -emit_16(1119); -emit_16(1053); -emit_16(1119); -emit_16(1052); -emit_16(1119); -emit_16(1053); -emit_16(1120); -emit_16(1054); -emit_16(1120); -emit_16(1053); -emit_16(1120); -emit_16(1054); -emit_16(1121); -emit_16(1055); -emit_16(1121); -emit_16(1054); -emit_16(1122); -emit_16(1056); -emit_16(1123); -emit_16(1057); -emit_16(1123); -emit_16(1056); -emit_16(1123); -emit_16(1057); -emit_16(1124); -emit_16(1058); -emit_16(1124); -emit_16(1057); -emit_16(1124); -emit_16(1058); -emit_16(1125); -emit_16(1059); -emit_16(1125); -emit_16(1058); -emit_16(1125); -emit_16(1059); -emit_16(1126); -emit_16(1060); -emit_16(1126); -emit_16(1059); -emit_16(1126); -emit_16(1060); -emit_16(1127); -emit_16(1061); -emit_16(1127); -emit_16(1060); -emit_16(1127); -emit_16(1061); -emit_16(1128); -emit_16(1062); -emit_16(1128); -emit_16(1061); -emit_16(1128); -emit_16(1062); -emit_16(1129); -emit_16(1063); -emit_16(1129); -emit_16(1062); -emit_16(1129); -emit_16(1063); -emit_16(1130); -emit_16(1064); -emit_16(1130); -emit_16(1063); -emit_16(1130); -emit_16(1064); -emit_16(1131); -emit_16(1065); -emit_16(1131); -emit_16(1064); -emit_16(1131); -emit_16(1065); -emit_16(1132); -emit_16(1066); -emit_16(1132); -emit_16(1065); -emit_16(1132); -emit_16(1066); -emit_16(1133); -emit_16(1067); -emit_16(1133); -emit_16(1066); -emit_16(1133); -emit_16(1067); -emit_16(1134); -emit_16(1068); -emit_16(1134); -emit_16(1067); -emit_16(1134); -emit_16(1068); -emit_16(1135); -emit_16(1069); -emit_16(1135); -emit_16(1068); -emit_16(1135); -emit_16(1069); -emit_16(1136); -emit_16(1070); -emit_16(1136); -emit_16(1069); -emit_16(1136); -emit_16(1070); -emit_16(1137); -emit_16(1071); -emit_16(1137); -emit_16(1070); -emit_16(1137); -emit_16(1071); -emit_16(1138); -emit_16(1072); -emit_16(1138); -emit_16(1071); -emit_16(1138); -emit_16(1072); -emit_16(1139); -emit_16(1073); -emit_16(1139); -emit_16(1072); -emit_16(1139); -emit_16(1073); -emit_16(1140); -emit_16(1074); -emit_16(1140); -emit_16(1073); -emit_16(1140); -emit_16(1074); -emit_16(1141); -emit_16(1075); -emit_16(1141); -emit_16(1074); -emit_16(1141); -emit_16(1075); -emit_16(1142); -emit_16(1076); -emit_16(1142); -emit_16(1075); -emit_16(1142); -emit_16(1076); -emit_16(1143); -emit_16(1077); -emit_16(1143); -emit_16(1076); -emit_16(1143); -emit_16(1077); -emit_16(1144); -emit_16(1078); -emit_16(1144); -emit_16(1077); -emit_16(1144); -emit_16(1078); -emit_16(1145); -emit_16(1079); -emit_16(1145); -emit_16(1078); -emit_16(1145); -emit_16(1079); -emit_16(1146); -emit_16(1080); -emit_16(1146); -emit_16(1079); -emit_16(1146); -emit_16(1080); -emit_16(1147); -emit_16(1081); -emit_16(1147); -emit_16(1080); -emit_16(1147); -emit_16(1081); -emit_16(1148); -emit_16(1082); -emit_16(1148); -emit_16(1081); -emit_16(1148); -emit_16(1082); -emit_16(1149); -emit_16(1083); -emit_16(1149); -emit_16(1082); -emit_16(1149); -emit_16(1083); -emit_16(1150); -emit_16(1084); -emit_16(1150); -emit_16(1083); -emit_16(1150); -emit_16(1084); -emit_16(1151); -emit_16(1085); -emit_16(1151); -emit_16(1084); -emit_16(1151); -emit_16(1085); -emit_16(1152); -emit_16(1086); -emit_16(1152); -emit_16(1085); -emit_16(1152); -emit_16(1086); -emit_16(1153); -emit_16(1087); -emit_16(1153); -emit_16(1086); -emit_16(1153); -emit_16(1087); -emit_16(1154); -emit_16(1088); -emit_16(1154); -emit_16(1087); -emit_16(1154); -emit_16(1088); -emit_16(1155); -emit_16(1089); -emit_16(1155); -emit_16(1088); -emit_16(1155); -emit_16(1089); -emit_16(1156); -emit_16(1090); -emit_16(1156); -emit_16(1089); -emit_16(1156); -emit_16(1090); -emit_16(1157); -emit_16(1091); -emit_16(1157); -emit_16(1090); -emit_16(1157); -emit_16(1091); -emit_16(1158); -emit_16(1092); -emit_16(1158); -emit_16(1091); -emit_16(1158); -emit_16(1092); -emit_16(1159); -emit_16(1093); -emit_16(1159); -emit_16(1092); -emit_16(1159); -emit_16(1093); -emit_16(1160); -emit_16(1094); -emit_16(1160); -emit_16(1093); -emit_16(1160); -emit_16(1094); -emit_16(1161); -emit_16(1095); -emit_16(1161); -emit_16(1094); -emit_16(1161); -emit_16(1095); -emit_16(1162); -emit_16(1096); -emit_16(1162); -emit_16(1095); -emit_16(1162); -emit_16(1096); -emit_16(1163); -emit_16(1097); -emit_16(1163); -emit_16(1096); -emit_16(1163); -emit_16(1097); -emit_16(1164); -emit_16(1098); -emit_16(1164); -emit_16(1097); -emit_16(1164); -emit_16(1098); -emit_16(1165); -emit_16(1099); -emit_16(1165); -emit_16(1098); -emit_16(1165); -emit_16(1099); -emit_16(1166); -emit_16(1100); -emit_16(1166); -emit_16(1099); -emit_16(1166); -emit_16(1100); -emit_16(1167); -emit_16(1101); -emit_16(1167); -emit_16(1100); -emit_16(1167); -emit_16(1101); -emit_16(1168); -emit_16(1102); -emit_16(1168); -emit_16(1101); -emit_16(1168); -emit_16(1102); -emit_16(1169); -emit_16(1103); -emit_16(1169); -emit_16(1102); -emit_16(1169); -emit_16(1103); -emit_16(1170); -emit_16(1104); -emit_16(1170); -emit_16(1103); -emit_16(1170); -emit_16(1104); -emit_16(1171); -emit_16(1105); -emit_16(1171); -emit_16(1104); -emit_16(1171); -emit_16(1105); -emit_16(1172); -emit_16(1106); -emit_16(1172); -emit_16(1105); -emit_16(1172); -emit_16(1106); -emit_16(1173); -emit_16(1107); -emit_16(1173); -emit_16(1106); -emit_16(1173); -emit_16(1107); -emit_16(1174); -emit_16(1108); -emit_16(1174); -emit_16(1107); -emit_16(1174); -emit_16(1108); -emit_16(1175); -emit_16(1109); -emit_16(1175); -emit_16(1108); -emit_16(1175); -emit_16(1109); -emit_16(1176); -emit_16(1110); -emit_16(1176); -emit_16(1109); -emit_16(1176); -emit_16(1110); -emit_16(1177); -emit_16(1111); -emit_16(1177); -emit_16(1110); -emit_16(1177); -emit_16(1111); -emit_16(1178); -emit_16(1112); -emit_16(1178); -emit_16(1111); -emit_16(1178); -emit_16(1112); -emit_16(1179); -emit_16(1113); -emit_16(1179); -emit_16(1112); -emit_16(1179); -emit_16(1113); -emit_16(1180); -emit_16(1114); -emit_16(1180); -emit_16(1113); -emit_16(1180); -emit_16(1114); -emit_16(1181); -emit_16(1115); -emit_16(1181); -emit_16(1114); -emit_16(1181); -emit_16(1115); -emit_16(1182); -emit_16(1116); -emit_16(1182); -emit_16(1115); -emit_16(1182); -emit_16(1116); -emit_16(1183); -emit_16(1117); -emit_16(1183); -emit_16(1116); -emit_16(1183); -emit_16(1117); -emit_16(1184); -emit_16(1118); -emit_16(1184); -emit_16(1117); -emit_16(1184); -emit_16(1118); -emit_16(1185); -emit_16(1119); -emit_16(1185); -emit_16(1118); -emit_16(1185); -emit_16(1119); -emit_16(1186); -emit_16(1120); -emit_16(1186); -emit_16(1119); -emit_16(1186); -emit_16(1120); -emit_16(1187); -emit_16(1121); -emit_16(1187); -emit_16(1120); -emit_16(1188); -emit_16(1122); -emit_16(1189); -emit_16(1123); -emit_16(1189); -emit_16(1122); -emit_16(1189); -emit_16(1123); -emit_16(1190); -emit_16(1124); -emit_16(1190); -emit_16(1123); -emit_16(1190); -emit_16(1124); -emit_16(1191); -emit_16(1125); -emit_16(1191); -emit_16(1124); -emit_16(1191); -emit_16(1125); -emit_16(1192); -emit_16(1126); -emit_16(1192); -emit_16(1125); -emit_16(1192); -emit_16(1126); -emit_16(1193); -emit_16(1127); -emit_16(1193); -emit_16(1126); -emit_16(1193); -emit_16(1127); -emit_16(1194); -emit_16(1128); -emit_16(1194); -emit_16(1127); -emit_16(1194); -emit_16(1128); -emit_16(1195); -emit_16(1129); -emit_16(1195); -emit_16(1128); -emit_16(1195); -emit_16(1129); -emit_16(1196); -emit_16(1130); -emit_16(1196); -emit_16(1129); -emit_16(1196); -emit_16(1130); -emit_16(1197); -emit_16(1131); -emit_16(1197); -emit_16(1130); -emit_16(1197); -emit_16(1131); -emit_16(1198); -emit_16(1132); -emit_16(1198); -emit_16(1131); -emit_16(1198); -emit_16(1132); -emit_16(1199); -emit_16(1133); -emit_16(1199); -emit_16(1132); -emit_16(1199); -emit_16(1133); -emit_16(1200); -emit_16(1134); -emit_16(1200); -emit_16(1133); -emit_16(1200); -emit_16(1134); -emit_16(1201); -emit_16(1135); -emit_16(1201); -emit_16(1134); -emit_16(1201); -emit_16(1135); -emit_16(1202); -emit_16(1136); -emit_16(1202); -emit_16(1135); -emit_16(1202); -emit_16(1136); -emit_16(1203); -emit_16(1137); -emit_16(1203); -emit_16(1136); -emit_16(1203); -emit_16(1137); -emit_16(1204); -emit_16(1138); -emit_16(1204); -emit_16(1137); -emit_16(1204); -emit_16(1138); -emit_16(1205); -emit_16(1139); -emit_16(1205); -emit_16(1138); -emit_16(1205); -emit_16(1139); -emit_16(1206); -emit_16(1140); -emit_16(1206); -emit_16(1139); -emit_16(1206); -emit_16(1140); -emit_16(1207); -emit_16(1141); -emit_16(1207); -emit_16(1140); -emit_16(1207); -emit_16(1141); -emit_16(1208); -emit_16(1142); -emit_16(1208); -emit_16(1141); -emit_16(1208); -emit_16(1142); -emit_16(1209); -emit_16(1143); -emit_16(1209); -emit_16(1142); -emit_16(1209); -emit_16(1143); -emit_16(1210); -emit_16(1144); -emit_16(1210); -emit_16(1143); -emit_16(1210); -emit_16(1144); -emit_16(1211); -emit_16(1145); -emit_16(1211); -emit_16(1144); -emit_16(1211); -emit_16(1145); -emit_16(1212); -emit_16(1146); -emit_16(1212); -emit_16(1145); -emit_16(1212); -emit_16(1146); -emit_16(1213); -emit_16(1147); -emit_16(1213); -emit_16(1146); -emit_16(1213); -emit_16(1147); -emit_16(1214); -emit_16(1148); -emit_16(1214); -emit_16(1147); -emit_16(1214); -emit_16(1148); -emit_16(1215); -emit_16(1149); -emit_16(1215); -emit_16(1148); -emit_16(1215); -emit_16(1149); -emit_16(1216); -emit_16(1150); -emit_16(1216); -emit_16(1149); -emit_16(1216); -emit_16(1150); -emit_16(1217); -emit_16(1151); -emit_16(1217); -emit_16(1150); -emit_16(1217); -emit_16(1151); -emit_16(1218); -emit_16(1152); -emit_16(1218); -emit_16(1151); -emit_16(1218); -emit_16(1152); -emit_16(1219); -emit_16(1153); -emit_16(1219); -emit_16(1152); -emit_16(1219); -emit_16(1153); -emit_16(1220); -emit_16(1154); -emit_16(1220); -emit_16(1153); -emit_16(1220); -emit_16(1154); -emit_16(1221); -emit_16(1155); -emit_16(1221); -emit_16(1154); -emit_16(1221); -emit_16(1155); -emit_16(1222); -emit_16(1156); -emit_16(1222); -emit_16(1155); -emit_16(1222); -emit_16(1156); -emit_16(1223); -emit_16(1157); -emit_16(1223); -emit_16(1156); -emit_16(1223); -emit_16(1157); -emit_16(1224); -emit_16(1158); -emit_16(1224); -emit_16(1157); -emit_16(1224); -emit_16(1158); -emit_16(1225); -emit_16(1159); -emit_16(1225); -emit_16(1158); -emit_16(1225); -emit_16(1159); -emit_16(1226); -emit_16(1160); -emit_16(1226); -emit_16(1159); -emit_16(1226); -emit_16(1160); -emit_16(1227); -emit_16(1161); -emit_16(1227); -emit_16(1160); -emit_16(1227); -emit_16(1161); -emit_16(1228); -emit_16(1162); -emit_16(1228); -emit_16(1161); -emit_16(1228); -emit_16(1162); -emit_16(1229); -emit_16(1163); -emit_16(1229); -emit_16(1162); -emit_16(1229); -emit_16(1163); -emit_16(1230); -emit_16(1164); -emit_16(1230); -emit_16(1163); -emit_16(1230); -emit_16(1164); -emit_16(1231); -emit_16(1165); -emit_16(1231); -emit_16(1164); -emit_16(1231); -emit_16(1165); -emit_16(1232); -emit_16(1166); -emit_16(1232); -emit_16(1165); -emit_16(1232); -emit_16(1166); -emit_16(1233); -emit_16(1167); -emit_16(1233); -emit_16(1166); -emit_16(1233); -emit_16(1167); -emit_16(1234); -emit_16(1168); -emit_16(1234); -emit_16(1167); -emit_16(1234); -emit_16(1168); -emit_16(1235); -emit_16(1169); -emit_16(1235); -emit_16(1168); -emit_16(1235); -emit_16(1169); -emit_16(1236); -emit_16(1170); -emit_16(1236); -emit_16(1169); -emit_16(1236); -emit_16(1170); -emit_16(1237); -emit_16(1171); -emit_16(1237); -emit_16(1170); -emit_16(1237); -emit_16(1171); -emit_16(1238); -emit_16(1172); -emit_16(1238); -emit_16(1171); -emit_16(1238); -emit_16(1172); -emit_16(1239); -emit_16(1173); -emit_16(1239); -emit_16(1172); -emit_16(1239); -emit_16(1173); -emit_16(1240); -emit_16(1174); -emit_16(1240); -emit_16(1173); -emit_16(1240); -emit_16(1174); -emit_16(1241); -emit_16(1175); -emit_16(1241); -emit_16(1174); -emit_16(1241); -emit_16(1175); -emit_16(1242); -emit_16(1176); -emit_16(1242); -emit_16(1175); -emit_16(1242); -emit_16(1176); -emit_16(1243); -emit_16(1177); -emit_16(1243); -emit_16(1176); -emit_16(1243); -emit_16(1177); -emit_16(1244); -emit_16(1178); -emit_16(1244); -emit_16(1177); -emit_16(1244); -emit_16(1178); -emit_16(1245); -emit_16(1179); -emit_16(1245); -emit_16(1178); -emit_16(1245); -emit_16(1179); -emit_16(1246); -emit_16(1180); -emit_16(1246); -emit_16(1179); -emit_16(1246); -emit_16(1180); -emit_16(1247); -emit_16(1181); -emit_16(1247); -emit_16(1180); -emit_16(1247); -emit_16(1181); -emit_16(1248); -emit_16(1182); -emit_16(1248); -emit_16(1181); -emit_16(1248); -emit_16(1182); -emit_16(1249); -emit_16(1183); -emit_16(1249); -emit_16(1182); -emit_16(1249); -emit_16(1183); -emit_16(1250); -emit_16(1184); -emit_16(1250); -emit_16(1183); -emit_16(1250); -emit_16(1184); -emit_16(1251); -emit_16(1185); -emit_16(1251); -emit_16(1184); -emit_16(1251); -emit_16(1185); -emit_16(1252); -emit_16(1186); -emit_16(1252); -emit_16(1185); -emit_16(1252); -emit_16(1186); -emit_16(1253); -emit_16(1187); -emit_16(1253); -emit_16(1186); -emit_16(1254); -emit_16(1188); -emit_16(1255); -emit_16(1189); -emit_16(1255); -emit_16(1188); -emit_16(1255); -emit_16(1189); -emit_16(1256); -emit_16(1190); -emit_16(1256); -emit_16(1189); -emit_16(1256); -emit_16(1190); -emit_16(1257); -emit_16(1191); -emit_16(1257); -emit_16(1190); -emit_16(1257); -emit_16(1191); -emit_16(1258); -emit_16(1192); -emit_16(1258); -emit_16(1191); -emit_16(1258); -emit_16(1192); -emit_16(1259); -emit_16(1193); -emit_16(1259); -emit_16(1192); -emit_16(1259); -emit_16(1193); -emit_16(1260); -emit_16(1194); -emit_16(1260); -emit_16(1193); -emit_16(1260); -emit_16(1194); -emit_16(1261); -emit_16(1195); -emit_16(1261); -emit_16(1194); -emit_16(1261); -emit_16(1195); -emit_16(1262); -emit_16(1196); -emit_16(1262); -emit_16(1195); -emit_16(1262); -emit_16(1196); -emit_16(1263); -emit_16(1197); -emit_16(1263); -emit_16(1196); -emit_16(1263); -emit_16(1197); -emit_16(1264); -emit_16(1198); -emit_16(1264); -emit_16(1197); -emit_16(1264); -emit_16(1198); -emit_16(1265); -emit_16(1199); -emit_16(1265); -emit_16(1198); -emit_16(1265); -emit_16(1199); -emit_16(1266); -emit_16(1200); -emit_16(1266); -emit_16(1199); -emit_16(1266); -emit_16(1200); -emit_16(1267); -emit_16(1201); -emit_16(1267); -emit_16(1200); -emit_16(1267); -emit_16(1201); -emit_16(1268); -emit_16(1202); -emit_16(1268); -emit_16(1201); -emit_16(1268); -emit_16(1202); -emit_16(1269); -emit_16(1203); -emit_16(1269); -emit_16(1202); -emit_16(1269); -emit_16(1203); -emit_16(1270); -emit_16(1204); -emit_16(1270); -emit_16(1203); -emit_16(1270); -emit_16(1204); -emit_16(1271); -emit_16(1205); -emit_16(1271); -emit_16(1204); -emit_16(1271); -emit_16(1205); -emit_16(1272); -emit_16(1206); -emit_16(1272); -emit_16(1205); -emit_16(1272); -emit_16(1206); -emit_16(1273); -emit_16(1207); -emit_16(1273); -emit_16(1206); -emit_16(1273); -emit_16(1207); -emit_16(1274); -emit_16(1208); -emit_16(1274); -emit_16(1207); -emit_16(1274); -emit_16(1208); -emit_16(1275); -emit_16(1209); -emit_16(1275); -emit_16(1208); -emit_16(1275); -emit_16(1209); -emit_16(1276); -emit_16(1210); -emit_16(1276); -emit_16(1209); -emit_16(1276); -emit_16(1210); -emit_16(1277); -emit_16(1211); -emit_16(1277); -emit_16(1210); -emit_16(1277); -emit_16(1211); -emit_16(1278); -emit_16(1212); -emit_16(1278); -emit_16(1211); -emit_16(1278); -emit_16(1212); -emit_16(1279); -emit_16(1213); -emit_16(1279); -emit_16(1212); -emit_16(1279); -emit_16(1213); -emit_16(1280); -emit_16(1214); -emit_16(1280); -emit_16(1213); -emit_16(1280); -emit_16(1214); -emit_16(1281); -emit_16(1215); -emit_16(1281); -emit_16(1214); -emit_16(1281); -emit_16(1215); -emit_16(1282); -emit_16(1216); -emit_16(1282); -emit_16(1215); -emit_16(1282); -emit_16(1216); -emit_16(1283); -emit_16(1217); -emit_16(1283); -emit_16(1216); -emit_16(1283); -emit_16(1217); -emit_16(1284); -emit_16(1218); -emit_16(1284); -emit_16(1217); -emit_16(1284); -emit_16(1218); -emit_16(1285); -emit_16(1219); -emit_16(1285); -emit_16(1218); -emit_16(1285); -emit_16(1219); -emit_16(1286); -emit_16(1220); -emit_16(1286); -emit_16(1219); -emit_16(1286); -emit_16(1220); -emit_16(1287); -emit_16(1221); -emit_16(1287); -emit_16(1220); -emit_16(1287); -emit_16(1221); -emit_16(1288); -emit_16(1222); -emit_16(1288); -emit_16(1221); -emit_16(1288); -emit_16(1222); -emit_16(1289); -emit_16(1223); -emit_16(1289); -emit_16(1222); -emit_16(1289); -emit_16(1223); -emit_16(1290); -emit_16(1224); -emit_16(1290); -emit_16(1223); -emit_16(1290); -emit_16(1224); -emit_16(1291); -emit_16(1225); -emit_16(1291); -emit_16(1224); -emit_16(1291); -emit_16(1225); -emit_16(1292); -emit_16(1226); -emit_16(1292); -emit_16(1225); -emit_16(1292); -emit_16(1226); -emit_16(1293); -emit_16(1227); -emit_16(1293); -emit_16(1226); -emit_16(1293); -emit_16(1227); -emit_16(1294); -emit_16(1228); -emit_16(1294); -emit_16(1227); -emit_16(1294); -emit_16(1228); -emit_16(1295); -emit_16(1229); -emit_16(1295); -emit_16(1228); -emit_16(1295); -emit_16(1229); -emit_16(1296); -emit_16(1230); -emit_16(1296); -emit_16(1229); -emit_16(1296); -emit_16(1230); -emit_16(1297); -emit_16(1231); -emit_16(1297); -emit_16(1230); -emit_16(1297); -emit_16(1231); -emit_16(1298); -emit_16(1232); -emit_16(1298); -emit_16(1231); -emit_16(1298); -emit_16(1232); -emit_16(1299); -emit_16(1233); -emit_16(1299); -emit_16(1232); -emit_16(1299); -emit_16(1233); -emit_16(1300); -emit_16(1234); -emit_16(1300); -emit_16(1233); -emit_16(1300); -emit_16(1234); -emit_16(1301); -emit_16(1235); -emit_16(1301); -emit_16(1234); -emit_16(1301); -emit_16(1235); -emit_16(1302); -emit_16(1236); -emit_16(1302); -emit_16(1235); -emit_16(1302); -emit_16(1236); -emit_16(1303); -emit_16(1237); -emit_16(1303); -emit_16(1236); -emit_16(1303); -emit_16(1237); -emit_16(1304); -emit_16(1238); -emit_16(1304); -emit_16(1237); -emit_16(1304); -emit_16(1238); -emit_16(1305); -emit_16(1239); -emit_16(1305); -emit_16(1238); -emit_16(1305); -emit_16(1239); -emit_16(1306); -emit_16(1240); -emit_16(1306); -emit_16(1239); -emit_16(1306); -emit_16(1240); -emit_16(1307); -emit_16(1241); -emit_16(1307); -emit_16(1240); -emit_16(1307); -emit_16(1241); -emit_16(1308); -emit_16(1242); -emit_16(1308); -emit_16(1241); -emit_16(1308); -emit_16(1242); -emit_16(1309); -emit_16(1243); -emit_16(1309); -emit_16(1242); -emit_16(1309); -emit_16(1243); -emit_16(1310); -emit_16(1244); -emit_16(1310); -emit_16(1243); -emit_16(1310); -emit_16(1244); -emit_16(1311); -emit_16(1245); -emit_16(1311); -emit_16(1244); -emit_16(1311); -emit_16(1245); -emit_16(1312); -emit_16(1246); -emit_16(1312); -emit_16(1245); -emit_16(1312); -emit_16(1246); -emit_16(1313); -emit_16(1247); -emit_16(1313); -emit_16(1246); -emit_16(1313); -emit_16(1247); -emit_16(1314); -emit_16(1248); -emit_16(1314); -emit_16(1247); -emit_16(1314); -emit_16(1248); -emit_16(1315); -emit_16(1249); -emit_16(1315); -emit_16(1248); -emit_16(1315); -emit_16(1249); -emit_16(1316); -emit_16(1250); -emit_16(1316); -emit_16(1249); -emit_16(1316); -emit_16(1250); -emit_16(1317); -emit_16(1251); -emit_16(1317); -emit_16(1250); -emit_16(1317); -emit_16(1251); -emit_16(1318); -emit_16(1252); -emit_16(1318); -emit_16(1251); -emit_16(1318); -emit_16(1252); -emit_16(1319); -emit_16(1253); -emit_16(1319); -emit_16(1252); -emit_16(1320); -emit_16(1254); -emit_16(1321); -emit_16(1255); -emit_16(1321); -emit_16(1254); -emit_16(1321); -emit_16(1255); -emit_16(1322); -emit_16(1256); -emit_16(1322); -emit_16(1255); -emit_16(1322); -emit_16(1256); -emit_16(1323); -emit_16(1257); -emit_16(1323); -emit_16(1256); -emit_16(1323); -emit_16(1257); -emit_16(1324); -emit_16(1258); -emit_16(1324); -emit_16(1257); -emit_16(1324); -emit_16(1258); -emit_16(1325); -emit_16(1259); -emit_16(1325); -emit_16(1258); -emit_16(1325); -emit_16(1259); -emit_16(1326); -emit_16(1260); -emit_16(1326); -emit_16(1259); -emit_16(1326); -emit_16(1260); -emit_16(1327); -emit_16(1261); -emit_16(1327); -emit_16(1260); -emit_16(1327); -emit_16(1261); -emit_16(1328); -emit_16(1262); -emit_16(1328); -emit_16(1261); -emit_16(1328); -emit_16(1262); -emit_16(1329); -emit_16(1263); -emit_16(1329); -emit_16(1262); -emit_16(1329); -emit_16(1263); -emit_16(1330); -emit_16(1264); -emit_16(1330); -emit_16(1263); -emit_16(1330); -emit_16(1264); -emit_16(1331); -emit_16(1265); -emit_16(1331); -emit_16(1264); -emit_16(1331); -emit_16(1265); -emit_16(1332); -emit_16(1266); -emit_16(1332); -emit_16(1265); -emit_16(1332); -emit_16(1266); -emit_16(1333); -emit_16(1267); -emit_16(1333); -emit_16(1266); -emit_16(1333); -emit_16(1267); -emit_16(1334); -emit_16(1268); -emit_16(1334); -emit_16(1267); -emit_16(1334); -emit_16(1268); -emit_16(1335); -emit_16(1269); -emit_16(1335); -emit_16(1268); -emit_16(1335); -emit_16(1269); -emit_16(1336); -emit_16(1270); -emit_16(1336); -emit_16(1269); -emit_16(1336); -emit_16(1270); -emit_16(1337); -emit_16(1271); -emit_16(1337); -emit_16(1270); -emit_16(1337); -emit_16(1271); -emit_16(1338); -emit_16(1272); -emit_16(1338); -emit_16(1271); -emit_16(1338); -emit_16(1272); -emit_16(1339); -emit_16(1273); -emit_16(1339); -emit_16(1272); -emit_16(1339); -emit_16(1273); -emit_16(1340); -emit_16(1274); -emit_16(1340); -emit_16(1273); -emit_16(1340); -emit_16(1274); -emit_16(1341); -emit_16(1275); -emit_16(1341); -emit_16(1274); -emit_16(1341); -emit_16(1275); -emit_16(1342); -emit_16(1276); -emit_16(1342); -emit_16(1275); -emit_16(1342); -emit_16(1276); -emit_16(1343); -emit_16(1277); -emit_16(1343); -emit_16(1276); -emit_16(1343); -emit_16(1277); -emit_16(1344); -emit_16(1278); -emit_16(1344); -emit_16(1277); -emit_16(1344); -emit_16(1278); -emit_16(1345); -emit_16(1279); -emit_16(1345); -emit_16(1278); -emit_16(1345); -emit_16(1279); -emit_16(1346); -emit_16(1280); -emit_16(1346); -emit_16(1279); -emit_16(1346); -emit_16(1280); -emit_16(1347); -emit_16(1281); -emit_16(1347); -emit_16(1280); -emit_16(1347); -emit_16(1281); -emit_16(1348); -emit_16(1282); -emit_16(1348); -emit_16(1281); -emit_16(1348); -emit_16(1282); -emit_16(1349); -emit_16(1283); -emit_16(1349); -emit_16(1282); -emit_16(1349); -emit_16(1283); -emit_16(1350); -emit_16(1284); -emit_16(1350); -emit_16(1283); -emit_16(1350); -emit_16(1284); -emit_16(1351); -emit_16(1285); -emit_16(1351); -emit_16(1284); -emit_16(1351); -emit_16(1285); -emit_16(1352); -emit_16(1286); -emit_16(1352); -emit_16(1285); -emit_16(1352); -emit_16(1286); -emit_16(1353); -emit_16(1287); -emit_16(1353); -emit_16(1286); -emit_16(1353); -emit_16(1287); -emit_16(1354); -emit_16(1288); -emit_16(1354); -emit_16(1287); -emit_16(1354); -emit_16(1288); -emit_16(1355); -emit_16(1289); -emit_16(1355); -emit_16(1288); -emit_16(1355); -emit_16(1289); -emit_16(1356); -emit_16(1290); -emit_16(1356); -emit_16(1289); -emit_16(1356); -emit_16(1290); -emit_16(1357); -emit_16(1291); -emit_16(1357); -emit_16(1290); -emit_16(1357); -emit_16(1291); -emit_16(1358); -emit_16(1292); -emit_16(1358); -emit_16(1291); -emit_16(1358); -emit_16(1292); -emit_16(1359); -emit_16(1293); -emit_16(1359); -emit_16(1292); -emit_16(1359); -emit_16(1293); -emit_16(1360); -emit_16(1294); -emit_16(1360); -emit_16(1293); -emit_16(1360); -emit_16(1294); -emit_16(1361); -emit_16(1295); -emit_16(1361); -emit_16(1294); -emit_16(1361); -emit_16(1295); -emit_16(1362); -emit_16(1296); -emit_16(1362); -emit_16(1295); -emit_16(1362); -emit_16(1296); -emit_16(1363); -emit_16(1297); -emit_16(1363); -emit_16(1296); -emit_16(1363); -emit_16(1297); -emit_16(1364); -emit_16(1298); -emit_16(1364); -emit_16(1297); -emit_16(1364); -emit_16(1298); -emit_16(1365); -emit_16(1299); -emit_16(1365); -emit_16(1298); -emit_16(1365); -emit_16(1299); -emit_16(1366); -emit_16(1300); -emit_16(1366); -emit_16(1299); -emit_16(1366); -emit_16(1300); -emit_16(1367); -emit_16(1301); -emit_16(1367); -emit_16(1300); -emit_16(1367); -emit_16(1301); -emit_16(1368); -emit_16(1302); -emit_16(1368); -emit_16(1301); -emit_16(1368); -emit_16(1302); -emit_16(1369); -emit_16(1303); -emit_16(1369); -emit_16(1302); -emit_16(1369); -emit_16(1303); -emit_16(1370); -emit_16(1304); -emit_16(1370); -emit_16(1303); -emit_16(1370); -emit_16(1304); -emit_16(1371); -emit_16(1305); -emit_16(1371); -emit_16(1304); -emit_16(1371); -emit_16(1305); -emit_16(1372); -emit_16(1306); -emit_16(1372); -emit_16(1305); -emit_16(1372); -emit_16(1306); -emit_16(1373); -emit_16(1307); -emit_16(1373); -emit_16(1306); -emit_16(1373); -emit_16(1307); -emit_16(1374); -emit_16(1308); -emit_16(1374); -emit_16(1307); -emit_16(1374); -emit_16(1308); -emit_16(1375); -emit_16(1309); -emit_16(1375); -emit_16(1308); -emit_16(1375); -emit_16(1309); -emit_16(1376); -emit_16(1310); -emit_16(1376); -emit_16(1309); -emit_16(1376); -emit_16(1310); -emit_16(1377); -emit_16(1311); -emit_16(1377); -emit_16(1310); -emit_16(1377); -emit_16(1311); -emit_16(1378); -emit_16(1312); -emit_16(1378); -emit_16(1311); -emit_16(1378); -emit_16(1312); -emit_16(1379); -emit_16(1313); -emit_16(1379); -emit_16(1312); -emit_16(1379); -emit_16(1313); -emit_16(1380); -emit_16(1314); -emit_16(1380); -emit_16(1313); -emit_16(1380); -emit_16(1314); -emit_16(1381); -emit_16(1315); -emit_16(1381); -emit_16(1314); -emit_16(1381); -emit_16(1315); -emit_16(1382); -emit_16(1316); -emit_16(1382); -emit_16(1315); -emit_16(1382); -emit_16(1316); -emit_16(1383); -emit_16(1317); -emit_16(1383); -emit_16(1316); -emit_16(1383); -emit_16(1317); -emit_16(1384); -emit_16(1318); -emit_16(1384); -emit_16(1317); -emit_16(1384); -emit_16(1318); -emit_16(1385); -emit_16(1319); -emit_16(1385); -emit_16(1318); -emit_16(1386); -emit_16(1320); -emit_16(1387); -emit_16(1321); -emit_16(1387); -emit_16(1320); -emit_16(1387); -emit_16(1321); -emit_16(1388); -emit_16(1322); -emit_16(1388); -emit_16(1321); -emit_16(1388); -emit_16(1322); -emit_16(1389); -emit_16(1323); -emit_16(1389); -emit_16(1322); -emit_16(1389); -emit_16(1323); -emit_16(1390); -emit_16(1324); -emit_16(1390); -emit_16(1323); -emit_16(1390); -emit_16(1324); -emit_16(1391); -emit_16(1325); -emit_16(1391); -emit_16(1324); -emit_16(1391); -emit_16(1325); -emit_16(1392); -emit_16(1326); -emit_16(1392); -emit_16(1325); -emit_16(1392); -emit_16(1326); -emit_16(1393); -emit_16(1327); -emit_16(1393); -emit_16(1326); -emit_16(1393); -emit_16(1327); -emit_16(1394); -emit_16(1328); -emit_16(1394); -emit_16(1327); -emit_16(1394); -emit_16(1328); -emit_16(1395); -emit_16(1329); -emit_16(1395); -emit_16(1328); -emit_16(1395); -emit_16(1329); -emit_16(1396); -emit_16(1330); -emit_16(1396); -emit_16(1329); -emit_16(1396); -emit_16(1330); -emit_16(1397); -emit_16(1331); -emit_16(1397); -emit_16(1330); -emit_16(1397); -emit_16(1331); -emit_16(1398); -emit_16(1332); -emit_16(1398); -emit_16(1331); -emit_16(1398); -emit_16(1332); -emit_16(1399); -emit_16(1333); -emit_16(1399); -emit_16(1332); -emit_16(1399); -emit_16(1333); -emit_16(1400); -emit_16(1334); -emit_16(1400); -emit_16(1333); -emit_16(1400); -emit_16(1334); -emit_16(1401); -emit_16(1335); -emit_16(1401); -emit_16(1334); -emit_16(1401); -emit_16(1335); -emit_16(1402); -emit_16(1336); -emit_16(1402); -emit_16(1335); -emit_16(1402); -emit_16(1336); -emit_16(1403); -emit_16(1337); -emit_16(1403); -emit_16(1336); -emit_16(1403); -emit_16(1337); -emit_16(1404); -emit_16(1338); -emit_16(1404); -emit_16(1337); -emit_16(1404); -emit_16(1338); -emit_16(1405); -emit_16(1339); -emit_16(1405); -emit_16(1338); -emit_16(1405); -emit_16(1339); -emit_16(1406); -emit_16(1340); -emit_16(1406); -emit_16(1339); -emit_16(1406); -emit_16(1340); -emit_16(1407); -emit_16(1341); -emit_16(1407); -emit_16(1340); -emit_16(1407); -emit_16(1341); -emit_16(1408); -emit_16(1342); -emit_16(1408); -emit_16(1341); -emit_16(1408); -emit_16(1342); -emit_16(1409); -emit_16(1343); -emit_16(1409); -emit_16(1342); -emit_16(1409); -emit_16(1343); -emit_16(1410); -emit_16(1344); -emit_16(1410); -emit_16(1343); -emit_16(1410); -emit_16(1344); -emit_16(1411); -emit_16(1345); -emit_16(1411); -emit_16(1344); -emit_16(1411); -emit_16(1345); -emit_16(1412); -emit_16(1346); -emit_16(1412); -emit_16(1345); -emit_16(1412); -emit_16(1346); -emit_16(1413); -emit_16(1347); -emit_16(1413); -emit_16(1346); -emit_16(1413); -emit_16(1347); -emit_16(1414); -emit_16(1348); -emit_16(1414); -emit_16(1347); -emit_16(1414); -emit_16(1348); -emit_16(1415); -emit_16(1349); -emit_16(1415); -emit_16(1348); -emit_16(1415); -emit_16(1349); -emit_16(1416); -emit_16(1350); -emit_16(1416); -emit_16(1349); -emit_16(1416); -emit_16(1350); -emit_16(1417); -emit_16(1351); -emit_16(1417); -emit_16(1350); -emit_16(1417); -emit_16(1351); -emit_16(1418); -emit_16(1352); -emit_16(1418); -emit_16(1351); -emit_16(1418); -emit_16(1352); -emit_16(1419); -emit_16(1353); -emit_16(1419); -emit_16(1352); -emit_16(1419); -emit_16(1353); -emit_16(1420); -emit_16(1354); -emit_16(1420); -emit_16(1353); -emit_16(1420); -emit_16(1354); -emit_16(1421); -emit_16(1355); -emit_16(1421); -emit_16(1354); -emit_16(1421); -emit_16(1355); -emit_16(1422); -emit_16(1356); -emit_16(1422); -emit_16(1355); -emit_16(1422); -emit_16(1356); -emit_16(1423); -emit_16(1357); -emit_16(1423); -emit_16(1356); -emit_16(1423); -emit_16(1357); -emit_16(1424); -emit_16(1358); -emit_16(1424); -emit_16(1357); -emit_16(1424); -emit_16(1358); -emit_16(1425); -emit_16(1359); -emit_16(1425); -emit_16(1358); -emit_16(1425); -emit_16(1359); -emit_16(1426); -emit_16(1360); -emit_16(1426); -emit_16(1359); -emit_16(1426); -emit_16(1360); -emit_16(1427); -emit_16(1361); -emit_16(1427); -emit_16(1360); -emit_16(1427); -emit_16(1361); -emit_16(1428); -emit_16(1362); -emit_16(1428); -emit_16(1361); -emit_16(1428); -emit_16(1362); -emit_16(1429); -emit_16(1363); -emit_16(1429); -emit_16(1362); -emit_16(1429); -emit_16(1363); -emit_16(1430); -emit_16(1364); -emit_16(1430); -emit_16(1363); -emit_16(1430); -emit_16(1364); -emit_16(1431); -emit_16(1365); -emit_16(1431); -emit_16(1364); -emit_16(1431); -emit_16(1365); -emit_16(1432); -emit_16(1366); -emit_16(1432); -emit_16(1365); -emit_16(1432); -emit_16(1366); -emit_16(1433); -emit_16(1367); -emit_16(1433); -emit_16(1366); -emit_16(1433); -emit_16(1367); -emit_16(1434); -emit_16(1368); -emit_16(1434); -emit_16(1367); -emit_16(1434); -emit_16(1368); -emit_16(1435); -emit_16(1369); -emit_16(1435); -emit_16(1368); -emit_16(1435); -emit_16(1369); -emit_16(1436); -emit_16(1370); -emit_16(1436); -emit_16(1369); -emit_16(1436); -emit_16(1370); -emit_16(1437); -emit_16(1371); -emit_16(1437); -emit_16(1370); -emit_16(1437); -emit_16(1371); -emit_16(1438); -emit_16(1372); -emit_16(1438); -emit_16(1371); -emit_16(1438); -emit_16(1372); -emit_16(1439); -emit_16(1373); -emit_16(1439); -emit_16(1372); -emit_16(1439); -emit_16(1373); -emit_16(1440); -emit_16(1374); -emit_16(1440); -emit_16(1373); -emit_16(1440); -emit_16(1374); -emit_16(1441); -emit_16(1375); -emit_16(1441); -emit_16(1374); -emit_16(1441); -emit_16(1375); -emit_16(1442); -emit_16(1376); -emit_16(1442); -emit_16(1375); -emit_16(1442); -emit_16(1376); -emit_16(1443); -emit_16(1377); -emit_16(1443); -emit_16(1376); -emit_16(1443); -emit_16(1377); -emit_16(1444); -emit_16(1378); -emit_16(1444); -emit_16(1377); -emit_16(1444); -emit_16(1378); -emit_16(1445); -emit_16(1379); -emit_16(1445); -emit_16(1378); -emit_16(1445); -emit_16(1379); -emit_16(1446); -emit_16(1380); -emit_16(1446); -emit_16(1379); -emit_16(1446); -emit_16(1380); -emit_16(1447); -emit_16(1381); -emit_16(1447); -emit_16(1380); -emit_16(1447); -emit_16(1381); -emit_16(1448); -emit_16(1382); -emit_16(1448); -emit_16(1381); -emit_16(1448); -emit_16(1382); -emit_16(1449); -emit_16(1383); -emit_16(1449); -emit_16(1382); -emit_16(1449); -emit_16(1383); -emit_16(1450); -emit_16(1384); -emit_16(1450); -emit_16(1383); -emit_16(1450); -emit_16(1384); -emit_16(1451); -emit_16(1385); -emit_16(1451); -emit_16(1384); -emit_16(1452); -emit_16(1386); -emit_16(1453); -emit_16(1387); -emit_16(1453); -emit_16(1386); -emit_16(1453); -emit_16(1387); -emit_16(1454); -emit_16(1388); -emit_16(1454); -emit_16(1387); -emit_16(1454); -emit_16(1388); -emit_16(1455); -emit_16(1389); -emit_16(1455); -emit_16(1388); -emit_16(1455); -emit_16(1389); -emit_16(1456); -emit_16(1390); -emit_16(1456); -emit_16(1389); -emit_16(1456); -emit_16(1390); -emit_16(1457); -emit_16(1391); -emit_16(1457); -emit_16(1390); -emit_16(1457); -emit_16(1391); -emit_16(1458); -emit_16(1392); -emit_16(1458); -emit_16(1391); -emit_16(1458); -emit_16(1392); -emit_16(1459); -emit_16(1393); -emit_16(1459); -emit_16(1392); -emit_16(1459); -emit_16(1393); -emit_16(1460); -emit_16(1394); -emit_16(1460); -emit_16(1393); -emit_16(1460); -emit_16(1394); -emit_16(1461); -emit_16(1395); -emit_16(1461); -emit_16(1394); -emit_16(1461); -emit_16(1395); -emit_16(1462); -emit_16(1396); -emit_16(1462); -emit_16(1395); -emit_16(1462); -emit_16(1396); -emit_16(1463); -emit_16(1397); -emit_16(1463); -emit_16(1396); -emit_16(1463); -emit_16(1397); -emit_16(1464); -emit_16(1398); -emit_16(1464); -emit_16(1397); -emit_16(1464); -emit_16(1398); -emit_16(1465); -emit_16(1399); -emit_16(1465); -emit_16(1398); -emit_16(1465); -emit_16(1399); -emit_16(1466); -emit_16(1400); -emit_16(1466); -emit_16(1399); -emit_16(1466); -emit_16(1400); -emit_16(1467); -emit_16(1401); -emit_16(1467); -emit_16(1400); -emit_16(1467); -emit_16(1401); -emit_16(1468); -emit_16(1402); -emit_16(1468); -emit_16(1401); -emit_16(1468); -emit_16(1402); -emit_16(1469); -emit_16(1403); -emit_16(1469); -emit_16(1402); -emit_16(1469); -emit_16(1403); -emit_16(1470); -emit_16(1404); -emit_16(1470); -emit_16(1403); -emit_16(1470); -emit_16(1404); -emit_16(1471); -emit_16(1405); -emit_16(1471); -emit_16(1404); -emit_16(1471); -emit_16(1405); -emit_16(1472); -emit_16(1406); -emit_16(1472); -emit_16(1405); -emit_16(1472); -emit_16(1406); -emit_16(1473); -emit_16(1407); -emit_16(1473); -emit_16(1406); -emit_16(1473); -emit_16(1407); -emit_16(1474); -emit_16(1408); -emit_16(1474); -emit_16(1407); -emit_16(1474); -emit_16(1408); -emit_16(1475); -emit_16(1409); -emit_16(1475); -emit_16(1408); -emit_16(1475); -emit_16(1409); -emit_16(1476); -emit_16(1410); -emit_16(1476); -emit_16(1409); -emit_16(1476); -emit_16(1410); -emit_16(1477); -emit_16(1411); -emit_16(1477); -emit_16(1410); -emit_16(1477); -emit_16(1411); -emit_16(1478); -emit_16(1412); -emit_16(1478); -emit_16(1411); -emit_16(1478); -emit_16(1412); -emit_16(1479); -emit_16(1413); -emit_16(1479); -emit_16(1412); -emit_16(1479); -emit_16(1413); -emit_16(1480); -emit_16(1414); -emit_16(1480); -emit_16(1413); -emit_16(1480); -emit_16(1414); -emit_16(1481); -emit_16(1415); -emit_16(1481); -emit_16(1414); -emit_16(1481); -emit_16(1415); -emit_16(1482); -emit_16(1416); -emit_16(1482); -emit_16(1415); -emit_16(1482); -emit_16(1416); -emit_16(1483); -emit_16(1417); -emit_16(1483); -emit_16(1416); -emit_16(1483); -emit_16(1417); -emit_16(1484); -emit_16(1418); -emit_16(1484); -emit_16(1417); -emit_16(1484); -emit_16(1418); -emit_16(1485); -emit_16(1419); -emit_16(1485); -emit_16(1418); -emit_16(1485); -emit_16(1419); -emit_16(1486); -emit_16(1420); -emit_16(1486); -emit_16(1419); -emit_16(1486); -emit_16(1420); -emit_16(1487); -emit_16(1421); -emit_16(1487); -emit_16(1420); -emit_16(1487); -emit_16(1421); -emit_16(1488); -emit_16(1422); -emit_16(1488); -emit_16(1421); -emit_16(1488); -emit_16(1422); -emit_16(1489); -emit_16(1423); -emit_16(1489); -emit_16(1422); -emit_16(1489); -emit_16(1423); -emit_16(1490); -emit_16(1424); -emit_16(1490); -emit_16(1423); -emit_16(1490); -emit_16(1424); -emit_16(1491); -emit_16(1425); -emit_16(1491); -emit_16(1424); -emit_16(1491); -emit_16(1425); -emit_16(1492); -emit_16(1426); -emit_16(1492); -emit_16(1425); -emit_16(1492); -emit_16(1426); -emit_16(1493); -emit_16(1427); -emit_16(1493); -emit_16(1426); -emit_16(1493); -emit_16(1427); -emit_16(1494); -emit_16(1428); -emit_16(1494); -emit_16(1427); -emit_16(1494); -emit_16(1428); -emit_16(1495); -emit_16(1429); -emit_16(1495); -emit_16(1428); -emit_16(1495); -emit_16(1429); -emit_16(1496); -emit_16(1430); -emit_16(1496); -emit_16(1429); -emit_16(1496); -emit_16(1430); -emit_16(1497); -emit_16(1431); -emit_16(1497); -emit_16(1430); -emit_16(1497); -emit_16(1431); -emit_16(1498); -emit_16(1432); -emit_16(1498); -emit_16(1431); -emit_16(1498); -emit_16(1432); -emit_16(1499); -emit_16(1433); -emit_16(1499); -emit_16(1432); -emit_16(1499); -emit_16(1433); -emit_16(1500); -emit_16(1434); -emit_16(1500); -emit_16(1433); -emit_16(1500); -emit_16(1434); -emit_16(1501); -emit_16(1435); -emit_16(1501); -emit_16(1434); -emit_16(1501); -emit_16(1435); -emit_16(1502); -emit_16(1436); -emit_16(1502); -emit_16(1435); -emit_16(1502); -emit_16(1436); -emit_16(1503); -emit_16(1437); -emit_16(1503); -emit_16(1436); -emit_16(1503); -emit_16(1437); -emit_16(1504); -emit_16(1438); -emit_16(1504); -emit_16(1437); -emit_16(1504); -emit_16(1438); -emit_16(1505); -emit_16(1439); -emit_16(1505); -emit_16(1438); -emit_16(1505); -emit_16(1439); -emit_16(1506); -emit_16(1440); -emit_16(1506); -emit_16(1439); -emit_16(1506); -emit_16(1440); -emit_16(1507); -emit_16(1441); -emit_16(1507); -emit_16(1440); -emit_16(1507); -emit_16(1441); -emit_16(1508); -emit_16(1442); -emit_16(1508); -emit_16(1441); -emit_16(1508); -emit_16(1442); -emit_16(1509); -emit_16(1443); -emit_16(1509); -emit_16(1442); -emit_16(1509); -emit_16(1443); -emit_16(1510); -emit_16(1444); -emit_16(1510); -emit_16(1443); -emit_16(1510); -emit_16(1444); -emit_16(1511); -emit_16(1445); -emit_16(1511); -emit_16(1444); -emit_16(1511); -emit_16(1445); -emit_16(1512); -emit_16(1446); -emit_16(1512); -emit_16(1445); -emit_16(1512); -emit_16(1446); -emit_16(1513); -emit_16(1447); -emit_16(1513); -emit_16(1446); -emit_16(1513); -emit_16(1447); -emit_16(1514); -emit_16(1448); -emit_16(1514); -emit_16(1447); -emit_16(1514); -emit_16(1448); -emit_16(1515); -emit_16(1449); -emit_16(1515); -emit_16(1448); -emit_16(1515); -emit_16(1449); -emit_16(1516); -emit_16(1450); -emit_16(1516); -emit_16(1449); -emit_16(1516); -emit_16(1450); -emit_16(1517); -emit_16(1451); -emit_16(1517); -emit_16(1450); -emit_16(1518); -emit_16(1452); -emit_16(1519); -emit_16(1453); -emit_16(1519); -emit_16(1452); -emit_16(1519); -emit_16(1453); -emit_16(1520); -emit_16(1454); -emit_16(1520); -emit_16(1453); -emit_16(1520); -emit_16(1454); -emit_16(1521); -emit_16(1455); -emit_16(1521); -emit_16(1454); -emit_16(1521); -emit_16(1455); -emit_16(1522); -emit_16(1456); -emit_16(1522); -emit_16(1455); -emit_16(1522); -emit_16(1456); -emit_16(1523); -emit_16(1457); -emit_16(1523); -emit_16(1456); -emit_16(1523); -emit_16(1457); -emit_16(1524); -emit_16(1458); -emit_16(1524); -emit_16(1457); -emit_16(1524); -emit_16(1458); -emit_16(1525); -emit_16(1459); -emit_16(1525); -emit_16(1458); -emit_16(1525); -emit_16(1459); -emit_16(1526); -emit_16(1460); -emit_16(1526); -emit_16(1459); -emit_16(1526); -emit_16(1460); -emit_16(1527); -emit_16(1461); -emit_16(1527); -emit_16(1460); -emit_16(1527); -emit_16(1461); -emit_16(1528); -emit_16(1462); -emit_16(1528); -emit_16(1461); -emit_16(1528); -emit_16(1462); -emit_16(1529); -emit_16(1463); -emit_16(1529); -emit_16(1462); -emit_16(1529); -emit_16(1463); -emit_16(1530); -emit_16(1464); -emit_16(1530); -emit_16(1463); -emit_16(1530); -emit_16(1464); -emit_16(1531); -emit_16(1465); -emit_16(1531); -emit_16(1464); -emit_16(1531); -emit_16(1465); -emit_16(1532); -emit_16(1466); -emit_16(1532); -emit_16(1465); -emit_16(1532); -emit_16(1466); -emit_16(1533); -emit_16(1467); -emit_16(1533); -emit_16(1466); -emit_16(1533); -emit_16(1467); -emit_16(1534); -emit_16(1468); -emit_16(1534); -emit_16(1467); -emit_16(1534); -emit_16(1468); -emit_16(1535); -emit_16(1469); -emit_16(1535); -emit_16(1468); -emit_16(1535); -emit_16(1469); -emit_16(1536); -emit_16(1470); -emit_16(1536); -emit_16(1469); -emit_16(1536); -emit_16(1470); -emit_16(1537); -emit_16(1471); -emit_16(1537); -emit_16(1470); -emit_16(1537); -emit_16(1471); -emit_16(1538); -emit_16(1472); -emit_16(1538); -emit_16(1471); -emit_16(1538); -emit_16(1472); -emit_16(1539); -emit_16(1473); -emit_16(1539); -emit_16(1472); -emit_16(1539); -emit_16(1473); -emit_16(1540); -emit_16(1474); -emit_16(1540); -emit_16(1473); -emit_16(1540); -emit_16(1474); -emit_16(1541); -emit_16(1475); -emit_16(1541); -emit_16(1474); -emit_16(1541); -emit_16(1475); -emit_16(1542); -emit_16(1476); -emit_16(1542); -emit_16(1475); -emit_16(1542); -emit_16(1476); -emit_16(1543); -emit_16(1477); -emit_16(1543); -emit_16(1476); -emit_16(1543); -emit_16(1477); -emit_16(1544); -emit_16(1478); -emit_16(1544); -emit_16(1477); -emit_16(1544); -emit_16(1478); -emit_16(1545); -emit_16(1479); -emit_16(1545); -emit_16(1478); -emit_16(1545); -emit_16(1479); -emit_16(1546); -emit_16(1480); -emit_16(1546); -emit_16(1479); -emit_16(1546); -emit_16(1480); -emit_16(1547); -emit_16(1481); -emit_16(1547); -emit_16(1480); -emit_16(1547); -emit_16(1481); -emit_16(1548); -emit_16(1482); -emit_16(1548); -emit_16(1481); -emit_16(1548); -emit_16(1482); -emit_16(1549); -emit_16(1483); -emit_16(1549); -emit_16(1482); -emit_16(1549); -emit_16(1483); -emit_16(1550); -emit_16(1484); -emit_16(1550); -emit_16(1483); -emit_16(1550); -emit_16(1484); -emit_16(1551); -emit_16(1485); -emit_16(1551); -emit_16(1484); -emit_16(1551); -emit_16(1485); -emit_16(1552); -emit_16(1486); -emit_16(1552); -emit_16(1485); -emit_16(1552); -emit_16(1486); -emit_16(1553); -emit_16(1487); -emit_16(1553); -emit_16(1486); -emit_16(1553); -emit_16(1487); -emit_16(1554); -emit_16(1488); -emit_16(1554); -emit_16(1487); -emit_16(1554); -emit_16(1488); -emit_16(1555); -emit_16(1489); -emit_16(1555); -emit_16(1488); -emit_16(1555); -emit_16(1489); -emit_16(1556); -emit_16(1490); -emit_16(1556); -emit_16(1489); -emit_16(1556); -emit_16(1490); -emit_16(1557); -emit_16(1491); -emit_16(1557); -emit_16(1490); -emit_16(1557); -emit_16(1491); -emit_16(1558); -emit_16(1492); -emit_16(1558); -emit_16(1491); -emit_16(1558); -emit_16(1492); -emit_16(1559); -emit_16(1493); -emit_16(1559); -emit_16(1492); -emit_16(1559); -emit_16(1493); -emit_16(1560); -emit_16(1494); -emit_16(1560); -emit_16(1493); -emit_16(1560); -emit_16(1494); -emit_16(1561); -emit_16(1495); -emit_16(1561); -emit_16(1494); -emit_16(1561); -emit_16(1495); -emit_16(1562); -emit_16(1496); -emit_16(1562); -emit_16(1495); -emit_16(1562); -emit_16(1496); -emit_16(1563); -emit_16(1497); -emit_16(1563); -emit_16(1496); -emit_16(1563); -emit_16(1497); -emit_16(1564); -emit_16(1498); -emit_16(1564); -emit_16(1497); -emit_16(1564); -emit_16(1498); -emit_16(1565); -emit_16(1499); -emit_16(1565); -emit_16(1498); -emit_16(1565); -emit_16(1499); -emit_16(1566); -emit_16(1500); -emit_16(1566); -emit_16(1499); -emit_16(1566); -emit_16(1500); -emit_16(1567); -emit_16(1501); -emit_16(1567); -emit_16(1500); -emit_16(1567); -emit_16(1501); -emit_16(1568); -emit_16(1502); -emit_16(1568); -emit_16(1501); -emit_16(1568); -emit_16(1502); -emit_16(1569); -emit_16(1503); -emit_16(1569); -emit_16(1502); -emit_16(1569); -emit_16(1503); -emit_16(1570); -emit_16(1504); -emit_16(1570); -emit_16(1503); -emit_16(1570); -emit_16(1504); -emit_16(1571); -emit_16(1505); -emit_16(1571); -emit_16(1504); -emit_16(1571); -emit_16(1505); -emit_16(1572); -emit_16(1506); -emit_16(1572); -emit_16(1505); -emit_16(1572); -emit_16(1506); -emit_16(1573); -emit_16(1507); -emit_16(1573); -emit_16(1506); -emit_16(1573); -emit_16(1507); -emit_16(1574); -emit_16(1508); -emit_16(1574); -emit_16(1507); -emit_16(1574); -emit_16(1508); -emit_16(1575); -emit_16(1509); -emit_16(1575); -emit_16(1508); -emit_16(1575); -emit_16(1509); -emit_16(1576); -emit_16(1510); -emit_16(1576); -emit_16(1509); -emit_16(1576); -emit_16(1510); -emit_16(1577); -emit_16(1511); -emit_16(1577); -emit_16(1510); -emit_16(1577); -emit_16(1511); -emit_16(1578); -emit_16(1512); -emit_16(1578); -emit_16(1511); -emit_16(1578); -emit_16(1512); -emit_16(1579); -emit_16(1513); -emit_16(1579); -emit_16(1512); -emit_16(1579); -emit_16(1513); -emit_16(1580); -emit_16(1514); -emit_16(1580); -emit_16(1513); -emit_16(1580); -emit_16(1514); -emit_16(1581); -emit_16(1515); -emit_16(1581); -emit_16(1514); -emit_16(1581); -emit_16(1515); -emit_16(1582); -emit_16(1516); -emit_16(1582); -emit_16(1515); -emit_16(1582); -emit_16(1516); -emit_16(1583); -emit_16(1517); -emit_16(1583); -emit_16(1516); -emit_16(1584); -emit_16(1518); -emit_16(1585); -emit_16(1519); -emit_16(1585); -emit_16(1518); -emit_16(1585); -emit_16(1519); -emit_16(1586); -emit_16(1520); -emit_16(1586); -emit_16(1519); -emit_16(1586); -emit_16(1520); -emit_16(1587); -emit_16(1521); -emit_16(1587); -emit_16(1520); -emit_16(1587); -emit_16(1521); -emit_16(1588); -emit_16(1522); -emit_16(1588); -emit_16(1521); -emit_16(1588); -emit_16(1522); -emit_16(1589); -emit_16(1523); -emit_16(1589); -emit_16(1522); -emit_16(1589); -emit_16(1523); -emit_16(1590); -emit_16(1524); -emit_16(1590); -emit_16(1523); -emit_16(1590); -emit_16(1524); -emit_16(1591); -emit_16(1525); -emit_16(1591); -emit_16(1524); -emit_16(1591); -emit_16(1525); -emit_16(1592); -emit_16(1526); -emit_16(1592); -emit_16(1525); -emit_16(1592); -emit_16(1526); -emit_16(1593); -emit_16(1527); -emit_16(1593); -emit_16(1526); -emit_16(1593); -emit_16(1527); -emit_16(1594); -emit_16(1528); -emit_16(1594); -emit_16(1527); -emit_16(1594); -emit_16(1528); -emit_16(1595); -emit_16(1529); -emit_16(1595); -emit_16(1528); -emit_16(1595); -emit_16(1529); -emit_16(1596); -emit_16(1530); -emit_16(1596); -emit_16(1529); -emit_16(1596); -emit_16(1530); -emit_16(1597); -emit_16(1531); -emit_16(1597); -emit_16(1530); -emit_16(1597); -emit_16(1531); -emit_16(1598); -emit_16(1532); -emit_16(1598); -emit_16(1531); -emit_16(1598); -emit_16(1532); -emit_16(1599); -emit_16(1533); -emit_16(1599); -emit_16(1532); -emit_16(1599); -emit_16(1533); -emit_16(1600); -emit_16(1534); -emit_16(1600); -emit_16(1533); -emit_16(1600); -emit_16(1534); -emit_16(1601); -emit_16(1535); -emit_16(1601); -emit_16(1534); -emit_16(1601); -emit_16(1535); -emit_16(1602); -emit_16(1536); -emit_16(1602); -emit_16(1535); -emit_16(1602); -emit_16(1536); -emit_16(1603); -emit_16(1537); -emit_16(1603); -emit_16(1536); -emit_16(1603); -emit_16(1537); -emit_16(1604); -emit_16(1538); -emit_16(1604); -emit_16(1537); -emit_16(1604); -emit_16(1538); -emit_16(1605); -emit_16(1539); -emit_16(1605); -emit_16(1538); -emit_16(1605); -emit_16(1539); -emit_16(1606); -emit_16(1540); -emit_16(1606); -emit_16(1539); -emit_16(1606); -emit_16(1540); -emit_16(1607); -emit_16(1541); -emit_16(1607); -emit_16(1540); -emit_16(1607); -emit_16(1541); -emit_16(1608); -emit_16(1542); -emit_16(1608); -emit_16(1541); -emit_16(1608); -emit_16(1542); -emit_16(1609); -emit_16(1543); -emit_16(1609); -emit_16(1542); -emit_16(1609); -emit_16(1543); -emit_16(1610); -emit_16(1544); -emit_16(1610); -emit_16(1543); -emit_16(1610); -emit_16(1544); -emit_16(1611); -emit_16(1545); -emit_16(1611); -emit_16(1544); -emit_16(1611); -emit_16(1545); -emit_16(1612); -emit_16(1546); -emit_16(1612); -emit_16(1545); -emit_16(1612); -emit_16(1546); -emit_16(1613); -emit_16(1547); -emit_16(1613); -emit_16(1546); -emit_16(1613); -emit_16(1547); -emit_16(1614); -emit_16(1548); -emit_16(1614); -emit_16(1547); -emit_16(1614); -emit_16(1548); -emit_16(1615); -emit_16(1549); -emit_16(1615); -emit_16(1548); -emit_16(1615); -emit_16(1549); -emit_16(1616); -emit_16(1550); -emit_16(1616); -emit_16(1549); -emit_16(1616); -emit_16(1550); -emit_16(1617); -emit_16(1551); -emit_16(1617); -emit_16(1550); -emit_16(1617); -emit_16(1551); -emit_16(1618); -emit_16(1552); -emit_16(1618); -emit_16(1551); -emit_16(1618); -emit_16(1552); -emit_16(1619); -emit_16(1553); -emit_16(1619); -emit_16(1552); -emit_16(1619); -emit_16(1553); -emit_16(1620); -emit_16(1554); -emit_16(1620); -emit_16(1553); -emit_16(1620); -emit_16(1554); -emit_16(1621); -emit_16(1555); -emit_16(1621); -emit_16(1554); -emit_16(1621); -emit_16(1555); -emit_16(1622); -emit_16(1556); -emit_16(1622); -emit_16(1555); -emit_16(1622); -emit_16(1556); -emit_16(1623); -emit_16(1557); -emit_16(1623); -emit_16(1556); -emit_16(1623); -emit_16(1557); -emit_16(1624); -emit_16(1558); -emit_16(1624); -emit_16(1557); -emit_16(1624); -emit_16(1558); -emit_16(1625); -emit_16(1559); -emit_16(1625); -emit_16(1558); -emit_16(1625); -emit_16(1559); -emit_16(1626); -emit_16(1560); -emit_16(1626); -emit_16(1559); -emit_16(1626); -emit_16(1560); -emit_16(1627); -emit_16(1561); -emit_16(1627); -emit_16(1560); -emit_16(1627); -emit_16(1561); -emit_16(1628); -emit_16(1562); -emit_16(1628); -emit_16(1561); -emit_16(1628); -emit_16(1562); -emit_16(1629); -emit_16(1563); -emit_16(1629); -emit_16(1562); -emit_16(1629); -emit_16(1563); -emit_16(1630); -emit_16(1564); -emit_16(1630); -emit_16(1563); -emit_16(1630); -emit_16(1564); -emit_16(1631); -emit_16(1565); -emit_16(1631); -emit_16(1564); -emit_16(1631); -emit_16(1565); -emit_16(1632); -emit_16(1566); -emit_16(1632); -emit_16(1565); -emit_16(1632); -emit_16(1566); -emit_16(1633); -emit_16(1567); -emit_16(1633); -emit_16(1566); -emit_16(1633); -emit_16(1567); -emit_16(1634); -emit_16(1568); -emit_16(1634); -emit_16(1567); -emit_16(1634); -emit_16(1568); -emit_16(1635); -emit_16(1569); -emit_16(1635); -emit_16(1568); -emit_16(1635); -emit_16(1569); -emit_16(1636); -emit_16(1570); -emit_16(1636); -emit_16(1569); -emit_16(1636); -emit_16(1570); -emit_16(1637); -emit_16(1571); -emit_16(1637); -emit_16(1570); -emit_16(1637); -emit_16(1571); -emit_16(1638); -emit_16(1572); -emit_16(1638); -emit_16(1571); -emit_16(1638); -emit_16(1572); -emit_16(1639); -emit_16(1573); -emit_16(1639); -emit_16(1572); -emit_16(1639); -emit_16(1573); -emit_16(1640); -emit_16(1574); -emit_16(1640); -emit_16(1573); -emit_16(1640); -emit_16(1574); -emit_16(1641); -emit_16(1575); -emit_16(1641); -emit_16(1574); -emit_16(1641); -emit_16(1575); -emit_16(1642); -emit_16(1576); -emit_16(1642); -emit_16(1575); -emit_16(1642); -emit_16(1576); -emit_16(1643); -emit_16(1577); -emit_16(1643); -emit_16(1576); -emit_16(1643); -emit_16(1577); -emit_16(1644); -emit_16(1578); -emit_16(1644); -emit_16(1577); -emit_16(1644); -emit_16(1578); -emit_16(1645); -emit_16(1579); -emit_16(1645); -emit_16(1578); -emit_16(1645); -emit_16(1579); -emit_16(1646); -emit_16(1580); -emit_16(1646); -emit_16(1579); -emit_16(1646); -emit_16(1580); -emit_16(1647); -emit_16(1581); -emit_16(1647); -emit_16(1580); -emit_16(1647); -emit_16(1581); -emit_16(1648); -emit_16(1582); -emit_16(1648); -emit_16(1581); -emit_16(1648); -emit_16(1582); -emit_16(1649); -emit_16(1583); -emit_16(1649); -emit_16(1582); -emit_16(1650); -emit_16(1584); -emit_16(1651); -emit_16(1585); -emit_16(1651); -emit_16(1584); -emit_16(1651); -emit_16(1585); -emit_16(1652); -emit_16(1586); -emit_16(1652); -emit_16(1585); -emit_16(1652); -emit_16(1586); -emit_16(1653); -emit_16(1587); -emit_16(1653); -emit_16(1586); -emit_16(1653); -emit_16(1587); -emit_16(1654); -emit_16(1588); -emit_16(1654); -emit_16(1587); -emit_16(1654); -emit_16(1588); -emit_16(1655); -emit_16(1589); -emit_16(1655); -emit_16(1588); -emit_16(1655); -emit_16(1589); -emit_16(1656); -emit_16(1590); -emit_16(1656); -emit_16(1589); -emit_16(1656); -emit_16(1590); -emit_16(1657); -emit_16(1591); -emit_16(1657); -emit_16(1590); -emit_16(1657); -emit_16(1591); -emit_16(1658); -emit_16(1592); -emit_16(1658); -emit_16(1591); -emit_16(1658); -emit_16(1592); -emit_16(1659); -emit_16(1593); -emit_16(1659); -emit_16(1592); -emit_16(1659); -emit_16(1593); -emit_16(1660); -emit_16(1594); -emit_16(1660); -emit_16(1593); -emit_16(1660); -emit_16(1594); -emit_16(1661); -emit_16(1595); -emit_16(1661); -emit_16(1594); -emit_16(1661); -emit_16(1595); -emit_16(1662); -emit_16(1596); -emit_16(1662); -emit_16(1595); -emit_16(1662); -emit_16(1596); -emit_16(1663); -emit_16(1597); -emit_16(1663); -emit_16(1596); -emit_16(1663); -emit_16(1597); -emit_16(1664); -emit_16(1598); -emit_16(1664); -emit_16(1597); -emit_16(1664); -emit_16(1598); -emit_16(1665); -emit_16(1599); -emit_16(1665); -emit_16(1598); -emit_16(1665); -emit_16(1599); -emit_16(1666); -emit_16(1600); -emit_16(1666); -emit_16(1599); -emit_16(1666); -emit_16(1600); -emit_16(1667); -emit_16(1601); -emit_16(1667); -emit_16(1600); -emit_16(1667); -emit_16(1601); -emit_16(1668); -emit_16(1602); -emit_16(1668); -emit_16(1601); -emit_16(1668); -emit_16(1602); -emit_16(1669); -emit_16(1603); -emit_16(1669); -emit_16(1602); -emit_16(1669); -emit_16(1603); -emit_16(1670); -emit_16(1604); -emit_16(1670); -emit_16(1603); -emit_16(1670); -emit_16(1604); -emit_16(1671); -emit_16(1605); -emit_16(1671); -emit_16(1604); -emit_16(1671); -emit_16(1605); -emit_16(1672); -emit_16(1606); -emit_16(1672); -emit_16(1605); -emit_16(1672); -emit_16(1606); -emit_16(1673); -emit_16(1607); -emit_16(1673); -emit_16(1606); -emit_16(1673); -emit_16(1607); -emit_16(1674); -emit_16(1608); -emit_16(1674); -emit_16(1607); -emit_16(1674); -emit_16(1608); -emit_16(1675); -emit_16(1609); -emit_16(1675); -emit_16(1608); -emit_16(1675); -emit_16(1609); -emit_16(1676); -emit_16(1610); -emit_16(1676); -emit_16(1609); -emit_16(1676); -emit_16(1610); -emit_16(1677); -emit_16(1611); -emit_16(1677); -emit_16(1610); -emit_16(1677); -emit_16(1611); -emit_16(1678); -emit_16(1612); -emit_16(1678); -emit_16(1611); -emit_16(1678); -emit_16(1612); -emit_16(1679); -emit_16(1613); -emit_16(1679); -emit_16(1612); -emit_16(1679); -emit_16(1613); -emit_16(1680); -emit_16(1614); -emit_16(1680); -emit_16(1613); -emit_16(1680); -emit_16(1614); -emit_16(1681); -emit_16(1615); -emit_16(1681); -emit_16(1614); -emit_16(1681); -emit_16(1615); -emit_16(1682); -emit_16(1616); -emit_16(1682); -emit_16(1615); -emit_16(1682); -emit_16(1616); -emit_16(1683); -emit_16(1617); -emit_16(1683); -emit_16(1616); -emit_16(1683); -emit_16(1617); -emit_16(1684); -emit_16(1618); -emit_16(1684); -emit_16(1617); -emit_16(1684); -emit_16(1618); -emit_16(1685); -emit_16(1619); -emit_16(1685); -emit_16(1618); -emit_16(1685); -emit_16(1619); -emit_16(1686); -emit_16(1620); -emit_16(1686); -emit_16(1619); -emit_16(1686); -emit_16(1620); -emit_16(1687); -emit_16(1621); -emit_16(1687); -emit_16(1620); -emit_16(1687); -emit_16(1621); -emit_16(1688); -emit_16(1622); -emit_16(1688); -emit_16(1621); -emit_16(1688); -emit_16(1622); -emit_16(1689); -emit_16(1623); -emit_16(1689); -emit_16(1622); -emit_16(1689); -emit_16(1623); -emit_16(1690); -emit_16(1624); -emit_16(1690); -emit_16(1623); -emit_16(1690); -emit_16(1624); -emit_16(1691); -emit_16(1625); -emit_16(1691); -emit_16(1624); -emit_16(1691); -emit_16(1625); -emit_16(1692); -emit_16(1626); -emit_16(1692); -emit_16(1625); -emit_16(1692); -emit_16(1626); -emit_16(1693); -emit_16(1627); -emit_16(1693); -emit_16(1626); -emit_16(1693); -emit_16(1627); -emit_16(1694); -emit_16(1628); -emit_16(1694); -emit_16(1627); -emit_16(1694); -emit_16(1628); -emit_16(1695); -emit_16(1629); -emit_16(1695); -emit_16(1628); -emit_16(1695); -emit_16(1629); -emit_16(1696); -emit_16(1630); -emit_16(1696); -emit_16(1629); -emit_16(1696); -emit_16(1630); -emit_16(1697); -emit_16(1631); -emit_16(1697); -emit_16(1630); -emit_16(1697); -emit_16(1631); -emit_16(1698); -emit_16(1632); -emit_16(1698); -emit_16(1631); -emit_16(1698); -emit_16(1632); -emit_16(1699); -emit_16(1633); -emit_16(1699); -emit_16(1632); -emit_16(1699); -emit_16(1633); -emit_16(1700); -emit_16(1634); -emit_16(1700); -emit_16(1633); -emit_16(1700); -emit_16(1634); -emit_16(1701); -emit_16(1635); -emit_16(1701); -emit_16(1634); -emit_16(1701); -emit_16(1635); -emit_16(1702); -emit_16(1636); -emit_16(1702); -emit_16(1635); -emit_16(1702); -emit_16(1636); -emit_16(1703); -emit_16(1637); -emit_16(1703); -emit_16(1636); -emit_16(1703); -emit_16(1637); -emit_16(1704); -emit_16(1638); -emit_16(1704); -emit_16(1637); -emit_16(1704); -emit_16(1638); -emit_16(1705); -emit_16(1639); -emit_16(1705); -emit_16(1638); -emit_16(1705); -emit_16(1639); -emit_16(1706); -emit_16(1640); -emit_16(1706); -emit_16(1639); -emit_16(1706); -emit_16(1640); -emit_16(1707); -emit_16(1641); -emit_16(1707); -emit_16(1640); -emit_16(1707); -emit_16(1641); -emit_16(1708); -emit_16(1642); -emit_16(1708); -emit_16(1641); -emit_16(1708); -emit_16(1642); -emit_16(1709); -emit_16(1643); -emit_16(1709); -emit_16(1642); -emit_16(1709); -emit_16(1643); -emit_16(1710); -emit_16(1644); -emit_16(1710); -emit_16(1643); -emit_16(1710); -emit_16(1644); -emit_16(1711); -emit_16(1645); -emit_16(1711); -emit_16(1644); -emit_16(1711); -emit_16(1645); -emit_16(1712); -emit_16(1646); -emit_16(1712); -emit_16(1645); -emit_16(1712); -emit_16(1646); -emit_16(1713); -emit_16(1647); -emit_16(1713); -emit_16(1646); -emit_16(1713); -emit_16(1647); -emit_16(1714); -emit_16(1648); -emit_16(1714); -emit_16(1647); -emit_16(1714); -emit_16(1648); -emit_16(1715); -emit_16(1649); -emit_16(1715); -emit_16(1648); -emit_16(1716); -emit_16(1650); -emit_16(1717); -emit_16(1651); -emit_16(1717); -emit_16(1650); -emit_16(1717); -emit_16(1651); -emit_16(1718); -emit_16(1652); -emit_16(1718); -emit_16(1651); -emit_16(1718); -emit_16(1652); -emit_16(1719); -emit_16(1653); -emit_16(1719); -emit_16(1652); -emit_16(1719); -emit_16(1653); -emit_16(1720); -emit_16(1654); -emit_16(1720); -emit_16(1653); -emit_16(1720); -emit_16(1654); -emit_16(1721); -emit_16(1655); -emit_16(1721); -emit_16(1654); -emit_16(1721); -emit_16(1655); -emit_16(1722); -emit_16(1656); -emit_16(1722); -emit_16(1655); -emit_16(1722); -emit_16(1656); -emit_16(1723); -emit_16(1657); -emit_16(1723); -emit_16(1656); -emit_16(1723); -emit_16(1657); -emit_16(1724); -emit_16(1658); -emit_16(1724); -emit_16(1657); -emit_16(1724); -emit_16(1658); -emit_16(1725); -emit_16(1659); -emit_16(1725); -emit_16(1658); -emit_16(1725); -emit_16(1659); -emit_16(1726); -emit_16(1660); -emit_16(1726); -emit_16(1659); -emit_16(1726); -emit_16(1660); -emit_16(1727); -emit_16(1661); -emit_16(1727); -emit_16(1660); -emit_16(1727); -emit_16(1661); -emit_16(1728); -emit_16(1662); -emit_16(1728); -emit_16(1661); -emit_16(1728); -emit_16(1662); -emit_16(1729); -emit_16(1663); -emit_16(1729); -emit_16(1662); -emit_16(1729); -emit_16(1663); -emit_16(1730); -emit_16(1664); -emit_16(1730); -emit_16(1663); -emit_16(1730); -emit_16(1664); -emit_16(1731); -emit_16(1665); -emit_16(1731); -emit_16(1664); -emit_16(1731); -emit_16(1665); -emit_16(1732); -emit_16(1666); -emit_16(1732); -emit_16(1665); -emit_16(1732); -emit_16(1666); -emit_16(1733); -emit_16(1667); -emit_16(1733); -emit_16(1666); -emit_16(1733); -emit_16(1667); -emit_16(1734); -emit_16(1668); -emit_16(1734); -emit_16(1667); -emit_16(1734); -emit_16(1668); -emit_16(1735); -emit_16(1669); -emit_16(1735); -emit_16(1668); -emit_16(1735); -emit_16(1669); -emit_16(1736); -emit_16(1670); -emit_16(1736); -emit_16(1669); -emit_16(1736); -emit_16(1670); -emit_16(1737); -emit_16(1671); -emit_16(1737); -emit_16(1670); -emit_16(1737); -emit_16(1671); -emit_16(1738); -emit_16(1672); -emit_16(1738); -emit_16(1671); -emit_16(1738); -emit_16(1672); -emit_16(1739); -emit_16(1673); -emit_16(1739); -emit_16(1672); -emit_16(1739); -emit_16(1673); -emit_16(1740); -emit_16(1674); -emit_16(1740); -emit_16(1673); -emit_16(1740); -emit_16(1674); -emit_16(1741); -emit_16(1675); -emit_16(1741); -emit_16(1674); -emit_16(1741); -emit_16(1675); -emit_16(1742); -emit_16(1676); -emit_16(1742); -emit_16(1675); -emit_16(1742); -emit_16(1676); -emit_16(1743); -emit_16(1677); -emit_16(1743); -emit_16(1676); -emit_16(1743); -emit_16(1677); -emit_16(1744); -emit_16(1678); -emit_16(1744); -emit_16(1677); -emit_16(1744); -emit_16(1678); -emit_16(1745); -emit_16(1679); -emit_16(1745); -emit_16(1678); -emit_16(1745); -emit_16(1679); -emit_16(1746); -emit_16(1680); -emit_16(1746); -emit_16(1679); -emit_16(1746); -emit_16(1680); -emit_16(1747); -emit_16(1681); -emit_16(1747); -emit_16(1680); -emit_16(1747); -emit_16(1681); -emit_16(1748); -emit_16(1682); -emit_16(1748); -emit_16(1681); -emit_16(1748); -emit_16(1682); -emit_16(1749); -emit_16(1683); -emit_16(1749); -emit_16(1682); -emit_16(1749); -emit_16(1683); -emit_16(1750); -emit_16(1684); -emit_16(1750); -emit_16(1683); -emit_16(1750); -emit_16(1684); -emit_16(1751); -emit_16(1685); -emit_16(1751); -emit_16(1684); -emit_16(1751); -emit_16(1685); -emit_16(1752); -emit_16(1686); -emit_16(1752); -emit_16(1685); -emit_16(1752); -emit_16(1686); -emit_16(1753); -emit_16(1687); -emit_16(1753); -emit_16(1686); -emit_16(1753); -emit_16(1687); -emit_16(1754); -emit_16(1688); -emit_16(1754); -emit_16(1687); -emit_16(1754); -emit_16(1688); -emit_16(1755); -emit_16(1689); -emit_16(1755); -emit_16(1688); -emit_16(1755); -emit_16(1689); -emit_16(1756); -emit_16(1690); -emit_16(1756); -emit_16(1689); -emit_16(1756); -emit_16(1690); -emit_16(1757); -emit_16(1691); -emit_16(1757); -emit_16(1690); -emit_16(1757); -emit_16(1691); -emit_16(1758); -emit_16(1692); -emit_16(1758); -emit_16(1691); -emit_16(1758); -emit_16(1692); -emit_16(1759); -emit_16(1693); -emit_16(1759); -emit_16(1692); -emit_16(1759); -emit_16(1693); -emit_16(1760); -emit_16(1694); -emit_16(1760); -emit_16(1693); -emit_16(1760); -emit_16(1694); -emit_16(1761); -emit_16(1695); -emit_16(1761); -emit_16(1694); -emit_16(1761); -emit_16(1695); -emit_16(1762); -emit_16(1696); -emit_16(1762); -emit_16(1695); -emit_16(1762); -emit_16(1696); -emit_16(1763); -emit_16(1697); -emit_16(1763); -emit_16(1696); -emit_16(1763); -emit_16(1697); -emit_16(1764); -emit_16(1698); -emit_16(1764); -emit_16(1697); -emit_16(1764); -emit_16(1698); -emit_16(1765); -emit_16(1699); -emit_16(1765); -emit_16(1698); -emit_16(1765); -emit_16(1699); -emit_16(1766); -emit_16(1700); -emit_16(1766); -emit_16(1699); -emit_16(1766); -emit_16(1700); -emit_16(1767); -emit_16(1701); -emit_16(1767); -emit_16(1700); -emit_16(1767); -emit_16(1701); -emit_16(1768); -emit_16(1702); -emit_16(1768); -emit_16(1701); -emit_16(1768); -emit_16(1702); -emit_16(1769); -emit_16(1703); -emit_16(1769); -emit_16(1702); -emit_16(1769); -emit_16(1703); -emit_16(1770); -emit_16(1704); -emit_16(1770); -emit_16(1703); -emit_16(1770); -emit_16(1704); -emit_16(1771); -emit_16(1705); -emit_16(1771); -emit_16(1704); -emit_16(1771); -emit_16(1705); -emit_16(1772); -emit_16(1706); -emit_16(1772); -emit_16(1705); -emit_16(1772); -emit_16(1706); -emit_16(1773); -emit_16(1707); -emit_16(1773); -emit_16(1706); -emit_16(1773); -emit_16(1707); -emit_16(1774); -emit_16(1708); -emit_16(1774); -emit_16(1707); -emit_16(1774); -emit_16(1708); -emit_16(1775); -emit_16(1709); -emit_16(1775); -emit_16(1708); -emit_16(1775); -emit_16(1709); -emit_16(1776); -emit_16(1710); -emit_16(1776); -emit_16(1709); -emit_16(1776); -emit_16(1710); -emit_16(1777); -emit_16(1711); -emit_16(1777); -emit_16(1710); -emit_16(1777); -emit_16(1711); -emit_16(1778); -emit_16(1712); -emit_16(1778); -emit_16(1711); -emit_16(1778); -emit_16(1712); -emit_16(1779); -emit_16(1713); -emit_16(1779); -emit_16(1712); -emit_16(1779); -emit_16(1713); -emit_16(1780); -emit_16(1714); -emit_16(1780); -emit_16(1713); -emit_16(1780); -emit_16(1714); -emit_16(1781); -emit_16(1715); -emit_16(1781); -emit_16(1714); -emit_16(1782); -emit_16(1716); -emit_16(1783); -emit_16(1717); -emit_16(1783); -emit_16(1716); -emit_16(1783); -emit_16(1717); -emit_16(1784); -emit_16(1718); -emit_16(1784); -emit_16(1717); -emit_16(1784); -emit_16(1718); -emit_16(1785); -emit_16(1719); -emit_16(1785); -emit_16(1718); -emit_16(1785); -emit_16(1719); -emit_16(1786); -emit_16(1720); -emit_16(1786); -emit_16(1719); -emit_16(1786); -emit_16(1720); -emit_16(1787); -emit_16(1721); -emit_16(1787); -emit_16(1720); -emit_16(1787); -emit_16(1721); -emit_16(1788); -emit_16(1722); -emit_16(1788); -emit_16(1721); -emit_16(1788); -emit_16(1722); -emit_16(1789); -emit_16(1723); -emit_16(1789); -emit_16(1722); -emit_16(1789); -emit_16(1723); -emit_16(1790); -emit_16(1724); -emit_16(1790); -emit_16(1723); -emit_16(1790); -emit_16(1724); -emit_16(1791); -emit_16(1725); -emit_16(1791); -emit_16(1724); -emit_16(1791); -emit_16(1725); -emit_16(1792); -emit_16(1726); -emit_16(1792); -emit_16(1725); -emit_16(1792); -emit_16(1726); -emit_16(1793); -emit_16(1727); -emit_16(1793); -emit_16(1726); -emit_16(1793); -emit_16(1727); -emit_16(1794); -emit_16(1728); -emit_16(1794); -emit_16(1727); -emit_16(1794); -emit_16(1728); -emit_16(1795); -emit_16(1729); -emit_16(1795); -emit_16(1728); -emit_16(1795); -emit_16(1729); -emit_16(1796); -emit_16(1730); -emit_16(1796); -emit_16(1729); -emit_16(1796); -emit_16(1730); -emit_16(1797); -emit_16(1731); -emit_16(1797); -emit_16(1730); -emit_16(1797); -emit_16(1731); -emit_16(1798); -emit_16(1732); -emit_16(1798); -emit_16(1731); -emit_16(1798); -emit_16(1732); -emit_16(1799); -emit_16(1733); -emit_16(1799); -emit_16(1732); -emit_16(1799); -emit_16(1733); -emit_16(1800); -emit_16(1734); -emit_16(1800); -emit_16(1733); -emit_16(1800); -emit_16(1734); -emit_16(1801); -emit_16(1735); -emit_16(1801); -emit_16(1734); -emit_16(1801); -emit_16(1735); -emit_16(1802); -emit_16(1736); -emit_16(1802); -emit_16(1735); -emit_16(1802); -emit_16(1736); -emit_16(1803); -emit_16(1737); -emit_16(1803); -emit_16(1736); -emit_16(1803); -emit_16(1737); -emit_16(1804); -emit_16(1738); -emit_16(1804); -emit_16(1737); -emit_16(1804); -emit_16(1738); -emit_16(1805); -emit_16(1739); -emit_16(1805); -emit_16(1738); -emit_16(1805); -emit_16(1739); -emit_16(1806); -emit_16(1740); -emit_16(1806); -emit_16(1739); -emit_16(1806); -emit_16(1740); -emit_16(1807); -emit_16(1741); -emit_16(1807); -emit_16(1740); -emit_16(1807); -emit_16(1741); -emit_16(1808); -emit_16(1742); -emit_16(1808); -emit_16(1741); -emit_16(1808); -emit_16(1742); -emit_16(1809); -emit_16(1743); -emit_16(1809); -emit_16(1742); -emit_16(1809); -emit_16(1743); -emit_16(1810); -emit_16(1744); -emit_16(1810); -emit_16(1743); -emit_16(1810); -emit_16(1744); -emit_16(1811); -emit_16(1745); -emit_16(1811); -emit_16(1744); -emit_16(1811); -emit_16(1745); -emit_16(1812); -emit_16(1746); -emit_16(1812); -emit_16(1745); -emit_16(1812); -emit_16(1746); -emit_16(1813); -emit_16(1747); -emit_16(1813); -emit_16(1746); -emit_16(1813); -emit_16(1747); -emit_16(1814); -emit_16(1748); -emit_16(1814); -emit_16(1747); -emit_16(1814); -emit_16(1748); -emit_16(1815); -emit_16(1749); -emit_16(1815); -emit_16(1748); -emit_16(1815); -emit_16(1749); -emit_16(1816); -emit_16(1750); -emit_16(1816); -emit_16(1749); -emit_16(1816); -emit_16(1750); -emit_16(1817); -emit_16(1751); -emit_16(1817); -emit_16(1750); -emit_16(1817); -emit_16(1751); -emit_16(1818); -emit_16(1752); -emit_16(1818); -emit_16(1751); -emit_16(1818); -emit_16(1752); -emit_16(1819); -emit_16(1753); -emit_16(1819); -emit_16(1752); -emit_16(1819); -emit_16(1753); -emit_16(1820); -emit_16(1754); -emit_16(1820); -emit_16(1753); -emit_16(1820); -emit_16(1754); -emit_16(1821); -emit_16(1755); -emit_16(1821); -emit_16(1754); -emit_16(1821); -emit_16(1755); -emit_16(1822); -emit_16(1756); -emit_16(1822); -emit_16(1755); -emit_16(1822); -emit_16(1756); -emit_16(1823); -emit_16(1757); -emit_16(1823); -emit_16(1756); -emit_16(1823); -emit_16(1757); -emit_16(1824); -emit_16(1758); -emit_16(1824); -emit_16(1757); -emit_16(1824); -emit_16(1758); -emit_16(1825); -emit_16(1759); -emit_16(1825); -emit_16(1758); -emit_16(1825); -emit_16(1759); -emit_16(1826); -emit_16(1760); -emit_16(1826); -emit_16(1759); -emit_16(1826); -emit_16(1760); -emit_16(1827); -emit_16(1761); -emit_16(1827); -emit_16(1760); -emit_16(1827); -emit_16(1761); -emit_16(1828); -emit_16(1762); -emit_16(1828); -emit_16(1761); -emit_16(1828); -emit_16(1762); -emit_16(1829); -emit_16(1763); -emit_16(1829); -emit_16(1762); -emit_16(1829); -emit_16(1763); -emit_16(1830); -emit_16(1764); -emit_16(1830); -emit_16(1763); -emit_16(1830); -emit_16(1764); -emit_16(1831); -emit_16(1765); -emit_16(1831); -emit_16(1764); -emit_16(1831); -emit_16(1765); -emit_16(1832); -emit_16(1766); -emit_16(1832); -emit_16(1765); -emit_16(1832); -emit_16(1766); -emit_16(1833); -emit_16(1767); -emit_16(1833); -emit_16(1766); -emit_16(1833); -emit_16(1767); -emit_16(1834); -emit_16(1768); -emit_16(1834); -emit_16(1767); -emit_16(1834); -emit_16(1768); -emit_16(1835); -emit_16(1769); -emit_16(1835); -emit_16(1768); -emit_16(1835); -emit_16(1769); -emit_16(1836); -emit_16(1770); -emit_16(1836); -emit_16(1769); -emit_16(1836); -emit_16(1770); -emit_16(1837); -emit_16(1771); -emit_16(1837); -emit_16(1770); -emit_16(1837); -emit_16(1771); -emit_16(1838); -emit_16(1772); -emit_16(1838); -emit_16(1771); -emit_16(1838); -emit_16(1772); -emit_16(1839); -emit_16(1773); -emit_16(1839); -emit_16(1772); -emit_16(1839); -emit_16(1773); -emit_16(1840); -emit_16(1774); -emit_16(1840); -emit_16(1773); -emit_16(1840); -emit_16(1774); -emit_16(1841); -emit_16(1775); -emit_16(1841); -emit_16(1774); -emit_16(1841); -emit_16(1775); -emit_16(1842); -emit_16(1776); -emit_16(1842); -emit_16(1775); -emit_16(1842); -emit_16(1776); -emit_16(1843); -emit_16(1777); -emit_16(1843); -emit_16(1776); -emit_16(1843); -emit_16(1777); -emit_16(1844); -emit_16(1778); -emit_16(1844); -emit_16(1777); -emit_16(1844); -emit_16(1778); -emit_16(1845); -emit_16(1779); -emit_16(1845); -emit_16(1778); -emit_16(1845); -emit_16(1779); -emit_16(1846); -emit_16(1780); -emit_16(1846); -emit_16(1779); -emit_16(1846); -emit_16(1780); -emit_16(1847); -emit_16(1781); -emit_16(1847); -emit_16(1780); -emit_16(1848); -emit_16(1782); -emit_16(1849); -emit_16(1783); -emit_16(1849); -emit_16(1782); -emit_16(1849); -emit_16(1783); -emit_16(1850); -emit_16(1784); -emit_16(1850); -emit_16(1783); -emit_16(1850); -emit_16(1784); -emit_16(1851); -emit_16(1785); -emit_16(1851); -emit_16(1784); -emit_16(1851); -emit_16(1785); -emit_16(1852); -emit_16(1786); -emit_16(1852); -emit_16(1785); -emit_16(1852); -emit_16(1786); -emit_16(1853); -emit_16(1787); -emit_16(1853); -emit_16(1786); -emit_16(1853); -emit_16(1787); -emit_16(1854); -emit_16(1788); -emit_16(1854); -emit_16(1787); -emit_16(1854); -emit_16(1788); -emit_16(1855); -emit_16(1789); -emit_16(1855); -emit_16(1788); -emit_16(1855); -emit_16(1789); -emit_16(1856); -emit_16(1790); -emit_16(1856); -emit_16(1789); -emit_16(1856); -emit_16(1790); -emit_16(1857); -emit_16(1791); -emit_16(1857); -emit_16(1790); -emit_16(1857); -emit_16(1791); -emit_16(1858); -emit_16(1792); -emit_16(1858); -emit_16(1791); -emit_16(1858); -emit_16(1792); -emit_16(1859); -emit_16(1793); -emit_16(1859); -emit_16(1792); -emit_16(1859); -emit_16(1793); -emit_16(1860); -emit_16(1794); -emit_16(1860); -emit_16(1793); -emit_16(1860); -emit_16(1794); -emit_16(1861); -emit_16(1795); -emit_16(1861); -emit_16(1794); -emit_16(1861); -emit_16(1795); -emit_16(1862); -emit_16(1796); -emit_16(1862); -emit_16(1795); -emit_16(1862); -emit_16(1796); -emit_16(1863); -emit_16(1797); -emit_16(1863); -emit_16(1796); -emit_16(1863); -emit_16(1797); -emit_16(1864); -emit_16(1798); -emit_16(1864); -emit_16(1797); -emit_16(1864); -emit_16(1798); -emit_16(1865); -emit_16(1799); -emit_16(1865); -emit_16(1798); -emit_16(1865); -emit_16(1799); -emit_16(1866); -emit_16(1800); -emit_16(1866); -emit_16(1799); -emit_16(1866); -emit_16(1800); -emit_16(1867); -emit_16(1801); -emit_16(1867); -emit_16(1800); -emit_16(1867); -emit_16(1801); -emit_16(1868); -emit_16(1802); -emit_16(1868); -emit_16(1801); -emit_16(1868); -emit_16(1802); -emit_16(1869); -emit_16(1803); -emit_16(1869); -emit_16(1802); -emit_16(1869); -emit_16(1803); -emit_16(1870); -emit_16(1804); -emit_16(1870); -emit_16(1803); -emit_16(1870); -emit_16(1804); -emit_16(1871); -emit_16(1805); -emit_16(1871); -emit_16(1804); -emit_16(1871); -emit_16(1805); -emit_16(1872); -emit_16(1806); -emit_16(1872); -emit_16(1805); -emit_16(1872); -emit_16(1806); -emit_16(1873); -emit_16(1807); -emit_16(1873); -emit_16(1806); -emit_16(1873); -emit_16(1807); -emit_16(1874); -emit_16(1808); -emit_16(1874); -emit_16(1807); -emit_16(1874); -emit_16(1808); -emit_16(1875); -emit_16(1809); -emit_16(1875); -emit_16(1808); -emit_16(1875); -emit_16(1809); -emit_16(1876); -emit_16(1810); -emit_16(1876); -emit_16(1809); -emit_16(1876); -emit_16(1810); -emit_16(1877); -emit_16(1811); -emit_16(1877); -emit_16(1810); -emit_16(1877); -emit_16(1811); -emit_16(1878); -emit_16(1812); -emit_16(1878); -emit_16(1811); -emit_16(1878); -emit_16(1812); -emit_16(1879); -emit_16(1813); -emit_16(1879); -emit_16(1812); -emit_16(1879); -emit_16(1813); -emit_16(1880); -emit_16(1814); -emit_16(1880); -emit_16(1813); -emit_16(1880); -emit_16(1814); -emit_16(1881); -emit_16(1815); -emit_16(1881); -emit_16(1814); -emit_16(1881); -emit_16(1815); -emit_16(1882); -emit_16(1816); -emit_16(1882); -emit_16(1815); -emit_16(1882); -emit_16(1816); -emit_16(1883); -emit_16(1817); -emit_16(1883); -emit_16(1816); -emit_16(1883); -emit_16(1817); -emit_16(1884); -emit_16(1818); -emit_16(1884); -emit_16(1817); -emit_16(1884); -emit_16(1818); -emit_16(1885); -emit_16(1819); -emit_16(1885); -emit_16(1818); -emit_16(1885); -emit_16(1819); -emit_16(1886); -emit_16(1820); -emit_16(1886); -emit_16(1819); -emit_16(1886); -emit_16(1820); -emit_16(1887); -emit_16(1821); -emit_16(1887); -emit_16(1820); -emit_16(1887); -emit_16(1821); -emit_16(1888); -emit_16(1822); -emit_16(1888); -emit_16(1821); -emit_16(1888); -emit_16(1822); -emit_16(1889); -emit_16(1823); -emit_16(1889); -emit_16(1822); -emit_16(1889); -emit_16(1823); -emit_16(1890); -emit_16(1824); -emit_16(1890); -emit_16(1823); -emit_16(1890); -emit_16(1824); -emit_16(1891); -emit_16(1825); -emit_16(1891); -emit_16(1824); -emit_16(1891); -emit_16(1825); -emit_16(1892); -emit_16(1826); -emit_16(1892); -emit_16(1825); -emit_16(1892); -emit_16(1826); -emit_16(1893); -emit_16(1827); -emit_16(1893); -emit_16(1826); -emit_16(1893); -emit_16(1827); -emit_16(1894); -emit_16(1828); -emit_16(1894); -emit_16(1827); -emit_16(1894); -emit_16(1828); -emit_16(1895); -emit_16(1829); -emit_16(1895); -emit_16(1828); -emit_16(1895); -emit_16(1829); -emit_16(1896); -emit_16(1830); -emit_16(1896); -emit_16(1829); -emit_16(1896); -emit_16(1830); -emit_16(1897); -emit_16(1831); -emit_16(1897); -emit_16(1830); -emit_16(1897); -emit_16(1831); -emit_16(1898); -emit_16(1832); -emit_16(1898); -emit_16(1831); -emit_16(1898); -emit_16(1832); -emit_16(1899); -emit_16(1833); -emit_16(1899); -emit_16(1832); -emit_16(1899); -emit_16(1833); -emit_16(1900); -emit_16(1834); -emit_16(1900); -emit_16(1833); -emit_16(1900); -emit_16(1834); -emit_16(1901); -emit_16(1835); -emit_16(1901); -emit_16(1834); -emit_16(1901); -emit_16(1835); -emit_16(1902); -emit_16(1836); -emit_16(1902); -emit_16(1835); -emit_16(1902); -emit_16(1836); -emit_16(1903); -emit_16(1837); -emit_16(1903); -emit_16(1836); -emit_16(1903); -emit_16(1837); -emit_16(1904); -emit_16(1838); -emit_16(1904); -emit_16(1837); -emit_16(1904); -emit_16(1838); -emit_16(1905); -emit_16(1839); -emit_16(1905); -emit_16(1838); -emit_16(1905); -emit_16(1839); -emit_16(1906); -emit_16(1840); -emit_16(1906); -emit_16(1839); -emit_16(1906); -emit_16(1840); -emit_16(1907); -emit_16(1841); -emit_16(1907); -emit_16(1840); -emit_16(1907); -emit_16(1841); -emit_16(1908); -emit_16(1842); -emit_16(1908); -emit_16(1841); -emit_16(1908); -emit_16(1842); -emit_16(1909); -emit_16(1843); -emit_16(1909); -emit_16(1842); -emit_16(1909); -emit_16(1843); -emit_16(1910); -emit_16(1844); -emit_16(1910); -emit_16(1843); -emit_16(1910); -emit_16(1844); -emit_16(1911); -emit_16(1845); -emit_16(1911); -emit_16(1844); -emit_16(1911); -emit_16(1845); -emit_16(1912); -emit_16(1846); -emit_16(1912); -emit_16(1845); -emit_16(1912); -emit_16(1846); -emit_16(1913); -emit_16(1847); -emit_16(1913); -emit_16(1846); -emit_16(1914); -emit_16(1848); -emit_16(1915); -emit_16(1849); -emit_16(1915); -emit_16(1848); -emit_16(1915); -emit_16(1849); -emit_16(1916); -emit_16(1850); -emit_16(1916); -emit_16(1849); -emit_16(1916); -emit_16(1850); -emit_16(1917); -emit_16(1851); -emit_16(1917); -emit_16(1850); -emit_16(1917); -emit_16(1851); -emit_16(1918); -emit_16(1852); -emit_16(1918); -emit_16(1851); -emit_16(1918); -emit_16(1852); -emit_16(1919); -emit_16(1853); -emit_16(1919); -emit_16(1852); -emit_16(1919); -emit_16(1853); -emit_16(1920); -emit_16(1854); -emit_16(1920); -emit_16(1853); -emit_16(1920); -emit_16(1854); -emit_16(1921); -emit_16(1855); -emit_16(1921); -emit_16(1854); -emit_16(1921); -emit_16(1855); -emit_16(1922); -emit_16(1856); -emit_16(1922); -emit_16(1855); -emit_16(1922); -emit_16(1856); -emit_16(1923); -emit_16(1857); -emit_16(1923); -emit_16(1856); -emit_16(1923); -emit_16(1857); -emit_16(1924); -emit_16(1858); -emit_16(1924); -emit_16(1857); -emit_16(1924); -emit_16(1858); -emit_16(1925); -emit_16(1859); -emit_16(1925); -emit_16(1858); -emit_16(1925); -emit_16(1859); -emit_16(1926); -emit_16(1860); -emit_16(1926); -emit_16(1859); -emit_16(1926); -emit_16(1860); -emit_16(1927); -emit_16(1861); -emit_16(1927); -emit_16(1860); -emit_16(1927); -emit_16(1861); -emit_16(1928); -emit_16(1862); -emit_16(1928); -emit_16(1861); -emit_16(1928); -emit_16(1862); -emit_16(1929); -emit_16(1863); -emit_16(1929); -emit_16(1862); -emit_16(1929); -emit_16(1863); -emit_16(1930); -emit_16(1864); -emit_16(1930); -emit_16(1863); -emit_16(1930); -emit_16(1864); -emit_16(1931); -emit_16(1865); -emit_16(1931); -emit_16(1864); -emit_16(1931); -emit_16(1865); -emit_16(1932); -emit_16(1866); -emit_16(1932); -emit_16(1865); -emit_16(1932); -emit_16(1866); -emit_16(1933); -emit_16(1867); -emit_16(1933); -emit_16(1866); -emit_16(1933); -emit_16(1867); -emit_16(1934); -emit_16(1868); -emit_16(1934); -emit_16(1867); -emit_16(1934); -emit_16(1868); -emit_16(1935); -emit_16(1869); -emit_16(1935); -emit_16(1868); -emit_16(1935); -emit_16(1869); -emit_16(1936); -emit_16(1870); -emit_16(1936); -emit_16(1869); -emit_16(1936); -emit_16(1870); -emit_16(1937); -emit_16(1871); -emit_16(1937); -emit_16(1870); -emit_16(1937); -emit_16(1871); -emit_16(1938); -emit_16(1872); -emit_16(1938); -emit_16(1871); -emit_16(1938); -emit_16(1872); -emit_16(1939); -emit_16(1873); -emit_16(1939); -emit_16(1872); -emit_16(1939); -emit_16(1873); -emit_16(1940); -emit_16(1874); -emit_16(1940); -emit_16(1873); -emit_16(1940); -emit_16(1874); -emit_16(1941); -emit_16(1875); -emit_16(1941); -emit_16(1874); -emit_16(1941); -emit_16(1875); -emit_16(1942); -emit_16(1876); -emit_16(1942); -emit_16(1875); -emit_16(1942); -emit_16(1876); -emit_16(1943); -emit_16(1877); -emit_16(1943); -emit_16(1876); -emit_16(1943); -emit_16(1877); -emit_16(1944); -emit_16(1878); -emit_16(1944); -emit_16(1877); -emit_16(1944); -emit_16(1878); -emit_16(1945); -emit_16(1879); -emit_16(1945); -emit_16(1878); -emit_16(1945); -emit_16(1879); -emit_16(1946); -emit_16(1880); -emit_16(1946); -emit_16(1879); -emit_16(1946); -emit_16(1880); -emit_16(1947); -emit_16(1881); -emit_16(1947); -emit_16(1880); -emit_16(1947); -emit_16(1881); -emit_16(1948); -emit_16(1882); -emit_16(1948); -emit_16(1881); -emit_16(1948); -emit_16(1882); -emit_16(1949); -emit_16(1883); -emit_16(1949); -emit_16(1882); -emit_16(1949); -emit_16(1883); -emit_16(1950); -emit_16(1884); -emit_16(1950); -emit_16(1883); -emit_16(1950); -emit_16(1884); -emit_16(1951); -emit_16(1885); -emit_16(1951); -emit_16(1884); -emit_16(1951); -emit_16(1885); -emit_16(1952); -emit_16(1886); -emit_16(1952); -emit_16(1885); -emit_16(1952); -emit_16(1886); -emit_16(1953); -emit_16(1887); -emit_16(1953); -emit_16(1886); -emit_16(1953); -emit_16(1887); -emit_16(1954); -emit_16(1888); -emit_16(1954); -emit_16(1887); -emit_16(1954); -emit_16(1888); -emit_16(1955); -emit_16(1889); -emit_16(1955); -emit_16(1888); -emit_16(1955); -emit_16(1889); -emit_16(1956); -emit_16(1890); -emit_16(1956); -emit_16(1889); -emit_16(1956); -emit_16(1890); -emit_16(1957); -emit_16(1891); -emit_16(1957); -emit_16(1890); -emit_16(1957); -emit_16(1891); -emit_16(1958); -emit_16(1892); -emit_16(1958); -emit_16(1891); -emit_16(1958); -emit_16(1892); -emit_16(1959); -emit_16(1893); -emit_16(1959); -emit_16(1892); -emit_16(1959); -emit_16(1893); -emit_16(1960); -emit_16(1894); -emit_16(1960); -emit_16(1893); -emit_16(1960); -emit_16(1894); -emit_16(1961); -emit_16(1895); -emit_16(1961); -emit_16(1894); -emit_16(1961); -emit_16(1895); -emit_16(1962); -emit_16(1896); -emit_16(1962); -emit_16(1895); -emit_16(1962); -emit_16(1896); -emit_16(1963); -emit_16(1897); -emit_16(1963); -emit_16(1896); -emit_16(1963); -emit_16(1897); -emit_16(1964); -emit_16(1898); -emit_16(1964); -emit_16(1897); -emit_16(1964); -emit_16(1898); -emit_16(1965); -emit_16(1899); -emit_16(1965); -emit_16(1898); -emit_16(1965); -emit_16(1899); -emit_16(1966); -emit_16(1900); -emit_16(1966); -emit_16(1899); -emit_16(1966); -emit_16(1900); -emit_16(1967); -emit_16(1901); -emit_16(1967); -emit_16(1900); -emit_16(1967); -emit_16(1901); -emit_16(1968); -emit_16(1902); -emit_16(1968); -emit_16(1901); -emit_16(1968); -emit_16(1902); -emit_16(1969); -emit_16(1903); -emit_16(1969); -emit_16(1902); -emit_16(1969); -emit_16(1903); -emit_16(1970); -emit_16(1904); -emit_16(1970); -emit_16(1903); -emit_16(1970); -emit_16(1904); -emit_16(1971); -emit_16(1905); -emit_16(1971); -emit_16(1904); -emit_16(1971); -emit_16(1905); -emit_16(1972); -emit_16(1906); -emit_16(1972); -emit_16(1905); -emit_16(1972); -emit_16(1906); -emit_16(1973); -emit_16(1907); -emit_16(1973); -emit_16(1906); -emit_16(1973); -emit_16(1907); -emit_16(1974); -emit_16(1908); -emit_16(1974); -emit_16(1907); -emit_16(1974); -emit_16(1908); -emit_16(1975); -emit_16(1909); -emit_16(1975); -emit_16(1908); -emit_16(1975); -emit_16(1909); -emit_16(1976); -emit_16(1910); -emit_16(1976); -emit_16(1909); -emit_16(1976); -emit_16(1910); -emit_16(1977); -emit_16(1911); -emit_16(1977); -emit_16(1910); -emit_16(1977); -emit_16(1911); -emit_16(1978); -emit_16(1912); -emit_16(1978); -emit_16(1911); -emit_16(1978); -emit_16(1912); -emit_16(1979); -emit_16(1913); -emit_16(1979); -emit_16(1912); -emit_start(Landscape03Idx) -emit_16(0); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(2); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(4); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(6); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(8); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(10); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(12); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(14); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(16); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(18); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(20); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(22); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(24); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(26); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(28); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(30); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(32); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(34); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(36); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(38); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(40); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(42); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(44); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(46); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(48); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(50); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(52); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(54); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(56); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(58); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(60); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(62); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(64); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(66); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(68); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(70); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(72); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(74); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(76); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(78); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(80); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(82); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(84); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(86); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(88); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(90); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(92); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(94); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(96); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(98); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(100); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(102); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(104); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(106); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(108); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(110); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(112); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(114); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(116); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(118); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(120); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(122); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(124); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(126); -emit_16(127); -emit_16(126); -emit_16(125); -emit_16(128); -emit_16(0); -emit_16(129); -emit_16(2); -emit_16(129); -emit_16(0); -emit_16(129); -emit_16(2); -emit_16(130); -emit_16(4); -emit_16(130); -emit_16(2); -emit_16(130); -emit_16(4); -emit_16(131); -emit_16(6); -emit_16(131); -emit_16(4); -emit_16(131); -emit_16(6); -emit_16(132); -emit_16(8); -emit_16(132); -emit_16(6); -emit_16(132); -emit_16(8); -emit_16(133); -emit_16(10); -emit_16(133); -emit_16(8); -emit_16(133); -emit_16(10); -emit_16(134); -emit_16(12); -emit_16(134); -emit_16(10); -emit_16(134); -emit_16(12); -emit_16(135); -emit_16(14); -emit_16(135); -emit_16(12); -emit_16(135); -emit_16(14); -emit_16(136); -emit_16(16); -emit_16(136); -emit_16(14); -emit_16(136); -emit_16(16); -emit_16(137); -emit_16(18); -emit_16(137); -emit_16(16); -emit_16(137); -emit_16(18); -emit_16(138); -emit_16(20); -emit_16(138); -emit_16(18); -emit_16(138); -emit_16(20); -emit_16(139); -emit_16(22); -emit_16(139); -emit_16(20); -emit_16(139); -emit_16(22); -emit_16(140); -emit_16(24); -emit_16(140); -emit_16(22); -emit_16(140); -emit_16(24); -emit_16(141); -emit_16(26); -emit_16(141); -emit_16(24); -emit_16(141); -emit_16(26); -emit_16(142); -emit_16(28); -emit_16(142); -emit_16(26); -emit_16(142); -emit_16(28); -emit_16(143); -emit_16(30); -emit_16(143); -emit_16(28); -emit_16(143); -emit_16(30); -emit_16(144); -emit_16(32); -emit_16(144); -emit_16(30); -emit_16(144); -emit_16(32); -emit_16(145); -emit_16(34); -emit_16(145); -emit_16(32); -emit_16(145); -emit_16(34); -emit_16(146); -emit_16(36); -emit_16(146); -emit_16(34); -emit_16(146); -emit_16(36); -emit_16(147); -emit_16(38); -emit_16(147); -emit_16(36); -emit_16(147); -emit_16(38); -emit_16(148); -emit_16(40); -emit_16(148); -emit_16(38); -emit_16(148); -emit_16(40); -emit_16(149); -emit_16(42); -emit_16(149); -emit_16(40); -emit_16(149); -emit_16(42); -emit_16(150); -emit_16(44); -emit_16(150); -emit_16(42); -emit_16(150); -emit_16(44); -emit_16(151); -emit_16(46); -emit_16(151); -emit_16(44); -emit_16(151); -emit_16(46); -emit_16(152); -emit_16(48); -emit_16(152); -emit_16(46); -emit_16(152); -emit_16(48); -emit_16(153); -emit_16(50); -emit_16(153); -emit_16(48); -emit_16(153); -emit_16(50); -emit_16(154); -emit_16(52); -emit_16(154); -emit_16(50); -emit_16(154); -emit_16(52); -emit_16(155); -emit_16(54); -emit_16(155); -emit_16(52); -emit_16(155); -emit_16(54); -emit_16(156); -emit_16(56); -emit_16(156); -emit_16(54); -emit_16(156); -emit_16(56); -emit_16(157); -emit_16(58); -emit_16(157); -emit_16(56); -emit_16(157); -emit_16(58); -emit_16(158); -emit_16(60); -emit_16(158); -emit_16(58); -emit_16(158); -emit_16(60); -emit_16(159); -emit_16(62); -emit_16(159); -emit_16(60); -emit_16(159); -emit_16(62); -emit_16(160); -emit_16(64); -emit_16(160); -emit_16(62); -emit_16(160); -emit_16(64); -emit_16(161); -emit_16(66); -emit_16(161); -emit_16(64); -emit_16(161); -emit_16(66); -emit_16(162); -emit_16(68); -emit_16(162); -emit_16(66); -emit_16(162); -emit_16(68); -emit_16(163); -emit_16(70); -emit_16(163); -emit_16(68); -emit_16(163); -emit_16(70); -emit_16(164); -emit_16(72); -emit_16(164); -emit_16(70); -emit_16(164); -emit_16(72); -emit_16(165); -emit_16(74); -emit_16(165); -emit_16(72); -emit_16(165); -emit_16(74); -emit_16(166); -emit_16(76); -emit_16(166); -emit_16(74); -emit_16(166); -emit_16(76); -emit_16(167); -emit_16(78); -emit_16(167); -emit_16(76); -emit_16(167); -emit_16(78); -emit_16(168); -emit_16(80); -emit_16(168); -emit_16(78); -emit_16(168); -emit_16(80); -emit_16(169); -emit_16(82); -emit_16(169); -emit_16(80); -emit_16(169); -emit_16(82); -emit_16(170); -emit_16(84); -emit_16(170); -emit_16(82); -emit_16(170); -emit_16(84); -emit_16(171); -emit_16(86); -emit_16(171); -emit_16(84); -emit_16(171); -emit_16(86); -emit_16(172); -emit_16(88); -emit_16(172); -emit_16(86); -emit_16(172); -emit_16(88); -emit_16(173); -emit_16(90); -emit_16(173); -emit_16(88); -emit_16(173); -emit_16(90); -emit_16(174); -emit_16(92); -emit_16(174); -emit_16(90); -emit_16(174); -emit_16(92); -emit_16(175); -emit_16(94); -emit_16(175); -emit_16(92); -emit_16(175); -emit_16(94); -emit_16(176); -emit_16(96); -emit_16(176); -emit_16(94); -emit_16(176); -emit_16(96); -emit_16(177); -emit_16(98); -emit_16(177); -emit_16(96); -emit_16(177); -emit_16(98); -emit_16(178); -emit_16(100); -emit_16(178); -emit_16(98); -emit_16(178); -emit_16(100); -emit_16(179); -emit_16(102); -emit_16(179); -emit_16(100); -emit_16(179); -emit_16(102); -emit_16(180); -emit_16(104); -emit_16(180); -emit_16(102); -emit_16(180); -emit_16(104); -emit_16(181); -emit_16(106); -emit_16(181); -emit_16(104); -emit_16(181); -emit_16(106); -emit_16(182); -emit_16(108); -emit_16(182); -emit_16(106); -emit_16(182); -emit_16(108); -emit_16(183); -emit_16(110); -emit_16(183); -emit_16(108); -emit_16(183); -emit_16(110); -emit_16(184); -emit_16(112); -emit_16(184); -emit_16(110); -emit_16(184); -emit_16(112); -emit_16(185); -emit_16(114); -emit_16(185); -emit_16(112); -emit_16(185); -emit_16(114); -emit_16(186); -emit_16(116); -emit_16(186); -emit_16(114); -emit_16(186); -emit_16(116); -emit_16(187); -emit_16(118); -emit_16(187); -emit_16(116); -emit_16(187); -emit_16(118); -emit_16(188); -emit_16(120); -emit_16(188); -emit_16(118); -emit_16(188); -emit_16(120); -emit_16(189); -emit_16(122); -emit_16(189); -emit_16(120); -emit_16(189); -emit_16(122); -emit_16(190); -emit_16(124); -emit_16(190); -emit_16(122); -emit_16(190); -emit_16(124); -emit_16(191); -emit_16(126); -emit_16(191); -emit_16(124); -emit_16(192); -emit_16(128); -emit_16(193); -emit_16(129); -emit_16(193); -emit_16(128); -emit_16(193); -emit_16(129); -emit_16(194); -emit_16(130); -emit_16(194); -emit_16(129); -emit_16(194); -emit_16(130); -emit_16(195); -emit_16(131); -emit_16(195); -emit_16(130); -emit_16(195); -emit_16(131); -emit_16(196); -emit_16(132); -emit_16(196); -emit_16(131); -emit_16(196); -emit_16(132); -emit_16(197); -emit_16(133); -emit_16(197); -emit_16(132); -emit_16(197); -emit_16(133); -emit_16(198); -emit_16(134); -emit_16(198); -emit_16(133); -emit_16(198); -emit_16(134); -emit_16(199); -emit_16(135); -emit_16(199); -emit_16(134); -emit_16(199); -emit_16(135); -emit_16(200); -emit_16(136); -emit_16(200); -emit_16(135); -emit_16(200); -emit_16(136); -emit_16(201); -emit_16(137); -emit_16(201); -emit_16(136); -emit_16(201); -emit_16(137); -emit_16(202); -emit_16(138); -emit_16(202); -emit_16(137); -emit_16(202); -emit_16(138); -emit_16(203); -emit_16(139); -emit_16(203); -emit_16(138); -emit_16(203); -emit_16(139); -emit_16(204); -emit_16(140); -emit_16(204); -emit_16(139); -emit_16(204); -emit_16(140); -emit_16(205); -emit_16(141); -emit_16(205); -emit_16(140); -emit_16(205); -emit_16(141); -emit_16(206); -emit_16(142); -emit_16(206); -emit_16(141); -emit_16(206); -emit_16(142); -emit_16(207); -emit_16(143); -emit_16(207); -emit_16(142); -emit_16(207); -emit_16(143); -emit_16(208); -emit_16(144); -emit_16(208); -emit_16(143); -emit_16(208); -emit_16(144); -emit_16(209); -emit_16(145); -emit_16(209); -emit_16(144); -emit_16(209); -emit_16(145); -emit_16(210); -emit_16(146); -emit_16(210); -emit_16(145); -emit_16(210); -emit_16(146); -emit_16(211); -emit_16(147); -emit_16(211); -emit_16(146); -emit_16(211); -emit_16(147); -emit_16(212); -emit_16(148); -emit_16(212); -emit_16(147); -emit_16(212); -emit_16(148); -emit_16(213); -emit_16(149); -emit_16(213); -emit_16(148); -emit_16(213); -emit_16(149); -emit_16(214); -emit_16(150); -emit_16(214); -emit_16(149); -emit_16(214); -emit_16(150); -emit_16(215); -emit_16(151); -emit_16(215); -emit_16(150); -emit_16(215); -emit_16(151); -emit_16(216); -emit_16(152); -emit_16(216); -emit_16(151); -emit_16(216); -emit_16(152); -emit_16(217); -emit_16(153); -emit_16(217); -emit_16(152); -emit_16(217); -emit_16(153); -emit_16(218); -emit_16(154); -emit_16(218); -emit_16(153); -emit_16(218); -emit_16(154); -emit_16(219); -emit_16(155); -emit_16(219); -emit_16(154); -emit_16(219); -emit_16(155); -emit_16(220); -emit_16(156); -emit_16(220); -emit_16(155); -emit_16(220); -emit_16(156); -emit_16(221); -emit_16(157); -emit_16(221); -emit_16(156); -emit_16(221); -emit_16(157); -emit_16(222); -emit_16(158); -emit_16(222); -emit_16(157); -emit_16(222); -emit_16(158); -emit_16(223); -emit_16(159); -emit_16(223); -emit_16(158); -emit_16(223); -emit_16(159); -emit_16(224); -emit_16(160); -emit_16(224); -emit_16(159); -emit_16(224); -emit_16(160); -emit_16(225); -emit_16(161); -emit_16(225); -emit_16(160); -emit_16(225); -emit_16(161); -emit_16(226); -emit_16(162); -emit_16(226); -emit_16(161); -emit_16(226); -emit_16(162); -emit_16(227); -emit_16(163); -emit_16(227); -emit_16(162); -emit_16(227); -emit_16(163); -emit_16(228); -emit_16(164); -emit_16(228); -emit_16(163); -emit_16(228); -emit_16(164); -emit_16(229); -emit_16(165); -emit_16(229); -emit_16(164); -emit_16(229); -emit_16(165); -emit_16(230); -emit_16(166); -emit_16(230); -emit_16(165); -emit_16(230); -emit_16(166); -emit_16(231); -emit_16(167); -emit_16(231); -emit_16(166); -emit_16(231); -emit_16(167); -emit_16(232); -emit_16(168); -emit_16(232); -emit_16(167); -emit_16(232); -emit_16(168); -emit_16(233); -emit_16(169); -emit_16(233); -emit_16(168); -emit_16(233); -emit_16(169); -emit_16(234); -emit_16(170); -emit_16(234); -emit_16(169); -emit_16(234); -emit_16(170); -emit_16(235); -emit_16(171); -emit_16(235); -emit_16(170); -emit_16(235); -emit_16(171); -emit_16(236); -emit_16(172); -emit_16(236); -emit_16(171); -emit_16(236); -emit_16(172); -emit_16(237); -emit_16(173); -emit_16(237); -emit_16(172); -emit_16(237); -emit_16(173); -emit_16(238); -emit_16(174); -emit_16(238); -emit_16(173); -emit_16(238); -emit_16(174); -emit_16(239); -emit_16(175); -emit_16(239); -emit_16(174); -emit_16(239); -emit_16(175); -emit_16(240); -emit_16(176); -emit_16(240); -emit_16(175); -emit_16(240); -emit_16(176); -emit_16(241); -emit_16(177); -emit_16(241); -emit_16(176); -emit_16(241); -emit_16(177); -emit_16(242); -emit_16(178); -emit_16(242); -emit_16(177); -emit_16(242); -emit_16(178); -emit_16(243); -emit_16(179); -emit_16(243); -emit_16(178); -emit_16(243); -emit_16(179); -emit_16(244); -emit_16(180); -emit_16(244); -emit_16(179); -emit_16(244); -emit_16(180); -emit_16(245); -emit_16(181); -emit_16(245); -emit_16(180); -emit_16(245); -emit_16(181); -emit_16(246); -emit_16(182); -emit_16(246); -emit_16(181); -emit_16(246); -emit_16(182); -emit_16(247); -emit_16(183); -emit_16(247); -emit_16(182); -emit_16(247); -emit_16(183); -emit_16(248); -emit_16(184); -emit_16(248); -emit_16(183); -emit_16(248); -emit_16(184); -emit_16(249); -emit_16(185); -emit_16(249); -emit_16(184); -emit_16(249); -emit_16(185); -emit_16(250); -emit_16(186); -emit_16(250); -emit_16(185); -emit_16(250); -emit_16(186); -emit_16(251); -emit_16(187); -emit_16(251); -emit_16(186); -emit_16(251); -emit_16(187); -emit_16(252); -emit_16(188); -emit_16(252); -emit_16(187); -emit_16(252); -emit_16(188); -emit_16(253); -emit_16(189); -emit_16(253); -emit_16(188); -emit_16(253); -emit_16(189); -emit_16(254); -emit_16(190); -emit_16(254); -emit_16(189); -emit_16(254); -emit_16(190); -emit_16(255); -emit_16(191); -emit_16(255); -emit_16(190); -emit_16(256); -emit_16(192); -emit_16(257); -emit_16(193); -emit_16(257); -emit_16(192); -emit_16(257); -emit_16(193); -emit_16(258); -emit_16(194); -emit_16(258); -emit_16(193); -emit_16(258); -emit_16(194); -emit_16(259); -emit_16(195); -emit_16(259); -emit_16(194); -emit_16(259); -emit_16(195); -emit_16(260); -emit_16(196); -emit_16(260); -emit_16(195); -emit_16(260); -emit_16(196); -emit_16(261); -emit_16(197); -emit_16(261); -emit_16(196); -emit_16(261); -emit_16(197); -emit_16(262); -emit_16(198); -emit_16(262); -emit_16(197); -emit_16(262); -emit_16(198); -emit_16(263); -emit_16(199); -emit_16(263); -emit_16(198); -emit_16(263); -emit_16(199); -emit_16(264); -emit_16(200); -emit_16(264); -emit_16(199); -emit_16(264); -emit_16(200); -emit_16(265); -emit_16(201); -emit_16(265); -emit_16(200); -emit_16(265); -emit_16(201); -emit_16(266); -emit_16(202); -emit_16(266); -emit_16(201); -emit_16(266); -emit_16(202); -emit_16(267); -emit_16(203); -emit_16(267); -emit_16(202); -emit_16(267); -emit_16(203); -emit_16(268); -emit_16(204); -emit_16(268); -emit_16(203); -emit_16(268); -emit_16(204); -emit_16(269); -emit_16(205); -emit_16(269); -emit_16(204); -emit_16(269); -emit_16(205); -emit_16(270); -emit_16(206); -emit_16(270); -emit_16(205); -emit_16(270); -emit_16(206); -emit_16(271); -emit_16(207); -emit_16(271); -emit_16(206); -emit_16(271); -emit_16(207); -emit_16(272); -emit_16(208); -emit_16(272); -emit_16(207); -emit_16(272); -emit_16(208); -emit_16(273); -emit_16(209); -emit_16(273); -emit_16(208); -emit_16(273); -emit_16(209); -emit_16(274); -emit_16(210); -emit_16(274); -emit_16(209); -emit_16(274); -emit_16(210); -emit_16(275); -emit_16(211); -emit_16(275); -emit_16(210); -emit_16(275); -emit_16(211); -emit_16(276); -emit_16(212); -emit_16(276); -emit_16(211); -emit_16(276); -emit_16(212); -emit_16(277); -emit_16(213); -emit_16(277); -emit_16(212); -emit_16(277); -emit_16(213); -emit_16(278); -emit_16(214); -emit_16(278); -emit_16(213); -emit_16(278); -emit_16(214); -emit_16(279); -emit_16(215); -emit_16(279); -emit_16(214); -emit_16(279); -emit_16(215); -emit_16(280); -emit_16(216); -emit_16(280); -emit_16(215); -emit_16(280); -emit_16(216); -emit_16(281); -emit_16(217); -emit_16(281); -emit_16(216); -emit_16(281); -emit_16(217); -emit_16(282); -emit_16(218); -emit_16(282); -emit_16(217); -emit_16(282); -emit_16(218); -emit_16(283); -emit_16(219); -emit_16(283); -emit_16(218); -emit_16(283); -emit_16(219); -emit_16(284); -emit_16(220); -emit_16(284); -emit_16(219); -emit_16(284); -emit_16(220); -emit_16(285); -emit_16(221); -emit_16(285); -emit_16(220); -emit_16(285); -emit_16(221); -emit_16(286); -emit_16(222); -emit_16(286); -emit_16(221); -emit_16(286); -emit_16(222); -emit_16(287); -emit_16(223); -emit_16(287); -emit_16(222); -emit_16(287); -emit_16(223); -emit_16(288); -emit_16(224); -emit_16(288); -emit_16(223); -emit_16(288); -emit_16(224); -emit_16(289); -emit_16(225); -emit_16(289); -emit_16(224); -emit_16(289); -emit_16(225); -emit_16(290); -emit_16(226); -emit_16(290); -emit_16(225); -emit_16(290); -emit_16(226); -emit_16(291); -emit_16(227); -emit_16(291); -emit_16(226); -emit_16(291); -emit_16(227); -emit_16(292); -emit_16(228); -emit_16(292); -emit_16(227); -emit_16(292); -emit_16(228); -emit_16(293); -emit_16(229); -emit_16(293); -emit_16(228); -emit_16(293); -emit_16(229); -emit_16(294); -emit_16(230); -emit_16(294); -emit_16(229); -emit_16(294); -emit_16(230); -emit_16(295); -emit_16(231); -emit_16(295); -emit_16(230); -emit_16(295); -emit_16(231); -emit_16(296); -emit_16(232); -emit_16(296); -emit_16(231); -emit_16(296); -emit_16(232); -emit_16(297); -emit_16(233); -emit_16(297); -emit_16(232); -emit_16(297); -emit_16(233); -emit_16(298); -emit_16(234); -emit_16(298); -emit_16(233); -emit_16(298); -emit_16(234); -emit_16(299); -emit_16(235); -emit_16(299); -emit_16(234); -emit_16(299); -emit_16(235); -emit_16(300); -emit_16(236); -emit_16(300); -emit_16(235); -emit_16(300); -emit_16(236); -emit_16(301); -emit_16(237); -emit_16(301); -emit_16(236); -emit_16(301); -emit_16(237); -emit_16(302); -emit_16(238); -emit_16(302); -emit_16(237); -emit_16(302); -emit_16(238); -emit_16(303); -emit_16(239); -emit_16(303); -emit_16(238); -emit_16(303); -emit_16(239); -emit_16(304); -emit_16(240); -emit_16(304); -emit_16(239); -emit_16(304); -emit_16(240); -emit_16(305); -emit_16(241); -emit_16(305); -emit_16(240); -emit_16(305); -emit_16(241); -emit_16(306); -emit_16(242); -emit_16(306); -emit_16(241); -emit_16(306); -emit_16(242); -emit_16(307); -emit_16(243); -emit_16(307); -emit_16(242); -emit_16(307); -emit_16(243); -emit_16(308); -emit_16(244); -emit_16(308); -emit_16(243); -emit_16(308); -emit_16(244); -emit_16(309); -emit_16(245); -emit_16(309); -emit_16(244); -emit_16(309); -emit_16(245); -emit_16(310); -emit_16(246); -emit_16(310); -emit_16(245); -emit_16(310); -emit_16(246); -emit_16(311); -emit_16(247); -emit_16(311); -emit_16(246); -emit_16(311); -emit_16(247); -emit_16(312); -emit_16(248); -emit_16(312); -emit_16(247); -emit_16(312); -emit_16(248); -emit_16(313); -emit_16(249); -emit_16(313); -emit_16(248); -emit_16(313); -emit_16(249); -emit_16(314); -emit_16(250); -emit_16(314); -emit_16(249); -emit_16(314); -emit_16(250); -emit_16(315); -emit_16(251); -emit_16(315); -emit_16(250); -emit_16(315); -emit_16(251); -emit_16(316); -emit_16(252); -emit_16(316); -emit_16(251); -emit_16(316); -emit_16(252); -emit_16(317); -emit_16(253); -emit_16(317); -emit_16(252); -emit_16(317); -emit_16(253); -emit_16(318); -emit_16(254); -emit_16(318); -emit_16(253); -emit_16(318); -emit_16(254); -emit_16(319); -emit_16(255); -emit_16(319); -emit_16(254); -emit_16(320); -emit_16(256); -emit_16(321); -emit_16(257); -emit_16(321); -emit_16(256); -emit_16(321); -emit_16(257); -emit_16(322); -emit_16(258); -emit_16(322); -emit_16(257); -emit_16(322); -emit_16(258); -emit_16(323); -emit_16(259); -emit_16(323); -emit_16(258); -emit_16(323); -emit_16(259); -emit_16(324); -emit_16(260); -emit_16(324); -emit_16(259); -emit_16(324); -emit_16(260); -emit_16(325); -emit_16(261); -emit_16(325); -emit_16(260); -emit_16(325); -emit_16(261); -emit_16(326); -emit_16(262); -emit_16(326); -emit_16(261); -emit_16(326); -emit_16(262); -emit_16(327); -emit_16(263); -emit_16(327); -emit_16(262); -emit_16(327); -emit_16(263); -emit_16(328); -emit_16(264); -emit_16(328); -emit_16(263); -emit_16(328); -emit_16(264); -emit_16(329); -emit_16(265); -emit_16(329); -emit_16(264); -emit_16(329); -emit_16(265); -emit_16(330); -emit_16(266); -emit_16(330); -emit_16(265); -emit_16(330); -emit_16(266); -emit_16(331); -emit_16(267); -emit_16(331); -emit_16(266); -emit_16(331); -emit_16(267); -emit_16(332); -emit_16(268); -emit_16(332); -emit_16(267); -emit_16(332); -emit_16(268); -emit_16(333); -emit_16(269); -emit_16(333); -emit_16(268); -emit_16(333); -emit_16(269); -emit_16(334); -emit_16(270); -emit_16(334); -emit_16(269); -emit_16(334); -emit_16(270); -emit_16(335); -emit_16(271); -emit_16(335); -emit_16(270); -emit_16(335); -emit_16(271); -emit_16(336); -emit_16(272); -emit_16(336); -emit_16(271); -emit_16(336); -emit_16(272); -emit_16(337); -emit_16(273); -emit_16(337); -emit_16(272); -emit_16(337); -emit_16(273); -emit_16(338); -emit_16(274); -emit_16(338); -emit_16(273); -emit_16(338); -emit_16(274); -emit_16(339); -emit_16(275); -emit_16(339); -emit_16(274); -emit_16(339); -emit_16(275); -emit_16(340); -emit_16(276); -emit_16(340); -emit_16(275); -emit_16(340); -emit_16(276); -emit_16(341); -emit_16(277); -emit_16(341); -emit_16(276); -emit_16(341); -emit_16(277); -emit_16(342); -emit_16(278); -emit_16(342); -emit_16(277); -emit_16(342); -emit_16(278); -emit_16(343); -emit_16(279); -emit_16(343); -emit_16(278); -emit_16(343); -emit_16(279); -emit_16(344); -emit_16(280); -emit_16(344); -emit_16(279); -emit_16(344); -emit_16(280); -emit_16(345); -emit_16(281); -emit_16(345); -emit_16(280); -emit_16(345); -emit_16(281); -emit_16(346); -emit_16(282); -emit_16(346); -emit_16(281); -emit_16(346); -emit_16(282); -emit_16(347); -emit_16(283); -emit_16(347); -emit_16(282); -emit_16(347); -emit_16(283); -emit_16(348); -emit_16(284); -emit_16(348); -emit_16(283); -emit_16(348); -emit_16(284); -emit_16(349); -emit_16(285); -emit_16(349); -emit_16(284); -emit_16(349); -emit_16(285); -emit_16(350); -emit_16(286); -emit_16(350); -emit_16(285); -emit_16(350); -emit_16(286); -emit_16(351); -emit_16(287); -emit_16(351); -emit_16(286); -emit_16(351); -emit_16(287); -emit_16(352); -emit_16(288); -emit_16(352); -emit_16(287); -emit_16(352); -emit_16(288); -emit_16(353); -emit_16(289); -emit_16(353); -emit_16(288); -emit_16(353); -emit_16(289); -emit_16(354); -emit_16(290); -emit_16(354); -emit_16(289); -emit_16(354); -emit_16(290); -emit_16(355); -emit_16(291); -emit_16(355); -emit_16(290); -emit_16(355); -emit_16(291); -emit_16(356); -emit_16(292); -emit_16(356); -emit_16(291); -emit_16(356); -emit_16(292); -emit_16(357); -emit_16(293); -emit_16(357); -emit_16(292); -emit_16(357); -emit_16(293); -emit_16(358); -emit_16(294); -emit_16(358); -emit_16(293); -emit_16(358); -emit_16(294); -emit_16(359); -emit_16(295); -emit_16(359); -emit_16(294); -emit_16(359); -emit_16(295); -emit_16(360); -emit_16(296); -emit_16(360); -emit_16(295); -emit_16(360); -emit_16(296); -emit_16(361); -emit_16(297); -emit_16(361); -emit_16(296); -emit_16(361); -emit_16(297); -emit_16(362); -emit_16(298); -emit_16(362); -emit_16(297); -emit_16(362); -emit_16(298); -emit_16(363); -emit_16(299); -emit_16(363); -emit_16(298); -emit_16(363); -emit_16(299); -emit_16(364); -emit_16(300); -emit_16(364); -emit_16(299); -emit_16(364); -emit_16(300); -emit_16(365); -emit_16(301); -emit_16(365); -emit_16(300); -emit_16(365); -emit_16(301); -emit_16(366); -emit_16(302); -emit_16(366); -emit_16(301); -emit_16(366); -emit_16(302); -emit_16(367); -emit_16(303); -emit_16(367); -emit_16(302); -emit_16(367); -emit_16(303); -emit_16(368); -emit_16(304); -emit_16(368); -emit_16(303); -emit_16(368); -emit_16(304); -emit_16(369); -emit_16(305); -emit_16(369); -emit_16(304); -emit_16(369); -emit_16(305); -emit_16(370); -emit_16(306); -emit_16(370); -emit_16(305); -emit_16(370); -emit_16(306); -emit_16(371); -emit_16(307); -emit_16(371); -emit_16(306); -emit_16(371); -emit_16(307); -emit_16(372); -emit_16(308); -emit_16(372); -emit_16(307); -emit_16(372); -emit_16(308); -emit_16(373); -emit_16(309); -emit_16(373); -emit_16(308); -emit_16(373); -emit_16(309); -emit_16(374); -emit_16(310); -emit_16(374); -emit_16(309); -emit_16(374); -emit_16(310); -emit_16(375); -emit_16(311); -emit_16(375); -emit_16(310); -emit_16(375); -emit_16(311); -emit_16(376); -emit_16(312); -emit_16(376); -emit_16(311); -emit_16(376); -emit_16(312); -emit_16(377); -emit_16(313); -emit_16(377); -emit_16(312); -emit_16(377); -emit_16(313); -emit_16(378); -emit_16(314); -emit_16(378); -emit_16(313); -emit_16(378); -emit_16(314); -emit_16(379); -emit_16(315); -emit_16(379); -emit_16(314); -emit_16(379); -emit_16(315); -emit_16(380); -emit_16(316); -emit_16(380); -emit_16(315); -emit_16(380); -emit_16(316); -emit_16(381); -emit_16(317); -emit_16(381); -emit_16(316); -emit_16(381); -emit_16(317); -emit_16(382); -emit_16(318); -emit_16(382); -emit_16(317); -emit_16(382); -emit_16(318); -emit_16(383); -emit_16(319); -emit_16(383); -emit_16(318); -emit_16(384); -emit_16(320); -emit_16(385); -emit_16(321); -emit_16(385); -emit_16(320); -emit_16(385); -emit_16(321); -emit_16(386); -emit_16(322); -emit_16(386); -emit_16(321); -emit_16(386); -emit_16(322); -emit_16(387); -emit_16(323); -emit_16(387); -emit_16(322); -emit_16(387); -emit_16(323); -emit_16(388); -emit_16(324); -emit_16(388); -emit_16(323); -emit_16(388); -emit_16(324); -emit_16(389); -emit_16(325); -emit_16(389); -emit_16(324); -emit_16(389); -emit_16(325); -emit_16(390); -emit_16(326); -emit_16(390); -emit_16(325); -emit_16(390); -emit_16(326); -emit_16(391); -emit_16(327); -emit_16(391); -emit_16(326); -emit_16(391); -emit_16(327); -emit_16(392); -emit_16(328); -emit_16(392); -emit_16(327); -emit_16(392); -emit_16(328); -emit_16(393); -emit_16(329); -emit_16(393); -emit_16(328); -emit_16(393); -emit_16(329); -emit_16(394); -emit_16(330); -emit_16(394); -emit_16(329); -emit_16(394); -emit_16(330); -emit_16(395); -emit_16(331); -emit_16(395); -emit_16(330); -emit_16(395); -emit_16(331); -emit_16(396); -emit_16(332); -emit_16(396); -emit_16(331); -emit_16(396); -emit_16(332); -emit_16(397); -emit_16(333); -emit_16(397); -emit_16(332); -emit_16(397); -emit_16(333); -emit_16(398); -emit_16(334); -emit_16(398); -emit_16(333); -emit_16(398); -emit_16(334); -emit_16(399); -emit_16(335); -emit_16(399); -emit_16(334); -emit_16(399); -emit_16(335); -emit_16(400); -emit_16(336); -emit_16(400); -emit_16(335); -emit_16(400); -emit_16(336); -emit_16(401); -emit_16(337); -emit_16(401); -emit_16(336); -emit_16(401); -emit_16(337); -emit_16(402); -emit_16(338); -emit_16(402); -emit_16(337); -emit_16(402); -emit_16(338); -emit_16(403); -emit_16(339); -emit_16(403); -emit_16(338); -emit_16(403); -emit_16(339); -emit_16(404); -emit_16(340); -emit_16(404); -emit_16(339); -emit_16(404); -emit_16(340); -emit_16(405); -emit_16(341); -emit_16(405); -emit_16(340); -emit_16(405); -emit_16(341); -emit_16(406); -emit_16(342); -emit_16(406); -emit_16(341); -emit_16(406); -emit_16(342); -emit_16(407); -emit_16(343); -emit_16(407); -emit_16(342); -emit_16(407); -emit_16(343); -emit_16(408); -emit_16(344); -emit_16(408); -emit_16(343); -emit_16(408); -emit_16(344); -emit_16(409); -emit_16(345); -emit_16(409); -emit_16(344); -emit_16(409); -emit_16(345); -emit_16(410); -emit_16(346); -emit_16(410); -emit_16(345); -emit_16(410); -emit_16(346); -emit_16(411); -emit_16(347); -emit_16(411); -emit_16(346); -emit_16(411); -emit_16(347); -emit_16(412); -emit_16(348); -emit_16(412); -emit_16(347); -emit_16(412); -emit_16(348); -emit_16(413); -emit_16(349); -emit_16(413); -emit_16(348); -emit_16(413); -emit_16(349); -emit_16(414); -emit_16(350); -emit_16(414); -emit_16(349); -emit_16(414); -emit_16(350); -emit_16(415); -emit_16(351); -emit_16(415); -emit_16(350); -emit_16(415); -emit_16(351); -emit_16(416); -emit_16(352); -emit_16(416); -emit_16(351); -emit_16(416); -emit_16(352); -emit_16(417); -emit_16(353); -emit_16(417); -emit_16(352); -emit_16(417); -emit_16(353); -emit_16(418); -emit_16(354); -emit_16(418); -emit_16(353); -emit_16(418); -emit_16(354); -emit_16(419); -emit_16(355); -emit_16(419); -emit_16(354); -emit_16(419); -emit_16(355); -emit_16(420); -emit_16(356); -emit_16(420); -emit_16(355); -emit_16(420); -emit_16(356); -emit_16(421); -emit_16(357); -emit_16(421); -emit_16(356); -emit_16(421); -emit_16(357); -emit_16(422); -emit_16(358); -emit_16(422); -emit_16(357); -emit_16(422); -emit_16(358); -emit_16(423); -emit_16(359); -emit_16(423); -emit_16(358); -emit_16(423); -emit_16(359); -emit_16(424); -emit_16(360); -emit_16(424); -emit_16(359); -emit_16(424); -emit_16(360); -emit_16(425); -emit_16(361); -emit_16(425); -emit_16(360); -emit_16(425); -emit_16(361); -emit_16(426); -emit_16(362); -emit_16(426); -emit_16(361); -emit_16(426); -emit_16(362); -emit_16(427); -emit_16(363); -emit_16(427); -emit_16(362); -emit_16(427); -emit_16(363); -emit_16(428); -emit_16(364); -emit_16(428); -emit_16(363); -emit_16(428); -emit_16(364); -emit_16(429); -emit_16(365); -emit_16(429); -emit_16(364); -emit_16(429); -emit_16(365); -emit_16(430); -emit_16(366); -emit_16(430); -emit_16(365); -emit_16(430); -emit_16(366); -emit_16(431); -emit_16(367); -emit_16(431); -emit_16(366); -emit_16(431); -emit_16(367); -emit_16(432); -emit_16(368); -emit_16(432); -emit_16(367); -emit_16(432); -emit_16(368); -emit_16(433); -emit_16(369); -emit_16(433); -emit_16(368); -emit_16(433); -emit_16(369); -emit_16(434); -emit_16(370); -emit_16(434); -emit_16(369); -emit_16(434); -emit_16(370); -emit_16(435); -emit_16(371); -emit_16(435); -emit_16(370); -emit_16(435); -emit_16(371); -emit_16(436); -emit_16(372); -emit_16(436); -emit_16(371); -emit_16(436); -emit_16(372); -emit_16(437); -emit_16(373); -emit_16(437); -emit_16(372); -emit_16(437); -emit_16(373); -emit_16(438); -emit_16(374); -emit_16(438); -emit_16(373); -emit_16(438); -emit_16(374); -emit_16(439); -emit_16(375); -emit_16(439); -emit_16(374); -emit_16(439); -emit_16(375); -emit_16(440); -emit_16(376); -emit_16(440); -emit_16(375); -emit_16(440); -emit_16(376); -emit_16(441); -emit_16(377); -emit_16(441); -emit_16(376); -emit_16(441); -emit_16(377); -emit_16(442); -emit_16(378); -emit_16(442); -emit_16(377); -emit_16(442); -emit_16(378); -emit_16(443); -emit_16(379); -emit_16(443); -emit_16(378); -emit_16(443); -emit_16(379); -emit_16(444); -emit_16(380); -emit_16(444); -emit_16(379); -emit_16(444); -emit_16(380); -emit_16(445); -emit_16(381); -emit_16(445); -emit_16(380); -emit_16(445); -emit_16(381); -emit_16(446); -emit_16(382); -emit_16(446); -emit_16(381); -emit_16(446); -emit_16(382); -emit_16(447); -emit_16(383); -emit_16(447); -emit_16(382); -emit_16(448); -emit_16(384); -emit_16(449); -emit_16(385); -emit_16(449); -emit_16(384); -emit_16(449); -emit_16(385); -emit_16(450); -emit_16(386); -emit_16(450); -emit_16(385); -emit_16(450); -emit_16(386); -emit_16(451); -emit_16(387); -emit_16(451); -emit_16(386); -emit_16(451); -emit_16(387); -emit_16(452); -emit_16(388); -emit_16(452); -emit_16(387); -emit_16(452); -emit_16(388); -emit_16(453); -emit_16(389); -emit_16(453); -emit_16(388); -emit_16(453); -emit_16(389); -emit_16(454); -emit_16(390); -emit_16(454); -emit_16(389); -emit_16(454); -emit_16(390); -emit_16(455); -emit_16(391); -emit_16(455); -emit_16(390); -emit_16(455); -emit_16(391); -emit_16(456); -emit_16(392); -emit_16(456); -emit_16(391); -emit_16(456); -emit_16(392); -emit_16(457); -emit_16(393); -emit_16(457); -emit_16(392); -emit_16(457); -emit_16(393); -emit_16(458); -emit_16(394); -emit_16(458); -emit_16(393); -emit_16(458); -emit_16(394); -emit_16(459); -emit_16(395); -emit_16(459); -emit_16(394); -emit_16(459); -emit_16(395); -emit_16(460); -emit_16(396); -emit_16(460); -emit_16(395); -emit_16(460); -emit_16(396); -emit_16(461); -emit_16(397); -emit_16(461); -emit_16(396); -emit_16(461); -emit_16(397); -emit_16(462); -emit_16(398); -emit_16(462); -emit_16(397); -emit_16(462); -emit_16(398); -emit_16(463); -emit_16(399); -emit_16(463); -emit_16(398); -emit_16(463); -emit_16(399); -emit_16(464); -emit_16(400); -emit_16(464); -emit_16(399); -emit_16(464); -emit_16(400); -emit_16(465); -emit_16(401); -emit_16(465); -emit_16(400); -emit_16(465); -emit_16(401); -emit_16(466); -emit_16(402); -emit_16(466); -emit_16(401); -emit_16(466); -emit_16(402); -emit_16(467); -emit_16(403); -emit_16(467); -emit_16(402); -emit_16(467); -emit_16(403); -emit_16(468); -emit_16(404); -emit_16(468); -emit_16(403); -emit_16(468); -emit_16(404); -emit_16(469); -emit_16(405); -emit_16(469); -emit_16(404); -emit_16(469); -emit_16(405); -emit_16(470); -emit_16(406); -emit_16(470); -emit_16(405); -emit_16(470); -emit_16(406); -emit_16(471); -emit_16(407); -emit_16(471); -emit_16(406); -emit_16(471); -emit_16(407); -emit_16(472); -emit_16(408); -emit_16(472); -emit_16(407); -emit_16(472); -emit_16(408); -emit_16(473); -emit_16(409); -emit_16(473); -emit_16(408); -emit_16(473); -emit_16(409); -emit_16(474); -emit_16(410); -emit_16(474); -emit_16(409); -emit_16(474); -emit_16(410); -emit_16(475); -emit_16(411); -emit_16(475); -emit_16(410); -emit_16(475); -emit_16(411); -emit_16(476); -emit_16(412); -emit_16(476); -emit_16(411); -emit_16(476); -emit_16(412); -emit_16(477); -emit_16(413); -emit_16(477); -emit_16(412); -emit_16(477); -emit_16(413); -emit_16(478); -emit_16(414); -emit_16(478); -emit_16(413); -emit_16(478); -emit_16(414); -emit_16(479); -emit_16(415); -emit_16(479); -emit_16(414); -emit_16(479); -emit_16(415); -emit_16(480); -emit_16(416); -emit_16(480); -emit_16(415); -emit_16(480); -emit_16(416); -emit_16(481); -emit_16(417); -emit_16(481); -emit_16(416); -emit_16(481); -emit_16(417); -emit_16(482); -emit_16(418); -emit_16(482); -emit_16(417); -emit_16(482); -emit_16(418); -emit_16(483); -emit_16(419); -emit_16(483); -emit_16(418); -emit_16(483); -emit_16(419); -emit_16(484); -emit_16(420); -emit_16(484); -emit_16(419); -emit_16(484); -emit_16(420); -emit_16(485); -emit_16(421); -emit_16(485); -emit_16(420); -emit_16(485); -emit_16(421); -emit_16(486); -emit_16(422); -emit_16(486); -emit_16(421); -emit_16(486); -emit_16(422); -emit_16(487); -emit_16(423); -emit_16(487); -emit_16(422); -emit_16(487); -emit_16(423); -emit_16(488); -emit_16(424); -emit_16(488); -emit_16(423); -emit_16(488); -emit_16(424); -emit_16(489); -emit_16(425); -emit_16(489); -emit_16(424); -emit_16(489); -emit_16(425); -emit_16(490); -emit_16(426); -emit_16(490); -emit_16(425); -emit_16(490); -emit_16(426); -emit_16(491); -emit_16(427); -emit_16(491); -emit_16(426); -emit_16(491); -emit_16(427); -emit_16(492); -emit_16(428); -emit_16(492); -emit_16(427); -emit_16(492); -emit_16(428); -emit_16(493); -emit_16(429); -emit_16(493); -emit_16(428); -emit_16(493); -emit_16(429); -emit_16(494); -emit_16(430); -emit_16(494); -emit_16(429); -emit_16(494); -emit_16(430); -emit_16(495); -emit_16(431); -emit_16(495); -emit_16(430); -emit_16(495); -emit_16(431); -emit_16(496); -emit_16(432); -emit_16(496); -emit_16(431); -emit_16(496); -emit_16(432); -emit_16(497); -emit_16(433); -emit_16(497); -emit_16(432); -emit_16(497); -emit_16(433); -emit_16(498); -emit_16(434); -emit_16(498); -emit_16(433); -emit_16(498); -emit_16(434); -emit_16(499); -emit_16(435); -emit_16(499); -emit_16(434); -emit_16(499); -emit_16(435); -emit_16(500); -emit_16(436); -emit_16(500); -emit_16(435); -emit_16(500); -emit_16(436); -emit_16(501); -emit_16(437); -emit_16(501); -emit_16(436); -emit_16(501); -emit_16(437); -emit_16(502); -emit_16(438); -emit_16(502); -emit_16(437); -emit_16(502); -emit_16(438); -emit_16(503); -emit_16(439); -emit_16(503); -emit_16(438); -emit_16(503); -emit_16(439); -emit_16(504); -emit_16(440); -emit_16(504); -emit_16(439); -emit_16(504); -emit_16(440); -emit_16(505); -emit_16(441); -emit_16(505); -emit_16(440); -emit_16(505); -emit_16(441); -emit_16(506); -emit_16(442); -emit_16(506); -emit_16(441); -emit_16(506); -emit_16(442); -emit_16(507); -emit_16(443); -emit_16(507); -emit_16(442); -emit_16(507); -emit_16(443); -emit_16(508); -emit_16(444); -emit_16(508); -emit_16(443); -emit_16(508); -emit_16(444); -emit_16(509); -emit_16(445); -emit_16(509); -emit_16(444); -emit_16(509); -emit_16(445); -emit_16(510); -emit_16(446); -emit_16(510); -emit_16(445); -emit_16(510); -emit_16(446); -emit_16(511); -emit_16(447); -emit_16(511); -emit_16(446); -emit_16(512); -emit_16(448); -emit_16(513); -emit_16(449); -emit_16(513); -emit_16(448); -emit_16(513); -emit_16(449); -emit_16(514); -emit_16(450); -emit_16(514); -emit_16(449); -emit_16(514); -emit_16(450); -emit_16(515); -emit_16(451); -emit_16(515); -emit_16(450); -emit_16(515); -emit_16(451); -emit_16(516); -emit_16(452); -emit_16(516); -emit_16(451); -emit_16(516); -emit_16(452); -emit_16(517); -emit_16(453); -emit_16(517); -emit_16(452); -emit_16(517); -emit_16(453); -emit_16(518); -emit_16(454); -emit_16(518); -emit_16(453); -emit_16(518); -emit_16(454); -emit_16(519); -emit_16(455); -emit_16(519); -emit_16(454); -emit_16(519); -emit_16(455); -emit_16(520); -emit_16(456); -emit_16(520); -emit_16(455); -emit_16(520); -emit_16(456); -emit_16(521); -emit_16(457); -emit_16(521); -emit_16(456); -emit_16(521); -emit_16(457); -emit_16(522); -emit_16(458); -emit_16(522); -emit_16(457); -emit_16(522); -emit_16(458); -emit_16(523); -emit_16(459); -emit_16(523); -emit_16(458); -emit_16(523); -emit_16(459); -emit_16(524); -emit_16(460); -emit_16(524); -emit_16(459); -emit_16(524); -emit_16(460); -emit_16(525); -emit_16(461); -emit_16(525); -emit_16(460); -emit_16(525); -emit_16(461); -emit_16(526); -emit_16(462); -emit_16(526); -emit_16(461); -emit_16(526); -emit_16(462); -emit_16(527); -emit_16(463); -emit_16(527); -emit_16(462); -emit_16(527); -emit_16(463); -emit_16(528); -emit_16(464); -emit_16(528); -emit_16(463); -emit_16(528); -emit_16(464); -emit_16(529); -emit_16(465); -emit_16(529); -emit_16(464); -emit_16(529); -emit_16(465); -emit_16(530); -emit_16(466); -emit_16(530); -emit_16(465); -emit_16(530); -emit_16(466); -emit_16(531); -emit_16(467); -emit_16(531); -emit_16(466); -emit_16(531); -emit_16(467); -emit_16(532); -emit_16(468); -emit_16(532); -emit_16(467); -emit_16(532); -emit_16(468); -emit_16(533); -emit_16(469); -emit_16(533); -emit_16(468); -emit_16(533); -emit_16(469); -emit_16(534); -emit_16(470); -emit_16(534); -emit_16(469); -emit_16(534); -emit_16(470); -emit_16(535); -emit_16(471); -emit_16(535); -emit_16(470); -emit_16(535); -emit_16(471); -emit_16(536); -emit_16(472); -emit_16(536); -emit_16(471); -emit_16(536); -emit_16(472); -emit_16(537); -emit_16(473); -emit_16(537); -emit_16(472); -emit_16(537); -emit_16(473); -emit_16(538); -emit_16(474); -emit_16(538); -emit_16(473); -emit_16(538); -emit_16(474); -emit_16(539); -emit_16(475); -emit_16(539); -emit_16(474); -emit_16(539); -emit_16(475); -emit_16(540); -emit_16(476); -emit_16(540); -emit_16(475); -emit_16(540); -emit_16(476); -emit_16(541); -emit_16(477); -emit_16(541); -emit_16(476); -emit_16(541); -emit_16(477); -emit_16(542); -emit_16(478); -emit_16(542); -emit_16(477); -emit_16(542); -emit_16(478); -emit_16(543); -emit_16(479); -emit_16(543); -emit_16(478); -emit_16(543); -emit_16(479); -emit_16(544); -emit_16(480); -emit_16(544); -emit_16(479); -emit_16(544); -emit_16(480); -emit_16(545); -emit_16(481); -emit_16(545); -emit_16(480); -emit_16(545); -emit_16(481); -emit_16(546); -emit_16(482); -emit_16(546); -emit_16(481); -emit_16(546); -emit_16(482); -emit_16(547); -emit_16(483); -emit_16(547); -emit_16(482); -emit_16(547); -emit_16(483); -emit_16(548); -emit_16(484); -emit_16(548); -emit_16(483); -emit_16(548); -emit_16(484); -emit_16(549); -emit_16(485); -emit_16(549); -emit_16(484); -emit_16(549); -emit_16(485); -emit_16(550); -emit_16(486); -emit_16(550); -emit_16(485); -emit_16(550); -emit_16(486); -emit_16(551); -emit_16(487); -emit_16(551); -emit_16(486); -emit_16(551); -emit_16(487); -emit_16(552); -emit_16(488); -emit_16(552); -emit_16(487); -emit_16(552); -emit_16(488); -emit_16(553); -emit_16(489); -emit_16(553); -emit_16(488); -emit_16(553); -emit_16(489); -emit_16(554); -emit_16(490); -emit_16(554); -emit_16(489); -emit_16(554); -emit_16(490); -emit_16(555); -emit_16(491); -emit_16(555); -emit_16(490); -emit_16(555); -emit_16(491); -emit_16(556); -emit_16(492); -emit_16(556); -emit_16(491); -emit_16(556); -emit_16(492); -emit_16(557); -emit_16(493); -emit_16(557); -emit_16(492); -emit_16(557); -emit_16(493); -emit_16(558); -emit_16(494); -emit_16(558); -emit_16(493); -emit_16(558); -emit_16(494); -emit_16(559); -emit_16(495); -emit_16(559); -emit_16(494); -emit_16(559); -emit_16(495); -emit_16(560); -emit_16(496); -emit_16(560); -emit_16(495); -emit_16(560); -emit_16(496); -emit_16(561); -emit_16(497); -emit_16(561); -emit_16(496); -emit_16(561); -emit_16(497); -emit_16(562); -emit_16(498); -emit_16(562); -emit_16(497); -emit_16(562); -emit_16(498); -emit_16(563); -emit_16(499); -emit_16(563); -emit_16(498); -emit_16(563); -emit_16(499); -emit_16(564); -emit_16(500); -emit_16(564); -emit_16(499); -emit_16(564); -emit_16(500); -emit_16(565); -emit_16(501); -emit_16(565); -emit_16(500); -emit_16(565); -emit_16(501); -emit_16(566); -emit_16(502); -emit_16(566); -emit_16(501); -emit_16(566); -emit_16(502); -emit_16(567); -emit_16(503); -emit_16(567); -emit_16(502); -emit_16(567); -emit_16(503); -emit_16(568); -emit_16(504); -emit_16(568); -emit_16(503); -emit_16(568); -emit_16(504); -emit_16(569); -emit_16(505); -emit_16(569); -emit_16(504); -emit_16(569); -emit_16(505); -emit_16(570); -emit_16(506); -emit_16(570); -emit_16(505); -emit_16(570); -emit_16(506); -emit_16(571); -emit_16(507); -emit_16(571); -emit_16(506); -emit_16(571); -emit_16(507); -emit_16(572); -emit_16(508); -emit_16(572); -emit_16(507); -emit_16(572); -emit_16(508); -emit_16(573); -emit_16(509); -emit_16(573); -emit_16(508); -emit_16(573); -emit_16(509); -emit_16(574); -emit_16(510); -emit_16(574); -emit_16(509); -emit_16(574); -emit_16(510); -emit_16(575); -emit_16(511); -emit_16(575); -emit_16(510); -emit_16(576); -emit_16(512); -emit_16(577); -emit_16(513); -emit_16(577); -emit_16(512); -emit_16(577); -emit_16(513); -emit_16(578); -emit_16(514); -emit_16(578); -emit_16(513); -emit_16(578); -emit_16(514); -emit_16(579); -emit_16(515); -emit_16(579); -emit_16(514); -emit_16(579); -emit_16(515); -emit_16(580); -emit_16(516); -emit_16(580); -emit_16(515); -emit_16(580); -emit_16(516); -emit_16(581); -emit_16(517); -emit_16(581); -emit_16(516); -emit_16(581); -emit_16(517); -emit_16(582); -emit_16(518); -emit_16(582); -emit_16(517); -emit_16(582); -emit_16(518); -emit_16(583); -emit_16(519); -emit_16(583); -emit_16(518); -emit_16(583); -emit_16(519); -emit_16(584); -emit_16(520); -emit_16(584); -emit_16(519); -emit_16(584); -emit_16(520); -emit_16(585); -emit_16(521); -emit_16(585); -emit_16(520); -emit_16(585); -emit_16(521); -emit_16(586); -emit_16(522); -emit_16(586); -emit_16(521); -emit_16(586); -emit_16(522); -emit_16(587); -emit_16(523); -emit_16(587); -emit_16(522); -emit_16(587); -emit_16(523); -emit_16(588); -emit_16(524); -emit_16(588); -emit_16(523); -emit_16(588); -emit_16(524); -emit_16(589); -emit_16(525); -emit_16(589); -emit_16(524); -emit_16(589); -emit_16(525); -emit_16(590); -emit_16(526); -emit_16(590); -emit_16(525); -emit_16(590); -emit_16(526); -emit_16(591); -emit_16(527); -emit_16(591); -emit_16(526); -emit_16(591); -emit_16(527); -emit_16(592); -emit_16(528); -emit_16(592); -emit_16(527); -emit_16(592); -emit_16(528); -emit_16(593); -emit_16(529); -emit_16(593); -emit_16(528); -emit_16(593); -emit_16(529); -emit_16(594); -emit_16(530); -emit_16(594); -emit_16(529); -emit_16(594); -emit_16(530); -emit_16(595); -emit_16(531); -emit_16(595); -emit_16(530); -emit_16(595); -emit_16(531); -emit_16(596); -emit_16(532); -emit_16(596); -emit_16(531); -emit_16(596); -emit_16(532); -emit_16(597); -emit_16(533); -emit_16(597); -emit_16(532); -emit_16(597); -emit_16(533); -emit_16(598); -emit_16(534); -emit_16(598); -emit_16(533); -emit_16(598); -emit_16(534); -emit_16(599); -emit_16(535); -emit_16(599); -emit_16(534); -emit_16(599); -emit_16(535); -emit_16(600); -emit_16(536); -emit_16(600); -emit_16(535); -emit_16(600); -emit_16(536); -emit_16(601); -emit_16(537); -emit_16(601); -emit_16(536); -emit_16(601); -emit_16(537); -emit_16(602); -emit_16(538); -emit_16(602); -emit_16(537); -emit_16(602); -emit_16(538); -emit_16(603); -emit_16(539); -emit_16(603); -emit_16(538); -emit_16(603); -emit_16(539); -emit_16(604); -emit_16(540); -emit_16(604); -emit_16(539); -emit_16(604); -emit_16(540); -emit_16(605); -emit_16(541); -emit_16(605); -emit_16(540); -emit_16(605); -emit_16(541); -emit_16(606); -emit_16(542); -emit_16(606); -emit_16(541); -emit_16(606); -emit_16(542); -emit_16(607); -emit_16(543); -emit_16(607); -emit_16(542); -emit_16(607); -emit_16(543); -emit_16(608); -emit_16(544); -emit_16(608); -emit_16(543); -emit_16(608); -emit_16(544); -emit_16(609); -emit_16(545); -emit_16(609); -emit_16(544); -emit_16(609); -emit_16(545); -emit_16(610); -emit_16(546); -emit_16(610); -emit_16(545); -emit_16(610); -emit_16(546); -emit_16(611); -emit_16(547); -emit_16(611); -emit_16(546); -emit_16(611); -emit_16(547); -emit_16(612); -emit_16(548); -emit_16(612); -emit_16(547); -emit_16(612); -emit_16(548); -emit_16(613); -emit_16(549); -emit_16(613); -emit_16(548); -emit_16(613); -emit_16(549); -emit_16(614); -emit_16(550); -emit_16(614); -emit_16(549); -emit_16(614); -emit_16(550); -emit_16(615); -emit_16(551); -emit_16(615); -emit_16(550); -emit_16(615); -emit_16(551); -emit_16(616); -emit_16(552); -emit_16(616); -emit_16(551); -emit_16(616); -emit_16(552); -emit_16(617); -emit_16(553); -emit_16(617); -emit_16(552); -emit_16(617); -emit_16(553); -emit_16(618); -emit_16(554); -emit_16(618); -emit_16(553); -emit_16(618); -emit_16(554); -emit_16(619); -emit_16(555); -emit_16(619); -emit_16(554); -emit_16(619); -emit_16(555); -emit_16(620); -emit_16(556); -emit_16(620); -emit_16(555); -emit_16(620); -emit_16(556); -emit_16(621); -emit_16(557); -emit_16(621); -emit_16(556); -emit_16(621); -emit_16(557); -emit_16(622); -emit_16(558); -emit_16(622); -emit_16(557); -emit_16(622); -emit_16(558); -emit_16(623); -emit_16(559); -emit_16(623); -emit_16(558); -emit_16(623); -emit_16(559); -emit_16(624); -emit_16(560); -emit_16(624); -emit_16(559); -emit_16(624); -emit_16(560); -emit_16(625); -emit_16(561); -emit_16(625); -emit_16(560); -emit_16(625); -emit_16(561); -emit_16(626); -emit_16(562); -emit_16(626); -emit_16(561); -emit_16(626); -emit_16(562); -emit_16(627); -emit_16(563); -emit_16(627); -emit_16(562); -emit_16(627); -emit_16(563); -emit_16(628); -emit_16(564); -emit_16(628); -emit_16(563); -emit_16(628); -emit_16(564); -emit_16(629); -emit_16(565); -emit_16(629); -emit_16(564); -emit_16(629); -emit_16(565); -emit_16(630); -emit_16(566); -emit_16(630); -emit_16(565); -emit_16(630); -emit_16(566); -emit_16(631); -emit_16(567); -emit_16(631); -emit_16(566); -emit_16(631); -emit_16(567); -emit_16(632); -emit_16(568); -emit_16(632); -emit_16(567); -emit_16(632); -emit_16(568); -emit_16(633); -emit_16(569); -emit_16(633); -emit_16(568); -emit_16(633); -emit_16(569); -emit_16(634); -emit_16(570); -emit_16(634); -emit_16(569); -emit_16(634); -emit_16(570); -emit_16(635); -emit_16(571); -emit_16(635); -emit_16(570); -emit_16(635); -emit_16(571); -emit_16(636); -emit_16(572); -emit_16(636); -emit_16(571); -emit_16(636); -emit_16(572); -emit_16(637); -emit_16(573); -emit_16(637); -emit_16(572); -emit_16(637); -emit_16(573); -emit_16(638); -emit_16(574); -emit_16(638); -emit_16(573); -emit_16(638); -emit_16(574); -emit_16(639); -emit_16(575); -emit_16(639); -emit_16(574); -emit_16(640); -emit_16(576); -emit_16(641); -emit_16(577); -emit_16(641); -emit_16(576); -emit_16(641); -emit_16(577); -emit_16(642); -emit_16(578); -emit_16(642); -emit_16(577); -emit_16(642); -emit_16(578); -emit_16(643); -emit_16(579); -emit_16(643); -emit_16(578); -emit_16(643); -emit_16(579); -emit_16(644); -emit_16(580); -emit_16(644); -emit_16(579); -emit_16(644); -emit_16(580); -emit_16(645); -emit_16(581); -emit_16(645); -emit_16(580); -emit_16(645); -emit_16(581); -emit_16(646); -emit_16(582); -emit_16(646); -emit_16(581); -emit_16(646); -emit_16(582); -emit_16(647); -emit_16(583); -emit_16(647); -emit_16(582); -emit_16(647); -emit_16(583); -emit_16(648); -emit_16(584); -emit_16(648); -emit_16(583); -emit_16(648); -emit_16(584); -emit_16(649); -emit_16(585); -emit_16(649); -emit_16(584); -emit_16(649); -emit_16(585); -emit_16(650); -emit_16(586); -emit_16(650); -emit_16(585); -emit_16(650); -emit_16(586); -emit_16(651); -emit_16(587); -emit_16(651); -emit_16(586); -emit_16(651); -emit_16(587); -emit_16(652); -emit_16(588); -emit_16(652); -emit_16(587); -emit_16(652); -emit_16(588); -emit_16(653); -emit_16(589); -emit_16(653); -emit_16(588); -emit_16(653); -emit_16(589); -emit_16(654); -emit_16(590); -emit_16(654); -emit_16(589); -emit_16(654); -emit_16(590); -emit_16(655); -emit_16(591); -emit_16(655); -emit_16(590); -emit_16(655); -emit_16(591); -emit_16(656); -emit_16(592); -emit_16(656); -emit_16(591); -emit_16(656); -emit_16(592); -emit_16(657); -emit_16(593); -emit_16(657); -emit_16(592); -emit_16(657); -emit_16(593); -emit_16(658); -emit_16(594); -emit_16(658); -emit_16(593); -emit_16(658); -emit_16(594); -emit_16(659); -emit_16(595); -emit_16(659); -emit_16(594); -emit_16(659); -emit_16(595); -emit_16(660); -emit_16(596); -emit_16(660); -emit_16(595); -emit_16(660); -emit_16(596); -emit_16(661); -emit_16(597); -emit_16(661); -emit_16(596); -emit_16(661); -emit_16(597); -emit_16(662); -emit_16(598); -emit_16(662); -emit_16(597); -emit_16(662); -emit_16(598); -emit_16(663); -emit_16(599); -emit_16(663); -emit_16(598); -emit_16(663); -emit_16(599); -emit_16(664); -emit_16(600); -emit_16(664); -emit_16(599); -emit_16(664); -emit_16(600); -emit_16(665); -emit_16(601); -emit_16(665); -emit_16(600); -emit_16(665); -emit_16(601); -emit_16(666); -emit_16(602); -emit_16(666); -emit_16(601); -emit_16(666); -emit_16(602); -emit_16(667); -emit_16(603); -emit_16(667); -emit_16(602); -emit_16(667); -emit_16(603); -emit_16(668); -emit_16(604); -emit_16(668); -emit_16(603); -emit_16(668); -emit_16(604); -emit_16(669); -emit_16(605); -emit_16(669); -emit_16(604); -emit_16(669); -emit_16(605); -emit_16(670); -emit_16(606); -emit_16(670); -emit_16(605); -emit_16(670); -emit_16(606); -emit_16(671); -emit_16(607); -emit_16(671); -emit_16(606); -emit_16(671); -emit_16(607); -emit_16(672); -emit_16(608); -emit_16(672); -emit_16(607); -emit_16(672); -emit_16(608); -emit_16(673); -emit_16(609); -emit_16(673); -emit_16(608); -emit_16(673); -emit_16(609); -emit_16(674); -emit_16(610); -emit_16(674); -emit_16(609); -emit_16(674); -emit_16(610); -emit_16(675); -emit_16(611); -emit_16(675); -emit_16(610); -emit_16(675); -emit_16(611); -emit_16(676); -emit_16(612); -emit_16(676); -emit_16(611); -emit_16(676); -emit_16(612); -emit_16(677); -emit_16(613); -emit_16(677); -emit_16(612); -emit_16(677); -emit_16(613); -emit_16(678); -emit_16(614); -emit_16(678); -emit_16(613); -emit_16(678); -emit_16(614); -emit_16(679); -emit_16(615); -emit_16(679); -emit_16(614); -emit_16(679); -emit_16(615); -emit_16(680); -emit_16(616); -emit_16(680); -emit_16(615); -emit_16(680); -emit_16(616); -emit_16(681); -emit_16(617); -emit_16(681); -emit_16(616); -emit_16(681); -emit_16(617); -emit_16(682); -emit_16(618); -emit_16(682); -emit_16(617); -emit_16(682); -emit_16(618); -emit_16(683); -emit_16(619); -emit_16(683); -emit_16(618); -emit_16(683); -emit_16(619); -emit_16(684); -emit_16(620); -emit_16(684); -emit_16(619); -emit_16(684); -emit_16(620); -emit_16(685); -emit_16(621); -emit_16(685); -emit_16(620); -emit_16(685); -emit_16(621); -emit_16(686); -emit_16(622); -emit_16(686); -emit_16(621); -emit_16(686); -emit_16(622); -emit_16(687); -emit_16(623); -emit_16(687); -emit_16(622); -emit_16(687); -emit_16(623); -emit_16(688); -emit_16(624); -emit_16(688); -emit_16(623); -emit_16(688); -emit_16(624); -emit_16(689); -emit_16(625); -emit_16(689); -emit_16(624); -emit_16(689); -emit_16(625); -emit_16(690); -emit_16(626); -emit_16(690); -emit_16(625); -emit_16(690); -emit_16(626); -emit_16(691); -emit_16(627); -emit_16(691); -emit_16(626); -emit_16(691); -emit_16(627); -emit_16(692); -emit_16(628); -emit_16(692); -emit_16(627); -emit_16(692); -emit_16(628); -emit_16(693); -emit_16(629); -emit_16(693); -emit_16(628); -emit_16(693); -emit_16(629); -emit_16(694); -emit_16(630); -emit_16(694); -emit_16(629); -emit_16(694); -emit_16(630); -emit_16(695); -emit_16(631); -emit_16(695); -emit_16(630); -emit_16(695); -emit_16(631); -emit_16(696); -emit_16(632); -emit_16(696); -emit_16(631); -emit_16(696); -emit_16(632); -emit_16(697); -emit_16(633); -emit_16(697); -emit_16(632); -emit_16(697); -emit_16(633); -emit_16(698); -emit_16(634); -emit_16(698); -emit_16(633); -emit_16(698); -emit_16(634); -emit_16(699); -emit_16(635); -emit_16(699); -emit_16(634); -emit_16(699); -emit_16(635); -emit_16(700); -emit_16(636); -emit_16(700); -emit_16(635); -emit_16(700); -emit_16(636); -emit_16(701); -emit_16(637); -emit_16(701); -emit_16(636); -emit_16(701); -emit_16(637); -emit_16(702); -emit_16(638); -emit_16(702); -emit_16(637); -emit_16(702); -emit_16(638); -emit_16(703); -emit_16(639); -emit_16(703); -emit_16(638); -emit_16(704); -emit_16(640); -emit_16(705); -emit_16(641); -emit_16(705); -emit_16(640); -emit_16(705); -emit_16(641); -emit_16(706); -emit_16(642); -emit_16(706); -emit_16(641); -emit_16(706); -emit_16(642); -emit_16(707); -emit_16(643); -emit_16(707); -emit_16(642); -emit_16(707); -emit_16(643); -emit_16(708); -emit_16(644); -emit_16(708); -emit_16(643); -emit_16(708); -emit_16(644); -emit_16(709); -emit_16(645); -emit_16(709); -emit_16(644); -emit_16(709); -emit_16(645); -emit_16(710); -emit_16(646); -emit_16(710); -emit_16(645); -emit_16(710); -emit_16(646); -emit_16(711); -emit_16(647); -emit_16(711); -emit_16(646); -emit_16(711); -emit_16(647); -emit_16(712); -emit_16(648); -emit_16(712); -emit_16(647); -emit_16(712); -emit_16(648); -emit_16(713); -emit_16(649); -emit_16(713); -emit_16(648); -emit_16(713); -emit_16(649); -emit_16(714); -emit_16(650); -emit_16(714); -emit_16(649); -emit_16(714); -emit_16(650); -emit_16(715); -emit_16(651); -emit_16(715); -emit_16(650); -emit_16(715); -emit_16(651); -emit_16(716); -emit_16(652); -emit_16(716); -emit_16(651); -emit_16(716); -emit_16(652); -emit_16(717); -emit_16(653); -emit_16(717); -emit_16(652); -emit_16(717); -emit_16(653); -emit_16(718); -emit_16(654); -emit_16(718); -emit_16(653); -emit_16(718); -emit_16(654); -emit_16(719); -emit_16(655); -emit_16(719); -emit_16(654); -emit_16(719); -emit_16(655); -emit_16(720); -emit_16(656); -emit_16(720); -emit_16(655); -emit_16(720); -emit_16(656); -emit_16(721); -emit_16(657); -emit_16(721); -emit_16(656); -emit_16(721); -emit_16(657); -emit_16(722); -emit_16(658); -emit_16(722); -emit_16(657); -emit_16(722); -emit_16(658); -emit_16(723); -emit_16(659); -emit_16(723); -emit_16(658); -emit_16(723); -emit_16(659); -emit_16(724); -emit_16(660); -emit_16(724); -emit_16(659); -emit_16(724); -emit_16(660); -emit_16(725); -emit_16(661); -emit_16(725); -emit_16(660); -emit_16(725); -emit_16(661); -emit_16(726); -emit_16(662); -emit_16(726); -emit_16(661); -emit_16(726); -emit_16(662); -emit_16(727); -emit_16(663); -emit_16(727); -emit_16(662); -emit_16(727); -emit_16(663); -emit_16(728); -emit_16(664); -emit_16(728); -emit_16(663); -emit_16(728); -emit_16(664); -emit_16(729); -emit_16(665); -emit_16(729); -emit_16(664); -emit_16(729); -emit_16(665); -emit_16(730); -emit_16(666); -emit_16(730); -emit_16(665); -emit_16(730); -emit_16(666); -emit_16(731); -emit_16(667); -emit_16(731); -emit_16(666); -emit_16(731); -emit_16(667); -emit_16(732); -emit_16(668); -emit_16(732); -emit_16(667); -emit_16(732); -emit_16(668); -emit_16(733); -emit_16(669); -emit_16(733); -emit_16(668); -emit_16(733); -emit_16(669); -emit_16(734); -emit_16(670); -emit_16(734); -emit_16(669); -emit_16(734); -emit_16(670); -emit_16(735); -emit_16(671); -emit_16(735); -emit_16(670); -emit_16(735); -emit_16(671); -emit_16(736); -emit_16(672); -emit_16(736); -emit_16(671); -emit_16(736); -emit_16(672); -emit_16(737); -emit_16(673); -emit_16(737); -emit_16(672); -emit_16(737); -emit_16(673); -emit_16(738); -emit_16(674); -emit_16(738); -emit_16(673); -emit_16(738); -emit_16(674); -emit_16(739); -emit_16(675); -emit_16(739); -emit_16(674); -emit_16(739); -emit_16(675); -emit_16(740); -emit_16(676); -emit_16(740); -emit_16(675); -emit_16(740); -emit_16(676); -emit_16(741); -emit_16(677); -emit_16(741); -emit_16(676); -emit_16(741); -emit_16(677); -emit_16(742); -emit_16(678); -emit_16(742); -emit_16(677); -emit_16(742); -emit_16(678); -emit_16(743); -emit_16(679); -emit_16(743); -emit_16(678); -emit_16(743); -emit_16(679); -emit_16(744); -emit_16(680); -emit_16(744); -emit_16(679); -emit_16(744); -emit_16(680); -emit_16(745); -emit_16(681); -emit_16(745); -emit_16(680); -emit_16(745); -emit_16(681); -emit_16(746); -emit_16(682); -emit_16(746); -emit_16(681); -emit_16(746); -emit_16(682); -emit_16(747); -emit_16(683); -emit_16(747); -emit_16(682); -emit_16(747); -emit_16(683); -emit_16(748); -emit_16(684); -emit_16(748); -emit_16(683); -emit_16(748); -emit_16(684); -emit_16(749); -emit_16(685); -emit_16(749); -emit_16(684); -emit_16(749); -emit_16(685); -emit_16(750); -emit_16(686); -emit_16(750); -emit_16(685); -emit_16(750); -emit_16(686); -emit_16(751); -emit_16(687); -emit_16(751); -emit_16(686); -emit_16(751); -emit_16(687); -emit_16(752); -emit_16(688); -emit_16(752); -emit_16(687); -emit_16(752); -emit_16(688); -emit_16(753); -emit_16(689); -emit_16(753); -emit_16(688); -emit_16(753); -emit_16(689); -emit_16(754); -emit_16(690); -emit_16(754); -emit_16(689); -emit_16(754); -emit_16(690); -emit_16(755); -emit_16(691); -emit_16(755); -emit_16(690); -emit_16(755); -emit_16(691); -emit_16(756); -emit_16(692); -emit_16(756); -emit_16(691); -emit_16(756); -emit_16(692); -emit_16(757); -emit_16(693); -emit_16(757); -emit_16(692); -emit_16(757); -emit_16(693); -emit_16(758); -emit_16(694); -emit_16(758); -emit_16(693); -emit_16(758); -emit_16(694); -emit_16(759); -emit_16(695); -emit_16(759); -emit_16(694); -emit_16(759); -emit_16(695); -emit_16(760); -emit_16(696); -emit_16(760); -emit_16(695); -emit_16(760); -emit_16(696); -emit_16(761); -emit_16(697); -emit_16(761); -emit_16(696); -emit_16(761); -emit_16(697); -emit_16(762); -emit_16(698); -emit_16(762); -emit_16(697); -emit_16(762); -emit_16(698); -emit_16(763); -emit_16(699); -emit_16(763); -emit_16(698); -emit_16(763); -emit_16(699); -emit_16(764); -emit_16(700); -emit_16(764); -emit_16(699); -emit_16(764); -emit_16(700); -emit_16(765); -emit_16(701); -emit_16(765); -emit_16(700); -emit_16(765); -emit_16(701); -emit_16(766); -emit_16(702); -emit_16(766); -emit_16(701); -emit_16(766); -emit_16(702); -emit_16(767); -emit_16(703); -emit_16(767); -emit_16(702); -emit_16(768); -emit_16(704); -emit_16(769); -emit_16(705); -emit_16(769); -emit_16(704); -emit_16(769); -emit_16(705); -emit_16(770); -emit_16(706); -emit_16(770); -emit_16(705); -emit_16(770); -emit_16(706); -emit_16(771); -emit_16(707); -emit_16(771); -emit_16(706); -emit_16(771); -emit_16(707); -emit_16(772); -emit_16(708); -emit_16(772); -emit_16(707); -emit_16(772); -emit_16(708); -emit_16(773); -emit_16(709); -emit_16(773); -emit_16(708); -emit_16(773); -emit_16(709); -emit_16(774); -emit_16(710); -emit_16(774); -emit_16(709); -emit_16(774); -emit_16(710); -emit_16(775); -emit_16(711); -emit_16(775); -emit_16(710); -emit_16(775); -emit_16(711); -emit_16(776); -emit_16(712); -emit_16(776); -emit_16(711); -emit_16(776); -emit_16(712); -emit_16(777); -emit_16(713); -emit_16(777); -emit_16(712); -emit_16(777); -emit_16(713); -emit_16(778); -emit_16(714); -emit_16(778); -emit_16(713); -emit_16(778); -emit_16(714); -emit_16(779); -emit_16(715); -emit_16(779); -emit_16(714); -emit_16(779); -emit_16(715); -emit_16(780); -emit_16(716); -emit_16(780); -emit_16(715); -emit_16(780); -emit_16(716); -emit_16(781); -emit_16(717); -emit_16(781); -emit_16(716); -emit_16(781); -emit_16(717); -emit_16(782); -emit_16(718); -emit_16(782); -emit_16(717); -emit_16(782); -emit_16(718); -emit_16(783); -emit_16(719); -emit_16(783); -emit_16(718); -emit_16(783); -emit_16(719); -emit_16(784); -emit_16(720); -emit_16(784); -emit_16(719); -emit_16(784); -emit_16(720); -emit_16(785); -emit_16(721); -emit_16(785); -emit_16(720); -emit_16(785); -emit_16(721); -emit_16(786); -emit_16(722); -emit_16(786); -emit_16(721); -emit_16(786); -emit_16(722); -emit_16(787); -emit_16(723); -emit_16(787); -emit_16(722); -emit_16(787); -emit_16(723); -emit_16(788); -emit_16(724); -emit_16(788); -emit_16(723); -emit_16(788); -emit_16(724); -emit_16(789); -emit_16(725); -emit_16(789); -emit_16(724); -emit_16(789); -emit_16(725); -emit_16(790); -emit_16(726); -emit_16(790); -emit_16(725); -emit_16(790); -emit_16(726); -emit_16(791); -emit_16(727); -emit_16(791); -emit_16(726); -emit_16(791); -emit_16(727); -emit_16(792); -emit_16(728); -emit_16(792); -emit_16(727); -emit_16(792); -emit_16(728); -emit_16(793); -emit_16(729); -emit_16(793); -emit_16(728); -emit_16(793); -emit_16(729); -emit_16(794); -emit_16(730); -emit_16(794); -emit_16(729); -emit_16(794); -emit_16(730); -emit_16(795); -emit_16(731); -emit_16(795); -emit_16(730); -emit_16(795); -emit_16(731); -emit_16(796); -emit_16(732); -emit_16(796); -emit_16(731); -emit_16(796); -emit_16(732); -emit_16(797); -emit_16(733); -emit_16(797); -emit_16(732); -emit_16(797); -emit_16(733); -emit_16(798); -emit_16(734); -emit_16(798); -emit_16(733); -emit_16(798); -emit_16(734); -emit_16(799); -emit_16(735); -emit_16(799); -emit_16(734); -emit_16(799); -emit_16(735); -emit_16(800); -emit_16(736); -emit_16(800); -emit_16(735); -emit_16(800); -emit_16(736); -emit_16(801); -emit_16(737); -emit_16(801); -emit_16(736); -emit_16(801); -emit_16(737); -emit_16(802); -emit_16(738); -emit_16(802); -emit_16(737); -emit_16(802); -emit_16(738); -emit_16(803); -emit_16(739); -emit_16(803); -emit_16(738); -emit_16(803); -emit_16(739); -emit_16(804); -emit_16(740); -emit_16(804); -emit_16(739); -emit_16(804); -emit_16(740); -emit_16(805); -emit_16(741); -emit_16(805); -emit_16(740); -emit_16(805); -emit_16(741); -emit_16(806); -emit_16(742); -emit_16(806); -emit_16(741); -emit_16(806); -emit_16(742); -emit_16(807); -emit_16(743); -emit_16(807); -emit_16(742); -emit_16(807); -emit_16(743); -emit_16(808); -emit_16(744); -emit_16(808); -emit_16(743); -emit_16(808); -emit_16(744); -emit_16(809); -emit_16(745); -emit_16(809); -emit_16(744); -emit_16(809); -emit_16(745); -emit_16(810); -emit_16(746); -emit_16(810); -emit_16(745); -emit_16(810); -emit_16(746); -emit_16(811); -emit_16(747); -emit_16(811); -emit_16(746); -emit_16(811); -emit_16(747); -emit_16(812); -emit_16(748); -emit_16(812); -emit_16(747); -emit_16(812); -emit_16(748); -emit_16(813); -emit_16(749); -emit_16(813); -emit_16(748); -emit_16(813); -emit_16(749); -emit_16(814); -emit_16(750); -emit_16(814); -emit_16(749); -emit_16(814); -emit_16(750); -emit_16(815); -emit_16(751); -emit_16(815); -emit_16(750); -emit_16(815); -emit_16(751); -emit_16(816); -emit_16(752); -emit_16(816); -emit_16(751); -emit_16(816); -emit_16(752); -emit_16(817); -emit_16(753); -emit_16(817); -emit_16(752); -emit_16(817); -emit_16(753); -emit_16(818); -emit_16(754); -emit_16(818); -emit_16(753); -emit_16(818); -emit_16(754); -emit_16(819); -emit_16(755); -emit_16(819); -emit_16(754); -emit_16(819); -emit_16(755); -emit_16(820); -emit_16(756); -emit_16(820); -emit_16(755); -emit_16(820); -emit_16(756); -emit_16(821); -emit_16(757); -emit_16(821); -emit_16(756); -emit_16(821); -emit_16(757); -emit_16(822); -emit_16(758); -emit_16(822); -emit_16(757); -emit_16(822); -emit_16(758); -emit_16(823); -emit_16(759); -emit_16(823); -emit_16(758); -emit_16(823); -emit_16(759); -emit_16(824); -emit_16(760); -emit_16(824); -emit_16(759); -emit_16(824); -emit_16(760); -emit_16(825); -emit_16(761); -emit_16(825); -emit_16(760); -emit_16(825); -emit_16(761); -emit_16(826); -emit_16(762); -emit_16(826); -emit_16(761); -emit_16(826); -emit_16(762); -emit_16(827); -emit_16(763); -emit_16(827); -emit_16(762); -emit_16(827); -emit_16(763); -emit_16(828); -emit_16(764); -emit_16(828); -emit_16(763); -emit_16(828); -emit_16(764); -emit_16(829); -emit_16(765); -emit_16(829); -emit_16(764); -emit_16(829); -emit_16(765); -emit_16(830); -emit_16(766); -emit_16(830); -emit_16(765); -emit_16(830); -emit_16(766); -emit_16(831); -emit_16(767); -emit_16(831); -emit_16(766); -emit_16(832); -emit_16(768); -emit_16(833); -emit_16(769); -emit_16(833); -emit_16(768); -emit_16(833); -emit_16(769); -emit_16(834); -emit_16(770); -emit_16(834); -emit_16(769); -emit_16(834); -emit_16(770); -emit_16(835); -emit_16(771); -emit_16(835); -emit_16(770); -emit_16(835); -emit_16(771); -emit_16(836); -emit_16(772); -emit_16(836); -emit_16(771); -emit_16(836); -emit_16(772); -emit_16(837); -emit_16(773); -emit_16(837); -emit_16(772); -emit_16(837); -emit_16(773); -emit_16(838); -emit_16(774); -emit_16(838); -emit_16(773); -emit_16(838); -emit_16(774); -emit_16(839); -emit_16(775); -emit_16(839); -emit_16(774); -emit_16(839); -emit_16(775); -emit_16(840); -emit_16(776); -emit_16(840); -emit_16(775); -emit_16(840); -emit_16(776); -emit_16(841); -emit_16(777); -emit_16(841); -emit_16(776); -emit_16(841); -emit_16(777); -emit_16(842); -emit_16(778); -emit_16(842); -emit_16(777); -emit_16(842); -emit_16(778); -emit_16(843); -emit_16(779); -emit_16(843); -emit_16(778); -emit_16(843); -emit_16(779); -emit_16(844); -emit_16(780); -emit_16(844); -emit_16(779); -emit_16(844); -emit_16(780); -emit_16(845); -emit_16(781); -emit_16(845); -emit_16(780); -emit_16(845); -emit_16(781); -emit_16(846); -emit_16(782); -emit_16(846); -emit_16(781); -emit_16(846); -emit_16(782); -emit_16(847); -emit_16(783); -emit_16(847); -emit_16(782); -emit_16(847); -emit_16(783); -emit_16(848); -emit_16(784); -emit_16(848); -emit_16(783); -emit_16(848); -emit_16(784); -emit_16(849); -emit_16(785); -emit_16(849); -emit_16(784); -emit_16(849); -emit_16(785); -emit_16(850); -emit_16(786); -emit_16(850); -emit_16(785); -emit_16(850); -emit_16(786); -emit_16(851); -emit_16(787); -emit_16(851); -emit_16(786); -emit_16(851); -emit_16(787); -emit_16(852); -emit_16(788); -emit_16(852); -emit_16(787); -emit_16(852); -emit_16(788); -emit_16(853); -emit_16(789); -emit_16(853); -emit_16(788); -emit_16(853); -emit_16(789); -emit_16(854); -emit_16(790); -emit_16(854); -emit_16(789); -emit_16(854); -emit_16(790); -emit_16(855); -emit_16(791); -emit_16(855); -emit_16(790); -emit_16(855); -emit_16(791); -emit_16(856); -emit_16(792); -emit_16(856); -emit_16(791); -emit_16(856); -emit_16(792); -emit_16(857); -emit_16(793); -emit_16(857); -emit_16(792); -emit_16(857); -emit_16(793); -emit_16(858); -emit_16(794); -emit_16(858); -emit_16(793); -emit_16(858); -emit_16(794); -emit_16(859); -emit_16(795); -emit_16(859); -emit_16(794); -emit_16(859); -emit_16(795); -emit_16(860); -emit_16(796); -emit_16(860); -emit_16(795); -emit_16(860); -emit_16(796); -emit_16(861); -emit_16(797); -emit_16(861); -emit_16(796); -emit_16(861); -emit_16(797); -emit_16(862); -emit_16(798); -emit_16(862); -emit_16(797); -emit_16(862); -emit_16(798); -emit_16(863); -emit_16(799); -emit_16(863); -emit_16(798); -emit_16(863); -emit_16(799); -emit_16(864); -emit_16(800); -emit_16(864); -emit_16(799); -emit_16(864); -emit_16(800); -emit_16(865); -emit_16(801); -emit_16(865); -emit_16(800); -emit_16(865); -emit_16(801); -emit_16(866); -emit_16(802); -emit_16(866); -emit_16(801); -emit_16(866); -emit_16(802); -emit_16(867); -emit_16(803); -emit_16(867); -emit_16(802); -emit_16(867); -emit_16(803); -emit_16(868); -emit_16(804); -emit_16(868); -emit_16(803); -emit_16(868); -emit_16(804); -emit_16(869); -emit_16(805); -emit_16(869); -emit_16(804); -emit_16(869); -emit_16(805); -emit_16(870); -emit_16(806); -emit_16(870); -emit_16(805); -emit_16(870); -emit_16(806); -emit_16(871); -emit_16(807); -emit_16(871); -emit_16(806); -emit_16(871); -emit_16(807); -emit_16(872); -emit_16(808); -emit_16(872); -emit_16(807); -emit_16(872); -emit_16(808); -emit_16(873); -emit_16(809); -emit_16(873); -emit_16(808); -emit_16(873); -emit_16(809); -emit_16(874); -emit_16(810); -emit_16(874); -emit_16(809); -emit_16(874); -emit_16(810); -emit_16(875); -emit_16(811); -emit_16(875); -emit_16(810); -emit_16(875); -emit_16(811); -emit_16(876); -emit_16(812); -emit_16(876); -emit_16(811); -emit_16(876); -emit_16(812); -emit_16(877); -emit_16(813); -emit_16(877); -emit_16(812); -emit_16(877); -emit_16(813); -emit_16(878); -emit_16(814); -emit_16(878); -emit_16(813); -emit_16(878); -emit_16(814); -emit_16(879); -emit_16(815); -emit_16(879); -emit_16(814); -emit_16(879); -emit_16(815); -emit_16(880); -emit_16(816); -emit_16(880); -emit_16(815); -emit_16(880); -emit_16(816); -emit_16(881); -emit_16(817); -emit_16(881); -emit_16(816); -emit_16(881); -emit_16(817); -emit_16(882); -emit_16(818); -emit_16(882); -emit_16(817); -emit_16(882); -emit_16(818); -emit_16(883); -emit_16(819); -emit_16(883); -emit_16(818); -emit_16(883); -emit_16(819); -emit_16(884); -emit_16(820); -emit_16(884); -emit_16(819); -emit_16(884); -emit_16(820); -emit_16(885); -emit_16(821); -emit_16(885); -emit_16(820); -emit_16(885); -emit_16(821); -emit_16(886); -emit_16(822); -emit_16(886); -emit_16(821); -emit_16(886); -emit_16(822); -emit_16(887); -emit_16(823); -emit_16(887); -emit_16(822); -emit_16(887); -emit_16(823); -emit_16(888); -emit_16(824); -emit_16(888); -emit_16(823); -emit_16(888); -emit_16(824); -emit_16(889); -emit_16(825); -emit_16(889); -emit_16(824); -emit_16(889); -emit_16(825); -emit_16(890); -emit_16(826); -emit_16(890); -emit_16(825); -emit_16(890); -emit_16(826); -emit_16(891); -emit_16(827); -emit_16(891); -emit_16(826); -emit_16(891); -emit_16(827); -emit_16(892); -emit_16(828); -emit_16(892); -emit_16(827); -emit_16(892); -emit_16(828); -emit_16(893); -emit_16(829); -emit_16(893); -emit_16(828); -emit_16(893); -emit_16(829); -emit_16(894); -emit_16(830); -emit_16(894); -emit_16(829); -emit_16(894); -emit_16(830); -emit_16(895); -emit_16(831); -emit_16(895); -emit_16(830); -emit_16(896); -emit_16(832); -emit_16(897); -emit_16(833); -emit_16(897); -emit_16(832); -emit_16(897); -emit_16(833); -emit_16(898); -emit_16(834); -emit_16(898); -emit_16(833); -emit_16(898); -emit_16(834); -emit_16(899); -emit_16(835); -emit_16(899); -emit_16(834); -emit_16(899); -emit_16(835); -emit_16(900); -emit_16(836); -emit_16(900); -emit_16(835); -emit_16(900); -emit_16(836); -emit_16(901); -emit_16(837); -emit_16(901); -emit_16(836); -emit_16(901); -emit_16(837); -emit_16(902); -emit_16(838); -emit_16(902); -emit_16(837); -emit_16(902); -emit_16(838); -emit_16(903); -emit_16(839); -emit_16(903); -emit_16(838); -emit_16(903); -emit_16(839); -emit_16(904); -emit_16(840); -emit_16(904); -emit_16(839); -emit_16(904); -emit_16(840); -emit_16(905); -emit_16(841); -emit_16(905); -emit_16(840); -emit_16(905); -emit_16(841); -emit_16(906); -emit_16(842); -emit_16(906); -emit_16(841); -emit_16(906); -emit_16(842); -emit_16(907); -emit_16(843); -emit_16(907); -emit_16(842); -emit_16(907); -emit_16(843); -emit_16(908); -emit_16(844); -emit_16(908); -emit_16(843); -emit_16(908); -emit_16(844); -emit_16(909); -emit_16(845); -emit_16(909); -emit_16(844); -emit_16(909); -emit_16(845); -emit_16(910); -emit_16(846); -emit_16(910); -emit_16(845); -emit_16(910); -emit_16(846); -emit_16(911); -emit_16(847); -emit_16(911); -emit_16(846); -emit_16(911); -emit_16(847); -emit_16(912); -emit_16(848); -emit_16(912); -emit_16(847); -emit_16(912); -emit_16(848); -emit_16(913); -emit_16(849); -emit_16(913); -emit_16(848); -emit_16(913); -emit_16(849); -emit_16(914); -emit_16(850); -emit_16(914); -emit_16(849); -emit_16(914); -emit_16(850); -emit_16(915); -emit_16(851); -emit_16(915); -emit_16(850); -emit_16(915); -emit_16(851); -emit_16(916); -emit_16(852); -emit_16(916); -emit_16(851); -emit_16(916); -emit_16(852); -emit_16(917); -emit_16(853); -emit_16(917); -emit_16(852); -emit_16(917); -emit_16(853); -emit_16(918); -emit_16(854); -emit_16(918); -emit_16(853); -emit_16(918); -emit_16(854); -emit_16(919); -emit_16(855); -emit_16(919); -emit_16(854); -emit_16(919); -emit_16(855); -emit_16(920); -emit_16(856); -emit_16(920); -emit_16(855); -emit_16(920); -emit_16(856); -emit_16(921); -emit_16(857); -emit_16(921); -emit_16(856); -emit_16(921); -emit_16(857); -emit_16(922); -emit_16(858); -emit_16(922); -emit_16(857); -emit_16(922); -emit_16(858); -emit_16(923); -emit_16(859); -emit_16(923); -emit_16(858); -emit_16(923); -emit_16(859); -emit_16(924); -emit_16(860); -emit_16(924); -emit_16(859); -emit_16(924); -emit_16(860); -emit_16(925); -emit_16(861); -emit_16(925); -emit_16(860); -emit_16(925); -emit_16(861); -emit_16(926); -emit_16(862); -emit_16(926); -emit_16(861); -emit_16(926); -emit_16(862); -emit_16(927); -emit_16(863); -emit_16(927); -emit_16(862); -emit_16(927); -emit_16(863); -emit_16(928); -emit_16(864); -emit_16(928); -emit_16(863); -emit_16(928); -emit_16(864); -emit_16(929); -emit_16(865); -emit_16(929); -emit_16(864); -emit_16(929); -emit_16(865); -emit_16(930); -emit_16(866); -emit_16(930); -emit_16(865); -emit_16(930); -emit_16(866); -emit_16(931); -emit_16(867); -emit_16(931); -emit_16(866); -emit_16(931); -emit_16(867); -emit_16(932); -emit_16(868); -emit_16(932); -emit_16(867); -emit_16(932); -emit_16(868); -emit_16(933); -emit_16(869); -emit_16(933); -emit_16(868); -emit_16(933); -emit_16(869); -emit_16(934); -emit_16(870); -emit_16(934); -emit_16(869); -emit_16(934); -emit_16(870); -emit_16(935); -emit_16(871); -emit_16(935); -emit_16(870); -emit_16(935); -emit_16(871); -emit_16(936); -emit_16(872); -emit_16(936); -emit_16(871); -emit_16(936); -emit_16(872); -emit_16(937); -emit_16(873); -emit_16(937); -emit_16(872); -emit_16(937); -emit_16(873); -emit_16(938); -emit_16(874); -emit_16(938); -emit_16(873); -emit_16(938); -emit_16(874); -emit_16(939); -emit_16(875); -emit_16(939); -emit_16(874); -emit_16(939); -emit_16(875); -emit_16(940); -emit_16(876); -emit_16(940); -emit_16(875); -emit_16(940); -emit_16(876); -emit_16(941); -emit_16(877); -emit_16(941); -emit_16(876); -emit_16(941); -emit_16(877); -emit_16(942); -emit_16(878); -emit_16(942); -emit_16(877); -emit_16(942); -emit_16(878); -emit_16(943); -emit_16(879); -emit_16(943); -emit_16(878); -emit_16(943); -emit_16(879); -emit_16(944); -emit_16(880); -emit_16(944); -emit_16(879); -emit_16(944); -emit_16(880); -emit_16(945); -emit_16(881); -emit_16(945); -emit_16(880); -emit_16(945); -emit_16(881); -emit_16(946); -emit_16(882); -emit_16(946); -emit_16(881); -emit_16(946); -emit_16(882); -emit_16(947); -emit_16(883); -emit_16(947); -emit_16(882); -emit_16(947); -emit_16(883); -emit_16(948); -emit_16(884); -emit_16(948); -emit_16(883); -emit_16(948); -emit_16(884); -emit_16(949); -emit_16(885); -emit_16(949); -emit_16(884); -emit_16(949); -emit_16(885); -emit_16(950); -emit_16(886); -emit_16(950); -emit_16(885); -emit_16(950); -emit_16(886); -emit_16(951); -emit_16(887); -emit_16(951); -emit_16(886); -emit_16(951); -emit_16(887); -emit_16(952); -emit_16(888); -emit_16(952); -emit_16(887); -emit_16(952); -emit_16(888); -emit_16(953); -emit_16(889); -emit_16(953); -emit_16(888); -emit_16(953); -emit_16(889); -emit_16(954); -emit_16(890); -emit_16(954); -emit_16(889); -emit_16(954); -emit_16(890); -emit_16(955); -emit_16(891); -emit_16(955); -emit_16(890); -emit_16(955); -emit_16(891); -emit_16(956); -emit_16(892); -emit_16(956); -emit_16(891); -emit_16(956); -emit_16(892); -emit_16(957); -emit_16(893); -emit_16(957); -emit_16(892); -emit_16(957); -emit_16(893); -emit_16(958); -emit_16(894); -emit_16(958); -emit_16(893); -emit_16(958); -emit_16(894); -emit_16(959); -emit_16(895); -emit_16(959); -emit_16(894); -emit_16(960); -emit_16(896); -emit_16(961); -emit_16(897); -emit_16(961); -emit_16(896); -emit_16(961); -emit_16(897); -emit_16(962); -emit_16(898); -emit_16(962); -emit_16(897); -emit_16(962); -emit_16(898); -emit_16(963); -emit_16(899); -emit_16(963); -emit_16(898); -emit_16(963); -emit_16(899); -emit_16(964); -emit_16(900); -emit_16(964); -emit_16(899); -emit_16(964); -emit_16(900); -emit_16(965); -emit_16(901); -emit_16(965); -emit_16(900); -emit_16(965); -emit_16(901); -emit_16(966); -emit_16(902); -emit_16(966); -emit_16(901); -emit_16(966); -emit_16(902); -emit_16(967); -emit_16(903); -emit_16(967); -emit_16(902); -emit_16(967); -emit_16(903); -emit_16(968); -emit_16(904); -emit_16(968); -emit_16(903); -emit_16(968); -emit_16(904); -emit_16(969); -emit_16(905); -emit_16(969); -emit_16(904); -emit_16(969); -emit_16(905); -emit_16(970); -emit_16(906); -emit_16(970); -emit_16(905); -emit_16(970); -emit_16(906); -emit_16(971); -emit_16(907); -emit_16(971); -emit_16(906); -emit_16(971); -emit_16(907); -emit_16(972); -emit_16(908); -emit_16(972); -emit_16(907); -emit_16(972); -emit_16(908); -emit_16(973); -emit_16(909); -emit_16(973); -emit_16(908); -emit_16(973); -emit_16(909); -emit_16(974); -emit_16(910); -emit_16(974); -emit_16(909); -emit_16(974); -emit_16(910); -emit_16(975); -emit_16(911); -emit_16(975); -emit_16(910); -emit_16(975); -emit_16(911); -emit_16(976); -emit_16(912); -emit_16(976); -emit_16(911); -emit_16(976); -emit_16(912); -emit_16(977); -emit_16(913); -emit_16(977); -emit_16(912); -emit_16(977); -emit_16(913); -emit_16(978); -emit_16(914); -emit_16(978); -emit_16(913); -emit_16(978); -emit_16(914); -emit_16(979); -emit_16(915); -emit_16(979); -emit_16(914); -emit_16(979); -emit_16(915); -emit_16(980); -emit_16(916); -emit_16(980); -emit_16(915); -emit_16(980); -emit_16(916); -emit_16(981); -emit_16(917); -emit_16(981); -emit_16(916); -emit_16(981); -emit_16(917); -emit_16(982); -emit_16(918); -emit_16(982); -emit_16(917); -emit_16(982); -emit_16(918); -emit_16(983); -emit_16(919); -emit_16(983); -emit_16(918); -emit_16(983); -emit_16(919); -emit_16(984); -emit_16(920); -emit_16(984); -emit_16(919); -emit_16(984); -emit_16(920); -emit_16(985); -emit_16(921); -emit_16(985); -emit_16(920); -emit_16(985); -emit_16(921); -emit_16(986); -emit_16(922); -emit_16(986); -emit_16(921); -emit_16(986); -emit_16(922); -emit_16(987); -emit_16(923); -emit_16(987); -emit_16(922); -emit_16(987); -emit_16(923); -emit_16(988); -emit_16(924); -emit_16(988); -emit_16(923); -emit_16(988); -emit_16(924); -emit_16(989); -emit_16(925); -emit_16(989); -emit_16(924); -emit_16(989); -emit_16(925); -emit_16(990); -emit_16(926); -emit_16(990); -emit_16(925); -emit_16(990); -emit_16(926); -emit_16(991); -emit_16(927); -emit_16(991); -emit_16(926); -emit_16(991); -emit_16(927); -emit_16(992); -emit_16(928); -emit_16(992); -emit_16(927); -emit_16(992); -emit_16(928); -emit_16(993); -emit_16(929); -emit_16(993); -emit_16(928); -emit_16(993); -emit_16(929); -emit_16(994); -emit_16(930); -emit_16(994); -emit_16(929); -emit_16(994); -emit_16(930); -emit_16(995); -emit_16(931); -emit_16(995); -emit_16(930); -emit_16(995); -emit_16(931); -emit_16(996); -emit_16(932); -emit_16(996); -emit_16(931); -emit_16(996); -emit_16(932); -emit_16(997); -emit_16(933); -emit_16(997); -emit_16(932); -emit_16(997); -emit_16(933); -emit_16(998); -emit_16(934); -emit_16(998); -emit_16(933); -emit_16(998); -emit_16(934); -emit_16(999); -emit_16(935); -emit_16(999); -emit_16(934); -emit_16(999); -emit_16(935); -emit_16(1000); -emit_16(936); -emit_16(1000); -emit_16(935); -emit_16(1000); -emit_16(936); -emit_16(1001); -emit_16(937); -emit_16(1001); -emit_16(936); -emit_16(1001); -emit_16(937); -emit_16(1002); -emit_16(938); -emit_16(1002); -emit_16(937); -emit_16(1002); -emit_16(938); -emit_16(1003); -emit_16(939); -emit_16(1003); -emit_16(938); -emit_16(1003); -emit_16(939); -emit_16(1004); -emit_16(940); -emit_16(1004); -emit_16(939); -emit_16(1004); -emit_16(940); -emit_16(1005); -emit_16(941); -emit_16(1005); -emit_16(940); -emit_16(1005); -emit_16(941); -emit_16(1006); -emit_16(942); -emit_16(1006); -emit_16(941); -emit_16(1006); -emit_16(942); -emit_16(1007); -emit_16(943); -emit_16(1007); -emit_16(942); -emit_16(1007); -emit_16(943); -emit_16(1008); -emit_16(944); -emit_16(1008); -emit_16(943); -emit_16(1008); -emit_16(944); -emit_16(1009); -emit_16(945); -emit_16(1009); -emit_16(944); -emit_16(1009); -emit_16(945); -emit_16(1010); -emit_16(946); -emit_16(1010); -emit_16(945); -emit_16(1010); -emit_16(946); -emit_16(1011); -emit_16(947); -emit_16(1011); -emit_16(946); -emit_16(1011); -emit_16(947); -emit_16(1012); -emit_16(948); -emit_16(1012); -emit_16(947); -emit_16(1012); -emit_16(948); -emit_16(1013); -emit_16(949); -emit_16(1013); -emit_16(948); -emit_16(1013); -emit_16(949); -emit_16(1014); -emit_16(950); -emit_16(1014); -emit_16(949); -emit_16(1014); -emit_16(950); -emit_16(1015); -emit_16(951); -emit_16(1015); -emit_16(950); -emit_16(1015); -emit_16(951); -emit_16(1016); -emit_16(952); -emit_16(1016); -emit_16(951); -emit_16(1016); -emit_16(952); -emit_16(1017); -emit_16(953); -emit_16(1017); -emit_16(952); -emit_16(1017); -emit_16(953); -emit_16(1018); -emit_16(954); -emit_16(1018); -emit_16(953); -emit_16(1018); -emit_16(954); -emit_16(1019); -emit_16(955); -emit_16(1019); -emit_16(954); -emit_16(1019); -emit_16(955); -emit_16(1020); -emit_16(956); -emit_16(1020); -emit_16(955); -emit_16(1020); -emit_16(956); -emit_16(1021); -emit_16(957); -emit_16(1021); -emit_16(956); -emit_16(1021); -emit_16(957); -emit_16(1022); -emit_16(958); -emit_16(1022); -emit_16(957); -emit_16(1022); -emit_16(958); -emit_16(1023); -emit_16(959); -emit_16(1023); -emit_16(958); -emit_16(1024); -emit_16(960); -emit_16(1025); -emit_16(961); -emit_16(1025); -emit_16(960); -emit_16(1025); -emit_16(961); -emit_16(1026); -emit_16(962); -emit_16(1026); -emit_16(961); -emit_16(1026); -emit_16(962); -emit_16(1027); -emit_16(963); -emit_16(1027); -emit_16(962); -emit_16(1027); -emit_16(963); -emit_16(1028); -emit_16(964); -emit_16(1028); -emit_16(963); -emit_16(1028); -emit_16(964); -emit_16(1029); -emit_16(965); -emit_16(1029); -emit_16(964); -emit_16(1029); -emit_16(965); -emit_16(1030); -emit_16(966); -emit_16(1030); -emit_16(965); -emit_16(1030); -emit_16(966); -emit_16(1031); -emit_16(967); -emit_16(1031); -emit_16(966); -emit_16(1031); -emit_16(967); -emit_16(1032); -emit_16(968); -emit_16(1032); -emit_16(967); -emit_16(1032); -emit_16(968); -emit_16(1033); -emit_16(969); -emit_16(1033); -emit_16(968); -emit_16(1033); -emit_16(969); -emit_16(1034); -emit_16(970); -emit_16(1034); -emit_16(969); -emit_16(1034); -emit_16(970); -emit_16(1035); -emit_16(971); -emit_16(1035); -emit_16(970); -emit_16(1035); -emit_16(971); -emit_16(1036); -emit_16(972); -emit_16(1036); -emit_16(971); -emit_16(1036); -emit_16(972); -emit_16(1037); -emit_16(973); -emit_16(1037); -emit_16(972); -emit_16(1037); -emit_16(973); -emit_16(1038); -emit_16(974); -emit_16(1038); -emit_16(973); -emit_16(1038); -emit_16(974); -emit_16(1039); -emit_16(975); -emit_16(1039); -emit_16(974); -emit_16(1039); -emit_16(975); -emit_16(1040); -emit_16(976); -emit_16(1040); -emit_16(975); -emit_16(1040); -emit_16(976); -emit_16(1041); -emit_16(977); -emit_16(1041); -emit_16(976); -emit_16(1041); -emit_16(977); -emit_16(1042); -emit_16(978); -emit_16(1042); -emit_16(977); -emit_16(1042); -emit_16(978); -emit_16(1043); -emit_16(979); -emit_16(1043); -emit_16(978); -emit_16(1043); -emit_16(979); -emit_16(1044); -emit_16(980); -emit_16(1044); -emit_16(979); -emit_16(1044); -emit_16(980); -emit_16(1045); -emit_16(981); -emit_16(1045); -emit_16(980); -emit_16(1045); -emit_16(981); -emit_16(1046); -emit_16(982); -emit_16(1046); -emit_16(981); -emit_16(1046); -emit_16(982); -emit_16(1047); -emit_16(983); -emit_16(1047); -emit_16(982); -emit_16(1047); -emit_16(983); -emit_16(1048); -emit_16(984); -emit_16(1048); -emit_16(983); -emit_16(1048); -emit_16(984); -emit_16(1049); -emit_16(985); -emit_16(1049); -emit_16(984); -emit_16(1049); -emit_16(985); -emit_16(1050); -emit_16(986); -emit_16(1050); -emit_16(985); -emit_16(1050); -emit_16(986); -emit_16(1051); -emit_16(987); -emit_16(1051); -emit_16(986); -emit_16(1051); -emit_16(987); -emit_16(1052); -emit_16(988); -emit_16(1052); -emit_16(987); -emit_16(1052); -emit_16(988); -emit_16(1053); -emit_16(989); -emit_16(1053); -emit_16(988); -emit_16(1053); -emit_16(989); -emit_16(1054); -emit_16(990); -emit_16(1054); -emit_16(989); -emit_16(1054); -emit_16(990); -emit_16(1055); -emit_16(991); -emit_16(1055); -emit_16(990); -emit_16(1055); -emit_16(991); -emit_16(1056); -emit_16(992); -emit_16(1056); -emit_16(991); -emit_16(1056); -emit_16(992); -emit_16(1057); -emit_16(993); -emit_16(1057); -emit_16(992); -emit_16(1057); -emit_16(993); -emit_16(1058); -emit_16(994); -emit_16(1058); -emit_16(993); -emit_16(1058); -emit_16(994); -emit_16(1059); -emit_16(995); -emit_16(1059); -emit_16(994); -emit_16(1059); -emit_16(995); -emit_16(1060); -emit_16(996); -emit_16(1060); -emit_16(995); -emit_16(1060); -emit_16(996); -emit_16(1061); -emit_16(997); -emit_16(1061); -emit_16(996); -emit_16(1061); -emit_16(997); -emit_16(1062); -emit_16(998); -emit_16(1062); -emit_16(997); -emit_16(1062); -emit_16(998); -emit_16(1063); -emit_16(999); -emit_16(1063); -emit_16(998); -emit_16(1063); -emit_16(999); -emit_16(1064); -emit_16(1000); -emit_16(1064); -emit_16(999); -emit_16(1064); -emit_16(1000); -emit_16(1065); -emit_16(1001); -emit_16(1065); -emit_16(1000); -emit_16(1065); -emit_16(1001); -emit_16(1066); -emit_16(1002); -emit_16(1066); -emit_16(1001); -emit_16(1066); -emit_16(1002); -emit_16(1067); -emit_16(1003); -emit_16(1067); -emit_16(1002); -emit_16(1067); -emit_16(1003); -emit_16(1068); -emit_16(1004); -emit_16(1068); -emit_16(1003); -emit_16(1068); -emit_16(1004); -emit_16(1069); -emit_16(1005); -emit_16(1069); -emit_16(1004); -emit_16(1069); -emit_16(1005); -emit_16(1070); -emit_16(1006); -emit_16(1070); -emit_16(1005); -emit_16(1070); -emit_16(1006); -emit_16(1071); -emit_16(1007); -emit_16(1071); -emit_16(1006); -emit_16(1071); -emit_16(1007); -emit_16(1072); -emit_16(1008); -emit_16(1072); -emit_16(1007); -emit_16(1072); -emit_16(1008); -emit_16(1073); -emit_16(1009); -emit_16(1073); -emit_16(1008); -emit_16(1073); -emit_16(1009); -emit_16(1074); -emit_16(1010); -emit_16(1074); -emit_16(1009); -emit_16(1074); -emit_16(1010); -emit_16(1075); -emit_16(1011); -emit_16(1075); -emit_16(1010); -emit_16(1075); -emit_16(1011); -emit_16(1076); -emit_16(1012); -emit_16(1076); -emit_16(1011); -emit_16(1076); -emit_16(1012); -emit_16(1077); -emit_16(1013); -emit_16(1077); -emit_16(1012); -emit_16(1077); -emit_16(1013); -emit_16(1078); -emit_16(1014); -emit_16(1078); -emit_16(1013); -emit_16(1078); -emit_16(1014); -emit_16(1079); -emit_16(1015); -emit_16(1079); -emit_16(1014); -emit_16(1079); -emit_16(1015); -emit_16(1080); -emit_16(1016); -emit_16(1080); -emit_16(1015); -emit_16(1080); -emit_16(1016); -emit_16(1081); -emit_16(1017); -emit_16(1081); -emit_16(1016); -emit_16(1081); -emit_16(1017); -emit_16(1082); -emit_16(1018); -emit_16(1082); -emit_16(1017); -emit_16(1082); -emit_16(1018); -emit_16(1083); -emit_16(1019); -emit_16(1083); -emit_16(1018); -emit_16(1083); -emit_16(1019); -emit_16(1084); -emit_16(1020); -emit_16(1084); -emit_16(1019); -emit_16(1084); -emit_16(1020); -emit_16(1085); -emit_16(1021); -emit_16(1085); -emit_16(1020); -emit_16(1085); -emit_16(1021); -emit_16(1086); -emit_16(1022); -emit_16(1086); -emit_16(1021); -emit_16(1086); -emit_16(1022); -emit_16(1087); -emit_16(1023); -emit_16(1087); -emit_16(1022); -emit_16(1088); -emit_16(1024); -emit_16(1089); -emit_16(1025); -emit_16(1089); -emit_16(1024); -emit_16(1089); -emit_16(1025); -emit_16(1090); -emit_16(1026); -emit_16(1090); -emit_16(1025); -emit_16(1090); -emit_16(1026); -emit_16(1091); -emit_16(1027); -emit_16(1091); -emit_16(1026); -emit_16(1091); -emit_16(1027); -emit_16(1092); -emit_16(1028); -emit_16(1092); -emit_16(1027); -emit_16(1092); -emit_16(1028); -emit_16(1093); -emit_16(1029); -emit_16(1093); -emit_16(1028); -emit_16(1093); -emit_16(1029); -emit_16(1094); -emit_16(1030); -emit_16(1094); -emit_16(1029); -emit_16(1094); -emit_16(1030); -emit_16(1095); -emit_16(1031); -emit_16(1095); -emit_16(1030); -emit_16(1095); -emit_16(1031); -emit_16(1096); -emit_16(1032); -emit_16(1096); -emit_16(1031); -emit_16(1096); -emit_16(1032); -emit_16(1097); -emit_16(1033); -emit_16(1097); -emit_16(1032); -emit_16(1097); -emit_16(1033); -emit_16(1098); -emit_16(1034); -emit_16(1098); -emit_16(1033); -emit_16(1098); -emit_16(1034); -emit_16(1099); -emit_16(1035); -emit_16(1099); -emit_16(1034); -emit_16(1099); -emit_16(1035); -emit_16(1100); -emit_16(1036); -emit_16(1100); -emit_16(1035); -emit_16(1100); -emit_16(1036); -emit_16(1101); -emit_16(1037); -emit_16(1101); -emit_16(1036); -emit_16(1101); -emit_16(1037); -emit_16(1102); -emit_16(1038); -emit_16(1102); -emit_16(1037); -emit_16(1102); -emit_16(1038); -emit_16(1103); -emit_16(1039); -emit_16(1103); -emit_16(1038); -emit_16(1103); -emit_16(1039); -emit_16(1104); -emit_16(1040); -emit_16(1104); -emit_16(1039); -emit_16(1104); -emit_16(1040); -emit_16(1105); -emit_16(1041); -emit_16(1105); -emit_16(1040); -emit_16(1105); -emit_16(1041); -emit_16(1106); -emit_16(1042); -emit_16(1106); -emit_16(1041); -emit_16(1106); -emit_16(1042); -emit_16(1107); -emit_16(1043); -emit_16(1107); -emit_16(1042); -emit_16(1107); -emit_16(1043); -emit_16(1108); -emit_16(1044); -emit_16(1108); -emit_16(1043); -emit_16(1108); -emit_16(1044); -emit_16(1109); -emit_16(1045); -emit_16(1109); -emit_16(1044); -emit_16(1109); -emit_16(1045); -emit_16(1110); -emit_16(1046); -emit_16(1110); -emit_16(1045); -emit_16(1110); -emit_16(1046); -emit_16(1111); -emit_16(1047); -emit_16(1111); -emit_16(1046); -emit_16(1111); -emit_16(1047); -emit_16(1112); -emit_16(1048); -emit_16(1112); -emit_16(1047); -emit_16(1112); -emit_16(1048); -emit_16(1113); -emit_16(1049); -emit_16(1113); -emit_16(1048); -emit_16(1113); -emit_16(1049); -emit_16(1114); -emit_16(1050); -emit_16(1114); -emit_16(1049); -emit_16(1114); -emit_16(1050); -emit_16(1115); -emit_16(1051); -emit_16(1115); -emit_16(1050); -emit_16(1115); -emit_16(1051); -emit_16(1116); -emit_16(1052); -emit_16(1116); -emit_16(1051); -emit_16(1116); -emit_16(1052); -emit_16(1117); -emit_16(1053); -emit_16(1117); -emit_16(1052); -emit_16(1117); -emit_16(1053); -emit_16(1118); -emit_16(1054); -emit_16(1118); -emit_16(1053); -emit_16(1118); -emit_16(1054); -emit_16(1119); -emit_16(1055); -emit_16(1119); -emit_16(1054); -emit_16(1119); -emit_16(1055); -emit_16(1120); -emit_16(1056); -emit_16(1120); -emit_16(1055); -emit_16(1120); -emit_16(1056); -emit_16(1121); -emit_16(1057); -emit_16(1121); -emit_16(1056); -emit_16(1121); -emit_16(1057); -emit_16(1122); -emit_16(1058); -emit_16(1122); -emit_16(1057); -emit_16(1122); -emit_16(1058); -emit_16(1123); -emit_16(1059); -emit_16(1123); -emit_16(1058); -emit_16(1123); -emit_16(1059); -emit_16(1124); -emit_16(1060); -emit_16(1124); -emit_16(1059); -emit_16(1124); -emit_16(1060); -emit_16(1125); -emit_16(1061); -emit_16(1125); -emit_16(1060); -emit_16(1125); -emit_16(1061); -emit_16(1126); -emit_16(1062); -emit_16(1126); -emit_16(1061); -emit_16(1126); -emit_16(1062); -emit_16(1127); -emit_16(1063); -emit_16(1127); -emit_16(1062); -emit_16(1127); -emit_16(1063); -emit_16(1128); -emit_16(1064); -emit_16(1128); -emit_16(1063); -emit_16(1128); -emit_16(1064); -emit_16(1129); -emit_16(1065); -emit_16(1129); -emit_16(1064); -emit_16(1129); -emit_16(1065); -emit_16(1130); -emit_16(1066); -emit_16(1130); -emit_16(1065); -emit_16(1130); -emit_16(1066); -emit_16(1131); -emit_16(1067); -emit_16(1131); -emit_16(1066); -emit_16(1131); -emit_16(1067); -emit_16(1132); -emit_16(1068); -emit_16(1132); -emit_16(1067); -emit_16(1132); -emit_16(1068); -emit_16(1133); -emit_16(1069); -emit_16(1133); -emit_16(1068); -emit_16(1133); -emit_16(1069); -emit_16(1134); -emit_16(1070); -emit_16(1134); -emit_16(1069); -emit_16(1134); -emit_16(1070); -emit_16(1135); -emit_16(1071); -emit_16(1135); -emit_16(1070); -emit_16(1135); -emit_16(1071); -emit_16(1136); -emit_16(1072); -emit_16(1136); -emit_16(1071); -emit_16(1136); -emit_16(1072); -emit_16(1137); -emit_16(1073); -emit_16(1137); -emit_16(1072); -emit_16(1137); -emit_16(1073); -emit_16(1138); -emit_16(1074); -emit_16(1138); -emit_16(1073); -emit_16(1138); -emit_16(1074); -emit_16(1139); -emit_16(1075); -emit_16(1139); -emit_16(1074); -emit_16(1139); -emit_16(1075); -emit_16(1140); -emit_16(1076); -emit_16(1140); -emit_16(1075); -emit_16(1140); -emit_16(1076); -emit_16(1141); -emit_16(1077); -emit_16(1141); -emit_16(1076); -emit_16(1141); -emit_16(1077); -emit_16(1142); -emit_16(1078); -emit_16(1142); -emit_16(1077); -emit_16(1142); -emit_16(1078); -emit_16(1143); -emit_16(1079); -emit_16(1143); -emit_16(1078); -emit_16(1143); -emit_16(1079); -emit_16(1144); -emit_16(1080); -emit_16(1144); -emit_16(1079); -emit_16(1144); -emit_16(1080); -emit_16(1145); -emit_16(1081); -emit_16(1145); -emit_16(1080); -emit_16(1145); -emit_16(1081); -emit_16(1146); -emit_16(1082); -emit_16(1146); -emit_16(1081); -emit_16(1146); -emit_16(1082); -emit_16(1147); -emit_16(1083); -emit_16(1147); -emit_16(1082); -emit_16(1147); -emit_16(1083); -emit_16(1148); -emit_16(1084); -emit_16(1148); -emit_16(1083); -emit_16(1148); -emit_16(1084); -emit_16(1149); -emit_16(1085); -emit_16(1149); -emit_16(1084); -emit_16(1149); -emit_16(1085); -emit_16(1150); -emit_16(1086); -emit_16(1150); -emit_16(1085); -emit_16(1150); -emit_16(1086); -emit_16(1151); -emit_16(1087); -emit_16(1151); -emit_16(1086); -emit_16(1152); -emit_16(1088); -emit_16(1153); -emit_16(1089); -emit_16(1153); -emit_16(1088); -emit_16(1153); -emit_16(1089); -emit_16(1154); -emit_16(1090); -emit_16(1154); -emit_16(1089); -emit_16(1154); -emit_16(1090); -emit_16(1155); -emit_16(1091); -emit_16(1155); -emit_16(1090); -emit_16(1155); -emit_16(1091); -emit_16(1156); -emit_16(1092); -emit_16(1156); -emit_16(1091); -emit_16(1156); -emit_16(1092); -emit_16(1157); -emit_16(1093); -emit_16(1157); -emit_16(1092); -emit_16(1157); -emit_16(1093); -emit_16(1158); -emit_16(1094); -emit_16(1158); -emit_16(1093); -emit_16(1158); -emit_16(1094); -emit_16(1159); -emit_16(1095); -emit_16(1159); -emit_16(1094); -emit_16(1159); -emit_16(1095); -emit_16(1160); -emit_16(1096); -emit_16(1160); -emit_16(1095); -emit_16(1160); -emit_16(1096); -emit_16(1161); -emit_16(1097); -emit_16(1161); -emit_16(1096); -emit_16(1161); -emit_16(1097); -emit_16(1162); -emit_16(1098); -emit_16(1162); -emit_16(1097); -emit_16(1162); -emit_16(1098); -emit_16(1163); -emit_16(1099); -emit_16(1163); -emit_16(1098); -emit_16(1163); -emit_16(1099); -emit_16(1164); -emit_16(1100); -emit_16(1164); -emit_16(1099); -emit_16(1164); -emit_16(1100); -emit_16(1165); -emit_16(1101); -emit_16(1165); -emit_16(1100); -emit_16(1165); -emit_16(1101); -emit_16(1166); -emit_16(1102); -emit_16(1166); -emit_16(1101); -emit_16(1166); -emit_16(1102); -emit_16(1167); -emit_16(1103); -emit_16(1167); -emit_16(1102); -emit_16(1167); -emit_16(1103); -emit_16(1168); -emit_16(1104); -emit_16(1168); -emit_16(1103); -emit_16(1168); -emit_16(1104); -emit_16(1169); -emit_16(1105); -emit_16(1169); -emit_16(1104); -emit_16(1169); -emit_16(1105); -emit_16(1170); -emit_16(1106); -emit_16(1170); -emit_16(1105); -emit_16(1170); -emit_16(1106); -emit_16(1171); -emit_16(1107); -emit_16(1171); -emit_16(1106); -emit_16(1171); -emit_16(1107); -emit_16(1172); -emit_16(1108); -emit_16(1172); -emit_16(1107); -emit_16(1172); -emit_16(1108); -emit_16(1173); -emit_16(1109); -emit_16(1173); -emit_16(1108); -emit_16(1173); -emit_16(1109); -emit_16(1174); -emit_16(1110); -emit_16(1174); -emit_16(1109); -emit_16(1174); -emit_16(1110); -emit_16(1175); -emit_16(1111); -emit_16(1175); -emit_16(1110); -emit_16(1175); -emit_16(1111); -emit_16(1176); -emit_16(1112); -emit_16(1176); -emit_16(1111); -emit_16(1176); -emit_16(1112); -emit_16(1177); -emit_16(1113); -emit_16(1177); -emit_16(1112); -emit_16(1177); -emit_16(1113); -emit_16(1178); -emit_16(1114); -emit_16(1178); -emit_16(1113); -emit_16(1178); -emit_16(1114); -emit_16(1179); -emit_16(1115); -emit_16(1179); -emit_16(1114); -emit_16(1179); -emit_16(1115); -emit_16(1180); -emit_16(1116); -emit_16(1180); -emit_16(1115); -emit_16(1180); -emit_16(1116); -emit_16(1181); -emit_16(1117); -emit_16(1181); -emit_16(1116); -emit_16(1181); -emit_16(1117); -emit_16(1182); -emit_16(1118); -emit_16(1182); -emit_16(1117); -emit_16(1182); -emit_16(1118); -emit_16(1183); -emit_16(1119); -emit_16(1183); -emit_16(1118); -emit_16(1183); -emit_16(1119); -emit_16(1184); -emit_16(1120); -emit_16(1184); -emit_16(1119); -emit_16(1184); -emit_16(1120); -emit_16(1185); -emit_16(1121); -emit_16(1185); -emit_16(1120); -emit_16(1185); -emit_16(1121); -emit_16(1186); -emit_16(1122); -emit_16(1186); -emit_16(1121); -emit_16(1186); -emit_16(1122); -emit_16(1187); -emit_16(1123); -emit_16(1187); -emit_16(1122); -emit_16(1187); -emit_16(1123); -emit_16(1188); -emit_16(1124); -emit_16(1188); -emit_16(1123); -emit_16(1188); -emit_16(1124); -emit_16(1189); -emit_16(1125); -emit_16(1189); -emit_16(1124); -emit_16(1189); -emit_16(1125); -emit_16(1190); -emit_16(1126); -emit_16(1190); -emit_16(1125); -emit_16(1190); -emit_16(1126); -emit_16(1191); -emit_16(1127); -emit_16(1191); -emit_16(1126); -emit_16(1191); -emit_16(1127); -emit_16(1192); -emit_16(1128); -emit_16(1192); -emit_16(1127); -emit_16(1192); -emit_16(1128); -emit_16(1193); -emit_16(1129); -emit_16(1193); -emit_16(1128); -emit_16(1193); -emit_16(1129); -emit_16(1194); -emit_16(1130); -emit_16(1194); -emit_16(1129); -emit_16(1194); -emit_16(1130); -emit_16(1195); -emit_16(1131); -emit_16(1195); -emit_16(1130); -emit_16(1195); -emit_16(1131); -emit_16(1196); -emit_16(1132); -emit_16(1196); -emit_16(1131); -emit_16(1196); -emit_16(1132); -emit_16(1197); -emit_16(1133); -emit_16(1197); -emit_16(1132); -emit_16(1197); -emit_16(1133); -emit_16(1198); -emit_16(1134); -emit_16(1198); -emit_16(1133); -emit_16(1198); -emit_16(1134); -emit_16(1199); -emit_16(1135); -emit_16(1199); -emit_16(1134); -emit_16(1199); -emit_16(1135); -emit_16(1200); -emit_16(1136); -emit_16(1200); -emit_16(1135); -emit_16(1200); -emit_16(1136); -emit_16(1201); -emit_16(1137); -emit_16(1201); -emit_16(1136); -emit_16(1201); -emit_16(1137); -emit_16(1202); -emit_16(1138); -emit_16(1202); -emit_16(1137); -emit_16(1202); -emit_16(1138); -emit_16(1203); -emit_16(1139); -emit_16(1203); -emit_16(1138); -emit_16(1203); -emit_16(1139); -emit_16(1204); -emit_16(1140); -emit_16(1204); -emit_16(1139); -emit_16(1204); -emit_16(1140); -emit_16(1205); -emit_16(1141); -emit_16(1205); -emit_16(1140); -emit_16(1205); -emit_16(1141); -emit_16(1206); -emit_16(1142); -emit_16(1206); -emit_16(1141); -emit_16(1206); -emit_16(1142); -emit_16(1207); -emit_16(1143); -emit_16(1207); -emit_16(1142); -emit_16(1207); -emit_16(1143); -emit_16(1208); -emit_16(1144); -emit_16(1208); -emit_16(1143); -emit_16(1208); -emit_16(1144); -emit_16(1209); -emit_16(1145); -emit_16(1209); -emit_16(1144); -emit_16(1209); -emit_16(1145); -emit_16(1210); -emit_16(1146); -emit_16(1210); -emit_16(1145); -emit_16(1210); -emit_16(1146); -emit_16(1211); -emit_16(1147); -emit_16(1211); -emit_16(1146); -emit_16(1211); -emit_16(1147); -emit_16(1212); -emit_16(1148); -emit_16(1212); -emit_16(1147); -emit_16(1212); -emit_16(1148); -emit_16(1213); -emit_16(1149); -emit_16(1213); -emit_16(1148); -emit_16(1213); -emit_16(1149); -emit_16(1214); -emit_16(1150); -emit_16(1214); -emit_16(1149); -emit_16(1214); -emit_16(1150); -emit_16(1215); -emit_16(1151); -emit_16(1215); -emit_16(1150); -emit_16(1216); -emit_16(1152); -emit_16(1217); -emit_16(1153); -emit_16(1217); -emit_16(1152); -emit_16(1217); -emit_16(1153); -emit_16(1218); -emit_16(1154); -emit_16(1218); -emit_16(1153); -emit_16(1218); -emit_16(1154); -emit_16(1219); -emit_16(1155); -emit_16(1219); -emit_16(1154); -emit_16(1219); -emit_16(1155); -emit_16(1220); -emit_16(1156); -emit_16(1220); -emit_16(1155); -emit_16(1220); -emit_16(1156); -emit_16(1221); -emit_16(1157); -emit_16(1221); -emit_16(1156); -emit_16(1221); -emit_16(1157); -emit_16(1222); -emit_16(1158); -emit_16(1222); -emit_16(1157); -emit_16(1222); -emit_16(1158); -emit_16(1223); -emit_16(1159); -emit_16(1223); -emit_16(1158); -emit_16(1223); -emit_16(1159); -emit_16(1224); -emit_16(1160); -emit_16(1224); -emit_16(1159); -emit_16(1224); -emit_16(1160); -emit_16(1225); -emit_16(1161); -emit_16(1225); -emit_16(1160); -emit_16(1225); -emit_16(1161); -emit_16(1226); -emit_16(1162); -emit_16(1226); -emit_16(1161); -emit_16(1226); -emit_16(1162); -emit_16(1227); -emit_16(1163); -emit_16(1227); -emit_16(1162); -emit_16(1227); -emit_16(1163); -emit_16(1228); -emit_16(1164); -emit_16(1228); -emit_16(1163); -emit_16(1228); -emit_16(1164); -emit_16(1229); -emit_16(1165); -emit_16(1229); -emit_16(1164); -emit_16(1229); -emit_16(1165); -emit_16(1230); -emit_16(1166); -emit_16(1230); -emit_16(1165); -emit_16(1230); -emit_16(1166); -emit_16(1231); -emit_16(1167); -emit_16(1231); -emit_16(1166); -emit_16(1231); -emit_16(1167); -emit_16(1232); -emit_16(1168); -emit_16(1232); -emit_16(1167); -emit_16(1232); -emit_16(1168); -emit_16(1233); -emit_16(1169); -emit_16(1233); -emit_16(1168); -emit_16(1233); -emit_16(1169); -emit_16(1234); -emit_16(1170); -emit_16(1234); -emit_16(1169); -emit_16(1234); -emit_16(1170); -emit_16(1235); -emit_16(1171); -emit_16(1235); -emit_16(1170); -emit_16(1235); -emit_16(1171); -emit_16(1236); -emit_16(1172); -emit_16(1236); -emit_16(1171); -emit_16(1236); -emit_16(1172); -emit_16(1237); -emit_16(1173); -emit_16(1237); -emit_16(1172); -emit_16(1237); -emit_16(1173); -emit_16(1238); -emit_16(1174); -emit_16(1238); -emit_16(1173); -emit_16(1238); -emit_16(1174); -emit_16(1239); -emit_16(1175); -emit_16(1239); -emit_16(1174); -emit_16(1239); -emit_16(1175); -emit_16(1240); -emit_16(1176); -emit_16(1240); -emit_16(1175); -emit_16(1240); -emit_16(1176); -emit_16(1241); -emit_16(1177); -emit_16(1241); -emit_16(1176); -emit_16(1241); -emit_16(1177); -emit_16(1242); -emit_16(1178); -emit_16(1242); -emit_16(1177); -emit_16(1242); -emit_16(1178); -emit_16(1243); -emit_16(1179); -emit_16(1243); -emit_16(1178); -emit_16(1243); -emit_16(1179); -emit_16(1244); -emit_16(1180); -emit_16(1244); -emit_16(1179); -emit_16(1244); -emit_16(1180); -emit_16(1245); -emit_16(1181); -emit_16(1245); -emit_16(1180); -emit_16(1245); -emit_16(1181); -emit_16(1246); -emit_16(1182); -emit_16(1246); -emit_16(1181); -emit_16(1246); -emit_16(1182); -emit_16(1247); -emit_16(1183); -emit_16(1247); -emit_16(1182); -emit_16(1247); -emit_16(1183); -emit_16(1248); -emit_16(1184); -emit_16(1248); -emit_16(1183); -emit_16(1248); -emit_16(1184); -emit_16(1249); -emit_16(1185); -emit_16(1249); -emit_16(1184); -emit_16(1249); -emit_16(1185); -emit_16(1250); -emit_16(1186); -emit_16(1250); -emit_16(1185); -emit_16(1250); -emit_16(1186); -emit_16(1251); -emit_16(1187); -emit_16(1251); -emit_16(1186); -emit_16(1251); -emit_16(1187); -emit_16(1252); -emit_16(1188); -emit_16(1252); -emit_16(1187); -emit_16(1252); -emit_16(1188); -emit_16(1253); -emit_16(1189); -emit_16(1253); -emit_16(1188); -emit_16(1253); -emit_16(1189); -emit_16(1254); -emit_16(1190); -emit_16(1254); -emit_16(1189); -emit_16(1254); -emit_16(1190); -emit_16(1255); -emit_16(1191); -emit_16(1255); -emit_16(1190); -emit_16(1255); -emit_16(1191); -emit_16(1256); -emit_16(1192); -emit_16(1256); -emit_16(1191); -emit_16(1256); -emit_16(1192); -emit_16(1257); -emit_16(1193); -emit_16(1257); -emit_16(1192); -emit_16(1257); -emit_16(1193); -emit_16(1258); -emit_16(1194); -emit_16(1258); -emit_16(1193); -emit_16(1258); -emit_16(1194); -emit_16(1259); -emit_16(1195); -emit_16(1259); -emit_16(1194); -emit_16(1259); -emit_16(1195); -emit_16(1260); -emit_16(1196); -emit_16(1260); -emit_16(1195); -emit_16(1260); -emit_16(1196); -emit_16(1261); -emit_16(1197); -emit_16(1261); -emit_16(1196); -emit_16(1261); -emit_16(1197); -emit_16(1262); -emit_16(1198); -emit_16(1262); -emit_16(1197); -emit_16(1262); -emit_16(1198); -emit_16(1263); -emit_16(1199); -emit_16(1263); -emit_16(1198); -emit_16(1263); -emit_16(1199); -emit_16(1264); -emit_16(1200); -emit_16(1264); -emit_16(1199); -emit_16(1264); -emit_16(1200); -emit_16(1265); -emit_16(1201); -emit_16(1265); -emit_16(1200); -emit_16(1265); -emit_16(1201); -emit_16(1266); -emit_16(1202); -emit_16(1266); -emit_16(1201); -emit_16(1266); -emit_16(1202); -emit_16(1267); -emit_16(1203); -emit_16(1267); -emit_16(1202); -emit_16(1267); -emit_16(1203); -emit_16(1268); -emit_16(1204); -emit_16(1268); -emit_16(1203); -emit_16(1268); -emit_16(1204); -emit_16(1269); -emit_16(1205); -emit_16(1269); -emit_16(1204); -emit_16(1269); -emit_16(1205); -emit_16(1270); -emit_16(1206); -emit_16(1270); -emit_16(1205); -emit_16(1270); -emit_16(1206); -emit_16(1271); -emit_16(1207); -emit_16(1271); -emit_16(1206); -emit_16(1271); -emit_16(1207); -emit_16(1272); -emit_16(1208); -emit_16(1272); -emit_16(1207); -emit_16(1272); -emit_16(1208); -emit_16(1273); -emit_16(1209); -emit_16(1273); -emit_16(1208); -emit_16(1273); -emit_16(1209); -emit_16(1274); -emit_16(1210); -emit_16(1274); -emit_16(1209); -emit_16(1274); -emit_16(1210); -emit_16(1275); -emit_16(1211); -emit_16(1275); -emit_16(1210); -emit_16(1275); -emit_16(1211); -emit_16(1276); -emit_16(1212); -emit_16(1276); -emit_16(1211); -emit_16(1276); -emit_16(1212); -emit_16(1277); -emit_16(1213); -emit_16(1277); -emit_16(1212); -emit_16(1277); -emit_16(1213); -emit_16(1278); -emit_16(1214); -emit_16(1278); -emit_16(1213); -emit_16(1278); -emit_16(1214); -emit_16(1279); -emit_16(1215); -emit_16(1279); -emit_16(1214); -emit_16(1280); -emit_16(1216); -emit_16(1281); -emit_16(1217); -emit_16(1281); -emit_16(1216); -emit_16(1281); -emit_16(1217); -emit_16(1282); -emit_16(1218); -emit_16(1282); -emit_16(1217); -emit_16(1282); -emit_16(1218); -emit_16(1283); -emit_16(1219); -emit_16(1283); -emit_16(1218); -emit_16(1283); -emit_16(1219); -emit_16(1284); -emit_16(1220); -emit_16(1284); -emit_16(1219); -emit_16(1284); -emit_16(1220); -emit_16(1285); -emit_16(1221); -emit_16(1285); -emit_16(1220); -emit_16(1285); -emit_16(1221); -emit_16(1286); -emit_16(1222); -emit_16(1286); -emit_16(1221); -emit_16(1286); -emit_16(1222); -emit_16(1287); -emit_16(1223); -emit_16(1287); -emit_16(1222); -emit_16(1287); -emit_16(1223); -emit_16(1288); -emit_16(1224); -emit_16(1288); -emit_16(1223); -emit_16(1288); -emit_16(1224); -emit_16(1289); -emit_16(1225); -emit_16(1289); -emit_16(1224); -emit_16(1289); -emit_16(1225); -emit_16(1290); -emit_16(1226); -emit_16(1290); -emit_16(1225); -emit_16(1290); -emit_16(1226); -emit_16(1291); -emit_16(1227); -emit_16(1291); -emit_16(1226); -emit_16(1291); -emit_16(1227); -emit_16(1292); -emit_16(1228); -emit_16(1292); -emit_16(1227); -emit_16(1292); -emit_16(1228); -emit_16(1293); -emit_16(1229); -emit_16(1293); -emit_16(1228); -emit_16(1293); -emit_16(1229); -emit_16(1294); -emit_16(1230); -emit_16(1294); -emit_16(1229); -emit_16(1294); -emit_16(1230); -emit_16(1295); -emit_16(1231); -emit_16(1295); -emit_16(1230); -emit_16(1295); -emit_16(1231); -emit_16(1296); -emit_16(1232); -emit_16(1296); -emit_16(1231); -emit_16(1296); -emit_16(1232); -emit_16(1297); -emit_16(1233); -emit_16(1297); -emit_16(1232); -emit_16(1297); -emit_16(1233); -emit_16(1298); -emit_16(1234); -emit_16(1298); -emit_16(1233); -emit_16(1298); -emit_16(1234); -emit_16(1299); -emit_16(1235); -emit_16(1299); -emit_16(1234); -emit_16(1299); -emit_16(1235); -emit_16(1300); -emit_16(1236); -emit_16(1300); -emit_16(1235); -emit_16(1300); -emit_16(1236); -emit_16(1301); -emit_16(1237); -emit_16(1301); -emit_16(1236); -emit_16(1301); -emit_16(1237); -emit_16(1302); -emit_16(1238); -emit_16(1302); -emit_16(1237); -emit_16(1302); -emit_16(1238); -emit_16(1303); -emit_16(1239); -emit_16(1303); -emit_16(1238); -emit_16(1303); -emit_16(1239); -emit_16(1304); -emit_16(1240); -emit_16(1304); -emit_16(1239); -emit_16(1304); -emit_16(1240); -emit_16(1305); -emit_16(1241); -emit_16(1305); -emit_16(1240); -emit_16(1305); -emit_16(1241); -emit_16(1306); -emit_16(1242); -emit_16(1306); -emit_16(1241); -emit_16(1306); -emit_16(1242); -emit_16(1307); -emit_16(1243); -emit_16(1307); -emit_16(1242); -emit_16(1307); -emit_16(1243); -emit_16(1308); -emit_16(1244); -emit_16(1308); -emit_16(1243); -emit_16(1308); -emit_16(1244); -emit_16(1309); -emit_16(1245); -emit_16(1309); -emit_16(1244); -emit_16(1309); -emit_16(1245); -emit_16(1310); -emit_16(1246); -emit_16(1310); -emit_16(1245); -emit_16(1310); -emit_16(1246); -emit_16(1311); -emit_16(1247); -emit_16(1311); -emit_16(1246); -emit_16(1311); -emit_16(1247); -emit_16(1312); -emit_16(1248); -emit_16(1312); -emit_16(1247); -emit_16(1312); -emit_16(1248); -emit_16(1313); -emit_16(1249); -emit_16(1313); -emit_16(1248); -emit_16(1313); -emit_16(1249); -emit_16(1314); -emit_16(1250); -emit_16(1314); -emit_16(1249); -emit_16(1314); -emit_16(1250); -emit_16(1315); -emit_16(1251); -emit_16(1315); -emit_16(1250); -emit_16(1315); -emit_16(1251); -emit_16(1316); -emit_16(1252); -emit_16(1316); -emit_16(1251); -emit_16(1316); -emit_16(1252); -emit_16(1317); -emit_16(1253); -emit_16(1317); -emit_16(1252); -emit_16(1317); -emit_16(1253); -emit_16(1318); -emit_16(1254); -emit_16(1318); -emit_16(1253); -emit_16(1318); -emit_16(1254); -emit_16(1319); -emit_16(1255); -emit_16(1319); -emit_16(1254); -emit_16(1319); -emit_16(1255); -emit_16(1320); -emit_16(1256); -emit_16(1320); -emit_16(1255); -emit_16(1320); -emit_16(1256); -emit_16(1321); -emit_16(1257); -emit_16(1321); -emit_16(1256); -emit_16(1321); -emit_16(1257); -emit_16(1322); -emit_16(1258); -emit_16(1322); -emit_16(1257); -emit_16(1322); -emit_16(1258); -emit_16(1323); -emit_16(1259); -emit_16(1323); -emit_16(1258); -emit_16(1323); -emit_16(1259); -emit_16(1324); -emit_16(1260); -emit_16(1324); -emit_16(1259); -emit_16(1324); -emit_16(1260); -emit_16(1325); -emit_16(1261); -emit_16(1325); -emit_16(1260); -emit_16(1325); -emit_16(1261); -emit_16(1326); -emit_16(1262); -emit_16(1326); -emit_16(1261); -emit_16(1326); -emit_16(1262); -emit_16(1327); -emit_16(1263); -emit_16(1327); -emit_16(1262); -emit_16(1327); -emit_16(1263); -emit_16(1328); -emit_16(1264); -emit_16(1328); -emit_16(1263); -emit_16(1328); -emit_16(1264); -emit_16(1329); -emit_16(1265); -emit_16(1329); -emit_16(1264); -emit_16(1329); -emit_16(1265); -emit_16(1330); -emit_16(1266); -emit_16(1330); -emit_16(1265); -emit_16(1330); -emit_16(1266); -emit_16(1331); -emit_16(1267); -emit_16(1331); -emit_16(1266); -emit_16(1331); -emit_16(1267); -emit_16(1332); -emit_16(1268); -emit_16(1332); -emit_16(1267); -emit_16(1332); -emit_16(1268); -emit_16(1333); -emit_16(1269); -emit_16(1333); -emit_16(1268); -emit_16(1333); -emit_16(1269); -emit_16(1334); -emit_16(1270); -emit_16(1334); -emit_16(1269); -emit_16(1334); -emit_16(1270); -emit_16(1335); -emit_16(1271); -emit_16(1335); -emit_16(1270); -emit_16(1335); -emit_16(1271); -emit_16(1336); -emit_16(1272); -emit_16(1336); -emit_16(1271); -emit_16(1336); -emit_16(1272); -emit_16(1337); -emit_16(1273); -emit_16(1337); -emit_16(1272); -emit_16(1337); -emit_16(1273); -emit_16(1338); -emit_16(1274); -emit_16(1338); -emit_16(1273); -emit_16(1338); -emit_16(1274); -emit_16(1339); -emit_16(1275); -emit_16(1339); -emit_16(1274); -emit_16(1339); -emit_16(1275); -emit_16(1340); -emit_16(1276); -emit_16(1340); -emit_16(1275); -emit_16(1340); -emit_16(1276); -emit_16(1341); -emit_16(1277); -emit_16(1341); -emit_16(1276); -emit_16(1341); -emit_16(1277); -emit_16(1342); -emit_16(1278); -emit_16(1342); -emit_16(1277); -emit_16(1342); -emit_16(1278); -emit_16(1343); -emit_16(1279); -emit_16(1343); -emit_16(1278); -emit_16(1344); -emit_16(1280); -emit_16(1345); -emit_16(1281); -emit_16(1345); -emit_16(1280); -emit_16(1345); -emit_16(1281); -emit_16(1346); -emit_16(1282); -emit_16(1346); -emit_16(1281); -emit_16(1346); -emit_16(1282); -emit_16(1347); -emit_16(1283); -emit_16(1347); -emit_16(1282); -emit_16(1347); -emit_16(1283); -emit_16(1348); -emit_16(1284); -emit_16(1348); -emit_16(1283); -emit_16(1348); -emit_16(1284); -emit_16(1349); -emit_16(1285); -emit_16(1349); -emit_16(1284); -emit_16(1349); -emit_16(1285); -emit_16(1350); -emit_16(1286); -emit_16(1350); -emit_16(1285); -emit_16(1350); -emit_16(1286); -emit_16(1351); -emit_16(1287); -emit_16(1351); -emit_16(1286); -emit_16(1351); -emit_16(1287); -emit_16(1352); -emit_16(1288); -emit_16(1352); -emit_16(1287); -emit_16(1352); -emit_16(1288); -emit_16(1353); -emit_16(1289); -emit_16(1353); -emit_16(1288); -emit_16(1353); -emit_16(1289); -emit_16(1354); -emit_16(1290); -emit_16(1354); -emit_16(1289); -emit_16(1354); -emit_16(1290); -emit_16(1355); -emit_16(1291); -emit_16(1355); -emit_16(1290); -emit_16(1355); -emit_16(1291); -emit_16(1356); -emit_16(1292); -emit_16(1356); -emit_16(1291); -emit_16(1356); -emit_16(1292); -emit_16(1357); -emit_16(1293); -emit_16(1357); -emit_16(1292); -emit_16(1357); -emit_16(1293); -emit_16(1358); -emit_16(1294); -emit_16(1358); -emit_16(1293); -emit_16(1358); -emit_16(1294); -emit_16(1359); -emit_16(1295); -emit_16(1359); -emit_16(1294); -emit_16(1359); -emit_16(1295); -emit_16(1360); -emit_16(1296); -emit_16(1360); -emit_16(1295); -emit_16(1360); -emit_16(1296); -emit_16(1361); -emit_16(1297); -emit_16(1361); -emit_16(1296); -emit_16(1361); -emit_16(1297); -emit_16(1362); -emit_16(1298); -emit_16(1362); -emit_16(1297); -emit_16(1362); -emit_16(1298); -emit_16(1363); -emit_16(1299); -emit_16(1363); -emit_16(1298); -emit_16(1363); -emit_16(1299); -emit_16(1364); -emit_16(1300); -emit_16(1364); -emit_16(1299); -emit_16(1364); -emit_16(1300); -emit_16(1365); -emit_16(1301); -emit_16(1365); -emit_16(1300); -emit_16(1365); -emit_16(1301); -emit_16(1366); -emit_16(1302); -emit_16(1366); -emit_16(1301); -emit_16(1366); -emit_16(1302); -emit_16(1367); -emit_16(1303); -emit_16(1367); -emit_16(1302); -emit_16(1367); -emit_16(1303); -emit_16(1368); -emit_16(1304); -emit_16(1368); -emit_16(1303); -emit_16(1368); -emit_16(1304); -emit_16(1369); -emit_16(1305); -emit_16(1369); -emit_16(1304); -emit_16(1369); -emit_16(1305); -emit_16(1370); -emit_16(1306); -emit_16(1370); -emit_16(1305); -emit_16(1370); -emit_16(1306); -emit_16(1371); -emit_16(1307); -emit_16(1371); -emit_16(1306); -emit_16(1371); -emit_16(1307); -emit_16(1372); -emit_16(1308); -emit_16(1372); -emit_16(1307); -emit_16(1372); -emit_16(1308); -emit_16(1373); -emit_16(1309); -emit_16(1373); -emit_16(1308); -emit_16(1373); -emit_16(1309); -emit_16(1374); -emit_16(1310); -emit_16(1374); -emit_16(1309); -emit_16(1374); -emit_16(1310); -emit_16(1375); -emit_16(1311); -emit_16(1375); -emit_16(1310); -emit_16(1375); -emit_16(1311); -emit_16(1376); -emit_16(1312); -emit_16(1376); -emit_16(1311); -emit_16(1376); -emit_16(1312); -emit_16(1377); -emit_16(1313); -emit_16(1377); -emit_16(1312); -emit_16(1377); -emit_16(1313); -emit_16(1378); -emit_16(1314); -emit_16(1378); -emit_16(1313); -emit_16(1378); -emit_16(1314); -emit_16(1379); -emit_16(1315); -emit_16(1379); -emit_16(1314); -emit_16(1379); -emit_16(1315); -emit_16(1380); -emit_16(1316); -emit_16(1380); -emit_16(1315); -emit_16(1380); -emit_16(1316); -emit_16(1381); -emit_16(1317); -emit_16(1381); -emit_16(1316); -emit_16(1381); -emit_16(1317); -emit_16(1382); -emit_16(1318); -emit_16(1382); -emit_16(1317); -emit_16(1382); -emit_16(1318); -emit_16(1383); -emit_16(1319); -emit_16(1383); -emit_16(1318); -emit_16(1383); -emit_16(1319); -emit_16(1384); -emit_16(1320); -emit_16(1384); -emit_16(1319); -emit_16(1384); -emit_16(1320); -emit_16(1385); -emit_16(1321); -emit_16(1385); -emit_16(1320); -emit_16(1385); -emit_16(1321); -emit_16(1386); -emit_16(1322); -emit_16(1386); -emit_16(1321); -emit_16(1386); -emit_16(1322); -emit_16(1387); -emit_16(1323); -emit_16(1387); -emit_16(1322); -emit_16(1387); -emit_16(1323); -emit_16(1388); -emit_16(1324); -emit_16(1388); -emit_16(1323); -emit_16(1388); -emit_16(1324); -emit_16(1389); -emit_16(1325); -emit_16(1389); -emit_16(1324); -emit_16(1389); -emit_16(1325); -emit_16(1390); -emit_16(1326); -emit_16(1390); -emit_16(1325); -emit_16(1390); -emit_16(1326); -emit_16(1391); -emit_16(1327); -emit_16(1391); -emit_16(1326); -emit_16(1391); -emit_16(1327); -emit_16(1392); -emit_16(1328); -emit_16(1392); -emit_16(1327); -emit_16(1392); -emit_16(1328); -emit_16(1393); -emit_16(1329); -emit_16(1393); -emit_16(1328); -emit_16(1393); -emit_16(1329); -emit_16(1394); -emit_16(1330); -emit_16(1394); -emit_16(1329); -emit_16(1394); -emit_16(1330); -emit_16(1395); -emit_16(1331); -emit_16(1395); -emit_16(1330); -emit_16(1395); -emit_16(1331); -emit_16(1396); -emit_16(1332); -emit_16(1396); -emit_16(1331); -emit_16(1396); -emit_16(1332); -emit_16(1397); -emit_16(1333); -emit_16(1397); -emit_16(1332); -emit_16(1397); -emit_16(1333); -emit_16(1398); -emit_16(1334); -emit_16(1398); -emit_16(1333); -emit_16(1398); -emit_16(1334); -emit_16(1399); -emit_16(1335); -emit_16(1399); -emit_16(1334); -emit_16(1399); -emit_16(1335); -emit_16(1400); -emit_16(1336); -emit_16(1400); -emit_16(1335); -emit_16(1400); -emit_16(1336); -emit_16(1401); -emit_16(1337); -emit_16(1401); -emit_16(1336); -emit_16(1401); -emit_16(1337); -emit_16(1402); -emit_16(1338); -emit_16(1402); -emit_16(1337); -emit_16(1402); -emit_16(1338); -emit_16(1403); -emit_16(1339); -emit_16(1403); -emit_16(1338); -emit_16(1403); -emit_16(1339); -emit_16(1404); -emit_16(1340); -emit_16(1404); -emit_16(1339); -emit_16(1404); -emit_16(1340); -emit_16(1405); -emit_16(1341); -emit_16(1405); -emit_16(1340); -emit_16(1405); -emit_16(1341); -emit_16(1406); -emit_16(1342); -emit_16(1406); -emit_16(1341); -emit_16(1406); -emit_16(1342); -emit_16(1407); -emit_16(1343); -emit_16(1407); -emit_16(1342); -emit_16(1408); -emit_16(1344); -emit_16(1409); -emit_16(1345); -emit_16(1409); -emit_16(1344); -emit_16(1409); -emit_16(1345); -emit_16(1410); -emit_16(1346); -emit_16(1410); -emit_16(1345); -emit_16(1410); -emit_16(1346); -emit_16(1411); -emit_16(1347); -emit_16(1411); -emit_16(1346); -emit_16(1411); -emit_16(1347); -emit_16(1412); -emit_16(1348); -emit_16(1412); -emit_16(1347); -emit_16(1412); -emit_16(1348); -emit_16(1413); -emit_16(1349); -emit_16(1413); -emit_16(1348); -emit_16(1413); -emit_16(1349); -emit_16(1414); -emit_16(1350); -emit_16(1414); -emit_16(1349); -emit_16(1414); -emit_16(1350); -emit_16(1415); -emit_16(1351); -emit_16(1415); -emit_16(1350); -emit_16(1415); -emit_16(1351); -emit_16(1416); -emit_16(1352); -emit_16(1416); -emit_16(1351); -emit_16(1416); -emit_16(1352); -emit_16(1417); -emit_16(1353); -emit_16(1417); -emit_16(1352); -emit_16(1417); -emit_16(1353); -emit_16(1418); -emit_16(1354); -emit_16(1418); -emit_16(1353); -emit_16(1418); -emit_16(1354); -emit_16(1419); -emit_16(1355); -emit_16(1419); -emit_16(1354); -emit_16(1419); -emit_16(1355); -emit_16(1420); -emit_16(1356); -emit_16(1420); -emit_16(1355); -emit_16(1420); -emit_16(1356); -emit_16(1421); -emit_16(1357); -emit_16(1421); -emit_16(1356); -emit_16(1421); -emit_16(1357); -emit_16(1422); -emit_16(1358); -emit_16(1422); -emit_16(1357); -emit_16(1422); -emit_16(1358); -emit_16(1423); -emit_16(1359); -emit_16(1423); -emit_16(1358); -emit_16(1423); -emit_16(1359); -emit_16(1424); -emit_16(1360); -emit_16(1424); -emit_16(1359); -emit_16(1424); -emit_16(1360); -emit_16(1425); -emit_16(1361); -emit_16(1425); -emit_16(1360); -emit_16(1425); -emit_16(1361); -emit_16(1426); -emit_16(1362); -emit_16(1426); -emit_16(1361); -emit_16(1426); -emit_16(1362); -emit_16(1427); -emit_16(1363); -emit_16(1427); -emit_16(1362); -emit_16(1427); -emit_16(1363); -emit_16(1428); -emit_16(1364); -emit_16(1428); -emit_16(1363); -emit_16(1428); -emit_16(1364); -emit_16(1429); -emit_16(1365); -emit_16(1429); -emit_16(1364); -emit_16(1429); -emit_16(1365); -emit_16(1430); -emit_16(1366); -emit_16(1430); -emit_16(1365); -emit_16(1430); -emit_16(1366); -emit_16(1431); -emit_16(1367); -emit_16(1431); -emit_16(1366); -emit_16(1431); -emit_16(1367); -emit_16(1432); -emit_16(1368); -emit_16(1432); -emit_16(1367); -emit_16(1432); -emit_16(1368); -emit_16(1433); -emit_16(1369); -emit_16(1433); -emit_16(1368); -emit_16(1433); -emit_16(1369); -emit_16(1434); -emit_16(1370); -emit_16(1434); -emit_16(1369); -emit_16(1434); -emit_16(1370); -emit_16(1435); -emit_16(1371); -emit_16(1435); -emit_16(1370); -emit_16(1435); -emit_16(1371); -emit_16(1436); -emit_16(1372); -emit_16(1436); -emit_16(1371); -emit_16(1436); -emit_16(1372); -emit_16(1437); -emit_16(1373); -emit_16(1437); -emit_16(1372); -emit_16(1437); -emit_16(1373); -emit_16(1438); -emit_16(1374); -emit_16(1438); -emit_16(1373); -emit_16(1438); -emit_16(1374); -emit_16(1439); -emit_16(1375); -emit_16(1439); -emit_16(1374); -emit_16(1439); -emit_16(1375); -emit_16(1440); -emit_16(1376); -emit_16(1440); -emit_16(1375); -emit_16(1440); -emit_16(1376); -emit_16(1441); -emit_16(1377); -emit_16(1441); -emit_16(1376); -emit_16(1441); -emit_16(1377); -emit_16(1442); -emit_16(1378); -emit_16(1442); -emit_16(1377); -emit_16(1442); -emit_16(1378); -emit_16(1443); -emit_16(1379); -emit_16(1443); -emit_16(1378); -emit_16(1443); -emit_16(1379); -emit_16(1444); -emit_16(1380); -emit_16(1444); -emit_16(1379); -emit_16(1444); -emit_16(1380); -emit_16(1445); -emit_16(1381); -emit_16(1445); -emit_16(1380); -emit_16(1445); -emit_16(1381); -emit_16(1446); -emit_16(1382); -emit_16(1446); -emit_16(1381); -emit_16(1446); -emit_16(1382); -emit_16(1447); -emit_16(1383); -emit_16(1447); -emit_16(1382); -emit_16(1447); -emit_16(1383); -emit_16(1448); -emit_16(1384); -emit_16(1448); -emit_16(1383); -emit_16(1448); -emit_16(1384); -emit_16(1449); -emit_16(1385); -emit_16(1449); -emit_16(1384); -emit_16(1449); -emit_16(1385); -emit_16(1450); -emit_16(1386); -emit_16(1450); -emit_16(1385); -emit_16(1450); -emit_16(1386); -emit_16(1451); -emit_16(1387); -emit_16(1451); -emit_16(1386); -emit_16(1451); -emit_16(1387); -emit_16(1452); -emit_16(1388); -emit_16(1452); -emit_16(1387); -emit_16(1452); -emit_16(1388); -emit_16(1453); -emit_16(1389); -emit_16(1453); -emit_16(1388); -emit_16(1453); -emit_16(1389); -emit_16(1454); -emit_16(1390); -emit_16(1454); -emit_16(1389); -emit_16(1454); -emit_16(1390); -emit_16(1455); -emit_16(1391); -emit_16(1455); -emit_16(1390); -emit_16(1455); -emit_16(1391); -emit_16(1456); -emit_16(1392); -emit_16(1456); -emit_16(1391); -emit_16(1456); -emit_16(1392); -emit_16(1457); -emit_16(1393); -emit_16(1457); -emit_16(1392); -emit_16(1457); -emit_16(1393); -emit_16(1458); -emit_16(1394); -emit_16(1458); -emit_16(1393); -emit_16(1458); -emit_16(1394); -emit_16(1459); -emit_16(1395); -emit_16(1459); -emit_16(1394); -emit_16(1459); -emit_16(1395); -emit_16(1460); -emit_16(1396); -emit_16(1460); -emit_16(1395); -emit_16(1460); -emit_16(1396); -emit_16(1461); -emit_16(1397); -emit_16(1461); -emit_16(1396); -emit_16(1461); -emit_16(1397); -emit_16(1462); -emit_16(1398); -emit_16(1462); -emit_16(1397); -emit_16(1462); -emit_16(1398); -emit_16(1463); -emit_16(1399); -emit_16(1463); -emit_16(1398); -emit_16(1463); -emit_16(1399); -emit_16(1464); -emit_16(1400); -emit_16(1464); -emit_16(1399); -emit_16(1464); -emit_16(1400); -emit_16(1465); -emit_16(1401); -emit_16(1465); -emit_16(1400); -emit_16(1465); -emit_16(1401); -emit_16(1466); -emit_16(1402); -emit_16(1466); -emit_16(1401); -emit_16(1466); -emit_16(1402); -emit_16(1467); -emit_16(1403); -emit_16(1467); -emit_16(1402); -emit_16(1467); -emit_16(1403); -emit_16(1468); -emit_16(1404); -emit_16(1468); -emit_16(1403); -emit_16(1468); -emit_16(1404); -emit_16(1469); -emit_16(1405); -emit_16(1469); -emit_16(1404); -emit_16(1469); -emit_16(1405); -emit_16(1470); -emit_16(1406); -emit_16(1470); -emit_16(1405); -emit_16(1470); -emit_16(1406); -emit_16(1471); -emit_16(1407); -emit_16(1471); -emit_16(1406); -emit_16(1472); -emit_16(1408); -emit_16(1473); -emit_16(1409); -emit_16(1473); -emit_16(1408); -emit_16(1473); -emit_16(1409); -emit_16(1474); -emit_16(1410); -emit_16(1474); -emit_16(1409); -emit_16(1474); -emit_16(1410); -emit_16(1475); -emit_16(1411); -emit_16(1475); -emit_16(1410); -emit_16(1475); -emit_16(1411); -emit_16(1476); -emit_16(1412); -emit_16(1476); -emit_16(1411); -emit_16(1476); -emit_16(1412); -emit_16(1477); -emit_16(1413); -emit_16(1477); -emit_16(1412); -emit_16(1477); -emit_16(1413); -emit_16(1478); -emit_16(1414); -emit_16(1478); -emit_16(1413); -emit_16(1478); -emit_16(1414); -emit_16(1479); -emit_16(1415); -emit_16(1479); -emit_16(1414); -emit_16(1479); -emit_16(1415); -emit_16(1480); -emit_16(1416); -emit_16(1480); -emit_16(1415); -emit_16(1480); -emit_16(1416); -emit_16(1481); -emit_16(1417); -emit_16(1481); -emit_16(1416); -emit_16(1481); -emit_16(1417); -emit_16(1482); -emit_16(1418); -emit_16(1482); -emit_16(1417); -emit_16(1482); -emit_16(1418); -emit_16(1483); -emit_16(1419); -emit_16(1483); -emit_16(1418); -emit_16(1483); -emit_16(1419); -emit_16(1484); -emit_16(1420); -emit_16(1484); -emit_16(1419); -emit_16(1484); -emit_16(1420); -emit_16(1485); -emit_16(1421); -emit_16(1485); -emit_16(1420); -emit_16(1485); -emit_16(1421); -emit_16(1486); -emit_16(1422); -emit_16(1486); -emit_16(1421); -emit_16(1486); -emit_16(1422); -emit_16(1487); -emit_16(1423); -emit_16(1487); -emit_16(1422); -emit_16(1487); -emit_16(1423); -emit_16(1488); -emit_16(1424); -emit_16(1488); -emit_16(1423); -emit_16(1488); -emit_16(1424); -emit_16(1489); -emit_16(1425); -emit_16(1489); -emit_16(1424); -emit_16(1489); -emit_16(1425); -emit_16(1490); -emit_16(1426); -emit_16(1490); -emit_16(1425); -emit_16(1490); -emit_16(1426); -emit_16(1491); -emit_16(1427); -emit_16(1491); -emit_16(1426); -emit_16(1491); -emit_16(1427); -emit_16(1492); -emit_16(1428); -emit_16(1492); -emit_16(1427); -emit_16(1492); -emit_16(1428); -emit_16(1493); -emit_16(1429); -emit_16(1493); -emit_16(1428); -emit_16(1493); -emit_16(1429); -emit_16(1494); -emit_16(1430); -emit_16(1494); -emit_16(1429); -emit_16(1494); -emit_16(1430); -emit_16(1495); -emit_16(1431); -emit_16(1495); -emit_16(1430); -emit_16(1495); -emit_16(1431); -emit_16(1496); -emit_16(1432); -emit_16(1496); -emit_16(1431); -emit_16(1496); -emit_16(1432); -emit_16(1497); -emit_16(1433); -emit_16(1497); -emit_16(1432); -emit_16(1497); -emit_16(1433); -emit_16(1498); -emit_16(1434); -emit_16(1498); -emit_16(1433); -emit_16(1498); -emit_16(1434); -emit_16(1499); -emit_16(1435); -emit_16(1499); -emit_16(1434); -emit_16(1499); -emit_16(1435); -emit_16(1500); -emit_16(1436); -emit_16(1500); -emit_16(1435); -emit_16(1500); -emit_16(1436); -emit_16(1501); -emit_16(1437); -emit_16(1501); -emit_16(1436); -emit_16(1501); -emit_16(1437); -emit_16(1502); -emit_16(1438); -emit_16(1502); -emit_16(1437); -emit_16(1502); -emit_16(1438); -emit_16(1503); -emit_16(1439); -emit_16(1503); -emit_16(1438); -emit_16(1503); -emit_16(1439); -emit_16(1504); -emit_16(1440); -emit_16(1504); -emit_16(1439); -emit_16(1504); -emit_16(1440); -emit_16(1505); -emit_16(1441); -emit_16(1505); -emit_16(1440); -emit_16(1505); -emit_16(1441); -emit_16(1506); -emit_16(1442); -emit_16(1506); -emit_16(1441); -emit_16(1506); -emit_16(1442); -emit_16(1507); -emit_16(1443); -emit_16(1507); -emit_16(1442); -emit_16(1507); -emit_16(1443); -emit_16(1508); -emit_16(1444); -emit_16(1508); -emit_16(1443); -emit_16(1508); -emit_16(1444); -emit_16(1509); -emit_16(1445); -emit_16(1509); -emit_16(1444); -emit_16(1509); -emit_16(1445); -emit_16(1510); -emit_16(1446); -emit_16(1510); -emit_16(1445); -emit_16(1510); -emit_16(1446); -emit_16(1511); -emit_16(1447); -emit_16(1511); -emit_16(1446); -emit_16(1511); -emit_16(1447); -emit_16(1512); -emit_16(1448); -emit_16(1512); -emit_16(1447); -emit_16(1512); -emit_16(1448); -emit_16(1513); -emit_16(1449); -emit_16(1513); -emit_16(1448); -emit_16(1513); -emit_16(1449); -emit_16(1514); -emit_16(1450); -emit_16(1514); -emit_16(1449); -emit_16(1514); -emit_16(1450); -emit_16(1515); -emit_16(1451); -emit_16(1515); -emit_16(1450); -emit_16(1515); -emit_16(1451); -emit_16(1516); -emit_16(1452); -emit_16(1516); -emit_16(1451); -emit_16(1516); -emit_16(1452); -emit_16(1517); -emit_16(1453); -emit_16(1517); -emit_16(1452); -emit_16(1517); -emit_16(1453); -emit_16(1518); -emit_16(1454); -emit_16(1518); -emit_16(1453); -emit_16(1518); -emit_16(1454); -emit_16(1519); -emit_16(1455); -emit_16(1519); -emit_16(1454); -emit_16(1519); -emit_16(1455); -emit_16(1520); -emit_16(1456); -emit_16(1520); -emit_16(1455); -emit_16(1520); -emit_16(1456); -emit_16(1521); -emit_16(1457); -emit_16(1521); -emit_16(1456); -emit_16(1521); -emit_16(1457); -emit_16(1522); -emit_16(1458); -emit_16(1522); -emit_16(1457); -emit_16(1522); -emit_16(1458); -emit_16(1523); -emit_16(1459); -emit_16(1523); -emit_16(1458); -emit_16(1523); -emit_16(1459); -emit_16(1524); -emit_16(1460); -emit_16(1524); -emit_16(1459); -emit_16(1524); -emit_16(1460); -emit_16(1525); -emit_16(1461); -emit_16(1525); -emit_16(1460); -emit_16(1525); -emit_16(1461); -emit_16(1526); -emit_16(1462); -emit_16(1526); -emit_16(1461); -emit_16(1526); -emit_16(1462); -emit_16(1527); -emit_16(1463); -emit_16(1527); -emit_16(1462); -emit_16(1527); -emit_16(1463); -emit_16(1528); -emit_16(1464); -emit_16(1528); -emit_16(1463); -emit_16(1528); -emit_16(1464); -emit_16(1529); -emit_16(1465); -emit_16(1529); -emit_16(1464); -emit_16(1529); -emit_16(1465); -emit_16(1530); -emit_16(1466); -emit_16(1530); -emit_16(1465); -emit_16(1530); -emit_16(1466); -emit_16(1531); -emit_16(1467); -emit_16(1531); -emit_16(1466); -emit_16(1531); -emit_16(1467); -emit_16(1532); -emit_16(1468); -emit_16(1532); -emit_16(1467); -emit_16(1532); -emit_16(1468); -emit_16(1533); -emit_16(1469); -emit_16(1533); -emit_16(1468); -emit_16(1533); -emit_16(1469); -emit_16(1534); -emit_16(1470); -emit_16(1534); -emit_16(1469); -emit_16(1534); -emit_16(1470); -emit_16(1535); -emit_16(1471); -emit_16(1535); -emit_16(1470); -emit_16(1536); -emit_16(1472); -emit_16(1537); -emit_16(1473); -emit_16(1537); -emit_16(1472); -emit_16(1537); -emit_16(1473); -emit_16(1538); -emit_16(1474); -emit_16(1538); -emit_16(1473); -emit_16(1538); -emit_16(1474); -emit_16(1539); -emit_16(1475); -emit_16(1539); -emit_16(1474); -emit_16(1539); -emit_16(1475); -emit_16(1540); -emit_16(1476); -emit_16(1540); -emit_16(1475); -emit_16(1540); -emit_16(1476); -emit_16(1541); -emit_16(1477); -emit_16(1541); -emit_16(1476); -emit_16(1541); -emit_16(1477); -emit_16(1542); -emit_16(1478); -emit_16(1542); -emit_16(1477); -emit_16(1542); -emit_16(1478); -emit_16(1543); -emit_16(1479); -emit_16(1543); -emit_16(1478); -emit_16(1543); -emit_16(1479); -emit_16(1544); -emit_16(1480); -emit_16(1544); -emit_16(1479); -emit_16(1544); -emit_16(1480); -emit_16(1545); -emit_16(1481); -emit_16(1545); -emit_16(1480); -emit_16(1545); -emit_16(1481); -emit_16(1546); -emit_16(1482); -emit_16(1546); -emit_16(1481); -emit_16(1546); -emit_16(1482); -emit_16(1547); -emit_16(1483); -emit_16(1547); -emit_16(1482); -emit_16(1547); -emit_16(1483); -emit_16(1548); -emit_16(1484); -emit_16(1548); -emit_16(1483); -emit_16(1548); -emit_16(1484); -emit_16(1549); -emit_16(1485); -emit_16(1549); -emit_16(1484); -emit_16(1549); -emit_16(1485); -emit_16(1550); -emit_16(1486); -emit_16(1550); -emit_16(1485); -emit_16(1550); -emit_16(1486); -emit_16(1551); -emit_16(1487); -emit_16(1551); -emit_16(1486); -emit_16(1551); -emit_16(1487); -emit_16(1552); -emit_16(1488); -emit_16(1552); -emit_16(1487); -emit_16(1552); -emit_16(1488); -emit_16(1553); -emit_16(1489); -emit_16(1553); -emit_16(1488); -emit_16(1553); -emit_16(1489); -emit_16(1554); -emit_16(1490); -emit_16(1554); -emit_16(1489); -emit_16(1554); -emit_16(1490); -emit_16(1555); -emit_16(1491); -emit_16(1555); -emit_16(1490); -emit_16(1555); -emit_16(1491); -emit_16(1556); -emit_16(1492); -emit_16(1556); -emit_16(1491); -emit_16(1556); -emit_16(1492); -emit_16(1557); -emit_16(1493); -emit_16(1557); -emit_16(1492); -emit_16(1557); -emit_16(1493); -emit_16(1558); -emit_16(1494); -emit_16(1558); -emit_16(1493); -emit_16(1558); -emit_16(1494); -emit_16(1559); -emit_16(1495); -emit_16(1559); -emit_16(1494); -emit_16(1559); -emit_16(1495); -emit_16(1560); -emit_16(1496); -emit_16(1560); -emit_16(1495); -emit_16(1560); -emit_16(1496); -emit_16(1561); -emit_16(1497); -emit_16(1561); -emit_16(1496); -emit_16(1561); -emit_16(1497); -emit_16(1562); -emit_16(1498); -emit_16(1562); -emit_16(1497); -emit_16(1562); -emit_16(1498); -emit_16(1563); -emit_16(1499); -emit_16(1563); -emit_16(1498); -emit_16(1563); -emit_16(1499); -emit_16(1564); -emit_16(1500); -emit_16(1564); -emit_16(1499); -emit_16(1564); -emit_16(1500); -emit_16(1565); -emit_16(1501); -emit_16(1565); -emit_16(1500); -emit_16(1565); -emit_16(1501); -emit_16(1566); -emit_16(1502); -emit_16(1566); -emit_16(1501); -emit_16(1566); -emit_16(1502); -emit_16(1567); -emit_16(1503); -emit_16(1567); -emit_16(1502); -emit_16(1567); -emit_16(1503); -emit_16(1568); -emit_16(1504); -emit_16(1568); -emit_16(1503); -emit_16(1568); -emit_16(1504); -emit_16(1569); -emit_16(1505); -emit_16(1569); -emit_16(1504); -emit_16(1569); -emit_16(1505); -emit_16(1570); -emit_16(1506); -emit_16(1570); -emit_16(1505); -emit_16(1570); -emit_16(1506); -emit_16(1571); -emit_16(1507); -emit_16(1571); -emit_16(1506); -emit_16(1571); -emit_16(1507); -emit_16(1572); -emit_16(1508); -emit_16(1572); -emit_16(1507); -emit_16(1572); -emit_16(1508); -emit_16(1573); -emit_16(1509); -emit_16(1573); -emit_16(1508); -emit_16(1573); -emit_16(1509); -emit_16(1574); -emit_16(1510); -emit_16(1574); -emit_16(1509); -emit_16(1574); -emit_16(1510); -emit_16(1575); -emit_16(1511); -emit_16(1575); -emit_16(1510); -emit_16(1575); -emit_16(1511); -emit_16(1576); -emit_16(1512); -emit_16(1576); -emit_16(1511); -emit_16(1576); -emit_16(1512); -emit_16(1577); -emit_16(1513); -emit_16(1577); -emit_16(1512); -emit_16(1577); -emit_16(1513); -emit_16(1578); -emit_16(1514); -emit_16(1578); -emit_16(1513); -emit_16(1578); -emit_16(1514); -emit_16(1579); -emit_16(1515); -emit_16(1579); -emit_16(1514); -emit_16(1579); -emit_16(1515); -emit_16(1580); -emit_16(1516); -emit_16(1580); -emit_16(1515); -emit_16(1580); -emit_16(1516); -emit_16(1581); -emit_16(1517); -emit_16(1581); -emit_16(1516); -emit_16(1581); -emit_16(1517); -emit_16(1582); -emit_16(1518); -emit_16(1582); -emit_16(1517); -emit_16(1582); -emit_16(1518); -emit_16(1583); -emit_16(1519); -emit_16(1583); -emit_16(1518); -emit_16(1583); -emit_16(1519); -emit_16(1584); -emit_16(1520); -emit_16(1584); -emit_16(1519); -emit_16(1584); -emit_16(1520); -emit_16(1585); -emit_16(1521); -emit_16(1585); -emit_16(1520); -emit_16(1585); -emit_16(1521); -emit_16(1586); -emit_16(1522); -emit_16(1586); -emit_16(1521); -emit_16(1586); -emit_16(1522); -emit_16(1587); -emit_16(1523); -emit_16(1587); -emit_16(1522); -emit_16(1587); -emit_16(1523); -emit_16(1588); -emit_16(1524); -emit_16(1588); -emit_16(1523); -emit_16(1588); -emit_16(1524); -emit_16(1589); -emit_16(1525); -emit_16(1589); -emit_16(1524); -emit_16(1589); -emit_16(1525); -emit_16(1590); -emit_16(1526); -emit_16(1590); -emit_16(1525); -emit_16(1590); -emit_16(1526); -emit_16(1591); -emit_16(1527); -emit_16(1591); -emit_16(1526); -emit_16(1591); -emit_16(1527); -emit_16(1592); -emit_16(1528); -emit_16(1592); -emit_16(1527); -emit_16(1592); -emit_16(1528); -emit_16(1593); -emit_16(1529); -emit_16(1593); -emit_16(1528); -emit_16(1593); -emit_16(1529); -emit_16(1594); -emit_16(1530); -emit_16(1594); -emit_16(1529); -emit_16(1594); -emit_16(1530); -emit_16(1595); -emit_16(1531); -emit_16(1595); -emit_16(1530); -emit_16(1595); -emit_16(1531); -emit_16(1596); -emit_16(1532); -emit_16(1596); -emit_16(1531); -emit_16(1596); -emit_16(1532); -emit_16(1597); -emit_16(1533); -emit_16(1597); -emit_16(1532); -emit_16(1597); -emit_16(1533); -emit_16(1598); -emit_16(1534); -emit_16(1598); -emit_16(1533); -emit_16(1598); -emit_16(1534); -emit_16(1599); -emit_16(1535); -emit_16(1599); -emit_16(1534); -emit_16(1600); -emit_16(1536); -emit_16(1601); -emit_16(1537); -emit_16(1601); -emit_16(1536); -emit_16(1601); -emit_16(1537); -emit_16(1602); -emit_16(1538); -emit_16(1602); -emit_16(1537); -emit_16(1602); -emit_16(1538); -emit_16(1603); -emit_16(1539); -emit_16(1603); -emit_16(1538); -emit_16(1603); -emit_16(1539); -emit_16(1604); -emit_16(1540); -emit_16(1604); -emit_16(1539); -emit_16(1604); -emit_16(1540); -emit_16(1605); -emit_16(1541); -emit_16(1605); -emit_16(1540); -emit_16(1605); -emit_16(1541); -emit_16(1606); -emit_16(1542); -emit_16(1606); -emit_16(1541); -emit_16(1606); -emit_16(1542); -emit_16(1607); -emit_16(1543); -emit_16(1607); -emit_16(1542); -emit_16(1607); -emit_16(1543); -emit_16(1608); -emit_16(1544); -emit_16(1608); -emit_16(1543); -emit_16(1608); -emit_16(1544); -emit_16(1609); -emit_16(1545); -emit_16(1609); -emit_16(1544); -emit_16(1609); -emit_16(1545); -emit_16(1610); -emit_16(1546); -emit_16(1610); -emit_16(1545); -emit_16(1610); -emit_16(1546); -emit_16(1611); -emit_16(1547); -emit_16(1611); -emit_16(1546); -emit_16(1611); -emit_16(1547); -emit_16(1612); -emit_16(1548); -emit_16(1612); -emit_16(1547); -emit_16(1612); -emit_16(1548); -emit_16(1613); -emit_16(1549); -emit_16(1613); -emit_16(1548); -emit_16(1613); -emit_16(1549); -emit_16(1614); -emit_16(1550); -emit_16(1614); -emit_16(1549); -emit_16(1614); -emit_16(1550); -emit_16(1615); -emit_16(1551); -emit_16(1615); -emit_16(1550); -emit_16(1615); -emit_16(1551); -emit_16(1616); -emit_16(1552); -emit_16(1616); -emit_16(1551); -emit_16(1616); -emit_16(1552); -emit_16(1617); -emit_16(1553); -emit_16(1617); -emit_16(1552); -emit_16(1617); -emit_16(1553); -emit_16(1618); -emit_16(1554); -emit_16(1618); -emit_16(1553); -emit_16(1618); -emit_16(1554); -emit_16(1619); -emit_16(1555); -emit_16(1619); -emit_16(1554); -emit_16(1619); -emit_16(1555); -emit_16(1620); -emit_16(1556); -emit_16(1620); -emit_16(1555); -emit_16(1620); -emit_16(1556); -emit_16(1621); -emit_16(1557); -emit_16(1621); -emit_16(1556); -emit_16(1621); -emit_16(1557); -emit_16(1622); -emit_16(1558); -emit_16(1622); -emit_16(1557); -emit_16(1622); -emit_16(1558); -emit_16(1623); -emit_16(1559); -emit_16(1623); -emit_16(1558); -emit_16(1623); -emit_16(1559); -emit_16(1624); -emit_16(1560); -emit_16(1624); -emit_16(1559); -emit_16(1624); -emit_16(1560); -emit_16(1625); -emit_16(1561); -emit_16(1625); -emit_16(1560); -emit_16(1625); -emit_16(1561); -emit_16(1626); -emit_16(1562); -emit_16(1626); -emit_16(1561); -emit_16(1626); -emit_16(1562); -emit_16(1627); -emit_16(1563); -emit_16(1627); -emit_16(1562); -emit_16(1627); -emit_16(1563); -emit_16(1628); -emit_16(1564); -emit_16(1628); -emit_16(1563); -emit_16(1628); -emit_16(1564); -emit_16(1629); -emit_16(1565); -emit_16(1629); -emit_16(1564); -emit_16(1629); -emit_16(1565); -emit_16(1630); -emit_16(1566); -emit_16(1630); -emit_16(1565); -emit_16(1630); -emit_16(1566); -emit_16(1631); -emit_16(1567); -emit_16(1631); -emit_16(1566); -emit_16(1631); -emit_16(1567); -emit_16(1632); -emit_16(1568); -emit_16(1632); -emit_16(1567); -emit_16(1632); -emit_16(1568); -emit_16(1633); -emit_16(1569); -emit_16(1633); -emit_16(1568); -emit_16(1633); -emit_16(1569); -emit_16(1634); -emit_16(1570); -emit_16(1634); -emit_16(1569); -emit_16(1634); -emit_16(1570); -emit_16(1635); -emit_16(1571); -emit_16(1635); -emit_16(1570); -emit_16(1635); -emit_16(1571); -emit_16(1636); -emit_16(1572); -emit_16(1636); -emit_16(1571); -emit_16(1636); -emit_16(1572); -emit_16(1637); -emit_16(1573); -emit_16(1637); -emit_16(1572); -emit_16(1637); -emit_16(1573); -emit_16(1638); -emit_16(1574); -emit_16(1638); -emit_16(1573); -emit_16(1638); -emit_16(1574); -emit_16(1639); -emit_16(1575); -emit_16(1639); -emit_16(1574); -emit_16(1639); -emit_16(1575); -emit_16(1640); -emit_16(1576); -emit_16(1640); -emit_16(1575); -emit_16(1640); -emit_16(1576); -emit_16(1641); -emit_16(1577); -emit_16(1641); -emit_16(1576); -emit_16(1641); -emit_16(1577); -emit_16(1642); -emit_16(1578); -emit_16(1642); -emit_16(1577); -emit_16(1642); -emit_16(1578); -emit_16(1643); -emit_16(1579); -emit_16(1643); -emit_16(1578); -emit_16(1643); -emit_16(1579); -emit_16(1644); -emit_16(1580); -emit_16(1644); -emit_16(1579); -emit_16(1644); -emit_16(1580); -emit_16(1645); -emit_16(1581); -emit_16(1645); -emit_16(1580); -emit_16(1645); -emit_16(1581); -emit_16(1646); -emit_16(1582); -emit_16(1646); -emit_16(1581); -emit_16(1646); -emit_16(1582); -emit_16(1647); -emit_16(1583); -emit_16(1647); -emit_16(1582); -emit_16(1647); -emit_16(1583); -emit_16(1648); -emit_16(1584); -emit_16(1648); -emit_16(1583); -emit_16(1648); -emit_16(1584); -emit_16(1649); -emit_16(1585); -emit_16(1649); -emit_16(1584); -emit_16(1649); -emit_16(1585); -emit_16(1650); -emit_16(1586); -emit_16(1650); -emit_16(1585); -emit_16(1650); -emit_16(1586); -emit_16(1651); -emit_16(1587); -emit_16(1651); -emit_16(1586); -emit_16(1651); -emit_16(1587); -emit_16(1652); -emit_16(1588); -emit_16(1652); -emit_16(1587); -emit_16(1652); -emit_16(1588); -emit_16(1653); -emit_16(1589); -emit_16(1653); -emit_16(1588); -emit_16(1653); -emit_16(1589); -emit_16(1654); -emit_16(1590); -emit_16(1654); -emit_16(1589); -emit_16(1654); -emit_16(1590); -emit_16(1655); -emit_16(1591); -emit_16(1655); -emit_16(1590); -emit_16(1655); -emit_16(1591); -emit_16(1656); -emit_16(1592); -emit_16(1656); -emit_16(1591); -emit_16(1656); -emit_16(1592); -emit_16(1657); -emit_16(1593); -emit_16(1657); -emit_16(1592); -emit_16(1657); -emit_16(1593); -emit_16(1658); -emit_16(1594); -emit_16(1658); -emit_16(1593); -emit_16(1658); -emit_16(1594); -emit_16(1659); -emit_16(1595); -emit_16(1659); -emit_16(1594); -emit_16(1659); -emit_16(1595); -emit_16(1660); -emit_16(1596); -emit_16(1660); -emit_16(1595); -emit_16(1660); -emit_16(1596); -emit_16(1661); -emit_16(1597); -emit_16(1661); -emit_16(1596); -emit_16(1661); -emit_16(1597); -emit_16(1662); -emit_16(1598); -emit_16(1662); -emit_16(1597); -emit_16(1662); -emit_16(1598); -emit_16(1663); -emit_16(1599); -emit_16(1663); -emit_16(1598); -emit_16(1664); -emit_16(1600); -emit_16(1665); -emit_16(1601); -emit_16(1665); -emit_16(1600); -emit_16(1665); -emit_16(1601); -emit_16(1666); -emit_16(1602); -emit_16(1666); -emit_16(1601); -emit_16(1666); -emit_16(1602); -emit_16(1667); -emit_16(1603); -emit_16(1667); -emit_16(1602); -emit_16(1667); -emit_16(1603); -emit_16(1668); -emit_16(1604); -emit_16(1668); -emit_16(1603); -emit_16(1668); -emit_16(1604); -emit_16(1669); -emit_16(1605); -emit_16(1669); -emit_16(1604); -emit_16(1669); -emit_16(1605); -emit_16(1670); -emit_16(1606); -emit_16(1670); -emit_16(1605); -emit_16(1670); -emit_16(1606); -emit_16(1671); -emit_16(1607); -emit_16(1671); -emit_16(1606); -emit_16(1671); -emit_16(1607); -emit_16(1672); -emit_16(1608); -emit_16(1672); -emit_16(1607); -emit_16(1672); -emit_16(1608); -emit_16(1673); -emit_16(1609); -emit_16(1673); -emit_16(1608); -emit_16(1673); -emit_16(1609); -emit_16(1674); -emit_16(1610); -emit_16(1674); -emit_16(1609); -emit_16(1674); -emit_16(1610); -emit_16(1675); -emit_16(1611); -emit_16(1675); -emit_16(1610); -emit_16(1675); -emit_16(1611); -emit_16(1676); -emit_16(1612); -emit_16(1676); -emit_16(1611); -emit_16(1676); -emit_16(1612); -emit_16(1677); -emit_16(1613); -emit_16(1677); -emit_16(1612); -emit_16(1677); -emit_16(1613); -emit_16(1678); -emit_16(1614); -emit_16(1678); -emit_16(1613); -emit_16(1678); -emit_16(1614); -emit_16(1679); -emit_16(1615); -emit_16(1679); -emit_16(1614); -emit_16(1679); -emit_16(1615); -emit_16(1680); -emit_16(1616); -emit_16(1680); -emit_16(1615); -emit_16(1680); -emit_16(1616); -emit_16(1681); -emit_16(1617); -emit_16(1681); -emit_16(1616); -emit_16(1681); -emit_16(1617); -emit_16(1682); -emit_16(1618); -emit_16(1682); -emit_16(1617); -emit_16(1682); -emit_16(1618); -emit_16(1683); -emit_16(1619); -emit_16(1683); -emit_16(1618); -emit_16(1683); -emit_16(1619); -emit_16(1684); -emit_16(1620); -emit_16(1684); -emit_16(1619); -emit_16(1684); -emit_16(1620); -emit_16(1685); -emit_16(1621); -emit_16(1685); -emit_16(1620); -emit_16(1685); -emit_16(1621); -emit_16(1686); -emit_16(1622); -emit_16(1686); -emit_16(1621); -emit_16(1686); -emit_16(1622); -emit_16(1687); -emit_16(1623); -emit_16(1687); -emit_16(1622); -emit_16(1687); -emit_16(1623); -emit_16(1688); -emit_16(1624); -emit_16(1688); -emit_16(1623); -emit_16(1688); -emit_16(1624); -emit_16(1689); -emit_16(1625); -emit_16(1689); -emit_16(1624); -emit_16(1689); -emit_16(1625); -emit_16(1690); -emit_16(1626); -emit_16(1690); -emit_16(1625); -emit_16(1690); -emit_16(1626); -emit_16(1691); -emit_16(1627); -emit_16(1691); -emit_16(1626); -emit_16(1691); -emit_16(1627); -emit_16(1692); -emit_16(1628); -emit_16(1692); -emit_16(1627); -emit_16(1692); -emit_16(1628); -emit_16(1693); -emit_16(1629); -emit_16(1693); -emit_16(1628); -emit_16(1693); -emit_16(1629); -emit_16(1694); -emit_16(1630); -emit_16(1694); -emit_16(1629); -emit_16(1694); -emit_16(1630); -emit_16(1695); -emit_16(1631); -emit_16(1695); -emit_16(1630); -emit_16(1695); -emit_16(1631); -emit_16(1696); -emit_16(1632); -emit_16(1696); -emit_16(1631); -emit_16(1696); -emit_16(1632); -emit_16(1697); -emit_16(1633); -emit_16(1697); -emit_16(1632); -emit_16(1697); -emit_16(1633); -emit_16(1698); -emit_16(1634); -emit_16(1698); -emit_16(1633); -emit_16(1698); -emit_16(1634); -emit_16(1699); -emit_16(1635); -emit_16(1699); -emit_16(1634); -emit_16(1699); -emit_16(1635); -emit_16(1700); -emit_16(1636); -emit_16(1700); -emit_16(1635); -emit_16(1700); -emit_16(1636); -emit_16(1701); -emit_16(1637); -emit_16(1701); -emit_16(1636); -emit_16(1701); -emit_16(1637); -emit_16(1702); -emit_16(1638); -emit_16(1702); -emit_16(1637); -emit_16(1702); -emit_16(1638); -emit_16(1703); -emit_16(1639); -emit_16(1703); -emit_16(1638); -emit_16(1703); -emit_16(1639); -emit_16(1704); -emit_16(1640); -emit_16(1704); -emit_16(1639); -emit_16(1704); -emit_16(1640); -emit_16(1705); -emit_16(1641); -emit_16(1705); -emit_16(1640); -emit_16(1705); -emit_16(1641); -emit_16(1706); -emit_16(1642); -emit_16(1706); -emit_16(1641); -emit_16(1706); -emit_16(1642); -emit_16(1707); -emit_16(1643); -emit_16(1707); -emit_16(1642); -emit_16(1707); -emit_16(1643); -emit_16(1708); -emit_16(1644); -emit_16(1708); -emit_16(1643); -emit_16(1708); -emit_16(1644); -emit_16(1709); -emit_16(1645); -emit_16(1709); -emit_16(1644); -emit_16(1709); -emit_16(1645); -emit_16(1710); -emit_16(1646); -emit_16(1710); -emit_16(1645); -emit_16(1710); -emit_16(1646); -emit_16(1711); -emit_16(1647); -emit_16(1711); -emit_16(1646); -emit_16(1711); -emit_16(1647); -emit_16(1712); -emit_16(1648); -emit_16(1712); -emit_16(1647); -emit_16(1712); -emit_16(1648); -emit_16(1713); -emit_16(1649); -emit_16(1713); -emit_16(1648); -emit_16(1713); -emit_16(1649); -emit_16(1714); -emit_16(1650); -emit_16(1714); -emit_16(1649); -emit_16(1714); -emit_16(1650); -emit_16(1715); -emit_16(1651); -emit_16(1715); -emit_16(1650); -emit_16(1715); -emit_16(1651); -emit_16(1716); -emit_16(1652); -emit_16(1716); -emit_16(1651); -emit_16(1716); -emit_16(1652); -emit_16(1717); -emit_16(1653); -emit_16(1717); -emit_16(1652); -emit_16(1717); -emit_16(1653); -emit_16(1718); -emit_16(1654); -emit_16(1718); -emit_16(1653); -emit_16(1718); -emit_16(1654); -emit_16(1719); -emit_16(1655); -emit_16(1719); -emit_16(1654); -emit_16(1719); -emit_16(1655); -emit_16(1720); -emit_16(1656); -emit_16(1720); -emit_16(1655); -emit_16(1720); -emit_16(1656); -emit_16(1721); -emit_16(1657); -emit_16(1721); -emit_16(1656); -emit_16(1721); -emit_16(1657); -emit_16(1722); -emit_16(1658); -emit_16(1722); -emit_16(1657); -emit_16(1722); -emit_16(1658); -emit_16(1723); -emit_16(1659); -emit_16(1723); -emit_16(1658); -emit_16(1723); -emit_16(1659); -emit_16(1724); -emit_16(1660); -emit_16(1724); -emit_16(1659); -emit_16(1724); -emit_16(1660); -emit_16(1725); -emit_16(1661); -emit_16(1725); -emit_16(1660); -emit_16(1725); -emit_16(1661); -emit_16(1726); -emit_16(1662); -emit_16(1726); -emit_16(1661); -emit_16(1726); -emit_16(1662); -emit_16(1727); -emit_16(1663); -emit_16(1727); -emit_16(1662); -emit_16(1728); -emit_16(1664); -emit_16(1729); -emit_16(1665); -emit_16(1729); -emit_16(1664); -emit_16(1729); -emit_16(1665); -emit_16(1730); -emit_16(1666); -emit_16(1730); -emit_16(1665); -emit_16(1730); -emit_16(1666); -emit_16(1731); -emit_16(1667); -emit_16(1731); -emit_16(1666); -emit_16(1731); -emit_16(1667); -emit_16(1732); -emit_16(1668); -emit_16(1732); -emit_16(1667); -emit_16(1732); -emit_16(1668); -emit_16(1733); -emit_16(1669); -emit_16(1733); -emit_16(1668); -emit_16(1733); -emit_16(1669); -emit_16(1734); -emit_16(1670); -emit_16(1734); -emit_16(1669); -emit_16(1734); -emit_16(1670); -emit_16(1735); -emit_16(1671); -emit_16(1735); -emit_16(1670); -emit_16(1735); -emit_16(1671); -emit_16(1736); -emit_16(1672); -emit_16(1736); -emit_16(1671); -emit_16(1736); -emit_16(1672); -emit_16(1737); -emit_16(1673); -emit_16(1737); -emit_16(1672); -emit_16(1737); -emit_16(1673); -emit_16(1738); -emit_16(1674); -emit_16(1738); -emit_16(1673); -emit_16(1738); -emit_16(1674); -emit_16(1739); -emit_16(1675); -emit_16(1739); -emit_16(1674); -emit_16(1739); -emit_16(1675); -emit_16(1740); -emit_16(1676); -emit_16(1740); -emit_16(1675); -emit_16(1740); -emit_16(1676); -emit_16(1741); -emit_16(1677); -emit_16(1741); -emit_16(1676); -emit_16(1741); -emit_16(1677); -emit_16(1742); -emit_16(1678); -emit_16(1742); -emit_16(1677); -emit_16(1742); -emit_16(1678); -emit_16(1743); -emit_16(1679); -emit_16(1743); -emit_16(1678); -emit_16(1743); -emit_16(1679); -emit_16(1744); -emit_16(1680); -emit_16(1744); -emit_16(1679); -emit_16(1744); -emit_16(1680); -emit_16(1745); -emit_16(1681); -emit_16(1745); -emit_16(1680); -emit_16(1745); -emit_16(1681); -emit_16(1746); -emit_16(1682); -emit_16(1746); -emit_16(1681); -emit_16(1746); -emit_16(1682); -emit_16(1747); -emit_16(1683); -emit_16(1747); -emit_16(1682); -emit_16(1747); -emit_16(1683); -emit_16(1748); -emit_16(1684); -emit_16(1748); -emit_16(1683); -emit_16(1748); -emit_16(1684); -emit_16(1749); -emit_16(1685); -emit_16(1749); -emit_16(1684); -emit_16(1749); -emit_16(1685); -emit_16(1750); -emit_16(1686); -emit_16(1750); -emit_16(1685); -emit_16(1750); -emit_16(1686); -emit_16(1751); -emit_16(1687); -emit_16(1751); -emit_16(1686); -emit_16(1751); -emit_16(1687); -emit_16(1752); -emit_16(1688); -emit_16(1752); -emit_16(1687); -emit_16(1752); -emit_16(1688); -emit_16(1753); -emit_16(1689); -emit_16(1753); -emit_16(1688); -emit_16(1753); -emit_16(1689); -emit_16(1754); -emit_16(1690); -emit_16(1754); -emit_16(1689); -emit_16(1754); -emit_16(1690); -emit_16(1755); -emit_16(1691); -emit_16(1755); -emit_16(1690); -emit_16(1755); -emit_16(1691); -emit_16(1756); -emit_16(1692); -emit_16(1756); -emit_16(1691); -emit_16(1756); -emit_16(1692); -emit_16(1757); -emit_16(1693); -emit_16(1757); -emit_16(1692); -emit_16(1757); -emit_16(1693); -emit_16(1758); -emit_16(1694); -emit_16(1758); -emit_16(1693); -emit_16(1758); -emit_16(1694); -emit_16(1759); -emit_16(1695); -emit_16(1759); -emit_16(1694); -emit_16(1759); -emit_16(1695); -emit_16(1760); -emit_16(1696); -emit_16(1760); -emit_16(1695); -emit_16(1760); -emit_16(1696); -emit_16(1761); -emit_16(1697); -emit_16(1761); -emit_16(1696); -emit_16(1761); -emit_16(1697); -emit_16(1762); -emit_16(1698); -emit_16(1762); -emit_16(1697); -emit_16(1762); -emit_16(1698); -emit_16(1763); -emit_16(1699); -emit_16(1763); -emit_16(1698); -emit_16(1763); -emit_16(1699); -emit_16(1764); -emit_16(1700); -emit_16(1764); -emit_16(1699); -emit_16(1764); -emit_16(1700); -emit_16(1765); -emit_16(1701); -emit_16(1765); -emit_16(1700); -emit_16(1765); -emit_16(1701); -emit_16(1766); -emit_16(1702); -emit_16(1766); -emit_16(1701); -emit_16(1766); -emit_16(1702); -emit_16(1767); -emit_16(1703); -emit_16(1767); -emit_16(1702); -emit_16(1767); -emit_16(1703); -emit_16(1768); -emit_16(1704); -emit_16(1768); -emit_16(1703); -emit_16(1768); -emit_16(1704); -emit_16(1769); -emit_16(1705); -emit_16(1769); -emit_16(1704); -emit_16(1769); -emit_16(1705); -emit_16(1770); -emit_16(1706); -emit_16(1770); -emit_16(1705); -emit_16(1770); -emit_16(1706); -emit_16(1771); -emit_16(1707); -emit_16(1771); -emit_16(1706); -emit_16(1771); -emit_16(1707); -emit_16(1772); -emit_16(1708); -emit_16(1772); -emit_16(1707); -emit_16(1772); -emit_16(1708); -emit_16(1773); -emit_16(1709); -emit_16(1773); -emit_16(1708); -emit_16(1773); -emit_16(1709); -emit_16(1774); -emit_16(1710); -emit_16(1774); -emit_16(1709); -emit_16(1774); -emit_16(1710); -emit_16(1775); -emit_16(1711); -emit_16(1775); -emit_16(1710); -emit_16(1775); -emit_16(1711); -emit_16(1776); -emit_16(1712); -emit_16(1776); -emit_16(1711); -emit_16(1776); -emit_16(1712); -emit_16(1777); -emit_16(1713); -emit_16(1777); -emit_16(1712); -emit_16(1777); -emit_16(1713); -emit_16(1778); -emit_16(1714); -emit_16(1778); -emit_16(1713); -emit_16(1778); -emit_16(1714); -emit_16(1779); -emit_16(1715); -emit_16(1779); -emit_16(1714); -emit_16(1779); -emit_16(1715); -emit_16(1780); -emit_16(1716); -emit_16(1780); -emit_16(1715); -emit_16(1780); -emit_16(1716); -emit_16(1781); -emit_16(1717); -emit_16(1781); -emit_16(1716); -emit_16(1781); -emit_16(1717); -emit_16(1782); -emit_16(1718); -emit_16(1782); -emit_16(1717); -emit_16(1782); -emit_16(1718); -emit_16(1783); -emit_16(1719); -emit_16(1783); -emit_16(1718); -emit_16(1783); -emit_16(1719); -emit_16(1784); -emit_16(1720); -emit_16(1784); -emit_16(1719); -emit_16(1784); -emit_16(1720); -emit_16(1785); -emit_16(1721); -emit_16(1785); -emit_16(1720); -emit_16(1785); -emit_16(1721); -emit_16(1786); -emit_16(1722); -emit_16(1786); -emit_16(1721); -emit_16(1786); -emit_16(1722); -emit_16(1787); -emit_16(1723); -emit_16(1787); -emit_16(1722); -emit_16(1787); -emit_16(1723); -emit_16(1788); -emit_16(1724); -emit_16(1788); -emit_16(1723); -emit_16(1788); -emit_16(1724); -emit_16(1789); -emit_16(1725); -emit_16(1789); -emit_16(1724); -emit_16(1789); -emit_16(1725); -emit_16(1790); -emit_16(1726); -emit_16(1790); -emit_16(1725); -emit_16(1790); -emit_16(1726); -emit_16(1791); -emit_16(1727); -emit_16(1791); -emit_16(1726); -emit_16(1792); -emit_16(1728); -emit_16(1793); -emit_16(1729); -emit_16(1793); -emit_16(1728); -emit_16(1793); -emit_16(1729); -emit_16(1794); -emit_16(1730); -emit_16(1794); -emit_16(1729); -emit_16(1794); -emit_16(1730); -emit_16(1795); -emit_16(1731); -emit_16(1795); -emit_16(1730); -emit_16(1795); -emit_16(1731); -emit_16(1796); -emit_16(1732); -emit_16(1796); -emit_16(1731); -emit_16(1796); -emit_16(1732); -emit_16(1797); -emit_16(1733); -emit_16(1797); -emit_16(1732); -emit_16(1797); -emit_16(1733); -emit_16(1798); -emit_16(1734); -emit_16(1798); -emit_16(1733); -emit_16(1798); -emit_16(1734); -emit_16(1799); -emit_16(1735); -emit_16(1799); -emit_16(1734); -emit_16(1799); -emit_16(1735); -emit_16(1800); -emit_16(1736); -emit_16(1800); -emit_16(1735); -emit_16(1800); -emit_16(1736); -emit_16(1801); -emit_16(1737); -emit_16(1801); -emit_16(1736); -emit_16(1801); -emit_16(1737); -emit_16(1802); -emit_16(1738); -emit_16(1802); -emit_16(1737); -emit_16(1802); -emit_16(1738); -emit_16(1803); -emit_16(1739); -emit_16(1803); -emit_16(1738); -emit_16(1803); -emit_16(1739); -emit_16(1804); -emit_16(1740); -emit_16(1804); -emit_16(1739); -emit_16(1804); -emit_16(1740); -emit_16(1805); -emit_16(1741); -emit_16(1805); -emit_16(1740); -emit_16(1805); -emit_16(1741); -emit_16(1806); -emit_16(1742); -emit_16(1806); -emit_16(1741); -emit_16(1806); -emit_16(1742); -emit_16(1807); -emit_16(1743); -emit_16(1807); -emit_16(1742); -emit_16(1807); -emit_16(1743); -emit_16(1808); -emit_16(1744); -emit_16(1808); -emit_16(1743); -emit_16(1808); -emit_16(1744); -emit_16(1809); -emit_16(1745); -emit_16(1809); -emit_16(1744); -emit_16(1809); -emit_16(1745); -emit_16(1810); -emit_16(1746); -emit_16(1810); -emit_16(1745); -emit_16(1810); -emit_16(1746); -emit_16(1811); -emit_16(1747); -emit_16(1811); -emit_16(1746); -emit_16(1811); -emit_16(1747); -emit_16(1812); -emit_16(1748); -emit_16(1812); -emit_16(1747); -emit_16(1812); -emit_16(1748); -emit_16(1813); -emit_16(1749); -emit_16(1813); -emit_16(1748); -emit_16(1813); -emit_16(1749); -emit_16(1814); -emit_16(1750); -emit_16(1814); -emit_16(1749); -emit_16(1814); -emit_16(1750); -emit_16(1815); -emit_16(1751); -emit_16(1815); -emit_16(1750); -emit_16(1815); -emit_16(1751); -emit_16(1816); -emit_16(1752); -emit_16(1816); -emit_16(1751); -emit_16(1816); -emit_16(1752); -emit_16(1817); -emit_16(1753); -emit_16(1817); -emit_16(1752); -emit_16(1817); -emit_16(1753); -emit_16(1818); -emit_16(1754); -emit_16(1818); -emit_16(1753); -emit_16(1818); -emit_16(1754); -emit_16(1819); -emit_16(1755); -emit_16(1819); -emit_16(1754); -emit_16(1819); -emit_16(1755); -emit_16(1820); -emit_16(1756); -emit_16(1820); -emit_16(1755); -emit_16(1820); -emit_16(1756); -emit_16(1821); -emit_16(1757); -emit_16(1821); -emit_16(1756); -emit_16(1821); -emit_16(1757); -emit_16(1822); -emit_16(1758); -emit_16(1822); -emit_16(1757); -emit_16(1822); -emit_16(1758); -emit_16(1823); -emit_16(1759); -emit_16(1823); -emit_16(1758); -emit_16(1823); -emit_16(1759); -emit_16(1824); -emit_16(1760); -emit_16(1824); -emit_16(1759); -emit_16(1824); -emit_16(1760); -emit_16(1825); -emit_16(1761); -emit_16(1825); -emit_16(1760); -emit_16(1825); -emit_16(1761); -emit_16(1826); -emit_16(1762); -emit_16(1826); -emit_16(1761); -emit_16(1826); -emit_16(1762); -emit_16(1827); -emit_16(1763); -emit_16(1827); -emit_16(1762); -emit_16(1827); -emit_16(1763); -emit_16(1828); -emit_16(1764); -emit_16(1828); -emit_16(1763); -emit_16(1828); -emit_16(1764); -emit_16(1829); -emit_16(1765); -emit_16(1829); -emit_16(1764); -emit_16(1829); -emit_16(1765); -emit_16(1830); -emit_16(1766); -emit_16(1830); -emit_16(1765); -emit_16(1830); -emit_16(1766); -emit_16(1831); -emit_16(1767); -emit_16(1831); -emit_16(1766); -emit_16(1831); -emit_16(1767); -emit_16(1832); -emit_16(1768); -emit_16(1832); -emit_16(1767); -emit_16(1832); -emit_16(1768); -emit_16(1833); -emit_16(1769); -emit_16(1833); -emit_16(1768); -emit_16(1833); -emit_16(1769); -emit_16(1834); -emit_16(1770); -emit_16(1834); -emit_16(1769); -emit_16(1834); -emit_16(1770); -emit_16(1835); -emit_16(1771); -emit_16(1835); -emit_16(1770); -emit_16(1835); -emit_16(1771); -emit_16(1836); -emit_16(1772); -emit_16(1836); -emit_16(1771); -emit_16(1836); -emit_16(1772); -emit_16(1837); -emit_16(1773); -emit_16(1837); -emit_16(1772); -emit_16(1837); -emit_16(1773); -emit_16(1838); -emit_16(1774); -emit_16(1838); -emit_16(1773); -emit_16(1838); -emit_16(1774); -emit_16(1839); -emit_16(1775); -emit_16(1839); -emit_16(1774); -emit_16(1839); -emit_16(1775); -emit_16(1840); -emit_16(1776); -emit_16(1840); -emit_16(1775); -emit_16(1840); -emit_16(1776); -emit_16(1841); -emit_16(1777); -emit_16(1841); -emit_16(1776); -emit_16(1841); -emit_16(1777); -emit_16(1842); -emit_16(1778); -emit_16(1842); -emit_16(1777); -emit_16(1842); -emit_16(1778); -emit_16(1843); -emit_16(1779); -emit_16(1843); -emit_16(1778); -emit_16(1843); -emit_16(1779); -emit_16(1844); -emit_16(1780); -emit_16(1844); -emit_16(1779); -emit_16(1844); -emit_16(1780); -emit_16(1845); -emit_16(1781); -emit_16(1845); -emit_16(1780); -emit_16(1845); -emit_16(1781); -emit_16(1846); -emit_16(1782); -emit_16(1846); -emit_16(1781); -emit_16(1846); -emit_16(1782); -emit_16(1847); -emit_16(1783); -emit_16(1847); -emit_16(1782); -emit_16(1847); -emit_16(1783); -emit_16(1848); -emit_16(1784); -emit_16(1848); -emit_16(1783); -emit_16(1848); -emit_16(1784); -emit_16(1849); -emit_16(1785); -emit_16(1849); -emit_16(1784); -emit_16(1849); -emit_16(1785); -emit_16(1850); -emit_16(1786); -emit_16(1850); -emit_16(1785); -emit_16(1850); -emit_16(1786); -emit_16(1851); -emit_16(1787); -emit_16(1851); -emit_16(1786); -emit_16(1851); -emit_16(1787); -emit_16(1852); -emit_16(1788); -emit_16(1852); -emit_16(1787); -emit_16(1852); -emit_16(1788); -emit_16(1853); -emit_16(1789); -emit_16(1853); -emit_16(1788); -emit_16(1853); -emit_16(1789); -emit_16(1854); -emit_16(1790); -emit_16(1854); -emit_16(1789); -emit_16(1854); -emit_16(1790); -emit_16(1855); -emit_16(1791); -emit_16(1855); -emit_16(1790); -emit_16(1856); -emit_16(1792); -emit_16(1857); -emit_16(1793); -emit_16(1857); -emit_16(1792); -emit_16(1857); -emit_16(1793); -emit_16(1858); -emit_16(1794); -emit_16(1858); -emit_16(1793); -emit_16(1858); -emit_16(1794); -emit_16(1859); -emit_16(1795); -emit_16(1859); -emit_16(1794); -emit_16(1859); -emit_16(1795); -emit_16(1860); -emit_16(1796); -emit_16(1860); -emit_16(1795); -emit_16(1860); -emit_16(1796); -emit_16(1861); -emit_16(1797); -emit_16(1861); -emit_16(1796); -emit_16(1861); -emit_16(1797); -emit_16(1862); -emit_16(1798); -emit_16(1862); -emit_16(1797); -emit_16(1862); -emit_16(1798); -emit_16(1863); -emit_16(1799); -emit_16(1863); -emit_16(1798); -emit_16(1863); -emit_16(1799); -emit_16(1864); -emit_16(1800); -emit_16(1864); -emit_16(1799); -emit_16(1864); -emit_16(1800); -emit_16(1865); -emit_16(1801); -emit_16(1865); -emit_16(1800); -emit_16(1865); -emit_16(1801); -emit_16(1866); -emit_16(1802); -emit_16(1866); -emit_16(1801); -emit_16(1866); -emit_16(1802); -emit_16(1867); -emit_16(1803); -emit_16(1867); -emit_16(1802); -emit_16(1867); -emit_16(1803); -emit_16(1868); -emit_16(1804); -emit_16(1868); -emit_16(1803); -emit_16(1868); -emit_16(1804); -emit_16(1869); -emit_16(1805); -emit_16(1869); -emit_16(1804); -emit_16(1869); -emit_16(1805); -emit_16(1870); -emit_16(1806); -emit_16(1870); -emit_16(1805); -emit_16(1870); -emit_16(1806); -emit_16(1871); -emit_16(1807); -emit_16(1871); -emit_16(1806); -emit_16(1871); -emit_16(1807); -emit_16(1872); -emit_16(1808); -emit_16(1872); -emit_16(1807); -emit_16(1872); -emit_16(1808); -emit_16(1873); -emit_16(1809); -emit_16(1873); -emit_16(1808); -emit_16(1873); -emit_16(1809); -emit_16(1874); -emit_16(1810); -emit_16(1874); -emit_16(1809); -emit_16(1874); -emit_16(1810); -emit_16(1875); -emit_16(1811); -emit_16(1875); -emit_16(1810); -emit_16(1875); -emit_16(1811); -emit_16(1876); -emit_16(1812); -emit_16(1876); -emit_16(1811); -emit_16(1876); -emit_16(1812); -emit_16(1877); -emit_16(1813); -emit_16(1877); -emit_16(1812); -emit_16(1877); -emit_16(1813); -emit_16(1878); -emit_16(1814); -emit_16(1878); -emit_16(1813); -emit_16(1878); -emit_16(1814); -emit_16(1879); -emit_16(1815); -emit_16(1879); -emit_16(1814); -emit_16(1879); -emit_16(1815); -emit_16(1880); -emit_16(1816); -emit_16(1880); -emit_16(1815); -emit_16(1880); -emit_16(1816); -emit_16(1881); -emit_16(1817); -emit_16(1881); -emit_16(1816); -emit_16(1881); -emit_16(1817); -emit_16(1882); -emit_16(1818); -emit_16(1882); -emit_16(1817); -emit_16(1882); -emit_16(1818); -emit_16(1883); -emit_16(1819); -emit_16(1883); -emit_16(1818); -emit_16(1883); -emit_16(1819); -emit_16(1884); -emit_16(1820); -emit_16(1884); -emit_16(1819); -emit_16(1884); -emit_16(1820); -emit_16(1885); -emit_16(1821); -emit_16(1885); -emit_16(1820); -emit_16(1885); -emit_16(1821); -emit_16(1886); -emit_16(1822); -emit_16(1886); -emit_16(1821); -emit_16(1886); -emit_16(1822); -emit_16(1887); -emit_16(1823); -emit_16(1887); -emit_16(1822); -emit_16(1887); -emit_16(1823); -emit_16(1888); -emit_16(1824); -emit_16(1888); -emit_16(1823); -emit_16(1888); -emit_16(1824); -emit_16(1889); -emit_16(1825); -emit_16(1889); -emit_16(1824); -emit_16(1889); -emit_16(1825); -emit_16(1890); -emit_16(1826); -emit_16(1890); -emit_16(1825); -emit_16(1890); -emit_16(1826); -emit_16(1891); -emit_16(1827); -emit_16(1891); -emit_16(1826); -emit_16(1891); -emit_16(1827); -emit_16(1892); -emit_16(1828); -emit_16(1892); -emit_16(1827); -emit_16(1892); -emit_16(1828); -emit_16(1893); -emit_16(1829); -emit_16(1893); -emit_16(1828); -emit_16(1893); -emit_16(1829); -emit_16(1894); -emit_16(1830); -emit_16(1894); -emit_16(1829); -emit_16(1894); -emit_16(1830); -emit_16(1895); -emit_16(1831); -emit_16(1895); -emit_16(1830); -emit_16(1895); -emit_16(1831); -emit_16(1896); -emit_16(1832); -emit_16(1896); -emit_16(1831); -emit_16(1896); -emit_16(1832); -emit_16(1897); -emit_16(1833); -emit_16(1897); -emit_16(1832); -emit_16(1897); -emit_16(1833); -emit_16(1898); -emit_16(1834); -emit_16(1898); -emit_16(1833); -emit_16(1898); -emit_16(1834); -emit_16(1899); -emit_16(1835); -emit_16(1899); -emit_16(1834); -emit_16(1899); -emit_16(1835); -emit_16(1900); -emit_16(1836); -emit_16(1900); -emit_16(1835); -emit_16(1900); -emit_16(1836); -emit_16(1901); -emit_16(1837); -emit_16(1901); -emit_16(1836); -emit_16(1901); -emit_16(1837); -emit_16(1902); -emit_16(1838); -emit_16(1902); -emit_16(1837); -emit_16(1902); -emit_16(1838); -emit_16(1903); -emit_16(1839); -emit_16(1903); -emit_16(1838); -emit_16(1903); -emit_16(1839); -emit_16(1904); -emit_16(1840); -emit_16(1904); -emit_16(1839); -emit_16(1904); -emit_16(1840); -emit_16(1905); -emit_16(1841); -emit_16(1905); -emit_16(1840); -emit_16(1905); -emit_16(1841); -emit_16(1906); -emit_16(1842); -emit_16(1906); -emit_16(1841); -emit_16(1906); -emit_16(1842); -emit_16(1907); -emit_16(1843); -emit_16(1907); -emit_16(1842); -emit_16(1907); -emit_16(1843); -emit_16(1908); -emit_16(1844); -emit_16(1908); -emit_16(1843); -emit_16(1908); -emit_16(1844); -emit_16(1909); -emit_16(1845); -emit_16(1909); -emit_16(1844); -emit_16(1909); -emit_16(1845); -emit_16(1910); -emit_16(1846); -emit_16(1910); -emit_16(1845); -emit_16(1910); -emit_16(1846); -emit_16(1911); -emit_16(1847); -emit_16(1911); -emit_16(1846); -emit_16(1911); -emit_16(1847); -emit_16(1912); -emit_16(1848); -emit_16(1912); -emit_16(1847); -emit_16(1912); -emit_16(1848); -emit_16(1913); -emit_16(1849); -emit_16(1913); -emit_16(1848); -emit_16(1913); -emit_16(1849); -emit_16(1914); -emit_16(1850); -emit_16(1914); -emit_16(1849); -emit_16(1914); -emit_16(1850); -emit_16(1915); -emit_16(1851); -emit_16(1915); -emit_16(1850); -emit_16(1915); -emit_16(1851); -emit_16(1916); -emit_16(1852); -emit_16(1916); -emit_16(1851); -emit_16(1916); -emit_16(1852); -emit_16(1917); -emit_16(1853); -emit_16(1917); -emit_16(1852); -emit_16(1917); -emit_16(1853); -emit_16(1918); -emit_16(1854); -emit_16(1918); -emit_16(1853); -emit_16(1918); -emit_16(1854); -emit_16(1919); -emit_16(1855); -emit_16(1919); -emit_16(1854); -emit_16(1920); -emit_16(1856); -emit_16(1921); -emit_16(1857); -emit_16(1921); -emit_16(1856); -emit_16(1921); -emit_16(1857); -emit_16(1922); -emit_16(1858); -emit_16(1922); -emit_16(1857); -emit_16(1922); -emit_16(1858); -emit_16(1923); -emit_16(1859); -emit_16(1923); -emit_16(1858); -emit_16(1923); -emit_16(1859); -emit_16(1924); -emit_16(1860); -emit_16(1924); -emit_16(1859); -emit_16(1924); -emit_16(1860); -emit_16(1925); -emit_16(1861); -emit_16(1925); -emit_16(1860); -emit_16(1925); -emit_16(1861); -emit_16(1926); -emit_16(1862); -emit_16(1926); -emit_16(1861); -emit_16(1926); -emit_16(1862); -emit_16(1927); -emit_16(1863); -emit_16(1927); -emit_16(1862); -emit_16(1927); -emit_16(1863); -emit_16(1928); -emit_16(1864); -emit_16(1928); -emit_16(1863); -emit_16(1928); -emit_16(1864); -emit_16(1929); -emit_16(1865); -emit_16(1929); -emit_16(1864); -emit_16(1929); -emit_16(1865); -emit_16(1930); -emit_16(1866); -emit_16(1930); -emit_16(1865); -emit_16(1930); -emit_16(1866); -emit_16(1931); -emit_16(1867); -emit_16(1931); -emit_16(1866); -emit_16(1931); -emit_16(1867); -emit_16(1932); -emit_16(1868); -emit_16(1932); -emit_16(1867); -emit_16(1932); -emit_16(1868); -emit_16(1933); -emit_16(1869); -emit_16(1933); -emit_16(1868); -emit_16(1933); -emit_16(1869); -emit_16(1934); -emit_16(1870); -emit_16(1934); -emit_16(1869); -emit_16(1934); -emit_16(1870); -emit_16(1935); -emit_16(1871); -emit_16(1935); -emit_16(1870); -emit_16(1935); -emit_16(1871); -emit_16(1936); -emit_16(1872); -emit_16(1936); -emit_16(1871); -emit_16(1936); -emit_16(1872); -emit_16(1937); -emit_16(1873); -emit_16(1937); -emit_16(1872); -emit_16(1937); -emit_16(1873); -emit_16(1938); -emit_16(1874); -emit_16(1938); -emit_16(1873); -emit_16(1938); -emit_16(1874); -emit_16(1939); -emit_16(1875); -emit_16(1939); -emit_16(1874); -emit_16(1939); -emit_16(1875); -emit_16(1940); -emit_16(1876); -emit_16(1940); -emit_16(1875); -emit_16(1940); -emit_16(1876); -emit_16(1941); -emit_16(1877); -emit_16(1941); -emit_16(1876); -emit_16(1941); -emit_16(1877); -emit_16(1942); -emit_16(1878); -emit_16(1942); -emit_16(1877); -emit_16(1942); -emit_16(1878); -emit_16(1943); -emit_16(1879); -emit_16(1943); -emit_16(1878); -emit_16(1943); -emit_16(1879); -emit_16(1944); -emit_16(1880); -emit_16(1944); -emit_16(1879); -emit_16(1944); -emit_16(1880); -emit_16(1945); -emit_16(1881); -emit_16(1945); -emit_16(1880); -emit_16(1945); -emit_16(1881); -emit_16(1946); -emit_16(1882); -emit_16(1946); -emit_16(1881); -emit_16(1946); -emit_16(1882); -emit_16(1947); -emit_16(1883); -emit_16(1947); -emit_16(1882); -emit_16(1947); -emit_16(1883); -emit_16(1948); -emit_16(1884); -emit_16(1948); -emit_16(1883); -emit_16(1948); -emit_16(1884); -emit_16(1949); -emit_16(1885); -emit_16(1949); -emit_16(1884); -emit_16(1949); -emit_16(1885); -emit_16(1950); -emit_16(1886); -emit_16(1950); -emit_16(1885); -emit_16(1950); -emit_16(1886); -emit_16(1951); -emit_16(1887); -emit_16(1951); -emit_16(1886); -emit_16(1951); -emit_16(1887); -emit_16(1952); -emit_16(1888); -emit_16(1952); -emit_16(1887); -emit_16(1952); -emit_16(1888); -emit_16(1953); -emit_16(1889); -emit_16(1953); -emit_16(1888); -emit_16(1953); -emit_16(1889); -emit_16(1954); -emit_16(1890); -emit_16(1954); -emit_16(1889); -emit_16(1954); -emit_16(1890); -emit_16(1955); -emit_16(1891); -emit_16(1955); -emit_16(1890); -emit_16(1955); -emit_16(1891); -emit_16(1956); -emit_16(1892); -emit_16(1956); -emit_16(1891); -emit_16(1956); -emit_16(1892); -emit_16(1957); -emit_16(1893); -emit_16(1957); -emit_16(1892); -emit_16(1957); -emit_16(1893); -emit_16(1958); -emit_16(1894); -emit_16(1958); -emit_16(1893); -emit_16(1958); -emit_16(1894); -emit_16(1959); -emit_16(1895); -emit_16(1959); -emit_16(1894); -emit_16(1959); -emit_16(1895); -emit_16(1960); -emit_16(1896); -emit_16(1960); -emit_16(1895); -emit_16(1960); -emit_16(1896); -emit_16(1961); -emit_16(1897); -emit_16(1961); -emit_16(1896); -emit_16(1961); -emit_16(1897); -emit_16(1962); -emit_16(1898); -emit_16(1962); -emit_16(1897); -emit_16(1962); -emit_16(1898); -emit_16(1963); -emit_16(1899); -emit_16(1963); -emit_16(1898); -emit_16(1963); -emit_16(1899); -emit_16(1964); -emit_16(1900); -emit_16(1964); -emit_16(1899); -emit_16(1964); -emit_16(1900); -emit_16(1965); -emit_16(1901); -emit_16(1965); -emit_16(1900); -emit_16(1965); -emit_16(1901); -emit_16(1966); -emit_16(1902); -emit_16(1966); -emit_16(1901); -emit_16(1966); -emit_16(1902); -emit_16(1967); -emit_16(1903); -emit_16(1967); -emit_16(1902); -emit_16(1967); -emit_16(1903); -emit_16(1968); -emit_16(1904); -emit_16(1968); -emit_16(1903); -emit_16(1968); -emit_16(1904); -emit_16(1969); -emit_16(1905); -emit_16(1969); -emit_16(1904); -emit_16(1969); -emit_16(1905); -emit_16(1970); -emit_16(1906); -emit_16(1970); -emit_16(1905); -emit_16(1970); -emit_16(1906); -emit_16(1971); -emit_16(1907); -emit_16(1971); -emit_16(1906); -emit_16(1971); -emit_16(1907); -emit_16(1972); -emit_16(1908); -emit_16(1972); -emit_16(1907); -emit_16(1972); -emit_16(1908); -emit_16(1973); -emit_16(1909); -emit_16(1973); -emit_16(1908); -emit_16(1973); -emit_16(1909); -emit_16(1974); -emit_16(1910); -emit_16(1974); -emit_16(1909); -emit_16(1974); -emit_16(1910); -emit_16(1975); -emit_16(1911); -emit_16(1975); -emit_16(1910); -emit_16(1975); -emit_16(1911); -emit_16(1976); -emit_16(1912); -emit_16(1976); -emit_16(1911); -emit_16(1976); -emit_16(1912); -emit_16(1977); -emit_16(1913); -emit_16(1977); -emit_16(1912); -emit_16(1977); -emit_16(1913); -emit_16(1978); -emit_16(1914); -emit_16(1978); -emit_16(1913); -emit_16(1978); -emit_16(1914); -emit_16(1979); -emit_16(1915); -emit_16(1979); -emit_16(1914); -emit_16(1979); -emit_16(1915); -emit_16(1980); -emit_16(1916); -emit_16(1980); -emit_16(1915); -emit_16(1980); -emit_16(1916); -emit_16(1981); -emit_16(1917); -emit_16(1981); -emit_16(1916); -emit_16(1981); -emit_16(1917); -emit_16(1982); -emit_16(1918); -emit_16(1982); -emit_16(1917); -emit_16(1982); -emit_16(1918); -emit_16(1983); -emit_16(1919); -emit_16(1983); -emit_16(1918); -emit_16(1984); -emit_16(1920); -emit_16(1985); -emit_16(1921); -emit_16(1985); -emit_16(1920); -emit_16(1985); -emit_16(1921); -emit_16(1986); -emit_16(1922); -emit_16(1986); -emit_16(1921); -emit_16(1986); -emit_16(1922); -emit_16(1987); -emit_16(1923); -emit_16(1987); -emit_16(1922); -emit_16(1987); -emit_16(1923); -emit_16(1988); -emit_16(1924); -emit_16(1988); -emit_16(1923); -emit_16(1988); -emit_16(1924); -emit_16(1989); -emit_16(1925); -emit_16(1989); -emit_16(1924); -emit_16(1989); -emit_16(1925); -emit_16(1990); -emit_16(1926); -emit_16(1990); -emit_16(1925); -emit_16(1990); -emit_16(1926); -emit_16(1991); -emit_16(1927); -emit_16(1991); -emit_16(1926); -emit_16(1991); -emit_16(1927); -emit_16(1992); -emit_16(1928); -emit_16(1992); -emit_16(1927); -emit_16(1992); -emit_16(1928); -emit_16(1993); -emit_16(1929); -emit_16(1993); -emit_16(1928); -emit_16(1993); -emit_16(1929); -emit_16(1994); -emit_16(1930); -emit_16(1994); -emit_16(1929); -emit_16(1994); -emit_16(1930); -emit_16(1995); -emit_16(1931); -emit_16(1995); -emit_16(1930); -emit_16(1995); -emit_16(1931); -emit_16(1996); -emit_16(1932); -emit_16(1996); -emit_16(1931); -emit_16(1996); -emit_16(1932); -emit_16(1997); -emit_16(1933); -emit_16(1997); -emit_16(1932); -emit_16(1997); -emit_16(1933); -emit_16(1998); -emit_16(1934); -emit_16(1998); -emit_16(1933); -emit_16(1998); -emit_16(1934); -emit_16(1999); -emit_16(1935); -emit_16(1999); -emit_16(1934); -emit_16(1999); -emit_16(1935); -emit_16(2000); -emit_16(1936); -emit_16(2000); -emit_16(1935); -emit_16(2000); -emit_16(1936); -emit_16(2001); -emit_16(1937); -emit_16(2001); -emit_16(1936); -emit_16(2001); -emit_16(1937); -emit_16(2002); -emit_16(1938); -emit_16(2002); -emit_16(1937); -emit_16(2002); -emit_16(1938); -emit_16(2003); -emit_16(1939); -emit_16(2003); -emit_16(1938); -emit_16(2003); -emit_16(1939); -emit_16(2004); -emit_16(1940); -emit_16(2004); -emit_16(1939); -emit_16(2004); -emit_16(1940); -emit_16(2005); -emit_16(1941); -emit_16(2005); -emit_16(1940); -emit_16(2005); -emit_16(1941); -emit_16(2006); -emit_16(1942); -emit_16(2006); -emit_16(1941); -emit_16(2006); -emit_16(1942); -emit_16(2007); -emit_16(1943); -emit_16(2007); -emit_16(1942); -emit_16(2007); -emit_16(1943); -emit_16(2008); -emit_16(1944); -emit_16(2008); -emit_16(1943); -emit_16(2008); -emit_16(1944); -emit_16(2009); -emit_16(1945); -emit_16(2009); -emit_16(1944); -emit_16(2009); -emit_16(1945); -emit_16(2010); -emit_16(1946); -emit_16(2010); -emit_16(1945); -emit_16(2010); -emit_16(1946); -emit_16(2011); -emit_16(1947); -emit_16(2011); -emit_16(1946); -emit_16(2011); -emit_16(1947); -emit_16(2012); -emit_16(1948); -emit_16(2012); -emit_16(1947); -emit_16(2012); -emit_16(1948); -emit_16(2013); -emit_16(1949); -emit_16(2013); -emit_16(1948); -emit_16(2013); -emit_16(1949); -emit_16(2014); -emit_16(1950); -emit_16(2014); -emit_16(1949); -emit_16(2014); -emit_16(1950); -emit_16(2015); -emit_16(1951); -emit_16(2015); -emit_16(1950); -emit_16(2015); -emit_16(1951); -emit_16(2016); -emit_16(1952); -emit_16(2016); -emit_16(1951); -emit_16(2016); -emit_16(1952); -emit_16(2017); -emit_16(1953); -emit_16(2017); -emit_16(1952); -emit_16(2017); -emit_16(1953); -emit_16(2018); -emit_16(1954); -emit_16(2018); -emit_16(1953); -emit_16(2018); -emit_16(1954); -emit_16(2019); -emit_16(1955); -emit_16(2019); -emit_16(1954); -emit_16(2019); -emit_16(1955); -emit_16(2020); -emit_16(1956); -emit_16(2020); -emit_16(1955); -emit_16(2020); -emit_16(1956); -emit_16(2021); -emit_16(1957); -emit_16(2021); -emit_16(1956); -emit_16(2021); -emit_16(1957); -emit_16(2022); -emit_16(1958); -emit_16(2022); -emit_16(1957); -emit_16(2022); -emit_16(1958); -emit_16(2023); -emit_16(1959); -emit_16(2023); -emit_16(1958); -emit_16(2023); -emit_16(1959); -emit_16(2024); -emit_16(1960); -emit_16(2024); -emit_16(1959); -emit_16(2024); -emit_16(1960); -emit_16(2025); -emit_16(1961); -emit_16(2025); -emit_16(1960); -emit_16(2025); -emit_16(1961); -emit_16(2026); -emit_16(1962); -emit_16(2026); -emit_16(1961); -emit_16(2026); -emit_16(1962); -emit_16(2027); -emit_16(1963); -emit_16(2027); -emit_16(1962); -emit_16(2027); -emit_16(1963); -emit_16(2028); -emit_16(1964); -emit_16(2028); -emit_16(1963); -emit_16(2028); -emit_16(1964); -emit_16(2029); -emit_16(1965); -emit_16(2029); -emit_16(1964); -emit_16(2029); -emit_16(1965); -emit_16(2030); -emit_16(1966); -emit_16(2030); -emit_16(1965); -emit_16(2030); -emit_16(1966); -emit_16(2031); -emit_16(1967); -emit_16(2031); -emit_16(1966); -emit_16(2031); -emit_16(1967); -emit_16(2032); -emit_16(1968); -emit_16(2032); -emit_16(1967); -emit_16(2032); -emit_16(1968); -emit_16(2033); -emit_16(1969); -emit_16(2033); -emit_16(1968); -emit_16(2033); -emit_16(1969); -emit_16(2034); -emit_16(1970); -emit_16(2034); -emit_16(1969); -emit_16(2034); -emit_16(1970); -emit_16(2035); -emit_16(1971); -emit_16(2035); -emit_16(1970); -emit_16(2035); -emit_16(1971); -emit_16(2036); -emit_16(1972); -emit_16(2036); -emit_16(1971); -emit_16(2036); -emit_16(1972); -emit_16(2037); -emit_16(1973); -emit_16(2037); -emit_16(1972); -emit_16(2037); -emit_16(1973); -emit_16(2038); -emit_16(1974); -emit_16(2038); -emit_16(1973); -emit_16(2038); -emit_16(1974); -emit_16(2039); -emit_16(1975); -emit_16(2039); -emit_16(1974); -emit_16(2039); -emit_16(1975); -emit_16(2040); -emit_16(1976); -emit_16(2040); -emit_16(1975); -emit_16(2040); -emit_16(1976); -emit_16(2041); -emit_16(1977); -emit_16(2041); -emit_16(1976); -emit_16(2041); -emit_16(1977); -emit_16(2042); -emit_16(1978); -emit_16(2042); -emit_16(1977); -emit_16(2042); -emit_16(1978); -emit_16(2043); -emit_16(1979); -emit_16(2043); -emit_16(1978); -emit_16(2043); -emit_16(1979); -emit_16(2044); -emit_16(1980); -emit_16(2044); -emit_16(1979); -emit_16(2044); -emit_16(1980); -emit_16(2045); -emit_16(1981); -emit_16(2045); -emit_16(1980); -emit_16(2045); -emit_16(1981); -emit_16(2046); -emit_16(1982); -emit_16(2046); -emit_16(1981); -emit_16(2046); -emit_16(1982); -emit_16(2047); -emit_16(1983); -emit_16(2047); -emit_16(1982); -emit_start(Landscape04Idx) -emit_16(0); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(2); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(4); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(6); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(8); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(10); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(12); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(14); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(16); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(18); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(20); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(22); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(24); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(26); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(28); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(30); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(32); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(34); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(36); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(38); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(40); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(42); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(44); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(46); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(48); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(50); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(52); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(54); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(56); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(58); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(60); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(62); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(64); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(66); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(68); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(70); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(72); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(74); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(76); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(78); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(80); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(82); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(84); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(86); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(88); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(90); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(92); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(94); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(96); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(98); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(100); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(102); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(104); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(106); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(108); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(110); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(112); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(114); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(116); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(118); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(120); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(122); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(124); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(126); -emit_16(127); -emit_16(126); -emit_16(125); -emit_16(128); -emit_16(0); -emit_16(129); -emit_16(2); -emit_16(129); -emit_16(0); -emit_16(129); -emit_16(2); -emit_16(130); -emit_16(4); -emit_16(130); -emit_16(2); -emit_16(130); -emit_16(4); -emit_16(131); -emit_16(6); -emit_16(131); -emit_16(4); -emit_16(131); -emit_16(6); -emit_16(132); -emit_16(8); -emit_16(132); -emit_16(6); -emit_16(132); -emit_16(8); -emit_16(133); -emit_16(10); -emit_16(133); -emit_16(8); -emit_16(133); -emit_16(10); -emit_16(134); -emit_16(12); -emit_16(134); -emit_16(10); -emit_16(134); -emit_16(12); -emit_16(135); -emit_16(14); -emit_16(135); -emit_16(12); -emit_16(135); -emit_16(14); -emit_16(136); -emit_16(16); -emit_16(136); -emit_16(14); -emit_16(136); -emit_16(16); -emit_16(137); -emit_16(18); -emit_16(137); -emit_16(16); -emit_16(137); -emit_16(18); -emit_16(138); -emit_16(20); -emit_16(138); -emit_16(18); -emit_16(138); -emit_16(20); -emit_16(139); -emit_16(22); -emit_16(139); -emit_16(20); -emit_16(139); -emit_16(22); -emit_16(140); -emit_16(24); -emit_16(140); -emit_16(22); -emit_16(140); -emit_16(24); -emit_16(141); -emit_16(26); -emit_16(141); -emit_16(24); -emit_16(141); -emit_16(26); -emit_16(142); -emit_16(28); -emit_16(142); -emit_16(26); -emit_16(142); -emit_16(28); -emit_16(143); -emit_16(30); -emit_16(143); -emit_16(28); -emit_16(143); -emit_16(30); -emit_16(144); -emit_16(32); -emit_16(144); -emit_16(30); -emit_16(144); -emit_16(32); -emit_16(145); -emit_16(34); -emit_16(145); -emit_16(32); -emit_16(145); -emit_16(34); -emit_16(146); -emit_16(36); -emit_16(146); -emit_16(34); -emit_16(146); -emit_16(36); -emit_16(147); -emit_16(38); -emit_16(147); -emit_16(36); -emit_16(147); -emit_16(38); -emit_16(148); -emit_16(40); -emit_16(148); -emit_16(38); -emit_16(148); -emit_16(40); -emit_16(149); -emit_16(42); -emit_16(149); -emit_16(40); -emit_16(149); -emit_16(42); -emit_16(150); -emit_16(44); -emit_16(150); -emit_16(42); -emit_16(150); -emit_16(44); -emit_16(151); -emit_16(46); -emit_16(151); -emit_16(44); -emit_16(151); -emit_16(46); -emit_16(152); -emit_16(48); -emit_16(152); -emit_16(46); -emit_16(152); -emit_16(48); -emit_16(153); -emit_16(50); -emit_16(153); -emit_16(48); -emit_16(153); -emit_16(50); -emit_16(154); -emit_16(52); -emit_16(154); -emit_16(50); -emit_16(154); -emit_16(52); -emit_16(155); -emit_16(54); -emit_16(155); -emit_16(52); -emit_16(155); -emit_16(54); -emit_16(156); -emit_16(56); -emit_16(156); -emit_16(54); -emit_16(156); -emit_16(56); -emit_16(157); -emit_16(58); -emit_16(157); -emit_16(56); -emit_16(157); -emit_16(58); -emit_16(158); -emit_16(60); -emit_16(158); -emit_16(58); -emit_16(158); -emit_16(60); -emit_16(159); -emit_16(62); -emit_16(159); -emit_16(60); -emit_16(159); -emit_16(62); -emit_16(160); -emit_16(64); -emit_16(160); -emit_16(62); -emit_16(160); -emit_16(64); -emit_16(161); -emit_16(66); -emit_16(161); -emit_16(64); -emit_16(161); -emit_16(66); -emit_16(162); -emit_16(68); -emit_16(162); -emit_16(66); -emit_16(162); -emit_16(68); -emit_16(163); -emit_16(70); -emit_16(163); -emit_16(68); -emit_16(163); -emit_16(70); -emit_16(164); -emit_16(72); -emit_16(164); -emit_16(70); -emit_16(164); -emit_16(72); -emit_16(165); -emit_16(74); -emit_16(165); -emit_16(72); -emit_16(165); -emit_16(74); -emit_16(166); -emit_16(76); -emit_16(166); -emit_16(74); -emit_16(166); -emit_16(76); -emit_16(167); -emit_16(78); -emit_16(167); -emit_16(76); -emit_16(167); -emit_16(78); -emit_16(168); -emit_16(80); -emit_16(168); -emit_16(78); -emit_16(168); -emit_16(80); -emit_16(169); -emit_16(82); -emit_16(169); -emit_16(80); -emit_16(169); -emit_16(82); -emit_16(170); -emit_16(84); -emit_16(170); -emit_16(82); -emit_16(170); -emit_16(84); -emit_16(171); -emit_16(86); -emit_16(171); -emit_16(84); -emit_16(171); -emit_16(86); -emit_16(172); -emit_16(88); -emit_16(172); -emit_16(86); -emit_16(172); -emit_16(88); -emit_16(173); -emit_16(90); -emit_16(173); -emit_16(88); -emit_16(173); -emit_16(90); -emit_16(174); -emit_16(92); -emit_16(174); -emit_16(90); -emit_16(174); -emit_16(92); -emit_16(175); -emit_16(94); -emit_16(175); -emit_16(92); -emit_16(175); -emit_16(94); -emit_16(176); -emit_16(96); -emit_16(176); -emit_16(94); -emit_16(176); -emit_16(96); -emit_16(177); -emit_16(98); -emit_16(177); -emit_16(96); -emit_16(177); -emit_16(98); -emit_16(178); -emit_16(100); -emit_16(178); -emit_16(98); -emit_16(178); -emit_16(100); -emit_16(179); -emit_16(102); -emit_16(179); -emit_16(100); -emit_16(179); -emit_16(102); -emit_16(180); -emit_16(104); -emit_16(180); -emit_16(102); -emit_16(180); -emit_16(104); -emit_16(181); -emit_16(106); -emit_16(181); -emit_16(104); -emit_16(181); -emit_16(106); -emit_16(182); -emit_16(108); -emit_16(182); -emit_16(106); -emit_16(182); -emit_16(108); -emit_16(183); -emit_16(110); -emit_16(183); -emit_16(108); -emit_16(183); -emit_16(110); -emit_16(184); -emit_16(112); -emit_16(184); -emit_16(110); -emit_16(184); -emit_16(112); -emit_16(185); -emit_16(114); -emit_16(185); -emit_16(112); -emit_16(185); -emit_16(114); -emit_16(186); -emit_16(116); -emit_16(186); -emit_16(114); -emit_16(186); -emit_16(116); -emit_16(187); -emit_16(118); -emit_16(187); -emit_16(116); -emit_16(187); -emit_16(118); -emit_16(188); -emit_16(120); -emit_16(188); -emit_16(118); -emit_16(188); -emit_16(120); -emit_16(189); -emit_16(122); -emit_16(189); -emit_16(120); -emit_16(189); -emit_16(122); -emit_16(190); -emit_16(124); -emit_16(190); -emit_16(122); -emit_16(190); -emit_16(124); -emit_16(191); -emit_16(126); -emit_16(191); -emit_16(124); -emit_16(192); -emit_16(128); -emit_16(193); -emit_16(129); -emit_16(193); -emit_16(128); -emit_16(193); -emit_16(129); -emit_16(194); -emit_16(130); -emit_16(194); -emit_16(129); -emit_16(194); -emit_16(130); -emit_16(195); -emit_16(131); -emit_16(195); -emit_16(130); -emit_16(195); -emit_16(131); -emit_16(196); -emit_16(132); -emit_16(196); -emit_16(131); -emit_16(196); -emit_16(132); -emit_16(197); -emit_16(133); -emit_16(197); -emit_16(132); -emit_16(197); -emit_16(133); -emit_16(198); -emit_16(134); -emit_16(198); -emit_16(133); -emit_16(198); -emit_16(134); -emit_16(199); -emit_16(135); -emit_16(199); -emit_16(134); -emit_16(199); -emit_16(135); -emit_16(200); -emit_16(136); -emit_16(200); -emit_16(135); -emit_16(200); -emit_16(136); -emit_16(201); -emit_16(137); -emit_16(201); -emit_16(136); -emit_16(201); -emit_16(137); -emit_16(202); -emit_16(138); -emit_16(202); -emit_16(137); -emit_16(202); -emit_16(138); -emit_16(203); -emit_16(139); -emit_16(203); -emit_16(138); -emit_16(203); -emit_16(139); -emit_16(204); -emit_16(140); -emit_16(204); -emit_16(139); -emit_16(204); -emit_16(140); -emit_16(205); -emit_16(141); -emit_16(205); -emit_16(140); -emit_16(205); -emit_16(141); -emit_16(206); -emit_16(142); -emit_16(206); -emit_16(141); -emit_16(206); -emit_16(142); -emit_16(207); -emit_16(143); -emit_16(207); -emit_16(142); -emit_16(207); -emit_16(143); -emit_16(208); -emit_16(144); -emit_16(208); -emit_16(143); -emit_16(208); -emit_16(144); -emit_16(209); -emit_16(145); -emit_16(209); -emit_16(144); -emit_16(209); -emit_16(145); -emit_16(210); -emit_16(146); -emit_16(210); -emit_16(145); -emit_16(210); -emit_16(146); -emit_16(211); -emit_16(147); -emit_16(211); -emit_16(146); -emit_16(211); -emit_16(147); -emit_16(212); -emit_16(148); -emit_16(212); -emit_16(147); -emit_16(212); -emit_16(148); -emit_16(213); -emit_16(149); -emit_16(213); -emit_16(148); -emit_16(213); -emit_16(149); -emit_16(214); -emit_16(150); -emit_16(214); -emit_16(149); -emit_16(214); -emit_16(150); -emit_16(215); -emit_16(151); -emit_16(215); -emit_16(150); -emit_16(215); -emit_16(151); -emit_16(216); -emit_16(152); -emit_16(216); -emit_16(151); -emit_16(216); -emit_16(152); -emit_16(217); -emit_16(153); -emit_16(217); -emit_16(152); -emit_16(217); -emit_16(153); -emit_16(218); -emit_16(154); -emit_16(218); -emit_16(153); -emit_16(218); -emit_16(154); -emit_16(219); -emit_16(155); -emit_16(219); -emit_16(154); -emit_16(219); -emit_16(155); -emit_16(220); -emit_16(156); -emit_16(220); -emit_16(155); -emit_16(220); -emit_16(156); -emit_16(221); -emit_16(157); -emit_16(221); -emit_16(156); -emit_16(221); -emit_16(157); -emit_16(222); -emit_16(158); -emit_16(222); -emit_16(157); -emit_16(222); -emit_16(158); -emit_16(223); -emit_16(159); -emit_16(223); -emit_16(158); -emit_16(223); -emit_16(159); -emit_16(224); -emit_16(160); -emit_16(224); -emit_16(159); -emit_16(224); -emit_16(160); -emit_16(225); -emit_16(161); -emit_16(225); -emit_16(160); -emit_16(225); -emit_16(161); -emit_16(226); -emit_16(162); -emit_16(226); -emit_16(161); -emit_16(226); -emit_16(162); -emit_16(227); -emit_16(163); -emit_16(227); -emit_16(162); -emit_16(227); -emit_16(163); -emit_16(228); -emit_16(164); -emit_16(228); -emit_16(163); -emit_16(228); -emit_16(164); -emit_16(229); -emit_16(165); -emit_16(229); -emit_16(164); -emit_16(229); -emit_16(165); -emit_16(230); -emit_16(166); -emit_16(230); -emit_16(165); -emit_16(230); -emit_16(166); -emit_16(231); -emit_16(167); -emit_16(231); -emit_16(166); -emit_16(231); -emit_16(167); -emit_16(232); -emit_16(168); -emit_16(232); -emit_16(167); -emit_16(232); -emit_16(168); -emit_16(233); -emit_16(169); -emit_16(233); -emit_16(168); -emit_16(233); -emit_16(169); -emit_16(234); -emit_16(170); -emit_16(234); -emit_16(169); -emit_16(234); -emit_16(170); -emit_16(235); -emit_16(171); -emit_16(235); -emit_16(170); -emit_16(235); -emit_16(171); -emit_16(236); -emit_16(172); -emit_16(236); -emit_16(171); -emit_16(236); -emit_16(172); -emit_16(237); -emit_16(173); -emit_16(237); -emit_16(172); -emit_16(237); -emit_16(173); -emit_16(238); -emit_16(174); -emit_16(238); -emit_16(173); -emit_16(238); -emit_16(174); -emit_16(239); -emit_16(175); -emit_16(239); -emit_16(174); -emit_16(239); -emit_16(175); -emit_16(240); -emit_16(176); -emit_16(240); -emit_16(175); -emit_16(240); -emit_16(176); -emit_16(241); -emit_16(177); -emit_16(241); -emit_16(176); -emit_16(241); -emit_16(177); -emit_16(242); -emit_16(178); -emit_16(242); -emit_16(177); -emit_16(242); -emit_16(178); -emit_16(243); -emit_16(179); -emit_16(243); -emit_16(178); -emit_16(243); -emit_16(179); -emit_16(244); -emit_16(180); -emit_16(244); -emit_16(179); -emit_16(244); -emit_16(180); -emit_16(245); -emit_16(181); -emit_16(245); -emit_16(180); -emit_16(245); -emit_16(181); -emit_16(246); -emit_16(182); -emit_16(246); -emit_16(181); -emit_16(246); -emit_16(182); -emit_16(247); -emit_16(183); -emit_16(247); -emit_16(182); -emit_16(247); -emit_16(183); -emit_16(248); -emit_16(184); -emit_16(248); -emit_16(183); -emit_16(248); -emit_16(184); -emit_16(249); -emit_16(185); -emit_16(249); -emit_16(184); -emit_16(249); -emit_16(185); -emit_16(250); -emit_16(186); -emit_16(250); -emit_16(185); -emit_16(250); -emit_16(186); -emit_16(251); -emit_16(187); -emit_16(251); -emit_16(186); -emit_16(251); -emit_16(187); -emit_16(252); -emit_16(188); -emit_16(252); -emit_16(187); -emit_16(252); -emit_16(188); -emit_16(253); -emit_16(189); -emit_16(253); -emit_16(188); -emit_16(253); -emit_16(189); -emit_16(254); -emit_16(190); -emit_16(254); -emit_16(189); -emit_16(254); -emit_16(190); -emit_16(255); -emit_16(191); -emit_16(255); -emit_16(190); -emit_16(256); -emit_16(192); -emit_16(257); -emit_16(193); -emit_16(257); -emit_16(192); -emit_16(257); -emit_16(193); -emit_16(258); -emit_16(194); -emit_16(258); -emit_16(193); -emit_16(258); -emit_16(194); -emit_16(259); -emit_16(195); -emit_16(259); -emit_16(194); -emit_16(259); -emit_16(195); -emit_16(260); -emit_16(196); -emit_16(260); -emit_16(195); -emit_16(260); -emit_16(196); -emit_16(261); -emit_16(197); -emit_16(261); -emit_16(196); -emit_16(261); -emit_16(197); -emit_16(262); -emit_16(198); -emit_16(262); -emit_16(197); -emit_16(262); -emit_16(198); -emit_16(263); -emit_16(199); -emit_16(263); -emit_16(198); -emit_16(263); -emit_16(199); -emit_16(264); -emit_16(200); -emit_16(264); -emit_16(199); -emit_16(264); -emit_16(200); -emit_16(265); -emit_16(201); -emit_16(265); -emit_16(200); -emit_16(265); -emit_16(201); -emit_16(266); -emit_16(202); -emit_16(266); -emit_16(201); -emit_16(266); -emit_16(202); -emit_16(267); -emit_16(203); -emit_16(267); -emit_16(202); -emit_16(267); -emit_16(203); -emit_16(268); -emit_16(204); -emit_16(268); -emit_16(203); -emit_16(268); -emit_16(204); -emit_16(269); -emit_16(205); -emit_16(269); -emit_16(204); -emit_16(269); -emit_16(205); -emit_16(270); -emit_16(206); -emit_16(270); -emit_16(205); -emit_16(270); -emit_16(206); -emit_16(271); -emit_16(207); -emit_16(271); -emit_16(206); -emit_16(271); -emit_16(207); -emit_16(272); -emit_16(208); -emit_16(272); -emit_16(207); -emit_16(272); -emit_16(208); -emit_16(273); -emit_16(209); -emit_16(273); -emit_16(208); -emit_16(273); -emit_16(209); -emit_16(274); -emit_16(210); -emit_16(274); -emit_16(209); -emit_16(274); -emit_16(210); -emit_16(275); -emit_16(211); -emit_16(275); -emit_16(210); -emit_16(275); -emit_16(211); -emit_16(276); -emit_16(212); -emit_16(276); -emit_16(211); -emit_16(276); -emit_16(212); -emit_16(277); -emit_16(213); -emit_16(277); -emit_16(212); -emit_16(277); -emit_16(213); -emit_16(278); -emit_16(214); -emit_16(278); -emit_16(213); -emit_16(278); -emit_16(214); -emit_16(279); -emit_16(215); -emit_16(279); -emit_16(214); -emit_16(279); -emit_16(215); -emit_16(280); -emit_16(216); -emit_16(280); -emit_16(215); -emit_16(280); -emit_16(216); -emit_16(281); -emit_16(217); -emit_16(281); -emit_16(216); -emit_16(281); -emit_16(217); -emit_16(282); -emit_16(218); -emit_16(282); -emit_16(217); -emit_16(282); -emit_16(218); -emit_16(283); -emit_16(219); -emit_16(283); -emit_16(218); -emit_16(283); -emit_16(219); -emit_16(284); -emit_16(220); -emit_16(284); -emit_16(219); -emit_16(284); -emit_16(220); -emit_16(285); -emit_16(221); -emit_16(285); -emit_16(220); -emit_16(285); -emit_16(221); -emit_16(286); -emit_16(222); -emit_16(286); -emit_16(221); -emit_16(286); -emit_16(222); -emit_16(287); -emit_16(223); -emit_16(287); -emit_16(222); -emit_16(287); -emit_16(223); -emit_16(288); -emit_16(224); -emit_16(288); -emit_16(223); -emit_16(288); -emit_16(224); -emit_16(289); -emit_16(225); -emit_16(289); -emit_16(224); -emit_16(289); -emit_16(225); -emit_16(290); -emit_16(226); -emit_16(290); -emit_16(225); -emit_16(290); -emit_16(226); -emit_16(291); -emit_16(227); -emit_16(291); -emit_16(226); -emit_16(291); -emit_16(227); -emit_16(292); -emit_16(228); -emit_16(292); -emit_16(227); -emit_16(292); -emit_16(228); -emit_16(293); -emit_16(229); -emit_16(293); -emit_16(228); -emit_16(293); -emit_16(229); -emit_16(294); -emit_16(230); -emit_16(294); -emit_16(229); -emit_16(294); -emit_16(230); -emit_16(295); -emit_16(231); -emit_16(295); -emit_16(230); -emit_16(295); -emit_16(231); -emit_16(296); -emit_16(232); -emit_16(296); -emit_16(231); -emit_16(296); -emit_16(232); -emit_16(297); -emit_16(233); -emit_16(297); -emit_16(232); -emit_16(297); -emit_16(233); -emit_16(298); -emit_16(234); -emit_16(298); -emit_16(233); -emit_16(298); -emit_16(234); -emit_16(299); -emit_16(235); -emit_16(299); -emit_16(234); -emit_16(299); -emit_16(235); -emit_16(300); -emit_16(236); -emit_16(300); -emit_16(235); -emit_16(300); -emit_16(236); -emit_16(301); -emit_16(237); -emit_16(301); -emit_16(236); -emit_16(301); -emit_16(237); -emit_16(302); -emit_16(238); -emit_16(302); -emit_16(237); -emit_16(302); -emit_16(238); -emit_16(303); -emit_16(239); -emit_16(303); -emit_16(238); -emit_16(303); -emit_16(239); -emit_16(304); -emit_16(240); -emit_16(304); -emit_16(239); -emit_16(304); -emit_16(240); -emit_16(305); -emit_16(241); -emit_16(305); -emit_16(240); -emit_16(305); -emit_16(241); -emit_16(306); -emit_16(242); -emit_16(306); -emit_16(241); -emit_16(306); -emit_16(242); -emit_16(307); -emit_16(243); -emit_16(307); -emit_16(242); -emit_16(307); -emit_16(243); -emit_16(308); -emit_16(244); -emit_16(308); -emit_16(243); -emit_16(308); -emit_16(244); -emit_16(309); -emit_16(245); -emit_16(309); -emit_16(244); -emit_16(309); -emit_16(245); -emit_16(310); -emit_16(246); -emit_16(310); -emit_16(245); -emit_16(310); -emit_16(246); -emit_16(311); -emit_16(247); -emit_16(311); -emit_16(246); -emit_16(311); -emit_16(247); -emit_16(312); -emit_16(248); -emit_16(312); -emit_16(247); -emit_16(312); -emit_16(248); -emit_16(313); -emit_16(249); -emit_16(313); -emit_16(248); -emit_16(313); -emit_16(249); -emit_16(314); -emit_16(250); -emit_16(314); -emit_16(249); -emit_16(314); -emit_16(250); -emit_16(315); -emit_16(251); -emit_16(315); -emit_16(250); -emit_16(315); -emit_16(251); -emit_16(316); -emit_16(252); -emit_16(316); -emit_16(251); -emit_16(316); -emit_16(252); -emit_16(317); -emit_16(253); -emit_16(317); -emit_16(252); -emit_16(317); -emit_16(253); -emit_16(318); -emit_16(254); -emit_16(318); -emit_16(253); -emit_16(318); -emit_16(254); -emit_16(319); -emit_16(255); -emit_16(319); -emit_16(254); -emit_16(320); -emit_16(256); -emit_16(321); -emit_16(257); -emit_16(321); -emit_16(256); -emit_16(321); -emit_16(257); -emit_16(322); -emit_16(258); -emit_16(322); -emit_16(257); -emit_16(322); -emit_16(258); -emit_16(323); -emit_16(259); -emit_16(323); -emit_16(258); -emit_16(323); -emit_16(259); -emit_16(324); -emit_16(260); -emit_16(324); -emit_16(259); -emit_16(324); -emit_16(260); -emit_16(325); -emit_16(261); -emit_16(325); -emit_16(260); -emit_16(325); -emit_16(261); -emit_16(326); -emit_16(262); -emit_16(326); -emit_16(261); -emit_16(326); -emit_16(262); -emit_16(327); -emit_16(263); -emit_16(327); -emit_16(262); -emit_16(327); -emit_16(263); -emit_16(328); -emit_16(264); -emit_16(328); -emit_16(263); -emit_16(328); -emit_16(264); -emit_16(329); -emit_16(265); -emit_16(329); -emit_16(264); -emit_16(329); -emit_16(265); -emit_16(330); -emit_16(266); -emit_16(330); -emit_16(265); -emit_16(330); -emit_16(266); -emit_16(331); -emit_16(267); -emit_16(331); -emit_16(266); -emit_16(331); -emit_16(267); -emit_16(332); -emit_16(268); -emit_16(332); -emit_16(267); -emit_16(332); -emit_16(268); -emit_16(333); -emit_16(269); -emit_16(333); -emit_16(268); -emit_16(333); -emit_16(269); -emit_16(334); -emit_16(270); -emit_16(334); -emit_16(269); -emit_16(334); -emit_16(270); -emit_16(335); -emit_16(271); -emit_16(335); -emit_16(270); -emit_16(335); -emit_16(271); -emit_16(336); -emit_16(272); -emit_16(336); -emit_16(271); -emit_16(336); -emit_16(272); -emit_16(337); -emit_16(273); -emit_16(337); -emit_16(272); -emit_16(337); -emit_16(273); -emit_16(338); -emit_16(274); -emit_16(338); -emit_16(273); -emit_16(338); -emit_16(274); -emit_16(339); -emit_16(275); -emit_16(339); -emit_16(274); -emit_16(339); -emit_16(275); -emit_16(340); -emit_16(276); -emit_16(340); -emit_16(275); -emit_16(340); -emit_16(276); -emit_16(341); -emit_16(277); -emit_16(341); -emit_16(276); -emit_16(341); -emit_16(277); -emit_16(342); -emit_16(278); -emit_16(342); -emit_16(277); -emit_16(342); -emit_16(278); -emit_16(343); -emit_16(279); -emit_16(343); -emit_16(278); -emit_16(343); -emit_16(279); -emit_16(344); -emit_16(280); -emit_16(344); -emit_16(279); -emit_16(344); -emit_16(280); -emit_16(345); -emit_16(281); -emit_16(345); -emit_16(280); -emit_16(345); -emit_16(281); -emit_16(346); -emit_16(282); -emit_16(346); -emit_16(281); -emit_16(346); -emit_16(282); -emit_16(347); -emit_16(283); -emit_16(347); -emit_16(282); -emit_16(347); -emit_16(283); -emit_16(348); -emit_16(284); -emit_16(348); -emit_16(283); -emit_16(348); -emit_16(284); -emit_16(349); -emit_16(285); -emit_16(349); -emit_16(284); -emit_16(349); -emit_16(285); -emit_16(350); -emit_16(286); -emit_16(350); -emit_16(285); -emit_16(350); -emit_16(286); -emit_16(351); -emit_16(287); -emit_16(351); -emit_16(286); -emit_16(351); -emit_16(287); -emit_16(352); -emit_16(288); -emit_16(352); -emit_16(287); -emit_16(352); -emit_16(288); -emit_16(353); -emit_16(289); -emit_16(353); -emit_16(288); -emit_16(353); -emit_16(289); -emit_16(354); -emit_16(290); -emit_16(354); -emit_16(289); -emit_16(354); -emit_16(290); -emit_16(355); -emit_16(291); -emit_16(355); -emit_16(290); -emit_16(355); -emit_16(291); -emit_16(356); -emit_16(292); -emit_16(356); -emit_16(291); -emit_16(356); -emit_16(292); -emit_16(357); -emit_16(293); -emit_16(357); -emit_16(292); -emit_16(357); -emit_16(293); -emit_16(358); -emit_16(294); -emit_16(358); -emit_16(293); -emit_16(358); -emit_16(294); -emit_16(359); -emit_16(295); -emit_16(359); -emit_16(294); -emit_16(359); -emit_16(295); -emit_16(360); -emit_16(296); -emit_16(360); -emit_16(295); -emit_16(360); -emit_16(296); -emit_16(361); -emit_16(297); -emit_16(361); -emit_16(296); -emit_16(361); -emit_16(297); -emit_16(362); -emit_16(298); -emit_16(362); -emit_16(297); -emit_16(362); -emit_16(298); -emit_16(363); -emit_16(299); -emit_16(363); -emit_16(298); -emit_16(363); -emit_16(299); -emit_16(364); -emit_16(300); -emit_16(364); -emit_16(299); -emit_16(364); -emit_16(300); -emit_16(365); -emit_16(301); -emit_16(365); -emit_16(300); -emit_16(365); -emit_16(301); -emit_16(366); -emit_16(302); -emit_16(366); -emit_16(301); -emit_16(366); -emit_16(302); -emit_16(367); -emit_16(303); -emit_16(367); -emit_16(302); -emit_16(367); -emit_16(303); -emit_16(368); -emit_16(304); -emit_16(368); -emit_16(303); -emit_16(368); -emit_16(304); -emit_16(369); -emit_16(305); -emit_16(369); -emit_16(304); -emit_16(369); -emit_16(305); -emit_16(370); -emit_16(306); -emit_16(370); -emit_16(305); -emit_16(370); -emit_16(306); -emit_16(371); -emit_16(307); -emit_16(371); -emit_16(306); -emit_16(371); -emit_16(307); -emit_16(372); -emit_16(308); -emit_16(372); -emit_16(307); -emit_16(372); -emit_16(308); -emit_16(373); -emit_16(309); -emit_16(373); -emit_16(308); -emit_16(373); -emit_16(309); -emit_16(374); -emit_16(310); -emit_16(374); -emit_16(309); -emit_16(374); -emit_16(310); -emit_16(375); -emit_16(311); -emit_16(375); -emit_16(310); -emit_16(375); -emit_16(311); -emit_16(376); -emit_16(312); -emit_16(376); -emit_16(311); -emit_16(376); -emit_16(312); -emit_16(377); -emit_16(313); -emit_16(377); -emit_16(312); -emit_16(377); -emit_16(313); -emit_16(378); -emit_16(314); -emit_16(378); -emit_16(313); -emit_16(378); -emit_16(314); -emit_16(379); -emit_16(315); -emit_16(379); -emit_16(314); -emit_16(379); -emit_16(315); -emit_16(380); -emit_16(316); -emit_16(380); -emit_16(315); -emit_16(380); -emit_16(316); -emit_16(381); -emit_16(317); -emit_16(381); -emit_16(316); -emit_16(381); -emit_16(317); -emit_16(382); -emit_16(318); -emit_16(382); -emit_16(317); -emit_16(382); -emit_16(318); -emit_16(383); -emit_16(319); -emit_16(383); -emit_16(318); -emit_16(384); -emit_16(320); -emit_16(385); -emit_16(321); -emit_16(385); -emit_16(320); -emit_16(385); -emit_16(321); -emit_16(386); -emit_16(322); -emit_16(386); -emit_16(321); -emit_16(386); -emit_16(322); -emit_16(387); -emit_16(323); -emit_16(387); -emit_16(322); -emit_16(387); -emit_16(323); -emit_16(388); -emit_16(324); -emit_16(388); -emit_16(323); -emit_16(388); -emit_16(324); -emit_16(389); -emit_16(325); -emit_16(389); -emit_16(324); -emit_16(389); -emit_16(325); -emit_16(390); -emit_16(326); -emit_16(390); -emit_16(325); -emit_16(390); -emit_16(326); -emit_16(391); -emit_16(327); -emit_16(391); -emit_16(326); -emit_16(391); -emit_16(327); -emit_16(392); -emit_16(328); -emit_16(392); -emit_16(327); -emit_16(392); -emit_16(328); -emit_16(393); -emit_16(329); -emit_16(393); -emit_16(328); -emit_16(393); -emit_16(329); -emit_16(394); -emit_16(330); -emit_16(394); -emit_16(329); -emit_16(394); -emit_16(330); -emit_16(395); -emit_16(331); -emit_16(395); -emit_16(330); -emit_16(395); -emit_16(331); -emit_16(396); -emit_16(332); -emit_16(396); -emit_16(331); -emit_16(396); -emit_16(332); -emit_16(397); -emit_16(333); -emit_16(397); -emit_16(332); -emit_16(397); -emit_16(333); -emit_16(398); -emit_16(334); -emit_16(398); -emit_16(333); -emit_16(398); -emit_16(334); -emit_16(399); -emit_16(335); -emit_16(399); -emit_16(334); -emit_16(399); -emit_16(335); -emit_16(400); -emit_16(336); -emit_16(400); -emit_16(335); -emit_16(400); -emit_16(336); -emit_16(401); -emit_16(337); -emit_16(401); -emit_16(336); -emit_16(401); -emit_16(337); -emit_16(402); -emit_16(338); -emit_16(402); -emit_16(337); -emit_16(402); -emit_16(338); -emit_16(403); -emit_16(339); -emit_16(403); -emit_16(338); -emit_16(403); -emit_16(339); -emit_16(404); -emit_16(340); -emit_16(404); -emit_16(339); -emit_16(404); -emit_16(340); -emit_16(405); -emit_16(341); -emit_16(405); -emit_16(340); -emit_16(405); -emit_16(341); -emit_16(406); -emit_16(342); -emit_16(406); -emit_16(341); -emit_16(406); -emit_16(342); -emit_16(407); -emit_16(343); -emit_16(407); -emit_16(342); -emit_16(407); -emit_16(343); -emit_16(408); -emit_16(344); -emit_16(408); -emit_16(343); -emit_16(408); -emit_16(344); -emit_16(409); -emit_16(345); -emit_16(409); -emit_16(344); -emit_16(409); -emit_16(345); -emit_16(410); -emit_16(346); -emit_16(410); -emit_16(345); -emit_16(410); -emit_16(346); -emit_16(411); -emit_16(347); -emit_16(411); -emit_16(346); -emit_16(411); -emit_16(347); -emit_16(412); -emit_16(348); -emit_16(412); -emit_16(347); -emit_16(412); -emit_16(348); -emit_16(413); -emit_16(349); -emit_16(413); -emit_16(348); -emit_16(413); -emit_16(349); -emit_16(414); -emit_16(350); -emit_16(414); -emit_16(349); -emit_16(414); -emit_16(350); -emit_16(415); -emit_16(351); -emit_16(415); -emit_16(350); -emit_16(415); -emit_16(351); -emit_16(416); -emit_16(352); -emit_16(416); -emit_16(351); -emit_16(416); -emit_16(352); -emit_16(417); -emit_16(353); -emit_16(417); -emit_16(352); -emit_16(417); -emit_16(353); -emit_16(418); -emit_16(354); -emit_16(418); -emit_16(353); -emit_16(418); -emit_16(354); -emit_16(419); -emit_16(355); -emit_16(419); -emit_16(354); -emit_16(419); -emit_16(355); -emit_16(420); -emit_16(356); -emit_16(420); -emit_16(355); -emit_16(420); -emit_16(356); -emit_16(421); -emit_16(357); -emit_16(421); -emit_16(356); -emit_16(421); -emit_16(357); -emit_16(422); -emit_16(358); -emit_16(422); -emit_16(357); -emit_16(422); -emit_16(358); -emit_16(423); -emit_16(359); -emit_16(423); -emit_16(358); -emit_16(423); -emit_16(359); -emit_16(424); -emit_16(360); -emit_16(424); -emit_16(359); -emit_16(424); -emit_16(360); -emit_16(425); -emit_16(361); -emit_16(425); -emit_16(360); -emit_16(425); -emit_16(361); -emit_16(426); -emit_16(362); -emit_16(426); -emit_16(361); -emit_16(426); -emit_16(362); -emit_16(427); -emit_16(363); -emit_16(427); -emit_16(362); -emit_16(427); -emit_16(363); -emit_16(428); -emit_16(364); -emit_16(428); -emit_16(363); -emit_16(428); -emit_16(364); -emit_16(429); -emit_16(365); -emit_16(429); -emit_16(364); -emit_16(429); -emit_16(365); -emit_16(430); -emit_16(366); -emit_16(430); -emit_16(365); -emit_16(430); -emit_16(366); -emit_16(431); -emit_16(367); -emit_16(431); -emit_16(366); -emit_16(431); -emit_16(367); -emit_16(432); -emit_16(368); -emit_16(432); -emit_16(367); -emit_16(432); -emit_16(368); -emit_16(433); -emit_16(369); -emit_16(433); -emit_16(368); -emit_16(433); -emit_16(369); -emit_16(434); -emit_16(370); -emit_16(434); -emit_16(369); -emit_16(434); -emit_16(370); -emit_16(435); -emit_16(371); -emit_16(435); -emit_16(370); -emit_16(435); -emit_16(371); -emit_16(436); -emit_16(372); -emit_16(436); -emit_16(371); -emit_16(436); -emit_16(372); -emit_16(437); -emit_16(373); -emit_16(437); -emit_16(372); -emit_16(437); -emit_16(373); -emit_16(438); -emit_16(374); -emit_16(438); -emit_16(373); -emit_16(438); -emit_16(374); -emit_16(439); -emit_16(375); -emit_16(439); -emit_16(374); -emit_16(439); -emit_16(375); -emit_16(440); -emit_16(376); -emit_16(440); -emit_16(375); -emit_16(440); -emit_16(376); -emit_16(441); -emit_16(377); -emit_16(441); -emit_16(376); -emit_16(441); -emit_16(377); -emit_16(442); -emit_16(378); -emit_16(442); -emit_16(377); -emit_16(442); -emit_16(378); -emit_16(443); -emit_16(379); -emit_16(443); -emit_16(378); -emit_16(443); -emit_16(379); -emit_16(444); -emit_16(380); -emit_16(444); -emit_16(379); -emit_16(444); -emit_16(380); -emit_16(445); -emit_16(381); -emit_16(445); -emit_16(380); -emit_16(445); -emit_16(381); -emit_16(446); -emit_16(382); -emit_16(446); -emit_16(381); -emit_16(446); -emit_16(382); -emit_16(447); -emit_16(383); -emit_16(447); -emit_16(382); -emit_16(448); -emit_16(384); -emit_16(449); -emit_16(385); -emit_16(449); -emit_16(384); -emit_16(449); -emit_16(385); -emit_16(450); -emit_16(386); -emit_16(450); -emit_16(385); -emit_16(450); -emit_16(386); -emit_16(451); -emit_16(387); -emit_16(451); -emit_16(386); -emit_16(451); -emit_16(387); -emit_16(452); -emit_16(388); -emit_16(452); -emit_16(387); -emit_16(452); -emit_16(388); -emit_16(453); -emit_16(389); -emit_16(453); -emit_16(388); -emit_16(453); -emit_16(389); -emit_16(454); -emit_16(390); -emit_16(454); -emit_16(389); -emit_16(454); -emit_16(390); -emit_16(455); -emit_16(391); -emit_16(455); -emit_16(390); -emit_16(455); -emit_16(391); -emit_16(456); -emit_16(392); -emit_16(456); -emit_16(391); -emit_16(456); -emit_16(392); -emit_16(457); -emit_16(393); -emit_16(457); -emit_16(392); -emit_16(457); -emit_16(393); -emit_16(458); -emit_16(394); -emit_16(458); -emit_16(393); -emit_16(458); -emit_16(394); -emit_16(459); -emit_16(395); -emit_16(459); -emit_16(394); -emit_16(459); -emit_16(395); -emit_16(460); -emit_16(396); -emit_16(460); -emit_16(395); -emit_16(460); -emit_16(396); -emit_16(461); -emit_16(397); -emit_16(461); -emit_16(396); -emit_16(461); -emit_16(397); -emit_16(462); -emit_16(398); -emit_16(462); -emit_16(397); -emit_16(462); -emit_16(398); -emit_16(463); -emit_16(399); -emit_16(463); -emit_16(398); -emit_16(463); -emit_16(399); -emit_16(464); -emit_16(400); -emit_16(464); -emit_16(399); -emit_16(464); -emit_16(400); -emit_16(465); -emit_16(401); -emit_16(465); -emit_16(400); -emit_16(465); -emit_16(401); -emit_16(466); -emit_16(402); -emit_16(466); -emit_16(401); -emit_16(466); -emit_16(402); -emit_16(467); -emit_16(403); -emit_16(467); -emit_16(402); -emit_16(467); -emit_16(403); -emit_16(468); -emit_16(404); -emit_16(468); -emit_16(403); -emit_16(468); -emit_16(404); -emit_16(469); -emit_16(405); -emit_16(469); -emit_16(404); -emit_16(469); -emit_16(405); -emit_16(470); -emit_16(406); -emit_16(470); -emit_16(405); -emit_16(470); -emit_16(406); -emit_16(471); -emit_16(407); -emit_16(471); -emit_16(406); -emit_16(471); -emit_16(407); -emit_16(472); -emit_16(408); -emit_16(472); -emit_16(407); -emit_16(472); -emit_16(408); -emit_16(473); -emit_16(409); -emit_16(473); -emit_16(408); -emit_16(473); -emit_16(409); -emit_16(474); -emit_16(410); -emit_16(474); -emit_16(409); -emit_16(474); -emit_16(410); -emit_16(475); -emit_16(411); -emit_16(475); -emit_16(410); -emit_16(475); -emit_16(411); -emit_16(476); -emit_16(412); -emit_16(476); -emit_16(411); -emit_16(476); -emit_16(412); -emit_16(477); -emit_16(413); -emit_16(477); -emit_16(412); -emit_16(477); -emit_16(413); -emit_16(478); -emit_16(414); -emit_16(478); -emit_16(413); -emit_16(478); -emit_16(414); -emit_16(479); -emit_16(415); -emit_16(479); -emit_16(414); -emit_16(479); -emit_16(415); -emit_16(480); -emit_16(416); -emit_16(480); -emit_16(415); -emit_16(480); -emit_16(416); -emit_16(481); -emit_16(417); -emit_16(481); -emit_16(416); -emit_16(481); -emit_16(417); -emit_16(482); -emit_16(418); -emit_16(482); -emit_16(417); -emit_16(482); -emit_16(418); -emit_16(483); -emit_16(419); -emit_16(483); -emit_16(418); -emit_16(483); -emit_16(419); -emit_16(484); -emit_16(420); -emit_16(484); -emit_16(419); -emit_16(484); -emit_16(420); -emit_16(485); -emit_16(421); -emit_16(485); -emit_16(420); -emit_16(485); -emit_16(421); -emit_16(486); -emit_16(422); -emit_16(486); -emit_16(421); -emit_16(486); -emit_16(422); -emit_16(487); -emit_16(423); -emit_16(487); -emit_16(422); -emit_16(487); -emit_16(423); -emit_16(488); -emit_16(424); -emit_16(488); -emit_16(423); -emit_16(488); -emit_16(424); -emit_16(489); -emit_16(425); -emit_16(489); -emit_16(424); -emit_16(489); -emit_16(425); -emit_16(490); -emit_16(426); -emit_16(490); -emit_16(425); -emit_16(490); -emit_16(426); -emit_16(491); -emit_16(427); -emit_16(491); -emit_16(426); -emit_16(491); -emit_16(427); -emit_16(492); -emit_16(428); -emit_16(492); -emit_16(427); -emit_16(492); -emit_16(428); -emit_16(493); -emit_16(429); -emit_16(493); -emit_16(428); -emit_16(493); -emit_16(429); -emit_16(494); -emit_16(430); -emit_16(494); -emit_16(429); -emit_16(494); -emit_16(430); -emit_16(495); -emit_16(431); -emit_16(495); -emit_16(430); -emit_16(495); -emit_16(431); -emit_16(496); -emit_16(432); -emit_16(496); -emit_16(431); -emit_16(496); -emit_16(432); -emit_16(497); -emit_16(433); -emit_16(497); -emit_16(432); -emit_16(497); -emit_16(433); -emit_16(498); -emit_16(434); -emit_16(498); -emit_16(433); -emit_16(498); -emit_16(434); -emit_16(499); -emit_16(435); -emit_16(499); -emit_16(434); -emit_16(499); -emit_16(435); -emit_16(500); -emit_16(436); -emit_16(500); -emit_16(435); -emit_16(500); -emit_16(436); -emit_16(501); -emit_16(437); -emit_16(501); -emit_16(436); -emit_16(501); -emit_16(437); -emit_16(502); -emit_16(438); -emit_16(502); -emit_16(437); -emit_16(502); -emit_16(438); -emit_16(503); -emit_16(439); -emit_16(503); -emit_16(438); -emit_16(503); -emit_16(439); -emit_16(504); -emit_16(440); -emit_16(504); -emit_16(439); -emit_16(504); -emit_16(440); -emit_16(505); -emit_16(441); -emit_16(505); -emit_16(440); -emit_16(505); -emit_16(441); -emit_16(506); -emit_16(442); -emit_16(506); -emit_16(441); -emit_16(506); -emit_16(442); -emit_16(507); -emit_16(443); -emit_16(507); -emit_16(442); -emit_16(507); -emit_16(443); -emit_16(508); -emit_16(444); -emit_16(508); -emit_16(443); -emit_16(508); -emit_16(444); -emit_16(509); -emit_16(445); -emit_16(509); -emit_16(444); -emit_16(509); -emit_16(445); -emit_16(510); -emit_16(446); -emit_16(510); -emit_16(445); -emit_16(510); -emit_16(446); -emit_16(511); -emit_16(447); -emit_16(511); -emit_16(446); -emit_16(512); -emit_16(448); -emit_16(513); -emit_16(449); -emit_16(513); -emit_16(448); -emit_16(513); -emit_16(449); -emit_16(514); -emit_16(450); -emit_16(514); -emit_16(449); -emit_16(514); -emit_16(450); -emit_16(515); -emit_16(451); -emit_16(515); -emit_16(450); -emit_16(515); -emit_16(451); -emit_16(516); -emit_16(452); -emit_16(516); -emit_16(451); -emit_16(516); -emit_16(452); -emit_16(517); -emit_16(453); -emit_16(517); -emit_16(452); -emit_16(517); -emit_16(453); -emit_16(518); -emit_16(454); -emit_16(518); -emit_16(453); -emit_16(518); -emit_16(454); -emit_16(519); -emit_16(455); -emit_16(519); -emit_16(454); -emit_16(519); -emit_16(455); -emit_16(520); -emit_16(456); -emit_16(520); -emit_16(455); -emit_16(520); -emit_16(456); -emit_16(521); -emit_16(457); -emit_16(521); -emit_16(456); -emit_16(521); -emit_16(457); -emit_16(522); -emit_16(458); -emit_16(522); -emit_16(457); -emit_16(522); -emit_16(458); -emit_16(523); -emit_16(459); -emit_16(523); -emit_16(458); -emit_16(523); -emit_16(459); -emit_16(524); -emit_16(460); -emit_16(524); -emit_16(459); -emit_16(524); -emit_16(460); -emit_16(525); -emit_16(461); -emit_16(525); -emit_16(460); -emit_16(525); -emit_16(461); -emit_16(526); -emit_16(462); -emit_16(526); -emit_16(461); -emit_16(526); -emit_16(462); -emit_16(527); -emit_16(463); -emit_16(527); -emit_16(462); -emit_16(527); -emit_16(463); -emit_16(528); -emit_16(464); -emit_16(528); -emit_16(463); -emit_16(528); -emit_16(464); -emit_16(529); -emit_16(465); -emit_16(529); -emit_16(464); -emit_16(529); -emit_16(465); -emit_16(530); -emit_16(466); -emit_16(530); -emit_16(465); -emit_16(530); -emit_16(466); -emit_16(531); -emit_16(467); -emit_16(531); -emit_16(466); -emit_16(531); -emit_16(467); -emit_16(532); -emit_16(468); -emit_16(532); -emit_16(467); -emit_16(532); -emit_16(468); -emit_16(533); -emit_16(469); -emit_16(533); -emit_16(468); -emit_16(533); -emit_16(469); -emit_16(534); -emit_16(470); -emit_16(534); -emit_16(469); -emit_16(534); -emit_16(470); -emit_16(535); -emit_16(471); -emit_16(535); -emit_16(470); -emit_16(535); -emit_16(471); -emit_16(536); -emit_16(472); -emit_16(536); -emit_16(471); -emit_16(536); -emit_16(472); -emit_16(537); -emit_16(473); -emit_16(537); -emit_16(472); -emit_16(537); -emit_16(473); -emit_16(538); -emit_16(474); -emit_16(538); -emit_16(473); -emit_16(538); -emit_16(474); -emit_16(539); -emit_16(475); -emit_16(539); -emit_16(474); -emit_16(539); -emit_16(475); -emit_16(540); -emit_16(476); -emit_16(540); -emit_16(475); -emit_16(540); -emit_16(476); -emit_16(541); -emit_16(477); -emit_16(541); -emit_16(476); -emit_16(541); -emit_16(477); -emit_16(542); -emit_16(478); -emit_16(542); -emit_16(477); -emit_16(542); -emit_16(478); -emit_16(543); -emit_16(479); -emit_16(543); -emit_16(478); -emit_16(543); -emit_16(479); -emit_16(544); -emit_16(480); -emit_16(544); -emit_16(479); -emit_16(544); -emit_16(480); -emit_16(545); -emit_16(481); -emit_16(545); -emit_16(480); -emit_16(545); -emit_16(481); -emit_16(546); -emit_16(482); -emit_16(546); -emit_16(481); -emit_16(546); -emit_16(482); -emit_16(547); -emit_16(483); -emit_16(547); -emit_16(482); -emit_16(547); -emit_16(483); -emit_16(548); -emit_16(484); -emit_16(548); -emit_16(483); -emit_16(548); -emit_16(484); -emit_16(549); -emit_16(485); -emit_16(549); -emit_16(484); -emit_16(549); -emit_16(485); -emit_16(550); -emit_16(486); -emit_16(550); -emit_16(485); -emit_16(550); -emit_16(486); -emit_16(551); -emit_16(487); -emit_16(551); -emit_16(486); -emit_16(551); -emit_16(487); -emit_16(552); -emit_16(488); -emit_16(552); -emit_16(487); -emit_16(552); -emit_16(488); -emit_16(553); -emit_16(489); -emit_16(553); -emit_16(488); -emit_16(553); -emit_16(489); -emit_16(554); -emit_16(490); -emit_16(554); -emit_16(489); -emit_16(554); -emit_16(490); -emit_16(555); -emit_16(491); -emit_16(555); -emit_16(490); -emit_16(555); -emit_16(491); -emit_16(556); -emit_16(492); -emit_16(556); -emit_16(491); -emit_16(556); -emit_16(492); -emit_16(557); -emit_16(493); -emit_16(557); -emit_16(492); -emit_16(557); -emit_16(493); -emit_16(558); -emit_16(494); -emit_16(558); -emit_16(493); -emit_16(558); -emit_16(494); -emit_16(559); -emit_16(495); -emit_16(559); -emit_16(494); -emit_16(559); -emit_16(495); -emit_16(560); -emit_16(496); -emit_16(560); -emit_16(495); -emit_16(560); -emit_16(496); -emit_16(561); -emit_16(497); -emit_16(561); -emit_16(496); -emit_16(561); -emit_16(497); -emit_16(562); -emit_16(498); -emit_16(562); -emit_16(497); -emit_16(562); -emit_16(498); -emit_16(563); -emit_16(499); -emit_16(563); -emit_16(498); -emit_16(563); -emit_16(499); -emit_16(564); -emit_16(500); -emit_16(564); -emit_16(499); -emit_16(564); -emit_16(500); -emit_16(565); -emit_16(501); -emit_16(565); -emit_16(500); -emit_16(565); -emit_16(501); -emit_16(566); -emit_16(502); -emit_16(566); -emit_16(501); -emit_16(566); -emit_16(502); -emit_16(567); -emit_16(503); -emit_16(567); -emit_16(502); -emit_16(567); -emit_16(503); -emit_16(568); -emit_16(504); -emit_16(568); -emit_16(503); -emit_16(568); -emit_16(504); -emit_16(569); -emit_16(505); -emit_16(569); -emit_16(504); -emit_16(569); -emit_16(505); -emit_16(570); -emit_16(506); -emit_16(570); -emit_16(505); -emit_16(570); -emit_16(506); -emit_16(571); -emit_16(507); -emit_16(571); -emit_16(506); -emit_16(571); -emit_16(507); -emit_16(572); -emit_16(508); -emit_16(572); -emit_16(507); -emit_16(572); -emit_16(508); -emit_16(573); -emit_16(509); -emit_16(573); -emit_16(508); -emit_16(573); -emit_16(509); -emit_16(574); -emit_16(510); -emit_16(574); -emit_16(509); -emit_16(574); -emit_16(510); -emit_16(575); -emit_16(511); -emit_16(575); -emit_16(510); -emit_16(576); -emit_16(512); -emit_16(577); -emit_16(513); -emit_16(577); -emit_16(512); -emit_16(577); -emit_16(513); -emit_16(578); -emit_16(514); -emit_16(578); -emit_16(513); -emit_16(578); -emit_16(514); -emit_16(579); -emit_16(515); -emit_16(579); -emit_16(514); -emit_16(579); -emit_16(515); -emit_16(580); -emit_16(516); -emit_16(580); -emit_16(515); -emit_16(580); -emit_16(516); -emit_16(581); -emit_16(517); -emit_16(581); -emit_16(516); -emit_16(581); -emit_16(517); -emit_16(582); -emit_16(518); -emit_16(582); -emit_16(517); -emit_16(582); -emit_16(518); -emit_16(583); -emit_16(519); -emit_16(583); -emit_16(518); -emit_16(583); -emit_16(519); -emit_16(584); -emit_16(520); -emit_16(584); -emit_16(519); -emit_16(584); -emit_16(520); -emit_16(585); -emit_16(521); -emit_16(585); -emit_16(520); -emit_16(585); -emit_16(521); -emit_16(586); -emit_16(522); -emit_16(586); -emit_16(521); -emit_16(586); -emit_16(522); -emit_16(587); -emit_16(523); -emit_16(587); -emit_16(522); -emit_16(587); -emit_16(523); -emit_16(588); -emit_16(524); -emit_16(588); -emit_16(523); -emit_16(588); -emit_16(524); -emit_16(589); -emit_16(525); -emit_16(589); -emit_16(524); -emit_16(589); -emit_16(525); -emit_16(590); -emit_16(526); -emit_16(590); -emit_16(525); -emit_16(590); -emit_16(526); -emit_16(591); -emit_16(527); -emit_16(591); -emit_16(526); -emit_16(591); -emit_16(527); -emit_16(592); -emit_16(528); -emit_16(592); -emit_16(527); -emit_16(592); -emit_16(528); -emit_16(593); -emit_16(529); -emit_16(593); -emit_16(528); -emit_16(593); -emit_16(529); -emit_16(594); -emit_16(530); -emit_16(594); -emit_16(529); -emit_16(594); -emit_16(530); -emit_16(595); -emit_16(531); -emit_16(595); -emit_16(530); -emit_16(595); -emit_16(531); -emit_16(596); -emit_16(532); -emit_16(596); -emit_16(531); -emit_16(596); -emit_16(532); -emit_16(597); -emit_16(533); -emit_16(597); -emit_16(532); -emit_16(597); -emit_16(533); -emit_16(598); -emit_16(534); -emit_16(598); -emit_16(533); -emit_16(598); -emit_16(534); -emit_16(599); -emit_16(535); -emit_16(599); -emit_16(534); -emit_16(599); -emit_16(535); -emit_16(600); -emit_16(536); -emit_16(600); -emit_16(535); -emit_16(600); -emit_16(536); -emit_16(601); -emit_16(537); -emit_16(601); -emit_16(536); -emit_16(601); -emit_16(537); -emit_16(602); -emit_16(538); -emit_16(602); -emit_16(537); -emit_16(602); -emit_16(538); -emit_16(603); -emit_16(539); -emit_16(603); -emit_16(538); -emit_16(603); -emit_16(539); -emit_16(604); -emit_16(540); -emit_16(604); -emit_16(539); -emit_16(604); -emit_16(540); -emit_16(605); -emit_16(541); -emit_16(605); -emit_16(540); -emit_16(605); -emit_16(541); -emit_16(606); -emit_16(542); -emit_16(606); -emit_16(541); -emit_16(606); -emit_16(542); -emit_16(607); -emit_16(543); -emit_16(607); -emit_16(542); -emit_16(607); -emit_16(543); -emit_16(608); -emit_16(544); -emit_16(608); -emit_16(543); -emit_16(608); -emit_16(544); -emit_16(609); -emit_16(545); -emit_16(609); -emit_16(544); -emit_16(609); -emit_16(545); -emit_16(610); -emit_16(546); -emit_16(610); -emit_16(545); -emit_16(610); -emit_16(546); -emit_16(611); -emit_16(547); -emit_16(611); -emit_16(546); -emit_16(611); -emit_16(547); -emit_16(612); -emit_16(548); -emit_16(612); -emit_16(547); -emit_16(612); -emit_16(548); -emit_16(613); -emit_16(549); -emit_16(613); -emit_16(548); -emit_16(613); -emit_16(549); -emit_16(614); -emit_16(550); -emit_16(614); -emit_16(549); -emit_16(614); -emit_16(550); -emit_16(615); -emit_16(551); -emit_16(615); -emit_16(550); -emit_16(615); -emit_16(551); -emit_16(616); -emit_16(552); -emit_16(616); -emit_16(551); -emit_16(616); -emit_16(552); -emit_16(617); -emit_16(553); -emit_16(617); -emit_16(552); -emit_16(617); -emit_16(553); -emit_16(618); -emit_16(554); -emit_16(618); -emit_16(553); -emit_16(618); -emit_16(554); -emit_16(619); -emit_16(555); -emit_16(619); -emit_16(554); -emit_16(619); -emit_16(555); -emit_16(620); -emit_16(556); -emit_16(620); -emit_16(555); -emit_16(620); -emit_16(556); -emit_16(621); -emit_16(557); -emit_16(621); -emit_16(556); -emit_16(621); -emit_16(557); -emit_16(622); -emit_16(558); -emit_16(622); -emit_16(557); -emit_16(622); -emit_16(558); -emit_16(623); -emit_16(559); -emit_16(623); -emit_16(558); -emit_16(623); -emit_16(559); -emit_16(624); -emit_16(560); -emit_16(624); -emit_16(559); -emit_16(624); -emit_16(560); -emit_16(625); -emit_16(561); -emit_16(625); -emit_16(560); -emit_16(625); -emit_16(561); -emit_16(626); -emit_16(562); -emit_16(626); -emit_16(561); -emit_16(626); -emit_16(562); -emit_16(627); -emit_16(563); -emit_16(627); -emit_16(562); -emit_16(627); -emit_16(563); -emit_16(628); -emit_16(564); -emit_16(628); -emit_16(563); -emit_16(628); -emit_16(564); -emit_16(629); -emit_16(565); -emit_16(629); -emit_16(564); -emit_16(629); -emit_16(565); -emit_16(630); -emit_16(566); -emit_16(630); -emit_16(565); -emit_16(630); -emit_16(566); -emit_16(631); -emit_16(567); -emit_16(631); -emit_16(566); -emit_16(631); -emit_16(567); -emit_16(632); -emit_16(568); -emit_16(632); -emit_16(567); -emit_16(632); -emit_16(568); -emit_16(633); -emit_16(569); -emit_16(633); -emit_16(568); -emit_16(633); -emit_16(569); -emit_16(634); -emit_16(570); -emit_16(634); -emit_16(569); -emit_16(634); -emit_16(570); -emit_16(635); -emit_16(571); -emit_16(635); -emit_16(570); -emit_16(635); -emit_16(571); -emit_16(636); -emit_16(572); -emit_16(636); -emit_16(571); -emit_16(636); -emit_16(572); -emit_16(637); -emit_16(573); -emit_16(637); -emit_16(572); -emit_16(637); -emit_16(573); -emit_16(638); -emit_16(574); -emit_16(638); -emit_16(573); -emit_16(638); -emit_16(574); -emit_16(639); -emit_16(575); -emit_16(639); -emit_16(574); -emit_16(640); -emit_16(576); -emit_16(641); -emit_16(577); -emit_16(641); -emit_16(576); -emit_16(641); -emit_16(577); -emit_16(642); -emit_16(578); -emit_16(642); -emit_16(577); -emit_16(642); -emit_16(578); -emit_16(643); -emit_16(579); -emit_16(643); -emit_16(578); -emit_16(643); -emit_16(579); -emit_16(644); -emit_16(580); -emit_16(644); -emit_16(579); -emit_16(644); -emit_16(580); -emit_16(645); -emit_16(581); -emit_16(645); -emit_16(580); -emit_16(645); -emit_16(581); -emit_16(646); -emit_16(582); -emit_16(646); -emit_16(581); -emit_16(646); -emit_16(582); -emit_16(647); -emit_16(583); -emit_16(647); -emit_16(582); -emit_16(647); -emit_16(583); -emit_16(648); -emit_16(584); -emit_16(648); -emit_16(583); -emit_16(648); -emit_16(584); -emit_16(649); -emit_16(585); -emit_16(649); -emit_16(584); -emit_16(649); -emit_16(585); -emit_16(650); -emit_16(586); -emit_16(650); -emit_16(585); -emit_16(650); -emit_16(586); -emit_16(651); -emit_16(587); -emit_16(651); -emit_16(586); -emit_16(651); -emit_16(587); -emit_16(652); -emit_16(588); -emit_16(652); -emit_16(587); -emit_16(652); -emit_16(588); -emit_16(653); -emit_16(589); -emit_16(653); -emit_16(588); -emit_16(653); -emit_16(589); -emit_16(654); -emit_16(590); -emit_16(654); -emit_16(589); -emit_16(654); -emit_16(590); -emit_16(655); -emit_16(591); -emit_16(655); -emit_16(590); -emit_16(655); -emit_16(591); -emit_16(656); -emit_16(592); -emit_16(656); -emit_16(591); -emit_16(656); -emit_16(592); -emit_16(657); -emit_16(593); -emit_16(657); -emit_16(592); -emit_16(657); -emit_16(593); -emit_16(658); -emit_16(594); -emit_16(658); -emit_16(593); -emit_16(658); -emit_16(594); -emit_16(659); -emit_16(595); -emit_16(659); -emit_16(594); -emit_16(659); -emit_16(595); -emit_16(660); -emit_16(596); -emit_16(660); -emit_16(595); -emit_16(660); -emit_16(596); -emit_16(661); -emit_16(597); -emit_16(661); -emit_16(596); -emit_16(661); -emit_16(597); -emit_16(662); -emit_16(598); -emit_16(662); -emit_16(597); -emit_16(662); -emit_16(598); -emit_16(663); -emit_16(599); -emit_16(663); -emit_16(598); -emit_16(663); -emit_16(599); -emit_16(664); -emit_16(600); -emit_16(664); -emit_16(599); -emit_16(664); -emit_16(600); -emit_16(665); -emit_16(601); -emit_16(665); -emit_16(600); -emit_16(665); -emit_16(601); -emit_16(666); -emit_16(602); -emit_16(666); -emit_16(601); -emit_16(666); -emit_16(602); -emit_16(667); -emit_16(603); -emit_16(667); -emit_16(602); -emit_16(667); -emit_16(603); -emit_16(668); -emit_16(604); -emit_16(668); -emit_16(603); -emit_16(668); -emit_16(604); -emit_16(669); -emit_16(605); -emit_16(669); -emit_16(604); -emit_16(669); -emit_16(605); -emit_16(670); -emit_16(606); -emit_16(670); -emit_16(605); -emit_16(670); -emit_16(606); -emit_16(671); -emit_16(607); -emit_16(671); -emit_16(606); -emit_16(671); -emit_16(607); -emit_16(672); -emit_16(608); -emit_16(672); -emit_16(607); -emit_16(672); -emit_16(608); -emit_16(673); -emit_16(609); -emit_16(673); -emit_16(608); -emit_16(673); -emit_16(609); -emit_16(674); -emit_16(610); -emit_16(674); -emit_16(609); -emit_16(674); -emit_16(610); -emit_16(675); -emit_16(611); -emit_16(675); -emit_16(610); -emit_16(675); -emit_16(611); -emit_16(676); -emit_16(612); -emit_16(676); -emit_16(611); -emit_16(676); -emit_16(612); -emit_16(677); -emit_16(613); -emit_16(677); -emit_16(612); -emit_16(677); -emit_16(613); -emit_16(678); -emit_16(614); -emit_16(678); -emit_16(613); -emit_16(678); -emit_16(614); -emit_16(679); -emit_16(615); -emit_16(679); -emit_16(614); -emit_16(679); -emit_16(615); -emit_16(680); -emit_16(616); -emit_16(680); -emit_16(615); -emit_16(680); -emit_16(616); -emit_16(681); -emit_16(617); -emit_16(681); -emit_16(616); -emit_16(681); -emit_16(617); -emit_16(682); -emit_16(618); -emit_16(682); -emit_16(617); -emit_16(682); -emit_16(618); -emit_16(683); -emit_16(619); -emit_16(683); -emit_16(618); -emit_16(683); -emit_16(619); -emit_16(684); -emit_16(620); -emit_16(684); -emit_16(619); -emit_16(684); -emit_16(620); -emit_16(685); -emit_16(621); -emit_16(685); -emit_16(620); -emit_16(685); -emit_16(621); -emit_16(686); -emit_16(622); -emit_16(686); -emit_16(621); -emit_16(686); -emit_16(622); -emit_16(687); -emit_16(623); -emit_16(687); -emit_16(622); -emit_16(687); -emit_16(623); -emit_16(688); -emit_16(624); -emit_16(688); -emit_16(623); -emit_16(688); -emit_16(624); -emit_16(689); -emit_16(625); -emit_16(689); -emit_16(624); -emit_16(689); -emit_16(625); -emit_16(690); -emit_16(626); -emit_16(690); -emit_16(625); -emit_16(690); -emit_16(626); -emit_16(691); -emit_16(627); -emit_16(691); -emit_16(626); -emit_16(691); -emit_16(627); -emit_16(692); -emit_16(628); -emit_16(692); -emit_16(627); -emit_16(692); -emit_16(628); -emit_16(693); -emit_16(629); -emit_16(693); -emit_16(628); -emit_16(693); -emit_16(629); -emit_16(694); -emit_16(630); -emit_16(694); -emit_16(629); -emit_16(694); -emit_16(630); -emit_16(695); -emit_16(631); -emit_16(695); -emit_16(630); -emit_16(695); -emit_16(631); -emit_16(696); -emit_16(632); -emit_16(696); -emit_16(631); -emit_16(696); -emit_16(632); -emit_16(697); -emit_16(633); -emit_16(697); -emit_16(632); -emit_16(697); -emit_16(633); -emit_16(698); -emit_16(634); -emit_16(698); -emit_16(633); -emit_16(698); -emit_16(634); -emit_16(699); -emit_16(635); -emit_16(699); -emit_16(634); -emit_16(699); -emit_16(635); -emit_16(700); -emit_16(636); -emit_16(700); -emit_16(635); -emit_16(700); -emit_16(636); -emit_16(701); -emit_16(637); -emit_16(701); -emit_16(636); -emit_16(701); -emit_16(637); -emit_16(702); -emit_16(638); -emit_16(702); -emit_16(637); -emit_16(702); -emit_16(638); -emit_16(703); -emit_16(639); -emit_16(703); -emit_16(638); -emit_16(704); -emit_16(640); -emit_16(705); -emit_16(641); -emit_16(705); -emit_16(640); -emit_16(705); -emit_16(641); -emit_16(706); -emit_16(642); -emit_16(706); -emit_16(641); -emit_16(706); -emit_16(642); -emit_16(707); -emit_16(643); -emit_16(707); -emit_16(642); -emit_16(707); -emit_16(643); -emit_16(708); -emit_16(644); -emit_16(708); -emit_16(643); -emit_16(708); -emit_16(644); -emit_16(709); -emit_16(645); -emit_16(709); -emit_16(644); -emit_16(709); -emit_16(645); -emit_16(710); -emit_16(646); -emit_16(710); -emit_16(645); -emit_16(710); -emit_16(646); -emit_16(711); -emit_16(647); -emit_16(711); -emit_16(646); -emit_16(711); -emit_16(647); -emit_16(712); -emit_16(648); -emit_16(712); -emit_16(647); -emit_16(712); -emit_16(648); -emit_16(713); -emit_16(649); -emit_16(713); -emit_16(648); -emit_16(713); -emit_16(649); -emit_16(714); -emit_16(650); -emit_16(714); -emit_16(649); -emit_16(714); -emit_16(650); -emit_16(715); -emit_16(651); -emit_16(715); -emit_16(650); -emit_16(715); -emit_16(651); -emit_16(716); -emit_16(652); -emit_16(716); -emit_16(651); -emit_16(716); -emit_16(652); -emit_16(717); -emit_16(653); -emit_16(717); -emit_16(652); -emit_16(717); -emit_16(653); -emit_16(718); -emit_16(654); -emit_16(718); -emit_16(653); -emit_16(718); -emit_16(654); -emit_16(719); -emit_16(655); -emit_16(719); -emit_16(654); -emit_16(719); -emit_16(655); -emit_16(720); -emit_16(656); -emit_16(720); -emit_16(655); -emit_16(720); -emit_16(656); -emit_16(721); -emit_16(657); -emit_16(721); -emit_16(656); -emit_16(721); -emit_16(657); -emit_16(722); -emit_16(658); -emit_16(722); -emit_16(657); -emit_16(722); -emit_16(658); -emit_16(723); -emit_16(659); -emit_16(723); -emit_16(658); -emit_16(723); -emit_16(659); -emit_16(724); -emit_16(660); -emit_16(724); -emit_16(659); -emit_16(724); -emit_16(660); -emit_16(725); -emit_16(661); -emit_16(725); -emit_16(660); -emit_16(725); -emit_16(661); -emit_16(726); -emit_16(662); -emit_16(726); -emit_16(661); -emit_16(726); -emit_16(662); -emit_16(727); -emit_16(663); -emit_16(727); -emit_16(662); -emit_16(727); -emit_16(663); -emit_16(728); -emit_16(664); -emit_16(728); -emit_16(663); -emit_16(728); -emit_16(664); -emit_16(729); -emit_16(665); -emit_16(729); -emit_16(664); -emit_16(729); -emit_16(665); -emit_16(730); -emit_16(666); -emit_16(730); -emit_16(665); -emit_16(730); -emit_16(666); -emit_16(731); -emit_16(667); -emit_16(731); -emit_16(666); -emit_16(731); -emit_16(667); -emit_16(732); -emit_16(668); -emit_16(732); -emit_16(667); -emit_16(732); -emit_16(668); -emit_16(733); -emit_16(669); -emit_16(733); -emit_16(668); -emit_16(733); -emit_16(669); -emit_16(734); -emit_16(670); -emit_16(734); -emit_16(669); -emit_16(734); -emit_16(670); -emit_16(735); -emit_16(671); -emit_16(735); -emit_16(670); -emit_16(735); -emit_16(671); -emit_16(736); -emit_16(672); -emit_16(736); -emit_16(671); -emit_16(736); -emit_16(672); -emit_16(737); -emit_16(673); -emit_16(737); -emit_16(672); -emit_16(737); -emit_16(673); -emit_16(738); -emit_16(674); -emit_16(738); -emit_16(673); -emit_16(738); -emit_16(674); -emit_16(739); -emit_16(675); -emit_16(739); -emit_16(674); -emit_16(739); -emit_16(675); -emit_16(740); -emit_16(676); -emit_16(740); -emit_16(675); -emit_16(740); -emit_16(676); -emit_16(741); -emit_16(677); -emit_16(741); -emit_16(676); -emit_16(741); -emit_16(677); -emit_16(742); -emit_16(678); -emit_16(742); -emit_16(677); -emit_16(742); -emit_16(678); -emit_16(743); -emit_16(679); -emit_16(743); -emit_16(678); -emit_16(743); -emit_16(679); -emit_16(744); -emit_16(680); -emit_16(744); -emit_16(679); -emit_16(744); -emit_16(680); -emit_16(745); -emit_16(681); -emit_16(745); -emit_16(680); -emit_16(745); -emit_16(681); -emit_16(746); -emit_16(682); -emit_16(746); -emit_16(681); -emit_16(746); -emit_16(682); -emit_16(747); -emit_16(683); -emit_16(747); -emit_16(682); -emit_16(747); -emit_16(683); -emit_16(748); -emit_16(684); -emit_16(748); -emit_16(683); -emit_16(748); -emit_16(684); -emit_16(749); -emit_16(685); -emit_16(749); -emit_16(684); -emit_16(749); -emit_16(685); -emit_16(750); -emit_16(686); -emit_16(750); -emit_16(685); -emit_16(750); -emit_16(686); -emit_16(751); -emit_16(687); -emit_16(751); -emit_16(686); -emit_16(751); -emit_16(687); -emit_16(752); -emit_16(688); -emit_16(752); -emit_16(687); -emit_16(752); -emit_16(688); -emit_16(753); -emit_16(689); -emit_16(753); -emit_16(688); -emit_16(753); -emit_16(689); -emit_16(754); -emit_16(690); -emit_16(754); -emit_16(689); -emit_16(754); -emit_16(690); -emit_16(755); -emit_16(691); -emit_16(755); -emit_16(690); -emit_16(755); -emit_16(691); -emit_16(756); -emit_16(692); -emit_16(756); -emit_16(691); -emit_16(756); -emit_16(692); -emit_16(757); -emit_16(693); -emit_16(757); -emit_16(692); -emit_16(757); -emit_16(693); -emit_16(758); -emit_16(694); -emit_16(758); -emit_16(693); -emit_16(758); -emit_16(694); -emit_16(759); -emit_16(695); -emit_16(759); -emit_16(694); -emit_16(759); -emit_16(695); -emit_16(760); -emit_16(696); -emit_16(760); -emit_16(695); -emit_16(760); -emit_16(696); -emit_16(761); -emit_16(697); -emit_16(761); -emit_16(696); -emit_16(761); -emit_16(697); -emit_16(762); -emit_16(698); -emit_16(762); -emit_16(697); -emit_16(762); -emit_16(698); -emit_16(763); -emit_16(699); -emit_16(763); -emit_16(698); -emit_16(763); -emit_16(699); -emit_16(764); -emit_16(700); -emit_16(764); -emit_16(699); -emit_16(764); -emit_16(700); -emit_16(765); -emit_16(701); -emit_16(765); -emit_16(700); -emit_16(765); -emit_16(701); -emit_16(766); -emit_16(702); -emit_16(766); -emit_16(701); -emit_16(766); -emit_16(702); -emit_16(767); -emit_16(703); -emit_16(767); -emit_16(702); -emit_16(768); -emit_16(704); -emit_16(769); -emit_16(705); -emit_16(769); -emit_16(704); -emit_16(769); -emit_16(705); -emit_16(770); -emit_16(706); -emit_16(770); -emit_16(705); -emit_16(770); -emit_16(706); -emit_16(771); -emit_16(707); -emit_16(771); -emit_16(706); -emit_16(771); -emit_16(707); -emit_16(772); -emit_16(708); -emit_16(772); -emit_16(707); -emit_16(772); -emit_16(708); -emit_16(773); -emit_16(709); -emit_16(773); -emit_16(708); -emit_16(773); -emit_16(709); -emit_16(774); -emit_16(710); -emit_16(774); -emit_16(709); -emit_16(774); -emit_16(710); -emit_16(775); -emit_16(711); -emit_16(775); -emit_16(710); -emit_16(775); -emit_16(711); -emit_16(776); -emit_16(712); -emit_16(776); -emit_16(711); -emit_16(776); -emit_16(712); -emit_16(777); -emit_16(713); -emit_16(777); -emit_16(712); -emit_16(777); -emit_16(713); -emit_16(778); -emit_16(714); -emit_16(778); -emit_16(713); -emit_16(778); -emit_16(714); -emit_16(779); -emit_16(715); -emit_16(779); -emit_16(714); -emit_16(779); -emit_16(715); -emit_16(780); -emit_16(716); -emit_16(780); -emit_16(715); -emit_16(780); -emit_16(716); -emit_16(781); -emit_16(717); -emit_16(781); -emit_16(716); -emit_16(781); -emit_16(717); -emit_16(782); -emit_16(718); -emit_16(782); -emit_16(717); -emit_16(782); -emit_16(718); -emit_16(783); -emit_16(719); -emit_16(783); -emit_16(718); -emit_16(783); -emit_16(719); -emit_16(784); -emit_16(720); -emit_16(784); -emit_16(719); -emit_16(784); -emit_16(720); -emit_16(785); -emit_16(721); -emit_16(785); -emit_16(720); -emit_16(785); -emit_16(721); -emit_16(786); -emit_16(722); -emit_16(786); -emit_16(721); -emit_16(786); -emit_16(722); -emit_16(787); -emit_16(723); -emit_16(787); -emit_16(722); -emit_16(787); -emit_16(723); -emit_16(788); -emit_16(724); -emit_16(788); -emit_16(723); -emit_16(788); -emit_16(724); -emit_16(789); -emit_16(725); -emit_16(789); -emit_16(724); -emit_16(789); -emit_16(725); -emit_16(790); -emit_16(726); -emit_16(790); -emit_16(725); -emit_16(790); -emit_16(726); -emit_16(791); -emit_16(727); -emit_16(791); -emit_16(726); -emit_16(791); -emit_16(727); -emit_16(792); -emit_16(728); -emit_16(792); -emit_16(727); -emit_16(792); -emit_16(728); -emit_16(793); -emit_16(729); -emit_16(793); -emit_16(728); -emit_16(793); -emit_16(729); -emit_16(794); -emit_16(730); -emit_16(794); -emit_16(729); -emit_16(794); -emit_16(730); -emit_16(795); -emit_16(731); -emit_16(795); -emit_16(730); -emit_16(795); -emit_16(731); -emit_16(796); -emit_16(732); -emit_16(796); -emit_16(731); -emit_16(796); -emit_16(732); -emit_16(797); -emit_16(733); -emit_16(797); -emit_16(732); -emit_16(797); -emit_16(733); -emit_16(798); -emit_16(734); -emit_16(798); -emit_16(733); -emit_16(798); -emit_16(734); -emit_16(799); -emit_16(735); -emit_16(799); -emit_16(734); -emit_16(799); -emit_16(735); -emit_16(800); -emit_16(736); -emit_16(800); -emit_16(735); -emit_16(800); -emit_16(736); -emit_16(801); -emit_16(737); -emit_16(801); -emit_16(736); -emit_16(801); -emit_16(737); -emit_16(802); -emit_16(738); -emit_16(802); -emit_16(737); -emit_16(802); -emit_16(738); -emit_16(803); -emit_16(739); -emit_16(803); -emit_16(738); -emit_16(803); -emit_16(739); -emit_16(804); -emit_16(740); -emit_16(804); -emit_16(739); -emit_16(804); -emit_16(740); -emit_16(805); -emit_16(741); -emit_16(805); -emit_16(740); -emit_16(805); -emit_16(741); -emit_16(806); -emit_16(742); -emit_16(806); -emit_16(741); -emit_16(806); -emit_16(742); -emit_16(807); -emit_16(743); -emit_16(807); -emit_16(742); -emit_16(807); -emit_16(743); -emit_16(808); -emit_16(744); -emit_16(808); -emit_16(743); -emit_16(808); -emit_16(744); -emit_16(809); -emit_16(745); -emit_16(809); -emit_16(744); -emit_16(809); -emit_16(745); -emit_16(810); -emit_16(746); -emit_16(810); -emit_16(745); -emit_16(810); -emit_16(746); -emit_16(811); -emit_16(747); -emit_16(811); -emit_16(746); -emit_16(811); -emit_16(747); -emit_16(812); -emit_16(748); -emit_16(812); -emit_16(747); -emit_16(812); -emit_16(748); -emit_16(813); -emit_16(749); -emit_16(813); -emit_16(748); -emit_16(813); -emit_16(749); -emit_16(814); -emit_16(750); -emit_16(814); -emit_16(749); -emit_16(814); -emit_16(750); -emit_16(815); -emit_16(751); -emit_16(815); -emit_16(750); -emit_16(815); -emit_16(751); -emit_16(816); -emit_16(752); -emit_16(816); -emit_16(751); -emit_16(816); -emit_16(752); -emit_16(817); -emit_16(753); -emit_16(817); -emit_16(752); -emit_16(817); -emit_16(753); -emit_16(818); -emit_16(754); -emit_16(818); -emit_16(753); -emit_16(818); -emit_16(754); -emit_16(819); -emit_16(755); -emit_16(819); -emit_16(754); -emit_16(819); -emit_16(755); -emit_16(820); -emit_16(756); -emit_16(820); -emit_16(755); -emit_16(820); -emit_16(756); -emit_16(821); -emit_16(757); -emit_16(821); -emit_16(756); -emit_16(821); -emit_16(757); -emit_16(822); -emit_16(758); -emit_16(822); -emit_16(757); -emit_16(822); -emit_16(758); -emit_16(823); -emit_16(759); -emit_16(823); -emit_16(758); -emit_16(823); -emit_16(759); -emit_16(824); -emit_16(760); -emit_16(824); -emit_16(759); -emit_16(824); -emit_16(760); -emit_16(825); -emit_16(761); -emit_16(825); -emit_16(760); -emit_16(825); -emit_16(761); -emit_16(826); -emit_16(762); -emit_16(826); -emit_16(761); -emit_16(826); -emit_16(762); -emit_16(827); -emit_16(763); -emit_16(827); -emit_16(762); -emit_16(827); -emit_16(763); -emit_16(828); -emit_16(764); -emit_16(828); -emit_16(763); -emit_16(828); -emit_16(764); -emit_16(829); -emit_16(765); -emit_16(829); -emit_16(764); -emit_16(829); -emit_16(765); -emit_16(830); -emit_16(766); -emit_16(830); -emit_16(765); -emit_16(830); -emit_16(766); -emit_16(831); -emit_16(767); -emit_16(831); -emit_16(766); -emit_16(832); -emit_16(768); -emit_16(833); -emit_16(769); -emit_16(833); -emit_16(768); -emit_16(833); -emit_16(769); -emit_16(834); -emit_16(770); -emit_16(834); -emit_16(769); -emit_16(834); -emit_16(770); -emit_16(835); -emit_16(771); -emit_16(835); -emit_16(770); -emit_16(835); -emit_16(771); -emit_16(836); -emit_16(772); -emit_16(836); -emit_16(771); -emit_16(836); -emit_16(772); -emit_16(837); -emit_16(773); -emit_16(837); -emit_16(772); -emit_16(837); -emit_16(773); -emit_16(838); -emit_16(774); -emit_16(838); -emit_16(773); -emit_16(838); -emit_16(774); -emit_16(839); -emit_16(775); -emit_16(839); -emit_16(774); -emit_16(839); -emit_16(775); -emit_16(840); -emit_16(776); -emit_16(840); -emit_16(775); -emit_16(840); -emit_16(776); -emit_16(841); -emit_16(777); -emit_16(841); -emit_16(776); -emit_16(841); -emit_16(777); -emit_16(842); -emit_16(778); -emit_16(842); -emit_16(777); -emit_16(842); -emit_16(778); -emit_16(843); -emit_16(779); -emit_16(843); -emit_16(778); -emit_16(843); -emit_16(779); -emit_16(844); -emit_16(780); -emit_16(844); -emit_16(779); -emit_16(844); -emit_16(780); -emit_16(845); -emit_16(781); -emit_16(845); -emit_16(780); -emit_16(845); -emit_16(781); -emit_16(846); -emit_16(782); -emit_16(846); -emit_16(781); -emit_16(846); -emit_16(782); -emit_16(847); -emit_16(783); -emit_16(847); -emit_16(782); -emit_16(847); -emit_16(783); -emit_16(848); -emit_16(784); -emit_16(848); -emit_16(783); -emit_16(848); -emit_16(784); -emit_16(849); -emit_16(785); -emit_16(849); -emit_16(784); -emit_16(849); -emit_16(785); -emit_16(850); -emit_16(786); -emit_16(850); -emit_16(785); -emit_16(850); -emit_16(786); -emit_16(851); -emit_16(787); -emit_16(851); -emit_16(786); -emit_16(851); -emit_16(787); -emit_16(852); -emit_16(788); -emit_16(852); -emit_16(787); -emit_16(852); -emit_16(788); -emit_16(853); -emit_16(789); -emit_16(853); -emit_16(788); -emit_16(853); -emit_16(789); -emit_16(854); -emit_16(790); -emit_16(854); -emit_16(789); -emit_16(854); -emit_16(790); -emit_16(855); -emit_16(791); -emit_16(855); -emit_16(790); -emit_16(855); -emit_16(791); -emit_16(856); -emit_16(792); -emit_16(856); -emit_16(791); -emit_16(856); -emit_16(792); -emit_16(857); -emit_16(793); -emit_16(857); -emit_16(792); -emit_16(857); -emit_16(793); -emit_16(858); -emit_16(794); -emit_16(858); -emit_16(793); -emit_16(858); -emit_16(794); -emit_16(859); -emit_16(795); -emit_16(859); -emit_16(794); -emit_16(859); -emit_16(795); -emit_16(860); -emit_16(796); -emit_16(860); -emit_16(795); -emit_16(860); -emit_16(796); -emit_16(861); -emit_16(797); -emit_16(861); -emit_16(796); -emit_16(861); -emit_16(797); -emit_16(862); -emit_16(798); -emit_16(862); -emit_16(797); -emit_16(862); -emit_16(798); -emit_16(863); -emit_16(799); -emit_16(863); -emit_16(798); -emit_16(863); -emit_16(799); -emit_16(864); -emit_16(800); -emit_16(864); -emit_16(799); -emit_16(864); -emit_16(800); -emit_16(865); -emit_16(801); -emit_16(865); -emit_16(800); -emit_16(865); -emit_16(801); -emit_16(866); -emit_16(802); -emit_16(866); -emit_16(801); -emit_16(866); -emit_16(802); -emit_16(867); -emit_16(803); -emit_16(867); -emit_16(802); -emit_16(867); -emit_16(803); -emit_16(868); -emit_16(804); -emit_16(868); -emit_16(803); -emit_16(868); -emit_16(804); -emit_16(869); -emit_16(805); -emit_16(869); -emit_16(804); -emit_16(869); -emit_16(805); -emit_16(870); -emit_16(806); -emit_16(870); -emit_16(805); -emit_16(870); -emit_16(806); -emit_16(871); -emit_16(807); -emit_16(871); -emit_16(806); -emit_16(871); -emit_16(807); -emit_16(872); -emit_16(808); -emit_16(872); -emit_16(807); -emit_16(872); -emit_16(808); -emit_16(873); -emit_16(809); -emit_16(873); -emit_16(808); -emit_16(873); -emit_16(809); -emit_16(874); -emit_16(810); -emit_16(874); -emit_16(809); -emit_16(874); -emit_16(810); -emit_16(875); -emit_16(811); -emit_16(875); -emit_16(810); -emit_16(875); -emit_16(811); -emit_16(876); -emit_16(812); -emit_16(876); -emit_16(811); -emit_16(876); -emit_16(812); -emit_16(877); -emit_16(813); -emit_16(877); -emit_16(812); -emit_16(877); -emit_16(813); -emit_16(878); -emit_16(814); -emit_16(878); -emit_16(813); -emit_16(878); -emit_16(814); -emit_16(879); -emit_16(815); -emit_16(879); -emit_16(814); -emit_16(879); -emit_16(815); -emit_16(880); -emit_16(816); -emit_16(880); -emit_16(815); -emit_16(880); -emit_16(816); -emit_16(881); -emit_16(817); -emit_16(881); -emit_16(816); -emit_16(881); -emit_16(817); -emit_16(882); -emit_16(818); -emit_16(882); -emit_16(817); -emit_16(882); -emit_16(818); -emit_16(883); -emit_16(819); -emit_16(883); -emit_16(818); -emit_16(883); -emit_16(819); -emit_16(884); -emit_16(820); -emit_16(884); -emit_16(819); -emit_16(884); -emit_16(820); -emit_16(885); -emit_16(821); -emit_16(885); -emit_16(820); -emit_16(885); -emit_16(821); -emit_16(886); -emit_16(822); -emit_16(886); -emit_16(821); -emit_16(886); -emit_16(822); -emit_16(887); -emit_16(823); -emit_16(887); -emit_16(822); -emit_16(887); -emit_16(823); -emit_16(888); -emit_16(824); -emit_16(888); -emit_16(823); -emit_16(888); -emit_16(824); -emit_16(889); -emit_16(825); -emit_16(889); -emit_16(824); -emit_16(889); -emit_16(825); -emit_16(890); -emit_16(826); -emit_16(890); -emit_16(825); -emit_16(890); -emit_16(826); -emit_16(891); -emit_16(827); -emit_16(891); -emit_16(826); -emit_16(891); -emit_16(827); -emit_16(892); -emit_16(828); -emit_16(892); -emit_16(827); -emit_16(892); -emit_16(828); -emit_16(893); -emit_16(829); -emit_16(893); -emit_16(828); -emit_16(893); -emit_16(829); -emit_16(894); -emit_16(830); -emit_16(894); -emit_16(829); -emit_16(894); -emit_16(830); -emit_16(895); -emit_16(831); -emit_16(895); -emit_16(830); -emit_16(896); -emit_16(832); -emit_16(897); -emit_16(833); -emit_16(897); -emit_16(832); -emit_16(897); -emit_16(833); -emit_16(898); -emit_16(834); -emit_16(898); -emit_16(833); -emit_16(898); -emit_16(834); -emit_16(899); -emit_16(835); -emit_16(899); -emit_16(834); -emit_16(899); -emit_16(835); -emit_16(900); -emit_16(836); -emit_16(900); -emit_16(835); -emit_16(900); -emit_16(836); -emit_16(901); -emit_16(837); -emit_16(901); -emit_16(836); -emit_16(901); -emit_16(837); -emit_16(902); -emit_16(838); -emit_16(902); -emit_16(837); -emit_16(902); -emit_16(838); -emit_16(903); -emit_16(839); -emit_16(903); -emit_16(838); -emit_16(903); -emit_16(839); -emit_16(904); -emit_16(840); -emit_16(904); -emit_16(839); -emit_16(904); -emit_16(840); -emit_16(905); -emit_16(841); -emit_16(905); -emit_16(840); -emit_16(905); -emit_16(841); -emit_16(906); -emit_16(842); -emit_16(906); -emit_16(841); -emit_16(906); -emit_16(842); -emit_16(907); -emit_16(843); -emit_16(907); -emit_16(842); -emit_16(907); -emit_16(843); -emit_16(908); -emit_16(844); -emit_16(908); -emit_16(843); -emit_16(908); -emit_16(844); -emit_16(909); -emit_16(845); -emit_16(909); -emit_16(844); -emit_16(909); -emit_16(845); -emit_16(910); -emit_16(846); -emit_16(910); -emit_16(845); -emit_16(910); -emit_16(846); -emit_16(911); -emit_16(847); -emit_16(911); -emit_16(846); -emit_16(911); -emit_16(847); -emit_16(912); -emit_16(848); -emit_16(912); -emit_16(847); -emit_16(912); -emit_16(848); -emit_16(913); -emit_16(849); -emit_16(913); -emit_16(848); -emit_16(913); -emit_16(849); -emit_16(914); -emit_16(850); -emit_16(914); -emit_16(849); -emit_16(914); -emit_16(850); -emit_16(915); -emit_16(851); -emit_16(915); -emit_16(850); -emit_16(915); -emit_16(851); -emit_16(916); -emit_16(852); -emit_16(916); -emit_16(851); -emit_16(916); -emit_16(852); -emit_16(917); -emit_16(853); -emit_16(917); -emit_16(852); -emit_16(917); -emit_16(853); -emit_16(918); -emit_16(854); -emit_16(918); -emit_16(853); -emit_16(918); -emit_16(854); -emit_16(919); -emit_16(855); -emit_16(919); -emit_16(854); -emit_16(919); -emit_16(855); -emit_16(920); -emit_16(856); -emit_16(920); -emit_16(855); -emit_16(920); -emit_16(856); -emit_16(921); -emit_16(857); -emit_16(921); -emit_16(856); -emit_16(921); -emit_16(857); -emit_16(922); -emit_16(858); -emit_16(922); -emit_16(857); -emit_16(922); -emit_16(858); -emit_16(923); -emit_16(859); -emit_16(923); -emit_16(858); -emit_16(923); -emit_16(859); -emit_16(924); -emit_16(860); -emit_16(924); -emit_16(859); -emit_16(924); -emit_16(860); -emit_16(925); -emit_16(861); -emit_16(925); -emit_16(860); -emit_16(925); -emit_16(861); -emit_16(926); -emit_16(862); -emit_16(926); -emit_16(861); -emit_16(926); -emit_16(862); -emit_16(927); -emit_16(863); -emit_16(927); -emit_16(862); -emit_16(927); -emit_16(863); -emit_16(928); -emit_16(864); -emit_16(928); -emit_16(863); -emit_16(928); -emit_16(864); -emit_16(929); -emit_16(865); -emit_16(929); -emit_16(864); -emit_16(929); -emit_16(865); -emit_16(930); -emit_16(866); -emit_16(930); -emit_16(865); -emit_16(930); -emit_16(866); -emit_16(931); -emit_16(867); -emit_16(931); -emit_16(866); -emit_16(931); -emit_16(867); -emit_16(932); -emit_16(868); -emit_16(932); -emit_16(867); -emit_16(932); -emit_16(868); -emit_16(933); -emit_16(869); -emit_16(933); -emit_16(868); -emit_16(933); -emit_16(869); -emit_16(934); -emit_16(870); -emit_16(934); -emit_16(869); -emit_16(934); -emit_16(870); -emit_16(935); -emit_16(871); -emit_16(935); -emit_16(870); -emit_16(935); -emit_16(871); -emit_16(936); -emit_16(872); -emit_16(936); -emit_16(871); -emit_16(936); -emit_16(872); -emit_16(937); -emit_16(873); -emit_16(937); -emit_16(872); -emit_16(937); -emit_16(873); -emit_16(938); -emit_16(874); -emit_16(938); -emit_16(873); -emit_16(938); -emit_16(874); -emit_16(939); -emit_16(875); -emit_16(939); -emit_16(874); -emit_16(939); -emit_16(875); -emit_16(940); -emit_16(876); -emit_16(940); -emit_16(875); -emit_16(940); -emit_16(876); -emit_16(941); -emit_16(877); -emit_16(941); -emit_16(876); -emit_16(941); -emit_16(877); -emit_16(942); -emit_16(878); -emit_16(942); -emit_16(877); -emit_16(942); -emit_16(878); -emit_16(943); -emit_16(879); -emit_16(943); -emit_16(878); -emit_16(943); -emit_16(879); -emit_16(944); -emit_16(880); -emit_16(944); -emit_16(879); -emit_16(944); -emit_16(880); -emit_16(945); -emit_16(881); -emit_16(945); -emit_16(880); -emit_16(945); -emit_16(881); -emit_16(946); -emit_16(882); -emit_16(946); -emit_16(881); -emit_16(946); -emit_16(882); -emit_16(947); -emit_16(883); -emit_16(947); -emit_16(882); -emit_16(947); -emit_16(883); -emit_16(948); -emit_16(884); -emit_16(948); -emit_16(883); -emit_16(948); -emit_16(884); -emit_16(949); -emit_16(885); -emit_16(949); -emit_16(884); -emit_16(949); -emit_16(885); -emit_16(950); -emit_16(886); -emit_16(950); -emit_16(885); -emit_16(950); -emit_16(886); -emit_16(951); -emit_16(887); -emit_16(951); -emit_16(886); -emit_16(951); -emit_16(887); -emit_16(952); -emit_16(888); -emit_16(952); -emit_16(887); -emit_16(952); -emit_16(888); -emit_16(953); -emit_16(889); -emit_16(953); -emit_16(888); -emit_16(953); -emit_16(889); -emit_16(954); -emit_16(890); -emit_16(954); -emit_16(889); -emit_16(954); -emit_16(890); -emit_16(955); -emit_16(891); -emit_16(955); -emit_16(890); -emit_16(955); -emit_16(891); -emit_16(956); -emit_16(892); -emit_16(956); -emit_16(891); -emit_16(956); -emit_16(892); -emit_16(957); -emit_16(893); -emit_16(957); -emit_16(892); -emit_16(957); -emit_16(893); -emit_16(958); -emit_16(894); -emit_16(958); -emit_16(893); -emit_16(958); -emit_16(894); -emit_16(959); -emit_16(895); -emit_16(959); -emit_16(894); -emit_16(960); -emit_16(896); -emit_16(961); -emit_16(897); -emit_16(961); -emit_16(896); -emit_16(961); -emit_16(897); -emit_16(962); -emit_16(898); -emit_16(962); -emit_16(897); -emit_16(962); -emit_16(898); -emit_16(963); -emit_16(899); -emit_16(963); -emit_16(898); -emit_16(963); -emit_16(899); -emit_16(964); -emit_16(900); -emit_16(964); -emit_16(899); -emit_16(964); -emit_16(900); -emit_16(965); -emit_16(901); -emit_16(965); -emit_16(900); -emit_16(965); -emit_16(901); -emit_16(966); -emit_16(902); -emit_16(966); -emit_16(901); -emit_16(966); -emit_16(902); -emit_16(967); -emit_16(903); -emit_16(967); -emit_16(902); -emit_16(967); -emit_16(903); -emit_16(968); -emit_16(904); -emit_16(968); -emit_16(903); -emit_16(968); -emit_16(904); -emit_16(969); -emit_16(905); -emit_16(969); -emit_16(904); -emit_16(969); -emit_16(905); -emit_16(970); -emit_16(906); -emit_16(970); -emit_16(905); -emit_16(970); -emit_16(906); -emit_16(971); -emit_16(907); -emit_16(971); -emit_16(906); -emit_16(971); -emit_16(907); -emit_16(972); -emit_16(908); -emit_16(972); -emit_16(907); -emit_16(972); -emit_16(908); -emit_16(973); -emit_16(909); -emit_16(973); -emit_16(908); -emit_16(973); -emit_16(909); -emit_16(974); -emit_16(910); -emit_16(974); -emit_16(909); -emit_16(974); -emit_16(910); -emit_16(975); -emit_16(911); -emit_16(975); -emit_16(910); -emit_16(975); -emit_16(911); -emit_16(976); -emit_16(912); -emit_16(976); -emit_16(911); -emit_16(976); -emit_16(912); -emit_16(977); -emit_16(913); -emit_16(977); -emit_16(912); -emit_16(977); -emit_16(913); -emit_16(978); -emit_16(914); -emit_16(978); -emit_16(913); -emit_16(978); -emit_16(914); -emit_16(979); -emit_16(915); -emit_16(979); -emit_16(914); -emit_16(979); -emit_16(915); -emit_16(980); -emit_16(916); -emit_16(980); -emit_16(915); -emit_16(980); -emit_16(916); -emit_16(981); -emit_16(917); -emit_16(981); -emit_16(916); -emit_16(981); -emit_16(917); -emit_16(982); -emit_16(918); -emit_16(982); -emit_16(917); -emit_16(982); -emit_16(918); -emit_16(983); -emit_16(919); -emit_16(983); -emit_16(918); -emit_16(983); -emit_16(919); -emit_16(984); -emit_16(920); -emit_16(984); -emit_16(919); -emit_16(984); -emit_16(920); -emit_16(985); -emit_16(921); -emit_16(985); -emit_16(920); -emit_16(985); -emit_16(921); -emit_16(986); -emit_16(922); -emit_16(986); -emit_16(921); -emit_16(986); -emit_16(922); -emit_16(987); -emit_16(923); -emit_16(987); -emit_16(922); -emit_16(987); -emit_16(923); -emit_16(988); -emit_16(924); -emit_16(988); -emit_16(923); -emit_16(988); -emit_16(924); -emit_16(989); -emit_16(925); -emit_16(989); -emit_16(924); -emit_16(989); -emit_16(925); -emit_16(990); -emit_16(926); -emit_16(990); -emit_16(925); -emit_16(990); -emit_16(926); -emit_16(991); -emit_16(927); -emit_16(991); -emit_16(926); -emit_16(991); -emit_16(927); -emit_16(992); -emit_16(928); -emit_16(992); -emit_16(927); -emit_16(992); -emit_16(928); -emit_16(993); -emit_16(929); -emit_16(993); -emit_16(928); -emit_16(993); -emit_16(929); -emit_16(994); -emit_16(930); -emit_16(994); -emit_16(929); -emit_16(994); -emit_16(930); -emit_16(995); -emit_16(931); -emit_16(995); -emit_16(930); -emit_16(995); -emit_16(931); -emit_16(996); -emit_16(932); -emit_16(996); -emit_16(931); -emit_16(996); -emit_16(932); -emit_16(997); -emit_16(933); -emit_16(997); -emit_16(932); -emit_16(997); -emit_16(933); -emit_16(998); -emit_16(934); -emit_16(998); -emit_16(933); -emit_16(998); -emit_16(934); -emit_16(999); -emit_16(935); -emit_16(999); -emit_16(934); -emit_16(999); -emit_16(935); -emit_16(1000); -emit_16(936); -emit_16(1000); -emit_16(935); -emit_16(1000); -emit_16(936); -emit_16(1001); -emit_16(937); -emit_16(1001); -emit_16(936); -emit_16(1001); -emit_16(937); -emit_16(1002); -emit_16(938); -emit_16(1002); -emit_16(937); -emit_16(1002); -emit_16(938); -emit_16(1003); -emit_16(939); -emit_16(1003); -emit_16(938); -emit_16(1003); -emit_16(939); -emit_16(1004); -emit_16(940); -emit_16(1004); -emit_16(939); -emit_16(1004); -emit_16(940); -emit_16(1005); -emit_16(941); -emit_16(1005); -emit_16(940); -emit_16(1005); -emit_16(941); -emit_16(1006); -emit_16(942); -emit_16(1006); -emit_16(941); -emit_16(1006); -emit_16(942); -emit_16(1007); -emit_16(943); -emit_16(1007); -emit_16(942); -emit_16(1007); -emit_16(943); -emit_16(1008); -emit_16(944); -emit_16(1008); -emit_16(943); -emit_16(1008); -emit_16(944); -emit_16(1009); -emit_16(945); -emit_16(1009); -emit_16(944); -emit_16(1009); -emit_16(945); -emit_16(1010); -emit_16(946); -emit_16(1010); -emit_16(945); -emit_16(1010); -emit_16(946); -emit_16(1011); -emit_16(947); -emit_16(1011); -emit_16(946); -emit_16(1011); -emit_16(947); -emit_16(1012); -emit_16(948); -emit_16(1012); -emit_16(947); -emit_16(1012); -emit_16(948); -emit_16(1013); -emit_16(949); -emit_16(1013); -emit_16(948); -emit_16(1013); -emit_16(949); -emit_16(1014); -emit_16(950); -emit_16(1014); -emit_16(949); -emit_16(1014); -emit_16(950); -emit_16(1015); -emit_16(951); -emit_16(1015); -emit_16(950); -emit_16(1015); -emit_16(951); -emit_16(1016); -emit_16(952); -emit_16(1016); -emit_16(951); -emit_16(1016); -emit_16(952); -emit_16(1017); -emit_16(953); -emit_16(1017); -emit_16(952); -emit_16(1017); -emit_16(953); -emit_16(1018); -emit_16(954); -emit_16(1018); -emit_16(953); -emit_16(1018); -emit_16(954); -emit_16(1019); -emit_16(955); -emit_16(1019); -emit_16(954); -emit_16(1019); -emit_16(955); -emit_16(1020); -emit_16(956); -emit_16(1020); -emit_16(955); -emit_16(1020); -emit_16(956); -emit_16(1021); -emit_16(957); -emit_16(1021); -emit_16(956); -emit_16(1021); -emit_16(957); -emit_16(1022); -emit_16(958); -emit_16(1022); -emit_16(957); -emit_16(1022); -emit_16(958); -emit_16(1023); -emit_16(959); -emit_16(1023); -emit_16(958); -emit_16(1024); -emit_16(960); -emit_16(1025); -emit_16(961); -emit_16(1025); -emit_16(960); -emit_16(1025); -emit_16(961); -emit_16(1026); -emit_16(962); -emit_16(1026); -emit_16(961); -emit_16(1026); -emit_16(962); -emit_16(1027); -emit_16(963); -emit_16(1027); -emit_16(962); -emit_16(1027); -emit_16(963); -emit_16(1028); -emit_16(964); -emit_16(1028); -emit_16(963); -emit_16(1028); -emit_16(964); -emit_16(1029); -emit_16(965); -emit_16(1029); -emit_16(964); -emit_16(1029); -emit_16(965); -emit_16(1030); -emit_16(966); -emit_16(1030); -emit_16(965); -emit_16(1030); -emit_16(966); -emit_16(1031); -emit_16(967); -emit_16(1031); -emit_16(966); -emit_16(1031); -emit_16(967); -emit_16(1032); -emit_16(968); -emit_16(1032); -emit_16(967); -emit_16(1032); -emit_16(968); -emit_16(1033); -emit_16(969); -emit_16(1033); -emit_16(968); -emit_16(1033); -emit_16(969); -emit_16(1034); -emit_16(970); -emit_16(1034); -emit_16(969); -emit_16(1034); -emit_16(970); -emit_16(1035); -emit_16(971); -emit_16(1035); -emit_16(970); -emit_16(1035); -emit_16(971); -emit_16(1036); -emit_16(972); -emit_16(1036); -emit_16(971); -emit_16(1036); -emit_16(972); -emit_16(1037); -emit_16(973); -emit_16(1037); -emit_16(972); -emit_16(1037); -emit_16(973); -emit_16(1038); -emit_16(974); -emit_16(1038); -emit_16(973); -emit_16(1038); -emit_16(974); -emit_16(1039); -emit_16(975); -emit_16(1039); -emit_16(974); -emit_16(1039); -emit_16(975); -emit_16(1040); -emit_16(976); -emit_16(1040); -emit_16(975); -emit_16(1040); -emit_16(976); -emit_16(1041); -emit_16(977); -emit_16(1041); -emit_16(976); -emit_16(1041); -emit_16(977); -emit_16(1042); -emit_16(978); -emit_16(1042); -emit_16(977); -emit_16(1042); -emit_16(978); -emit_16(1043); -emit_16(979); -emit_16(1043); -emit_16(978); -emit_16(1043); -emit_16(979); -emit_16(1044); -emit_16(980); -emit_16(1044); -emit_16(979); -emit_16(1044); -emit_16(980); -emit_16(1045); -emit_16(981); -emit_16(1045); -emit_16(980); -emit_16(1045); -emit_16(981); -emit_16(1046); -emit_16(982); -emit_16(1046); -emit_16(981); -emit_16(1046); -emit_16(982); -emit_16(1047); -emit_16(983); -emit_16(1047); -emit_16(982); -emit_16(1047); -emit_16(983); -emit_16(1048); -emit_16(984); -emit_16(1048); -emit_16(983); -emit_16(1048); -emit_16(984); -emit_16(1049); -emit_16(985); -emit_16(1049); -emit_16(984); -emit_16(1049); -emit_16(985); -emit_16(1050); -emit_16(986); -emit_16(1050); -emit_16(985); -emit_16(1050); -emit_16(986); -emit_16(1051); -emit_16(987); -emit_16(1051); -emit_16(986); -emit_16(1051); -emit_16(987); -emit_16(1052); -emit_16(988); -emit_16(1052); -emit_16(987); -emit_16(1052); -emit_16(988); -emit_16(1053); -emit_16(989); -emit_16(1053); -emit_16(988); -emit_16(1053); -emit_16(989); -emit_16(1054); -emit_16(990); -emit_16(1054); -emit_16(989); -emit_16(1054); -emit_16(990); -emit_16(1055); -emit_16(991); -emit_16(1055); -emit_16(990); -emit_16(1055); -emit_16(991); -emit_16(1056); -emit_16(992); -emit_16(1056); -emit_16(991); -emit_16(1056); -emit_16(992); -emit_16(1057); -emit_16(993); -emit_16(1057); -emit_16(992); -emit_16(1057); -emit_16(993); -emit_16(1058); -emit_16(994); -emit_16(1058); -emit_16(993); -emit_16(1058); -emit_16(994); -emit_16(1059); -emit_16(995); -emit_16(1059); -emit_16(994); -emit_16(1059); -emit_16(995); -emit_16(1060); -emit_16(996); -emit_16(1060); -emit_16(995); -emit_16(1060); -emit_16(996); -emit_16(1061); -emit_16(997); -emit_16(1061); -emit_16(996); -emit_16(1061); -emit_16(997); -emit_16(1062); -emit_16(998); -emit_16(1062); -emit_16(997); -emit_16(1062); -emit_16(998); -emit_16(1063); -emit_16(999); -emit_16(1063); -emit_16(998); -emit_16(1063); -emit_16(999); -emit_16(1064); -emit_16(1000); -emit_16(1064); -emit_16(999); -emit_16(1064); -emit_16(1000); -emit_16(1065); -emit_16(1001); -emit_16(1065); -emit_16(1000); -emit_16(1065); -emit_16(1001); -emit_16(1066); -emit_16(1002); -emit_16(1066); -emit_16(1001); -emit_16(1066); -emit_16(1002); -emit_16(1067); -emit_16(1003); -emit_16(1067); -emit_16(1002); -emit_16(1067); -emit_16(1003); -emit_16(1068); -emit_16(1004); -emit_16(1068); -emit_16(1003); -emit_16(1068); -emit_16(1004); -emit_16(1069); -emit_16(1005); -emit_16(1069); -emit_16(1004); -emit_16(1069); -emit_16(1005); -emit_16(1070); -emit_16(1006); -emit_16(1070); -emit_16(1005); -emit_16(1070); -emit_16(1006); -emit_16(1071); -emit_16(1007); -emit_16(1071); -emit_16(1006); -emit_16(1071); -emit_16(1007); -emit_16(1072); -emit_16(1008); -emit_16(1072); -emit_16(1007); -emit_16(1072); -emit_16(1008); -emit_16(1073); -emit_16(1009); -emit_16(1073); -emit_16(1008); -emit_16(1073); -emit_16(1009); -emit_16(1074); -emit_16(1010); -emit_16(1074); -emit_16(1009); -emit_16(1074); -emit_16(1010); -emit_16(1075); -emit_16(1011); -emit_16(1075); -emit_16(1010); -emit_16(1075); -emit_16(1011); -emit_16(1076); -emit_16(1012); -emit_16(1076); -emit_16(1011); -emit_16(1076); -emit_16(1012); -emit_16(1077); -emit_16(1013); -emit_16(1077); -emit_16(1012); -emit_16(1077); -emit_16(1013); -emit_16(1078); -emit_16(1014); -emit_16(1078); -emit_16(1013); -emit_16(1078); -emit_16(1014); -emit_16(1079); -emit_16(1015); -emit_16(1079); -emit_16(1014); -emit_16(1079); -emit_16(1015); -emit_16(1080); -emit_16(1016); -emit_16(1080); -emit_16(1015); -emit_16(1080); -emit_16(1016); -emit_16(1081); -emit_16(1017); -emit_16(1081); -emit_16(1016); -emit_16(1081); -emit_16(1017); -emit_16(1082); -emit_16(1018); -emit_16(1082); -emit_16(1017); -emit_16(1082); -emit_16(1018); -emit_16(1083); -emit_16(1019); -emit_16(1083); -emit_16(1018); -emit_16(1083); -emit_16(1019); -emit_16(1084); -emit_16(1020); -emit_16(1084); -emit_16(1019); -emit_16(1084); -emit_16(1020); -emit_16(1085); -emit_16(1021); -emit_16(1085); -emit_16(1020); -emit_16(1085); -emit_16(1021); -emit_16(1086); -emit_16(1022); -emit_16(1086); -emit_16(1021); -emit_16(1086); -emit_16(1022); -emit_16(1087); -emit_16(1023); -emit_16(1087); -emit_16(1022); -emit_16(1088); -emit_16(1024); -emit_16(1089); -emit_16(1025); -emit_16(1089); -emit_16(1024); -emit_16(1089); -emit_16(1025); -emit_16(1090); -emit_16(1026); -emit_16(1090); -emit_16(1025); -emit_16(1090); -emit_16(1026); -emit_16(1091); -emit_16(1027); -emit_16(1091); -emit_16(1026); -emit_16(1091); -emit_16(1027); -emit_16(1092); -emit_16(1028); -emit_16(1092); -emit_16(1027); -emit_16(1092); -emit_16(1028); -emit_16(1093); -emit_16(1029); -emit_16(1093); -emit_16(1028); -emit_16(1093); -emit_16(1029); -emit_16(1094); -emit_16(1030); -emit_16(1094); -emit_16(1029); -emit_16(1094); -emit_16(1030); -emit_16(1095); -emit_16(1031); -emit_16(1095); -emit_16(1030); -emit_16(1095); -emit_16(1031); -emit_16(1096); -emit_16(1032); -emit_16(1096); -emit_16(1031); -emit_16(1096); -emit_16(1032); -emit_16(1097); -emit_16(1033); -emit_16(1097); -emit_16(1032); -emit_16(1097); -emit_16(1033); -emit_16(1098); -emit_16(1034); -emit_16(1098); -emit_16(1033); -emit_16(1098); -emit_16(1034); -emit_16(1099); -emit_16(1035); -emit_16(1099); -emit_16(1034); -emit_16(1099); -emit_16(1035); -emit_16(1100); -emit_16(1036); -emit_16(1100); -emit_16(1035); -emit_16(1100); -emit_16(1036); -emit_16(1101); -emit_16(1037); -emit_16(1101); -emit_16(1036); -emit_16(1101); -emit_16(1037); -emit_16(1102); -emit_16(1038); -emit_16(1102); -emit_16(1037); -emit_16(1102); -emit_16(1038); -emit_16(1103); -emit_16(1039); -emit_16(1103); -emit_16(1038); -emit_16(1103); -emit_16(1039); -emit_16(1104); -emit_16(1040); -emit_16(1104); -emit_16(1039); -emit_16(1104); -emit_16(1040); -emit_16(1105); -emit_16(1041); -emit_16(1105); -emit_16(1040); -emit_16(1105); -emit_16(1041); -emit_16(1106); -emit_16(1042); -emit_16(1106); -emit_16(1041); -emit_16(1106); -emit_16(1042); -emit_16(1107); -emit_16(1043); -emit_16(1107); -emit_16(1042); -emit_16(1107); -emit_16(1043); -emit_16(1108); -emit_16(1044); -emit_16(1108); -emit_16(1043); -emit_16(1108); -emit_16(1044); -emit_16(1109); -emit_16(1045); -emit_16(1109); -emit_16(1044); -emit_16(1109); -emit_16(1045); -emit_16(1110); -emit_16(1046); -emit_16(1110); -emit_16(1045); -emit_16(1110); -emit_16(1046); -emit_16(1111); -emit_16(1047); -emit_16(1111); -emit_16(1046); -emit_16(1111); -emit_16(1047); -emit_16(1112); -emit_16(1048); -emit_16(1112); -emit_16(1047); -emit_16(1112); -emit_16(1048); -emit_16(1113); -emit_16(1049); -emit_16(1113); -emit_16(1048); -emit_16(1113); -emit_16(1049); -emit_16(1114); -emit_16(1050); -emit_16(1114); -emit_16(1049); -emit_16(1114); -emit_16(1050); -emit_16(1115); -emit_16(1051); -emit_16(1115); -emit_16(1050); -emit_16(1115); -emit_16(1051); -emit_16(1116); -emit_16(1052); -emit_16(1116); -emit_16(1051); -emit_16(1116); -emit_16(1052); -emit_16(1117); -emit_16(1053); -emit_16(1117); -emit_16(1052); -emit_16(1117); -emit_16(1053); -emit_16(1118); -emit_16(1054); -emit_16(1118); -emit_16(1053); -emit_16(1118); -emit_16(1054); -emit_16(1119); -emit_16(1055); -emit_16(1119); -emit_16(1054); -emit_16(1119); -emit_16(1055); -emit_16(1120); -emit_16(1056); -emit_16(1120); -emit_16(1055); -emit_16(1120); -emit_16(1056); -emit_16(1121); -emit_16(1057); -emit_16(1121); -emit_16(1056); -emit_16(1121); -emit_16(1057); -emit_16(1122); -emit_16(1058); -emit_16(1122); -emit_16(1057); -emit_16(1122); -emit_16(1058); -emit_16(1123); -emit_16(1059); -emit_16(1123); -emit_16(1058); -emit_16(1123); -emit_16(1059); -emit_16(1124); -emit_16(1060); -emit_16(1124); -emit_16(1059); -emit_16(1124); -emit_16(1060); -emit_16(1125); -emit_16(1061); -emit_16(1125); -emit_16(1060); -emit_16(1125); -emit_16(1061); -emit_16(1126); -emit_16(1062); -emit_16(1126); -emit_16(1061); -emit_16(1126); -emit_16(1062); -emit_16(1127); -emit_16(1063); -emit_16(1127); -emit_16(1062); -emit_16(1127); -emit_16(1063); -emit_16(1128); -emit_16(1064); -emit_16(1128); -emit_16(1063); -emit_16(1128); -emit_16(1064); -emit_16(1129); -emit_16(1065); -emit_16(1129); -emit_16(1064); -emit_16(1129); -emit_16(1065); -emit_16(1130); -emit_16(1066); -emit_16(1130); -emit_16(1065); -emit_16(1130); -emit_16(1066); -emit_16(1131); -emit_16(1067); -emit_16(1131); -emit_16(1066); -emit_16(1131); -emit_16(1067); -emit_16(1132); -emit_16(1068); -emit_16(1132); -emit_16(1067); -emit_16(1132); -emit_16(1068); -emit_16(1133); -emit_16(1069); -emit_16(1133); -emit_16(1068); -emit_16(1133); -emit_16(1069); -emit_16(1134); -emit_16(1070); -emit_16(1134); -emit_16(1069); -emit_16(1134); -emit_16(1070); -emit_16(1135); -emit_16(1071); -emit_16(1135); -emit_16(1070); -emit_16(1135); -emit_16(1071); -emit_16(1136); -emit_16(1072); -emit_16(1136); -emit_16(1071); -emit_16(1136); -emit_16(1072); -emit_16(1137); -emit_16(1073); -emit_16(1137); -emit_16(1072); -emit_16(1137); -emit_16(1073); -emit_16(1138); -emit_16(1074); -emit_16(1138); -emit_16(1073); -emit_16(1138); -emit_16(1074); -emit_16(1139); -emit_16(1075); -emit_16(1139); -emit_16(1074); -emit_16(1139); -emit_16(1075); -emit_16(1140); -emit_16(1076); -emit_16(1140); -emit_16(1075); -emit_16(1140); -emit_16(1076); -emit_16(1141); -emit_16(1077); -emit_16(1141); -emit_16(1076); -emit_16(1141); -emit_16(1077); -emit_16(1142); -emit_16(1078); -emit_16(1142); -emit_16(1077); -emit_16(1142); -emit_16(1078); -emit_16(1143); -emit_16(1079); -emit_16(1143); -emit_16(1078); -emit_16(1143); -emit_16(1079); -emit_16(1144); -emit_16(1080); -emit_16(1144); -emit_16(1079); -emit_16(1144); -emit_16(1080); -emit_16(1145); -emit_16(1081); -emit_16(1145); -emit_16(1080); -emit_16(1145); -emit_16(1081); -emit_16(1146); -emit_16(1082); -emit_16(1146); -emit_16(1081); -emit_16(1146); -emit_16(1082); -emit_16(1147); -emit_16(1083); -emit_16(1147); -emit_16(1082); -emit_16(1147); -emit_16(1083); -emit_16(1148); -emit_16(1084); -emit_16(1148); -emit_16(1083); -emit_16(1148); -emit_16(1084); -emit_16(1149); -emit_16(1085); -emit_16(1149); -emit_16(1084); -emit_16(1149); -emit_16(1085); -emit_16(1150); -emit_16(1086); -emit_16(1150); -emit_16(1085); -emit_16(1150); -emit_16(1086); -emit_16(1151); -emit_16(1087); -emit_16(1151); -emit_16(1086); -emit_16(1152); -emit_16(1088); -emit_16(1153); -emit_16(1089); -emit_16(1153); -emit_16(1088); -emit_16(1153); -emit_16(1089); -emit_16(1154); -emit_16(1090); -emit_16(1154); -emit_16(1089); -emit_16(1154); -emit_16(1090); -emit_16(1155); -emit_16(1091); -emit_16(1155); -emit_16(1090); -emit_16(1155); -emit_16(1091); -emit_16(1156); -emit_16(1092); -emit_16(1156); -emit_16(1091); -emit_16(1156); -emit_16(1092); -emit_16(1157); -emit_16(1093); -emit_16(1157); -emit_16(1092); -emit_16(1157); -emit_16(1093); -emit_16(1158); -emit_16(1094); -emit_16(1158); -emit_16(1093); -emit_16(1158); -emit_16(1094); -emit_16(1159); -emit_16(1095); -emit_16(1159); -emit_16(1094); -emit_16(1159); -emit_16(1095); -emit_16(1160); -emit_16(1096); -emit_16(1160); -emit_16(1095); -emit_16(1160); -emit_16(1096); -emit_16(1161); -emit_16(1097); -emit_16(1161); -emit_16(1096); -emit_16(1161); -emit_16(1097); -emit_16(1162); -emit_16(1098); -emit_16(1162); -emit_16(1097); -emit_16(1162); -emit_16(1098); -emit_16(1163); -emit_16(1099); -emit_16(1163); -emit_16(1098); -emit_16(1163); -emit_16(1099); -emit_16(1164); -emit_16(1100); -emit_16(1164); -emit_16(1099); -emit_16(1164); -emit_16(1100); -emit_16(1165); -emit_16(1101); -emit_16(1165); -emit_16(1100); -emit_16(1165); -emit_16(1101); -emit_16(1166); -emit_16(1102); -emit_16(1166); -emit_16(1101); -emit_16(1166); -emit_16(1102); -emit_16(1167); -emit_16(1103); -emit_16(1167); -emit_16(1102); -emit_16(1167); -emit_16(1103); -emit_16(1168); -emit_16(1104); -emit_16(1168); -emit_16(1103); -emit_16(1168); -emit_16(1104); -emit_16(1169); -emit_16(1105); -emit_16(1169); -emit_16(1104); -emit_16(1169); -emit_16(1105); -emit_16(1170); -emit_16(1106); -emit_16(1170); -emit_16(1105); -emit_16(1170); -emit_16(1106); -emit_16(1171); -emit_16(1107); -emit_16(1171); -emit_16(1106); -emit_16(1171); -emit_16(1107); -emit_16(1172); -emit_16(1108); -emit_16(1172); -emit_16(1107); -emit_16(1172); -emit_16(1108); -emit_16(1173); -emit_16(1109); -emit_16(1173); -emit_16(1108); -emit_16(1173); -emit_16(1109); -emit_16(1174); -emit_16(1110); -emit_16(1174); -emit_16(1109); -emit_16(1174); -emit_16(1110); -emit_16(1175); -emit_16(1111); -emit_16(1175); -emit_16(1110); -emit_16(1175); -emit_16(1111); -emit_16(1176); -emit_16(1112); -emit_16(1176); -emit_16(1111); -emit_16(1176); -emit_16(1112); -emit_16(1177); -emit_16(1113); -emit_16(1177); -emit_16(1112); -emit_16(1177); -emit_16(1113); -emit_16(1178); -emit_16(1114); -emit_16(1178); -emit_16(1113); -emit_16(1178); -emit_16(1114); -emit_16(1179); -emit_16(1115); -emit_16(1179); -emit_16(1114); -emit_16(1179); -emit_16(1115); -emit_16(1180); -emit_16(1116); -emit_16(1180); -emit_16(1115); -emit_16(1180); -emit_16(1116); -emit_16(1181); -emit_16(1117); -emit_16(1181); -emit_16(1116); -emit_16(1181); -emit_16(1117); -emit_16(1182); -emit_16(1118); -emit_16(1182); -emit_16(1117); -emit_16(1182); -emit_16(1118); -emit_16(1183); -emit_16(1119); -emit_16(1183); -emit_16(1118); -emit_16(1183); -emit_16(1119); -emit_16(1184); -emit_16(1120); -emit_16(1184); -emit_16(1119); -emit_16(1184); -emit_16(1120); -emit_16(1185); -emit_16(1121); -emit_16(1185); -emit_16(1120); -emit_16(1185); -emit_16(1121); -emit_16(1186); -emit_16(1122); -emit_16(1186); -emit_16(1121); -emit_16(1186); -emit_16(1122); -emit_16(1187); -emit_16(1123); -emit_16(1187); -emit_16(1122); -emit_16(1187); -emit_16(1123); -emit_16(1188); -emit_16(1124); -emit_16(1188); -emit_16(1123); -emit_16(1188); -emit_16(1124); -emit_16(1189); -emit_16(1125); -emit_16(1189); -emit_16(1124); -emit_16(1189); -emit_16(1125); -emit_16(1190); -emit_16(1126); -emit_16(1190); -emit_16(1125); -emit_16(1190); -emit_16(1126); -emit_16(1191); -emit_16(1127); -emit_16(1191); -emit_16(1126); -emit_16(1191); -emit_16(1127); -emit_16(1192); -emit_16(1128); -emit_16(1192); -emit_16(1127); -emit_16(1192); -emit_16(1128); -emit_16(1193); -emit_16(1129); -emit_16(1193); -emit_16(1128); -emit_16(1193); -emit_16(1129); -emit_16(1194); -emit_16(1130); -emit_16(1194); -emit_16(1129); -emit_16(1194); -emit_16(1130); -emit_16(1195); -emit_16(1131); -emit_16(1195); -emit_16(1130); -emit_16(1195); -emit_16(1131); -emit_16(1196); -emit_16(1132); -emit_16(1196); -emit_16(1131); -emit_16(1196); -emit_16(1132); -emit_16(1197); -emit_16(1133); -emit_16(1197); -emit_16(1132); -emit_16(1197); -emit_16(1133); -emit_16(1198); -emit_16(1134); -emit_16(1198); -emit_16(1133); -emit_16(1198); -emit_16(1134); -emit_16(1199); -emit_16(1135); -emit_16(1199); -emit_16(1134); -emit_16(1199); -emit_16(1135); -emit_16(1200); -emit_16(1136); -emit_16(1200); -emit_16(1135); -emit_16(1200); -emit_16(1136); -emit_16(1201); -emit_16(1137); -emit_16(1201); -emit_16(1136); -emit_16(1201); -emit_16(1137); -emit_16(1202); -emit_16(1138); -emit_16(1202); -emit_16(1137); -emit_16(1202); -emit_16(1138); -emit_16(1203); -emit_16(1139); -emit_16(1203); -emit_16(1138); -emit_16(1203); -emit_16(1139); -emit_16(1204); -emit_16(1140); -emit_16(1204); -emit_16(1139); -emit_16(1204); -emit_16(1140); -emit_16(1205); -emit_16(1141); -emit_16(1205); -emit_16(1140); -emit_16(1205); -emit_16(1141); -emit_16(1206); -emit_16(1142); -emit_16(1206); -emit_16(1141); -emit_16(1206); -emit_16(1142); -emit_16(1207); -emit_16(1143); -emit_16(1207); -emit_16(1142); -emit_16(1207); -emit_16(1143); -emit_16(1208); -emit_16(1144); -emit_16(1208); -emit_16(1143); -emit_16(1208); -emit_16(1144); -emit_16(1209); -emit_16(1145); -emit_16(1209); -emit_16(1144); -emit_16(1209); -emit_16(1145); -emit_16(1210); -emit_16(1146); -emit_16(1210); -emit_16(1145); -emit_16(1210); -emit_16(1146); -emit_16(1211); -emit_16(1147); -emit_16(1211); -emit_16(1146); -emit_16(1211); -emit_16(1147); -emit_16(1212); -emit_16(1148); -emit_16(1212); -emit_16(1147); -emit_16(1212); -emit_16(1148); -emit_16(1213); -emit_16(1149); -emit_16(1213); -emit_16(1148); -emit_16(1213); -emit_16(1149); -emit_16(1214); -emit_16(1150); -emit_16(1214); -emit_16(1149); -emit_16(1214); -emit_16(1150); -emit_16(1215); -emit_16(1151); -emit_16(1215); -emit_16(1150); -emit_16(1216); -emit_16(1152); -emit_16(1217); -emit_16(1153); -emit_16(1217); -emit_16(1152); -emit_16(1217); -emit_16(1153); -emit_16(1218); -emit_16(1154); -emit_16(1218); -emit_16(1153); -emit_16(1218); -emit_16(1154); -emit_16(1219); -emit_16(1155); -emit_16(1219); -emit_16(1154); -emit_16(1219); -emit_16(1155); -emit_16(1220); -emit_16(1156); -emit_16(1220); -emit_16(1155); -emit_16(1220); -emit_16(1156); -emit_16(1221); -emit_16(1157); -emit_16(1221); -emit_16(1156); -emit_16(1221); -emit_16(1157); -emit_16(1222); -emit_16(1158); -emit_16(1222); -emit_16(1157); -emit_16(1222); -emit_16(1158); -emit_16(1223); -emit_16(1159); -emit_16(1223); -emit_16(1158); -emit_16(1223); -emit_16(1159); -emit_16(1224); -emit_16(1160); -emit_16(1224); -emit_16(1159); -emit_16(1224); -emit_16(1160); -emit_16(1225); -emit_16(1161); -emit_16(1225); -emit_16(1160); -emit_16(1225); -emit_16(1161); -emit_16(1226); -emit_16(1162); -emit_16(1226); -emit_16(1161); -emit_16(1226); -emit_16(1162); -emit_16(1227); -emit_16(1163); -emit_16(1227); -emit_16(1162); -emit_16(1227); -emit_16(1163); -emit_16(1228); -emit_16(1164); -emit_16(1228); -emit_16(1163); -emit_16(1228); -emit_16(1164); -emit_16(1229); -emit_16(1165); -emit_16(1229); -emit_16(1164); -emit_16(1229); -emit_16(1165); -emit_16(1230); -emit_16(1166); -emit_16(1230); -emit_16(1165); -emit_16(1230); -emit_16(1166); -emit_16(1231); -emit_16(1167); -emit_16(1231); -emit_16(1166); -emit_16(1231); -emit_16(1167); -emit_16(1232); -emit_16(1168); -emit_16(1232); -emit_16(1167); -emit_16(1232); -emit_16(1168); -emit_16(1233); -emit_16(1169); -emit_16(1233); -emit_16(1168); -emit_16(1233); -emit_16(1169); -emit_16(1234); -emit_16(1170); -emit_16(1234); -emit_16(1169); -emit_16(1234); -emit_16(1170); -emit_16(1235); -emit_16(1171); -emit_16(1235); -emit_16(1170); -emit_16(1235); -emit_16(1171); -emit_16(1236); -emit_16(1172); -emit_16(1236); -emit_16(1171); -emit_16(1236); -emit_16(1172); -emit_16(1237); -emit_16(1173); -emit_16(1237); -emit_16(1172); -emit_16(1237); -emit_16(1173); -emit_16(1238); -emit_16(1174); -emit_16(1238); -emit_16(1173); -emit_16(1238); -emit_16(1174); -emit_16(1239); -emit_16(1175); -emit_16(1239); -emit_16(1174); -emit_16(1239); -emit_16(1175); -emit_16(1240); -emit_16(1176); -emit_16(1240); -emit_16(1175); -emit_16(1240); -emit_16(1176); -emit_16(1241); -emit_16(1177); -emit_16(1241); -emit_16(1176); -emit_16(1241); -emit_16(1177); -emit_16(1242); -emit_16(1178); -emit_16(1242); -emit_16(1177); -emit_16(1242); -emit_16(1178); -emit_16(1243); -emit_16(1179); -emit_16(1243); -emit_16(1178); -emit_16(1243); -emit_16(1179); -emit_16(1244); -emit_16(1180); -emit_16(1244); -emit_16(1179); -emit_16(1244); -emit_16(1180); -emit_16(1245); -emit_16(1181); -emit_16(1245); -emit_16(1180); -emit_16(1245); -emit_16(1181); -emit_16(1246); -emit_16(1182); -emit_16(1246); -emit_16(1181); -emit_16(1246); -emit_16(1182); -emit_16(1247); -emit_16(1183); -emit_16(1247); -emit_16(1182); -emit_16(1247); -emit_16(1183); -emit_16(1248); -emit_16(1184); -emit_16(1248); -emit_16(1183); -emit_16(1248); -emit_16(1184); -emit_16(1249); -emit_16(1185); -emit_16(1249); -emit_16(1184); -emit_16(1249); -emit_16(1185); -emit_16(1250); -emit_16(1186); -emit_16(1250); -emit_16(1185); -emit_16(1250); -emit_16(1186); -emit_16(1251); -emit_16(1187); -emit_16(1251); -emit_16(1186); -emit_16(1251); -emit_16(1187); -emit_16(1252); -emit_16(1188); -emit_16(1252); -emit_16(1187); -emit_16(1252); -emit_16(1188); -emit_16(1253); -emit_16(1189); -emit_16(1253); -emit_16(1188); -emit_16(1253); -emit_16(1189); -emit_16(1254); -emit_16(1190); -emit_16(1254); -emit_16(1189); -emit_16(1254); -emit_16(1190); -emit_16(1255); -emit_16(1191); -emit_16(1255); -emit_16(1190); -emit_16(1255); -emit_16(1191); -emit_16(1256); -emit_16(1192); -emit_16(1256); -emit_16(1191); -emit_16(1256); -emit_16(1192); -emit_16(1257); -emit_16(1193); -emit_16(1257); -emit_16(1192); -emit_16(1257); -emit_16(1193); -emit_16(1258); -emit_16(1194); -emit_16(1258); -emit_16(1193); -emit_16(1258); -emit_16(1194); -emit_16(1259); -emit_16(1195); -emit_16(1259); -emit_16(1194); -emit_16(1259); -emit_16(1195); -emit_16(1260); -emit_16(1196); -emit_16(1260); -emit_16(1195); -emit_16(1260); -emit_16(1196); -emit_16(1261); -emit_16(1197); -emit_16(1261); -emit_16(1196); -emit_16(1261); -emit_16(1197); -emit_16(1262); -emit_16(1198); -emit_16(1262); -emit_16(1197); -emit_16(1262); -emit_16(1198); -emit_16(1263); -emit_16(1199); -emit_16(1263); -emit_16(1198); -emit_16(1263); -emit_16(1199); -emit_16(1264); -emit_16(1200); -emit_16(1264); -emit_16(1199); -emit_16(1264); -emit_16(1200); -emit_16(1265); -emit_16(1201); -emit_16(1265); -emit_16(1200); -emit_16(1265); -emit_16(1201); -emit_16(1266); -emit_16(1202); -emit_16(1266); -emit_16(1201); -emit_16(1266); -emit_16(1202); -emit_16(1267); -emit_16(1203); -emit_16(1267); -emit_16(1202); -emit_16(1267); -emit_16(1203); -emit_16(1268); -emit_16(1204); -emit_16(1268); -emit_16(1203); -emit_16(1268); -emit_16(1204); -emit_16(1269); -emit_16(1205); -emit_16(1269); -emit_16(1204); -emit_16(1269); -emit_16(1205); -emit_16(1270); -emit_16(1206); -emit_16(1270); -emit_16(1205); -emit_16(1270); -emit_16(1206); -emit_16(1271); -emit_16(1207); -emit_16(1271); -emit_16(1206); -emit_16(1271); -emit_16(1207); -emit_16(1272); -emit_16(1208); -emit_16(1272); -emit_16(1207); -emit_16(1272); -emit_16(1208); -emit_16(1273); -emit_16(1209); -emit_16(1273); -emit_16(1208); -emit_16(1273); -emit_16(1209); -emit_16(1274); -emit_16(1210); -emit_16(1274); -emit_16(1209); -emit_16(1274); -emit_16(1210); -emit_16(1275); -emit_16(1211); -emit_16(1275); -emit_16(1210); -emit_16(1275); -emit_16(1211); -emit_16(1276); -emit_16(1212); -emit_16(1276); -emit_16(1211); -emit_16(1276); -emit_16(1212); -emit_16(1277); -emit_16(1213); -emit_16(1277); -emit_16(1212); -emit_16(1277); -emit_16(1213); -emit_16(1278); -emit_16(1214); -emit_16(1278); -emit_16(1213); -emit_16(1278); -emit_16(1214); -emit_16(1279); -emit_16(1215); -emit_16(1279); -emit_16(1214); -emit_16(1280); -emit_16(1216); -emit_16(1281); -emit_16(1217); -emit_16(1281); -emit_16(1216); -emit_16(1281); -emit_16(1217); -emit_16(1282); -emit_16(1218); -emit_16(1282); -emit_16(1217); -emit_16(1282); -emit_16(1218); -emit_16(1283); -emit_16(1219); -emit_16(1283); -emit_16(1218); -emit_16(1283); -emit_16(1219); -emit_16(1284); -emit_16(1220); -emit_16(1284); -emit_16(1219); -emit_16(1284); -emit_16(1220); -emit_16(1285); -emit_16(1221); -emit_16(1285); -emit_16(1220); -emit_16(1285); -emit_16(1221); -emit_16(1286); -emit_16(1222); -emit_16(1286); -emit_16(1221); -emit_16(1286); -emit_16(1222); -emit_16(1287); -emit_16(1223); -emit_16(1287); -emit_16(1222); -emit_16(1287); -emit_16(1223); -emit_16(1288); -emit_16(1224); -emit_16(1288); -emit_16(1223); -emit_16(1288); -emit_16(1224); -emit_16(1289); -emit_16(1225); -emit_16(1289); -emit_16(1224); -emit_16(1289); -emit_16(1225); -emit_16(1290); -emit_16(1226); -emit_16(1290); -emit_16(1225); -emit_16(1290); -emit_16(1226); -emit_16(1291); -emit_16(1227); -emit_16(1291); -emit_16(1226); -emit_16(1291); -emit_16(1227); -emit_16(1292); -emit_16(1228); -emit_16(1292); -emit_16(1227); -emit_16(1292); -emit_16(1228); -emit_16(1293); -emit_16(1229); -emit_16(1293); -emit_16(1228); -emit_16(1293); -emit_16(1229); -emit_16(1294); -emit_16(1230); -emit_16(1294); -emit_16(1229); -emit_16(1294); -emit_16(1230); -emit_16(1295); -emit_16(1231); -emit_16(1295); -emit_16(1230); -emit_16(1295); -emit_16(1231); -emit_16(1296); -emit_16(1232); -emit_16(1296); -emit_16(1231); -emit_16(1296); -emit_16(1232); -emit_16(1297); -emit_16(1233); -emit_16(1297); -emit_16(1232); -emit_16(1297); -emit_16(1233); -emit_16(1298); -emit_16(1234); -emit_16(1298); -emit_16(1233); -emit_16(1298); -emit_16(1234); -emit_16(1299); -emit_16(1235); -emit_16(1299); -emit_16(1234); -emit_16(1299); -emit_16(1235); -emit_16(1300); -emit_16(1236); -emit_16(1300); -emit_16(1235); -emit_16(1300); -emit_16(1236); -emit_16(1301); -emit_16(1237); -emit_16(1301); -emit_16(1236); -emit_16(1301); -emit_16(1237); -emit_16(1302); -emit_16(1238); -emit_16(1302); -emit_16(1237); -emit_16(1302); -emit_16(1238); -emit_16(1303); -emit_16(1239); -emit_16(1303); -emit_16(1238); -emit_16(1303); -emit_16(1239); -emit_16(1304); -emit_16(1240); -emit_16(1304); -emit_16(1239); -emit_16(1304); -emit_16(1240); -emit_16(1305); -emit_16(1241); -emit_16(1305); -emit_16(1240); -emit_16(1305); -emit_16(1241); -emit_16(1306); -emit_16(1242); -emit_16(1306); -emit_16(1241); -emit_16(1306); -emit_16(1242); -emit_16(1307); -emit_16(1243); -emit_16(1307); -emit_16(1242); -emit_16(1307); -emit_16(1243); -emit_16(1308); -emit_16(1244); -emit_16(1308); -emit_16(1243); -emit_16(1308); -emit_16(1244); -emit_16(1309); -emit_16(1245); -emit_16(1309); -emit_16(1244); -emit_16(1309); -emit_16(1245); -emit_16(1310); -emit_16(1246); -emit_16(1310); -emit_16(1245); -emit_16(1310); -emit_16(1246); -emit_16(1311); -emit_16(1247); -emit_16(1311); -emit_16(1246); -emit_16(1311); -emit_16(1247); -emit_16(1312); -emit_16(1248); -emit_16(1312); -emit_16(1247); -emit_16(1312); -emit_16(1248); -emit_16(1313); -emit_16(1249); -emit_16(1313); -emit_16(1248); -emit_16(1313); -emit_16(1249); -emit_16(1314); -emit_16(1250); -emit_16(1314); -emit_16(1249); -emit_16(1314); -emit_16(1250); -emit_16(1315); -emit_16(1251); -emit_16(1315); -emit_16(1250); -emit_16(1315); -emit_16(1251); -emit_16(1316); -emit_16(1252); -emit_16(1316); -emit_16(1251); -emit_16(1316); -emit_16(1252); -emit_16(1317); -emit_16(1253); -emit_16(1317); -emit_16(1252); -emit_16(1317); -emit_16(1253); -emit_16(1318); -emit_16(1254); -emit_16(1318); -emit_16(1253); -emit_16(1318); -emit_16(1254); -emit_16(1319); -emit_16(1255); -emit_16(1319); -emit_16(1254); -emit_16(1319); -emit_16(1255); -emit_16(1320); -emit_16(1256); -emit_16(1320); -emit_16(1255); -emit_16(1320); -emit_16(1256); -emit_16(1321); -emit_16(1257); -emit_16(1321); -emit_16(1256); -emit_16(1321); -emit_16(1257); -emit_16(1322); -emit_16(1258); -emit_16(1322); -emit_16(1257); -emit_16(1322); -emit_16(1258); -emit_16(1323); -emit_16(1259); -emit_16(1323); -emit_16(1258); -emit_16(1323); -emit_16(1259); -emit_16(1324); -emit_16(1260); -emit_16(1324); -emit_16(1259); -emit_16(1324); -emit_16(1260); -emit_16(1325); -emit_16(1261); -emit_16(1325); -emit_16(1260); -emit_16(1325); -emit_16(1261); -emit_16(1326); -emit_16(1262); -emit_16(1326); -emit_16(1261); -emit_16(1326); -emit_16(1262); -emit_16(1327); -emit_16(1263); -emit_16(1327); -emit_16(1262); -emit_16(1327); -emit_16(1263); -emit_16(1328); -emit_16(1264); -emit_16(1328); -emit_16(1263); -emit_16(1328); -emit_16(1264); -emit_16(1329); -emit_16(1265); -emit_16(1329); -emit_16(1264); -emit_16(1329); -emit_16(1265); -emit_16(1330); -emit_16(1266); -emit_16(1330); -emit_16(1265); -emit_16(1330); -emit_16(1266); -emit_16(1331); -emit_16(1267); -emit_16(1331); -emit_16(1266); -emit_16(1331); -emit_16(1267); -emit_16(1332); -emit_16(1268); -emit_16(1332); -emit_16(1267); -emit_16(1332); -emit_16(1268); -emit_16(1333); -emit_16(1269); -emit_16(1333); -emit_16(1268); -emit_16(1333); -emit_16(1269); -emit_16(1334); -emit_16(1270); -emit_16(1334); -emit_16(1269); -emit_16(1334); -emit_16(1270); -emit_16(1335); -emit_16(1271); -emit_16(1335); -emit_16(1270); -emit_16(1335); -emit_16(1271); -emit_16(1336); -emit_16(1272); -emit_16(1336); -emit_16(1271); -emit_16(1336); -emit_16(1272); -emit_16(1337); -emit_16(1273); -emit_16(1337); -emit_16(1272); -emit_16(1337); -emit_16(1273); -emit_16(1338); -emit_16(1274); -emit_16(1338); -emit_16(1273); -emit_16(1338); -emit_16(1274); -emit_16(1339); -emit_16(1275); -emit_16(1339); -emit_16(1274); -emit_16(1339); -emit_16(1275); -emit_16(1340); -emit_16(1276); -emit_16(1340); -emit_16(1275); -emit_16(1340); -emit_16(1276); -emit_16(1341); -emit_16(1277); -emit_16(1341); -emit_16(1276); -emit_16(1341); -emit_16(1277); -emit_16(1342); -emit_16(1278); -emit_16(1342); -emit_16(1277); -emit_16(1342); -emit_16(1278); -emit_16(1343); -emit_16(1279); -emit_16(1343); -emit_16(1278); -emit_16(1344); -emit_16(1280); -emit_16(1345); -emit_16(1281); -emit_16(1345); -emit_16(1280); -emit_16(1345); -emit_16(1281); -emit_16(1346); -emit_16(1282); -emit_16(1346); -emit_16(1281); -emit_16(1346); -emit_16(1282); -emit_16(1347); -emit_16(1283); -emit_16(1347); -emit_16(1282); -emit_16(1347); -emit_16(1283); -emit_16(1348); -emit_16(1284); -emit_16(1348); -emit_16(1283); -emit_16(1348); -emit_16(1284); -emit_16(1349); -emit_16(1285); -emit_16(1349); -emit_16(1284); -emit_16(1349); -emit_16(1285); -emit_16(1350); -emit_16(1286); -emit_16(1350); -emit_16(1285); -emit_16(1350); -emit_16(1286); -emit_16(1351); -emit_16(1287); -emit_16(1351); -emit_16(1286); -emit_16(1351); -emit_16(1287); -emit_16(1352); -emit_16(1288); -emit_16(1352); -emit_16(1287); -emit_16(1352); -emit_16(1288); -emit_16(1353); -emit_16(1289); -emit_16(1353); -emit_16(1288); -emit_16(1353); -emit_16(1289); -emit_16(1354); -emit_16(1290); -emit_16(1354); -emit_16(1289); -emit_16(1354); -emit_16(1290); -emit_16(1355); -emit_16(1291); -emit_16(1355); -emit_16(1290); -emit_16(1355); -emit_16(1291); -emit_16(1356); -emit_16(1292); -emit_16(1356); -emit_16(1291); -emit_16(1356); -emit_16(1292); -emit_16(1357); -emit_16(1293); -emit_16(1357); -emit_16(1292); -emit_16(1357); -emit_16(1293); -emit_16(1358); -emit_16(1294); -emit_16(1358); -emit_16(1293); -emit_16(1358); -emit_16(1294); -emit_16(1359); -emit_16(1295); -emit_16(1359); -emit_16(1294); -emit_16(1359); -emit_16(1295); -emit_16(1360); -emit_16(1296); -emit_16(1360); -emit_16(1295); -emit_16(1360); -emit_16(1296); -emit_16(1361); -emit_16(1297); -emit_16(1361); -emit_16(1296); -emit_16(1361); -emit_16(1297); -emit_16(1362); -emit_16(1298); -emit_16(1362); -emit_16(1297); -emit_16(1362); -emit_16(1298); -emit_16(1363); -emit_16(1299); -emit_16(1363); -emit_16(1298); -emit_16(1363); -emit_16(1299); -emit_16(1364); -emit_16(1300); -emit_16(1364); -emit_16(1299); -emit_16(1364); -emit_16(1300); -emit_16(1365); -emit_16(1301); -emit_16(1365); -emit_16(1300); -emit_16(1365); -emit_16(1301); -emit_16(1366); -emit_16(1302); -emit_16(1366); -emit_16(1301); -emit_16(1366); -emit_16(1302); -emit_16(1367); -emit_16(1303); -emit_16(1367); -emit_16(1302); -emit_16(1367); -emit_16(1303); -emit_16(1368); -emit_16(1304); -emit_16(1368); -emit_16(1303); -emit_16(1368); -emit_16(1304); -emit_16(1369); -emit_16(1305); -emit_16(1369); -emit_16(1304); -emit_16(1369); -emit_16(1305); -emit_16(1370); -emit_16(1306); -emit_16(1370); -emit_16(1305); -emit_16(1370); -emit_16(1306); -emit_16(1371); -emit_16(1307); -emit_16(1371); -emit_16(1306); -emit_16(1371); -emit_16(1307); -emit_16(1372); -emit_16(1308); -emit_16(1372); -emit_16(1307); -emit_16(1372); -emit_16(1308); -emit_16(1373); -emit_16(1309); -emit_16(1373); -emit_16(1308); -emit_16(1373); -emit_16(1309); -emit_16(1374); -emit_16(1310); -emit_16(1374); -emit_16(1309); -emit_16(1374); -emit_16(1310); -emit_16(1375); -emit_16(1311); -emit_16(1375); -emit_16(1310); -emit_16(1375); -emit_16(1311); -emit_16(1376); -emit_16(1312); -emit_16(1376); -emit_16(1311); -emit_16(1376); -emit_16(1312); -emit_16(1377); -emit_16(1313); -emit_16(1377); -emit_16(1312); -emit_16(1377); -emit_16(1313); -emit_16(1378); -emit_16(1314); -emit_16(1378); -emit_16(1313); -emit_16(1378); -emit_16(1314); -emit_16(1379); -emit_16(1315); -emit_16(1379); -emit_16(1314); -emit_16(1379); -emit_16(1315); -emit_16(1380); -emit_16(1316); -emit_16(1380); -emit_16(1315); -emit_16(1380); -emit_16(1316); -emit_16(1381); -emit_16(1317); -emit_16(1381); -emit_16(1316); -emit_16(1381); -emit_16(1317); -emit_16(1382); -emit_16(1318); -emit_16(1382); -emit_16(1317); -emit_16(1382); -emit_16(1318); -emit_16(1383); -emit_16(1319); -emit_16(1383); -emit_16(1318); -emit_16(1383); -emit_16(1319); -emit_16(1384); -emit_16(1320); -emit_16(1384); -emit_16(1319); -emit_16(1384); -emit_16(1320); -emit_16(1385); -emit_16(1321); -emit_16(1385); -emit_16(1320); -emit_16(1385); -emit_16(1321); -emit_16(1386); -emit_16(1322); -emit_16(1386); -emit_16(1321); -emit_16(1386); -emit_16(1322); -emit_16(1387); -emit_16(1323); -emit_16(1387); -emit_16(1322); -emit_16(1387); -emit_16(1323); -emit_16(1388); -emit_16(1324); -emit_16(1388); -emit_16(1323); -emit_16(1388); -emit_16(1324); -emit_16(1389); -emit_16(1325); -emit_16(1389); -emit_16(1324); -emit_16(1389); -emit_16(1325); -emit_16(1390); -emit_16(1326); -emit_16(1390); -emit_16(1325); -emit_16(1390); -emit_16(1326); -emit_16(1391); -emit_16(1327); -emit_16(1391); -emit_16(1326); -emit_16(1391); -emit_16(1327); -emit_16(1392); -emit_16(1328); -emit_16(1392); -emit_16(1327); -emit_16(1392); -emit_16(1328); -emit_16(1393); -emit_16(1329); -emit_16(1393); -emit_16(1328); -emit_16(1393); -emit_16(1329); -emit_16(1394); -emit_16(1330); -emit_16(1394); -emit_16(1329); -emit_16(1394); -emit_16(1330); -emit_16(1395); -emit_16(1331); -emit_16(1395); -emit_16(1330); -emit_16(1395); -emit_16(1331); -emit_16(1396); -emit_16(1332); -emit_16(1396); -emit_16(1331); -emit_16(1396); -emit_16(1332); -emit_16(1397); -emit_16(1333); -emit_16(1397); -emit_16(1332); -emit_16(1397); -emit_16(1333); -emit_16(1398); -emit_16(1334); -emit_16(1398); -emit_16(1333); -emit_16(1398); -emit_16(1334); -emit_16(1399); -emit_16(1335); -emit_16(1399); -emit_16(1334); -emit_16(1399); -emit_16(1335); -emit_16(1400); -emit_16(1336); -emit_16(1400); -emit_16(1335); -emit_16(1400); -emit_16(1336); -emit_16(1401); -emit_16(1337); -emit_16(1401); -emit_16(1336); -emit_16(1401); -emit_16(1337); -emit_16(1402); -emit_16(1338); -emit_16(1402); -emit_16(1337); -emit_16(1402); -emit_16(1338); -emit_16(1403); -emit_16(1339); -emit_16(1403); -emit_16(1338); -emit_16(1403); -emit_16(1339); -emit_16(1404); -emit_16(1340); -emit_16(1404); -emit_16(1339); -emit_16(1404); -emit_16(1340); -emit_16(1405); -emit_16(1341); -emit_16(1405); -emit_16(1340); -emit_16(1405); -emit_16(1341); -emit_16(1406); -emit_16(1342); -emit_16(1406); -emit_16(1341); -emit_16(1406); -emit_16(1342); -emit_16(1407); -emit_16(1343); -emit_16(1407); -emit_16(1342); -emit_16(1408); -emit_16(1344); -emit_16(1409); -emit_16(1345); -emit_16(1409); -emit_16(1344); -emit_16(1409); -emit_16(1345); -emit_16(1410); -emit_16(1346); -emit_16(1410); -emit_16(1345); -emit_16(1410); -emit_16(1346); -emit_16(1411); -emit_16(1347); -emit_16(1411); -emit_16(1346); -emit_16(1411); -emit_16(1347); -emit_16(1412); -emit_16(1348); -emit_16(1412); -emit_16(1347); -emit_16(1412); -emit_16(1348); -emit_16(1413); -emit_16(1349); -emit_16(1413); -emit_16(1348); -emit_16(1413); -emit_16(1349); -emit_16(1414); -emit_16(1350); -emit_16(1414); -emit_16(1349); -emit_16(1414); -emit_16(1350); -emit_16(1415); -emit_16(1351); -emit_16(1415); -emit_16(1350); -emit_16(1415); -emit_16(1351); -emit_16(1416); -emit_16(1352); -emit_16(1416); -emit_16(1351); -emit_16(1416); -emit_16(1352); -emit_16(1417); -emit_16(1353); -emit_16(1417); -emit_16(1352); -emit_16(1417); -emit_16(1353); -emit_16(1418); -emit_16(1354); -emit_16(1418); -emit_16(1353); -emit_16(1418); -emit_16(1354); -emit_16(1419); -emit_16(1355); -emit_16(1419); -emit_16(1354); -emit_16(1419); -emit_16(1355); -emit_16(1420); -emit_16(1356); -emit_16(1420); -emit_16(1355); -emit_16(1420); -emit_16(1356); -emit_16(1421); -emit_16(1357); -emit_16(1421); -emit_16(1356); -emit_16(1421); -emit_16(1357); -emit_16(1422); -emit_16(1358); -emit_16(1422); -emit_16(1357); -emit_16(1422); -emit_16(1358); -emit_16(1423); -emit_16(1359); -emit_16(1423); -emit_16(1358); -emit_16(1423); -emit_16(1359); -emit_16(1424); -emit_16(1360); -emit_16(1424); -emit_16(1359); -emit_16(1424); -emit_16(1360); -emit_16(1425); -emit_16(1361); -emit_16(1425); -emit_16(1360); -emit_16(1425); -emit_16(1361); -emit_16(1426); -emit_16(1362); -emit_16(1426); -emit_16(1361); -emit_16(1426); -emit_16(1362); -emit_16(1427); -emit_16(1363); -emit_16(1427); -emit_16(1362); -emit_16(1427); -emit_16(1363); -emit_16(1428); -emit_16(1364); -emit_16(1428); -emit_16(1363); -emit_16(1428); -emit_16(1364); -emit_16(1429); -emit_16(1365); -emit_16(1429); -emit_16(1364); -emit_16(1429); -emit_16(1365); -emit_16(1430); -emit_16(1366); -emit_16(1430); -emit_16(1365); -emit_16(1430); -emit_16(1366); -emit_16(1431); -emit_16(1367); -emit_16(1431); -emit_16(1366); -emit_16(1431); -emit_16(1367); -emit_16(1432); -emit_16(1368); -emit_16(1432); -emit_16(1367); -emit_16(1432); -emit_16(1368); -emit_16(1433); -emit_16(1369); -emit_16(1433); -emit_16(1368); -emit_16(1433); -emit_16(1369); -emit_16(1434); -emit_16(1370); -emit_16(1434); -emit_16(1369); -emit_16(1434); -emit_16(1370); -emit_16(1435); -emit_16(1371); -emit_16(1435); -emit_16(1370); -emit_16(1435); -emit_16(1371); -emit_16(1436); -emit_16(1372); -emit_16(1436); -emit_16(1371); -emit_16(1436); -emit_16(1372); -emit_16(1437); -emit_16(1373); -emit_16(1437); -emit_16(1372); -emit_16(1437); -emit_16(1373); -emit_16(1438); -emit_16(1374); -emit_16(1438); -emit_16(1373); -emit_16(1438); -emit_16(1374); -emit_16(1439); -emit_16(1375); -emit_16(1439); -emit_16(1374); -emit_16(1439); -emit_16(1375); -emit_16(1440); -emit_16(1376); -emit_16(1440); -emit_16(1375); -emit_16(1440); -emit_16(1376); -emit_16(1441); -emit_16(1377); -emit_16(1441); -emit_16(1376); -emit_16(1441); -emit_16(1377); -emit_16(1442); -emit_16(1378); -emit_16(1442); -emit_16(1377); -emit_16(1442); -emit_16(1378); -emit_16(1443); -emit_16(1379); -emit_16(1443); -emit_16(1378); -emit_16(1443); -emit_16(1379); -emit_16(1444); -emit_16(1380); -emit_16(1444); -emit_16(1379); -emit_16(1444); -emit_16(1380); -emit_16(1445); -emit_16(1381); -emit_16(1445); -emit_16(1380); -emit_16(1445); -emit_16(1381); -emit_16(1446); -emit_16(1382); -emit_16(1446); -emit_16(1381); -emit_16(1446); -emit_16(1382); -emit_16(1447); -emit_16(1383); -emit_16(1447); -emit_16(1382); -emit_16(1447); -emit_16(1383); -emit_16(1448); -emit_16(1384); -emit_16(1448); -emit_16(1383); -emit_16(1448); -emit_16(1384); -emit_16(1449); -emit_16(1385); -emit_16(1449); -emit_16(1384); -emit_16(1449); -emit_16(1385); -emit_16(1450); -emit_16(1386); -emit_16(1450); -emit_16(1385); -emit_16(1450); -emit_16(1386); -emit_16(1451); -emit_16(1387); -emit_16(1451); -emit_16(1386); -emit_16(1451); -emit_16(1387); -emit_16(1452); -emit_16(1388); -emit_16(1452); -emit_16(1387); -emit_16(1452); -emit_16(1388); -emit_16(1453); -emit_16(1389); -emit_16(1453); -emit_16(1388); -emit_16(1453); -emit_16(1389); -emit_16(1454); -emit_16(1390); -emit_16(1454); -emit_16(1389); -emit_16(1454); -emit_16(1390); -emit_16(1455); -emit_16(1391); -emit_16(1455); -emit_16(1390); -emit_16(1455); -emit_16(1391); -emit_16(1456); -emit_16(1392); -emit_16(1456); -emit_16(1391); -emit_16(1456); -emit_16(1392); -emit_16(1457); -emit_16(1393); -emit_16(1457); -emit_16(1392); -emit_16(1457); -emit_16(1393); -emit_16(1458); -emit_16(1394); -emit_16(1458); -emit_16(1393); -emit_16(1458); -emit_16(1394); -emit_16(1459); -emit_16(1395); -emit_16(1459); -emit_16(1394); -emit_16(1459); -emit_16(1395); -emit_16(1460); -emit_16(1396); -emit_16(1460); -emit_16(1395); -emit_16(1460); -emit_16(1396); -emit_16(1461); -emit_16(1397); -emit_16(1461); -emit_16(1396); -emit_16(1461); -emit_16(1397); -emit_16(1462); -emit_16(1398); -emit_16(1462); -emit_16(1397); -emit_16(1462); -emit_16(1398); -emit_16(1463); -emit_16(1399); -emit_16(1463); -emit_16(1398); -emit_16(1463); -emit_16(1399); -emit_16(1464); -emit_16(1400); -emit_16(1464); -emit_16(1399); -emit_16(1464); -emit_16(1400); -emit_16(1465); -emit_16(1401); -emit_16(1465); -emit_16(1400); -emit_16(1465); -emit_16(1401); -emit_16(1466); -emit_16(1402); -emit_16(1466); -emit_16(1401); -emit_16(1466); -emit_16(1402); -emit_16(1467); -emit_16(1403); -emit_16(1467); -emit_16(1402); -emit_16(1467); -emit_16(1403); -emit_16(1468); -emit_16(1404); -emit_16(1468); -emit_16(1403); -emit_16(1468); -emit_16(1404); -emit_16(1469); -emit_16(1405); -emit_16(1469); -emit_16(1404); -emit_16(1469); -emit_16(1405); -emit_16(1470); -emit_16(1406); -emit_16(1470); -emit_16(1405); -emit_16(1470); -emit_16(1406); -emit_16(1471); -emit_16(1407); -emit_16(1471); -emit_16(1406); -emit_16(1472); -emit_16(1408); -emit_16(1473); -emit_16(1409); -emit_16(1473); -emit_16(1408); -emit_16(1473); -emit_16(1409); -emit_16(1474); -emit_16(1410); -emit_16(1474); -emit_16(1409); -emit_16(1474); -emit_16(1410); -emit_16(1475); -emit_16(1411); -emit_16(1475); -emit_16(1410); -emit_16(1475); -emit_16(1411); -emit_16(1476); -emit_16(1412); -emit_16(1476); -emit_16(1411); -emit_16(1476); -emit_16(1412); -emit_16(1477); -emit_16(1413); -emit_16(1477); -emit_16(1412); -emit_16(1477); -emit_16(1413); -emit_16(1478); -emit_16(1414); -emit_16(1478); -emit_16(1413); -emit_16(1478); -emit_16(1414); -emit_16(1479); -emit_16(1415); -emit_16(1479); -emit_16(1414); -emit_16(1479); -emit_16(1415); -emit_16(1480); -emit_16(1416); -emit_16(1480); -emit_16(1415); -emit_16(1480); -emit_16(1416); -emit_16(1481); -emit_16(1417); -emit_16(1481); -emit_16(1416); -emit_16(1481); -emit_16(1417); -emit_16(1482); -emit_16(1418); -emit_16(1482); -emit_16(1417); -emit_16(1482); -emit_16(1418); -emit_16(1483); -emit_16(1419); -emit_16(1483); -emit_16(1418); -emit_16(1483); -emit_16(1419); -emit_16(1484); -emit_16(1420); -emit_16(1484); -emit_16(1419); -emit_16(1484); -emit_16(1420); -emit_16(1485); -emit_16(1421); -emit_16(1485); -emit_16(1420); -emit_16(1485); -emit_16(1421); -emit_16(1486); -emit_16(1422); -emit_16(1486); -emit_16(1421); -emit_16(1486); -emit_16(1422); -emit_16(1487); -emit_16(1423); -emit_16(1487); -emit_16(1422); -emit_16(1487); -emit_16(1423); -emit_16(1488); -emit_16(1424); -emit_16(1488); -emit_16(1423); -emit_16(1488); -emit_16(1424); -emit_16(1489); -emit_16(1425); -emit_16(1489); -emit_16(1424); -emit_16(1489); -emit_16(1425); -emit_16(1490); -emit_16(1426); -emit_16(1490); -emit_16(1425); -emit_16(1490); -emit_16(1426); -emit_16(1491); -emit_16(1427); -emit_16(1491); -emit_16(1426); -emit_16(1491); -emit_16(1427); -emit_16(1492); -emit_16(1428); -emit_16(1492); -emit_16(1427); -emit_16(1492); -emit_16(1428); -emit_16(1493); -emit_16(1429); -emit_16(1493); -emit_16(1428); -emit_16(1493); -emit_16(1429); -emit_16(1494); -emit_16(1430); -emit_16(1494); -emit_16(1429); -emit_16(1494); -emit_16(1430); -emit_16(1495); -emit_16(1431); -emit_16(1495); -emit_16(1430); -emit_16(1495); -emit_16(1431); -emit_16(1496); -emit_16(1432); -emit_16(1496); -emit_16(1431); -emit_16(1496); -emit_16(1432); -emit_16(1497); -emit_16(1433); -emit_16(1497); -emit_16(1432); -emit_16(1497); -emit_16(1433); -emit_16(1498); -emit_16(1434); -emit_16(1498); -emit_16(1433); -emit_16(1498); -emit_16(1434); -emit_16(1499); -emit_16(1435); -emit_16(1499); -emit_16(1434); -emit_16(1499); -emit_16(1435); -emit_16(1500); -emit_16(1436); -emit_16(1500); -emit_16(1435); -emit_16(1500); -emit_16(1436); -emit_16(1501); -emit_16(1437); -emit_16(1501); -emit_16(1436); -emit_16(1501); -emit_16(1437); -emit_16(1502); -emit_16(1438); -emit_16(1502); -emit_16(1437); -emit_16(1502); -emit_16(1438); -emit_16(1503); -emit_16(1439); -emit_16(1503); -emit_16(1438); -emit_16(1503); -emit_16(1439); -emit_16(1504); -emit_16(1440); -emit_16(1504); -emit_16(1439); -emit_16(1504); -emit_16(1440); -emit_16(1505); -emit_16(1441); -emit_16(1505); -emit_16(1440); -emit_16(1505); -emit_16(1441); -emit_16(1506); -emit_16(1442); -emit_16(1506); -emit_16(1441); -emit_16(1506); -emit_16(1442); -emit_16(1507); -emit_16(1443); -emit_16(1507); -emit_16(1442); -emit_16(1507); -emit_16(1443); -emit_16(1508); -emit_16(1444); -emit_16(1508); -emit_16(1443); -emit_16(1508); -emit_16(1444); -emit_16(1509); -emit_16(1445); -emit_16(1509); -emit_16(1444); -emit_16(1509); -emit_16(1445); -emit_16(1510); -emit_16(1446); -emit_16(1510); -emit_16(1445); -emit_16(1510); -emit_16(1446); -emit_16(1511); -emit_16(1447); -emit_16(1511); -emit_16(1446); -emit_16(1511); -emit_16(1447); -emit_16(1512); -emit_16(1448); -emit_16(1512); -emit_16(1447); -emit_16(1512); -emit_16(1448); -emit_16(1513); -emit_16(1449); -emit_16(1513); -emit_16(1448); -emit_16(1513); -emit_16(1449); -emit_16(1514); -emit_16(1450); -emit_16(1514); -emit_16(1449); -emit_16(1514); -emit_16(1450); -emit_16(1515); -emit_16(1451); -emit_16(1515); -emit_16(1450); -emit_16(1515); -emit_16(1451); -emit_16(1516); -emit_16(1452); -emit_16(1516); -emit_16(1451); -emit_16(1516); -emit_16(1452); -emit_16(1517); -emit_16(1453); -emit_16(1517); -emit_16(1452); -emit_16(1517); -emit_16(1453); -emit_16(1518); -emit_16(1454); -emit_16(1518); -emit_16(1453); -emit_16(1518); -emit_16(1454); -emit_16(1519); -emit_16(1455); -emit_16(1519); -emit_16(1454); -emit_16(1519); -emit_16(1455); -emit_16(1520); -emit_16(1456); -emit_16(1520); -emit_16(1455); -emit_16(1520); -emit_16(1456); -emit_16(1521); -emit_16(1457); -emit_16(1521); -emit_16(1456); -emit_16(1521); -emit_16(1457); -emit_16(1522); -emit_16(1458); -emit_16(1522); -emit_16(1457); -emit_16(1522); -emit_16(1458); -emit_16(1523); -emit_16(1459); -emit_16(1523); -emit_16(1458); -emit_16(1523); -emit_16(1459); -emit_16(1524); -emit_16(1460); -emit_16(1524); -emit_16(1459); -emit_16(1524); -emit_16(1460); -emit_16(1525); -emit_16(1461); -emit_16(1525); -emit_16(1460); -emit_16(1525); -emit_16(1461); -emit_16(1526); -emit_16(1462); -emit_16(1526); -emit_16(1461); -emit_16(1526); -emit_16(1462); -emit_16(1527); -emit_16(1463); -emit_16(1527); -emit_16(1462); -emit_16(1527); -emit_16(1463); -emit_16(1528); -emit_16(1464); -emit_16(1528); -emit_16(1463); -emit_16(1528); -emit_16(1464); -emit_16(1529); -emit_16(1465); -emit_16(1529); -emit_16(1464); -emit_16(1529); -emit_16(1465); -emit_16(1530); -emit_16(1466); -emit_16(1530); -emit_16(1465); -emit_16(1530); -emit_16(1466); -emit_16(1531); -emit_16(1467); -emit_16(1531); -emit_16(1466); -emit_16(1531); -emit_16(1467); -emit_16(1532); -emit_16(1468); -emit_16(1532); -emit_16(1467); -emit_16(1532); -emit_16(1468); -emit_16(1533); -emit_16(1469); -emit_16(1533); -emit_16(1468); -emit_16(1533); -emit_16(1469); -emit_16(1534); -emit_16(1470); -emit_16(1534); -emit_16(1469); -emit_16(1534); -emit_16(1470); -emit_16(1535); -emit_16(1471); -emit_16(1535); -emit_16(1470); -emit_16(1536); -emit_16(1472); -emit_16(1537); -emit_16(1473); -emit_16(1537); -emit_16(1472); -emit_16(1537); -emit_16(1473); -emit_16(1538); -emit_16(1474); -emit_16(1538); -emit_16(1473); -emit_16(1538); -emit_16(1474); -emit_16(1539); -emit_16(1475); -emit_16(1539); -emit_16(1474); -emit_16(1539); -emit_16(1475); -emit_16(1540); -emit_16(1476); -emit_16(1540); -emit_16(1475); -emit_16(1540); -emit_16(1476); -emit_16(1541); -emit_16(1477); -emit_16(1541); -emit_16(1476); -emit_16(1541); -emit_16(1477); -emit_16(1542); -emit_16(1478); -emit_16(1542); -emit_16(1477); -emit_16(1542); -emit_16(1478); -emit_16(1543); -emit_16(1479); -emit_16(1543); -emit_16(1478); -emit_16(1543); -emit_16(1479); -emit_16(1544); -emit_16(1480); -emit_16(1544); -emit_16(1479); -emit_16(1544); -emit_16(1480); -emit_16(1545); -emit_16(1481); -emit_16(1545); -emit_16(1480); -emit_16(1545); -emit_16(1481); -emit_16(1546); -emit_16(1482); -emit_16(1546); -emit_16(1481); -emit_16(1546); -emit_16(1482); -emit_16(1547); -emit_16(1483); -emit_16(1547); -emit_16(1482); -emit_16(1547); -emit_16(1483); -emit_16(1548); -emit_16(1484); -emit_16(1548); -emit_16(1483); -emit_16(1548); -emit_16(1484); -emit_16(1549); -emit_16(1485); -emit_16(1549); -emit_16(1484); -emit_16(1549); -emit_16(1485); -emit_16(1550); -emit_16(1486); -emit_16(1550); -emit_16(1485); -emit_16(1550); -emit_16(1486); -emit_16(1551); -emit_16(1487); -emit_16(1551); -emit_16(1486); -emit_16(1551); -emit_16(1487); -emit_16(1552); -emit_16(1488); -emit_16(1552); -emit_16(1487); -emit_16(1552); -emit_16(1488); -emit_16(1553); -emit_16(1489); -emit_16(1553); -emit_16(1488); -emit_16(1553); -emit_16(1489); -emit_16(1554); -emit_16(1490); -emit_16(1554); -emit_16(1489); -emit_16(1554); -emit_16(1490); -emit_16(1555); -emit_16(1491); -emit_16(1555); -emit_16(1490); -emit_16(1555); -emit_16(1491); -emit_16(1556); -emit_16(1492); -emit_16(1556); -emit_16(1491); -emit_16(1556); -emit_16(1492); -emit_16(1557); -emit_16(1493); -emit_16(1557); -emit_16(1492); -emit_16(1557); -emit_16(1493); -emit_16(1558); -emit_16(1494); -emit_16(1558); -emit_16(1493); -emit_16(1558); -emit_16(1494); -emit_16(1559); -emit_16(1495); -emit_16(1559); -emit_16(1494); -emit_16(1559); -emit_16(1495); -emit_16(1560); -emit_16(1496); -emit_16(1560); -emit_16(1495); -emit_16(1560); -emit_16(1496); -emit_16(1561); -emit_16(1497); -emit_16(1561); -emit_16(1496); -emit_16(1561); -emit_16(1497); -emit_16(1562); -emit_16(1498); -emit_16(1562); -emit_16(1497); -emit_16(1562); -emit_16(1498); -emit_16(1563); -emit_16(1499); -emit_16(1563); -emit_16(1498); -emit_16(1563); -emit_16(1499); -emit_16(1564); -emit_16(1500); -emit_16(1564); -emit_16(1499); -emit_16(1564); -emit_16(1500); -emit_16(1565); -emit_16(1501); -emit_16(1565); -emit_16(1500); -emit_16(1565); -emit_16(1501); -emit_16(1566); -emit_16(1502); -emit_16(1566); -emit_16(1501); -emit_16(1566); -emit_16(1502); -emit_16(1567); -emit_16(1503); -emit_16(1567); -emit_16(1502); -emit_16(1567); -emit_16(1503); -emit_16(1568); -emit_16(1504); -emit_16(1568); -emit_16(1503); -emit_16(1568); -emit_16(1504); -emit_16(1569); -emit_16(1505); -emit_16(1569); -emit_16(1504); -emit_16(1569); -emit_16(1505); -emit_16(1570); -emit_16(1506); -emit_16(1570); -emit_16(1505); -emit_16(1570); -emit_16(1506); -emit_16(1571); -emit_16(1507); -emit_16(1571); -emit_16(1506); -emit_16(1571); -emit_16(1507); -emit_16(1572); -emit_16(1508); -emit_16(1572); -emit_16(1507); -emit_16(1572); -emit_16(1508); -emit_16(1573); -emit_16(1509); -emit_16(1573); -emit_16(1508); -emit_16(1573); -emit_16(1509); -emit_16(1574); -emit_16(1510); -emit_16(1574); -emit_16(1509); -emit_16(1574); -emit_16(1510); -emit_16(1575); -emit_16(1511); -emit_16(1575); -emit_16(1510); -emit_16(1575); -emit_16(1511); -emit_16(1576); -emit_16(1512); -emit_16(1576); -emit_16(1511); -emit_16(1576); -emit_16(1512); -emit_16(1577); -emit_16(1513); -emit_16(1577); -emit_16(1512); -emit_16(1577); -emit_16(1513); -emit_16(1578); -emit_16(1514); -emit_16(1578); -emit_16(1513); -emit_16(1578); -emit_16(1514); -emit_16(1579); -emit_16(1515); -emit_16(1579); -emit_16(1514); -emit_16(1579); -emit_16(1515); -emit_16(1580); -emit_16(1516); -emit_16(1580); -emit_16(1515); -emit_16(1580); -emit_16(1516); -emit_16(1581); -emit_16(1517); -emit_16(1581); -emit_16(1516); -emit_16(1581); -emit_16(1517); -emit_16(1582); -emit_16(1518); -emit_16(1582); -emit_16(1517); -emit_16(1582); -emit_16(1518); -emit_16(1583); -emit_16(1519); -emit_16(1583); -emit_16(1518); -emit_16(1583); -emit_16(1519); -emit_16(1584); -emit_16(1520); -emit_16(1584); -emit_16(1519); -emit_16(1584); -emit_16(1520); -emit_16(1585); -emit_16(1521); -emit_16(1585); -emit_16(1520); -emit_16(1585); -emit_16(1521); -emit_16(1586); -emit_16(1522); -emit_16(1586); -emit_16(1521); -emit_16(1586); -emit_16(1522); -emit_16(1587); -emit_16(1523); -emit_16(1587); -emit_16(1522); -emit_16(1587); -emit_16(1523); -emit_16(1588); -emit_16(1524); -emit_16(1588); -emit_16(1523); -emit_16(1588); -emit_16(1524); -emit_16(1589); -emit_16(1525); -emit_16(1589); -emit_16(1524); -emit_16(1589); -emit_16(1525); -emit_16(1590); -emit_16(1526); -emit_16(1590); -emit_16(1525); -emit_16(1590); -emit_16(1526); -emit_16(1591); -emit_16(1527); -emit_16(1591); -emit_16(1526); -emit_16(1591); -emit_16(1527); -emit_16(1592); -emit_16(1528); -emit_16(1592); -emit_16(1527); -emit_16(1592); -emit_16(1528); -emit_16(1593); -emit_16(1529); -emit_16(1593); -emit_16(1528); -emit_16(1593); -emit_16(1529); -emit_16(1594); -emit_16(1530); -emit_16(1594); -emit_16(1529); -emit_16(1594); -emit_16(1530); -emit_16(1595); -emit_16(1531); -emit_16(1595); -emit_16(1530); -emit_16(1595); -emit_16(1531); -emit_16(1596); -emit_16(1532); -emit_16(1596); -emit_16(1531); -emit_16(1596); -emit_16(1532); -emit_16(1597); -emit_16(1533); -emit_16(1597); -emit_16(1532); -emit_16(1597); -emit_16(1533); -emit_16(1598); -emit_16(1534); -emit_16(1598); -emit_16(1533); -emit_16(1598); -emit_16(1534); -emit_16(1599); -emit_16(1535); -emit_16(1599); -emit_16(1534); -emit_16(1600); -emit_16(1536); -emit_16(1601); -emit_16(1537); -emit_16(1601); -emit_16(1536); -emit_16(1601); -emit_16(1537); -emit_16(1602); -emit_16(1538); -emit_16(1602); -emit_16(1537); -emit_16(1602); -emit_16(1538); -emit_16(1603); -emit_16(1539); -emit_16(1603); -emit_16(1538); -emit_16(1603); -emit_16(1539); -emit_16(1604); -emit_16(1540); -emit_16(1604); -emit_16(1539); -emit_16(1604); -emit_16(1540); -emit_16(1605); -emit_16(1541); -emit_16(1605); -emit_16(1540); -emit_16(1605); -emit_16(1541); -emit_16(1606); -emit_16(1542); -emit_16(1606); -emit_16(1541); -emit_16(1606); -emit_16(1542); -emit_16(1607); -emit_16(1543); -emit_16(1607); -emit_16(1542); -emit_16(1607); -emit_16(1543); -emit_16(1608); -emit_16(1544); -emit_16(1608); -emit_16(1543); -emit_16(1608); -emit_16(1544); -emit_16(1609); -emit_16(1545); -emit_16(1609); -emit_16(1544); -emit_16(1609); -emit_16(1545); -emit_16(1610); -emit_16(1546); -emit_16(1610); -emit_16(1545); -emit_16(1610); -emit_16(1546); -emit_16(1611); -emit_16(1547); -emit_16(1611); -emit_16(1546); -emit_16(1611); -emit_16(1547); -emit_16(1612); -emit_16(1548); -emit_16(1612); -emit_16(1547); -emit_16(1612); -emit_16(1548); -emit_16(1613); -emit_16(1549); -emit_16(1613); -emit_16(1548); -emit_16(1613); -emit_16(1549); -emit_16(1614); -emit_16(1550); -emit_16(1614); -emit_16(1549); -emit_16(1614); -emit_16(1550); -emit_16(1615); -emit_16(1551); -emit_16(1615); -emit_16(1550); -emit_16(1615); -emit_16(1551); -emit_16(1616); -emit_16(1552); -emit_16(1616); -emit_16(1551); -emit_16(1616); -emit_16(1552); -emit_16(1617); -emit_16(1553); -emit_16(1617); -emit_16(1552); -emit_16(1617); -emit_16(1553); -emit_16(1618); -emit_16(1554); -emit_16(1618); -emit_16(1553); -emit_16(1618); -emit_16(1554); -emit_16(1619); -emit_16(1555); -emit_16(1619); -emit_16(1554); -emit_16(1619); -emit_16(1555); -emit_16(1620); -emit_16(1556); -emit_16(1620); -emit_16(1555); -emit_16(1620); -emit_16(1556); -emit_16(1621); -emit_16(1557); -emit_16(1621); -emit_16(1556); -emit_16(1621); -emit_16(1557); -emit_16(1622); -emit_16(1558); -emit_16(1622); -emit_16(1557); -emit_16(1622); -emit_16(1558); -emit_16(1623); -emit_16(1559); -emit_16(1623); -emit_16(1558); -emit_16(1623); -emit_16(1559); -emit_16(1624); -emit_16(1560); -emit_16(1624); -emit_16(1559); -emit_16(1624); -emit_16(1560); -emit_16(1625); -emit_16(1561); -emit_16(1625); -emit_16(1560); -emit_16(1625); -emit_16(1561); -emit_16(1626); -emit_16(1562); -emit_16(1626); -emit_16(1561); -emit_16(1626); -emit_16(1562); -emit_16(1627); -emit_16(1563); -emit_16(1627); -emit_16(1562); -emit_16(1627); -emit_16(1563); -emit_16(1628); -emit_16(1564); -emit_16(1628); -emit_16(1563); -emit_16(1628); -emit_16(1564); -emit_16(1629); -emit_16(1565); -emit_16(1629); -emit_16(1564); -emit_16(1629); -emit_16(1565); -emit_16(1630); -emit_16(1566); -emit_16(1630); -emit_16(1565); -emit_16(1630); -emit_16(1566); -emit_16(1631); -emit_16(1567); -emit_16(1631); -emit_16(1566); -emit_16(1631); -emit_16(1567); -emit_16(1632); -emit_16(1568); -emit_16(1632); -emit_16(1567); -emit_16(1632); -emit_16(1568); -emit_16(1633); -emit_16(1569); -emit_16(1633); -emit_16(1568); -emit_16(1633); -emit_16(1569); -emit_16(1634); -emit_16(1570); -emit_16(1634); -emit_16(1569); -emit_16(1634); -emit_16(1570); -emit_16(1635); -emit_16(1571); -emit_16(1635); -emit_16(1570); -emit_16(1635); -emit_16(1571); -emit_16(1636); -emit_16(1572); -emit_16(1636); -emit_16(1571); -emit_16(1636); -emit_16(1572); -emit_16(1637); -emit_16(1573); -emit_16(1637); -emit_16(1572); -emit_16(1637); -emit_16(1573); -emit_16(1638); -emit_16(1574); -emit_16(1638); -emit_16(1573); -emit_16(1638); -emit_16(1574); -emit_16(1639); -emit_16(1575); -emit_16(1639); -emit_16(1574); -emit_16(1639); -emit_16(1575); -emit_16(1640); -emit_16(1576); -emit_16(1640); -emit_16(1575); -emit_16(1640); -emit_16(1576); -emit_16(1641); -emit_16(1577); -emit_16(1641); -emit_16(1576); -emit_16(1641); -emit_16(1577); -emit_16(1642); -emit_16(1578); -emit_16(1642); -emit_16(1577); -emit_16(1642); -emit_16(1578); -emit_16(1643); -emit_16(1579); -emit_16(1643); -emit_16(1578); -emit_16(1643); -emit_16(1579); -emit_16(1644); -emit_16(1580); -emit_16(1644); -emit_16(1579); -emit_16(1644); -emit_16(1580); -emit_16(1645); -emit_16(1581); -emit_16(1645); -emit_16(1580); -emit_16(1645); -emit_16(1581); -emit_16(1646); -emit_16(1582); -emit_16(1646); -emit_16(1581); -emit_16(1646); -emit_16(1582); -emit_16(1647); -emit_16(1583); -emit_16(1647); -emit_16(1582); -emit_16(1647); -emit_16(1583); -emit_16(1648); -emit_16(1584); -emit_16(1648); -emit_16(1583); -emit_16(1648); -emit_16(1584); -emit_16(1649); -emit_16(1585); -emit_16(1649); -emit_16(1584); -emit_16(1649); -emit_16(1585); -emit_16(1650); -emit_16(1586); -emit_16(1650); -emit_16(1585); -emit_16(1650); -emit_16(1586); -emit_16(1651); -emit_16(1587); -emit_16(1651); -emit_16(1586); -emit_16(1651); -emit_16(1587); -emit_16(1652); -emit_16(1588); -emit_16(1652); -emit_16(1587); -emit_16(1652); -emit_16(1588); -emit_16(1653); -emit_16(1589); -emit_16(1653); -emit_16(1588); -emit_16(1653); -emit_16(1589); -emit_16(1654); -emit_16(1590); -emit_16(1654); -emit_16(1589); -emit_16(1654); -emit_16(1590); -emit_16(1655); -emit_16(1591); -emit_16(1655); -emit_16(1590); -emit_16(1655); -emit_16(1591); -emit_16(1656); -emit_16(1592); -emit_16(1656); -emit_16(1591); -emit_16(1656); -emit_16(1592); -emit_16(1657); -emit_16(1593); -emit_16(1657); -emit_16(1592); -emit_16(1657); -emit_16(1593); -emit_16(1658); -emit_16(1594); -emit_16(1658); -emit_16(1593); -emit_16(1658); -emit_16(1594); -emit_16(1659); -emit_16(1595); -emit_16(1659); -emit_16(1594); -emit_16(1659); -emit_16(1595); -emit_16(1660); -emit_16(1596); -emit_16(1660); -emit_16(1595); -emit_16(1660); -emit_16(1596); -emit_16(1661); -emit_16(1597); -emit_16(1661); -emit_16(1596); -emit_16(1661); -emit_16(1597); -emit_16(1662); -emit_16(1598); -emit_16(1662); -emit_16(1597); -emit_16(1662); -emit_16(1598); -emit_16(1663); -emit_16(1599); -emit_16(1663); -emit_16(1598); -emit_16(1664); -emit_16(1600); -emit_16(1665); -emit_16(1601); -emit_16(1665); -emit_16(1600); -emit_16(1665); -emit_16(1601); -emit_16(1666); -emit_16(1602); -emit_16(1666); -emit_16(1601); -emit_16(1666); -emit_16(1602); -emit_16(1667); -emit_16(1603); -emit_16(1667); -emit_16(1602); -emit_16(1667); -emit_16(1603); -emit_16(1668); -emit_16(1604); -emit_16(1668); -emit_16(1603); -emit_16(1668); -emit_16(1604); -emit_16(1669); -emit_16(1605); -emit_16(1669); -emit_16(1604); -emit_16(1669); -emit_16(1605); -emit_16(1670); -emit_16(1606); -emit_16(1670); -emit_16(1605); -emit_16(1670); -emit_16(1606); -emit_16(1671); -emit_16(1607); -emit_16(1671); -emit_16(1606); -emit_16(1671); -emit_16(1607); -emit_16(1672); -emit_16(1608); -emit_16(1672); -emit_16(1607); -emit_16(1672); -emit_16(1608); -emit_16(1673); -emit_16(1609); -emit_16(1673); -emit_16(1608); -emit_16(1673); -emit_16(1609); -emit_16(1674); -emit_16(1610); -emit_16(1674); -emit_16(1609); -emit_16(1674); -emit_16(1610); -emit_16(1675); -emit_16(1611); -emit_16(1675); -emit_16(1610); -emit_16(1675); -emit_16(1611); -emit_16(1676); -emit_16(1612); -emit_16(1676); -emit_16(1611); -emit_16(1676); -emit_16(1612); -emit_16(1677); -emit_16(1613); -emit_16(1677); -emit_16(1612); -emit_16(1677); -emit_16(1613); -emit_16(1678); -emit_16(1614); -emit_16(1678); -emit_16(1613); -emit_16(1678); -emit_16(1614); -emit_16(1679); -emit_16(1615); -emit_16(1679); -emit_16(1614); -emit_16(1679); -emit_16(1615); -emit_16(1680); -emit_16(1616); -emit_16(1680); -emit_16(1615); -emit_16(1680); -emit_16(1616); -emit_16(1681); -emit_16(1617); -emit_16(1681); -emit_16(1616); -emit_16(1681); -emit_16(1617); -emit_16(1682); -emit_16(1618); -emit_16(1682); -emit_16(1617); -emit_16(1682); -emit_16(1618); -emit_16(1683); -emit_16(1619); -emit_16(1683); -emit_16(1618); -emit_16(1683); -emit_16(1619); -emit_16(1684); -emit_16(1620); -emit_16(1684); -emit_16(1619); -emit_16(1684); -emit_16(1620); -emit_16(1685); -emit_16(1621); -emit_16(1685); -emit_16(1620); -emit_16(1685); -emit_16(1621); -emit_16(1686); -emit_16(1622); -emit_16(1686); -emit_16(1621); -emit_16(1686); -emit_16(1622); -emit_16(1687); -emit_16(1623); -emit_16(1687); -emit_16(1622); -emit_16(1687); -emit_16(1623); -emit_16(1688); -emit_16(1624); -emit_16(1688); -emit_16(1623); -emit_16(1688); -emit_16(1624); -emit_16(1689); -emit_16(1625); -emit_16(1689); -emit_16(1624); -emit_16(1689); -emit_16(1625); -emit_16(1690); -emit_16(1626); -emit_16(1690); -emit_16(1625); -emit_16(1690); -emit_16(1626); -emit_16(1691); -emit_16(1627); -emit_16(1691); -emit_16(1626); -emit_16(1691); -emit_16(1627); -emit_16(1692); -emit_16(1628); -emit_16(1692); -emit_16(1627); -emit_16(1692); -emit_16(1628); -emit_16(1693); -emit_16(1629); -emit_16(1693); -emit_16(1628); -emit_16(1693); -emit_16(1629); -emit_16(1694); -emit_16(1630); -emit_16(1694); -emit_16(1629); -emit_16(1694); -emit_16(1630); -emit_16(1695); -emit_16(1631); -emit_16(1695); -emit_16(1630); -emit_16(1695); -emit_16(1631); -emit_16(1696); -emit_16(1632); -emit_16(1696); -emit_16(1631); -emit_16(1696); -emit_16(1632); -emit_16(1697); -emit_16(1633); -emit_16(1697); -emit_16(1632); -emit_16(1697); -emit_16(1633); -emit_16(1698); -emit_16(1634); -emit_16(1698); -emit_16(1633); -emit_16(1698); -emit_16(1634); -emit_16(1699); -emit_16(1635); -emit_16(1699); -emit_16(1634); -emit_16(1699); -emit_16(1635); -emit_16(1700); -emit_16(1636); -emit_16(1700); -emit_16(1635); -emit_16(1700); -emit_16(1636); -emit_16(1701); -emit_16(1637); -emit_16(1701); -emit_16(1636); -emit_16(1701); -emit_16(1637); -emit_16(1702); -emit_16(1638); -emit_16(1702); -emit_16(1637); -emit_16(1702); -emit_16(1638); -emit_16(1703); -emit_16(1639); -emit_16(1703); -emit_16(1638); -emit_16(1703); -emit_16(1639); -emit_16(1704); -emit_16(1640); -emit_16(1704); -emit_16(1639); -emit_16(1704); -emit_16(1640); -emit_16(1705); -emit_16(1641); -emit_16(1705); -emit_16(1640); -emit_16(1705); -emit_16(1641); -emit_16(1706); -emit_16(1642); -emit_16(1706); -emit_16(1641); -emit_16(1706); -emit_16(1642); -emit_16(1707); -emit_16(1643); -emit_16(1707); -emit_16(1642); -emit_16(1707); -emit_16(1643); -emit_16(1708); -emit_16(1644); -emit_16(1708); -emit_16(1643); -emit_16(1708); -emit_16(1644); -emit_16(1709); -emit_16(1645); -emit_16(1709); -emit_16(1644); -emit_16(1709); -emit_16(1645); -emit_16(1710); -emit_16(1646); -emit_16(1710); -emit_16(1645); -emit_16(1710); -emit_16(1646); -emit_16(1711); -emit_16(1647); -emit_16(1711); -emit_16(1646); -emit_16(1711); -emit_16(1647); -emit_16(1712); -emit_16(1648); -emit_16(1712); -emit_16(1647); -emit_16(1712); -emit_16(1648); -emit_16(1713); -emit_16(1649); -emit_16(1713); -emit_16(1648); -emit_16(1713); -emit_16(1649); -emit_16(1714); -emit_16(1650); -emit_16(1714); -emit_16(1649); -emit_16(1714); -emit_16(1650); -emit_16(1715); -emit_16(1651); -emit_16(1715); -emit_16(1650); -emit_16(1715); -emit_16(1651); -emit_16(1716); -emit_16(1652); -emit_16(1716); -emit_16(1651); -emit_16(1716); -emit_16(1652); -emit_16(1717); -emit_16(1653); -emit_16(1717); -emit_16(1652); -emit_16(1717); -emit_16(1653); -emit_16(1718); -emit_16(1654); -emit_16(1718); -emit_16(1653); -emit_16(1718); -emit_16(1654); -emit_16(1719); -emit_16(1655); -emit_16(1719); -emit_16(1654); -emit_16(1719); -emit_16(1655); -emit_16(1720); -emit_16(1656); -emit_16(1720); -emit_16(1655); -emit_16(1720); -emit_16(1656); -emit_16(1721); -emit_16(1657); -emit_16(1721); -emit_16(1656); -emit_16(1721); -emit_16(1657); -emit_16(1722); -emit_16(1658); -emit_16(1722); -emit_16(1657); -emit_16(1722); -emit_16(1658); -emit_16(1723); -emit_16(1659); -emit_16(1723); -emit_16(1658); -emit_16(1723); -emit_16(1659); -emit_16(1724); -emit_16(1660); -emit_16(1724); -emit_16(1659); -emit_16(1724); -emit_16(1660); -emit_16(1725); -emit_16(1661); -emit_16(1725); -emit_16(1660); -emit_16(1725); -emit_16(1661); -emit_16(1726); -emit_16(1662); -emit_16(1726); -emit_16(1661); -emit_16(1726); -emit_16(1662); -emit_16(1727); -emit_16(1663); -emit_16(1727); -emit_16(1662); -emit_16(1728); -emit_16(1664); -emit_16(1729); -emit_16(1665); -emit_16(1729); -emit_16(1664); -emit_16(1729); -emit_16(1665); -emit_16(1730); -emit_16(1666); -emit_16(1730); -emit_16(1665); -emit_16(1730); -emit_16(1666); -emit_16(1731); -emit_16(1667); -emit_16(1731); -emit_16(1666); -emit_16(1731); -emit_16(1667); -emit_16(1732); -emit_16(1668); -emit_16(1732); -emit_16(1667); -emit_16(1732); -emit_16(1668); -emit_16(1733); -emit_16(1669); -emit_16(1733); -emit_16(1668); -emit_16(1733); -emit_16(1669); -emit_16(1734); -emit_16(1670); -emit_16(1734); -emit_16(1669); -emit_16(1734); -emit_16(1670); -emit_16(1735); -emit_16(1671); -emit_16(1735); -emit_16(1670); -emit_16(1735); -emit_16(1671); -emit_16(1736); -emit_16(1672); -emit_16(1736); -emit_16(1671); -emit_16(1736); -emit_16(1672); -emit_16(1737); -emit_16(1673); -emit_16(1737); -emit_16(1672); -emit_16(1737); -emit_16(1673); -emit_16(1738); -emit_16(1674); -emit_16(1738); -emit_16(1673); -emit_16(1738); -emit_16(1674); -emit_16(1739); -emit_16(1675); -emit_16(1739); -emit_16(1674); -emit_16(1739); -emit_16(1675); -emit_16(1740); -emit_16(1676); -emit_16(1740); -emit_16(1675); -emit_16(1740); -emit_16(1676); -emit_16(1741); -emit_16(1677); -emit_16(1741); -emit_16(1676); -emit_16(1741); -emit_16(1677); -emit_16(1742); -emit_16(1678); -emit_16(1742); -emit_16(1677); -emit_16(1742); -emit_16(1678); -emit_16(1743); -emit_16(1679); -emit_16(1743); -emit_16(1678); -emit_16(1743); -emit_16(1679); -emit_16(1744); -emit_16(1680); -emit_16(1744); -emit_16(1679); -emit_16(1744); -emit_16(1680); -emit_16(1745); -emit_16(1681); -emit_16(1745); -emit_16(1680); -emit_16(1745); -emit_16(1681); -emit_16(1746); -emit_16(1682); -emit_16(1746); -emit_16(1681); -emit_16(1746); -emit_16(1682); -emit_16(1747); -emit_16(1683); -emit_16(1747); -emit_16(1682); -emit_16(1747); -emit_16(1683); -emit_16(1748); -emit_16(1684); -emit_16(1748); -emit_16(1683); -emit_16(1748); -emit_16(1684); -emit_16(1749); -emit_16(1685); -emit_16(1749); -emit_16(1684); -emit_16(1749); -emit_16(1685); -emit_16(1750); -emit_16(1686); -emit_16(1750); -emit_16(1685); -emit_16(1750); -emit_16(1686); -emit_16(1751); -emit_16(1687); -emit_16(1751); -emit_16(1686); -emit_16(1751); -emit_16(1687); -emit_16(1752); -emit_16(1688); -emit_16(1752); -emit_16(1687); -emit_16(1752); -emit_16(1688); -emit_16(1753); -emit_16(1689); -emit_16(1753); -emit_16(1688); -emit_16(1753); -emit_16(1689); -emit_16(1754); -emit_16(1690); -emit_16(1754); -emit_16(1689); -emit_16(1754); -emit_16(1690); -emit_16(1755); -emit_16(1691); -emit_16(1755); -emit_16(1690); -emit_16(1755); -emit_16(1691); -emit_16(1756); -emit_16(1692); -emit_16(1756); -emit_16(1691); -emit_16(1756); -emit_16(1692); -emit_16(1757); -emit_16(1693); -emit_16(1757); -emit_16(1692); -emit_16(1757); -emit_16(1693); -emit_16(1758); -emit_16(1694); -emit_16(1758); -emit_16(1693); -emit_16(1758); -emit_16(1694); -emit_16(1759); -emit_16(1695); -emit_16(1759); -emit_16(1694); -emit_16(1759); -emit_16(1695); -emit_16(1760); -emit_16(1696); -emit_16(1760); -emit_16(1695); -emit_16(1760); -emit_16(1696); -emit_16(1761); -emit_16(1697); -emit_16(1761); -emit_16(1696); -emit_16(1761); -emit_16(1697); -emit_16(1762); -emit_16(1698); -emit_16(1762); -emit_16(1697); -emit_16(1762); -emit_16(1698); -emit_16(1763); -emit_16(1699); -emit_16(1763); -emit_16(1698); -emit_16(1763); -emit_16(1699); -emit_16(1764); -emit_16(1700); -emit_16(1764); -emit_16(1699); -emit_16(1764); -emit_16(1700); -emit_16(1765); -emit_16(1701); -emit_16(1765); -emit_16(1700); -emit_16(1765); -emit_16(1701); -emit_16(1766); -emit_16(1702); -emit_16(1766); -emit_16(1701); -emit_16(1766); -emit_16(1702); -emit_16(1767); -emit_16(1703); -emit_16(1767); -emit_16(1702); -emit_16(1767); -emit_16(1703); -emit_16(1768); -emit_16(1704); -emit_16(1768); -emit_16(1703); -emit_16(1768); -emit_16(1704); -emit_16(1769); -emit_16(1705); -emit_16(1769); -emit_16(1704); -emit_16(1769); -emit_16(1705); -emit_16(1770); -emit_16(1706); -emit_16(1770); -emit_16(1705); -emit_16(1770); -emit_16(1706); -emit_16(1771); -emit_16(1707); -emit_16(1771); -emit_16(1706); -emit_16(1771); -emit_16(1707); -emit_16(1772); -emit_16(1708); -emit_16(1772); -emit_16(1707); -emit_16(1772); -emit_16(1708); -emit_16(1773); -emit_16(1709); -emit_16(1773); -emit_16(1708); -emit_16(1773); -emit_16(1709); -emit_16(1774); -emit_16(1710); -emit_16(1774); -emit_16(1709); -emit_16(1774); -emit_16(1710); -emit_16(1775); -emit_16(1711); -emit_16(1775); -emit_16(1710); -emit_16(1775); -emit_16(1711); -emit_16(1776); -emit_16(1712); -emit_16(1776); -emit_16(1711); -emit_16(1776); -emit_16(1712); -emit_16(1777); -emit_16(1713); -emit_16(1777); -emit_16(1712); -emit_16(1777); -emit_16(1713); -emit_16(1778); -emit_16(1714); -emit_16(1778); -emit_16(1713); -emit_16(1778); -emit_16(1714); -emit_16(1779); -emit_16(1715); -emit_16(1779); -emit_16(1714); -emit_16(1779); -emit_16(1715); -emit_16(1780); -emit_16(1716); -emit_16(1780); -emit_16(1715); -emit_16(1780); -emit_16(1716); -emit_16(1781); -emit_16(1717); -emit_16(1781); -emit_16(1716); -emit_16(1781); -emit_16(1717); -emit_16(1782); -emit_16(1718); -emit_16(1782); -emit_16(1717); -emit_16(1782); -emit_16(1718); -emit_16(1783); -emit_16(1719); -emit_16(1783); -emit_16(1718); -emit_16(1783); -emit_16(1719); -emit_16(1784); -emit_16(1720); -emit_16(1784); -emit_16(1719); -emit_16(1784); -emit_16(1720); -emit_16(1785); -emit_16(1721); -emit_16(1785); -emit_16(1720); -emit_16(1785); -emit_16(1721); -emit_16(1786); -emit_16(1722); -emit_16(1786); -emit_16(1721); -emit_16(1786); -emit_16(1722); -emit_16(1787); -emit_16(1723); -emit_16(1787); -emit_16(1722); -emit_16(1787); -emit_16(1723); -emit_16(1788); -emit_16(1724); -emit_16(1788); -emit_16(1723); -emit_16(1788); -emit_16(1724); -emit_16(1789); -emit_16(1725); -emit_16(1789); -emit_16(1724); -emit_16(1789); -emit_16(1725); -emit_16(1790); -emit_16(1726); -emit_16(1790); -emit_16(1725); -emit_16(1790); -emit_16(1726); -emit_16(1791); -emit_16(1727); -emit_16(1791); -emit_16(1726); -emit_16(1792); -emit_16(1728); -emit_16(1793); -emit_16(1729); -emit_16(1793); -emit_16(1728); -emit_16(1793); -emit_16(1729); -emit_16(1794); -emit_16(1730); -emit_16(1794); -emit_16(1729); -emit_16(1794); -emit_16(1730); -emit_16(1795); -emit_16(1731); -emit_16(1795); -emit_16(1730); -emit_16(1795); -emit_16(1731); -emit_16(1796); -emit_16(1732); -emit_16(1796); -emit_16(1731); -emit_16(1796); -emit_16(1732); -emit_16(1797); -emit_16(1733); -emit_16(1797); -emit_16(1732); -emit_16(1797); -emit_16(1733); -emit_16(1798); -emit_16(1734); -emit_16(1798); -emit_16(1733); -emit_16(1798); -emit_16(1734); -emit_16(1799); -emit_16(1735); -emit_16(1799); -emit_16(1734); -emit_16(1799); -emit_16(1735); -emit_16(1800); -emit_16(1736); -emit_16(1800); -emit_16(1735); -emit_16(1800); -emit_16(1736); -emit_16(1801); -emit_16(1737); -emit_16(1801); -emit_16(1736); -emit_16(1801); -emit_16(1737); -emit_16(1802); -emit_16(1738); -emit_16(1802); -emit_16(1737); -emit_16(1802); -emit_16(1738); -emit_16(1803); -emit_16(1739); -emit_16(1803); -emit_16(1738); -emit_16(1803); -emit_16(1739); -emit_16(1804); -emit_16(1740); -emit_16(1804); -emit_16(1739); -emit_16(1804); -emit_16(1740); -emit_16(1805); -emit_16(1741); -emit_16(1805); -emit_16(1740); -emit_16(1805); -emit_16(1741); -emit_16(1806); -emit_16(1742); -emit_16(1806); -emit_16(1741); -emit_16(1806); -emit_16(1742); -emit_16(1807); -emit_16(1743); -emit_16(1807); -emit_16(1742); -emit_16(1807); -emit_16(1743); -emit_16(1808); -emit_16(1744); -emit_16(1808); -emit_16(1743); -emit_16(1808); -emit_16(1744); -emit_16(1809); -emit_16(1745); -emit_16(1809); -emit_16(1744); -emit_16(1809); -emit_16(1745); -emit_16(1810); -emit_16(1746); -emit_16(1810); -emit_16(1745); -emit_16(1810); -emit_16(1746); -emit_16(1811); -emit_16(1747); -emit_16(1811); -emit_16(1746); -emit_16(1811); -emit_16(1747); -emit_16(1812); -emit_16(1748); -emit_16(1812); -emit_16(1747); -emit_16(1812); -emit_16(1748); -emit_16(1813); -emit_16(1749); -emit_16(1813); -emit_16(1748); -emit_16(1813); -emit_16(1749); -emit_16(1814); -emit_16(1750); -emit_16(1814); -emit_16(1749); -emit_16(1814); -emit_16(1750); -emit_16(1815); -emit_16(1751); -emit_16(1815); -emit_16(1750); -emit_16(1815); -emit_16(1751); -emit_16(1816); -emit_16(1752); -emit_16(1816); -emit_16(1751); -emit_16(1816); -emit_16(1752); -emit_16(1817); -emit_16(1753); -emit_16(1817); -emit_16(1752); -emit_16(1817); -emit_16(1753); -emit_16(1818); -emit_16(1754); -emit_16(1818); -emit_16(1753); -emit_16(1818); -emit_16(1754); -emit_16(1819); -emit_16(1755); -emit_16(1819); -emit_16(1754); -emit_16(1819); -emit_16(1755); -emit_16(1820); -emit_16(1756); -emit_16(1820); -emit_16(1755); -emit_16(1820); -emit_16(1756); -emit_16(1821); -emit_16(1757); -emit_16(1821); -emit_16(1756); -emit_16(1821); -emit_16(1757); -emit_16(1822); -emit_16(1758); -emit_16(1822); -emit_16(1757); -emit_16(1822); -emit_16(1758); -emit_16(1823); -emit_16(1759); -emit_16(1823); -emit_16(1758); -emit_16(1823); -emit_16(1759); -emit_16(1824); -emit_16(1760); -emit_16(1824); -emit_16(1759); -emit_16(1824); -emit_16(1760); -emit_16(1825); -emit_16(1761); -emit_16(1825); -emit_16(1760); -emit_16(1825); -emit_16(1761); -emit_16(1826); -emit_16(1762); -emit_16(1826); -emit_16(1761); -emit_16(1826); -emit_16(1762); -emit_16(1827); -emit_16(1763); -emit_16(1827); -emit_16(1762); -emit_16(1827); -emit_16(1763); -emit_16(1828); -emit_16(1764); -emit_16(1828); -emit_16(1763); -emit_16(1828); -emit_16(1764); -emit_16(1829); -emit_16(1765); -emit_16(1829); -emit_16(1764); -emit_16(1829); -emit_16(1765); -emit_16(1830); -emit_16(1766); -emit_16(1830); -emit_16(1765); -emit_16(1830); -emit_16(1766); -emit_16(1831); -emit_16(1767); -emit_16(1831); -emit_16(1766); -emit_16(1831); -emit_16(1767); -emit_16(1832); -emit_16(1768); -emit_16(1832); -emit_16(1767); -emit_16(1832); -emit_16(1768); -emit_16(1833); -emit_16(1769); -emit_16(1833); -emit_16(1768); -emit_16(1833); -emit_16(1769); -emit_16(1834); -emit_16(1770); -emit_16(1834); -emit_16(1769); -emit_16(1834); -emit_16(1770); -emit_16(1835); -emit_16(1771); -emit_16(1835); -emit_16(1770); -emit_16(1835); -emit_16(1771); -emit_16(1836); -emit_16(1772); -emit_16(1836); -emit_16(1771); -emit_16(1836); -emit_16(1772); -emit_16(1837); -emit_16(1773); -emit_16(1837); -emit_16(1772); -emit_16(1837); -emit_16(1773); -emit_16(1838); -emit_16(1774); -emit_16(1838); -emit_16(1773); -emit_16(1838); -emit_16(1774); -emit_16(1839); -emit_16(1775); -emit_16(1839); -emit_16(1774); -emit_16(1839); -emit_16(1775); -emit_16(1840); -emit_16(1776); -emit_16(1840); -emit_16(1775); -emit_16(1840); -emit_16(1776); -emit_16(1841); -emit_16(1777); -emit_16(1841); -emit_16(1776); -emit_16(1841); -emit_16(1777); -emit_16(1842); -emit_16(1778); -emit_16(1842); -emit_16(1777); -emit_16(1842); -emit_16(1778); -emit_16(1843); -emit_16(1779); -emit_16(1843); -emit_16(1778); -emit_16(1843); -emit_16(1779); -emit_16(1844); -emit_16(1780); -emit_16(1844); -emit_16(1779); -emit_16(1844); -emit_16(1780); -emit_16(1845); -emit_16(1781); -emit_16(1845); -emit_16(1780); -emit_16(1845); -emit_16(1781); -emit_16(1846); -emit_16(1782); -emit_16(1846); -emit_16(1781); -emit_16(1846); -emit_16(1782); -emit_16(1847); -emit_16(1783); -emit_16(1847); -emit_16(1782); -emit_16(1847); -emit_16(1783); -emit_16(1848); -emit_16(1784); -emit_16(1848); -emit_16(1783); -emit_16(1848); -emit_16(1784); -emit_16(1849); -emit_16(1785); -emit_16(1849); -emit_16(1784); -emit_16(1849); -emit_16(1785); -emit_16(1850); -emit_16(1786); -emit_16(1850); -emit_16(1785); -emit_16(1850); -emit_16(1786); -emit_16(1851); -emit_16(1787); -emit_16(1851); -emit_16(1786); -emit_16(1851); -emit_16(1787); -emit_16(1852); -emit_16(1788); -emit_16(1852); -emit_16(1787); -emit_16(1852); -emit_16(1788); -emit_16(1853); -emit_16(1789); -emit_16(1853); -emit_16(1788); -emit_16(1853); -emit_16(1789); -emit_16(1854); -emit_16(1790); -emit_16(1854); -emit_16(1789); -emit_16(1854); -emit_16(1790); -emit_16(1855); -emit_16(1791); -emit_16(1855); -emit_16(1790); -emit_16(1856); -emit_16(1792); -emit_16(1857); -emit_16(1793); -emit_16(1857); -emit_16(1792); -emit_16(1857); -emit_16(1793); -emit_16(1858); -emit_16(1794); -emit_16(1858); -emit_16(1793); -emit_16(1858); -emit_16(1794); -emit_16(1859); -emit_16(1795); -emit_16(1859); -emit_16(1794); -emit_16(1859); -emit_16(1795); -emit_16(1860); -emit_16(1796); -emit_16(1860); -emit_16(1795); -emit_16(1860); -emit_16(1796); -emit_16(1861); -emit_16(1797); -emit_16(1861); -emit_16(1796); -emit_16(1861); -emit_16(1797); -emit_16(1862); -emit_16(1798); -emit_16(1862); -emit_16(1797); -emit_16(1862); -emit_16(1798); -emit_16(1863); -emit_16(1799); -emit_16(1863); -emit_16(1798); -emit_16(1863); -emit_16(1799); -emit_16(1864); -emit_16(1800); -emit_16(1864); -emit_16(1799); -emit_16(1864); -emit_16(1800); -emit_16(1865); -emit_16(1801); -emit_16(1865); -emit_16(1800); -emit_16(1865); -emit_16(1801); -emit_16(1866); -emit_16(1802); -emit_16(1866); -emit_16(1801); -emit_16(1866); -emit_16(1802); -emit_16(1867); -emit_16(1803); -emit_16(1867); -emit_16(1802); -emit_16(1867); -emit_16(1803); -emit_16(1868); -emit_16(1804); -emit_16(1868); -emit_16(1803); -emit_16(1868); -emit_16(1804); -emit_16(1869); -emit_16(1805); -emit_16(1869); -emit_16(1804); -emit_16(1869); -emit_16(1805); -emit_16(1870); -emit_16(1806); -emit_16(1870); -emit_16(1805); -emit_16(1870); -emit_16(1806); -emit_16(1871); -emit_16(1807); -emit_16(1871); -emit_16(1806); -emit_16(1871); -emit_16(1807); -emit_16(1872); -emit_16(1808); -emit_16(1872); -emit_16(1807); -emit_16(1872); -emit_16(1808); -emit_16(1873); -emit_16(1809); -emit_16(1873); -emit_16(1808); -emit_16(1873); -emit_16(1809); -emit_16(1874); -emit_16(1810); -emit_16(1874); -emit_16(1809); -emit_16(1874); -emit_16(1810); -emit_16(1875); -emit_16(1811); -emit_16(1875); -emit_16(1810); -emit_16(1875); -emit_16(1811); -emit_16(1876); -emit_16(1812); -emit_16(1876); -emit_16(1811); -emit_16(1876); -emit_16(1812); -emit_16(1877); -emit_16(1813); -emit_16(1877); -emit_16(1812); -emit_16(1877); -emit_16(1813); -emit_16(1878); -emit_16(1814); -emit_16(1878); -emit_16(1813); -emit_16(1878); -emit_16(1814); -emit_16(1879); -emit_16(1815); -emit_16(1879); -emit_16(1814); -emit_16(1879); -emit_16(1815); -emit_16(1880); -emit_16(1816); -emit_16(1880); -emit_16(1815); -emit_16(1880); -emit_16(1816); -emit_16(1881); -emit_16(1817); -emit_16(1881); -emit_16(1816); -emit_16(1881); -emit_16(1817); -emit_16(1882); -emit_16(1818); -emit_16(1882); -emit_16(1817); -emit_16(1882); -emit_16(1818); -emit_16(1883); -emit_16(1819); -emit_16(1883); -emit_16(1818); -emit_16(1883); -emit_16(1819); -emit_16(1884); -emit_16(1820); -emit_16(1884); -emit_16(1819); -emit_16(1884); -emit_16(1820); -emit_16(1885); -emit_16(1821); -emit_16(1885); -emit_16(1820); -emit_16(1885); -emit_16(1821); -emit_16(1886); -emit_16(1822); -emit_16(1886); -emit_16(1821); -emit_16(1886); -emit_16(1822); -emit_16(1887); -emit_16(1823); -emit_16(1887); -emit_16(1822); -emit_16(1887); -emit_16(1823); -emit_16(1888); -emit_16(1824); -emit_16(1888); -emit_16(1823); -emit_16(1888); -emit_16(1824); -emit_16(1889); -emit_16(1825); -emit_16(1889); -emit_16(1824); -emit_16(1889); -emit_16(1825); -emit_16(1890); -emit_16(1826); -emit_16(1890); -emit_16(1825); -emit_16(1890); -emit_16(1826); -emit_16(1891); -emit_16(1827); -emit_16(1891); -emit_16(1826); -emit_16(1891); -emit_16(1827); -emit_16(1892); -emit_16(1828); -emit_16(1892); -emit_16(1827); -emit_16(1892); -emit_16(1828); -emit_16(1893); -emit_16(1829); -emit_16(1893); -emit_16(1828); -emit_16(1893); -emit_16(1829); -emit_16(1894); -emit_16(1830); -emit_16(1894); -emit_16(1829); -emit_16(1894); -emit_16(1830); -emit_16(1895); -emit_16(1831); -emit_16(1895); -emit_16(1830); -emit_16(1895); -emit_16(1831); -emit_16(1896); -emit_16(1832); -emit_16(1896); -emit_16(1831); -emit_16(1896); -emit_16(1832); -emit_16(1897); -emit_16(1833); -emit_16(1897); -emit_16(1832); -emit_16(1897); -emit_16(1833); -emit_16(1898); -emit_16(1834); -emit_16(1898); -emit_16(1833); -emit_16(1898); -emit_16(1834); -emit_16(1899); -emit_16(1835); -emit_16(1899); -emit_16(1834); -emit_16(1899); -emit_16(1835); -emit_16(1900); -emit_16(1836); -emit_16(1900); -emit_16(1835); -emit_16(1900); -emit_16(1836); -emit_16(1901); -emit_16(1837); -emit_16(1901); -emit_16(1836); -emit_16(1901); -emit_16(1837); -emit_16(1902); -emit_16(1838); -emit_16(1902); -emit_16(1837); -emit_16(1902); -emit_16(1838); -emit_16(1903); -emit_16(1839); -emit_16(1903); -emit_16(1838); -emit_16(1903); -emit_16(1839); -emit_16(1904); -emit_16(1840); -emit_16(1904); -emit_16(1839); -emit_16(1904); -emit_16(1840); -emit_16(1905); -emit_16(1841); -emit_16(1905); -emit_16(1840); -emit_16(1905); -emit_16(1841); -emit_16(1906); -emit_16(1842); -emit_16(1906); -emit_16(1841); -emit_16(1906); -emit_16(1842); -emit_16(1907); -emit_16(1843); -emit_16(1907); -emit_16(1842); -emit_16(1907); -emit_16(1843); -emit_16(1908); -emit_16(1844); -emit_16(1908); -emit_16(1843); -emit_16(1908); -emit_16(1844); -emit_16(1909); -emit_16(1845); -emit_16(1909); -emit_16(1844); -emit_16(1909); -emit_16(1845); -emit_16(1910); -emit_16(1846); -emit_16(1910); -emit_16(1845); -emit_16(1910); -emit_16(1846); -emit_16(1911); -emit_16(1847); -emit_16(1911); -emit_16(1846); -emit_16(1911); -emit_16(1847); -emit_16(1912); -emit_16(1848); -emit_16(1912); -emit_16(1847); -emit_16(1912); -emit_16(1848); -emit_16(1913); -emit_16(1849); -emit_16(1913); -emit_16(1848); -emit_16(1913); -emit_16(1849); -emit_16(1914); -emit_16(1850); -emit_16(1914); -emit_16(1849); -emit_16(1914); -emit_16(1850); -emit_16(1915); -emit_16(1851); -emit_16(1915); -emit_16(1850); -emit_16(1915); -emit_16(1851); -emit_16(1916); -emit_16(1852); -emit_16(1916); -emit_16(1851); -emit_16(1916); -emit_16(1852); -emit_16(1917); -emit_16(1853); -emit_16(1917); -emit_16(1852); -emit_16(1917); -emit_16(1853); -emit_16(1918); -emit_16(1854); -emit_16(1918); -emit_16(1853); -emit_16(1918); -emit_16(1854); -emit_16(1919); -emit_16(1855); -emit_16(1919); -emit_16(1854); -emit_16(1920); -emit_16(1856); -emit_16(1921); -emit_16(1857); -emit_16(1921); -emit_16(1856); -emit_16(1921); -emit_16(1857); -emit_16(1922); -emit_16(1858); -emit_16(1922); -emit_16(1857); -emit_16(1922); -emit_16(1858); -emit_16(1923); -emit_16(1859); -emit_16(1923); -emit_16(1858); -emit_16(1923); -emit_16(1859); -emit_16(1924); -emit_16(1860); -emit_16(1924); -emit_16(1859); -emit_16(1924); -emit_16(1860); -emit_16(1925); -emit_16(1861); -emit_16(1925); -emit_16(1860); -emit_16(1925); -emit_16(1861); -emit_16(1926); -emit_16(1862); -emit_16(1926); -emit_16(1861); -emit_16(1926); -emit_16(1862); -emit_16(1927); -emit_16(1863); -emit_16(1927); -emit_16(1862); -emit_16(1927); -emit_16(1863); -emit_16(1928); -emit_16(1864); -emit_16(1928); -emit_16(1863); -emit_16(1928); -emit_16(1864); -emit_16(1929); -emit_16(1865); -emit_16(1929); -emit_16(1864); -emit_16(1929); -emit_16(1865); -emit_16(1930); -emit_16(1866); -emit_16(1930); -emit_16(1865); -emit_16(1930); -emit_16(1866); -emit_16(1931); -emit_16(1867); -emit_16(1931); -emit_16(1866); -emit_16(1931); -emit_16(1867); -emit_16(1932); -emit_16(1868); -emit_16(1932); -emit_16(1867); -emit_16(1932); -emit_16(1868); -emit_16(1933); -emit_16(1869); -emit_16(1933); -emit_16(1868); -emit_16(1933); -emit_16(1869); -emit_16(1934); -emit_16(1870); -emit_16(1934); -emit_16(1869); -emit_16(1934); -emit_16(1870); -emit_16(1935); -emit_16(1871); -emit_16(1935); -emit_16(1870); -emit_16(1935); -emit_16(1871); -emit_16(1936); -emit_16(1872); -emit_16(1936); -emit_16(1871); -emit_16(1936); -emit_16(1872); -emit_16(1937); -emit_16(1873); -emit_16(1937); -emit_16(1872); -emit_16(1937); -emit_16(1873); -emit_16(1938); -emit_16(1874); -emit_16(1938); -emit_16(1873); -emit_16(1938); -emit_16(1874); -emit_16(1939); -emit_16(1875); -emit_16(1939); -emit_16(1874); -emit_16(1939); -emit_16(1875); -emit_16(1940); -emit_16(1876); -emit_16(1940); -emit_16(1875); -emit_16(1940); -emit_16(1876); -emit_16(1941); -emit_16(1877); -emit_16(1941); -emit_16(1876); -emit_16(1941); -emit_16(1877); -emit_16(1942); -emit_16(1878); -emit_16(1942); -emit_16(1877); -emit_16(1942); -emit_16(1878); -emit_16(1943); -emit_16(1879); -emit_16(1943); -emit_16(1878); -emit_16(1943); -emit_16(1879); -emit_16(1944); -emit_16(1880); -emit_16(1944); -emit_16(1879); -emit_16(1944); -emit_16(1880); -emit_16(1945); -emit_16(1881); -emit_16(1945); -emit_16(1880); -emit_16(1945); -emit_16(1881); -emit_16(1946); -emit_16(1882); -emit_16(1946); -emit_16(1881); -emit_16(1946); -emit_16(1882); -emit_16(1947); -emit_16(1883); -emit_16(1947); -emit_16(1882); -emit_16(1947); -emit_16(1883); -emit_16(1948); -emit_16(1884); -emit_16(1948); -emit_16(1883); -emit_16(1948); -emit_16(1884); -emit_16(1949); -emit_16(1885); -emit_16(1949); -emit_16(1884); -emit_16(1949); -emit_16(1885); -emit_16(1950); -emit_16(1886); -emit_16(1950); -emit_16(1885); -emit_16(1950); -emit_16(1886); -emit_16(1951); -emit_16(1887); -emit_16(1951); -emit_16(1886); -emit_16(1951); -emit_16(1887); -emit_16(1952); -emit_16(1888); -emit_16(1952); -emit_16(1887); -emit_16(1952); -emit_16(1888); -emit_16(1953); -emit_16(1889); -emit_16(1953); -emit_16(1888); -emit_16(1953); -emit_16(1889); -emit_16(1954); -emit_16(1890); -emit_16(1954); -emit_16(1889); -emit_16(1954); -emit_16(1890); -emit_16(1955); -emit_16(1891); -emit_16(1955); -emit_16(1890); -emit_16(1955); -emit_16(1891); -emit_16(1956); -emit_16(1892); -emit_16(1956); -emit_16(1891); -emit_16(1956); -emit_16(1892); -emit_16(1957); -emit_16(1893); -emit_16(1957); -emit_16(1892); -emit_16(1957); -emit_16(1893); -emit_16(1958); -emit_16(1894); -emit_16(1958); -emit_16(1893); -emit_16(1958); -emit_16(1894); -emit_16(1959); -emit_16(1895); -emit_16(1959); -emit_16(1894); -emit_16(1959); -emit_16(1895); -emit_16(1960); -emit_16(1896); -emit_16(1960); -emit_16(1895); -emit_16(1960); -emit_16(1896); -emit_16(1961); -emit_16(1897); -emit_16(1961); -emit_16(1896); -emit_16(1961); -emit_16(1897); -emit_16(1962); -emit_16(1898); -emit_16(1962); -emit_16(1897); -emit_16(1962); -emit_16(1898); -emit_16(1963); -emit_16(1899); -emit_16(1963); -emit_16(1898); -emit_16(1963); -emit_16(1899); -emit_16(1964); -emit_16(1900); -emit_16(1964); -emit_16(1899); -emit_16(1964); -emit_16(1900); -emit_16(1965); -emit_16(1901); -emit_16(1965); -emit_16(1900); -emit_16(1965); -emit_16(1901); -emit_16(1966); -emit_16(1902); -emit_16(1966); -emit_16(1901); -emit_16(1966); -emit_16(1902); -emit_16(1967); -emit_16(1903); -emit_16(1967); -emit_16(1902); -emit_16(1967); -emit_16(1903); -emit_16(1968); -emit_16(1904); -emit_16(1968); -emit_16(1903); -emit_16(1968); -emit_16(1904); -emit_16(1969); -emit_16(1905); -emit_16(1969); -emit_16(1904); -emit_16(1969); -emit_16(1905); -emit_16(1970); -emit_16(1906); -emit_16(1970); -emit_16(1905); -emit_16(1970); -emit_16(1906); -emit_16(1971); -emit_16(1907); -emit_16(1971); -emit_16(1906); -emit_16(1971); -emit_16(1907); -emit_16(1972); -emit_16(1908); -emit_16(1972); -emit_16(1907); -emit_16(1972); -emit_16(1908); -emit_16(1973); -emit_16(1909); -emit_16(1973); -emit_16(1908); -emit_16(1973); -emit_16(1909); -emit_16(1974); -emit_16(1910); -emit_16(1974); -emit_16(1909); -emit_16(1974); -emit_16(1910); -emit_16(1975); -emit_16(1911); -emit_16(1975); -emit_16(1910); -emit_16(1975); -emit_16(1911); -emit_16(1976); -emit_16(1912); -emit_16(1976); -emit_16(1911); -emit_16(1976); -emit_16(1912); -emit_16(1977); -emit_16(1913); -emit_16(1977); -emit_16(1912); -emit_16(1977); -emit_16(1913); -emit_16(1978); -emit_16(1914); -emit_16(1978); -emit_16(1913); -emit_16(1978); -emit_16(1914); -emit_16(1979); -emit_16(1915); -emit_16(1979); -emit_16(1914); -emit_16(1979); -emit_16(1915); -emit_16(1980); -emit_16(1916); -emit_16(1980); -emit_16(1915); -emit_16(1980); -emit_16(1916); -emit_16(1981); -emit_16(1917); -emit_16(1981); -emit_16(1916); -emit_16(1981); -emit_16(1917); -emit_16(1982); -emit_16(1918); -emit_16(1982); -emit_16(1917); -emit_16(1982); -emit_16(1918); -emit_16(1983); -emit_16(1919); -emit_16(1983); -emit_16(1918); -emit_16(1984); -emit_16(1920); -emit_16(1985); -emit_16(1921); -emit_16(1985); -emit_16(1920); -emit_16(1985); -emit_16(1921); -emit_16(1986); -emit_16(1922); -emit_16(1986); -emit_16(1921); -emit_16(1986); -emit_16(1922); -emit_16(1987); -emit_16(1923); -emit_16(1987); -emit_16(1922); -emit_16(1987); -emit_16(1923); -emit_16(1988); -emit_16(1924); -emit_16(1988); -emit_16(1923); -emit_16(1988); -emit_16(1924); -emit_16(1989); -emit_16(1925); -emit_16(1989); -emit_16(1924); -emit_16(1989); -emit_16(1925); -emit_16(1990); -emit_16(1926); -emit_16(1990); -emit_16(1925); -emit_16(1990); -emit_16(1926); -emit_16(1991); -emit_16(1927); -emit_16(1991); -emit_16(1926); -emit_16(1991); -emit_16(1927); -emit_16(1992); -emit_16(1928); -emit_16(1992); -emit_16(1927); -emit_16(1992); -emit_16(1928); -emit_16(1993); -emit_16(1929); -emit_16(1993); -emit_16(1928); -emit_16(1993); -emit_16(1929); -emit_16(1994); -emit_16(1930); -emit_16(1994); -emit_16(1929); -emit_16(1994); -emit_16(1930); -emit_16(1995); -emit_16(1931); -emit_16(1995); -emit_16(1930); -emit_16(1995); -emit_16(1931); -emit_16(1996); -emit_16(1932); -emit_16(1996); -emit_16(1931); -emit_16(1996); -emit_16(1932); -emit_16(1997); -emit_16(1933); -emit_16(1997); -emit_16(1932); -emit_16(1997); -emit_16(1933); -emit_16(1998); -emit_16(1934); -emit_16(1998); -emit_16(1933); -emit_16(1998); -emit_16(1934); -emit_16(1999); -emit_16(1935); -emit_16(1999); -emit_16(1934); -emit_16(1999); -emit_16(1935); -emit_16(2000); -emit_16(1936); -emit_16(2000); -emit_16(1935); -emit_16(2000); -emit_16(1936); -emit_16(2001); -emit_16(1937); -emit_16(2001); -emit_16(1936); -emit_16(2001); -emit_16(1937); -emit_16(2002); -emit_16(1938); -emit_16(2002); -emit_16(1937); -emit_16(2002); -emit_16(1938); -emit_16(2003); -emit_16(1939); -emit_16(2003); -emit_16(1938); -emit_16(2003); -emit_16(1939); -emit_16(2004); -emit_16(1940); -emit_16(2004); -emit_16(1939); -emit_16(2004); -emit_16(1940); -emit_16(2005); -emit_16(1941); -emit_16(2005); -emit_16(1940); -emit_16(2005); -emit_16(1941); -emit_16(2006); -emit_16(1942); -emit_16(2006); -emit_16(1941); -emit_16(2006); -emit_16(1942); -emit_16(2007); -emit_16(1943); -emit_16(2007); -emit_16(1942); -emit_16(2007); -emit_16(1943); -emit_16(2008); -emit_16(1944); -emit_16(2008); -emit_16(1943); -emit_16(2008); -emit_16(1944); -emit_16(2009); -emit_16(1945); -emit_16(2009); -emit_16(1944); -emit_16(2009); -emit_16(1945); -emit_16(2010); -emit_16(1946); -emit_16(2010); -emit_16(1945); -emit_16(2010); -emit_16(1946); -emit_16(2011); -emit_16(1947); -emit_16(2011); -emit_16(1946); -emit_16(2011); -emit_16(1947); -emit_16(2012); -emit_16(1948); -emit_16(2012); -emit_16(1947); -emit_16(2012); -emit_16(1948); -emit_16(2013); -emit_16(1949); -emit_16(2013); -emit_16(1948); -emit_16(2013); -emit_16(1949); -emit_16(2014); -emit_16(1950); -emit_16(2014); -emit_16(1949); -emit_16(2014); -emit_16(1950); -emit_16(2015); -emit_16(1951); -emit_16(2015); -emit_16(1950); -emit_16(2015); -emit_16(1951); -emit_16(2016); -emit_16(1952); -emit_16(2016); -emit_16(1951); -emit_16(2016); -emit_16(1952); -emit_16(2017); -emit_16(1953); -emit_16(2017); -emit_16(1952); -emit_16(2017); -emit_16(1953); -emit_16(2018); -emit_16(1954); -emit_16(2018); -emit_16(1953); -emit_16(2018); -emit_16(1954); -emit_16(2019); -emit_16(1955); -emit_16(2019); -emit_16(1954); -emit_16(2019); -emit_16(1955); -emit_16(2020); -emit_16(1956); -emit_16(2020); -emit_16(1955); -emit_16(2020); -emit_16(1956); -emit_16(2021); -emit_16(1957); -emit_16(2021); -emit_16(1956); -emit_16(2021); -emit_16(1957); -emit_16(2022); -emit_16(1958); -emit_16(2022); -emit_16(1957); -emit_16(2022); -emit_16(1958); -emit_16(2023); -emit_16(1959); -emit_16(2023); -emit_16(1958); -emit_16(2023); -emit_16(1959); -emit_16(2024); -emit_16(1960); -emit_16(2024); -emit_16(1959); -emit_16(2024); -emit_16(1960); -emit_16(2025); -emit_16(1961); -emit_16(2025); -emit_16(1960); -emit_16(2025); -emit_16(1961); -emit_16(2026); -emit_16(1962); -emit_16(2026); -emit_16(1961); -emit_16(2026); -emit_16(1962); -emit_16(2027); -emit_16(1963); -emit_16(2027); -emit_16(1962); -emit_16(2027); -emit_16(1963); -emit_16(2028); -emit_16(1964); -emit_16(2028); -emit_16(1963); -emit_16(2028); -emit_16(1964); -emit_16(2029); -emit_16(1965); -emit_16(2029); -emit_16(1964); -emit_16(2029); -emit_16(1965); -emit_16(2030); -emit_16(1966); -emit_16(2030); -emit_16(1965); -emit_16(2030); -emit_16(1966); -emit_16(2031); -emit_16(1967); -emit_16(2031); -emit_16(1966); -emit_16(2031); -emit_16(1967); -emit_16(2032); -emit_16(1968); -emit_16(2032); -emit_16(1967); -emit_16(2032); -emit_16(1968); -emit_16(2033); -emit_16(1969); -emit_16(2033); -emit_16(1968); -emit_16(2033); -emit_16(1969); -emit_16(2034); -emit_16(1970); -emit_16(2034); -emit_16(1969); -emit_16(2034); -emit_16(1970); -emit_16(2035); -emit_16(1971); -emit_16(2035); -emit_16(1970); -emit_16(2035); -emit_16(1971); -emit_16(2036); -emit_16(1972); -emit_16(2036); -emit_16(1971); -emit_16(2036); -emit_16(1972); -emit_16(2037); -emit_16(1973); -emit_16(2037); -emit_16(1972); -emit_16(2037); -emit_16(1973); -emit_16(2038); -emit_16(1974); -emit_16(2038); -emit_16(1973); -emit_16(2038); -emit_16(1974); -emit_16(2039); -emit_16(1975); -emit_16(2039); -emit_16(1974); -emit_16(2039); -emit_16(1975); -emit_16(2040); -emit_16(1976); -emit_16(2040); -emit_16(1975); -emit_16(2040); -emit_16(1976); -emit_16(2041); -emit_16(1977); -emit_16(2041); -emit_16(1976); -emit_16(2041); -emit_16(1977); -emit_16(2042); -emit_16(1978); -emit_16(2042); -emit_16(1977); -emit_16(2042); -emit_16(1978); -emit_16(2043); -emit_16(1979); -emit_16(2043); -emit_16(1978); -emit_16(2043); -emit_16(1979); -emit_16(2044); -emit_16(1980); -emit_16(2044); -emit_16(1979); -emit_16(2044); -emit_16(1980); -emit_16(2045); -emit_16(1981); -emit_16(2045); -emit_16(1980); -emit_16(2045); -emit_16(1981); -emit_16(2046); -emit_16(1982); -emit_16(2046); -emit_16(1981); -emit_16(2046); -emit_16(1982); -emit_16(2047); -emit_16(1983); -emit_16(2047); -emit_16(1982); -emit_16(2048); -emit_16(1984); -emit_16(2049); -emit_16(1985); -emit_16(2049); -emit_16(1984); -emit_16(2049); -emit_16(1985); -emit_16(2050); -emit_16(1986); -emit_16(2050); -emit_16(1985); -emit_16(2050); -emit_16(1986); -emit_16(2051); -emit_16(1987); -emit_16(2051); -emit_16(1986); -emit_16(2051); -emit_16(1987); -emit_16(2052); -emit_16(1988); -emit_16(2052); -emit_16(1987); -emit_16(2052); -emit_16(1988); -emit_16(2053); -emit_16(1989); -emit_16(2053); -emit_16(1988); -emit_16(2053); -emit_16(1989); -emit_16(2054); -emit_16(1990); -emit_16(2054); -emit_16(1989); -emit_16(2054); -emit_16(1990); -emit_16(2055); -emit_16(1991); -emit_16(2055); -emit_16(1990); -emit_16(2055); -emit_16(1991); -emit_16(2056); -emit_16(1992); -emit_16(2056); -emit_16(1991); -emit_16(2056); -emit_16(1992); -emit_16(2057); -emit_16(1993); -emit_16(2057); -emit_16(1992); -emit_16(2057); -emit_16(1993); -emit_16(2058); -emit_16(1994); -emit_16(2058); -emit_16(1993); -emit_16(2058); -emit_16(1994); -emit_16(2059); -emit_16(1995); -emit_16(2059); -emit_16(1994); -emit_16(2059); -emit_16(1995); -emit_16(2060); -emit_16(1996); -emit_16(2060); -emit_16(1995); -emit_16(2060); -emit_16(1996); -emit_16(2061); -emit_16(1997); -emit_16(2061); -emit_16(1996); -emit_16(2061); -emit_16(1997); -emit_16(2062); -emit_16(1998); -emit_16(2062); -emit_16(1997); -emit_16(2062); -emit_16(1998); -emit_16(2063); -emit_16(1999); -emit_16(2063); -emit_16(1998); -emit_16(2063); -emit_16(1999); -emit_16(2064); -emit_16(2000); -emit_16(2064); -emit_16(1999); -emit_16(2064); -emit_16(2000); -emit_16(2065); -emit_16(2001); -emit_16(2065); -emit_16(2000); -emit_16(2065); -emit_16(2001); -emit_16(2066); -emit_16(2002); -emit_16(2066); -emit_16(2001); -emit_16(2066); -emit_16(2002); -emit_16(2067); -emit_16(2003); -emit_16(2067); -emit_16(2002); -emit_16(2067); -emit_16(2003); -emit_16(2068); -emit_16(2004); -emit_16(2068); -emit_16(2003); -emit_16(2068); -emit_16(2004); -emit_16(2069); -emit_16(2005); -emit_16(2069); -emit_16(2004); -emit_16(2069); -emit_16(2005); -emit_16(2070); -emit_16(2006); -emit_16(2070); -emit_16(2005); -emit_16(2070); -emit_16(2006); -emit_16(2071); -emit_16(2007); -emit_16(2071); -emit_16(2006); -emit_16(2071); -emit_16(2007); -emit_16(2072); -emit_16(2008); -emit_16(2072); -emit_16(2007); -emit_16(2072); -emit_16(2008); -emit_16(2073); -emit_16(2009); -emit_16(2073); -emit_16(2008); -emit_16(2073); -emit_16(2009); -emit_16(2074); -emit_16(2010); -emit_16(2074); -emit_16(2009); -emit_16(2074); -emit_16(2010); -emit_16(2075); -emit_16(2011); -emit_16(2075); -emit_16(2010); -emit_16(2075); -emit_16(2011); -emit_16(2076); -emit_16(2012); -emit_16(2076); -emit_16(2011); -emit_16(2076); -emit_16(2012); -emit_16(2077); -emit_16(2013); -emit_16(2077); -emit_16(2012); -emit_16(2077); -emit_16(2013); -emit_16(2078); -emit_16(2014); -emit_16(2078); -emit_16(2013); -emit_16(2078); -emit_16(2014); -emit_16(2079); -emit_16(2015); -emit_16(2079); -emit_16(2014); -emit_16(2079); -emit_16(2015); -emit_16(2080); -emit_16(2016); -emit_16(2080); -emit_16(2015); -emit_16(2080); -emit_16(2016); -emit_16(2081); -emit_16(2017); -emit_16(2081); -emit_16(2016); -emit_16(2081); -emit_16(2017); -emit_16(2082); -emit_16(2018); -emit_16(2082); -emit_16(2017); -emit_16(2082); -emit_16(2018); -emit_16(2083); -emit_16(2019); -emit_16(2083); -emit_16(2018); -emit_16(2083); -emit_16(2019); -emit_16(2084); -emit_16(2020); -emit_16(2084); -emit_16(2019); -emit_16(2084); -emit_16(2020); -emit_16(2085); -emit_16(2021); -emit_16(2085); -emit_16(2020); -emit_16(2085); -emit_16(2021); -emit_16(2086); -emit_16(2022); -emit_16(2086); -emit_16(2021); -emit_16(2086); -emit_16(2022); -emit_16(2087); -emit_16(2023); -emit_16(2087); -emit_16(2022); -emit_16(2087); -emit_16(2023); -emit_16(2088); -emit_16(2024); -emit_16(2088); -emit_16(2023); -emit_16(2088); -emit_16(2024); -emit_16(2089); -emit_16(2025); -emit_16(2089); -emit_16(2024); -emit_16(2089); -emit_16(2025); -emit_16(2090); -emit_16(2026); -emit_16(2090); -emit_16(2025); -emit_16(2090); -emit_16(2026); -emit_16(2091); -emit_16(2027); -emit_16(2091); -emit_16(2026); -emit_16(2091); -emit_16(2027); -emit_16(2092); -emit_16(2028); -emit_16(2092); -emit_16(2027); -emit_16(2092); -emit_16(2028); -emit_16(2093); -emit_16(2029); -emit_16(2093); -emit_16(2028); -emit_16(2093); -emit_16(2029); -emit_16(2094); -emit_16(2030); -emit_16(2094); -emit_16(2029); -emit_16(2094); -emit_16(2030); -emit_16(2095); -emit_16(2031); -emit_16(2095); -emit_16(2030); -emit_16(2095); -emit_16(2031); -emit_16(2096); -emit_16(2032); -emit_16(2096); -emit_16(2031); -emit_16(2096); -emit_16(2032); -emit_16(2097); -emit_16(2033); -emit_16(2097); -emit_16(2032); -emit_16(2097); -emit_16(2033); -emit_16(2098); -emit_16(2034); -emit_16(2098); -emit_16(2033); -emit_16(2098); -emit_16(2034); -emit_16(2099); -emit_16(2035); -emit_16(2099); -emit_16(2034); -emit_16(2099); -emit_16(2035); -emit_16(2100); -emit_16(2036); -emit_16(2100); -emit_16(2035); -emit_16(2100); -emit_16(2036); -emit_16(2101); -emit_16(2037); -emit_16(2101); -emit_16(2036); -emit_16(2101); -emit_16(2037); -emit_16(2102); -emit_16(2038); -emit_16(2102); -emit_16(2037); -emit_16(2102); -emit_16(2038); -emit_16(2103); -emit_16(2039); -emit_16(2103); -emit_16(2038); -emit_16(2103); -emit_16(2039); -emit_16(2104); -emit_16(2040); -emit_16(2104); -emit_16(2039); -emit_16(2104); -emit_16(2040); -emit_16(2105); -emit_16(2041); -emit_16(2105); -emit_16(2040); -emit_16(2105); -emit_16(2041); -emit_16(2106); -emit_16(2042); -emit_16(2106); -emit_16(2041); -emit_16(2106); -emit_16(2042); -emit_16(2107); -emit_16(2043); -emit_16(2107); -emit_16(2042); -emit_16(2107); -emit_16(2043); -emit_16(2108); -emit_16(2044); -emit_16(2108); -emit_16(2043); -emit_16(2108); -emit_16(2044); -emit_16(2109); -emit_16(2045); -emit_16(2109); -emit_16(2044); -emit_16(2109); -emit_16(2045); -emit_16(2110); -emit_16(2046); -emit_16(2110); -emit_16(2045); -emit_16(2110); -emit_16(2046); -emit_16(2111); -emit_16(2047); -emit_16(2111); -emit_16(2046); -emit_start(Landscape05Idx) -emit_16(0); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(2); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(4); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(6); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(8); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(10); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(12); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(14); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(16); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(18); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(20); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(22); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(24); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(26); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(28); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(30); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(32); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(34); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(36); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(38); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(40); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(42); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(44); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(46); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(48); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(50); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(52); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(54); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(56); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(58); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(60); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(62); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(64); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(66); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(68); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(70); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(72); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(74); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(76); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(78); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(80); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(82); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(84); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(86); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(88); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(90); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(92); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(94); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(96); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(98); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(100); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(102); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(104); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(106); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(108); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(110); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(112); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(114); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(116); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(118); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(120); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(122); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(124); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(126); -emit_16(127); -emit_16(126); -emit_16(125); -emit_16(126); -emit_16(127); -emit_16(128); -emit_16(129); -emit_16(128); -emit_16(127); -emit_16(128); -emit_16(129); -emit_16(130); -emit_16(131); -emit_16(130); -emit_16(129); -emit_16(132); -emit_16(0); -emit_16(133); -emit_16(2); -emit_16(133); -emit_16(0); -emit_16(133); -emit_16(2); -emit_16(134); -emit_16(4); -emit_16(134); -emit_16(2); -emit_16(134); -emit_16(4); -emit_16(135); -emit_16(6); -emit_16(135); -emit_16(4); -emit_16(135); -emit_16(6); -emit_16(136); -emit_16(8); -emit_16(136); -emit_16(6); -emit_16(136); -emit_16(8); -emit_16(137); -emit_16(10); -emit_16(137); -emit_16(8); -emit_16(137); -emit_16(10); -emit_16(138); -emit_16(12); -emit_16(138); -emit_16(10); -emit_16(138); -emit_16(12); -emit_16(139); -emit_16(14); -emit_16(139); -emit_16(12); -emit_16(139); -emit_16(14); -emit_16(140); -emit_16(16); -emit_16(140); -emit_16(14); -emit_16(140); -emit_16(16); -emit_16(141); -emit_16(18); -emit_16(141); -emit_16(16); -emit_16(141); -emit_16(18); -emit_16(142); -emit_16(20); -emit_16(142); -emit_16(18); -emit_16(142); -emit_16(20); -emit_16(143); -emit_16(22); -emit_16(143); -emit_16(20); -emit_16(143); -emit_16(22); -emit_16(144); -emit_16(24); -emit_16(144); -emit_16(22); -emit_16(144); -emit_16(24); -emit_16(145); -emit_16(26); -emit_16(145); -emit_16(24); -emit_16(145); -emit_16(26); -emit_16(146); -emit_16(28); -emit_16(146); -emit_16(26); -emit_16(146); -emit_16(28); -emit_16(147); -emit_16(30); -emit_16(147); -emit_16(28); -emit_16(147); -emit_16(30); -emit_16(148); -emit_16(32); -emit_16(148); -emit_16(30); -emit_16(148); -emit_16(32); -emit_16(149); -emit_16(34); -emit_16(149); -emit_16(32); -emit_16(149); -emit_16(34); -emit_16(150); -emit_16(36); -emit_16(150); -emit_16(34); -emit_16(150); -emit_16(36); -emit_16(151); -emit_16(38); -emit_16(151); -emit_16(36); -emit_16(151); -emit_16(38); -emit_16(152); -emit_16(40); -emit_16(152); -emit_16(38); -emit_16(152); -emit_16(40); -emit_16(153); -emit_16(42); -emit_16(153); -emit_16(40); -emit_16(153); -emit_16(42); -emit_16(154); -emit_16(44); -emit_16(154); -emit_16(42); -emit_16(154); -emit_16(44); -emit_16(155); -emit_16(46); -emit_16(155); -emit_16(44); -emit_16(155); -emit_16(46); -emit_16(156); -emit_16(48); -emit_16(156); -emit_16(46); -emit_16(156); -emit_16(48); -emit_16(157); -emit_16(50); -emit_16(157); -emit_16(48); -emit_16(157); -emit_16(50); -emit_16(158); -emit_16(52); -emit_16(158); -emit_16(50); -emit_16(158); -emit_16(52); -emit_16(159); -emit_16(54); -emit_16(159); -emit_16(52); -emit_16(159); -emit_16(54); -emit_16(160); -emit_16(56); -emit_16(160); -emit_16(54); -emit_16(160); -emit_16(56); -emit_16(161); -emit_16(58); -emit_16(161); -emit_16(56); -emit_16(161); -emit_16(58); -emit_16(162); -emit_16(60); -emit_16(162); -emit_16(58); -emit_16(162); -emit_16(60); -emit_16(163); -emit_16(62); -emit_16(163); -emit_16(60); -emit_16(163); -emit_16(62); -emit_16(164); -emit_16(64); -emit_16(164); -emit_16(62); -emit_16(164); -emit_16(64); -emit_16(165); -emit_16(66); -emit_16(165); -emit_16(64); -emit_16(165); -emit_16(66); -emit_16(166); -emit_16(68); -emit_16(166); -emit_16(66); -emit_16(166); -emit_16(68); -emit_16(167); -emit_16(70); -emit_16(167); -emit_16(68); -emit_16(167); -emit_16(70); -emit_16(168); -emit_16(72); -emit_16(168); -emit_16(70); -emit_16(168); -emit_16(72); -emit_16(169); -emit_16(74); -emit_16(169); -emit_16(72); -emit_16(169); -emit_16(74); -emit_16(170); -emit_16(76); -emit_16(170); -emit_16(74); -emit_16(170); -emit_16(76); -emit_16(171); -emit_16(78); -emit_16(171); -emit_16(76); -emit_16(171); -emit_16(78); -emit_16(172); -emit_16(80); -emit_16(172); -emit_16(78); -emit_16(172); -emit_16(80); -emit_16(173); -emit_16(82); -emit_16(173); -emit_16(80); -emit_16(173); -emit_16(82); -emit_16(174); -emit_16(84); -emit_16(174); -emit_16(82); -emit_16(174); -emit_16(84); -emit_16(175); -emit_16(86); -emit_16(175); -emit_16(84); -emit_16(175); -emit_16(86); -emit_16(176); -emit_16(88); -emit_16(176); -emit_16(86); -emit_16(176); -emit_16(88); -emit_16(177); -emit_16(90); -emit_16(177); -emit_16(88); -emit_16(177); -emit_16(90); -emit_16(178); -emit_16(92); -emit_16(178); -emit_16(90); -emit_16(178); -emit_16(92); -emit_16(179); -emit_16(94); -emit_16(179); -emit_16(92); -emit_16(179); -emit_16(94); -emit_16(180); -emit_16(96); -emit_16(180); -emit_16(94); -emit_16(180); -emit_16(96); -emit_16(181); -emit_16(98); -emit_16(181); -emit_16(96); -emit_16(181); -emit_16(98); -emit_16(182); -emit_16(100); -emit_16(182); -emit_16(98); -emit_16(182); -emit_16(100); -emit_16(183); -emit_16(102); -emit_16(183); -emit_16(100); -emit_16(183); -emit_16(102); -emit_16(184); -emit_16(104); -emit_16(184); -emit_16(102); -emit_16(184); -emit_16(104); -emit_16(185); -emit_16(106); -emit_16(185); -emit_16(104); -emit_16(185); -emit_16(106); -emit_16(186); -emit_16(108); -emit_16(186); -emit_16(106); -emit_16(186); -emit_16(108); -emit_16(187); -emit_16(110); -emit_16(187); -emit_16(108); -emit_16(187); -emit_16(110); -emit_16(188); -emit_16(112); -emit_16(188); -emit_16(110); -emit_16(188); -emit_16(112); -emit_16(189); -emit_16(114); -emit_16(189); -emit_16(112); -emit_16(189); -emit_16(114); -emit_16(190); -emit_16(116); -emit_16(190); -emit_16(114); -emit_16(190); -emit_16(116); -emit_16(191); -emit_16(118); -emit_16(191); -emit_16(116); -emit_16(191); -emit_16(118); -emit_16(192); -emit_16(120); -emit_16(192); -emit_16(118); -emit_16(192); -emit_16(120); -emit_16(193); -emit_16(122); -emit_16(193); -emit_16(120); -emit_16(193); -emit_16(122); -emit_16(194); -emit_16(124); -emit_16(194); -emit_16(122); -emit_16(194); -emit_16(124); -emit_16(195); -emit_16(126); -emit_16(195); -emit_16(124); -emit_16(195); -emit_16(126); -emit_16(196); -emit_16(128); -emit_16(196); -emit_16(126); -emit_16(196); -emit_16(128); -emit_16(197); -emit_16(130); -emit_16(197); -emit_16(128); -emit_16(198); -emit_16(132); -emit_16(199); -emit_16(133); -emit_16(199); -emit_16(132); -emit_16(199); -emit_16(133); -emit_16(200); -emit_16(134); -emit_16(200); -emit_16(133); -emit_16(200); -emit_16(134); -emit_16(201); -emit_16(135); -emit_16(201); -emit_16(134); -emit_16(201); -emit_16(135); -emit_16(202); -emit_16(136); -emit_16(202); -emit_16(135); -emit_16(202); -emit_16(136); -emit_16(203); -emit_16(137); -emit_16(203); -emit_16(136); -emit_16(203); -emit_16(137); -emit_16(204); -emit_16(138); -emit_16(204); -emit_16(137); -emit_16(204); -emit_16(138); -emit_16(205); -emit_16(139); -emit_16(205); -emit_16(138); -emit_16(205); -emit_16(139); -emit_16(206); -emit_16(140); -emit_16(206); -emit_16(139); -emit_16(206); -emit_16(140); -emit_16(207); -emit_16(141); -emit_16(207); -emit_16(140); -emit_16(207); -emit_16(141); -emit_16(208); -emit_16(142); -emit_16(208); -emit_16(141); -emit_16(208); -emit_16(142); -emit_16(209); -emit_16(143); -emit_16(209); -emit_16(142); -emit_16(209); -emit_16(143); -emit_16(210); -emit_16(144); -emit_16(210); -emit_16(143); -emit_16(210); -emit_16(144); -emit_16(211); -emit_16(145); -emit_16(211); -emit_16(144); -emit_16(211); -emit_16(145); -emit_16(212); -emit_16(146); -emit_16(212); -emit_16(145); -emit_16(212); -emit_16(146); -emit_16(213); -emit_16(147); -emit_16(213); -emit_16(146); -emit_16(213); -emit_16(147); -emit_16(214); -emit_16(148); -emit_16(214); -emit_16(147); -emit_16(214); -emit_16(148); -emit_16(215); -emit_16(149); -emit_16(215); -emit_16(148); -emit_16(215); -emit_16(149); -emit_16(216); -emit_16(150); -emit_16(216); -emit_16(149); -emit_16(216); -emit_16(150); -emit_16(217); -emit_16(151); -emit_16(217); -emit_16(150); -emit_16(217); -emit_16(151); -emit_16(218); -emit_16(152); -emit_16(218); -emit_16(151); -emit_16(218); -emit_16(152); -emit_16(219); -emit_16(153); -emit_16(219); -emit_16(152); -emit_16(219); -emit_16(153); -emit_16(220); -emit_16(154); -emit_16(220); -emit_16(153); -emit_16(220); -emit_16(154); -emit_16(221); -emit_16(155); -emit_16(221); -emit_16(154); -emit_16(221); -emit_16(155); -emit_16(222); -emit_16(156); -emit_16(222); -emit_16(155); -emit_16(222); -emit_16(156); -emit_16(223); -emit_16(157); -emit_16(223); -emit_16(156); -emit_16(223); -emit_16(157); -emit_16(224); -emit_16(158); -emit_16(224); -emit_16(157); -emit_16(224); -emit_16(158); -emit_16(225); -emit_16(159); -emit_16(225); -emit_16(158); -emit_16(225); -emit_16(159); -emit_16(226); -emit_16(160); -emit_16(226); -emit_16(159); -emit_16(226); -emit_16(160); -emit_16(227); -emit_16(161); -emit_16(227); -emit_16(160); -emit_16(227); -emit_16(161); -emit_16(228); -emit_16(162); -emit_16(228); -emit_16(161); -emit_16(228); -emit_16(162); -emit_16(229); -emit_16(163); -emit_16(229); -emit_16(162); -emit_16(229); -emit_16(163); -emit_16(230); -emit_16(164); -emit_16(230); -emit_16(163); -emit_16(230); -emit_16(164); -emit_16(231); -emit_16(165); -emit_16(231); -emit_16(164); -emit_16(231); -emit_16(165); -emit_16(232); -emit_16(166); -emit_16(232); -emit_16(165); -emit_16(232); -emit_16(166); -emit_16(233); -emit_16(167); -emit_16(233); -emit_16(166); -emit_16(233); -emit_16(167); -emit_16(234); -emit_16(168); -emit_16(234); -emit_16(167); -emit_16(234); -emit_16(168); -emit_16(235); -emit_16(169); -emit_16(235); -emit_16(168); -emit_16(235); -emit_16(169); -emit_16(236); -emit_16(170); -emit_16(236); -emit_16(169); -emit_16(236); -emit_16(170); -emit_16(237); -emit_16(171); -emit_16(237); -emit_16(170); -emit_16(237); -emit_16(171); -emit_16(238); -emit_16(172); -emit_16(238); -emit_16(171); -emit_16(238); -emit_16(172); -emit_16(239); -emit_16(173); -emit_16(239); -emit_16(172); -emit_16(239); -emit_16(173); -emit_16(240); -emit_16(174); -emit_16(240); -emit_16(173); -emit_16(240); -emit_16(174); -emit_16(241); -emit_16(175); -emit_16(241); -emit_16(174); -emit_16(241); -emit_16(175); -emit_16(242); -emit_16(176); -emit_16(242); -emit_16(175); -emit_16(242); -emit_16(176); -emit_16(243); -emit_16(177); -emit_16(243); -emit_16(176); -emit_16(243); -emit_16(177); -emit_16(244); -emit_16(178); -emit_16(244); -emit_16(177); -emit_16(244); -emit_16(178); -emit_16(245); -emit_16(179); -emit_16(245); -emit_16(178); -emit_16(245); -emit_16(179); -emit_16(246); -emit_16(180); -emit_16(246); -emit_16(179); -emit_16(246); -emit_16(180); -emit_16(247); -emit_16(181); -emit_16(247); -emit_16(180); -emit_16(247); -emit_16(181); -emit_16(248); -emit_16(182); -emit_16(248); -emit_16(181); -emit_16(248); -emit_16(182); -emit_16(249); -emit_16(183); -emit_16(249); -emit_16(182); -emit_16(249); -emit_16(183); -emit_16(250); -emit_16(184); -emit_16(250); -emit_16(183); -emit_16(250); -emit_16(184); -emit_16(251); -emit_16(185); -emit_16(251); -emit_16(184); -emit_16(251); -emit_16(185); -emit_16(252); -emit_16(186); -emit_16(252); -emit_16(185); -emit_16(252); -emit_16(186); -emit_16(253); -emit_16(187); -emit_16(253); -emit_16(186); -emit_16(253); -emit_16(187); -emit_16(254); -emit_16(188); -emit_16(254); -emit_16(187); -emit_16(254); -emit_16(188); -emit_16(255); -emit_16(189); -emit_16(255); -emit_16(188); -emit_16(255); -emit_16(189); -emit_16(256); -emit_16(190); -emit_16(256); -emit_16(189); -emit_16(256); -emit_16(190); -emit_16(257); -emit_16(191); -emit_16(257); -emit_16(190); -emit_16(257); -emit_16(191); -emit_16(258); -emit_16(192); -emit_16(258); -emit_16(191); -emit_16(258); -emit_16(192); -emit_16(259); -emit_16(193); -emit_16(259); -emit_16(192); -emit_16(259); -emit_16(193); -emit_16(260); -emit_16(194); -emit_16(260); -emit_16(193); -emit_16(260); -emit_16(194); -emit_16(261); -emit_16(195); -emit_16(261); -emit_16(194); -emit_16(261); -emit_16(195); -emit_16(262); -emit_16(196); -emit_16(262); -emit_16(195); -emit_16(262); -emit_16(196); -emit_16(263); -emit_16(197); -emit_16(263); -emit_16(196); -emit_16(264); -emit_16(198); -emit_16(265); -emit_16(199); -emit_16(265); -emit_16(198); -emit_16(265); -emit_16(199); -emit_16(266); -emit_16(200); -emit_16(266); -emit_16(199); -emit_16(266); -emit_16(200); -emit_16(267); -emit_16(201); -emit_16(267); -emit_16(200); -emit_16(267); -emit_16(201); -emit_16(268); -emit_16(202); -emit_16(268); -emit_16(201); -emit_16(268); -emit_16(202); -emit_16(269); -emit_16(203); -emit_16(269); -emit_16(202); -emit_16(269); -emit_16(203); -emit_16(270); -emit_16(204); -emit_16(270); -emit_16(203); -emit_16(270); -emit_16(204); -emit_16(271); -emit_16(205); -emit_16(271); -emit_16(204); -emit_16(271); -emit_16(205); -emit_16(272); -emit_16(206); -emit_16(272); -emit_16(205); -emit_16(272); -emit_16(206); -emit_16(273); -emit_16(207); -emit_16(273); -emit_16(206); -emit_16(273); -emit_16(207); -emit_16(274); -emit_16(208); -emit_16(274); -emit_16(207); -emit_16(274); -emit_16(208); -emit_16(275); -emit_16(209); -emit_16(275); -emit_16(208); -emit_16(275); -emit_16(209); -emit_16(276); -emit_16(210); -emit_16(276); -emit_16(209); -emit_16(276); -emit_16(210); -emit_16(277); -emit_16(211); -emit_16(277); -emit_16(210); -emit_16(277); -emit_16(211); -emit_16(278); -emit_16(212); -emit_16(278); -emit_16(211); -emit_16(278); -emit_16(212); -emit_16(279); -emit_16(213); -emit_16(279); -emit_16(212); -emit_16(279); -emit_16(213); -emit_16(280); -emit_16(214); -emit_16(280); -emit_16(213); -emit_16(280); -emit_16(214); -emit_16(281); -emit_16(215); -emit_16(281); -emit_16(214); -emit_16(281); -emit_16(215); -emit_16(282); -emit_16(216); -emit_16(282); -emit_16(215); -emit_16(282); -emit_16(216); -emit_16(283); -emit_16(217); -emit_16(283); -emit_16(216); -emit_16(283); -emit_16(217); -emit_16(284); -emit_16(218); -emit_16(284); -emit_16(217); -emit_16(284); -emit_16(218); -emit_16(285); -emit_16(219); -emit_16(285); -emit_16(218); -emit_16(285); -emit_16(219); -emit_16(286); -emit_16(220); -emit_16(286); -emit_16(219); -emit_16(286); -emit_16(220); -emit_16(287); -emit_16(221); -emit_16(287); -emit_16(220); -emit_16(287); -emit_16(221); -emit_16(288); -emit_16(222); -emit_16(288); -emit_16(221); -emit_16(288); -emit_16(222); -emit_16(289); -emit_16(223); -emit_16(289); -emit_16(222); -emit_16(289); -emit_16(223); -emit_16(290); -emit_16(224); -emit_16(290); -emit_16(223); -emit_16(290); -emit_16(224); -emit_16(291); -emit_16(225); -emit_16(291); -emit_16(224); -emit_16(291); -emit_16(225); -emit_16(292); -emit_16(226); -emit_16(292); -emit_16(225); -emit_16(292); -emit_16(226); -emit_16(293); -emit_16(227); -emit_16(293); -emit_16(226); -emit_16(293); -emit_16(227); -emit_16(294); -emit_16(228); -emit_16(294); -emit_16(227); -emit_16(294); -emit_16(228); -emit_16(295); -emit_16(229); -emit_16(295); -emit_16(228); -emit_16(295); -emit_16(229); -emit_16(296); -emit_16(230); -emit_16(296); -emit_16(229); -emit_16(296); -emit_16(230); -emit_16(297); -emit_16(231); -emit_16(297); -emit_16(230); -emit_16(297); -emit_16(231); -emit_16(298); -emit_16(232); -emit_16(298); -emit_16(231); -emit_16(298); -emit_16(232); -emit_16(299); -emit_16(233); -emit_16(299); -emit_16(232); -emit_16(299); -emit_16(233); -emit_16(300); -emit_16(234); -emit_16(300); -emit_16(233); -emit_16(300); -emit_16(234); -emit_16(301); -emit_16(235); -emit_16(301); -emit_16(234); -emit_16(301); -emit_16(235); -emit_16(302); -emit_16(236); -emit_16(302); -emit_16(235); -emit_16(302); -emit_16(236); -emit_16(303); -emit_16(237); -emit_16(303); -emit_16(236); -emit_16(303); -emit_16(237); -emit_16(304); -emit_16(238); -emit_16(304); -emit_16(237); -emit_16(304); -emit_16(238); -emit_16(305); -emit_16(239); -emit_16(305); -emit_16(238); -emit_16(305); -emit_16(239); -emit_16(306); -emit_16(240); -emit_16(306); -emit_16(239); -emit_16(306); -emit_16(240); -emit_16(307); -emit_16(241); -emit_16(307); -emit_16(240); -emit_16(307); -emit_16(241); -emit_16(308); -emit_16(242); -emit_16(308); -emit_16(241); -emit_16(308); -emit_16(242); -emit_16(309); -emit_16(243); -emit_16(309); -emit_16(242); -emit_16(309); -emit_16(243); -emit_16(310); -emit_16(244); -emit_16(310); -emit_16(243); -emit_16(310); -emit_16(244); -emit_16(311); -emit_16(245); -emit_16(311); -emit_16(244); -emit_16(311); -emit_16(245); -emit_16(312); -emit_16(246); -emit_16(312); -emit_16(245); -emit_16(312); -emit_16(246); -emit_16(313); -emit_16(247); -emit_16(313); -emit_16(246); -emit_16(313); -emit_16(247); -emit_16(314); -emit_16(248); -emit_16(314); -emit_16(247); -emit_16(314); -emit_16(248); -emit_16(315); -emit_16(249); -emit_16(315); -emit_16(248); -emit_16(315); -emit_16(249); -emit_16(316); -emit_16(250); -emit_16(316); -emit_16(249); -emit_16(316); -emit_16(250); -emit_16(317); -emit_16(251); -emit_16(317); -emit_16(250); -emit_16(317); -emit_16(251); -emit_16(318); -emit_16(252); -emit_16(318); -emit_16(251); -emit_16(318); -emit_16(252); -emit_16(319); -emit_16(253); -emit_16(319); -emit_16(252); -emit_16(319); -emit_16(253); -emit_16(320); -emit_16(254); -emit_16(320); -emit_16(253); -emit_16(320); -emit_16(254); -emit_16(321); -emit_16(255); -emit_16(321); -emit_16(254); -emit_16(321); -emit_16(255); -emit_16(322); -emit_16(256); -emit_16(322); -emit_16(255); -emit_16(322); -emit_16(256); -emit_16(323); -emit_16(257); -emit_16(323); -emit_16(256); -emit_16(323); -emit_16(257); -emit_16(324); -emit_16(258); -emit_16(324); -emit_16(257); -emit_16(324); -emit_16(258); -emit_16(325); -emit_16(259); -emit_16(325); -emit_16(258); -emit_16(325); -emit_16(259); -emit_16(326); -emit_16(260); -emit_16(326); -emit_16(259); -emit_16(326); -emit_16(260); -emit_16(327); -emit_16(261); -emit_16(327); -emit_16(260); -emit_16(327); -emit_16(261); -emit_16(328); -emit_16(262); -emit_16(328); -emit_16(261); -emit_16(328); -emit_16(262); -emit_16(329); -emit_16(263); -emit_16(329); -emit_16(262); -emit_16(330); -emit_16(264); -emit_16(331); -emit_16(265); -emit_16(331); -emit_16(264); -emit_16(331); -emit_16(265); -emit_16(332); -emit_16(266); -emit_16(332); -emit_16(265); -emit_16(332); -emit_16(266); -emit_16(333); -emit_16(267); -emit_16(333); -emit_16(266); -emit_16(333); -emit_16(267); -emit_16(334); -emit_16(268); -emit_16(334); -emit_16(267); -emit_16(334); -emit_16(268); -emit_16(335); -emit_16(269); -emit_16(335); -emit_16(268); -emit_16(335); -emit_16(269); -emit_16(336); -emit_16(270); -emit_16(336); -emit_16(269); -emit_16(336); -emit_16(270); -emit_16(337); -emit_16(271); -emit_16(337); -emit_16(270); -emit_16(337); -emit_16(271); -emit_16(338); -emit_16(272); -emit_16(338); -emit_16(271); -emit_16(338); -emit_16(272); -emit_16(339); -emit_16(273); -emit_16(339); -emit_16(272); -emit_16(339); -emit_16(273); -emit_16(340); -emit_16(274); -emit_16(340); -emit_16(273); -emit_16(340); -emit_16(274); -emit_16(341); -emit_16(275); -emit_16(341); -emit_16(274); -emit_16(341); -emit_16(275); -emit_16(342); -emit_16(276); -emit_16(342); -emit_16(275); -emit_16(342); -emit_16(276); -emit_16(343); -emit_16(277); -emit_16(343); -emit_16(276); -emit_16(343); -emit_16(277); -emit_16(344); -emit_16(278); -emit_16(344); -emit_16(277); -emit_16(344); -emit_16(278); -emit_16(345); -emit_16(279); -emit_16(345); -emit_16(278); -emit_16(345); -emit_16(279); -emit_16(346); -emit_16(280); -emit_16(346); -emit_16(279); -emit_16(346); -emit_16(280); -emit_16(347); -emit_16(281); -emit_16(347); -emit_16(280); -emit_16(347); -emit_16(281); -emit_16(348); -emit_16(282); -emit_16(348); -emit_16(281); -emit_16(348); -emit_16(282); -emit_16(349); -emit_16(283); -emit_16(349); -emit_16(282); -emit_16(349); -emit_16(283); -emit_16(350); -emit_16(284); -emit_16(350); -emit_16(283); -emit_16(350); -emit_16(284); -emit_16(351); -emit_16(285); -emit_16(351); -emit_16(284); -emit_16(351); -emit_16(285); -emit_16(352); -emit_16(286); -emit_16(352); -emit_16(285); -emit_16(352); -emit_16(286); -emit_16(353); -emit_16(287); -emit_16(353); -emit_16(286); -emit_16(353); -emit_16(287); -emit_16(354); -emit_16(288); -emit_16(354); -emit_16(287); -emit_16(354); -emit_16(288); -emit_16(355); -emit_16(289); -emit_16(355); -emit_16(288); -emit_16(355); -emit_16(289); -emit_16(356); -emit_16(290); -emit_16(356); -emit_16(289); -emit_16(356); -emit_16(290); -emit_16(357); -emit_16(291); -emit_16(357); -emit_16(290); -emit_16(357); -emit_16(291); -emit_16(358); -emit_16(292); -emit_16(358); -emit_16(291); -emit_16(358); -emit_16(292); -emit_16(359); -emit_16(293); -emit_16(359); -emit_16(292); -emit_16(359); -emit_16(293); -emit_16(360); -emit_16(294); -emit_16(360); -emit_16(293); -emit_16(360); -emit_16(294); -emit_16(361); -emit_16(295); -emit_16(361); -emit_16(294); -emit_16(361); -emit_16(295); -emit_16(362); -emit_16(296); -emit_16(362); -emit_16(295); -emit_16(362); -emit_16(296); -emit_16(363); -emit_16(297); -emit_16(363); -emit_16(296); -emit_16(363); -emit_16(297); -emit_16(364); -emit_16(298); -emit_16(364); -emit_16(297); -emit_16(364); -emit_16(298); -emit_16(365); -emit_16(299); -emit_16(365); -emit_16(298); -emit_16(365); -emit_16(299); -emit_16(366); -emit_16(300); -emit_16(366); -emit_16(299); -emit_16(366); -emit_16(300); -emit_16(367); -emit_16(301); -emit_16(367); -emit_16(300); -emit_16(367); -emit_16(301); -emit_16(368); -emit_16(302); -emit_16(368); -emit_16(301); -emit_16(368); -emit_16(302); -emit_16(369); -emit_16(303); -emit_16(369); -emit_16(302); -emit_16(369); -emit_16(303); -emit_16(370); -emit_16(304); -emit_16(370); -emit_16(303); -emit_16(370); -emit_16(304); -emit_16(371); -emit_16(305); -emit_16(371); -emit_16(304); -emit_16(371); -emit_16(305); -emit_16(372); -emit_16(306); -emit_16(372); -emit_16(305); -emit_16(372); -emit_16(306); -emit_16(373); -emit_16(307); -emit_16(373); -emit_16(306); -emit_16(373); -emit_16(307); -emit_16(374); -emit_16(308); -emit_16(374); -emit_16(307); -emit_16(374); -emit_16(308); -emit_16(375); -emit_16(309); -emit_16(375); -emit_16(308); -emit_16(375); -emit_16(309); -emit_16(376); -emit_16(310); -emit_16(376); -emit_16(309); -emit_16(376); -emit_16(310); -emit_16(377); -emit_16(311); -emit_16(377); -emit_16(310); -emit_16(377); -emit_16(311); -emit_16(378); -emit_16(312); -emit_16(378); -emit_16(311); -emit_16(378); -emit_16(312); -emit_16(379); -emit_16(313); -emit_16(379); -emit_16(312); -emit_16(379); -emit_16(313); -emit_16(380); -emit_16(314); -emit_16(380); -emit_16(313); -emit_16(380); -emit_16(314); -emit_16(381); -emit_16(315); -emit_16(381); -emit_16(314); -emit_16(381); -emit_16(315); -emit_16(382); -emit_16(316); -emit_16(382); -emit_16(315); -emit_16(382); -emit_16(316); -emit_16(383); -emit_16(317); -emit_16(383); -emit_16(316); -emit_16(383); -emit_16(317); -emit_16(384); -emit_16(318); -emit_16(384); -emit_16(317); -emit_16(384); -emit_16(318); -emit_16(385); -emit_16(319); -emit_16(385); -emit_16(318); -emit_16(385); -emit_16(319); -emit_16(386); -emit_16(320); -emit_16(386); -emit_16(319); -emit_16(386); -emit_16(320); -emit_16(387); -emit_16(321); -emit_16(387); -emit_16(320); -emit_16(387); -emit_16(321); -emit_16(388); -emit_16(322); -emit_16(388); -emit_16(321); -emit_16(388); -emit_16(322); -emit_16(389); -emit_16(323); -emit_16(389); -emit_16(322); -emit_16(389); -emit_16(323); -emit_16(390); -emit_16(324); -emit_16(390); -emit_16(323); -emit_16(390); -emit_16(324); -emit_16(391); -emit_16(325); -emit_16(391); -emit_16(324); -emit_16(391); -emit_16(325); -emit_16(392); -emit_16(326); -emit_16(392); -emit_16(325); -emit_16(392); -emit_16(326); -emit_16(393); -emit_16(327); -emit_16(393); -emit_16(326); -emit_16(393); -emit_16(327); -emit_16(394); -emit_16(328); -emit_16(394); -emit_16(327); -emit_16(394); -emit_16(328); -emit_16(395); -emit_16(329); -emit_16(395); -emit_16(328); -emit_16(396); -emit_16(330); -emit_16(397); -emit_16(331); -emit_16(397); -emit_16(330); -emit_16(397); -emit_16(331); -emit_16(398); -emit_16(332); -emit_16(398); -emit_16(331); -emit_16(398); -emit_16(332); -emit_16(399); -emit_16(333); -emit_16(399); -emit_16(332); -emit_16(399); -emit_16(333); -emit_16(400); -emit_16(334); -emit_16(400); -emit_16(333); -emit_16(400); -emit_16(334); -emit_16(401); -emit_16(335); -emit_16(401); -emit_16(334); -emit_16(401); -emit_16(335); -emit_16(402); -emit_16(336); -emit_16(402); -emit_16(335); -emit_16(402); -emit_16(336); -emit_16(403); -emit_16(337); -emit_16(403); -emit_16(336); -emit_16(403); -emit_16(337); -emit_16(404); -emit_16(338); -emit_16(404); -emit_16(337); -emit_16(404); -emit_16(338); -emit_16(405); -emit_16(339); -emit_16(405); -emit_16(338); -emit_16(405); -emit_16(339); -emit_16(406); -emit_16(340); -emit_16(406); -emit_16(339); -emit_16(406); -emit_16(340); -emit_16(407); -emit_16(341); -emit_16(407); -emit_16(340); -emit_16(407); -emit_16(341); -emit_16(408); -emit_16(342); -emit_16(408); -emit_16(341); -emit_16(408); -emit_16(342); -emit_16(409); -emit_16(343); -emit_16(409); -emit_16(342); -emit_16(409); -emit_16(343); -emit_16(410); -emit_16(344); -emit_16(410); -emit_16(343); -emit_16(410); -emit_16(344); -emit_16(411); -emit_16(345); -emit_16(411); -emit_16(344); -emit_16(411); -emit_16(345); -emit_16(412); -emit_16(346); -emit_16(412); -emit_16(345); -emit_16(412); -emit_16(346); -emit_16(413); -emit_16(347); -emit_16(413); -emit_16(346); -emit_16(413); -emit_16(347); -emit_16(414); -emit_16(348); -emit_16(414); -emit_16(347); -emit_16(414); -emit_16(348); -emit_16(415); -emit_16(349); -emit_16(415); -emit_16(348); -emit_16(415); -emit_16(349); -emit_16(416); -emit_16(350); -emit_16(416); -emit_16(349); -emit_16(416); -emit_16(350); -emit_16(417); -emit_16(351); -emit_16(417); -emit_16(350); -emit_16(417); -emit_16(351); -emit_16(418); -emit_16(352); -emit_16(418); -emit_16(351); -emit_16(418); -emit_16(352); -emit_16(419); -emit_16(353); -emit_16(419); -emit_16(352); -emit_16(419); -emit_16(353); -emit_16(420); -emit_16(354); -emit_16(420); -emit_16(353); -emit_16(420); -emit_16(354); -emit_16(421); -emit_16(355); -emit_16(421); -emit_16(354); -emit_16(421); -emit_16(355); -emit_16(422); -emit_16(356); -emit_16(422); -emit_16(355); -emit_16(422); -emit_16(356); -emit_16(423); -emit_16(357); -emit_16(423); -emit_16(356); -emit_16(423); -emit_16(357); -emit_16(424); -emit_16(358); -emit_16(424); -emit_16(357); -emit_16(424); -emit_16(358); -emit_16(425); -emit_16(359); -emit_16(425); -emit_16(358); -emit_16(425); -emit_16(359); -emit_16(426); -emit_16(360); -emit_16(426); -emit_16(359); -emit_16(426); -emit_16(360); -emit_16(427); -emit_16(361); -emit_16(427); -emit_16(360); -emit_16(427); -emit_16(361); -emit_16(428); -emit_16(362); -emit_16(428); -emit_16(361); -emit_16(428); -emit_16(362); -emit_16(429); -emit_16(363); -emit_16(429); -emit_16(362); -emit_16(429); -emit_16(363); -emit_16(430); -emit_16(364); -emit_16(430); -emit_16(363); -emit_16(430); -emit_16(364); -emit_16(431); -emit_16(365); -emit_16(431); -emit_16(364); -emit_16(431); -emit_16(365); -emit_16(432); -emit_16(366); -emit_16(432); -emit_16(365); -emit_16(432); -emit_16(366); -emit_16(433); -emit_16(367); -emit_16(433); -emit_16(366); -emit_16(433); -emit_16(367); -emit_16(434); -emit_16(368); -emit_16(434); -emit_16(367); -emit_16(434); -emit_16(368); -emit_16(435); -emit_16(369); -emit_16(435); -emit_16(368); -emit_16(435); -emit_16(369); -emit_16(436); -emit_16(370); -emit_16(436); -emit_16(369); -emit_16(436); -emit_16(370); -emit_16(437); -emit_16(371); -emit_16(437); -emit_16(370); -emit_16(437); -emit_16(371); -emit_16(438); -emit_16(372); -emit_16(438); -emit_16(371); -emit_16(438); -emit_16(372); -emit_16(439); -emit_16(373); -emit_16(439); -emit_16(372); -emit_16(439); -emit_16(373); -emit_16(440); -emit_16(374); -emit_16(440); -emit_16(373); -emit_16(440); -emit_16(374); -emit_16(441); -emit_16(375); -emit_16(441); -emit_16(374); -emit_16(441); -emit_16(375); -emit_16(442); -emit_16(376); -emit_16(442); -emit_16(375); -emit_16(442); -emit_16(376); -emit_16(443); -emit_16(377); -emit_16(443); -emit_16(376); -emit_16(443); -emit_16(377); -emit_16(444); -emit_16(378); -emit_16(444); -emit_16(377); -emit_16(444); -emit_16(378); -emit_16(445); -emit_16(379); -emit_16(445); -emit_16(378); -emit_16(445); -emit_16(379); -emit_16(446); -emit_16(380); -emit_16(446); -emit_16(379); -emit_16(446); -emit_16(380); -emit_16(447); -emit_16(381); -emit_16(447); -emit_16(380); -emit_16(447); -emit_16(381); -emit_16(448); -emit_16(382); -emit_16(448); -emit_16(381); -emit_16(448); -emit_16(382); -emit_16(449); -emit_16(383); -emit_16(449); -emit_16(382); -emit_16(449); -emit_16(383); -emit_16(450); -emit_16(384); -emit_16(450); -emit_16(383); -emit_16(450); -emit_16(384); -emit_16(451); -emit_16(385); -emit_16(451); -emit_16(384); -emit_16(451); -emit_16(385); -emit_16(452); -emit_16(386); -emit_16(452); -emit_16(385); -emit_16(452); -emit_16(386); -emit_16(453); -emit_16(387); -emit_16(453); -emit_16(386); -emit_16(453); -emit_16(387); -emit_16(454); -emit_16(388); -emit_16(454); -emit_16(387); -emit_16(454); -emit_16(388); -emit_16(455); -emit_16(389); -emit_16(455); -emit_16(388); -emit_16(455); -emit_16(389); -emit_16(456); -emit_16(390); -emit_16(456); -emit_16(389); -emit_16(456); -emit_16(390); -emit_16(457); -emit_16(391); -emit_16(457); -emit_16(390); -emit_16(457); -emit_16(391); -emit_16(458); -emit_16(392); -emit_16(458); -emit_16(391); -emit_16(458); -emit_16(392); -emit_16(459); -emit_16(393); -emit_16(459); -emit_16(392); -emit_16(459); -emit_16(393); -emit_16(460); -emit_16(394); -emit_16(460); -emit_16(393); -emit_16(460); -emit_16(394); -emit_16(461); -emit_16(395); -emit_16(461); -emit_16(394); -emit_16(462); -emit_16(396); -emit_16(463); -emit_16(397); -emit_16(463); -emit_16(396); -emit_16(463); -emit_16(397); -emit_16(464); -emit_16(398); -emit_16(464); -emit_16(397); -emit_16(464); -emit_16(398); -emit_16(465); -emit_16(399); -emit_16(465); -emit_16(398); -emit_16(465); -emit_16(399); -emit_16(466); -emit_16(400); -emit_16(466); -emit_16(399); -emit_16(466); -emit_16(400); -emit_16(467); -emit_16(401); -emit_16(467); -emit_16(400); -emit_16(467); -emit_16(401); -emit_16(468); -emit_16(402); -emit_16(468); -emit_16(401); -emit_16(468); -emit_16(402); -emit_16(469); -emit_16(403); -emit_16(469); -emit_16(402); -emit_16(469); -emit_16(403); -emit_16(470); -emit_16(404); -emit_16(470); -emit_16(403); -emit_16(470); -emit_16(404); -emit_16(471); -emit_16(405); -emit_16(471); -emit_16(404); -emit_16(471); -emit_16(405); -emit_16(472); -emit_16(406); -emit_16(472); -emit_16(405); -emit_16(472); -emit_16(406); -emit_16(473); -emit_16(407); -emit_16(473); -emit_16(406); -emit_16(473); -emit_16(407); -emit_16(474); -emit_16(408); -emit_16(474); -emit_16(407); -emit_16(474); -emit_16(408); -emit_16(475); -emit_16(409); -emit_16(475); -emit_16(408); -emit_16(475); -emit_16(409); -emit_16(476); -emit_16(410); -emit_16(476); -emit_16(409); -emit_16(476); -emit_16(410); -emit_16(477); -emit_16(411); -emit_16(477); -emit_16(410); -emit_16(477); -emit_16(411); -emit_16(478); -emit_16(412); -emit_16(478); -emit_16(411); -emit_16(478); -emit_16(412); -emit_16(479); -emit_16(413); -emit_16(479); -emit_16(412); -emit_16(479); -emit_16(413); -emit_16(480); -emit_16(414); -emit_16(480); -emit_16(413); -emit_16(480); -emit_16(414); -emit_16(481); -emit_16(415); -emit_16(481); -emit_16(414); -emit_16(481); -emit_16(415); -emit_16(482); -emit_16(416); -emit_16(482); -emit_16(415); -emit_16(482); -emit_16(416); -emit_16(483); -emit_16(417); -emit_16(483); -emit_16(416); -emit_16(483); -emit_16(417); -emit_16(484); -emit_16(418); -emit_16(484); -emit_16(417); -emit_16(484); -emit_16(418); -emit_16(485); -emit_16(419); -emit_16(485); -emit_16(418); -emit_16(485); -emit_16(419); -emit_16(486); -emit_16(420); -emit_16(486); -emit_16(419); -emit_16(486); -emit_16(420); -emit_16(487); -emit_16(421); -emit_16(487); -emit_16(420); -emit_16(487); -emit_16(421); -emit_16(488); -emit_16(422); -emit_16(488); -emit_16(421); -emit_16(488); -emit_16(422); -emit_16(489); -emit_16(423); -emit_16(489); -emit_16(422); -emit_16(489); -emit_16(423); -emit_16(490); -emit_16(424); -emit_16(490); -emit_16(423); -emit_16(490); -emit_16(424); -emit_16(491); -emit_16(425); -emit_16(491); -emit_16(424); -emit_16(491); -emit_16(425); -emit_16(492); -emit_16(426); -emit_16(492); -emit_16(425); -emit_16(492); -emit_16(426); -emit_16(493); -emit_16(427); -emit_16(493); -emit_16(426); -emit_16(493); -emit_16(427); -emit_16(494); -emit_16(428); -emit_16(494); -emit_16(427); -emit_16(494); -emit_16(428); -emit_16(495); -emit_16(429); -emit_16(495); -emit_16(428); -emit_16(495); -emit_16(429); -emit_16(496); -emit_16(430); -emit_16(496); -emit_16(429); -emit_16(496); -emit_16(430); -emit_16(497); -emit_16(431); -emit_16(497); -emit_16(430); -emit_16(497); -emit_16(431); -emit_16(498); -emit_16(432); -emit_16(498); -emit_16(431); -emit_16(498); -emit_16(432); -emit_16(499); -emit_16(433); -emit_16(499); -emit_16(432); -emit_16(499); -emit_16(433); -emit_16(500); -emit_16(434); -emit_16(500); -emit_16(433); -emit_16(500); -emit_16(434); -emit_16(501); -emit_16(435); -emit_16(501); -emit_16(434); -emit_16(501); -emit_16(435); -emit_16(502); -emit_16(436); -emit_16(502); -emit_16(435); -emit_16(502); -emit_16(436); -emit_16(503); -emit_16(437); -emit_16(503); -emit_16(436); -emit_16(503); -emit_16(437); -emit_16(504); -emit_16(438); -emit_16(504); -emit_16(437); -emit_16(504); -emit_16(438); -emit_16(505); -emit_16(439); -emit_16(505); -emit_16(438); -emit_16(505); -emit_16(439); -emit_16(506); -emit_16(440); -emit_16(506); -emit_16(439); -emit_16(506); -emit_16(440); -emit_16(507); -emit_16(441); -emit_16(507); -emit_16(440); -emit_16(507); -emit_16(441); -emit_16(508); -emit_16(442); -emit_16(508); -emit_16(441); -emit_16(508); -emit_16(442); -emit_16(509); -emit_16(443); -emit_16(509); -emit_16(442); -emit_16(509); -emit_16(443); -emit_16(510); -emit_16(444); -emit_16(510); -emit_16(443); -emit_16(510); -emit_16(444); -emit_16(511); -emit_16(445); -emit_16(511); -emit_16(444); -emit_16(511); -emit_16(445); -emit_16(512); -emit_16(446); -emit_16(512); -emit_16(445); -emit_16(512); -emit_16(446); -emit_16(513); -emit_16(447); -emit_16(513); -emit_16(446); -emit_16(513); -emit_16(447); -emit_16(514); -emit_16(448); -emit_16(514); -emit_16(447); -emit_16(514); -emit_16(448); -emit_16(515); -emit_16(449); -emit_16(515); -emit_16(448); -emit_16(515); -emit_16(449); -emit_16(516); -emit_16(450); -emit_16(516); -emit_16(449); -emit_16(516); -emit_16(450); -emit_16(517); -emit_16(451); -emit_16(517); -emit_16(450); -emit_16(517); -emit_16(451); -emit_16(518); -emit_16(452); -emit_16(518); -emit_16(451); -emit_16(518); -emit_16(452); -emit_16(519); -emit_16(453); -emit_16(519); -emit_16(452); -emit_16(519); -emit_16(453); -emit_16(520); -emit_16(454); -emit_16(520); -emit_16(453); -emit_16(520); -emit_16(454); -emit_16(521); -emit_16(455); -emit_16(521); -emit_16(454); -emit_16(521); -emit_16(455); -emit_16(522); -emit_16(456); -emit_16(522); -emit_16(455); -emit_16(522); -emit_16(456); -emit_16(523); -emit_16(457); -emit_16(523); -emit_16(456); -emit_16(523); -emit_16(457); -emit_16(524); -emit_16(458); -emit_16(524); -emit_16(457); -emit_16(524); -emit_16(458); -emit_16(525); -emit_16(459); -emit_16(525); -emit_16(458); -emit_16(525); -emit_16(459); -emit_16(526); -emit_16(460); -emit_16(526); -emit_16(459); -emit_16(526); -emit_16(460); -emit_16(527); -emit_16(461); -emit_16(527); -emit_16(460); -emit_16(528); -emit_16(462); -emit_16(529); -emit_16(463); -emit_16(529); -emit_16(462); -emit_16(529); -emit_16(463); -emit_16(530); -emit_16(464); -emit_16(530); -emit_16(463); -emit_16(530); -emit_16(464); -emit_16(531); -emit_16(465); -emit_16(531); -emit_16(464); -emit_16(531); -emit_16(465); -emit_16(532); -emit_16(466); -emit_16(532); -emit_16(465); -emit_16(532); -emit_16(466); -emit_16(533); -emit_16(467); -emit_16(533); -emit_16(466); -emit_16(533); -emit_16(467); -emit_16(534); -emit_16(468); -emit_16(534); -emit_16(467); -emit_16(534); -emit_16(468); -emit_16(535); -emit_16(469); -emit_16(535); -emit_16(468); -emit_16(535); -emit_16(469); -emit_16(536); -emit_16(470); -emit_16(536); -emit_16(469); -emit_16(536); -emit_16(470); -emit_16(537); -emit_16(471); -emit_16(537); -emit_16(470); -emit_16(537); -emit_16(471); -emit_16(538); -emit_16(472); -emit_16(538); -emit_16(471); -emit_16(538); -emit_16(472); -emit_16(539); -emit_16(473); -emit_16(539); -emit_16(472); -emit_16(539); -emit_16(473); -emit_16(540); -emit_16(474); -emit_16(540); -emit_16(473); -emit_16(540); -emit_16(474); -emit_16(541); -emit_16(475); -emit_16(541); -emit_16(474); -emit_16(541); -emit_16(475); -emit_16(542); -emit_16(476); -emit_16(542); -emit_16(475); -emit_16(542); -emit_16(476); -emit_16(543); -emit_16(477); -emit_16(543); -emit_16(476); -emit_16(543); -emit_16(477); -emit_16(544); -emit_16(478); -emit_16(544); -emit_16(477); -emit_16(544); -emit_16(478); -emit_16(545); -emit_16(479); -emit_16(545); -emit_16(478); -emit_16(545); -emit_16(479); -emit_16(546); -emit_16(480); -emit_16(546); -emit_16(479); -emit_16(546); -emit_16(480); -emit_16(547); -emit_16(481); -emit_16(547); -emit_16(480); -emit_16(547); -emit_16(481); -emit_16(548); -emit_16(482); -emit_16(548); -emit_16(481); -emit_16(548); -emit_16(482); -emit_16(549); -emit_16(483); -emit_16(549); -emit_16(482); -emit_16(549); -emit_16(483); -emit_16(550); -emit_16(484); -emit_16(550); -emit_16(483); -emit_16(550); -emit_16(484); -emit_16(551); -emit_16(485); -emit_16(551); -emit_16(484); -emit_16(551); -emit_16(485); -emit_16(552); -emit_16(486); -emit_16(552); -emit_16(485); -emit_16(552); -emit_16(486); -emit_16(553); -emit_16(487); -emit_16(553); -emit_16(486); -emit_16(553); -emit_16(487); -emit_16(554); -emit_16(488); -emit_16(554); -emit_16(487); -emit_16(554); -emit_16(488); -emit_16(555); -emit_16(489); -emit_16(555); -emit_16(488); -emit_16(555); -emit_16(489); -emit_16(556); -emit_16(490); -emit_16(556); -emit_16(489); -emit_16(556); -emit_16(490); -emit_16(557); -emit_16(491); -emit_16(557); -emit_16(490); -emit_16(557); -emit_16(491); -emit_16(558); -emit_16(492); -emit_16(558); -emit_16(491); -emit_16(558); -emit_16(492); -emit_16(559); -emit_16(493); -emit_16(559); -emit_16(492); -emit_16(559); -emit_16(493); -emit_16(560); -emit_16(494); -emit_16(560); -emit_16(493); -emit_16(560); -emit_16(494); -emit_16(561); -emit_16(495); -emit_16(561); -emit_16(494); -emit_16(561); -emit_16(495); -emit_16(562); -emit_16(496); -emit_16(562); -emit_16(495); -emit_16(562); -emit_16(496); -emit_16(563); -emit_16(497); -emit_16(563); -emit_16(496); -emit_16(563); -emit_16(497); -emit_16(564); -emit_16(498); -emit_16(564); -emit_16(497); -emit_16(564); -emit_16(498); -emit_16(565); -emit_16(499); -emit_16(565); -emit_16(498); -emit_16(565); -emit_16(499); -emit_16(566); -emit_16(500); -emit_16(566); -emit_16(499); -emit_16(566); -emit_16(500); -emit_16(567); -emit_16(501); -emit_16(567); -emit_16(500); -emit_16(567); -emit_16(501); -emit_16(568); -emit_16(502); -emit_16(568); -emit_16(501); -emit_16(568); -emit_16(502); -emit_16(569); -emit_16(503); -emit_16(569); -emit_16(502); -emit_16(569); -emit_16(503); -emit_16(570); -emit_16(504); -emit_16(570); -emit_16(503); -emit_16(570); -emit_16(504); -emit_16(571); -emit_16(505); -emit_16(571); -emit_16(504); -emit_16(571); -emit_16(505); -emit_16(572); -emit_16(506); -emit_16(572); -emit_16(505); -emit_16(572); -emit_16(506); -emit_16(573); -emit_16(507); -emit_16(573); -emit_16(506); -emit_16(573); -emit_16(507); -emit_16(574); -emit_16(508); -emit_16(574); -emit_16(507); -emit_16(574); -emit_16(508); -emit_16(575); -emit_16(509); -emit_16(575); -emit_16(508); -emit_16(575); -emit_16(509); -emit_16(576); -emit_16(510); -emit_16(576); -emit_16(509); -emit_16(576); -emit_16(510); -emit_16(577); -emit_16(511); -emit_16(577); -emit_16(510); -emit_16(577); -emit_16(511); -emit_16(578); -emit_16(512); -emit_16(578); -emit_16(511); -emit_16(578); -emit_16(512); -emit_16(579); -emit_16(513); -emit_16(579); -emit_16(512); -emit_16(579); -emit_16(513); -emit_16(580); -emit_16(514); -emit_16(580); -emit_16(513); -emit_16(580); -emit_16(514); -emit_16(581); -emit_16(515); -emit_16(581); -emit_16(514); -emit_16(581); -emit_16(515); -emit_16(582); -emit_16(516); -emit_16(582); -emit_16(515); -emit_16(582); -emit_16(516); -emit_16(583); -emit_16(517); -emit_16(583); -emit_16(516); -emit_16(583); -emit_16(517); -emit_16(584); -emit_16(518); -emit_16(584); -emit_16(517); -emit_16(584); -emit_16(518); -emit_16(585); -emit_16(519); -emit_16(585); -emit_16(518); -emit_16(585); -emit_16(519); -emit_16(586); -emit_16(520); -emit_16(586); -emit_16(519); -emit_16(586); -emit_16(520); -emit_16(587); -emit_16(521); -emit_16(587); -emit_16(520); -emit_16(587); -emit_16(521); -emit_16(588); -emit_16(522); -emit_16(588); -emit_16(521); -emit_16(588); -emit_16(522); -emit_16(589); -emit_16(523); -emit_16(589); -emit_16(522); -emit_16(589); -emit_16(523); -emit_16(590); -emit_16(524); -emit_16(590); -emit_16(523); -emit_16(590); -emit_16(524); -emit_16(591); -emit_16(525); -emit_16(591); -emit_16(524); -emit_16(591); -emit_16(525); -emit_16(592); -emit_16(526); -emit_16(592); -emit_16(525); -emit_16(592); -emit_16(526); -emit_16(593); -emit_16(527); -emit_16(593); -emit_16(526); -emit_16(594); -emit_16(528); -emit_16(595); -emit_16(529); -emit_16(595); -emit_16(528); -emit_16(595); -emit_16(529); -emit_16(596); -emit_16(530); -emit_16(596); -emit_16(529); -emit_16(596); -emit_16(530); -emit_16(597); -emit_16(531); -emit_16(597); -emit_16(530); -emit_16(597); -emit_16(531); -emit_16(598); -emit_16(532); -emit_16(598); -emit_16(531); -emit_16(598); -emit_16(532); -emit_16(599); -emit_16(533); -emit_16(599); -emit_16(532); -emit_16(599); -emit_16(533); -emit_16(600); -emit_16(534); -emit_16(600); -emit_16(533); -emit_16(600); -emit_16(534); -emit_16(601); -emit_16(535); -emit_16(601); -emit_16(534); -emit_16(601); -emit_16(535); -emit_16(602); -emit_16(536); -emit_16(602); -emit_16(535); -emit_16(602); -emit_16(536); -emit_16(603); -emit_16(537); -emit_16(603); -emit_16(536); -emit_16(603); -emit_16(537); -emit_16(604); -emit_16(538); -emit_16(604); -emit_16(537); -emit_16(604); -emit_16(538); -emit_16(605); -emit_16(539); -emit_16(605); -emit_16(538); -emit_16(605); -emit_16(539); -emit_16(606); -emit_16(540); -emit_16(606); -emit_16(539); -emit_16(606); -emit_16(540); -emit_16(607); -emit_16(541); -emit_16(607); -emit_16(540); -emit_16(607); -emit_16(541); -emit_16(608); -emit_16(542); -emit_16(608); -emit_16(541); -emit_16(608); -emit_16(542); -emit_16(609); -emit_16(543); -emit_16(609); -emit_16(542); -emit_16(609); -emit_16(543); -emit_16(610); -emit_16(544); -emit_16(610); -emit_16(543); -emit_16(610); -emit_16(544); -emit_16(611); -emit_16(545); -emit_16(611); -emit_16(544); -emit_16(611); -emit_16(545); -emit_16(612); -emit_16(546); -emit_16(612); -emit_16(545); -emit_16(612); -emit_16(546); -emit_16(613); -emit_16(547); -emit_16(613); -emit_16(546); -emit_16(613); -emit_16(547); -emit_16(614); -emit_16(548); -emit_16(614); -emit_16(547); -emit_16(614); -emit_16(548); -emit_16(615); -emit_16(549); -emit_16(615); -emit_16(548); -emit_16(615); -emit_16(549); -emit_16(616); -emit_16(550); -emit_16(616); -emit_16(549); -emit_16(616); -emit_16(550); -emit_16(617); -emit_16(551); -emit_16(617); -emit_16(550); -emit_16(617); -emit_16(551); -emit_16(618); -emit_16(552); -emit_16(618); -emit_16(551); -emit_16(618); -emit_16(552); -emit_16(619); -emit_16(553); -emit_16(619); -emit_16(552); -emit_16(619); -emit_16(553); -emit_16(620); -emit_16(554); -emit_16(620); -emit_16(553); -emit_16(620); -emit_16(554); -emit_16(621); -emit_16(555); -emit_16(621); -emit_16(554); -emit_16(621); -emit_16(555); -emit_16(622); -emit_16(556); -emit_16(622); -emit_16(555); -emit_16(622); -emit_16(556); -emit_16(623); -emit_16(557); -emit_16(623); -emit_16(556); -emit_16(623); -emit_16(557); -emit_16(624); -emit_16(558); -emit_16(624); -emit_16(557); -emit_16(624); -emit_16(558); -emit_16(625); -emit_16(559); -emit_16(625); -emit_16(558); -emit_16(625); -emit_16(559); -emit_16(626); -emit_16(560); -emit_16(626); -emit_16(559); -emit_16(626); -emit_16(560); -emit_16(627); -emit_16(561); -emit_16(627); -emit_16(560); -emit_16(627); -emit_16(561); -emit_16(628); -emit_16(562); -emit_16(628); -emit_16(561); -emit_16(628); -emit_16(562); -emit_16(629); -emit_16(563); -emit_16(629); -emit_16(562); -emit_16(629); -emit_16(563); -emit_16(630); -emit_16(564); -emit_16(630); -emit_16(563); -emit_16(630); -emit_16(564); -emit_16(631); -emit_16(565); -emit_16(631); -emit_16(564); -emit_16(631); -emit_16(565); -emit_16(632); -emit_16(566); -emit_16(632); -emit_16(565); -emit_16(632); -emit_16(566); -emit_16(633); -emit_16(567); -emit_16(633); -emit_16(566); -emit_16(633); -emit_16(567); -emit_16(634); -emit_16(568); -emit_16(634); -emit_16(567); -emit_16(634); -emit_16(568); -emit_16(635); -emit_16(569); -emit_16(635); -emit_16(568); -emit_16(635); -emit_16(569); -emit_16(636); -emit_16(570); -emit_16(636); -emit_16(569); -emit_16(636); -emit_16(570); -emit_16(637); -emit_16(571); -emit_16(637); -emit_16(570); -emit_16(637); -emit_16(571); -emit_16(638); -emit_16(572); -emit_16(638); -emit_16(571); -emit_16(638); -emit_16(572); -emit_16(639); -emit_16(573); -emit_16(639); -emit_16(572); -emit_16(639); -emit_16(573); -emit_16(640); -emit_16(574); -emit_16(640); -emit_16(573); -emit_16(640); -emit_16(574); -emit_16(641); -emit_16(575); -emit_16(641); -emit_16(574); -emit_16(641); -emit_16(575); -emit_16(642); -emit_16(576); -emit_16(642); -emit_16(575); -emit_16(642); -emit_16(576); -emit_16(643); -emit_16(577); -emit_16(643); -emit_16(576); -emit_16(643); -emit_16(577); -emit_16(644); -emit_16(578); -emit_16(644); -emit_16(577); -emit_16(644); -emit_16(578); -emit_16(645); -emit_16(579); -emit_16(645); -emit_16(578); -emit_16(645); -emit_16(579); -emit_16(646); -emit_16(580); -emit_16(646); -emit_16(579); -emit_16(646); -emit_16(580); -emit_16(647); -emit_16(581); -emit_16(647); -emit_16(580); -emit_16(647); -emit_16(581); -emit_16(648); -emit_16(582); -emit_16(648); -emit_16(581); -emit_16(648); -emit_16(582); -emit_16(649); -emit_16(583); -emit_16(649); -emit_16(582); -emit_16(649); -emit_16(583); -emit_16(650); -emit_16(584); -emit_16(650); -emit_16(583); -emit_16(650); -emit_16(584); -emit_16(651); -emit_16(585); -emit_16(651); -emit_16(584); -emit_16(651); -emit_16(585); -emit_16(652); -emit_16(586); -emit_16(652); -emit_16(585); -emit_16(652); -emit_16(586); -emit_16(653); -emit_16(587); -emit_16(653); -emit_16(586); -emit_16(653); -emit_16(587); -emit_16(654); -emit_16(588); -emit_16(654); -emit_16(587); -emit_16(654); -emit_16(588); -emit_16(655); -emit_16(589); -emit_16(655); -emit_16(588); -emit_16(655); -emit_16(589); -emit_16(656); -emit_16(590); -emit_16(656); -emit_16(589); -emit_16(656); -emit_16(590); -emit_16(657); -emit_16(591); -emit_16(657); -emit_16(590); -emit_16(657); -emit_16(591); -emit_16(658); -emit_16(592); -emit_16(658); -emit_16(591); -emit_16(658); -emit_16(592); -emit_16(659); -emit_16(593); -emit_16(659); -emit_16(592); -emit_16(660); -emit_16(594); -emit_16(661); -emit_16(595); -emit_16(661); -emit_16(594); -emit_16(661); -emit_16(595); -emit_16(662); -emit_16(596); -emit_16(662); -emit_16(595); -emit_16(662); -emit_16(596); -emit_16(663); -emit_16(597); -emit_16(663); -emit_16(596); -emit_16(663); -emit_16(597); -emit_16(664); -emit_16(598); -emit_16(664); -emit_16(597); -emit_16(664); -emit_16(598); -emit_16(665); -emit_16(599); -emit_16(665); -emit_16(598); -emit_16(665); -emit_16(599); -emit_16(666); -emit_16(600); -emit_16(666); -emit_16(599); -emit_16(666); -emit_16(600); -emit_16(667); -emit_16(601); -emit_16(667); -emit_16(600); -emit_16(667); -emit_16(601); -emit_16(668); -emit_16(602); -emit_16(668); -emit_16(601); -emit_16(668); -emit_16(602); -emit_16(669); -emit_16(603); -emit_16(669); -emit_16(602); -emit_16(669); -emit_16(603); -emit_16(670); -emit_16(604); -emit_16(670); -emit_16(603); -emit_16(670); -emit_16(604); -emit_16(671); -emit_16(605); -emit_16(671); -emit_16(604); -emit_16(671); -emit_16(605); -emit_16(672); -emit_16(606); -emit_16(672); -emit_16(605); -emit_16(672); -emit_16(606); -emit_16(673); -emit_16(607); -emit_16(673); -emit_16(606); -emit_16(673); -emit_16(607); -emit_16(674); -emit_16(608); -emit_16(674); -emit_16(607); -emit_16(674); -emit_16(608); -emit_16(675); -emit_16(609); -emit_16(675); -emit_16(608); -emit_16(675); -emit_16(609); -emit_16(676); -emit_16(610); -emit_16(676); -emit_16(609); -emit_16(676); -emit_16(610); -emit_16(677); -emit_16(611); -emit_16(677); -emit_16(610); -emit_16(677); -emit_16(611); -emit_16(678); -emit_16(612); -emit_16(678); -emit_16(611); -emit_16(678); -emit_16(612); -emit_16(679); -emit_16(613); -emit_16(679); -emit_16(612); -emit_16(679); -emit_16(613); -emit_16(680); -emit_16(614); -emit_16(680); -emit_16(613); -emit_16(680); -emit_16(614); -emit_16(681); -emit_16(615); -emit_16(681); -emit_16(614); -emit_16(681); -emit_16(615); -emit_16(682); -emit_16(616); -emit_16(682); -emit_16(615); -emit_16(682); -emit_16(616); -emit_16(683); -emit_16(617); -emit_16(683); -emit_16(616); -emit_16(683); -emit_16(617); -emit_16(684); -emit_16(618); -emit_16(684); -emit_16(617); -emit_16(684); -emit_16(618); -emit_16(685); -emit_16(619); -emit_16(685); -emit_16(618); -emit_16(685); -emit_16(619); -emit_16(686); -emit_16(620); -emit_16(686); -emit_16(619); -emit_16(686); -emit_16(620); -emit_16(687); -emit_16(621); -emit_16(687); -emit_16(620); -emit_16(687); -emit_16(621); -emit_16(688); -emit_16(622); -emit_16(688); -emit_16(621); -emit_16(688); -emit_16(622); -emit_16(689); -emit_16(623); -emit_16(689); -emit_16(622); -emit_16(689); -emit_16(623); -emit_16(690); -emit_16(624); -emit_16(690); -emit_16(623); -emit_16(690); -emit_16(624); -emit_16(691); -emit_16(625); -emit_16(691); -emit_16(624); -emit_16(691); -emit_16(625); -emit_16(692); -emit_16(626); -emit_16(692); -emit_16(625); -emit_16(692); -emit_16(626); -emit_16(693); -emit_16(627); -emit_16(693); -emit_16(626); -emit_16(693); -emit_16(627); -emit_16(694); -emit_16(628); -emit_16(694); -emit_16(627); -emit_16(694); -emit_16(628); -emit_16(695); -emit_16(629); -emit_16(695); -emit_16(628); -emit_16(695); -emit_16(629); -emit_16(696); -emit_16(630); -emit_16(696); -emit_16(629); -emit_16(696); -emit_16(630); -emit_16(697); -emit_16(631); -emit_16(697); -emit_16(630); -emit_16(697); -emit_16(631); -emit_16(698); -emit_16(632); -emit_16(698); -emit_16(631); -emit_16(698); -emit_16(632); -emit_16(699); -emit_16(633); -emit_16(699); -emit_16(632); -emit_16(699); -emit_16(633); -emit_16(700); -emit_16(634); -emit_16(700); -emit_16(633); -emit_16(700); -emit_16(634); -emit_16(701); -emit_16(635); -emit_16(701); -emit_16(634); -emit_16(701); -emit_16(635); -emit_16(702); -emit_16(636); -emit_16(702); -emit_16(635); -emit_16(702); -emit_16(636); -emit_16(703); -emit_16(637); -emit_16(703); -emit_16(636); -emit_16(703); -emit_16(637); -emit_16(704); -emit_16(638); -emit_16(704); -emit_16(637); -emit_16(704); -emit_16(638); -emit_16(705); -emit_16(639); -emit_16(705); -emit_16(638); -emit_16(705); -emit_16(639); -emit_16(706); -emit_16(640); -emit_16(706); -emit_16(639); -emit_16(706); -emit_16(640); -emit_16(707); -emit_16(641); -emit_16(707); -emit_16(640); -emit_16(707); -emit_16(641); -emit_16(708); -emit_16(642); -emit_16(708); -emit_16(641); -emit_16(708); -emit_16(642); -emit_16(709); -emit_16(643); -emit_16(709); -emit_16(642); -emit_16(709); -emit_16(643); -emit_16(710); -emit_16(644); -emit_16(710); -emit_16(643); -emit_16(710); -emit_16(644); -emit_16(711); -emit_16(645); -emit_16(711); -emit_16(644); -emit_16(711); -emit_16(645); -emit_16(712); -emit_16(646); -emit_16(712); -emit_16(645); -emit_16(712); -emit_16(646); -emit_16(713); -emit_16(647); -emit_16(713); -emit_16(646); -emit_16(713); -emit_16(647); -emit_16(714); -emit_16(648); -emit_16(714); -emit_16(647); -emit_16(714); -emit_16(648); -emit_16(715); -emit_16(649); -emit_16(715); -emit_16(648); -emit_16(715); -emit_16(649); -emit_16(716); -emit_16(650); -emit_16(716); -emit_16(649); -emit_16(716); -emit_16(650); -emit_16(717); -emit_16(651); -emit_16(717); -emit_16(650); -emit_16(717); -emit_16(651); -emit_16(718); -emit_16(652); -emit_16(718); -emit_16(651); -emit_16(718); -emit_16(652); -emit_16(719); -emit_16(653); -emit_16(719); -emit_16(652); -emit_16(719); -emit_16(653); -emit_16(720); -emit_16(654); -emit_16(720); -emit_16(653); -emit_16(720); -emit_16(654); -emit_16(721); -emit_16(655); -emit_16(721); -emit_16(654); -emit_16(721); -emit_16(655); -emit_16(722); -emit_16(656); -emit_16(722); -emit_16(655); -emit_16(722); -emit_16(656); -emit_16(723); -emit_16(657); -emit_16(723); -emit_16(656); -emit_16(723); -emit_16(657); -emit_16(724); -emit_16(658); -emit_16(724); -emit_16(657); -emit_16(724); -emit_16(658); -emit_16(725); -emit_16(659); -emit_16(725); -emit_16(658); -emit_16(726); -emit_16(660); -emit_16(727); -emit_16(661); -emit_16(727); -emit_16(660); -emit_16(727); -emit_16(661); -emit_16(728); -emit_16(662); -emit_16(728); -emit_16(661); -emit_16(728); -emit_16(662); -emit_16(729); -emit_16(663); -emit_16(729); -emit_16(662); -emit_16(729); -emit_16(663); -emit_16(730); -emit_16(664); -emit_16(730); -emit_16(663); -emit_16(730); -emit_16(664); -emit_16(731); -emit_16(665); -emit_16(731); -emit_16(664); -emit_16(731); -emit_16(665); -emit_16(732); -emit_16(666); -emit_16(732); -emit_16(665); -emit_16(732); -emit_16(666); -emit_16(733); -emit_16(667); -emit_16(733); -emit_16(666); -emit_16(733); -emit_16(667); -emit_16(734); -emit_16(668); -emit_16(734); -emit_16(667); -emit_16(734); -emit_16(668); -emit_16(735); -emit_16(669); -emit_16(735); -emit_16(668); -emit_16(735); -emit_16(669); -emit_16(736); -emit_16(670); -emit_16(736); -emit_16(669); -emit_16(736); -emit_16(670); -emit_16(737); -emit_16(671); -emit_16(737); -emit_16(670); -emit_16(737); -emit_16(671); -emit_16(738); -emit_16(672); -emit_16(738); -emit_16(671); -emit_16(738); -emit_16(672); -emit_16(739); -emit_16(673); -emit_16(739); -emit_16(672); -emit_16(739); -emit_16(673); -emit_16(740); -emit_16(674); -emit_16(740); -emit_16(673); -emit_16(740); -emit_16(674); -emit_16(741); -emit_16(675); -emit_16(741); -emit_16(674); -emit_16(741); -emit_16(675); -emit_16(742); -emit_16(676); -emit_16(742); -emit_16(675); -emit_16(742); -emit_16(676); -emit_16(743); -emit_16(677); -emit_16(743); -emit_16(676); -emit_16(743); -emit_16(677); -emit_16(744); -emit_16(678); -emit_16(744); -emit_16(677); -emit_16(744); -emit_16(678); -emit_16(745); -emit_16(679); -emit_16(745); -emit_16(678); -emit_16(745); -emit_16(679); -emit_16(746); -emit_16(680); -emit_16(746); -emit_16(679); -emit_16(746); -emit_16(680); -emit_16(747); -emit_16(681); -emit_16(747); -emit_16(680); -emit_16(747); -emit_16(681); -emit_16(748); -emit_16(682); -emit_16(748); -emit_16(681); -emit_16(748); -emit_16(682); -emit_16(749); -emit_16(683); -emit_16(749); -emit_16(682); -emit_16(749); -emit_16(683); -emit_16(750); -emit_16(684); -emit_16(750); -emit_16(683); -emit_16(750); -emit_16(684); -emit_16(751); -emit_16(685); -emit_16(751); -emit_16(684); -emit_16(751); -emit_16(685); -emit_16(752); -emit_16(686); -emit_16(752); -emit_16(685); -emit_16(752); -emit_16(686); -emit_16(753); -emit_16(687); -emit_16(753); -emit_16(686); -emit_16(753); -emit_16(687); -emit_16(754); -emit_16(688); -emit_16(754); -emit_16(687); -emit_16(754); -emit_16(688); -emit_16(755); -emit_16(689); -emit_16(755); -emit_16(688); -emit_16(755); -emit_16(689); -emit_16(756); -emit_16(690); -emit_16(756); -emit_16(689); -emit_16(756); -emit_16(690); -emit_16(757); -emit_16(691); -emit_16(757); -emit_16(690); -emit_16(757); -emit_16(691); -emit_16(758); -emit_16(692); -emit_16(758); -emit_16(691); -emit_16(758); -emit_16(692); -emit_16(759); -emit_16(693); -emit_16(759); -emit_16(692); -emit_16(759); -emit_16(693); -emit_16(760); -emit_16(694); -emit_16(760); -emit_16(693); -emit_16(760); -emit_16(694); -emit_16(761); -emit_16(695); -emit_16(761); -emit_16(694); -emit_16(761); -emit_16(695); -emit_16(762); -emit_16(696); -emit_16(762); -emit_16(695); -emit_16(762); -emit_16(696); -emit_16(763); -emit_16(697); -emit_16(763); -emit_16(696); -emit_16(763); -emit_16(697); -emit_16(764); -emit_16(698); -emit_16(764); -emit_16(697); -emit_16(764); -emit_16(698); -emit_16(765); -emit_16(699); -emit_16(765); -emit_16(698); -emit_16(765); -emit_16(699); -emit_16(766); -emit_16(700); -emit_16(766); -emit_16(699); -emit_16(766); -emit_16(700); -emit_16(767); -emit_16(701); -emit_16(767); -emit_16(700); -emit_16(767); -emit_16(701); -emit_16(768); -emit_16(702); -emit_16(768); -emit_16(701); -emit_16(768); -emit_16(702); -emit_16(769); -emit_16(703); -emit_16(769); -emit_16(702); -emit_16(769); -emit_16(703); -emit_16(770); -emit_16(704); -emit_16(770); -emit_16(703); -emit_16(770); -emit_16(704); -emit_16(771); -emit_16(705); -emit_16(771); -emit_16(704); -emit_16(771); -emit_16(705); -emit_16(772); -emit_16(706); -emit_16(772); -emit_16(705); -emit_16(772); -emit_16(706); -emit_16(773); -emit_16(707); -emit_16(773); -emit_16(706); -emit_16(773); -emit_16(707); -emit_16(774); -emit_16(708); -emit_16(774); -emit_16(707); -emit_16(774); -emit_16(708); -emit_16(775); -emit_16(709); -emit_16(775); -emit_16(708); -emit_16(775); -emit_16(709); -emit_16(776); -emit_16(710); -emit_16(776); -emit_16(709); -emit_16(776); -emit_16(710); -emit_16(777); -emit_16(711); -emit_16(777); -emit_16(710); -emit_16(777); -emit_16(711); -emit_16(778); -emit_16(712); -emit_16(778); -emit_16(711); -emit_16(778); -emit_16(712); -emit_16(779); -emit_16(713); -emit_16(779); -emit_16(712); -emit_16(779); -emit_16(713); -emit_16(780); -emit_16(714); -emit_16(780); -emit_16(713); -emit_16(780); -emit_16(714); -emit_16(781); -emit_16(715); -emit_16(781); -emit_16(714); -emit_16(781); -emit_16(715); -emit_16(782); -emit_16(716); -emit_16(782); -emit_16(715); -emit_16(782); -emit_16(716); -emit_16(783); -emit_16(717); -emit_16(783); -emit_16(716); -emit_16(783); -emit_16(717); -emit_16(784); -emit_16(718); -emit_16(784); -emit_16(717); -emit_16(784); -emit_16(718); -emit_16(785); -emit_16(719); -emit_16(785); -emit_16(718); -emit_16(785); -emit_16(719); -emit_16(786); -emit_16(720); -emit_16(786); -emit_16(719); -emit_16(786); -emit_16(720); -emit_16(787); -emit_16(721); -emit_16(787); -emit_16(720); -emit_16(787); -emit_16(721); -emit_16(788); -emit_16(722); -emit_16(788); -emit_16(721); -emit_16(788); -emit_16(722); -emit_16(789); -emit_16(723); -emit_16(789); -emit_16(722); -emit_16(789); -emit_16(723); -emit_16(790); -emit_16(724); -emit_16(790); -emit_16(723); -emit_16(790); -emit_16(724); -emit_16(791); -emit_16(725); -emit_16(791); -emit_16(724); -emit_16(792); -emit_16(726); -emit_16(793); -emit_16(727); -emit_16(793); -emit_16(726); -emit_16(793); -emit_16(727); -emit_16(794); -emit_16(728); -emit_16(794); -emit_16(727); -emit_16(794); -emit_16(728); -emit_16(795); -emit_16(729); -emit_16(795); -emit_16(728); -emit_16(795); -emit_16(729); -emit_16(796); -emit_16(730); -emit_16(796); -emit_16(729); -emit_16(796); -emit_16(730); -emit_16(797); -emit_16(731); -emit_16(797); -emit_16(730); -emit_16(797); -emit_16(731); -emit_16(798); -emit_16(732); -emit_16(798); -emit_16(731); -emit_16(798); -emit_16(732); -emit_16(799); -emit_16(733); -emit_16(799); -emit_16(732); -emit_16(799); -emit_16(733); -emit_16(800); -emit_16(734); -emit_16(800); -emit_16(733); -emit_16(800); -emit_16(734); -emit_16(801); -emit_16(735); -emit_16(801); -emit_16(734); -emit_16(801); -emit_16(735); -emit_16(802); -emit_16(736); -emit_16(802); -emit_16(735); -emit_16(802); -emit_16(736); -emit_16(803); -emit_16(737); -emit_16(803); -emit_16(736); -emit_16(803); -emit_16(737); -emit_16(804); -emit_16(738); -emit_16(804); -emit_16(737); -emit_16(804); -emit_16(738); -emit_16(805); -emit_16(739); -emit_16(805); -emit_16(738); -emit_16(805); -emit_16(739); -emit_16(806); -emit_16(740); -emit_16(806); -emit_16(739); -emit_16(806); -emit_16(740); -emit_16(807); -emit_16(741); -emit_16(807); -emit_16(740); -emit_16(807); -emit_16(741); -emit_16(808); -emit_16(742); -emit_16(808); -emit_16(741); -emit_16(808); -emit_16(742); -emit_16(809); -emit_16(743); -emit_16(809); -emit_16(742); -emit_16(809); -emit_16(743); -emit_16(810); -emit_16(744); -emit_16(810); -emit_16(743); -emit_16(810); -emit_16(744); -emit_16(811); -emit_16(745); -emit_16(811); -emit_16(744); -emit_16(811); -emit_16(745); -emit_16(812); -emit_16(746); -emit_16(812); -emit_16(745); -emit_16(812); -emit_16(746); -emit_16(813); -emit_16(747); -emit_16(813); -emit_16(746); -emit_16(813); -emit_16(747); -emit_16(814); -emit_16(748); -emit_16(814); -emit_16(747); -emit_16(814); -emit_16(748); -emit_16(815); -emit_16(749); -emit_16(815); -emit_16(748); -emit_16(815); -emit_16(749); -emit_16(816); -emit_16(750); -emit_16(816); -emit_16(749); -emit_16(816); -emit_16(750); -emit_16(817); -emit_16(751); -emit_16(817); -emit_16(750); -emit_16(817); -emit_16(751); -emit_16(818); -emit_16(752); -emit_16(818); -emit_16(751); -emit_16(818); -emit_16(752); -emit_16(819); -emit_16(753); -emit_16(819); -emit_16(752); -emit_16(819); -emit_16(753); -emit_16(820); -emit_16(754); -emit_16(820); -emit_16(753); -emit_16(820); -emit_16(754); -emit_16(821); -emit_16(755); -emit_16(821); -emit_16(754); -emit_16(821); -emit_16(755); -emit_16(822); -emit_16(756); -emit_16(822); -emit_16(755); -emit_16(822); -emit_16(756); -emit_16(823); -emit_16(757); -emit_16(823); -emit_16(756); -emit_16(823); -emit_16(757); -emit_16(824); -emit_16(758); -emit_16(824); -emit_16(757); -emit_16(824); -emit_16(758); -emit_16(825); -emit_16(759); -emit_16(825); -emit_16(758); -emit_16(825); -emit_16(759); -emit_16(826); -emit_16(760); -emit_16(826); -emit_16(759); -emit_16(826); -emit_16(760); -emit_16(827); -emit_16(761); -emit_16(827); -emit_16(760); -emit_16(827); -emit_16(761); -emit_16(828); -emit_16(762); -emit_16(828); -emit_16(761); -emit_16(828); -emit_16(762); -emit_16(829); -emit_16(763); -emit_16(829); -emit_16(762); -emit_16(829); -emit_16(763); -emit_16(830); -emit_16(764); -emit_16(830); -emit_16(763); -emit_16(830); -emit_16(764); -emit_16(831); -emit_16(765); -emit_16(831); -emit_16(764); -emit_16(831); -emit_16(765); -emit_16(832); -emit_16(766); -emit_16(832); -emit_16(765); -emit_16(832); -emit_16(766); -emit_16(833); -emit_16(767); -emit_16(833); -emit_16(766); -emit_16(833); -emit_16(767); -emit_16(834); -emit_16(768); -emit_16(834); -emit_16(767); -emit_16(834); -emit_16(768); -emit_16(835); -emit_16(769); -emit_16(835); -emit_16(768); -emit_16(835); -emit_16(769); -emit_16(836); -emit_16(770); -emit_16(836); -emit_16(769); -emit_16(836); -emit_16(770); -emit_16(837); -emit_16(771); -emit_16(837); -emit_16(770); -emit_16(837); -emit_16(771); -emit_16(838); -emit_16(772); -emit_16(838); -emit_16(771); -emit_16(838); -emit_16(772); -emit_16(839); -emit_16(773); -emit_16(839); -emit_16(772); -emit_16(839); -emit_16(773); -emit_16(840); -emit_16(774); -emit_16(840); -emit_16(773); -emit_16(840); -emit_16(774); -emit_16(841); -emit_16(775); -emit_16(841); -emit_16(774); -emit_16(841); -emit_16(775); -emit_16(842); -emit_16(776); -emit_16(842); -emit_16(775); -emit_16(842); -emit_16(776); -emit_16(843); -emit_16(777); -emit_16(843); -emit_16(776); -emit_16(843); -emit_16(777); -emit_16(844); -emit_16(778); -emit_16(844); -emit_16(777); -emit_16(844); -emit_16(778); -emit_16(845); -emit_16(779); -emit_16(845); -emit_16(778); -emit_16(845); -emit_16(779); -emit_16(846); -emit_16(780); -emit_16(846); -emit_16(779); -emit_16(846); -emit_16(780); -emit_16(847); -emit_16(781); -emit_16(847); -emit_16(780); -emit_16(847); -emit_16(781); -emit_16(848); -emit_16(782); -emit_16(848); -emit_16(781); -emit_16(848); -emit_16(782); -emit_16(849); -emit_16(783); -emit_16(849); -emit_16(782); -emit_16(849); -emit_16(783); -emit_16(850); -emit_16(784); -emit_16(850); -emit_16(783); -emit_16(850); -emit_16(784); -emit_16(851); -emit_16(785); -emit_16(851); -emit_16(784); -emit_16(851); -emit_16(785); -emit_16(852); -emit_16(786); -emit_16(852); -emit_16(785); -emit_16(852); -emit_16(786); -emit_16(853); -emit_16(787); -emit_16(853); -emit_16(786); -emit_16(853); -emit_16(787); -emit_16(854); -emit_16(788); -emit_16(854); -emit_16(787); -emit_16(854); -emit_16(788); -emit_16(855); -emit_16(789); -emit_16(855); -emit_16(788); -emit_16(855); -emit_16(789); -emit_16(856); -emit_16(790); -emit_16(856); -emit_16(789); -emit_16(856); -emit_16(790); -emit_16(857); -emit_16(791); -emit_16(857); -emit_16(790); -emit_16(858); -emit_16(792); -emit_16(859); -emit_16(793); -emit_16(859); -emit_16(792); -emit_16(859); -emit_16(793); -emit_16(860); -emit_16(794); -emit_16(860); -emit_16(793); -emit_16(860); -emit_16(794); -emit_16(861); -emit_16(795); -emit_16(861); -emit_16(794); -emit_16(861); -emit_16(795); -emit_16(862); -emit_16(796); -emit_16(862); -emit_16(795); -emit_16(862); -emit_16(796); -emit_16(863); -emit_16(797); -emit_16(863); -emit_16(796); -emit_16(863); -emit_16(797); -emit_16(864); -emit_16(798); -emit_16(864); -emit_16(797); -emit_16(864); -emit_16(798); -emit_16(865); -emit_16(799); -emit_16(865); -emit_16(798); -emit_16(865); -emit_16(799); -emit_16(866); -emit_16(800); -emit_16(866); -emit_16(799); -emit_16(866); -emit_16(800); -emit_16(867); -emit_16(801); -emit_16(867); -emit_16(800); -emit_16(867); -emit_16(801); -emit_16(868); -emit_16(802); -emit_16(868); -emit_16(801); -emit_16(868); -emit_16(802); -emit_16(869); -emit_16(803); -emit_16(869); -emit_16(802); -emit_16(869); -emit_16(803); -emit_16(870); -emit_16(804); -emit_16(870); -emit_16(803); -emit_16(870); -emit_16(804); -emit_16(871); -emit_16(805); -emit_16(871); -emit_16(804); -emit_16(871); -emit_16(805); -emit_16(872); -emit_16(806); -emit_16(872); -emit_16(805); -emit_16(872); -emit_16(806); -emit_16(873); -emit_16(807); -emit_16(873); -emit_16(806); -emit_16(873); -emit_16(807); -emit_16(874); -emit_16(808); -emit_16(874); -emit_16(807); -emit_16(874); -emit_16(808); -emit_16(875); -emit_16(809); -emit_16(875); -emit_16(808); -emit_16(875); -emit_16(809); -emit_16(876); -emit_16(810); -emit_16(876); -emit_16(809); -emit_16(876); -emit_16(810); -emit_16(877); -emit_16(811); -emit_16(877); -emit_16(810); -emit_16(877); -emit_16(811); -emit_16(878); -emit_16(812); -emit_16(878); -emit_16(811); -emit_16(878); -emit_16(812); -emit_16(879); -emit_16(813); -emit_16(879); -emit_16(812); -emit_16(879); -emit_16(813); -emit_16(880); -emit_16(814); -emit_16(880); -emit_16(813); -emit_16(880); -emit_16(814); -emit_16(881); -emit_16(815); -emit_16(881); -emit_16(814); -emit_16(881); -emit_16(815); -emit_16(882); -emit_16(816); -emit_16(882); -emit_16(815); -emit_16(882); -emit_16(816); -emit_16(883); -emit_16(817); -emit_16(883); -emit_16(816); -emit_16(883); -emit_16(817); -emit_16(884); -emit_16(818); -emit_16(884); -emit_16(817); -emit_16(884); -emit_16(818); -emit_16(885); -emit_16(819); -emit_16(885); -emit_16(818); -emit_16(885); -emit_16(819); -emit_16(886); -emit_16(820); -emit_16(886); -emit_16(819); -emit_16(886); -emit_16(820); -emit_16(887); -emit_16(821); -emit_16(887); -emit_16(820); -emit_16(887); -emit_16(821); -emit_16(888); -emit_16(822); -emit_16(888); -emit_16(821); -emit_16(888); -emit_16(822); -emit_16(889); -emit_16(823); -emit_16(889); -emit_16(822); -emit_16(889); -emit_16(823); -emit_16(890); -emit_16(824); -emit_16(890); -emit_16(823); -emit_16(890); -emit_16(824); -emit_16(891); -emit_16(825); -emit_16(891); -emit_16(824); -emit_16(891); -emit_16(825); -emit_16(892); -emit_16(826); -emit_16(892); -emit_16(825); -emit_16(892); -emit_16(826); -emit_16(893); -emit_16(827); -emit_16(893); -emit_16(826); -emit_16(893); -emit_16(827); -emit_16(894); -emit_16(828); -emit_16(894); -emit_16(827); -emit_16(894); -emit_16(828); -emit_16(895); -emit_16(829); -emit_16(895); -emit_16(828); -emit_16(895); -emit_16(829); -emit_16(896); -emit_16(830); -emit_16(896); -emit_16(829); -emit_16(896); -emit_16(830); -emit_16(897); -emit_16(831); -emit_16(897); -emit_16(830); -emit_16(897); -emit_16(831); -emit_16(898); -emit_16(832); -emit_16(898); -emit_16(831); -emit_16(898); -emit_16(832); -emit_16(899); -emit_16(833); -emit_16(899); -emit_16(832); -emit_16(899); -emit_16(833); -emit_16(900); -emit_16(834); -emit_16(900); -emit_16(833); -emit_16(900); -emit_16(834); -emit_16(901); -emit_16(835); -emit_16(901); -emit_16(834); -emit_16(901); -emit_16(835); -emit_16(902); -emit_16(836); -emit_16(902); -emit_16(835); -emit_16(902); -emit_16(836); -emit_16(903); -emit_16(837); -emit_16(903); -emit_16(836); -emit_16(903); -emit_16(837); -emit_16(904); -emit_16(838); -emit_16(904); -emit_16(837); -emit_16(904); -emit_16(838); -emit_16(905); -emit_16(839); -emit_16(905); -emit_16(838); -emit_16(905); -emit_16(839); -emit_16(906); -emit_16(840); -emit_16(906); -emit_16(839); -emit_16(906); -emit_16(840); -emit_16(907); -emit_16(841); -emit_16(907); -emit_16(840); -emit_16(907); -emit_16(841); -emit_16(908); -emit_16(842); -emit_16(908); -emit_16(841); -emit_16(908); -emit_16(842); -emit_16(909); -emit_16(843); -emit_16(909); -emit_16(842); -emit_16(909); -emit_16(843); -emit_16(910); -emit_16(844); -emit_16(910); -emit_16(843); -emit_16(910); -emit_16(844); -emit_16(911); -emit_16(845); -emit_16(911); -emit_16(844); -emit_16(911); -emit_16(845); -emit_16(912); -emit_16(846); -emit_16(912); -emit_16(845); -emit_16(912); -emit_16(846); -emit_16(913); -emit_16(847); -emit_16(913); -emit_16(846); -emit_16(913); -emit_16(847); -emit_16(914); -emit_16(848); -emit_16(914); -emit_16(847); -emit_16(914); -emit_16(848); -emit_16(915); -emit_16(849); -emit_16(915); -emit_16(848); -emit_16(915); -emit_16(849); -emit_16(916); -emit_16(850); -emit_16(916); -emit_16(849); -emit_16(916); -emit_16(850); -emit_16(917); -emit_16(851); -emit_16(917); -emit_16(850); -emit_16(917); -emit_16(851); -emit_16(918); -emit_16(852); -emit_16(918); -emit_16(851); -emit_16(918); -emit_16(852); -emit_16(919); -emit_16(853); -emit_16(919); -emit_16(852); -emit_16(919); -emit_16(853); -emit_16(920); -emit_16(854); -emit_16(920); -emit_16(853); -emit_16(920); -emit_16(854); -emit_16(921); -emit_16(855); -emit_16(921); -emit_16(854); -emit_16(921); -emit_16(855); -emit_16(922); -emit_16(856); -emit_16(922); -emit_16(855); -emit_16(922); -emit_16(856); -emit_16(923); -emit_16(857); -emit_16(923); -emit_16(856); -emit_16(924); -emit_16(858); -emit_16(925); -emit_16(859); -emit_16(925); -emit_16(858); -emit_16(925); -emit_16(859); -emit_16(926); -emit_16(860); -emit_16(926); -emit_16(859); -emit_16(926); -emit_16(860); -emit_16(927); -emit_16(861); -emit_16(927); -emit_16(860); -emit_16(927); -emit_16(861); -emit_16(928); -emit_16(862); -emit_16(928); -emit_16(861); -emit_16(928); -emit_16(862); -emit_16(929); -emit_16(863); -emit_16(929); -emit_16(862); -emit_16(929); -emit_16(863); -emit_16(930); -emit_16(864); -emit_16(930); -emit_16(863); -emit_16(930); -emit_16(864); -emit_16(931); -emit_16(865); -emit_16(931); -emit_16(864); -emit_16(931); -emit_16(865); -emit_16(932); -emit_16(866); -emit_16(932); -emit_16(865); -emit_16(932); -emit_16(866); -emit_16(933); -emit_16(867); -emit_16(933); -emit_16(866); -emit_16(933); -emit_16(867); -emit_16(934); -emit_16(868); -emit_16(934); -emit_16(867); -emit_16(934); -emit_16(868); -emit_16(935); -emit_16(869); -emit_16(935); -emit_16(868); -emit_16(935); -emit_16(869); -emit_16(936); -emit_16(870); -emit_16(936); -emit_16(869); -emit_16(936); -emit_16(870); -emit_16(937); -emit_16(871); -emit_16(937); -emit_16(870); -emit_16(937); -emit_16(871); -emit_16(938); -emit_16(872); -emit_16(938); -emit_16(871); -emit_16(938); -emit_16(872); -emit_16(939); -emit_16(873); -emit_16(939); -emit_16(872); -emit_16(939); -emit_16(873); -emit_16(940); -emit_16(874); -emit_16(940); -emit_16(873); -emit_16(940); -emit_16(874); -emit_16(941); -emit_16(875); -emit_16(941); -emit_16(874); -emit_16(941); -emit_16(875); -emit_16(942); -emit_16(876); -emit_16(942); -emit_16(875); -emit_16(942); -emit_16(876); -emit_16(943); -emit_16(877); -emit_16(943); -emit_16(876); -emit_16(943); -emit_16(877); -emit_16(944); -emit_16(878); -emit_16(944); -emit_16(877); -emit_16(944); -emit_16(878); -emit_16(945); -emit_16(879); -emit_16(945); -emit_16(878); -emit_16(945); -emit_16(879); -emit_16(946); -emit_16(880); -emit_16(946); -emit_16(879); -emit_16(946); -emit_16(880); -emit_16(947); -emit_16(881); -emit_16(947); -emit_16(880); -emit_16(947); -emit_16(881); -emit_16(948); -emit_16(882); -emit_16(948); -emit_16(881); -emit_16(948); -emit_16(882); -emit_16(949); -emit_16(883); -emit_16(949); -emit_16(882); -emit_16(949); -emit_16(883); -emit_16(950); -emit_16(884); -emit_16(950); -emit_16(883); -emit_16(950); -emit_16(884); -emit_16(951); -emit_16(885); -emit_16(951); -emit_16(884); -emit_16(951); -emit_16(885); -emit_16(952); -emit_16(886); -emit_16(952); -emit_16(885); -emit_16(952); -emit_16(886); -emit_16(953); -emit_16(887); -emit_16(953); -emit_16(886); -emit_16(953); -emit_16(887); -emit_16(954); -emit_16(888); -emit_16(954); -emit_16(887); -emit_16(954); -emit_16(888); -emit_16(955); -emit_16(889); -emit_16(955); -emit_16(888); -emit_16(955); -emit_16(889); -emit_16(956); -emit_16(890); -emit_16(956); -emit_16(889); -emit_16(956); -emit_16(890); -emit_16(957); -emit_16(891); -emit_16(957); -emit_16(890); -emit_16(957); -emit_16(891); -emit_16(958); -emit_16(892); -emit_16(958); -emit_16(891); -emit_16(958); -emit_16(892); -emit_16(959); -emit_16(893); -emit_16(959); -emit_16(892); -emit_16(959); -emit_16(893); -emit_16(960); -emit_16(894); -emit_16(960); -emit_16(893); -emit_16(960); -emit_16(894); -emit_16(961); -emit_16(895); -emit_16(961); -emit_16(894); -emit_16(961); -emit_16(895); -emit_16(962); -emit_16(896); -emit_16(962); -emit_16(895); -emit_16(962); -emit_16(896); -emit_16(963); -emit_16(897); -emit_16(963); -emit_16(896); -emit_16(963); -emit_16(897); -emit_16(964); -emit_16(898); -emit_16(964); -emit_16(897); -emit_16(964); -emit_16(898); -emit_16(965); -emit_16(899); -emit_16(965); -emit_16(898); -emit_16(965); -emit_16(899); -emit_16(966); -emit_16(900); -emit_16(966); -emit_16(899); -emit_16(966); -emit_16(900); -emit_16(967); -emit_16(901); -emit_16(967); -emit_16(900); -emit_16(967); -emit_16(901); -emit_16(968); -emit_16(902); -emit_16(968); -emit_16(901); -emit_16(968); -emit_16(902); -emit_16(969); -emit_16(903); -emit_16(969); -emit_16(902); -emit_16(969); -emit_16(903); -emit_16(970); -emit_16(904); -emit_16(970); -emit_16(903); -emit_16(970); -emit_16(904); -emit_16(971); -emit_16(905); -emit_16(971); -emit_16(904); -emit_16(971); -emit_16(905); -emit_16(972); -emit_16(906); -emit_16(972); -emit_16(905); -emit_16(972); -emit_16(906); -emit_16(973); -emit_16(907); -emit_16(973); -emit_16(906); -emit_16(973); -emit_16(907); -emit_16(974); -emit_16(908); -emit_16(974); -emit_16(907); -emit_16(974); -emit_16(908); -emit_16(975); -emit_16(909); -emit_16(975); -emit_16(908); -emit_16(975); -emit_16(909); -emit_16(976); -emit_16(910); -emit_16(976); -emit_16(909); -emit_16(976); -emit_16(910); -emit_16(977); -emit_16(911); -emit_16(977); -emit_16(910); -emit_16(977); -emit_16(911); -emit_16(978); -emit_16(912); -emit_16(978); -emit_16(911); -emit_16(978); -emit_16(912); -emit_16(979); -emit_16(913); -emit_16(979); -emit_16(912); -emit_16(979); -emit_16(913); -emit_16(980); -emit_16(914); -emit_16(980); -emit_16(913); -emit_16(980); -emit_16(914); -emit_16(981); -emit_16(915); -emit_16(981); -emit_16(914); -emit_16(981); -emit_16(915); -emit_16(982); -emit_16(916); -emit_16(982); -emit_16(915); -emit_16(982); -emit_16(916); -emit_16(983); -emit_16(917); -emit_16(983); -emit_16(916); -emit_16(983); -emit_16(917); -emit_16(984); -emit_16(918); -emit_16(984); -emit_16(917); -emit_16(984); -emit_16(918); -emit_16(985); -emit_16(919); -emit_16(985); -emit_16(918); -emit_16(985); -emit_16(919); -emit_16(986); -emit_16(920); -emit_16(986); -emit_16(919); -emit_16(986); -emit_16(920); -emit_16(987); -emit_16(921); -emit_16(987); -emit_16(920); -emit_16(987); -emit_16(921); -emit_16(988); -emit_16(922); -emit_16(988); -emit_16(921); -emit_16(988); -emit_16(922); -emit_16(989); -emit_16(923); -emit_16(989); -emit_16(922); -emit_16(990); -emit_16(924); -emit_16(991); -emit_16(925); -emit_16(991); -emit_16(924); -emit_16(991); -emit_16(925); -emit_16(992); -emit_16(926); -emit_16(992); -emit_16(925); -emit_16(992); -emit_16(926); -emit_16(993); -emit_16(927); -emit_16(993); -emit_16(926); -emit_16(993); -emit_16(927); -emit_16(994); -emit_16(928); -emit_16(994); -emit_16(927); -emit_16(994); -emit_16(928); -emit_16(995); -emit_16(929); -emit_16(995); -emit_16(928); -emit_16(995); -emit_16(929); -emit_16(996); -emit_16(930); -emit_16(996); -emit_16(929); -emit_16(996); -emit_16(930); -emit_16(997); -emit_16(931); -emit_16(997); -emit_16(930); -emit_16(997); -emit_16(931); -emit_16(998); -emit_16(932); -emit_16(998); -emit_16(931); -emit_16(998); -emit_16(932); -emit_16(999); -emit_16(933); -emit_16(999); -emit_16(932); -emit_16(999); -emit_16(933); -emit_16(1000); -emit_16(934); -emit_16(1000); -emit_16(933); -emit_16(1000); -emit_16(934); -emit_16(1001); -emit_16(935); -emit_16(1001); -emit_16(934); -emit_16(1001); -emit_16(935); -emit_16(1002); -emit_16(936); -emit_16(1002); -emit_16(935); -emit_16(1002); -emit_16(936); -emit_16(1003); -emit_16(937); -emit_16(1003); -emit_16(936); -emit_16(1003); -emit_16(937); -emit_16(1004); -emit_16(938); -emit_16(1004); -emit_16(937); -emit_16(1004); -emit_16(938); -emit_16(1005); -emit_16(939); -emit_16(1005); -emit_16(938); -emit_16(1005); -emit_16(939); -emit_16(1006); -emit_16(940); -emit_16(1006); -emit_16(939); -emit_16(1006); -emit_16(940); -emit_16(1007); -emit_16(941); -emit_16(1007); -emit_16(940); -emit_16(1007); -emit_16(941); -emit_16(1008); -emit_16(942); -emit_16(1008); -emit_16(941); -emit_16(1008); -emit_16(942); -emit_16(1009); -emit_16(943); -emit_16(1009); -emit_16(942); -emit_16(1009); -emit_16(943); -emit_16(1010); -emit_16(944); -emit_16(1010); -emit_16(943); -emit_16(1010); -emit_16(944); -emit_16(1011); -emit_16(945); -emit_16(1011); -emit_16(944); -emit_16(1011); -emit_16(945); -emit_16(1012); -emit_16(946); -emit_16(1012); -emit_16(945); -emit_16(1012); -emit_16(946); -emit_16(1013); -emit_16(947); -emit_16(1013); -emit_16(946); -emit_16(1013); -emit_16(947); -emit_16(1014); -emit_16(948); -emit_16(1014); -emit_16(947); -emit_16(1014); -emit_16(948); -emit_16(1015); -emit_16(949); -emit_16(1015); -emit_16(948); -emit_16(1015); -emit_16(949); -emit_16(1016); -emit_16(950); -emit_16(1016); -emit_16(949); -emit_16(1016); -emit_16(950); -emit_16(1017); -emit_16(951); -emit_16(1017); -emit_16(950); -emit_16(1017); -emit_16(951); -emit_16(1018); -emit_16(952); -emit_16(1018); -emit_16(951); -emit_16(1018); -emit_16(952); -emit_16(1019); -emit_16(953); -emit_16(1019); -emit_16(952); -emit_16(1019); -emit_16(953); -emit_16(1020); -emit_16(954); -emit_16(1020); -emit_16(953); -emit_16(1020); -emit_16(954); -emit_16(1021); -emit_16(955); -emit_16(1021); -emit_16(954); -emit_16(1021); -emit_16(955); -emit_16(1022); -emit_16(956); -emit_16(1022); -emit_16(955); -emit_16(1022); -emit_16(956); -emit_16(1023); -emit_16(957); -emit_16(1023); -emit_16(956); -emit_16(1023); -emit_16(957); -emit_16(1024); -emit_16(958); -emit_16(1024); -emit_16(957); -emit_16(1024); -emit_16(958); -emit_16(1025); -emit_16(959); -emit_16(1025); -emit_16(958); -emit_16(1025); -emit_16(959); -emit_16(1026); -emit_16(960); -emit_16(1026); -emit_16(959); -emit_16(1026); -emit_16(960); -emit_16(1027); -emit_16(961); -emit_16(1027); -emit_16(960); -emit_16(1027); -emit_16(961); -emit_16(1028); -emit_16(962); -emit_16(1028); -emit_16(961); -emit_16(1028); -emit_16(962); -emit_16(1029); -emit_16(963); -emit_16(1029); -emit_16(962); -emit_16(1029); -emit_16(963); -emit_16(1030); -emit_16(964); -emit_16(1030); -emit_16(963); -emit_16(1030); -emit_16(964); -emit_16(1031); -emit_16(965); -emit_16(1031); -emit_16(964); -emit_16(1031); -emit_16(965); -emit_16(1032); -emit_16(966); -emit_16(1032); -emit_16(965); -emit_16(1032); -emit_16(966); -emit_16(1033); -emit_16(967); -emit_16(1033); -emit_16(966); -emit_16(1033); -emit_16(967); -emit_16(1034); -emit_16(968); -emit_16(1034); -emit_16(967); -emit_16(1034); -emit_16(968); -emit_16(1035); -emit_16(969); -emit_16(1035); -emit_16(968); -emit_16(1035); -emit_16(969); -emit_16(1036); -emit_16(970); -emit_16(1036); -emit_16(969); -emit_16(1036); -emit_16(970); -emit_16(1037); -emit_16(971); -emit_16(1037); -emit_16(970); -emit_16(1037); -emit_16(971); -emit_16(1038); -emit_16(972); -emit_16(1038); -emit_16(971); -emit_16(1038); -emit_16(972); -emit_16(1039); -emit_16(973); -emit_16(1039); -emit_16(972); -emit_16(1039); -emit_16(973); -emit_16(1040); -emit_16(974); -emit_16(1040); -emit_16(973); -emit_16(1040); -emit_16(974); -emit_16(1041); -emit_16(975); -emit_16(1041); -emit_16(974); -emit_16(1041); -emit_16(975); -emit_16(1042); -emit_16(976); -emit_16(1042); -emit_16(975); -emit_16(1042); -emit_16(976); -emit_16(1043); -emit_16(977); -emit_16(1043); -emit_16(976); -emit_16(1043); -emit_16(977); -emit_16(1044); -emit_16(978); -emit_16(1044); -emit_16(977); -emit_16(1044); -emit_16(978); -emit_16(1045); -emit_16(979); -emit_16(1045); -emit_16(978); -emit_16(1045); -emit_16(979); -emit_16(1046); -emit_16(980); -emit_16(1046); -emit_16(979); -emit_16(1046); -emit_16(980); -emit_16(1047); -emit_16(981); -emit_16(1047); -emit_16(980); -emit_16(1047); -emit_16(981); -emit_16(1048); -emit_16(982); -emit_16(1048); -emit_16(981); -emit_16(1048); -emit_16(982); -emit_16(1049); -emit_16(983); -emit_16(1049); -emit_16(982); -emit_16(1049); -emit_16(983); -emit_16(1050); -emit_16(984); -emit_16(1050); -emit_16(983); -emit_16(1050); -emit_16(984); -emit_16(1051); -emit_16(985); -emit_16(1051); -emit_16(984); -emit_16(1051); -emit_16(985); -emit_16(1052); -emit_16(986); -emit_16(1052); -emit_16(985); -emit_16(1052); -emit_16(986); -emit_16(1053); -emit_16(987); -emit_16(1053); -emit_16(986); -emit_16(1053); -emit_16(987); -emit_16(1054); -emit_16(988); -emit_16(1054); -emit_16(987); -emit_16(1054); -emit_16(988); -emit_16(1055); -emit_16(989); -emit_16(1055); -emit_16(988); -emit_16(1056); -emit_16(990); -emit_16(1057); -emit_16(991); -emit_16(1057); -emit_16(990); -emit_16(1057); -emit_16(991); -emit_16(1058); -emit_16(992); -emit_16(1058); -emit_16(991); -emit_16(1058); -emit_16(992); -emit_16(1059); -emit_16(993); -emit_16(1059); -emit_16(992); -emit_16(1059); -emit_16(993); -emit_16(1060); -emit_16(994); -emit_16(1060); -emit_16(993); -emit_16(1060); -emit_16(994); -emit_16(1061); -emit_16(995); -emit_16(1061); -emit_16(994); -emit_16(1061); -emit_16(995); -emit_16(1062); -emit_16(996); -emit_16(1062); -emit_16(995); -emit_16(1062); -emit_16(996); -emit_16(1063); -emit_16(997); -emit_16(1063); -emit_16(996); -emit_16(1063); -emit_16(997); -emit_16(1064); -emit_16(998); -emit_16(1064); -emit_16(997); -emit_16(1064); -emit_16(998); -emit_16(1065); -emit_16(999); -emit_16(1065); -emit_16(998); -emit_16(1065); -emit_16(999); -emit_16(1066); -emit_16(1000); -emit_16(1066); -emit_16(999); -emit_16(1066); -emit_16(1000); -emit_16(1067); -emit_16(1001); -emit_16(1067); -emit_16(1000); -emit_16(1067); -emit_16(1001); -emit_16(1068); -emit_16(1002); -emit_16(1068); -emit_16(1001); -emit_16(1068); -emit_16(1002); -emit_16(1069); -emit_16(1003); -emit_16(1069); -emit_16(1002); -emit_16(1069); -emit_16(1003); -emit_16(1070); -emit_16(1004); -emit_16(1070); -emit_16(1003); -emit_16(1070); -emit_16(1004); -emit_16(1071); -emit_16(1005); -emit_16(1071); -emit_16(1004); -emit_16(1071); -emit_16(1005); -emit_16(1072); -emit_16(1006); -emit_16(1072); -emit_16(1005); -emit_16(1072); -emit_16(1006); -emit_16(1073); -emit_16(1007); -emit_16(1073); -emit_16(1006); -emit_16(1073); -emit_16(1007); -emit_16(1074); -emit_16(1008); -emit_16(1074); -emit_16(1007); -emit_16(1074); -emit_16(1008); -emit_16(1075); -emit_16(1009); -emit_16(1075); -emit_16(1008); -emit_16(1075); -emit_16(1009); -emit_16(1076); -emit_16(1010); -emit_16(1076); -emit_16(1009); -emit_16(1076); -emit_16(1010); -emit_16(1077); -emit_16(1011); -emit_16(1077); -emit_16(1010); -emit_16(1077); -emit_16(1011); -emit_16(1078); -emit_16(1012); -emit_16(1078); -emit_16(1011); -emit_16(1078); -emit_16(1012); -emit_16(1079); -emit_16(1013); -emit_16(1079); -emit_16(1012); -emit_16(1079); -emit_16(1013); -emit_16(1080); -emit_16(1014); -emit_16(1080); -emit_16(1013); -emit_16(1080); -emit_16(1014); -emit_16(1081); -emit_16(1015); -emit_16(1081); -emit_16(1014); -emit_16(1081); -emit_16(1015); -emit_16(1082); -emit_16(1016); -emit_16(1082); -emit_16(1015); -emit_16(1082); -emit_16(1016); -emit_16(1083); -emit_16(1017); -emit_16(1083); -emit_16(1016); -emit_16(1083); -emit_16(1017); -emit_16(1084); -emit_16(1018); -emit_16(1084); -emit_16(1017); -emit_16(1084); -emit_16(1018); -emit_16(1085); -emit_16(1019); -emit_16(1085); -emit_16(1018); -emit_16(1085); -emit_16(1019); -emit_16(1086); -emit_16(1020); -emit_16(1086); -emit_16(1019); -emit_16(1086); -emit_16(1020); -emit_16(1087); -emit_16(1021); -emit_16(1087); -emit_16(1020); -emit_16(1087); -emit_16(1021); -emit_16(1088); -emit_16(1022); -emit_16(1088); -emit_16(1021); -emit_16(1088); -emit_16(1022); -emit_16(1089); -emit_16(1023); -emit_16(1089); -emit_16(1022); -emit_16(1089); -emit_16(1023); -emit_16(1090); -emit_16(1024); -emit_16(1090); -emit_16(1023); -emit_16(1090); -emit_16(1024); -emit_16(1091); -emit_16(1025); -emit_16(1091); -emit_16(1024); -emit_16(1091); -emit_16(1025); -emit_16(1092); -emit_16(1026); -emit_16(1092); -emit_16(1025); -emit_16(1092); -emit_16(1026); -emit_16(1093); -emit_16(1027); -emit_16(1093); -emit_16(1026); -emit_16(1093); -emit_16(1027); -emit_16(1094); -emit_16(1028); -emit_16(1094); -emit_16(1027); -emit_16(1094); -emit_16(1028); -emit_16(1095); -emit_16(1029); -emit_16(1095); -emit_16(1028); -emit_16(1095); -emit_16(1029); -emit_16(1096); -emit_16(1030); -emit_16(1096); -emit_16(1029); -emit_16(1096); -emit_16(1030); -emit_16(1097); -emit_16(1031); -emit_16(1097); -emit_16(1030); -emit_16(1097); -emit_16(1031); -emit_16(1098); -emit_16(1032); -emit_16(1098); -emit_16(1031); -emit_16(1098); -emit_16(1032); -emit_16(1099); -emit_16(1033); -emit_16(1099); -emit_16(1032); -emit_16(1099); -emit_16(1033); -emit_16(1100); -emit_16(1034); -emit_16(1100); -emit_16(1033); -emit_16(1100); -emit_16(1034); -emit_16(1101); -emit_16(1035); -emit_16(1101); -emit_16(1034); -emit_16(1101); -emit_16(1035); -emit_16(1102); -emit_16(1036); -emit_16(1102); -emit_16(1035); -emit_16(1102); -emit_16(1036); -emit_16(1103); -emit_16(1037); -emit_16(1103); -emit_16(1036); -emit_16(1103); -emit_16(1037); -emit_16(1104); -emit_16(1038); -emit_16(1104); -emit_16(1037); -emit_16(1104); -emit_16(1038); -emit_16(1105); -emit_16(1039); -emit_16(1105); -emit_16(1038); -emit_16(1105); -emit_16(1039); -emit_16(1106); -emit_16(1040); -emit_16(1106); -emit_16(1039); -emit_16(1106); -emit_16(1040); -emit_16(1107); -emit_16(1041); -emit_16(1107); -emit_16(1040); -emit_16(1107); -emit_16(1041); -emit_16(1108); -emit_16(1042); -emit_16(1108); -emit_16(1041); -emit_16(1108); -emit_16(1042); -emit_16(1109); -emit_16(1043); -emit_16(1109); -emit_16(1042); -emit_16(1109); -emit_16(1043); -emit_16(1110); -emit_16(1044); -emit_16(1110); -emit_16(1043); -emit_16(1110); -emit_16(1044); -emit_16(1111); -emit_16(1045); -emit_16(1111); -emit_16(1044); -emit_16(1111); -emit_16(1045); -emit_16(1112); -emit_16(1046); -emit_16(1112); -emit_16(1045); -emit_16(1112); -emit_16(1046); -emit_16(1113); -emit_16(1047); -emit_16(1113); -emit_16(1046); -emit_16(1113); -emit_16(1047); -emit_16(1114); -emit_16(1048); -emit_16(1114); -emit_16(1047); -emit_16(1114); -emit_16(1048); -emit_16(1115); -emit_16(1049); -emit_16(1115); -emit_16(1048); -emit_16(1115); -emit_16(1049); -emit_16(1116); -emit_16(1050); -emit_16(1116); -emit_16(1049); -emit_16(1116); -emit_16(1050); -emit_16(1117); -emit_16(1051); -emit_16(1117); -emit_16(1050); -emit_16(1117); -emit_16(1051); -emit_16(1118); -emit_16(1052); -emit_16(1118); -emit_16(1051); -emit_16(1118); -emit_16(1052); -emit_16(1119); -emit_16(1053); -emit_16(1119); -emit_16(1052); -emit_16(1119); -emit_16(1053); -emit_16(1120); -emit_16(1054); -emit_16(1120); -emit_16(1053); -emit_16(1120); -emit_16(1054); -emit_16(1121); -emit_16(1055); -emit_16(1121); -emit_16(1054); -emit_16(1122); -emit_16(1056); -emit_16(1123); -emit_16(1057); -emit_16(1123); -emit_16(1056); -emit_16(1123); -emit_16(1057); -emit_16(1124); -emit_16(1058); -emit_16(1124); -emit_16(1057); -emit_16(1124); -emit_16(1058); -emit_16(1125); -emit_16(1059); -emit_16(1125); -emit_16(1058); -emit_16(1125); -emit_16(1059); -emit_16(1126); -emit_16(1060); -emit_16(1126); -emit_16(1059); -emit_16(1126); -emit_16(1060); -emit_16(1127); -emit_16(1061); -emit_16(1127); -emit_16(1060); -emit_16(1127); -emit_16(1061); -emit_16(1128); -emit_16(1062); -emit_16(1128); -emit_16(1061); -emit_16(1128); -emit_16(1062); -emit_16(1129); -emit_16(1063); -emit_16(1129); -emit_16(1062); -emit_16(1129); -emit_16(1063); -emit_16(1130); -emit_16(1064); -emit_16(1130); -emit_16(1063); -emit_16(1130); -emit_16(1064); -emit_16(1131); -emit_16(1065); -emit_16(1131); -emit_16(1064); -emit_16(1131); -emit_16(1065); -emit_16(1132); -emit_16(1066); -emit_16(1132); -emit_16(1065); -emit_16(1132); -emit_16(1066); -emit_16(1133); -emit_16(1067); -emit_16(1133); -emit_16(1066); -emit_16(1133); -emit_16(1067); -emit_16(1134); -emit_16(1068); -emit_16(1134); -emit_16(1067); -emit_16(1134); -emit_16(1068); -emit_16(1135); -emit_16(1069); -emit_16(1135); -emit_16(1068); -emit_16(1135); -emit_16(1069); -emit_16(1136); -emit_16(1070); -emit_16(1136); -emit_16(1069); -emit_16(1136); -emit_16(1070); -emit_16(1137); -emit_16(1071); -emit_16(1137); -emit_16(1070); -emit_16(1137); -emit_16(1071); -emit_16(1138); -emit_16(1072); -emit_16(1138); -emit_16(1071); -emit_16(1138); -emit_16(1072); -emit_16(1139); -emit_16(1073); -emit_16(1139); -emit_16(1072); -emit_16(1139); -emit_16(1073); -emit_16(1140); -emit_16(1074); -emit_16(1140); -emit_16(1073); -emit_16(1140); -emit_16(1074); -emit_16(1141); -emit_16(1075); -emit_16(1141); -emit_16(1074); -emit_16(1141); -emit_16(1075); -emit_16(1142); -emit_16(1076); -emit_16(1142); -emit_16(1075); -emit_16(1142); -emit_16(1076); -emit_16(1143); -emit_16(1077); -emit_16(1143); -emit_16(1076); -emit_16(1143); -emit_16(1077); -emit_16(1144); -emit_16(1078); -emit_16(1144); -emit_16(1077); -emit_16(1144); -emit_16(1078); -emit_16(1145); -emit_16(1079); -emit_16(1145); -emit_16(1078); -emit_16(1145); -emit_16(1079); -emit_16(1146); -emit_16(1080); -emit_16(1146); -emit_16(1079); -emit_16(1146); -emit_16(1080); -emit_16(1147); -emit_16(1081); -emit_16(1147); -emit_16(1080); -emit_16(1147); -emit_16(1081); -emit_16(1148); -emit_16(1082); -emit_16(1148); -emit_16(1081); -emit_16(1148); -emit_16(1082); -emit_16(1149); -emit_16(1083); -emit_16(1149); -emit_16(1082); -emit_16(1149); -emit_16(1083); -emit_16(1150); -emit_16(1084); -emit_16(1150); -emit_16(1083); -emit_16(1150); -emit_16(1084); -emit_16(1151); -emit_16(1085); -emit_16(1151); -emit_16(1084); -emit_16(1151); -emit_16(1085); -emit_16(1152); -emit_16(1086); -emit_16(1152); -emit_16(1085); -emit_16(1152); -emit_16(1086); -emit_16(1153); -emit_16(1087); -emit_16(1153); -emit_16(1086); -emit_16(1153); -emit_16(1087); -emit_16(1154); -emit_16(1088); -emit_16(1154); -emit_16(1087); -emit_16(1154); -emit_16(1088); -emit_16(1155); -emit_16(1089); -emit_16(1155); -emit_16(1088); -emit_16(1155); -emit_16(1089); -emit_16(1156); -emit_16(1090); -emit_16(1156); -emit_16(1089); -emit_16(1156); -emit_16(1090); -emit_16(1157); -emit_16(1091); -emit_16(1157); -emit_16(1090); -emit_16(1157); -emit_16(1091); -emit_16(1158); -emit_16(1092); -emit_16(1158); -emit_16(1091); -emit_16(1158); -emit_16(1092); -emit_16(1159); -emit_16(1093); -emit_16(1159); -emit_16(1092); -emit_16(1159); -emit_16(1093); -emit_16(1160); -emit_16(1094); -emit_16(1160); -emit_16(1093); -emit_16(1160); -emit_16(1094); -emit_16(1161); -emit_16(1095); -emit_16(1161); -emit_16(1094); -emit_16(1161); -emit_16(1095); -emit_16(1162); -emit_16(1096); -emit_16(1162); -emit_16(1095); -emit_16(1162); -emit_16(1096); -emit_16(1163); -emit_16(1097); -emit_16(1163); -emit_16(1096); -emit_16(1163); -emit_16(1097); -emit_16(1164); -emit_16(1098); -emit_16(1164); -emit_16(1097); -emit_16(1164); -emit_16(1098); -emit_16(1165); -emit_16(1099); -emit_16(1165); -emit_16(1098); -emit_16(1165); -emit_16(1099); -emit_16(1166); -emit_16(1100); -emit_16(1166); -emit_16(1099); -emit_16(1166); -emit_16(1100); -emit_16(1167); -emit_16(1101); -emit_16(1167); -emit_16(1100); -emit_16(1167); -emit_16(1101); -emit_16(1168); -emit_16(1102); -emit_16(1168); -emit_16(1101); -emit_16(1168); -emit_16(1102); -emit_16(1169); -emit_16(1103); -emit_16(1169); -emit_16(1102); -emit_16(1169); -emit_16(1103); -emit_16(1170); -emit_16(1104); -emit_16(1170); -emit_16(1103); -emit_16(1170); -emit_16(1104); -emit_16(1171); -emit_16(1105); -emit_16(1171); -emit_16(1104); -emit_16(1171); -emit_16(1105); -emit_16(1172); -emit_16(1106); -emit_16(1172); -emit_16(1105); -emit_16(1172); -emit_16(1106); -emit_16(1173); -emit_16(1107); -emit_16(1173); -emit_16(1106); -emit_16(1173); -emit_16(1107); -emit_16(1174); -emit_16(1108); -emit_16(1174); -emit_16(1107); -emit_16(1174); -emit_16(1108); -emit_16(1175); -emit_16(1109); -emit_16(1175); -emit_16(1108); -emit_16(1175); -emit_16(1109); -emit_16(1176); -emit_16(1110); -emit_16(1176); -emit_16(1109); -emit_16(1176); -emit_16(1110); -emit_16(1177); -emit_16(1111); -emit_16(1177); -emit_16(1110); -emit_16(1177); -emit_16(1111); -emit_16(1178); -emit_16(1112); -emit_16(1178); -emit_16(1111); -emit_16(1178); -emit_16(1112); -emit_16(1179); -emit_16(1113); -emit_16(1179); -emit_16(1112); -emit_16(1179); -emit_16(1113); -emit_16(1180); -emit_16(1114); -emit_16(1180); -emit_16(1113); -emit_16(1180); -emit_16(1114); -emit_16(1181); -emit_16(1115); -emit_16(1181); -emit_16(1114); -emit_16(1181); -emit_16(1115); -emit_16(1182); -emit_16(1116); -emit_16(1182); -emit_16(1115); -emit_16(1182); -emit_16(1116); -emit_16(1183); -emit_16(1117); -emit_16(1183); -emit_16(1116); -emit_16(1183); -emit_16(1117); -emit_16(1184); -emit_16(1118); -emit_16(1184); -emit_16(1117); -emit_16(1184); -emit_16(1118); -emit_16(1185); -emit_16(1119); -emit_16(1185); -emit_16(1118); -emit_16(1185); -emit_16(1119); -emit_16(1186); -emit_16(1120); -emit_16(1186); -emit_16(1119); -emit_16(1186); -emit_16(1120); -emit_16(1187); -emit_16(1121); -emit_16(1187); -emit_16(1120); -emit_16(1188); -emit_16(1122); -emit_16(1189); -emit_16(1123); -emit_16(1189); -emit_16(1122); -emit_16(1189); -emit_16(1123); -emit_16(1190); -emit_16(1124); -emit_16(1190); -emit_16(1123); -emit_16(1190); -emit_16(1124); -emit_16(1191); -emit_16(1125); -emit_16(1191); -emit_16(1124); -emit_16(1191); -emit_16(1125); -emit_16(1192); -emit_16(1126); -emit_16(1192); -emit_16(1125); -emit_16(1192); -emit_16(1126); -emit_16(1193); -emit_16(1127); -emit_16(1193); -emit_16(1126); -emit_16(1193); -emit_16(1127); -emit_16(1194); -emit_16(1128); -emit_16(1194); -emit_16(1127); -emit_16(1194); -emit_16(1128); -emit_16(1195); -emit_16(1129); -emit_16(1195); -emit_16(1128); -emit_16(1195); -emit_16(1129); -emit_16(1196); -emit_16(1130); -emit_16(1196); -emit_16(1129); -emit_16(1196); -emit_16(1130); -emit_16(1197); -emit_16(1131); -emit_16(1197); -emit_16(1130); -emit_16(1197); -emit_16(1131); -emit_16(1198); -emit_16(1132); -emit_16(1198); -emit_16(1131); -emit_16(1198); -emit_16(1132); -emit_16(1199); -emit_16(1133); -emit_16(1199); -emit_16(1132); -emit_16(1199); -emit_16(1133); -emit_16(1200); -emit_16(1134); -emit_16(1200); -emit_16(1133); -emit_16(1200); -emit_16(1134); -emit_16(1201); -emit_16(1135); -emit_16(1201); -emit_16(1134); -emit_16(1201); -emit_16(1135); -emit_16(1202); -emit_16(1136); -emit_16(1202); -emit_16(1135); -emit_16(1202); -emit_16(1136); -emit_16(1203); -emit_16(1137); -emit_16(1203); -emit_16(1136); -emit_16(1203); -emit_16(1137); -emit_16(1204); -emit_16(1138); -emit_16(1204); -emit_16(1137); -emit_16(1204); -emit_16(1138); -emit_16(1205); -emit_16(1139); -emit_16(1205); -emit_16(1138); -emit_16(1205); -emit_16(1139); -emit_16(1206); -emit_16(1140); -emit_16(1206); -emit_16(1139); -emit_16(1206); -emit_16(1140); -emit_16(1207); -emit_16(1141); -emit_16(1207); -emit_16(1140); -emit_16(1207); -emit_16(1141); -emit_16(1208); -emit_16(1142); -emit_16(1208); -emit_16(1141); -emit_16(1208); -emit_16(1142); -emit_16(1209); -emit_16(1143); -emit_16(1209); -emit_16(1142); -emit_16(1209); -emit_16(1143); -emit_16(1210); -emit_16(1144); -emit_16(1210); -emit_16(1143); -emit_16(1210); -emit_16(1144); -emit_16(1211); -emit_16(1145); -emit_16(1211); -emit_16(1144); -emit_16(1211); -emit_16(1145); -emit_16(1212); -emit_16(1146); -emit_16(1212); -emit_16(1145); -emit_16(1212); -emit_16(1146); -emit_16(1213); -emit_16(1147); -emit_16(1213); -emit_16(1146); -emit_16(1213); -emit_16(1147); -emit_16(1214); -emit_16(1148); -emit_16(1214); -emit_16(1147); -emit_16(1214); -emit_16(1148); -emit_16(1215); -emit_16(1149); -emit_16(1215); -emit_16(1148); -emit_16(1215); -emit_16(1149); -emit_16(1216); -emit_16(1150); -emit_16(1216); -emit_16(1149); -emit_16(1216); -emit_16(1150); -emit_16(1217); -emit_16(1151); -emit_16(1217); -emit_16(1150); -emit_16(1217); -emit_16(1151); -emit_16(1218); -emit_16(1152); -emit_16(1218); -emit_16(1151); -emit_16(1218); -emit_16(1152); -emit_16(1219); -emit_16(1153); -emit_16(1219); -emit_16(1152); -emit_16(1219); -emit_16(1153); -emit_16(1220); -emit_16(1154); -emit_16(1220); -emit_16(1153); -emit_16(1220); -emit_16(1154); -emit_16(1221); -emit_16(1155); -emit_16(1221); -emit_16(1154); -emit_16(1221); -emit_16(1155); -emit_16(1222); -emit_16(1156); -emit_16(1222); -emit_16(1155); -emit_16(1222); -emit_16(1156); -emit_16(1223); -emit_16(1157); -emit_16(1223); -emit_16(1156); -emit_16(1223); -emit_16(1157); -emit_16(1224); -emit_16(1158); -emit_16(1224); -emit_16(1157); -emit_16(1224); -emit_16(1158); -emit_16(1225); -emit_16(1159); -emit_16(1225); -emit_16(1158); -emit_16(1225); -emit_16(1159); -emit_16(1226); -emit_16(1160); -emit_16(1226); -emit_16(1159); -emit_16(1226); -emit_16(1160); -emit_16(1227); -emit_16(1161); -emit_16(1227); -emit_16(1160); -emit_16(1227); -emit_16(1161); -emit_16(1228); -emit_16(1162); -emit_16(1228); -emit_16(1161); -emit_16(1228); -emit_16(1162); -emit_16(1229); -emit_16(1163); -emit_16(1229); -emit_16(1162); -emit_16(1229); -emit_16(1163); -emit_16(1230); -emit_16(1164); -emit_16(1230); -emit_16(1163); -emit_16(1230); -emit_16(1164); -emit_16(1231); -emit_16(1165); -emit_16(1231); -emit_16(1164); -emit_16(1231); -emit_16(1165); -emit_16(1232); -emit_16(1166); -emit_16(1232); -emit_16(1165); -emit_16(1232); -emit_16(1166); -emit_16(1233); -emit_16(1167); -emit_16(1233); -emit_16(1166); -emit_16(1233); -emit_16(1167); -emit_16(1234); -emit_16(1168); -emit_16(1234); -emit_16(1167); -emit_16(1234); -emit_16(1168); -emit_16(1235); -emit_16(1169); -emit_16(1235); -emit_16(1168); -emit_16(1235); -emit_16(1169); -emit_16(1236); -emit_16(1170); -emit_16(1236); -emit_16(1169); -emit_16(1236); -emit_16(1170); -emit_16(1237); -emit_16(1171); -emit_16(1237); -emit_16(1170); -emit_16(1237); -emit_16(1171); -emit_16(1238); -emit_16(1172); -emit_16(1238); -emit_16(1171); -emit_16(1238); -emit_16(1172); -emit_16(1239); -emit_16(1173); -emit_16(1239); -emit_16(1172); -emit_16(1239); -emit_16(1173); -emit_16(1240); -emit_16(1174); -emit_16(1240); -emit_16(1173); -emit_16(1240); -emit_16(1174); -emit_16(1241); -emit_16(1175); -emit_16(1241); -emit_16(1174); -emit_16(1241); -emit_16(1175); -emit_16(1242); -emit_16(1176); -emit_16(1242); -emit_16(1175); -emit_16(1242); -emit_16(1176); -emit_16(1243); -emit_16(1177); -emit_16(1243); -emit_16(1176); -emit_16(1243); -emit_16(1177); -emit_16(1244); -emit_16(1178); -emit_16(1244); -emit_16(1177); -emit_16(1244); -emit_16(1178); -emit_16(1245); -emit_16(1179); -emit_16(1245); -emit_16(1178); -emit_16(1245); -emit_16(1179); -emit_16(1246); -emit_16(1180); -emit_16(1246); -emit_16(1179); -emit_16(1246); -emit_16(1180); -emit_16(1247); -emit_16(1181); -emit_16(1247); -emit_16(1180); -emit_16(1247); -emit_16(1181); -emit_16(1248); -emit_16(1182); -emit_16(1248); -emit_16(1181); -emit_16(1248); -emit_16(1182); -emit_16(1249); -emit_16(1183); -emit_16(1249); -emit_16(1182); -emit_16(1249); -emit_16(1183); -emit_16(1250); -emit_16(1184); -emit_16(1250); -emit_16(1183); -emit_16(1250); -emit_16(1184); -emit_16(1251); -emit_16(1185); -emit_16(1251); -emit_16(1184); -emit_16(1251); -emit_16(1185); -emit_16(1252); -emit_16(1186); -emit_16(1252); -emit_16(1185); -emit_16(1252); -emit_16(1186); -emit_16(1253); -emit_16(1187); -emit_16(1253); -emit_16(1186); -emit_16(1254); -emit_16(1188); -emit_16(1255); -emit_16(1189); -emit_16(1255); -emit_16(1188); -emit_16(1255); -emit_16(1189); -emit_16(1256); -emit_16(1190); -emit_16(1256); -emit_16(1189); -emit_16(1256); -emit_16(1190); -emit_16(1257); -emit_16(1191); -emit_16(1257); -emit_16(1190); -emit_16(1257); -emit_16(1191); -emit_16(1258); -emit_16(1192); -emit_16(1258); -emit_16(1191); -emit_16(1258); -emit_16(1192); -emit_16(1259); -emit_16(1193); -emit_16(1259); -emit_16(1192); -emit_16(1259); -emit_16(1193); -emit_16(1260); -emit_16(1194); -emit_16(1260); -emit_16(1193); -emit_16(1260); -emit_16(1194); -emit_16(1261); -emit_16(1195); -emit_16(1261); -emit_16(1194); -emit_16(1261); -emit_16(1195); -emit_16(1262); -emit_16(1196); -emit_16(1262); -emit_16(1195); -emit_16(1262); -emit_16(1196); -emit_16(1263); -emit_16(1197); -emit_16(1263); -emit_16(1196); -emit_16(1263); -emit_16(1197); -emit_16(1264); -emit_16(1198); -emit_16(1264); -emit_16(1197); -emit_16(1264); -emit_16(1198); -emit_16(1265); -emit_16(1199); -emit_16(1265); -emit_16(1198); -emit_16(1265); -emit_16(1199); -emit_16(1266); -emit_16(1200); -emit_16(1266); -emit_16(1199); -emit_16(1266); -emit_16(1200); -emit_16(1267); -emit_16(1201); -emit_16(1267); -emit_16(1200); -emit_16(1267); -emit_16(1201); -emit_16(1268); -emit_16(1202); -emit_16(1268); -emit_16(1201); -emit_16(1268); -emit_16(1202); -emit_16(1269); -emit_16(1203); -emit_16(1269); -emit_16(1202); -emit_16(1269); -emit_16(1203); -emit_16(1270); -emit_16(1204); -emit_16(1270); -emit_16(1203); -emit_16(1270); -emit_16(1204); -emit_16(1271); -emit_16(1205); -emit_16(1271); -emit_16(1204); -emit_16(1271); -emit_16(1205); -emit_16(1272); -emit_16(1206); -emit_16(1272); -emit_16(1205); -emit_16(1272); -emit_16(1206); -emit_16(1273); -emit_16(1207); -emit_16(1273); -emit_16(1206); -emit_16(1273); -emit_16(1207); -emit_16(1274); -emit_16(1208); -emit_16(1274); -emit_16(1207); -emit_16(1274); -emit_16(1208); -emit_16(1275); -emit_16(1209); -emit_16(1275); -emit_16(1208); -emit_16(1275); -emit_16(1209); -emit_16(1276); -emit_16(1210); -emit_16(1276); -emit_16(1209); -emit_16(1276); -emit_16(1210); -emit_16(1277); -emit_16(1211); -emit_16(1277); -emit_16(1210); -emit_16(1277); -emit_16(1211); -emit_16(1278); -emit_16(1212); -emit_16(1278); -emit_16(1211); -emit_16(1278); -emit_16(1212); -emit_16(1279); -emit_16(1213); -emit_16(1279); -emit_16(1212); -emit_16(1279); -emit_16(1213); -emit_16(1280); -emit_16(1214); -emit_16(1280); -emit_16(1213); -emit_16(1280); -emit_16(1214); -emit_16(1281); -emit_16(1215); -emit_16(1281); -emit_16(1214); -emit_16(1281); -emit_16(1215); -emit_16(1282); -emit_16(1216); -emit_16(1282); -emit_16(1215); -emit_16(1282); -emit_16(1216); -emit_16(1283); -emit_16(1217); -emit_16(1283); -emit_16(1216); -emit_16(1283); -emit_16(1217); -emit_16(1284); -emit_16(1218); -emit_16(1284); -emit_16(1217); -emit_16(1284); -emit_16(1218); -emit_16(1285); -emit_16(1219); -emit_16(1285); -emit_16(1218); -emit_16(1285); -emit_16(1219); -emit_16(1286); -emit_16(1220); -emit_16(1286); -emit_16(1219); -emit_16(1286); -emit_16(1220); -emit_16(1287); -emit_16(1221); -emit_16(1287); -emit_16(1220); -emit_16(1287); -emit_16(1221); -emit_16(1288); -emit_16(1222); -emit_16(1288); -emit_16(1221); -emit_16(1288); -emit_16(1222); -emit_16(1289); -emit_16(1223); -emit_16(1289); -emit_16(1222); -emit_16(1289); -emit_16(1223); -emit_16(1290); -emit_16(1224); -emit_16(1290); -emit_16(1223); -emit_16(1290); -emit_16(1224); -emit_16(1291); -emit_16(1225); -emit_16(1291); -emit_16(1224); -emit_16(1291); -emit_16(1225); -emit_16(1292); -emit_16(1226); -emit_16(1292); -emit_16(1225); -emit_16(1292); -emit_16(1226); -emit_16(1293); -emit_16(1227); -emit_16(1293); -emit_16(1226); -emit_16(1293); -emit_16(1227); -emit_16(1294); -emit_16(1228); -emit_16(1294); -emit_16(1227); -emit_16(1294); -emit_16(1228); -emit_16(1295); -emit_16(1229); -emit_16(1295); -emit_16(1228); -emit_16(1295); -emit_16(1229); -emit_16(1296); -emit_16(1230); -emit_16(1296); -emit_16(1229); -emit_16(1296); -emit_16(1230); -emit_16(1297); -emit_16(1231); -emit_16(1297); -emit_16(1230); -emit_16(1297); -emit_16(1231); -emit_16(1298); -emit_16(1232); -emit_16(1298); -emit_16(1231); -emit_16(1298); -emit_16(1232); -emit_16(1299); -emit_16(1233); -emit_16(1299); -emit_16(1232); -emit_16(1299); -emit_16(1233); -emit_16(1300); -emit_16(1234); -emit_16(1300); -emit_16(1233); -emit_16(1300); -emit_16(1234); -emit_16(1301); -emit_16(1235); -emit_16(1301); -emit_16(1234); -emit_16(1301); -emit_16(1235); -emit_16(1302); -emit_16(1236); -emit_16(1302); -emit_16(1235); -emit_16(1302); -emit_16(1236); -emit_16(1303); -emit_16(1237); -emit_16(1303); -emit_16(1236); -emit_16(1303); -emit_16(1237); -emit_16(1304); -emit_16(1238); -emit_16(1304); -emit_16(1237); -emit_16(1304); -emit_16(1238); -emit_16(1305); -emit_16(1239); -emit_16(1305); -emit_16(1238); -emit_16(1305); -emit_16(1239); -emit_16(1306); -emit_16(1240); -emit_16(1306); -emit_16(1239); -emit_16(1306); -emit_16(1240); -emit_16(1307); -emit_16(1241); -emit_16(1307); -emit_16(1240); -emit_16(1307); -emit_16(1241); -emit_16(1308); -emit_16(1242); -emit_16(1308); -emit_16(1241); -emit_16(1308); -emit_16(1242); -emit_16(1309); -emit_16(1243); -emit_16(1309); -emit_16(1242); -emit_16(1309); -emit_16(1243); -emit_16(1310); -emit_16(1244); -emit_16(1310); -emit_16(1243); -emit_16(1310); -emit_16(1244); -emit_16(1311); -emit_16(1245); -emit_16(1311); -emit_16(1244); -emit_16(1311); -emit_16(1245); -emit_16(1312); -emit_16(1246); -emit_16(1312); -emit_16(1245); -emit_16(1312); -emit_16(1246); -emit_16(1313); -emit_16(1247); -emit_16(1313); -emit_16(1246); -emit_16(1313); -emit_16(1247); -emit_16(1314); -emit_16(1248); -emit_16(1314); -emit_16(1247); -emit_16(1314); -emit_16(1248); -emit_16(1315); -emit_16(1249); -emit_16(1315); -emit_16(1248); -emit_16(1315); -emit_16(1249); -emit_16(1316); -emit_16(1250); -emit_16(1316); -emit_16(1249); -emit_16(1316); -emit_16(1250); -emit_16(1317); -emit_16(1251); -emit_16(1317); -emit_16(1250); -emit_16(1317); -emit_16(1251); -emit_16(1318); -emit_16(1252); -emit_16(1318); -emit_16(1251); -emit_16(1318); -emit_16(1252); -emit_16(1319); -emit_16(1253); -emit_16(1319); -emit_16(1252); -emit_16(1320); -emit_16(1254); -emit_16(1321); -emit_16(1255); -emit_16(1321); -emit_16(1254); -emit_16(1321); -emit_16(1255); -emit_16(1322); -emit_16(1256); -emit_16(1322); -emit_16(1255); -emit_16(1322); -emit_16(1256); -emit_16(1323); -emit_16(1257); -emit_16(1323); -emit_16(1256); -emit_16(1323); -emit_16(1257); -emit_16(1324); -emit_16(1258); -emit_16(1324); -emit_16(1257); -emit_16(1324); -emit_16(1258); -emit_16(1325); -emit_16(1259); -emit_16(1325); -emit_16(1258); -emit_16(1325); -emit_16(1259); -emit_16(1326); -emit_16(1260); -emit_16(1326); -emit_16(1259); -emit_16(1326); -emit_16(1260); -emit_16(1327); -emit_16(1261); -emit_16(1327); -emit_16(1260); -emit_16(1327); -emit_16(1261); -emit_16(1328); -emit_16(1262); -emit_16(1328); -emit_16(1261); -emit_16(1328); -emit_16(1262); -emit_16(1329); -emit_16(1263); -emit_16(1329); -emit_16(1262); -emit_16(1329); -emit_16(1263); -emit_16(1330); -emit_16(1264); -emit_16(1330); -emit_16(1263); -emit_16(1330); -emit_16(1264); -emit_16(1331); -emit_16(1265); -emit_16(1331); -emit_16(1264); -emit_16(1331); -emit_16(1265); -emit_16(1332); -emit_16(1266); -emit_16(1332); -emit_16(1265); -emit_16(1332); -emit_16(1266); -emit_16(1333); -emit_16(1267); -emit_16(1333); -emit_16(1266); -emit_16(1333); -emit_16(1267); -emit_16(1334); -emit_16(1268); -emit_16(1334); -emit_16(1267); -emit_16(1334); -emit_16(1268); -emit_16(1335); -emit_16(1269); -emit_16(1335); -emit_16(1268); -emit_16(1335); -emit_16(1269); -emit_16(1336); -emit_16(1270); -emit_16(1336); -emit_16(1269); -emit_16(1336); -emit_16(1270); -emit_16(1337); -emit_16(1271); -emit_16(1337); -emit_16(1270); -emit_16(1337); -emit_16(1271); -emit_16(1338); -emit_16(1272); -emit_16(1338); -emit_16(1271); -emit_16(1338); -emit_16(1272); -emit_16(1339); -emit_16(1273); -emit_16(1339); -emit_16(1272); -emit_16(1339); -emit_16(1273); -emit_16(1340); -emit_16(1274); -emit_16(1340); -emit_16(1273); -emit_16(1340); -emit_16(1274); -emit_16(1341); -emit_16(1275); -emit_16(1341); -emit_16(1274); -emit_16(1341); -emit_16(1275); -emit_16(1342); -emit_16(1276); -emit_16(1342); -emit_16(1275); -emit_16(1342); -emit_16(1276); -emit_16(1343); -emit_16(1277); -emit_16(1343); -emit_16(1276); -emit_16(1343); -emit_16(1277); -emit_16(1344); -emit_16(1278); -emit_16(1344); -emit_16(1277); -emit_16(1344); -emit_16(1278); -emit_16(1345); -emit_16(1279); -emit_16(1345); -emit_16(1278); -emit_16(1345); -emit_16(1279); -emit_16(1346); -emit_16(1280); -emit_16(1346); -emit_16(1279); -emit_16(1346); -emit_16(1280); -emit_16(1347); -emit_16(1281); -emit_16(1347); -emit_16(1280); -emit_16(1347); -emit_16(1281); -emit_16(1348); -emit_16(1282); -emit_16(1348); -emit_16(1281); -emit_16(1348); -emit_16(1282); -emit_16(1349); -emit_16(1283); -emit_16(1349); -emit_16(1282); -emit_16(1349); -emit_16(1283); -emit_16(1350); -emit_16(1284); -emit_16(1350); -emit_16(1283); -emit_16(1350); -emit_16(1284); -emit_16(1351); -emit_16(1285); -emit_16(1351); -emit_16(1284); -emit_16(1351); -emit_16(1285); -emit_16(1352); -emit_16(1286); -emit_16(1352); -emit_16(1285); -emit_16(1352); -emit_16(1286); -emit_16(1353); -emit_16(1287); -emit_16(1353); -emit_16(1286); -emit_16(1353); -emit_16(1287); -emit_16(1354); -emit_16(1288); -emit_16(1354); -emit_16(1287); -emit_16(1354); -emit_16(1288); -emit_16(1355); -emit_16(1289); -emit_16(1355); -emit_16(1288); -emit_16(1355); -emit_16(1289); -emit_16(1356); -emit_16(1290); -emit_16(1356); -emit_16(1289); -emit_16(1356); -emit_16(1290); -emit_16(1357); -emit_16(1291); -emit_16(1357); -emit_16(1290); -emit_16(1357); -emit_16(1291); -emit_16(1358); -emit_16(1292); -emit_16(1358); -emit_16(1291); -emit_16(1358); -emit_16(1292); -emit_16(1359); -emit_16(1293); -emit_16(1359); -emit_16(1292); -emit_16(1359); -emit_16(1293); -emit_16(1360); -emit_16(1294); -emit_16(1360); -emit_16(1293); -emit_16(1360); -emit_16(1294); -emit_16(1361); -emit_16(1295); -emit_16(1361); -emit_16(1294); -emit_16(1361); -emit_16(1295); -emit_16(1362); -emit_16(1296); -emit_16(1362); -emit_16(1295); -emit_16(1362); -emit_16(1296); -emit_16(1363); -emit_16(1297); -emit_16(1363); -emit_16(1296); -emit_16(1363); -emit_16(1297); -emit_16(1364); -emit_16(1298); -emit_16(1364); -emit_16(1297); -emit_16(1364); -emit_16(1298); -emit_16(1365); -emit_16(1299); -emit_16(1365); -emit_16(1298); -emit_16(1365); -emit_16(1299); -emit_16(1366); -emit_16(1300); -emit_16(1366); -emit_16(1299); -emit_16(1366); -emit_16(1300); -emit_16(1367); -emit_16(1301); -emit_16(1367); -emit_16(1300); -emit_16(1367); -emit_16(1301); -emit_16(1368); -emit_16(1302); -emit_16(1368); -emit_16(1301); -emit_16(1368); -emit_16(1302); -emit_16(1369); -emit_16(1303); -emit_16(1369); -emit_16(1302); -emit_16(1369); -emit_16(1303); -emit_16(1370); -emit_16(1304); -emit_16(1370); -emit_16(1303); -emit_16(1370); -emit_16(1304); -emit_16(1371); -emit_16(1305); -emit_16(1371); -emit_16(1304); -emit_16(1371); -emit_16(1305); -emit_16(1372); -emit_16(1306); -emit_16(1372); -emit_16(1305); -emit_16(1372); -emit_16(1306); -emit_16(1373); -emit_16(1307); -emit_16(1373); -emit_16(1306); -emit_16(1373); -emit_16(1307); -emit_16(1374); -emit_16(1308); -emit_16(1374); -emit_16(1307); -emit_16(1374); -emit_16(1308); -emit_16(1375); -emit_16(1309); -emit_16(1375); -emit_16(1308); -emit_16(1375); -emit_16(1309); -emit_16(1376); -emit_16(1310); -emit_16(1376); -emit_16(1309); -emit_16(1376); -emit_16(1310); -emit_16(1377); -emit_16(1311); -emit_16(1377); -emit_16(1310); -emit_16(1377); -emit_16(1311); -emit_16(1378); -emit_16(1312); -emit_16(1378); -emit_16(1311); -emit_16(1378); -emit_16(1312); -emit_16(1379); -emit_16(1313); -emit_16(1379); -emit_16(1312); -emit_16(1379); -emit_16(1313); -emit_16(1380); -emit_16(1314); -emit_16(1380); -emit_16(1313); -emit_16(1380); -emit_16(1314); -emit_16(1381); -emit_16(1315); -emit_16(1381); -emit_16(1314); -emit_16(1381); -emit_16(1315); -emit_16(1382); -emit_16(1316); -emit_16(1382); -emit_16(1315); -emit_16(1382); -emit_16(1316); -emit_16(1383); -emit_16(1317); -emit_16(1383); -emit_16(1316); -emit_16(1383); -emit_16(1317); -emit_16(1384); -emit_16(1318); -emit_16(1384); -emit_16(1317); -emit_16(1384); -emit_16(1318); -emit_16(1385); -emit_16(1319); -emit_16(1385); -emit_16(1318); -emit_16(1386); -emit_16(1320); -emit_16(1387); -emit_16(1321); -emit_16(1387); -emit_16(1320); -emit_16(1387); -emit_16(1321); -emit_16(1388); -emit_16(1322); -emit_16(1388); -emit_16(1321); -emit_16(1388); -emit_16(1322); -emit_16(1389); -emit_16(1323); -emit_16(1389); -emit_16(1322); -emit_16(1389); -emit_16(1323); -emit_16(1390); -emit_16(1324); -emit_16(1390); -emit_16(1323); -emit_16(1390); -emit_16(1324); -emit_16(1391); -emit_16(1325); -emit_16(1391); -emit_16(1324); -emit_16(1391); -emit_16(1325); -emit_16(1392); -emit_16(1326); -emit_16(1392); -emit_16(1325); -emit_16(1392); -emit_16(1326); -emit_16(1393); -emit_16(1327); -emit_16(1393); -emit_16(1326); -emit_16(1393); -emit_16(1327); -emit_16(1394); -emit_16(1328); -emit_16(1394); -emit_16(1327); -emit_16(1394); -emit_16(1328); -emit_16(1395); -emit_16(1329); -emit_16(1395); -emit_16(1328); -emit_16(1395); -emit_16(1329); -emit_16(1396); -emit_16(1330); -emit_16(1396); -emit_16(1329); -emit_16(1396); -emit_16(1330); -emit_16(1397); -emit_16(1331); -emit_16(1397); -emit_16(1330); -emit_16(1397); -emit_16(1331); -emit_16(1398); -emit_16(1332); -emit_16(1398); -emit_16(1331); -emit_16(1398); -emit_16(1332); -emit_16(1399); -emit_16(1333); -emit_16(1399); -emit_16(1332); -emit_16(1399); -emit_16(1333); -emit_16(1400); -emit_16(1334); -emit_16(1400); -emit_16(1333); -emit_16(1400); -emit_16(1334); -emit_16(1401); -emit_16(1335); -emit_16(1401); -emit_16(1334); -emit_16(1401); -emit_16(1335); -emit_16(1402); -emit_16(1336); -emit_16(1402); -emit_16(1335); -emit_16(1402); -emit_16(1336); -emit_16(1403); -emit_16(1337); -emit_16(1403); -emit_16(1336); -emit_16(1403); -emit_16(1337); -emit_16(1404); -emit_16(1338); -emit_16(1404); -emit_16(1337); -emit_16(1404); -emit_16(1338); -emit_16(1405); -emit_16(1339); -emit_16(1405); -emit_16(1338); -emit_16(1405); -emit_16(1339); -emit_16(1406); -emit_16(1340); -emit_16(1406); -emit_16(1339); -emit_16(1406); -emit_16(1340); -emit_16(1407); -emit_16(1341); -emit_16(1407); -emit_16(1340); -emit_16(1407); -emit_16(1341); -emit_16(1408); -emit_16(1342); -emit_16(1408); -emit_16(1341); -emit_16(1408); -emit_16(1342); -emit_16(1409); -emit_16(1343); -emit_16(1409); -emit_16(1342); -emit_16(1409); -emit_16(1343); -emit_16(1410); -emit_16(1344); -emit_16(1410); -emit_16(1343); -emit_16(1410); -emit_16(1344); -emit_16(1411); -emit_16(1345); -emit_16(1411); -emit_16(1344); -emit_16(1411); -emit_16(1345); -emit_16(1412); -emit_16(1346); -emit_16(1412); -emit_16(1345); -emit_16(1412); -emit_16(1346); -emit_16(1413); -emit_16(1347); -emit_16(1413); -emit_16(1346); -emit_16(1413); -emit_16(1347); -emit_16(1414); -emit_16(1348); -emit_16(1414); -emit_16(1347); -emit_16(1414); -emit_16(1348); -emit_16(1415); -emit_16(1349); -emit_16(1415); -emit_16(1348); -emit_16(1415); -emit_16(1349); -emit_16(1416); -emit_16(1350); -emit_16(1416); -emit_16(1349); -emit_16(1416); -emit_16(1350); -emit_16(1417); -emit_16(1351); -emit_16(1417); -emit_16(1350); -emit_16(1417); -emit_16(1351); -emit_16(1418); -emit_16(1352); -emit_16(1418); -emit_16(1351); -emit_16(1418); -emit_16(1352); -emit_16(1419); -emit_16(1353); -emit_16(1419); -emit_16(1352); -emit_16(1419); -emit_16(1353); -emit_16(1420); -emit_16(1354); -emit_16(1420); -emit_16(1353); -emit_16(1420); -emit_16(1354); -emit_16(1421); -emit_16(1355); -emit_16(1421); -emit_16(1354); -emit_16(1421); -emit_16(1355); -emit_16(1422); -emit_16(1356); -emit_16(1422); -emit_16(1355); -emit_16(1422); -emit_16(1356); -emit_16(1423); -emit_16(1357); -emit_16(1423); -emit_16(1356); -emit_16(1423); -emit_16(1357); -emit_16(1424); -emit_16(1358); -emit_16(1424); -emit_16(1357); -emit_16(1424); -emit_16(1358); -emit_16(1425); -emit_16(1359); -emit_16(1425); -emit_16(1358); -emit_16(1425); -emit_16(1359); -emit_16(1426); -emit_16(1360); -emit_16(1426); -emit_16(1359); -emit_16(1426); -emit_16(1360); -emit_16(1427); -emit_16(1361); -emit_16(1427); -emit_16(1360); -emit_16(1427); -emit_16(1361); -emit_16(1428); -emit_16(1362); -emit_16(1428); -emit_16(1361); -emit_16(1428); -emit_16(1362); -emit_16(1429); -emit_16(1363); -emit_16(1429); -emit_16(1362); -emit_16(1429); -emit_16(1363); -emit_16(1430); -emit_16(1364); -emit_16(1430); -emit_16(1363); -emit_16(1430); -emit_16(1364); -emit_16(1431); -emit_16(1365); -emit_16(1431); -emit_16(1364); -emit_16(1431); -emit_16(1365); -emit_16(1432); -emit_16(1366); -emit_16(1432); -emit_16(1365); -emit_16(1432); -emit_16(1366); -emit_16(1433); -emit_16(1367); -emit_16(1433); -emit_16(1366); -emit_16(1433); -emit_16(1367); -emit_16(1434); -emit_16(1368); -emit_16(1434); -emit_16(1367); -emit_16(1434); -emit_16(1368); -emit_16(1435); -emit_16(1369); -emit_16(1435); -emit_16(1368); -emit_16(1435); -emit_16(1369); -emit_16(1436); -emit_16(1370); -emit_16(1436); -emit_16(1369); -emit_16(1436); -emit_16(1370); -emit_16(1437); -emit_16(1371); -emit_16(1437); -emit_16(1370); -emit_16(1437); -emit_16(1371); -emit_16(1438); -emit_16(1372); -emit_16(1438); -emit_16(1371); -emit_16(1438); -emit_16(1372); -emit_16(1439); -emit_16(1373); -emit_16(1439); -emit_16(1372); -emit_16(1439); -emit_16(1373); -emit_16(1440); -emit_16(1374); -emit_16(1440); -emit_16(1373); -emit_16(1440); -emit_16(1374); -emit_16(1441); -emit_16(1375); -emit_16(1441); -emit_16(1374); -emit_16(1441); -emit_16(1375); -emit_16(1442); -emit_16(1376); -emit_16(1442); -emit_16(1375); -emit_16(1442); -emit_16(1376); -emit_16(1443); -emit_16(1377); -emit_16(1443); -emit_16(1376); -emit_16(1443); -emit_16(1377); -emit_16(1444); -emit_16(1378); -emit_16(1444); -emit_16(1377); -emit_16(1444); -emit_16(1378); -emit_16(1445); -emit_16(1379); -emit_16(1445); -emit_16(1378); -emit_16(1445); -emit_16(1379); -emit_16(1446); -emit_16(1380); -emit_16(1446); -emit_16(1379); -emit_16(1446); -emit_16(1380); -emit_16(1447); -emit_16(1381); -emit_16(1447); -emit_16(1380); -emit_16(1447); -emit_16(1381); -emit_16(1448); -emit_16(1382); -emit_16(1448); -emit_16(1381); -emit_16(1448); -emit_16(1382); -emit_16(1449); -emit_16(1383); -emit_16(1449); -emit_16(1382); -emit_16(1449); -emit_16(1383); -emit_16(1450); -emit_16(1384); -emit_16(1450); -emit_16(1383); -emit_16(1450); -emit_16(1384); -emit_16(1451); -emit_16(1385); -emit_16(1451); -emit_16(1384); -emit_16(1452); -emit_16(1386); -emit_16(1453); -emit_16(1387); -emit_16(1453); -emit_16(1386); -emit_16(1453); -emit_16(1387); -emit_16(1454); -emit_16(1388); -emit_16(1454); -emit_16(1387); -emit_16(1454); -emit_16(1388); -emit_16(1455); -emit_16(1389); -emit_16(1455); -emit_16(1388); -emit_16(1455); -emit_16(1389); -emit_16(1456); -emit_16(1390); -emit_16(1456); -emit_16(1389); -emit_16(1456); -emit_16(1390); -emit_16(1457); -emit_16(1391); -emit_16(1457); -emit_16(1390); -emit_16(1457); -emit_16(1391); -emit_16(1458); -emit_16(1392); -emit_16(1458); -emit_16(1391); -emit_16(1458); -emit_16(1392); -emit_16(1459); -emit_16(1393); -emit_16(1459); -emit_16(1392); -emit_16(1459); -emit_16(1393); -emit_16(1460); -emit_16(1394); -emit_16(1460); -emit_16(1393); -emit_16(1460); -emit_16(1394); -emit_16(1461); -emit_16(1395); -emit_16(1461); -emit_16(1394); -emit_16(1461); -emit_16(1395); -emit_16(1462); -emit_16(1396); -emit_16(1462); -emit_16(1395); -emit_16(1462); -emit_16(1396); -emit_16(1463); -emit_16(1397); -emit_16(1463); -emit_16(1396); -emit_16(1463); -emit_16(1397); -emit_16(1464); -emit_16(1398); -emit_16(1464); -emit_16(1397); -emit_16(1464); -emit_16(1398); -emit_16(1465); -emit_16(1399); -emit_16(1465); -emit_16(1398); -emit_16(1465); -emit_16(1399); -emit_16(1466); -emit_16(1400); -emit_16(1466); -emit_16(1399); -emit_16(1466); -emit_16(1400); -emit_16(1467); -emit_16(1401); -emit_16(1467); -emit_16(1400); -emit_16(1467); -emit_16(1401); -emit_16(1468); -emit_16(1402); -emit_16(1468); -emit_16(1401); -emit_16(1468); -emit_16(1402); -emit_16(1469); -emit_16(1403); -emit_16(1469); -emit_16(1402); -emit_16(1469); -emit_16(1403); -emit_16(1470); -emit_16(1404); -emit_16(1470); -emit_16(1403); -emit_16(1470); -emit_16(1404); -emit_16(1471); -emit_16(1405); -emit_16(1471); -emit_16(1404); -emit_16(1471); -emit_16(1405); -emit_16(1472); -emit_16(1406); -emit_16(1472); -emit_16(1405); -emit_16(1472); -emit_16(1406); -emit_16(1473); -emit_16(1407); -emit_16(1473); -emit_16(1406); -emit_16(1473); -emit_16(1407); -emit_16(1474); -emit_16(1408); -emit_16(1474); -emit_16(1407); -emit_16(1474); -emit_16(1408); -emit_16(1475); -emit_16(1409); -emit_16(1475); -emit_16(1408); -emit_16(1475); -emit_16(1409); -emit_16(1476); -emit_16(1410); -emit_16(1476); -emit_16(1409); -emit_16(1476); -emit_16(1410); -emit_16(1477); -emit_16(1411); -emit_16(1477); -emit_16(1410); -emit_16(1477); -emit_16(1411); -emit_16(1478); -emit_16(1412); -emit_16(1478); -emit_16(1411); -emit_16(1478); -emit_16(1412); -emit_16(1479); -emit_16(1413); -emit_16(1479); -emit_16(1412); -emit_16(1479); -emit_16(1413); -emit_16(1480); -emit_16(1414); -emit_16(1480); -emit_16(1413); -emit_16(1480); -emit_16(1414); -emit_16(1481); -emit_16(1415); -emit_16(1481); -emit_16(1414); -emit_16(1481); -emit_16(1415); -emit_16(1482); -emit_16(1416); -emit_16(1482); -emit_16(1415); -emit_16(1482); -emit_16(1416); -emit_16(1483); -emit_16(1417); -emit_16(1483); -emit_16(1416); -emit_16(1483); -emit_16(1417); -emit_16(1484); -emit_16(1418); -emit_16(1484); -emit_16(1417); -emit_16(1484); -emit_16(1418); -emit_16(1485); -emit_16(1419); -emit_16(1485); -emit_16(1418); -emit_16(1485); -emit_16(1419); -emit_16(1486); -emit_16(1420); -emit_16(1486); -emit_16(1419); -emit_16(1486); -emit_16(1420); -emit_16(1487); -emit_16(1421); -emit_16(1487); -emit_16(1420); -emit_16(1487); -emit_16(1421); -emit_16(1488); -emit_16(1422); -emit_16(1488); -emit_16(1421); -emit_16(1488); -emit_16(1422); -emit_16(1489); -emit_16(1423); -emit_16(1489); -emit_16(1422); -emit_16(1489); -emit_16(1423); -emit_16(1490); -emit_16(1424); -emit_16(1490); -emit_16(1423); -emit_16(1490); -emit_16(1424); -emit_16(1491); -emit_16(1425); -emit_16(1491); -emit_16(1424); -emit_16(1491); -emit_16(1425); -emit_16(1492); -emit_16(1426); -emit_16(1492); -emit_16(1425); -emit_16(1492); -emit_16(1426); -emit_16(1493); -emit_16(1427); -emit_16(1493); -emit_16(1426); -emit_16(1493); -emit_16(1427); -emit_16(1494); -emit_16(1428); -emit_16(1494); -emit_16(1427); -emit_16(1494); -emit_16(1428); -emit_16(1495); -emit_16(1429); -emit_16(1495); -emit_16(1428); -emit_16(1495); -emit_16(1429); -emit_16(1496); -emit_16(1430); -emit_16(1496); -emit_16(1429); -emit_16(1496); -emit_16(1430); -emit_16(1497); -emit_16(1431); -emit_16(1497); -emit_16(1430); -emit_16(1497); -emit_16(1431); -emit_16(1498); -emit_16(1432); -emit_16(1498); -emit_16(1431); -emit_16(1498); -emit_16(1432); -emit_16(1499); -emit_16(1433); -emit_16(1499); -emit_16(1432); -emit_16(1499); -emit_16(1433); -emit_16(1500); -emit_16(1434); -emit_16(1500); -emit_16(1433); -emit_16(1500); -emit_16(1434); -emit_16(1501); -emit_16(1435); -emit_16(1501); -emit_16(1434); -emit_16(1501); -emit_16(1435); -emit_16(1502); -emit_16(1436); -emit_16(1502); -emit_16(1435); -emit_16(1502); -emit_16(1436); -emit_16(1503); -emit_16(1437); -emit_16(1503); -emit_16(1436); -emit_16(1503); -emit_16(1437); -emit_16(1504); -emit_16(1438); -emit_16(1504); -emit_16(1437); -emit_16(1504); -emit_16(1438); -emit_16(1505); -emit_16(1439); -emit_16(1505); -emit_16(1438); -emit_16(1505); -emit_16(1439); -emit_16(1506); -emit_16(1440); -emit_16(1506); -emit_16(1439); -emit_16(1506); -emit_16(1440); -emit_16(1507); -emit_16(1441); -emit_16(1507); -emit_16(1440); -emit_16(1507); -emit_16(1441); -emit_16(1508); -emit_16(1442); -emit_16(1508); -emit_16(1441); -emit_16(1508); -emit_16(1442); -emit_16(1509); -emit_16(1443); -emit_16(1509); -emit_16(1442); -emit_16(1509); -emit_16(1443); -emit_16(1510); -emit_16(1444); -emit_16(1510); -emit_16(1443); -emit_16(1510); -emit_16(1444); -emit_16(1511); -emit_16(1445); -emit_16(1511); -emit_16(1444); -emit_16(1511); -emit_16(1445); -emit_16(1512); -emit_16(1446); -emit_16(1512); -emit_16(1445); -emit_16(1512); -emit_16(1446); -emit_16(1513); -emit_16(1447); -emit_16(1513); -emit_16(1446); -emit_16(1513); -emit_16(1447); -emit_16(1514); -emit_16(1448); -emit_16(1514); -emit_16(1447); -emit_16(1514); -emit_16(1448); -emit_16(1515); -emit_16(1449); -emit_16(1515); -emit_16(1448); -emit_16(1515); -emit_16(1449); -emit_16(1516); -emit_16(1450); -emit_16(1516); -emit_16(1449); -emit_16(1516); -emit_16(1450); -emit_16(1517); -emit_16(1451); -emit_16(1517); -emit_16(1450); -emit_16(1518); -emit_16(1452); -emit_16(1519); -emit_16(1453); -emit_16(1519); -emit_16(1452); -emit_16(1519); -emit_16(1453); -emit_16(1520); -emit_16(1454); -emit_16(1520); -emit_16(1453); -emit_16(1520); -emit_16(1454); -emit_16(1521); -emit_16(1455); -emit_16(1521); -emit_16(1454); -emit_16(1521); -emit_16(1455); -emit_16(1522); -emit_16(1456); -emit_16(1522); -emit_16(1455); -emit_16(1522); -emit_16(1456); -emit_16(1523); -emit_16(1457); -emit_16(1523); -emit_16(1456); -emit_16(1523); -emit_16(1457); -emit_16(1524); -emit_16(1458); -emit_16(1524); -emit_16(1457); -emit_16(1524); -emit_16(1458); -emit_16(1525); -emit_16(1459); -emit_16(1525); -emit_16(1458); -emit_16(1525); -emit_16(1459); -emit_16(1526); -emit_16(1460); -emit_16(1526); -emit_16(1459); -emit_16(1526); -emit_16(1460); -emit_16(1527); -emit_16(1461); -emit_16(1527); -emit_16(1460); -emit_16(1527); -emit_16(1461); -emit_16(1528); -emit_16(1462); -emit_16(1528); -emit_16(1461); -emit_16(1528); -emit_16(1462); -emit_16(1529); -emit_16(1463); -emit_16(1529); -emit_16(1462); -emit_16(1529); -emit_16(1463); -emit_16(1530); -emit_16(1464); -emit_16(1530); -emit_16(1463); -emit_16(1530); -emit_16(1464); -emit_16(1531); -emit_16(1465); -emit_16(1531); -emit_16(1464); -emit_16(1531); -emit_16(1465); -emit_16(1532); -emit_16(1466); -emit_16(1532); -emit_16(1465); -emit_16(1532); -emit_16(1466); -emit_16(1533); -emit_16(1467); -emit_16(1533); -emit_16(1466); -emit_16(1533); -emit_16(1467); -emit_16(1534); -emit_16(1468); -emit_16(1534); -emit_16(1467); -emit_16(1534); -emit_16(1468); -emit_16(1535); -emit_16(1469); -emit_16(1535); -emit_16(1468); -emit_16(1535); -emit_16(1469); -emit_16(1536); -emit_16(1470); -emit_16(1536); -emit_16(1469); -emit_16(1536); -emit_16(1470); -emit_16(1537); -emit_16(1471); -emit_16(1537); -emit_16(1470); -emit_16(1537); -emit_16(1471); -emit_16(1538); -emit_16(1472); -emit_16(1538); -emit_16(1471); -emit_16(1538); -emit_16(1472); -emit_16(1539); -emit_16(1473); -emit_16(1539); -emit_16(1472); -emit_16(1539); -emit_16(1473); -emit_16(1540); -emit_16(1474); -emit_16(1540); -emit_16(1473); -emit_16(1540); -emit_16(1474); -emit_16(1541); -emit_16(1475); -emit_16(1541); -emit_16(1474); -emit_16(1541); -emit_16(1475); -emit_16(1542); -emit_16(1476); -emit_16(1542); -emit_16(1475); -emit_16(1542); -emit_16(1476); -emit_16(1543); -emit_16(1477); -emit_16(1543); -emit_16(1476); -emit_16(1543); -emit_16(1477); -emit_16(1544); -emit_16(1478); -emit_16(1544); -emit_16(1477); -emit_16(1544); -emit_16(1478); -emit_16(1545); -emit_16(1479); -emit_16(1545); -emit_16(1478); -emit_16(1545); -emit_16(1479); -emit_16(1546); -emit_16(1480); -emit_16(1546); -emit_16(1479); -emit_16(1546); -emit_16(1480); -emit_16(1547); -emit_16(1481); -emit_16(1547); -emit_16(1480); -emit_16(1547); -emit_16(1481); -emit_16(1548); -emit_16(1482); -emit_16(1548); -emit_16(1481); -emit_16(1548); -emit_16(1482); -emit_16(1549); -emit_16(1483); -emit_16(1549); -emit_16(1482); -emit_16(1549); -emit_16(1483); -emit_16(1550); -emit_16(1484); -emit_16(1550); -emit_16(1483); -emit_16(1550); -emit_16(1484); -emit_16(1551); -emit_16(1485); -emit_16(1551); -emit_16(1484); -emit_16(1551); -emit_16(1485); -emit_16(1552); -emit_16(1486); -emit_16(1552); -emit_16(1485); -emit_16(1552); -emit_16(1486); -emit_16(1553); -emit_16(1487); -emit_16(1553); -emit_16(1486); -emit_16(1553); -emit_16(1487); -emit_16(1554); -emit_16(1488); -emit_16(1554); -emit_16(1487); -emit_16(1554); -emit_16(1488); -emit_16(1555); -emit_16(1489); -emit_16(1555); -emit_16(1488); -emit_16(1555); -emit_16(1489); -emit_16(1556); -emit_16(1490); -emit_16(1556); -emit_16(1489); -emit_16(1556); -emit_16(1490); -emit_16(1557); -emit_16(1491); -emit_16(1557); -emit_16(1490); -emit_16(1557); -emit_16(1491); -emit_16(1558); -emit_16(1492); -emit_16(1558); -emit_16(1491); -emit_16(1558); -emit_16(1492); -emit_16(1559); -emit_16(1493); -emit_16(1559); -emit_16(1492); -emit_16(1559); -emit_16(1493); -emit_16(1560); -emit_16(1494); -emit_16(1560); -emit_16(1493); -emit_16(1560); -emit_16(1494); -emit_16(1561); -emit_16(1495); -emit_16(1561); -emit_16(1494); -emit_16(1561); -emit_16(1495); -emit_16(1562); -emit_16(1496); -emit_16(1562); -emit_16(1495); -emit_16(1562); -emit_16(1496); -emit_16(1563); -emit_16(1497); -emit_16(1563); -emit_16(1496); -emit_16(1563); -emit_16(1497); -emit_16(1564); -emit_16(1498); -emit_16(1564); -emit_16(1497); -emit_16(1564); -emit_16(1498); -emit_16(1565); -emit_16(1499); -emit_16(1565); -emit_16(1498); -emit_16(1565); -emit_16(1499); -emit_16(1566); -emit_16(1500); -emit_16(1566); -emit_16(1499); -emit_16(1566); -emit_16(1500); -emit_16(1567); -emit_16(1501); -emit_16(1567); -emit_16(1500); -emit_16(1567); -emit_16(1501); -emit_16(1568); -emit_16(1502); -emit_16(1568); -emit_16(1501); -emit_16(1568); -emit_16(1502); -emit_16(1569); -emit_16(1503); -emit_16(1569); -emit_16(1502); -emit_16(1569); -emit_16(1503); -emit_16(1570); -emit_16(1504); -emit_16(1570); -emit_16(1503); -emit_16(1570); -emit_16(1504); -emit_16(1571); -emit_16(1505); -emit_16(1571); -emit_16(1504); -emit_16(1571); -emit_16(1505); -emit_16(1572); -emit_16(1506); -emit_16(1572); -emit_16(1505); -emit_16(1572); -emit_16(1506); -emit_16(1573); -emit_16(1507); -emit_16(1573); -emit_16(1506); -emit_16(1573); -emit_16(1507); -emit_16(1574); -emit_16(1508); -emit_16(1574); -emit_16(1507); -emit_16(1574); -emit_16(1508); -emit_16(1575); -emit_16(1509); -emit_16(1575); -emit_16(1508); -emit_16(1575); -emit_16(1509); -emit_16(1576); -emit_16(1510); -emit_16(1576); -emit_16(1509); -emit_16(1576); -emit_16(1510); -emit_16(1577); -emit_16(1511); -emit_16(1577); -emit_16(1510); -emit_16(1577); -emit_16(1511); -emit_16(1578); -emit_16(1512); -emit_16(1578); -emit_16(1511); -emit_16(1578); -emit_16(1512); -emit_16(1579); -emit_16(1513); -emit_16(1579); -emit_16(1512); -emit_16(1579); -emit_16(1513); -emit_16(1580); -emit_16(1514); -emit_16(1580); -emit_16(1513); -emit_16(1580); -emit_16(1514); -emit_16(1581); -emit_16(1515); -emit_16(1581); -emit_16(1514); -emit_16(1581); -emit_16(1515); -emit_16(1582); -emit_16(1516); -emit_16(1582); -emit_16(1515); -emit_16(1582); -emit_16(1516); -emit_16(1583); -emit_16(1517); -emit_16(1583); -emit_16(1516); -emit_16(1584); -emit_16(1518); -emit_16(1585); -emit_16(1519); -emit_16(1585); -emit_16(1518); -emit_16(1585); -emit_16(1519); -emit_16(1586); -emit_16(1520); -emit_16(1586); -emit_16(1519); -emit_16(1586); -emit_16(1520); -emit_16(1587); -emit_16(1521); -emit_16(1587); -emit_16(1520); -emit_16(1587); -emit_16(1521); -emit_16(1588); -emit_16(1522); -emit_16(1588); -emit_16(1521); -emit_16(1588); -emit_16(1522); -emit_16(1589); -emit_16(1523); -emit_16(1589); -emit_16(1522); -emit_16(1589); -emit_16(1523); -emit_16(1590); -emit_16(1524); -emit_16(1590); -emit_16(1523); -emit_16(1590); -emit_16(1524); -emit_16(1591); -emit_16(1525); -emit_16(1591); -emit_16(1524); -emit_16(1591); -emit_16(1525); -emit_16(1592); -emit_16(1526); -emit_16(1592); -emit_16(1525); -emit_16(1592); -emit_16(1526); -emit_16(1593); -emit_16(1527); -emit_16(1593); -emit_16(1526); -emit_16(1593); -emit_16(1527); -emit_16(1594); -emit_16(1528); -emit_16(1594); -emit_16(1527); -emit_16(1594); -emit_16(1528); -emit_16(1595); -emit_16(1529); -emit_16(1595); -emit_16(1528); -emit_16(1595); -emit_16(1529); -emit_16(1596); -emit_16(1530); -emit_16(1596); -emit_16(1529); -emit_16(1596); -emit_16(1530); -emit_16(1597); -emit_16(1531); -emit_16(1597); -emit_16(1530); -emit_16(1597); -emit_16(1531); -emit_16(1598); -emit_16(1532); -emit_16(1598); -emit_16(1531); -emit_16(1598); -emit_16(1532); -emit_16(1599); -emit_16(1533); -emit_16(1599); -emit_16(1532); -emit_16(1599); -emit_16(1533); -emit_16(1600); -emit_16(1534); -emit_16(1600); -emit_16(1533); -emit_16(1600); -emit_16(1534); -emit_16(1601); -emit_16(1535); -emit_16(1601); -emit_16(1534); -emit_16(1601); -emit_16(1535); -emit_16(1602); -emit_16(1536); -emit_16(1602); -emit_16(1535); -emit_16(1602); -emit_16(1536); -emit_16(1603); -emit_16(1537); -emit_16(1603); -emit_16(1536); -emit_16(1603); -emit_16(1537); -emit_16(1604); -emit_16(1538); -emit_16(1604); -emit_16(1537); -emit_16(1604); -emit_16(1538); -emit_16(1605); -emit_16(1539); -emit_16(1605); -emit_16(1538); -emit_16(1605); -emit_16(1539); -emit_16(1606); -emit_16(1540); -emit_16(1606); -emit_16(1539); -emit_16(1606); -emit_16(1540); -emit_16(1607); -emit_16(1541); -emit_16(1607); -emit_16(1540); -emit_16(1607); -emit_16(1541); -emit_16(1608); -emit_16(1542); -emit_16(1608); -emit_16(1541); -emit_16(1608); -emit_16(1542); -emit_16(1609); -emit_16(1543); -emit_16(1609); -emit_16(1542); -emit_16(1609); -emit_16(1543); -emit_16(1610); -emit_16(1544); -emit_16(1610); -emit_16(1543); -emit_16(1610); -emit_16(1544); -emit_16(1611); -emit_16(1545); -emit_16(1611); -emit_16(1544); -emit_16(1611); -emit_16(1545); -emit_16(1612); -emit_16(1546); -emit_16(1612); -emit_16(1545); -emit_16(1612); -emit_16(1546); -emit_16(1613); -emit_16(1547); -emit_16(1613); -emit_16(1546); -emit_16(1613); -emit_16(1547); -emit_16(1614); -emit_16(1548); -emit_16(1614); -emit_16(1547); -emit_16(1614); -emit_16(1548); -emit_16(1615); -emit_16(1549); -emit_16(1615); -emit_16(1548); -emit_16(1615); -emit_16(1549); -emit_16(1616); -emit_16(1550); -emit_16(1616); -emit_16(1549); -emit_16(1616); -emit_16(1550); -emit_16(1617); -emit_16(1551); -emit_16(1617); -emit_16(1550); -emit_16(1617); -emit_16(1551); -emit_16(1618); -emit_16(1552); -emit_16(1618); -emit_16(1551); -emit_16(1618); -emit_16(1552); -emit_16(1619); -emit_16(1553); -emit_16(1619); -emit_16(1552); -emit_16(1619); -emit_16(1553); -emit_16(1620); -emit_16(1554); -emit_16(1620); -emit_16(1553); -emit_16(1620); -emit_16(1554); -emit_16(1621); -emit_16(1555); -emit_16(1621); -emit_16(1554); -emit_16(1621); -emit_16(1555); -emit_16(1622); -emit_16(1556); -emit_16(1622); -emit_16(1555); -emit_16(1622); -emit_16(1556); -emit_16(1623); -emit_16(1557); -emit_16(1623); -emit_16(1556); -emit_16(1623); -emit_16(1557); -emit_16(1624); -emit_16(1558); -emit_16(1624); -emit_16(1557); -emit_16(1624); -emit_16(1558); -emit_16(1625); -emit_16(1559); -emit_16(1625); -emit_16(1558); -emit_16(1625); -emit_16(1559); -emit_16(1626); -emit_16(1560); -emit_16(1626); -emit_16(1559); -emit_16(1626); -emit_16(1560); -emit_16(1627); -emit_16(1561); -emit_16(1627); -emit_16(1560); -emit_16(1627); -emit_16(1561); -emit_16(1628); -emit_16(1562); -emit_16(1628); -emit_16(1561); -emit_16(1628); -emit_16(1562); -emit_16(1629); -emit_16(1563); -emit_16(1629); -emit_16(1562); -emit_16(1629); -emit_16(1563); -emit_16(1630); -emit_16(1564); -emit_16(1630); -emit_16(1563); -emit_16(1630); -emit_16(1564); -emit_16(1631); -emit_16(1565); -emit_16(1631); -emit_16(1564); -emit_16(1631); -emit_16(1565); -emit_16(1632); -emit_16(1566); -emit_16(1632); -emit_16(1565); -emit_16(1632); -emit_16(1566); -emit_16(1633); -emit_16(1567); -emit_16(1633); -emit_16(1566); -emit_16(1633); -emit_16(1567); -emit_16(1634); -emit_16(1568); -emit_16(1634); -emit_16(1567); -emit_16(1634); -emit_16(1568); -emit_16(1635); -emit_16(1569); -emit_16(1635); -emit_16(1568); -emit_16(1635); -emit_16(1569); -emit_16(1636); -emit_16(1570); -emit_16(1636); -emit_16(1569); -emit_16(1636); -emit_16(1570); -emit_16(1637); -emit_16(1571); -emit_16(1637); -emit_16(1570); -emit_16(1637); -emit_16(1571); -emit_16(1638); -emit_16(1572); -emit_16(1638); -emit_16(1571); -emit_16(1638); -emit_16(1572); -emit_16(1639); -emit_16(1573); -emit_16(1639); -emit_16(1572); -emit_16(1639); -emit_16(1573); -emit_16(1640); -emit_16(1574); -emit_16(1640); -emit_16(1573); -emit_16(1640); -emit_16(1574); -emit_16(1641); -emit_16(1575); -emit_16(1641); -emit_16(1574); -emit_16(1641); -emit_16(1575); -emit_16(1642); -emit_16(1576); -emit_16(1642); -emit_16(1575); -emit_16(1642); -emit_16(1576); -emit_16(1643); -emit_16(1577); -emit_16(1643); -emit_16(1576); -emit_16(1643); -emit_16(1577); -emit_16(1644); -emit_16(1578); -emit_16(1644); -emit_16(1577); -emit_16(1644); -emit_16(1578); -emit_16(1645); -emit_16(1579); -emit_16(1645); -emit_16(1578); -emit_16(1645); -emit_16(1579); -emit_16(1646); -emit_16(1580); -emit_16(1646); -emit_16(1579); -emit_16(1646); -emit_16(1580); -emit_16(1647); -emit_16(1581); -emit_16(1647); -emit_16(1580); -emit_16(1647); -emit_16(1581); -emit_16(1648); -emit_16(1582); -emit_16(1648); -emit_16(1581); -emit_16(1648); -emit_16(1582); -emit_16(1649); -emit_16(1583); -emit_16(1649); -emit_16(1582); -emit_16(1650); -emit_16(1584); -emit_16(1651); -emit_16(1585); -emit_16(1651); -emit_16(1584); -emit_16(1651); -emit_16(1585); -emit_16(1652); -emit_16(1586); -emit_16(1652); -emit_16(1585); -emit_16(1652); -emit_16(1586); -emit_16(1653); -emit_16(1587); -emit_16(1653); -emit_16(1586); -emit_16(1653); -emit_16(1587); -emit_16(1654); -emit_16(1588); -emit_16(1654); -emit_16(1587); -emit_16(1654); -emit_16(1588); -emit_16(1655); -emit_16(1589); -emit_16(1655); -emit_16(1588); -emit_16(1655); -emit_16(1589); -emit_16(1656); -emit_16(1590); -emit_16(1656); -emit_16(1589); -emit_16(1656); -emit_16(1590); -emit_16(1657); -emit_16(1591); -emit_16(1657); -emit_16(1590); -emit_16(1657); -emit_16(1591); -emit_16(1658); -emit_16(1592); -emit_16(1658); -emit_16(1591); -emit_16(1658); -emit_16(1592); -emit_16(1659); -emit_16(1593); -emit_16(1659); -emit_16(1592); -emit_16(1659); -emit_16(1593); -emit_16(1660); -emit_16(1594); -emit_16(1660); -emit_16(1593); -emit_16(1660); -emit_16(1594); -emit_16(1661); -emit_16(1595); -emit_16(1661); -emit_16(1594); -emit_16(1661); -emit_16(1595); -emit_16(1662); -emit_16(1596); -emit_16(1662); -emit_16(1595); -emit_16(1662); -emit_16(1596); -emit_16(1663); -emit_16(1597); -emit_16(1663); -emit_16(1596); -emit_16(1663); -emit_16(1597); -emit_16(1664); -emit_16(1598); -emit_16(1664); -emit_16(1597); -emit_16(1664); -emit_16(1598); -emit_16(1665); -emit_16(1599); -emit_16(1665); -emit_16(1598); -emit_16(1665); -emit_16(1599); -emit_16(1666); -emit_16(1600); -emit_16(1666); -emit_16(1599); -emit_16(1666); -emit_16(1600); -emit_16(1667); -emit_16(1601); -emit_16(1667); -emit_16(1600); -emit_16(1667); -emit_16(1601); -emit_16(1668); -emit_16(1602); -emit_16(1668); -emit_16(1601); -emit_16(1668); -emit_16(1602); -emit_16(1669); -emit_16(1603); -emit_16(1669); -emit_16(1602); -emit_16(1669); -emit_16(1603); -emit_16(1670); -emit_16(1604); -emit_16(1670); -emit_16(1603); -emit_16(1670); -emit_16(1604); -emit_16(1671); -emit_16(1605); -emit_16(1671); -emit_16(1604); -emit_16(1671); -emit_16(1605); -emit_16(1672); -emit_16(1606); -emit_16(1672); -emit_16(1605); -emit_16(1672); -emit_16(1606); -emit_16(1673); -emit_16(1607); -emit_16(1673); -emit_16(1606); -emit_16(1673); -emit_16(1607); -emit_16(1674); -emit_16(1608); -emit_16(1674); -emit_16(1607); -emit_16(1674); -emit_16(1608); -emit_16(1675); -emit_16(1609); -emit_16(1675); -emit_16(1608); -emit_16(1675); -emit_16(1609); -emit_16(1676); -emit_16(1610); -emit_16(1676); -emit_16(1609); -emit_16(1676); -emit_16(1610); -emit_16(1677); -emit_16(1611); -emit_16(1677); -emit_16(1610); -emit_16(1677); -emit_16(1611); -emit_16(1678); -emit_16(1612); -emit_16(1678); -emit_16(1611); -emit_16(1678); -emit_16(1612); -emit_16(1679); -emit_16(1613); -emit_16(1679); -emit_16(1612); -emit_16(1679); -emit_16(1613); -emit_16(1680); -emit_16(1614); -emit_16(1680); -emit_16(1613); -emit_16(1680); -emit_16(1614); -emit_16(1681); -emit_16(1615); -emit_16(1681); -emit_16(1614); -emit_16(1681); -emit_16(1615); -emit_16(1682); -emit_16(1616); -emit_16(1682); -emit_16(1615); -emit_16(1682); -emit_16(1616); -emit_16(1683); -emit_16(1617); -emit_16(1683); -emit_16(1616); -emit_16(1683); -emit_16(1617); -emit_16(1684); -emit_16(1618); -emit_16(1684); -emit_16(1617); -emit_16(1684); -emit_16(1618); -emit_16(1685); -emit_16(1619); -emit_16(1685); -emit_16(1618); -emit_16(1685); -emit_16(1619); -emit_16(1686); -emit_16(1620); -emit_16(1686); -emit_16(1619); -emit_16(1686); -emit_16(1620); -emit_16(1687); -emit_16(1621); -emit_16(1687); -emit_16(1620); -emit_16(1687); -emit_16(1621); -emit_16(1688); -emit_16(1622); -emit_16(1688); -emit_16(1621); -emit_16(1688); -emit_16(1622); -emit_16(1689); -emit_16(1623); -emit_16(1689); -emit_16(1622); -emit_16(1689); -emit_16(1623); -emit_16(1690); -emit_16(1624); -emit_16(1690); -emit_16(1623); -emit_16(1690); -emit_16(1624); -emit_16(1691); -emit_16(1625); -emit_16(1691); -emit_16(1624); -emit_16(1691); -emit_16(1625); -emit_16(1692); -emit_16(1626); -emit_16(1692); -emit_16(1625); -emit_16(1692); -emit_16(1626); -emit_16(1693); -emit_16(1627); -emit_16(1693); -emit_16(1626); -emit_16(1693); -emit_16(1627); -emit_16(1694); -emit_16(1628); -emit_16(1694); -emit_16(1627); -emit_16(1694); -emit_16(1628); -emit_16(1695); -emit_16(1629); -emit_16(1695); -emit_16(1628); -emit_16(1695); -emit_16(1629); -emit_16(1696); -emit_16(1630); -emit_16(1696); -emit_16(1629); -emit_16(1696); -emit_16(1630); -emit_16(1697); -emit_16(1631); -emit_16(1697); -emit_16(1630); -emit_16(1697); -emit_16(1631); -emit_16(1698); -emit_16(1632); -emit_16(1698); -emit_16(1631); -emit_16(1698); -emit_16(1632); -emit_16(1699); -emit_16(1633); -emit_16(1699); -emit_16(1632); -emit_16(1699); -emit_16(1633); -emit_16(1700); -emit_16(1634); -emit_16(1700); -emit_16(1633); -emit_16(1700); -emit_16(1634); -emit_16(1701); -emit_16(1635); -emit_16(1701); -emit_16(1634); -emit_16(1701); -emit_16(1635); -emit_16(1702); -emit_16(1636); -emit_16(1702); -emit_16(1635); -emit_16(1702); -emit_16(1636); -emit_16(1703); -emit_16(1637); -emit_16(1703); -emit_16(1636); -emit_16(1703); -emit_16(1637); -emit_16(1704); -emit_16(1638); -emit_16(1704); -emit_16(1637); -emit_16(1704); -emit_16(1638); -emit_16(1705); -emit_16(1639); -emit_16(1705); -emit_16(1638); -emit_16(1705); -emit_16(1639); -emit_16(1706); -emit_16(1640); -emit_16(1706); -emit_16(1639); -emit_16(1706); -emit_16(1640); -emit_16(1707); -emit_16(1641); -emit_16(1707); -emit_16(1640); -emit_16(1707); -emit_16(1641); -emit_16(1708); -emit_16(1642); -emit_16(1708); -emit_16(1641); -emit_16(1708); -emit_16(1642); -emit_16(1709); -emit_16(1643); -emit_16(1709); -emit_16(1642); -emit_16(1709); -emit_16(1643); -emit_16(1710); -emit_16(1644); -emit_16(1710); -emit_16(1643); -emit_16(1710); -emit_16(1644); -emit_16(1711); -emit_16(1645); -emit_16(1711); -emit_16(1644); -emit_16(1711); -emit_16(1645); -emit_16(1712); -emit_16(1646); -emit_16(1712); -emit_16(1645); -emit_16(1712); -emit_16(1646); -emit_16(1713); -emit_16(1647); -emit_16(1713); -emit_16(1646); -emit_16(1713); -emit_16(1647); -emit_16(1714); -emit_16(1648); -emit_16(1714); -emit_16(1647); -emit_16(1714); -emit_16(1648); -emit_16(1715); -emit_16(1649); -emit_16(1715); -emit_16(1648); -emit_16(1716); -emit_16(1650); -emit_16(1717); -emit_16(1651); -emit_16(1717); -emit_16(1650); -emit_16(1717); -emit_16(1651); -emit_16(1718); -emit_16(1652); -emit_16(1718); -emit_16(1651); -emit_16(1718); -emit_16(1652); -emit_16(1719); -emit_16(1653); -emit_16(1719); -emit_16(1652); -emit_16(1719); -emit_16(1653); -emit_16(1720); -emit_16(1654); -emit_16(1720); -emit_16(1653); -emit_16(1720); -emit_16(1654); -emit_16(1721); -emit_16(1655); -emit_16(1721); -emit_16(1654); -emit_16(1721); -emit_16(1655); -emit_16(1722); -emit_16(1656); -emit_16(1722); -emit_16(1655); -emit_16(1722); -emit_16(1656); -emit_16(1723); -emit_16(1657); -emit_16(1723); -emit_16(1656); -emit_16(1723); -emit_16(1657); -emit_16(1724); -emit_16(1658); -emit_16(1724); -emit_16(1657); -emit_16(1724); -emit_16(1658); -emit_16(1725); -emit_16(1659); -emit_16(1725); -emit_16(1658); -emit_16(1725); -emit_16(1659); -emit_16(1726); -emit_16(1660); -emit_16(1726); -emit_16(1659); -emit_16(1726); -emit_16(1660); -emit_16(1727); -emit_16(1661); -emit_16(1727); -emit_16(1660); -emit_16(1727); -emit_16(1661); -emit_16(1728); -emit_16(1662); -emit_16(1728); -emit_16(1661); -emit_16(1728); -emit_16(1662); -emit_16(1729); -emit_16(1663); -emit_16(1729); -emit_16(1662); -emit_16(1729); -emit_16(1663); -emit_16(1730); -emit_16(1664); -emit_16(1730); -emit_16(1663); -emit_16(1730); -emit_16(1664); -emit_16(1731); -emit_16(1665); -emit_16(1731); -emit_16(1664); -emit_16(1731); -emit_16(1665); -emit_16(1732); -emit_16(1666); -emit_16(1732); -emit_16(1665); -emit_16(1732); -emit_16(1666); -emit_16(1733); -emit_16(1667); -emit_16(1733); -emit_16(1666); -emit_16(1733); -emit_16(1667); -emit_16(1734); -emit_16(1668); -emit_16(1734); -emit_16(1667); -emit_16(1734); -emit_16(1668); -emit_16(1735); -emit_16(1669); -emit_16(1735); -emit_16(1668); -emit_16(1735); -emit_16(1669); -emit_16(1736); -emit_16(1670); -emit_16(1736); -emit_16(1669); -emit_16(1736); -emit_16(1670); -emit_16(1737); -emit_16(1671); -emit_16(1737); -emit_16(1670); -emit_16(1737); -emit_16(1671); -emit_16(1738); -emit_16(1672); -emit_16(1738); -emit_16(1671); -emit_16(1738); -emit_16(1672); -emit_16(1739); -emit_16(1673); -emit_16(1739); -emit_16(1672); -emit_16(1739); -emit_16(1673); -emit_16(1740); -emit_16(1674); -emit_16(1740); -emit_16(1673); -emit_16(1740); -emit_16(1674); -emit_16(1741); -emit_16(1675); -emit_16(1741); -emit_16(1674); -emit_16(1741); -emit_16(1675); -emit_16(1742); -emit_16(1676); -emit_16(1742); -emit_16(1675); -emit_16(1742); -emit_16(1676); -emit_16(1743); -emit_16(1677); -emit_16(1743); -emit_16(1676); -emit_16(1743); -emit_16(1677); -emit_16(1744); -emit_16(1678); -emit_16(1744); -emit_16(1677); -emit_16(1744); -emit_16(1678); -emit_16(1745); -emit_16(1679); -emit_16(1745); -emit_16(1678); -emit_16(1745); -emit_16(1679); -emit_16(1746); -emit_16(1680); -emit_16(1746); -emit_16(1679); -emit_16(1746); -emit_16(1680); -emit_16(1747); -emit_16(1681); -emit_16(1747); -emit_16(1680); -emit_16(1747); -emit_16(1681); -emit_16(1748); -emit_16(1682); -emit_16(1748); -emit_16(1681); -emit_16(1748); -emit_16(1682); -emit_16(1749); -emit_16(1683); -emit_16(1749); -emit_16(1682); -emit_16(1749); -emit_16(1683); -emit_16(1750); -emit_16(1684); -emit_16(1750); -emit_16(1683); -emit_16(1750); -emit_16(1684); -emit_16(1751); -emit_16(1685); -emit_16(1751); -emit_16(1684); -emit_16(1751); -emit_16(1685); -emit_16(1752); -emit_16(1686); -emit_16(1752); -emit_16(1685); -emit_16(1752); -emit_16(1686); -emit_16(1753); -emit_16(1687); -emit_16(1753); -emit_16(1686); -emit_16(1753); -emit_16(1687); -emit_16(1754); -emit_16(1688); -emit_16(1754); -emit_16(1687); -emit_16(1754); -emit_16(1688); -emit_16(1755); -emit_16(1689); -emit_16(1755); -emit_16(1688); -emit_16(1755); -emit_16(1689); -emit_16(1756); -emit_16(1690); -emit_16(1756); -emit_16(1689); -emit_16(1756); -emit_16(1690); -emit_16(1757); -emit_16(1691); -emit_16(1757); -emit_16(1690); -emit_16(1757); -emit_16(1691); -emit_16(1758); -emit_16(1692); -emit_16(1758); -emit_16(1691); -emit_16(1758); -emit_16(1692); -emit_16(1759); -emit_16(1693); -emit_16(1759); -emit_16(1692); -emit_16(1759); -emit_16(1693); -emit_16(1760); -emit_16(1694); -emit_16(1760); -emit_16(1693); -emit_16(1760); -emit_16(1694); -emit_16(1761); -emit_16(1695); -emit_16(1761); -emit_16(1694); -emit_16(1761); -emit_16(1695); -emit_16(1762); -emit_16(1696); -emit_16(1762); -emit_16(1695); -emit_16(1762); -emit_16(1696); -emit_16(1763); -emit_16(1697); -emit_16(1763); -emit_16(1696); -emit_16(1763); -emit_16(1697); -emit_16(1764); -emit_16(1698); -emit_16(1764); -emit_16(1697); -emit_16(1764); -emit_16(1698); -emit_16(1765); -emit_16(1699); -emit_16(1765); -emit_16(1698); -emit_16(1765); -emit_16(1699); -emit_16(1766); -emit_16(1700); -emit_16(1766); -emit_16(1699); -emit_16(1766); -emit_16(1700); -emit_16(1767); -emit_16(1701); -emit_16(1767); -emit_16(1700); -emit_16(1767); -emit_16(1701); -emit_16(1768); -emit_16(1702); -emit_16(1768); -emit_16(1701); -emit_16(1768); -emit_16(1702); -emit_16(1769); -emit_16(1703); -emit_16(1769); -emit_16(1702); -emit_16(1769); -emit_16(1703); -emit_16(1770); -emit_16(1704); -emit_16(1770); -emit_16(1703); -emit_16(1770); -emit_16(1704); -emit_16(1771); -emit_16(1705); -emit_16(1771); -emit_16(1704); -emit_16(1771); -emit_16(1705); -emit_16(1772); -emit_16(1706); -emit_16(1772); -emit_16(1705); -emit_16(1772); -emit_16(1706); -emit_16(1773); -emit_16(1707); -emit_16(1773); -emit_16(1706); -emit_16(1773); -emit_16(1707); -emit_16(1774); -emit_16(1708); -emit_16(1774); -emit_16(1707); -emit_16(1774); -emit_16(1708); -emit_16(1775); -emit_16(1709); -emit_16(1775); -emit_16(1708); -emit_16(1775); -emit_16(1709); -emit_16(1776); -emit_16(1710); -emit_16(1776); -emit_16(1709); -emit_16(1776); -emit_16(1710); -emit_16(1777); -emit_16(1711); -emit_16(1777); -emit_16(1710); -emit_16(1777); -emit_16(1711); -emit_16(1778); -emit_16(1712); -emit_16(1778); -emit_16(1711); -emit_16(1778); -emit_16(1712); -emit_16(1779); -emit_16(1713); -emit_16(1779); -emit_16(1712); -emit_16(1779); -emit_16(1713); -emit_16(1780); -emit_16(1714); -emit_16(1780); -emit_16(1713); -emit_16(1780); -emit_16(1714); -emit_16(1781); -emit_16(1715); -emit_16(1781); -emit_16(1714); -emit_16(1782); -emit_16(1716); -emit_16(1783); -emit_16(1717); -emit_16(1783); -emit_16(1716); -emit_16(1783); -emit_16(1717); -emit_16(1784); -emit_16(1718); -emit_16(1784); -emit_16(1717); -emit_16(1784); -emit_16(1718); -emit_16(1785); -emit_16(1719); -emit_16(1785); -emit_16(1718); -emit_16(1785); -emit_16(1719); -emit_16(1786); -emit_16(1720); -emit_16(1786); -emit_16(1719); -emit_16(1786); -emit_16(1720); -emit_16(1787); -emit_16(1721); -emit_16(1787); -emit_16(1720); -emit_16(1787); -emit_16(1721); -emit_16(1788); -emit_16(1722); -emit_16(1788); -emit_16(1721); -emit_16(1788); -emit_16(1722); -emit_16(1789); -emit_16(1723); -emit_16(1789); -emit_16(1722); -emit_16(1789); -emit_16(1723); -emit_16(1790); -emit_16(1724); -emit_16(1790); -emit_16(1723); -emit_16(1790); -emit_16(1724); -emit_16(1791); -emit_16(1725); -emit_16(1791); -emit_16(1724); -emit_16(1791); -emit_16(1725); -emit_16(1792); -emit_16(1726); -emit_16(1792); -emit_16(1725); -emit_16(1792); -emit_16(1726); -emit_16(1793); -emit_16(1727); -emit_16(1793); -emit_16(1726); -emit_16(1793); -emit_16(1727); -emit_16(1794); -emit_16(1728); -emit_16(1794); -emit_16(1727); -emit_16(1794); -emit_16(1728); -emit_16(1795); -emit_16(1729); -emit_16(1795); -emit_16(1728); -emit_16(1795); -emit_16(1729); -emit_16(1796); -emit_16(1730); -emit_16(1796); -emit_16(1729); -emit_16(1796); -emit_16(1730); -emit_16(1797); -emit_16(1731); -emit_16(1797); -emit_16(1730); -emit_16(1797); -emit_16(1731); -emit_16(1798); -emit_16(1732); -emit_16(1798); -emit_16(1731); -emit_16(1798); -emit_16(1732); -emit_16(1799); -emit_16(1733); -emit_16(1799); -emit_16(1732); -emit_16(1799); -emit_16(1733); -emit_16(1800); -emit_16(1734); -emit_16(1800); -emit_16(1733); -emit_16(1800); -emit_16(1734); -emit_16(1801); -emit_16(1735); -emit_16(1801); -emit_16(1734); -emit_16(1801); -emit_16(1735); -emit_16(1802); -emit_16(1736); -emit_16(1802); -emit_16(1735); -emit_16(1802); -emit_16(1736); -emit_16(1803); -emit_16(1737); -emit_16(1803); -emit_16(1736); -emit_16(1803); -emit_16(1737); -emit_16(1804); -emit_16(1738); -emit_16(1804); -emit_16(1737); -emit_16(1804); -emit_16(1738); -emit_16(1805); -emit_16(1739); -emit_16(1805); -emit_16(1738); -emit_16(1805); -emit_16(1739); -emit_16(1806); -emit_16(1740); -emit_16(1806); -emit_16(1739); -emit_16(1806); -emit_16(1740); -emit_16(1807); -emit_16(1741); -emit_16(1807); -emit_16(1740); -emit_16(1807); -emit_16(1741); -emit_16(1808); -emit_16(1742); -emit_16(1808); -emit_16(1741); -emit_16(1808); -emit_16(1742); -emit_16(1809); -emit_16(1743); -emit_16(1809); -emit_16(1742); -emit_16(1809); -emit_16(1743); -emit_16(1810); -emit_16(1744); -emit_16(1810); -emit_16(1743); -emit_16(1810); -emit_16(1744); -emit_16(1811); -emit_16(1745); -emit_16(1811); -emit_16(1744); -emit_16(1811); -emit_16(1745); -emit_16(1812); -emit_16(1746); -emit_16(1812); -emit_16(1745); -emit_16(1812); -emit_16(1746); -emit_16(1813); -emit_16(1747); -emit_16(1813); -emit_16(1746); -emit_16(1813); -emit_16(1747); -emit_16(1814); -emit_16(1748); -emit_16(1814); -emit_16(1747); -emit_16(1814); -emit_16(1748); -emit_16(1815); -emit_16(1749); -emit_16(1815); -emit_16(1748); -emit_16(1815); -emit_16(1749); -emit_16(1816); -emit_16(1750); -emit_16(1816); -emit_16(1749); -emit_16(1816); -emit_16(1750); -emit_16(1817); -emit_16(1751); -emit_16(1817); -emit_16(1750); -emit_16(1817); -emit_16(1751); -emit_16(1818); -emit_16(1752); -emit_16(1818); -emit_16(1751); -emit_16(1818); -emit_16(1752); -emit_16(1819); -emit_16(1753); -emit_16(1819); -emit_16(1752); -emit_16(1819); -emit_16(1753); -emit_16(1820); -emit_16(1754); -emit_16(1820); -emit_16(1753); -emit_16(1820); -emit_16(1754); -emit_16(1821); -emit_16(1755); -emit_16(1821); -emit_16(1754); -emit_16(1821); -emit_16(1755); -emit_16(1822); -emit_16(1756); -emit_16(1822); -emit_16(1755); -emit_16(1822); -emit_16(1756); -emit_16(1823); -emit_16(1757); -emit_16(1823); -emit_16(1756); -emit_16(1823); -emit_16(1757); -emit_16(1824); -emit_16(1758); -emit_16(1824); -emit_16(1757); -emit_16(1824); -emit_16(1758); -emit_16(1825); -emit_16(1759); -emit_16(1825); -emit_16(1758); -emit_16(1825); -emit_16(1759); -emit_16(1826); -emit_16(1760); -emit_16(1826); -emit_16(1759); -emit_16(1826); -emit_16(1760); -emit_16(1827); -emit_16(1761); -emit_16(1827); -emit_16(1760); -emit_16(1827); -emit_16(1761); -emit_16(1828); -emit_16(1762); -emit_16(1828); -emit_16(1761); -emit_16(1828); -emit_16(1762); -emit_16(1829); -emit_16(1763); -emit_16(1829); -emit_16(1762); -emit_16(1829); -emit_16(1763); -emit_16(1830); -emit_16(1764); -emit_16(1830); -emit_16(1763); -emit_16(1830); -emit_16(1764); -emit_16(1831); -emit_16(1765); -emit_16(1831); -emit_16(1764); -emit_16(1831); -emit_16(1765); -emit_16(1832); -emit_16(1766); -emit_16(1832); -emit_16(1765); -emit_16(1832); -emit_16(1766); -emit_16(1833); -emit_16(1767); -emit_16(1833); -emit_16(1766); -emit_16(1833); -emit_16(1767); -emit_16(1834); -emit_16(1768); -emit_16(1834); -emit_16(1767); -emit_16(1834); -emit_16(1768); -emit_16(1835); -emit_16(1769); -emit_16(1835); -emit_16(1768); -emit_16(1835); -emit_16(1769); -emit_16(1836); -emit_16(1770); -emit_16(1836); -emit_16(1769); -emit_16(1836); -emit_16(1770); -emit_16(1837); -emit_16(1771); -emit_16(1837); -emit_16(1770); -emit_16(1837); -emit_16(1771); -emit_16(1838); -emit_16(1772); -emit_16(1838); -emit_16(1771); -emit_16(1838); -emit_16(1772); -emit_16(1839); -emit_16(1773); -emit_16(1839); -emit_16(1772); -emit_16(1839); -emit_16(1773); -emit_16(1840); -emit_16(1774); -emit_16(1840); -emit_16(1773); -emit_16(1840); -emit_16(1774); -emit_16(1841); -emit_16(1775); -emit_16(1841); -emit_16(1774); -emit_16(1841); -emit_16(1775); -emit_16(1842); -emit_16(1776); -emit_16(1842); -emit_16(1775); -emit_16(1842); -emit_16(1776); -emit_16(1843); -emit_16(1777); -emit_16(1843); -emit_16(1776); -emit_16(1843); -emit_16(1777); -emit_16(1844); -emit_16(1778); -emit_16(1844); -emit_16(1777); -emit_16(1844); -emit_16(1778); -emit_16(1845); -emit_16(1779); -emit_16(1845); -emit_16(1778); -emit_16(1845); -emit_16(1779); -emit_16(1846); -emit_16(1780); -emit_16(1846); -emit_16(1779); -emit_16(1846); -emit_16(1780); -emit_16(1847); -emit_16(1781); -emit_16(1847); -emit_16(1780); -emit_16(1848); -emit_16(1782); -emit_16(1849); -emit_16(1783); -emit_16(1849); -emit_16(1782); -emit_16(1849); -emit_16(1783); -emit_16(1850); -emit_16(1784); -emit_16(1850); -emit_16(1783); -emit_16(1850); -emit_16(1784); -emit_16(1851); -emit_16(1785); -emit_16(1851); -emit_16(1784); -emit_16(1851); -emit_16(1785); -emit_16(1852); -emit_16(1786); -emit_16(1852); -emit_16(1785); -emit_16(1852); -emit_16(1786); -emit_16(1853); -emit_16(1787); -emit_16(1853); -emit_16(1786); -emit_16(1853); -emit_16(1787); -emit_16(1854); -emit_16(1788); -emit_16(1854); -emit_16(1787); -emit_16(1854); -emit_16(1788); -emit_16(1855); -emit_16(1789); -emit_16(1855); -emit_16(1788); -emit_16(1855); -emit_16(1789); -emit_16(1856); -emit_16(1790); -emit_16(1856); -emit_16(1789); -emit_16(1856); -emit_16(1790); -emit_16(1857); -emit_16(1791); -emit_16(1857); -emit_16(1790); -emit_16(1857); -emit_16(1791); -emit_16(1858); -emit_16(1792); -emit_16(1858); -emit_16(1791); -emit_16(1858); -emit_16(1792); -emit_16(1859); -emit_16(1793); -emit_16(1859); -emit_16(1792); -emit_16(1859); -emit_16(1793); -emit_16(1860); -emit_16(1794); -emit_16(1860); -emit_16(1793); -emit_16(1860); -emit_16(1794); -emit_16(1861); -emit_16(1795); -emit_16(1861); -emit_16(1794); -emit_16(1861); -emit_16(1795); -emit_16(1862); -emit_16(1796); -emit_16(1862); -emit_16(1795); -emit_16(1862); -emit_16(1796); -emit_16(1863); -emit_16(1797); -emit_16(1863); -emit_16(1796); -emit_16(1863); -emit_16(1797); -emit_16(1864); -emit_16(1798); -emit_16(1864); -emit_16(1797); -emit_16(1864); -emit_16(1798); -emit_16(1865); -emit_16(1799); -emit_16(1865); -emit_16(1798); -emit_16(1865); -emit_16(1799); -emit_16(1866); -emit_16(1800); -emit_16(1866); -emit_16(1799); -emit_16(1866); -emit_16(1800); -emit_16(1867); -emit_16(1801); -emit_16(1867); -emit_16(1800); -emit_16(1867); -emit_16(1801); -emit_16(1868); -emit_16(1802); -emit_16(1868); -emit_16(1801); -emit_16(1868); -emit_16(1802); -emit_16(1869); -emit_16(1803); -emit_16(1869); -emit_16(1802); -emit_16(1869); -emit_16(1803); -emit_16(1870); -emit_16(1804); -emit_16(1870); -emit_16(1803); -emit_16(1870); -emit_16(1804); -emit_16(1871); -emit_16(1805); -emit_16(1871); -emit_16(1804); -emit_16(1871); -emit_16(1805); -emit_16(1872); -emit_16(1806); -emit_16(1872); -emit_16(1805); -emit_16(1872); -emit_16(1806); -emit_16(1873); -emit_16(1807); -emit_16(1873); -emit_16(1806); -emit_16(1873); -emit_16(1807); -emit_16(1874); -emit_16(1808); -emit_16(1874); -emit_16(1807); -emit_16(1874); -emit_16(1808); -emit_16(1875); -emit_16(1809); -emit_16(1875); -emit_16(1808); -emit_16(1875); -emit_16(1809); -emit_16(1876); -emit_16(1810); -emit_16(1876); -emit_16(1809); -emit_16(1876); -emit_16(1810); -emit_16(1877); -emit_16(1811); -emit_16(1877); -emit_16(1810); -emit_16(1877); -emit_16(1811); -emit_16(1878); -emit_16(1812); -emit_16(1878); -emit_16(1811); -emit_16(1878); -emit_16(1812); -emit_16(1879); -emit_16(1813); -emit_16(1879); -emit_16(1812); -emit_16(1879); -emit_16(1813); -emit_16(1880); -emit_16(1814); -emit_16(1880); -emit_16(1813); -emit_16(1880); -emit_16(1814); -emit_16(1881); -emit_16(1815); -emit_16(1881); -emit_16(1814); -emit_16(1881); -emit_16(1815); -emit_16(1882); -emit_16(1816); -emit_16(1882); -emit_16(1815); -emit_16(1882); -emit_16(1816); -emit_16(1883); -emit_16(1817); -emit_16(1883); -emit_16(1816); -emit_16(1883); -emit_16(1817); -emit_16(1884); -emit_16(1818); -emit_16(1884); -emit_16(1817); -emit_16(1884); -emit_16(1818); -emit_16(1885); -emit_16(1819); -emit_16(1885); -emit_16(1818); -emit_16(1885); -emit_16(1819); -emit_16(1886); -emit_16(1820); -emit_16(1886); -emit_16(1819); -emit_16(1886); -emit_16(1820); -emit_16(1887); -emit_16(1821); -emit_16(1887); -emit_16(1820); -emit_16(1887); -emit_16(1821); -emit_16(1888); -emit_16(1822); -emit_16(1888); -emit_16(1821); -emit_16(1888); -emit_16(1822); -emit_16(1889); -emit_16(1823); -emit_16(1889); -emit_16(1822); -emit_16(1889); -emit_16(1823); -emit_16(1890); -emit_16(1824); -emit_16(1890); -emit_16(1823); -emit_16(1890); -emit_16(1824); -emit_16(1891); -emit_16(1825); -emit_16(1891); -emit_16(1824); -emit_16(1891); -emit_16(1825); -emit_16(1892); -emit_16(1826); -emit_16(1892); -emit_16(1825); -emit_16(1892); -emit_16(1826); -emit_16(1893); -emit_16(1827); -emit_16(1893); -emit_16(1826); -emit_16(1893); -emit_16(1827); -emit_16(1894); -emit_16(1828); -emit_16(1894); -emit_16(1827); -emit_16(1894); -emit_16(1828); -emit_16(1895); -emit_16(1829); -emit_16(1895); -emit_16(1828); -emit_16(1895); -emit_16(1829); -emit_16(1896); -emit_16(1830); -emit_16(1896); -emit_16(1829); -emit_16(1896); -emit_16(1830); -emit_16(1897); -emit_16(1831); -emit_16(1897); -emit_16(1830); -emit_16(1897); -emit_16(1831); -emit_16(1898); -emit_16(1832); -emit_16(1898); -emit_16(1831); -emit_16(1898); -emit_16(1832); -emit_16(1899); -emit_16(1833); -emit_16(1899); -emit_16(1832); -emit_16(1899); -emit_16(1833); -emit_16(1900); -emit_16(1834); -emit_16(1900); -emit_16(1833); -emit_16(1900); -emit_16(1834); -emit_16(1901); -emit_16(1835); -emit_16(1901); -emit_16(1834); -emit_16(1901); -emit_16(1835); -emit_16(1902); -emit_16(1836); -emit_16(1902); -emit_16(1835); -emit_16(1902); -emit_16(1836); -emit_16(1903); -emit_16(1837); -emit_16(1903); -emit_16(1836); -emit_16(1903); -emit_16(1837); -emit_16(1904); -emit_16(1838); -emit_16(1904); -emit_16(1837); -emit_16(1904); -emit_16(1838); -emit_16(1905); -emit_16(1839); -emit_16(1905); -emit_16(1838); -emit_16(1905); -emit_16(1839); -emit_16(1906); -emit_16(1840); -emit_16(1906); -emit_16(1839); -emit_16(1906); -emit_16(1840); -emit_16(1907); -emit_16(1841); -emit_16(1907); -emit_16(1840); -emit_16(1907); -emit_16(1841); -emit_16(1908); -emit_16(1842); -emit_16(1908); -emit_16(1841); -emit_16(1908); -emit_16(1842); -emit_16(1909); -emit_16(1843); -emit_16(1909); -emit_16(1842); -emit_16(1909); -emit_16(1843); -emit_16(1910); -emit_16(1844); -emit_16(1910); -emit_16(1843); -emit_16(1910); -emit_16(1844); -emit_16(1911); -emit_16(1845); -emit_16(1911); -emit_16(1844); -emit_16(1911); -emit_16(1845); -emit_16(1912); -emit_16(1846); -emit_16(1912); -emit_16(1845); -emit_16(1912); -emit_16(1846); -emit_16(1913); -emit_16(1847); -emit_16(1913); -emit_16(1846); -emit_16(1914); -emit_16(1848); -emit_16(1915); -emit_16(1849); -emit_16(1915); -emit_16(1848); -emit_16(1915); -emit_16(1849); -emit_16(1916); -emit_16(1850); -emit_16(1916); -emit_16(1849); -emit_16(1916); -emit_16(1850); -emit_16(1917); -emit_16(1851); -emit_16(1917); -emit_16(1850); -emit_16(1917); -emit_16(1851); -emit_16(1918); -emit_16(1852); -emit_16(1918); -emit_16(1851); -emit_16(1918); -emit_16(1852); -emit_16(1919); -emit_16(1853); -emit_16(1919); -emit_16(1852); -emit_16(1919); -emit_16(1853); -emit_16(1920); -emit_16(1854); -emit_16(1920); -emit_16(1853); -emit_16(1920); -emit_16(1854); -emit_16(1921); -emit_16(1855); -emit_16(1921); -emit_16(1854); -emit_16(1921); -emit_16(1855); -emit_16(1922); -emit_16(1856); -emit_16(1922); -emit_16(1855); -emit_16(1922); -emit_16(1856); -emit_16(1923); -emit_16(1857); -emit_16(1923); -emit_16(1856); -emit_16(1923); -emit_16(1857); -emit_16(1924); -emit_16(1858); -emit_16(1924); -emit_16(1857); -emit_16(1924); -emit_16(1858); -emit_16(1925); -emit_16(1859); -emit_16(1925); -emit_16(1858); -emit_16(1925); -emit_16(1859); -emit_16(1926); -emit_16(1860); -emit_16(1926); -emit_16(1859); -emit_16(1926); -emit_16(1860); -emit_16(1927); -emit_16(1861); -emit_16(1927); -emit_16(1860); -emit_16(1927); -emit_16(1861); -emit_16(1928); -emit_16(1862); -emit_16(1928); -emit_16(1861); -emit_16(1928); -emit_16(1862); -emit_16(1929); -emit_16(1863); -emit_16(1929); -emit_16(1862); -emit_16(1929); -emit_16(1863); -emit_16(1930); -emit_16(1864); -emit_16(1930); -emit_16(1863); -emit_16(1930); -emit_16(1864); -emit_16(1931); -emit_16(1865); -emit_16(1931); -emit_16(1864); -emit_16(1931); -emit_16(1865); -emit_16(1932); -emit_16(1866); -emit_16(1932); -emit_16(1865); -emit_16(1932); -emit_16(1866); -emit_16(1933); -emit_16(1867); -emit_16(1933); -emit_16(1866); -emit_16(1933); -emit_16(1867); -emit_16(1934); -emit_16(1868); -emit_16(1934); -emit_16(1867); -emit_16(1934); -emit_16(1868); -emit_16(1935); -emit_16(1869); -emit_16(1935); -emit_16(1868); -emit_16(1935); -emit_16(1869); -emit_16(1936); -emit_16(1870); -emit_16(1936); -emit_16(1869); -emit_16(1936); -emit_16(1870); -emit_16(1937); -emit_16(1871); -emit_16(1937); -emit_16(1870); -emit_16(1937); -emit_16(1871); -emit_16(1938); -emit_16(1872); -emit_16(1938); -emit_16(1871); -emit_16(1938); -emit_16(1872); -emit_16(1939); -emit_16(1873); -emit_16(1939); -emit_16(1872); -emit_16(1939); -emit_16(1873); -emit_16(1940); -emit_16(1874); -emit_16(1940); -emit_16(1873); -emit_16(1940); -emit_16(1874); -emit_16(1941); -emit_16(1875); -emit_16(1941); -emit_16(1874); -emit_16(1941); -emit_16(1875); -emit_16(1942); -emit_16(1876); -emit_16(1942); -emit_16(1875); -emit_16(1942); -emit_16(1876); -emit_16(1943); -emit_16(1877); -emit_16(1943); -emit_16(1876); -emit_16(1943); -emit_16(1877); -emit_16(1944); -emit_16(1878); -emit_16(1944); -emit_16(1877); -emit_16(1944); -emit_16(1878); -emit_16(1945); -emit_16(1879); -emit_16(1945); -emit_16(1878); -emit_16(1945); -emit_16(1879); -emit_16(1946); -emit_16(1880); -emit_16(1946); -emit_16(1879); -emit_16(1946); -emit_16(1880); -emit_16(1947); -emit_16(1881); -emit_16(1947); -emit_16(1880); -emit_16(1947); -emit_16(1881); -emit_16(1948); -emit_16(1882); -emit_16(1948); -emit_16(1881); -emit_16(1948); -emit_16(1882); -emit_16(1949); -emit_16(1883); -emit_16(1949); -emit_16(1882); -emit_16(1949); -emit_16(1883); -emit_16(1950); -emit_16(1884); -emit_16(1950); -emit_16(1883); -emit_16(1950); -emit_16(1884); -emit_16(1951); -emit_16(1885); -emit_16(1951); -emit_16(1884); -emit_16(1951); -emit_16(1885); -emit_16(1952); -emit_16(1886); -emit_16(1952); -emit_16(1885); -emit_16(1952); -emit_16(1886); -emit_16(1953); -emit_16(1887); -emit_16(1953); -emit_16(1886); -emit_16(1953); -emit_16(1887); -emit_16(1954); -emit_16(1888); -emit_16(1954); -emit_16(1887); -emit_16(1954); -emit_16(1888); -emit_16(1955); -emit_16(1889); -emit_16(1955); -emit_16(1888); -emit_16(1955); -emit_16(1889); -emit_16(1956); -emit_16(1890); -emit_16(1956); -emit_16(1889); -emit_16(1956); -emit_16(1890); -emit_16(1957); -emit_16(1891); -emit_16(1957); -emit_16(1890); -emit_16(1957); -emit_16(1891); -emit_16(1958); -emit_16(1892); -emit_16(1958); -emit_16(1891); -emit_16(1958); -emit_16(1892); -emit_16(1959); -emit_16(1893); -emit_16(1959); -emit_16(1892); -emit_16(1959); -emit_16(1893); -emit_16(1960); -emit_16(1894); -emit_16(1960); -emit_16(1893); -emit_16(1960); -emit_16(1894); -emit_16(1961); -emit_16(1895); -emit_16(1961); -emit_16(1894); -emit_16(1961); -emit_16(1895); -emit_16(1962); -emit_16(1896); -emit_16(1962); -emit_16(1895); -emit_16(1962); -emit_16(1896); -emit_16(1963); -emit_16(1897); -emit_16(1963); -emit_16(1896); -emit_16(1963); -emit_16(1897); -emit_16(1964); -emit_16(1898); -emit_16(1964); -emit_16(1897); -emit_16(1964); -emit_16(1898); -emit_16(1965); -emit_16(1899); -emit_16(1965); -emit_16(1898); -emit_16(1965); -emit_16(1899); -emit_16(1966); -emit_16(1900); -emit_16(1966); -emit_16(1899); -emit_16(1966); -emit_16(1900); -emit_16(1967); -emit_16(1901); -emit_16(1967); -emit_16(1900); -emit_16(1967); -emit_16(1901); -emit_16(1968); -emit_16(1902); -emit_16(1968); -emit_16(1901); -emit_16(1968); -emit_16(1902); -emit_16(1969); -emit_16(1903); -emit_16(1969); -emit_16(1902); -emit_16(1969); -emit_16(1903); -emit_16(1970); -emit_16(1904); -emit_16(1970); -emit_16(1903); -emit_16(1970); -emit_16(1904); -emit_16(1971); -emit_16(1905); -emit_16(1971); -emit_16(1904); -emit_16(1971); -emit_16(1905); -emit_16(1972); -emit_16(1906); -emit_16(1972); -emit_16(1905); -emit_16(1972); -emit_16(1906); -emit_16(1973); -emit_16(1907); -emit_16(1973); -emit_16(1906); -emit_16(1973); -emit_16(1907); -emit_16(1974); -emit_16(1908); -emit_16(1974); -emit_16(1907); -emit_16(1974); -emit_16(1908); -emit_16(1975); -emit_16(1909); -emit_16(1975); -emit_16(1908); -emit_16(1975); -emit_16(1909); -emit_16(1976); -emit_16(1910); -emit_16(1976); -emit_16(1909); -emit_16(1976); -emit_16(1910); -emit_16(1977); -emit_16(1911); -emit_16(1977); -emit_16(1910); -emit_16(1977); -emit_16(1911); -emit_16(1978); -emit_16(1912); -emit_16(1978); -emit_16(1911); -emit_16(1978); -emit_16(1912); -emit_16(1979); -emit_16(1913); -emit_16(1979); -emit_16(1912); -emit_16(1980); -emit_16(1914); -emit_16(1981); -emit_16(1915); -emit_16(1981); -emit_16(1914); -emit_16(1981); -emit_16(1915); -emit_16(1982); -emit_16(1916); -emit_16(1982); -emit_16(1915); -emit_16(1982); -emit_16(1916); -emit_16(1983); -emit_16(1917); -emit_16(1983); -emit_16(1916); -emit_16(1983); -emit_16(1917); -emit_16(1984); -emit_16(1918); -emit_16(1984); -emit_16(1917); -emit_16(1984); -emit_16(1918); -emit_16(1985); -emit_16(1919); -emit_16(1985); -emit_16(1918); -emit_16(1985); -emit_16(1919); -emit_16(1986); -emit_16(1920); -emit_16(1986); -emit_16(1919); -emit_16(1986); -emit_16(1920); -emit_16(1987); -emit_16(1921); -emit_16(1987); -emit_16(1920); -emit_16(1987); -emit_16(1921); -emit_16(1988); -emit_16(1922); -emit_16(1988); -emit_16(1921); -emit_16(1988); -emit_16(1922); -emit_16(1989); -emit_16(1923); -emit_16(1989); -emit_16(1922); -emit_16(1989); -emit_16(1923); -emit_16(1990); -emit_16(1924); -emit_16(1990); -emit_16(1923); -emit_16(1990); -emit_16(1924); -emit_16(1991); -emit_16(1925); -emit_16(1991); -emit_16(1924); -emit_16(1991); -emit_16(1925); -emit_16(1992); -emit_16(1926); -emit_16(1992); -emit_16(1925); -emit_16(1992); -emit_16(1926); -emit_16(1993); -emit_16(1927); -emit_16(1993); -emit_16(1926); -emit_16(1993); -emit_16(1927); -emit_16(1994); -emit_16(1928); -emit_16(1994); -emit_16(1927); -emit_16(1994); -emit_16(1928); -emit_16(1995); -emit_16(1929); -emit_16(1995); -emit_16(1928); -emit_16(1995); -emit_16(1929); -emit_16(1996); -emit_16(1930); -emit_16(1996); -emit_16(1929); -emit_16(1996); -emit_16(1930); -emit_16(1997); -emit_16(1931); -emit_16(1997); -emit_16(1930); -emit_16(1997); -emit_16(1931); -emit_16(1998); -emit_16(1932); -emit_16(1998); -emit_16(1931); -emit_16(1998); -emit_16(1932); -emit_16(1999); -emit_16(1933); -emit_16(1999); -emit_16(1932); -emit_16(1999); -emit_16(1933); -emit_16(2000); -emit_16(1934); -emit_16(2000); -emit_16(1933); -emit_16(2000); -emit_16(1934); -emit_16(2001); -emit_16(1935); -emit_16(2001); -emit_16(1934); -emit_16(2001); -emit_16(1935); -emit_16(2002); -emit_16(1936); -emit_16(2002); -emit_16(1935); -emit_16(2002); -emit_16(1936); -emit_16(2003); -emit_16(1937); -emit_16(2003); -emit_16(1936); -emit_16(2003); -emit_16(1937); -emit_16(2004); -emit_16(1938); -emit_16(2004); -emit_16(1937); -emit_16(2004); -emit_16(1938); -emit_16(2005); -emit_16(1939); -emit_16(2005); -emit_16(1938); -emit_16(2005); -emit_16(1939); -emit_16(2006); -emit_16(1940); -emit_16(2006); -emit_16(1939); -emit_16(2006); -emit_16(1940); -emit_16(2007); -emit_16(1941); -emit_16(2007); -emit_16(1940); -emit_16(2007); -emit_16(1941); -emit_16(2008); -emit_16(1942); -emit_16(2008); -emit_16(1941); -emit_16(2008); -emit_16(1942); -emit_16(2009); -emit_16(1943); -emit_16(2009); -emit_16(1942); -emit_16(2009); -emit_16(1943); -emit_16(2010); -emit_16(1944); -emit_16(2010); -emit_16(1943); -emit_16(2010); -emit_16(1944); -emit_16(2011); -emit_16(1945); -emit_16(2011); -emit_16(1944); -emit_16(2011); -emit_16(1945); -emit_16(2012); -emit_16(1946); -emit_16(2012); -emit_16(1945); -emit_16(2012); -emit_16(1946); -emit_16(2013); -emit_16(1947); -emit_16(2013); -emit_16(1946); -emit_16(2013); -emit_16(1947); -emit_16(2014); -emit_16(1948); -emit_16(2014); -emit_16(1947); -emit_16(2014); -emit_16(1948); -emit_16(2015); -emit_16(1949); -emit_16(2015); -emit_16(1948); -emit_16(2015); -emit_16(1949); -emit_16(2016); -emit_16(1950); -emit_16(2016); -emit_16(1949); -emit_16(2016); -emit_16(1950); -emit_16(2017); -emit_16(1951); -emit_16(2017); -emit_16(1950); -emit_16(2017); -emit_16(1951); -emit_16(2018); -emit_16(1952); -emit_16(2018); -emit_16(1951); -emit_16(2018); -emit_16(1952); -emit_16(2019); -emit_16(1953); -emit_16(2019); -emit_16(1952); -emit_16(2019); -emit_16(1953); -emit_16(2020); -emit_16(1954); -emit_16(2020); -emit_16(1953); -emit_16(2020); -emit_16(1954); -emit_16(2021); -emit_16(1955); -emit_16(2021); -emit_16(1954); -emit_16(2021); -emit_16(1955); -emit_16(2022); -emit_16(1956); -emit_16(2022); -emit_16(1955); -emit_16(2022); -emit_16(1956); -emit_16(2023); -emit_16(1957); -emit_16(2023); -emit_16(1956); -emit_16(2023); -emit_16(1957); -emit_16(2024); -emit_16(1958); -emit_16(2024); -emit_16(1957); -emit_16(2024); -emit_16(1958); -emit_16(2025); -emit_16(1959); -emit_16(2025); -emit_16(1958); -emit_16(2025); -emit_16(1959); -emit_16(2026); -emit_16(1960); -emit_16(2026); -emit_16(1959); -emit_16(2026); -emit_16(1960); -emit_16(2027); -emit_16(1961); -emit_16(2027); -emit_16(1960); -emit_16(2027); -emit_16(1961); -emit_16(2028); -emit_16(1962); -emit_16(2028); -emit_16(1961); -emit_16(2028); -emit_16(1962); -emit_16(2029); -emit_16(1963); -emit_16(2029); -emit_16(1962); -emit_16(2029); -emit_16(1963); -emit_16(2030); -emit_16(1964); -emit_16(2030); -emit_16(1963); -emit_16(2030); -emit_16(1964); -emit_16(2031); -emit_16(1965); -emit_16(2031); -emit_16(1964); -emit_16(2031); -emit_16(1965); -emit_16(2032); -emit_16(1966); -emit_16(2032); -emit_16(1965); -emit_16(2032); -emit_16(1966); -emit_16(2033); -emit_16(1967); -emit_16(2033); -emit_16(1966); -emit_16(2033); -emit_16(1967); -emit_16(2034); -emit_16(1968); -emit_16(2034); -emit_16(1967); -emit_16(2034); -emit_16(1968); -emit_16(2035); -emit_16(1969); -emit_16(2035); -emit_16(1968); -emit_16(2035); -emit_16(1969); -emit_16(2036); -emit_16(1970); -emit_16(2036); -emit_16(1969); -emit_16(2036); -emit_16(1970); -emit_16(2037); -emit_16(1971); -emit_16(2037); -emit_16(1970); -emit_16(2037); -emit_16(1971); -emit_16(2038); -emit_16(1972); -emit_16(2038); -emit_16(1971); -emit_16(2038); -emit_16(1972); -emit_16(2039); -emit_16(1973); -emit_16(2039); -emit_16(1972); -emit_16(2039); -emit_16(1973); -emit_16(2040); -emit_16(1974); -emit_16(2040); -emit_16(1973); -emit_16(2040); -emit_16(1974); -emit_16(2041); -emit_16(1975); -emit_16(2041); -emit_16(1974); -emit_16(2041); -emit_16(1975); -emit_16(2042); -emit_16(1976); -emit_16(2042); -emit_16(1975); -emit_16(2042); -emit_16(1976); -emit_16(2043); -emit_16(1977); -emit_16(2043); -emit_16(1976); -emit_16(2043); -emit_16(1977); -emit_16(2044); -emit_16(1978); -emit_16(2044); -emit_16(1977); -emit_16(2044); -emit_16(1978); -emit_16(2045); -emit_16(1979); -emit_16(2045); -emit_16(1978); -emit_16(2046); -emit_16(1980); -emit_16(2047); -emit_16(1981); -emit_16(2047); -emit_16(1980); -emit_16(2047); -emit_16(1981); -emit_16(2048); -emit_16(1982); -emit_16(2048); -emit_16(1981); -emit_16(2048); -emit_16(1982); -emit_16(2049); -emit_16(1983); -emit_16(2049); -emit_16(1982); -emit_16(2049); -emit_16(1983); -emit_16(2050); -emit_16(1984); -emit_16(2050); -emit_16(1983); -emit_16(2050); -emit_16(1984); -emit_16(2051); -emit_16(1985); -emit_16(2051); -emit_16(1984); -emit_16(2051); -emit_16(1985); -emit_16(2052); -emit_16(1986); -emit_16(2052); -emit_16(1985); -emit_16(2052); -emit_16(1986); -emit_16(2053); -emit_16(1987); -emit_16(2053); -emit_16(1986); -emit_16(2053); -emit_16(1987); -emit_16(2054); -emit_16(1988); -emit_16(2054); -emit_16(1987); -emit_16(2054); -emit_16(1988); -emit_16(2055); -emit_16(1989); -emit_16(2055); -emit_16(1988); -emit_16(2055); -emit_16(1989); -emit_16(2056); -emit_16(1990); -emit_16(2056); -emit_16(1989); -emit_16(2056); -emit_16(1990); -emit_16(2057); -emit_16(1991); -emit_16(2057); -emit_16(1990); -emit_16(2057); -emit_16(1991); -emit_16(2058); -emit_16(1992); -emit_16(2058); -emit_16(1991); -emit_16(2058); -emit_16(1992); -emit_16(2059); -emit_16(1993); -emit_16(2059); -emit_16(1992); -emit_16(2059); -emit_16(1993); -emit_16(2060); -emit_16(1994); -emit_16(2060); -emit_16(1993); -emit_16(2060); -emit_16(1994); -emit_16(2061); -emit_16(1995); -emit_16(2061); -emit_16(1994); -emit_16(2061); -emit_16(1995); -emit_16(2062); -emit_16(1996); -emit_16(2062); -emit_16(1995); -emit_16(2062); -emit_16(1996); -emit_16(2063); -emit_16(1997); -emit_16(2063); -emit_16(1996); -emit_16(2063); -emit_16(1997); -emit_16(2064); -emit_16(1998); -emit_16(2064); -emit_16(1997); -emit_16(2064); -emit_16(1998); -emit_16(2065); -emit_16(1999); -emit_16(2065); -emit_16(1998); -emit_16(2065); -emit_16(1999); -emit_16(2066); -emit_16(2000); -emit_16(2066); -emit_16(1999); -emit_16(2066); -emit_16(2000); -emit_16(2067); -emit_16(2001); -emit_16(2067); -emit_16(2000); -emit_16(2067); -emit_16(2001); -emit_16(2068); -emit_16(2002); -emit_16(2068); -emit_16(2001); -emit_16(2068); -emit_16(2002); -emit_16(2069); -emit_16(2003); -emit_16(2069); -emit_16(2002); -emit_16(2069); -emit_16(2003); -emit_16(2070); -emit_16(2004); -emit_16(2070); -emit_16(2003); -emit_16(2070); -emit_16(2004); -emit_16(2071); -emit_16(2005); -emit_16(2071); -emit_16(2004); -emit_16(2071); -emit_16(2005); -emit_16(2072); -emit_16(2006); -emit_16(2072); -emit_16(2005); -emit_16(2072); -emit_16(2006); -emit_16(2073); -emit_16(2007); -emit_16(2073); -emit_16(2006); -emit_16(2073); -emit_16(2007); -emit_16(2074); -emit_16(2008); -emit_16(2074); -emit_16(2007); -emit_16(2074); -emit_16(2008); -emit_16(2075); -emit_16(2009); -emit_16(2075); -emit_16(2008); -emit_16(2075); -emit_16(2009); -emit_16(2076); -emit_16(2010); -emit_16(2076); -emit_16(2009); -emit_16(2076); -emit_16(2010); -emit_16(2077); -emit_16(2011); -emit_16(2077); -emit_16(2010); -emit_16(2077); -emit_16(2011); -emit_16(2078); -emit_16(2012); -emit_16(2078); -emit_16(2011); -emit_16(2078); -emit_16(2012); -emit_16(2079); -emit_16(2013); -emit_16(2079); -emit_16(2012); -emit_16(2079); -emit_16(2013); -emit_16(2080); -emit_16(2014); -emit_16(2080); -emit_16(2013); -emit_16(2080); -emit_16(2014); -emit_16(2081); -emit_16(2015); -emit_16(2081); -emit_16(2014); -emit_16(2081); -emit_16(2015); -emit_16(2082); -emit_16(2016); -emit_16(2082); -emit_16(2015); -emit_16(2082); -emit_16(2016); -emit_16(2083); -emit_16(2017); -emit_16(2083); -emit_16(2016); -emit_16(2083); -emit_16(2017); -emit_16(2084); -emit_16(2018); -emit_16(2084); -emit_16(2017); -emit_16(2084); -emit_16(2018); -emit_16(2085); -emit_16(2019); -emit_16(2085); -emit_16(2018); -emit_16(2085); -emit_16(2019); -emit_16(2086); -emit_16(2020); -emit_16(2086); -emit_16(2019); -emit_16(2086); -emit_16(2020); -emit_16(2087); -emit_16(2021); -emit_16(2087); -emit_16(2020); -emit_16(2087); -emit_16(2021); -emit_16(2088); -emit_16(2022); -emit_16(2088); -emit_16(2021); -emit_16(2088); -emit_16(2022); -emit_16(2089); -emit_16(2023); -emit_16(2089); -emit_16(2022); -emit_16(2089); -emit_16(2023); -emit_16(2090); -emit_16(2024); -emit_16(2090); -emit_16(2023); -emit_16(2090); -emit_16(2024); -emit_16(2091); -emit_16(2025); -emit_16(2091); -emit_16(2024); -emit_16(2091); -emit_16(2025); -emit_16(2092); -emit_16(2026); -emit_16(2092); -emit_16(2025); -emit_16(2092); -emit_16(2026); -emit_16(2093); -emit_16(2027); -emit_16(2093); -emit_16(2026); -emit_16(2093); -emit_16(2027); -emit_16(2094); -emit_16(2028); -emit_16(2094); -emit_16(2027); -emit_16(2094); -emit_16(2028); -emit_16(2095); -emit_16(2029); -emit_16(2095); -emit_16(2028); -emit_16(2095); -emit_16(2029); -emit_16(2096); -emit_16(2030); -emit_16(2096); -emit_16(2029); -emit_16(2096); -emit_16(2030); -emit_16(2097); -emit_16(2031); -emit_16(2097); -emit_16(2030); -emit_16(2097); -emit_16(2031); -emit_16(2098); -emit_16(2032); -emit_16(2098); -emit_16(2031); -emit_16(2098); -emit_16(2032); -emit_16(2099); -emit_16(2033); -emit_16(2099); -emit_16(2032); -emit_16(2099); -emit_16(2033); -emit_16(2100); -emit_16(2034); -emit_16(2100); -emit_16(2033); -emit_16(2100); -emit_16(2034); -emit_16(2101); -emit_16(2035); -emit_16(2101); -emit_16(2034); -emit_16(2101); -emit_16(2035); -emit_16(2102); -emit_16(2036); -emit_16(2102); -emit_16(2035); -emit_16(2102); -emit_16(2036); -emit_16(2103); -emit_16(2037); -emit_16(2103); -emit_16(2036); -emit_16(2103); -emit_16(2037); -emit_16(2104); -emit_16(2038); -emit_16(2104); -emit_16(2037); -emit_16(2104); -emit_16(2038); -emit_16(2105); -emit_16(2039); -emit_16(2105); -emit_16(2038); -emit_16(2105); -emit_16(2039); -emit_16(2106); -emit_16(2040); -emit_16(2106); -emit_16(2039); -emit_16(2106); -emit_16(2040); -emit_16(2107); -emit_16(2041); -emit_16(2107); -emit_16(2040); -emit_16(2107); -emit_16(2041); -emit_16(2108); -emit_16(2042); -emit_16(2108); -emit_16(2041); -emit_16(2108); -emit_16(2042); -emit_16(2109); -emit_16(2043); -emit_16(2109); -emit_16(2042); -emit_16(2109); -emit_16(2043); -emit_16(2110); -emit_16(2044); -emit_16(2110); -emit_16(2043); -emit_16(2110); -emit_16(2044); -emit_16(2111); -emit_16(2045); -emit_16(2111); -emit_16(2044); -emit_16(2112); -emit_16(2046); -emit_16(2113); -emit_16(2047); -emit_16(2113); -emit_16(2046); -emit_16(2113); -emit_16(2047); -emit_16(2114); -emit_16(2048); -emit_16(2114); -emit_16(2047); -emit_16(2114); -emit_16(2048); -emit_16(2115); -emit_16(2049); -emit_16(2115); -emit_16(2048); -emit_16(2115); -emit_16(2049); -emit_16(2116); -emit_16(2050); -emit_16(2116); -emit_16(2049); -emit_16(2116); -emit_16(2050); -emit_16(2117); -emit_16(2051); -emit_16(2117); -emit_16(2050); -emit_16(2117); -emit_16(2051); -emit_16(2118); -emit_16(2052); -emit_16(2118); -emit_16(2051); -emit_16(2118); -emit_16(2052); -emit_16(2119); -emit_16(2053); -emit_16(2119); -emit_16(2052); -emit_16(2119); -emit_16(2053); -emit_16(2120); -emit_16(2054); -emit_16(2120); -emit_16(2053); -emit_16(2120); -emit_16(2054); -emit_16(2121); -emit_16(2055); -emit_16(2121); -emit_16(2054); -emit_16(2121); -emit_16(2055); -emit_16(2122); -emit_16(2056); -emit_16(2122); -emit_16(2055); -emit_16(2122); -emit_16(2056); -emit_16(2123); -emit_16(2057); -emit_16(2123); -emit_16(2056); -emit_16(2123); -emit_16(2057); -emit_16(2124); -emit_16(2058); -emit_16(2124); -emit_16(2057); -emit_16(2124); -emit_16(2058); -emit_16(2125); -emit_16(2059); -emit_16(2125); -emit_16(2058); -emit_16(2125); -emit_16(2059); -emit_16(2126); -emit_16(2060); -emit_16(2126); -emit_16(2059); -emit_16(2126); -emit_16(2060); -emit_16(2127); -emit_16(2061); -emit_16(2127); -emit_16(2060); -emit_16(2127); -emit_16(2061); -emit_16(2128); -emit_16(2062); -emit_16(2128); -emit_16(2061); -emit_16(2128); -emit_16(2062); -emit_16(2129); -emit_16(2063); -emit_16(2129); -emit_16(2062); -emit_16(2129); -emit_16(2063); -emit_16(2130); -emit_16(2064); -emit_16(2130); -emit_16(2063); -emit_16(2130); -emit_16(2064); -emit_16(2131); -emit_16(2065); -emit_16(2131); -emit_16(2064); -emit_16(2131); -emit_16(2065); -emit_16(2132); -emit_16(2066); -emit_16(2132); -emit_16(2065); -emit_16(2132); -emit_16(2066); -emit_16(2133); -emit_16(2067); -emit_16(2133); -emit_16(2066); -emit_16(2133); -emit_16(2067); -emit_16(2134); -emit_16(2068); -emit_16(2134); -emit_16(2067); -emit_16(2134); -emit_16(2068); -emit_16(2135); -emit_16(2069); -emit_16(2135); -emit_16(2068); -emit_16(2135); -emit_16(2069); -emit_16(2136); -emit_16(2070); -emit_16(2136); -emit_16(2069); -emit_16(2136); -emit_16(2070); -emit_16(2137); -emit_16(2071); -emit_16(2137); -emit_16(2070); -emit_16(2137); -emit_16(2071); -emit_16(2138); -emit_16(2072); -emit_16(2138); -emit_16(2071); -emit_16(2138); -emit_16(2072); -emit_16(2139); -emit_16(2073); -emit_16(2139); -emit_16(2072); -emit_16(2139); -emit_16(2073); -emit_16(2140); -emit_16(2074); -emit_16(2140); -emit_16(2073); -emit_16(2140); -emit_16(2074); -emit_16(2141); -emit_16(2075); -emit_16(2141); -emit_16(2074); -emit_16(2141); -emit_16(2075); -emit_16(2142); -emit_16(2076); -emit_16(2142); -emit_16(2075); -emit_16(2142); -emit_16(2076); -emit_16(2143); -emit_16(2077); -emit_16(2143); -emit_16(2076); -emit_16(2143); -emit_16(2077); -emit_16(2144); -emit_16(2078); -emit_16(2144); -emit_16(2077); -emit_16(2144); -emit_16(2078); -emit_16(2145); -emit_16(2079); -emit_16(2145); -emit_16(2078); -emit_16(2145); -emit_16(2079); -emit_16(2146); -emit_16(2080); -emit_16(2146); -emit_16(2079); -emit_16(2146); -emit_16(2080); -emit_16(2147); -emit_16(2081); -emit_16(2147); -emit_16(2080); -emit_16(2147); -emit_16(2081); -emit_16(2148); -emit_16(2082); -emit_16(2148); -emit_16(2081); -emit_16(2148); -emit_16(2082); -emit_16(2149); -emit_16(2083); -emit_16(2149); -emit_16(2082); -emit_16(2149); -emit_16(2083); -emit_16(2150); -emit_16(2084); -emit_16(2150); -emit_16(2083); -emit_16(2150); -emit_16(2084); -emit_16(2151); -emit_16(2085); -emit_16(2151); -emit_16(2084); -emit_16(2151); -emit_16(2085); -emit_16(2152); -emit_16(2086); -emit_16(2152); -emit_16(2085); -emit_16(2152); -emit_16(2086); -emit_16(2153); -emit_16(2087); -emit_16(2153); -emit_16(2086); -emit_16(2153); -emit_16(2087); -emit_16(2154); -emit_16(2088); -emit_16(2154); -emit_16(2087); -emit_16(2154); -emit_16(2088); -emit_16(2155); -emit_16(2089); -emit_16(2155); -emit_16(2088); -emit_16(2155); -emit_16(2089); -emit_16(2156); -emit_16(2090); -emit_16(2156); -emit_16(2089); -emit_16(2156); -emit_16(2090); -emit_16(2157); -emit_16(2091); -emit_16(2157); -emit_16(2090); -emit_16(2157); -emit_16(2091); -emit_16(2158); -emit_16(2092); -emit_16(2158); -emit_16(2091); -emit_16(2158); -emit_16(2092); -emit_16(2159); -emit_16(2093); -emit_16(2159); -emit_16(2092); -emit_16(2159); -emit_16(2093); -emit_16(2160); -emit_16(2094); -emit_16(2160); -emit_16(2093); -emit_16(2160); -emit_16(2094); -emit_16(2161); -emit_16(2095); -emit_16(2161); -emit_16(2094); -emit_16(2161); -emit_16(2095); -emit_16(2162); -emit_16(2096); -emit_16(2162); -emit_16(2095); -emit_16(2162); -emit_16(2096); -emit_16(2163); -emit_16(2097); -emit_16(2163); -emit_16(2096); -emit_16(2163); -emit_16(2097); -emit_16(2164); -emit_16(2098); -emit_16(2164); -emit_16(2097); -emit_16(2164); -emit_16(2098); -emit_16(2165); -emit_16(2099); -emit_16(2165); -emit_16(2098); -emit_16(2165); -emit_16(2099); -emit_16(2166); -emit_16(2100); -emit_16(2166); -emit_16(2099); -emit_16(2166); -emit_16(2100); -emit_16(2167); -emit_16(2101); -emit_16(2167); -emit_16(2100); -emit_16(2167); -emit_16(2101); -emit_16(2168); -emit_16(2102); -emit_16(2168); -emit_16(2101); -emit_16(2168); -emit_16(2102); -emit_16(2169); -emit_16(2103); -emit_16(2169); -emit_16(2102); -emit_16(2169); -emit_16(2103); -emit_16(2170); -emit_16(2104); -emit_16(2170); -emit_16(2103); -emit_16(2170); -emit_16(2104); -emit_16(2171); -emit_16(2105); -emit_16(2171); -emit_16(2104); -emit_16(2171); -emit_16(2105); -emit_16(2172); -emit_16(2106); -emit_16(2172); -emit_16(2105); -emit_16(2172); -emit_16(2106); -emit_16(2173); -emit_16(2107); -emit_16(2173); -emit_16(2106); -emit_16(2173); -emit_16(2107); -emit_16(2174); -emit_16(2108); -emit_16(2174); -emit_16(2107); -emit_16(2174); -emit_16(2108); -emit_16(2175); -emit_16(2109); -emit_16(2175); -emit_16(2108); -emit_16(2175); -emit_16(2109); -emit_16(2176); -emit_16(2110); -emit_16(2176); -emit_16(2109); -emit_16(2176); -emit_16(2110); -emit_16(2177); -emit_16(2111); -emit_16(2177); -emit_16(2110); -emit_16(2178); -emit_16(2112); -emit_16(2179); -emit_16(2113); -emit_16(2179); -emit_16(2112); -emit_16(2179); -emit_16(2113); -emit_16(2180); -emit_16(2114); -emit_16(2180); -emit_16(2113); -emit_16(2180); -emit_16(2114); -emit_16(2181); -emit_16(2115); -emit_16(2181); -emit_16(2114); -emit_16(2181); -emit_16(2115); -emit_16(2182); -emit_16(2116); -emit_16(2182); -emit_16(2115); -emit_16(2182); -emit_16(2116); -emit_16(2183); -emit_16(2117); -emit_16(2183); -emit_16(2116); -emit_16(2183); -emit_16(2117); -emit_16(2184); -emit_16(2118); -emit_16(2184); -emit_16(2117); -emit_16(2184); -emit_16(2118); -emit_16(2185); -emit_16(2119); -emit_16(2185); -emit_16(2118); -emit_16(2185); -emit_16(2119); -emit_16(2186); -emit_16(2120); -emit_16(2186); -emit_16(2119); -emit_16(2186); -emit_16(2120); -emit_16(2187); -emit_16(2121); -emit_16(2187); -emit_16(2120); -emit_16(2187); -emit_16(2121); -emit_16(2188); -emit_16(2122); -emit_16(2188); -emit_16(2121); -emit_16(2188); -emit_16(2122); -emit_16(2189); -emit_16(2123); -emit_16(2189); -emit_16(2122); -emit_16(2189); -emit_16(2123); -emit_16(2190); -emit_16(2124); -emit_16(2190); -emit_16(2123); -emit_16(2190); -emit_16(2124); -emit_16(2191); -emit_16(2125); -emit_16(2191); -emit_16(2124); -emit_16(2191); -emit_16(2125); -emit_16(2192); -emit_16(2126); -emit_16(2192); -emit_16(2125); -emit_16(2192); -emit_16(2126); -emit_16(2193); -emit_16(2127); -emit_16(2193); -emit_16(2126); -emit_16(2193); -emit_16(2127); -emit_16(2194); -emit_16(2128); -emit_16(2194); -emit_16(2127); -emit_16(2194); -emit_16(2128); -emit_16(2195); -emit_16(2129); -emit_16(2195); -emit_16(2128); -emit_16(2195); -emit_16(2129); -emit_16(2196); -emit_16(2130); -emit_16(2196); -emit_16(2129); -emit_16(2196); -emit_16(2130); -emit_16(2197); -emit_16(2131); -emit_16(2197); -emit_16(2130); -emit_16(2197); -emit_16(2131); -emit_16(2198); -emit_16(2132); -emit_16(2198); -emit_16(2131); -emit_16(2198); -emit_16(2132); -emit_16(2199); -emit_16(2133); -emit_16(2199); -emit_16(2132); -emit_16(2199); -emit_16(2133); -emit_16(2200); -emit_16(2134); -emit_16(2200); -emit_16(2133); -emit_16(2200); -emit_16(2134); -emit_16(2201); -emit_16(2135); -emit_16(2201); -emit_16(2134); -emit_16(2201); -emit_16(2135); -emit_16(2202); -emit_16(2136); -emit_16(2202); -emit_16(2135); -emit_16(2202); -emit_16(2136); -emit_16(2203); -emit_16(2137); -emit_16(2203); -emit_16(2136); -emit_16(2203); -emit_16(2137); -emit_16(2204); -emit_16(2138); -emit_16(2204); -emit_16(2137); -emit_16(2204); -emit_16(2138); -emit_16(2205); -emit_16(2139); -emit_16(2205); -emit_16(2138); -emit_16(2205); -emit_16(2139); -emit_16(2206); -emit_16(2140); -emit_16(2206); -emit_16(2139); -emit_16(2206); -emit_16(2140); -emit_16(2207); -emit_16(2141); -emit_16(2207); -emit_16(2140); -emit_16(2207); -emit_16(2141); -emit_16(2208); -emit_16(2142); -emit_16(2208); -emit_16(2141); -emit_16(2208); -emit_16(2142); -emit_16(2209); -emit_16(2143); -emit_16(2209); -emit_16(2142); -emit_16(2209); -emit_16(2143); -emit_16(2210); -emit_16(2144); -emit_16(2210); -emit_16(2143); -emit_16(2210); -emit_16(2144); -emit_16(2211); -emit_16(2145); -emit_16(2211); -emit_16(2144); -emit_16(2211); -emit_16(2145); -emit_16(2212); -emit_16(2146); -emit_16(2212); -emit_16(2145); -emit_16(2212); -emit_16(2146); -emit_16(2213); -emit_16(2147); -emit_16(2213); -emit_16(2146); -emit_16(2213); -emit_16(2147); -emit_16(2214); -emit_16(2148); -emit_16(2214); -emit_16(2147); -emit_16(2214); -emit_16(2148); -emit_16(2215); -emit_16(2149); -emit_16(2215); -emit_16(2148); -emit_16(2215); -emit_16(2149); -emit_16(2216); -emit_16(2150); -emit_16(2216); -emit_16(2149); -emit_16(2216); -emit_16(2150); -emit_16(2217); -emit_16(2151); -emit_16(2217); -emit_16(2150); -emit_16(2217); -emit_16(2151); -emit_16(2218); -emit_16(2152); -emit_16(2218); -emit_16(2151); -emit_16(2218); -emit_16(2152); -emit_16(2219); -emit_16(2153); -emit_16(2219); -emit_16(2152); -emit_16(2219); -emit_16(2153); -emit_16(2220); -emit_16(2154); -emit_16(2220); -emit_16(2153); -emit_16(2220); -emit_16(2154); -emit_16(2221); -emit_16(2155); -emit_16(2221); -emit_16(2154); -emit_16(2221); -emit_16(2155); -emit_16(2222); -emit_16(2156); -emit_16(2222); -emit_16(2155); -emit_16(2222); -emit_16(2156); -emit_16(2223); -emit_16(2157); -emit_16(2223); -emit_16(2156); -emit_16(2223); -emit_16(2157); -emit_16(2224); -emit_16(2158); -emit_16(2224); -emit_16(2157); -emit_16(2224); -emit_16(2158); -emit_16(2225); -emit_16(2159); -emit_16(2225); -emit_16(2158); -emit_16(2225); -emit_16(2159); -emit_16(2226); -emit_16(2160); -emit_16(2226); -emit_16(2159); -emit_16(2226); -emit_16(2160); -emit_16(2227); -emit_16(2161); -emit_16(2227); -emit_16(2160); -emit_16(2227); -emit_16(2161); -emit_16(2228); -emit_16(2162); -emit_16(2228); -emit_16(2161); -emit_16(2228); -emit_16(2162); -emit_16(2229); -emit_16(2163); -emit_16(2229); -emit_16(2162); -emit_16(2229); -emit_16(2163); -emit_16(2230); -emit_16(2164); -emit_16(2230); -emit_16(2163); -emit_16(2230); -emit_16(2164); -emit_16(2231); -emit_16(2165); -emit_16(2231); -emit_16(2164); -emit_16(2231); -emit_16(2165); -emit_16(2232); -emit_16(2166); -emit_16(2232); -emit_16(2165); -emit_16(2232); -emit_16(2166); -emit_16(2233); -emit_16(2167); -emit_16(2233); -emit_16(2166); -emit_16(2233); -emit_16(2167); -emit_16(2234); -emit_16(2168); -emit_16(2234); -emit_16(2167); -emit_16(2234); -emit_16(2168); -emit_16(2235); -emit_16(2169); -emit_16(2235); -emit_16(2168); -emit_16(2235); -emit_16(2169); -emit_16(2236); -emit_16(2170); -emit_16(2236); -emit_16(2169); -emit_16(2236); -emit_16(2170); -emit_16(2237); -emit_16(2171); -emit_16(2237); -emit_16(2170); -emit_16(2237); -emit_16(2171); -emit_16(2238); -emit_16(2172); -emit_16(2238); -emit_16(2171); -emit_16(2238); -emit_16(2172); -emit_16(2239); -emit_16(2173); -emit_16(2239); -emit_16(2172); -emit_16(2239); -emit_16(2173); -emit_16(2240); -emit_16(2174); -emit_16(2240); -emit_16(2173); -emit_16(2240); -emit_16(2174); -emit_16(2241); -emit_16(2175); -emit_16(2241); -emit_16(2174); -emit_16(2241); -emit_16(2175); -emit_16(2242); -emit_16(2176); -emit_16(2242); -emit_16(2175); -emit_16(2242); -emit_16(2176); -emit_16(2243); -emit_16(2177); -emit_16(2243); -emit_16(2176); -emit_start(Landscape06Idx) -emit_16(0); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(2); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(4); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(6); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(8); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(10); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(12); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(14); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(16); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(18); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(20); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(22); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(24); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(26); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(28); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(30); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(32); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(34); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(36); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(38); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(40); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(42); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(44); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(46); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(48); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(50); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(52); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(54); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(56); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(58); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(60); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(62); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(64); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(66); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(68); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(70); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(72); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(74); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(76); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(78); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(80); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(82); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(84); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(86); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(88); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(90); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(92); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(94); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(96); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(98); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(100); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(102); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(104); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(106); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(108); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(110); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(112); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(114); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(116); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(118); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(120); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(122); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(124); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(126); -emit_16(127); -emit_16(126); -emit_16(125); -emit_16(126); -emit_16(127); -emit_16(128); -emit_16(129); -emit_16(128); -emit_16(127); -emit_16(128); -emit_16(129); -emit_16(130); -emit_16(131); -emit_16(130); -emit_16(129); -emit_16(132); -emit_16(0); -emit_16(133); -emit_16(2); -emit_16(133); -emit_16(0); -emit_16(133); -emit_16(2); -emit_16(134); -emit_16(4); -emit_16(134); -emit_16(2); -emit_16(134); -emit_16(4); -emit_16(135); -emit_16(6); -emit_16(135); -emit_16(4); -emit_16(135); -emit_16(6); -emit_16(136); -emit_16(8); -emit_16(136); -emit_16(6); -emit_16(136); -emit_16(8); -emit_16(137); -emit_16(10); -emit_16(137); -emit_16(8); -emit_16(137); -emit_16(10); -emit_16(138); -emit_16(12); -emit_16(138); -emit_16(10); -emit_16(138); -emit_16(12); -emit_16(139); -emit_16(14); -emit_16(139); -emit_16(12); -emit_16(139); -emit_16(14); -emit_16(140); -emit_16(16); -emit_16(140); -emit_16(14); -emit_16(140); -emit_16(16); -emit_16(141); -emit_16(18); -emit_16(141); -emit_16(16); -emit_16(141); -emit_16(18); -emit_16(142); -emit_16(20); -emit_16(142); -emit_16(18); -emit_16(142); -emit_16(20); -emit_16(143); -emit_16(22); -emit_16(143); -emit_16(20); -emit_16(143); -emit_16(22); -emit_16(144); -emit_16(24); -emit_16(144); -emit_16(22); -emit_16(144); -emit_16(24); -emit_16(145); -emit_16(26); -emit_16(145); -emit_16(24); -emit_16(145); -emit_16(26); -emit_16(146); -emit_16(28); -emit_16(146); -emit_16(26); -emit_16(146); -emit_16(28); -emit_16(147); -emit_16(30); -emit_16(147); -emit_16(28); -emit_16(147); -emit_16(30); -emit_16(148); -emit_16(32); -emit_16(148); -emit_16(30); -emit_16(148); -emit_16(32); -emit_16(149); -emit_16(34); -emit_16(149); -emit_16(32); -emit_16(149); -emit_16(34); -emit_16(150); -emit_16(36); -emit_16(150); -emit_16(34); -emit_16(150); -emit_16(36); -emit_16(151); -emit_16(38); -emit_16(151); -emit_16(36); -emit_16(151); -emit_16(38); -emit_16(152); -emit_16(40); -emit_16(152); -emit_16(38); -emit_16(152); -emit_16(40); -emit_16(153); -emit_16(42); -emit_16(153); -emit_16(40); -emit_16(153); -emit_16(42); -emit_16(154); -emit_16(44); -emit_16(154); -emit_16(42); -emit_16(154); -emit_16(44); -emit_16(155); -emit_16(46); -emit_16(155); -emit_16(44); -emit_16(155); -emit_16(46); -emit_16(156); -emit_16(48); -emit_16(156); -emit_16(46); -emit_16(156); -emit_16(48); -emit_16(157); -emit_16(50); -emit_16(157); -emit_16(48); -emit_16(157); -emit_16(50); -emit_16(158); -emit_16(52); -emit_16(158); -emit_16(50); -emit_16(158); -emit_16(52); -emit_16(159); -emit_16(54); -emit_16(159); -emit_16(52); -emit_16(159); -emit_16(54); -emit_16(160); -emit_16(56); -emit_16(160); -emit_16(54); -emit_16(160); -emit_16(56); -emit_16(161); -emit_16(58); -emit_16(161); -emit_16(56); -emit_16(161); -emit_16(58); -emit_16(162); -emit_16(60); -emit_16(162); -emit_16(58); -emit_16(162); -emit_16(60); -emit_16(163); -emit_16(62); -emit_16(163); -emit_16(60); -emit_16(163); -emit_16(62); -emit_16(164); -emit_16(64); -emit_16(164); -emit_16(62); -emit_16(164); -emit_16(64); -emit_16(165); -emit_16(66); -emit_16(165); -emit_16(64); -emit_16(165); -emit_16(66); -emit_16(166); -emit_16(68); -emit_16(166); -emit_16(66); -emit_16(166); -emit_16(68); -emit_16(167); -emit_16(70); -emit_16(167); -emit_16(68); -emit_16(167); -emit_16(70); -emit_16(168); -emit_16(72); -emit_16(168); -emit_16(70); -emit_16(168); -emit_16(72); -emit_16(169); -emit_16(74); -emit_16(169); -emit_16(72); -emit_16(169); -emit_16(74); -emit_16(170); -emit_16(76); -emit_16(170); -emit_16(74); -emit_16(170); -emit_16(76); -emit_16(171); -emit_16(78); -emit_16(171); -emit_16(76); -emit_16(171); -emit_16(78); -emit_16(172); -emit_16(80); -emit_16(172); -emit_16(78); -emit_16(172); -emit_16(80); -emit_16(173); -emit_16(82); -emit_16(173); -emit_16(80); -emit_16(173); -emit_16(82); -emit_16(174); -emit_16(84); -emit_16(174); -emit_16(82); -emit_16(174); -emit_16(84); -emit_16(175); -emit_16(86); -emit_16(175); -emit_16(84); -emit_16(175); -emit_16(86); -emit_16(176); -emit_16(88); -emit_16(176); -emit_16(86); -emit_16(176); -emit_16(88); -emit_16(177); -emit_16(90); -emit_16(177); -emit_16(88); -emit_16(177); -emit_16(90); -emit_16(178); -emit_16(92); -emit_16(178); -emit_16(90); -emit_16(178); -emit_16(92); -emit_16(179); -emit_16(94); -emit_16(179); -emit_16(92); -emit_16(179); -emit_16(94); -emit_16(180); -emit_16(96); -emit_16(180); -emit_16(94); -emit_16(180); -emit_16(96); -emit_16(181); -emit_16(98); -emit_16(181); -emit_16(96); -emit_16(181); -emit_16(98); -emit_16(182); -emit_16(100); -emit_16(182); -emit_16(98); -emit_16(182); -emit_16(100); -emit_16(183); -emit_16(102); -emit_16(183); -emit_16(100); -emit_16(183); -emit_16(102); -emit_16(184); -emit_16(104); -emit_16(184); -emit_16(102); -emit_16(184); -emit_16(104); -emit_16(185); -emit_16(106); -emit_16(185); -emit_16(104); -emit_16(185); -emit_16(106); -emit_16(186); -emit_16(108); -emit_16(186); -emit_16(106); -emit_16(186); -emit_16(108); -emit_16(187); -emit_16(110); -emit_16(187); -emit_16(108); -emit_16(187); -emit_16(110); -emit_16(188); -emit_16(112); -emit_16(188); -emit_16(110); -emit_16(188); -emit_16(112); -emit_16(189); -emit_16(114); -emit_16(189); -emit_16(112); -emit_16(189); -emit_16(114); -emit_16(190); -emit_16(116); -emit_16(190); -emit_16(114); -emit_16(190); -emit_16(116); -emit_16(191); -emit_16(118); -emit_16(191); -emit_16(116); -emit_16(191); -emit_16(118); -emit_16(192); -emit_16(120); -emit_16(192); -emit_16(118); -emit_16(192); -emit_16(120); -emit_16(193); -emit_16(122); -emit_16(193); -emit_16(120); -emit_16(193); -emit_16(122); -emit_16(194); -emit_16(124); -emit_16(194); -emit_16(122); -emit_16(194); -emit_16(124); -emit_16(195); -emit_16(126); -emit_16(195); -emit_16(124); -emit_16(195); -emit_16(126); -emit_16(196); -emit_16(128); -emit_16(196); -emit_16(126); -emit_16(196); -emit_16(128); -emit_16(197); -emit_16(130); -emit_16(197); -emit_16(128); -emit_16(198); -emit_16(132); -emit_16(199); -emit_16(133); -emit_16(199); -emit_16(132); -emit_16(199); -emit_16(133); -emit_16(200); -emit_16(134); -emit_16(200); -emit_16(133); -emit_16(200); -emit_16(134); -emit_16(201); -emit_16(135); -emit_16(201); -emit_16(134); -emit_16(201); -emit_16(135); -emit_16(202); -emit_16(136); -emit_16(202); -emit_16(135); -emit_16(202); -emit_16(136); -emit_16(203); -emit_16(137); -emit_16(203); -emit_16(136); -emit_16(203); -emit_16(137); -emit_16(204); -emit_16(138); -emit_16(204); -emit_16(137); -emit_16(204); -emit_16(138); -emit_16(205); -emit_16(139); -emit_16(205); -emit_16(138); -emit_16(205); -emit_16(139); -emit_16(206); -emit_16(140); -emit_16(206); -emit_16(139); -emit_16(206); -emit_16(140); -emit_16(207); -emit_16(141); -emit_16(207); -emit_16(140); -emit_16(207); -emit_16(141); -emit_16(208); -emit_16(142); -emit_16(208); -emit_16(141); -emit_16(208); -emit_16(142); -emit_16(209); -emit_16(143); -emit_16(209); -emit_16(142); -emit_16(209); -emit_16(143); -emit_16(210); -emit_16(144); -emit_16(210); -emit_16(143); -emit_16(210); -emit_16(144); -emit_16(211); -emit_16(145); -emit_16(211); -emit_16(144); -emit_16(211); -emit_16(145); -emit_16(212); -emit_16(146); -emit_16(212); -emit_16(145); -emit_16(212); -emit_16(146); -emit_16(213); -emit_16(147); -emit_16(213); -emit_16(146); -emit_16(213); -emit_16(147); -emit_16(214); -emit_16(148); -emit_16(214); -emit_16(147); -emit_16(214); -emit_16(148); -emit_16(215); -emit_16(149); -emit_16(215); -emit_16(148); -emit_16(215); -emit_16(149); -emit_16(216); -emit_16(150); -emit_16(216); -emit_16(149); -emit_16(216); -emit_16(150); -emit_16(217); -emit_16(151); -emit_16(217); -emit_16(150); -emit_16(217); -emit_16(151); -emit_16(218); -emit_16(152); -emit_16(218); -emit_16(151); -emit_16(218); -emit_16(152); -emit_16(219); -emit_16(153); -emit_16(219); -emit_16(152); -emit_16(219); -emit_16(153); -emit_16(220); -emit_16(154); -emit_16(220); -emit_16(153); -emit_16(220); -emit_16(154); -emit_16(221); -emit_16(155); -emit_16(221); -emit_16(154); -emit_16(221); -emit_16(155); -emit_16(222); -emit_16(156); -emit_16(222); -emit_16(155); -emit_16(222); -emit_16(156); -emit_16(223); -emit_16(157); -emit_16(223); -emit_16(156); -emit_16(223); -emit_16(157); -emit_16(224); -emit_16(158); -emit_16(224); -emit_16(157); -emit_16(224); -emit_16(158); -emit_16(225); -emit_16(159); -emit_16(225); -emit_16(158); -emit_16(225); -emit_16(159); -emit_16(226); -emit_16(160); -emit_16(226); -emit_16(159); -emit_16(226); -emit_16(160); -emit_16(227); -emit_16(161); -emit_16(227); -emit_16(160); -emit_16(227); -emit_16(161); -emit_16(228); -emit_16(162); -emit_16(228); -emit_16(161); -emit_16(228); -emit_16(162); -emit_16(229); -emit_16(163); -emit_16(229); -emit_16(162); -emit_16(229); -emit_16(163); -emit_16(230); -emit_16(164); -emit_16(230); -emit_16(163); -emit_16(230); -emit_16(164); -emit_16(231); -emit_16(165); -emit_16(231); -emit_16(164); -emit_16(231); -emit_16(165); -emit_16(232); -emit_16(166); -emit_16(232); -emit_16(165); -emit_16(232); -emit_16(166); -emit_16(233); -emit_16(167); -emit_16(233); -emit_16(166); -emit_16(233); -emit_16(167); -emit_16(234); -emit_16(168); -emit_16(234); -emit_16(167); -emit_16(234); -emit_16(168); -emit_16(235); -emit_16(169); -emit_16(235); -emit_16(168); -emit_16(235); -emit_16(169); -emit_16(236); -emit_16(170); -emit_16(236); -emit_16(169); -emit_16(236); -emit_16(170); -emit_16(237); -emit_16(171); -emit_16(237); -emit_16(170); -emit_16(237); -emit_16(171); -emit_16(238); -emit_16(172); -emit_16(238); -emit_16(171); -emit_16(238); -emit_16(172); -emit_16(239); -emit_16(173); -emit_16(239); -emit_16(172); -emit_16(239); -emit_16(173); -emit_16(240); -emit_16(174); -emit_16(240); -emit_16(173); -emit_16(240); -emit_16(174); -emit_16(241); -emit_16(175); -emit_16(241); -emit_16(174); -emit_16(241); -emit_16(175); -emit_16(242); -emit_16(176); -emit_16(242); -emit_16(175); -emit_16(242); -emit_16(176); -emit_16(243); -emit_16(177); -emit_16(243); -emit_16(176); -emit_16(243); -emit_16(177); -emit_16(244); -emit_16(178); -emit_16(244); -emit_16(177); -emit_16(244); -emit_16(178); -emit_16(245); -emit_16(179); -emit_16(245); -emit_16(178); -emit_16(245); -emit_16(179); -emit_16(246); -emit_16(180); -emit_16(246); -emit_16(179); -emit_16(246); -emit_16(180); -emit_16(247); -emit_16(181); -emit_16(247); -emit_16(180); -emit_16(247); -emit_16(181); -emit_16(248); -emit_16(182); -emit_16(248); -emit_16(181); -emit_16(248); -emit_16(182); -emit_16(249); -emit_16(183); -emit_16(249); -emit_16(182); -emit_16(249); -emit_16(183); -emit_16(250); -emit_16(184); -emit_16(250); -emit_16(183); -emit_16(250); -emit_16(184); -emit_16(251); -emit_16(185); -emit_16(251); -emit_16(184); -emit_16(251); -emit_16(185); -emit_16(252); -emit_16(186); -emit_16(252); -emit_16(185); -emit_16(252); -emit_16(186); -emit_16(253); -emit_16(187); -emit_16(253); -emit_16(186); -emit_16(253); -emit_16(187); -emit_16(254); -emit_16(188); -emit_16(254); -emit_16(187); -emit_16(254); -emit_16(188); -emit_16(255); -emit_16(189); -emit_16(255); -emit_16(188); -emit_16(255); -emit_16(189); -emit_16(256); -emit_16(190); -emit_16(256); -emit_16(189); -emit_16(256); -emit_16(190); -emit_16(257); -emit_16(191); -emit_16(257); -emit_16(190); -emit_16(257); -emit_16(191); -emit_16(258); -emit_16(192); -emit_16(258); -emit_16(191); -emit_16(258); -emit_16(192); -emit_16(259); -emit_16(193); -emit_16(259); -emit_16(192); -emit_16(259); -emit_16(193); -emit_16(260); -emit_16(194); -emit_16(260); -emit_16(193); -emit_16(260); -emit_16(194); -emit_16(261); -emit_16(195); -emit_16(261); -emit_16(194); -emit_16(261); -emit_16(195); -emit_16(262); -emit_16(196); -emit_16(262); -emit_16(195); -emit_16(262); -emit_16(196); -emit_16(263); -emit_16(197); -emit_16(263); -emit_16(196); -emit_16(264); -emit_16(198); -emit_16(265); -emit_16(199); -emit_16(265); -emit_16(198); -emit_16(265); -emit_16(199); -emit_16(266); -emit_16(200); -emit_16(266); -emit_16(199); -emit_16(266); -emit_16(200); -emit_16(267); -emit_16(201); -emit_16(267); -emit_16(200); -emit_16(267); -emit_16(201); -emit_16(268); -emit_16(202); -emit_16(268); -emit_16(201); -emit_16(268); -emit_16(202); -emit_16(269); -emit_16(203); -emit_16(269); -emit_16(202); -emit_16(269); -emit_16(203); -emit_16(270); -emit_16(204); -emit_16(270); -emit_16(203); -emit_16(270); -emit_16(204); -emit_16(271); -emit_16(205); -emit_16(271); -emit_16(204); -emit_16(271); -emit_16(205); -emit_16(272); -emit_16(206); -emit_16(272); -emit_16(205); -emit_16(272); -emit_16(206); -emit_16(273); -emit_16(207); -emit_16(273); -emit_16(206); -emit_16(273); -emit_16(207); -emit_16(274); -emit_16(208); -emit_16(274); -emit_16(207); -emit_16(274); -emit_16(208); -emit_16(275); -emit_16(209); -emit_16(275); -emit_16(208); -emit_16(275); -emit_16(209); -emit_16(276); -emit_16(210); -emit_16(276); -emit_16(209); -emit_16(276); -emit_16(210); -emit_16(277); -emit_16(211); -emit_16(277); -emit_16(210); -emit_16(277); -emit_16(211); -emit_16(278); -emit_16(212); -emit_16(278); -emit_16(211); -emit_16(278); -emit_16(212); -emit_16(279); -emit_16(213); -emit_16(279); -emit_16(212); -emit_16(279); -emit_16(213); -emit_16(280); -emit_16(214); -emit_16(280); -emit_16(213); -emit_16(280); -emit_16(214); -emit_16(281); -emit_16(215); -emit_16(281); -emit_16(214); -emit_16(281); -emit_16(215); -emit_16(282); -emit_16(216); -emit_16(282); -emit_16(215); -emit_16(282); -emit_16(216); -emit_16(283); -emit_16(217); -emit_16(283); -emit_16(216); -emit_16(283); -emit_16(217); -emit_16(284); -emit_16(218); -emit_16(284); -emit_16(217); -emit_16(284); -emit_16(218); -emit_16(285); -emit_16(219); -emit_16(285); -emit_16(218); -emit_16(285); -emit_16(219); -emit_16(286); -emit_16(220); -emit_16(286); -emit_16(219); -emit_16(286); -emit_16(220); -emit_16(287); -emit_16(221); -emit_16(287); -emit_16(220); -emit_16(287); -emit_16(221); -emit_16(288); -emit_16(222); -emit_16(288); -emit_16(221); -emit_16(288); -emit_16(222); -emit_16(289); -emit_16(223); -emit_16(289); -emit_16(222); -emit_16(289); -emit_16(223); -emit_16(290); -emit_16(224); -emit_16(290); -emit_16(223); -emit_16(290); -emit_16(224); -emit_16(291); -emit_16(225); -emit_16(291); -emit_16(224); -emit_16(291); -emit_16(225); -emit_16(292); -emit_16(226); -emit_16(292); -emit_16(225); -emit_16(292); -emit_16(226); -emit_16(293); -emit_16(227); -emit_16(293); -emit_16(226); -emit_16(293); -emit_16(227); -emit_16(294); -emit_16(228); -emit_16(294); -emit_16(227); -emit_16(294); -emit_16(228); -emit_16(295); -emit_16(229); -emit_16(295); -emit_16(228); -emit_16(295); -emit_16(229); -emit_16(296); -emit_16(230); -emit_16(296); -emit_16(229); -emit_16(296); -emit_16(230); -emit_16(297); -emit_16(231); -emit_16(297); -emit_16(230); -emit_16(297); -emit_16(231); -emit_16(298); -emit_16(232); -emit_16(298); -emit_16(231); -emit_16(298); -emit_16(232); -emit_16(299); -emit_16(233); -emit_16(299); -emit_16(232); -emit_16(299); -emit_16(233); -emit_16(300); -emit_16(234); -emit_16(300); -emit_16(233); -emit_16(300); -emit_16(234); -emit_16(301); -emit_16(235); -emit_16(301); -emit_16(234); -emit_16(301); -emit_16(235); -emit_16(302); -emit_16(236); -emit_16(302); -emit_16(235); -emit_16(302); -emit_16(236); -emit_16(303); -emit_16(237); -emit_16(303); -emit_16(236); -emit_16(303); -emit_16(237); -emit_16(304); -emit_16(238); -emit_16(304); -emit_16(237); -emit_16(304); -emit_16(238); -emit_16(305); -emit_16(239); -emit_16(305); -emit_16(238); -emit_16(305); -emit_16(239); -emit_16(306); -emit_16(240); -emit_16(306); -emit_16(239); -emit_16(306); -emit_16(240); -emit_16(307); -emit_16(241); -emit_16(307); -emit_16(240); -emit_16(307); -emit_16(241); -emit_16(308); -emit_16(242); -emit_16(308); -emit_16(241); -emit_16(308); -emit_16(242); -emit_16(309); -emit_16(243); -emit_16(309); -emit_16(242); -emit_16(309); -emit_16(243); -emit_16(310); -emit_16(244); -emit_16(310); -emit_16(243); -emit_16(310); -emit_16(244); -emit_16(311); -emit_16(245); -emit_16(311); -emit_16(244); -emit_16(311); -emit_16(245); -emit_16(312); -emit_16(246); -emit_16(312); -emit_16(245); -emit_16(312); -emit_16(246); -emit_16(313); -emit_16(247); -emit_16(313); -emit_16(246); -emit_16(313); -emit_16(247); -emit_16(314); -emit_16(248); -emit_16(314); -emit_16(247); -emit_16(314); -emit_16(248); -emit_16(315); -emit_16(249); -emit_16(315); -emit_16(248); -emit_16(315); -emit_16(249); -emit_16(316); -emit_16(250); -emit_16(316); -emit_16(249); -emit_16(316); -emit_16(250); -emit_16(317); -emit_16(251); -emit_16(317); -emit_16(250); -emit_16(317); -emit_16(251); -emit_16(318); -emit_16(252); -emit_16(318); -emit_16(251); -emit_16(318); -emit_16(252); -emit_16(319); -emit_16(253); -emit_16(319); -emit_16(252); -emit_16(319); -emit_16(253); -emit_16(320); -emit_16(254); -emit_16(320); -emit_16(253); -emit_16(320); -emit_16(254); -emit_16(321); -emit_16(255); -emit_16(321); -emit_16(254); -emit_16(321); -emit_16(255); -emit_16(322); -emit_16(256); -emit_16(322); -emit_16(255); -emit_16(322); -emit_16(256); -emit_16(323); -emit_16(257); -emit_16(323); -emit_16(256); -emit_16(323); -emit_16(257); -emit_16(324); -emit_16(258); -emit_16(324); -emit_16(257); -emit_16(324); -emit_16(258); -emit_16(325); -emit_16(259); -emit_16(325); -emit_16(258); -emit_16(325); -emit_16(259); -emit_16(326); -emit_16(260); -emit_16(326); -emit_16(259); -emit_16(326); -emit_16(260); -emit_16(327); -emit_16(261); -emit_16(327); -emit_16(260); -emit_16(327); -emit_16(261); -emit_16(328); -emit_16(262); -emit_16(328); -emit_16(261); -emit_16(328); -emit_16(262); -emit_16(329); -emit_16(263); -emit_16(329); -emit_16(262); -emit_16(330); -emit_16(264); -emit_16(331); -emit_16(265); -emit_16(331); -emit_16(264); -emit_16(331); -emit_16(265); -emit_16(332); -emit_16(266); -emit_16(332); -emit_16(265); -emit_16(332); -emit_16(266); -emit_16(333); -emit_16(267); -emit_16(333); -emit_16(266); -emit_16(333); -emit_16(267); -emit_16(334); -emit_16(268); -emit_16(334); -emit_16(267); -emit_16(334); -emit_16(268); -emit_16(335); -emit_16(269); -emit_16(335); -emit_16(268); -emit_16(335); -emit_16(269); -emit_16(336); -emit_16(270); -emit_16(336); -emit_16(269); -emit_16(336); -emit_16(270); -emit_16(337); -emit_16(271); -emit_16(337); -emit_16(270); -emit_16(337); -emit_16(271); -emit_16(338); -emit_16(272); -emit_16(338); -emit_16(271); -emit_16(338); -emit_16(272); -emit_16(339); -emit_16(273); -emit_16(339); -emit_16(272); -emit_16(339); -emit_16(273); -emit_16(340); -emit_16(274); -emit_16(340); -emit_16(273); -emit_16(340); -emit_16(274); -emit_16(341); -emit_16(275); -emit_16(341); -emit_16(274); -emit_16(341); -emit_16(275); -emit_16(342); -emit_16(276); -emit_16(342); -emit_16(275); -emit_16(342); -emit_16(276); -emit_16(343); -emit_16(277); -emit_16(343); -emit_16(276); -emit_16(343); -emit_16(277); -emit_16(344); -emit_16(278); -emit_16(344); -emit_16(277); -emit_16(344); -emit_16(278); -emit_16(345); -emit_16(279); -emit_16(345); -emit_16(278); -emit_16(345); -emit_16(279); -emit_16(346); -emit_16(280); -emit_16(346); -emit_16(279); -emit_16(346); -emit_16(280); -emit_16(347); -emit_16(281); -emit_16(347); -emit_16(280); -emit_16(347); -emit_16(281); -emit_16(348); -emit_16(282); -emit_16(348); -emit_16(281); -emit_16(348); -emit_16(282); -emit_16(349); -emit_16(283); -emit_16(349); -emit_16(282); -emit_16(349); -emit_16(283); -emit_16(350); -emit_16(284); -emit_16(350); -emit_16(283); -emit_16(350); -emit_16(284); -emit_16(351); -emit_16(285); -emit_16(351); -emit_16(284); -emit_16(351); -emit_16(285); -emit_16(352); -emit_16(286); -emit_16(352); -emit_16(285); -emit_16(352); -emit_16(286); -emit_16(353); -emit_16(287); -emit_16(353); -emit_16(286); -emit_16(353); -emit_16(287); -emit_16(354); -emit_16(288); -emit_16(354); -emit_16(287); -emit_16(354); -emit_16(288); -emit_16(355); -emit_16(289); -emit_16(355); -emit_16(288); -emit_16(355); -emit_16(289); -emit_16(356); -emit_16(290); -emit_16(356); -emit_16(289); -emit_16(356); -emit_16(290); -emit_16(357); -emit_16(291); -emit_16(357); -emit_16(290); -emit_16(357); -emit_16(291); -emit_16(358); -emit_16(292); -emit_16(358); -emit_16(291); -emit_16(358); -emit_16(292); -emit_16(359); -emit_16(293); -emit_16(359); -emit_16(292); -emit_16(359); -emit_16(293); -emit_16(360); -emit_16(294); -emit_16(360); -emit_16(293); -emit_16(360); -emit_16(294); -emit_16(361); -emit_16(295); -emit_16(361); -emit_16(294); -emit_16(361); -emit_16(295); -emit_16(362); -emit_16(296); -emit_16(362); -emit_16(295); -emit_16(362); -emit_16(296); -emit_16(363); -emit_16(297); -emit_16(363); -emit_16(296); -emit_16(363); -emit_16(297); -emit_16(364); -emit_16(298); -emit_16(364); -emit_16(297); -emit_16(364); -emit_16(298); -emit_16(365); -emit_16(299); -emit_16(365); -emit_16(298); -emit_16(365); -emit_16(299); -emit_16(366); -emit_16(300); -emit_16(366); -emit_16(299); -emit_16(366); -emit_16(300); -emit_16(367); -emit_16(301); -emit_16(367); -emit_16(300); -emit_16(367); -emit_16(301); -emit_16(368); -emit_16(302); -emit_16(368); -emit_16(301); -emit_16(368); -emit_16(302); -emit_16(369); -emit_16(303); -emit_16(369); -emit_16(302); -emit_16(369); -emit_16(303); -emit_16(370); -emit_16(304); -emit_16(370); -emit_16(303); -emit_16(370); -emit_16(304); -emit_16(371); -emit_16(305); -emit_16(371); -emit_16(304); -emit_16(371); -emit_16(305); -emit_16(372); -emit_16(306); -emit_16(372); -emit_16(305); -emit_16(372); -emit_16(306); -emit_16(373); -emit_16(307); -emit_16(373); -emit_16(306); -emit_16(373); -emit_16(307); -emit_16(374); -emit_16(308); -emit_16(374); -emit_16(307); -emit_16(374); -emit_16(308); -emit_16(375); -emit_16(309); -emit_16(375); -emit_16(308); -emit_16(375); -emit_16(309); -emit_16(376); -emit_16(310); -emit_16(376); -emit_16(309); -emit_16(376); -emit_16(310); -emit_16(377); -emit_16(311); -emit_16(377); -emit_16(310); -emit_16(377); -emit_16(311); -emit_16(378); -emit_16(312); -emit_16(378); -emit_16(311); -emit_16(378); -emit_16(312); -emit_16(379); -emit_16(313); -emit_16(379); -emit_16(312); -emit_16(379); -emit_16(313); -emit_16(380); -emit_16(314); -emit_16(380); -emit_16(313); -emit_16(380); -emit_16(314); -emit_16(381); -emit_16(315); -emit_16(381); -emit_16(314); -emit_16(381); -emit_16(315); -emit_16(382); -emit_16(316); -emit_16(382); -emit_16(315); -emit_16(382); -emit_16(316); -emit_16(383); -emit_16(317); -emit_16(383); -emit_16(316); -emit_16(383); -emit_16(317); -emit_16(384); -emit_16(318); -emit_16(384); -emit_16(317); -emit_16(384); -emit_16(318); -emit_16(385); -emit_16(319); -emit_16(385); -emit_16(318); -emit_16(385); -emit_16(319); -emit_16(386); -emit_16(320); -emit_16(386); -emit_16(319); -emit_16(386); -emit_16(320); -emit_16(387); -emit_16(321); -emit_16(387); -emit_16(320); -emit_16(387); -emit_16(321); -emit_16(388); -emit_16(322); -emit_16(388); -emit_16(321); -emit_16(388); -emit_16(322); -emit_16(389); -emit_16(323); -emit_16(389); -emit_16(322); -emit_16(389); -emit_16(323); -emit_16(390); -emit_16(324); -emit_16(390); -emit_16(323); -emit_16(390); -emit_16(324); -emit_16(391); -emit_16(325); -emit_16(391); -emit_16(324); -emit_16(391); -emit_16(325); -emit_16(392); -emit_16(326); -emit_16(392); -emit_16(325); -emit_16(392); -emit_16(326); -emit_16(393); -emit_16(327); -emit_16(393); -emit_16(326); -emit_16(393); -emit_16(327); -emit_16(394); -emit_16(328); -emit_16(394); -emit_16(327); -emit_16(394); -emit_16(328); -emit_16(395); -emit_16(329); -emit_16(395); -emit_16(328); -emit_16(396); -emit_16(330); -emit_16(397); -emit_16(331); -emit_16(397); -emit_16(330); -emit_16(397); -emit_16(331); -emit_16(398); -emit_16(332); -emit_16(398); -emit_16(331); -emit_16(398); -emit_16(332); -emit_16(399); -emit_16(333); -emit_16(399); -emit_16(332); -emit_16(399); -emit_16(333); -emit_16(400); -emit_16(334); -emit_16(400); -emit_16(333); -emit_16(400); -emit_16(334); -emit_16(401); -emit_16(335); -emit_16(401); -emit_16(334); -emit_16(401); -emit_16(335); -emit_16(402); -emit_16(336); -emit_16(402); -emit_16(335); -emit_16(402); -emit_16(336); -emit_16(403); -emit_16(337); -emit_16(403); -emit_16(336); -emit_16(403); -emit_16(337); -emit_16(404); -emit_16(338); -emit_16(404); -emit_16(337); -emit_16(404); -emit_16(338); -emit_16(405); -emit_16(339); -emit_16(405); -emit_16(338); -emit_16(405); -emit_16(339); -emit_16(406); -emit_16(340); -emit_16(406); -emit_16(339); -emit_16(406); -emit_16(340); -emit_16(407); -emit_16(341); -emit_16(407); -emit_16(340); -emit_16(407); -emit_16(341); -emit_16(408); -emit_16(342); -emit_16(408); -emit_16(341); -emit_16(408); -emit_16(342); -emit_16(409); -emit_16(343); -emit_16(409); -emit_16(342); -emit_16(409); -emit_16(343); -emit_16(410); -emit_16(344); -emit_16(410); -emit_16(343); -emit_16(410); -emit_16(344); -emit_16(411); -emit_16(345); -emit_16(411); -emit_16(344); -emit_16(411); -emit_16(345); -emit_16(412); -emit_16(346); -emit_16(412); -emit_16(345); -emit_16(412); -emit_16(346); -emit_16(413); -emit_16(347); -emit_16(413); -emit_16(346); -emit_16(413); -emit_16(347); -emit_16(414); -emit_16(348); -emit_16(414); -emit_16(347); -emit_16(414); -emit_16(348); -emit_16(415); -emit_16(349); -emit_16(415); -emit_16(348); -emit_16(415); -emit_16(349); -emit_16(416); -emit_16(350); -emit_16(416); -emit_16(349); -emit_16(416); -emit_16(350); -emit_16(417); -emit_16(351); -emit_16(417); -emit_16(350); -emit_16(417); -emit_16(351); -emit_16(418); -emit_16(352); -emit_16(418); -emit_16(351); -emit_16(418); -emit_16(352); -emit_16(419); -emit_16(353); -emit_16(419); -emit_16(352); -emit_16(419); -emit_16(353); -emit_16(420); -emit_16(354); -emit_16(420); -emit_16(353); -emit_16(420); -emit_16(354); -emit_16(421); -emit_16(355); -emit_16(421); -emit_16(354); -emit_16(421); -emit_16(355); -emit_16(422); -emit_16(356); -emit_16(422); -emit_16(355); -emit_16(422); -emit_16(356); -emit_16(423); -emit_16(357); -emit_16(423); -emit_16(356); -emit_16(423); -emit_16(357); -emit_16(424); -emit_16(358); -emit_16(424); -emit_16(357); -emit_16(424); -emit_16(358); -emit_16(425); -emit_16(359); -emit_16(425); -emit_16(358); -emit_16(425); -emit_16(359); -emit_16(426); -emit_16(360); -emit_16(426); -emit_16(359); -emit_16(426); -emit_16(360); -emit_16(427); -emit_16(361); -emit_16(427); -emit_16(360); -emit_16(427); -emit_16(361); -emit_16(428); -emit_16(362); -emit_16(428); -emit_16(361); -emit_16(428); -emit_16(362); -emit_16(429); -emit_16(363); -emit_16(429); -emit_16(362); -emit_16(429); -emit_16(363); -emit_16(430); -emit_16(364); -emit_16(430); -emit_16(363); -emit_16(430); -emit_16(364); -emit_16(431); -emit_16(365); -emit_16(431); -emit_16(364); -emit_16(431); -emit_16(365); -emit_16(432); -emit_16(366); -emit_16(432); -emit_16(365); -emit_16(432); -emit_16(366); -emit_16(433); -emit_16(367); -emit_16(433); -emit_16(366); -emit_16(433); -emit_16(367); -emit_16(434); -emit_16(368); -emit_16(434); -emit_16(367); -emit_16(434); -emit_16(368); -emit_16(435); -emit_16(369); -emit_16(435); -emit_16(368); -emit_16(435); -emit_16(369); -emit_16(436); -emit_16(370); -emit_16(436); -emit_16(369); -emit_16(436); -emit_16(370); -emit_16(437); -emit_16(371); -emit_16(437); -emit_16(370); -emit_16(437); -emit_16(371); -emit_16(438); -emit_16(372); -emit_16(438); -emit_16(371); -emit_16(438); -emit_16(372); -emit_16(439); -emit_16(373); -emit_16(439); -emit_16(372); -emit_16(439); -emit_16(373); -emit_16(440); -emit_16(374); -emit_16(440); -emit_16(373); -emit_16(440); -emit_16(374); -emit_16(441); -emit_16(375); -emit_16(441); -emit_16(374); -emit_16(441); -emit_16(375); -emit_16(442); -emit_16(376); -emit_16(442); -emit_16(375); -emit_16(442); -emit_16(376); -emit_16(443); -emit_16(377); -emit_16(443); -emit_16(376); -emit_16(443); -emit_16(377); -emit_16(444); -emit_16(378); -emit_16(444); -emit_16(377); -emit_16(444); -emit_16(378); -emit_16(445); -emit_16(379); -emit_16(445); -emit_16(378); -emit_16(445); -emit_16(379); -emit_16(446); -emit_16(380); -emit_16(446); -emit_16(379); -emit_16(446); -emit_16(380); -emit_16(447); -emit_16(381); -emit_16(447); -emit_16(380); -emit_16(447); -emit_16(381); -emit_16(448); -emit_16(382); -emit_16(448); -emit_16(381); -emit_16(448); -emit_16(382); -emit_16(449); -emit_16(383); -emit_16(449); -emit_16(382); -emit_16(449); -emit_16(383); -emit_16(450); -emit_16(384); -emit_16(450); -emit_16(383); -emit_16(450); -emit_16(384); -emit_16(451); -emit_16(385); -emit_16(451); -emit_16(384); -emit_16(451); -emit_16(385); -emit_16(452); -emit_16(386); -emit_16(452); -emit_16(385); -emit_16(452); -emit_16(386); -emit_16(453); -emit_16(387); -emit_16(453); -emit_16(386); -emit_16(453); -emit_16(387); -emit_16(454); -emit_16(388); -emit_16(454); -emit_16(387); -emit_16(454); -emit_16(388); -emit_16(455); -emit_16(389); -emit_16(455); -emit_16(388); -emit_16(455); -emit_16(389); -emit_16(456); -emit_16(390); -emit_16(456); -emit_16(389); -emit_16(456); -emit_16(390); -emit_16(457); -emit_16(391); -emit_16(457); -emit_16(390); -emit_16(457); -emit_16(391); -emit_16(458); -emit_16(392); -emit_16(458); -emit_16(391); -emit_16(458); -emit_16(392); -emit_16(459); -emit_16(393); -emit_16(459); -emit_16(392); -emit_16(459); -emit_16(393); -emit_16(460); -emit_16(394); -emit_16(460); -emit_16(393); -emit_16(460); -emit_16(394); -emit_16(461); -emit_16(395); -emit_16(461); -emit_16(394); -emit_16(462); -emit_16(396); -emit_16(463); -emit_16(397); -emit_16(463); -emit_16(396); -emit_16(463); -emit_16(397); -emit_16(464); -emit_16(398); -emit_16(464); -emit_16(397); -emit_16(464); -emit_16(398); -emit_16(465); -emit_16(399); -emit_16(465); -emit_16(398); -emit_16(465); -emit_16(399); -emit_16(466); -emit_16(400); -emit_16(466); -emit_16(399); -emit_16(466); -emit_16(400); -emit_16(467); -emit_16(401); -emit_16(467); -emit_16(400); -emit_16(467); -emit_16(401); -emit_16(468); -emit_16(402); -emit_16(468); -emit_16(401); -emit_16(468); -emit_16(402); -emit_16(469); -emit_16(403); -emit_16(469); -emit_16(402); -emit_16(469); -emit_16(403); -emit_16(470); -emit_16(404); -emit_16(470); -emit_16(403); -emit_16(470); -emit_16(404); -emit_16(471); -emit_16(405); -emit_16(471); -emit_16(404); -emit_16(471); -emit_16(405); -emit_16(472); -emit_16(406); -emit_16(472); -emit_16(405); -emit_16(472); -emit_16(406); -emit_16(473); -emit_16(407); -emit_16(473); -emit_16(406); -emit_16(473); -emit_16(407); -emit_16(474); -emit_16(408); -emit_16(474); -emit_16(407); -emit_16(474); -emit_16(408); -emit_16(475); -emit_16(409); -emit_16(475); -emit_16(408); -emit_16(475); -emit_16(409); -emit_16(476); -emit_16(410); -emit_16(476); -emit_16(409); -emit_16(476); -emit_16(410); -emit_16(477); -emit_16(411); -emit_16(477); -emit_16(410); -emit_16(477); -emit_16(411); -emit_16(478); -emit_16(412); -emit_16(478); -emit_16(411); -emit_16(478); -emit_16(412); -emit_16(479); -emit_16(413); -emit_16(479); -emit_16(412); -emit_16(479); -emit_16(413); -emit_16(480); -emit_16(414); -emit_16(480); -emit_16(413); -emit_16(480); -emit_16(414); -emit_16(481); -emit_16(415); -emit_16(481); -emit_16(414); -emit_16(481); -emit_16(415); -emit_16(482); -emit_16(416); -emit_16(482); -emit_16(415); -emit_16(482); -emit_16(416); -emit_16(483); -emit_16(417); -emit_16(483); -emit_16(416); -emit_16(483); -emit_16(417); -emit_16(484); -emit_16(418); -emit_16(484); -emit_16(417); -emit_16(484); -emit_16(418); -emit_16(485); -emit_16(419); -emit_16(485); -emit_16(418); -emit_16(485); -emit_16(419); -emit_16(486); -emit_16(420); -emit_16(486); -emit_16(419); -emit_16(486); -emit_16(420); -emit_16(487); -emit_16(421); -emit_16(487); -emit_16(420); -emit_16(487); -emit_16(421); -emit_16(488); -emit_16(422); -emit_16(488); -emit_16(421); -emit_16(488); -emit_16(422); -emit_16(489); -emit_16(423); -emit_16(489); -emit_16(422); -emit_16(489); -emit_16(423); -emit_16(490); -emit_16(424); -emit_16(490); -emit_16(423); -emit_16(490); -emit_16(424); -emit_16(491); -emit_16(425); -emit_16(491); -emit_16(424); -emit_16(491); -emit_16(425); -emit_16(492); -emit_16(426); -emit_16(492); -emit_16(425); -emit_16(492); -emit_16(426); -emit_16(493); -emit_16(427); -emit_16(493); -emit_16(426); -emit_16(493); -emit_16(427); -emit_16(494); -emit_16(428); -emit_16(494); -emit_16(427); -emit_16(494); -emit_16(428); -emit_16(495); -emit_16(429); -emit_16(495); -emit_16(428); -emit_16(495); -emit_16(429); -emit_16(496); -emit_16(430); -emit_16(496); -emit_16(429); -emit_16(496); -emit_16(430); -emit_16(497); -emit_16(431); -emit_16(497); -emit_16(430); -emit_16(497); -emit_16(431); -emit_16(498); -emit_16(432); -emit_16(498); -emit_16(431); -emit_16(498); -emit_16(432); -emit_16(499); -emit_16(433); -emit_16(499); -emit_16(432); -emit_16(499); -emit_16(433); -emit_16(500); -emit_16(434); -emit_16(500); -emit_16(433); -emit_16(500); -emit_16(434); -emit_16(501); -emit_16(435); -emit_16(501); -emit_16(434); -emit_16(501); -emit_16(435); -emit_16(502); -emit_16(436); -emit_16(502); -emit_16(435); -emit_16(502); -emit_16(436); -emit_16(503); -emit_16(437); -emit_16(503); -emit_16(436); -emit_16(503); -emit_16(437); -emit_16(504); -emit_16(438); -emit_16(504); -emit_16(437); -emit_16(504); -emit_16(438); -emit_16(505); -emit_16(439); -emit_16(505); -emit_16(438); -emit_16(505); -emit_16(439); -emit_16(506); -emit_16(440); -emit_16(506); -emit_16(439); -emit_16(506); -emit_16(440); -emit_16(507); -emit_16(441); -emit_16(507); -emit_16(440); -emit_16(507); -emit_16(441); -emit_16(508); -emit_16(442); -emit_16(508); -emit_16(441); -emit_16(508); -emit_16(442); -emit_16(509); -emit_16(443); -emit_16(509); -emit_16(442); -emit_16(509); -emit_16(443); -emit_16(510); -emit_16(444); -emit_16(510); -emit_16(443); -emit_16(510); -emit_16(444); -emit_16(511); -emit_16(445); -emit_16(511); -emit_16(444); -emit_16(511); -emit_16(445); -emit_16(512); -emit_16(446); -emit_16(512); -emit_16(445); -emit_16(512); -emit_16(446); -emit_16(513); -emit_16(447); -emit_16(513); -emit_16(446); -emit_16(513); -emit_16(447); -emit_16(514); -emit_16(448); -emit_16(514); -emit_16(447); -emit_16(514); -emit_16(448); -emit_16(515); -emit_16(449); -emit_16(515); -emit_16(448); -emit_16(515); -emit_16(449); -emit_16(516); -emit_16(450); -emit_16(516); -emit_16(449); -emit_16(516); -emit_16(450); -emit_16(517); -emit_16(451); -emit_16(517); -emit_16(450); -emit_16(517); -emit_16(451); -emit_16(518); -emit_16(452); -emit_16(518); -emit_16(451); -emit_16(518); -emit_16(452); -emit_16(519); -emit_16(453); -emit_16(519); -emit_16(452); -emit_16(519); -emit_16(453); -emit_16(520); -emit_16(454); -emit_16(520); -emit_16(453); -emit_16(520); -emit_16(454); -emit_16(521); -emit_16(455); -emit_16(521); -emit_16(454); -emit_16(521); -emit_16(455); -emit_16(522); -emit_16(456); -emit_16(522); -emit_16(455); -emit_16(522); -emit_16(456); -emit_16(523); -emit_16(457); -emit_16(523); -emit_16(456); -emit_16(523); -emit_16(457); -emit_16(524); -emit_16(458); -emit_16(524); -emit_16(457); -emit_16(524); -emit_16(458); -emit_16(525); -emit_16(459); -emit_16(525); -emit_16(458); -emit_16(525); -emit_16(459); -emit_16(526); -emit_16(460); -emit_16(526); -emit_16(459); -emit_16(526); -emit_16(460); -emit_16(527); -emit_16(461); -emit_16(527); -emit_16(460); -emit_16(528); -emit_16(462); -emit_16(529); -emit_16(463); -emit_16(529); -emit_16(462); -emit_16(529); -emit_16(463); -emit_16(530); -emit_16(464); -emit_16(530); -emit_16(463); -emit_16(530); -emit_16(464); -emit_16(531); -emit_16(465); -emit_16(531); -emit_16(464); -emit_16(531); -emit_16(465); -emit_16(532); -emit_16(466); -emit_16(532); -emit_16(465); -emit_16(532); -emit_16(466); -emit_16(533); -emit_16(467); -emit_16(533); -emit_16(466); -emit_16(533); -emit_16(467); -emit_16(534); -emit_16(468); -emit_16(534); -emit_16(467); -emit_16(534); -emit_16(468); -emit_16(535); -emit_16(469); -emit_16(535); -emit_16(468); -emit_16(535); -emit_16(469); -emit_16(536); -emit_16(470); -emit_16(536); -emit_16(469); -emit_16(536); -emit_16(470); -emit_16(537); -emit_16(471); -emit_16(537); -emit_16(470); -emit_16(537); -emit_16(471); -emit_16(538); -emit_16(472); -emit_16(538); -emit_16(471); -emit_16(538); -emit_16(472); -emit_16(539); -emit_16(473); -emit_16(539); -emit_16(472); -emit_16(539); -emit_16(473); -emit_16(540); -emit_16(474); -emit_16(540); -emit_16(473); -emit_16(540); -emit_16(474); -emit_16(541); -emit_16(475); -emit_16(541); -emit_16(474); -emit_16(541); -emit_16(475); -emit_16(542); -emit_16(476); -emit_16(542); -emit_16(475); -emit_16(542); -emit_16(476); -emit_16(543); -emit_16(477); -emit_16(543); -emit_16(476); -emit_16(543); -emit_16(477); -emit_16(544); -emit_16(478); -emit_16(544); -emit_16(477); -emit_16(544); -emit_16(478); -emit_16(545); -emit_16(479); -emit_16(545); -emit_16(478); -emit_16(545); -emit_16(479); -emit_16(546); -emit_16(480); -emit_16(546); -emit_16(479); -emit_16(546); -emit_16(480); -emit_16(547); -emit_16(481); -emit_16(547); -emit_16(480); -emit_16(547); -emit_16(481); -emit_16(548); -emit_16(482); -emit_16(548); -emit_16(481); -emit_16(548); -emit_16(482); -emit_16(549); -emit_16(483); -emit_16(549); -emit_16(482); -emit_16(549); -emit_16(483); -emit_16(550); -emit_16(484); -emit_16(550); -emit_16(483); -emit_16(550); -emit_16(484); -emit_16(551); -emit_16(485); -emit_16(551); -emit_16(484); -emit_16(551); -emit_16(485); -emit_16(552); -emit_16(486); -emit_16(552); -emit_16(485); -emit_16(552); -emit_16(486); -emit_16(553); -emit_16(487); -emit_16(553); -emit_16(486); -emit_16(553); -emit_16(487); -emit_16(554); -emit_16(488); -emit_16(554); -emit_16(487); -emit_16(554); -emit_16(488); -emit_16(555); -emit_16(489); -emit_16(555); -emit_16(488); -emit_16(555); -emit_16(489); -emit_16(556); -emit_16(490); -emit_16(556); -emit_16(489); -emit_16(556); -emit_16(490); -emit_16(557); -emit_16(491); -emit_16(557); -emit_16(490); -emit_16(557); -emit_16(491); -emit_16(558); -emit_16(492); -emit_16(558); -emit_16(491); -emit_16(558); -emit_16(492); -emit_16(559); -emit_16(493); -emit_16(559); -emit_16(492); -emit_16(559); -emit_16(493); -emit_16(560); -emit_16(494); -emit_16(560); -emit_16(493); -emit_16(560); -emit_16(494); -emit_16(561); -emit_16(495); -emit_16(561); -emit_16(494); -emit_16(561); -emit_16(495); -emit_16(562); -emit_16(496); -emit_16(562); -emit_16(495); -emit_16(562); -emit_16(496); -emit_16(563); -emit_16(497); -emit_16(563); -emit_16(496); -emit_16(563); -emit_16(497); -emit_16(564); -emit_16(498); -emit_16(564); -emit_16(497); -emit_16(564); -emit_16(498); -emit_16(565); -emit_16(499); -emit_16(565); -emit_16(498); -emit_16(565); -emit_16(499); -emit_16(566); -emit_16(500); -emit_16(566); -emit_16(499); -emit_16(566); -emit_16(500); -emit_16(567); -emit_16(501); -emit_16(567); -emit_16(500); -emit_16(567); -emit_16(501); -emit_16(568); -emit_16(502); -emit_16(568); -emit_16(501); -emit_16(568); -emit_16(502); -emit_16(569); -emit_16(503); -emit_16(569); -emit_16(502); -emit_16(569); -emit_16(503); -emit_16(570); -emit_16(504); -emit_16(570); -emit_16(503); -emit_16(570); -emit_16(504); -emit_16(571); -emit_16(505); -emit_16(571); -emit_16(504); -emit_16(571); -emit_16(505); -emit_16(572); -emit_16(506); -emit_16(572); -emit_16(505); -emit_16(572); -emit_16(506); -emit_16(573); -emit_16(507); -emit_16(573); -emit_16(506); -emit_16(573); -emit_16(507); -emit_16(574); -emit_16(508); -emit_16(574); -emit_16(507); -emit_16(574); -emit_16(508); -emit_16(575); -emit_16(509); -emit_16(575); -emit_16(508); -emit_16(575); -emit_16(509); -emit_16(576); -emit_16(510); -emit_16(576); -emit_16(509); -emit_16(576); -emit_16(510); -emit_16(577); -emit_16(511); -emit_16(577); -emit_16(510); -emit_16(577); -emit_16(511); -emit_16(578); -emit_16(512); -emit_16(578); -emit_16(511); -emit_16(578); -emit_16(512); -emit_16(579); -emit_16(513); -emit_16(579); -emit_16(512); -emit_16(579); -emit_16(513); -emit_16(580); -emit_16(514); -emit_16(580); -emit_16(513); -emit_16(580); -emit_16(514); -emit_16(581); -emit_16(515); -emit_16(581); -emit_16(514); -emit_16(581); -emit_16(515); -emit_16(582); -emit_16(516); -emit_16(582); -emit_16(515); -emit_16(582); -emit_16(516); -emit_16(583); -emit_16(517); -emit_16(583); -emit_16(516); -emit_16(583); -emit_16(517); -emit_16(584); -emit_16(518); -emit_16(584); -emit_16(517); -emit_16(584); -emit_16(518); -emit_16(585); -emit_16(519); -emit_16(585); -emit_16(518); -emit_16(585); -emit_16(519); -emit_16(586); -emit_16(520); -emit_16(586); -emit_16(519); -emit_16(586); -emit_16(520); -emit_16(587); -emit_16(521); -emit_16(587); -emit_16(520); -emit_16(587); -emit_16(521); -emit_16(588); -emit_16(522); -emit_16(588); -emit_16(521); -emit_16(588); -emit_16(522); -emit_16(589); -emit_16(523); -emit_16(589); -emit_16(522); -emit_16(589); -emit_16(523); -emit_16(590); -emit_16(524); -emit_16(590); -emit_16(523); -emit_16(590); -emit_16(524); -emit_16(591); -emit_16(525); -emit_16(591); -emit_16(524); -emit_16(591); -emit_16(525); -emit_16(592); -emit_16(526); -emit_16(592); -emit_16(525); -emit_16(592); -emit_16(526); -emit_16(593); -emit_16(527); -emit_16(593); -emit_16(526); -emit_16(594); -emit_16(528); -emit_16(595); -emit_16(529); -emit_16(595); -emit_16(528); -emit_16(595); -emit_16(529); -emit_16(596); -emit_16(530); -emit_16(596); -emit_16(529); -emit_16(596); -emit_16(530); -emit_16(597); -emit_16(531); -emit_16(597); -emit_16(530); -emit_16(597); -emit_16(531); -emit_16(598); -emit_16(532); -emit_16(598); -emit_16(531); -emit_16(598); -emit_16(532); -emit_16(599); -emit_16(533); -emit_16(599); -emit_16(532); -emit_16(599); -emit_16(533); -emit_16(600); -emit_16(534); -emit_16(600); -emit_16(533); -emit_16(600); -emit_16(534); -emit_16(601); -emit_16(535); -emit_16(601); -emit_16(534); -emit_16(601); -emit_16(535); -emit_16(602); -emit_16(536); -emit_16(602); -emit_16(535); -emit_16(602); -emit_16(536); -emit_16(603); -emit_16(537); -emit_16(603); -emit_16(536); -emit_16(603); -emit_16(537); -emit_16(604); -emit_16(538); -emit_16(604); -emit_16(537); -emit_16(604); -emit_16(538); -emit_16(605); -emit_16(539); -emit_16(605); -emit_16(538); -emit_16(605); -emit_16(539); -emit_16(606); -emit_16(540); -emit_16(606); -emit_16(539); -emit_16(606); -emit_16(540); -emit_16(607); -emit_16(541); -emit_16(607); -emit_16(540); -emit_16(607); -emit_16(541); -emit_16(608); -emit_16(542); -emit_16(608); -emit_16(541); -emit_16(608); -emit_16(542); -emit_16(609); -emit_16(543); -emit_16(609); -emit_16(542); -emit_16(609); -emit_16(543); -emit_16(610); -emit_16(544); -emit_16(610); -emit_16(543); -emit_16(610); -emit_16(544); -emit_16(611); -emit_16(545); -emit_16(611); -emit_16(544); -emit_16(611); -emit_16(545); -emit_16(612); -emit_16(546); -emit_16(612); -emit_16(545); -emit_16(612); -emit_16(546); -emit_16(613); -emit_16(547); -emit_16(613); -emit_16(546); -emit_16(613); -emit_16(547); -emit_16(614); -emit_16(548); -emit_16(614); -emit_16(547); -emit_16(614); -emit_16(548); -emit_16(615); -emit_16(549); -emit_16(615); -emit_16(548); -emit_16(615); -emit_16(549); -emit_16(616); -emit_16(550); -emit_16(616); -emit_16(549); -emit_16(616); -emit_16(550); -emit_16(617); -emit_16(551); -emit_16(617); -emit_16(550); -emit_16(617); -emit_16(551); -emit_16(618); -emit_16(552); -emit_16(618); -emit_16(551); -emit_16(618); -emit_16(552); -emit_16(619); -emit_16(553); -emit_16(619); -emit_16(552); -emit_16(619); -emit_16(553); -emit_16(620); -emit_16(554); -emit_16(620); -emit_16(553); -emit_16(620); -emit_16(554); -emit_16(621); -emit_16(555); -emit_16(621); -emit_16(554); -emit_16(621); -emit_16(555); -emit_16(622); -emit_16(556); -emit_16(622); -emit_16(555); -emit_16(622); -emit_16(556); -emit_16(623); -emit_16(557); -emit_16(623); -emit_16(556); -emit_16(623); -emit_16(557); -emit_16(624); -emit_16(558); -emit_16(624); -emit_16(557); -emit_16(624); -emit_16(558); -emit_16(625); -emit_16(559); -emit_16(625); -emit_16(558); -emit_16(625); -emit_16(559); -emit_16(626); -emit_16(560); -emit_16(626); -emit_16(559); -emit_16(626); -emit_16(560); -emit_16(627); -emit_16(561); -emit_16(627); -emit_16(560); -emit_16(627); -emit_16(561); -emit_16(628); -emit_16(562); -emit_16(628); -emit_16(561); -emit_16(628); -emit_16(562); -emit_16(629); -emit_16(563); -emit_16(629); -emit_16(562); -emit_16(629); -emit_16(563); -emit_16(630); -emit_16(564); -emit_16(630); -emit_16(563); -emit_16(630); -emit_16(564); -emit_16(631); -emit_16(565); -emit_16(631); -emit_16(564); -emit_16(631); -emit_16(565); -emit_16(632); -emit_16(566); -emit_16(632); -emit_16(565); -emit_16(632); -emit_16(566); -emit_16(633); -emit_16(567); -emit_16(633); -emit_16(566); -emit_16(633); -emit_16(567); -emit_16(634); -emit_16(568); -emit_16(634); -emit_16(567); -emit_16(634); -emit_16(568); -emit_16(635); -emit_16(569); -emit_16(635); -emit_16(568); -emit_16(635); -emit_16(569); -emit_16(636); -emit_16(570); -emit_16(636); -emit_16(569); -emit_16(636); -emit_16(570); -emit_16(637); -emit_16(571); -emit_16(637); -emit_16(570); -emit_16(637); -emit_16(571); -emit_16(638); -emit_16(572); -emit_16(638); -emit_16(571); -emit_16(638); -emit_16(572); -emit_16(639); -emit_16(573); -emit_16(639); -emit_16(572); -emit_16(639); -emit_16(573); -emit_16(640); -emit_16(574); -emit_16(640); -emit_16(573); -emit_16(640); -emit_16(574); -emit_16(641); -emit_16(575); -emit_16(641); -emit_16(574); -emit_16(641); -emit_16(575); -emit_16(642); -emit_16(576); -emit_16(642); -emit_16(575); -emit_16(642); -emit_16(576); -emit_16(643); -emit_16(577); -emit_16(643); -emit_16(576); -emit_16(643); -emit_16(577); -emit_16(644); -emit_16(578); -emit_16(644); -emit_16(577); -emit_16(644); -emit_16(578); -emit_16(645); -emit_16(579); -emit_16(645); -emit_16(578); -emit_16(645); -emit_16(579); -emit_16(646); -emit_16(580); -emit_16(646); -emit_16(579); -emit_16(646); -emit_16(580); -emit_16(647); -emit_16(581); -emit_16(647); -emit_16(580); -emit_16(647); -emit_16(581); -emit_16(648); -emit_16(582); -emit_16(648); -emit_16(581); -emit_16(648); -emit_16(582); -emit_16(649); -emit_16(583); -emit_16(649); -emit_16(582); -emit_16(649); -emit_16(583); -emit_16(650); -emit_16(584); -emit_16(650); -emit_16(583); -emit_16(650); -emit_16(584); -emit_16(651); -emit_16(585); -emit_16(651); -emit_16(584); -emit_16(651); -emit_16(585); -emit_16(652); -emit_16(586); -emit_16(652); -emit_16(585); -emit_16(652); -emit_16(586); -emit_16(653); -emit_16(587); -emit_16(653); -emit_16(586); -emit_16(653); -emit_16(587); -emit_16(654); -emit_16(588); -emit_16(654); -emit_16(587); -emit_16(654); -emit_16(588); -emit_16(655); -emit_16(589); -emit_16(655); -emit_16(588); -emit_16(655); -emit_16(589); -emit_16(656); -emit_16(590); -emit_16(656); -emit_16(589); -emit_16(656); -emit_16(590); -emit_16(657); -emit_16(591); -emit_16(657); -emit_16(590); -emit_16(657); -emit_16(591); -emit_16(658); -emit_16(592); -emit_16(658); -emit_16(591); -emit_16(658); -emit_16(592); -emit_16(659); -emit_16(593); -emit_16(659); -emit_16(592); -emit_16(660); -emit_16(594); -emit_16(661); -emit_16(595); -emit_16(661); -emit_16(594); -emit_16(661); -emit_16(595); -emit_16(662); -emit_16(596); -emit_16(662); -emit_16(595); -emit_16(662); -emit_16(596); -emit_16(663); -emit_16(597); -emit_16(663); -emit_16(596); -emit_16(663); -emit_16(597); -emit_16(664); -emit_16(598); -emit_16(664); -emit_16(597); -emit_16(664); -emit_16(598); -emit_16(665); -emit_16(599); -emit_16(665); -emit_16(598); -emit_16(665); -emit_16(599); -emit_16(666); -emit_16(600); -emit_16(666); -emit_16(599); -emit_16(666); -emit_16(600); -emit_16(667); -emit_16(601); -emit_16(667); -emit_16(600); -emit_16(667); -emit_16(601); -emit_16(668); -emit_16(602); -emit_16(668); -emit_16(601); -emit_16(668); -emit_16(602); -emit_16(669); -emit_16(603); -emit_16(669); -emit_16(602); -emit_16(669); -emit_16(603); -emit_16(670); -emit_16(604); -emit_16(670); -emit_16(603); -emit_16(670); -emit_16(604); -emit_16(671); -emit_16(605); -emit_16(671); -emit_16(604); -emit_16(671); -emit_16(605); -emit_16(672); -emit_16(606); -emit_16(672); -emit_16(605); -emit_16(672); -emit_16(606); -emit_16(673); -emit_16(607); -emit_16(673); -emit_16(606); -emit_16(673); -emit_16(607); -emit_16(674); -emit_16(608); -emit_16(674); -emit_16(607); -emit_16(674); -emit_16(608); -emit_16(675); -emit_16(609); -emit_16(675); -emit_16(608); -emit_16(675); -emit_16(609); -emit_16(676); -emit_16(610); -emit_16(676); -emit_16(609); -emit_16(676); -emit_16(610); -emit_16(677); -emit_16(611); -emit_16(677); -emit_16(610); -emit_16(677); -emit_16(611); -emit_16(678); -emit_16(612); -emit_16(678); -emit_16(611); -emit_16(678); -emit_16(612); -emit_16(679); -emit_16(613); -emit_16(679); -emit_16(612); -emit_16(679); -emit_16(613); -emit_16(680); -emit_16(614); -emit_16(680); -emit_16(613); -emit_16(680); -emit_16(614); -emit_16(681); -emit_16(615); -emit_16(681); -emit_16(614); -emit_16(681); -emit_16(615); -emit_16(682); -emit_16(616); -emit_16(682); -emit_16(615); -emit_16(682); -emit_16(616); -emit_16(683); -emit_16(617); -emit_16(683); -emit_16(616); -emit_16(683); -emit_16(617); -emit_16(684); -emit_16(618); -emit_16(684); -emit_16(617); -emit_16(684); -emit_16(618); -emit_16(685); -emit_16(619); -emit_16(685); -emit_16(618); -emit_16(685); -emit_16(619); -emit_16(686); -emit_16(620); -emit_16(686); -emit_16(619); -emit_16(686); -emit_16(620); -emit_16(687); -emit_16(621); -emit_16(687); -emit_16(620); -emit_16(687); -emit_16(621); -emit_16(688); -emit_16(622); -emit_16(688); -emit_16(621); -emit_16(688); -emit_16(622); -emit_16(689); -emit_16(623); -emit_16(689); -emit_16(622); -emit_16(689); -emit_16(623); -emit_16(690); -emit_16(624); -emit_16(690); -emit_16(623); -emit_16(690); -emit_16(624); -emit_16(691); -emit_16(625); -emit_16(691); -emit_16(624); -emit_16(691); -emit_16(625); -emit_16(692); -emit_16(626); -emit_16(692); -emit_16(625); -emit_16(692); -emit_16(626); -emit_16(693); -emit_16(627); -emit_16(693); -emit_16(626); -emit_16(693); -emit_16(627); -emit_16(694); -emit_16(628); -emit_16(694); -emit_16(627); -emit_16(694); -emit_16(628); -emit_16(695); -emit_16(629); -emit_16(695); -emit_16(628); -emit_16(695); -emit_16(629); -emit_16(696); -emit_16(630); -emit_16(696); -emit_16(629); -emit_16(696); -emit_16(630); -emit_16(697); -emit_16(631); -emit_16(697); -emit_16(630); -emit_16(697); -emit_16(631); -emit_16(698); -emit_16(632); -emit_16(698); -emit_16(631); -emit_16(698); -emit_16(632); -emit_16(699); -emit_16(633); -emit_16(699); -emit_16(632); -emit_16(699); -emit_16(633); -emit_16(700); -emit_16(634); -emit_16(700); -emit_16(633); -emit_16(700); -emit_16(634); -emit_16(701); -emit_16(635); -emit_16(701); -emit_16(634); -emit_16(701); -emit_16(635); -emit_16(702); -emit_16(636); -emit_16(702); -emit_16(635); -emit_16(702); -emit_16(636); -emit_16(703); -emit_16(637); -emit_16(703); -emit_16(636); -emit_16(703); -emit_16(637); -emit_16(704); -emit_16(638); -emit_16(704); -emit_16(637); -emit_16(704); -emit_16(638); -emit_16(705); -emit_16(639); -emit_16(705); -emit_16(638); -emit_16(705); -emit_16(639); -emit_16(706); -emit_16(640); -emit_16(706); -emit_16(639); -emit_16(706); -emit_16(640); -emit_16(707); -emit_16(641); -emit_16(707); -emit_16(640); -emit_16(707); -emit_16(641); -emit_16(708); -emit_16(642); -emit_16(708); -emit_16(641); -emit_16(708); -emit_16(642); -emit_16(709); -emit_16(643); -emit_16(709); -emit_16(642); -emit_16(709); -emit_16(643); -emit_16(710); -emit_16(644); -emit_16(710); -emit_16(643); -emit_16(710); -emit_16(644); -emit_16(711); -emit_16(645); -emit_16(711); -emit_16(644); -emit_16(711); -emit_16(645); -emit_16(712); -emit_16(646); -emit_16(712); -emit_16(645); -emit_16(712); -emit_16(646); -emit_16(713); -emit_16(647); -emit_16(713); -emit_16(646); -emit_16(713); -emit_16(647); -emit_16(714); -emit_16(648); -emit_16(714); -emit_16(647); -emit_16(714); -emit_16(648); -emit_16(715); -emit_16(649); -emit_16(715); -emit_16(648); -emit_16(715); -emit_16(649); -emit_16(716); -emit_16(650); -emit_16(716); -emit_16(649); -emit_16(716); -emit_16(650); -emit_16(717); -emit_16(651); -emit_16(717); -emit_16(650); -emit_16(717); -emit_16(651); -emit_16(718); -emit_16(652); -emit_16(718); -emit_16(651); -emit_16(718); -emit_16(652); -emit_16(719); -emit_16(653); -emit_16(719); -emit_16(652); -emit_16(719); -emit_16(653); -emit_16(720); -emit_16(654); -emit_16(720); -emit_16(653); -emit_16(720); -emit_16(654); -emit_16(721); -emit_16(655); -emit_16(721); -emit_16(654); -emit_16(721); -emit_16(655); -emit_16(722); -emit_16(656); -emit_16(722); -emit_16(655); -emit_16(722); -emit_16(656); -emit_16(723); -emit_16(657); -emit_16(723); -emit_16(656); -emit_16(723); -emit_16(657); -emit_16(724); -emit_16(658); -emit_16(724); -emit_16(657); -emit_16(724); -emit_16(658); -emit_16(725); -emit_16(659); -emit_16(725); -emit_16(658); -emit_16(726); -emit_16(660); -emit_16(727); -emit_16(661); -emit_16(727); -emit_16(660); -emit_16(727); -emit_16(661); -emit_16(728); -emit_16(662); -emit_16(728); -emit_16(661); -emit_16(728); -emit_16(662); -emit_16(729); -emit_16(663); -emit_16(729); -emit_16(662); -emit_16(729); -emit_16(663); -emit_16(730); -emit_16(664); -emit_16(730); -emit_16(663); -emit_16(730); -emit_16(664); -emit_16(731); -emit_16(665); -emit_16(731); -emit_16(664); -emit_16(731); -emit_16(665); -emit_16(732); -emit_16(666); -emit_16(732); -emit_16(665); -emit_16(732); -emit_16(666); -emit_16(733); -emit_16(667); -emit_16(733); -emit_16(666); -emit_16(733); -emit_16(667); -emit_16(734); -emit_16(668); -emit_16(734); -emit_16(667); -emit_16(734); -emit_16(668); -emit_16(735); -emit_16(669); -emit_16(735); -emit_16(668); -emit_16(735); -emit_16(669); -emit_16(736); -emit_16(670); -emit_16(736); -emit_16(669); -emit_16(736); -emit_16(670); -emit_16(737); -emit_16(671); -emit_16(737); -emit_16(670); -emit_16(737); -emit_16(671); -emit_16(738); -emit_16(672); -emit_16(738); -emit_16(671); -emit_16(738); -emit_16(672); -emit_16(739); -emit_16(673); -emit_16(739); -emit_16(672); -emit_16(739); -emit_16(673); -emit_16(740); -emit_16(674); -emit_16(740); -emit_16(673); -emit_16(740); -emit_16(674); -emit_16(741); -emit_16(675); -emit_16(741); -emit_16(674); -emit_16(741); -emit_16(675); -emit_16(742); -emit_16(676); -emit_16(742); -emit_16(675); -emit_16(742); -emit_16(676); -emit_16(743); -emit_16(677); -emit_16(743); -emit_16(676); -emit_16(743); -emit_16(677); -emit_16(744); -emit_16(678); -emit_16(744); -emit_16(677); -emit_16(744); -emit_16(678); -emit_16(745); -emit_16(679); -emit_16(745); -emit_16(678); -emit_16(745); -emit_16(679); -emit_16(746); -emit_16(680); -emit_16(746); -emit_16(679); -emit_16(746); -emit_16(680); -emit_16(747); -emit_16(681); -emit_16(747); -emit_16(680); -emit_16(747); -emit_16(681); -emit_16(748); -emit_16(682); -emit_16(748); -emit_16(681); -emit_16(748); -emit_16(682); -emit_16(749); -emit_16(683); -emit_16(749); -emit_16(682); -emit_16(749); -emit_16(683); -emit_16(750); -emit_16(684); -emit_16(750); -emit_16(683); -emit_16(750); -emit_16(684); -emit_16(751); -emit_16(685); -emit_16(751); -emit_16(684); -emit_16(751); -emit_16(685); -emit_16(752); -emit_16(686); -emit_16(752); -emit_16(685); -emit_16(752); -emit_16(686); -emit_16(753); -emit_16(687); -emit_16(753); -emit_16(686); -emit_16(753); -emit_16(687); -emit_16(754); -emit_16(688); -emit_16(754); -emit_16(687); -emit_16(754); -emit_16(688); -emit_16(755); -emit_16(689); -emit_16(755); -emit_16(688); -emit_16(755); -emit_16(689); -emit_16(756); -emit_16(690); -emit_16(756); -emit_16(689); -emit_16(756); -emit_16(690); -emit_16(757); -emit_16(691); -emit_16(757); -emit_16(690); -emit_16(757); -emit_16(691); -emit_16(758); -emit_16(692); -emit_16(758); -emit_16(691); -emit_16(758); -emit_16(692); -emit_16(759); -emit_16(693); -emit_16(759); -emit_16(692); -emit_16(759); -emit_16(693); -emit_16(760); -emit_16(694); -emit_16(760); -emit_16(693); -emit_16(760); -emit_16(694); -emit_16(761); -emit_16(695); -emit_16(761); -emit_16(694); -emit_16(761); -emit_16(695); -emit_16(762); -emit_16(696); -emit_16(762); -emit_16(695); -emit_16(762); -emit_16(696); -emit_16(763); -emit_16(697); -emit_16(763); -emit_16(696); -emit_16(763); -emit_16(697); -emit_16(764); -emit_16(698); -emit_16(764); -emit_16(697); -emit_16(764); -emit_16(698); -emit_16(765); -emit_16(699); -emit_16(765); -emit_16(698); -emit_16(765); -emit_16(699); -emit_16(766); -emit_16(700); -emit_16(766); -emit_16(699); -emit_16(766); -emit_16(700); -emit_16(767); -emit_16(701); -emit_16(767); -emit_16(700); -emit_16(767); -emit_16(701); -emit_16(768); -emit_16(702); -emit_16(768); -emit_16(701); -emit_16(768); -emit_16(702); -emit_16(769); -emit_16(703); -emit_16(769); -emit_16(702); -emit_16(769); -emit_16(703); -emit_16(770); -emit_16(704); -emit_16(770); -emit_16(703); -emit_16(770); -emit_16(704); -emit_16(771); -emit_16(705); -emit_16(771); -emit_16(704); -emit_16(771); -emit_16(705); -emit_16(772); -emit_16(706); -emit_16(772); -emit_16(705); -emit_16(772); -emit_16(706); -emit_16(773); -emit_16(707); -emit_16(773); -emit_16(706); -emit_16(773); -emit_16(707); -emit_16(774); -emit_16(708); -emit_16(774); -emit_16(707); -emit_16(774); -emit_16(708); -emit_16(775); -emit_16(709); -emit_16(775); -emit_16(708); -emit_16(775); -emit_16(709); -emit_16(776); -emit_16(710); -emit_16(776); -emit_16(709); -emit_16(776); -emit_16(710); -emit_16(777); -emit_16(711); -emit_16(777); -emit_16(710); -emit_16(777); -emit_16(711); -emit_16(778); -emit_16(712); -emit_16(778); -emit_16(711); -emit_16(778); -emit_16(712); -emit_16(779); -emit_16(713); -emit_16(779); -emit_16(712); -emit_16(779); -emit_16(713); -emit_16(780); -emit_16(714); -emit_16(780); -emit_16(713); -emit_16(780); -emit_16(714); -emit_16(781); -emit_16(715); -emit_16(781); -emit_16(714); -emit_16(781); -emit_16(715); -emit_16(782); -emit_16(716); -emit_16(782); -emit_16(715); -emit_16(782); -emit_16(716); -emit_16(783); -emit_16(717); -emit_16(783); -emit_16(716); -emit_16(783); -emit_16(717); -emit_16(784); -emit_16(718); -emit_16(784); -emit_16(717); -emit_16(784); -emit_16(718); -emit_16(785); -emit_16(719); -emit_16(785); -emit_16(718); -emit_16(785); -emit_16(719); -emit_16(786); -emit_16(720); -emit_16(786); -emit_16(719); -emit_16(786); -emit_16(720); -emit_16(787); -emit_16(721); -emit_16(787); -emit_16(720); -emit_16(787); -emit_16(721); -emit_16(788); -emit_16(722); -emit_16(788); -emit_16(721); -emit_16(788); -emit_16(722); -emit_16(789); -emit_16(723); -emit_16(789); -emit_16(722); -emit_16(789); -emit_16(723); -emit_16(790); -emit_16(724); -emit_16(790); -emit_16(723); -emit_16(790); -emit_16(724); -emit_16(791); -emit_16(725); -emit_16(791); -emit_16(724); -emit_16(792); -emit_16(726); -emit_16(793); -emit_16(727); -emit_16(793); -emit_16(726); -emit_16(793); -emit_16(727); -emit_16(794); -emit_16(728); -emit_16(794); -emit_16(727); -emit_16(794); -emit_16(728); -emit_16(795); -emit_16(729); -emit_16(795); -emit_16(728); -emit_16(795); -emit_16(729); -emit_16(796); -emit_16(730); -emit_16(796); -emit_16(729); -emit_16(796); -emit_16(730); -emit_16(797); -emit_16(731); -emit_16(797); -emit_16(730); -emit_16(797); -emit_16(731); -emit_16(798); -emit_16(732); -emit_16(798); -emit_16(731); -emit_16(798); -emit_16(732); -emit_16(799); -emit_16(733); -emit_16(799); -emit_16(732); -emit_16(799); -emit_16(733); -emit_16(800); -emit_16(734); -emit_16(800); -emit_16(733); -emit_16(800); -emit_16(734); -emit_16(801); -emit_16(735); -emit_16(801); -emit_16(734); -emit_16(801); -emit_16(735); -emit_16(802); -emit_16(736); -emit_16(802); -emit_16(735); -emit_16(802); -emit_16(736); -emit_16(803); -emit_16(737); -emit_16(803); -emit_16(736); -emit_16(803); -emit_16(737); -emit_16(804); -emit_16(738); -emit_16(804); -emit_16(737); -emit_16(804); -emit_16(738); -emit_16(805); -emit_16(739); -emit_16(805); -emit_16(738); -emit_16(805); -emit_16(739); -emit_16(806); -emit_16(740); -emit_16(806); -emit_16(739); -emit_16(806); -emit_16(740); -emit_16(807); -emit_16(741); -emit_16(807); -emit_16(740); -emit_16(807); -emit_16(741); -emit_16(808); -emit_16(742); -emit_16(808); -emit_16(741); -emit_16(808); -emit_16(742); -emit_16(809); -emit_16(743); -emit_16(809); -emit_16(742); -emit_16(809); -emit_16(743); -emit_16(810); -emit_16(744); -emit_16(810); -emit_16(743); -emit_16(810); -emit_16(744); -emit_16(811); -emit_16(745); -emit_16(811); -emit_16(744); -emit_16(811); -emit_16(745); -emit_16(812); -emit_16(746); -emit_16(812); -emit_16(745); -emit_16(812); -emit_16(746); -emit_16(813); -emit_16(747); -emit_16(813); -emit_16(746); -emit_16(813); -emit_16(747); -emit_16(814); -emit_16(748); -emit_16(814); -emit_16(747); -emit_16(814); -emit_16(748); -emit_16(815); -emit_16(749); -emit_16(815); -emit_16(748); -emit_16(815); -emit_16(749); -emit_16(816); -emit_16(750); -emit_16(816); -emit_16(749); -emit_16(816); -emit_16(750); -emit_16(817); -emit_16(751); -emit_16(817); -emit_16(750); -emit_16(817); -emit_16(751); -emit_16(818); -emit_16(752); -emit_16(818); -emit_16(751); -emit_16(818); -emit_16(752); -emit_16(819); -emit_16(753); -emit_16(819); -emit_16(752); -emit_16(819); -emit_16(753); -emit_16(820); -emit_16(754); -emit_16(820); -emit_16(753); -emit_16(820); -emit_16(754); -emit_16(821); -emit_16(755); -emit_16(821); -emit_16(754); -emit_16(821); -emit_16(755); -emit_16(822); -emit_16(756); -emit_16(822); -emit_16(755); -emit_16(822); -emit_16(756); -emit_16(823); -emit_16(757); -emit_16(823); -emit_16(756); -emit_16(823); -emit_16(757); -emit_16(824); -emit_16(758); -emit_16(824); -emit_16(757); -emit_16(824); -emit_16(758); -emit_16(825); -emit_16(759); -emit_16(825); -emit_16(758); -emit_16(825); -emit_16(759); -emit_16(826); -emit_16(760); -emit_16(826); -emit_16(759); -emit_16(826); -emit_16(760); -emit_16(827); -emit_16(761); -emit_16(827); -emit_16(760); -emit_16(827); -emit_16(761); -emit_16(828); -emit_16(762); -emit_16(828); -emit_16(761); -emit_16(828); -emit_16(762); -emit_16(829); -emit_16(763); -emit_16(829); -emit_16(762); -emit_16(829); -emit_16(763); -emit_16(830); -emit_16(764); -emit_16(830); -emit_16(763); -emit_16(830); -emit_16(764); -emit_16(831); -emit_16(765); -emit_16(831); -emit_16(764); -emit_16(831); -emit_16(765); -emit_16(832); -emit_16(766); -emit_16(832); -emit_16(765); -emit_16(832); -emit_16(766); -emit_16(833); -emit_16(767); -emit_16(833); -emit_16(766); -emit_16(833); -emit_16(767); -emit_16(834); -emit_16(768); -emit_16(834); -emit_16(767); -emit_16(834); -emit_16(768); -emit_16(835); -emit_16(769); -emit_16(835); -emit_16(768); -emit_16(835); -emit_16(769); -emit_16(836); -emit_16(770); -emit_16(836); -emit_16(769); -emit_16(836); -emit_16(770); -emit_16(837); -emit_16(771); -emit_16(837); -emit_16(770); -emit_16(837); -emit_16(771); -emit_16(838); -emit_16(772); -emit_16(838); -emit_16(771); -emit_16(838); -emit_16(772); -emit_16(839); -emit_16(773); -emit_16(839); -emit_16(772); -emit_16(839); -emit_16(773); -emit_16(840); -emit_16(774); -emit_16(840); -emit_16(773); -emit_16(840); -emit_16(774); -emit_16(841); -emit_16(775); -emit_16(841); -emit_16(774); -emit_16(841); -emit_16(775); -emit_16(842); -emit_16(776); -emit_16(842); -emit_16(775); -emit_16(842); -emit_16(776); -emit_16(843); -emit_16(777); -emit_16(843); -emit_16(776); -emit_16(843); -emit_16(777); -emit_16(844); -emit_16(778); -emit_16(844); -emit_16(777); -emit_16(844); -emit_16(778); -emit_16(845); -emit_16(779); -emit_16(845); -emit_16(778); -emit_16(845); -emit_16(779); -emit_16(846); -emit_16(780); -emit_16(846); -emit_16(779); -emit_16(846); -emit_16(780); -emit_16(847); -emit_16(781); -emit_16(847); -emit_16(780); -emit_16(847); -emit_16(781); -emit_16(848); -emit_16(782); -emit_16(848); -emit_16(781); -emit_16(848); -emit_16(782); -emit_16(849); -emit_16(783); -emit_16(849); -emit_16(782); -emit_16(849); -emit_16(783); -emit_16(850); -emit_16(784); -emit_16(850); -emit_16(783); -emit_16(850); -emit_16(784); -emit_16(851); -emit_16(785); -emit_16(851); -emit_16(784); -emit_16(851); -emit_16(785); -emit_16(852); -emit_16(786); -emit_16(852); -emit_16(785); -emit_16(852); -emit_16(786); -emit_16(853); -emit_16(787); -emit_16(853); -emit_16(786); -emit_16(853); -emit_16(787); -emit_16(854); -emit_16(788); -emit_16(854); -emit_16(787); -emit_16(854); -emit_16(788); -emit_16(855); -emit_16(789); -emit_16(855); -emit_16(788); -emit_16(855); -emit_16(789); -emit_16(856); -emit_16(790); -emit_16(856); -emit_16(789); -emit_16(856); -emit_16(790); -emit_16(857); -emit_16(791); -emit_16(857); -emit_16(790); -emit_16(858); -emit_16(792); -emit_16(859); -emit_16(793); -emit_16(859); -emit_16(792); -emit_16(859); -emit_16(793); -emit_16(860); -emit_16(794); -emit_16(860); -emit_16(793); -emit_16(860); -emit_16(794); -emit_16(861); -emit_16(795); -emit_16(861); -emit_16(794); -emit_16(861); -emit_16(795); -emit_16(862); -emit_16(796); -emit_16(862); -emit_16(795); -emit_16(862); -emit_16(796); -emit_16(863); -emit_16(797); -emit_16(863); -emit_16(796); -emit_16(863); -emit_16(797); -emit_16(864); -emit_16(798); -emit_16(864); -emit_16(797); -emit_16(864); -emit_16(798); -emit_16(865); -emit_16(799); -emit_16(865); -emit_16(798); -emit_16(865); -emit_16(799); -emit_16(866); -emit_16(800); -emit_16(866); -emit_16(799); -emit_16(866); -emit_16(800); -emit_16(867); -emit_16(801); -emit_16(867); -emit_16(800); -emit_16(867); -emit_16(801); -emit_16(868); -emit_16(802); -emit_16(868); -emit_16(801); -emit_16(868); -emit_16(802); -emit_16(869); -emit_16(803); -emit_16(869); -emit_16(802); -emit_16(869); -emit_16(803); -emit_16(870); -emit_16(804); -emit_16(870); -emit_16(803); -emit_16(870); -emit_16(804); -emit_16(871); -emit_16(805); -emit_16(871); -emit_16(804); -emit_16(871); -emit_16(805); -emit_16(872); -emit_16(806); -emit_16(872); -emit_16(805); -emit_16(872); -emit_16(806); -emit_16(873); -emit_16(807); -emit_16(873); -emit_16(806); -emit_16(873); -emit_16(807); -emit_16(874); -emit_16(808); -emit_16(874); -emit_16(807); -emit_16(874); -emit_16(808); -emit_16(875); -emit_16(809); -emit_16(875); -emit_16(808); -emit_16(875); -emit_16(809); -emit_16(876); -emit_16(810); -emit_16(876); -emit_16(809); -emit_16(876); -emit_16(810); -emit_16(877); -emit_16(811); -emit_16(877); -emit_16(810); -emit_16(877); -emit_16(811); -emit_16(878); -emit_16(812); -emit_16(878); -emit_16(811); -emit_16(878); -emit_16(812); -emit_16(879); -emit_16(813); -emit_16(879); -emit_16(812); -emit_16(879); -emit_16(813); -emit_16(880); -emit_16(814); -emit_16(880); -emit_16(813); -emit_16(880); -emit_16(814); -emit_16(881); -emit_16(815); -emit_16(881); -emit_16(814); -emit_16(881); -emit_16(815); -emit_16(882); -emit_16(816); -emit_16(882); -emit_16(815); -emit_16(882); -emit_16(816); -emit_16(883); -emit_16(817); -emit_16(883); -emit_16(816); -emit_16(883); -emit_16(817); -emit_16(884); -emit_16(818); -emit_16(884); -emit_16(817); -emit_16(884); -emit_16(818); -emit_16(885); -emit_16(819); -emit_16(885); -emit_16(818); -emit_16(885); -emit_16(819); -emit_16(886); -emit_16(820); -emit_16(886); -emit_16(819); -emit_16(886); -emit_16(820); -emit_16(887); -emit_16(821); -emit_16(887); -emit_16(820); -emit_16(887); -emit_16(821); -emit_16(888); -emit_16(822); -emit_16(888); -emit_16(821); -emit_16(888); -emit_16(822); -emit_16(889); -emit_16(823); -emit_16(889); -emit_16(822); -emit_16(889); -emit_16(823); -emit_16(890); -emit_16(824); -emit_16(890); -emit_16(823); -emit_16(890); -emit_16(824); -emit_16(891); -emit_16(825); -emit_16(891); -emit_16(824); -emit_16(891); -emit_16(825); -emit_16(892); -emit_16(826); -emit_16(892); -emit_16(825); -emit_16(892); -emit_16(826); -emit_16(893); -emit_16(827); -emit_16(893); -emit_16(826); -emit_16(893); -emit_16(827); -emit_16(894); -emit_16(828); -emit_16(894); -emit_16(827); -emit_16(894); -emit_16(828); -emit_16(895); -emit_16(829); -emit_16(895); -emit_16(828); -emit_16(895); -emit_16(829); -emit_16(896); -emit_16(830); -emit_16(896); -emit_16(829); -emit_16(896); -emit_16(830); -emit_16(897); -emit_16(831); -emit_16(897); -emit_16(830); -emit_16(897); -emit_16(831); -emit_16(898); -emit_16(832); -emit_16(898); -emit_16(831); -emit_16(898); -emit_16(832); -emit_16(899); -emit_16(833); -emit_16(899); -emit_16(832); -emit_16(899); -emit_16(833); -emit_16(900); -emit_16(834); -emit_16(900); -emit_16(833); -emit_16(900); -emit_16(834); -emit_16(901); -emit_16(835); -emit_16(901); -emit_16(834); -emit_16(901); -emit_16(835); -emit_16(902); -emit_16(836); -emit_16(902); -emit_16(835); -emit_16(902); -emit_16(836); -emit_16(903); -emit_16(837); -emit_16(903); -emit_16(836); -emit_16(903); -emit_16(837); -emit_16(904); -emit_16(838); -emit_16(904); -emit_16(837); -emit_16(904); -emit_16(838); -emit_16(905); -emit_16(839); -emit_16(905); -emit_16(838); -emit_16(905); -emit_16(839); -emit_16(906); -emit_16(840); -emit_16(906); -emit_16(839); -emit_16(906); -emit_16(840); -emit_16(907); -emit_16(841); -emit_16(907); -emit_16(840); -emit_16(907); -emit_16(841); -emit_16(908); -emit_16(842); -emit_16(908); -emit_16(841); -emit_16(908); -emit_16(842); -emit_16(909); -emit_16(843); -emit_16(909); -emit_16(842); -emit_16(909); -emit_16(843); -emit_16(910); -emit_16(844); -emit_16(910); -emit_16(843); -emit_16(910); -emit_16(844); -emit_16(911); -emit_16(845); -emit_16(911); -emit_16(844); -emit_16(911); -emit_16(845); -emit_16(912); -emit_16(846); -emit_16(912); -emit_16(845); -emit_16(912); -emit_16(846); -emit_16(913); -emit_16(847); -emit_16(913); -emit_16(846); -emit_16(913); -emit_16(847); -emit_16(914); -emit_16(848); -emit_16(914); -emit_16(847); -emit_16(914); -emit_16(848); -emit_16(915); -emit_16(849); -emit_16(915); -emit_16(848); -emit_16(915); -emit_16(849); -emit_16(916); -emit_16(850); -emit_16(916); -emit_16(849); -emit_16(916); -emit_16(850); -emit_16(917); -emit_16(851); -emit_16(917); -emit_16(850); -emit_16(917); -emit_16(851); -emit_16(918); -emit_16(852); -emit_16(918); -emit_16(851); -emit_16(918); -emit_16(852); -emit_16(919); -emit_16(853); -emit_16(919); -emit_16(852); -emit_16(919); -emit_16(853); -emit_16(920); -emit_16(854); -emit_16(920); -emit_16(853); -emit_16(920); -emit_16(854); -emit_16(921); -emit_16(855); -emit_16(921); -emit_16(854); -emit_16(921); -emit_16(855); -emit_16(922); -emit_16(856); -emit_16(922); -emit_16(855); -emit_16(922); -emit_16(856); -emit_16(923); -emit_16(857); -emit_16(923); -emit_16(856); -emit_16(924); -emit_16(858); -emit_16(925); -emit_16(859); -emit_16(925); -emit_16(858); -emit_16(925); -emit_16(859); -emit_16(926); -emit_16(860); -emit_16(926); -emit_16(859); -emit_16(926); -emit_16(860); -emit_16(927); -emit_16(861); -emit_16(927); -emit_16(860); -emit_16(927); -emit_16(861); -emit_16(928); -emit_16(862); -emit_16(928); -emit_16(861); -emit_16(928); -emit_16(862); -emit_16(929); -emit_16(863); -emit_16(929); -emit_16(862); -emit_16(929); -emit_16(863); -emit_16(930); -emit_16(864); -emit_16(930); -emit_16(863); -emit_16(930); -emit_16(864); -emit_16(931); -emit_16(865); -emit_16(931); -emit_16(864); -emit_16(931); -emit_16(865); -emit_16(932); -emit_16(866); -emit_16(932); -emit_16(865); -emit_16(932); -emit_16(866); -emit_16(933); -emit_16(867); -emit_16(933); -emit_16(866); -emit_16(933); -emit_16(867); -emit_16(934); -emit_16(868); -emit_16(934); -emit_16(867); -emit_16(934); -emit_16(868); -emit_16(935); -emit_16(869); -emit_16(935); -emit_16(868); -emit_16(935); -emit_16(869); -emit_16(936); -emit_16(870); -emit_16(936); -emit_16(869); -emit_16(936); -emit_16(870); -emit_16(937); -emit_16(871); -emit_16(937); -emit_16(870); -emit_16(937); -emit_16(871); -emit_16(938); -emit_16(872); -emit_16(938); -emit_16(871); -emit_16(938); -emit_16(872); -emit_16(939); -emit_16(873); -emit_16(939); -emit_16(872); -emit_16(939); -emit_16(873); -emit_16(940); -emit_16(874); -emit_16(940); -emit_16(873); -emit_16(940); -emit_16(874); -emit_16(941); -emit_16(875); -emit_16(941); -emit_16(874); -emit_16(941); -emit_16(875); -emit_16(942); -emit_16(876); -emit_16(942); -emit_16(875); -emit_16(942); -emit_16(876); -emit_16(943); -emit_16(877); -emit_16(943); -emit_16(876); -emit_16(943); -emit_16(877); -emit_16(944); -emit_16(878); -emit_16(944); -emit_16(877); -emit_16(944); -emit_16(878); -emit_16(945); -emit_16(879); -emit_16(945); -emit_16(878); -emit_16(945); -emit_16(879); -emit_16(946); -emit_16(880); -emit_16(946); -emit_16(879); -emit_16(946); -emit_16(880); -emit_16(947); -emit_16(881); -emit_16(947); -emit_16(880); -emit_16(947); -emit_16(881); -emit_16(948); -emit_16(882); -emit_16(948); -emit_16(881); -emit_16(948); -emit_16(882); -emit_16(949); -emit_16(883); -emit_16(949); -emit_16(882); -emit_16(949); -emit_16(883); -emit_16(950); -emit_16(884); -emit_16(950); -emit_16(883); -emit_16(950); -emit_16(884); -emit_16(951); -emit_16(885); -emit_16(951); -emit_16(884); -emit_16(951); -emit_16(885); -emit_16(952); -emit_16(886); -emit_16(952); -emit_16(885); -emit_16(952); -emit_16(886); -emit_16(953); -emit_16(887); -emit_16(953); -emit_16(886); -emit_16(953); -emit_16(887); -emit_16(954); -emit_16(888); -emit_16(954); -emit_16(887); -emit_16(954); -emit_16(888); -emit_16(955); -emit_16(889); -emit_16(955); -emit_16(888); -emit_16(955); -emit_16(889); -emit_16(956); -emit_16(890); -emit_16(956); -emit_16(889); -emit_16(956); -emit_16(890); -emit_16(957); -emit_16(891); -emit_16(957); -emit_16(890); -emit_16(957); -emit_16(891); -emit_16(958); -emit_16(892); -emit_16(958); -emit_16(891); -emit_16(958); -emit_16(892); -emit_16(959); -emit_16(893); -emit_16(959); -emit_16(892); -emit_16(959); -emit_16(893); -emit_16(960); -emit_16(894); -emit_16(960); -emit_16(893); -emit_16(960); -emit_16(894); -emit_16(961); -emit_16(895); -emit_16(961); -emit_16(894); -emit_16(961); -emit_16(895); -emit_16(962); -emit_16(896); -emit_16(962); -emit_16(895); -emit_16(962); -emit_16(896); -emit_16(963); -emit_16(897); -emit_16(963); -emit_16(896); -emit_16(963); -emit_16(897); -emit_16(964); -emit_16(898); -emit_16(964); -emit_16(897); -emit_16(964); -emit_16(898); -emit_16(965); -emit_16(899); -emit_16(965); -emit_16(898); -emit_16(965); -emit_16(899); -emit_16(966); -emit_16(900); -emit_16(966); -emit_16(899); -emit_16(966); -emit_16(900); -emit_16(967); -emit_16(901); -emit_16(967); -emit_16(900); -emit_16(967); -emit_16(901); -emit_16(968); -emit_16(902); -emit_16(968); -emit_16(901); -emit_16(968); -emit_16(902); -emit_16(969); -emit_16(903); -emit_16(969); -emit_16(902); -emit_16(969); -emit_16(903); -emit_16(970); -emit_16(904); -emit_16(970); -emit_16(903); -emit_16(970); -emit_16(904); -emit_16(971); -emit_16(905); -emit_16(971); -emit_16(904); -emit_16(971); -emit_16(905); -emit_16(972); -emit_16(906); -emit_16(972); -emit_16(905); -emit_16(972); -emit_16(906); -emit_16(973); -emit_16(907); -emit_16(973); -emit_16(906); -emit_16(973); -emit_16(907); -emit_16(974); -emit_16(908); -emit_16(974); -emit_16(907); -emit_16(974); -emit_16(908); -emit_16(975); -emit_16(909); -emit_16(975); -emit_16(908); -emit_16(975); -emit_16(909); -emit_16(976); -emit_16(910); -emit_16(976); -emit_16(909); -emit_16(976); -emit_16(910); -emit_16(977); -emit_16(911); -emit_16(977); -emit_16(910); -emit_16(977); -emit_16(911); -emit_16(978); -emit_16(912); -emit_16(978); -emit_16(911); -emit_16(978); -emit_16(912); -emit_16(979); -emit_16(913); -emit_16(979); -emit_16(912); -emit_16(979); -emit_16(913); -emit_16(980); -emit_16(914); -emit_16(980); -emit_16(913); -emit_16(980); -emit_16(914); -emit_16(981); -emit_16(915); -emit_16(981); -emit_16(914); -emit_16(981); -emit_16(915); -emit_16(982); -emit_16(916); -emit_16(982); -emit_16(915); -emit_16(982); -emit_16(916); -emit_16(983); -emit_16(917); -emit_16(983); -emit_16(916); -emit_16(983); -emit_16(917); -emit_16(984); -emit_16(918); -emit_16(984); -emit_16(917); -emit_16(984); -emit_16(918); -emit_16(985); -emit_16(919); -emit_16(985); -emit_16(918); -emit_16(985); -emit_16(919); -emit_16(986); -emit_16(920); -emit_16(986); -emit_16(919); -emit_16(986); -emit_16(920); -emit_16(987); -emit_16(921); -emit_16(987); -emit_16(920); -emit_16(987); -emit_16(921); -emit_16(988); -emit_16(922); -emit_16(988); -emit_16(921); -emit_16(988); -emit_16(922); -emit_16(989); -emit_16(923); -emit_16(989); -emit_16(922); -emit_16(990); -emit_16(924); -emit_16(991); -emit_16(925); -emit_16(991); -emit_16(924); -emit_16(991); -emit_16(925); -emit_16(992); -emit_16(926); -emit_16(992); -emit_16(925); -emit_16(992); -emit_16(926); -emit_16(993); -emit_16(927); -emit_16(993); -emit_16(926); -emit_16(993); -emit_16(927); -emit_16(994); -emit_16(928); -emit_16(994); -emit_16(927); -emit_16(994); -emit_16(928); -emit_16(995); -emit_16(929); -emit_16(995); -emit_16(928); -emit_16(995); -emit_16(929); -emit_16(996); -emit_16(930); -emit_16(996); -emit_16(929); -emit_16(996); -emit_16(930); -emit_16(997); -emit_16(931); -emit_16(997); -emit_16(930); -emit_16(997); -emit_16(931); -emit_16(998); -emit_16(932); -emit_16(998); -emit_16(931); -emit_16(998); -emit_16(932); -emit_16(999); -emit_16(933); -emit_16(999); -emit_16(932); -emit_16(999); -emit_16(933); -emit_16(1000); -emit_16(934); -emit_16(1000); -emit_16(933); -emit_16(1000); -emit_16(934); -emit_16(1001); -emit_16(935); -emit_16(1001); -emit_16(934); -emit_16(1001); -emit_16(935); -emit_16(1002); -emit_16(936); -emit_16(1002); -emit_16(935); -emit_16(1002); -emit_16(936); -emit_16(1003); -emit_16(937); -emit_16(1003); -emit_16(936); -emit_16(1003); -emit_16(937); -emit_16(1004); -emit_16(938); -emit_16(1004); -emit_16(937); -emit_16(1004); -emit_16(938); -emit_16(1005); -emit_16(939); -emit_16(1005); -emit_16(938); -emit_16(1005); -emit_16(939); -emit_16(1006); -emit_16(940); -emit_16(1006); -emit_16(939); -emit_16(1006); -emit_16(940); -emit_16(1007); -emit_16(941); -emit_16(1007); -emit_16(940); -emit_16(1007); -emit_16(941); -emit_16(1008); -emit_16(942); -emit_16(1008); -emit_16(941); -emit_16(1008); -emit_16(942); -emit_16(1009); -emit_16(943); -emit_16(1009); -emit_16(942); -emit_16(1009); -emit_16(943); -emit_16(1010); -emit_16(944); -emit_16(1010); -emit_16(943); -emit_16(1010); -emit_16(944); -emit_16(1011); -emit_16(945); -emit_16(1011); -emit_16(944); -emit_16(1011); -emit_16(945); -emit_16(1012); -emit_16(946); -emit_16(1012); -emit_16(945); -emit_16(1012); -emit_16(946); -emit_16(1013); -emit_16(947); -emit_16(1013); -emit_16(946); -emit_16(1013); -emit_16(947); -emit_16(1014); -emit_16(948); -emit_16(1014); -emit_16(947); -emit_16(1014); -emit_16(948); -emit_16(1015); -emit_16(949); -emit_16(1015); -emit_16(948); -emit_16(1015); -emit_16(949); -emit_16(1016); -emit_16(950); -emit_16(1016); -emit_16(949); -emit_16(1016); -emit_16(950); -emit_16(1017); -emit_16(951); -emit_16(1017); -emit_16(950); -emit_16(1017); -emit_16(951); -emit_16(1018); -emit_16(952); -emit_16(1018); -emit_16(951); -emit_16(1018); -emit_16(952); -emit_16(1019); -emit_16(953); -emit_16(1019); -emit_16(952); -emit_16(1019); -emit_16(953); -emit_16(1020); -emit_16(954); -emit_16(1020); -emit_16(953); -emit_16(1020); -emit_16(954); -emit_16(1021); -emit_16(955); -emit_16(1021); -emit_16(954); -emit_16(1021); -emit_16(955); -emit_16(1022); -emit_16(956); -emit_16(1022); -emit_16(955); -emit_16(1022); -emit_16(956); -emit_16(1023); -emit_16(957); -emit_16(1023); -emit_16(956); -emit_16(1023); -emit_16(957); -emit_16(1024); -emit_16(958); -emit_16(1024); -emit_16(957); -emit_16(1024); -emit_16(958); -emit_16(1025); -emit_16(959); -emit_16(1025); -emit_16(958); -emit_16(1025); -emit_16(959); -emit_16(1026); -emit_16(960); -emit_16(1026); -emit_16(959); -emit_16(1026); -emit_16(960); -emit_16(1027); -emit_16(961); -emit_16(1027); -emit_16(960); -emit_16(1027); -emit_16(961); -emit_16(1028); -emit_16(962); -emit_16(1028); -emit_16(961); -emit_16(1028); -emit_16(962); -emit_16(1029); -emit_16(963); -emit_16(1029); -emit_16(962); -emit_16(1029); -emit_16(963); -emit_16(1030); -emit_16(964); -emit_16(1030); -emit_16(963); -emit_16(1030); -emit_16(964); -emit_16(1031); -emit_16(965); -emit_16(1031); -emit_16(964); -emit_16(1031); -emit_16(965); -emit_16(1032); -emit_16(966); -emit_16(1032); -emit_16(965); -emit_16(1032); -emit_16(966); -emit_16(1033); -emit_16(967); -emit_16(1033); -emit_16(966); -emit_16(1033); -emit_16(967); -emit_16(1034); -emit_16(968); -emit_16(1034); -emit_16(967); -emit_16(1034); -emit_16(968); -emit_16(1035); -emit_16(969); -emit_16(1035); -emit_16(968); -emit_16(1035); -emit_16(969); -emit_16(1036); -emit_16(970); -emit_16(1036); -emit_16(969); -emit_16(1036); -emit_16(970); -emit_16(1037); -emit_16(971); -emit_16(1037); -emit_16(970); -emit_16(1037); -emit_16(971); -emit_16(1038); -emit_16(972); -emit_16(1038); -emit_16(971); -emit_16(1038); -emit_16(972); -emit_16(1039); -emit_16(973); -emit_16(1039); -emit_16(972); -emit_16(1039); -emit_16(973); -emit_16(1040); -emit_16(974); -emit_16(1040); -emit_16(973); -emit_16(1040); -emit_16(974); -emit_16(1041); -emit_16(975); -emit_16(1041); -emit_16(974); -emit_16(1041); -emit_16(975); -emit_16(1042); -emit_16(976); -emit_16(1042); -emit_16(975); -emit_16(1042); -emit_16(976); -emit_16(1043); -emit_16(977); -emit_16(1043); -emit_16(976); -emit_16(1043); -emit_16(977); -emit_16(1044); -emit_16(978); -emit_16(1044); -emit_16(977); -emit_16(1044); -emit_16(978); -emit_16(1045); -emit_16(979); -emit_16(1045); -emit_16(978); -emit_16(1045); -emit_16(979); -emit_16(1046); -emit_16(980); -emit_16(1046); -emit_16(979); -emit_16(1046); -emit_16(980); -emit_16(1047); -emit_16(981); -emit_16(1047); -emit_16(980); -emit_16(1047); -emit_16(981); -emit_16(1048); -emit_16(982); -emit_16(1048); -emit_16(981); -emit_16(1048); -emit_16(982); -emit_16(1049); -emit_16(983); -emit_16(1049); -emit_16(982); -emit_16(1049); -emit_16(983); -emit_16(1050); -emit_16(984); -emit_16(1050); -emit_16(983); -emit_16(1050); -emit_16(984); -emit_16(1051); -emit_16(985); -emit_16(1051); -emit_16(984); -emit_16(1051); -emit_16(985); -emit_16(1052); -emit_16(986); -emit_16(1052); -emit_16(985); -emit_16(1052); -emit_16(986); -emit_16(1053); -emit_16(987); -emit_16(1053); -emit_16(986); -emit_16(1053); -emit_16(987); -emit_16(1054); -emit_16(988); -emit_16(1054); -emit_16(987); -emit_16(1054); -emit_16(988); -emit_16(1055); -emit_16(989); -emit_16(1055); -emit_16(988); -emit_16(1056); -emit_16(990); -emit_16(1057); -emit_16(991); -emit_16(1057); -emit_16(990); -emit_16(1057); -emit_16(991); -emit_16(1058); -emit_16(992); -emit_16(1058); -emit_16(991); -emit_16(1058); -emit_16(992); -emit_16(1059); -emit_16(993); -emit_16(1059); -emit_16(992); -emit_16(1059); -emit_16(993); -emit_16(1060); -emit_16(994); -emit_16(1060); -emit_16(993); -emit_16(1060); -emit_16(994); -emit_16(1061); -emit_16(995); -emit_16(1061); -emit_16(994); -emit_16(1061); -emit_16(995); -emit_16(1062); -emit_16(996); -emit_16(1062); -emit_16(995); -emit_16(1062); -emit_16(996); -emit_16(1063); -emit_16(997); -emit_16(1063); -emit_16(996); -emit_16(1063); -emit_16(997); -emit_16(1064); -emit_16(998); -emit_16(1064); -emit_16(997); -emit_16(1064); -emit_16(998); -emit_16(1065); -emit_16(999); -emit_16(1065); -emit_16(998); -emit_16(1065); -emit_16(999); -emit_16(1066); -emit_16(1000); -emit_16(1066); -emit_16(999); -emit_16(1066); -emit_16(1000); -emit_16(1067); -emit_16(1001); -emit_16(1067); -emit_16(1000); -emit_16(1067); -emit_16(1001); -emit_16(1068); -emit_16(1002); -emit_16(1068); -emit_16(1001); -emit_16(1068); -emit_16(1002); -emit_16(1069); -emit_16(1003); -emit_16(1069); -emit_16(1002); -emit_16(1069); -emit_16(1003); -emit_16(1070); -emit_16(1004); -emit_16(1070); -emit_16(1003); -emit_16(1070); -emit_16(1004); -emit_16(1071); -emit_16(1005); -emit_16(1071); -emit_16(1004); -emit_16(1071); -emit_16(1005); -emit_16(1072); -emit_16(1006); -emit_16(1072); -emit_16(1005); -emit_16(1072); -emit_16(1006); -emit_16(1073); -emit_16(1007); -emit_16(1073); -emit_16(1006); -emit_16(1073); -emit_16(1007); -emit_16(1074); -emit_16(1008); -emit_16(1074); -emit_16(1007); -emit_16(1074); -emit_16(1008); -emit_16(1075); -emit_16(1009); -emit_16(1075); -emit_16(1008); -emit_16(1075); -emit_16(1009); -emit_16(1076); -emit_16(1010); -emit_16(1076); -emit_16(1009); -emit_16(1076); -emit_16(1010); -emit_16(1077); -emit_16(1011); -emit_16(1077); -emit_16(1010); -emit_16(1077); -emit_16(1011); -emit_16(1078); -emit_16(1012); -emit_16(1078); -emit_16(1011); -emit_16(1078); -emit_16(1012); -emit_16(1079); -emit_16(1013); -emit_16(1079); -emit_16(1012); -emit_16(1079); -emit_16(1013); -emit_16(1080); -emit_16(1014); -emit_16(1080); -emit_16(1013); -emit_16(1080); -emit_16(1014); -emit_16(1081); -emit_16(1015); -emit_16(1081); -emit_16(1014); -emit_16(1081); -emit_16(1015); -emit_16(1082); -emit_16(1016); -emit_16(1082); -emit_16(1015); -emit_16(1082); -emit_16(1016); -emit_16(1083); -emit_16(1017); -emit_16(1083); -emit_16(1016); -emit_16(1083); -emit_16(1017); -emit_16(1084); -emit_16(1018); -emit_16(1084); -emit_16(1017); -emit_16(1084); -emit_16(1018); -emit_16(1085); -emit_16(1019); -emit_16(1085); -emit_16(1018); -emit_16(1085); -emit_16(1019); -emit_16(1086); -emit_16(1020); -emit_16(1086); -emit_16(1019); -emit_16(1086); -emit_16(1020); -emit_16(1087); -emit_16(1021); -emit_16(1087); -emit_16(1020); -emit_16(1087); -emit_16(1021); -emit_16(1088); -emit_16(1022); -emit_16(1088); -emit_16(1021); -emit_16(1088); -emit_16(1022); -emit_16(1089); -emit_16(1023); -emit_16(1089); -emit_16(1022); -emit_16(1089); -emit_16(1023); -emit_16(1090); -emit_16(1024); -emit_16(1090); -emit_16(1023); -emit_16(1090); -emit_16(1024); -emit_16(1091); -emit_16(1025); -emit_16(1091); -emit_16(1024); -emit_16(1091); -emit_16(1025); -emit_16(1092); -emit_16(1026); -emit_16(1092); -emit_16(1025); -emit_16(1092); -emit_16(1026); -emit_16(1093); -emit_16(1027); -emit_16(1093); -emit_16(1026); -emit_16(1093); -emit_16(1027); -emit_16(1094); -emit_16(1028); -emit_16(1094); -emit_16(1027); -emit_16(1094); -emit_16(1028); -emit_16(1095); -emit_16(1029); -emit_16(1095); -emit_16(1028); -emit_16(1095); -emit_16(1029); -emit_16(1096); -emit_16(1030); -emit_16(1096); -emit_16(1029); -emit_16(1096); -emit_16(1030); -emit_16(1097); -emit_16(1031); -emit_16(1097); -emit_16(1030); -emit_16(1097); -emit_16(1031); -emit_16(1098); -emit_16(1032); -emit_16(1098); -emit_16(1031); -emit_16(1098); -emit_16(1032); -emit_16(1099); -emit_16(1033); -emit_16(1099); -emit_16(1032); -emit_16(1099); -emit_16(1033); -emit_16(1100); -emit_16(1034); -emit_16(1100); -emit_16(1033); -emit_16(1100); -emit_16(1034); -emit_16(1101); -emit_16(1035); -emit_16(1101); -emit_16(1034); -emit_16(1101); -emit_16(1035); -emit_16(1102); -emit_16(1036); -emit_16(1102); -emit_16(1035); -emit_16(1102); -emit_16(1036); -emit_16(1103); -emit_16(1037); -emit_16(1103); -emit_16(1036); -emit_16(1103); -emit_16(1037); -emit_16(1104); -emit_16(1038); -emit_16(1104); -emit_16(1037); -emit_16(1104); -emit_16(1038); -emit_16(1105); -emit_16(1039); -emit_16(1105); -emit_16(1038); -emit_16(1105); -emit_16(1039); -emit_16(1106); -emit_16(1040); -emit_16(1106); -emit_16(1039); -emit_16(1106); -emit_16(1040); -emit_16(1107); -emit_16(1041); -emit_16(1107); -emit_16(1040); -emit_16(1107); -emit_16(1041); -emit_16(1108); -emit_16(1042); -emit_16(1108); -emit_16(1041); -emit_16(1108); -emit_16(1042); -emit_16(1109); -emit_16(1043); -emit_16(1109); -emit_16(1042); -emit_16(1109); -emit_16(1043); -emit_16(1110); -emit_16(1044); -emit_16(1110); -emit_16(1043); -emit_16(1110); -emit_16(1044); -emit_16(1111); -emit_16(1045); -emit_16(1111); -emit_16(1044); -emit_16(1111); -emit_16(1045); -emit_16(1112); -emit_16(1046); -emit_16(1112); -emit_16(1045); -emit_16(1112); -emit_16(1046); -emit_16(1113); -emit_16(1047); -emit_16(1113); -emit_16(1046); -emit_16(1113); -emit_16(1047); -emit_16(1114); -emit_16(1048); -emit_16(1114); -emit_16(1047); -emit_16(1114); -emit_16(1048); -emit_16(1115); -emit_16(1049); -emit_16(1115); -emit_16(1048); -emit_16(1115); -emit_16(1049); -emit_16(1116); -emit_16(1050); -emit_16(1116); -emit_16(1049); -emit_16(1116); -emit_16(1050); -emit_16(1117); -emit_16(1051); -emit_16(1117); -emit_16(1050); -emit_16(1117); -emit_16(1051); -emit_16(1118); -emit_16(1052); -emit_16(1118); -emit_16(1051); -emit_16(1118); -emit_16(1052); -emit_16(1119); -emit_16(1053); -emit_16(1119); -emit_16(1052); -emit_16(1119); -emit_16(1053); -emit_16(1120); -emit_16(1054); -emit_16(1120); -emit_16(1053); -emit_16(1120); -emit_16(1054); -emit_16(1121); -emit_16(1055); -emit_16(1121); -emit_16(1054); -emit_16(1122); -emit_16(1056); -emit_16(1123); -emit_16(1057); -emit_16(1123); -emit_16(1056); -emit_16(1123); -emit_16(1057); -emit_16(1124); -emit_16(1058); -emit_16(1124); -emit_16(1057); -emit_16(1124); -emit_16(1058); -emit_16(1125); -emit_16(1059); -emit_16(1125); -emit_16(1058); -emit_16(1125); -emit_16(1059); -emit_16(1126); -emit_16(1060); -emit_16(1126); -emit_16(1059); -emit_16(1126); -emit_16(1060); -emit_16(1127); -emit_16(1061); -emit_16(1127); -emit_16(1060); -emit_16(1127); -emit_16(1061); -emit_16(1128); -emit_16(1062); -emit_16(1128); -emit_16(1061); -emit_16(1128); -emit_16(1062); -emit_16(1129); -emit_16(1063); -emit_16(1129); -emit_16(1062); -emit_16(1129); -emit_16(1063); -emit_16(1130); -emit_16(1064); -emit_16(1130); -emit_16(1063); -emit_16(1130); -emit_16(1064); -emit_16(1131); -emit_16(1065); -emit_16(1131); -emit_16(1064); -emit_16(1131); -emit_16(1065); -emit_16(1132); -emit_16(1066); -emit_16(1132); -emit_16(1065); -emit_16(1132); -emit_16(1066); -emit_16(1133); -emit_16(1067); -emit_16(1133); -emit_16(1066); -emit_16(1133); -emit_16(1067); -emit_16(1134); -emit_16(1068); -emit_16(1134); -emit_16(1067); -emit_16(1134); -emit_16(1068); -emit_16(1135); -emit_16(1069); -emit_16(1135); -emit_16(1068); -emit_16(1135); -emit_16(1069); -emit_16(1136); -emit_16(1070); -emit_16(1136); -emit_16(1069); -emit_16(1136); -emit_16(1070); -emit_16(1137); -emit_16(1071); -emit_16(1137); -emit_16(1070); -emit_16(1137); -emit_16(1071); -emit_16(1138); -emit_16(1072); -emit_16(1138); -emit_16(1071); -emit_16(1138); -emit_16(1072); -emit_16(1139); -emit_16(1073); -emit_16(1139); -emit_16(1072); -emit_16(1139); -emit_16(1073); -emit_16(1140); -emit_16(1074); -emit_16(1140); -emit_16(1073); -emit_16(1140); -emit_16(1074); -emit_16(1141); -emit_16(1075); -emit_16(1141); -emit_16(1074); -emit_16(1141); -emit_16(1075); -emit_16(1142); -emit_16(1076); -emit_16(1142); -emit_16(1075); -emit_16(1142); -emit_16(1076); -emit_16(1143); -emit_16(1077); -emit_16(1143); -emit_16(1076); -emit_16(1143); -emit_16(1077); -emit_16(1144); -emit_16(1078); -emit_16(1144); -emit_16(1077); -emit_16(1144); -emit_16(1078); -emit_16(1145); -emit_16(1079); -emit_16(1145); -emit_16(1078); -emit_16(1145); -emit_16(1079); -emit_16(1146); -emit_16(1080); -emit_16(1146); -emit_16(1079); -emit_16(1146); -emit_16(1080); -emit_16(1147); -emit_16(1081); -emit_16(1147); -emit_16(1080); -emit_16(1147); -emit_16(1081); -emit_16(1148); -emit_16(1082); -emit_16(1148); -emit_16(1081); -emit_16(1148); -emit_16(1082); -emit_16(1149); -emit_16(1083); -emit_16(1149); -emit_16(1082); -emit_16(1149); -emit_16(1083); -emit_16(1150); -emit_16(1084); -emit_16(1150); -emit_16(1083); -emit_16(1150); -emit_16(1084); -emit_16(1151); -emit_16(1085); -emit_16(1151); -emit_16(1084); -emit_16(1151); -emit_16(1085); -emit_16(1152); -emit_16(1086); -emit_16(1152); -emit_16(1085); -emit_16(1152); -emit_16(1086); -emit_16(1153); -emit_16(1087); -emit_16(1153); -emit_16(1086); -emit_16(1153); -emit_16(1087); -emit_16(1154); -emit_16(1088); -emit_16(1154); -emit_16(1087); -emit_16(1154); -emit_16(1088); -emit_16(1155); -emit_16(1089); -emit_16(1155); -emit_16(1088); -emit_16(1155); -emit_16(1089); -emit_16(1156); -emit_16(1090); -emit_16(1156); -emit_16(1089); -emit_16(1156); -emit_16(1090); -emit_16(1157); -emit_16(1091); -emit_16(1157); -emit_16(1090); -emit_16(1157); -emit_16(1091); -emit_16(1158); -emit_16(1092); -emit_16(1158); -emit_16(1091); -emit_16(1158); -emit_16(1092); -emit_16(1159); -emit_16(1093); -emit_16(1159); -emit_16(1092); -emit_16(1159); -emit_16(1093); -emit_16(1160); -emit_16(1094); -emit_16(1160); -emit_16(1093); -emit_16(1160); -emit_16(1094); -emit_16(1161); -emit_16(1095); -emit_16(1161); -emit_16(1094); -emit_16(1161); -emit_16(1095); -emit_16(1162); -emit_16(1096); -emit_16(1162); -emit_16(1095); -emit_16(1162); -emit_16(1096); -emit_16(1163); -emit_16(1097); -emit_16(1163); -emit_16(1096); -emit_16(1163); -emit_16(1097); -emit_16(1164); -emit_16(1098); -emit_16(1164); -emit_16(1097); -emit_16(1164); -emit_16(1098); -emit_16(1165); -emit_16(1099); -emit_16(1165); -emit_16(1098); -emit_16(1165); -emit_16(1099); -emit_16(1166); -emit_16(1100); -emit_16(1166); -emit_16(1099); -emit_16(1166); -emit_16(1100); -emit_16(1167); -emit_16(1101); -emit_16(1167); -emit_16(1100); -emit_16(1167); -emit_16(1101); -emit_16(1168); -emit_16(1102); -emit_16(1168); -emit_16(1101); -emit_16(1168); -emit_16(1102); -emit_16(1169); -emit_16(1103); -emit_16(1169); -emit_16(1102); -emit_16(1169); -emit_16(1103); -emit_16(1170); -emit_16(1104); -emit_16(1170); -emit_16(1103); -emit_16(1170); -emit_16(1104); -emit_16(1171); -emit_16(1105); -emit_16(1171); -emit_16(1104); -emit_16(1171); -emit_16(1105); -emit_16(1172); -emit_16(1106); -emit_16(1172); -emit_16(1105); -emit_16(1172); -emit_16(1106); -emit_16(1173); -emit_16(1107); -emit_16(1173); -emit_16(1106); -emit_16(1173); -emit_16(1107); -emit_16(1174); -emit_16(1108); -emit_16(1174); -emit_16(1107); -emit_16(1174); -emit_16(1108); -emit_16(1175); -emit_16(1109); -emit_16(1175); -emit_16(1108); -emit_16(1175); -emit_16(1109); -emit_16(1176); -emit_16(1110); -emit_16(1176); -emit_16(1109); -emit_16(1176); -emit_16(1110); -emit_16(1177); -emit_16(1111); -emit_16(1177); -emit_16(1110); -emit_16(1177); -emit_16(1111); -emit_16(1178); -emit_16(1112); -emit_16(1178); -emit_16(1111); -emit_16(1178); -emit_16(1112); -emit_16(1179); -emit_16(1113); -emit_16(1179); -emit_16(1112); -emit_16(1179); -emit_16(1113); -emit_16(1180); -emit_16(1114); -emit_16(1180); -emit_16(1113); -emit_16(1180); -emit_16(1114); -emit_16(1181); -emit_16(1115); -emit_16(1181); -emit_16(1114); -emit_16(1181); -emit_16(1115); -emit_16(1182); -emit_16(1116); -emit_16(1182); -emit_16(1115); -emit_16(1182); -emit_16(1116); -emit_16(1183); -emit_16(1117); -emit_16(1183); -emit_16(1116); -emit_16(1183); -emit_16(1117); -emit_16(1184); -emit_16(1118); -emit_16(1184); -emit_16(1117); -emit_16(1184); -emit_16(1118); -emit_16(1185); -emit_16(1119); -emit_16(1185); -emit_16(1118); -emit_16(1185); -emit_16(1119); -emit_16(1186); -emit_16(1120); -emit_16(1186); -emit_16(1119); -emit_16(1186); -emit_16(1120); -emit_16(1187); -emit_16(1121); -emit_16(1187); -emit_16(1120); -emit_16(1188); -emit_16(1122); -emit_16(1189); -emit_16(1123); -emit_16(1189); -emit_16(1122); -emit_16(1189); -emit_16(1123); -emit_16(1190); -emit_16(1124); -emit_16(1190); -emit_16(1123); -emit_16(1190); -emit_16(1124); -emit_16(1191); -emit_16(1125); -emit_16(1191); -emit_16(1124); -emit_16(1191); -emit_16(1125); -emit_16(1192); -emit_16(1126); -emit_16(1192); -emit_16(1125); -emit_16(1192); -emit_16(1126); -emit_16(1193); -emit_16(1127); -emit_16(1193); -emit_16(1126); -emit_16(1193); -emit_16(1127); -emit_16(1194); -emit_16(1128); -emit_16(1194); -emit_16(1127); -emit_16(1194); -emit_16(1128); -emit_16(1195); -emit_16(1129); -emit_16(1195); -emit_16(1128); -emit_16(1195); -emit_16(1129); -emit_16(1196); -emit_16(1130); -emit_16(1196); -emit_16(1129); -emit_16(1196); -emit_16(1130); -emit_16(1197); -emit_16(1131); -emit_16(1197); -emit_16(1130); -emit_16(1197); -emit_16(1131); -emit_16(1198); -emit_16(1132); -emit_16(1198); -emit_16(1131); -emit_16(1198); -emit_16(1132); -emit_16(1199); -emit_16(1133); -emit_16(1199); -emit_16(1132); -emit_16(1199); -emit_16(1133); -emit_16(1200); -emit_16(1134); -emit_16(1200); -emit_16(1133); -emit_16(1200); -emit_16(1134); -emit_16(1201); -emit_16(1135); -emit_16(1201); -emit_16(1134); -emit_16(1201); -emit_16(1135); -emit_16(1202); -emit_16(1136); -emit_16(1202); -emit_16(1135); -emit_16(1202); -emit_16(1136); -emit_16(1203); -emit_16(1137); -emit_16(1203); -emit_16(1136); -emit_16(1203); -emit_16(1137); -emit_16(1204); -emit_16(1138); -emit_16(1204); -emit_16(1137); -emit_16(1204); -emit_16(1138); -emit_16(1205); -emit_16(1139); -emit_16(1205); -emit_16(1138); -emit_16(1205); -emit_16(1139); -emit_16(1206); -emit_16(1140); -emit_16(1206); -emit_16(1139); -emit_16(1206); -emit_16(1140); -emit_16(1207); -emit_16(1141); -emit_16(1207); -emit_16(1140); -emit_16(1207); -emit_16(1141); -emit_16(1208); -emit_16(1142); -emit_16(1208); -emit_16(1141); -emit_16(1208); -emit_16(1142); -emit_16(1209); -emit_16(1143); -emit_16(1209); -emit_16(1142); -emit_16(1209); -emit_16(1143); -emit_16(1210); -emit_16(1144); -emit_16(1210); -emit_16(1143); -emit_16(1210); -emit_16(1144); -emit_16(1211); -emit_16(1145); -emit_16(1211); -emit_16(1144); -emit_16(1211); -emit_16(1145); -emit_16(1212); -emit_16(1146); -emit_16(1212); -emit_16(1145); -emit_16(1212); -emit_16(1146); -emit_16(1213); -emit_16(1147); -emit_16(1213); -emit_16(1146); -emit_16(1213); -emit_16(1147); -emit_16(1214); -emit_16(1148); -emit_16(1214); -emit_16(1147); -emit_16(1214); -emit_16(1148); -emit_16(1215); -emit_16(1149); -emit_16(1215); -emit_16(1148); -emit_16(1215); -emit_16(1149); -emit_16(1216); -emit_16(1150); -emit_16(1216); -emit_16(1149); -emit_16(1216); -emit_16(1150); -emit_16(1217); -emit_16(1151); -emit_16(1217); -emit_16(1150); -emit_16(1217); -emit_16(1151); -emit_16(1218); -emit_16(1152); -emit_16(1218); -emit_16(1151); -emit_16(1218); -emit_16(1152); -emit_16(1219); -emit_16(1153); -emit_16(1219); -emit_16(1152); -emit_16(1219); -emit_16(1153); -emit_16(1220); -emit_16(1154); -emit_16(1220); -emit_16(1153); -emit_16(1220); -emit_16(1154); -emit_16(1221); -emit_16(1155); -emit_16(1221); -emit_16(1154); -emit_16(1221); -emit_16(1155); -emit_16(1222); -emit_16(1156); -emit_16(1222); -emit_16(1155); -emit_16(1222); -emit_16(1156); -emit_16(1223); -emit_16(1157); -emit_16(1223); -emit_16(1156); -emit_16(1223); -emit_16(1157); -emit_16(1224); -emit_16(1158); -emit_16(1224); -emit_16(1157); -emit_16(1224); -emit_16(1158); -emit_16(1225); -emit_16(1159); -emit_16(1225); -emit_16(1158); -emit_16(1225); -emit_16(1159); -emit_16(1226); -emit_16(1160); -emit_16(1226); -emit_16(1159); -emit_16(1226); -emit_16(1160); -emit_16(1227); -emit_16(1161); -emit_16(1227); -emit_16(1160); -emit_16(1227); -emit_16(1161); -emit_16(1228); -emit_16(1162); -emit_16(1228); -emit_16(1161); -emit_16(1228); -emit_16(1162); -emit_16(1229); -emit_16(1163); -emit_16(1229); -emit_16(1162); -emit_16(1229); -emit_16(1163); -emit_16(1230); -emit_16(1164); -emit_16(1230); -emit_16(1163); -emit_16(1230); -emit_16(1164); -emit_16(1231); -emit_16(1165); -emit_16(1231); -emit_16(1164); -emit_16(1231); -emit_16(1165); -emit_16(1232); -emit_16(1166); -emit_16(1232); -emit_16(1165); -emit_16(1232); -emit_16(1166); -emit_16(1233); -emit_16(1167); -emit_16(1233); -emit_16(1166); -emit_16(1233); -emit_16(1167); -emit_16(1234); -emit_16(1168); -emit_16(1234); -emit_16(1167); -emit_16(1234); -emit_16(1168); -emit_16(1235); -emit_16(1169); -emit_16(1235); -emit_16(1168); -emit_16(1235); -emit_16(1169); -emit_16(1236); -emit_16(1170); -emit_16(1236); -emit_16(1169); -emit_16(1236); -emit_16(1170); -emit_16(1237); -emit_16(1171); -emit_16(1237); -emit_16(1170); -emit_16(1237); -emit_16(1171); -emit_16(1238); -emit_16(1172); -emit_16(1238); -emit_16(1171); -emit_16(1238); -emit_16(1172); -emit_16(1239); -emit_16(1173); -emit_16(1239); -emit_16(1172); -emit_16(1239); -emit_16(1173); -emit_16(1240); -emit_16(1174); -emit_16(1240); -emit_16(1173); -emit_16(1240); -emit_16(1174); -emit_16(1241); -emit_16(1175); -emit_16(1241); -emit_16(1174); -emit_16(1241); -emit_16(1175); -emit_16(1242); -emit_16(1176); -emit_16(1242); -emit_16(1175); -emit_16(1242); -emit_16(1176); -emit_16(1243); -emit_16(1177); -emit_16(1243); -emit_16(1176); -emit_16(1243); -emit_16(1177); -emit_16(1244); -emit_16(1178); -emit_16(1244); -emit_16(1177); -emit_16(1244); -emit_16(1178); -emit_16(1245); -emit_16(1179); -emit_16(1245); -emit_16(1178); -emit_16(1245); -emit_16(1179); -emit_16(1246); -emit_16(1180); -emit_16(1246); -emit_16(1179); -emit_16(1246); -emit_16(1180); -emit_16(1247); -emit_16(1181); -emit_16(1247); -emit_16(1180); -emit_16(1247); -emit_16(1181); -emit_16(1248); -emit_16(1182); -emit_16(1248); -emit_16(1181); -emit_16(1248); -emit_16(1182); -emit_16(1249); -emit_16(1183); -emit_16(1249); -emit_16(1182); -emit_16(1249); -emit_16(1183); -emit_16(1250); -emit_16(1184); -emit_16(1250); -emit_16(1183); -emit_16(1250); -emit_16(1184); -emit_16(1251); -emit_16(1185); -emit_16(1251); -emit_16(1184); -emit_16(1251); -emit_16(1185); -emit_16(1252); -emit_16(1186); -emit_16(1252); -emit_16(1185); -emit_16(1252); -emit_16(1186); -emit_16(1253); -emit_16(1187); -emit_16(1253); -emit_16(1186); -emit_16(1254); -emit_16(1188); -emit_16(1255); -emit_16(1189); -emit_16(1255); -emit_16(1188); -emit_16(1255); -emit_16(1189); -emit_16(1256); -emit_16(1190); -emit_16(1256); -emit_16(1189); -emit_16(1256); -emit_16(1190); -emit_16(1257); -emit_16(1191); -emit_16(1257); -emit_16(1190); -emit_16(1257); -emit_16(1191); -emit_16(1258); -emit_16(1192); -emit_16(1258); -emit_16(1191); -emit_16(1258); -emit_16(1192); -emit_16(1259); -emit_16(1193); -emit_16(1259); -emit_16(1192); -emit_16(1259); -emit_16(1193); -emit_16(1260); -emit_16(1194); -emit_16(1260); -emit_16(1193); -emit_16(1260); -emit_16(1194); -emit_16(1261); -emit_16(1195); -emit_16(1261); -emit_16(1194); -emit_16(1261); -emit_16(1195); -emit_16(1262); -emit_16(1196); -emit_16(1262); -emit_16(1195); -emit_16(1262); -emit_16(1196); -emit_16(1263); -emit_16(1197); -emit_16(1263); -emit_16(1196); -emit_16(1263); -emit_16(1197); -emit_16(1264); -emit_16(1198); -emit_16(1264); -emit_16(1197); -emit_16(1264); -emit_16(1198); -emit_16(1265); -emit_16(1199); -emit_16(1265); -emit_16(1198); -emit_16(1265); -emit_16(1199); -emit_16(1266); -emit_16(1200); -emit_16(1266); -emit_16(1199); -emit_16(1266); -emit_16(1200); -emit_16(1267); -emit_16(1201); -emit_16(1267); -emit_16(1200); -emit_16(1267); -emit_16(1201); -emit_16(1268); -emit_16(1202); -emit_16(1268); -emit_16(1201); -emit_16(1268); -emit_16(1202); -emit_16(1269); -emit_16(1203); -emit_16(1269); -emit_16(1202); -emit_16(1269); -emit_16(1203); -emit_16(1270); -emit_16(1204); -emit_16(1270); -emit_16(1203); -emit_16(1270); -emit_16(1204); -emit_16(1271); -emit_16(1205); -emit_16(1271); -emit_16(1204); -emit_16(1271); -emit_16(1205); -emit_16(1272); -emit_16(1206); -emit_16(1272); -emit_16(1205); -emit_16(1272); -emit_16(1206); -emit_16(1273); -emit_16(1207); -emit_16(1273); -emit_16(1206); -emit_16(1273); -emit_16(1207); -emit_16(1274); -emit_16(1208); -emit_16(1274); -emit_16(1207); -emit_16(1274); -emit_16(1208); -emit_16(1275); -emit_16(1209); -emit_16(1275); -emit_16(1208); -emit_16(1275); -emit_16(1209); -emit_16(1276); -emit_16(1210); -emit_16(1276); -emit_16(1209); -emit_16(1276); -emit_16(1210); -emit_16(1277); -emit_16(1211); -emit_16(1277); -emit_16(1210); -emit_16(1277); -emit_16(1211); -emit_16(1278); -emit_16(1212); -emit_16(1278); -emit_16(1211); -emit_16(1278); -emit_16(1212); -emit_16(1279); -emit_16(1213); -emit_16(1279); -emit_16(1212); -emit_16(1279); -emit_16(1213); -emit_16(1280); -emit_16(1214); -emit_16(1280); -emit_16(1213); -emit_16(1280); -emit_16(1214); -emit_16(1281); -emit_16(1215); -emit_16(1281); -emit_16(1214); -emit_16(1281); -emit_16(1215); -emit_16(1282); -emit_16(1216); -emit_16(1282); -emit_16(1215); -emit_16(1282); -emit_16(1216); -emit_16(1283); -emit_16(1217); -emit_16(1283); -emit_16(1216); -emit_16(1283); -emit_16(1217); -emit_16(1284); -emit_16(1218); -emit_16(1284); -emit_16(1217); -emit_16(1284); -emit_16(1218); -emit_16(1285); -emit_16(1219); -emit_16(1285); -emit_16(1218); -emit_16(1285); -emit_16(1219); -emit_16(1286); -emit_16(1220); -emit_16(1286); -emit_16(1219); -emit_16(1286); -emit_16(1220); -emit_16(1287); -emit_16(1221); -emit_16(1287); -emit_16(1220); -emit_16(1287); -emit_16(1221); -emit_16(1288); -emit_16(1222); -emit_16(1288); -emit_16(1221); -emit_16(1288); -emit_16(1222); -emit_16(1289); -emit_16(1223); -emit_16(1289); -emit_16(1222); -emit_16(1289); -emit_16(1223); -emit_16(1290); -emit_16(1224); -emit_16(1290); -emit_16(1223); -emit_16(1290); -emit_16(1224); -emit_16(1291); -emit_16(1225); -emit_16(1291); -emit_16(1224); -emit_16(1291); -emit_16(1225); -emit_16(1292); -emit_16(1226); -emit_16(1292); -emit_16(1225); -emit_16(1292); -emit_16(1226); -emit_16(1293); -emit_16(1227); -emit_16(1293); -emit_16(1226); -emit_16(1293); -emit_16(1227); -emit_16(1294); -emit_16(1228); -emit_16(1294); -emit_16(1227); -emit_16(1294); -emit_16(1228); -emit_16(1295); -emit_16(1229); -emit_16(1295); -emit_16(1228); -emit_16(1295); -emit_16(1229); -emit_16(1296); -emit_16(1230); -emit_16(1296); -emit_16(1229); -emit_16(1296); -emit_16(1230); -emit_16(1297); -emit_16(1231); -emit_16(1297); -emit_16(1230); -emit_16(1297); -emit_16(1231); -emit_16(1298); -emit_16(1232); -emit_16(1298); -emit_16(1231); -emit_16(1298); -emit_16(1232); -emit_16(1299); -emit_16(1233); -emit_16(1299); -emit_16(1232); -emit_16(1299); -emit_16(1233); -emit_16(1300); -emit_16(1234); -emit_16(1300); -emit_16(1233); -emit_16(1300); -emit_16(1234); -emit_16(1301); -emit_16(1235); -emit_16(1301); -emit_16(1234); -emit_16(1301); -emit_16(1235); -emit_16(1302); -emit_16(1236); -emit_16(1302); -emit_16(1235); -emit_16(1302); -emit_16(1236); -emit_16(1303); -emit_16(1237); -emit_16(1303); -emit_16(1236); -emit_16(1303); -emit_16(1237); -emit_16(1304); -emit_16(1238); -emit_16(1304); -emit_16(1237); -emit_16(1304); -emit_16(1238); -emit_16(1305); -emit_16(1239); -emit_16(1305); -emit_16(1238); -emit_16(1305); -emit_16(1239); -emit_16(1306); -emit_16(1240); -emit_16(1306); -emit_16(1239); -emit_16(1306); -emit_16(1240); -emit_16(1307); -emit_16(1241); -emit_16(1307); -emit_16(1240); -emit_16(1307); -emit_16(1241); -emit_16(1308); -emit_16(1242); -emit_16(1308); -emit_16(1241); -emit_16(1308); -emit_16(1242); -emit_16(1309); -emit_16(1243); -emit_16(1309); -emit_16(1242); -emit_16(1309); -emit_16(1243); -emit_16(1310); -emit_16(1244); -emit_16(1310); -emit_16(1243); -emit_16(1310); -emit_16(1244); -emit_16(1311); -emit_16(1245); -emit_16(1311); -emit_16(1244); -emit_16(1311); -emit_16(1245); -emit_16(1312); -emit_16(1246); -emit_16(1312); -emit_16(1245); -emit_16(1312); -emit_16(1246); -emit_16(1313); -emit_16(1247); -emit_16(1313); -emit_16(1246); -emit_16(1313); -emit_16(1247); -emit_16(1314); -emit_16(1248); -emit_16(1314); -emit_16(1247); -emit_16(1314); -emit_16(1248); -emit_16(1315); -emit_16(1249); -emit_16(1315); -emit_16(1248); -emit_16(1315); -emit_16(1249); -emit_16(1316); -emit_16(1250); -emit_16(1316); -emit_16(1249); -emit_16(1316); -emit_16(1250); -emit_16(1317); -emit_16(1251); -emit_16(1317); -emit_16(1250); -emit_16(1317); -emit_16(1251); -emit_16(1318); -emit_16(1252); -emit_16(1318); -emit_16(1251); -emit_16(1318); -emit_16(1252); -emit_16(1319); -emit_16(1253); -emit_16(1319); -emit_16(1252); -emit_16(1320); -emit_16(1254); -emit_16(1321); -emit_16(1255); -emit_16(1321); -emit_16(1254); -emit_16(1321); -emit_16(1255); -emit_16(1322); -emit_16(1256); -emit_16(1322); -emit_16(1255); -emit_16(1322); -emit_16(1256); -emit_16(1323); -emit_16(1257); -emit_16(1323); -emit_16(1256); -emit_16(1323); -emit_16(1257); -emit_16(1324); -emit_16(1258); -emit_16(1324); -emit_16(1257); -emit_16(1324); -emit_16(1258); -emit_16(1325); -emit_16(1259); -emit_16(1325); -emit_16(1258); -emit_16(1325); -emit_16(1259); -emit_16(1326); -emit_16(1260); -emit_16(1326); -emit_16(1259); -emit_16(1326); -emit_16(1260); -emit_16(1327); -emit_16(1261); -emit_16(1327); -emit_16(1260); -emit_16(1327); -emit_16(1261); -emit_16(1328); -emit_16(1262); -emit_16(1328); -emit_16(1261); -emit_16(1328); -emit_16(1262); -emit_16(1329); -emit_16(1263); -emit_16(1329); -emit_16(1262); -emit_16(1329); -emit_16(1263); -emit_16(1330); -emit_16(1264); -emit_16(1330); -emit_16(1263); -emit_16(1330); -emit_16(1264); -emit_16(1331); -emit_16(1265); -emit_16(1331); -emit_16(1264); -emit_16(1331); -emit_16(1265); -emit_16(1332); -emit_16(1266); -emit_16(1332); -emit_16(1265); -emit_16(1332); -emit_16(1266); -emit_16(1333); -emit_16(1267); -emit_16(1333); -emit_16(1266); -emit_16(1333); -emit_16(1267); -emit_16(1334); -emit_16(1268); -emit_16(1334); -emit_16(1267); -emit_16(1334); -emit_16(1268); -emit_16(1335); -emit_16(1269); -emit_16(1335); -emit_16(1268); -emit_16(1335); -emit_16(1269); -emit_16(1336); -emit_16(1270); -emit_16(1336); -emit_16(1269); -emit_16(1336); -emit_16(1270); -emit_16(1337); -emit_16(1271); -emit_16(1337); -emit_16(1270); -emit_16(1337); -emit_16(1271); -emit_16(1338); -emit_16(1272); -emit_16(1338); -emit_16(1271); -emit_16(1338); -emit_16(1272); -emit_16(1339); -emit_16(1273); -emit_16(1339); -emit_16(1272); -emit_16(1339); -emit_16(1273); -emit_16(1340); -emit_16(1274); -emit_16(1340); -emit_16(1273); -emit_16(1340); -emit_16(1274); -emit_16(1341); -emit_16(1275); -emit_16(1341); -emit_16(1274); -emit_16(1341); -emit_16(1275); -emit_16(1342); -emit_16(1276); -emit_16(1342); -emit_16(1275); -emit_16(1342); -emit_16(1276); -emit_16(1343); -emit_16(1277); -emit_16(1343); -emit_16(1276); -emit_16(1343); -emit_16(1277); -emit_16(1344); -emit_16(1278); -emit_16(1344); -emit_16(1277); -emit_16(1344); -emit_16(1278); -emit_16(1345); -emit_16(1279); -emit_16(1345); -emit_16(1278); -emit_16(1345); -emit_16(1279); -emit_16(1346); -emit_16(1280); -emit_16(1346); -emit_16(1279); -emit_16(1346); -emit_16(1280); -emit_16(1347); -emit_16(1281); -emit_16(1347); -emit_16(1280); -emit_16(1347); -emit_16(1281); -emit_16(1348); -emit_16(1282); -emit_16(1348); -emit_16(1281); -emit_16(1348); -emit_16(1282); -emit_16(1349); -emit_16(1283); -emit_16(1349); -emit_16(1282); -emit_16(1349); -emit_16(1283); -emit_16(1350); -emit_16(1284); -emit_16(1350); -emit_16(1283); -emit_16(1350); -emit_16(1284); -emit_16(1351); -emit_16(1285); -emit_16(1351); -emit_16(1284); -emit_16(1351); -emit_16(1285); -emit_16(1352); -emit_16(1286); -emit_16(1352); -emit_16(1285); -emit_16(1352); -emit_16(1286); -emit_16(1353); -emit_16(1287); -emit_16(1353); -emit_16(1286); -emit_16(1353); -emit_16(1287); -emit_16(1354); -emit_16(1288); -emit_16(1354); -emit_16(1287); -emit_16(1354); -emit_16(1288); -emit_16(1355); -emit_16(1289); -emit_16(1355); -emit_16(1288); -emit_16(1355); -emit_16(1289); -emit_16(1356); -emit_16(1290); -emit_16(1356); -emit_16(1289); -emit_16(1356); -emit_16(1290); -emit_16(1357); -emit_16(1291); -emit_16(1357); -emit_16(1290); -emit_16(1357); -emit_16(1291); -emit_16(1358); -emit_16(1292); -emit_16(1358); -emit_16(1291); -emit_16(1358); -emit_16(1292); -emit_16(1359); -emit_16(1293); -emit_16(1359); -emit_16(1292); -emit_16(1359); -emit_16(1293); -emit_16(1360); -emit_16(1294); -emit_16(1360); -emit_16(1293); -emit_16(1360); -emit_16(1294); -emit_16(1361); -emit_16(1295); -emit_16(1361); -emit_16(1294); -emit_16(1361); -emit_16(1295); -emit_16(1362); -emit_16(1296); -emit_16(1362); -emit_16(1295); -emit_16(1362); -emit_16(1296); -emit_16(1363); -emit_16(1297); -emit_16(1363); -emit_16(1296); -emit_16(1363); -emit_16(1297); -emit_16(1364); -emit_16(1298); -emit_16(1364); -emit_16(1297); -emit_16(1364); -emit_16(1298); -emit_16(1365); -emit_16(1299); -emit_16(1365); -emit_16(1298); -emit_16(1365); -emit_16(1299); -emit_16(1366); -emit_16(1300); -emit_16(1366); -emit_16(1299); -emit_16(1366); -emit_16(1300); -emit_16(1367); -emit_16(1301); -emit_16(1367); -emit_16(1300); -emit_16(1367); -emit_16(1301); -emit_16(1368); -emit_16(1302); -emit_16(1368); -emit_16(1301); -emit_16(1368); -emit_16(1302); -emit_16(1369); -emit_16(1303); -emit_16(1369); -emit_16(1302); -emit_16(1369); -emit_16(1303); -emit_16(1370); -emit_16(1304); -emit_16(1370); -emit_16(1303); -emit_16(1370); -emit_16(1304); -emit_16(1371); -emit_16(1305); -emit_16(1371); -emit_16(1304); -emit_16(1371); -emit_16(1305); -emit_16(1372); -emit_16(1306); -emit_16(1372); -emit_16(1305); -emit_16(1372); -emit_16(1306); -emit_16(1373); -emit_16(1307); -emit_16(1373); -emit_16(1306); -emit_16(1373); -emit_16(1307); -emit_16(1374); -emit_16(1308); -emit_16(1374); -emit_16(1307); -emit_16(1374); -emit_16(1308); -emit_16(1375); -emit_16(1309); -emit_16(1375); -emit_16(1308); -emit_16(1375); -emit_16(1309); -emit_16(1376); -emit_16(1310); -emit_16(1376); -emit_16(1309); -emit_16(1376); -emit_16(1310); -emit_16(1377); -emit_16(1311); -emit_16(1377); -emit_16(1310); -emit_16(1377); -emit_16(1311); -emit_16(1378); -emit_16(1312); -emit_16(1378); -emit_16(1311); -emit_16(1378); -emit_16(1312); -emit_16(1379); -emit_16(1313); -emit_16(1379); -emit_16(1312); -emit_16(1379); -emit_16(1313); -emit_16(1380); -emit_16(1314); -emit_16(1380); -emit_16(1313); -emit_16(1380); -emit_16(1314); -emit_16(1381); -emit_16(1315); -emit_16(1381); -emit_16(1314); -emit_16(1381); -emit_16(1315); -emit_16(1382); -emit_16(1316); -emit_16(1382); -emit_16(1315); -emit_16(1382); -emit_16(1316); -emit_16(1383); -emit_16(1317); -emit_16(1383); -emit_16(1316); -emit_16(1383); -emit_16(1317); -emit_16(1384); -emit_16(1318); -emit_16(1384); -emit_16(1317); -emit_16(1384); -emit_16(1318); -emit_16(1385); -emit_16(1319); -emit_16(1385); -emit_16(1318); -emit_16(1386); -emit_16(1320); -emit_16(1387); -emit_16(1321); -emit_16(1387); -emit_16(1320); -emit_16(1387); -emit_16(1321); -emit_16(1388); -emit_16(1322); -emit_16(1388); -emit_16(1321); -emit_16(1388); -emit_16(1322); -emit_16(1389); -emit_16(1323); -emit_16(1389); -emit_16(1322); -emit_16(1389); -emit_16(1323); -emit_16(1390); -emit_16(1324); -emit_16(1390); -emit_16(1323); -emit_16(1390); -emit_16(1324); -emit_16(1391); -emit_16(1325); -emit_16(1391); -emit_16(1324); -emit_16(1391); -emit_16(1325); -emit_16(1392); -emit_16(1326); -emit_16(1392); -emit_16(1325); -emit_16(1392); -emit_16(1326); -emit_16(1393); -emit_16(1327); -emit_16(1393); -emit_16(1326); -emit_16(1393); -emit_16(1327); -emit_16(1394); -emit_16(1328); -emit_16(1394); -emit_16(1327); -emit_16(1394); -emit_16(1328); -emit_16(1395); -emit_16(1329); -emit_16(1395); -emit_16(1328); -emit_16(1395); -emit_16(1329); -emit_16(1396); -emit_16(1330); -emit_16(1396); -emit_16(1329); -emit_16(1396); -emit_16(1330); -emit_16(1397); -emit_16(1331); -emit_16(1397); -emit_16(1330); -emit_16(1397); -emit_16(1331); -emit_16(1398); -emit_16(1332); -emit_16(1398); -emit_16(1331); -emit_16(1398); -emit_16(1332); -emit_16(1399); -emit_16(1333); -emit_16(1399); -emit_16(1332); -emit_16(1399); -emit_16(1333); -emit_16(1400); -emit_16(1334); -emit_16(1400); -emit_16(1333); -emit_16(1400); -emit_16(1334); -emit_16(1401); -emit_16(1335); -emit_16(1401); -emit_16(1334); -emit_16(1401); -emit_16(1335); -emit_16(1402); -emit_16(1336); -emit_16(1402); -emit_16(1335); -emit_16(1402); -emit_16(1336); -emit_16(1403); -emit_16(1337); -emit_16(1403); -emit_16(1336); -emit_16(1403); -emit_16(1337); -emit_16(1404); -emit_16(1338); -emit_16(1404); -emit_16(1337); -emit_16(1404); -emit_16(1338); -emit_16(1405); -emit_16(1339); -emit_16(1405); -emit_16(1338); -emit_16(1405); -emit_16(1339); -emit_16(1406); -emit_16(1340); -emit_16(1406); -emit_16(1339); -emit_16(1406); -emit_16(1340); -emit_16(1407); -emit_16(1341); -emit_16(1407); -emit_16(1340); -emit_16(1407); -emit_16(1341); -emit_16(1408); -emit_16(1342); -emit_16(1408); -emit_16(1341); -emit_16(1408); -emit_16(1342); -emit_16(1409); -emit_16(1343); -emit_16(1409); -emit_16(1342); -emit_16(1409); -emit_16(1343); -emit_16(1410); -emit_16(1344); -emit_16(1410); -emit_16(1343); -emit_16(1410); -emit_16(1344); -emit_16(1411); -emit_16(1345); -emit_16(1411); -emit_16(1344); -emit_16(1411); -emit_16(1345); -emit_16(1412); -emit_16(1346); -emit_16(1412); -emit_16(1345); -emit_16(1412); -emit_16(1346); -emit_16(1413); -emit_16(1347); -emit_16(1413); -emit_16(1346); -emit_16(1413); -emit_16(1347); -emit_16(1414); -emit_16(1348); -emit_16(1414); -emit_16(1347); -emit_16(1414); -emit_16(1348); -emit_16(1415); -emit_16(1349); -emit_16(1415); -emit_16(1348); -emit_16(1415); -emit_16(1349); -emit_16(1416); -emit_16(1350); -emit_16(1416); -emit_16(1349); -emit_16(1416); -emit_16(1350); -emit_16(1417); -emit_16(1351); -emit_16(1417); -emit_16(1350); -emit_16(1417); -emit_16(1351); -emit_16(1418); -emit_16(1352); -emit_16(1418); -emit_16(1351); -emit_16(1418); -emit_16(1352); -emit_16(1419); -emit_16(1353); -emit_16(1419); -emit_16(1352); -emit_16(1419); -emit_16(1353); -emit_16(1420); -emit_16(1354); -emit_16(1420); -emit_16(1353); -emit_16(1420); -emit_16(1354); -emit_16(1421); -emit_16(1355); -emit_16(1421); -emit_16(1354); -emit_16(1421); -emit_16(1355); -emit_16(1422); -emit_16(1356); -emit_16(1422); -emit_16(1355); -emit_16(1422); -emit_16(1356); -emit_16(1423); -emit_16(1357); -emit_16(1423); -emit_16(1356); -emit_16(1423); -emit_16(1357); -emit_16(1424); -emit_16(1358); -emit_16(1424); -emit_16(1357); -emit_16(1424); -emit_16(1358); -emit_16(1425); -emit_16(1359); -emit_16(1425); -emit_16(1358); -emit_16(1425); -emit_16(1359); -emit_16(1426); -emit_16(1360); -emit_16(1426); -emit_16(1359); -emit_16(1426); -emit_16(1360); -emit_16(1427); -emit_16(1361); -emit_16(1427); -emit_16(1360); -emit_16(1427); -emit_16(1361); -emit_16(1428); -emit_16(1362); -emit_16(1428); -emit_16(1361); -emit_16(1428); -emit_16(1362); -emit_16(1429); -emit_16(1363); -emit_16(1429); -emit_16(1362); -emit_16(1429); -emit_16(1363); -emit_16(1430); -emit_16(1364); -emit_16(1430); -emit_16(1363); -emit_16(1430); -emit_16(1364); -emit_16(1431); -emit_16(1365); -emit_16(1431); -emit_16(1364); -emit_16(1431); -emit_16(1365); -emit_16(1432); -emit_16(1366); -emit_16(1432); -emit_16(1365); -emit_16(1432); -emit_16(1366); -emit_16(1433); -emit_16(1367); -emit_16(1433); -emit_16(1366); -emit_16(1433); -emit_16(1367); -emit_16(1434); -emit_16(1368); -emit_16(1434); -emit_16(1367); -emit_16(1434); -emit_16(1368); -emit_16(1435); -emit_16(1369); -emit_16(1435); -emit_16(1368); -emit_16(1435); -emit_16(1369); -emit_16(1436); -emit_16(1370); -emit_16(1436); -emit_16(1369); -emit_16(1436); -emit_16(1370); -emit_16(1437); -emit_16(1371); -emit_16(1437); -emit_16(1370); -emit_16(1437); -emit_16(1371); -emit_16(1438); -emit_16(1372); -emit_16(1438); -emit_16(1371); -emit_16(1438); -emit_16(1372); -emit_16(1439); -emit_16(1373); -emit_16(1439); -emit_16(1372); -emit_16(1439); -emit_16(1373); -emit_16(1440); -emit_16(1374); -emit_16(1440); -emit_16(1373); -emit_16(1440); -emit_16(1374); -emit_16(1441); -emit_16(1375); -emit_16(1441); -emit_16(1374); -emit_16(1441); -emit_16(1375); -emit_16(1442); -emit_16(1376); -emit_16(1442); -emit_16(1375); -emit_16(1442); -emit_16(1376); -emit_16(1443); -emit_16(1377); -emit_16(1443); -emit_16(1376); -emit_16(1443); -emit_16(1377); -emit_16(1444); -emit_16(1378); -emit_16(1444); -emit_16(1377); -emit_16(1444); -emit_16(1378); -emit_16(1445); -emit_16(1379); -emit_16(1445); -emit_16(1378); -emit_16(1445); -emit_16(1379); -emit_16(1446); -emit_16(1380); -emit_16(1446); -emit_16(1379); -emit_16(1446); -emit_16(1380); -emit_16(1447); -emit_16(1381); -emit_16(1447); -emit_16(1380); -emit_16(1447); -emit_16(1381); -emit_16(1448); -emit_16(1382); -emit_16(1448); -emit_16(1381); -emit_16(1448); -emit_16(1382); -emit_16(1449); -emit_16(1383); -emit_16(1449); -emit_16(1382); -emit_16(1449); -emit_16(1383); -emit_16(1450); -emit_16(1384); -emit_16(1450); -emit_16(1383); -emit_16(1450); -emit_16(1384); -emit_16(1451); -emit_16(1385); -emit_16(1451); -emit_16(1384); -emit_16(1452); -emit_16(1386); -emit_16(1453); -emit_16(1387); -emit_16(1453); -emit_16(1386); -emit_16(1453); -emit_16(1387); -emit_16(1454); -emit_16(1388); -emit_16(1454); -emit_16(1387); -emit_16(1454); -emit_16(1388); -emit_16(1455); -emit_16(1389); -emit_16(1455); -emit_16(1388); -emit_16(1455); -emit_16(1389); -emit_16(1456); -emit_16(1390); -emit_16(1456); -emit_16(1389); -emit_16(1456); -emit_16(1390); -emit_16(1457); -emit_16(1391); -emit_16(1457); -emit_16(1390); -emit_16(1457); -emit_16(1391); -emit_16(1458); -emit_16(1392); -emit_16(1458); -emit_16(1391); -emit_16(1458); -emit_16(1392); -emit_16(1459); -emit_16(1393); -emit_16(1459); -emit_16(1392); -emit_16(1459); -emit_16(1393); -emit_16(1460); -emit_16(1394); -emit_16(1460); -emit_16(1393); -emit_16(1460); -emit_16(1394); -emit_16(1461); -emit_16(1395); -emit_16(1461); -emit_16(1394); -emit_16(1461); -emit_16(1395); -emit_16(1462); -emit_16(1396); -emit_16(1462); -emit_16(1395); -emit_16(1462); -emit_16(1396); -emit_16(1463); -emit_16(1397); -emit_16(1463); -emit_16(1396); -emit_16(1463); -emit_16(1397); -emit_16(1464); -emit_16(1398); -emit_16(1464); -emit_16(1397); -emit_16(1464); -emit_16(1398); -emit_16(1465); -emit_16(1399); -emit_16(1465); -emit_16(1398); -emit_16(1465); -emit_16(1399); -emit_16(1466); -emit_16(1400); -emit_16(1466); -emit_16(1399); -emit_16(1466); -emit_16(1400); -emit_16(1467); -emit_16(1401); -emit_16(1467); -emit_16(1400); -emit_16(1467); -emit_16(1401); -emit_16(1468); -emit_16(1402); -emit_16(1468); -emit_16(1401); -emit_16(1468); -emit_16(1402); -emit_16(1469); -emit_16(1403); -emit_16(1469); -emit_16(1402); -emit_16(1469); -emit_16(1403); -emit_16(1470); -emit_16(1404); -emit_16(1470); -emit_16(1403); -emit_16(1470); -emit_16(1404); -emit_16(1471); -emit_16(1405); -emit_16(1471); -emit_16(1404); -emit_16(1471); -emit_16(1405); -emit_16(1472); -emit_16(1406); -emit_16(1472); -emit_16(1405); -emit_16(1472); -emit_16(1406); -emit_16(1473); -emit_16(1407); -emit_16(1473); -emit_16(1406); -emit_16(1473); -emit_16(1407); -emit_16(1474); -emit_16(1408); -emit_16(1474); -emit_16(1407); -emit_16(1474); -emit_16(1408); -emit_16(1475); -emit_16(1409); -emit_16(1475); -emit_16(1408); -emit_16(1475); -emit_16(1409); -emit_16(1476); -emit_16(1410); -emit_16(1476); -emit_16(1409); -emit_16(1476); -emit_16(1410); -emit_16(1477); -emit_16(1411); -emit_16(1477); -emit_16(1410); -emit_16(1477); -emit_16(1411); -emit_16(1478); -emit_16(1412); -emit_16(1478); -emit_16(1411); -emit_16(1478); -emit_16(1412); -emit_16(1479); -emit_16(1413); -emit_16(1479); -emit_16(1412); -emit_16(1479); -emit_16(1413); -emit_16(1480); -emit_16(1414); -emit_16(1480); -emit_16(1413); -emit_16(1480); -emit_16(1414); -emit_16(1481); -emit_16(1415); -emit_16(1481); -emit_16(1414); -emit_16(1481); -emit_16(1415); -emit_16(1482); -emit_16(1416); -emit_16(1482); -emit_16(1415); -emit_16(1482); -emit_16(1416); -emit_16(1483); -emit_16(1417); -emit_16(1483); -emit_16(1416); -emit_16(1483); -emit_16(1417); -emit_16(1484); -emit_16(1418); -emit_16(1484); -emit_16(1417); -emit_16(1484); -emit_16(1418); -emit_16(1485); -emit_16(1419); -emit_16(1485); -emit_16(1418); -emit_16(1485); -emit_16(1419); -emit_16(1486); -emit_16(1420); -emit_16(1486); -emit_16(1419); -emit_16(1486); -emit_16(1420); -emit_16(1487); -emit_16(1421); -emit_16(1487); -emit_16(1420); -emit_16(1487); -emit_16(1421); -emit_16(1488); -emit_16(1422); -emit_16(1488); -emit_16(1421); -emit_16(1488); -emit_16(1422); -emit_16(1489); -emit_16(1423); -emit_16(1489); -emit_16(1422); -emit_16(1489); -emit_16(1423); -emit_16(1490); -emit_16(1424); -emit_16(1490); -emit_16(1423); -emit_16(1490); -emit_16(1424); -emit_16(1491); -emit_16(1425); -emit_16(1491); -emit_16(1424); -emit_16(1491); -emit_16(1425); -emit_16(1492); -emit_16(1426); -emit_16(1492); -emit_16(1425); -emit_16(1492); -emit_16(1426); -emit_16(1493); -emit_16(1427); -emit_16(1493); -emit_16(1426); -emit_16(1493); -emit_16(1427); -emit_16(1494); -emit_16(1428); -emit_16(1494); -emit_16(1427); -emit_16(1494); -emit_16(1428); -emit_16(1495); -emit_16(1429); -emit_16(1495); -emit_16(1428); -emit_16(1495); -emit_16(1429); -emit_16(1496); -emit_16(1430); -emit_16(1496); -emit_16(1429); -emit_16(1496); -emit_16(1430); -emit_16(1497); -emit_16(1431); -emit_16(1497); -emit_16(1430); -emit_16(1497); -emit_16(1431); -emit_16(1498); -emit_16(1432); -emit_16(1498); -emit_16(1431); -emit_16(1498); -emit_16(1432); -emit_16(1499); -emit_16(1433); -emit_16(1499); -emit_16(1432); -emit_16(1499); -emit_16(1433); -emit_16(1500); -emit_16(1434); -emit_16(1500); -emit_16(1433); -emit_16(1500); -emit_16(1434); -emit_16(1501); -emit_16(1435); -emit_16(1501); -emit_16(1434); -emit_16(1501); -emit_16(1435); -emit_16(1502); -emit_16(1436); -emit_16(1502); -emit_16(1435); -emit_16(1502); -emit_16(1436); -emit_16(1503); -emit_16(1437); -emit_16(1503); -emit_16(1436); -emit_16(1503); -emit_16(1437); -emit_16(1504); -emit_16(1438); -emit_16(1504); -emit_16(1437); -emit_16(1504); -emit_16(1438); -emit_16(1505); -emit_16(1439); -emit_16(1505); -emit_16(1438); -emit_16(1505); -emit_16(1439); -emit_16(1506); -emit_16(1440); -emit_16(1506); -emit_16(1439); -emit_16(1506); -emit_16(1440); -emit_16(1507); -emit_16(1441); -emit_16(1507); -emit_16(1440); -emit_16(1507); -emit_16(1441); -emit_16(1508); -emit_16(1442); -emit_16(1508); -emit_16(1441); -emit_16(1508); -emit_16(1442); -emit_16(1509); -emit_16(1443); -emit_16(1509); -emit_16(1442); -emit_16(1509); -emit_16(1443); -emit_16(1510); -emit_16(1444); -emit_16(1510); -emit_16(1443); -emit_16(1510); -emit_16(1444); -emit_16(1511); -emit_16(1445); -emit_16(1511); -emit_16(1444); -emit_16(1511); -emit_16(1445); -emit_16(1512); -emit_16(1446); -emit_16(1512); -emit_16(1445); -emit_16(1512); -emit_16(1446); -emit_16(1513); -emit_16(1447); -emit_16(1513); -emit_16(1446); -emit_16(1513); -emit_16(1447); -emit_16(1514); -emit_16(1448); -emit_16(1514); -emit_16(1447); -emit_16(1514); -emit_16(1448); -emit_16(1515); -emit_16(1449); -emit_16(1515); -emit_16(1448); -emit_16(1515); -emit_16(1449); -emit_16(1516); -emit_16(1450); -emit_16(1516); -emit_16(1449); -emit_16(1516); -emit_16(1450); -emit_16(1517); -emit_16(1451); -emit_16(1517); -emit_16(1450); -emit_16(1518); -emit_16(1452); -emit_16(1519); -emit_16(1453); -emit_16(1519); -emit_16(1452); -emit_16(1519); -emit_16(1453); -emit_16(1520); -emit_16(1454); -emit_16(1520); -emit_16(1453); -emit_16(1520); -emit_16(1454); -emit_16(1521); -emit_16(1455); -emit_16(1521); -emit_16(1454); -emit_16(1521); -emit_16(1455); -emit_16(1522); -emit_16(1456); -emit_16(1522); -emit_16(1455); -emit_16(1522); -emit_16(1456); -emit_16(1523); -emit_16(1457); -emit_16(1523); -emit_16(1456); -emit_16(1523); -emit_16(1457); -emit_16(1524); -emit_16(1458); -emit_16(1524); -emit_16(1457); -emit_16(1524); -emit_16(1458); -emit_16(1525); -emit_16(1459); -emit_16(1525); -emit_16(1458); -emit_16(1525); -emit_16(1459); -emit_16(1526); -emit_16(1460); -emit_16(1526); -emit_16(1459); -emit_16(1526); -emit_16(1460); -emit_16(1527); -emit_16(1461); -emit_16(1527); -emit_16(1460); -emit_16(1527); -emit_16(1461); -emit_16(1528); -emit_16(1462); -emit_16(1528); -emit_16(1461); -emit_16(1528); -emit_16(1462); -emit_16(1529); -emit_16(1463); -emit_16(1529); -emit_16(1462); -emit_16(1529); -emit_16(1463); -emit_16(1530); -emit_16(1464); -emit_16(1530); -emit_16(1463); -emit_16(1530); -emit_16(1464); -emit_16(1531); -emit_16(1465); -emit_16(1531); -emit_16(1464); -emit_16(1531); -emit_16(1465); -emit_16(1532); -emit_16(1466); -emit_16(1532); -emit_16(1465); -emit_16(1532); -emit_16(1466); -emit_16(1533); -emit_16(1467); -emit_16(1533); -emit_16(1466); -emit_16(1533); -emit_16(1467); -emit_16(1534); -emit_16(1468); -emit_16(1534); -emit_16(1467); -emit_16(1534); -emit_16(1468); -emit_16(1535); -emit_16(1469); -emit_16(1535); -emit_16(1468); -emit_16(1535); -emit_16(1469); -emit_16(1536); -emit_16(1470); -emit_16(1536); -emit_16(1469); -emit_16(1536); -emit_16(1470); -emit_16(1537); -emit_16(1471); -emit_16(1537); -emit_16(1470); -emit_16(1537); -emit_16(1471); -emit_16(1538); -emit_16(1472); -emit_16(1538); -emit_16(1471); -emit_16(1538); -emit_16(1472); -emit_16(1539); -emit_16(1473); -emit_16(1539); -emit_16(1472); -emit_16(1539); -emit_16(1473); -emit_16(1540); -emit_16(1474); -emit_16(1540); -emit_16(1473); -emit_16(1540); -emit_16(1474); -emit_16(1541); -emit_16(1475); -emit_16(1541); -emit_16(1474); -emit_16(1541); -emit_16(1475); -emit_16(1542); -emit_16(1476); -emit_16(1542); -emit_16(1475); -emit_16(1542); -emit_16(1476); -emit_16(1543); -emit_16(1477); -emit_16(1543); -emit_16(1476); -emit_16(1543); -emit_16(1477); -emit_16(1544); -emit_16(1478); -emit_16(1544); -emit_16(1477); -emit_16(1544); -emit_16(1478); -emit_16(1545); -emit_16(1479); -emit_16(1545); -emit_16(1478); -emit_16(1545); -emit_16(1479); -emit_16(1546); -emit_16(1480); -emit_16(1546); -emit_16(1479); -emit_16(1546); -emit_16(1480); -emit_16(1547); -emit_16(1481); -emit_16(1547); -emit_16(1480); -emit_16(1547); -emit_16(1481); -emit_16(1548); -emit_16(1482); -emit_16(1548); -emit_16(1481); -emit_16(1548); -emit_16(1482); -emit_16(1549); -emit_16(1483); -emit_16(1549); -emit_16(1482); -emit_16(1549); -emit_16(1483); -emit_16(1550); -emit_16(1484); -emit_16(1550); -emit_16(1483); -emit_16(1550); -emit_16(1484); -emit_16(1551); -emit_16(1485); -emit_16(1551); -emit_16(1484); -emit_16(1551); -emit_16(1485); -emit_16(1552); -emit_16(1486); -emit_16(1552); -emit_16(1485); -emit_16(1552); -emit_16(1486); -emit_16(1553); -emit_16(1487); -emit_16(1553); -emit_16(1486); -emit_16(1553); -emit_16(1487); -emit_16(1554); -emit_16(1488); -emit_16(1554); -emit_16(1487); -emit_16(1554); -emit_16(1488); -emit_16(1555); -emit_16(1489); -emit_16(1555); -emit_16(1488); -emit_16(1555); -emit_16(1489); -emit_16(1556); -emit_16(1490); -emit_16(1556); -emit_16(1489); -emit_16(1556); -emit_16(1490); -emit_16(1557); -emit_16(1491); -emit_16(1557); -emit_16(1490); -emit_16(1557); -emit_16(1491); -emit_16(1558); -emit_16(1492); -emit_16(1558); -emit_16(1491); -emit_16(1558); -emit_16(1492); -emit_16(1559); -emit_16(1493); -emit_16(1559); -emit_16(1492); -emit_16(1559); -emit_16(1493); -emit_16(1560); -emit_16(1494); -emit_16(1560); -emit_16(1493); -emit_16(1560); -emit_16(1494); -emit_16(1561); -emit_16(1495); -emit_16(1561); -emit_16(1494); -emit_16(1561); -emit_16(1495); -emit_16(1562); -emit_16(1496); -emit_16(1562); -emit_16(1495); -emit_16(1562); -emit_16(1496); -emit_16(1563); -emit_16(1497); -emit_16(1563); -emit_16(1496); -emit_16(1563); -emit_16(1497); -emit_16(1564); -emit_16(1498); -emit_16(1564); -emit_16(1497); -emit_16(1564); -emit_16(1498); -emit_16(1565); -emit_16(1499); -emit_16(1565); -emit_16(1498); -emit_16(1565); -emit_16(1499); -emit_16(1566); -emit_16(1500); -emit_16(1566); -emit_16(1499); -emit_16(1566); -emit_16(1500); -emit_16(1567); -emit_16(1501); -emit_16(1567); -emit_16(1500); -emit_16(1567); -emit_16(1501); -emit_16(1568); -emit_16(1502); -emit_16(1568); -emit_16(1501); -emit_16(1568); -emit_16(1502); -emit_16(1569); -emit_16(1503); -emit_16(1569); -emit_16(1502); -emit_16(1569); -emit_16(1503); -emit_16(1570); -emit_16(1504); -emit_16(1570); -emit_16(1503); -emit_16(1570); -emit_16(1504); -emit_16(1571); -emit_16(1505); -emit_16(1571); -emit_16(1504); -emit_16(1571); -emit_16(1505); -emit_16(1572); -emit_16(1506); -emit_16(1572); -emit_16(1505); -emit_16(1572); -emit_16(1506); -emit_16(1573); -emit_16(1507); -emit_16(1573); -emit_16(1506); -emit_16(1573); -emit_16(1507); -emit_16(1574); -emit_16(1508); -emit_16(1574); -emit_16(1507); -emit_16(1574); -emit_16(1508); -emit_16(1575); -emit_16(1509); -emit_16(1575); -emit_16(1508); -emit_16(1575); -emit_16(1509); -emit_16(1576); -emit_16(1510); -emit_16(1576); -emit_16(1509); -emit_16(1576); -emit_16(1510); -emit_16(1577); -emit_16(1511); -emit_16(1577); -emit_16(1510); -emit_16(1577); -emit_16(1511); -emit_16(1578); -emit_16(1512); -emit_16(1578); -emit_16(1511); -emit_16(1578); -emit_16(1512); -emit_16(1579); -emit_16(1513); -emit_16(1579); -emit_16(1512); -emit_16(1579); -emit_16(1513); -emit_16(1580); -emit_16(1514); -emit_16(1580); -emit_16(1513); -emit_16(1580); -emit_16(1514); -emit_16(1581); -emit_16(1515); -emit_16(1581); -emit_16(1514); -emit_16(1581); -emit_16(1515); -emit_16(1582); -emit_16(1516); -emit_16(1582); -emit_16(1515); -emit_16(1582); -emit_16(1516); -emit_16(1583); -emit_16(1517); -emit_16(1583); -emit_16(1516); -emit_16(1584); -emit_16(1518); -emit_16(1585); -emit_16(1519); -emit_16(1585); -emit_16(1518); -emit_16(1585); -emit_16(1519); -emit_16(1586); -emit_16(1520); -emit_16(1586); -emit_16(1519); -emit_16(1586); -emit_16(1520); -emit_16(1587); -emit_16(1521); -emit_16(1587); -emit_16(1520); -emit_16(1587); -emit_16(1521); -emit_16(1588); -emit_16(1522); -emit_16(1588); -emit_16(1521); -emit_16(1588); -emit_16(1522); -emit_16(1589); -emit_16(1523); -emit_16(1589); -emit_16(1522); -emit_16(1589); -emit_16(1523); -emit_16(1590); -emit_16(1524); -emit_16(1590); -emit_16(1523); -emit_16(1590); -emit_16(1524); -emit_16(1591); -emit_16(1525); -emit_16(1591); -emit_16(1524); -emit_16(1591); -emit_16(1525); -emit_16(1592); -emit_16(1526); -emit_16(1592); -emit_16(1525); -emit_16(1592); -emit_16(1526); -emit_16(1593); -emit_16(1527); -emit_16(1593); -emit_16(1526); -emit_16(1593); -emit_16(1527); -emit_16(1594); -emit_16(1528); -emit_16(1594); -emit_16(1527); -emit_16(1594); -emit_16(1528); -emit_16(1595); -emit_16(1529); -emit_16(1595); -emit_16(1528); -emit_16(1595); -emit_16(1529); -emit_16(1596); -emit_16(1530); -emit_16(1596); -emit_16(1529); -emit_16(1596); -emit_16(1530); -emit_16(1597); -emit_16(1531); -emit_16(1597); -emit_16(1530); -emit_16(1597); -emit_16(1531); -emit_16(1598); -emit_16(1532); -emit_16(1598); -emit_16(1531); -emit_16(1598); -emit_16(1532); -emit_16(1599); -emit_16(1533); -emit_16(1599); -emit_16(1532); -emit_16(1599); -emit_16(1533); -emit_16(1600); -emit_16(1534); -emit_16(1600); -emit_16(1533); -emit_16(1600); -emit_16(1534); -emit_16(1601); -emit_16(1535); -emit_16(1601); -emit_16(1534); -emit_16(1601); -emit_16(1535); -emit_16(1602); -emit_16(1536); -emit_16(1602); -emit_16(1535); -emit_16(1602); -emit_16(1536); -emit_16(1603); -emit_16(1537); -emit_16(1603); -emit_16(1536); -emit_16(1603); -emit_16(1537); -emit_16(1604); -emit_16(1538); -emit_16(1604); -emit_16(1537); -emit_16(1604); -emit_16(1538); -emit_16(1605); -emit_16(1539); -emit_16(1605); -emit_16(1538); -emit_16(1605); -emit_16(1539); -emit_16(1606); -emit_16(1540); -emit_16(1606); -emit_16(1539); -emit_16(1606); -emit_16(1540); -emit_16(1607); -emit_16(1541); -emit_16(1607); -emit_16(1540); -emit_16(1607); -emit_16(1541); -emit_16(1608); -emit_16(1542); -emit_16(1608); -emit_16(1541); -emit_16(1608); -emit_16(1542); -emit_16(1609); -emit_16(1543); -emit_16(1609); -emit_16(1542); -emit_16(1609); -emit_16(1543); -emit_16(1610); -emit_16(1544); -emit_16(1610); -emit_16(1543); -emit_16(1610); -emit_16(1544); -emit_16(1611); -emit_16(1545); -emit_16(1611); -emit_16(1544); -emit_16(1611); -emit_16(1545); -emit_16(1612); -emit_16(1546); -emit_16(1612); -emit_16(1545); -emit_16(1612); -emit_16(1546); -emit_16(1613); -emit_16(1547); -emit_16(1613); -emit_16(1546); -emit_16(1613); -emit_16(1547); -emit_16(1614); -emit_16(1548); -emit_16(1614); -emit_16(1547); -emit_16(1614); -emit_16(1548); -emit_16(1615); -emit_16(1549); -emit_16(1615); -emit_16(1548); -emit_16(1615); -emit_16(1549); -emit_16(1616); -emit_16(1550); -emit_16(1616); -emit_16(1549); -emit_16(1616); -emit_16(1550); -emit_16(1617); -emit_16(1551); -emit_16(1617); -emit_16(1550); -emit_16(1617); -emit_16(1551); -emit_16(1618); -emit_16(1552); -emit_16(1618); -emit_16(1551); -emit_16(1618); -emit_16(1552); -emit_16(1619); -emit_16(1553); -emit_16(1619); -emit_16(1552); -emit_16(1619); -emit_16(1553); -emit_16(1620); -emit_16(1554); -emit_16(1620); -emit_16(1553); -emit_16(1620); -emit_16(1554); -emit_16(1621); -emit_16(1555); -emit_16(1621); -emit_16(1554); -emit_16(1621); -emit_16(1555); -emit_16(1622); -emit_16(1556); -emit_16(1622); -emit_16(1555); -emit_16(1622); -emit_16(1556); -emit_16(1623); -emit_16(1557); -emit_16(1623); -emit_16(1556); -emit_16(1623); -emit_16(1557); -emit_16(1624); -emit_16(1558); -emit_16(1624); -emit_16(1557); -emit_16(1624); -emit_16(1558); -emit_16(1625); -emit_16(1559); -emit_16(1625); -emit_16(1558); -emit_16(1625); -emit_16(1559); -emit_16(1626); -emit_16(1560); -emit_16(1626); -emit_16(1559); -emit_16(1626); -emit_16(1560); -emit_16(1627); -emit_16(1561); -emit_16(1627); -emit_16(1560); -emit_16(1627); -emit_16(1561); -emit_16(1628); -emit_16(1562); -emit_16(1628); -emit_16(1561); -emit_16(1628); -emit_16(1562); -emit_16(1629); -emit_16(1563); -emit_16(1629); -emit_16(1562); -emit_16(1629); -emit_16(1563); -emit_16(1630); -emit_16(1564); -emit_16(1630); -emit_16(1563); -emit_16(1630); -emit_16(1564); -emit_16(1631); -emit_16(1565); -emit_16(1631); -emit_16(1564); -emit_16(1631); -emit_16(1565); -emit_16(1632); -emit_16(1566); -emit_16(1632); -emit_16(1565); -emit_16(1632); -emit_16(1566); -emit_16(1633); -emit_16(1567); -emit_16(1633); -emit_16(1566); -emit_16(1633); -emit_16(1567); -emit_16(1634); -emit_16(1568); -emit_16(1634); -emit_16(1567); -emit_16(1634); -emit_16(1568); -emit_16(1635); -emit_16(1569); -emit_16(1635); -emit_16(1568); -emit_16(1635); -emit_16(1569); -emit_16(1636); -emit_16(1570); -emit_16(1636); -emit_16(1569); -emit_16(1636); -emit_16(1570); -emit_16(1637); -emit_16(1571); -emit_16(1637); -emit_16(1570); -emit_16(1637); -emit_16(1571); -emit_16(1638); -emit_16(1572); -emit_16(1638); -emit_16(1571); -emit_16(1638); -emit_16(1572); -emit_16(1639); -emit_16(1573); -emit_16(1639); -emit_16(1572); -emit_16(1639); -emit_16(1573); -emit_16(1640); -emit_16(1574); -emit_16(1640); -emit_16(1573); -emit_16(1640); -emit_16(1574); -emit_16(1641); -emit_16(1575); -emit_16(1641); -emit_16(1574); -emit_16(1641); -emit_16(1575); -emit_16(1642); -emit_16(1576); -emit_16(1642); -emit_16(1575); -emit_16(1642); -emit_16(1576); -emit_16(1643); -emit_16(1577); -emit_16(1643); -emit_16(1576); -emit_16(1643); -emit_16(1577); -emit_16(1644); -emit_16(1578); -emit_16(1644); -emit_16(1577); -emit_16(1644); -emit_16(1578); -emit_16(1645); -emit_16(1579); -emit_16(1645); -emit_16(1578); -emit_16(1645); -emit_16(1579); -emit_16(1646); -emit_16(1580); -emit_16(1646); -emit_16(1579); -emit_16(1646); -emit_16(1580); -emit_16(1647); -emit_16(1581); -emit_16(1647); -emit_16(1580); -emit_16(1647); -emit_16(1581); -emit_16(1648); -emit_16(1582); -emit_16(1648); -emit_16(1581); -emit_16(1648); -emit_16(1582); -emit_16(1649); -emit_16(1583); -emit_16(1649); -emit_16(1582); -emit_16(1650); -emit_16(1584); -emit_16(1651); -emit_16(1585); -emit_16(1651); -emit_16(1584); -emit_16(1651); -emit_16(1585); -emit_16(1652); -emit_16(1586); -emit_16(1652); -emit_16(1585); -emit_16(1652); -emit_16(1586); -emit_16(1653); -emit_16(1587); -emit_16(1653); -emit_16(1586); -emit_16(1653); -emit_16(1587); -emit_16(1654); -emit_16(1588); -emit_16(1654); -emit_16(1587); -emit_16(1654); -emit_16(1588); -emit_16(1655); -emit_16(1589); -emit_16(1655); -emit_16(1588); -emit_16(1655); -emit_16(1589); -emit_16(1656); -emit_16(1590); -emit_16(1656); -emit_16(1589); -emit_16(1656); -emit_16(1590); -emit_16(1657); -emit_16(1591); -emit_16(1657); -emit_16(1590); -emit_16(1657); -emit_16(1591); -emit_16(1658); -emit_16(1592); -emit_16(1658); -emit_16(1591); -emit_16(1658); -emit_16(1592); -emit_16(1659); -emit_16(1593); -emit_16(1659); -emit_16(1592); -emit_16(1659); -emit_16(1593); -emit_16(1660); -emit_16(1594); -emit_16(1660); -emit_16(1593); -emit_16(1660); -emit_16(1594); -emit_16(1661); -emit_16(1595); -emit_16(1661); -emit_16(1594); -emit_16(1661); -emit_16(1595); -emit_16(1662); -emit_16(1596); -emit_16(1662); -emit_16(1595); -emit_16(1662); -emit_16(1596); -emit_16(1663); -emit_16(1597); -emit_16(1663); -emit_16(1596); -emit_16(1663); -emit_16(1597); -emit_16(1664); -emit_16(1598); -emit_16(1664); -emit_16(1597); -emit_16(1664); -emit_16(1598); -emit_16(1665); -emit_16(1599); -emit_16(1665); -emit_16(1598); -emit_16(1665); -emit_16(1599); -emit_16(1666); -emit_16(1600); -emit_16(1666); -emit_16(1599); -emit_16(1666); -emit_16(1600); -emit_16(1667); -emit_16(1601); -emit_16(1667); -emit_16(1600); -emit_16(1667); -emit_16(1601); -emit_16(1668); -emit_16(1602); -emit_16(1668); -emit_16(1601); -emit_16(1668); -emit_16(1602); -emit_16(1669); -emit_16(1603); -emit_16(1669); -emit_16(1602); -emit_16(1669); -emit_16(1603); -emit_16(1670); -emit_16(1604); -emit_16(1670); -emit_16(1603); -emit_16(1670); -emit_16(1604); -emit_16(1671); -emit_16(1605); -emit_16(1671); -emit_16(1604); -emit_16(1671); -emit_16(1605); -emit_16(1672); -emit_16(1606); -emit_16(1672); -emit_16(1605); -emit_16(1672); -emit_16(1606); -emit_16(1673); -emit_16(1607); -emit_16(1673); -emit_16(1606); -emit_16(1673); -emit_16(1607); -emit_16(1674); -emit_16(1608); -emit_16(1674); -emit_16(1607); -emit_16(1674); -emit_16(1608); -emit_16(1675); -emit_16(1609); -emit_16(1675); -emit_16(1608); -emit_16(1675); -emit_16(1609); -emit_16(1676); -emit_16(1610); -emit_16(1676); -emit_16(1609); -emit_16(1676); -emit_16(1610); -emit_16(1677); -emit_16(1611); -emit_16(1677); -emit_16(1610); -emit_16(1677); -emit_16(1611); -emit_16(1678); -emit_16(1612); -emit_16(1678); -emit_16(1611); -emit_16(1678); -emit_16(1612); -emit_16(1679); -emit_16(1613); -emit_16(1679); -emit_16(1612); -emit_16(1679); -emit_16(1613); -emit_16(1680); -emit_16(1614); -emit_16(1680); -emit_16(1613); -emit_16(1680); -emit_16(1614); -emit_16(1681); -emit_16(1615); -emit_16(1681); -emit_16(1614); -emit_16(1681); -emit_16(1615); -emit_16(1682); -emit_16(1616); -emit_16(1682); -emit_16(1615); -emit_16(1682); -emit_16(1616); -emit_16(1683); -emit_16(1617); -emit_16(1683); -emit_16(1616); -emit_16(1683); -emit_16(1617); -emit_16(1684); -emit_16(1618); -emit_16(1684); -emit_16(1617); -emit_16(1684); -emit_16(1618); -emit_16(1685); -emit_16(1619); -emit_16(1685); -emit_16(1618); -emit_16(1685); -emit_16(1619); -emit_16(1686); -emit_16(1620); -emit_16(1686); -emit_16(1619); -emit_16(1686); -emit_16(1620); -emit_16(1687); -emit_16(1621); -emit_16(1687); -emit_16(1620); -emit_16(1687); -emit_16(1621); -emit_16(1688); -emit_16(1622); -emit_16(1688); -emit_16(1621); -emit_16(1688); -emit_16(1622); -emit_16(1689); -emit_16(1623); -emit_16(1689); -emit_16(1622); -emit_16(1689); -emit_16(1623); -emit_16(1690); -emit_16(1624); -emit_16(1690); -emit_16(1623); -emit_16(1690); -emit_16(1624); -emit_16(1691); -emit_16(1625); -emit_16(1691); -emit_16(1624); -emit_16(1691); -emit_16(1625); -emit_16(1692); -emit_16(1626); -emit_16(1692); -emit_16(1625); -emit_16(1692); -emit_16(1626); -emit_16(1693); -emit_16(1627); -emit_16(1693); -emit_16(1626); -emit_16(1693); -emit_16(1627); -emit_16(1694); -emit_16(1628); -emit_16(1694); -emit_16(1627); -emit_16(1694); -emit_16(1628); -emit_16(1695); -emit_16(1629); -emit_16(1695); -emit_16(1628); -emit_16(1695); -emit_16(1629); -emit_16(1696); -emit_16(1630); -emit_16(1696); -emit_16(1629); -emit_16(1696); -emit_16(1630); -emit_16(1697); -emit_16(1631); -emit_16(1697); -emit_16(1630); -emit_16(1697); -emit_16(1631); -emit_16(1698); -emit_16(1632); -emit_16(1698); -emit_16(1631); -emit_16(1698); -emit_16(1632); -emit_16(1699); -emit_16(1633); -emit_16(1699); -emit_16(1632); -emit_16(1699); -emit_16(1633); -emit_16(1700); -emit_16(1634); -emit_16(1700); -emit_16(1633); -emit_16(1700); -emit_16(1634); -emit_16(1701); -emit_16(1635); -emit_16(1701); -emit_16(1634); -emit_16(1701); -emit_16(1635); -emit_16(1702); -emit_16(1636); -emit_16(1702); -emit_16(1635); -emit_16(1702); -emit_16(1636); -emit_16(1703); -emit_16(1637); -emit_16(1703); -emit_16(1636); -emit_16(1703); -emit_16(1637); -emit_16(1704); -emit_16(1638); -emit_16(1704); -emit_16(1637); -emit_16(1704); -emit_16(1638); -emit_16(1705); -emit_16(1639); -emit_16(1705); -emit_16(1638); -emit_16(1705); -emit_16(1639); -emit_16(1706); -emit_16(1640); -emit_16(1706); -emit_16(1639); -emit_16(1706); -emit_16(1640); -emit_16(1707); -emit_16(1641); -emit_16(1707); -emit_16(1640); -emit_16(1707); -emit_16(1641); -emit_16(1708); -emit_16(1642); -emit_16(1708); -emit_16(1641); -emit_16(1708); -emit_16(1642); -emit_16(1709); -emit_16(1643); -emit_16(1709); -emit_16(1642); -emit_16(1709); -emit_16(1643); -emit_16(1710); -emit_16(1644); -emit_16(1710); -emit_16(1643); -emit_16(1710); -emit_16(1644); -emit_16(1711); -emit_16(1645); -emit_16(1711); -emit_16(1644); -emit_16(1711); -emit_16(1645); -emit_16(1712); -emit_16(1646); -emit_16(1712); -emit_16(1645); -emit_16(1712); -emit_16(1646); -emit_16(1713); -emit_16(1647); -emit_16(1713); -emit_16(1646); -emit_16(1713); -emit_16(1647); -emit_16(1714); -emit_16(1648); -emit_16(1714); -emit_16(1647); -emit_16(1714); -emit_16(1648); -emit_16(1715); -emit_16(1649); -emit_16(1715); -emit_16(1648); -emit_16(1716); -emit_16(1650); -emit_16(1717); -emit_16(1651); -emit_16(1717); -emit_16(1650); -emit_16(1717); -emit_16(1651); -emit_16(1718); -emit_16(1652); -emit_16(1718); -emit_16(1651); -emit_16(1718); -emit_16(1652); -emit_16(1719); -emit_16(1653); -emit_16(1719); -emit_16(1652); -emit_16(1719); -emit_16(1653); -emit_16(1720); -emit_16(1654); -emit_16(1720); -emit_16(1653); -emit_16(1720); -emit_16(1654); -emit_16(1721); -emit_16(1655); -emit_16(1721); -emit_16(1654); -emit_16(1721); -emit_16(1655); -emit_16(1722); -emit_16(1656); -emit_16(1722); -emit_16(1655); -emit_16(1722); -emit_16(1656); -emit_16(1723); -emit_16(1657); -emit_16(1723); -emit_16(1656); -emit_16(1723); -emit_16(1657); -emit_16(1724); -emit_16(1658); -emit_16(1724); -emit_16(1657); -emit_16(1724); -emit_16(1658); -emit_16(1725); -emit_16(1659); -emit_16(1725); -emit_16(1658); -emit_16(1725); -emit_16(1659); -emit_16(1726); -emit_16(1660); -emit_16(1726); -emit_16(1659); -emit_16(1726); -emit_16(1660); -emit_16(1727); -emit_16(1661); -emit_16(1727); -emit_16(1660); -emit_16(1727); -emit_16(1661); -emit_16(1728); -emit_16(1662); -emit_16(1728); -emit_16(1661); -emit_16(1728); -emit_16(1662); -emit_16(1729); -emit_16(1663); -emit_16(1729); -emit_16(1662); -emit_16(1729); -emit_16(1663); -emit_16(1730); -emit_16(1664); -emit_16(1730); -emit_16(1663); -emit_16(1730); -emit_16(1664); -emit_16(1731); -emit_16(1665); -emit_16(1731); -emit_16(1664); -emit_16(1731); -emit_16(1665); -emit_16(1732); -emit_16(1666); -emit_16(1732); -emit_16(1665); -emit_16(1732); -emit_16(1666); -emit_16(1733); -emit_16(1667); -emit_16(1733); -emit_16(1666); -emit_16(1733); -emit_16(1667); -emit_16(1734); -emit_16(1668); -emit_16(1734); -emit_16(1667); -emit_16(1734); -emit_16(1668); -emit_16(1735); -emit_16(1669); -emit_16(1735); -emit_16(1668); -emit_16(1735); -emit_16(1669); -emit_16(1736); -emit_16(1670); -emit_16(1736); -emit_16(1669); -emit_16(1736); -emit_16(1670); -emit_16(1737); -emit_16(1671); -emit_16(1737); -emit_16(1670); -emit_16(1737); -emit_16(1671); -emit_16(1738); -emit_16(1672); -emit_16(1738); -emit_16(1671); -emit_16(1738); -emit_16(1672); -emit_16(1739); -emit_16(1673); -emit_16(1739); -emit_16(1672); -emit_16(1739); -emit_16(1673); -emit_16(1740); -emit_16(1674); -emit_16(1740); -emit_16(1673); -emit_16(1740); -emit_16(1674); -emit_16(1741); -emit_16(1675); -emit_16(1741); -emit_16(1674); -emit_16(1741); -emit_16(1675); -emit_16(1742); -emit_16(1676); -emit_16(1742); -emit_16(1675); -emit_16(1742); -emit_16(1676); -emit_16(1743); -emit_16(1677); -emit_16(1743); -emit_16(1676); -emit_16(1743); -emit_16(1677); -emit_16(1744); -emit_16(1678); -emit_16(1744); -emit_16(1677); -emit_16(1744); -emit_16(1678); -emit_16(1745); -emit_16(1679); -emit_16(1745); -emit_16(1678); -emit_16(1745); -emit_16(1679); -emit_16(1746); -emit_16(1680); -emit_16(1746); -emit_16(1679); -emit_16(1746); -emit_16(1680); -emit_16(1747); -emit_16(1681); -emit_16(1747); -emit_16(1680); -emit_16(1747); -emit_16(1681); -emit_16(1748); -emit_16(1682); -emit_16(1748); -emit_16(1681); -emit_16(1748); -emit_16(1682); -emit_16(1749); -emit_16(1683); -emit_16(1749); -emit_16(1682); -emit_16(1749); -emit_16(1683); -emit_16(1750); -emit_16(1684); -emit_16(1750); -emit_16(1683); -emit_16(1750); -emit_16(1684); -emit_16(1751); -emit_16(1685); -emit_16(1751); -emit_16(1684); -emit_16(1751); -emit_16(1685); -emit_16(1752); -emit_16(1686); -emit_16(1752); -emit_16(1685); -emit_16(1752); -emit_16(1686); -emit_16(1753); -emit_16(1687); -emit_16(1753); -emit_16(1686); -emit_16(1753); -emit_16(1687); -emit_16(1754); -emit_16(1688); -emit_16(1754); -emit_16(1687); -emit_16(1754); -emit_16(1688); -emit_16(1755); -emit_16(1689); -emit_16(1755); -emit_16(1688); -emit_16(1755); -emit_16(1689); -emit_16(1756); -emit_16(1690); -emit_16(1756); -emit_16(1689); -emit_16(1756); -emit_16(1690); -emit_16(1757); -emit_16(1691); -emit_16(1757); -emit_16(1690); -emit_16(1757); -emit_16(1691); -emit_16(1758); -emit_16(1692); -emit_16(1758); -emit_16(1691); -emit_16(1758); -emit_16(1692); -emit_16(1759); -emit_16(1693); -emit_16(1759); -emit_16(1692); -emit_16(1759); -emit_16(1693); -emit_16(1760); -emit_16(1694); -emit_16(1760); -emit_16(1693); -emit_16(1760); -emit_16(1694); -emit_16(1761); -emit_16(1695); -emit_16(1761); -emit_16(1694); -emit_16(1761); -emit_16(1695); -emit_16(1762); -emit_16(1696); -emit_16(1762); -emit_16(1695); -emit_16(1762); -emit_16(1696); -emit_16(1763); -emit_16(1697); -emit_16(1763); -emit_16(1696); -emit_16(1763); -emit_16(1697); -emit_16(1764); -emit_16(1698); -emit_16(1764); -emit_16(1697); -emit_16(1764); -emit_16(1698); -emit_16(1765); -emit_16(1699); -emit_16(1765); -emit_16(1698); -emit_16(1765); -emit_16(1699); -emit_16(1766); -emit_16(1700); -emit_16(1766); -emit_16(1699); -emit_16(1766); -emit_16(1700); -emit_16(1767); -emit_16(1701); -emit_16(1767); -emit_16(1700); -emit_16(1767); -emit_16(1701); -emit_16(1768); -emit_16(1702); -emit_16(1768); -emit_16(1701); -emit_16(1768); -emit_16(1702); -emit_16(1769); -emit_16(1703); -emit_16(1769); -emit_16(1702); -emit_16(1769); -emit_16(1703); -emit_16(1770); -emit_16(1704); -emit_16(1770); -emit_16(1703); -emit_16(1770); -emit_16(1704); -emit_16(1771); -emit_16(1705); -emit_16(1771); -emit_16(1704); -emit_16(1771); -emit_16(1705); -emit_16(1772); -emit_16(1706); -emit_16(1772); -emit_16(1705); -emit_16(1772); -emit_16(1706); -emit_16(1773); -emit_16(1707); -emit_16(1773); -emit_16(1706); -emit_16(1773); -emit_16(1707); -emit_16(1774); -emit_16(1708); -emit_16(1774); -emit_16(1707); -emit_16(1774); -emit_16(1708); -emit_16(1775); -emit_16(1709); -emit_16(1775); -emit_16(1708); -emit_16(1775); -emit_16(1709); -emit_16(1776); -emit_16(1710); -emit_16(1776); -emit_16(1709); -emit_16(1776); -emit_16(1710); -emit_16(1777); -emit_16(1711); -emit_16(1777); -emit_16(1710); -emit_16(1777); -emit_16(1711); -emit_16(1778); -emit_16(1712); -emit_16(1778); -emit_16(1711); -emit_16(1778); -emit_16(1712); -emit_16(1779); -emit_16(1713); -emit_16(1779); -emit_16(1712); -emit_16(1779); -emit_16(1713); -emit_16(1780); -emit_16(1714); -emit_16(1780); -emit_16(1713); -emit_16(1780); -emit_16(1714); -emit_16(1781); -emit_16(1715); -emit_16(1781); -emit_16(1714); -emit_16(1782); -emit_16(1716); -emit_16(1783); -emit_16(1717); -emit_16(1783); -emit_16(1716); -emit_16(1783); -emit_16(1717); -emit_16(1784); -emit_16(1718); -emit_16(1784); -emit_16(1717); -emit_16(1784); -emit_16(1718); -emit_16(1785); -emit_16(1719); -emit_16(1785); -emit_16(1718); -emit_16(1785); -emit_16(1719); -emit_16(1786); -emit_16(1720); -emit_16(1786); -emit_16(1719); -emit_16(1786); -emit_16(1720); -emit_16(1787); -emit_16(1721); -emit_16(1787); -emit_16(1720); -emit_16(1787); -emit_16(1721); -emit_16(1788); -emit_16(1722); -emit_16(1788); -emit_16(1721); -emit_16(1788); -emit_16(1722); -emit_16(1789); -emit_16(1723); -emit_16(1789); -emit_16(1722); -emit_16(1789); -emit_16(1723); -emit_16(1790); -emit_16(1724); -emit_16(1790); -emit_16(1723); -emit_16(1790); -emit_16(1724); -emit_16(1791); -emit_16(1725); -emit_16(1791); -emit_16(1724); -emit_16(1791); -emit_16(1725); -emit_16(1792); -emit_16(1726); -emit_16(1792); -emit_16(1725); -emit_16(1792); -emit_16(1726); -emit_16(1793); -emit_16(1727); -emit_16(1793); -emit_16(1726); -emit_16(1793); -emit_16(1727); -emit_16(1794); -emit_16(1728); -emit_16(1794); -emit_16(1727); -emit_16(1794); -emit_16(1728); -emit_16(1795); -emit_16(1729); -emit_16(1795); -emit_16(1728); -emit_16(1795); -emit_16(1729); -emit_16(1796); -emit_16(1730); -emit_16(1796); -emit_16(1729); -emit_16(1796); -emit_16(1730); -emit_16(1797); -emit_16(1731); -emit_16(1797); -emit_16(1730); -emit_16(1797); -emit_16(1731); -emit_16(1798); -emit_16(1732); -emit_16(1798); -emit_16(1731); -emit_16(1798); -emit_16(1732); -emit_16(1799); -emit_16(1733); -emit_16(1799); -emit_16(1732); -emit_16(1799); -emit_16(1733); -emit_16(1800); -emit_16(1734); -emit_16(1800); -emit_16(1733); -emit_16(1800); -emit_16(1734); -emit_16(1801); -emit_16(1735); -emit_16(1801); -emit_16(1734); -emit_16(1801); -emit_16(1735); -emit_16(1802); -emit_16(1736); -emit_16(1802); -emit_16(1735); -emit_16(1802); -emit_16(1736); -emit_16(1803); -emit_16(1737); -emit_16(1803); -emit_16(1736); -emit_16(1803); -emit_16(1737); -emit_16(1804); -emit_16(1738); -emit_16(1804); -emit_16(1737); -emit_16(1804); -emit_16(1738); -emit_16(1805); -emit_16(1739); -emit_16(1805); -emit_16(1738); -emit_16(1805); -emit_16(1739); -emit_16(1806); -emit_16(1740); -emit_16(1806); -emit_16(1739); -emit_16(1806); -emit_16(1740); -emit_16(1807); -emit_16(1741); -emit_16(1807); -emit_16(1740); -emit_16(1807); -emit_16(1741); -emit_16(1808); -emit_16(1742); -emit_16(1808); -emit_16(1741); -emit_16(1808); -emit_16(1742); -emit_16(1809); -emit_16(1743); -emit_16(1809); -emit_16(1742); -emit_16(1809); -emit_16(1743); -emit_16(1810); -emit_16(1744); -emit_16(1810); -emit_16(1743); -emit_16(1810); -emit_16(1744); -emit_16(1811); -emit_16(1745); -emit_16(1811); -emit_16(1744); -emit_16(1811); -emit_16(1745); -emit_16(1812); -emit_16(1746); -emit_16(1812); -emit_16(1745); -emit_16(1812); -emit_16(1746); -emit_16(1813); -emit_16(1747); -emit_16(1813); -emit_16(1746); -emit_16(1813); -emit_16(1747); -emit_16(1814); -emit_16(1748); -emit_16(1814); -emit_16(1747); -emit_16(1814); -emit_16(1748); -emit_16(1815); -emit_16(1749); -emit_16(1815); -emit_16(1748); -emit_16(1815); -emit_16(1749); -emit_16(1816); -emit_16(1750); -emit_16(1816); -emit_16(1749); -emit_16(1816); -emit_16(1750); -emit_16(1817); -emit_16(1751); -emit_16(1817); -emit_16(1750); -emit_16(1817); -emit_16(1751); -emit_16(1818); -emit_16(1752); -emit_16(1818); -emit_16(1751); -emit_16(1818); -emit_16(1752); -emit_16(1819); -emit_16(1753); -emit_16(1819); -emit_16(1752); -emit_16(1819); -emit_16(1753); -emit_16(1820); -emit_16(1754); -emit_16(1820); -emit_16(1753); -emit_16(1820); -emit_16(1754); -emit_16(1821); -emit_16(1755); -emit_16(1821); -emit_16(1754); -emit_16(1821); -emit_16(1755); -emit_16(1822); -emit_16(1756); -emit_16(1822); -emit_16(1755); -emit_16(1822); -emit_16(1756); -emit_16(1823); -emit_16(1757); -emit_16(1823); -emit_16(1756); -emit_16(1823); -emit_16(1757); -emit_16(1824); -emit_16(1758); -emit_16(1824); -emit_16(1757); -emit_16(1824); -emit_16(1758); -emit_16(1825); -emit_16(1759); -emit_16(1825); -emit_16(1758); -emit_16(1825); -emit_16(1759); -emit_16(1826); -emit_16(1760); -emit_16(1826); -emit_16(1759); -emit_16(1826); -emit_16(1760); -emit_16(1827); -emit_16(1761); -emit_16(1827); -emit_16(1760); -emit_16(1827); -emit_16(1761); -emit_16(1828); -emit_16(1762); -emit_16(1828); -emit_16(1761); -emit_16(1828); -emit_16(1762); -emit_16(1829); -emit_16(1763); -emit_16(1829); -emit_16(1762); -emit_16(1829); -emit_16(1763); -emit_16(1830); -emit_16(1764); -emit_16(1830); -emit_16(1763); -emit_16(1830); -emit_16(1764); -emit_16(1831); -emit_16(1765); -emit_16(1831); -emit_16(1764); -emit_16(1831); -emit_16(1765); -emit_16(1832); -emit_16(1766); -emit_16(1832); -emit_16(1765); -emit_16(1832); -emit_16(1766); -emit_16(1833); -emit_16(1767); -emit_16(1833); -emit_16(1766); -emit_16(1833); -emit_16(1767); -emit_16(1834); -emit_16(1768); -emit_16(1834); -emit_16(1767); -emit_16(1834); -emit_16(1768); -emit_16(1835); -emit_16(1769); -emit_16(1835); -emit_16(1768); -emit_16(1835); -emit_16(1769); -emit_16(1836); -emit_16(1770); -emit_16(1836); -emit_16(1769); -emit_16(1836); -emit_16(1770); -emit_16(1837); -emit_16(1771); -emit_16(1837); -emit_16(1770); -emit_16(1837); -emit_16(1771); -emit_16(1838); -emit_16(1772); -emit_16(1838); -emit_16(1771); -emit_16(1838); -emit_16(1772); -emit_16(1839); -emit_16(1773); -emit_16(1839); -emit_16(1772); -emit_16(1839); -emit_16(1773); -emit_16(1840); -emit_16(1774); -emit_16(1840); -emit_16(1773); -emit_16(1840); -emit_16(1774); -emit_16(1841); -emit_16(1775); -emit_16(1841); -emit_16(1774); -emit_16(1841); -emit_16(1775); -emit_16(1842); -emit_16(1776); -emit_16(1842); -emit_16(1775); -emit_16(1842); -emit_16(1776); -emit_16(1843); -emit_16(1777); -emit_16(1843); -emit_16(1776); -emit_16(1843); -emit_16(1777); -emit_16(1844); -emit_16(1778); -emit_16(1844); -emit_16(1777); -emit_16(1844); -emit_16(1778); -emit_16(1845); -emit_16(1779); -emit_16(1845); -emit_16(1778); -emit_16(1845); -emit_16(1779); -emit_16(1846); -emit_16(1780); -emit_16(1846); -emit_16(1779); -emit_16(1846); -emit_16(1780); -emit_16(1847); -emit_16(1781); -emit_16(1847); -emit_16(1780); -emit_16(1848); -emit_16(1782); -emit_16(1849); -emit_16(1783); -emit_16(1849); -emit_16(1782); -emit_16(1849); -emit_16(1783); -emit_16(1850); -emit_16(1784); -emit_16(1850); -emit_16(1783); -emit_16(1850); -emit_16(1784); -emit_16(1851); -emit_16(1785); -emit_16(1851); -emit_16(1784); -emit_16(1851); -emit_16(1785); -emit_16(1852); -emit_16(1786); -emit_16(1852); -emit_16(1785); -emit_16(1852); -emit_16(1786); -emit_16(1853); -emit_16(1787); -emit_16(1853); -emit_16(1786); -emit_16(1853); -emit_16(1787); -emit_16(1854); -emit_16(1788); -emit_16(1854); -emit_16(1787); -emit_16(1854); -emit_16(1788); -emit_16(1855); -emit_16(1789); -emit_16(1855); -emit_16(1788); -emit_16(1855); -emit_16(1789); -emit_16(1856); -emit_16(1790); -emit_16(1856); -emit_16(1789); -emit_16(1856); -emit_16(1790); -emit_16(1857); -emit_16(1791); -emit_16(1857); -emit_16(1790); -emit_16(1857); -emit_16(1791); -emit_16(1858); -emit_16(1792); -emit_16(1858); -emit_16(1791); -emit_16(1858); -emit_16(1792); -emit_16(1859); -emit_16(1793); -emit_16(1859); -emit_16(1792); -emit_16(1859); -emit_16(1793); -emit_16(1860); -emit_16(1794); -emit_16(1860); -emit_16(1793); -emit_16(1860); -emit_16(1794); -emit_16(1861); -emit_16(1795); -emit_16(1861); -emit_16(1794); -emit_16(1861); -emit_16(1795); -emit_16(1862); -emit_16(1796); -emit_16(1862); -emit_16(1795); -emit_16(1862); -emit_16(1796); -emit_16(1863); -emit_16(1797); -emit_16(1863); -emit_16(1796); -emit_16(1863); -emit_16(1797); -emit_16(1864); -emit_16(1798); -emit_16(1864); -emit_16(1797); -emit_16(1864); -emit_16(1798); -emit_16(1865); -emit_16(1799); -emit_16(1865); -emit_16(1798); -emit_16(1865); -emit_16(1799); -emit_16(1866); -emit_16(1800); -emit_16(1866); -emit_16(1799); -emit_16(1866); -emit_16(1800); -emit_16(1867); -emit_16(1801); -emit_16(1867); -emit_16(1800); -emit_16(1867); -emit_16(1801); -emit_16(1868); -emit_16(1802); -emit_16(1868); -emit_16(1801); -emit_16(1868); -emit_16(1802); -emit_16(1869); -emit_16(1803); -emit_16(1869); -emit_16(1802); -emit_16(1869); -emit_16(1803); -emit_16(1870); -emit_16(1804); -emit_16(1870); -emit_16(1803); -emit_16(1870); -emit_16(1804); -emit_16(1871); -emit_16(1805); -emit_16(1871); -emit_16(1804); -emit_16(1871); -emit_16(1805); -emit_16(1872); -emit_16(1806); -emit_16(1872); -emit_16(1805); -emit_16(1872); -emit_16(1806); -emit_16(1873); -emit_16(1807); -emit_16(1873); -emit_16(1806); -emit_16(1873); -emit_16(1807); -emit_16(1874); -emit_16(1808); -emit_16(1874); -emit_16(1807); -emit_16(1874); -emit_16(1808); -emit_16(1875); -emit_16(1809); -emit_16(1875); -emit_16(1808); -emit_16(1875); -emit_16(1809); -emit_16(1876); -emit_16(1810); -emit_16(1876); -emit_16(1809); -emit_16(1876); -emit_16(1810); -emit_16(1877); -emit_16(1811); -emit_16(1877); -emit_16(1810); -emit_16(1877); -emit_16(1811); -emit_16(1878); -emit_16(1812); -emit_16(1878); -emit_16(1811); -emit_16(1878); -emit_16(1812); -emit_16(1879); -emit_16(1813); -emit_16(1879); -emit_16(1812); -emit_16(1879); -emit_16(1813); -emit_16(1880); -emit_16(1814); -emit_16(1880); -emit_16(1813); -emit_16(1880); -emit_16(1814); -emit_16(1881); -emit_16(1815); -emit_16(1881); -emit_16(1814); -emit_16(1881); -emit_16(1815); -emit_16(1882); -emit_16(1816); -emit_16(1882); -emit_16(1815); -emit_16(1882); -emit_16(1816); -emit_16(1883); -emit_16(1817); -emit_16(1883); -emit_16(1816); -emit_16(1883); -emit_16(1817); -emit_16(1884); -emit_16(1818); -emit_16(1884); -emit_16(1817); -emit_16(1884); -emit_16(1818); -emit_16(1885); -emit_16(1819); -emit_16(1885); -emit_16(1818); -emit_16(1885); -emit_16(1819); -emit_16(1886); -emit_16(1820); -emit_16(1886); -emit_16(1819); -emit_16(1886); -emit_16(1820); -emit_16(1887); -emit_16(1821); -emit_16(1887); -emit_16(1820); -emit_16(1887); -emit_16(1821); -emit_16(1888); -emit_16(1822); -emit_16(1888); -emit_16(1821); -emit_16(1888); -emit_16(1822); -emit_16(1889); -emit_16(1823); -emit_16(1889); -emit_16(1822); -emit_16(1889); -emit_16(1823); -emit_16(1890); -emit_16(1824); -emit_16(1890); -emit_16(1823); -emit_16(1890); -emit_16(1824); -emit_16(1891); -emit_16(1825); -emit_16(1891); -emit_16(1824); -emit_16(1891); -emit_16(1825); -emit_16(1892); -emit_16(1826); -emit_16(1892); -emit_16(1825); -emit_16(1892); -emit_16(1826); -emit_16(1893); -emit_16(1827); -emit_16(1893); -emit_16(1826); -emit_16(1893); -emit_16(1827); -emit_16(1894); -emit_16(1828); -emit_16(1894); -emit_16(1827); -emit_16(1894); -emit_16(1828); -emit_16(1895); -emit_16(1829); -emit_16(1895); -emit_16(1828); -emit_16(1895); -emit_16(1829); -emit_16(1896); -emit_16(1830); -emit_16(1896); -emit_16(1829); -emit_16(1896); -emit_16(1830); -emit_16(1897); -emit_16(1831); -emit_16(1897); -emit_16(1830); -emit_16(1897); -emit_16(1831); -emit_16(1898); -emit_16(1832); -emit_16(1898); -emit_16(1831); -emit_16(1898); -emit_16(1832); -emit_16(1899); -emit_16(1833); -emit_16(1899); -emit_16(1832); -emit_16(1899); -emit_16(1833); -emit_16(1900); -emit_16(1834); -emit_16(1900); -emit_16(1833); -emit_16(1900); -emit_16(1834); -emit_16(1901); -emit_16(1835); -emit_16(1901); -emit_16(1834); -emit_16(1901); -emit_16(1835); -emit_16(1902); -emit_16(1836); -emit_16(1902); -emit_16(1835); -emit_16(1902); -emit_16(1836); -emit_16(1903); -emit_16(1837); -emit_16(1903); -emit_16(1836); -emit_16(1903); -emit_16(1837); -emit_16(1904); -emit_16(1838); -emit_16(1904); -emit_16(1837); -emit_16(1904); -emit_16(1838); -emit_16(1905); -emit_16(1839); -emit_16(1905); -emit_16(1838); -emit_16(1905); -emit_16(1839); -emit_16(1906); -emit_16(1840); -emit_16(1906); -emit_16(1839); -emit_16(1906); -emit_16(1840); -emit_16(1907); -emit_16(1841); -emit_16(1907); -emit_16(1840); -emit_16(1907); -emit_16(1841); -emit_16(1908); -emit_16(1842); -emit_16(1908); -emit_16(1841); -emit_16(1908); -emit_16(1842); -emit_16(1909); -emit_16(1843); -emit_16(1909); -emit_16(1842); -emit_16(1909); -emit_16(1843); -emit_16(1910); -emit_16(1844); -emit_16(1910); -emit_16(1843); -emit_16(1910); -emit_16(1844); -emit_16(1911); -emit_16(1845); -emit_16(1911); -emit_16(1844); -emit_16(1911); -emit_16(1845); -emit_16(1912); -emit_16(1846); -emit_16(1912); -emit_16(1845); -emit_16(1912); -emit_16(1846); -emit_16(1913); -emit_16(1847); -emit_16(1913); -emit_16(1846); -emit_16(1914); -emit_16(1848); -emit_16(1915); -emit_16(1849); -emit_16(1915); -emit_16(1848); -emit_16(1915); -emit_16(1849); -emit_16(1916); -emit_16(1850); -emit_16(1916); -emit_16(1849); -emit_16(1916); -emit_16(1850); -emit_16(1917); -emit_16(1851); -emit_16(1917); -emit_16(1850); -emit_16(1917); -emit_16(1851); -emit_16(1918); -emit_16(1852); -emit_16(1918); -emit_16(1851); -emit_16(1918); -emit_16(1852); -emit_16(1919); -emit_16(1853); -emit_16(1919); -emit_16(1852); -emit_16(1919); -emit_16(1853); -emit_16(1920); -emit_16(1854); -emit_16(1920); -emit_16(1853); -emit_16(1920); -emit_16(1854); -emit_16(1921); -emit_16(1855); -emit_16(1921); -emit_16(1854); -emit_16(1921); -emit_16(1855); -emit_16(1922); -emit_16(1856); -emit_16(1922); -emit_16(1855); -emit_16(1922); -emit_16(1856); -emit_16(1923); -emit_16(1857); -emit_16(1923); -emit_16(1856); -emit_16(1923); -emit_16(1857); -emit_16(1924); -emit_16(1858); -emit_16(1924); -emit_16(1857); -emit_16(1924); -emit_16(1858); -emit_16(1925); -emit_16(1859); -emit_16(1925); -emit_16(1858); -emit_16(1925); -emit_16(1859); -emit_16(1926); -emit_16(1860); -emit_16(1926); -emit_16(1859); -emit_16(1926); -emit_16(1860); -emit_16(1927); -emit_16(1861); -emit_16(1927); -emit_16(1860); -emit_16(1927); -emit_16(1861); -emit_16(1928); -emit_16(1862); -emit_16(1928); -emit_16(1861); -emit_16(1928); -emit_16(1862); -emit_16(1929); -emit_16(1863); -emit_16(1929); -emit_16(1862); -emit_16(1929); -emit_16(1863); -emit_16(1930); -emit_16(1864); -emit_16(1930); -emit_16(1863); -emit_16(1930); -emit_16(1864); -emit_16(1931); -emit_16(1865); -emit_16(1931); -emit_16(1864); -emit_16(1931); -emit_16(1865); -emit_16(1932); -emit_16(1866); -emit_16(1932); -emit_16(1865); -emit_16(1932); -emit_16(1866); -emit_16(1933); -emit_16(1867); -emit_16(1933); -emit_16(1866); -emit_16(1933); -emit_16(1867); -emit_16(1934); -emit_16(1868); -emit_16(1934); -emit_16(1867); -emit_16(1934); -emit_16(1868); -emit_16(1935); -emit_16(1869); -emit_16(1935); -emit_16(1868); -emit_16(1935); -emit_16(1869); -emit_16(1936); -emit_16(1870); -emit_16(1936); -emit_16(1869); -emit_16(1936); -emit_16(1870); -emit_16(1937); -emit_16(1871); -emit_16(1937); -emit_16(1870); -emit_16(1937); -emit_16(1871); -emit_16(1938); -emit_16(1872); -emit_16(1938); -emit_16(1871); -emit_16(1938); -emit_16(1872); -emit_16(1939); -emit_16(1873); -emit_16(1939); -emit_16(1872); -emit_16(1939); -emit_16(1873); -emit_16(1940); -emit_16(1874); -emit_16(1940); -emit_16(1873); -emit_16(1940); -emit_16(1874); -emit_16(1941); -emit_16(1875); -emit_16(1941); -emit_16(1874); -emit_16(1941); -emit_16(1875); -emit_16(1942); -emit_16(1876); -emit_16(1942); -emit_16(1875); -emit_16(1942); -emit_16(1876); -emit_16(1943); -emit_16(1877); -emit_16(1943); -emit_16(1876); -emit_16(1943); -emit_16(1877); -emit_16(1944); -emit_16(1878); -emit_16(1944); -emit_16(1877); -emit_16(1944); -emit_16(1878); -emit_16(1945); -emit_16(1879); -emit_16(1945); -emit_16(1878); -emit_16(1945); -emit_16(1879); -emit_16(1946); -emit_16(1880); -emit_16(1946); -emit_16(1879); -emit_16(1946); -emit_16(1880); -emit_16(1947); -emit_16(1881); -emit_16(1947); -emit_16(1880); -emit_16(1947); -emit_16(1881); -emit_16(1948); -emit_16(1882); -emit_16(1948); -emit_16(1881); -emit_16(1948); -emit_16(1882); -emit_16(1949); -emit_16(1883); -emit_16(1949); -emit_16(1882); -emit_16(1949); -emit_16(1883); -emit_16(1950); -emit_16(1884); -emit_16(1950); -emit_16(1883); -emit_16(1950); -emit_16(1884); -emit_16(1951); -emit_16(1885); -emit_16(1951); -emit_16(1884); -emit_16(1951); -emit_16(1885); -emit_16(1952); -emit_16(1886); -emit_16(1952); -emit_16(1885); -emit_16(1952); -emit_16(1886); -emit_16(1953); -emit_16(1887); -emit_16(1953); -emit_16(1886); -emit_16(1953); -emit_16(1887); -emit_16(1954); -emit_16(1888); -emit_16(1954); -emit_16(1887); -emit_16(1954); -emit_16(1888); -emit_16(1955); -emit_16(1889); -emit_16(1955); -emit_16(1888); -emit_16(1955); -emit_16(1889); -emit_16(1956); -emit_16(1890); -emit_16(1956); -emit_16(1889); -emit_16(1956); -emit_16(1890); -emit_16(1957); -emit_16(1891); -emit_16(1957); -emit_16(1890); -emit_16(1957); -emit_16(1891); -emit_16(1958); -emit_16(1892); -emit_16(1958); -emit_16(1891); -emit_16(1958); -emit_16(1892); -emit_16(1959); -emit_16(1893); -emit_16(1959); -emit_16(1892); -emit_16(1959); -emit_16(1893); -emit_16(1960); -emit_16(1894); -emit_16(1960); -emit_16(1893); -emit_16(1960); -emit_16(1894); -emit_16(1961); -emit_16(1895); -emit_16(1961); -emit_16(1894); -emit_16(1961); -emit_16(1895); -emit_16(1962); -emit_16(1896); -emit_16(1962); -emit_16(1895); -emit_16(1962); -emit_16(1896); -emit_16(1963); -emit_16(1897); -emit_16(1963); -emit_16(1896); -emit_16(1963); -emit_16(1897); -emit_16(1964); -emit_16(1898); -emit_16(1964); -emit_16(1897); -emit_16(1964); -emit_16(1898); -emit_16(1965); -emit_16(1899); -emit_16(1965); -emit_16(1898); -emit_16(1965); -emit_16(1899); -emit_16(1966); -emit_16(1900); -emit_16(1966); -emit_16(1899); -emit_16(1966); -emit_16(1900); -emit_16(1967); -emit_16(1901); -emit_16(1967); -emit_16(1900); -emit_16(1967); -emit_16(1901); -emit_16(1968); -emit_16(1902); -emit_16(1968); -emit_16(1901); -emit_16(1968); -emit_16(1902); -emit_16(1969); -emit_16(1903); -emit_16(1969); -emit_16(1902); -emit_16(1969); -emit_16(1903); -emit_16(1970); -emit_16(1904); -emit_16(1970); -emit_16(1903); -emit_16(1970); -emit_16(1904); -emit_16(1971); -emit_16(1905); -emit_16(1971); -emit_16(1904); -emit_16(1971); -emit_16(1905); -emit_16(1972); -emit_16(1906); -emit_16(1972); -emit_16(1905); -emit_16(1972); -emit_16(1906); -emit_16(1973); -emit_16(1907); -emit_16(1973); -emit_16(1906); -emit_16(1973); -emit_16(1907); -emit_16(1974); -emit_16(1908); -emit_16(1974); -emit_16(1907); -emit_16(1974); -emit_16(1908); -emit_16(1975); -emit_16(1909); -emit_16(1975); -emit_16(1908); -emit_16(1975); -emit_16(1909); -emit_16(1976); -emit_16(1910); -emit_16(1976); -emit_16(1909); -emit_16(1976); -emit_16(1910); -emit_16(1977); -emit_16(1911); -emit_16(1977); -emit_16(1910); -emit_16(1977); -emit_16(1911); -emit_16(1978); -emit_16(1912); -emit_16(1978); -emit_16(1911); -emit_16(1978); -emit_16(1912); -emit_16(1979); -emit_16(1913); -emit_16(1979); -emit_16(1912); -emit_16(1980); -emit_16(1914); -emit_16(1981); -emit_16(1915); -emit_16(1981); -emit_16(1914); -emit_16(1981); -emit_16(1915); -emit_16(1982); -emit_16(1916); -emit_16(1982); -emit_16(1915); -emit_16(1982); -emit_16(1916); -emit_16(1983); -emit_16(1917); -emit_16(1983); -emit_16(1916); -emit_16(1983); -emit_16(1917); -emit_16(1984); -emit_16(1918); -emit_16(1984); -emit_16(1917); -emit_16(1984); -emit_16(1918); -emit_16(1985); -emit_16(1919); -emit_16(1985); -emit_16(1918); -emit_16(1985); -emit_16(1919); -emit_16(1986); -emit_16(1920); -emit_16(1986); -emit_16(1919); -emit_16(1986); -emit_16(1920); -emit_16(1987); -emit_16(1921); -emit_16(1987); -emit_16(1920); -emit_16(1987); -emit_16(1921); -emit_16(1988); -emit_16(1922); -emit_16(1988); -emit_16(1921); -emit_16(1988); -emit_16(1922); -emit_16(1989); -emit_16(1923); -emit_16(1989); -emit_16(1922); -emit_16(1989); -emit_16(1923); -emit_16(1990); -emit_16(1924); -emit_16(1990); -emit_16(1923); -emit_16(1990); -emit_16(1924); -emit_16(1991); -emit_16(1925); -emit_16(1991); -emit_16(1924); -emit_16(1991); -emit_16(1925); -emit_16(1992); -emit_16(1926); -emit_16(1992); -emit_16(1925); -emit_16(1992); -emit_16(1926); -emit_16(1993); -emit_16(1927); -emit_16(1993); -emit_16(1926); -emit_16(1993); -emit_16(1927); -emit_16(1994); -emit_16(1928); -emit_16(1994); -emit_16(1927); -emit_16(1994); -emit_16(1928); -emit_16(1995); -emit_16(1929); -emit_16(1995); -emit_16(1928); -emit_16(1995); -emit_16(1929); -emit_16(1996); -emit_16(1930); -emit_16(1996); -emit_16(1929); -emit_16(1996); -emit_16(1930); -emit_16(1997); -emit_16(1931); -emit_16(1997); -emit_16(1930); -emit_16(1997); -emit_16(1931); -emit_16(1998); -emit_16(1932); -emit_16(1998); -emit_16(1931); -emit_16(1998); -emit_16(1932); -emit_16(1999); -emit_16(1933); -emit_16(1999); -emit_16(1932); -emit_16(1999); -emit_16(1933); -emit_16(2000); -emit_16(1934); -emit_16(2000); -emit_16(1933); -emit_16(2000); -emit_16(1934); -emit_16(2001); -emit_16(1935); -emit_16(2001); -emit_16(1934); -emit_16(2001); -emit_16(1935); -emit_16(2002); -emit_16(1936); -emit_16(2002); -emit_16(1935); -emit_16(2002); -emit_16(1936); -emit_16(2003); -emit_16(1937); -emit_16(2003); -emit_16(1936); -emit_16(2003); -emit_16(1937); -emit_16(2004); -emit_16(1938); -emit_16(2004); -emit_16(1937); -emit_16(2004); -emit_16(1938); -emit_16(2005); -emit_16(1939); -emit_16(2005); -emit_16(1938); -emit_16(2005); -emit_16(1939); -emit_16(2006); -emit_16(1940); -emit_16(2006); -emit_16(1939); -emit_16(2006); -emit_16(1940); -emit_16(2007); -emit_16(1941); -emit_16(2007); -emit_16(1940); -emit_16(2007); -emit_16(1941); -emit_16(2008); -emit_16(1942); -emit_16(2008); -emit_16(1941); -emit_16(2008); -emit_16(1942); -emit_16(2009); -emit_16(1943); -emit_16(2009); -emit_16(1942); -emit_16(2009); -emit_16(1943); -emit_16(2010); -emit_16(1944); -emit_16(2010); -emit_16(1943); -emit_16(2010); -emit_16(1944); -emit_16(2011); -emit_16(1945); -emit_16(2011); -emit_16(1944); -emit_16(2011); -emit_16(1945); -emit_16(2012); -emit_16(1946); -emit_16(2012); -emit_16(1945); -emit_16(2012); -emit_16(1946); -emit_16(2013); -emit_16(1947); -emit_16(2013); -emit_16(1946); -emit_16(2013); -emit_16(1947); -emit_16(2014); -emit_16(1948); -emit_16(2014); -emit_16(1947); -emit_16(2014); -emit_16(1948); -emit_16(2015); -emit_16(1949); -emit_16(2015); -emit_16(1948); -emit_16(2015); -emit_16(1949); -emit_16(2016); -emit_16(1950); -emit_16(2016); -emit_16(1949); -emit_16(2016); -emit_16(1950); -emit_16(2017); -emit_16(1951); -emit_16(2017); -emit_16(1950); -emit_16(2017); -emit_16(1951); -emit_16(2018); -emit_16(1952); -emit_16(2018); -emit_16(1951); -emit_16(2018); -emit_16(1952); -emit_16(2019); -emit_16(1953); -emit_16(2019); -emit_16(1952); -emit_16(2019); -emit_16(1953); -emit_16(2020); -emit_16(1954); -emit_16(2020); -emit_16(1953); -emit_16(2020); -emit_16(1954); -emit_16(2021); -emit_16(1955); -emit_16(2021); -emit_16(1954); -emit_16(2021); -emit_16(1955); -emit_16(2022); -emit_16(1956); -emit_16(2022); -emit_16(1955); -emit_16(2022); -emit_16(1956); -emit_16(2023); -emit_16(1957); -emit_16(2023); -emit_16(1956); -emit_16(2023); -emit_16(1957); -emit_16(2024); -emit_16(1958); -emit_16(2024); -emit_16(1957); -emit_16(2024); -emit_16(1958); -emit_16(2025); -emit_16(1959); -emit_16(2025); -emit_16(1958); -emit_16(2025); -emit_16(1959); -emit_16(2026); -emit_16(1960); -emit_16(2026); -emit_16(1959); -emit_16(2026); -emit_16(1960); -emit_16(2027); -emit_16(1961); -emit_16(2027); -emit_16(1960); -emit_16(2027); -emit_16(1961); -emit_16(2028); -emit_16(1962); -emit_16(2028); -emit_16(1961); -emit_16(2028); -emit_16(1962); -emit_16(2029); -emit_16(1963); -emit_16(2029); -emit_16(1962); -emit_16(2029); -emit_16(1963); -emit_16(2030); -emit_16(1964); -emit_16(2030); -emit_16(1963); -emit_16(2030); -emit_16(1964); -emit_16(2031); -emit_16(1965); -emit_16(2031); -emit_16(1964); -emit_16(2031); -emit_16(1965); -emit_16(2032); -emit_16(1966); -emit_16(2032); -emit_16(1965); -emit_16(2032); -emit_16(1966); -emit_16(2033); -emit_16(1967); -emit_16(2033); -emit_16(1966); -emit_16(2033); -emit_16(1967); -emit_16(2034); -emit_16(1968); -emit_16(2034); -emit_16(1967); -emit_16(2034); -emit_16(1968); -emit_16(2035); -emit_16(1969); -emit_16(2035); -emit_16(1968); -emit_16(2035); -emit_16(1969); -emit_16(2036); -emit_16(1970); -emit_16(2036); -emit_16(1969); -emit_16(2036); -emit_16(1970); -emit_16(2037); -emit_16(1971); -emit_16(2037); -emit_16(1970); -emit_16(2037); -emit_16(1971); -emit_16(2038); -emit_16(1972); -emit_16(2038); -emit_16(1971); -emit_16(2038); -emit_16(1972); -emit_16(2039); -emit_16(1973); -emit_16(2039); -emit_16(1972); -emit_16(2039); -emit_16(1973); -emit_16(2040); -emit_16(1974); -emit_16(2040); -emit_16(1973); -emit_16(2040); -emit_16(1974); -emit_16(2041); -emit_16(1975); -emit_16(2041); -emit_16(1974); -emit_16(2041); -emit_16(1975); -emit_16(2042); -emit_16(1976); -emit_16(2042); -emit_16(1975); -emit_16(2042); -emit_16(1976); -emit_16(2043); -emit_16(1977); -emit_16(2043); -emit_16(1976); -emit_16(2043); -emit_16(1977); -emit_16(2044); -emit_16(1978); -emit_16(2044); -emit_16(1977); -emit_16(2044); -emit_16(1978); -emit_16(2045); -emit_16(1979); -emit_16(2045); -emit_16(1978); -emit_16(2046); -emit_16(1980); -emit_16(2047); -emit_16(1981); -emit_16(2047); -emit_16(1980); -emit_16(2047); -emit_16(1981); -emit_16(2048); -emit_16(1982); -emit_16(2048); -emit_16(1981); -emit_16(2048); -emit_16(1982); -emit_16(2049); -emit_16(1983); -emit_16(2049); -emit_16(1982); -emit_16(2049); -emit_16(1983); -emit_16(2050); -emit_16(1984); -emit_16(2050); -emit_16(1983); -emit_16(2050); -emit_16(1984); -emit_16(2051); -emit_16(1985); -emit_16(2051); -emit_16(1984); -emit_16(2051); -emit_16(1985); -emit_16(2052); -emit_16(1986); -emit_16(2052); -emit_16(1985); -emit_16(2052); -emit_16(1986); -emit_16(2053); -emit_16(1987); -emit_16(2053); -emit_16(1986); -emit_16(2053); -emit_16(1987); -emit_16(2054); -emit_16(1988); -emit_16(2054); -emit_16(1987); -emit_16(2054); -emit_16(1988); -emit_16(2055); -emit_16(1989); -emit_16(2055); -emit_16(1988); -emit_16(2055); -emit_16(1989); -emit_16(2056); -emit_16(1990); -emit_16(2056); -emit_16(1989); -emit_16(2056); -emit_16(1990); -emit_16(2057); -emit_16(1991); -emit_16(2057); -emit_16(1990); -emit_16(2057); -emit_16(1991); -emit_16(2058); -emit_16(1992); -emit_16(2058); -emit_16(1991); -emit_16(2058); -emit_16(1992); -emit_16(2059); -emit_16(1993); -emit_16(2059); -emit_16(1992); -emit_16(2059); -emit_16(1993); -emit_16(2060); -emit_16(1994); -emit_16(2060); -emit_16(1993); -emit_16(2060); -emit_16(1994); -emit_16(2061); -emit_16(1995); -emit_16(2061); -emit_16(1994); -emit_16(2061); -emit_16(1995); -emit_16(2062); -emit_16(1996); -emit_16(2062); -emit_16(1995); -emit_16(2062); -emit_16(1996); -emit_16(2063); -emit_16(1997); -emit_16(2063); -emit_16(1996); -emit_16(2063); -emit_16(1997); -emit_16(2064); -emit_16(1998); -emit_16(2064); -emit_16(1997); -emit_16(2064); -emit_16(1998); -emit_16(2065); -emit_16(1999); -emit_16(2065); -emit_16(1998); -emit_16(2065); -emit_16(1999); -emit_16(2066); -emit_16(2000); -emit_16(2066); -emit_16(1999); -emit_16(2066); -emit_16(2000); -emit_16(2067); -emit_16(2001); -emit_16(2067); -emit_16(2000); -emit_16(2067); -emit_16(2001); -emit_16(2068); -emit_16(2002); -emit_16(2068); -emit_16(2001); -emit_16(2068); -emit_16(2002); -emit_16(2069); -emit_16(2003); -emit_16(2069); -emit_16(2002); -emit_16(2069); -emit_16(2003); -emit_16(2070); -emit_16(2004); -emit_16(2070); -emit_16(2003); -emit_16(2070); -emit_16(2004); -emit_16(2071); -emit_16(2005); -emit_16(2071); -emit_16(2004); -emit_16(2071); -emit_16(2005); -emit_16(2072); -emit_16(2006); -emit_16(2072); -emit_16(2005); -emit_16(2072); -emit_16(2006); -emit_16(2073); -emit_16(2007); -emit_16(2073); -emit_16(2006); -emit_16(2073); -emit_16(2007); -emit_16(2074); -emit_16(2008); -emit_16(2074); -emit_16(2007); -emit_16(2074); -emit_16(2008); -emit_16(2075); -emit_16(2009); -emit_16(2075); -emit_16(2008); -emit_16(2075); -emit_16(2009); -emit_16(2076); -emit_16(2010); -emit_16(2076); -emit_16(2009); -emit_16(2076); -emit_16(2010); -emit_16(2077); -emit_16(2011); -emit_16(2077); -emit_16(2010); -emit_16(2077); -emit_16(2011); -emit_16(2078); -emit_16(2012); -emit_16(2078); -emit_16(2011); -emit_16(2078); -emit_16(2012); -emit_16(2079); -emit_16(2013); -emit_16(2079); -emit_16(2012); -emit_16(2079); -emit_16(2013); -emit_16(2080); -emit_16(2014); -emit_16(2080); -emit_16(2013); -emit_16(2080); -emit_16(2014); -emit_16(2081); -emit_16(2015); -emit_16(2081); -emit_16(2014); -emit_16(2081); -emit_16(2015); -emit_16(2082); -emit_16(2016); -emit_16(2082); -emit_16(2015); -emit_16(2082); -emit_16(2016); -emit_16(2083); -emit_16(2017); -emit_16(2083); -emit_16(2016); -emit_16(2083); -emit_16(2017); -emit_16(2084); -emit_16(2018); -emit_16(2084); -emit_16(2017); -emit_16(2084); -emit_16(2018); -emit_16(2085); -emit_16(2019); -emit_16(2085); -emit_16(2018); -emit_16(2085); -emit_16(2019); -emit_16(2086); -emit_16(2020); -emit_16(2086); -emit_16(2019); -emit_16(2086); -emit_16(2020); -emit_16(2087); -emit_16(2021); -emit_16(2087); -emit_16(2020); -emit_16(2087); -emit_16(2021); -emit_16(2088); -emit_16(2022); -emit_16(2088); -emit_16(2021); -emit_16(2088); -emit_16(2022); -emit_16(2089); -emit_16(2023); -emit_16(2089); -emit_16(2022); -emit_16(2089); -emit_16(2023); -emit_16(2090); -emit_16(2024); -emit_16(2090); -emit_16(2023); -emit_16(2090); -emit_16(2024); -emit_16(2091); -emit_16(2025); -emit_16(2091); -emit_16(2024); -emit_16(2091); -emit_16(2025); -emit_16(2092); -emit_16(2026); -emit_16(2092); -emit_16(2025); -emit_16(2092); -emit_16(2026); -emit_16(2093); -emit_16(2027); -emit_16(2093); -emit_16(2026); -emit_16(2093); -emit_16(2027); -emit_16(2094); -emit_16(2028); -emit_16(2094); -emit_16(2027); -emit_16(2094); -emit_16(2028); -emit_16(2095); -emit_16(2029); -emit_16(2095); -emit_16(2028); -emit_16(2095); -emit_16(2029); -emit_16(2096); -emit_16(2030); -emit_16(2096); -emit_16(2029); -emit_16(2096); -emit_16(2030); -emit_16(2097); -emit_16(2031); -emit_16(2097); -emit_16(2030); -emit_16(2097); -emit_16(2031); -emit_16(2098); -emit_16(2032); -emit_16(2098); -emit_16(2031); -emit_16(2098); -emit_16(2032); -emit_16(2099); -emit_16(2033); -emit_16(2099); -emit_16(2032); -emit_16(2099); -emit_16(2033); -emit_16(2100); -emit_16(2034); -emit_16(2100); -emit_16(2033); -emit_16(2100); -emit_16(2034); -emit_16(2101); -emit_16(2035); -emit_16(2101); -emit_16(2034); -emit_16(2101); -emit_16(2035); -emit_16(2102); -emit_16(2036); -emit_16(2102); -emit_16(2035); -emit_16(2102); -emit_16(2036); -emit_16(2103); -emit_16(2037); -emit_16(2103); -emit_16(2036); -emit_16(2103); -emit_16(2037); -emit_16(2104); -emit_16(2038); -emit_16(2104); -emit_16(2037); -emit_16(2104); -emit_16(2038); -emit_16(2105); -emit_16(2039); -emit_16(2105); -emit_16(2038); -emit_16(2105); -emit_16(2039); -emit_16(2106); -emit_16(2040); -emit_16(2106); -emit_16(2039); -emit_16(2106); -emit_16(2040); -emit_16(2107); -emit_16(2041); -emit_16(2107); -emit_16(2040); -emit_16(2107); -emit_16(2041); -emit_16(2108); -emit_16(2042); -emit_16(2108); -emit_16(2041); -emit_16(2108); -emit_16(2042); -emit_16(2109); -emit_16(2043); -emit_16(2109); -emit_16(2042); -emit_16(2109); -emit_16(2043); -emit_16(2110); -emit_16(2044); -emit_16(2110); -emit_16(2043); -emit_16(2110); -emit_16(2044); -emit_16(2111); -emit_16(2045); -emit_16(2111); -emit_16(2044); -emit_16(2112); -emit_16(2046); -emit_16(2113); -emit_16(2047); -emit_16(2113); -emit_16(2046); -emit_16(2113); -emit_16(2047); -emit_16(2114); -emit_16(2048); -emit_16(2114); -emit_16(2047); -emit_16(2114); -emit_16(2048); -emit_16(2115); -emit_16(2049); -emit_16(2115); -emit_16(2048); -emit_16(2115); -emit_16(2049); -emit_16(2116); -emit_16(2050); -emit_16(2116); -emit_16(2049); -emit_16(2116); -emit_16(2050); -emit_16(2117); -emit_16(2051); -emit_16(2117); -emit_16(2050); -emit_16(2117); -emit_16(2051); -emit_16(2118); -emit_16(2052); -emit_16(2118); -emit_16(2051); -emit_16(2118); -emit_16(2052); -emit_16(2119); -emit_16(2053); -emit_16(2119); -emit_16(2052); -emit_16(2119); -emit_16(2053); -emit_16(2120); -emit_16(2054); -emit_16(2120); -emit_16(2053); -emit_16(2120); -emit_16(2054); -emit_16(2121); -emit_16(2055); -emit_16(2121); -emit_16(2054); -emit_16(2121); -emit_16(2055); -emit_16(2122); -emit_16(2056); -emit_16(2122); -emit_16(2055); -emit_16(2122); -emit_16(2056); -emit_16(2123); -emit_16(2057); -emit_16(2123); -emit_16(2056); -emit_16(2123); -emit_16(2057); -emit_16(2124); -emit_16(2058); -emit_16(2124); -emit_16(2057); -emit_16(2124); -emit_16(2058); -emit_16(2125); -emit_16(2059); -emit_16(2125); -emit_16(2058); -emit_16(2125); -emit_16(2059); -emit_16(2126); -emit_16(2060); -emit_16(2126); -emit_16(2059); -emit_16(2126); -emit_16(2060); -emit_16(2127); -emit_16(2061); -emit_16(2127); -emit_16(2060); -emit_16(2127); -emit_16(2061); -emit_16(2128); -emit_16(2062); -emit_16(2128); -emit_16(2061); -emit_16(2128); -emit_16(2062); -emit_16(2129); -emit_16(2063); -emit_16(2129); -emit_16(2062); -emit_16(2129); -emit_16(2063); -emit_16(2130); -emit_16(2064); -emit_16(2130); -emit_16(2063); -emit_16(2130); -emit_16(2064); -emit_16(2131); -emit_16(2065); -emit_16(2131); -emit_16(2064); -emit_16(2131); -emit_16(2065); -emit_16(2132); -emit_16(2066); -emit_16(2132); -emit_16(2065); -emit_16(2132); -emit_16(2066); -emit_16(2133); -emit_16(2067); -emit_16(2133); -emit_16(2066); -emit_16(2133); -emit_16(2067); -emit_16(2134); -emit_16(2068); -emit_16(2134); -emit_16(2067); -emit_16(2134); -emit_16(2068); -emit_16(2135); -emit_16(2069); -emit_16(2135); -emit_16(2068); -emit_16(2135); -emit_16(2069); -emit_16(2136); -emit_16(2070); -emit_16(2136); -emit_16(2069); -emit_16(2136); -emit_16(2070); -emit_16(2137); -emit_16(2071); -emit_16(2137); -emit_16(2070); -emit_16(2137); -emit_16(2071); -emit_16(2138); -emit_16(2072); -emit_16(2138); -emit_16(2071); -emit_16(2138); -emit_16(2072); -emit_16(2139); -emit_16(2073); -emit_16(2139); -emit_16(2072); -emit_16(2139); -emit_16(2073); -emit_16(2140); -emit_16(2074); -emit_16(2140); -emit_16(2073); -emit_16(2140); -emit_16(2074); -emit_16(2141); -emit_16(2075); -emit_16(2141); -emit_16(2074); -emit_16(2141); -emit_16(2075); -emit_16(2142); -emit_16(2076); -emit_16(2142); -emit_16(2075); -emit_16(2142); -emit_16(2076); -emit_16(2143); -emit_16(2077); -emit_16(2143); -emit_16(2076); -emit_16(2143); -emit_16(2077); -emit_16(2144); -emit_16(2078); -emit_16(2144); -emit_16(2077); -emit_16(2144); -emit_16(2078); -emit_16(2145); -emit_16(2079); -emit_16(2145); -emit_16(2078); -emit_16(2145); -emit_16(2079); -emit_16(2146); -emit_16(2080); -emit_16(2146); -emit_16(2079); -emit_16(2146); -emit_16(2080); -emit_16(2147); -emit_16(2081); -emit_16(2147); -emit_16(2080); -emit_16(2147); -emit_16(2081); -emit_16(2148); -emit_16(2082); -emit_16(2148); -emit_16(2081); -emit_16(2148); -emit_16(2082); -emit_16(2149); -emit_16(2083); -emit_16(2149); -emit_16(2082); -emit_16(2149); -emit_16(2083); -emit_16(2150); -emit_16(2084); -emit_16(2150); -emit_16(2083); -emit_16(2150); -emit_16(2084); -emit_16(2151); -emit_16(2085); -emit_16(2151); -emit_16(2084); -emit_16(2151); -emit_16(2085); -emit_16(2152); -emit_16(2086); -emit_16(2152); -emit_16(2085); -emit_16(2152); -emit_16(2086); -emit_16(2153); -emit_16(2087); -emit_16(2153); -emit_16(2086); -emit_16(2153); -emit_16(2087); -emit_16(2154); -emit_16(2088); -emit_16(2154); -emit_16(2087); -emit_16(2154); -emit_16(2088); -emit_16(2155); -emit_16(2089); -emit_16(2155); -emit_16(2088); -emit_16(2155); -emit_16(2089); -emit_16(2156); -emit_16(2090); -emit_16(2156); -emit_16(2089); -emit_16(2156); -emit_16(2090); -emit_16(2157); -emit_16(2091); -emit_16(2157); -emit_16(2090); -emit_16(2157); -emit_16(2091); -emit_16(2158); -emit_16(2092); -emit_16(2158); -emit_16(2091); -emit_16(2158); -emit_16(2092); -emit_16(2159); -emit_16(2093); -emit_16(2159); -emit_16(2092); -emit_16(2159); -emit_16(2093); -emit_16(2160); -emit_16(2094); -emit_16(2160); -emit_16(2093); -emit_16(2160); -emit_16(2094); -emit_16(2161); -emit_16(2095); -emit_16(2161); -emit_16(2094); -emit_16(2161); -emit_16(2095); -emit_16(2162); -emit_16(2096); -emit_16(2162); -emit_16(2095); -emit_16(2162); -emit_16(2096); -emit_16(2163); -emit_16(2097); -emit_16(2163); -emit_16(2096); -emit_16(2163); -emit_16(2097); -emit_16(2164); -emit_16(2098); -emit_16(2164); -emit_16(2097); -emit_16(2164); -emit_16(2098); -emit_16(2165); -emit_16(2099); -emit_16(2165); -emit_16(2098); -emit_16(2165); -emit_16(2099); -emit_16(2166); -emit_16(2100); -emit_16(2166); -emit_16(2099); -emit_16(2166); -emit_16(2100); -emit_16(2167); -emit_16(2101); -emit_16(2167); -emit_16(2100); -emit_16(2167); -emit_16(2101); -emit_16(2168); -emit_16(2102); -emit_16(2168); -emit_16(2101); -emit_16(2168); -emit_16(2102); -emit_16(2169); -emit_16(2103); -emit_16(2169); -emit_16(2102); -emit_16(2169); -emit_16(2103); -emit_16(2170); -emit_16(2104); -emit_16(2170); -emit_16(2103); -emit_16(2170); -emit_16(2104); -emit_16(2171); -emit_16(2105); -emit_16(2171); -emit_16(2104); -emit_16(2171); -emit_16(2105); -emit_16(2172); -emit_16(2106); -emit_16(2172); -emit_16(2105); -emit_16(2172); -emit_16(2106); -emit_16(2173); -emit_16(2107); -emit_16(2173); -emit_16(2106); -emit_16(2173); -emit_16(2107); -emit_16(2174); -emit_16(2108); -emit_16(2174); -emit_16(2107); -emit_16(2174); -emit_16(2108); -emit_16(2175); -emit_16(2109); -emit_16(2175); -emit_16(2108); -emit_16(2175); -emit_16(2109); -emit_16(2176); -emit_16(2110); -emit_16(2176); -emit_16(2109); -emit_16(2176); -emit_16(2110); -emit_16(2177); -emit_16(2111); -emit_16(2177); -emit_16(2110); -emit_16(2178); -emit_16(2112); -emit_16(2179); -emit_16(2113); -emit_16(2179); -emit_16(2112); -emit_16(2179); -emit_16(2113); -emit_16(2180); -emit_16(2114); -emit_16(2180); -emit_16(2113); -emit_16(2180); -emit_16(2114); -emit_16(2181); -emit_16(2115); -emit_16(2181); -emit_16(2114); -emit_16(2181); -emit_16(2115); -emit_16(2182); -emit_16(2116); -emit_16(2182); -emit_16(2115); -emit_16(2182); -emit_16(2116); -emit_16(2183); -emit_16(2117); -emit_16(2183); -emit_16(2116); -emit_16(2183); -emit_16(2117); -emit_16(2184); -emit_16(2118); -emit_16(2184); -emit_16(2117); -emit_16(2184); -emit_16(2118); -emit_16(2185); -emit_16(2119); -emit_16(2185); -emit_16(2118); -emit_16(2185); -emit_16(2119); -emit_16(2186); -emit_16(2120); -emit_16(2186); -emit_16(2119); -emit_16(2186); -emit_16(2120); -emit_16(2187); -emit_16(2121); -emit_16(2187); -emit_16(2120); -emit_16(2187); -emit_16(2121); -emit_16(2188); -emit_16(2122); -emit_16(2188); -emit_16(2121); -emit_16(2188); -emit_16(2122); -emit_16(2189); -emit_16(2123); -emit_16(2189); -emit_16(2122); -emit_16(2189); -emit_16(2123); -emit_16(2190); -emit_16(2124); -emit_16(2190); -emit_16(2123); -emit_16(2190); -emit_16(2124); -emit_16(2191); -emit_16(2125); -emit_16(2191); -emit_16(2124); -emit_16(2191); -emit_16(2125); -emit_16(2192); -emit_16(2126); -emit_16(2192); -emit_16(2125); -emit_16(2192); -emit_16(2126); -emit_16(2193); -emit_16(2127); -emit_16(2193); -emit_16(2126); -emit_16(2193); -emit_16(2127); -emit_16(2194); -emit_16(2128); -emit_16(2194); -emit_16(2127); -emit_16(2194); -emit_16(2128); -emit_16(2195); -emit_16(2129); -emit_16(2195); -emit_16(2128); -emit_16(2195); -emit_16(2129); -emit_16(2196); -emit_16(2130); -emit_16(2196); -emit_16(2129); -emit_16(2196); -emit_16(2130); -emit_16(2197); -emit_16(2131); -emit_16(2197); -emit_16(2130); -emit_16(2197); -emit_16(2131); -emit_16(2198); -emit_16(2132); -emit_16(2198); -emit_16(2131); -emit_16(2198); -emit_16(2132); -emit_16(2199); -emit_16(2133); -emit_16(2199); -emit_16(2132); -emit_16(2199); -emit_16(2133); -emit_16(2200); -emit_16(2134); -emit_16(2200); -emit_16(2133); -emit_16(2200); -emit_16(2134); -emit_16(2201); -emit_16(2135); -emit_16(2201); -emit_16(2134); -emit_16(2201); -emit_16(2135); -emit_16(2202); -emit_16(2136); -emit_16(2202); -emit_16(2135); -emit_16(2202); -emit_16(2136); -emit_16(2203); -emit_16(2137); -emit_16(2203); -emit_16(2136); -emit_16(2203); -emit_16(2137); -emit_16(2204); -emit_16(2138); -emit_16(2204); -emit_16(2137); -emit_16(2204); -emit_16(2138); -emit_16(2205); -emit_16(2139); -emit_16(2205); -emit_16(2138); -emit_16(2205); -emit_16(2139); -emit_16(2206); -emit_16(2140); -emit_16(2206); -emit_16(2139); -emit_16(2206); -emit_16(2140); -emit_16(2207); -emit_16(2141); -emit_16(2207); -emit_16(2140); -emit_16(2207); -emit_16(2141); -emit_16(2208); -emit_16(2142); -emit_16(2208); -emit_16(2141); -emit_16(2208); -emit_16(2142); -emit_16(2209); -emit_16(2143); -emit_16(2209); -emit_16(2142); -emit_16(2209); -emit_16(2143); -emit_16(2210); -emit_16(2144); -emit_16(2210); -emit_16(2143); -emit_16(2210); -emit_16(2144); -emit_16(2211); -emit_16(2145); -emit_16(2211); -emit_16(2144); -emit_16(2211); -emit_16(2145); -emit_16(2212); -emit_16(2146); -emit_16(2212); -emit_16(2145); -emit_16(2212); -emit_16(2146); -emit_16(2213); -emit_16(2147); -emit_16(2213); -emit_16(2146); -emit_16(2213); -emit_16(2147); -emit_16(2214); -emit_16(2148); -emit_16(2214); -emit_16(2147); -emit_16(2214); -emit_16(2148); -emit_16(2215); -emit_16(2149); -emit_16(2215); -emit_16(2148); -emit_16(2215); -emit_16(2149); -emit_16(2216); -emit_16(2150); -emit_16(2216); -emit_16(2149); -emit_16(2216); -emit_16(2150); -emit_16(2217); -emit_16(2151); -emit_16(2217); -emit_16(2150); -emit_16(2217); -emit_16(2151); -emit_16(2218); -emit_16(2152); -emit_16(2218); -emit_16(2151); -emit_16(2218); -emit_16(2152); -emit_16(2219); -emit_16(2153); -emit_16(2219); -emit_16(2152); -emit_16(2219); -emit_16(2153); -emit_16(2220); -emit_16(2154); -emit_16(2220); -emit_16(2153); -emit_16(2220); -emit_16(2154); -emit_16(2221); -emit_16(2155); -emit_16(2221); -emit_16(2154); -emit_16(2221); -emit_16(2155); -emit_16(2222); -emit_16(2156); -emit_16(2222); -emit_16(2155); -emit_16(2222); -emit_16(2156); -emit_16(2223); -emit_16(2157); -emit_16(2223); -emit_16(2156); -emit_16(2223); -emit_16(2157); -emit_16(2224); -emit_16(2158); -emit_16(2224); -emit_16(2157); -emit_16(2224); -emit_16(2158); -emit_16(2225); -emit_16(2159); -emit_16(2225); -emit_16(2158); -emit_16(2225); -emit_16(2159); -emit_16(2226); -emit_16(2160); -emit_16(2226); -emit_16(2159); -emit_16(2226); -emit_16(2160); -emit_16(2227); -emit_16(2161); -emit_16(2227); -emit_16(2160); -emit_16(2227); -emit_16(2161); -emit_16(2228); -emit_16(2162); -emit_16(2228); -emit_16(2161); -emit_16(2228); -emit_16(2162); -emit_16(2229); -emit_16(2163); -emit_16(2229); -emit_16(2162); -emit_16(2229); -emit_16(2163); -emit_16(2230); -emit_16(2164); -emit_16(2230); -emit_16(2163); -emit_16(2230); -emit_16(2164); -emit_16(2231); -emit_16(2165); -emit_16(2231); -emit_16(2164); -emit_16(2231); -emit_16(2165); -emit_16(2232); -emit_16(2166); -emit_16(2232); -emit_16(2165); -emit_16(2232); -emit_16(2166); -emit_16(2233); -emit_16(2167); -emit_16(2233); -emit_16(2166); -emit_16(2233); -emit_16(2167); -emit_16(2234); -emit_16(2168); -emit_16(2234); -emit_16(2167); -emit_16(2234); -emit_16(2168); -emit_16(2235); -emit_16(2169); -emit_16(2235); -emit_16(2168); -emit_16(2235); -emit_16(2169); -emit_16(2236); -emit_16(2170); -emit_16(2236); -emit_16(2169); -emit_16(2236); -emit_16(2170); -emit_16(2237); -emit_16(2171); -emit_16(2237); -emit_16(2170); -emit_16(2237); -emit_16(2171); -emit_16(2238); -emit_16(2172); -emit_16(2238); -emit_16(2171); -emit_16(2238); -emit_16(2172); -emit_16(2239); -emit_16(2173); -emit_16(2239); -emit_16(2172); -emit_16(2239); -emit_16(2173); -emit_16(2240); -emit_16(2174); -emit_16(2240); -emit_16(2173); -emit_16(2240); -emit_16(2174); -emit_16(2241); -emit_16(2175); -emit_16(2241); -emit_16(2174); -emit_16(2241); -emit_16(2175); -emit_16(2242); -emit_16(2176); -emit_16(2242); -emit_16(2175); -emit_16(2242); -emit_16(2176); -emit_16(2243); -emit_16(2177); -emit_16(2243); -emit_16(2176); -emit_16(2244); -emit_16(2178); -emit_16(2245); -emit_16(2179); -emit_16(2245); -emit_16(2178); -emit_16(2245); -emit_16(2179); -emit_16(2246); -emit_16(2180); -emit_16(2246); -emit_16(2179); -emit_16(2246); -emit_16(2180); -emit_16(2247); -emit_16(2181); -emit_16(2247); -emit_16(2180); -emit_16(2247); -emit_16(2181); -emit_16(2248); -emit_16(2182); -emit_16(2248); -emit_16(2181); -emit_16(2248); -emit_16(2182); -emit_16(2249); -emit_16(2183); -emit_16(2249); -emit_16(2182); -emit_16(2249); -emit_16(2183); -emit_16(2250); -emit_16(2184); -emit_16(2250); -emit_16(2183); -emit_16(2250); -emit_16(2184); -emit_16(2251); -emit_16(2185); -emit_16(2251); -emit_16(2184); -emit_16(2251); -emit_16(2185); -emit_16(2252); -emit_16(2186); -emit_16(2252); -emit_16(2185); -emit_16(2252); -emit_16(2186); -emit_16(2253); -emit_16(2187); -emit_16(2253); -emit_16(2186); -emit_16(2253); -emit_16(2187); -emit_16(2254); -emit_16(2188); -emit_16(2254); -emit_16(2187); -emit_16(2254); -emit_16(2188); -emit_16(2255); -emit_16(2189); -emit_16(2255); -emit_16(2188); -emit_16(2255); -emit_16(2189); -emit_16(2256); -emit_16(2190); -emit_16(2256); -emit_16(2189); -emit_16(2256); -emit_16(2190); -emit_16(2257); -emit_16(2191); -emit_16(2257); -emit_16(2190); -emit_16(2257); -emit_16(2191); -emit_16(2258); -emit_16(2192); -emit_16(2258); -emit_16(2191); -emit_16(2258); -emit_16(2192); -emit_16(2259); -emit_16(2193); -emit_16(2259); -emit_16(2192); -emit_16(2259); -emit_16(2193); -emit_16(2260); -emit_16(2194); -emit_16(2260); -emit_16(2193); -emit_16(2260); -emit_16(2194); -emit_16(2261); -emit_16(2195); -emit_16(2261); -emit_16(2194); -emit_16(2261); -emit_16(2195); -emit_16(2262); -emit_16(2196); -emit_16(2262); -emit_16(2195); -emit_16(2262); -emit_16(2196); -emit_16(2263); -emit_16(2197); -emit_16(2263); -emit_16(2196); -emit_16(2263); -emit_16(2197); -emit_16(2264); -emit_16(2198); -emit_16(2264); -emit_16(2197); -emit_16(2264); -emit_16(2198); -emit_16(2265); -emit_16(2199); -emit_16(2265); -emit_16(2198); -emit_16(2265); -emit_16(2199); -emit_16(2266); -emit_16(2200); -emit_16(2266); -emit_16(2199); -emit_16(2266); -emit_16(2200); -emit_16(2267); -emit_16(2201); -emit_16(2267); -emit_16(2200); -emit_16(2267); -emit_16(2201); -emit_16(2268); -emit_16(2202); -emit_16(2268); -emit_16(2201); -emit_16(2268); -emit_16(2202); -emit_16(2269); -emit_16(2203); -emit_16(2269); -emit_16(2202); -emit_16(2269); -emit_16(2203); -emit_16(2270); -emit_16(2204); -emit_16(2270); -emit_16(2203); -emit_16(2270); -emit_16(2204); -emit_16(2271); -emit_16(2205); -emit_16(2271); -emit_16(2204); -emit_16(2271); -emit_16(2205); -emit_16(2272); -emit_16(2206); -emit_16(2272); -emit_16(2205); -emit_16(2272); -emit_16(2206); -emit_16(2273); -emit_16(2207); -emit_16(2273); -emit_16(2206); -emit_16(2273); -emit_16(2207); -emit_16(2274); -emit_16(2208); -emit_16(2274); -emit_16(2207); -emit_16(2274); -emit_16(2208); -emit_16(2275); -emit_16(2209); -emit_16(2275); -emit_16(2208); -emit_16(2275); -emit_16(2209); -emit_16(2276); -emit_16(2210); -emit_16(2276); -emit_16(2209); -emit_16(2276); -emit_16(2210); -emit_16(2277); -emit_16(2211); -emit_16(2277); -emit_16(2210); -emit_16(2277); -emit_16(2211); -emit_16(2278); -emit_16(2212); -emit_16(2278); -emit_16(2211); -emit_16(2278); -emit_16(2212); -emit_16(2279); -emit_16(2213); -emit_16(2279); -emit_16(2212); -emit_16(2279); -emit_16(2213); -emit_16(2280); -emit_16(2214); -emit_16(2280); -emit_16(2213); -emit_16(2280); -emit_16(2214); -emit_16(2281); -emit_16(2215); -emit_16(2281); -emit_16(2214); -emit_16(2281); -emit_16(2215); -emit_16(2282); -emit_16(2216); -emit_16(2282); -emit_16(2215); -emit_16(2282); -emit_16(2216); -emit_16(2283); -emit_16(2217); -emit_16(2283); -emit_16(2216); -emit_16(2283); -emit_16(2217); -emit_16(2284); -emit_16(2218); -emit_16(2284); -emit_16(2217); -emit_16(2284); -emit_16(2218); -emit_16(2285); -emit_16(2219); -emit_16(2285); -emit_16(2218); -emit_16(2285); -emit_16(2219); -emit_16(2286); -emit_16(2220); -emit_16(2286); -emit_16(2219); -emit_16(2286); -emit_16(2220); -emit_16(2287); -emit_16(2221); -emit_16(2287); -emit_16(2220); -emit_16(2287); -emit_16(2221); -emit_16(2288); -emit_16(2222); -emit_16(2288); -emit_16(2221); -emit_16(2288); -emit_16(2222); -emit_16(2289); -emit_16(2223); -emit_16(2289); -emit_16(2222); -emit_16(2289); -emit_16(2223); -emit_16(2290); -emit_16(2224); -emit_16(2290); -emit_16(2223); -emit_16(2290); -emit_16(2224); -emit_16(2291); -emit_16(2225); -emit_16(2291); -emit_16(2224); -emit_16(2291); -emit_16(2225); -emit_16(2292); -emit_16(2226); -emit_16(2292); -emit_16(2225); -emit_16(2292); -emit_16(2226); -emit_16(2293); -emit_16(2227); -emit_16(2293); -emit_16(2226); -emit_16(2293); -emit_16(2227); -emit_16(2294); -emit_16(2228); -emit_16(2294); -emit_16(2227); -emit_16(2294); -emit_16(2228); -emit_16(2295); -emit_16(2229); -emit_16(2295); -emit_16(2228); -emit_16(2295); -emit_16(2229); -emit_16(2296); -emit_16(2230); -emit_16(2296); -emit_16(2229); -emit_16(2296); -emit_16(2230); -emit_16(2297); -emit_16(2231); -emit_16(2297); -emit_16(2230); -emit_16(2297); -emit_16(2231); -emit_16(2298); -emit_16(2232); -emit_16(2298); -emit_16(2231); -emit_16(2298); -emit_16(2232); -emit_16(2299); -emit_16(2233); -emit_16(2299); -emit_16(2232); -emit_16(2299); -emit_16(2233); -emit_16(2300); -emit_16(2234); -emit_16(2300); -emit_16(2233); -emit_16(2300); -emit_16(2234); -emit_16(2301); -emit_16(2235); -emit_16(2301); -emit_16(2234); -emit_16(2301); -emit_16(2235); -emit_16(2302); -emit_16(2236); -emit_16(2302); -emit_16(2235); -emit_16(2302); -emit_16(2236); -emit_16(2303); -emit_16(2237); -emit_16(2303); -emit_16(2236); -emit_16(2303); -emit_16(2237); -emit_16(2304); -emit_16(2238); -emit_16(2304); -emit_16(2237); -emit_16(2304); -emit_16(2238); -emit_16(2305); -emit_16(2239); -emit_16(2305); -emit_16(2238); -emit_16(2305); -emit_16(2239); -emit_16(2306); -emit_16(2240); -emit_16(2306); -emit_16(2239); -emit_16(2306); -emit_16(2240); -emit_16(2307); -emit_16(2241); -emit_16(2307); -emit_16(2240); -emit_16(2307); -emit_16(2241); -emit_16(2308); -emit_16(2242); -emit_16(2308); -emit_16(2241); -emit_16(2308); -emit_16(2242); -emit_16(2309); -emit_16(2243); -emit_16(2309); -emit_16(2242); -emit_start(Landscape07Idx) -emit_16(0); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(2); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(4); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(6); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(8); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(10); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(12); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(14); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(16); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(18); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(20); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(22); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(24); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(26); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(28); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(30); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(32); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(34); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(36); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(38); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(40); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(42); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(44); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(46); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(48); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(50); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(52); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(54); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(56); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(58); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(60); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(62); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(64); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(66); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(68); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(70); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(72); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(74); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(76); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(78); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(80); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(82); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(84); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(86); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(88); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(90); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(92); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(94); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(96); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(98); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(100); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(102); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(104); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(106); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(108); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(110); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(112); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(114); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(116); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(118); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(120); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(122); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(124); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(126); -emit_16(127); -emit_16(126); -emit_16(125); -emit_16(128); -emit_16(0); -emit_16(129); -emit_16(2); -emit_16(129); -emit_16(0); -emit_16(129); -emit_16(2); -emit_16(130); -emit_16(4); -emit_16(130); -emit_16(2); -emit_16(130); -emit_16(4); -emit_16(131); -emit_16(6); -emit_16(131); -emit_16(4); -emit_16(131); -emit_16(6); -emit_16(132); -emit_16(8); -emit_16(132); -emit_16(6); -emit_16(132); -emit_16(8); -emit_16(133); -emit_16(10); -emit_16(133); -emit_16(8); -emit_16(133); -emit_16(10); -emit_16(134); -emit_16(12); -emit_16(134); -emit_16(10); -emit_16(134); -emit_16(12); -emit_16(135); -emit_16(14); -emit_16(135); -emit_16(12); -emit_16(135); -emit_16(14); -emit_16(136); -emit_16(16); -emit_16(136); -emit_16(14); -emit_16(136); -emit_16(16); -emit_16(137); -emit_16(18); -emit_16(137); -emit_16(16); -emit_16(137); -emit_16(18); -emit_16(138); -emit_16(20); -emit_16(138); -emit_16(18); -emit_16(138); -emit_16(20); -emit_16(139); -emit_16(22); -emit_16(139); -emit_16(20); -emit_16(139); -emit_16(22); -emit_16(140); -emit_16(24); -emit_16(140); -emit_16(22); -emit_16(140); -emit_16(24); -emit_16(141); -emit_16(26); -emit_16(141); -emit_16(24); -emit_16(141); -emit_16(26); -emit_16(142); -emit_16(28); -emit_16(142); -emit_16(26); -emit_16(142); -emit_16(28); -emit_16(143); -emit_16(30); -emit_16(143); -emit_16(28); -emit_16(143); -emit_16(30); -emit_16(144); -emit_16(32); -emit_16(144); -emit_16(30); -emit_16(144); -emit_16(32); -emit_16(145); -emit_16(34); -emit_16(145); -emit_16(32); -emit_16(145); -emit_16(34); -emit_16(146); -emit_16(36); -emit_16(146); -emit_16(34); -emit_16(146); -emit_16(36); -emit_16(147); -emit_16(38); -emit_16(147); -emit_16(36); -emit_16(147); -emit_16(38); -emit_16(148); -emit_16(40); -emit_16(148); -emit_16(38); -emit_16(148); -emit_16(40); -emit_16(149); -emit_16(42); -emit_16(149); -emit_16(40); -emit_16(149); -emit_16(42); -emit_16(150); -emit_16(44); -emit_16(150); -emit_16(42); -emit_16(150); -emit_16(44); -emit_16(151); -emit_16(46); -emit_16(151); -emit_16(44); -emit_16(151); -emit_16(46); -emit_16(152); -emit_16(48); -emit_16(152); -emit_16(46); -emit_16(152); -emit_16(48); -emit_16(153); -emit_16(50); -emit_16(153); -emit_16(48); -emit_16(153); -emit_16(50); -emit_16(154); -emit_16(52); -emit_16(154); -emit_16(50); -emit_16(154); -emit_16(52); -emit_16(155); -emit_16(54); -emit_16(155); -emit_16(52); -emit_16(155); -emit_16(54); -emit_16(156); -emit_16(56); -emit_16(156); -emit_16(54); -emit_16(156); -emit_16(56); -emit_16(157); -emit_16(58); -emit_16(157); -emit_16(56); -emit_16(157); -emit_16(58); -emit_16(158); -emit_16(60); -emit_16(158); -emit_16(58); -emit_16(158); -emit_16(60); -emit_16(159); -emit_16(62); -emit_16(159); -emit_16(60); -emit_16(159); -emit_16(62); -emit_16(160); -emit_16(64); -emit_16(160); -emit_16(62); -emit_16(160); -emit_16(64); -emit_16(161); -emit_16(66); -emit_16(161); -emit_16(64); -emit_16(161); -emit_16(66); -emit_16(162); -emit_16(68); -emit_16(162); -emit_16(66); -emit_16(162); -emit_16(68); -emit_16(163); -emit_16(70); -emit_16(163); -emit_16(68); -emit_16(163); -emit_16(70); -emit_16(164); -emit_16(72); -emit_16(164); -emit_16(70); -emit_16(164); -emit_16(72); -emit_16(165); -emit_16(74); -emit_16(165); -emit_16(72); -emit_16(165); -emit_16(74); -emit_16(166); -emit_16(76); -emit_16(166); -emit_16(74); -emit_16(166); -emit_16(76); -emit_16(167); -emit_16(78); -emit_16(167); -emit_16(76); -emit_16(167); -emit_16(78); -emit_16(168); -emit_16(80); -emit_16(168); -emit_16(78); -emit_16(168); -emit_16(80); -emit_16(169); -emit_16(82); -emit_16(169); -emit_16(80); -emit_16(169); -emit_16(82); -emit_16(170); -emit_16(84); -emit_16(170); -emit_16(82); -emit_16(170); -emit_16(84); -emit_16(171); -emit_16(86); -emit_16(171); -emit_16(84); -emit_16(171); -emit_16(86); -emit_16(172); -emit_16(88); -emit_16(172); -emit_16(86); -emit_16(172); -emit_16(88); -emit_16(173); -emit_16(90); -emit_16(173); -emit_16(88); -emit_16(173); -emit_16(90); -emit_16(174); -emit_16(92); -emit_16(174); -emit_16(90); -emit_16(174); -emit_16(92); -emit_16(175); -emit_16(94); -emit_16(175); -emit_16(92); -emit_16(175); -emit_16(94); -emit_16(176); -emit_16(96); -emit_16(176); -emit_16(94); -emit_16(176); -emit_16(96); -emit_16(177); -emit_16(98); -emit_16(177); -emit_16(96); -emit_16(177); -emit_16(98); -emit_16(178); -emit_16(100); -emit_16(178); -emit_16(98); -emit_16(178); -emit_16(100); -emit_16(179); -emit_16(102); -emit_16(179); -emit_16(100); -emit_16(179); -emit_16(102); -emit_16(180); -emit_16(104); -emit_16(180); -emit_16(102); -emit_16(180); -emit_16(104); -emit_16(181); -emit_16(106); -emit_16(181); -emit_16(104); -emit_16(181); -emit_16(106); -emit_16(182); -emit_16(108); -emit_16(182); -emit_16(106); -emit_16(182); -emit_16(108); -emit_16(183); -emit_16(110); -emit_16(183); -emit_16(108); -emit_16(183); -emit_16(110); -emit_16(184); -emit_16(112); -emit_16(184); -emit_16(110); -emit_16(184); -emit_16(112); -emit_16(185); -emit_16(114); -emit_16(185); -emit_16(112); -emit_16(185); -emit_16(114); -emit_16(186); -emit_16(116); -emit_16(186); -emit_16(114); -emit_16(186); -emit_16(116); -emit_16(187); -emit_16(118); -emit_16(187); -emit_16(116); -emit_16(187); -emit_16(118); -emit_16(188); -emit_16(120); -emit_16(188); -emit_16(118); -emit_16(188); -emit_16(120); -emit_16(189); -emit_16(122); -emit_16(189); -emit_16(120); -emit_16(189); -emit_16(122); -emit_16(190); -emit_16(124); -emit_16(190); -emit_16(122); -emit_16(190); -emit_16(124); -emit_16(191); -emit_16(126); -emit_16(191); -emit_16(124); -emit_16(192); -emit_16(128); -emit_16(193); -emit_16(129); -emit_16(193); -emit_16(128); -emit_16(193); -emit_16(129); -emit_16(194); -emit_16(130); -emit_16(194); -emit_16(129); -emit_16(194); -emit_16(130); -emit_16(195); -emit_16(131); -emit_16(195); -emit_16(130); -emit_16(195); -emit_16(131); -emit_16(196); -emit_16(132); -emit_16(196); -emit_16(131); -emit_16(196); -emit_16(132); -emit_16(197); -emit_16(133); -emit_16(197); -emit_16(132); -emit_16(197); -emit_16(133); -emit_16(198); -emit_16(134); -emit_16(198); -emit_16(133); -emit_16(198); -emit_16(134); -emit_16(199); -emit_16(135); -emit_16(199); -emit_16(134); -emit_16(199); -emit_16(135); -emit_16(200); -emit_16(136); -emit_16(200); -emit_16(135); -emit_16(200); -emit_16(136); -emit_16(201); -emit_16(137); -emit_16(201); -emit_16(136); -emit_16(201); -emit_16(137); -emit_16(202); -emit_16(138); -emit_16(202); -emit_16(137); -emit_16(202); -emit_16(138); -emit_16(203); -emit_16(139); -emit_16(203); -emit_16(138); -emit_16(203); -emit_16(139); -emit_16(204); -emit_16(140); -emit_16(204); -emit_16(139); -emit_16(204); -emit_16(140); -emit_16(205); -emit_16(141); -emit_16(205); -emit_16(140); -emit_16(205); -emit_16(141); -emit_16(206); -emit_16(142); -emit_16(206); -emit_16(141); -emit_16(206); -emit_16(142); -emit_16(207); -emit_16(143); -emit_16(207); -emit_16(142); -emit_16(207); -emit_16(143); -emit_16(208); -emit_16(144); -emit_16(208); -emit_16(143); -emit_16(208); -emit_16(144); -emit_16(209); -emit_16(145); -emit_16(209); -emit_16(144); -emit_16(209); -emit_16(145); -emit_16(210); -emit_16(146); -emit_16(210); -emit_16(145); -emit_16(210); -emit_16(146); -emit_16(211); -emit_16(147); -emit_16(211); -emit_16(146); -emit_16(211); -emit_16(147); -emit_16(212); -emit_16(148); -emit_16(212); -emit_16(147); -emit_16(212); -emit_16(148); -emit_16(213); -emit_16(149); -emit_16(213); -emit_16(148); -emit_16(213); -emit_16(149); -emit_16(214); -emit_16(150); -emit_16(214); -emit_16(149); -emit_16(214); -emit_16(150); -emit_16(215); -emit_16(151); -emit_16(215); -emit_16(150); -emit_16(215); -emit_16(151); -emit_16(216); -emit_16(152); -emit_16(216); -emit_16(151); -emit_16(216); -emit_16(152); -emit_16(217); -emit_16(153); -emit_16(217); -emit_16(152); -emit_16(217); -emit_16(153); -emit_16(218); -emit_16(154); -emit_16(218); -emit_16(153); -emit_16(218); -emit_16(154); -emit_16(219); -emit_16(155); -emit_16(219); -emit_16(154); -emit_16(219); -emit_16(155); -emit_16(220); -emit_16(156); -emit_16(220); -emit_16(155); -emit_16(220); -emit_16(156); -emit_16(221); -emit_16(157); -emit_16(221); -emit_16(156); -emit_16(221); -emit_16(157); -emit_16(222); -emit_16(158); -emit_16(222); -emit_16(157); -emit_16(222); -emit_16(158); -emit_16(223); -emit_16(159); -emit_16(223); -emit_16(158); -emit_16(223); -emit_16(159); -emit_16(224); -emit_16(160); -emit_16(224); -emit_16(159); -emit_16(224); -emit_16(160); -emit_16(225); -emit_16(161); -emit_16(225); -emit_16(160); -emit_16(225); -emit_16(161); -emit_16(226); -emit_16(162); -emit_16(226); -emit_16(161); -emit_16(226); -emit_16(162); -emit_16(227); -emit_16(163); -emit_16(227); -emit_16(162); -emit_16(227); -emit_16(163); -emit_16(228); -emit_16(164); -emit_16(228); -emit_16(163); -emit_16(228); -emit_16(164); -emit_16(229); -emit_16(165); -emit_16(229); -emit_16(164); -emit_16(229); -emit_16(165); -emit_16(230); -emit_16(166); -emit_16(230); -emit_16(165); -emit_16(230); -emit_16(166); -emit_16(231); -emit_16(167); -emit_16(231); -emit_16(166); -emit_16(231); -emit_16(167); -emit_16(232); -emit_16(168); -emit_16(232); -emit_16(167); -emit_16(232); -emit_16(168); -emit_16(233); -emit_16(169); -emit_16(233); -emit_16(168); -emit_16(233); -emit_16(169); -emit_16(234); -emit_16(170); -emit_16(234); -emit_16(169); -emit_16(234); -emit_16(170); -emit_16(235); -emit_16(171); -emit_16(235); -emit_16(170); -emit_16(235); -emit_16(171); -emit_16(236); -emit_16(172); -emit_16(236); -emit_16(171); -emit_16(236); -emit_16(172); -emit_16(237); -emit_16(173); -emit_16(237); -emit_16(172); -emit_16(237); -emit_16(173); -emit_16(238); -emit_16(174); -emit_16(238); -emit_16(173); -emit_16(238); -emit_16(174); -emit_16(239); -emit_16(175); -emit_16(239); -emit_16(174); -emit_16(239); -emit_16(175); -emit_16(240); -emit_16(176); -emit_16(240); -emit_16(175); -emit_16(240); -emit_16(176); -emit_16(241); -emit_16(177); -emit_16(241); -emit_16(176); -emit_16(241); -emit_16(177); -emit_16(242); -emit_16(178); -emit_16(242); -emit_16(177); -emit_16(242); -emit_16(178); -emit_16(243); -emit_16(179); -emit_16(243); -emit_16(178); -emit_16(243); -emit_16(179); -emit_16(244); -emit_16(180); -emit_16(244); -emit_16(179); -emit_16(244); -emit_16(180); -emit_16(245); -emit_16(181); -emit_16(245); -emit_16(180); -emit_16(245); -emit_16(181); -emit_16(246); -emit_16(182); -emit_16(246); -emit_16(181); -emit_16(246); -emit_16(182); -emit_16(247); -emit_16(183); -emit_16(247); -emit_16(182); -emit_16(247); -emit_16(183); -emit_16(248); -emit_16(184); -emit_16(248); -emit_16(183); -emit_16(248); -emit_16(184); -emit_16(249); -emit_16(185); -emit_16(249); -emit_16(184); -emit_16(249); -emit_16(185); -emit_16(250); -emit_16(186); -emit_16(250); -emit_16(185); -emit_16(250); -emit_16(186); -emit_16(251); -emit_16(187); -emit_16(251); -emit_16(186); -emit_16(251); -emit_16(187); -emit_16(252); -emit_16(188); -emit_16(252); -emit_16(187); -emit_16(252); -emit_16(188); -emit_16(253); -emit_16(189); -emit_16(253); -emit_16(188); -emit_16(253); -emit_16(189); -emit_16(254); -emit_16(190); -emit_16(254); -emit_16(189); -emit_16(254); -emit_16(190); -emit_16(255); -emit_16(191); -emit_16(255); -emit_16(190); -emit_16(256); -emit_16(192); -emit_16(257); -emit_16(193); -emit_16(257); -emit_16(192); -emit_16(257); -emit_16(193); -emit_16(258); -emit_16(194); -emit_16(258); -emit_16(193); -emit_16(258); -emit_16(194); -emit_16(259); -emit_16(195); -emit_16(259); -emit_16(194); -emit_16(259); -emit_16(195); -emit_16(260); -emit_16(196); -emit_16(260); -emit_16(195); -emit_16(260); -emit_16(196); -emit_16(261); -emit_16(197); -emit_16(261); -emit_16(196); -emit_16(261); -emit_16(197); -emit_16(262); -emit_16(198); -emit_16(262); -emit_16(197); -emit_16(262); -emit_16(198); -emit_16(263); -emit_16(199); -emit_16(263); -emit_16(198); -emit_16(263); -emit_16(199); -emit_16(264); -emit_16(200); -emit_16(264); -emit_16(199); -emit_16(264); -emit_16(200); -emit_16(265); -emit_16(201); -emit_16(265); -emit_16(200); -emit_16(265); -emit_16(201); -emit_16(266); -emit_16(202); -emit_16(266); -emit_16(201); -emit_16(266); -emit_16(202); -emit_16(267); -emit_16(203); -emit_16(267); -emit_16(202); -emit_16(267); -emit_16(203); -emit_16(268); -emit_16(204); -emit_16(268); -emit_16(203); -emit_16(268); -emit_16(204); -emit_16(269); -emit_16(205); -emit_16(269); -emit_16(204); -emit_16(269); -emit_16(205); -emit_16(270); -emit_16(206); -emit_16(270); -emit_16(205); -emit_16(270); -emit_16(206); -emit_16(271); -emit_16(207); -emit_16(271); -emit_16(206); -emit_16(271); -emit_16(207); -emit_16(272); -emit_16(208); -emit_16(272); -emit_16(207); -emit_16(272); -emit_16(208); -emit_16(273); -emit_16(209); -emit_16(273); -emit_16(208); -emit_16(273); -emit_16(209); -emit_16(274); -emit_16(210); -emit_16(274); -emit_16(209); -emit_16(274); -emit_16(210); -emit_16(275); -emit_16(211); -emit_16(275); -emit_16(210); -emit_16(275); -emit_16(211); -emit_16(276); -emit_16(212); -emit_16(276); -emit_16(211); -emit_16(276); -emit_16(212); -emit_16(277); -emit_16(213); -emit_16(277); -emit_16(212); -emit_16(277); -emit_16(213); -emit_16(278); -emit_16(214); -emit_16(278); -emit_16(213); -emit_16(278); -emit_16(214); -emit_16(279); -emit_16(215); -emit_16(279); -emit_16(214); -emit_16(279); -emit_16(215); -emit_16(280); -emit_16(216); -emit_16(280); -emit_16(215); -emit_16(280); -emit_16(216); -emit_16(281); -emit_16(217); -emit_16(281); -emit_16(216); -emit_16(281); -emit_16(217); -emit_16(282); -emit_16(218); -emit_16(282); -emit_16(217); -emit_16(282); -emit_16(218); -emit_16(283); -emit_16(219); -emit_16(283); -emit_16(218); -emit_16(283); -emit_16(219); -emit_16(284); -emit_16(220); -emit_16(284); -emit_16(219); -emit_16(284); -emit_16(220); -emit_16(285); -emit_16(221); -emit_16(285); -emit_16(220); -emit_16(285); -emit_16(221); -emit_16(286); -emit_16(222); -emit_16(286); -emit_16(221); -emit_16(286); -emit_16(222); -emit_16(287); -emit_16(223); -emit_16(287); -emit_16(222); -emit_16(287); -emit_16(223); -emit_16(288); -emit_16(224); -emit_16(288); -emit_16(223); -emit_16(288); -emit_16(224); -emit_16(289); -emit_16(225); -emit_16(289); -emit_16(224); -emit_16(289); -emit_16(225); -emit_16(290); -emit_16(226); -emit_16(290); -emit_16(225); -emit_16(290); -emit_16(226); -emit_16(291); -emit_16(227); -emit_16(291); -emit_16(226); -emit_16(291); -emit_16(227); -emit_16(292); -emit_16(228); -emit_16(292); -emit_16(227); -emit_16(292); -emit_16(228); -emit_16(293); -emit_16(229); -emit_16(293); -emit_16(228); -emit_16(293); -emit_16(229); -emit_16(294); -emit_16(230); -emit_16(294); -emit_16(229); -emit_16(294); -emit_16(230); -emit_16(295); -emit_16(231); -emit_16(295); -emit_16(230); -emit_16(295); -emit_16(231); -emit_16(296); -emit_16(232); -emit_16(296); -emit_16(231); -emit_16(296); -emit_16(232); -emit_16(297); -emit_16(233); -emit_16(297); -emit_16(232); -emit_16(297); -emit_16(233); -emit_16(298); -emit_16(234); -emit_16(298); -emit_16(233); -emit_16(298); -emit_16(234); -emit_16(299); -emit_16(235); -emit_16(299); -emit_16(234); -emit_16(299); -emit_16(235); -emit_16(300); -emit_16(236); -emit_16(300); -emit_16(235); -emit_16(300); -emit_16(236); -emit_16(301); -emit_16(237); -emit_16(301); -emit_16(236); -emit_16(301); -emit_16(237); -emit_16(302); -emit_16(238); -emit_16(302); -emit_16(237); -emit_16(302); -emit_16(238); -emit_16(303); -emit_16(239); -emit_16(303); -emit_16(238); -emit_16(303); -emit_16(239); -emit_16(304); -emit_16(240); -emit_16(304); -emit_16(239); -emit_16(304); -emit_16(240); -emit_16(305); -emit_16(241); -emit_16(305); -emit_16(240); -emit_16(305); -emit_16(241); -emit_16(306); -emit_16(242); -emit_16(306); -emit_16(241); -emit_16(306); -emit_16(242); -emit_16(307); -emit_16(243); -emit_16(307); -emit_16(242); -emit_16(307); -emit_16(243); -emit_16(308); -emit_16(244); -emit_16(308); -emit_16(243); -emit_16(308); -emit_16(244); -emit_16(309); -emit_16(245); -emit_16(309); -emit_16(244); -emit_16(309); -emit_16(245); -emit_16(310); -emit_16(246); -emit_16(310); -emit_16(245); -emit_16(310); -emit_16(246); -emit_16(311); -emit_16(247); -emit_16(311); -emit_16(246); -emit_16(311); -emit_16(247); -emit_16(312); -emit_16(248); -emit_16(312); -emit_16(247); -emit_16(312); -emit_16(248); -emit_16(313); -emit_16(249); -emit_16(313); -emit_16(248); -emit_16(313); -emit_16(249); -emit_16(314); -emit_16(250); -emit_16(314); -emit_16(249); -emit_16(314); -emit_16(250); -emit_16(315); -emit_16(251); -emit_16(315); -emit_16(250); -emit_16(315); -emit_16(251); -emit_16(316); -emit_16(252); -emit_16(316); -emit_16(251); -emit_16(316); -emit_16(252); -emit_16(317); -emit_16(253); -emit_16(317); -emit_16(252); -emit_16(317); -emit_16(253); -emit_16(318); -emit_16(254); -emit_16(318); -emit_16(253); -emit_16(318); -emit_16(254); -emit_16(319); -emit_16(255); -emit_16(319); -emit_16(254); -emit_16(320); -emit_16(256); -emit_16(321); -emit_16(257); -emit_16(321); -emit_16(256); -emit_16(321); -emit_16(257); -emit_16(322); -emit_16(258); -emit_16(322); -emit_16(257); -emit_16(322); -emit_16(258); -emit_16(323); -emit_16(259); -emit_16(323); -emit_16(258); -emit_16(323); -emit_16(259); -emit_16(324); -emit_16(260); -emit_16(324); -emit_16(259); -emit_16(324); -emit_16(260); -emit_16(325); -emit_16(261); -emit_16(325); -emit_16(260); -emit_16(325); -emit_16(261); -emit_16(326); -emit_16(262); -emit_16(326); -emit_16(261); -emit_16(326); -emit_16(262); -emit_16(327); -emit_16(263); -emit_16(327); -emit_16(262); -emit_16(327); -emit_16(263); -emit_16(328); -emit_16(264); -emit_16(328); -emit_16(263); -emit_16(328); -emit_16(264); -emit_16(329); -emit_16(265); -emit_16(329); -emit_16(264); -emit_16(329); -emit_16(265); -emit_16(330); -emit_16(266); -emit_16(330); -emit_16(265); -emit_16(330); -emit_16(266); -emit_16(331); -emit_16(267); -emit_16(331); -emit_16(266); -emit_16(331); -emit_16(267); -emit_16(332); -emit_16(268); -emit_16(332); -emit_16(267); -emit_16(332); -emit_16(268); -emit_16(333); -emit_16(269); -emit_16(333); -emit_16(268); -emit_16(333); -emit_16(269); -emit_16(334); -emit_16(270); -emit_16(334); -emit_16(269); -emit_16(334); -emit_16(270); -emit_16(335); -emit_16(271); -emit_16(335); -emit_16(270); -emit_16(335); -emit_16(271); -emit_16(336); -emit_16(272); -emit_16(336); -emit_16(271); -emit_16(336); -emit_16(272); -emit_16(337); -emit_16(273); -emit_16(337); -emit_16(272); -emit_16(337); -emit_16(273); -emit_16(338); -emit_16(274); -emit_16(338); -emit_16(273); -emit_16(338); -emit_16(274); -emit_16(339); -emit_16(275); -emit_16(339); -emit_16(274); -emit_16(339); -emit_16(275); -emit_16(340); -emit_16(276); -emit_16(340); -emit_16(275); -emit_16(340); -emit_16(276); -emit_16(341); -emit_16(277); -emit_16(341); -emit_16(276); -emit_16(341); -emit_16(277); -emit_16(342); -emit_16(278); -emit_16(342); -emit_16(277); -emit_16(342); -emit_16(278); -emit_16(343); -emit_16(279); -emit_16(343); -emit_16(278); -emit_16(343); -emit_16(279); -emit_16(344); -emit_16(280); -emit_16(344); -emit_16(279); -emit_16(344); -emit_16(280); -emit_16(345); -emit_16(281); -emit_16(345); -emit_16(280); -emit_16(345); -emit_16(281); -emit_16(346); -emit_16(282); -emit_16(346); -emit_16(281); -emit_16(346); -emit_16(282); -emit_16(347); -emit_16(283); -emit_16(347); -emit_16(282); -emit_16(347); -emit_16(283); -emit_16(348); -emit_16(284); -emit_16(348); -emit_16(283); -emit_16(348); -emit_16(284); -emit_16(349); -emit_16(285); -emit_16(349); -emit_16(284); -emit_16(349); -emit_16(285); -emit_16(350); -emit_16(286); -emit_16(350); -emit_16(285); -emit_16(350); -emit_16(286); -emit_16(351); -emit_16(287); -emit_16(351); -emit_16(286); -emit_16(351); -emit_16(287); -emit_16(352); -emit_16(288); -emit_16(352); -emit_16(287); -emit_16(352); -emit_16(288); -emit_16(353); -emit_16(289); -emit_16(353); -emit_16(288); -emit_16(353); -emit_16(289); -emit_16(354); -emit_16(290); -emit_16(354); -emit_16(289); -emit_16(354); -emit_16(290); -emit_16(355); -emit_16(291); -emit_16(355); -emit_16(290); -emit_16(355); -emit_16(291); -emit_16(356); -emit_16(292); -emit_16(356); -emit_16(291); -emit_16(356); -emit_16(292); -emit_16(357); -emit_16(293); -emit_16(357); -emit_16(292); -emit_16(357); -emit_16(293); -emit_16(358); -emit_16(294); -emit_16(358); -emit_16(293); -emit_16(358); -emit_16(294); -emit_16(359); -emit_16(295); -emit_16(359); -emit_16(294); -emit_16(359); -emit_16(295); -emit_16(360); -emit_16(296); -emit_16(360); -emit_16(295); -emit_16(360); -emit_16(296); -emit_16(361); -emit_16(297); -emit_16(361); -emit_16(296); -emit_16(361); -emit_16(297); -emit_16(362); -emit_16(298); -emit_16(362); -emit_16(297); -emit_16(362); -emit_16(298); -emit_16(363); -emit_16(299); -emit_16(363); -emit_16(298); -emit_16(363); -emit_16(299); -emit_16(364); -emit_16(300); -emit_16(364); -emit_16(299); -emit_16(364); -emit_16(300); -emit_16(365); -emit_16(301); -emit_16(365); -emit_16(300); -emit_16(365); -emit_16(301); -emit_16(366); -emit_16(302); -emit_16(366); -emit_16(301); -emit_16(366); -emit_16(302); -emit_16(367); -emit_16(303); -emit_16(367); -emit_16(302); -emit_16(367); -emit_16(303); -emit_16(368); -emit_16(304); -emit_16(368); -emit_16(303); -emit_16(368); -emit_16(304); -emit_16(369); -emit_16(305); -emit_16(369); -emit_16(304); -emit_16(369); -emit_16(305); -emit_16(370); -emit_16(306); -emit_16(370); -emit_16(305); -emit_16(370); -emit_16(306); -emit_16(371); -emit_16(307); -emit_16(371); -emit_16(306); -emit_16(371); -emit_16(307); -emit_16(372); -emit_16(308); -emit_16(372); -emit_16(307); -emit_16(372); -emit_16(308); -emit_16(373); -emit_16(309); -emit_16(373); -emit_16(308); -emit_16(373); -emit_16(309); -emit_16(374); -emit_16(310); -emit_16(374); -emit_16(309); -emit_16(374); -emit_16(310); -emit_16(375); -emit_16(311); -emit_16(375); -emit_16(310); -emit_16(375); -emit_16(311); -emit_16(376); -emit_16(312); -emit_16(376); -emit_16(311); -emit_16(376); -emit_16(312); -emit_16(377); -emit_16(313); -emit_16(377); -emit_16(312); -emit_16(377); -emit_16(313); -emit_16(378); -emit_16(314); -emit_16(378); -emit_16(313); -emit_16(378); -emit_16(314); -emit_16(379); -emit_16(315); -emit_16(379); -emit_16(314); -emit_16(379); -emit_16(315); -emit_16(380); -emit_16(316); -emit_16(380); -emit_16(315); -emit_16(380); -emit_16(316); -emit_16(381); -emit_16(317); -emit_16(381); -emit_16(316); -emit_16(381); -emit_16(317); -emit_16(382); -emit_16(318); -emit_16(382); -emit_16(317); -emit_16(382); -emit_16(318); -emit_16(383); -emit_16(319); -emit_16(383); -emit_16(318); -emit_16(384); -emit_16(320); -emit_16(385); -emit_16(321); -emit_16(385); -emit_16(320); -emit_16(385); -emit_16(321); -emit_16(386); -emit_16(322); -emit_16(386); -emit_16(321); -emit_16(386); -emit_16(322); -emit_16(387); -emit_16(323); -emit_16(387); -emit_16(322); -emit_16(387); -emit_16(323); -emit_16(388); -emit_16(324); -emit_16(388); -emit_16(323); -emit_16(388); -emit_16(324); -emit_16(389); -emit_16(325); -emit_16(389); -emit_16(324); -emit_16(389); -emit_16(325); -emit_16(390); -emit_16(326); -emit_16(390); -emit_16(325); -emit_16(390); -emit_16(326); -emit_16(391); -emit_16(327); -emit_16(391); -emit_16(326); -emit_16(391); -emit_16(327); -emit_16(392); -emit_16(328); -emit_16(392); -emit_16(327); -emit_16(392); -emit_16(328); -emit_16(393); -emit_16(329); -emit_16(393); -emit_16(328); -emit_16(393); -emit_16(329); -emit_16(394); -emit_16(330); -emit_16(394); -emit_16(329); -emit_16(394); -emit_16(330); -emit_16(395); -emit_16(331); -emit_16(395); -emit_16(330); -emit_16(395); -emit_16(331); -emit_16(396); -emit_16(332); -emit_16(396); -emit_16(331); -emit_16(396); -emit_16(332); -emit_16(397); -emit_16(333); -emit_16(397); -emit_16(332); -emit_16(397); -emit_16(333); -emit_16(398); -emit_16(334); -emit_16(398); -emit_16(333); -emit_16(398); -emit_16(334); -emit_16(399); -emit_16(335); -emit_16(399); -emit_16(334); -emit_16(399); -emit_16(335); -emit_16(400); -emit_16(336); -emit_16(400); -emit_16(335); -emit_16(400); -emit_16(336); -emit_16(401); -emit_16(337); -emit_16(401); -emit_16(336); -emit_16(401); -emit_16(337); -emit_16(402); -emit_16(338); -emit_16(402); -emit_16(337); -emit_16(402); -emit_16(338); -emit_16(403); -emit_16(339); -emit_16(403); -emit_16(338); -emit_16(403); -emit_16(339); -emit_16(404); -emit_16(340); -emit_16(404); -emit_16(339); -emit_16(404); -emit_16(340); -emit_16(405); -emit_16(341); -emit_16(405); -emit_16(340); -emit_16(405); -emit_16(341); -emit_16(406); -emit_16(342); -emit_16(406); -emit_16(341); -emit_16(406); -emit_16(342); -emit_16(407); -emit_16(343); -emit_16(407); -emit_16(342); -emit_16(407); -emit_16(343); -emit_16(408); -emit_16(344); -emit_16(408); -emit_16(343); -emit_16(408); -emit_16(344); -emit_16(409); -emit_16(345); -emit_16(409); -emit_16(344); -emit_16(409); -emit_16(345); -emit_16(410); -emit_16(346); -emit_16(410); -emit_16(345); -emit_16(410); -emit_16(346); -emit_16(411); -emit_16(347); -emit_16(411); -emit_16(346); -emit_16(411); -emit_16(347); -emit_16(412); -emit_16(348); -emit_16(412); -emit_16(347); -emit_16(412); -emit_16(348); -emit_16(413); -emit_16(349); -emit_16(413); -emit_16(348); -emit_16(413); -emit_16(349); -emit_16(414); -emit_16(350); -emit_16(414); -emit_16(349); -emit_16(414); -emit_16(350); -emit_16(415); -emit_16(351); -emit_16(415); -emit_16(350); -emit_16(415); -emit_16(351); -emit_16(416); -emit_16(352); -emit_16(416); -emit_16(351); -emit_16(416); -emit_16(352); -emit_16(417); -emit_16(353); -emit_16(417); -emit_16(352); -emit_16(417); -emit_16(353); -emit_16(418); -emit_16(354); -emit_16(418); -emit_16(353); -emit_16(418); -emit_16(354); -emit_16(419); -emit_16(355); -emit_16(419); -emit_16(354); -emit_16(419); -emit_16(355); -emit_16(420); -emit_16(356); -emit_16(420); -emit_16(355); -emit_16(420); -emit_16(356); -emit_16(421); -emit_16(357); -emit_16(421); -emit_16(356); -emit_16(421); -emit_16(357); -emit_16(422); -emit_16(358); -emit_16(422); -emit_16(357); -emit_16(422); -emit_16(358); -emit_16(423); -emit_16(359); -emit_16(423); -emit_16(358); -emit_16(423); -emit_16(359); -emit_16(424); -emit_16(360); -emit_16(424); -emit_16(359); -emit_16(424); -emit_16(360); -emit_16(425); -emit_16(361); -emit_16(425); -emit_16(360); -emit_16(425); -emit_16(361); -emit_16(426); -emit_16(362); -emit_16(426); -emit_16(361); -emit_16(426); -emit_16(362); -emit_16(427); -emit_16(363); -emit_16(427); -emit_16(362); -emit_16(427); -emit_16(363); -emit_16(428); -emit_16(364); -emit_16(428); -emit_16(363); -emit_16(428); -emit_16(364); -emit_16(429); -emit_16(365); -emit_16(429); -emit_16(364); -emit_16(429); -emit_16(365); -emit_16(430); -emit_16(366); -emit_16(430); -emit_16(365); -emit_16(430); -emit_16(366); -emit_16(431); -emit_16(367); -emit_16(431); -emit_16(366); -emit_16(431); -emit_16(367); -emit_16(432); -emit_16(368); -emit_16(432); -emit_16(367); -emit_16(432); -emit_16(368); -emit_16(433); -emit_16(369); -emit_16(433); -emit_16(368); -emit_16(433); -emit_16(369); -emit_16(434); -emit_16(370); -emit_16(434); -emit_16(369); -emit_16(434); -emit_16(370); -emit_16(435); -emit_16(371); -emit_16(435); -emit_16(370); -emit_16(435); -emit_16(371); -emit_16(436); -emit_16(372); -emit_16(436); -emit_16(371); -emit_16(436); -emit_16(372); -emit_16(437); -emit_16(373); -emit_16(437); -emit_16(372); -emit_16(437); -emit_16(373); -emit_16(438); -emit_16(374); -emit_16(438); -emit_16(373); -emit_16(438); -emit_16(374); -emit_16(439); -emit_16(375); -emit_16(439); -emit_16(374); -emit_16(439); -emit_16(375); -emit_16(440); -emit_16(376); -emit_16(440); -emit_16(375); -emit_16(440); -emit_16(376); -emit_16(441); -emit_16(377); -emit_16(441); -emit_16(376); -emit_16(441); -emit_16(377); -emit_16(442); -emit_16(378); -emit_16(442); -emit_16(377); -emit_16(442); -emit_16(378); -emit_16(443); -emit_16(379); -emit_16(443); -emit_16(378); -emit_16(443); -emit_16(379); -emit_16(444); -emit_16(380); -emit_16(444); -emit_16(379); -emit_16(444); -emit_16(380); -emit_16(445); -emit_16(381); -emit_16(445); -emit_16(380); -emit_16(445); -emit_16(381); -emit_16(446); -emit_16(382); -emit_16(446); -emit_16(381); -emit_16(446); -emit_16(382); -emit_16(447); -emit_16(383); -emit_16(447); -emit_16(382); -emit_16(448); -emit_16(384); -emit_16(449); -emit_16(385); -emit_16(449); -emit_16(384); -emit_16(449); -emit_16(385); -emit_16(450); -emit_16(386); -emit_16(450); -emit_16(385); -emit_16(450); -emit_16(386); -emit_16(451); -emit_16(387); -emit_16(451); -emit_16(386); -emit_16(451); -emit_16(387); -emit_16(452); -emit_16(388); -emit_16(452); -emit_16(387); -emit_16(452); -emit_16(388); -emit_16(453); -emit_16(389); -emit_16(453); -emit_16(388); -emit_16(453); -emit_16(389); -emit_16(454); -emit_16(390); -emit_16(454); -emit_16(389); -emit_16(454); -emit_16(390); -emit_16(455); -emit_16(391); -emit_16(455); -emit_16(390); -emit_16(455); -emit_16(391); -emit_16(456); -emit_16(392); -emit_16(456); -emit_16(391); -emit_16(456); -emit_16(392); -emit_16(457); -emit_16(393); -emit_16(457); -emit_16(392); -emit_16(457); -emit_16(393); -emit_16(458); -emit_16(394); -emit_16(458); -emit_16(393); -emit_16(458); -emit_16(394); -emit_16(459); -emit_16(395); -emit_16(459); -emit_16(394); -emit_16(459); -emit_16(395); -emit_16(460); -emit_16(396); -emit_16(460); -emit_16(395); -emit_16(460); -emit_16(396); -emit_16(461); -emit_16(397); -emit_16(461); -emit_16(396); -emit_16(461); -emit_16(397); -emit_16(462); -emit_16(398); -emit_16(462); -emit_16(397); -emit_16(462); -emit_16(398); -emit_16(463); -emit_16(399); -emit_16(463); -emit_16(398); -emit_16(463); -emit_16(399); -emit_16(464); -emit_16(400); -emit_16(464); -emit_16(399); -emit_16(464); -emit_16(400); -emit_16(465); -emit_16(401); -emit_16(465); -emit_16(400); -emit_16(465); -emit_16(401); -emit_16(466); -emit_16(402); -emit_16(466); -emit_16(401); -emit_16(466); -emit_16(402); -emit_16(467); -emit_16(403); -emit_16(467); -emit_16(402); -emit_16(467); -emit_16(403); -emit_16(468); -emit_16(404); -emit_16(468); -emit_16(403); -emit_16(468); -emit_16(404); -emit_16(469); -emit_16(405); -emit_16(469); -emit_16(404); -emit_16(469); -emit_16(405); -emit_16(470); -emit_16(406); -emit_16(470); -emit_16(405); -emit_16(470); -emit_16(406); -emit_16(471); -emit_16(407); -emit_16(471); -emit_16(406); -emit_16(471); -emit_16(407); -emit_16(472); -emit_16(408); -emit_16(472); -emit_16(407); -emit_16(472); -emit_16(408); -emit_16(473); -emit_16(409); -emit_16(473); -emit_16(408); -emit_16(473); -emit_16(409); -emit_16(474); -emit_16(410); -emit_16(474); -emit_16(409); -emit_16(474); -emit_16(410); -emit_16(475); -emit_16(411); -emit_16(475); -emit_16(410); -emit_16(475); -emit_16(411); -emit_16(476); -emit_16(412); -emit_16(476); -emit_16(411); -emit_16(476); -emit_16(412); -emit_16(477); -emit_16(413); -emit_16(477); -emit_16(412); -emit_16(477); -emit_16(413); -emit_16(478); -emit_16(414); -emit_16(478); -emit_16(413); -emit_16(478); -emit_16(414); -emit_16(479); -emit_16(415); -emit_16(479); -emit_16(414); -emit_16(479); -emit_16(415); -emit_16(480); -emit_16(416); -emit_16(480); -emit_16(415); -emit_16(480); -emit_16(416); -emit_16(481); -emit_16(417); -emit_16(481); -emit_16(416); -emit_16(481); -emit_16(417); -emit_16(482); -emit_16(418); -emit_16(482); -emit_16(417); -emit_16(482); -emit_16(418); -emit_16(483); -emit_16(419); -emit_16(483); -emit_16(418); -emit_16(483); -emit_16(419); -emit_16(484); -emit_16(420); -emit_16(484); -emit_16(419); -emit_16(484); -emit_16(420); -emit_16(485); -emit_16(421); -emit_16(485); -emit_16(420); -emit_16(485); -emit_16(421); -emit_16(486); -emit_16(422); -emit_16(486); -emit_16(421); -emit_16(486); -emit_16(422); -emit_16(487); -emit_16(423); -emit_16(487); -emit_16(422); -emit_16(487); -emit_16(423); -emit_16(488); -emit_16(424); -emit_16(488); -emit_16(423); -emit_16(488); -emit_16(424); -emit_16(489); -emit_16(425); -emit_16(489); -emit_16(424); -emit_16(489); -emit_16(425); -emit_16(490); -emit_16(426); -emit_16(490); -emit_16(425); -emit_16(490); -emit_16(426); -emit_16(491); -emit_16(427); -emit_16(491); -emit_16(426); -emit_16(491); -emit_16(427); -emit_16(492); -emit_16(428); -emit_16(492); -emit_16(427); -emit_16(492); -emit_16(428); -emit_16(493); -emit_16(429); -emit_16(493); -emit_16(428); -emit_16(493); -emit_16(429); -emit_16(494); -emit_16(430); -emit_16(494); -emit_16(429); -emit_16(494); -emit_16(430); -emit_16(495); -emit_16(431); -emit_16(495); -emit_16(430); -emit_16(495); -emit_16(431); -emit_16(496); -emit_16(432); -emit_16(496); -emit_16(431); -emit_16(496); -emit_16(432); -emit_16(497); -emit_16(433); -emit_16(497); -emit_16(432); -emit_16(497); -emit_16(433); -emit_16(498); -emit_16(434); -emit_16(498); -emit_16(433); -emit_16(498); -emit_16(434); -emit_16(499); -emit_16(435); -emit_16(499); -emit_16(434); -emit_16(499); -emit_16(435); -emit_16(500); -emit_16(436); -emit_16(500); -emit_16(435); -emit_16(500); -emit_16(436); -emit_16(501); -emit_16(437); -emit_16(501); -emit_16(436); -emit_16(501); -emit_16(437); -emit_16(502); -emit_16(438); -emit_16(502); -emit_16(437); -emit_16(502); -emit_16(438); -emit_16(503); -emit_16(439); -emit_16(503); -emit_16(438); -emit_16(503); -emit_16(439); -emit_16(504); -emit_16(440); -emit_16(504); -emit_16(439); -emit_16(504); -emit_16(440); -emit_16(505); -emit_16(441); -emit_16(505); -emit_16(440); -emit_16(505); -emit_16(441); -emit_16(506); -emit_16(442); -emit_16(506); -emit_16(441); -emit_16(506); -emit_16(442); -emit_16(507); -emit_16(443); -emit_16(507); -emit_16(442); -emit_16(507); -emit_16(443); -emit_16(508); -emit_16(444); -emit_16(508); -emit_16(443); -emit_16(508); -emit_16(444); -emit_16(509); -emit_16(445); -emit_16(509); -emit_16(444); -emit_16(509); -emit_16(445); -emit_16(510); -emit_16(446); -emit_16(510); -emit_16(445); -emit_16(510); -emit_16(446); -emit_16(511); -emit_16(447); -emit_16(511); -emit_16(446); -emit_16(512); -emit_16(448); -emit_16(513); -emit_16(449); -emit_16(513); -emit_16(448); -emit_16(513); -emit_16(449); -emit_16(514); -emit_16(450); -emit_16(514); -emit_16(449); -emit_16(514); -emit_16(450); -emit_16(515); -emit_16(451); -emit_16(515); -emit_16(450); -emit_16(515); -emit_16(451); -emit_16(516); -emit_16(452); -emit_16(516); -emit_16(451); -emit_16(516); -emit_16(452); -emit_16(517); -emit_16(453); -emit_16(517); -emit_16(452); -emit_16(517); -emit_16(453); -emit_16(518); -emit_16(454); -emit_16(518); -emit_16(453); -emit_16(518); -emit_16(454); -emit_16(519); -emit_16(455); -emit_16(519); -emit_16(454); -emit_16(519); -emit_16(455); -emit_16(520); -emit_16(456); -emit_16(520); -emit_16(455); -emit_16(520); -emit_16(456); -emit_16(521); -emit_16(457); -emit_16(521); -emit_16(456); -emit_16(521); -emit_16(457); -emit_16(522); -emit_16(458); -emit_16(522); -emit_16(457); -emit_16(522); -emit_16(458); -emit_16(523); -emit_16(459); -emit_16(523); -emit_16(458); -emit_16(523); -emit_16(459); -emit_16(524); -emit_16(460); -emit_16(524); -emit_16(459); -emit_16(524); -emit_16(460); -emit_16(525); -emit_16(461); -emit_16(525); -emit_16(460); -emit_16(525); -emit_16(461); -emit_16(526); -emit_16(462); -emit_16(526); -emit_16(461); -emit_16(526); -emit_16(462); -emit_16(527); -emit_16(463); -emit_16(527); -emit_16(462); -emit_16(527); -emit_16(463); -emit_16(528); -emit_16(464); -emit_16(528); -emit_16(463); -emit_16(528); -emit_16(464); -emit_16(529); -emit_16(465); -emit_16(529); -emit_16(464); -emit_16(529); -emit_16(465); -emit_16(530); -emit_16(466); -emit_16(530); -emit_16(465); -emit_16(530); -emit_16(466); -emit_16(531); -emit_16(467); -emit_16(531); -emit_16(466); -emit_16(531); -emit_16(467); -emit_16(532); -emit_16(468); -emit_16(532); -emit_16(467); -emit_16(532); -emit_16(468); -emit_16(533); -emit_16(469); -emit_16(533); -emit_16(468); -emit_16(533); -emit_16(469); -emit_16(534); -emit_16(470); -emit_16(534); -emit_16(469); -emit_16(534); -emit_16(470); -emit_16(535); -emit_16(471); -emit_16(535); -emit_16(470); -emit_16(535); -emit_16(471); -emit_16(536); -emit_16(472); -emit_16(536); -emit_16(471); -emit_16(536); -emit_16(472); -emit_16(537); -emit_16(473); -emit_16(537); -emit_16(472); -emit_16(537); -emit_16(473); -emit_16(538); -emit_16(474); -emit_16(538); -emit_16(473); -emit_16(538); -emit_16(474); -emit_16(539); -emit_16(475); -emit_16(539); -emit_16(474); -emit_16(539); -emit_16(475); -emit_16(540); -emit_16(476); -emit_16(540); -emit_16(475); -emit_16(540); -emit_16(476); -emit_16(541); -emit_16(477); -emit_16(541); -emit_16(476); -emit_16(541); -emit_16(477); -emit_16(542); -emit_16(478); -emit_16(542); -emit_16(477); -emit_16(542); -emit_16(478); -emit_16(543); -emit_16(479); -emit_16(543); -emit_16(478); -emit_16(543); -emit_16(479); -emit_16(544); -emit_16(480); -emit_16(544); -emit_16(479); -emit_16(544); -emit_16(480); -emit_16(545); -emit_16(481); -emit_16(545); -emit_16(480); -emit_16(545); -emit_16(481); -emit_16(546); -emit_16(482); -emit_16(546); -emit_16(481); -emit_16(546); -emit_16(482); -emit_16(547); -emit_16(483); -emit_16(547); -emit_16(482); -emit_16(547); -emit_16(483); -emit_16(548); -emit_16(484); -emit_16(548); -emit_16(483); -emit_16(548); -emit_16(484); -emit_16(549); -emit_16(485); -emit_16(549); -emit_16(484); -emit_16(549); -emit_16(485); -emit_16(550); -emit_16(486); -emit_16(550); -emit_16(485); -emit_16(550); -emit_16(486); -emit_16(551); -emit_16(487); -emit_16(551); -emit_16(486); -emit_16(551); -emit_16(487); -emit_16(552); -emit_16(488); -emit_16(552); -emit_16(487); -emit_16(552); -emit_16(488); -emit_16(553); -emit_16(489); -emit_16(553); -emit_16(488); -emit_16(553); -emit_16(489); -emit_16(554); -emit_16(490); -emit_16(554); -emit_16(489); -emit_16(554); -emit_16(490); -emit_16(555); -emit_16(491); -emit_16(555); -emit_16(490); -emit_16(555); -emit_16(491); -emit_16(556); -emit_16(492); -emit_16(556); -emit_16(491); -emit_16(556); -emit_16(492); -emit_16(557); -emit_16(493); -emit_16(557); -emit_16(492); -emit_16(557); -emit_16(493); -emit_16(558); -emit_16(494); -emit_16(558); -emit_16(493); -emit_16(558); -emit_16(494); -emit_16(559); -emit_16(495); -emit_16(559); -emit_16(494); -emit_16(559); -emit_16(495); -emit_16(560); -emit_16(496); -emit_16(560); -emit_16(495); -emit_16(560); -emit_16(496); -emit_16(561); -emit_16(497); -emit_16(561); -emit_16(496); -emit_16(561); -emit_16(497); -emit_16(562); -emit_16(498); -emit_16(562); -emit_16(497); -emit_16(562); -emit_16(498); -emit_16(563); -emit_16(499); -emit_16(563); -emit_16(498); -emit_16(563); -emit_16(499); -emit_16(564); -emit_16(500); -emit_16(564); -emit_16(499); -emit_16(564); -emit_16(500); -emit_16(565); -emit_16(501); -emit_16(565); -emit_16(500); -emit_16(565); -emit_16(501); -emit_16(566); -emit_16(502); -emit_16(566); -emit_16(501); -emit_16(566); -emit_16(502); -emit_16(567); -emit_16(503); -emit_16(567); -emit_16(502); -emit_16(567); -emit_16(503); -emit_16(568); -emit_16(504); -emit_16(568); -emit_16(503); -emit_16(568); -emit_16(504); -emit_16(569); -emit_16(505); -emit_16(569); -emit_16(504); -emit_16(569); -emit_16(505); -emit_16(570); -emit_16(506); -emit_16(570); -emit_16(505); -emit_16(570); -emit_16(506); -emit_16(571); -emit_16(507); -emit_16(571); -emit_16(506); -emit_16(571); -emit_16(507); -emit_16(572); -emit_16(508); -emit_16(572); -emit_16(507); -emit_16(572); -emit_16(508); -emit_16(573); -emit_16(509); -emit_16(573); -emit_16(508); -emit_16(573); -emit_16(509); -emit_16(574); -emit_16(510); -emit_16(574); -emit_16(509); -emit_16(574); -emit_16(510); -emit_16(575); -emit_16(511); -emit_16(575); -emit_16(510); -emit_16(576); -emit_16(512); -emit_16(577); -emit_16(513); -emit_16(577); -emit_16(512); -emit_16(577); -emit_16(513); -emit_16(578); -emit_16(514); -emit_16(578); -emit_16(513); -emit_16(578); -emit_16(514); -emit_16(579); -emit_16(515); -emit_16(579); -emit_16(514); -emit_16(579); -emit_16(515); -emit_16(580); -emit_16(516); -emit_16(580); -emit_16(515); -emit_16(580); -emit_16(516); -emit_16(581); -emit_16(517); -emit_16(581); -emit_16(516); -emit_16(581); -emit_16(517); -emit_16(582); -emit_16(518); -emit_16(582); -emit_16(517); -emit_16(582); -emit_16(518); -emit_16(583); -emit_16(519); -emit_16(583); -emit_16(518); -emit_16(583); -emit_16(519); -emit_16(584); -emit_16(520); -emit_16(584); -emit_16(519); -emit_16(584); -emit_16(520); -emit_16(585); -emit_16(521); -emit_16(585); -emit_16(520); -emit_16(585); -emit_16(521); -emit_16(586); -emit_16(522); -emit_16(586); -emit_16(521); -emit_16(586); -emit_16(522); -emit_16(587); -emit_16(523); -emit_16(587); -emit_16(522); -emit_16(587); -emit_16(523); -emit_16(588); -emit_16(524); -emit_16(588); -emit_16(523); -emit_16(588); -emit_16(524); -emit_16(589); -emit_16(525); -emit_16(589); -emit_16(524); -emit_16(589); -emit_16(525); -emit_16(590); -emit_16(526); -emit_16(590); -emit_16(525); -emit_16(590); -emit_16(526); -emit_16(591); -emit_16(527); -emit_16(591); -emit_16(526); -emit_16(591); -emit_16(527); -emit_16(592); -emit_16(528); -emit_16(592); -emit_16(527); -emit_16(592); -emit_16(528); -emit_16(593); -emit_16(529); -emit_16(593); -emit_16(528); -emit_16(593); -emit_16(529); -emit_16(594); -emit_16(530); -emit_16(594); -emit_16(529); -emit_16(594); -emit_16(530); -emit_16(595); -emit_16(531); -emit_16(595); -emit_16(530); -emit_16(595); -emit_16(531); -emit_16(596); -emit_16(532); -emit_16(596); -emit_16(531); -emit_16(596); -emit_16(532); -emit_16(597); -emit_16(533); -emit_16(597); -emit_16(532); -emit_16(597); -emit_16(533); -emit_16(598); -emit_16(534); -emit_16(598); -emit_16(533); -emit_16(598); -emit_16(534); -emit_16(599); -emit_16(535); -emit_16(599); -emit_16(534); -emit_16(599); -emit_16(535); -emit_16(600); -emit_16(536); -emit_16(600); -emit_16(535); -emit_16(600); -emit_16(536); -emit_16(601); -emit_16(537); -emit_16(601); -emit_16(536); -emit_16(601); -emit_16(537); -emit_16(602); -emit_16(538); -emit_16(602); -emit_16(537); -emit_16(602); -emit_16(538); -emit_16(603); -emit_16(539); -emit_16(603); -emit_16(538); -emit_16(603); -emit_16(539); -emit_16(604); -emit_16(540); -emit_16(604); -emit_16(539); -emit_16(604); -emit_16(540); -emit_16(605); -emit_16(541); -emit_16(605); -emit_16(540); -emit_16(605); -emit_16(541); -emit_16(606); -emit_16(542); -emit_16(606); -emit_16(541); -emit_16(606); -emit_16(542); -emit_16(607); -emit_16(543); -emit_16(607); -emit_16(542); -emit_16(607); -emit_16(543); -emit_16(608); -emit_16(544); -emit_16(608); -emit_16(543); -emit_16(608); -emit_16(544); -emit_16(609); -emit_16(545); -emit_16(609); -emit_16(544); -emit_16(609); -emit_16(545); -emit_16(610); -emit_16(546); -emit_16(610); -emit_16(545); -emit_16(610); -emit_16(546); -emit_16(611); -emit_16(547); -emit_16(611); -emit_16(546); -emit_16(611); -emit_16(547); -emit_16(612); -emit_16(548); -emit_16(612); -emit_16(547); -emit_16(612); -emit_16(548); -emit_16(613); -emit_16(549); -emit_16(613); -emit_16(548); -emit_16(613); -emit_16(549); -emit_16(614); -emit_16(550); -emit_16(614); -emit_16(549); -emit_16(614); -emit_16(550); -emit_16(615); -emit_16(551); -emit_16(615); -emit_16(550); -emit_16(615); -emit_16(551); -emit_16(616); -emit_16(552); -emit_16(616); -emit_16(551); -emit_16(616); -emit_16(552); -emit_16(617); -emit_16(553); -emit_16(617); -emit_16(552); -emit_16(617); -emit_16(553); -emit_16(618); -emit_16(554); -emit_16(618); -emit_16(553); -emit_16(618); -emit_16(554); -emit_16(619); -emit_16(555); -emit_16(619); -emit_16(554); -emit_16(619); -emit_16(555); -emit_16(620); -emit_16(556); -emit_16(620); -emit_16(555); -emit_16(620); -emit_16(556); -emit_16(621); -emit_16(557); -emit_16(621); -emit_16(556); -emit_16(621); -emit_16(557); -emit_16(622); -emit_16(558); -emit_16(622); -emit_16(557); -emit_16(622); -emit_16(558); -emit_16(623); -emit_16(559); -emit_16(623); -emit_16(558); -emit_16(623); -emit_16(559); -emit_16(624); -emit_16(560); -emit_16(624); -emit_16(559); -emit_16(624); -emit_16(560); -emit_16(625); -emit_16(561); -emit_16(625); -emit_16(560); -emit_16(625); -emit_16(561); -emit_16(626); -emit_16(562); -emit_16(626); -emit_16(561); -emit_16(626); -emit_16(562); -emit_16(627); -emit_16(563); -emit_16(627); -emit_16(562); -emit_16(627); -emit_16(563); -emit_16(628); -emit_16(564); -emit_16(628); -emit_16(563); -emit_16(628); -emit_16(564); -emit_16(629); -emit_16(565); -emit_16(629); -emit_16(564); -emit_16(629); -emit_16(565); -emit_16(630); -emit_16(566); -emit_16(630); -emit_16(565); -emit_16(630); -emit_16(566); -emit_16(631); -emit_16(567); -emit_16(631); -emit_16(566); -emit_16(631); -emit_16(567); -emit_16(632); -emit_16(568); -emit_16(632); -emit_16(567); -emit_16(632); -emit_16(568); -emit_16(633); -emit_16(569); -emit_16(633); -emit_16(568); -emit_16(633); -emit_16(569); -emit_16(634); -emit_16(570); -emit_16(634); -emit_16(569); -emit_16(634); -emit_16(570); -emit_16(635); -emit_16(571); -emit_16(635); -emit_16(570); -emit_16(635); -emit_16(571); -emit_16(636); -emit_16(572); -emit_16(636); -emit_16(571); -emit_16(636); -emit_16(572); -emit_16(637); -emit_16(573); -emit_16(637); -emit_16(572); -emit_16(637); -emit_16(573); -emit_16(638); -emit_16(574); -emit_16(638); -emit_16(573); -emit_16(638); -emit_16(574); -emit_16(639); -emit_16(575); -emit_16(639); -emit_16(574); -emit_16(640); -emit_16(576); -emit_16(641); -emit_16(577); -emit_16(641); -emit_16(576); -emit_16(641); -emit_16(577); -emit_16(642); -emit_16(578); -emit_16(642); -emit_16(577); -emit_16(642); -emit_16(578); -emit_16(643); -emit_16(579); -emit_16(643); -emit_16(578); -emit_16(643); -emit_16(579); -emit_16(644); -emit_16(580); -emit_16(644); -emit_16(579); -emit_16(644); -emit_16(580); -emit_16(645); -emit_16(581); -emit_16(645); -emit_16(580); -emit_16(645); -emit_16(581); -emit_16(646); -emit_16(582); -emit_16(646); -emit_16(581); -emit_16(646); -emit_16(582); -emit_16(647); -emit_16(583); -emit_16(647); -emit_16(582); -emit_16(647); -emit_16(583); -emit_16(648); -emit_16(584); -emit_16(648); -emit_16(583); -emit_16(648); -emit_16(584); -emit_16(649); -emit_16(585); -emit_16(649); -emit_16(584); -emit_16(649); -emit_16(585); -emit_16(650); -emit_16(586); -emit_16(650); -emit_16(585); -emit_16(650); -emit_16(586); -emit_16(651); -emit_16(587); -emit_16(651); -emit_16(586); -emit_16(651); -emit_16(587); -emit_16(652); -emit_16(588); -emit_16(652); -emit_16(587); -emit_16(652); -emit_16(588); -emit_16(653); -emit_16(589); -emit_16(653); -emit_16(588); -emit_16(653); -emit_16(589); -emit_16(654); -emit_16(590); -emit_16(654); -emit_16(589); -emit_16(654); -emit_16(590); -emit_16(655); -emit_16(591); -emit_16(655); -emit_16(590); -emit_16(655); -emit_16(591); -emit_16(656); -emit_16(592); -emit_16(656); -emit_16(591); -emit_16(656); -emit_16(592); -emit_16(657); -emit_16(593); -emit_16(657); -emit_16(592); -emit_16(657); -emit_16(593); -emit_16(658); -emit_16(594); -emit_16(658); -emit_16(593); -emit_16(658); -emit_16(594); -emit_16(659); -emit_16(595); -emit_16(659); -emit_16(594); -emit_16(659); -emit_16(595); -emit_16(660); -emit_16(596); -emit_16(660); -emit_16(595); -emit_16(660); -emit_16(596); -emit_16(661); -emit_16(597); -emit_16(661); -emit_16(596); -emit_16(661); -emit_16(597); -emit_16(662); -emit_16(598); -emit_16(662); -emit_16(597); -emit_16(662); -emit_16(598); -emit_16(663); -emit_16(599); -emit_16(663); -emit_16(598); -emit_16(663); -emit_16(599); -emit_16(664); -emit_16(600); -emit_16(664); -emit_16(599); -emit_16(664); -emit_16(600); -emit_16(665); -emit_16(601); -emit_16(665); -emit_16(600); -emit_16(665); -emit_16(601); -emit_16(666); -emit_16(602); -emit_16(666); -emit_16(601); -emit_16(666); -emit_16(602); -emit_16(667); -emit_16(603); -emit_16(667); -emit_16(602); -emit_16(667); -emit_16(603); -emit_16(668); -emit_16(604); -emit_16(668); -emit_16(603); -emit_16(668); -emit_16(604); -emit_16(669); -emit_16(605); -emit_16(669); -emit_16(604); -emit_16(669); -emit_16(605); -emit_16(670); -emit_16(606); -emit_16(670); -emit_16(605); -emit_16(670); -emit_16(606); -emit_16(671); -emit_16(607); -emit_16(671); -emit_16(606); -emit_16(671); -emit_16(607); -emit_16(672); -emit_16(608); -emit_16(672); -emit_16(607); -emit_16(672); -emit_16(608); -emit_16(673); -emit_16(609); -emit_16(673); -emit_16(608); -emit_16(673); -emit_16(609); -emit_16(674); -emit_16(610); -emit_16(674); -emit_16(609); -emit_16(674); -emit_16(610); -emit_16(675); -emit_16(611); -emit_16(675); -emit_16(610); -emit_16(675); -emit_16(611); -emit_16(676); -emit_16(612); -emit_16(676); -emit_16(611); -emit_16(676); -emit_16(612); -emit_16(677); -emit_16(613); -emit_16(677); -emit_16(612); -emit_16(677); -emit_16(613); -emit_16(678); -emit_16(614); -emit_16(678); -emit_16(613); -emit_16(678); -emit_16(614); -emit_16(679); -emit_16(615); -emit_16(679); -emit_16(614); -emit_16(679); -emit_16(615); -emit_16(680); -emit_16(616); -emit_16(680); -emit_16(615); -emit_16(680); -emit_16(616); -emit_16(681); -emit_16(617); -emit_16(681); -emit_16(616); -emit_16(681); -emit_16(617); -emit_16(682); -emit_16(618); -emit_16(682); -emit_16(617); -emit_16(682); -emit_16(618); -emit_16(683); -emit_16(619); -emit_16(683); -emit_16(618); -emit_16(683); -emit_16(619); -emit_16(684); -emit_16(620); -emit_16(684); -emit_16(619); -emit_16(684); -emit_16(620); -emit_16(685); -emit_16(621); -emit_16(685); -emit_16(620); -emit_16(685); -emit_16(621); -emit_16(686); -emit_16(622); -emit_16(686); -emit_16(621); -emit_16(686); -emit_16(622); -emit_16(687); -emit_16(623); -emit_16(687); -emit_16(622); -emit_16(687); -emit_16(623); -emit_16(688); -emit_16(624); -emit_16(688); -emit_16(623); -emit_16(688); -emit_16(624); -emit_16(689); -emit_16(625); -emit_16(689); -emit_16(624); -emit_16(689); -emit_16(625); -emit_16(690); -emit_16(626); -emit_16(690); -emit_16(625); -emit_16(690); -emit_16(626); -emit_16(691); -emit_16(627); -emit_16(691); -emit_16(626); -emit_16(691); -emit_16(627); -emit_16(692); -emit_16(628); -emit_16(692); -emit_16(627); -emit_16(692); -emit_16(628); -emit_16(693); -emit_16(629); -emit_16(693); -emit_16(628); -emit_16(693); -emit_16(629); -emit_16(694); -emit_16(630); -emit_16(694); -emit_16(629); -emit_16(694); -emit_16(630); -emit_16(695); -emit_16(631); -emit_16(695); -emit_16(630); -emit_16(695); -emit_16(631); -emit_16(696); -emit_16(632); -emit_16(696); -emit_16(631); -emit_16(696); -emit_16(632); -emit_16(697); -emit_16(633); -emit_16(697); -emit_16(632); -emit_16(697); -emit_16(633); -emit_16(698); -emit_16(634); -emit_16(698); -emit_16(633); -emit_16(698); -emit_16(634); -emit_16(699); -emit_16(635); -emit_16(699); -emit_16(634); -emit_16(699); -emit_16(635); -emit_16(700); -emit_16(636); -emit_16(700); -emit_16(635); -emit_16(700); -emit_16(636); -emit_16(701); -emit_16(637); -emit_16(701); -emit_16(636); -emit_16(701); -emit_16(637); -emit_16(702); -emit_16(638); -emit_16(702); -emit_16(637); -emit_16(702); -emit_16(638); -emit_16(703); -emit_16(639); -emit_16(703); -emit_16(638); -emit_16(704); -emit_16(640); -emit_16(705); -emit_16(641); -emit_16(705); -emit_16(640); -emit_16(705); -emit_16(641); -emit_16(706); -emit_16(642); -emit_16(706); -emit_16(641); -emit_16(706); -emit_16(642); -emit_16(707); -emit_16(643); -emit_16(707); -emit_16(642); -emit_16(707); -emit_16(643); -emit_16(708); -emit_16(644); -emit_16(708); -emit_16(643); -emit_16(708); -emit_16(644); -emit_16(709); -emit_16(645); -emit_16(709); -emit_16(644); -emit_16(709); -emit_16(645); -emit_16(710); -emit_16(646); -emit_16(710); -emit_16(645); -emit_16(710); -emit_16(646); -emit_16(711); -emit_16(647); -emit_16(711); -emit_16(646); -emit_16(711); -emit_16(647); -emit_16(712); -emit_16(648); -emit_16(712); -emit_16(647); -emit_16(712); -emit_16(648); -emit_16(713); -emit_16(649); -emit_16(713); -emit_16(648); -emit_16(713); -emit_16(649); -emit_16(714); -emit_16(650); -emit_16(714); -emit_16(649); -emit_16(714); -emit_16(650); -emit_16(715); -emit_16(651); -emit_16(715); -emit_16(650); -emit_16(715); -emit_16(651); -emit_16(716); -emit_16(652); -emit_16(716); -emit_16(651); -emit_16(716); -emit_16(652); -emit_16(717); -emit_16(653); -emit_16(717); -emit_16(652); -emit_16(717); -emit_16(653); -emit_16(718); -emit_16(654); -emit_16(718); -emit_16(653); -emit_16(718); -emit_16(654); -emit_16(719); -emit_16(655); -emit_16(719); -emit_16(654); -emit_16(719); -emit_16(655); -emit_16(720); -emit_16(656); -emit_16(720); -emit_16(655); -emit_16(720); -emit_16(656); -emit_16(721); -emit_16(657); -emit_16(721); -emit_16(656); -emit_16(721); -emit_16(657); -emit_16(722); -emit_16(658); -emit_16(722); -emit_16(657); -emit_16(722); -emit_16(658); -emit_16(723); -emit_16(659); -emit_16(723); -emit_16(658); -emit_16(723); -emit_16(659); -emit_16(724); -emit_16(660); -emit_16(724); -emit_16(659); -emit_16(724); -emit_16(660); -emit_16(725); -emit_16(661); -emit_16(725); -emit_16(660); -emit_16(725); -emit_16(661); -emit_16(726); -emit_16(662); -emit_16(726); -emit_16(661); -emit_16(726); -emit_16(662); -emit_16(727); -emit_16(663); -emit_16(727); -emit_16(662); -emit_16(727); -emit_16(663); -emit_16(728); -emit_16(664); -emit_16(728); -emit_16(663); -emit_16(728); -emit_16(664); -emit_16(729); -emit_16(665); -emit_16(729); -emit_16(664); -emit_16(729); -emit_16(665); -emit_16(730); -emit_16(666); -emit_16(730); -emit_16(665); -emit_16(730); -emit_16(666); -emit_16(731); -emit_16(667); -emit_16(731); -emit_16(666); -emit_16(731); -emit_16(667); -emit_16(732); -emit_16(668); -emit_16(732); -emit_16(667); -emit_16(732); -emit_16(668); -emit_16(733); -emit_16(669); -emit_16(733); -emit_16(668); -emit_16(733); -emit_16(669); -emit_16(734); -emit_16(670); -emit_16(734); -emit_16(669); -emit_16(734); -emit_16(670); -emit_16(735); -emit_16(671); -emit_16(735); -emit_16(670); -emit_16(735); -emit_16(671); -emit_16(736); -emit_16(672); -emit_16(736); -emit_16(671); -emit_16(736); -emit_16(672); -emit_16(737); -emit_16(673); -emit_16(737); -emit_16(672); -emit_16(737); -emit_16(673); -emit_16(738); -emit_16(674); -emit_16(738); -emit_16(673); -emit_16(738); -emit_16(674); -emit_16(739); -emit_16(675); -emit_16(739); -emit_16(674); -emit_16(739); -emit_16(675); -emit_16(740); -emit_16(676); -emit_16(740); -emit_16(675); -emit_16(740); -emit_16(676); -emit_16(741); -emit_16(677); -emit_16(741); -emit_16(676); -emit_16(741); -emit_16(677); -emit_16(742); -emit_16(678); -emit_16(742); -emit_16(677); -emit_16(742); -emit_16(678); -emit_16(743); -emit_16(679); -emit_16(743); -emit_16(678); -emit_16(743); -emit_16(679); -emit_16(744); -emit_16(680); -emit_16(744); -emit_16(679); -emit_16(744); -emit_16(680); -emit_16(745); -emit_16(681); -emit_16(745); -emit_16(680); -emit_16(745); -emit_16(681); -emit_16(746); -emit_16(682); -emit_16(746); -emit_16(681); -emit_16(746); -emit_16(682); -emit_16(747); -emit_16(683); -emit_16(747); -emit_16(682); -emit_16(747); -emit_16(683); -emit_16(748); -emit_16(684); -emit_16(748); -emit_16(683); -emit_16(748); -emit_16(684); -emit_16(749); -emit_16(685); -emit_16(749); -emit_16(684); -emit_16(749); -emit_16(685); -emit_16(750); -emit_16(686); -emit_16(750); -emit_16(685); -emit_16(750); -emit_16(686); -emit_16(751); -emit_16(687); -emit_16(751); -emit_16(686); -emit_16(751); -emit_16(687); -emit_16(752); -emit_16(688); -emit_16(752); -emit_16(687); -emit_16(752); -emit_16(688); -emit_16(753); -emit_16(689); -emit_16(753); -emit_16(688); -emit_16(753); -emit_16(689); -emit_16(754); -emit_16(690); -emit_16(754); -emit_16(689); -emit_16(754); -emit_16(690); -emit_16(755); -emit_16(691); -emit_16(755); -emit_16(690); -emit_16(755); -emit_16(691); -emit_16(756); -emit_16(692); -emit_16(756); -emit_16(691); -emit_16(756); -emit_16(692); -emit_16(757); -emit_16(693); -emit_16(757); -emit_16(692); -emit_16(757); -emit_16(693); -emit_16(758); -emit_16(694); -emit_16(758); -emit_16(693); -emit_16(758); -emit_16(694); -emit_16(759); -emit_16(695); -emit_16(759); -emit_16(694); -emit_16(759); -emit_16(695); -emit_16(760); -emit_16(696); -emit_16(760); -emit_16(695); -emit_16(760); -emit_16(696); -emit_16(761); -emit_16(697); -emit_16(761); -emit_16(696); -emit_16(761); -emit_16(697); -emit_16(762); -emit_16(698); -emit_16(762); -emit_16(697); -emit_16(762); -emit_16(698); -emit_16(763); -emit_16(699); -emit_16(763); -emit_16(698); -emit_16(763); -emit_16(699); -emit_16(764); -emit_16(700); -emit_16(764); -emit_16(699); -emit_16(764); -emit_16(700); -emit_16(765); -emit_16(701); -emit_16(765); -emit_16(700); -emit_16(765); -emit_16(701); -emit_16(766); -emit_16(702); -emit_16(766); -emit_16(701); -emit_16(766); -emit_16(702); -emit_16(767); -emit_16(703); -emit_16(767); -emit_16(702); -emit_16(768); -emit_16(704); -emit_16(769); -emit_16(705); -emit_16(769); -emit_16(704); -emit_16(769); -emit_16(705); -emit_16(770); -emit_16(706); -emit_16(770); -emit_16(705); -emit_16(770); -emit_16(706); -emit_16(771); -emit_16(707); -emit_16(771); -emit_16(706); -emit_16(771); -emit_16(707); -emit_16(772); -emit_16(708); -emit_16(772); -emit_16(707); -emit_16(772); -emit_16(708); -emit_16(773); -emit_16(709); -emit_16(773); -emit_16(708); -emit_16(773); -emit_16(709); -emit_16(774); -emit_16(710); -emit_16(774); -emit_16(709); -emit_16(774); -emit_16(710); -emit_16(775); -emit_16(711); -emit_16(775); -emit_16(710); -emit_16(775); -emit_16(711); -emit_16(776); -emit_16(712); -emit_16(776); -emit_16(711); -emit_16(776); -emit_16(712); -emit_16(777); -emit_16(713); -emit_16(777); -emit_16(712); -emit_16(777); -emit_16(713); -emit_16(778); -emit_16(714); -emit_16(778); -emit_16(713); -emit_16(778); -emit_16(714); -emit_16(779); -emit_16(715); -emit_16(779); -emit_16(714); -emit_16(779); -emit_16(715); -emit_16(780); -emit_16(716); -emit_16(780); -emit_16(715); -emit_16(780); -emit_16(716); -emit_16(781); -emit_16(717); -emit_16(781); -emit_16(716); -emit_16(781); -emit_16(717); -emit_16(782); -emit_16(718); -emit_16(782); -emit_16(717); -emit_16(782); -emit_16(718); -emit_16(783); -emit_16(719); -emit_16(783); -emit_16(718); -emit_16(783); -emit_16(719); -emit_16(784); -emit_16(720); -emit_16(784); -emit_16(719); -emit_16(784); -emit_16(720); -emit_16(785); -emit_16(721); -emit_16(785); -emit_16(720); -emit_16(785); -emit_16(721); -emit_16(786); -emit_16(722); -emit_16(786); -emit_16(721); -emit_16(786); -emit_16(722); -emit_16(787); -emit_16(723); -emit_16(787); -emit_16(722); -emit_16(787); -emit_16(723); -emit_16(788); -emit_16(724); -emit_16(788); -emit_16(723); -emit_16(788); -emit_16(724); -emit_16(789); -emit_16(725); -emit_16(789); -emit_16(724); -emit_16(789); -emit_16(725); -emit_16(790); -emit_16(726); -emit_16(790); -emit_16(725); -emit_16(790); -emit_16(726); -emit_16(791); -emit_16(727); -emit_16(791); -emit_16(726); -emit_16(791); -emit_16(727); -emit_16(792); -emit_16(728); -emit_16(792); -emit_16(727); -emit_16(792); -emit_16(728); -emit_16(793); -emit_16(729); -emit_16(793); -emit_16(728); -emit_16(793); -emit_16(729); -emit_16(794); -emit_16(730); -emit_16(794); -emit_16(729); -emit_16(794); -emit_16(730); -emit_16(795); -emit_16(731); -emit_16(795); -emit_16(730); -emit_16(795); -emit_16(731); -emit_16(796); -emit_16(732); -emit_16(796); -emit_16(731); -emit_16(796); -emit_16(732); -emit_16(797); -emit_16(733); -emit_16(797); -emit_16(732); -emit_16(797); -emit_16(733); -emit_16(798); -emit_16(734); -emit_16(798); -emit_16(733); -emit_16(798); -emit_16(734); -emit_16(799); -emit_16(735); -emit_16(799); -emit_16(734); -emit_16(799); -emit_16(735); -emit_16(800); -emit_16(736); -emit_16(800); -emit_16(735); -emit_16(800); -emit_16(736); -emit_16(801); -emit_16(737); -emit_16(801); -emit_16(736); -emit_16(801); -emit_16(737); -emit_16(802); -emit_16(738); -emit_16(802); -emit_16(737); -emit_16(802); -emit_16(738); -emit_16(803); -emit_16(739); -emit_16(803); -emit_16(738); -emit_16(803); -emit_16(739); -emit_16(804); -emit_16(740); -emit_16(804); -emit_16(739); -emit_16(804); -emit_16(740); -emit_16(805); -emit_16(741); -emit_16(805); -emit_16(740); -emit_16(805); -emit_16(741); -emit_16(806); -emit_16(742); -emit_16(806); -emit_16(741); -emit_16(806); -emit_16(742); -emit_16(807); -emit_16(743); -emit_16(807); -emit_16(742); -emit_16(807); -emit_16(743); -emit_16(808); -emit_16(744); -emit_16(808); -emit_16(743); -emit_16(808); -emit_16(744); -emit_16(809); -emit_16(745); -emit_16(809); -emit_16(744); -emit_16(809); -emit_16(745); -emit_16(810); -emit_16(746); -emit_16(810); -emit_16(745); -emit_16(810); -emit_16(746); -emit_16(811); -emit_16(747); -emit_16(811); -emit_16(746); -emit_16(811); -emit_16(747); -emit_16(812); -emit_16(748); -emit_16(812); -emit_16(747); -emit_16(812); -emit_16(748); -emit_16(813); -emit_16(749); -emit_16(813); -emit_16(748); -emit_16(813); -emit_16(749); -emit_16(814); -emit_16(750); -emit_16(814); -emit_16(749); -emit_16(814); -emit_16(750); -emit_16(815); -emit_16(751); -emit_16(815); -emit_16(750); -emit_16(815); -emit_16(751); -emit_16(816); -emit_16(752); -emit_16(816); -emit_16(751); -emit_16(816); -emit_16(752); -emit_16(817); -emit_16(753); -emit_16(817); -emit_16(752); -emit_16(817); -emit_16(753); -emit_16(818); -emit_16(754); -emit_16(818); -emit_16(753); -emit_16(818); -emit_16(754); -emit_16(819); -emit_16(755); -emit_16(819); -emit_16(754); -emit_16(819); -emit_16(755); -emit_16(820); -emit_16(756); -emit_16(820); -emit_16(755); -emit_16(820); -emit_16(756); -emit_16(821); -emit_16(757); -emit_16(821); -emit_16(756); -emit_16(821); -emit_16(757); -emit_16(822); -emit_16(758); -emit_16(822); -emit_16(757); -emit_16(822); -emit_16(758); -emit_16(823); -emit_16(759); -emit_16(823); -emit_16(758); -emit_16(823); -emit_16(759); -emit_16(824); -emit_16(760); -emit_16(824); -emit_16(759); -emit_16(824); -emit_16(760); -emit_16(825); -emit_16(761); -emit_16(825); -emit_16(760); -emit_16(825); -emit_16(761); -emit_16(826); -emit_16(762); -emit_16(826); -emit_16(761); -emit_16(826); -emit_16(762); -emit_16(827); -emit_16(763); -emit_16(827); -emit_16(762); -emit_16(827); -emit_16(763); -emit_16(828); -emit_16(764); -emit_16(828); -emit_16(763); -emit_16(828); -emit_16(764); -emit_16(829); -emit_16(765); -emit_16(829); -emit_16(764); -emit_16(829); -emit_16(765); -emit_16(830); -emit_16(766); -emit_16(830); -emit_16(765); -emit_16(830); -emit_16(766); -emit_16(831); -emit_16(767); -emit_16(831); -emit_16(766); -emit_16(832); -emit_16(768); -emit_16(833); -emit_16(769); -emit_16(833); -emit_16(768); -emit_16(833); -emit_16(769); -emit_16(834); -emit_16(770); -emit_16(834); -emit_16(769); -emit_16(834); -emit_16(770); -emit_16(835); -emit_16(771); -emit_16(835); -emit_16(770); -emit_16(835); -emit_16(771); -emit_16(836); -emit_16(772); -emit_16(836); -emit_16(771); -emit_16(836); -emit_16(772); -emit_16(837); -emit_16(773); -emit_16(837); -emit_16(772); -emit_16(837); -emit_16(773); -emit_16(838); -emit_16(774); -emit_16(838); -emit_16(773); -emit_16(838); -emit_16(774); -emit_16(839); -emit_16(775); -emit_16(839); -emit_16(774); -emit_16(839); -emit_16(775); -emit_16(840); -emit_16(776); -emit_16(840); -emit_16(775); -emit_16(840); -emit_16(776); -emit_16(841); -emit_16(777); -emit_16(841); -emit_16(776); -emit_16(841); -emit_16(777); -emit_16(842); -emit_16(778); -emit_16(842); -emit_16(777); -emit_16(842); -emit_16(778); -emit_16(843); -emit_16(779); -emit_16(843); -emit_16(778); -emit_16(843); -emit_16(779); -emit_16(844); -emit_16(780); -emit_16(844); -emit_16(779); -emit_16(844); -emit_16(780); -emit_16(845); -emit_16(781); -emit_16(845); -emit_16(780); -emit_16(845); -emit_16(781); -emit_16(846); -emit_16(782); -emit_16(846); -emit_16(781); -emit_16(846); -emit_16(782); -emit_16(847); -emit_16(783); -emit_16(847); -emit_16(782); -emit_16(847); -emit_16(783); -emit_16(848); -emit_16(784); -emit_16(848); -emit_16(783); -emit_16(848); -emit_16(784); -emit_16(849); -emit_16(785); -emit_16(849); -emit_16(784); -emit_16(849); -emit_16(785); -emit_16(850); -emit_16(786); -emit_16(850); -emit_16(785); -emit_16(850); -emit_16(786); -emit_16(851); -emit_16(787); -emit_16(851); -emit_16(786); -emit_16(851); -emit_16(787); -emit_16(852); -emit_16(788); -emit_16(852); -emit_16(787); -emit_16(852); -emit_16(788); -emit_16(853); -emit_16(789); -emit_16(853); -emit_16(788); -emit_16(853); -emit_16(789); -emit_16(854); -emit_16(790); -emit_16(854); -emit_16(789); -emit_16(854); -emit_16(790); -emit_16(855); -emit_16(791); -emit_16(855); -emit_16(790); -emit_16(855); -emit_16(791); -emit_16(856); -emit_16(792); -emit_16(856); -emit_16(791); -emit_16(856); -emit_16(792); -emit_16(857); -emit_16(793); -emit_16(857); -emit_16(792); -emit_16(857); -emit_16(793); -emit_16(858); -emit_16(794); -emit_16(858); -emit_16(793); -emit_16(858); -emit_16(794); -emit_16(859); -emit_16(795); -emit_16(859); -emit_16(794); -emit_16(859); -emit_16(795); -emit_16(860); -emit_16(796); -emit_16(860); -emit_16(795); -emit_16(860); -emit_16(796); -emit_16(861); -emit_16(797); -emit_16(861); -emit_16(796); -emit_16(861); -emit_16(797); -emit_16(862); -emit_16(798); -emit_16(862); -emit_16(797); -emit_16(862); -emit_16(798); -emit_16(863); -emit_16(799); -emit_16(863); -emit_16(798); -emit_16(863); -emit_16(799); -emit_16(864); -emit_16(800); -emit_16(864); -emit_16(799); -emit_16(864); -emit_16(800); -emit_16(865); -emit_16(801); -emit_16(865); -emit_16(800); -emit_16(865); -emit_16(801); -emit_16(866); -emit_16(802); -emit_16(866); -emit_16(801); -emit_16(866); -emit_16(802); -emit_16(867); -emit_16(803); -emit_16(867); -emit_16(802); -emit_16(867); -emit_16(803); -emit_16(868); -emit_16(804); -emit_16(868); -emit_16(803); -emit_16(868); -emit_16(804); -emit_16(869); -emit_16(805); -emit_16(869); -emit_16(804); -emit_16(869); -emit_16(805); -emit_16(870); -emit_16(806); -emit_16(870); -emit_16(805); -emit_16(870); -emit_16(806); -emit_16(871); -emit_16(807); -emit_16(871); -emit_16(806); -emit_16(871); -emit_16(807); -emit_16(872); -emit_16(808); -emit_16(872); -emit_16(807); -emit_16(872); -emit_16(808); -emit_16(873); -emit_16(809); -emit_16(873); -emit_16(808); -emit_16(873); -emit_16(809); -emit_16(874); -emit_16(810); -emit_16(874); -emit_16(809); -emit_16(874); -emit_16(810); -emit_16(875); -emit_16(811); -emit_16(875); -emit_16(810); -emit_16(875); -emit_16(811); -emit_16(876); -emit_16(812); -emit_16(876); -emit_16(811); -emit_16(876); -emit_16(812); -emit_16(877); -emit_16(813); -emit_16(877); -emit_16(812); -emit_16(877); -emit_16(813); -emit_16(878); -emit_16(814); -emit_16(878); -emit_16(813); -emit_16(878); -emit_16(814); -emit_16(879); -emit_16(815); -emit_16(879); -emit_16(814); -emit_16(879); -emit_16(815); -emit_16(880); -emit_16(816); -emit_16(880); -emit_16(815); -emit_16(880); -emit_16(816); -emit_16(881); -emit_16(817); -emit_16(881); -emit_16(816); -emit_16(881); -emit_16(817); -emit_16(882); -emit_16(818); -emit_16(882); -emit_16(817); -emit_16(882); -emit_16(818); -emit_16(883); -emit_16(819); -emit_16(883); -emit_16(818); -emit_16(883); -emit_16(819); -emit_16(884); -emit_16(820); -emit_16(884); -emit_16(819); -emit_16(884); -emit_16(820); -emit_16(885); -emit_16(821); -emit_16(885); -emit_16(820); -emit_16(885); -emit_16(821); -emit_16(886); -emit_16(822); -emit_16(886); -emit_16(821); -emit_16(886); -emit_16(822); -emit_16(887); -emit_16(823); -emit_16(887); -emit_16(822); -emit_16(887); -emit_16(823); -emit_16(888); -emit_16(824); -emit_16(888); -emit_16(823); -emit_16(888); -emit_16(824); -emit_16(889); -emit_16(825); -emit_16(889); -emit_16(824); -emit_16(889); -emit_16(825); -emit_16(890); -emit_16(826); -emit_16(890); -emit_16(825); -emit_16(890); -emit_16(826); -emit_16(891); -emit_16(827); -emit_16(891); -emit_16(826); -emit_16(891); -emit_16(827); -emit_16(892); -emit_16(828); -emit_16(892); -emit_16(827); -emit_16(892); -emit_16(828); -emit_16(893); -emit_16(829); -emit_16(893); -emit_16(828); -emit_16(893); -emit_16(829); -emit_16(894); -emit_16(830); -emit_16(894); -emit_16(829); -emit_16(894); -emit_16(830); -emit_16(895); -emit_16(831); -emit_16(895); -emit_16(830); -emit_16(896); -emit_16(832); -emit_16(897); -emit_16(833); -emit_16(897); -emit_16(832); -emit_16(897); -emit_16(833); -emit_16(898); -emit_16(834); -emit_16(898); -emit_16(833); -emit_16(898); -emit_16(834); -emit_16(899); -emit_16(835); -emit_16(899); -emit_16(834); -emit_16(899); -emit_16(835); -emit_16(900); -emit_16(836); -emit_16(900); -emit_16(835); -emit_16(900); -emit_16(836); -emit_16(901); -emit_16(837); -emit_16(901); -emit_16(836); -emit_16(901); -emit_16(837); -emit_16(902); -emit_16(838); -emit_16(902); -emit_16(837); -emit_16(902); -emit_16(838); -emit_16(903); -emit_16(839); -emit_16(903); -emit_16(838); -emit_16(903); -emit_16(839); -emit_16(904); -emit_16(840); -emit_16(904); -emit_16(839); -emit_16(904); -emit_16(840); -emit_16(905); -emit_16(841); -emit_16(905); -emit_16(840); -emit_16(905); -emit_16(841); -emit_16(906); -emit_16(842); -emit_16(906); -emit_16(841); -emit_16(906); -emit_16(842); -emit_16(907); -emit_16(843); -emit_16(907); -emit_16(842); -emit_16(907); -emit_16(843); -emit_16(908); -emit_16(844); -emit_16(908); -emit_16(843); -emit_16(908); -emit_16(844); -emit_16(909); -emit_16(845); -emit_16(909); -emit_16(844); -emit_16(909); -emit_16(845); -emit_16(910); -emit_16(846); -emit_16(910); -emit_16(845); -emit_16(910); -emit_16(846); -emit_16(911); -emit_16(847); -emit_16(911); -emit_16(846); -emit_16(911); -emit_16(847); -emit_16(912); -emit_16(848); -emit_16(912); -emit_16(847); -emit_16(912); -emit_16(848); -emit_16(913); -emit_16(849); -emit_16(913); -emit_16(848); -emit_16(913); -emit_16(849); -emit_16(914); -emit_16(850); -emit_16(914); -emit_16(849); -emit_16(914); -emit_16(850); -emit_16(915); -emit_16(851); -emit_16(915); -emit_16(850); -emit_16(915); -emit_16(851); -emit_16(916); -emit_16(852); -emit_16(916); -emit_16(851); -emit_16(916); -emit_16(852); -emit_16(917); -emit_16(853); -emit_16(917); -emit_16(852); -emit_16(917); -emit_16(853); -emit_16(918); -emit_16(854); -emit_16(918); -emit_16(853); -emit_16(918); -emit_16(854); -emit_16(919); -emit_16(855); -emit_16(919); -emit_16(854); -emit_16(919); -emit_16(855); -emit_16(920); -emit_16(856); -emit_16(920); -emit_16(855); -emit_16(920); -emit_16(856); -emit_16(921); -emit_16(857); -emit_16(921); -emit_16(856); -emit_16(921); -emit_16(857); -emit_16(922); -emit_16(858); -emit_16(922); -emit_16(857); -emit_16(922); -emit_16(858); -emit_16(923); -emit_16(859); -emit_16(923); -emit_16(858); -emit_16(923); -emit_16(859); -emit_16(924); -emit_16(860); -emit_16(924); -emit_16(859); -emit_16(924); -emit_16(860); -emit_16(925); -emit_16(861); -emit_16(925); -emit_16(860); -emit_16(925); -emit_16(861); -emit_16(926); -emit_16(862); -emit_16(926); -emit_16(861); -emit_16(926); -emit_16(862); -emit_16(927); -emit_16(863); -emit_16(927); -emit_16(862); -emit_16(927); -emit_16(863); -emit_16(928); -emit_16(864); -emit_16(928); -emit_16(863); -emit_16(928); -emit_16(864); -emit_16(929); -emit_16(865); -emit_16(929); -emit_16(864); -emit_16(929); -emit_16(865); -emit_16(930); -emit_16(866); -emit_16(930); -emit_16(865); -emit_16(930); -emit_16(866); -emit_16(931); -emit_16(867); -emit_16(931); -emit_16(866); -emit_16(931); -emit_16(867); -emit_16(932); -emit_16(868); -emit_16(932); -emit_16(867); -emit_16(932); -emit_16(868); -emit_16(933); -emit_16(869); -emit_16(933); -emit_16(868); -emit_16(933); -emit_16(869); -emit_16(934); -emit_16(870); -emit_16(934); -emit_16(869); -emit_16(934); -emit_16(870); -emit_16(935); -emit_16(871); -emit_16(935); -emit_16(870); -emit_16(935); -emit_16(871); -emit_16(936); -emit_16(872); -emit_16(936); -emit_16(871); -emit_16(936); -emit_16(872); -emit_16(937); -emit_16(873); -emit_16(937); -emit_16(872); -emit_16(937); -emit_16(873); -emit_16(938); -emit_16(874); -emit_16(938); -emit_16(873); -emit_16(938); -emit_16(874); -emit_16(939); -emit_16(875); -emit_16(939); -emit_16(874); -emit_16(939); -emit_16(875); -emit_16(940); -emit_16(876); -emit_16(940); -emit_16(875); -emit_16(940); -emit_16(876); -emit_16(941); -emit_16(877); -emit_16(941); -emit_16(876); -emit_16(941); -emit_16(877); -emit_16(942); -emit_16(878); -emit_16(942); -emit_16(877); -emit_16(942); -emit_16(878); -emit_16(943); -emit_16(879); -emit_16(943); -emit_16(878); -emit_16(943); -emit_16(879); -emit_16(944); -emit_16(880); -emit_16(944); -emit_16(879); -emit_16(944); -emit_16(880); -emit_16(945); -emit_16(881); -emit_16(945); -emit_16(880); -emit_16(945); -emit_16(881); -emit_16(946); -emit_16(882); -emit_16(946); -emit_16(881); -emit_16(946); -emit_16(882); -emit_16(947); -emit_16(883); -emit_16(947); -emit_16(882); -emit_16(947); -emit_16(883); -emit_16(948); -emit_16(884); -emit_16(948); -emit_16(883); -emit_16(948); -emit_16(884); -emit_16(949); -emit_16(885); -emit_16(949); -emit_16(884); -emit_16(949); -emit_16(885); -emit_16(950); -emit_16(886); -emit_16(950); -emit_16(885); -emit_16(950); -emit_16(886); -emit_16(951); -emit_16(887); -emit_16(951); -emit_16(886); -emit_16(951); -emit_16(887); -emit_16(952); -emit_16(888); -emit_16(952); -emit_16(887); -emit_16(952); -emit_16(888); -emit_16(953); -emit_16(889); -emit_16(953); -emit_16(888); -emit_16(953); -emit_16(889); -emit_16(954); -emit_16(890); -emit_16(954); -emit_16(889); -emit_16(954); -emit_16(890); -emit_16(955); -emit_16(891); -emit_16(955); -emit_16(890); -emit_16(955); -emit_16(891); -emit_16(956); -emit_16(892); -emit_16(956); -emit_16(891); -emit_16(956); -emit_16(892); -emit_16(957); -emit_16(893); -emit_16(957); -emit_16(892); -emit_16(957); -emit_16(893); -emit_16(958); -emit_16(894); -emit_16(958); -emit_16(893); -emit_16(958); -emit_16(894); -emit_16(959); -emit_16(895); -emit_16(959); -emit_16(894); -emit_16(960); -emit_16(896); -emit_16(961); -emit_16(897); -emit_16(961); -emit_16(896); -emit_16(961); -emit_16(897); -emit_16(962); -emit_16(898); -emit_16(962); -emit_16(897); -emit_16(962); -emit_16(898); -emit_16(963); -emit_16(899); -emit_16(963); -emit_16(898); -emit_16(963); -emit_16(899); -emit_16(964); -emit_16(900); -emit_16(964); -emit_16(899); -emit_16(964); -emit_16(900); -emit_16(965); -emit_16(901); -emit_16(965); -emit_16(900); -emit_16(965); -emit_16(901); -emit_16(966); -emit_16(902); -emit_16(966); -emit_16(901); -emit_16(966); -emit_16(902); -emit_16(967); -emit_16(903); -emit_16(967); -emit_16(902); -emit_16(967); -emit_16(903); -emit_16(968); -emit_16(904); -emit_16(968); -emit_16(903); -emit_16(968); -emit_16(904); -emit_16(969); -emit_16(905); -emit_16(969); -emit_16(904); -emit_16(969); -emit_16(905); -emit_16(970); -emit_16(906); -emit_16(970); -emit_16(905); -emit_16(970); -emit_16(906); -emit_16(971); -emit_16(907); -emit_16(971); -emit_16(906); -emit_16(971); -emit_16(907); -emit_16(972); -emit_16(908); -emit_16(972); -emit_16(907); -emit_16(972); -emit_16(908); -emit_16(973); -emit_16(909); -emit_16(973); -emit_16(908); -emit_16(973); -emit_16(909); -emit_16(974); -emit_16(910); -emit_16(974); -emit_16(909); -emit_16(974); -emit_16(910); -emit_16(975); -emit_16(911); -emit_16(975); -emit_16(910); -emit_16(975); -emit_16(911); -emit_16(976); -emit_16(912); -emit_16(976); -emit_16(911); -emit_16(976); -emit_16(912); -emit_16(977); -emit_16(913); -emit_16(977); -emit_16(912); -emit_16(977); -emit_16(913); -emit_16(978); -emit_16(914); -emit_16(978); -emit_16(913); -emit_16(978); -emit_16(914); -emit_16(979); -emit_16(915); -emit_16(979); -emit_16(914); -emit_16(979); -emit_16(915); -emit_16(980); -emit_16(916); -emit_16(980); -emit_16(915); -emit_16(980); -emit_16(916); -emit_16(981); -emit_16(917); -emit_16(981); -emit_16(916); -emit_16(981); -emit_16(917); -emit_16(982); -emit_16(918); -emit_16(982); -emit_16(917); -emit_16(982); -emit_16(918); -emit_16(983); -emit_16(919); -emit_16(983); -emit_16(918); -emit_16(983); -emit_16(919); -emit_16(984); -emit_16(920); -emit_16(984); -emit_16(919); -emit_16(984); -emit_16(920); -emit_16(985); -emit_16(921); -emit_16(985); -emit_16(920); -emit_16(985); -emit_16(921); -emit_16(986); -emit_16(922); -emit_16(986); -emit_16(921); -emit_16(986); -emit_16(922); -emit_16(987); -emit_16(923); -emit_16(987); -emit_16(922); -emit_16(987); -emit_16(923); -emit_16(988); -emit_16(924); -emit_16(988); -emit_16(923); -emit_16(988); -emit_16(924); -emit_16(989); -emit_16(925); -emit_16(989); -emit_16(924); -emit_16(989); -emit_16(925); -emit_16(990); -emit_16(926); -emit_16(990); -emit_16(925); -emit_16(990); -emit_16(926); -emit_16(991); -emit_16(927); -emit_16(991); -emit_16(926); -emit_16(991); -emit_16(927); -emit_16(992); -emit_16(928); -emit_16(992); -emit_16(927); -emit_16(992); -emit_16(928); -emit_16(993); -emit_16(929); -emit_16(993); -emit_16(928); -emit_16(993); -emit_16(929); -emit_16(994); -emit_16(930); -emit_16(994); -emit_16(929); -emit_16(994); -emit_16(930); -emit_16(995); -emit_16(931); -emit_16(995); -emit_16(930); -emit_16(995); -emit_16(931); -emit_16(996); -emit_16(932); -emit_16(996); -emit_16(931); -emit_16(996); -emit_16(932); -emit_16(997); -emit_16(933); -emit_16(997); -emit_16(932); -emit_16(997); -emit_16(933); -emit_16(998); -emit_16(934); -emit_16(998); -emit_16(933); -emit_16(998); -emit_16(934); -emit_16(999); -emit_16(935); -emit_16(999); -emit_16(934); -emit_16(999); -emit_16(935); -emit_16(1000); -emit_16(936); -emit_16(1000); -emit_16(935); -emit_16(1000); -emit_16(936); -emit_16(1001); -emit_16(937); -emit_16(1001); -emit_16(936); -emit_16(1001); -emit_16(937); -emit_16(1002); -emit_16(938); -emit_16(1002); -emit_16(937); -emit_16(1002); -emit_16(938); -emit_16(1003); -emit_16(939); -emit_16(1003); -emit_16(938); -emit_16(1003); -emit_16(939); -emit_16(1004); -emit_16(940); -emit_16(1004); -emit_16(939); -emit_16(1004); -emit_16(940); -emit_16(1005); -emit_16(941); -emit_16(1005); -emit_16(940); -emit_16(1005); -emit_16(941); -emit_16(1006); -emit_16(942); -emit_16(1006); -emit_16(941); -emit_16(1006); -emit_16(942); -emit_16(1007); -emit_16(943); -emit_16(1007); -emit_16(942); -emit_16(1007); -emit_16(943); -emit_16(1008); -emit_16(944); -emit_16(1008); -emit_16(943); -emit_16(1008); -emit_16(944); -emit_16(1009); -emit_16(945); -emit_16(1009); -emit_16(944); -emit_16(1009); -emit_16(945); -emit_16(1010); -emit_16(946); -emit_16(1010); -emit_16(945); -emit_16(1010); -emit_16(946); -emit_16(1011); -emit_16(947); -emit_16(1011); -emit_16(946); -emit_16(1011); -emit_16(947); -emit_16(1012); -emit_16(948); -emit_16(1012); -emit_16(947); -emit_16(1012); -emit_16(948); -emit_16(1013); -emit_16(949); -emit_16(1013); -emit_16(948); -emit_16(1013); -emit_16(949); -emit_16(1014); -emit_16(950); -emit_16(1014); -emit_16(949); -emit_16(1014); -emit_16(950); -emit_16(1015); -emit_16(951); -emit_16(1015); -emit_16(950); -emit_16(1015); -emit_16(951); -emit_16(1016); -emit_16(952); -emit_16(1016); -emit_16(951); -emit_16(1016); -emit_16(952); -emit_16(1017); -emit_16(953); -emit_16(1017); -emit_16(952); -emit_16(1017); -emit_16(953); -emit_16(1018); -emit_16(954); -emit_16(1018); -emit_16(953); -emit_16(1018); -emit_16(954); -emit_16(1019); -emit_16(955); -emit_16(1019); -emit_16(954); -emit_16(1019); -emit_16(955); -emit_16(1020); -emit_16(956); -emit_16(1020); -emit_16(955); -emit_16(1020); -emit_16(956); -emit_16(1021); -emit_16(957); -emit_16(1021); -emit_16(956); -emit_16(1021); -emit_16(957); -emit_16(1022); -emit_16(958); -emit_16(1022); -emit_16(957); -emit_16(1022); -emit_16(958); -emit_16(1023); -emit_16(959); -emit_16(1023); -emit_16(958); -emit_16(1024); -emit_16(960); -emit_16(1025); -emit_16(961); -emit_16(1025); -emit_16(960); -emit_16(1025); -emit_16(961); -emit_16(1026); -emit_16(962); -emit_16(1026); -emit_16(961); -emit_16(1026); -emit_16(962); -emit_16(1027); -emit_16(963); -emit_16(1027); -emit_16(962); -emit_16(1027); -emit_16(963); -emit_16(1028); -emit_16(964); -emit_16(1028); -emit_16(963); -emit_16(1028); -emit_16(964); -emit_16(1029); -emit_16(965); -emit_16(1029); -emit_16(964); -emit_16(1029); -emit_16(965); -emit_16(1030); -emit_16(966); -emit_16(1030); -emit_16(965); -emit_16(1030); -emit_16(966); -emit_16(1031); -emit_16(967); -emit_16(1031); -emit_16(966); -emit_16(1031); -emit_16(967); -emit_16(1032); -emit_16(968); -emit_16(1032); -emit_16(967); -emit_16(1032); -emit_16(968); -emit_16(1033); -emit_16(969); -emit_16(1033); -emit_16(968); -emit_16(1033); -emit_16(969); -emit_16(1034); -emit_16(970); -emit_16(1034); -emit_16(969); -emit_16(1034); -emit_16(970); -emit_16(1035); -emit_16(971); -emit_16(1035); -emit_16(970); -emit_16(1035); -emit_16(971); -emit_16(1036); -emit_16(972); -emit_16(1036); -emit_16(971); -emit_16(1036); -emit_16(972); -emit_16(1037); -emit_16(973); -emit_16(1037); -emit_16(972); -emit_16(1037); -emit_16(973); -emit_16(1038); -emit_16(974); -emit_16(1038); -emit_16(973); -emit_16(1038); -emit_16(974); -emit_16(1039); -emit_16(975); -emit_16(1039); -emit_16(974); -emit_16(1039); -emit_16(975); -emit_16(1040); -emit_16(976); -emit_16(1040); -emit_16(975); -emit_16(1040); -emit_16(976); -emit_16(1041); -emit_16(977); -emit_16(1041); -emit_16(976); -emit_16(1041); -emit_16(977); -emit_16(1042); -emit_16(978); -emit_16(1042); -emit_16(977); -emit_16(1042); -emit_16(978); -emit_16(1043); -emit_16(979); -emit_16(1043); -emit_16(978); -emit_16(1043); -emit_16(979); -emit_16(1044); -emit_16(980); -emit_16(1044); -emit_16(979); -emit_16(1044); -emit_16(980); -emit_16(1045); -emit_16(981); -emit_16(1045); -emit_16(980); -emit_16(1045); -emit_16(981); -emit_16(1046); -emit_16(982); -emit_16(1046); -emit_16(981); -emit_16(1046); -emit_16(982); -emit_16(1047); -emit_16(983); -emit_16(1047); -emit_16(982); -emit_16(1047); -emit_16(983); -emit_16(1048); -emit_16(984); -emit_16(1048); -emit_16(983); -emit_16(1048); -emit_16(984); -emit_16(1049); -emit_16(985); -emit_16(1049); -emit_16(984); -emit_16(1049); -emit_16(985); -emit_16(1050); -emit_16(986); -emit_16(1050); -emit_16(985); -emit_16(1050); -emit_16(986); -emit_16(1051); -emit_16(987); -emit_16(1051); -emit_16(986); -emit_16(1051); -emit_16(987); -emit_16(1052); -emit_16(988); -emit_16(1052); -emit_16(987); -emit_16(1052); -emit_16(988); -emit_16(1053); -emit_16(989); -emit_16(1053); -emit_16(988); -emit_16(1053); -emit_16(989); -emit_16(1054); -emit_16(990); -emit_16(1054); -emit_16(989); -emit_16(1054); -emit_16(990); -emit_16(1055); -emit_16(991); -emit_16(1055); -emit_16(990); -emit_16(1055); -emit_16(991); -emit_16(1056); -emit_16(992); -emit_16(1056); -emit_16(991); -emit_16(1056); -emit_16(992); -emit_16(1057); -emit_16(993); -emit_16(1057); -emit_16(992); -emit_16(1057); -emit_16(993); -emit_16(1058); -emit_16(994); -emit_16(1058); -emit_16(993); -emit_16(1058); -emit_16(994); -emit_16(1059); -emit_16(995); -emit_16(1059); -emit_16(994); -emit_16(1059); -emit_16(995); -emit_16(1060); -emit_16(996); -emit_16(1060); -emit_16(995); -emit_16(1060); -emit_16(996); -emit_16(1061); -emit_16(997); -emit_16(1061); -emit_16(996); -emit_16(1061); -emit_16(997); -emit_16(1062); -emit_16(998); -emit_16(1062); -emit_16(997); -emit_16(1062); -emit_16(998); -emit_16(1063); -emit_16(999); -emit_16(1063); -emit_16(998); -emit_16(1063); -emit_16(999); -emit_16(1064); -emit_16(1000); -emit_16(1064); -emit_16(999); -emit_16(1064); -emit_16(1000); -emit_16(1065); -emit_16(1001); -emit_16(1065); -emit_16(1000); -emit_16(1065); -emit_16(1001); -emit_16(1066); -emit_16(1002); -emit_16(1066); -emit_16(1001); -emit_16(1066); -emit_16(1002); -emit_16(1067); -emit_16(1003); -emit_16(1067); -emit_16(1002); -emit_16(1067); -emit_16(1003); -emit_16(1068); -emit_16(1004); -emit_16(1068); -emit_16(1003); -emit_16(1068); -emit_16(1004); -emit_16(1069); -emit_16(1005); -emit_16(1069); -emit_16(1004); -emit_16(1069); -emit_16(1005); -emit_16(1070); -emit_16(1006); -emit_16(1070); -emit_16(1005); -emit_16(1070); -emit_16(1006); -emit_16(1071); -emit_16(1007); -emit_16(1071); -emit_16(1006); -emit_16(1071); -emit_16(1007); -emit_16(1072); -emit_16(1008); -emit_16(1072); -emit_16(1007); -emit_16(1072); -emit_16(1008); -emit_16(1073); -emit_16(1009); -emit_16(1073); -emit_16(1008); -emit_16(1073); -emit_16(1009); -emit_16(1074); -emit_16(1010); -emit_16(1074); -emit_16(1009); -emit_16(1074); -emit_16(1010); -emit_16(1075); -emit_16(1011); -emit_16(1075); -emit_16(1010); -emit_16(1075); -emit_16(1011); -emit_16(1076); -emit_16(1012); -emit_16(1076); -emit_16(1011); -emit_16(1076); -emit_16(1012); -emit_16(1077); -emit_16(1013); -emit_16(1077); -emit_16(1012); -emit_16(1077); -emit_16(1013); -emit_16(1078); -emit_16(1014); -emit_16(1078); -emit_16(1013); -emit_16(1078); -emit_16(1014); -emit_16(1079); -emit_16(1015); -emit_16(1079); -emit_16(1014); -emit_16(1079); -emit_16(1015); -emit_16(1080); -emit_16(1016); -emit_16(1080); -emit_16(1015); -emit_16(1080); -emit_16(1016); -emit_16(1081); -emit_16(1017); -emit_16(1081); -emit_16(1016); -emit_16(1081); -emit_16(1017); -emit_16(1082); -emit_16(1018); -emit_16(1082); -emit_16(1017); -emit_16(1082); -emit_16(1018); -emit_16(1083); -emit_16(1019); -emit_16(1083); -emit_16(1018); -emit_16(1083); -emit_16(1019); -emit_16(1084); -emit_16(1020); -emit_16(1084); -emit_16(1019); -emit_16(1084); -emit_16(1020); -emit_16(1085); -emit_16(1021); -emit_16(1085); -emit_16(1020); -emit_16(1085); -emit_16(1021); -emit_16(1086); -emit_16(1022); -emit_16(1086); -emit_16(1021); -emit_16(1086); -emit_16(1022); -emit_16(1087); -emit_16(1023); -emit_16(1087); -emit_16(1022); -emit_16(1088); -emit_16(1024); -emit_16(1089); -emit_16(1025); -emit_16(1089); -emit_16(1024); -emit_16(1089); -emit_16(1025); -emit_16(1090); -emit_16(1026); -emit_16(1090); -emit_16(1025); -emit_16(1090); -emit_16(1026); -emit_16(1091); -emit_16(1027); -emit_16(1091); -emit_16(1026); -emit_16(1091); -emit_16(1027); -emit_16(1092); -emit_16(1028); -emit_16(1092); -emit_16(1027); -emit_16(1092); -emit_16(1028); -emit_16(1093); -emit_16(1029); -emit_16(1093); -emit_16(1028); -emit_16(1093); -emit_16(1029); -emit_16(1094); -emit_16(1030); -emit_16(1094); -emit_16(1029); -emit_16(1094); -emit_16(1030); -emit_16(1095); -emit_16(1031); -emit_16(1095); -emit_16(1030); -emit_16(1095); -emit_16(1031); -emit_16(1096); -emit_16(1032); -emit_16(1096); -emit_16(1031); -emit_16(1096); -emit_16(1032); -emit_16(1097); -emit_16(1033); -emit_16(1097); -emit_16(1032); -emit_16(1097); -emit_16(1033); -emit_16(1098); -emit_16(1034); -emit_16(1098); -emit_16(1033); -emit_16(1098); -emit_16(1034); -emit_16(1099); -emit_16(1035); -emit_16(1099); -emit_16(1034); -emit_16(1099); -emit_16(1035); -emit_16(1100); -emit_16(1036); -emit_16(1100); -emit_16(1035); -emit_16(1100); -emit_16(1036); -emit_16(1101); -emit_16(1037); -emit_16(1101); -emit_16(1036); -emit_16(1101); -emit_16(1037); -emit_16(1102); -emit_16(1038); -emit_16(1102); -emit_16(1037); -emit_16(1102); -emit_16(1038); -emit_16(1103); -emit_16(1039); -emit_16(1103); -emit_16(1038); -emit_16(1103); -emit_16(1039); -emit_16(1104); -emit_16(1040); -emit_16(1104); -emit_16(1039); -emit_16(1104); -emit_16(1040); -emit_16(1105); -emit_16(1041); -emit_16(1105); -emit_16(1040); -emit_16(1105); -emit_16(1041); -emit_16(1106); -emit_16(1042); -emit_16(1106); -emit_16(1041); -emit_16(1106); -emit_16(1042); -emit_16(1107); -emit_16(1043); -emit_16(1107); -emit_16(1042); -emit_16(1107); -emit_16(1043); -emit_16(1108); -emit_16(1044); -emit_16(1108); -emit_16(1043); -emit_16(1108); -emit_16(1044); -emit_16(1109); -emit_16(1045); -emit_16(1109); -emit_16(1044); -emit_16(1109); -emit_16(1045); -emit_16(1110); -emit_16(1046); -emit_16(1110); -emit_16(1045); -emit_16(1110); -emit_16(1046); -emit_16(1111); -emit_16(1047); -emit_16(1111); -emit_16(1046); -emit_16(1111); -emit_16(1047); -emit_16(1112); -emit_16(1048); -emit_16(1112); -emit_16(1047); -emit_16(1112); -emit_16(1048); -emit_16(1113); -emit_16(1049); -emit_16(1113); -emit_16(1048); -emit_16(1113); -emit_16(1049); -emit_16(1114); -emit_16(1050); -emit_16(1114); -emit_16(1049); -emit_16(1114); -emit_16(1050); -emit_16(1115); -emit_16(1051); -emit_16(1115); -emit_16(1050); -emit_16(1115); -emit_16(1051); -emit_16(1116); -emit_16(1052); -emit_16(1116); -emit_16(1051); -emit_16(1116); -emit_16(1052); -emit_16(1117); -emit_16(1053); -emit_16(1117); -emit_16(1052); -emit_16(1117); -emit_16(1053); -emit_16(1118); -emit_16(1054); -emit_16(1118); -emit_16(1053); -emit_16(1118); -emit_16(1054); -emit_16(1119); -emit_16(1055); -emit_16(1119); -emit_16(1054); -emit_16(1119); -emit_16(1055); -emit_16(1120); -emit_16(1056); -emit_16(1120); -emit_16(1055); -emit_16(1120); -emit_16(1056); -emit_16(1121); -emit_16(1057); -emit_16(1121); -emit_16(1056); -emit_16(1121); -emit_16(1057); -emit_16(1122); -emit_16(1058); -emit_16(1122); -emit_16(1057); -emit_16(1122); -emit_16(1058); -emit_16(1123); -emit_16(1059); -emit_16(1123); -emit_16(1058); -emit_16(1123); -emit_16(1059); -emit_16(1124); -emit_16(1060); -emit_16(1124); -emit_16(1059); -emit_16(1124); -emit_16(1060); -emit_16(1125); -emit_16(1061); -emit_16(1125); -emit_16(1060); -emit_16(1125); -emit_16(1061); -emit_16(1126); -emit_16(1062); -emit_16(1126); -emit_16(1061); -emit_16(1126); -emit_16(1062); -emit_16(1127); -emit_16(1063); -emit_16(1127); -emit_16(1062); -emit_16(1127); -emit_16(1063); -emit_16(1128); -emit_16(1064); -emit_16(1128); -emit_16(1063); -emit_16(1128); -emit_16(1064); -emit_16(1129); -emit_16(1065); -emit_16(1129); -emit_16(1064); -emit_16(1129); -emit_16(1065); -emit_16(1130); -emit_16(1066); -emit_16(1130); -emit_16(1065); -emit_16(1130); -emit_16(1066); -emit_16(1131); -emit_16(1067); -emit_16(1131); -emit_16(1066); -emit_16(1131); -emit_16(1067); -emit_16(1132); -emit_16(1068); -emit_16(1132); -emit_16(1067); -emit_16(1132); -emit_16(1068); -emit_16(1133); -emit_16(1069); -emit_16(1133); -emit_16(1068); -emit_16(1133); -emit_16(1069); -emit_16(1134); -emit_16(1070); -emit_16(1134); -emit_16(1069); -emit_16(1134); -emit_16(1070); -emit_16(1135); -emit_16(1071); -emit_16(1135); -emit_16(1070); -emit_16(1135); -emit_16(1071); -emit_16(1136); -emit_16(1072); -emit_16(1136); -emit_16(1071); -emit_16(1136); -emit_16(1072); -emit_16(1137); -emit_16(1073); -emit_16(1137); -emit_16(1072); -emit_16(1137); -emit_16(1073); -emit_16(1138); -emit_16(1074); -emit_16(1138); -emit_16(1073); -emit_16(1138); -emit_16(1074); -emit_16(1139); -emit_16(1075); -emit_16(1139); -emit_16(1074); -emit_16(1139); -emit_16(1075); -emit_16(1140); -emit_16(1076); -emit_16(1140); -emit_16(1075); -emit_16(1140); -emit_16(1076); -emit_16(1141); -emit_16(1077); -emit_16(1141); -emit_16(1076); -emit_16(1141); -emit_16(1077); -emit_16(1142); -emit_16(1078); -emit_16(1142); -emit_16(1077); -emit_16(1142); -emit_16(1078); -emit_16(1143); -emit_16(1079); -emit_16(1143); -emit_16(1078); -emit_16(1143); -emit_16(1079); -emit_16(1144); -emit_16(1080); -emit_16(1144); -emit_16(1079); -emit_16(1144); -emit_16(1080); -emit_16(1145); -emit_16(1081); -emit_16(1145); -emit_16(1080); -emit_16(1145); -emit_16(1081); -emit_16(1146); -emit_16(1082); -emit_16(1146); -emit_16(1081); -emit_16(1146); -emit_16(1082); -emit_16(1147); -emit_16(1083); -emit_16(1147); -emit_16(1082); -emit_16(1147); -emit_16(1083); -emit_16(1148); -emit_16(1084); -emit_16(1148); -emit_16(1083); -emit_16(1148); -emit_16(1084); -emit_16(1149); -emit_16(1085); -emit_16(1149); -emit_16(1084); -emit_16(1149); -emit_16(1085); -emit_16(1150); -emit_16(1086); -emit_16(1150); -emit_16(1085); -emit_16(1150); -emit_16(1086); -emit_16(1151); -emit_16(1087); -emit_16(1151); -emit_16(1086); -emit_16(1152); -emit_16(1088); -emit_16(1153); -emit_16(1089); -emit_16(1153); -emit_16(1088); -emit_16(1153); -emit_16(1089); -emit_16(1154); -emit_16(1090); -emit_16(1154); -emit_16(1089); -emit_16(1154); -emit_16(1090); -emit_16(1155); -emit_16(1091); -emit_16(1155); -emit_16(1090); -emit_16(1155); -emit_16(1091); -emit_16(1156); -emit_16(1092); -emit_16(1156); -emit_16(1091); -emit_16(1156); -emit_16(1092); -emit_16(1157); -emit_16(1093); -emit_16(1157); -emit_16(1092); -emit_16(1157); -emit_16(1093); -emit_16(1158); -emit_16(1094); -emit_16(1158); -emit_16(1093); -emit_16(1158); -emit_16(1094); -emit_16(1159); -emit_16(1095); -emit_16(1159); -emit_16(1094); -emit_16(1159); -emit_16(1095); -emit_16(1160); -emit_16(1096); -emit_16(1160); -emit_16(1095); -emit_16(1160); -emit_16(1096); -emit_16(1161); -emit_16(1097); -emit_16(1161); -emit_16(1096); -emit_16(1161); -emit_16(1097); -emit_16(1162); -emit_16(1098); -emit_16(1162); -emit_16(1097); -emit_16(1162); -emit_16(1098); -emit_16(1163); -emit_16(1099); -emit_16(1163); -emit_16(1098); -emit_16(1163); -emit_16(1099); -emit_16(1164); -emit_16(1100); -emit_16(1164); -emit_16(1099); -emit_16(1164); -emit_16(1100); -emit_16(1165); -emit_16(1101); -emit_16(1165); -emit_16(1100); -emit_16(1165); -emit_16(1101); -emit_16(1166); -emit_16(1102); -emit_16(1166); -emit_16(1101); -emit_16(1166); -emit_16(1102); -emit_16(1167); -emit_16(1103); -emit_16(1167); -emit_16(1102); -emit_16(1167); -emit_16(1103); -emit_16(1168); -emit_16(1104); -emit_16(1168); -emit_16(1103); -emit_16(1168); -emit_16(1104); -emit_16(1169); -emit_16(1105); -emit_16(1169); -emit_16(1104); -emit_16(1169); -emit_16(1105); -emit_16(1170); -emit_16(1106); -emit_16(1170); -emit_16(1105); -emit_16(1170); -emit_16(1106); -emit_16(1171); -emit_16(1107); -emit_16(1171); -emit_16(1106); -emit_16(1171); -emit_16(1107); -emit_16(1172); -emit_16(1108); -emit_16(1172); -emit_16(1107); -emit_16(1172); -emit_16(1108); -emit_16(1173); -emit_16(1109); -emit_16(1173); -emit_16(1108); -emit_16(1173); -emit_16(1109); -emit_16(1174); -emit_16(1110); -emit_16(1174); -emit_16(1109); -emit_16(1174); -emit_16(1110); -emit_16(1175); -emit_16(1111); -emit_16(1175); -emit_16(1110); -emit_16(1175); -emit_16(1111); -emit_16(1176); -emit_16(1112); -emit_16(1176); -emit_16(1111); -emit_16(1176); -emit_16(1112); -emit_16(1177); -emit_16(1113); -emit_16(1177); -emit_16(1112); -emit_16(1177); -emit_16(1113); -emit_16(1178); -emit_16(1114); -emit_16(1178); -emit_16(1113); -emit_16(1178); -emit_16(1114); -emit_16(1179); -emit_16(1115); -emit_16(1179); -emit_16(1114); -emit_16(1179); -emit_16(1115); -emit_16(1180); -emit_16(1116); -emit_16(1180); -emit_16(1115); -emit_16(1180); -emit_16(1116); -emit_16(1181); -emit_16(1117); -emit_16(1181); -emit_16(1116); -emit_16(1181); -emit_16(1117); -emit_16(1182); -emit_16(1118); -emit_16(1182); -emit_16(1117); -emit_16(1182); -emit_16(1118); -emit_16(1183); -emit_16(1119); -emit_16(1183); -emit_16(1118); -emit_16(1183); -emit_16(1119); -emit_16(1184); -emit_16(1120); -emit_16(1184); -emit_16(1119); -emit_16(1184); -emit_16(1120); -emit_16(1185); -emit_16(1121); -emit_16(1185); -emit_16(1120); -emit_16(1185); -emit_16(1121); -emit_16(1186); -emit_16(1122); -emit_16(1186); -emit_16(1121); -emit_16(1186); -emit_16(1122); -emit_16(1187); -emit_16(1123); -emit_16(1187); -emit_16(1122); -emit_16(1187); -emit_16(1123); -emit_16(1188); -emit_16(1124); -emit_16(1188); -emit_16(1123); -emit_16(1188); -emit_16(1124); -emit_16(1189); -emit_16(1125); -emit_16(1189); -emit_16(1124); -emit_16(1189); -emit_16(1125); -emit_16(1190); -emit_16(1126); -emit_16(1190); -emit_16(1125); -emit_16(1190); -emit_16(1126); -emit_16(1191); -emit_16(1127); -emit_16(1191); -emit_16(1126); -emit_16(1191); -emit_16(1127); -emit_16(1192); -emit_16(1128); -emit_16(1192); -emit_16(1127); -emit_16(1192); -emit_16(1128); -emit_16(1193); -emit_16(1129); -emit_16(1193); -emit_16(1128); -emit_16(1193); -emit_16(1129); -emit_16(1194); -emit_16(1130); -emit_16(1194); -emit_16(1129); -emit_16(1194); -emit_16(1130); -emit_16(1195); -emit_16(1131); -emit_16(1195); -emit_16(1130); -emit_16(1195); -emit_16(1131); -emit_16(1196); -emit_16(1132); -emit_16(1196); -emit_16(1131); -emit_16(1196); -emit_16(1132); -emit_16(1197); -emit_16(1133); -emit_16(1197); -emit_16(1132); -emit_16(1197); -emit_16(1133); -emit_16(1198); -emit_16(1134); -emit_16(1198); -emit_16(1133); -emit_16(1198); -emit_16(1134); -emit_16(1199); -emit_16(1135); -emit_16(1199); -emit_16(1134); -emit_16(1199); -emit_16(1135); -emit_16(1200); -emit_16(1136); -emit_16(1200); -emit_16(1135); -emit_16(1200); -emit_16(1136); -emit_16(1201); -emit_16(1137); -emit_16(1201); -emit_16(1136); -emit_16(1201); -emit_16(1137); -emit_16(1202); -emit_16(1138); -emit_16(1202); -emit_16(1137); -emit_16(1202); -emit_16(1138); -emit_16(1203); -emit_16(1139); -emit_16(1203); -emit_16(1138); -emit_16(1203); -emit_16(1139); -emit_16(1204); -emit_16(1140); -emit_16(1204); -emit_16(1139); -emit_16(1204); -emit_16(1140); -emit_16(1205); -emit_16(1141); -emit_16(1205); -emit_16(1140); -emit_16(1205); -emit_16(1141); -emit_16(1206); -emit_16(1142); -emit_16(1206); -emit_16(1141); -emit_16(1206); -emit_16(1142); -emit_16(1207); -emit_16(1143); -emit_16(1207); -emit_16(1142); -emit_16(1207); -emit_16(1143); -emit_16(1208); -emit_16(1144); -emit_16(1208); -emit_16(1143); -emit_16(1208); -emit_16(1144); -emit_16(1209); -emit_16(1145); -emit_16(1209); -emit_16(1144); -emit_16(1209); -emit_16(1145); -emit_16(1210); -emit_16(1146); -emit_16(1210); -emit_16(1145); -emit_16(1210); -emit_16(1146); -emit_16(1211); -emit_16(1147); -emit_16(1211); -emit_16(1146); -emit_16(1211); -emit_16(1147); -emit_16(1212); -emit_16(1148); -emit_16(1212); -emit_16(1147); -emit_16(1212); -emit_16(1148); -emit_16(1213); -emit_16(1149); -emit_16(1213); -emit_16(1148); -emit_16(1213); -emit_16(1149); -emit_16(1214); -emit_16(1150); -emit_16(1214); -emit_16(1149); -emit_16(1214); -emit_16(1150); -emit_16(1215); -emit_16(1151); -emit_16(1215); -emit_16(1150); -emit_16(1216); -emit_16(1152); -emit_16(1217); -emit_16(1153); -emit_16(1217); -emit_16(1152); -emit_16(1217); -emit_16(1153); -emit_16(1218); -emit_16(1154); -emit_16(1218); -emit_16(1153); -emit_16(1218); -emit_16(1154); -emit_16(1219); -emit_16(1155); -emit_16(1219); -emit_16(1154); -emit_16(1219); -emit_16(1155); -emit_16(1220); -emit_16(1156); -emit_16(1220); -emit_16(1155); -emit_16(1220); -emit_16(1156); -emit_16(1221); -emit_16(1157); -emit_16(1221); -emit_16(1156); -emit_16(1221); -emit_16(1157); -emit_16(1222); -emit_16(1158); -emit_16(1222); -emit_16(1157); -emit_16(1222); -emit_16(1158); -emit_16(1223); -emit_16(1159); -emit_16(1223); -emit_16(1158); -emit_16(1223); -emit_16(1159); -emit_16(1224); -emit_16(1160); -emit_16(1224); -emit_16(1159); -emit_16(1224); -emit_16(1160); -emit_16(1225); -emit_16(1161); -emit_16(1225); -emit_16(1160); -emit_16(1225); -emit_16(1161); -emit_16(1226); -emit_16(1162); -emit_16(1226); -emit_16(1161); -emit_16(1226); -emit_16(1162); -emit_16(1227); -emit_16(1163); -emit_16(1227); -emit_16(1162); -emit_16(1227); -emit_16(1163); -emit_16(1228); -emit_16(1164); -emit_16(1228); -emit_16(1163); -emit_16(1228); -emit_16(1164); -emit_16(1229); -emit_16(1165); -emit_16(1229); -emit_16(1164); -emit_16(1229); -emit_16(1165); -emit_16(1230); -emit_16(1166); -emit_16(1230); -emit_16(1165); -emit_16(1230); -emit_16(1166); -emit_16(1231); -emit_16(1167); -emit_16(1231); -emit_16(1166); -emit_16(1231); -emit_16(1167); -emit_16(1232); -emit_16(1168); -emit_16(1232); -emit_16(1167); -emit_16(1232); -emit_16(1168); -emit_16(1233); -emit_16(1169); -emit_16(1233); -emit_16(1168); -emit_16(1233); -emit_16(1169); -emit_16(1234); -emit_16(1170); -emit_16(1234); -emit_16(1169); -emit_16(1234); -emit_16(1170); -emit_16(1235); -emit_16(1171); -emit_16(1235); -emit_16(1170); -emit_16(1235); -emit_16(1171); -emit_16(1236); -emit_16(1172); -emit_16(1236); -emit_16(1171); -emit_16(1236); -emit_16(1172); -emit_16(1237); -emit_16(1173); -emit_16(1237); -emit_16(1172); -emit_16(1237); -emit_16(1173); -emit_16(1238); -emit_16(1174); -emit_16(1238); -emit_16(1173); -emit_16(1238); -emit_16(1174); -emit_16(1239); -emit_16(1175); -emit_16(1239); -emit_16(1174); -emit_16(1239); -emit_16(1175); -emit_16(1240); -emit_16(1176); -emit_16(1240); -emit_16(1175); -emit_16(1240); -emit_16(1176); -emit_16(1241); -emit_16(1177); -emit_16(1241); -emit_16(1176); -emit_16(1241); -emit_16(1177); -emit_16(1242); -emit_16(1178); -emit_16(1242); -emit_16(1177); -emit_16(1242); -emit_16(1178); -emit_16(1243); -emit_16(1179); -emit_16(1243); -emit_16(1178); -emit_16(1243); -emit_16(1179); -emit_16(1244); -emit_16(1180); -emit_16(1244); -emit_16(1179); -emit_16(1244); -emit_16(1180); -emit_16(1245); -emit_16(1181); -emit_16(1245); -emit_16(1180); -emit_16(1245); -emit_16(1181); -emit_16(1246); -emit_16(1182); -emit_16(1246); -emit_16(1181); -emit_16(1246); -emit_16(1182); -emit_16(1247); -emit_16(1183); -emit_16(1247); -emit_16(1182); -emit_16(1247); -emit_16(1183); -emit_16(1248); -emit_16(1184); -emit_16(1248); -emit_16(1183); -emit_16(1248); -emit_16(1184); -emit_16(1249); -emit_16(1185); -emit_16(1249); -emit_16(1184); -emit_16(1249); -emit_16(1185); -emit_16(1250); -emit_16(1186); -emit_16(1250); -emit_16(1185); -emit_16(1250); -emit_16(1186); -emit_16(1251); -emit_16(1187); -emit_16(1251); -emit_16(1186); -emit_16(1251); -emit_16(1187); -emit_16(1252); -emit_16(1188); -emit_16(1252); -emit_16(1187); -emit_16(1252); -emit_16(1188); -emit_16(1253); -emit_16(1189); -emit_16(1253); -emit_16(1188); -emit_16(1253); -emit_16(1189); -emit_16(1254); -emit_16(1190); -emit_16(1254); -emit_16(1189); -emit_16(1254); -emit_16(1190); -emit_16(1255); -emit_16(1191); -emit_16(1255); -emit_16(1190); -emit_16(1255); -emit_16(1191); -emit_16(1256); -emit_16(1192); -emit_16(1256); -emit_16(1191); -emit_16(1256); -emit_16(1192); -emit_16(1257); -emit_16(1193); -emit_16(1257); -emit_16(1192); -emit_16(1257); -emit_16(1193); -emit_16(1258); -emit_16(1194); -emit_16(1258); -emit_16(1193); -emit_16(1258); -emit_16(1194); -emit_16(1259); -emit_16(1195); -emit_16(1259); -emit_16(1194); -emit_16(1259); -emit_16(1195); -emit_16(1260); -emit_16(1196); -emit_16(1260); -emit_16(1195); -emit_16(1260); -emit_16(1196); -emit_16(1261); -emit_16(1197); -emit_16(1261); -emit_16(1196); -emit_16(1261); -emit_16(1197); -emit_16(1262); -emit_16(1198); -emit_16(1262); -emit_16(1197); -emit_16(1262); -emit_16(1198); -emit_16(1263); -emit_16(1199); -emit_16(1263); -emit_16(1198); -emit_16(1263); -emit_16(1199); -emit_16(1264); -emit_16(1200); -emit_16(1264); -emit_16(1199); -emit_16(1264); -emit_16(1200); -emit_16(1265); -emit_16(1201); -emit_16(1265); -emit_16(1200); -emit_16(1265); -emit_16(1201); -emit_16(1266); -emit_16(1202); -emit_16(1266); -emit_16(1201); -emit_16(1266); -emit_16(1202); -emit_16(1267); -emit_16(1203); -emit_16(1267); -emit_16(1202); -emit_16(1267); -emit_16(1203); -emit_16(1268); -emit_16(1204); -emit_16(1268); -emit_16(1203); -emit_16(1268); -emit_16(1204); -emit_16(1269); -emit_16(1205); -emit_16(1269); -emit_16(1204); -emit_16(1269); -emit_16(1205); -emit_16(1270); -emit_16(1206); -emit_16(1270); -emit_16(1205); -emit_16(1270); -emit_16(1206); -emit_16(1271); -emit_16(1207); -emit_16(1271); -emit_16(1206); -emit_16(1271); -emit_16(1207); -emit_16(1272); -emit_16(1208); -emit_16(1272); -emit_16(1207); -emit_16(1272); -emit_16(1208); -emit_16(1273); -emit_16(1209); -emit_16(1273); -emit_16(1208); -emit_16(1273); -emit_16(1209); -emit_16(1274); -emit_16(1210); -emit_16(1274); -emit_16(1209); -emit_16(1274); -emit_16(1210); -emit_16(1275); -emit_16(1211); -emit_16(1275); -emit_16(1210); -emit_16(1275); -emit_16(1211); -emit_16(1276); -emit_16(1212); -emit_16(1276); -emit_16(1211); -emit_16(1276); -emit_16(1212); -emit_16(1277); -emit_16(1213); -emit_16(1277); -emit_16(1212); -emit_16(1277); -emit_16(1213); -emit_16(1278); -emit_16(1214); -emit_16(1278); -emit_16(1213); -emit_16(1278); -emit_16(1214); -emit_16(1279); -emit_16(1215); -emit_16(1279); -emit_16(1214); -emit_16(1280); -emit_16(1216); -emit_16(1281); -emit_16(1217); -emit_16(1281); -emit_16(1216); -emit_16(1281); -emit_16(1217); -emit_16(1282); -emit_16(1218); -emit_16(1282); -emit_16(1217); -emit_16(1282); -emit_16(1218); -emit_16(1283); -emit_16(1219); -emit_16(1283); -emit_16(1218); -emit_16(1283); -emit_16(1219); -emit_16(1284); -emit_16(1220); -emit_16(1284); -emit_16(1219); -emit_16(1284); -emit_16(1220); -emit_16(1285); -emit_16(1221); -emit_16(1285); -emit_16(1220); -emit_16(1285); -emit_16(1221); -emit_16(1286); -emit_16(1222); -emit_16(1286); -emit_16(1221); -emit_16(1286); -emit_16(1222); -emit_16(1287); -emit_16(1223); -emit_16(1287); -emit_16(1222); -emit_16(1287); -emit_16(1223); -emit_16(1288); -emit_16(1224); -emit_16(1288); -emit_16(1223); -emit_16(1288); -emit_16(1224); -emit_16(1289); -emit_16(1225); -emit_16(1289); -emit_16(1224); -emit_16(1289); -emit_16(1225); -emit_16(1290); -emit_16(1226); -emit_16(1290); -emit_16(1225); -emit_16(1290); -emit_16(1226); -emit_16(1291); -emit_16(1227); -emit_16(1291); -emit_16(1226); -emit_16(1291); -emit_16(1227); -emit_16(1292); -emit_16(1228); -emit_16(1292); -emit_16(1227); -emit_16(1292); -emit_16(1228); -emit_16(1293); -emit_16(1229); -emit_16(1293); -emit_16(1228); -emit_16(1293); -emit_16(1229); -emit_16(1294); -emit_16(1230); -emit_16(1294); -emit_16(1229); -emit_16(1294); -emit_16(1230); -emit_16(1295); -emit_16(1231); -emit_16(1295); -emit_16(1230); -emit_16(1295); -emit_16(1231); -emit_16(1296); -emit_16(1232); -emit_16(1296); -emit_16(1231); -emit_16(1296); -emit_16(1232); -emit_16(1297); -emit_16(1233); -emit_16(1297); -emit_16(1232); -emit_16(1297); -emit_16(1233); -emit_16(1298); -emit_16(1234); -emit_16(1298); -emit_16(1233); -emit_16(1298); -emit_16(1234); -emit_16(1299); -emit_16(1235); -emit_16(1299); -emit_16(1234); -emit_16(1299); -emit_16(1235); -emit_16(1300); -emit_16(1236); -emit_16(1300); -emit_16(1235); -emit_16(1300); -emit_16(1236); -emit_16(1301); -emit_16(1237); -emit_16(1301); -emit_16(1236); -emit_16(1301); -emit_16(1237); -emit_16(1302); -emit_16(1238); -emit_16(1302); -emit_16(1237); -emit_16(1302); -emit_16(1238); -emit_16(1303); -emit_16(1239); -emit_16(1303); -emit_16(1238); -emit_16(1303); -emit_16(1239); -emit_16(1304); -emit_16(1240); -emit_16(1304); -emit_16(1239); -emit_16(1304); -emit_16(1240); -emit_16(1305); -emit_16(1241); -emit_16(1305); -emit_16(1240); -emit_16(1305); -emit_16(1241); -emit_16(1306); -emit_16(1242); -emit_16(1306); -emit_16(1241); -emit_16(1306); -emit_16(1242); -emit_16(1307); -emit_16(1243); -emit_16(1307); -emit_16(1242); -emit_16(1307); -emit_16(1243); -emit_16(1308); -emit_16(1244); -emit_16(1308); -emit_16(1243); -emit_16(1308); -emit_16(1244); -emit_16(1309); -emit_16(1245); -emit_16(1309); -emit_16(1244); -emit_16(1309); -emit_16(1245); -emit_16(1310); -emit_16(1246); -emit_16(1310); -emit_16(1245); -emit_16(1310); -emit_16(1246); -emit_16(1311); -emit_16(1247); -emit_16(1311); -emit_16(1246); -emit_16(1311); -emit_16(1247); -emit_16(1312); -emit_16(1248); -emit_16(1312); -emit_16(1247); -emit_16(1312); -emit_16(1248); -emit_16(1313); -emit_16(1249); -emit_16(1313); -emit_16(1248); -emit_16(1313); -emit_16(1249); -emit_16(1314); -emit_16(1250); -emit_16(1314); -emit_16(1249); -emit_16(1314); -emit_16(1250); -emit_16(1315); -emit_16(1251); -emit_16(1315); -emit_16(1250); -emit_16(1315); -emit_16(1251); -emit_16(1316); -emit_16(1252); -emit_16(1316); -emit_16(1251); -emit_16(1316); -emit_16(1252); -emit_16(1317); -emit_16(1253); -emit_16(1317); -emit_16(1252); -emit_16(1317); -emit_16(1253); -emit_16(1318); -emit_16(1254); -emit_16(1318); -emit_16(1253); -emit_16(1318); -emit_16(1254); -emit_16(1319); -emit_16(1255); -emit_16(1319); -emit_16(1254); -emit_16(1319); -emit_16(1255); -emit_16(1320); -emit_16(1256); -emit_16(1320); -emit_16(1255); -emit_16(1320); -emit_16(1256); -emit_16(1321); -emit_16(1257); -emit_16(1321); -emit_16(1256); -emit_16(1321); -emit_16(1257); -emit_16(1322); -emit_16(1258); -emit_16(1322); -emit_16(1257); -emit_16(1322); -emit_16(1258); -emit_16(1323); -emit_16(1259); -emit_16(1323); -emit_16(1258); -emit_16(1323); -emit_16(1259); -emit_16(1324); -emit_16(1260); -emit_16(1324); -emit_16(1259); -emit_16(1324); -emit_16(1260); -emit_16(1325); -emit_16(1261); -emit_16(1325); -emit_16(1260); -emit_16(1325); -emit_16(1261); -emit_16(1326); -emit_16(1262); -emit_16(1326); -emit_16(1261); -emit_16(1326); -emit_16(1262); -emit_16(1327); -emit_16(1263); -emit_16(1327); -emit_16(1262); -emit_16(1327); -emit_16(1263); -emit_16(1328); -emit_16(1264); -emit_16(1328); -emit_16(1263); -emit_16(1328); -emit_16(1264); -emit_16(1329); -emit_16(1265); -emit_16(1329); -emit_16(1264); -emit_16(1329); -emit_16(1265); -emit_16(1330); -emit_16(1266); -emit_16(1330); -emit_16(1265); -emit_16(1330); -emit_16(1266); -emit_16(1331); -emit_16(1267); -emit_16(1331); -emit_16(1266); -emit_16(1331); -emit_16(1267); -emit_16(1332); -emit_16(1268); -emit_16(1332); -emit_16(1267); -emit_16(1332); -emit_16(1268); -emit_16(1333); -emit_16(1269); -emit_16(1333); -emit_16(1268); -emit_16(1333); -emit_16(1269); -emit_16(1334); -emit_16(1270); -emit_16(1334); -emit_16(1269); -emit_16(1334); -emit_16(1270); -emit_16(1335); -emit_16(1271); -emit_16(1335); -emit_16(1270); -emit_16(1335); -emit_16(1271); -emit_16(1336); -emit_16(1272); -emit_16(1336); -emit_16(1271); -emit_16(1336); -emit_16(1272); -emit_16(1337); -emit_16(1273); -emit_16(1337); -emit_16(1272); -emit_16(1337); -emit_16(1273); -emit_16(1338); -emit_16(1274); -emit_16(1338); -emit_16(1273); -emit_16(1338); -emit_16(1274); -emit_16(1339); -emit_16(1275); -emit_16(1339); -emit_16(1274); -emit_16(1339); -emit_16(1275); -emit_16(1340); -emit_16(1276); -emit_16(1340); -emit_16(1275); -emit_16(1340); -emit_16(1276); -emit_16(1341); -emit_16(1277); -emit_16(1341); -emit_16(1276); -emit_16(1341); -emit_16(1277); -emit_16(1342); -emit_16(1278); -emit_16(1342); -emit_16(1277); -emit_16(1342); -emit_16(1278); -emit_16(1343); -emit_16(1279); -emit_16(1343); -emit_16(1278); -emit_16(1344); -emit_16(1280); -emit_16(1345); -emit_16(1281); -emit_16(1345); -emit_16(1280); -emit_16(1345); -emit_16(1281); -emit_16(1346); -emit_16(1282); -emit_16(1346); -emit_16(1281); -emit_16(1346); -emit_16(1282); -emit_16(1347); -emit_16(1283); -emit_16(1347); -emit_16(1282); -emit_16(1347); -emit_16(1283); -emit_16(1348); -emit_16(1284); -emit_16(1348); -emit_16(1283); -emit_16(1348); -emit_16(1284); -emit_16(1349); -emit_16(1285); -emit_16(1349); -emit_16(1284); -emit_16(1349); -emit_16(1285); -emit_16(1350); -emit_16(1286); -emit_16(1350); -emit_16(1285); -emit_16(1350); -emit_16(1286); -emit_16(1351); -emit_16(1287); -emit_16(1351); -emit_16(1286); -emit_16(1351); -emit_16(1287); -emit_16(1352); -emit_16(1288); -emit_16(1352); -emit_16(1287); -emit_16(1352); -emit_16(1288); -emit_16(1353); -emit_16(1289); -emit_16(1353); -emit_16(1288); -emit_16(1353); -emit_16(1289); -emit_16(1354); -emit_16(1290); -emit_16(1354); -emit_16(1289); -emit_16(1354); -emit_16(1290); -emit_16(1355); -emit_16(1291); -emit_16(1355); -emit_16(1290); -emit_16(1355); -emit_16(1291); -emit_16(1356); -emit_16(1292); -emit_16(1356); -emit_16(1291); -emit_16(1356); -emit_16(1292); -emit_16(1357); -emit_16(1293); -emit_16(1357); -emit_16(1292); -emit_16(1357); -emit_16(1293); -emit_16(1358); -emit_16(1294); -emit_16(1358); -emit_16(1293); -emit_16(1358); -emit_16(1294); -emit_16(1359); -emit_16(1295); -emit_16(1359); -emit_16(1294); -emit_16(1359); -emit_16(1295); -emit_16(1360); -emit_16(1296); -emit_16(1360); -emit_16(1295); -emit_16(1360); -emit_16(1296); -emit_16(1361); -emit_16(1297); -emit_16(1361); -emit_16(1296); -emit_16(1361); -emit_16(1297); -emit_16(1362); -emit_16(1298); -emit_16(1362); -emit_16(1297); -emit_16(1362); -emit_16(1298); -emit_16(1363); -emit_16(1299); -emit_16(1363); -emit_16(1298); -emit_16(1363); -emit_16(1299); -emit_16(1364); -emit_16(1300); -emit_16(1364); -emit_16(1299); -emit_16(1364); -emit_16(1300); -emit_16(1365); -emit_16(1301); -emit_16(1365); -emit_16(1300); -emit_16(1365); -emit_16(1301); -emit_16(1366); -emit_16(1302); -emit_16(1366); -emit_16(1301); -emit_16(1366); -emit_16(1302); -emit_16(1367); -emit_16(1303); -emit_16(1367); -emit_16(1302); -emit_16(1367); -emit_16(1303); -emit_16(1368); -emit_16(1304); -emit_16(1368); -emit_16(1303); -emit_16(1368); -emit_16(1304); -emit_16(1369); -emit_16(1305); -emit_16(1369); -emit_16(1304); -emit_16(1369); -emit_16(1305); -emit_16(1370); -emit_16(1306); -emit_16(1370); -emit_16(1305); -emit_16(1370); -emit_16(1306); -emit_16(1371); -emit_16(1307); -emit_16(1371); -emit_16(1306); -emit_16(1371); -emit_16(1307); -emit_16(1372); -emit_16(1308); -emit_16(1372); -emit_16(1307); -emit_16(1372); -emit_16(1308); -emit_16(1373); -emit_16(1309); -emit_16(1373); -emit_16(1308); -emit_16(1373); -emit_16(1309); -emit_16(1374); -emit_16(1310); -emit_16(1374); -emit_16(1309); -emit_16(1374); -emit_16(1310); -emit_16(1375); -emit_16(1311); -emit_16(1375); -emit_16(1310); -emit_16(1375); -emit_16(1311); -emit_16(1376); -emit_16(1312); -emit_16(1376); -emit_16(1311); -emit_16(1376); -emit_16(1312); -emit_16(1377); -emit_16(1313); -emit_16(1377); -emit_16(1312); -emit_16(1377); -emit_16(1313); -emit_16(1378); -emit_16(1314); -emit_16(1378); -emit_16(1313); -emit_16(1378); -emit_16(1314); -emit_16(1379); -emit_16(1315); -emit_16(1379); -emit_16(1314); -emit_16(1379); -emit_16(1315); -emit_16(1380); -emit_16(1316); -emit_16(1380); -emit_16(1315); -emit_16(1380); -emit_16(1316); -emit_16(1381); -emit_16(1317); -emit_16(1381); -emit_16(1316); -emit_16(1381); -emit_16(1317); -emit_16(1382); -emit_16(1318); -emit_16(1382); -emit_16(1317); -emit_16(1382); -emit_16(1318); -emit_16(1383); -emit_16(1319); -emit_16(1383); -emit_16(1318); -emit_16(1383); -emit_16(1319); -emit_16(1384); -emit_16(1320); -emit_16(1384); -emit_16(1319); -emit_16(1384); -emit_16(1320); -emit_16(1385); -emit_16(1321); -emit_16(1385); -emit_16(1320); -emit_16(1385); -emit_16(1321); -emit_16(1386); -emit_16(1322); -emit_16(1386); -emit_16(1321); -emit_16(1386); -emit_16(1322); -emit_16(1387); -emit_16(1323); -emit_16(1387); -emit_16(1322); -emit_16(1387); -emit_16(1323); -emit_16(1388); -emit_16(1324); -emit_16(1388); -emit_16(1323); -emit_16(1388); -emit_16(1324); -emit_16(1389); -emit_16(1325); -emit_16(1389); -emit_16(1324); -emit_16(1389); -emit_16(1325); -emit_16(1390); -emit_16(1326); -emit_16(1390); -emit_16(1325); -emit_16(1390); -emit_16(1326); -emit_16(1391); -emit_16(1327); -emit_16(1391); -emit_16(1326); -emit_16(1391); -emit_16(1327); -emit_16(1392); -emit_16(1328); -emit_16(1392); -emit_16(1327); -emit_16(1392); -emit_16(1328); -emit_16(1393); -emit_16(1329); -emit_16(1393); -emit_16(1328); -emit_16(1393); -emit_16(1329); -emit_16(1394); -emit_16(1330); -emit_16(1394); -emit_16(1329); -emit_16(1394); -emit_16(1330); -emit_16(1395); -emit_16(1331); -emit_16(1395); -emit_16(1330); -emit_16(1395); -emit_16(1331); -emit_16(1396); -emit_16(1332); -emit_16(1396); -emit_16(1331); -emit_16(1396); -emit_16(1332); -emit_16(1397); -emit_16(1333); -emit_16(1397); -emit_16(1332); -emit_16(1397); -emit_16(1333); -emit_16(1398); -emit_16(1334); -emit_16(1398); -emit_16(1333); -emit_16(1398); -emit_16(1334); -emit_16(1399); -emit_16(1335); -emit_16(1399); -emit_16(1334); -emit_16(1399); -emit_16(1335); -emit_16(1400); -emit_16(1336); -emit_16(1400); -emit_16(1335); -emit_16(1400); -emit_16(1336); -emit_16(1401); -emit_16(1337); -emit_16(1401); -emit_16(1336); -emit_16(1401); -emit_16(1337); -emit_16(1402); -emit_16(1338); -emit_16(1402); -emit_16(1337); -emit_16(1402); -emit_16(1338); -emit_16(1403); -emit_16(1339); -emit_16(1403); -emit_16(1338); -emit_16(1403); -emit_16(1339); -emit_16(1404); -emit_16(1340); -emit_16(1404); -emit_16(1339); -emit_16(1404); -emit_16(1340); -emit_16(1405); -emit_16(1341); -emit_16(1405); -emit_16(1340); -emit_16(1405); -emit_16(1341); -emit_16(1406); -emit_16(1342); -emit_16(1406); -emit_16(1341); -emit_16(1406); -emit_16(1342); -emit_16(1407); -emit_16(1343); -emit_16(1407); -emit_16(1342); -emit_16(1408); -emit_16(1344); -emit_16(1409); -emit_16(1345); -emit_16(1409); -emit_16(1344); -emit_16(1409); -emit_16(1345); -emit_16(1410); -emit_16(1346); -emit_16(1410); -emit_16(1345); -emit_16(1410); -emit_16(1346); -emit_16(1411); -emit_16(1347); -emit_16(1411); -emit_16(1346); -emit_16(1411); -emit_16(1347); -emit_16(1412); -emit_16(1348); -emit_16(1412); -emit_16(1347); -emit_16(1412); -emit_16(1348); -emit_16(1413); -emit_16(1349); -emit_16(1413); -emit_16(1348); -emit_16(1413); -emit_16(1349); -emit_16(1414); -emit_16(1350); -emit_16(1414); -emit_16(1349); -emit_16(1414); -emit_16(1350); -emit_16(1415); -emit_16(1351); -emit_16(1415); -emit_16(1350); -emit_16(1415); -emit_16(1351); -emit_16(1416); -emit_16(1352); -emit_16(1416); -emit_16(1351); -emit_16(1416); -emit_16(1352); -emit_16(1417); -emit_16(1353); -emit_16(1417); -emit_16(1352); -emit_16(1417); -emit_16(1353); -emit_16(1418); -emit_16(1354); -emit_16(1418); -emit_16(1353); -emit_16(1418); -emit_16(1354); -emit_16(1419); -emit_16(1355); -emit_16(1419); -emit_16(1354); -emit_16(1419); -emit_16(1355); -emit_16(1420); -emit_16(1356); -emit_16(1420); -emit_16(1355); -emit_16(1420); -emit_16(1356); -emit_16(1421); -emit_16(1357); -emit_16(1421); -emit_16(1356); -emit_16(1421); -emit_16(1357); -emit_16(1422); -emit_16(1358); -emit_16(1422); -emit_16(1357); -emit_16(1422); -emit_16(1358); -emit_16(1423); -emit_16(1359); -emit_16(1423); -emit_16(1358); -emit_16(1423); -emit_16(1359); -emit_16(1424); -emit_16(1360); -emit_16(1424); -emit_16(1359); -emit_16(1424); -emit_16(1360); -emit_16(1425); -emit_16(1361); -emit_16(1425); -emit_16(1360); -emit_16(1425); -emit_16(1361); -emit_16(1426); -emit_16(1362); -emit_16(1426); -emit_16(1361); -emit_16(1426); -emit_16(1362); -emit_16(1427); -emit_16(1363); -emit_16(1427); -emit_16(1362); -emit_16(1427); -emit_16(1363); -emit_16(1428); -emit_16(1364); -emit_16(1428); -emit_16(1363); -emit_16(1428); -emit_16(1364); -emit_16(1429); -emit_16(1365); -emit_16(1429); -emit_16(1364); -emit_16(1429); -emit_16(1365); -emit_16(1430); -emit_16(1366); -emit_16(1430); -emit_16(1365); -emit_16(1430); -emit_16(1366); -emit_16(1431); -emit_16(1367); -emit_16(1431); -emit_16(1366); -emit_16(1431); -emit_16(1367); -emit_16(1432); -emit_16(1368); -emit_16(1432); -emit_16(1367); -emit_16(1432); -emit_16(1368); -emit_16(1433); -emit_16(1369); -emit_16(1433); -emit_16(1368); -emit_16(1433); -emit_16(1369); -emit_16(1434); -emit_16(1370); -emit_16(1434); -emit_16(1369); -emit_16(1434); -emit_16(1370); -emit_16(1435); -emit_16(1371); -emit_16(1435); -emit_16(1370); -emit_16(1435); -emit_16(1371); -emit_16(1436); -emit_16(1372); -emit_16(1436); -emit_16(1371); -emit_16(1436); -emit_16(1372); -emit_16(1437); -emit_16(1373); -emit_16(1437); -emit_16(1372); -emit_16(1437); -emit_16(1373); -emit_16(1438); -emit_16(1374); -emit_16(1438); -emit_16(1373); -emit_16(1438); -emit_16(1374); -emit_16(1439); -emit_16(1375); -emit_16(1439); -emit_16(1374); -emit_16(1439); -emit_16(1375); -emit_16(1440); -emit_16(1376); -emit_16(1440); -emit_16(1375); -emit_16(1440); -emit_16(1376); -emit_16(1441); -emit_16(1377); -emit_16(1441); -emit_16(1376); -emit_16(1441); -emit_16(1377); -emit_16(1442); -emit_16(1378); -emit_16(1442); -emit_16(1377); -emit_16(1442); -emit_16(1378); -emit_16(1443); -emit_16(1379); -emit_16(1443); -emit_16(1378); -emit_16(1443); -emit_16(1379); -emit_16(1444); -emit_16(1380); -emit_16(1444); -emit_16(1379); -emit_16(1444); -emit_16(1380); -emit_16(1445); -emit_16(1381); -emit_16(1445); -emit_16(1380); -emit_16(1445); -emit_16(1381); -emit_16(1446); -emit_16(1382); -emit_16(1446); -emit_16(1381); -emit_16(1446); -emit_16(1382); -emit_16(1447); -emit_16(1383); -emit_16(1447); -emit_16(1382); -emit_16(1447); -emit_16(1383); -emit_16(1448); -emit_16(1384); -emit_16(1448); -emit_16(1383); -emit_16(1448); -emit_16(1384); -emit_16(1449); -emit_16(1385); -emit_16(1449); -emit_16(1384); -emit_16(1449); -emit_16(1385); -emit_16(1450); -emit_16(1386); -emit_16(1450); -emit_16(1385); -emit_16(1450); -emit_16(1386); -emit_16(1451); -emit_16(1387); -emit_16(1451); -emit_16(1386); -emit_16(1451); -emit_16(1387); -emit_16(1452); -emit_16(1388); -emit_16(1452); -emit_16(1387); -emit_16(1452); -emit_16(1388); -emit_16(1453); -emit_16(1389); -emit_16(1453); -emit_16(1388); -emit_16(1453); -emit_16(1389); -emit_16(1454); -emit_16(1390); -emit_16(1454); -emit_16(1389); -emit_16(1454); -emit_16(1390); -emit_16(1455); -emit_16(1391); -emit_16(1455); -emit_16(1390); -emit_16(1455); -emit_16(1391); -emit_16(1456); -emit_16(1392); -emit_16(1456); -emit_16(1391); -emit_16(1456); -emit_16(1392); -emit_16(1457); -emit_16(1393); -emit_16(1457); -emit_16(1392); -emit_16(1457); -emit_16(1393); -emit_16(1458); -emit_16(1394); -emit_16(1458); -emit_16(1393); -emit_16(1458); -emit_16(1394); -emit_16(1459); -emit_16(1395); -emit_16(1459); -emit_16(1394); -emit_16(1459); -emit_16(1395); -emit_16(1460); -emit_16(1396); -emit_16(1460); -emit_16(1395); -emit_16(1460); -emit_16(1396); -emit_16(1461); -emit_16(1397); -emit_16(1461); -emit_16(1396); -emit_16(1461); -emit_16(1397); -emit_16(1462); -emit_16(1398); -emit_16(1462); -emit_16(1397); -emit_16(1462); -emit_16(1398); -emit_16(1463); -emit_16(1399); -emit_16(1463); -emit_16(1398); -emit_16(1463); -emit_16(1399); -emit_16(1464); -emit_16(1400); -emit_16(1464); -emit_16(1399); -emit_16(1464); -emit_16(1400); -emit_16(1465); -emit_16(1401); -emit_16(1465); -emit_16(1400); -emit_16(1465); -emit_16(1401); -emit_16(1466); -emit_16(1402); -emit_16(1466); -emit_16(1401); -emit_16(1466); -emit_16(1402); -emit_16(1467); -emit_16(1403); -emit_16(1467); -emit_16(1402); -emit_16(1467); -emit_16(1403); -emit_16(1468); -emit_16(1404); -emit_16(1468); -emit_16(1403); -emit_16(1468); -emit_16(1404); -emit_16(1469); -emit_16(1405); -emit_16(1469); -emit_16(1404); -emit_16(1469); -emit_16(1405); -emit_16(1470); -emit_16(1406); -emit_16(1470); -emit_16(1405); -emit_16(1470); -emit_16(1406); -emit_16(1471); -emit_16(1407); -emit_16(1471); -emit_16(1406); -emit_16(1472); -emit_16(1408); -emit_16(1473); -emit_16(1409); -emit_16(1473); -emit_16(1408); -emit_16(1473); -emit_16(1409); -emit_16(1474); -emit_16(1410); -emit_16(1474); -emit_16(1409); -emit_16(1474); -emit_16(1410); -emit_16(1475); -emit_16(1411); -emit_16(1475); -emit_16(1410); -emit_16(1475); -emit_16(1411); -emit_16(1476); -emit_16(1412); -emit_16(1476); -emit_16(1411); -emit_16(1476); -emit_16(1412); -emit_16(1477); -emit_16(1413); -emit_16(1477); -emit_16(1412); -emit_16(1477); -emit_16(1413); -emit_16(1478); -emit_16(1414); -emit_16(1478); -emit_16(1413); -emit_16(1478); -emit_16(1414); -emit_16(1479); -emit_16(1415); -emit_16(1479); -emit_16(1414); -emit_16(1479); -emit_16(1415); -emit_16(1480); -emit_16(1416); -emit_16(1480); -emit_16(1415); -emit_16(1480); -emit_16(1416); -emit_16(1481); -emit_16(1417); -emit_16(1481); -emit_16(1416); -emit_16(1481); -emit_16(1417); -emit_16(1482); -emit_16(1418); -emit_16(1482); -emit_16(1417); -emit_16(1482); -emit_16(1418); -emit_16(1483); -emit_16(1419); -emit_16(1483); -emit_16(1418); -emit_16(1483); -emit_16(1419); -emit_16(1484); -emit_16(1420); -emit_16(1484); -emit_16(1419); -emit_16(1484); -emit_16(1420); -emit_16(1485); -emit_16(1421); -emit_16(1485); -emit_16(1420); -emit_16(1485); -emit_16(1421); -emit_16(1486); -emit_16(1422); -emit_16(1486); -emit_16(1421); -emit_16(1486); -emit_16(1422); -emit_16(1487); -emit_16(1423); -emit_16(1487); -emit_16(1422); -emit_16(1487); -emit_16(1423); -emit_16(1488); -emit_16(1424); -emit_16(1488); -emit_16(1423); -emit_16(1488); -emit_16(1424); -emit_16(1489); -emit_16(1425); -emit_16(1489); -emit_16(1424); -emit_16(1489); -emit_16(1425); -emit_16(1490); -emit_16(1426); -emit_16(1490); -emit_16(1425); -emit_16(1490); -emit_16(1426); -emit_16(1491); -emit_16(1427); -emit_16(1491); -emit_16(1426); -emit_16(1491); -emit_16(1427); -emit_16(1492); -emit_16(1428); -emit_16(1492); -emit_16(1427); -emit_16(1492); -emit_16(1428); -emit_16(1493); -emit_16(1429); -emit_16(1493); -emit_16(1428); -emit_16(1493); -emit_16(1429); -emit_16(1494); -emit_16(1430); -emit_16(1494); -emit_16(1429); -emit_16(1494); -emit_16(1430); -emit_16(1495); -emit_16(1431); -emit_16(1495); -emit_16(1430); -emit_16(1495); -emit_16(1431); -emit_16(1496); -emit_16(1432); -emit_16(1496); -emit_16(1431); -emit_16(1496); -emit_16(1432); -emit_16(1497); -emit_16(1433); -emit_16(1497); -emit_16(1432); -emit_16(1497); -emit_16(1433); -emit_16(1498); -emit_16(1434); -emit_16(1498); -emit_16(1433); -emit_16(1498); -emit_16(1434); -emit_16(1499); -emit_16(1435); -emit_16(1499); -emit_16(1434); -emit_16(1499); -emit_16(1435); -emit_16(1500); -emit_16(1436); -emit_16(1500); -emit_16(1435); -emit_16(1500); -emit_16(1436); -emit_16(1501); -emit_16(1437); -emit_16(1501); -emit_16(1436); -emit_16(1501); -emit_16(1437); -emit_16(1502); -emit_16(1438); -emit_16(1502); -emit_16(1437); -emit_16(1502); -emit_16(1438); -emit_16(1503); -emit_16(1439); -emit_16(1503); -emit_16(1438); -emit_16(1503); -emit_16(1439); -emit_16(1504); -emit_16(1440); -emit_16(1504); -emit_16(1439); -emit_16(1504); -emit_16(1440); -emit_16(1505); -emit_16(1441); -emit_16(1505); -emit_16(1440); -emit_16(1505); -emit_16(1441); -emit_16(1506); -emit_16(1442); -emit_16(1506); -emit_16(1441); -emit_16(1506); -emit_16(1442); -emit_16(1507); -emit_16(1443); -emit_16(1507); -emit_16(1442); -emit_16(1507); -emit_16(1443); -emit_16(1508); -emit_16(1444); -emit_16(1508); -emit_16(1443); -emit_16(1508); -emit_16(1444); -emit_16(1509); -emit_16(1445); -emit_16(1509); -emit_16(1444); -emit_16(1509); -emit_16(1445); -emit_16(1510); -emit_16(1446); -emit_16(1510); -emit_16(1445); -emit_16(1510); -emit_16(1446); -emit_16(1511); -emit_16(1447); -emit_16(1511); -emit_16(1446); -emit_16(1511); -emit_16(1447); -emit_16(1512); -emit_16(1448); -emit_16(1512); -emit_16(1447); -emit_16(1512); -emit_16(1448); -emit_16(1513); -emit_16(1449); -emit_16(1513); -emit_16(1448); -emit_16(1513); -emit_16(1449); -emit_16(1514); -emit_16(1450); -emit_16(1514); -emit_16(1449); -emit_16(1514); -emit_16(1450); -emit_16(1515); -emit_16(1451); -emit_16(1515); -emit_16(1450); -emit_16(1515); -emit_16(1451); -emit_16(1516); -emit_16(1452); -emit_16(1516); -emit_16(1451); -emit_16(1516); -emit_16(1452); -emit_16(1517); -emit_16(1453); -emit_16(1517); -emit_16(1452); -emit_16(1517); -emit_16(1453); -emit_16(1518); -emit_16(1454); -emit_16(1518); -emit_16(1453); -emit_16(1518); -emit_16(1454); -emit_16(1519); -emit_16(1455); -emit_16(1519); -emit_16(1454); -emit_16(1519); -emit_16(1455); -emit_16(1520); -emit_16(1456); -emit_16(1520); -emit_16(1455); -emit_16(1520); -emit_16(1456); -emit_16(1521); -emit_16(1457); -emit_16(1521); -emit_16(1456); -emit_16(1521); -emit_16(1457); -emit_16(1522); -emit_16(1458); -emit_16(1522); -emit_16(1457); -emit_16(1522); -emit_16(1458); -emit_16(1523); -emit_16(1459); -emit_16(1523); -emit_16(1458); -emit_16(1523); -emit_16(1459); -emit_16(1524); -emit_16(1460); -emit_16(1524); -emit_16(1459); -emit_16(1524); -emit_16(1460); -emit_16(1525); -emit_16(1461); -emit_16(1525); -emit_16(1460); -emit_16(1525); -emit_16(1461); -emit_16(1526); -emit_16(1462); -emit_16(1526); -emit_16(1461); -emit_16(1526); -emit_16(1462); -emit_16(1527); -emit_16(1463); -emit_16(1527); -emit_16(1462); -emit_16(1527); -emit_16(1463); -emit_16(1528); -emit_16(1464); -emit_16(1528); -emit_16(1463); -emit_16(1528); -emit_16(1464); -emit_16(1529); -emit_16(1465); -emit_16(1529); -emit_16(1464); -emit_16(1529); -emit_16(1465); -emit_16(1530); -emit_16(1466); -emit_16(1530); -emit_16(1465); -emit_16(1530); -emit_16(1466); -emit_16(1531); -emit_16(1467); -emit_16(1531); -emit_16(1466); -emit_16(1531); -emit_16(1467); -emit_16(1532); -emit_16(1468); -emit_16(1532); -emit_16(1467); -emit_16(1532); -emit_16(1468); -emit_16(1533); -emit_16(1469); -emit_16(1533); -emit_16(1468); -emit_16(1533); -emit_16(1469); -emit_16(1534); -emit_16(1470); -emit_16(1534); -emit_16(1469); -emit_16(1534); -emit_16(1470); -emit_16(1535); -emit_16(1471); -emit_16(1535); -emit_16(1470); -emit_16(1536); -emit_16(1472); -emit_16(1537); -emit_16(1473); -emit_16(1537); -emit_16(1472); -emit_16(1537); -emit_16(1473); -emit_16(1538); -emit_16(1474); -emit_16(1538); -emit_16(1473); -emit_16(1538); -emit_16(1474); -emit_16(1539); -emit_16(1475); -emit_16(1539); -emit_16(1474); -emit_16(1539); -emit_16(1475); -emit_16(1540); -emit_16(1476); -emit_16(1540); -emit_16(1475); -emit_16(1540); -emit_16(1476); -emit_16(1541); -emit_16(1477); -emit_16(1541); -emit_16(1476); -emit_16(1541); -emit_16(1477); -emit_16(1542); -emit_16(1478); -emit_16(1542); -emit_16(1477); -emit_16(1542); -emit_16(1478); -emit_16(1543); -emit_16(1479); -emit_16(1543); -emit_16(1478); -emit_16(1543); -emit_16(1479); -emit_16(1544); -emit_16(1480); -emit_16(1544); -emit_16(1479); -emit_16(1544); -emit_16(1480); -emit_16(1545); -emit_16(1481); -emit_16(1545); -emit_16(1480); -emit_16(1545); -emit_16(1481); -emit_16(1546); -emit_16(1482); -emit_16(1546); -emit_16(1481); -emit_16(1546); -emit_16(1482); -emit_16(1547); -emit_16(1483); -emit_16(1547); -emit_16(1482); -emit_16(1547); -emit_16(1483); -emit_16(1548); -emit_16(1484); -emit_16(1548); -emit_16(1483); -emit_16(1548); -emit_16(1484); -emit_16(1549); -emit_16(1485); -emit_16(1549); -emit_16(1484); -emit_16(1549); -emit_16(1485); -emit_16(1550); -emit_16(1486); -emit_16(1550); -emit_16(1485); -emit_16(1550); -emit_16(1486); -emit_16(1551); -emit_16(1487); -emit_16(1551); -emit_16(1486); -emit_16(1551); -emit_16(1487); -emit_16(1552); -emit_16(1488); -emit_16(1552); -emit_16(1487); -emit_16(1552); -emit_16(1488); -emit_16(1553); -emit_16(1489); -emit_16(1553); -emit_16(1488); -emit_16(1553); -emit_16(1489); -emit_16(1554); -emit_16(1490); -emit_16(1554); -emit_16(1489); -emit_16(1554); -emit_16(1490); -emit_16(1555); -emit_16(1491); -emit_16(1555); -emit_16(1490); -emit_16(1555); -emit_16(1491); -emit_16(1556); -emit_16(1492); -emit_16(1556); -emit_16(1491); -emit_16(1556); -emit_16(1492); -emit_16(1557); -emit_16(1493); -emit_16(1557); -emit_16(1492); -emit_16(1557); -emit_16(1493); -emit_16(1558); -emit_16(1494); -emit_16(1558); -emit_16(1493); -emit_16(1558); -emit_16(1494); -emit_16(1559); -emit_16(1495); -emit_16(1559); -emit_16(1494); -emit_16(1559); -emit_16(1495); -emit_16(1560); -emit_16(1496); -emit_16(1560); -emit_16(1495); -emit_16(1560); -emit_16(1496); -emit_16(1561); -emit_16(1497); -emit_16(1561); -emit_16(1496); -emit_16(1561); -emit_16(1497); -emit_16(1562); -emit_16(1498); -emit_16(1562); -emit_16(1497); -emit_16(1562); -emit_16(1498); -emit_16(1563); -emit_16(1499); -emit_16(1563); -emit_16(1498); -emit_16(1563); -emit_16(1499); -emit_16(1564); -emit_16(1500); -emit_16(1564); -emit_16(1499); -emit_16(1564); -emit_16(1500); -emit_16(1565); -emit_16(1501); -emit_16(1565); -emit_16(1500); -emit_16(1565); -emit_16(1501); -emit_16(1566); -emit_16(1502); -emit_16(1566); -emit_16(1501); -emit_16(1566); -emit_16(1502); -emit_16(1567); -emit_16(1503); -emit_16(1567); -emit_16(1502); -emit_16(1567); -emit_16(1503); -emit_16(1568); -emit_16(1504); -emit_16(1568); -emit_16(1503); -emit_16(1568); -emit_16(1504); -emit_16(1569); -emit_16(1505); -emit_16(1569); -emit_16(1504); -emit_16(1569); -emit_16(1505); -emit_16(1570); -emit_16(1506); -emit_16(1570); -emit_16(1505); -emit_16(1570); -emit_16(1506); -emit_16(1571); -emit_16(1507); -emit_16(1571); -emit_16(1506); -emit_16(1571); -emit_16(1507); -emit_16(1572); -emit_16(1508); -emit_16(1572); -emit_16(1507); -emit_16(1572); -emit_16(1508); -emit_16(1573); -emit_16(1509); -emit_16(1573); -emit_16(1508); -emit_16(1573); -emit_16(1509); -emit_16(1574); -emit_16(1510); -emit_16(1574); -emit_16(1509); -emit_16(1574); -emit_16(1510); -emit_16(1575); -emit_16(1511); -emit_16(1575); -emit_16(1510); -emit_16(1575); -emit_16(1511); -emit_16(1576); -emit_16(1512); -emit_16(1576); -emit_16(1511); -emit_16(1576); -emit_16(1512); -emit_16(1577); -emit_16(1513); -emit_16(1577); -emit_16(1512); -emit_16(1577); -emit_16(1513); -emit_16(1578); -emit_16(1514); -emit_16(1578); -emit_16(1513); -emit_16(1578); -emit_16(1514); -emit_16(1579); -emit_16(1515); -emit_16(1579); -emit_16(1514); -emit_16(1579); -emit_16(1515); -emit_16(1580); -emit_16(1516); -emit_16(1580); -emit_16(1515); -emit_16(1580); -emit_16(1516); -emit_16(1581); -emit_16(1517); -emit_16(1581); -emit_16(1516); -emit_16(1581); -emit_16(1517); -emit_16(1582); -emit_16(1518); -emit_16(1582); -emit_16(1517); -emit_16(1582); -emit_16(1518); -emit_16(1583); -emit_16(1519); -emit_16(1583); -emit_16(1518); -emit_16(1583); -emit_16(1519); -emit_16(1584); -emit_16(1520); -emit_16(1584); -emit_16(1519); -emit_16(1584); -emit_16(1520); -emit_16(1585); -emit_16(1521); -emit_16(1585); -emit_16(1520); -emit_16(1585); -emit_16(1521); -emit_16(1586); -emit_16(1522); -emit_16(1586); -emit_16(1521); -emit_16(1586); -emit_16(1522); -emit_16(1587); -emit_16(1523); -emit_16(1587); -emit_16(1522); -emit_16(1587); -emit_16(1523); -emit_16(1588); -emit_16(1524); -emit_16(1588); -emit_16(1523); -emit_16(1588); -emit_16(1524); -emit_16(1589); -emit_16(1525); -emit_16(1589); -emit_16(1524); -emit_16(1589); -emit_16(1525); -emit_16(1590); -emit_16(1526); -emit_16(1590); -emit_16(1525); -emit_16(1590); -emit_16(1526); -emit_16(1591); -emit_16(1527); -emit_16(1591); -emit_16(1526); -emit_16(1591); -emit_16(1527); -emit_16(1592); -emit_16(1528); -emit_16(1592); -emit_16(1527); -emit_16(1592); -emit_16(1528); -emit_16(1593); -emit_16(1529); -emit_16(1593); -emit_16(1528); -emit_16(1593); -emit_16(1529); -emit_16(1594); -emit_16(1530); -emit_16(1594); -emit_16(1529); -emit_16(1594); -emit_16(1530); -emit_16(1595); -emit_16(1531); -emit_16(1595); -emit_16(1530); -emit_16(1595); -emit_16(1531); -emit_16(1596); -emit_16(1532); -emit_16(1596); -emit_16(1531); -emit_16(1596); -emit_16(1532); -emit_16(1597); -emit_16(1533); -emit_16(1597); -emit_16(1532); -emit_16(1597); -emit_16(1533); -emit_16(1598); -emit_16(1534); -emit_16(1598); -emit_16(1533); -emit_16(1598); -emit_16(1534); -emit_16(1599); -emit_16(1535); -emit_16(1599); -emit_16(1534); -emit_16(1600); -emit_16(1536); -emit_16(1601); -emit_16(1537); -emit_16(1601); -emit_16(1536); -emit_16(1601); -emit_16(1537); -emit_16(1602); -emit_16(1538); -emit_16(1602); -emit_16(1537); -emit_16(1602); -emit_16(1538); -emit_16(1603); -emit_16(1539); -emit_16(1603); -emit_16(1538); -emit_16(1603); -emit_16(1539); -emit_16(1604); -emit_16(1540); -emit_16(1604); -emit_16(1539); -emit_16(1604); -emit_16(1540); -emit_16(1605); -emit_16(1541); -emit_16(1605); -emit_16(1540); -emit_16(1605); -emit_16(1541); -emit_16(1606); -emit_16(1542); -emit_16(1606); -emit_16(1541); -emit_16(1606); -emit_16(1542); -emit_16(1607); -emit_16(1543); -emit_16(1607); -emit_16(1542); -emit_16(1607); -emit_16(1543); -emit_16(1608); -emit_16(1544); -emit_16(1608); -emit_16(1543); -emit_16(1608); -emit_16(1544); -emit_16(1609); -emit_16(1545); -emit_16(1609); -emit_16(1544); -emit_16(1609); -emit_16(1545); -emit_16(1610); -emit_16(1546); -emit_16(1610); -emit_16(1545); -emit_16(1610); -emit_16(1546); -emit_16(1611); -emit_16(1547); -emit_16(1611); -emit_16(1546); -emit_16(1611); -emit_16(1547); -emit_16(1612); -emit_16(1548); -emit_16(1612); -emit_16(1547); -emit_16(1612); -emit_16(1548); -emit_16(1613); -emit_16(1549); -emit_16(1613); -emit_16(1548); -emit_16(1613); -emit_16(1549); -emit_16(1614); -emit_16(1550); -emit_16(1614); -emit_16(1549); -emit_16(1614); -emit_16(1550); -emit_16(1615); -emit_16(1551); -emit_16(1615); -emit_16(1550); -emit_16(1615); -emit_16(1551); -emit_16(1616); -emit_16(1552); -emit_16(1616); -emit_16(1551); -emit_16(1616); -emit_16(1552); -emit_16(1617); -emit_16(1553); -emit_16(1617); -emit_16(1552); -emit_16(1617); -emit_16(1553); -emit_16(1618); -emit_16(1554); -emit_16(1618); -emit_16(1553); -emit_16(1618); -emit_16(1554); -emit_16(1619); -emit_16(1555); -emit_16(1619); -emit_16(1554); -emit_16(1619); -emit_16(1555); -emit_16(1620); -emit_16(1556); -emit_16(1620); -emit_16(1555); -emit_16(1620); -emit_16(1556); -emit_16(1621); -emit_16(1557); -emit_16(1621); -emit_16(1556); -emit_16(1621); -emit_16(1557); -emit_16(1622); -emit_16(1558); -emit_16(1622); -emit_16(1557); -emit_16(1622); -emit_16(1558); -emit_16(1623); -emit_16(1559); -emit_16(1623); -emit_16(1558); -emit_16(1623); -emit_16(1559); -emit_16(1624); -emit_16(1560); -emit_16(1624); -emit_16(1559); -emit_16(1624); -emit_16(1560); -emit_16(1625); -emit_16(1561); -emit_16(1625); -emit_16(1560); -emit_16(1625); -emit_16(1561); -emit_16(1626); -emit_16(1562); -emit_16(1626); -emit_16(1561); -emit_16(1626); -emit_16(1562); -emit_16(1627); -emit_16(1563); -emit_16(1627); -emit_16(1562); -emit_16(1627); -emit_16(1563); -emit_16(1628); -emit_16(1564); -emit_16(1628); -emit_16(1563); -emit_16(1628); -emit_16(1564); -emit_16(1629); -emit_16(1565); -emit_16(1629); -emit_16(1564); -emit_16(1629); -emit_16(1565); -emit_16(1630); -emit_16(1566); -emit_16(1630); -emit_16(1565); -emit_16(1630); -emit_16(1566); -emit_16(1631); -emit_16(1567); -emit_16(1631); -emit_16(1566); -emit_16(1631); -emit_16(1567); -emit_16(1632); -emit_16(1568); -emit_16(1632); -emit_16(1567); -emit_16(1632); -emit_16(1568); -emit_16(1633); -emit_16(1569); -emit_16(1633); -emit_16(1568); -emit_16(1633); -emit_16(1569); -emit_16(1634); -emit_16(1570); -emit_16(1634); -emit_16(1569); -emit_16(1634); -emit_16(1570); -emit_16(1635); -emit_16(1571); -emit_16(1635); -emit_16(1570); -emit_16(1635); -emit_16(1571); -emit_16(1636); -emit_16(1572); -emit_16(1636); -emit_16(1571); -emit_16(1636); -emit_16(1572); -emit_16(1637); -emit_16(1573); -emit_16(1637); -emit_16(1572); -emit_16(1637); -emit_16(1573); -emit_16(1638); -emit_16(1574); -emit_16(1638); -emit_16(1573); -emit_16(1638); -emit_16(1574); -emit_16(1639); -emit_16(1575); -emit_16(1639); -emit_16(1574); -emit_16(1639); -emit_16(1575); -emit_16(1640); -emit_16(1576); -emit_16(1640); -emit_16(1575); -emit_16(1640); -emit_16(1576); -emit_16(1641); -emit_16(1577); -emit_16(1641); -emit_16(1576); -emit_16(1641); -emit_16(1577); -emit_16(1642); -emit_16(1578); -emit_16(1642); -emit_16(1577); -emit_16(1642); -emit_16(1578); -emit_16(1643); -emit_16(1579); -emit_16(1643); -emit_16(1578); -emit_16(1643); -emit_16(1579); -emit_16(1644); -emit_16(1580); -emit_16(1644); -emit_16(1579); -emit_16(1644); -emit_16(1580); -emit_16(1645); -emit_16(1581); -emit_16(1645); -emit_16(1580); -emit_16(1645); -emit_16(1581); -emit_16(1646); -emit_16(1582); -emit_16(1646); -emit_16(1581); -emit_16(1646); -emit_16(1582); -emit_16(1647); -emit_16(1583); -emit_16(1647); -emit_16(1582); -emit_16(1647); -emit_16(1583); -emit_16(1648); -emit_16(1584); -emit_16(1648); -emit_16(1583); -emit_16(1648); -emit_16(1584); -emit_16(1649); -emit_16(1585); -emit_16(1649); -emit_16(1584); -emit_16(1649); -emit_16(1585); -emit_16(1650); -emit_16(1586); -emit_16(1650); -emit_16(1585); -emit_16(1650); -emit_16(1586); -emit_16(1651); -emit_16(1587); -emit_16(1651); -emit_16(1586); -emit_16(1651); -emit_16(1587); -emit_16(1652); -emit_16(1588); -emit_16(1652); -emit_16(1587); -emit_16(1652); -emit_16(1588); -emit_16(1653); -emit_16(1589); -emit_16(1653); -emit_16(1588); -emit_16(1653); -emit_16(1589); -emit_16(1654); -emit_16(1590); -emit_16(1654); -emit_16(1589); -emit_16(1654); -emit_16(1590); -emit_16(1655); -emit_16(1591); -emit_16(1655); -emit_16(1590); -emit_16(1655); -emit_16(1591); -emit_16(1656); -emit_16(1592); -emit_16(1656); -emit_16(1591); -emit_16(1656); -emit_16(1592); -emit_16(1657); -emit_16(1593); -emit_16(1657); -emit_16(1592); -emit_16(1657); -emit_16(1593); -emit_16(1658); -emit_16(1594); -emit_16(1658); -emit_16(1593); -emit_16(1658); -emit_16(1594); -emit_16(1659); -emit_16(1595); -emit_16(1659); -emit_16(1594); -emit_16(1659); -emit_16(1595); -emit_16(1660); -emit_16(1596); -emit_16(1660); -emit_16(1595); -emit_16(1660); -emit_16(1596); -emit_16(1661); -emit_16(1597); -emit_16(1661); -emit_16(1596); -emit_16(1661); -emit_16(1597); -emit_16(1662); -emit_16(1598); -emit_16(1662); -emit_16(1597); -emit_16(1662); -emit_16(1598); -emit_16(1663); -emit_16(1599); -emit_16(1663); -emit_16(1598); -emit_16(1664); -emit_16(1600); -emit_16(1665); -emit_16(1601); -emit_16(1665); -emit_16(1600); -emit_16(1665); -emit_16(1601); -emit_16(1666); -emit_16(1602); -emit_16(1666); -emit_16(1601); -emit_16(1666); -emit_16(1602); -emit_16(1667); -emit_16(1603); -emit_16(1667); -emit_16(1602); -emit_16(1667); -emit_16(1603); -emit_16(1668); -emit_16(1604); -emit_16(1668); -emit_16(1603); -emit_16(1668); -emit_16(1604); -emit_16(1669); -emit_16(1605); -emit_16(1669); -emit_16(1604); -emit_16(1669); -emit_16(1605); -emit_16(1670); -emit_16(1606); -emit_16(1670); -emit_16(1605); -emit_16(1670); -emit_16(1606); -emit_16(1671); -emit_16(1607); -emit_16(1671); -emit_16(1606); -emit_16(1671); -emit_16(1607); -emit_16(1672); -emit_16(1608); -emit_16(1672); -emit_16(1607); -emit_16(1672); -emit_16(1608); -emit_16(1673); -emit_16(1609); -emit_16(1673); -emit_16(1608); -emit_16(1673); -emit_16(1609); -emit_16(1674); -emit_16(1610); -emit_16(1674); -emit_16(1609); -emit_16(1674); -emit_16(1610); -emit_16(1675); -emit_16(1611); -emit_16(1675); -emit_16(1610); -emit_16(1675); -emit_16(1611); -emit_16(1676); -emit_16(1612); -emit_16(1676); -emit_16(1611); -emit_16(1676); -emit_16(1612); -emit_16(1677); -emit_16(1613); -emit_16(1677); -emit_16(1612); -emit_16(1677); -emit_16(1613); -emit_16(1678); -emit_16(1614); -emit_16(1678); -emit_16(1613); -emit_16(1678); -emit_16(1614); -emit_16(1679); -emit_16(1615); -emit_16(1679); -emit_16(1614); -emit_16(1679); -emit_16(1615); -emit_16(1680); -emit_16(1616); -emit_16(1680); -emit_16(1615); -emit_16(1680); -emit_16(1616); -emit_16(1681); -emit_16(1617); -emit_16(1681); -emit_16(1616); -emit_16(1681); -emit_16(1617); -emit_16(1682); -emit_16(1618); -emit_16(1682); -emit_16(1617); -emit_16(1682); -emit_16(1618); -emit_16(1683); -emit_16(1619); -emit_16(1683); -emit_16(1618); -emit_16(1683); -emit_16(1619); -emit_16(1684); -emit_16(1620); -emit_16(1684); -emit_16(1619); -emit_16(1684); -emit_16(1620); -emit_16(1685); -emit_16(1621); -emit_16(1685); -emit_16(1620); -emit_16(1685); -emit_16(1621); -emit_16(1686); -emit_16(1622); -emit_16(1686); -emit_16(1621); -emit_16(1686); -emit_16(1622); -emit_16(1687); -emit_16(1623); -emit_16(1687); -emit_16(1622); -emit_16(1687); -emit_16(1623); -emit_16(1688); -emit_16(1624); -emit_16(1688); -emit_16(1623); -emit_16(1688); -emit_16(1624); -emit_16(1689); -emit_16(1625); -emit_16(1689); -emit_16(1624); -emit_16(1689); -emit_16(1625); -emit_16(1690); -emit_16(1626); -emit_16(1690); -emit_16(1625); -emit_16(1690); -emit_16(1626); -emit_16(1691); -emit_16(1627); -emit_16(1691); -emit_16(1626); -emit_16(1691); -emit_16(1627); -emit_16(1692); -emit_16(1628); -emit_16(1692); -emit_16(1627); -emit_16(1692); -emit_16(1628); -emit_16(1693); -emit_16(1629); -emit_16(1693); -emit_16(1628); -emit_16(1693); -emit_16(1629); -emit_16(1694); -emit_16(1630); -emit_16(1694); -emit_16(1629); -emit_16(1694); -emit_16(1630); -emit_16(1695); -emit_16(1631); -emit_16(1695); -emit_16(1630); -emit_16(1695); -emit_16(1631); -emit_16(1696); -emit_16(1632); -emit_16(1696); -emit_16(1631); -emit_16(1696); -emit_16(1632); -emit_16(1697); -emit_16(1633); -emit_16(1697); -emit_16(1632); -emit_16(1697); -emit_16(1633); -emit_16(1698); -emit_16(1634); -emit_16(1698); -emit_16(1633); -emit_16(1698); -emit_16(1634); -emit_16(1699); -emit_16(1635); -emit_16(1699); -emit_16(1634); -emit_16(1699); -emit_16(1635); -emit_16(1700); -emit_16(1636); -emit_16(1700); -emit_16(1635); -emit_16(1700); -emit_16(1636); -emit_16(1701); -emit_16(1637); -emit_16(1701); -emit_16(1636); -emit_16(1701); -emit_16(1637); -emit_16(1702); -emit_16(1638); -emit_16(1702); -emit_16(1637); -emit_16(1702); -emit_16(1638); -emit_16(1703); -emit_16(1639); -emit_16(1703); -emit_16(1638); -emit_16(1703); -emit_16(1639); -emit_16(1704); -emit_16(1640); -emit_16(1704); -emit_16(1639); -emit_16(1704); -emit_16(1640); -emit_16(1705); -emit_16(1641); -emit_16(1705); -emit_16(1640); -emit_16(1705); -emit_16(1641); -emit_16(1706); -emit_16(1642); -emit_16(1706); -emit_16(1641); -emit_16(1706); -emit_16(1642); -emit_16(1707); -emit_16(1643); -emit_16(1707); -emit_16(1642); -emit_16(1707); -emit_16(1643); -emit_16(1708); -emit_16(1644); -emit_16(1708); -emit_16(1643); -emit_16(1708); -emit_16(1644); -emit_16(1709); -emit_16(1645); -emit_16(1709); -emit_16(1644); -emit_16(1709); -emit_16(1645); -emit_16(1710); -emit_16(1646); -emit_16(1710); -emit_16(1645); -emit_16(1710); -emit_16(1646); -emit_16(1711); -emit_16(1647); -emit_16(1711); -emit_16(1646); -emit_16(1711); -emit_16(1647); -emit_16(1712); -emit_16(1648); -emit_16(1712); -emit_16(1647); -emit_16(1712); -emit_16(1648); -emit_16(1713); -emit_16(1649); -emit_16(1713); -emit_16(1648); -emit_16(1713); -emit_16(1649); -emit_16(1714); -emit_16(1650); -emit_16(1714); -emit_16(1649); -emit_16(1714); -emit_16(1650); -emit_16(1715); -emit_16(1651); -emit_16(1715); -emit_16(1650); -emit_16(1715); -emit_16(1651); -emit_16(1716); -emit_16(1652); -emit_16(1716); -emit_16(1651); -emit_16(1716); -emit_16(1652); -emit_16(1717); -emit_16(1653); -emit_16(1717); -emit_16(1652); -emit_16(1717); -emit_16(1653); -emit_16(1718); -emit_16(1654); -emit_16(1718); -emit_16(1653); -emit_16(1718); -emit_16(1654); -emit_16(1719); -emit_16(1655); -emit_16(1719); -emit_16(1654); -emit_16(1719); -emit_16(1655); -emit_16(1720); -emit_16(1656); -emit_16(1720); -emit_16(1655); -emit_16(1720); -emit_16(1656); -emit_16(1721); -emit_16(1657); -emit_16(1721); -emit_16(1656); -emit_16(1721); -emit_16(1657); -emit_16(1722); -emit_16(1658); -emit_16(1722); -emit_16(1657); -emit_16(1722); -emit_16(1658); -emit_16(1723); -emit_16(1659); -emit_16(1723); -emit_16(1658); -emit_16(1723); -emit_16(1659); -emit_16(1724); -emit_16(1660); -emit_16(1724); -emit_16(1659); -emit_16(1724); -emit_16(1660); -emit_16(1725); -emit_16(1661); -emit_16(1725); -emit_16(1660); -emit_16(1725); -emit_16(1661); -emit_16(1726); -emit_16(1662); -emit_16(1726); -emit_16(1661); -emit_16(1726); -emit_16(1662); -emit_16(1727); -emit_16(1663); -emit_16(1727); -emit_16(1662); -emit_16(1728); -emit_16(1664); -emit_16(1729); -emit_16(1665); -emit_16(1729); -emit_16(1664); -emit_16(1729); -emit_16(1665); -emit_16(1730); -emit_16(1666); -emit_16(1730); -emit_16(1665); -emit_16(1730); -emit_16(1666); -emit_16(1731); -emit_16(1667); -emit_16(1731); -emit_16(1666); -emit_16(1731); -emit_16(1667); -emit_16(1732); -emit_16(1668); -emit_16(1732); -emit_16(1667); -emit_16(1732); -emit_16(1668); -emit_16(1733); -emit_16(1669); -emit_16(1733); -emit_16(1668); -emit_16(1733); -emit_16(1669); -emit_16(1734); -emit_16(1670); -emit_16(1734); -emit_16(1669); -emit_16(1734); -emit_16(1670); -emit_16(1735); -emit_16(1671); -emit_16(1735); -emit_16(1670); -emit_16(1735); -emit_16(1671); -emit_16(1736); -emit_16(1672); -emit_16(1736); -emit_16(1671); -emit_16(1736); -emit_16(1672); -emit_16(1737); -emit_16(1673); -emit_16(1737); -emit_16(1672); -emit_16(1737); -emit_16(1673); -emit_16(1738); -emit_16(1674); -emit_16(1738); -emit_16(1673); -emit_16(1738); -emit_16(1674); -emit_16(1739); -emit_16(1675); -emit_16(1739); -emit_16(1674); -emit_16(1739); -emit_16(1675); -emit_16(1740); -emit_16(1676); -emit_16(1740); -emit_16(1675); -emit_16(1740); -emit_16(1676); -emit_16(1741); -emit_16(1677); -emit_16(1741); -emit_16(1676); -emit_16(1741); -emit_16(1677); -emit_16(1742); -emit_16(1678); -emit_16(1742); -emit_16(1677); -emit_16(1742); -emit_16(1678); -emit_16(1743); -emit_16(1679); -emit_16(1743); -emit_16(1678); -emit_16(1743); -emit_16(1679); -emit_16(1744); -emit_16(1680); -emit_16(1744); -emit_16(1679); -emit_16(1744); -emit_16(1680); -emit_16(1745); -emit_16(1681); -emit_16(1745); -emit_16(1680); -emit_16(1745); -emit_16(1681); -emit_16(1746); -emit_16(1682); -emit_16(1746); -emit_16(1681); -emit_16(1746); -emit_16(1682); -emit_16(1747); -emit_16(1683); -emit_16(1747); -emit_16(1682); -emit_16(1747); -emit_16(1683); -emit_16(1748); -emit_16(1684); -emit_16(1748); -emit_16(1683); -emit_16(1748); -emit_16(1684); -emit_16(1749); -emit_16(1685); -emit_16(1749); -emit_16(1684); -emit_16(1749); -emit_16(1685); -emit_16(1750); -emit_16(1686); -emit_16(1750); -emit_16(1685); -emit_16(1750); -emit_16(1686); -emit_16(1751); -emit_16(1687); -emit_16(1751); -emit_16(1686); -emit_16(1751); -emit_16(1687); -emit_16(1752); -emit_16(1688); -emit_16(1752); -emit_16(1687); -emit_16(1752); -emit_16(1688); -emit_16(1753); -emit_16(1689); -emit_16(1753); -emit_16(1688); -emit_16(1753); -emit_16(1689); -emit_16(1754); -emit_16(1690); -emit_16(1754); -emit_16(1689); -emit_16(1754); -emit_16(1690); -emit_16(1755); -emit_16(1691); -emit_16(1755); -emit_16(1690); -emit_16(1755); -emit_16(1691); -emit_16(1756); -emit_16(1692); -emit_16(1756); -emit_16(1691); -emit_16(1756); -emit_16(1692); -emit_16(1757); -emit_16(1693); -emit_16(1757); -emit_16(1692); -emit_16(1757); -emit_16(1693); -emit_16(1758); -emit_16(1694); -emit_16(1758); -emit_16(1693); -emit_16(1758); -emit_16(1694); -emit_16(1759); -emit_16(1695); -emit_16(1759); -emit_16(1694); -emit_16(1759); -emit_16(1695); -emit_16(1760); -emit_16(1696); -emit_16(1760); -emit_16(1695); -emit_16(1760); -emit_16(1696); -emit_16(1761); -emit_16(1697); -emit_16(1761); -emit_16(1696); -emit_16(1761); -emit_16(1697); -emit_16(1762); -emit_16(1698); -emit_16(1762); -emit_16(1697); -emit_16(1762); -emit_16(1698); -emit_16(1763); -emit_16(1699); -emit_16(1763); -emit_16(1698); -emit_16(1763); -emit_16(1699); -emit_16(1764); -emit_16(1700); -emit_16(1764); -emit_16(1699); -emit_16(1764); -emit_16(1700); -emit_16(1765); -emit_16(1701); -emit_16(1765); -emit_16(1700); -emit_16(1765); -emit_16(1701); -emit_16(1766); -emit_16(1702); -emit_16(1766); -emit_16(1701); -emit_16(1766); -emit_16(1702); -emit_16(1767); -emit_16(1703); -emit_16(1767); -emit_16(1702); -emit_16(1767); -emit_16(1703); -emit_16(1768); -emit_16(1704); -emit_16(1768); -emit_16(1703); -emit_16(1768); -emit_16(1704); -emit_16(1769); -emit_16(1705); -emit_16(1769); -emit_16(1704); -emit_16(1769); -emit_16(1705); -emit_16(1770); -emit_16(1706); -emit_16(1770); -emit_16(1705); -emit_16(1770); -emit_16(1706); -emit_16(1771); -emit_16(1707); -emit_16(1771); -emit_16(1706); -emit_16(1771); -emit_16(1707); -emit_16(1772); -emit_16(1708); -emit_16(1772); -emit_16(1707); -emit_16(1772); -emit_16(1708); -emit_16(1773); -emit_16(1709); -emit_16(1773); -emit_16(1708); -emit_16(1773); -emit_16(1709); -emit_16(1774); -emit_16(1710); -emit_16(1774); -emit_16(1709); -emit_16(1774); -emit_16(1710); -emit_16(1775); -emit_16(1711); -emit_16(1775); -emit_16(1710); -emit_16(1775); -emit_16(1711); -emit_16(1776); -emit_16(1712); -emit_16(1776); -emit_16(1711); -emit_16(1776); -emit_16(1712); -emit_16(1777); -emit_16(1713); -emit_16(1777); -emit_16(1712); -emit_16(1777); -emit_16(1713); -emit_16(1778); -emit_16(1714); -emit_16(1778); -emit_16(1713); -emit_16(1778); -emit_16(1714); -emit_16(1779); -emit_16(1715); -emit_16(1779); -emit_16(1714); -emit_16(1779); -emit_16(1715); -emit_16(1780); -emit_16(1716); -emit_16(1780); -emit_16(1715); -emit_16(1780); -emit_16(1716); -emit_16(1781); -emit_16(1717); -emit_16(1781); -emit_16(1716); -emit_16(1781); -emit_16(1717); -emit_16(1782); -emit_16(1718); -emit_16(1782); -emit_16(1717); -emit_16(1782); -emit_16(1718); -emit_16(1783); -emit_16(1719); -emit_16(1783); -emit_16(1718); -emit_16(1783); -emit_16(1719); -emit_16(1784); -emit_16(1720); -emit_16(1784); -emit_16(1719); -emit_16(1784); -emit_16(1720); -emit_16(1785); -emit_16(1721); -emit_16(1785); -emit_16(1720); -emit_16(1785); -emit_16(1721); -emit_16(1786); -emit_16(1722); -emit_16(1786); -emit_16(1721); -emit_16(1786); -emit_16(1722); -emit_16(1787); -emit_16(1723); -emit_16(1787); -emit_16(1722); -emit_16(1787); -emit_16(1723); -emit_16(1788); -emit_16(1724); -emit_16(1788); -emit_16(1723); -emit_16(1788); -emit_16(1724); -emit_16(1789); -emit_16(1725); -emit_16(1789); -emit_16(1724); -emit_16(1789); -emit_16(1725); -emit_16(1790); -emit_16(1726); -emit_16(1790); -emit_16(1725); -emit_16(1790); -emit_16(1726); -emit_16(1791); -emit_16(1727); -emit_16(1791); -emit_16(1726); -emit_16(1792); -emit_16(1728); -emit_16(1793); -emit_16(1729); -emit_16(1793); -emit_16(1728); -emit_16(1793); -emit_16(1729); -emit_16(1794); -emit_16(1730); -emit_16(1794); -emit_16(1729); -emit_16(1794); -emit_16(1730); -emit_16(1795); -emit_16(1731); -emit_16(1795); -emit_16(1730); -emit_16(1795); -emit_16(1731); -emit_16(1796); -emit_16(1732); -emit_16(1796); -emit_16(1731); -emit_16(1796); -emit_16(1732); -emit_16(1797); -emit_16(1733); -emit_16(1797); -emit_16(1732); -emit_16(1797); -emit_16(1733); -emit_16(1798); -emit_16(1734); -emit_16(1798); -emit_16(1733); -emit_16(1798); -emit_16(1734); -emit_16(1799); -emit_16(1735); -emit_16(1799); -emit_16(1734); -emit_16(1799); -emit_16(1735); -emit_16(1800); -emit_16(1736); -emit_16(1800); -emit_16(1735); -emit_16(1800); -emit_16(1736); -emit_16(1801); -emit_16(1737); -emit_16(1801); -emit_16(1736); -emit_16(1801); -emit_16(1737); -emit_16(1802); -emit_16(1738); -emit_16(1802); -emit_16(1737); -emit_16(1802); -emit_16(1738); -emit_16(1803); -emit_16(1739); -emit_16(1803); -emit_16(1738); -emit_16(1803); -emit_16(1739); -emit_16(1804); -emit_16(1740); -emit_16(1804); -emit_16(1739); -emit_16(1804); -emit_16(1740); -emit_16(1805); -emit_16(1741); -emit_16(1805); -emit_16(1740); -emit_16(1805); -emit_16(1741); -emit_16(1806); -emit_16(1742); -emit_16(1806); -emit_16(1741); -emit_16(1806); -emit_16(1742); -emit_16(1807); -emit_16(1743); -emit_16(1807); -emit_16(1742); -emit_16(1807); -emit_16(1743); -emit_16(1808); -emit_16(1744); -emit_16(1808); -emit_16(1743); -emit_16(1808); -emit_16(1744); -emit_16(1809); -emit_16(1745); -emit_16(1809); -emit_16(1744); -emit_16(1809); -emit_16(1745); -emit_16(1810); -emit_16(1746); -emit_16(1810); -emit_16(1745); -emit_16(1810); -emit_16(1746); -emit_16(1811); -emit_16(1747); -emit_16(1811); -emit_16(1746); -emit_16(1811); -emit_16(1747); -emit_16(1812); -emit_16(1748); -emit_16(1812); -emit_16(1747); -emit_16(1812); -emit_16(1748); -emit_16(1813); -emit_16(1749); -emit_16(1813); -emit_16(1748); -emit_16(1813); -emit_16(1749); -emit_16(1814); -emit_16(1750); -emit_16(1814); -emit_16(1749); -emit_16(1814); -emit_16(1750); -emit_16(1815); -emit_16(1751); -emit_16(1815); -emit_16(1750); -emit_16(1815); -emit_16(1751); -emit_16(1816); -emit_16(1752); -emit_16(1816); -emit_16(1751); -emit_16(1816); -emit_16(1752); -emit_16(1817); -emit_16(1753); -emit_16(1817); -emit_16(1752); -emit_16(1817); -emit_16(1753); -emit_16(1818); -emit_16(1754); -emit_16(1818); -emit_16(1753); -emit_16(1818); -emit_16(1754); -emit_16(1819); -emit_16(1755); -emit_16(1819); -emit_16(1754); -emit_16(1819); -emit_16(1755); -emit_16(1820); -emit_16(1756); -emit_16(1820); -emit_16(1755); -emit_16(1820); -emit_16(1756); -emit_16(1821); -emit_16(1757); -emit_16(1821); -emit_16(1756); -emit_16(1821); -emit_16(1757); -emit_16(1822); -emit_16(1758); -emit_16(1822); -emit_16(1757); -emit_16(1822); -emit_16(1758); -emit_16(1823); -emit_16(1759); -emit_16(1823); -emit_16(1758); -emit_16(1823); -emit_16(1759); -emit_16(1824); -emit_16(1760); -emit_16(1824); -emit_16(1759); -emit_16(1824); -emit_16(1760); -emit_16(1825); -emit_16(1761); -emit_16(1825); -emit_16(1760); -emit_16(1825); -emit_16(1761); -emit_16(1826); -emit_16(1762); -emit_16(1826); -emit_16(1761); -emit_16(1826); -emit_16(1762); -emit_16(1827); -emit_16(1763); -emit_16(1827); -emit_16(1762); -emit_16(1827); -emit_16(1763); -emit_16(1828); -emit_16(1764); -emit_16(1828); -emit_16(1763); -emit_16(1828); -emit_16(1764); -emit_16(1829); -emit_16(1765); -emit_16(1829); -emit_16(1764); -emit_16(1829); -emit_16(1765); -emit_16(1830); -emit_16(1766); -emit_16(1830); -emit_16(1765); -emit_16(1830); -emit_16(1766); -emit_16(1831); -emit_16(1767); -emit_16(1831); -emit_16(1766); -emit_16(1831); -emit_16(1767); -emit_16(1832); -emit_16(1768); -emit_16(1832); -emit_16(1767); -emit_16(1832); -emit_16(1768); -emit_16(1833); -emit_16(1769); -emit_16(1833); -emit_16(1768); -emit_16(1833); -emit_16(1769); -emit_16(1834); -emit_16(1770); -emit_16(1834); -emit_16(1769); -emit_16(1834); -emit_16(1770); -emit_16(1835); -emit_16(1771); -emit_16(1835); -emit_16(1770); -emit_16(1835); -emit_16(1771); -emit_16(1836); -emit_16(1772); -emit_16(1836); -emit_16(1771); -emit_16(1836); -emit_16(1772); -emit_16(1837); -emit_16(1773); -emit_16(1837); -emit_16(1772); -emit_16(1837); -emit_16(1773); -emit_16(1838); -emit_16(1774); -emit_16(1838); -emit_16(1773); -emit_16(1838); -emit_16(1774); -emit_16(1839); -emit_16(1775); -emit_16(1839); -emit_16(1774); -emit_16(1839); -emit_16(1775); -emit_16(1840); -emit_16(1776); -emit_16(1840); -emit_16(1775); -emit_16(1840); -emit_16(1776); -emit_16(1841); -emit_16(1777); -emit_16(1841); -emit_16(1776); -emit_16(1841); -emit_16(1777); -emit_16(1842); -emit_16(1778); -emit_16(1842); -emit_16(1777); -emit_16(1842); -emit_16(1778); -emit_16(1843); -emit_16(1779); -emit_16(1843); -emit_16(1778); -emit_16(1843); -emit_16(1779); -emit_16(1844); -emit_16(1780); -emit_16(1844); -emit_16(1779); -emit_16(1844); -emit_16(1780); -emit_16(1845); -emit_16(1781); -emit_16(1845); -emit_16(1780); -emit_16(1845); -emit_16(1781); -emit_16(1846); -emit_16(1782); -emit_16(1846); -emit_16(1781); -emit_16(1846); -emit_16(1782); -emit_16(1847); -emit_16(1783); -emit_16(1847); -emit_16(1782); -emit_16(1847); -emit_16(1783); -emit_16(1848); -emit_16(1784); -emit_16(1848); -emit_16(1783); -emit_16(1848); -emit_16(1784); -emit_16(1849); -emit_16(1785); -emit_16(1849); -emit_16(1784); -emit_16(1849); -emit_16(1785); -emit_16(1850); -emit_16(1786); -emit_16(1850); -emit_16(1785); -emit_16(1850); -emit_16(1786); -emit_16(1851); -emit_16(1787); -emit_16(1851); -emit_16(1786); -emit_16(1851); -emit_16(1787); -emit_16(1852); -emit_16(1788); -emit_16(1852); -emit_16(1787); -emit_16(1852); -emit_16(1788); -emit_16(1853); -emit_16(1789); -emit_16(1853); -emit_16(1788); -emit_16(1853); -emit_16(1789); -emit_16(1854); -emit_16(1790); -emit_16(1854); -emit_16(1789); -emit_16(1854); -emit_16(1790); -emit_16(1855); -emit_16(1791); -emit_16(1855); -emit_16(1790); -emit_16(1856); -emit_16(1792); -emit_16(1857); -emit_16(1793); -emit_16(1857); -emit_16(1792); -emit_16(1857); -emit_16(1793); -emit_16(1858); -emit_16(1794); -emit_16(1858); -emit_16(1793); -emit_16(1858); -emit_16(1794); -emit_16(1859); -emit_16(1795); -emit_16(1859); -emit_16(1794); -emit_16(1859); -emit_16(1795); -emit_16(1860); -emit_16(1796); -emit_16(1860); -emit_16(1795); -emit_16(1860); -emit_16(1796); -emit_16(1861); -emit_16(1797); -emit_16(1861); -emit_16(1796); -emit_16(1861); -emit_16(1797); -emit_16(1862); -emit_16(1798); -emit_16(1862); -emit_16(1797); -emit_16(1862); -emit_16(1798); -emit_16(1863); -emit_16(1799); -emit_16(1863); -emit_16(1798); -emit_16(1863); -emit_16(1799); -emit_16(1864); -emit_16(1800); -emit_16(1864); -emit_16(1799); -emit_16(1864); -emit_16(1800); -emit_16(1865); -emit_16(1801); -emit_16(1865); -emit_16(1800); -emit_16(1865); -emit_16(1801); -emit_16(1866); -emit_16(1802); -emit_16(1866); -emit_16(1801); -emit_16(1866); -emit_16(1802); -emit_16(1867); -emit_16(1803); -emit_16(1867); -emit_16(1802); -emit_16(1867); -emit_16(1803); -emit_16(1868); -emit_16(1804); -emit_16(1868); -emit_16(1803); -emit_16(1868); -emit_16(1804); -emit_16(1869); -emit_16(1805); -emit_16(1869); -emit_16(1804); -emit_16(1869); -emit_16(1805); -emit_16(1870); -emit_16(1806); -emit_16(1870); -emit_16(1805); -emit_16(1870); -emit_16(1806); -emit_16(1871); -emit_16(1807); -emit_16(1871); -emit_16(1806); -emit_16(1871); -emit_16(1807); -emit_16(1872); -emit_16(1808); -emit_16(1872); -emit_16(1807); -emit_16(1872); -emit_16(1808); -emit_16(1873); -emit_16(1809); -emit_16(1873); -emit_16(1808); -emit_16(1873); -emit_16(1809); -emit_16(1874); -emit_16(1810); -emit_16(1874); -emit_16(1809); -emit_16(1874); -emit_16(1810); -emit_16(1875); -emit_16(1811); -emit_16(1875); -emit_16(1810); -emit_16(1875); -emit_16(1811); -emit_16(1876); -emit_16(1812); -emit_16(1876); -emit_16(1811); -emit_16(1876); -emit_16(1812); -emit_16(1877); -emit_16(1813); -emit_16(1877); -emit_16(1812); -emit_16(1877); -emit_16(1813); -emit_16(1878); -emit_16(1814); -emit_16(1878); -emit_16(1813); -emit_16(1878); -emit_16(1814); -emit_16(1879); -emit_16(1815); -emit_16(1879); -emit_16(1814); -emit_16(1879); -emit_16(1815); -emit_16(1880); -emit_16(1816); -emit_16(1880); -emit_16(1815); -emit_16(1880); -emit_16(1816); -emit_16(1881); -emit_16(1817); -emit_16(1881); -emit_16(1816); -emit_16(1881); -emit_16(1817); -emit_16(1882); -emit_16(1818); -emit_16(1882); -emit_16(1817); -emit_16(1882); -emit_16(1818); -emit_16(1883); -emit_16(1819); -emit_16(1883); -emit_16(1818); -emit_16(1883); -emit_16(1819); -emit_16(1884); -emit_16(1820); -emit_16(1884); -emit_16(1819); -emit_16(1884); -emit_16(1820); -emit_16(1885); -emit_16(1821); -emit_16(1885); -emit_16(1820); -emit_16(1885); -emit_16(1821); -emit_16(1886); -emit_16(1822); -emit_16(1886); -emit_16(1821); -emit_16(1886); -emit_16(1822); -emit_16(1887); -emit_16(1823); -emit_16(1887); -emit_16(1822); -emit_16(1887); -emit_16(1823); -emit_16(1888); -emit_16(1824); -emit_16(1888); -emit_16(1823); -emit_16(1888); -emit_16(1824); -emit_16(1889); -emit_16(1825); -emit_16(1889); -emit_16(1824); -emit_16(1889); -emit_16(1825); -emit_16(1890); -emit_16(1826); -emit_16(1890); -emit_16(1825); -emit_16(1890); -emit_16(1826); -emit_16(1891); -emit_16(1827); -emit_16(1891); -emit_16(1826); -emit_16(1891); -emit_16(1827); -emit_16(1892); -emit_16(1828); -emit_16(1892); -emit_16(1827); -emit_16(1892); -emit_16(1828); -emit_16(1893); -emit_16(1829); -emit_16(1893); -emit_16(1828); -emit_16(1893); -emit_16(1829); -emit_16(1894); -emit_16(1830); -emit_16(1894); -emit_16(1829); -emit_16(1894); -emit_16(1830); -emit_16(1895); -emit_16(1831); -emit_16(1895); -emit_16(1830); -emit_16(1895); -emit_16(1831); -emit_16(1896); -emit_16(1832); -emit_16(1896); -emit_16(1831); -emit_16(1896); -emit_16(1832); -emit_16(1897); -emit_16(1833); -emit_16(1897); -emit_16(1832); -emit_16(1897); -emit_16(1833); -emit_16(1898); -emit_16(1834); -emit_16(1898); -emit_16(1833); -emit_16(1898); -emit_16(1834); -emit_16(1899); -emit_16(1835); -emit_16(1899); -emit_16(1834); -emit_16(1899); -emit_16(1835); -emit_16(1900); -emit_16(1836); -emit_16(1900); -emit_16(1835); -emit_16(1900); -emit_16(1836); -emit_16(1901); -emit_16(1837); -emit_16(1901); -emit_16(1836); -emit_16(1901); -emit_16(1837); -emit_16(1902); -emit_16(1838); -emit_16(1902); -emit_16(1837); -emit_16(1902); -emit_16(1838); -emit_16(1903); -emit_16(1839); -emit_16(1903); -emit_16(1838); -emit_16(1903); -emit_16(1839); -emit_16(1904); -emit_16(1840); -emit_16(1904); -emit_16(1839); -emit_16(1904); -emit_16(1840); -emit_16(1905); -emit_16(1841); -emit_16(1905); -emit_16(1840); -emit_16(1905); -emit_16(1841); -emit_16(1906); -emit_16(1842); -emit_16(1906); -emit_16(1841); -emit_16(1906); -emit_16(1842); -emit_16(1907); -emit_16(1843); -emit_16(1907); -emit_16(1842); -emit_16(1907); -emit_16(1843); -emit_16(1908); -emit_16(1844); -emit_16(1908); -emit_16(1843); -emit_16(1908); -emit_16(1844); -emit_16(1909); -emit_16(1845); -emit_16(1909); -emit_16(1844); -emit_16(1909); -emit_16(1845); -emit_16(1910); -emit_16(1846); -emit_16(1910); -emit_16(1845); -emit_16(1910); -emit_16(1846); -emit_16(1911); -emit_16(1847); -emit_16(1911); -emit_16(1846); -emit_16(1911); -emit_16(1847); -emit_16(1912); -emit_16(1848); -emit_16(1912); -emit_16(1847); -emit_16(1912); -emit_16(1848); -emit_16(1913); -emit_16(1849); -emit_16(1913); -emit_16(1848); -emit_16(1913); -emit_16(1849); -emit_16(1914); -emit_16(1850); -emit_16(1914); -emit_16(1849); -emit_16(1914); -emit_16(1850); -emit_16(1915); -emit_16(1851); -emit_16(1915); -emit_16(1850); -emit_16(1915); -emit_16(1851); -emit_16(1916); -emit_16(1852); -emit_16(1916); -emit_16(1851); -emit_16(1916); -emit_16(1852); -emit_16(1917); -emit_16(1853); -emit_16(1917); -emit_16(1852); -emit_16(1917); -emit_16(1853); -emit_16(1918); -emit_16(1854); -emit_16(1918); -emit_16(1853); -emit_16(1918); -emit_16(1854); -emit_16(1919); -emit_16(1855); -emit_16(1919); -emit_16(1854); -emit_16(1920); -emit_16(1856); -emit_16(1921); -emit_16(1857); -emit_16(1921); -emit_16(1856); -emit_16(1921); -emit_16(1857); -emit_16(1922); -emit_16(1858); -emit_16(1922); -emit_16(1857); -emit_16(1922); -emit_16(1858); -emit_16(1923); -emit_16(1859); -emit_16(1923); -emit_16(1858); -emit_16(1923); -emit_16(1859); -emit_16(1924); -emit_16(1860); -emit_16(1924); -emit_16(1859); -emit_16(1924); -emit_16(1860); -emit_16(1925); -emit_16(1861); -emit_16(1925); -emit_16(1860); -emit_16(1925); -emit_16(1861); -emit_16(1926); -emit_16(1862); -emit_16(1926); -emit_16(1861); -emit_16(1926); -emit_16(1862); -emit_16(1927); -emit_16(1863); -emit_16(1927); -emit_16(1862); -emit_16(1927); -emit_16(1863); -emit_16(1928); -emit_16(1864); -emit_16(1928); -emit_16(1863); -emit_16(1928); -emit_16(1864); -emit_16(1929); -emit_16(1865); -emit_16(1929); -emit_16(1864); -emit_16(1929); -emit_16(1865); -emit_16(1930); -emit_16(1866); -emit_16(1930); -emit_16(1865); -emit_16(1930); -emit_16(1866); -emit_16(1931); -emit_16(1867); -emit_16(1931); -emit_16(1866); -emit_16(1931); -emit_16(1867); -emit_16(1932); -emit_16(1868); -emit_16(1932); -emit_16(1867); -emit_16(1932); -emit_16(1868); -emit_16(1933); -emit_16(1869); -emit_16(1933); -emit_16(1868); -emit_16(1933); -emit_16(1869); -emit_16(1934); -emit_16(1870); -emit_16(1934); -emit_16(1869); -emit_16(1934); -emit_16(1870); -emit_16(1935); -emit_16(1871); -emit_16(1935); -emit_16(1870); -emit_16(1935); -emit_16(1871); -emit_16(1936); -emit_16(1872); -emit_16(1936); -emit_16(1871); -emit_16(1936); -emit_16(1872); -emit_16(1937); -emit_16(1873); -emit_16(1937); -emit_16(1872); -emit_16(1937); -emit_16(1873); -emit_16(1938); -emit_16(1874); -emit_16(1938); -emit_16(1873); -emit_16(1938); -emit_16(1874); -emit_16(1939); -emit_16(1875); -emit_16(1939); -emit_16(1874); -emit_16(1939); -emit_16(1875); -emit_16(1940); -emit_16(1876); -emit_16(1940); -emit_16(1875); -emit_16(1940); -emit_16(1876); -emit_16(1941); -emit_16(1877); -emit_16(1941); -emit_16(1876); -emit_16(1941); -emit_16(1877); -emit_16(1942); -emit_16(1878); -emit_16(1942); -emit_16(1877); -emit_16(1942); -emit_16(1878); -emit_16(1943); -emit_16(1879); -emit_16(1943); -emit_16(1878); -emit_16(1943); -emit_16(1879); -emit_16(1944); -emit_16(1880); -emit_16(1944); -emit_16(1879); -emit_16(1944); -emit_16(1880); -emit_16(1945); -emit_16(1881); -emit_16(1945); -emit_16(1880); -emit_16(1945); -emit_16(1881); -emit_16(1946); -emit_16(1882); -emit_16(1946); -emit_16(1881); -emit_16(1946); -emit_16(1882); -emit_16(1947); -emit_16(1883); -emit_16(1947); -emit_16(1882); -emit_16(1947); -emit_16(1883); -emit_16(1948); -emit_16(1884); -emit_16(1948); -emit_16(1883); -emit_16(1948); -emit_16(1884); -emit_16(1949); -emit_16(1885); -emit_16(1949); -emit_16(1884); -emit_16(1949); -emit_16(1885); -emit_16(1950); -emit_16(1886); -emit_16(1950); -emit_16(1885); -emit_16(1950); -emit_16(1886); -emit_16(1951); -emit_16(1887); -emit_16(1951); -emit_16(1886); -emit_16(1951); -emit_16(1887); -emit_16(1952); -emit_16(1888); -emit_16(1952); -emit_16(1887); -emit_16(1952); -emit_16(1888); -emit_16(1953); -emit_16(1889); -emit_16(1953); -emit_16(1888); -emit_16(1953); -emit_16(1889); -emit_16(1954); -emit_16(1890); -emit_16(1954); -emit_16(1889); -emit_16(1954); -emit_16(1890); -emit_16(1955); -emit_16(1891); -emit_16(1955); -emit_16(1890); -emit_16(1955); -emit_16(1891); -emit_16(1956); -emit_16(1892); -emit_16(1956); -emit_16(1891); -emit_16(1956); -emit_16(1892); -emit_16(1957); -emit_16(1893); -emit_16(1957); -emit_16(1892); -emit_16(1957); -emit_16(1893); -emit_16(1958); -emit_16(1894); -emit_16(1958); -emit_16(1893); -emit_16(1958); -emit_16(1894); -emit_16(1959); -emit_16(1895); -emit_16(1959); -emit_16(1894); -emit_16(1959); -emit_16(1895); -emit_16(1960); -emit_16(1896); -emit_16(1960); -emit_16(1895); -emit_16(1960); -emit_16(1896); -emit_16(1961); -emit_16(1897); -emit_16(1961); -emit_16(1896); -emit_16(1961); -emit_16(1897); -emit_16(1962); -emit_16(1898); -emit_16(1962); -emit_16(1897); -emit_16(1962); -emit_16(1898); -emit_16(1963); -emit_16(1899); -emit_16(1963); -emit_16(1898); -emit_16(1963); -emit_16(1899); -emit_16(1964); -emit_16(1900); -emit_16(1964); -emit_16(1899); -emit_16(1964); -emit_16(1900); -emit_16(1965); -emit_16(1901); -emit_16(1965); -emit_16(1900); -emit_16(1965); -emit_16(1901); -emit_16(1966); -emit_16(1902); -emit_16(1966); -emit_16(1901); -emit_16(1966); -emit_16(1902); -emit_16(1967); -emit_16(1903); -emit_16(1967); -emit_16(1902); -emit_16(1967); -emit_16(1903); -emit_16(1968); -emit_16(1904); -emit_16(1968); -emit_16(1903); -emit_16(1968); -emit_16(1904); -emit_16(1969); -emit_16(1905); -emit_16(1969); -emit_16(1904); -emit_16(1969); -emit_16(1905); -emit_16(1970); -emit_16(1906); -emit_16(1970); -emit_16(1905); -emit_16(1970); -emit_16(1906); -emit_16(1971); -emit_16(1907); -emit_16(1971); -emit_16(1906); -emit_16(1971); -emit_16(1907); -emit_16(1972); -emit_16(1908); -emit_16(1972); -emit_16(1907); -emit_16(1972); -emit_16(1908); -emit_16(1973); -emit_16(1909); -emit_16(1973); -emit_16(1908); -emit_16(1973); -emit_16(1909); -emit_16(1974); -emit_16(1910); -emit_16(1974); -emit_16(1909); -emit_16(1974); -emit_16(1910); -emit_16(1975); -emit_16(1911); -emit_16(1975); -emit_16(1910); -emit_16(1975); -emit_16(1911); -emit_16(1976); -emit_16(1912); -emit_16(1976); -emit_16(1911); -emit_16(1976); -emit_16(1912); -emit_16(1977); -emit_16(1913); -emit_16(1977); -emit_16(1912); -emit_16(1977); -emit_16(1913); -emit_16(1978); -emit_16(1914); -emit_16(1978); -emit_16(1913); -emit_16(1978); -emit_16(1914); -emit_16(1979); -emit_16(1915); -emit_16(1979); -emit_16(1914); -emit_16(1979); -emit_16(1915); -emit_16(1980); -emit_16(1916); -emit_16(1980); -emit_16(1915); -emit_16(1980); -emit_16(1916); -emit_16(1981); -emit_16(1917); -emit_16(1981); -emit_16(1916); -emit_16(1981); -emit_16(1917); -emit_16(1982); -emit_16(1918); -emit_16(1982); -emit_16(1917); -emit_16(1982); -emit_16(1918); -emit_16(1983); -emit_16(1919); -emit_16(1983); -emit_16(1918); -emit_16(1984); -emit_16(1920); -emit_16(1985); -emit_16(1921); -emit_16(1985); -emit_16(1920); -emit_16(1985); -emit_16(1921); -emit_16(1986); -emit_16(1922); -emit_16(1986); -emit_16(1921); -emit_16(1986); -emit_16(1922); -emit_16(1987); -emit_16(1923); -emit_16(1987); -emit_16(1922); -emit_16(1987); -emit_16(1923); -emit_16(1988); -emit_16(1924); -emit_16(1988); -emit_16(1923); -emit_16(1988); -emit_16(1924); -emit_16(1989); -emit_16(1925); -emit_16(1989); -emit_16(1924); -emit_16(1989); -emit_16(1925); -emit_16(1990); -emit_16(1926); -emit_16(1990); -emit_16(1925); -emit_16(1990); -emit_16(1926); -emit_16(1991); -emit_16(1927); -emit_16(1991); -emit_16(1926); -emit_16(1991); -emit_16(1927); -emit_16(1992); -emit_16(1928); -emit_16(1992); -emit_16(1927); -emit_16(1992); -emit_16(1928); -emit_16(1993); -emit_16(1929); -emit_16(1993); -emit_16(1928); -emit_16(1993); -emit_16(1929); -emit_16(1994); -emit_16(1930); -emit_16(1994); -emit_16(1929); -emit_16(1994); -emit_16(1930); -emit_16(1995); -emit_16(1931); -emit_16(1995); -emit_16(1930); -emit_16(1995); -emit_16(1931); -emit_16(1996); -emit_16(1932); -emit_16(1996); -emit_16(1931); -emit_16(1996); -emit_16(1932); -emit_16(1997); -emit_16(1933); -emit_16(1997); -emit_16(1932); -emit_16(1997); -emit_16(1933); -emit_16(1998); -emit_16(1934); -emit_16(1998); -emit_16(1933); -emit_16(1998); -emit_16(1934); -emit_16(1999); -emit_16(1935); -emit_16(1999); -emit_16(1934); -emit_16(1999); -emit_16(1935); -emit_16(2000); -emit_16(1936); -emit_16(2000); -emit_16(1935); -emit_16(2000); -emit_16(1936); -emit_16(2001); -emit_16(1937); -emit_16(2001); -emit_16(1936); -emit_16(2001); -emit_16(1937); -emit_16(2002); -emit_16(1938); -emit_16(2002); -emit_16(1937); -emit_16(2002); -emit_16(1938); -emit_16(2003); -emit_16(1939); -emit_16(2003); -emit_16(1938); -emit_16(2003); -emit_16(1939); -emit_16(2004); -emit_16(1940); -emit_16(2004); -emit_16(1939); -emit_16(2004); -emit_16(1940); -emit_16(2005); -emit_16(1941); -emit_16(2005); -emit_16(1940); -emit_16(2005); -emit_16(1941); -emit_16(2006); -emit_16(1942); -emit_16(2006); -emit_16(1941); -emit_16(2006); -emit_16(1942); -emit_16(2007); -emit_16(1943); -emit_16(2007); -emit_16(1942); -emit_16(2007); -emit_16(1943); -emit_16(2008); -emit_16(1944); -emit_16(2008); -emit_16(1943); -emit_16(2008); -emit_16(1944); -emit_16(2009); -emit_16(1945); -emit_16(2009); -emit_16(1944); -emit_16(2009); -emit_16(1945); -emit_16(2010); -emit_16(1946); -emit_16(2010); -emit_16(1945); -emit_16(2010); -emit_16(1946); -emit_16(2011); -emit_16(1947); -emit_16(2011); -emit_16(1946); -emit_16(2011); -emit_16(1947); -emit_16(2012); -emit_16(1948); -emit_16(2012); -emit_16(1947); -emit_16(2012); -emit_16(1948); -emit_16(2013); -emit_16(1949); -emit_16(2013); -emit_16(1948); -emit_16(2013); -emit_16(1949); -emit_16(2014); -emit_16(1950); -emit_16(2014); -emit_16(1949); -emit_16(2014); -emit_16(1950); -emit_16(2015); -emit_16(1951); -emit_16(2015); -emit_16(1950); -emit_16(2015); -emit_16(1951); -emit_16(2016); -emit_16(1952); -emit_16(2016); -emit_16(1951); -emit_16(2016); -emit_16(1952); -emit_16(2017); -emit_16(1953); -emit_16(2017); -emit_16(1952); -emit_16(2017); -emit_16(1953); -emit_16(2018); -emit_16(1954); -emit_16(2018); -emit_16(1953); -emit_16(2018); -emit_16(1954); -emit_16(2019); -emit_16(1955); -emit_16(2019); -emit_16(1954); -emit_16(2019); -emit_16(1955); -emit_16(2020); -emit_16(1956); -emit_16(2020); -emit_16(1955); -emit_16(2020); -emit_16(1956); -emit_16(2021); -emit_16(1957); -emit_16(2021); -emit_16(1956); -emit_16(2021); -emit_16(1957); -emit_16(2022); -emit_16(1958); -emit_16(2022); -emit_16(1957); -emit_16(2022); -emit_16(1958); -emit_16(2023); -emit_16(1959); -emit_16(2023); -emit_16(1958); -emit_16(2023); -emit_16(1959); -emit_16(2024); -emit_16(1960); -emit_16(2024); -emit_16(1959); -emit_16(2024); -emit_16(1960); -emit_16(2025); -emit_16(1961); -emit_16(2025); -emit_16(1960); -emit_16(2025); -emit_16(1961); -emit_16(2026); -emit_16(1962); -emit_16(2026); -emit_16(1961); -emit_16(2026); -emit_16(1962); -emit_16(2027); -emit_16(1963); -emit_16(2027); -emit_16(1962); -emit_16(2027); -emit_16(1963); -emit_16(2028); -emit_16(1964); -emit_16(2028); -emit_16(1963); -emit_16(2028); -emit_16(1964); -emit_16(2029); -emit_16(1965); -emit_16(2029); -emit_16(1964); -emit_16(2029); -emit_16(1965); -emit_16(2030); -emit_16(1966); -emit_16(2030); -emit_16(1965); -emit_16(2030); -emit_16(1966); -emit_16(2031); -emit_16(1967); -emit_16(2031); -emit_16(1966); -emit_16(2031); -emit_16(1967); -emit_16(2032); -emit_16(1968); -emit_16(2032); -emit_16(1967); -emit_16(2032); -emit_16(1968); -emit_16(2033); -emit_16(1969); -emit_16(2033); -emit_16(1968); -emit_16(2033); -emit_16(1969); -emit_16(2034); -emit_16(1970); -emit_16(2034); -emit_16(1969); -emit_16(2034); -emit_16(1970); -emit_16(2035); -emit_16(1971); -emit_16(2035); -emit_16(1970); -emit_16(2035); -emit_16(1971); -emit_16(2036); -emit_16(1972); -emit_16(2036); -emit_16(1971); -emit_16(2036); -emit_16(1972); -emit_16(2037); -emit_16(1973); -emit_16(2037); -emit_16(1972); -emit_16(2037); -emit_16(1973); -emit_16(2038); -emit_16(1974); -emit_16(2038); -emit_16(1973); -emit_16(2038); -emit_16(1974); -emit_16(2039); -emit_16(1975); -emit_16(2039); -emit_16(1974); -emit_16(2039); -emit_16(1975); -emit_16(2040); -emit_16(1976); -emit_16(2040); -emit_16(1975); -emit_16(2040); -emit_16(1976); -emit_16(2041); -emit_16(1977); -emit_16(2041); -emit_16(1976); -emit_16(2041); -emit_16(1977); -emit_16(2042); -emit_16(1978); -emit_16(2042); -emit_16(1977); -emit_16(2042); -emit_16(1978); -emit_16(2043); -emit_16(1979); -emit_16(2043); -emit_16(1978); -emit_16(2043); -emit_16(1979); -emit_16(2044); -emit_16(1980); -emit_16(2044); -emit_16(1979); -emit_16(2044); -emit_16(1980); -emit_16(2045); -emit_16(1981); -emit_16(2045); -emit_16(1980); -emit_16(2045); -emit_16(1981); -emit_16(2046); -emit_16(1982); -emit_16(2046); -emit_16(1981); -emit_16(2046); -emit_16(1982); -emit_16(2047); -emit_16(1983); -emit_16(2047); -emit_16(1982); -emit_16(2048); -emit_16(1984); -emit_16(2049); -emit_16(1985); -emit_16(2049); -emit_16(1984); -emit_16(2049); -emit_16(1985); -emit_16(2050); -emit_16(1986); -emit_16(2050); -emit_16(1985); -emit_16(2050); -emit_16(1986); -emit_16(2051); -emit_16(1987); -emit_16(2051); -emit_16(1986); -emit_16(2051); -emit_16(1987); -emit_16(2052); -emit_16(1988); -emit_16(2052); -emit_16(1987); -emit_16(2052); -emit_16(1988); -emit_16(2053); -emit_16(1989); -emit_16(2053); -emit_16(1988); -emit_16(2053); -emit_16(1989); -emit_16(2054); -emit_16(1990); -emit_16(2054); -emit_16(1989); -emit_16(2054); -emit_16(1990); -emit_16(2055); -emit_16(1991); -emit_16(2055); -emit_16(1990); -emit_16(2055); -emit_16(1991); -emit_16(2056); -emit_16(1992); -emit_16(2056); -emit_16(1991); -emit_16(2056); -emit_16(1992); -emit_16(2057); -emit_16(1993); -emit_16(2057); -emit_16(1992); -emit_16(2057); -emit_16(1993); -emit_16(2058); -emit_16(1994); -emit_16(2058); -emit_16(1993); -emit_16(2058); -emit_16(1994); -emit_16(2059); -emit_16(1995); -emit_16(2059); -emit_16(1994); -emit_16(2059); -emit_16(1995); -emit_16(2060); -emit_16(1996); -emit_16(2060); -emit_16(1995); -emit_16(2060); -emit_16(1996); -emit_16(2061); -emit_16(1997); -emit_16(2061); -emit_16(1996); -emit_16(2061); -emit_16(1997); -emit_16(2062); -emit_16(1998); -emit_16(2062); -emit_16(1997); -emit_16(2062); -emit_16(1998); -emit_16(2063); -emit_16(1999); -emit_16(2063); -emit_16(1998); -emit_16(2063); -emit_16(1999); -emit_16(2064); -emit_16(2000); -emit_16(2064); -emit_16(1999); -emit_16(2064); -emit_16(2000); -emit_16(2065); -emit_16(2001); -emit_16(2065); -emit_16(2000); -emit_16(2065); -emit_16(2001); -emit_16(2066); -emit_16(2002); -emit_16(2066); -emit_16(2001); -emit_16(2066); -emit_16(2002); -emit_16(2067); -emit_16(2003); -emit_16(2067); -emit_16(2002); -emit_16(2067); -emit_16(2003); -emit_16(2068); -emit_16(2004); -emit_16(2068); -emit_16(2003); -emit_16(2068); -emit_16(2004); -emit_16(2069); -emit_16(2005); -emit_16(2069); -emit_16(2004); -emit_16(2069); -emit_16(2005); -emit_16(2070); -emit_16(2006); -emit_16(2070); -emit_16(2005); -emit_16(2070); -emit_16(2006); -emit_16(2071); -emit_16(2007); -emit_16(2071); -emit_16(2006); -emit_16(2071); -emit_16(2007); -emit_16(2072); -emit_16(2008); -emit_16(2072); -emit_16(2007); -emit_16(2072); -emit_16(2008); -emit_16(2073); -emit_16(2009); -emit_16(2073); -emit_16(2008); -emit_16(2073); -emit_16(2009); -emit_16(2074); -emit_16(2010); -emit_16(2074); -emit_16(2009); -emit_16(2074); -emit_16(2010); -emit_16(2075); -emit_16(2011); -emit_16(2075); -emit_16(2010); -emit_16(2075); -emit_16(2011); -emit_16(2076); -emit_16(2012); -emit_16(2076); -emit_16(2011); -emit_16(2076); -emit_16(2012); -emit_16(2077); -emit_16(2013); -emit_16(2077); -emit_16(2012); -emit_16(2077); -emit_16(2013); -emit_16(2078); -emit_16(2014); -emit_16(2078); -emit_16(2013); -emit_16(2078); -emit_16(2014); -emit_16(2079); -emit_16(2015); -emit_16(2079); -emit_16(2014); -emit_16(2079); -emit_16(2015); -emit_16(2080); -emit_16(2016); -emit_16(2080); -emit_16(2015); -emit_16(2080); -emit_16(2016); -emit_16(2081); -emit_16(2017); -emit_16(2081); -emit_16(2016); -emit_16(2081); -emit_16(2017); -emit_16(2082); -emit_16(2018); -emit_16(2082); -emit_16(2017); -emit_16(2082); -emit_16(2018); -emit_16(2083); -emit_16(2019); -emit_16(2083); -emit_16(2018); -emit_16(2083); -emit_16(2019); -emit_16(2084); -emit_16(2020); -emit_16(2084); -emit_16(2019); -emit_16(2084); -emit_16(2020); -emit_16(2085); -emit_16(2021); -emit_16(2085); -emit_16(2020); -emit_16(2085); -emit_16(2021); -emit_16(2086); -emit_16(2022); -emit_16(2086); -emit_16(2021); -emit_16(2086); -emit_16(2022); -emit_16(2087); -emit_16(2023); -emit_16(2087); -emit_16(2022); -emit_16(2087); -emit_16(2023); -emit_16(2088); -emit_16(2024); -emit_16(2088); -emit_16(2023); -emit_16(2088); -emit_16(2024); -emit_16(2089); -emit_16(2025); -emit_16(2089); -emit_16(2024); -emit_16(2089); -emit_16(2025); -emit_16(2090); -emit_16(2026); -emit_16(2090); -emit_16(2025); -emit_16(2090); -emit_16(2026); -emit_16(2091); -emit_16(2027); -emit_16(2091); -emit_16(2026); -emit_16(2091); -emit_16(2027); -emit_16(2092); -emit_16(2028); -emit_16(2092); -emit_16(2027); -emit_16(2092); -emit_16(2028); -emit_16(2093); -emit_16(2029); -emit_16(2093); -emit_16(2028); -emit_16(2093); -emit_16(2029); -emit_16(2094); -emit_16(2030); -emit_16(2094); -emit_16(2029); -emit_16(2094); -emit_16(2030); -emit_16(2095); -emit_16(2031); -emit_16(2095); -emit_16(2030); -emit_16(2095); -emit_16(2031); -emit_16(2096); -emit_16(2032); -emit_16(2096); -emit_16(2031); -emit_16(2096); -emit_16(2032); -emit_16(2097); -emit_16(2033); -emit_16(2097); -emit_16(2032); -emit_16(2097); -emit_16(2033); -emit_16(2098); -emit_16(2034); -emit_16(2098); -emit_16(2033); -emit_16(2098); -emit_16(2034); -emit_16(2099); -emit_16(2035); -emit_16(2099); -emit_16(2034); -emit_16(2099); -emit_16(2035); -emit_16(2100); -emit_16(2036); -emit_16(2100); -emit_16(2035); -emit_16(2100); -emit_16(2036); -emit_16(2101); -emit_16(2037); -emit_16(2101); -emit_16(2036); -emit_16(2101); -emit_16(2037); -emit_16(2102); -emit_16(2038); -emit_16(2102); -emit_16(2037); -emit_16(2102); -emit_16(2038); -emit_16(2103); -emit_16(2039); -emit_16(2103); -emit_16(2038); -emit_16(2103); -emit_16(2039); -emit_16(2104); -emit_16(2040); -emit_16(2104); -emit_16(2039); -emit_16(2104); -emit_16(2040); -emit_16(2105); -emit_16(2041); -emit_16(2105); -emit_16(2040); -emit_16(2105); -emit_16(2041); -emit_16(2106); -emit_16(2042); -emit_16(2106); -emit_16(2041); -emit_16(2106); -emit_16(2042); -emit_16(2107); -emit_16(2043); -emit_16(2107); -emit_16(2042); -emit_16(2107); -emit_16(2043); -emit_16(2108); -emit_16(2044); -emit_16(2108); -emit_16(2043); -emit_16(2108); -emit_16(2044); -emit_16(2109); -emit_16(2045); -emit_16(2109); -emit_16(2044); -emit_16(2109); -emit_16(2045); -emit_16(2110); -emit_16(2046); -emit_16(2110); -emit_16(2045); -emit_16(2110); -emit_16(2046); -emit_16(2111); -emit_16(2047); -emit_16(2111); -emit_16(2046); -emit_16(2112); -emit_16(2048); -emit_16(2113); -emit_16(2049); -emit_16(2113); -emit_16(2048); -emit_16(2113); -emit_16(2049); -emit_16(2114); -emit_16(2050); -emit_16(2114); -emit_16(2049); -emit_16(2114); -emit_16(2050); -emit_16(2115); -emit_16(2051); -emit_16(2115); -emit_16(2050); -emit_16(2115); -emit_16(2051); -emit_16(2116); -emit_16(2052); -emit_16(2116); -emit_16(2051); -emit_16(2116); -emit_16(2052); -emit_16(2117); -emit_16(2053); -emit_16(2117); -emit_16(2052); -emit_16(2117); -emit_16(2053); -emit_16(2118); -emit_16(2054); -emit_16(2118); -emit_16(2053); -emit_16(2118); -emit_16(2054); -emit_16(2119); -emit_16(2055); -emit_16(2119); -emit_16(2054); -emit_16(2119); -emit_16(2055); -emit_16(2120); -emit_16(2056); -emit_16(2120); -emit_16(2055); -emit_16(2120); -emit_16(2056); -emit_16(2121); -emit_16(2057); -emit_16(2121); -emit_16(2056); -emit_16(2121); -emit_16(2057); -emit_16(2122); -emit_16(2058); -emit_16(2122); -emit_16(2057); -emit_16(2122); -emit_16(2058); -emit_16(2123); -emit_16(2059); -emit_16(2123); -emit_16(2058); -emit_16(2123); -emit_16(2059); -emit_16(2124); -emit_16(2060); -emit_16(2124); -emit_16(2059); -emit_16(2124); -emit_16(2060); -emit_16(2125); -emit_16(2061); -emit_16(2125); -emit_16(2060); -emit_16(2125); -emit_16(2061); -emit_16(2126); -emit_16(2062); -emit_16(2126); -emit_16(2061); -emit_16(2126); -emit_16(2062); -emit_16(2127); -emit_16(2063); -emit_16(2127); -emit_16(2062); -emit_16(2127); -emit_16(2063); -emit_16(2128); -emit_16(2064); -emit_16(2128); -emit_16(2063); -emit_16(2128); -emit_16(2064); -emit_16(2129); -emit_16(2065); -emit_16(2129); -emit_16(2064); -emit_16(2129); -emit_16(2065); -emit_16(2130); -emit_16(2066); -emit_16(2130); -emit_16(2065); -emit_16(2130); -emit_16(2066); -emit_16(2131); -emit_16(2067); -emit_16(2131); -emit_16(2066); -emit_16(2131); -emit_16(2067); -emit_16(2132); -emit_16(2068); -emit_16(2132); -emit_16(2067); -emit_16(2132); -emit_16(2068); -emit_16(2133); -emit_16(2069); -emit_16(2133); -emit_16(2068); -emit_16(2133); -emit_16(2069); -emit_16(2134); -emit_16(2070); -emit_16(2134); -emit_16(2069); -emit_16(2134); -emit_16(2070); -emit_16(2135); -emit_16(2071); -emit_16(2135); -emit_16(2070); -emit_16(2135); -emit_16(2071); -emit_16(2136); -emit_16(2072); -emit_16(2136); -emit_16(2071); -emit_16(2136); -emit_16(2072); -emit_16(2137); -emit_16(2073); -emit_16(2137); -emit_16(2072); -emit_16(2137); -emit_16(2073); -emit_16(2138); -emit_16(2074); -emit_16(2138); -emit_16(2073); -emit_16(2138); -emit_16(2074); -emit_16(2139); -emit_16(2075); -emit_16(2139); -emit_16(2074); -emit_16(2139); -emit_16(2075); -emit_16(2140); -emit_16(2076); -emit_16(2140); -emit_16(2075); -emit_16(2140); -emit_16(2076); -emit_16(2141); -emit_16(2077); -emit_16(2141); -emit_16(2076); -emit_16(2141); -emit_16(2077); -emit_16(2142); -emit_16(2078); -emit_16(2142); -emit_16(2077); -emit_16(2142); -emit_16(2078); -emit_16(2143); -emit_16(2079); -emit_16(2143); -emit_16(2078); -emit_16(2143); -emit_16(2079); -emit_16(2144); -emit_16(2080); -emit_16(2144); -emit_16(2079); -emit_16(2144); -emit_16(2080); -emit_16(2145); -emit_16(2081); -emit_16(2145); -emit_16(2080); -emit_16(2145); -emit_16(2081); -emit_16(2146); -emit_16(2082); -emit_16(2146); -emit_16(2081); -emit_16(2146); -emit_16(2082); -emit_16(2147); -emit_16(2083); -emit_16(2147); -emit_16(2082); -emit_16(2147); -emit_16(2083); -emit_16(2148); -emit_16(2084); -emit_16(2148); -emit_16(2083); -emit_16(2148); -emit_16(2084); -emit_16(2149); -emit_16(2085); -emit_16(2149); -emit_16(2084); -emit_16(2149); -emit_16(2085); -emit_16(2150); -emit_16(2086); -emit_16(2150); -emit_16(2085); -emit_16(2150); -emit_16(2086); -emit_16(2151); -emit_16(2087); -emit_16(2151); -emit_16(2086); -emit_16(2151); -emit_16(2087); -emit_16(2152); -emit_16(2088); -emit_16(2152); -emit_16(2087); -emit_16(2152); -emit_16(2088); -emit_16(2153); -emit_16(2089); -emit_16(2153); -emit_16(2088); -emit_16(2153); -emit_16(2089); -emit_16(2154); -emit_16(2090); -emit_16(2154); -emit_16(2089); -emit_16(2154); -emit_16(2090); -emit_16(2155); -emit_16(2091); -emit_16(2155); -emit_16(2090); -emit_16(2155); -emit_16(2091); -emit_16(2156); -emit_16(2092); -emit_16(2156); -emit_16(2091); -emit_16(2156); -emit_16(2092); -emit_16(2157); -emit_16(2093); -emit_16(2157); -emit_16(2092); -emit_16(2157); -emit_16(2093); -emit_16(2158); -emit_16(2094); -emit_16(2158); -emit_16(2093); -emit_16(2158); -emit_16(2094); -emit_16(2159); -emit_16(2095); -emit_16(2159); -emit_16(2094); -emit_16(2159); -emit_16(2095); -emit_16(2160); -emit_16(2096); -emit_16(2160); -emit_16(2095); -emit_16(2160); -emit_16(2096); -emit_16(2161); -emit_16(2097); -emit_16(2161); -emit_16(2096); -emit_16(2161); -emit_16(2097); -emit_16(2162); -emit_16(2098); -emit_16(2162); -emit_16(2097); -emit_16(2162); -emit_16(2098); -emit_16(2163); -emit_16(2099); -emit_16(2163); -emit_16(2098); -emit_16(2163); -emit_16(2099); -emit_16(2164); -emit_16(2100); -emit_16(2164); -emit_16(2099); -emit_16(2164); -emit_16(2100); -emit_16(2165); -emit_16(2101); -emit_16(2165); -emit_16(2100); -emit_16(2165); -emit_16(2101); -emit_16(2166); -emit_16(2102); -emit_16(2166); -emit_16(2101); -emit_16(2166); -emit_16(2102); -emit_16(2167); -emit_16(2103); -emit_16(2167); -emit_16(2102); -emit_16(2167); -emit_16(2103); -emit_16(2168); -emit_16(2104); -emit_16(2168); -emit_16(2103); -emit_16(2168); -emit_16(2104); -emit_16(2169); -emit_16(2105); -emit_16(2169); -emit_16(2104); -emit_16(2169); -emit_16(2105); -emit_16(2170); -emit_16(2106); -emit_16(2170); -emit_16(2105); -emit_16(2170); -emit_16(2106); -emit_16(2171); -emit_16(2107); -emit_16(2171); -emit_16(2106); -emit_16(2171); -emit_16(2107); -emit_16(2172); -emit_16(2108); -emit_16(2172); -emit_16(2107); -emit_16(2172); -emit_16(2108); -emit_16(2173); -emit_16(2109); -emit_16(2173); -emit_16(2108); -emit_16(2173); -emit_16(2109); -emit_16(2174); -emit_16(2110); -emit_16(2174); -emit_16(2109); -emit_16(2174); -emit_16(2110); -emit_16(2175); -emit_16(2111); -emit_16(2175); -emit_16(2110); -emit_16(2176); -emit_16(2112); -emit_16(2177); -emit_16(2113); -emit_16(2177); -emit_16(2112); -emit_16(2177); -emit_16(2113); -emit_16(2178); -emit_16(2114); -emit_16(2178); -emit_16(2113); -emit_16(2178); -emit_16(2114); -emit_16(2179); -emit_16(2115); -emit_16(2179); -emit_16(2114); -emit_16(2179); -emit_16(2115); -emit_16(2180); -emit_16(2116); -emit_16(2180); -emit_16(2115); -emit_16(2180); -emit_16(2116); -emit_16(2181); -emit_16(2117); -emit_16(2181); -emit_16(2116); -emit_16(2181); -emit_16(2117); -emit_16(2182); -emit_16(2118); -emit_16(2182); -emit_16(2117); -emit_16(2182); -emit_16(2118); -emit_16(2183); -emit_16(2119); -emit_16(2183); -emit_16(2118); -emit_16(2183); -emit_16(2119); -emit_16(2184); -emit_16(2120); -emit_16(2184); -emit_16(2119); -emit_16(2184); -emit_16(2120); -emit_16(2185); -emit_16(2121); -emit_16(2185); -emit_16(2120); -emit_16(2185); -emit_16(2121); -emit_16(2186); -emit_16(2122); -emit_16(2186); -emit_16(2121); -emit_16(2186); -emit_16(2122); -emit_16(2187); -emit_16(2123); -emit_16(2187); -emit_16(2122); -emit_16(2187); -emit_16(2123); -emit_16(2188); -emit_16(2124); -emit_16(2188); -emit_16(2123); -emit_16(2188); -emit_16(2124); -emit_16(2189); -emit_16(2125); -emit_16(2189); -emit_16(2124); -emit_16(2189); -emit_16(2125); -emit_16(2190); -emit_16(2126); -emit_16(2190); -emit_16(2125); -emit_16(2190); -emit_16(2126); -emit_16(2191); -emit_16(2127); -emit_16(2191); -emit_16(2126); -emit_16(2191); -emit_16(2127); -emit_16(2192); -emit_16(2128); -emit_16(2192); -emit_16(2127); -emit_16(2192); -emit_16(2128); -emit_16(2193); -emit_16(2129); -emit_16(2193); -emit_16(2128); -emit_16(2193); -emit_16(2129); -emit_16(2194); -emit_16(2130); -emit_16(2194); -emit_16(2129); -emit_16(2194); -emit_16(2130); -emit_16(2195); -emit_16(2131); -emit_16(2195); -emit_16(2130); -emit_16(2195); -emit_16(2131); -emit_16(2196); -emit_16(2132); -emit_16(2196); -emit_16(2131); -emit_16(2196); -emit_16(2132); -emit_16(2197); -emit_16(2133); -emit_16(2197); -emit_16(2132); -emit_16(2197); -emit_16(2133); -emit_16(2198); -emit_16(2134); -emit_16(2198); -emit_16(2133); -emit_16(2198); -emit_16(2134); -emit_16(2199); -emit_16(2135); -emit_16(2199); -emit_16(2134); -emit_16(2199); -emit_16(2135); -emit_16(2200); -emit_16(2136); -emit_16(2200); -emit_16(2135); -emit_16(2200); -emit_16(2136); -emit_16(2201); -emit_16(2137); -emit_16(2201); -emit_16(2136); -emit_16(2201); -emit_16(2137); -emit_16(2202); -emit_16(2138); -emit_16(2202); -emit_16(2137); -emit_16(2202); -emit_16(2138); -emit_16(2203); -emit_16(2139); -emit_16(2203); -emit_16(2138); -emit_16(2203); -emit_16(2139); -emit_16(2204); -emit_16(2140); -emit_16(2204); -emit_16(2139); -emit_16(2204); -emit_16(2140); -emit_16(2205); -emit_16(2141); -emit_16(2205); -emit_16(2140); -emit_16(2205); -emit_16(2141); -emit_16(2206); -emit_16(2142); -emit_16(2206); -emit_16(2141); -emit_16(2206); -emit_16(2142); -emit_16(2207); -emit_16(2143); -emit_16(2207); -emit_16(2142); -emit_16(2207); -emit_16(2143); -emit_16(2208); -emit_16(2144); -emit_16(2208); -emit_16(2143); -emit_16(2208); -emit_16(2144); -emit_16(2209); -emit_16(2145); -emit_16(2209); -emit_16(2144); -emit_16(2209); -emit_16(2145); -emit_16(2210); -emit_16(2146); -emit_16(2210); -emit_16(2145); -emit_16(2210); -emit_16(2146); -emit_16(2211); -emit_16(2147); -emit_16(2211); -emit_16(2146); -emit_16(2211); -emit_16(2147); -emit_16(2212); -emit_16(2148); -emit_16(2212); -emit_16(2147); -emit_16(2212); -emit_16(2148); -emit_16(2213); -emit_16(2149); -emit_16(2213); -emit_16(2148); -emit_16(2213); -emit_16(2149); -emit_16(2214); -emit_16(2150); -emit_16(2214); -emit_16(2149); -emit_16(2214); -emit_16(2150); -emit_16(2215); -emit_16(2151); -emit_16(2215); -emit_16(2150); -emit_16(2215); -emit_16(2151); -emit_16(2216); -emit_16(2152); -emit_16(2216); -emit_16(2151); -emit_16(2216); -emit_16(2152); -emit_16(2217); -emit_16(2153); -emit_16(2217); -emit_16(2152); -emit_16(2217); -emit_16(2153); -emit_16(2218); -emit_16(2154); -emit_16(2218); -emit_16(2153); -emit_16(2218); -emit_16(2154); -emit_16(2219); -emit_16(2155); -emit_16(2219); -emit_16(2154); -emit_16(2219); -emit_16(2155); -emit_16(2220); -emit_16(2156); -emit_16(2220); -emit_16(2155); -emit_16(2220); -emit_16(2156); -emit_16(2221); -emit_16(2157); -emit_16(2221); -emit_16(2156); -emit_16(2221); -emit_16(2157); -emit_16(2222); -emit_16(2158); -emit_16(2222); -emit_16(2157); -emit_16(2222); -emit_16(2158); -emit_16(2223); -emit_16(2159); -emit_16(2223); -emit_16(2158); -emit_16(2223); -emit_16(2159); -emit_16(2224); -emit_16(2160); -emit_16(2224); -emit_16(2159); -emit_16(2224); -emit_16(2160); -emit_16(2225); -emit_16(2161); -emit_16(2225); -emit_16(2160); -emit_16(2225); -emit_16(2161); -emit_16(2226); -emit_16(2162); -emit_16(2226); -emit_16(2161); -emit_16(2226); -emit_16(2162); -emit_16(2227); -emit_16(2163); -emit_16(2227); -emit_16(2162); -emit_16(2227); -emit_16(2163); -emit_16(2228); -emit_16(2164); -emit_16(2228); -emit_16(2163); -emit_16(2228); -emit_16(2164); -emit_16(2229); -emit_16(2165); -emit_16(2229); -emit_16(2164); -emit_16(2229); -emit_16(2165); -emit_16(2230); -emit_16(2166); -emit_16(2230); -emit_16(2165); -emit_16(2230); -emit_16(2166); -emit_16(2231); -emit_16(2167); -emit_16(2231); -emit_16(2166); -emit_16(2231); -emit_16(2167); -emit_16(2232); -emit_16(2168); -emit_16(2232); -emit_16(2167); -emit_16(2232); -emit_16(2168); -emit_16(2233); -emit_16(2169); -emit_16(2233); -emit_16(2168); -emit_16(2233); -emit_16(2169); -emit_16(2234); -emit_16(2170); -emit_16(2234); -emit_16(2169); -emit_16(2234); -emit_16(2170); -emit_16(2235); -emit_16(2171); -emit_16(2235); -emit_16(2170); -emit_16(2235); -emit_16(2171); -emit_16(2236); -emit_16(2172); -emit_16(2236); -emit_16(2171); -emit_16(2236); -emit_16(2172); -emit_16(2237); -emit_16(2173); -emit_16(2237); -emit_16(2172); -emit_16(2237); -emit_16(2173); -emit_16(2238); -emit_16(2174); -emit_16(2238); -emit_16(2173); -emit_16(2238); -emit_16(2174); -emit_16(2239); -emit_16(2175); -emit_16(2239); -emit_16(2174); -emit_start(Landscape08Idx) -emit_16(0); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(2); -emit_16(1); -emit_16(2); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(4); -emit_16(3); -emit_16(4); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(6); -emit_16(5); -emit_16(6); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(8); -emit_16(7); -emit_16(8); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(10); -emit_16(9); -emit_16(10); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(12); -emit_16(11); -emit_16(12); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(14); -emit_16(13); -emit_16(14); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(16); -emit_16(15); -emit_16(16); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(18); -emit_16(17); -emit_16(18); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(20); -emit_16(19); -emit_16(20); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(22); -emit_16(21); -emit_16(22); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(24); -emit_16(23); -emit_16(24); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(26); -emit_16(25); -emit_16(26); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(28); -emit_16(27); -emit_16(28); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(30); -emit_16(29); -emit_16(30); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(32); -emit_16(31); -emit_16(32); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(34); -emit_16(33); -emit_16(34); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(36); -emit_16(35); -emit_16(36); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(38); -emit_16(37); -emit_16(38); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(40); -emit_16(39); -emit_16(40); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(42); -emit_16(41); -emit_16(42); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(44); -emit_16(43); -emit_16(44); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(46); -emit_16(45); -emit_16(46); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(48); -emit_16(47); -emit_16(48); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(50); -emit_16(49); -emit_16(50); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(52); -emit_16(51); -emit_16(52); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(54); -emit_16(53); -emit_16(54); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(56); -emit_16(55); -emit_16(56); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(58); -emit_16(57); -emit_16(58); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(60); -emit_16(59); -emit_16(60); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(62); -emit_16(61); -emit_16(62); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(64); -emit_16(63); -emit_16(64); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(66); -emit_16(65); -emit_16(66); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(68); -emit_16(67); -emit_16(68); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(70); -emit_16(69); -emit_16(70); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(72); -emit_16(71); -emit_16(72); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(74); -emit_16(73); -emit_16(74); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(76); -emit_16(75); -emit_16(76); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(78); -emit_16(77); -emit_16(78); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(80); -emit_16(79); -emit_16(80); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(82); -emit_16(81); -emit_16(82); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(84); -emit_16(83); -emit_16(84); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(86); -emit_16(85); -emit_16(86); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(88); -emit_16(87); -emit_16(88); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(90); -emit_16(89); -emit_16(90); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(92); -emit_16(91); -emit_16(92); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(94); -emit_16(93); -emit_16(94); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(96); -emit_16(95); -emit_16(96); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(98); -emit_16(97); -emit_16(98); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(100); -emit_16(99); -emit_16(100); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(102); -emit_16(101); -emit_16(102); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(104); -emit_16(103); -emit_16(104); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(106); -emit_16(105); -emit_16(106); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(108); -emit_16(107); -emit_16(108); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(110); -emit_16(109); -emit_16(110); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(112); -emit_16(111); -emit_16(112); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(114); -emit_16(113); -emit_16(114); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(116); -emit_16(115); -emit_16(116); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(118); -emit_16(117); -emit_16(118); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(120); -emit_16(119); -emit_16(120); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(122); -emit_16(121); -emit_16(122); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(124); -emit_16(123); -emit_16(124); -emit_16(125); -emit_16(126); -emit_16(127); -emit_16(126); -emit_16(125); -emit_16(126); -emit_16(127); -emit_16(128); -emit_16(129); -emit_16(128); -emit_16(127); -emit_16(128); -emit_16(129); -emit_16(130); -emit_16(131); -emit_16(130); -emit_16(129); -emit_16(132); -emit_16(0); -emit_16(133); -emit_16(2); -emit_16(133); -emit_16(0); -emit_16(133); -emit_16(2); -emit_16(134); -emit_16(4); -emit_16(134); -emit_16(2); -emit_16(134); -emit_16(4); -emit_16(135); -emit_16(6); -emit_16(135); -emit_16(4); -emit_16(135); -emit_16(6); -emit_16(136); -emit_16(8); -emit_16(136); -emit_16(6); -emit_16(136); -emit_16(8); -emit_16(137); -emit_16(10); -emit_16(137); -emit_16(8); -emit_16(137); -emit_16(10); -emit_16(138); -emit_16(12); -emit_16(138); -emit_16(10); -emit_16(138); -emit_16(12); -emit_16(139); -emit_16(14); -emit_16(139); -emit_16(12); -emit_16(139); -emit_16(14); -emit_16(140); -emit_16(16); -emit_16(140); -emit_16(14); -emit_16(140); -emit_16(16); -emit_16(141); -emit_16(18); -emit_16(141); -emit_16(16); -emit_16(141); -emit_16(18); -emit_16(142); -emit_16(20); -emit_16(142); -emit_16(18); -emit_16(142); -emit_16(20); -emit_16(143); -emit_16(22); -emit_16(143); -emit_16(20); -emit_16(143); -emit_16(22); -emit_16(144); -emit_16(24); -emit_16(144); -emit_16(22); -emit_16(144); -emit_16(24); -emit_16(145); -emit_16(26); -emit_16(145); -emit_16(24); -emit_16(145); -emit_16(26); -emit_16(146); -emit_16(28); -emit_16(146); -emit_16(26); -emit_16(146); -emit_16(28); -emit_16(147); -emit_16(30); -emit_16(147); -emit_16(28); -emit_16(147); -emit_16(30); -emit_16(148); -emit_16(32); -emit_16(148); -emit_16(30); -emit_16(148); -emit_16(32); -emit_16(149); -emit_16(34); -emit_16(149); -emit_16(32); -emit_16(149); -emit_16(34); -emit_16(150); -emit_16(36); -emit_16(150); -emit_16(34); -emit_16(150); -emit_16(36); -emit_16(151); -emit_16(38); -emit_16(151); -emit_16(36); -emit_16(151); -emit_16(38); -emit_16(152); -emit_16(40); -emit_16(152); -emit_16(38); -emit_16(152); -emit_16(40); -emit_16(153); -emit_16(42); -emit_16(153); -emit_16(40); -emit_16(153); -emit_16(42); -emit_16(154); -emit_16(44); -emit_16(154); -emit_16(42); -emit_16(154); -emit_16(44); -emit_16(155); -emit_16(46); -emit_16(155); -emit_16(44); -emit_16(155); -emit_16(46); -emit_16(156); -emit_16(48); -emit_16(156); -emit_16(46); -emit_16(156); -emit_16(48); -emit_16(157); -emit_16(50); -emit_16(157); -emit_16(48); -emit_16(157); -emit_16(50); -emit_16(158); -emit_16(52); -emit_16(158); -emit_16(50); -emit_16(158); -emit_16(52); -emit_16(159); -emit_16(54); -emit_16(159); -emit_16(52); -emit_16(159); -emit_16(54); -emit_16(160); -emit_16(56); -emit_16(160); -emit_16(54); -emit_16(160); -emit_16(56); -emit_16(161); -emit_16(58); -emit_16(161); -emit_16(56); -emit_16(161); -emit_16(58); -emit_16(162); -emit_16(60); -emit_16(162); -emit_16(58); -emit_16(162); -emit_16(60); -emit_16(163); -emit_16(62); -emit_16(163); -emit_16(60); -emit_16(163); -emit_16(62); -emit_16(164); -emit_16(64); -emit_16(164); -emit_16(62); -emit_16(164); -emit_16(64); -emit_16(165); -emit_16(66); -emit_16(165); -emit_16(64); -emit_16(165); -emit_16(66); -emit_16(166); -emit_16(68); -emit_16(166); -emit_16(66); -emit_16(166); -emit_16(68); -emit_16(167); -emit_16(70); -emit_16(167); -emit_16(68); -emit_16(167); -emit_16(70); -emit_16(168); -emit_16(72); -emit_16(168); -emit_16(70); -emit_16(168); -emit_16(72); -emit_16(169); -emit_16(74); -emit_16(169); -emit_16(72); -emit_16(169); -emit_16(74); -emit_16(170); -emit_16(76); -emit_16(170); -emit_16(74); -emit_16(170); -emit_16(76); -emit_16(171); -emit_16(78); -emit_16(171); -emit_16(76); -emit_16(171); -emit_16(78); -emit_16(172); -emit_16(80); -emit_16(172); -emit_16(78); -emit_16(172); -emit_16(80); -emit_16(173); -emit_16(82); -emit_16(173); -emit_16(80); -emit_16(173); -emit_16(82); -emit_16(174); -emit_16(84); -emit_16(174); -emit_16(82); -emit_16(174); -emit_16(84); -emit_16(175); -emit_16(86); -emit_16(175); -emit_16(84); -emit_16(175); -emit_16(86); -emit_16(176); -emit_16(88); -emit_16(176); -emit_16(86); -emit_16(176); -emit_16(88); -emit_16(177); -emit_16(90); -emit_16(177); -emit_16(88); -emit_16(177); -emit_16(90); -emit_16(178); -emit_16(92); -emit_16(178); -emit_16(90); -emit_16(178); -emit_16(92); -emit_16(179); -emit_16(94); -emit_16(179); -emit_16(92); -emit_16(179); -emit_16(94); -emit_16(180); -emit_16(96); -emit_16(180); -emit_16(94); -emit_16(180); -emit_16(96); -emit_16(181); -emit_16(98); -emit_16(181); -emit_16(96); -emit_16(181); -emit_16(98); -emit_16(182); -emit_16(100); -emit_16(182); -emit_16(98); -emit_16(182); -emit_16(100); -emit_16(183); -emit_16(102); -emit_16(183); -emit_16(100); -emit_16(183); -emit_16(102); -emit_16(184); -emit_16(104); -emit_16(184); -emit_16(102); -emit_16(184); -emit_16(104); -emit_16(185); -emit_16(106); -emit_16(185); -emit_16(104); -emit_16(185); -emit_16(106); -emit_16(186); -emit_16(108); -emit_16(186); -emit_16(106); -emit_16(186); -emit_16(108); -emit_16(187); -emit_16(110); -emit_16(187); -emit_16(108); -emit_16(187); -emit_16(110); -emit_16(188); -emit_16(112); -emit_16(188); -emit_16(110); -emit_16(188); -emit_16(112); -emit_16(189); -emit_16(114); -emit_16(189); -emit_16(112); -emit_16(189); -emit_16(114); -emit_16(190); -emit_16(116); -emit_16(190); -emit_16(114); -emit_16(190); -emit_16(116); -emit_16(191); -emit_16(118); -emit_16(191); -emit_16(116); -emit_16(191); -emit_16(118); -emit_16(192); -emit_16(120); -emit_16(192); -emit_16(118); -emit_16(192); -emit_16(120); -emit_16(193); -emit_16(122); -emit_16(193); -emit_16(120); -emit_16(193); -emit_16(122); -emit_16(194); -emit_16(124); -emit_16(194); -emit_16(122); -emit_16(194); -emit_16(124); -emit_16(195); -emit_16(126); -emit_16(195); -emit_16(124); -emit_16(195); -emit_16(126); -emit_16(196); -emit_16(128); -emit_16(196); -emit_16(126); -emit_16(196); -emit_16(128); -emit_16(197); -emit_16(130); -emit_16(197); -emit_16(128); -emit_16(198); -emit_16(132); -emit_16(199); -emit_16(133); -emit_16(199); -emit_16(132); -emit_16(199); -emit_16(133); -emit_16(200); -emit_16(134); -emit_16(200); -emit_16(133); -emit_16(200); -emit_16(134); -emit_16(201); -emit_16(135); -emit_16(201); -emit_16(134); -emit_16(201); -emit_16(135); -emit_16(202); -emit_16(136); -emit_16(202); -emit_16(135); -emit_16(202); -emit_16(136); -emit_16(203); -emit_16(137); -emit_16(203); -emit_16(136); -emit_16(203); -emit_16(137); -emit_16(204); -emit_16(138); -emit_16(204); -emit_16(137); -emit_16(204); -emit_16(138); -emit_16(205); -emit_16(139); -emit_16(205); -emit_16(138); -emit_16(205); -emit_16(139); -emit_16(206); -emit_16(140); -emit_16(206); -emit_16(139); -emit_16(206); -emit_16(140); -emit_16(207); -emit_16(141); -emit_16(207); -emit_16(140); -emit_16(207); -emit_16(141); -emit_16(208); -emit_16(142); -emit_16(208); -emit_16(141); -emit_16(208); -emit_16(142); -emit_16(209); -emit_16(143); -emit_16(209); -emit_16(142); -emit_16(209); -emit_16(143); -emit_16(210); -emit_16(144); -emit_16(210); -emit_16(143); -emit_16(210); -emit_16(144); -emit_16(211); -emit_16(145); -emit_16(211); -emit_16(144); -emit_16(211); -emit_16(145); -emit_16(212); -emit_16(146); -emit_16(212); -emit_16(145); -emit_16(212); -emit_16(146); -emit_16(213); -emit_16(147); -emit_16(213); -emit_16(146); -emit_16(213); -emit_16(147); -emit_16(214); -emit_16(148); -emit_16(214); -emit_16(147); -emit_16(214); -emit_16(148); -emit_16(215); -emit_16(149); -emit_16(215); -emit_16(148); -emit_16(215); -emit_16(149); -emit_16(216); -emit_16(150); -emit_16(216); -emit_16(149); -emit_16(216); -emit_16(150); -emit_16(217); -emit_16(151); -emit_16(217); -emit_16(150); -emit_16(217); -emit_16(151); -emit_16(218); -emit_16(152); -emit_16(218); -emit_16(151); -emit_16(218); -emit_16(152); -emit_16(219); -emit_16(153); -emit_16(219); -emit_16(152); -emit_16(219); -emit_16(153); -emit_16(220); -emit_16(154); -emit_16(220); -emit_16(153); -emit_16(220); -emit_16(154); -emit_16(221); -emit_16(155); -emit_16(221); -emit_16(154); -emit_16(221); -emit_16(155); -emit_16(222); -emit_16(156); -emit_16(222); -emit_16(155); -emit_16(222); -emit_16(156); -emit_16(223); -emit_16(157); -emit_16(223); -emit_16(156); -emit_16(223); -emit_16(157); -emit_16(224); -emit_16(158); -emit_16(224); -emit_16(157); -emit_16(224); -emit_16(158); -emit_16(225); -emit_16(159); -emit_16(225); -emit_16(158); -emit_16(225); -emit_16(159); -emit_16(226); -emit_16(160); -emit_16(226); -emit_16(159); -emit_16(226); -emit_16(160); -emit_16(227); -emit_16(161); -emit_16(227); -emit_16(160); -emit_16(227); -emit_16(161); -emit_16(228); -emit_16(162); -emit_16(228); -emit_16(161); -emit_16(228); -emit_16(162); -emit_16(229); -emit_16(163); -emit_16(229); -emit_16(162); -emit_16(229); -emit_16(163); -emit_16(230); -emit_16(164); -emit_16(230); -emit_16(163); -emit_16(230); -emit_16(164); -emit_16(231); -emit_16(165); -emit_16(231); -emit_16(164); -emit_16(231); -emit_16(165); -emit_16(232); -emit_16(166); -emit_16(232); -emit_16(165); -emit_16(232); -emit_16(166); -emit_16(233); -emit_16(167); -emit_16(233); -emit_16(166); -emit_16(233); -emit_16(167); -emit_16(234); -emit_16(168); -emit_16(234); -emit_16(167); -emit_16(234); -emit_16(168); -emit_16(235); -emit_16(169); -emit_16(235); -emit_16(168); -emit_16(235); -emit_16(169); -emit_16(236); -emit_16(170); -emit_16(236); -emit_16(169); -emit_16(236); -emit_16(170); -emit_16(237); -emit_16(171); -emit_16(237); -emit_16(170); -emit_16(237); -emit_16(171); -emit_16(238); -emit_16(172); -emit_16(238); -emit_16(171); -emit_16(238); -emit_16(172); -emit_16(239); -emit_16(173); -emit_16(239); -emit_16(172); -emit_16(239); -emit_16(173); -emit_16(240); -emit_16(174); -emit_16(240); -emit_16(173); -emit_16(240); -emit_16(174); -emit_16(241); -emit_16(175); -emit_16(241); -emit_16(174); -emit_16(241); -emit_16(175); -emit_16(242); -emit_16(176); -emit_16(242); -emit_16(175); -emit_16(242); -emit_16(176); -emit_16(243); -emit_16(177); -emit_16(243); -emit_16(176); -emit_16(243); -emit_16(177); -emit_16(244); -emit_16(178); -emit_16(244); -emit_16(177); -emit_16(244); -emit_16(178); -emit_16(245); -emit_16(179); -emit_16(245); -emit_16(178); -emit_16(245); -emit_16(179); -emit_16(246); -emit_16(180); -emit_16(246); -emit_16(179); -emit_16(246); -emit_16(180); -emit_16(247); -emit_16(181); -emit_16(247); -emit_16(180); -emit_16(247); -emit_16(181); -emit_16(248); -emit_16(182); -emit_16(248); -emit_16(181); -emit_16(248); -emit_16(182); -emit_16(249); -emit_16(183); -emit_16(249); -emit_16(182); -emit_16(249); -emit_16(183); -emit_16(250); -emit_16(184); -emit_16(250); -emit_16(183); -emit_16(250); -emit_16(184); -emit_16(251); -emit_16(185); -emit_16(251); -emit_16(184); -emit_16(251); -emit_16(185); -emit_16(252); -emit_16(186); -emit_16(252); -emit_16(185); -emit_16(252); -emit_16(186); -emit_16(253); -emit_16(187); -emit_16(253); -emit_16(186); -emit_16(253); -emit_16(187); -emit_16(254); -emit_16(188); -emit_16(254); -emit_16(187); -emit_16(254); -emit_16(188); -emit_16(255); -emit_16(189); -emit_16(255); -emit_16(188); -emit_16(255); -emit_16(189); -emit_16(256); -emit_16(190); -emit_16(256); -emit_16(189); -emit_16(256); -emit_16(190); -emit_16(257); -emit_16(191); -emit_16(257); -emit_16(190); -emit_16(257); -emit_16(191); -emit_16(258); -emit_16(192); -emit_16(258); -emit_16(191); -emit_16(258); -emit_16(192); -emit_16(259); -emit_16(193); -emit_16(259); -emit_16(192); -emit_16(259); -emit_16(193); -emit_16(260); -emit_16(194); -emit_16(260); -emit_16(193); -emit_16(260); -emit_16(194); -emit_16(261); -emit_16(195); -emit_16(261); -emit_16(194); -emit_16(261); -emit_16(195); -emit_16(262); -emit_16(196); -emit_16(262); -emit_16(195); -emit_16(262); -emit_16(196); -emit_16(263); -emit_16(197); -emit_16(263); -emit_16(196); -emit_16(264); -emit_16(198); -emit_16(265); -emit_16(199); -emit_16(265); -emit_16(198); -emit_16(265); -emit_16(199); -emit_16(266); -emit_16(200); -emit_16(266); -emit_16(199); -emit_16(266); -emit_16(200); -emit_16(267); -emit_16(201); -emit_16(267); -emit_16(200); -emit_16(267); -emit_16(201); -emit_16(268); -emit_16(202); -emit_16(268); -emit_16(201); -emit_16(268); -emit_16(202); -emit_16(269); -emit_16(203); -emit_16(269); -emit_16(202); -emit_16(269); -emit_16(203); -emit_16(270); -emit_16(204); -emit_16(270); -emit_16(203); -emit_16(270); -emit_16(204); -emit_16(271); -emit_16(205); -emit_16(271); -emit_16(204); -emit_16(271); -emit_16(205); -emit_16(272); -emit_16(206); -emit_16(272); -emit_16(205); -emit_16(272); -emit_16(206); -emit_16(273); -emit_16(207); -emit_16(273); -emit_16(206); -emit_16(273); -emit_16(207); -emit_16(274); -emit_16(208); -emit_16(274); -emit_16(207); -emit_16(274); -emit_16(208); -emit_16(275); -emit_16(209); -emit_16(275); -emit_16(208); -emit_16(275); -emit_16(209); -emit_16(276); -emit_16(210); -emit_16(276); -emit_16(209); -emit_16(276); -emit_16(210); -emit_16(277); -emit_16(211); -emit_16(277); -emit_16(210); -emit_16(277); -emit_16(211); -emit_16(278); -emit_16(212); -emit_16(278); -emit_16(211); -emit_16(278); -emit_16(212); -emit_16(279); -emit_16(213); -emit_16(279); -emit_16(212); -emit_16(279); -emit_16(213); -emit_16(280); -emit_16(214); -emit_16(280); -emit_16(213); -emit_16(280); -emit_16(214); -emit_16(281); -emit_16(215); -emit_16(281); -emit_16(214); -emit_16(281); -emit_16(215); -emit_16(282); -emit_16(216); -emit_16(282); -emit_16(215); -emit_16(282); -emit_16(216); -emit_16(283); -emit_16(217); -emit_16(283); -emit_16(216); -emit_16(283); -emit_16(217); -emit_16(284); -emit_16(218); -emit_16(284); -emit_16(217); -emit_16(284); -emit_16(218); -emit_16(285); -emit_16(219); -emit_16(285); -emit_16(218); -emit_16(285); -emit_16(219); -emit_16(286); -emit_16(220); -emit_16(286); -emit_16(219); -emit_16(286); -emit_16(220); -emit_16(287); -emit_16(221); -emit_16(287); -emit_16(220); -emit_16(287); -emit_16(221); -emit_16(288); -emit_16(222); -emit_16(288); -emit_16(221); -emit_16(288); -emit_16(222); -emit_16(289); -emit_16(223); -emit_16(289); -emit_16(222); -emit_16(289); -emit_16(223); -emit_16(290); -emit_16(224); -emit_16(290); -emit_16(223); -emit_16(290); -emit_16(224); -emit_16(291); -emit_16(225); -emit_16(291); -emit_16(224); -emit_16(291); -emit_16(225); -emit_16(292); -emit_16(226); -emit_16(292); -emit_16(225); -emit_16(292); -emit_16(226); -emit_16(293); -emit_16(227); -emit_16(293); -emit_16(226); -emit_16(293); -emit_16(227); -emit_16(294); -emit_16(228); -emit_16(294); -emit_16(227); -emit_16(294); -emit_16(228); -emit_16(295); -emit_16(229); -emit_16(295); -emit_16(228); -emit_16(295); -emit_16(229); -emit_16(296); -emit_16(230); -emit_16(296); -emit_16(229); -emit_16(296); -emit_16(230); -emit_16(297); -emit_16(231); -emit_16(297); -emit_16(230); -emit_16(297); -emit_16(231); -emit_16(298); -emit_16(232); -emit_16(298); -emit_16(231); -emit_16(298); -emit_16(232); -emit_16(299); -emit_16(233); -emit_16(299); -emit_16(232); -emit_16(299); -emit_16(233); -emit_16(300); -emit_16(234); -emit_16(300); -emit_16(233); -emit_16(300); -emit_16(234); -emit_16(301); -emit_16(235); -emit_16(301); -emit_16(234); -emit_16(301); -emit_16(235); -emit_16(302); -emit_16(236); -emit_16(302); -emit_16(235); -emit_16(302); -emit_16(236); -emit_16(303); -emit_16(237); -emit_16(303); -emit_16(236); -emit_16(303); -emit_16(237); -emit_16(304); -emit_16(238); -emit_16(304); -emit_16(237); -emit_16(304); -emit_16(238); -emit_16(305); -emit_16(239); -emit_16(305); -emit_16(238); -emit_16(305); -emit_16(239); -emit_16(306); -emit_16(240); -emit_16(306); -emit_16(239); -emit_16(306); -emit_16(240); -emit_16(307); -emit_16(241); -emit_16(307); -emit_16(240); -emit_16(307); -emit_16(241); -emit_16(308); -emit_16(242); -emit_16(308); -emit_16(241); -emit_16(308); -emit_16(242); -emit_16(309); -emit_16(243); -emit_16(309); -emit_16(242); -emit_16(309); -emit_16(243); -emit_16(310); -emit_16(244); -emit_16(310); -emit_16(243); -emit_16(310); -emit_16(244); -emit_16(311); -emit_16(245); -emit_16(311); -emit_16(244); -emit_16(311); -emit_16(245); -emit_16(312); -emit_16(246); -emit_16(312); -emit_16(245); -emit_16(312); -emit_16(246); -emit_16(313); -emit_16(247); -emit_16(313); -emit_16(246); -emit_16(313); -emit_16(247); -emit_16(314); -emit_16(248); -emit_16(314); -emit_16(247); -emit_16(314); -emit_16(248); -emit_16(315); -emit_16(249); -emit_16(315); -emit_16(248); -emit_16(315); -emit_16(249); -emit_16(316); -emit_16(250); -emit_16(316); -emit_16(249); -emit_16(316); -emit_16(250); -emit_16(317); -emit_16(251); -emit_16(317); -emit_16(250); -emit_16(317); -emit_16(251); -emit_16(318); -emit_16(252); -emit_16(318); -emit_16(251); -emit_16(318); -emit_16(252); -emit_16(319); -emit_16(253); -emit_16(319); -emit_16(252); -emit_16(319); -emit_16(253); -emit_16(320); -emit_16(254); -emit_16(320); -emit_16(253); -emit_16(320); -emit_16(254); -emit_16(321); -emit_16(255); -emit_16(321); -emit_16(254); -emit_16(321); -emit_16(255); -emit_16(322); -emit_16(256); -emit_16(322); -emit_16(255); -emit_16(322); -emit_16(256); -emit_16(323); -emit_16(257); -emit_16(323); -emit_16(256); -emit_16(323); -emit_16(257); -emit_16(324); -emit_16(258); -emit_16(324); -emit_16(257); -emit_16(324); -emit_16(258); -emit_16(325); -emit_16(259); -emit_16(325); -emit_16(258); -emit_16(325); -emit_16(259); -emit_16(326); -emit_16(260); -emit_16(326); -emit_16(259); -emit_16(326); -emit_16(260); -emit_16(327); -emit_16(261); -emit_16(327); -emit_16(260); -emit_16(327); -emit_16(261); -emit_16(328); -emit_16(262); -emit_16(328); -emit_16(261); -emit_16(328); -emit_16(262); -emit_16(329); -emit_16(263); -emit_16(329); -emit_16(262); -emit_16(330); -emit_16(264); -emit_16(331); -emit_16(265); -emit_16(331); -emit_16(264); -emit_16(331); -emit_16(265); -emit_16(332); -emit_16(266); -emit_16(332); -emit_16(265); -emit_16(332); -emit_16(266); -emit_16(333); -emit_16(267); -emit_16(333); -emit_16(266); -emit_16(333); -emit_16(267); -emit_16(334); -emit_16(268); -emit_16(334); -emit_16(267); -emit_16(334); -emit_16(268); -emit_16(335); -emit_16(269); -emit_16(335); -emit_16(268); -emit_16(335); -emit_16(269); -emit_16(336); -emit_16(270); -emit_16(336); -emit_16(269); -emit_16(336); -emit_16(270); -emit_16(337); -emit_16(271); -emit_16(337); -emit_16(270); -emit_16(337); -emit_16(271); -emit_16(338); -emit_16(272); -emit_16(338); -emit_16(271); -emit_16(338); -emit_16(272); -emit_16(339); -emit_16(273); -emit_16(339); -emit_16(272); -emit_16(339); -emit_16(273); -emit_16(340); -emit_16(274); -emit_16(340); -emit_16(273); -emit_16(340); -emit_16(274); -emit_16(341); -emit_16(275); -emit_16(341); -emit_16(274); -emit_16(341); -emit_16(275); -emit_16(342); -emit_16(276); -emit_16(342); -emit_16(275); -emit_16(342); -emit_16(276); -emit_16(343); -emit_16(277); -emit_16(343); -emit_16(276); -emit_16(343); -emit_16(277); -emit_16(344); -emit_16(278); -emit_16(344); -emit_16(277); -emit_16(344); -emit_16(278); -emit_16(345); -emit_16(279); -emit_16(345); -emit_16(278); -emit_16(345); -emit_16(279); -emit_16(346); -emit_16(280); -emit_16(346); -emit_16(279); -emit_16(346); -emit_16(280); -emit_16(347); -emit_16(281); -emit_16(347); -emit_16(280); -emit_16(347); -emit_16(281); -emit_16(348); -emit_16(282); -emit_16(348); -emit_16(281); -emit_16(348); -emit_16(282); -emit_16(349); -emit_16(283); -emit_16(349); -emit_16(282); -emit_16(349); -emit_16(283); -emit_16(350); -emit_16(284); -emit_16(350); -emit_16(283); -emit_16(350); -emit_16(284); -emit_16(351); -emit_16(285); -emit_16(351); -emit_16(284); -emit_16(351); -emit_16(285); -emit_16(352); -emit_16(286); -emit_16(352); -emit_16(285); -emit_16(352); -emit_16(286); -emit_16(353); -emit_16(287); -emit_16(353); -emit_16(286); -emit_16(353); -emit_16(287); -emit_16(354); -emit_16(288); -emit_16(354); -emit_16(287); -emit_16(354); -emit_16(288); -emit_16(355); -emit_16(289); -emit_16(355); -emit_16(288); -emit_16(355); -emit_16(289); -emit_16(356); -emit_16(290); -emit_16(356); -emit_16(289); -emit_16(356); -emit_16(290); -emit_16(357); -emit_16(291); -emit_16(357); -emit_16(290); -emit_16(357); -emit_16(291); -emit_16(358); -emit_16(292); -emit_16(358); -emit_16(291); -emit_16(358); -emit_16(292); -emit_16(359); -emit_16(293); -emit_16(359); -emit_16(292); -emit_16(359); -emit_16(293); -emit_16(360); -emit_16(294); -emit_16(360); -emit_16(293); -emit_16(360); -emit_16(294); -emit_16(361); -emit_16(295); -emit_16(361); -emit_16(294); -emit_16(361); -emit_16(295); -emit_16(362); -emit_16(296); -emit_16(362); -emit_16(295); -emit_16(362); -emit_16(296); -emit_16(363); -emit_16(297); -emit_16(363); -emit_16(296); -emit_16(363); -emit_16(297); -emit_16(364); -emit_16(298); -emit_16(364); -emit_16(297); -emit_16(364); -emit_16(298); -emit_16(365); -emit_16(299); -emit_16(365); -emit_16(298); -emit_16(365); -emit_16(299); -emit_16(366); -emit_16(300); -emit_16(366); -emit_16(299); -emit_16(366); -emit_16(300); -emit_16(367); -emit_16(301); -emit_16(367); -emit_16(300); -emit_16(367); -emit_16(301); -emit_16(368); -emit_16(302); -emit_16(368); -emit_16(301); -emit_16(368); -emit_16(302); -emit_16(369); -emit_16(303); -emit_16(369); -emit_16(302); -emit_16(369); -emit_16(303); -emit_16(370); -emit_16(304); -emit_16(370); -emit_16(303); -emit_16(370); -emit_16(304); -emit_16(371); -emit_16(305); -emit_16(371); -emit_16(304); -emit_16(371); -emit_16(305); -emit_16(372); -emit_16(306); -emit_16(372); -emit_16(305); -emit_16(372); -emit_16(306); -emit_16(373); -emit_16(307); -emit_16(373); -emit_16(306); -emit_16(373); -emit_16(307); -emit_16(374); -emit_16(308); -emit_16(374); -emit_16(307); -emit_16(374); -emit_16(308); -emit_16(375); -emit_16(309); -emit_16(375); -emit_16(308); -emit_16(375); -emit_16(309); -emit_16(376); -emit_16(310); -emit_16(376); -emit_16(309); -emit_16(376); -emit_16(310); -emit_16(377); -emit_16(311); -emit_16(377); -emit_16(310); -emit_16(377); -emit_16(311); -emit_16(378); -emit_16(312); -emit_16(378); -emit_16(311); -emit_16(378); -emit_16(312); -emit_16(379); -emit_16(313); -emit_16(379); -emit_16(312); -emit_16(379); -emit_16(313); -emit_16(380); -emit_16(314); -emit_16(380); -emit_16(313); -emit_16(380); -emit_16(314); -emit_16(381); -emit_16(315); -emit_16(381); -emit_16(314); -emit_16(381); -emit_16(315); -emit_16(382); -emit_16(316); -emit_16(382); -emit_16(315); -emit_16(382); -emit_16(316); -emit_16(383); -emit_16(317); -emit_16(383); -emit_16(316); -emit_16(383); -emit_16(317); -emit_16(384); -emit_16(318); -emit_16(384); -emit_16(317); -emit_16(384); -emit_16(318); -emit_16(385); -emit_16(319); -emit_16(385); -emit_16(318); -emit_16(385); -emit_16(319); -emit_16(386); -emit_16(320); -emit_16(386); -emit_16(319); -emit_16(386); -emit_16(320); -emit_16(387); -emit_16(321); -emit_16(387); -emit_16(320); -emit_16(387); -emit_16(321); -emit_16(388); -emit_16(322); -emit_16(388); -emit_16(321); -emit_16(388); -emit_16(322); -emit_16(389); -emit_16(323); -emit_16(389); -emit_16(322); -emit_16(389); -emit_16(323); -emit_16(390); -emit_16(324); -emit_16(390); -emit_16(323); -emit_16(390); -emit_16(324); -emit_16(391); -emit_16(325); -emit_16(391); -emit_16(324); -emit_16(391); -emit_16(325); -emit_16(392); -emit_16(326); -emit_16(392); -emit_16(325); -emit_16(392); -emit_16(326); -emit_16(393); -emit_16(327); -emit_16(393); -emit_16(326); -emit_16(393); -emit_16(327); -emit_16(394); -emit_16(328); -emit_16(394); -emit_16(327); -emit_16(394); -emit_16(328); -emit_16(395); -emit_16(329); -emit_16(395); -emit_16(328); -emit_16(396); -emit_16(330); -emit_16(397); -emit_16(331); -emit_16(397); -emit_16(330); -emit_16(397); -emit_16(331); -emit_16(398); -emit_16(332); -emit_16(398); -emit_16(331); -emit_16(398); -emit_16(332); -emit_16(399); -emit_16(333); -emit_16(399); -emit_16(332); -emit_16(399); -emit_16(333); -emit_16(400); -emit_16(334); -emit_16(400); -emit_16(333); -emit_16(400); -emit_16(334); -emit_16(401); -emit_16(335); -emit_16(401); -emit_16(334); -emit_16(401); -emit_16(335); -emit_16(402); -emit_16(336); -emit_16(402); -emit_16(335); -emit_16(402); -emit_16(336); -emit_16(403); -emit_16(337); -emit_16(403); -emit_16(336); -emit_16(403); -emit_16(337); -emit_16(404); -emit_16(338); -emit_16(404); -emit_16(337); -emit_16(404); -emit_16(338); -emit_16(405); -emit_16(339); -emit_16(405); -emit_16(338); -emit_16(405); -emit_16(339); -emit_16(406); -emit_16(340); -emit_16(406); -emit_16(339); -emit_16(406); -emit_16(340); -emit_16(407); -emit_16(341); -emit_16(407); -emit_16(340); -emit_16(407); -emit_16(341); -emit_16(408); -emit_16(342); -emit_16(408); -emit_16(341); -emit_16(408); -emit_16(342); -emit_16(409); -emit_16(343); -emit_16(409); -emit_16(342); -emit_16(409); -emit_16(343); -emit_16(410); -emit_16(344); -emit_16(410); -emit_16(343); -emit_16(410); -emit_16(344); -emit_16(411); -emit_16(345); -emit_16(411); -emit_16(344); -emit_16(411); -emit_16(345); -emit_16(412); -emit_16(346); -emit_16(412); -emit_16(345); -emit_16(412); -emit_16(346); -emit_16(413); -emit_16(347); -emit_16(413); -emit_16(346); -emit_16(413); -emit_16(347); -emit_16(414); -emit_16(348); -emit_16(414); -emit_16(347); -emit_16(414); -emit_16(348); -emit_16(415); -emit_16(349); -emit_16(415); -emit_16(348); -emit_16(415); -emit_16(349); -emit_16(416); -emit_16(350); -emit_16(416); -emit_16(349); -emit_16(416); -emit_16(350); -emit_16(417); -emit_16(351); -emit_16(417); -emit_16(350); -emit_16(417); -emit_16(351); -emit_16(418); -emit_16(352); -emit_16(418); -emit_16(351); -emit_16(418); -emit_16(352); -emit_16(419); -emit_16(353); -emit_16(419); -emit_16(352); -emit_16(419); -emit_16(353); -emit_16(420); -emit_16(354); -emit_16(420); -emit_16(353); -emit_16(420); -emit_16(354); -emit_16(421); -emit_16(355); -emit_16(421); -emit_16(354); -emit_16(421); -emit_16(355); -emit_16(422); -emit_16(356); -emit_16(422); -emit_16(355); -emit_16(422); -emit_16(356); -emit_16(423); -emit_16(357); -emit_16(423); -emit_16(356); -emit_16(423); -emit_16(357); -emit_16(424); -emit_16(358); -emit_16(424); -emit_16(357); -emit_16(424); -emit_16(358); -emit_16(425); -emit_16(359); -emit_16(425); -emit_16(358); -emit_16(425); -emit_16(359); -emit_16(426); -emit_16(360); -emit_16(426); -emit_16(359); -emit_16(426); -emit_16(360); -emit_16(427); -emit_16(361); -emit_16(427); -emit_16(360); -emit_16(427); -emit_16(361); -emit_16(428); -emit_16(362); -emit_16(428); -emit_16(361); -emit_16(428); -emit_16(362); -emit_16(429); -emit_16(363); -emit_16(429); -emit_16(362); -emit_16(429); -emit_16(363); -emit_16(430); -emit_16(364); -emit_16(430); -emit_16(363); -emit_16(430); -emit_16(364); -emit_16(431); -emit_16(365); -emit_16(431); -emit_16(364); -emit_16(431); -emit_16(365); -emit_16(432); -emit_16(366); -emit_16(432); -emit_16(365); -emit_16(432); -emit_16(366); -emit_16(433); -emit_16(367); -emit_16(433); -emit_16(366); -emit_16(433); -emit_16(367); -emit_16(434); -emit_16(368); -emit_16(434); -emit_16(367); -emit_16(434); -emit_16(368); -emit_16(435); -emit_16(369); -emit_16(435); -emit_16(368); -emit_16(435); -emit_16(369); -emit_16(436); -emit_16(370); -emit_16(436); -emit_16(369); -emit_16(436); -emit_16(370); -emit_16(437); -emit_16(371); -emit_16(437); -emit_16(370); -emit_16(437); -emit_16(371); -emit_16(438); -emit_16(372); -emit_16(438); -emit_16(371); -emit_16(438); -emit_16(372); -emit_16(439); -emit_16(373); -emit_16(439); -emit_16(372); -emit_16(439); -emit_16(373); -emit_16(440); -emit_16(374); -emit_16(440); -emit_16(373); -emit_16(440); -emit_16(374); -emit_16(441); -emit_16(375); -emit_16(441); -emit_16(374); -emit_16(441); -emit_16(375); -emit_16(442); -emit_16(376); -emit_16(442); -emit_16(375); -emit_16(442); -emit_16(376); -emit_16(443); -emit_16(377); -emit_16(443); -emit_16(376); -emit_16(443); -emit_16(377); -emit_16(444); -emit_16(378); -emit_16(444); -emit_16(377); -emit_16(444); -emit_16(378); -emit_16(445); -emit_16(379); -emit_16(445); -emit_16(378); -emit_16(445); -emit_16(379); -emit_16(446); -emit_16(380); -emit_16(446); -emit_16(379); -emit_16(446); -emit_16(380); -emit_16(447); -emit_16(381); -emit_16(447); -emit_16(380); -emit_16(447); -emit_16(381); -emit_16(448); -emit_16(382); -emit_16(448); -emit_16(381); -emit_16(448); -emit_16(382); -emit_16(449); -emit_16(383); -emit_16(449); -emit_16(382); -emit_16(449); -emit_16(383); -emit_16(450); -emit_16(384); -emit_16(450); -emit_16(383); -emit_16(450); -emit_16(384); -emit_16(451); -emit_16(385); -emit_16(451); -emit_16(384); -emit_16(451); -emit_16(385); -emit_16(452); -emit_16(386); -emit_16(452); -emit_16(385); -emit_16(452); -emit_16(386); -emit_16(453); -emit_16(387); -emit_16(453); -emit_16(386); -emit_16(453); -emit_16(387); -emit_16(454); -emit_16(388); -emit_16(454); -emit_16(387); -emit_16(454); -emit_16(388); -emit_16(455); -emit_16(389); -emit_16(455); -emit_16(388); -emit_16(455); -emit_16(389); -emit_16(456); -emit_16(390); -emit_16(456); -emit_16(389); -emit_16(456); -emit_16(390); -emit_16(457); -emit_16(391); -emit_16(457); -emit_16(390); -emit_16(457); -emit_16(391); -emit_16(458); -emit_16(392); -emit_16(458); -emit_16(391); -emit_16(458); -emit_16(392); -emit_16(459); -emit_16(393); -emit_16(459); -emit_16(392); -emit_16(459); -emit_16(393); -emit_16(460); -emit_16(394); -emit_16(460); -emit_16(393); -emit_16(460); -emit_16(394); -emit_16(461); -emit_16(395); -emit_16(461); -emit_16(394); -emit_16(462); -emit_16(396); -emit_16(463); -emit_16(397); -emit_16(463); -emit_16(396); -emit_16(463); -emit_16(397); -emit_16(464); -emit_16(398); -emit_16(464); -emit_16(397); -emit_16(464); -emit_16(398); -emit_16(465); -emit_16(399); -emit_16(465); -emit_16(398); -emit_16(465); -emit_16(399); -emit_16(466); -emit_16(400); -emit_16(466); -emit_16(399); -emit_16(466); -emit_16(400); -emit_16(467); -emit_16(401); -emit_16(467); -emit_16(400); -emit_16(467); -emit_16(401); -emit_16(468); -emit_16(402); -emit_16(468); -emit_16(401); -emit_16(468); -emit_16(402); -emit_16(469); -emit_16(403); -emit_16(469); -emit_16(402); -emit_16(469); -emit_16(403); -emit_16(470); -emit_16(404); -emit_16(470); -emit_16(403); -emit_16(470); -emit_16(404); -emit_16(471); -emit_16(405); -emit_16(471); -emit_16(404); -emit_16(471); -emit_16(405); -emit_16(472); -emit_16(406); -emit_16(472); -emit_16(405); -emit_16(472); -emit_16(406); -emit_16(473); -emit_16(407); -emit_16(473); -emit_16(406); -emit_16(473); -emit_16(407); -emit_16(474); -emit_16(408); -emit_16(474); -emit_16(407); -emit_16(474); -emit_16(408); -emit_16(475); -emit_16(409); -emit_16(475); -emit_16(408); -emit_16(475); -emit_16(409); -emit_16(476); -emit_16(410); -emit_16(476); -emit_16(409); -emit_16(476); -emit_16(410); -emit_16(477); -emit_16(411); -emit_16(477); -emit_16(410); -emit_16(477); -emit_16(411); -emit_16(478); -emit_16(412); -emit_16(478); -emit_16(411); -emit_16(478); -emit_16(412); -emit_16(479); -emit_16(413); -emit_16(479); -emit_16(412); -emit_16(479); -emit_16(413); -emit_16(480); -emit_16(414); -emit_16(480); -emit_16(413); -emit_16(480); -emit_16(414); -emit_16(481); -emit_16(415); -emit_16(481); -emit_16(414); -emit_16(481); -emit_16(415); -emit_16(482); -emit_16(416); -emit_16(482); -emit_16(415); -emit_16(482); -emit_16(416); -emit_16(483); -emit_16(417); -emit_16(483); -emit_16(416); -emit_16(483); -emit_16(417); -emit_16(484); -emit_16(418); -emit_16(484); -emit_16(417); -emit_16(484); -emit_16(418); -emit_16(485); -emit_16(419); -emit_16(485); -emit_16(418); -emit_16(485); -emit_16(419); -emit_16(486); -emit_16(420); -emit_16(486); -emit_16(419); -emit_16(486); -emit_16(420); -emit_16(487); -emit_16(421); -emit_16(487); -emit_16(420); -emit_16(487); -emit_16(421); -emit_16(488); -emit_16(422); -emit_16(488); -emit_16(421); -emit_16(488); -emit_16(422); -emit_16(489); -emit_16(423); -emit_16(489); -emit_16(422); -emit_16(489); -emit_16(423); -emit_16(490); -emit_16(424); -emit_16(490); -emit_16(423); -emit_16(490); -emit_16(424); -emit_16(491); -emit_16(425); -emit_16(491); -emit_16(424); -emit_16(491); -emit_16(425); -emit_16(492); -emit_16(426); -emit_16(492); -emit_16(425); -emit_16(492); -emit_16(426); -emit_16(493); -emit_16(427); -emit_16(493); -emit_16(426); -emit_16(493); -emit_16(427); -emit_16(494); -emit_16(428); -emit_16(494); -emit_16(427); -emit_16(494); -emit_16(428); -emit_16(495); -emit_16(429); -emit_16(495); -emit_16(428); -emit_16(495); -emit_16(429); -emit_16(496); -emit_16(430); -emit_16(496); -emit_16(429); -emit_16(496); -emit_16(430); -emit_16(497); -emit_16(431); -emit_16(497); -emit_16(430); -emit_16(497); -emit_16(431); -emit_16(498); -emit_16(432); -emit_16(498); -emit_16(431); -emit_16(498); -emit_16(432); -emit_16(499); -emit_16(433); -emit_16(499); -emit_16(432); -emit_16(499); -emit_16(433); -emit_16(500); -emit_16(434); -emit_16(500); -emit_16(433); -emit_16(500); -emit_16(434); -emit_16(501); -emit_16(435); -emit_16(501); -emit_16(434); -emit_16(501); -emit_16(435); -emit_16(502); -emit_16(436); -emit_16(502); -emit_16(435); -emit_16(502); -emit_16(436); -emit_16(503); -emit_16(437); -emit_16(503); -emit_16(436); -emit_16(503); -emit_16(437); -emit_16(504); -emit_16(438); -emit_16(504); -emit_16(437); -emit_16(504); -emit_16(438); -emit_16(505); -emit_16(439); -emit_16(505); -emit_16(438); -emit_16(505); -emit_16(439); -emit_16(506); -emit_16(440); -emit_16(506); -emit_16(439); -emit_16(506); -emit_16(440); -emit_16(507); -emit_16(441); -emit_16(507); -emit_16(440); -emit_16(507); -emit_16(441); -emit_16(508); -emit_16(442); -emit_16(508); -emit_16(441); -emit_16(508); -emit_16(442); -emit_16(509); -emit_16(443); -emit_16(509); -emit_16(442); -emit_16(509); -emit_16(443); -emit_16(510); -emit_16(444); -emit_16(510); -emit_16(443); -emit_16(510); -emit_16(444); -emit_16(511); -emit_16(445); -emit_16(511); -emit_16(444); -emit_16(511); -emit_16(445); -emit_16(512); -emit_16(446); -emit_16(512); -emit_16(445); -emit_16(512); -emit_16(446); -emit_16(513); -emit_16(447); -emit_16(513); -emit_16(446); -emit_16(513); -emit_16(447); -emit_16(514); -emit_16(448); -emit_16(514); -emit_16(447); -emit_16(514); -emit_16(448); -emit_16(515); -emit_16(449); -emit_16(515); -emit_16(448); -emit_16(515); -emit_16(449); -emit_16(516); -emit_16(450); -emit_16(516); -emit_16(449); -emit_16(516); -emit_16(450); -emit_16(517); -emit_16(451); -emit_16(517); -emit_16(450); -emit_16(517); -emit_16(451); -emit_16(518); -emit_16(452); -emit_16(518); -emit_16(451); -emit_16(518); -emit_16(452); -emit_16(519); -emit_16(453); -emit_16(519); -emit_16(452); -emit_16(519); -emit_16(453); -emit_16(520); -emit_16(454); -emit_16(520); -emit_16(453); -emit_16(520); -emit_16(454); -emit_16(521); -emit_16(455); -emit_16(521); -emit_16(454); -emit_16(521); -emit_16(455); -emit_16(522); -emit_16(456); -emit_16(522); -emit_16(455); -emit_16(522); -emit_16(456); -emit_16(523); -emit_16(457); -emit_16(523); -emit_16(456); -emit_16(523); -emit_16(457); -emit_16(524); -emit_16(458); -emit_16(524); -emit_16(457); -emit_16(524); -emit_16(458); -emit_16(525); -emit_16(459); -emit_16(525); -emit_16(458); -emit_16(525); -emit_16(459); -emit_16(526); -emit_16(460); -emit_16(526); -emit_16(459); -emit_16(526); -emit_16(460); -emit_16(527); -emit_16(461); -emit_16(527); -emit_16(460); -emit_16(528); -emit_16(462); -emit_16(529); -emit_16(463); -emit_16(529); -emit_16(462); -emit_16(529); -emit_16(463); -emit_16(530); -emit_16(464); -emit_16(530); -emit_16(463); -emit_16(530); -emit_16(464); -emit_16(531); -emit_16(465); -emit_16(531); -emit_16(464); -emit_16(531); -emit_16(465); -emit_16(532); -emit_16(466); -emit_16(532); -emit_16(465); -emit_16(532); -emit_16(466); -emit_16(533); -emit_16(467); -emit_16(533); -emit_16(466); -emit_16(533); -emit_16(467); -emit_16(534); -emit_16(468); -emit_16(534); -emit_16(467); -emit_16(534); -emit_16(468); -emit_16(535); -emit_16(469); -emit_16(535); -emit_16(468); -emit_16(535); -emit_16(469); -emit_16(536); -emit_16(470); -emit_16(536); -emit_16(469); -emit_16(536); -emit_16(470); -emit_16(537); -emit_16(471); -emit_16(537); -emit_16(470); -emit_16(537); -emit_16(471); -emit_16(538); -emit_16(472); -emit_16(538); -emit_16(471); -emit_16(538); -emit_16(472); -emit_16(539); -emit_16(473); -emit_16(539); -emit_16(472); -emit_16(539); -emit_16(473); -emit_16(540); -emit_16(474); -emit_16(540); -emit_16(473); -emit_16(540); -emit_16(474); -emit_16(541); -emit_16(475); -emit_16(541); -emit_16(474); -emit_16(541); -emit_16(475); -emit_16(542); -emit_16(476); -emit_16(542); -emit_16(475); -emit_16(542); -emit_16(476); -emit_16(543); -emit_16(477); -emit_16(543); -emit_16(476); -emit_16(543); -emit_16(477); -emit_16(544); -emit_16(478); -emit_16(544); -emit_16(477); -emit_16(544); -emit_16(478); -emit_16(545); -emit_16(479); -emit_16(545); -emit_16(478); -emit_16(545); -emit_16(479); -emit_16(546); -emit_16(480); -emit_16(546); -emit_16(479); -emit_16(546); -emit_16(480); -emit_16(547); -emit_16(481); -emit_16(547); -emit_16(480); -emit_16(547); -emit_16(481); -emit_16(548); -emit_16(482); -emit_16(548); -emit_16(481); -emit_16(548); -emit_16(482); -emit_16(549); -emit_16(483); -emit_16(549); -emit_16(482); -emit_16(549); -emit_16(483); -emit_16(550); -emit_16(484); -emit_16(550); -emit_16(483); -emit_16(550); -emit_16(484); -emit_16(551); -emit_16(485); -emit_16(551); -emit_16(484); -emit_16(551); -emit_16(485); -emit_16(552); -emit_16(486); -emit_16(552); -emit_16(485); -emit_16(552); -emit_16(486); -emit_16(553); -emit_16(487); -emit_16(553); -emit_16(486); -emit_16(553); -emit_16(487); -emit_16(554); -emit_16(488); -emit_16(554); -emit_16(487); -emit_16(554); -emit_16(488); -emit_16(555); -emit_16(489); -emit_16(555); -emit_16(488); -emit_16(555); -emit_16(489); -emit_16(556); -emit_16(490); -emit_16(556); -emit_16(489); -emit_16(556); -emit_16(490); -emit_16(557); -emit_16(491); -emit_16(557); -emit_16(490); -emit_16(557); -emit_16(491); -emit_16(558); -emit_16(492); -emit_16(558); -emit_16(491); -emit_16(558); -emit_16(492); -emit_16(559); -emit_16(493); -emit_16(559); -emit_16(492); -emit_16(559); -emit_16(493); -emit_16(560); -emit_16(494); -emit_16(560); -emit_16(493); -emit_16(560); -emit_16(494); -emit_16(561); -emit_16(495); -emit_16(561); -emit_16(494); -emit_16(561); -emit_16(495); -emit_16(562); -emit_16(496); -emit_16(562); -emit_16(495); -emit_16(562); -emit_16(496); -emit_16(563); -emit_16(497); -emit_16(563); -emit_16(496); -emit_16(563); -emit_16(497); -emit_16(564); -emit_16(498); -emit_16(564); -emit_16(497); -emit_16(564); -emit_16(498); -emit_16(565); -emit_16(499); -emit_16(565); -emit_16(498); -emit_16(565); -emit_16(499); -emit_16(566); -emit_16(500); -emit_16(566); -emit_16(499); -emit_16(566); -emit_16(500); -emit_16(567); -emit_16(501); -emit_16(567); -emit_16(500); -emit_16(567); -emit_16(501); -emit_16(568); -emit_16(502); -emit_16(568); -emit_16(501); -emit_16(568); -emit_16(502); -emit_16(569); -emit_16(503); -emit_16(569); -emit_16(502); -emit_16(569); -emit_16(503); -emit_16(570); -emit_16(504); -emit_16(570); -emit_16(503); -emit_16(570); -emit_16(504); -emit_16(571); -emit_16(505); -emit_16(571); -emit_16(504); -emit_16(571); -emit_16(505); -emit_16(572); -emit_16(506); -emit_16(572); -emit_16(505); -emit_16(572); -emit_16(506); -emit_16(573); -emit_16(507); -emit_16(573); -emit_16(506); -emit_16(573); -emit_16(507); -emit_16(574); -emit_16(508); -emit_16(574); -emit_16(507); -emit_16(574); -emit_16(508); -emit_16(575); -emit_16(509); -emit_16(575); -emit_16(508); -emit_16(575); -emit_16(509); -emit_16(576); -emit_16(510); -emit_16(576); -emit_16(509); -emit_16(576); -emit_16(510); -emit_16(577); -emit_16(511); -emit_16(577); -emit_16(510); -emit_16(577); -emit_16(511); -emit_16(578); -emit_16(512); -emit_16(578); -emit_16(511); -emit_16(578); -emit_16(512); -emit_16(579); -emit_16(513); -emit_16(579); -emit_16(512); -emit_16(579); -emit_16(513); -emit_16(580); -emit_16(514); -emit_16(580); -emit_16(513); -emit_16(580); -emit_16(514); -emit_16(581); -emit_16(515); -emit_16(581); -emit_16(514); -emit_16(581); -emit_16(515); -emit_16(582); -emit_16(516); -emit_16(582); -emit_16(515); -emit_16(582); -emit_16(516); -emit_16(583); -emit_16(517); -emit_16(583); -emit_16(516); -emit_16(583); -emit_16(517); -emit_16(584); -emit_16(518); -emit_16(584); -emit_16(517); -emit_16(584); -emit_16(518); -emit_16(585); -emit_16(519); -emit_16(585); -emit_16(518); -emit_16(585); -emit_16(519); -emit_16(586); -emit_16(520); -emit_16(586); -emit_16(519); -emit_16(586); -emit_16(520); -emit_16(587); -emit_16(521); -emit_16(587); -emit_16(520); -emit_16(587); -emit_16(521); -emit_16(588); -emit_16(522); -emit_16(588); -emit_16(521); -emit_16(588); -emit_16(522); -emit_16(589); -emit_16(523); -emit_16(589); -emit_16(522); -emit_16(589); -emit_16(523); -emit_16(590); -emit_16(524); -emit_16(590); -emit_16(523); -emit_16(590); -emit_16(524); -emit_16(591); -emit_16(525); -emit_16(591); -emit_16(524); -emit_16(591); -emit_16(525); -emit_16(592); -emit_16(526); -emit_16(592); -emit_16(525); -emit_16(592); -emit_16(526); -emit_16(593); -emit_16(527); -emit_16(593); -emit_16(526); -emit_16(594); -emit_16(528); -emit_16(595); -emit_16(529); -emit_16(595); -emit_16(528); -emit_16(595); -emit_16(529); -emit_16(596); -emit_16(530); -emit_16(596); -emit_16(529); -emit_16(596); -emit_16(530); -emit_16(597); -emit_16(531); -emit_16(597); -emit_16(530); -emit_16(597); -emit_16(531); -emit_16(598); -emit_16(532); -emit_16(598); -emit_16(531); -emit_16(598); -emit_16(532); -emit_16(599); -emit_16(533); -emit_16(599); -emit_16(532); -emit_16(599); -emit_16(533); -emit_16(600); -emit_16(534); -emit_16(600); -emit_16(533); -emit_16(600); -emit_16(534); -emit_16(601); -emit_16(535); -emit_16(601); -emit_16(534); -emit_16(601); -emit_16(535); -emit_16(602); -emit_16(536); -emit_16(602); -emit_16(535); -emit_16(602); -emit_16(536); -emit_16(603); -emit_16(537); -emit_16(603); -emit_16(536); -emit_16(603); -emit_16(537); -emit_16(604); -emit_16(538); -emit_16(604); -emit_16(537); -emit_16(604); -emit_16(538); -emit_16(605); -emit_16(539); -emit_16(605); -emit_16(538); -emit_16(605); -emit_16(539); -emit_16(606); -emit_16(540); -emit_16(606); -emit_16(539); -emit_16(606); -emit_16(540); -emit_16(607); -emit_16(541); -emit_16(607); -emit_16(540); -emit_16(607); -emit_16(541); -emit_16(608); -emit_16(542); -emit_16(608); -emit_16(541); -emit_16(608); -emit_16(542); -emit_16(609); -emit_16(543); -emit_16(609); -emit_16(542); -emit_16(609); -emit_16(543); -emit_16(610); -emit_16(544); -emit_16(610); -emit_16(543); -emit_16(610); -emit_16(544); -emit_16(611); -emit_16(545); -emit_16(611); -emit_16(544); -emit_16(611); -emit_16(545); -emit_16(612); -emit_16(546); -emit_16(612); -emit_16(545); -emit_16(612); -emit_16(546); -emit_16(613); -emit_16(547); -emit_16(613); -emit_16(546); -emit_16(613); -emit_16(547); -emit_16(614); -emit_16(548); -emit_16(614); -emit_16(547); -emit_16(614); -emit_16(548); -emit_16(615); -emit_16(549); -emit_16(615); -emit_16(548); -emit_16(615); -emit_16(549); -emit_16(616); -emit_16(550); -emit_16(616); -emit_16(549); -emit_16(616); -emit_16(550); -emit_16(617); -emit_16(551); -emit_16(617); -emit_16(550); -emit_16(617); -emit_16(551); -emit_16(618); -emit_16(552); -emit_16(618); -emit_16(551); -emit_16(618); -emit_16(552); -emit_16(619); -emit_16(553); -emit_16(619); -emit_16(552); -emit_16(619); -emit_16(553); -emit_16(620); -emit_16(554); -emit_16(620); -emit_16(553); -emit_16(620); -emit_16(554); -emit_16(621); -emit_16(555); -emit_16(621); -emit_16(554); -emit_16(621); -emit_16(555); -emit_16(622); -emit_16(556); -emit_16(622); -emit_16(555); -emit_16(622); -emit_16(556); -emit_16(623); -emit_16(557); -emit_16(623); -emit_16(556); -emit_16(623); -emit_16(557); -emit_16(624); -emit_16(558); -emit_16(624); -emit_16(557); -emit_16(624); -emit_16(558); -emit_16(625); -emit_16(559); -emit_16(625); -emit_16(558); -emit_16(625); -emit_16(559); -emit_16(626); -emit_16(560); -emit_16(626); -emit_16(559); -emit_16(626); -emit_16(560); -emit_16(627); -emit_16(561); -emit_16(627); -emit_16(560); -emit_16(627); -emit_16(561); -emit_16(628); -emit_16(562); -emit_16(628); -emit_16(561); -emit_16(628); -emit_16(562); -emit_16(629); -emit_16(563); -emit_16(629); -emit_16(562); -emit_16(629); -emit_16(563); -emit_16(630); -emit_16(564); -emit_16(630); -emit_16(563); -emit_16(630); -emit_16(564); -emit_16(631); -emit_16(565); -emit_16(631); -emit_16(564); -emit_16(631); -emit_16(565); -emit_16(632); -emit_16(566); -emit_16(632); -emit_16(565); -emit_16(632); -emit_16(566); -emit_16(633); -emit_16(567); -emit_16(633); -emit_16(566); -emit_16(633); -emit_16(567); -emit_16(634); -emit_16(568); -emit_16(634); -emit_16(567); -emit_16(634); -emit_16(568); -emit_16(635); -emit_16(569); -emit_16(635); -emit_16(568); -emit_16(635); -emit_16(569); -emit_16(636); -emit_16(570); -emit_16(636); -emit_16(569); -emit_16(636); -emit_16(570); -emit_16(637); -emit_16(571); -emit_16(637); -emit_16(570); -emit_16(637); -emit_16(571); -emit_16(638); -emit_16(572); -emit_16(638); -emit_16(571); -emit_16(638); -emit_16(572); -emit_16(639); -emit_16(573); -emit_16(639); -emit_16(572); -emit_16(639); -emit_16(573); -emit_16(640); -emit_16(574); -emit_16(640); -emit_16(573); -emit_16(640); -emit_16(574); -emit_16(641); -emit_16(575); -emit_16(641); -emit_16(574); -emit_16(641); -emit_16(575); -emit_16(642); -emit_16(576); -emit_16(642); -emit_16(575); -emit_16(642); -emit_16(576); -emit_16(643); -emit_16(577); -emit_16(643); -emit_16(576); -emit_16(643); -emit_16(577); -emit_16(644); -emit_16(578); -emit_16(644); -emit_16(577); -emit_16(644); -emit_16(578); -emit_16(645); -emit_16(579); -emit_16(645); -emit_16(578); -emit_16(645); -emit_16(579); -emit_16(646); -emit_16(580); -emit_16(646); -emit_16(579); -emit_16(646); -emit_16(580); -emit_16(647); -emit_16(581); -emit_16(647); -emit_16(580); -emit_16(647); -emit_16(581); -emit_16(648); -emit_16(582); -emit_16(648); -emit_16(581); -emit_16(648); -emit_16(582); -emit_16(649); -emit_16(583); -emit_16(649); -emit_16(582); -emit_16(649); -emit_16(583); -emit_16(650); -emit_16(584); -emit_16(650); -emit_16(583); -emit_16(650); -emit_16(584); -emit_16(651); -emit_16(585); -emit_16(651); -emit_16(584); -emit_16(651); -emit_16(585); -emit_16(652); -emit_16(586); -emit_16(652); -emit_16(585); -emit_16(652); -emit_16(586); -emit_16(653); -emit_16(587); -emit_16(653); -emit_16(586); -emit_16(653); -emit_16(587); -emit_16(654); -emit_16(588); -emit_16(654); -emit_16(587); -emit_16(654); -emit_16(588); -emit_16(655); -emit_16(589); -emit_16(655); -emit_16(588); -emit_16(655); -emit_16(589); -emit_16(656); -emit_16(590); -emit_16(656); -emit_16(589); -emit_16(656); -emit_16(590); -emit_16(657); -emit_16(591); -emit_16(657); -emit_16(590); -emit_16(657); -emit_16(591); -emit_16(658); -emit_16(592); -emit_16(658); -emit_16(591); -emit_16(658); -emit_16(592); -emit_16(659); -emit_16(593); -emit_16(659); -emit_16(592); -emit_16(660); -emit_16(594); -emit_16(661); -emit_16(595); -emit_16(661); -emit_16(594); -emit_16(661); -emit_16(595); -emit_16(662); -emit_16(596); -emit_16(662); -emit_16(595); -emit_16(662); -emit_16(596); -emit_16(663); -emit_16(597); -emit_16(663); -emit_16(596); -emit_16(663); -emit_16(597); -emit_16(664); -emit_16(598); -emit_16(664); -emit_16(597); -emit_16(664); -emit_16(598); -emit_16(665); -emit_16(599); -emit_16(665); -emit_16(598); -emit_16(665); -emit_16(599); -emit_16(666); -emit_16(600); -emit_16(666); -emit_16(599); -emit_16(666); -emit_16(600); -emit_16(667); -emit_16(601); -emit_16(667); -emit_16(600); -emit_16(667); -emit_16(601); -emit_16(668); -emit_16(602); -emit_16(668); -emit_16(601); -emit_16(668); -emit_16(602); -emit_16(669); -emit_16(603); -emit_16(669); -emit_16(602); -emit_16(669); -emit_16(603); -emit_16(670); -emit_16(604); -emit_16(670); -emit_16(603); -emit_16(670); -emit_16(604); -emit_16(671); -emit_16(605); -emit_16(671); -emit_16(604); -emit_16(671); -emit_16(605); -emit_16(672); -emit_16(606); -emit_16(672); -emit_16(605); -emit_16(672); -emit_16(606); -emit_16(673); -emit_16(607); -emit_16(673); -emit_16(606); -emit_16(673); -emit_16(607); -emit_16(674); -emit_16(608); -emit_16(674); -emit_16(607); -emit_16(674); -emit_16(608); -emit_16(675); -emit_16(609); -emit_16(675); -emit_16(608); -emit_16(675); -emit_16(609); -emit_16(676); -emit_16(610); -emit_16(676); -emit_16(609); -emit_16(676); -emit_16(610); -emit_16(677); -emit_16(611); -emit_16(677); -emit_16(610); -emit_16(677); -emit_16(611); -emit_16(678); -emit_16(612); -emit_16(678); -emit_16(611); -emit_16(678); -emit_16(612); -emit_16(679); -emit_16(613); -emit_16(679); -emit_16(612); -emit_16(679); -emit_16(613); -emit_16(680); -emit_16(614); -emit_16(680); -emit_16(613); -emit_16(680); -emit_16(614); -emit_16(681); -emit_16(615); -emit_16(681); -emit_16(614); -emit_16(681); -emit_16(615); -emit_16(682); -emit_16(616); -emit_16(682); -emit_16(615); -emit_16(682); -emit_16(616); -emit_16(683); -emit_16(617); -emit_16(683); -emit_16(616); -emit_16(683); -emit_16(617); -emit_16(684); -emit_16(618); -emit_16(684); -emit_16(617); -emit_16(684); -emit_16(618); -emit_16(685); -emit_16(619); -emit_16(685); -emit_16(618); -emit_16(685); -emit_16(619); -emit_16(686); -emit_16(620); -emit_16(686); -emit_16(619); -emit_16(686); -emit_16(620); -emit_16(687); -emit_16(621); -emit_16(687); -emit_16(620); -emit_16(687); -emit_16(621); -emit_16(688); -emit_16(622); -emit_16(688); -emit_16(621); -emit_16(688); -emit_16(622); -emit_16(689); -emit_16(623); -emit_16(689); -emit_16(622); -emit_16(689); -emit_16(623); -emit_16(690); -emit_16(624); -emit_16(690); -emit_16(623); -emit_16(690); -emit_16(624); -emit_16(691); -emit_16(625); -emit_16(691); -emit_16(624); -emit_16(691); -emit_16(625); -emit_16(692); -emit_16(626); -emit_16(692); -emit_16(625); -emit_16(692); -emit_16(626); -emit_16(693); -emit_16(627); -emit_16(693); -emit_16(626); -emit_16(693); -emit_16(627); -emit_16(694); -emit_16(628); -emit_16(694); -emit_16(627); -emit_16(694); -emit_16(628); -emit_16(695); -emit_16(629); -emit_16(695); -emit_16(628); -emit_16(695); -emit_16(629); -emit_16(696); -emit_16(630); -emit_16(696); -emit_16(629); -emit_16(696); -emit_16(630); -emit_16(697); -emit_16(631); -emit_16(697); -emit_16(630); -emit_16(697); -emit_16(631); -emit_16(698); -emit_16(632); -emit_16(698); -emit_16(631); -emit_16(698); -emit_16(632); -emit_16(699); -emit_16(633); -emit_16(699); -emit_16(632); -emit_16(699); -emit_16(633); -emit_16(700); -emit_16(634); -emit_16(700); -emit_16(633); -emit_16(700); -emit_16(634); -emit_16(701); -emit_16(635); -emit_16(701); -emit_16(634); -emit_16(701); -emit_16(635); -emit_16(702); -emit_16(636); -emit_16(702); -emit_16(635); -emit_16(702); -emit_16(636); -emit_16(703); -emit_16(637); -emit_16(703); -emit_16(636); -emit_16(703); -emit_16(637); -emit_16(704); -emit_16(638); -emit_16(704); -emit_16(637); -emit_16(704); -emit_16(638); -emit_16(705); -emit_16(639); -emit_16(705); -emit_16(638); -emit_16(705); -emit_16(639); -emit_16(706); -emit_16(640); -emit_16(706); -emit_16(639); -emit_16(706); -emit_16(640); -emit_16(707); -emit_16(641); -emit_16(707); -emit_16(640); -emit_16(707); -emit_16(641); -emit_16(708); -emit_16(642); -emit_16(708); -emit_16(641); -emit_16(708); -emit_16(642); -emit_16(709); -emit_16(643); -emit_16(709); -emit_16(642); -emit_16(709); -emit_16(643); -emit_16(710); -emit_16(644); -emit_16(710); -emit_16(643); -emit_16(710); -emit_16(644); -emit_16(711); -emit_16(645); -emit_16(711); -emit_16(644); -emit_16(711); -emit_16(645); -emit_16(712); -emit_16(646); -emit_16(712); -emit_16(645); -emit_16(712); -emit_16(646); -emit_16(713); -emit_16(647); -emit_16(713); -emit_16(646); -emit_16(713); -emit_16(647); -emit_16(714); -emit_16(648); -emit_16(714); -emit_16(647); -emit_16(714); -emit_16(648); -emit_16(715); -emit_16(649); -emit_16(715); -emit_16(648); -emit_16(715); -emit_16(649); -emit_16(716); -emit_16(650); -emit_16(716); -emit_16(649); -emit_16(716); -emit_16(650); -emit_16(717); -emit_16(651); -emit_16(717); -emit_16(650); -emit_16(717); -emit_16(651); -emit_16(718); -emit_16(652); -emit_16(718); -emit_16(651); -emit_16(718); -emit_16(652); -emit_16(719); -emit_16(653); -emit_16(719); -emit_16(652); -emit_16(719); -emit_16(653); -emit_16(720); -emit_16(654); -emit_16(720); -emit_16(653); -emit_16(720); -emit_16(654); -emit_16(721); -emit_16(655); -emit_16(721); -emit_16(654); -emit_16(721); -emit_16(655); -emit_16(722); -emit_16(656); -emit_16(722); -emit_16(655); -emit_16(722); -emit_16(656); -emit_16(723); -emit_16(657); -emit_16(723); -emit_16(656); -emit_16(723); -emit_16(657); -emit_16(724); -emit_16(658); -emit_16(724); -emit_16(657); -emit_16(724); -emit_16(658); -emit_16(725); -emit_16(659); -emit_16(725); -emit_16(658); -emit_16(726); -emit_16(660); -emit_16(727); -emit_16(661); -emit_16(727); -emit_16(660); -emit_16(727); -emit_16(661); -emit_16(728); -emit_16(662); -emit_16(728); -emit_16(661); -emit_16(728); -emit_16(662); -emit_16(729); -emit_16(663); -emit_16(729); -emit_16(662); -emit_16(729); -emit_16(663); -emit_16(730); -emit_16(664); -emit_16(730); -emit_16(663); -emit_16(730); -emit_16(664); -emit_16(731); -emit_16(665); -emit_16(731); -emit_16(664); -emit_16(731); -emit_16(665); -emit_16(732); -emit_16(666); -emit_16(732); -emit_16(665); -emit_16(732); -emit_16(666); -emit_16(733); -emit_16(667); -emit_16(733); -emit_16(666); -emit_16(733); -emit_16(667); -emit_16(734); -emit_16(668); -emit_16(734); -emit_16(667); -emit_16(734); -emit_16(668); -emit_16(735); -emit_16(669); -emit_16(735); -emit_16(668); -emit_16(735); -emit_16(669); -emit_16(736); -emit_16(670); -emit_16(736); -emit_16(669); -emit_16(736); -emit_16(670); -emit_16(737); -emit_16(671); -emit_16(737); -emit_16(670); -emit_16(737); -emit_16(671); -emit_16(738); -emit_16(672); -emit_16(738); -emit_16(671); -emit_16(738); -emit_16(672); -emit_16(739); -emit_16(673); -emit_16(739); -emit_16(672); -emit_16(739); -emit_16(673); -emit_16(740); -emit_16(674); -emit_16(740); -emit_16(673); -emit_16(740); -emit_16(674); -emit_16(741); -emit_16(675); -emit_16(741); -emit_16(674); -emit_16(741); -emit_16(675); -emit_16(742); -emit_16(676); -emit_16(742); -emit_16(675); -emit_16(742); -emit_16(676); -emit_16(743); -emit_16(677); -emit_16(743); -emit_16(676); -emit_16(743); -emit_16(677); -emit_16(744); -emit_16(678); -emit_16(744); -emit_16(677); -emit_16(744); -emit_16(678); -emit_16(745); -emit_16(679); -emit_16(745); -emit_16(678); -emit_16(745); -emit_16(679); -emit_16(746); -emit_16(680); -emit_16(746); -emit_16(679); -emit_16(746); -emit_16(680); -emit_16(747); -emit_16(681); -emit_16(747); -emit_16(680); -emit_16(747); -emit_16(681); -emit_16(748); -emit_16(682); -emit_16(748); -emit_16(681); -emit_16(748); -emit_16(682); -emit_16(749); -emit_16(683); -emit_16(749); -emit_16(682); -emit_16(749); -emit_16(683); -emit_16(750); -emit_16(684); -emit_16(750); -emit_16(683); -emit_16(750); -emit_16(684); -emit_16(751); -emit_16(685); -emit_16(751); -emit_16(684); -emit_16(751); -emit_16(685); -emit_16(752); -emit_16(686); -emit_16(752); -emit_16(685); -emit_16(752); -emit_16(686); -emit_16(753); -emit_16(687); -emit_16(753); -emit_16(686); -emit_16(753); -emit_16(687); -emit_16(754); -emit_16(688); -emit_16(754); -emit_16(687); -emit_16(754); -emit_16(688); -emit_16(755); -emit_16(689); -emit_16(755); -emit_16(688); -emit_16(755); -emit_16(689); -emit_16(756); -emit_16(690); -emit_16(756); -emit_16(689); -emit_16(756); -emit_16(690); -emit_16(757); -emit_16(691); -emit_16(757); -emit_16(690); -emit_16(757); -emit_16(691); -emit_16(758); -emit_16(692); -emit_16(758); -emit_16(691); -emit_16(758); -emit_16(692); -emit_16(759); -emit_16(693); -emit_16(759); -emit_16(692); -emit_16(759); -emit_16(693); -emit_16(760); -emit_16(694); -emit_16(760); -emit_16(693); -emit_16(760); -emit_16(694); -emit_16(761); -emit_16(695); -emit_16(761); -emit_16(694); -emit_16(761); -emit_16(695); -emit_16(762); -emit_16(696); -emit_16(762); -emit_16(695); -emit_16(762); -emit_16(696); -emit_16(763); -emit_16(697); -emit_16(763); -emit_16(696); -emit_16(763); -emit_16(697); -emit_16(764); -emit_16(698); -emit_16(764); -emit_16(697); -emit_16(764); -emit_16(698); -emit_16(765); -emit_16(699); -emit_16(765); -emit_16(698); -emit_16(765); -emit_16(699); -emit_16(766); -emit_16(700); -emit_16(766); -emit_16(699); -emit_16(766); -emit_16(700); -emit_16(767); -emit_16(701); -emit_16(767); -emit_16(700); -emit_16(767); -emit_16(701); -emit_16(768); -emit_16(702); -emit_16(768); -emit_16(701); -emit_16(768); -emit_16(702); -emit_16(769); -emit_16(703); -emit_16(769); -emit_16(702); -emit_16(769); -emit_16(703); -emit_16(770); -emit_16(704); -emit_16(770); -emit_16(703); -emit_16(770); -emit_16(704); -emit_16(771); -emit_16(705); -emit_16(771); -emit_16(704); -emit_16(771); -emit_16(705); -emit_16(772); -emit_16(706); -emit_16(772); -emit_16(705); -emit_16(772); -emit_16(706); -emit_16(773); -emit_16(707); -emit_16(773); -emit_16(706); -emit_16(773); -emit_16(707); -emit_16(774); -emit_16(708); -emit_16(774); -emit_16(707); -emit_16(774); -emit_16(708); -emit_16(775); -emit_16(709); -emit_16(775); -emit_16(708); -emit_16(775); -emit_16(709); -emit_16(776); -emit_16(710); -emit_16(776); -emit_16(709); -emit_16(776); -emit_16(710); -emit_16(777); -emit_16(711); -emit_16(777); -emit_16(710); -emit_16(777); -emit_16(711); -emit_16(778); -emit_16(712); -emit_16(778); -emit_16(711); -emit_16(778); -emit_16(712); -emit_16(779); -emit_16(713); -emit_16(779); -emit_16(712); -emit_16(779); -emit_16(713); -emit_16(780); -emit_16(714); -emit_16(780); -emit_16(713); -emit_16(780); -emit_16(714); -emit_16(781); -emit_16(715); -emit_16(781); -emit_16(714); -emit_16(781); -emit_16(715); -emit_16(782); -emit_16(716); -emit_16(782); -emit_16(715); -emit_16(782); -emit_16(716); -emit_16(783); -emit_16(717); -emit_16(783); -emit_16(716); -emit_16(783); -emit_16(717); -emit_16(784); -emit_16(718); -emit_16(784); -emit_16(717); -emit_16(784); -emit_16(718); -emit_16(785); -emit_16(719); -emit_16(785); -emit_16(718); -emit_16(785); -emit_16(719); -emit_16(786); -emit_16(720); -emit_16(786); -emit_16(719); -emit_16(786); -emit_16(720); -emit_16(787); -emit_16(721); -emit_16(787); -emit_16(720); -emit_16(787); -emit_16(721); -emit_16(788); -emit_16(722); -emit_16(788); -emit_16(721); -emit_16(788); -emit_16(722); -emit_16(789); -emit_16(723); -emit_16(789); -emit_16(722); -emit_16(789); -emit_16(723); -emit_16(790); -emit_16(724); -emit_16(790); -emit_16(723); -emit_16(790); -emit_16(724); -emit_16(791); -emit_16(725); -emit_16(791); -emit_16(724); -emit_16(792); -emit_16(726); -emit_16(793); -emit_16(727); -emit_16(793); -emit_16(726); -emit_16(793); -emit_16(727); -emit_16(794); -emit_16(728); -emit_16(794); -emit_16(727); -emit_16(794); -emit_16(728); -emit_16(795); -emit_16(729); -emit_16(795); -emit_16(728); -emit_16(795); -emit_16(729); -emit_16(796); -emit_16(730); -emit_16(796); -emit_16(729); -emit_16(796); -emit_16(730); -emit_16(797); -emit_16(731); -emit_16(797); -emit_16(730); -emit_16(797); -emit_16(731); -emit_16(798); -emit_16(732); -emit_16(798); -emit_16(731); -emit_16(798); -emit_16(732); -emit_16(799); -emit_16(733); -emit_16(799); -emit_16(732); -emit_16(799); -emit_16(733); -emit_16(800); -emit_16(734); -emit_16(800); -emit_16(733); -emit_16(800); -emit_16(734); -emit_16(801); -emit_16(735); -emit_16(801); -emit_16(734); -emit_16(801); -emit_16(735); -emit_16(802); -emit_16(736); -emit_16(802); -emit_16(735); -emit_16(802); -emit_16(736); -emit_16(803); -emit_16(737); -emit_16(803); -emit_16(736); -emit_16(803); -emit_16(737); -emit_16(804); -emit_16(738); -emit_16(804); -emit_16(737); -emit_16(804); -emit_16(738); -emit_16(805); -emit_16(739); -emit_16(805); -emit_16(738); -emit_16(805); -emit_16(739); -emit_16(806); -emit_16(740); -emit_16(806); -emit_16(739); -emit_16(806); -emit_16(740); -emit_16(807); -emit_16(741); -emit_16(807); -emit_16(740); -emit_16(807); -emit_16(741); -emit_16(808); -emit_16(742); -emit_16(808); -emit_16(741); -emit_16(808); -emit_16(742); -emit_16(809); -emit_16(743); -emit_16(809); -emit_16(742); -emit_16(809); -emit_16(743); -emit_16(810); -emit_16(744); -emit_16(810); -emit_16(743); -emit_16(810); -emit_16(744); -emit_16(811); -emit_16(745); -emit_16(811); -emit_16(744); -emit_16(811); -emit_16(745); -emit_16(812); -emit_16(746); -emit_16(812); -emit_16(745); -emit_16(812); -emit_16(746); -emit_16(813); -emit_16(747); -emit_16(813); -emit_16(746); -emit_16(813); -emit_16(747); -emit_16(814); -emit_16(748); -emit_16(814); -emit_16(747); -emit_16(814); -emit_16(748); -emit_16(815); -emit_16(749); -emit_16(815); -emit_16(748); -emit_16(815); -emit_16(749); -emit_16(816); -emit_16(750); -emit_16(816); -emit_16(749); -emit_16(816); -emit_16(750); -emit_16(817); -emit_16(751); -emit_16(817); -emit_16(750); -emit_16(817); -emit_16(751); -emit_16(818); -emit_16(752); -emit_16(818); -emit_16(751); -emit_16(818); -emit_16(752); -emit_16(819); -emit_16(753); -emit_16(819); -emit_16(752); -emit_16(819); -emit_16(753); -emit_16(820); -emit_16(754); -emit_16(820); -emit_16(753); -emit_16(820); -emit_16(754); -emit_16(821); -emit_16(755); -emit_16(821); -emit_16(754); -emit_16(821); -emit_16(755); -emit_16(822); -emit_16(756); -emit_16(822); -emit_16(755); -emit_16(822); -emit_16(756); -emit_16(823); -emit_16(757); -emit_16(823); -emit_16(756); -emit_16(823); -emit_16(757); -emit_16(824); -emit_16(758); -emit_16(824); -emit_16(757); -emit_16(824); -emit_16(758); -emit_16(825); -emit_16(759); -emit_16(825); -emit_16(758); -emit_16(825); -emit_16(759); -emit_16(826); -emit_16(760); -emit_16(826); -emit_16(759); -emit_16(826); -emit_16(760); -emit_16(827); -emit_16(761); -emit_16(827); -emit_16(760); -emit_16(827); -emit_16(761); -emit_16(828); -emit_16(762); -emit_16(828); -emit_16(761); -emit_16(828); -emit_16(762); -emit_16(829); -emit_16(763); -emit_16(829); -emit_16(762); -emit_16(829); -emit_16(763); -emit_16(830); -emit_16(764); -emit_16(830); -emit_16(763); -emit_16(830); -emit_16(764); -emit_16(831); -emit_16(765); -emit_16(831); -emit_16(764); -emit_16(831); -emit_16(765); -emit_16(832); -emit_16(766); -emit_16(832); -emit_16(765); -emit_16(832); -emit_16(766); -emit_16(833); -emit_16(767); -emit_16(833); -emit_16(766); -emit_16(833); -emit_16(767); -emit_16(834); -emit_16(768); -emit_16(834); -emit_16(767); -emit_16(834); -emit_16(768); -emit_16(835); -emit_16(769); -emit_16(835); -emit_16(768); -emit_16(835); -emit_16(769); -emit_16(836); -emit_16(770); -emit_16(836); -emit_16(769); -emit_16(836); -emit_16(770); -emit_16(837); -emit_16(771); -emit_16(837); -emit_16(770); -emit_16(837); -emit_16(771); -emit_16(838); -emit_16(772); -emit_16(838); -emit_16(771); -emit_16(838); -emit_16(772); -emit_16(839); -emit_16(773); -emit_16(839); -emit_16(772); -emit_16(839); -emit_16(773); -emit_16(840); -emit_16(774); -emit_16(840); -emit_16(773); -emit_16(840); -emit_16(774); -emit_16(841); -emit_16(775); -emit_16(841); -emit_16(774); -emit_16(841); -emit_16(775); -emit_16(842); -emit_16(776); -emit_16(842); -emit_16(775); -emit_16(842); -emit_16(776); -emit_16(843); -emit_16(777); -emit_16(843); -emit_16(776); -emit_16(843); -emit_16(777); -emit_16(844); -emit_16(778); -emit_16(844); -emit_16(777); -emit_16(844); -emit_16(778); -emit_16(845); -emit_16(779); -emit_16(845); -emit_16(778); -emit_16(845); -emit_16(779); -emit_16(846); -emit_16(780); -emit_16(846); -emit_16(779); -emit_16(846); -emit_16(780); -emit_16(847); -emit_16(781); -emit_16(847); -emit_16(780); -emit_16(847); -emit_16(781); -emit_16(848); -emit_16(782); -emit_16(848); -emit_16(781); -emit_16(848); -emit_16(782); -emit_16(849); -emit_16(783); -emit_16(849); -emit_16(782); -emit_16(849); -emit_16(783); -emit_16(850); -emit_16(784); -emit_16(850); -emit_16(783); -emit_16(850); -emit_16(784); -emit_16(851); -emit_16(785); -emit_16(851); -emit_16(784); -emit_16(851); -emit_16(785); -emit_16(852); -emit_16(786); -emit_16(852); -emit_16(785); -emit_16(852); -emit_16(786); -emit_16(853); -emit_16(787); -emit_16(853); -emit_16(786); -emit_16(853); -emit_16(787); -emit_16(854); -emit_16(788); -emit_16(854); -emit_16(787); -emit_16(854); -emit_16(788); -emit_16(855); -emit_16(789); -emit_16(855); -emit_16(788); -emit_16(855); -emit_16(789); -emit_16(856); -emit_16(790); -emit_16(856); -emit_16(789); -emit_16(856); -emit_16(790); -emit_16(857); -emit_16(791); -emit_16(857); -emit_16(790); -emit_16(858); -emit_16(792); -emit_16(859); -emit_16(793); -emit_16(859); -emit_16(792); -emit_16(859); -emit_16(793); -emit_16(860); -emit_16(794); -emit_16(860); -emit_16(793); -emit_16(860); -emit_16(794); -emit_16(861); -emit_16(795); -emit_16(861); -emit_16(794); -emit_16(861); -emit_16(795); -emit_16(862); -emit_16(796); -emit_16(862); -emit_16(795); -emit_16(862); -emit_16(796); -emit_16(863); -emit_16(797); -emit_16(863); -emit_16(796); -emit_16(863); -emit_16(797); -emit_16(864); -emit_16(798); -emit_16(864); -emit_16(797); -emit_16(864); -emit_16(798); -emit_16(865); -emit_16(799); -emit_16(865); -emit_16(798); -emit_16(865); -emit_16(799); -emit_16(866); -emit_16(800); -emit_16(866); -emit_16(799); -emit_16(866); -emit_16(800); -emit_16(867); -emit_16(801); -emit_16(867); -emit_16(800); -emit_16(867); -emit_16(801); -emit_16(868); -emit_16(802); -emit_16(868); -emit_16(801); -emit_16(868); -emit_16(802); -emit_16(869); -emit_16(803); -emit_16(869); -emit_16(802); -emit_16(869); -emit_16(803); -emit_16(870); -emit_16(804); -emit_16(870); -emit_16(803); -emit_16(870); -emit_16(804); -emit_16(871); -emit_16(805); -emit_16(871); -emit_16(804); -emit_16(871); -emit_16(805); -emit_16(872); -emit_16(806); -emit_16(872); -emit_16(805); -emit_16(872); -emit_16(806); -emit_16(873); -emit_16(807); -emit_16(873); -emit_16(806); -emit_16(873); -emit_16(807); -emit_16(874); -emit_16(808); -emit_16(874); -emit_16(807); -emit_16(874); -emit_16(808); -emit_16(875); -emit_16(809); -emit_16(875); -emit_16(808); -emit_16(875); -emit_16(809); -emit_16(876); -emit_16(810); -emit_16(876); -emit_16(809); -emit_16(876); -emit_16(810); -emit_16(877); -emit_16(811); -emit_16(877); -emit_16(810); -emit_16(877); -emit_16(811); -emit_16(878); -emit_16(812); -emit_16(878); -emit_16(811); -emit_16(878); -emit_16(812); -emit_16(879); -emit_16(813); -emit_16(879); -emit_16(812); -emit_16(879); -emit_16(813); -emit_16(880); -emit_16(814); -emit_16(880); -emit_16(813); -emit_16(880); -emit_16(814); -emit_16(881); -emit_16(815); -emit_16(881); -emit_16(814); -emit_16(881); -emit_16(815); -emit_16(882); -emit_16(816); -emit_16(882); -emit_16(815); -emit_16(882); -emit_16(816); -emit_16(883); -emit_16(817); -emit_16(883); -emit_16(816); -emit_16(883); -emit_16(817); -emit_16(884); -emit_16(818); -emit_16(884); -emit_16(817); -emit_16(884); -emit_16(818); -emit_16(885); -emit_16(819); -emit_16(885); -emit_16(818); -emit_16(885); -emit_16(819); -emit_16(886); -emit_16(820); -emit_16(886); -emit_16(819); -emit_16(886); -emit_16(820); -emit_16(887); -emit_16(821); -emit_16(887); -emit_16(820); -emit_16(887); -emit_16(821); -emit_16(888); -emit_16(822); -emit_16(888); -emit_16(821); -emit_16(888); -emit_16(822); -emit_16(889); -emit_16(823); -emit_16(889); -emit_16(822); -emit_16(889); -emit_16(823); -emit_16(890); -emit_16(824); -emit_16(890); -emit_16(823); -emit_16(890); -emit_16(824); -emit_16(891); -emit_16(825); -emit_16(891); -emit_16(824); -emit_16(891); -emit_16(825); -emit_16(892); -emit_16(826); -emit_16(892); -emit_16(825); -emit_16(892); -emit_16(826); -emit_16(893); -emit_16(827); -emit_16(893); -emit_16(826); -emit_16(893); -emit_16(827); -emit_16(894); -emit_16(828); -emit_16(894); -emit_16(827); -emit_16(894); -emit_16(828); -emit_16(895); -emit_16(829); -emit_16(895); -emit_16(828); -emit_16(895); -emit_16(829); -emit_16(896); -emit_16(830); -emit_16(896); -emit_16(829); -emit_16(896); -emit_16(830); -emit_16(897); -emit_16(831); -emit_16(897); -emit_16(830); -emit_16(897); -emit_16(831); -emit_16(898); -emit_16(832); -emit_16(898); -emit_16(831); -emit_16(898); -emit_16(832); -emit_16(899); -emit_16(833); -emit_16(899); -emit_16(832); -emit_16(899); -emit_16(833); -emit_16(900); -emit_16(834); -emit_16(900); -emit_16(833); -emit_16(900); -emit_16(834); -emit_16(901); -emit_16(835); -emit_16(901); -emit_16(834); -emit_16(901); -emit_16(835); -emit_16(902); -emit_16(836); -emit_16(902); -emit_16(835); -emit_16(902); -emit_16(836); -emit_16(903); -emit_16(837); -emit_16(903); -emit_16(836); -emit_16(903); -emit_16(837); -emit_16(904); -emit_16(838); -emit_16(904); -emit_16(837); -emit_16(904); -emit_16(838); -emit_16(905); -emit_16(839); -emit_16(905); -emit_16(838); -emit_16(905); -emit_16(839); -emit_16(906); -emit_16(840); -emit_16(906); -emit_16(839); -emit_16(906); -emit_16(840); -emit_16(907); -emit_16(841); -emit_16(907); -emit_16(840); -emit_16(907); -emit_16(841); -emit_16(908); -emit_16(842); -emit_16(908); -emit_16(841); -emit_16(908); -emit_16(842); -emit_16(909); -emit_16(843); -emit_16(909); -emit_16(842); -emit_16(909); -emit_16(843); -emit_16(910); -emit_16(844); -emit_16(910); -emit_16(843); -emit_16(910); -emit_16(844); -emit_16(911); -emit_16(845); -emit_16(911); -emit_16(844); -emit_16(911); -emit_16(845); -emit_16(912); -emit_16(846); -emit_16(912); -emit_16(845); -emit_16(912); -emit_16(846); -emit_16(913); -emit_16(847); -emit_16(913); -emit_16(846); -emit_16(913); -emit_16(847); -emit_16(914); -emit_16(848); -emit_16(914); -emit_16(847); -emit_16(914); -emit_16(848); -emit_16(915); -emit_16(849); -emit_16(915); -emit_16(848); -emit_16(915); -emit_16(849); -emit_16(916); -emit_16(850); -emit_16(916); -emit_16(849); -emit_16(916); -emit_16(850); -emit_16(917); -emit_16(851); -emit_16(917); -emit_16(850); -emit_16(917); -emit_16(851); -emit_16(918); -emit_16(852); -emit_16(918); -emit_16(851); -emit_16(918); -emit_16(852); -emit_16(919); -emit_16(853); -emit_16(919); -emit_16(852); -emit_16(919); -emit_16(853); -emit_16(920); -emit_16(854); -emit_16(920); -emit_16(853); -emit_16(920); -emit_16(854); -emit_16(921); -emit_16(855); -emit_16(921); -emit_16(854); -emit_16(921); -emit_16(855); -emit_16(922); -emit_16(856); -emit_16(922); -emit_16(855); -emit_16(922); -emit_16(856); -emit_16(923); -emit_16(857); -emit_16(923); -emit_16(856); -emit_16(924); -emit_16(858); -emit_16(925); -emit_16(859); -emit_16(925); -emit_16(858); -emit_16(925); -emit_16(859); -emit_16(926); -emit_16(860); -emit_16(926); -emit_16(859); -emit_16(926); -emit_16(860); -emit_16(927); -emit_16(861); -emit_16(927); -emit_16(860); -emit_16(927); -emit_16(861); -emit_16(928); -emit_16(862); -emit_16(928); -emit_16(861); -emit_16(928); -emit_16(862); -emit_16(929); -emit_16(863); -emit_16(929); -emit_16(862); -emit_16(929); -emit_16(863); -emit_16(930); -emit_16(864); -emit_16(930); -emit_16(863); -emit_16(930); -emit_16(864); -emit_16(931); -emit_16(865); -emit_16(931); -emit_16(864); -emit_16(931); -emit_16(865); -emit_16(932); -emit_16(866); -emit_16(932); -emit_16(865); -emit_16(932); -emit_16(866); -emit_16(933); -emit_16(867); -emit_16(933); -emit_16(866); -emit_16(933); -emit_16(867); -emit_16(934); -emit_16(868); -emit_16(934); -emit_16(867); -emit_16(934); -emit_16(868); -emit_16(935); -emit_16(869); -emit_16(935); -emit_16(868); -emit_16(935); -emit_16(869); -emit_16(936); -emit_16(870); -emit_16(936); -emit_16(869); -emit_16(936); -emit_16(870); -emit_16(937); -emit_16(871); -emit_16(937); -emit_16(870); -emit_16(937); -emit_16(871); -emit_16(938); -emit_16(872); -emit_16(938); -emit_16(871); -emit_16(938); -emit_16(872); -emit_16(939); -emit_16(873); -emit_16(939); -emit_16(872); -emit_16(939); -emit_16(873); -emit_16(940); -emit_16(874); -emit_16(940); -emit_16(873); -emit_16(940); -emit_16(874); -emit_16(941); -emit_16(875); -emit_16(941); -emit_16(874); -emit_16(941); -emit_16(875); -emit_16(942); -emit_16(876); -emit_16(942); -emit_16(875); -emit_16(942); -emit_16(876); -emit_16(943); -emit_16(877); -emit_16(943); -emit_16(876); -emit_16(943); -emit_16(877); -emit_16(944); -emit_16(878); -emit_16(944); -emit_16(877); -emit_16(944); -emit_16(878); -emit_16(945); -emit_16(879); -emit_16(945); -emit_16(878); -emit_16(945); -emit_16(879); -emit_16(946); -emit_16(880); -emit_16(946); -emit_16(879); -emit_16(946); -emit_16(880); -emit_16(947); -emit_16(881); -emit_16(947); -emit_16(880); -emit_16(947); -emit_16(881); -emit_16(948); -emit_16(882); -emit_16(948); -emit_16(881); -emit_16(948); -emit_16(882); -emit_16(949); -emit_16(883); -emit_16(949); -emit_16(882); -emit_16(949); -emit_16(883); -emit_16(950); -emit_16(884); -emit_16(950); -emit_16(883); -emit_16(950); -emit_16(884); -emit_16(951); -emit_16(885); -emit_16(951); -emit_16(884); -emit_16(951); -emit_16(885); -emit_16(952); -emit_16(886); -emit_16(952); -emit_16(885); -emit_16(952); -emit_16(886); -emit_16(953); -emit_16(887); -emit_16(953); -emit_16(886); -emit_16(953); -emit_16(887); -emit_16(954); -emit_16(888); -emit_16(954); -emit_16(887); -emit_16(954); -emit_16(888); -emit_16(955); -emit_16(889); -emit_16(955); -emit_16(888); -emit_16(955); -emit_16(889); -emit_16(956); -emit_16(890); -emit_16(956); -emit_16(889); -emit_16(956); -emit_16(890); -emit_16(957); -emit_16(891); -emit_16(957); -emit_16(890); -emit_16(957); -emit_16(891); -emit_16(958); -emit_16(892); -emit_16(958); -emit_16(891); -emit_16(958); -emit_16(892); -emit_16(959); -emit_16(893); -emit_16(959); -emit_16(892); -emit_16(959); -emit_16(893); -emit_16(960); -emit_16(894); -emit_16(960); -emit_16(893); -emit_16(960); -emit_16(894); -emit_16(961); -emit_16(895); -emit_16(961); -emit_16(894); -emit_16(961); -emit_16(895); -emit_16(962); -emit_16(896); -emit_16(962); -emit_16(895); -emit_16(962); -emit_16(896); -emit_16(963); -emit_16(897); -emit_16(963); -emit_16(896); -emit_16(963); -emit_16(897); -emit_16(964); -emit_16(898); -emit_16(964); -emit_16(897); -emit_16(964); -emit_16(898); -emit_16(965); -emit_16(899); -emit_16(965); -emit_16(898); -emit_16(965); -emit_16(899); -emit_16(966); -emit_16(900); -emit_16(966); -emit_16(899); -emit_16(966); -emit_16(900); -emit_16(967); -emit_16(901); -emit_16(967); -emit_16(900); -emit_16(967); -emit_16(901); -emit_16(968); -emit_16(902); -emit_16(968); -emit_16(901); -emit_16(968); -emit_16(902); -emit_16(969); -emit_16(903); -emit_16(969); -emit_16(902); -emit_16(969); -emit_16(903); -emit_16(970); -emit_16(904); -emit_16(970); -emit_16(903); -emit_16(970); -emit_16(904); -emit_16(971); -emit_16(905); -emit_16(971); -emit_16(904); -emit_16(971); -emit_16(905); -emit_16(972); -emit_16(906); -emit_16(972); -emit_16(905); -emit_16(972); -emit_16(906); -emit_16(973); -emit_16(907); -emit_16(973); -emit_16(906); -emit_16(973); -emit_16(907); -emit_16(974); -emit_16(908); -emit_16(974); -emit_16(907); -emit_16(974); -emit_16(908); -emit_16(975); -emit_16(909); -emit_16(975); -emit_16(908); -emit_16(975); -emit_16(909); -emit_16(976); -emit_16(910); -emit_16(976); -emit_16(909); -emit_16(976); -emit_16(910); -emit_16(977); -emit_16(911); -emit_16(977); -emit_16(910); -emit_16(977); -emit_16(911); -emit_16(978); -emit_16(912); -emit_16(978); -emit_16(911); -emit_16(978); -emit_16(912); -emit_16(979); -emit_16(913); -emit_16(979); -emit_16(912); -emit_16(979); -emit_16(913); -emit_16(980); -emit_16(914); -emit_16(980); -emit_16(913); -emit_16(980); -emit_16(914); -emit_16(981); -emit_16(915); -emit_16(981); -emit_16(914); -emit_16(981); -emit_16(915); -emit_16(982); -emit_16(916); -emit_16(982); -emit_16(915); -emit_16(982); -emit_16(916); -emit_16(983); -emit_16(917); -emit_16(983); -emit_16(916); -emit_16(983); -emit_16(917); -emit_16(984); -emit_16(918); -emit_16(984); -emit_16(917); -emit_16(984); -emit_16(918); -emit_16(985); -emit_16(919); -emit_16(985); -emit_16(918); -emit_16(985); -emit_16(919); -emit_16(986); -emit_16(920); -emit_16(986); -emit_16(919); -emit_16(986); -emit_16(920); -emit_16(987); -emit_16(921); -emit_16(987); -emit_16(920); -emit_16(987); -emit_16(921); -emit_16(988); -emit_16(922); -emit_16(988); -emit_16(921); -emit_16(988); -emit_16(922); -emit_16(989); -emit_16(923); -emit_16(989); -emit_16(922); -emit_16(990); -emit_16(924); -emit_16(991); -emit_16(925); -emit_16(991); -emit_16(924); -emit_16(991); -emit_16(925); -emit_16(992); -emit_16(926); -emit_16(992); -emit_16(925); -emit_16(992); -emit_16(926); -emit_16(993); -emit_16(927); -emit_16(993); -emit_16(926); -emit_16(993); -emit_16(927); -emit_16(994); -emit_16(928); -emit_16(994); -emit_16(927); -emit_16(994); -emit_16(928); -emit_16(995); -emit_16(929); -emit_16(995); -emit_16(928); -emit_16(995); -emit_16(929); -emit_16(996); -emit_16(930); -emit_16(996); -emit_16(929); -emit_16(996); -emit_16(930); -emit_16(997); -emit_16(931); -emit_16(997); -emit_16(930); -emit_16(997); -emit_16(931); -emit_16(998); -emit_16(932); -emit_16(998); -emit_16(931); -emit_16(998); -emit_16(932); -emit_16(999); -emit_16(933); -emit_16(999); -emit_16(932); -emit_16(999); -emit_16(933); -emit_16(1000); -emit_16(934); -emit_16(1000); -emit_16(933); -emit_16(1000); -emit_16(934); -emit_16(1001); -emit_16(935); -emit_16(1001); -emit_16(934); -emit_16(1001); -emit_16(935); -emit_16(1002); -emit_16(936); -emit_16(1002); -emit_16(935); -emit_16(1002); -emit_16(936); -emit_16(1003); -emit_16(937); -emit_16(1003); -emit_16(936); -emit_16(1003); -emit_16(937); -emit_16(1004); -emit_16(938); -emit_16(1004); -emit_16(937); -emit_16(1004); -emit_16(938); -emit_16(1005); -emit_16(939); -emit_16(1005); -emit_16(938); -emit_16(1005); -emit_16(939); -emit_16(1006); -emit_16(940); -emit_16(1006); -emit_16(939); -emit_16(1006); -emit_16(940); -emit_16(1007); -emit_16(941); -emit_16(1007); -emit_16(940); -emit_16(1007); -emit_16(941); -emit_16(1008); -emit_16(942); -emit_16(1008); -emit_16(941); -emit_16(1008); -emit_16(942); -emit_16(1009); -emit_16(943); -emit_16(1009); -emit_16(942); -emit_16(1009); -emit_16(943); -emit_16(1010); -emit_16(944); -emit_16(1010); -emit_16(943); -emit_16(1010); -emit_16(944); -emit_16(1011); -emit_16(945); -emit_16(1011); -emit_16(944); -emit_16(1011); -emit_16(945); -emit_16(1012); -emit_16(946); -emit_16(1012); -emit_16(945); -emit_16(1012); -emit_16(946); -emit_16(1013); -emit_16(947); -emit_16(1013); -emit_16(946); -emit_16(1013); -emit_16(947); -emit_16(1014); -emit_16(948); -emit_16(1014); -emit_16(947); -emit_16(1014); -emit_16(948); -emit_16(1015); -emit_16(949); -emit_16(1015); -emit_16(948); -emit_16(1015); -emit_16(949); -emit_16(1016); -emit_16(950); -emit_16(1016); -emit_16(949); -emit_16(1016); -emit_16(950); -emit_16(1017); -emit_16(951); -emit_16(1017); -emit_16(950); -emit_16(1017); -emit_16(951); -emit_16(1018); -emit_16(952); -emit_16(1018); -emit_16(951); -emit_16(1018); -emit_16(952); -emit_16(1019); -emit_16(953); -emit_16(1019); -emit_16(952); -emit_16(1019); -emit_16(953); -emit_16(1020); -emit_16(954); -emit_16(1020); -emit_16(953); -emit_16(1020); -emit_16(954); -emit_16(1021); -emit_16(955); -emit_16(1021); -emit_16(954); -emit_16(1021); -emit_16(955); -emit_16(1022); -emit_16(956); -emit_16(1022); -emit_16(955); -emit_16(1022); -emit_16(956); -emit_16(1023); -emit_16(957); -emit_16(1023); -emit_16(956); -emit_16(1023); -emit_16(957); -emit_16(1024); -emit_16(958); -emit_16(1024); -emit_16(957); -emit_16(1024); -emit_16(958); -emit_16(1025); -emit_16(959); -emit_16(1025); -emit_16(958); -emit_16(1025); -emit_16(959); -emit_16(1026); -emit_16(960); -emit_16(1026); -emit_16(959); -emit_16(1026); -emit_16(960); -emit_16(1027); -emit_16(961); -emit_16(1027); -emit_16(960); -emit_16(1027); -emit_16(961); -emit_16(1028); -emit_16(962); -emit_16(1028); -emit_16(961); -emit_16(1028); -emit_16(962); -emit_16(1029); -emit_16(963); -emit_16(1029); -emit_16(962); -emit_16(1029); -emit_16(963); -emit_16(1030); -emit_16(964); -emit_16(1030); -emit_16(963); -emit_16(1030); -emit_16(964); -emit_16(1031); -emit_16(965); -emit_16(1031); -emit_16(964); -emit_16(1031); -emit_16(965); -emit_16(1032); -emit_16(966); -emit_16(1032); -emit_16(965); -emit_16(1032); -emit_16(966); -emit_16(1033); -emit_16(967); -emit_16(1033); -emit_16(966); -emit_16(1033); -emit_16(967); -emit_16(1034); -emit_16(968); -emit_16(1034); -emit_16(967); -emit_16(1034); -emit_16(968); -emit_16(1035); -emit_16(969); -emit_16(1035); -emit_16(968); -emit_16(1035); -emit_16(969); -emit_16(1036); -emit_16(970); -emit_16(1036); -emit_16(969); -emit_16(1036); -emit_16(970); -emit_16(1037); -emit_16(971); -emit_16(1037); -emit_16(970); -emit_16(1037); -emit_16(971); -emit_16(1038); -emit_16(972); -emit_16(1038); -emit_16(971); -emit_16(1038); -emit_16(972); -emit_16(1039); -emit_16(973); -emit_16(1039); -emit_16(972); -emit_16(1039); -emit_16(973); -emit_16(1040); -emit_16(974); -emit_16(1040); -emit_16(973); -emit_16(1040); -emit_16(974); -emit_16(1041); -emit_16(975); -emit_16(1041); -emit_16(974); -emit_16(1041); -emit_16(975); -emit_16(1042); -emit_16(976); -emit_16(1042); -emit_16(975); -emit_16(1042); -emit_16(976); -emit_16(1043); -emit_16(977); -emit_16(1043); -emit_16(976); -emit_16(1043); -emit_16(977); -emit_16(1044); -emit_16(978); -emit_16(1044); -emit_16(977); -emit_16(1044); -emit_16(978); -emit_16(1045); -emit_16(979); -emit_16(1045); -emit_16(978); -emit_16(1045); -emit_16(979); -emit_16(1046); -emit_16(980); -emit_16(1046); -emit_16(979); -emit_16(1046); -emit_16(980); -emit_16(1047); -emit_16(981); -emit_16(1047); -emit_16(980); -emit_16(1047); -emit_16(981); -emit_16(1048); -emit_16(982); -emit_16(1048); -emit_16(981); -emit_16(1048); -emit_16(982); -emit_16(1049); -emit_16(983); -emit_16(1049); -emit_16(982); -emit_16(1049); -emit_16(983); -emit_16(1050); -emit_16(984); -emit_16(1050); -emit_16(983); -emit_16(1050); -emit_16(984); -emit_16(1051); -emit_16(985); -emit_16(1051); -emit_16(984); -emit_16(1051); -emit_16(985); -emit_16(1052); -emit_16(986); -emit_16(1052); -emit_16(985); -emit_16(1052); -emit_16(986); -emit_16(1053); -emit_16(987); -emit_16(1053); -emit_16(986); -emit_16(1053); -emit_16(987); -emit_16(1054); -emit_16(988); -emit_16(1054); -emit_16(987); -emit_16(1054); -emit_16(988); -emit_16(1055); -emit_16(989); -emit_16(1055); -emit_16(988); -emit_16(1056); -emit_16(990); -emit_16(1057); -emit_16(991); -emit_16(1057); -emit_16(990); -emit_16(1057); -emit_16(991); -emit_16(1058); -emit_16(992); -emit_16(1058); -emit_16(991); -emit_16(1058); -emit_16(992); -emit_16(1059); -emit_16(993); -emit_16(1059); -emit_16(992); -emit_16(1059); -emit_16(993); -emit_16(1060); -emit_16(994); -emit_16(1060); -emit_16(993); -emit_16(1060); -emit_16(994); -emit_16(1061); -emit_16(995); -emit_16(1061); -emit_16(994); -emit_16(1061); -emit_16(995); -emit_16(1062); -emit_16(996); -emit_16(1062); -emit_16(995); -emit_16(1062); -emit_16(996); -emit_16(1063); -emit_16(997); -emit_16(1063); -emit_16(996); -emit_16(1063); -emit_16(997); -emit_16(1064); -emit_16(998); -emit_16(1064); -emit_16(997); -emit_16(1064); -emit_16(998); -emit_16(1065); -emit_16(999); -emit_16(1065); -emit_16(998); -emit_16(1065); -emit_16(999); -emit_16(1066); -emit_16(1000); -emit_16(1066); -emit_16(999); -emit_16(1066); -emit_16(1000); -emit_16(1067); -emit_16(1001); -emit_16(1067); -emit_16(1000); -emit_16(1067); -emit_16(1001); -emit_16(1068); -emit_16(1002); -emit_16(1068); -emit_16(1001); -emit_16(1068); -emit_16(1002); -emit_16(1069); -emit_16(1003); -emit_16(1069); -emit_16(1002); -emit_16(1069); -emit_16(1003); -emit_16(1070); -emit_16(1004); -emit_16(1070); -emit_16(1003); -emit_16(1070); -emit_16(1004); -emit_16(1071); -emit_16(1005); -emit_16(1071); -emit_16(1004); -emit_16(1071); -emit_16(1005); -emit_16(1072); -emit_16(1006); -emit_16(1072); -emit_16(1005); -emit_16(1072); -emit_16(1006); -emit_16(1073); -emit_16(1007); -emit_16(1073); -emit_16(1006); -emit_16(1073); -emit_16(1007); -emit_16(1074); -emit_16(1008); -emit_16(1074); -emit_16(1007); -emit_16(1074); -emit_16(1008); -emit_16(1075); -emit_16(1009); -emit_16(1075); -emit_16(1008); -emit_16(1075); -emit_16(1009); -emit_16(1076); -emit_16(1010); -emit_16(1076); -emit_16(1009); -emit_16(1076); -emit_16(1010); -emit_16(1077); -emit_16(1011); -emit_16(1077); -emit_16(1010); -emit_16(1077); -emit_16(1011); -emit_16(1078); -emit_16(1012); -emit_16(1078); -emit_16(1011); -emit_16(1078); -emit_16(1012); -emit_16(1079); -emit_16(1013); -emit_16(1079); -emit_16(1012); -emit_16(1079); -emit_16(1013); -emit_16(1080); -emit_16(1014); -emit_16(1080); -emit_16(1013); -emit_16(1080); -emit_16(1014); -emit_16(1081); -emit_16(1015); -emit_16(1081); -emit_16(1014); -emit_16(1081); -emit_16(1015); -emit_16(1082); -emit_16(1016); -emit_16(1082); -emit_16(1015); -emit_16(1082); -emit_16(1016); -emit_16(1083); -emit_16(1017); -emit_16(1083); -emit_16(1016); -emit_16(1083); -emit_16(1017); -emit_16(1084); -emit_16(1018); -emit_16(1084); -emit_16(1017); -emit_16(1084); -emit_16(1018); -emit_16(1085); -emit_16(1019); -emit_16(1085); -emit_16(1018); -emit_16(1085); -emit_16(1019); -emit_16(1086); -emit_16(1020); -emit_16(1086); -emit_16(1019); -emit_16(1086); -emit_16(1020); -emit_16(1087); -emit_16(1021); -emit_16(1087); -emit_16(1020); -emit_16(1087); -emit_16(1021); -emit_16(1088); -emit_16(1022); -emit_16(1088); -emit_16(1021); -emit_16(1088); -emit_16(1022); -emit_16(1089); -emit_16(1023); -emit_16(1089); -emit_16(1022); -emit_16(1089); -emit_16(1023); -emit_16(1090); -emit_16(1024); -emit_16(1090); -emit_16(1023); -emit_16(1090); -emit_16(1024); -emit_16(1091); -emit_16(1025); -emit_16(1091); -emit_16(1024); -emit_16(1091); -emit_16(1025); -emit_16(1092); -emit_16(1026); -emit_16(1092); -emit_16(1025); -emit_16(1092); -emit_16(1026); -emit_16(1093); -emit_16(1027); -emit_16(1093); -emit_16(1026); -emit_16(1093); -emit_16(1027); -emit_16(1094); -emit_16(1028); -emit_16(1094); -emit_16(1027); -emit_16(1094); -emit_16(1028); -emit_16(1095); -emit_16(1029); -emit_16(1095); -emit_16(1028); -emit_16(1095); -emit_16(1029); -emit_16(1096); -emit_16(1030); -emit_16(1096); -emit_16(1029); -emit_16(1096); -emit_16(1030); -emit_16(1097); -emit_16(1031); -emit_16(1097); -emit_16(1030); -emit_16(1097); -emit_16(1031); -emit_16(1098); -emit_16(1032); -emit_16(1098); -emit_16(1031); -emit_16(1098); -emit_16(1032); -emit_16(1099); -emit_16(1033); -emit_16(1099); -emit_16(1032); -emit_16(1099); -emit_16(1033); -emit_16(1100); -emit_16(1034); -emit_16(1100); -emit_16(1033); -emit_16(1100); -emit_16(1034); -emit_16(1101); -emit_16(1035); -emit_16(1101); -emit_16(1034); -emit_16(1101); -emit_16(1035); -emit_16(1102); -emit_16(1036); -emit_16(1102); -emit_16(1035); -emit_16(1102); -emit_16(1036); -emit_16(1103); -emit_16(1037); -emit_16(1103); -emit_16(1036); -emit_16(1103); -emit_16(1037); -emit_16(1104); -emit_16(1038); -emit_16(1104); -emit_16(1037); -emit_16(1104); -emit_16(1038); -emit_16(1105); -emit_16(1039); -emit_16(1105); -emit_16(1038); -emit_16(1105); -emit_16(1039); -emit_16(1106); -emit_16(1040); -emit_16(1106); -emit_16(1039); -emit_16(1106); -emit_16(1040); -emit_16(1107); -emit_16(1041); -emit_16(1107); -emit_16(1040); -emit_16(1107); -emit_16(1041); -emit_16(1108); -emit_16(1042); -emit_16(1108); -emit_16(1041); -emit_16(1108); -emit_16(1042); -emit_16(1109); -emit_16(1043); -emit_16(1109); -emit_16(1042); -emit_16(1109); -emit_16(1043); -emit_16(1110); -emit_16(1044); -emit_16(1110); -emit_16(1043); -emit_16(1110); -emit_16(1044); -emit_16(1111); -emit_16(1045); -emit_16(1111); -emit_16(1044); -emit_16(1111); -emit_16(1045); -emit_16(1112); -emit_16(1046); -emit_16(1112); -emit_16(1045); -emit_16(1112); -emit_16(1046); -emit_16(1113); -emit_16(1047); -emit_16(1113); -emit_16(1046); -emit_16(1113); -emit_16(1047); -emit_16(1114); -emit_16(1048); -emit_16(1114); -emit_16(1047); -emit_16(1114); -emit_16(1048); -emit_16(1115); -emit_16(1049); -emit_16(1115); -emit_16(1048); -emit_16(1115); -emit_16(1049); -emit_16(1116); -emit_16(1050); -emit_16(1116); -emit_16(1049); -emit_16(1116); -emit_16(1050); -emit_16(1117); -emit_16(1051); -emit_16(1117); -emit_16(1050); -emit_16(1117); -emit_16(1051); -emit_16(1118); -emit_16(1052); -emit_16(1118); -emit_16(1051); -emit_16(1118); -emit_16(1052); -emit_16(1119); -emit_16(1053); -emit_16(1119); -emit_16(1052); -emit_16(1119); -emit_16(1053); -emit_16(1120); -emit_16(1054); -emit_16(1120); -emit_16(1053); -emit_16(1120); -emit_16(1054); -emit_16(1121); -emit_16(1055); -emit_16(1121); -emit_16(1054); -emit_16(1122); -emit_16(1056); -emit_16(1123); -emit_16(1057); -emit_16(1123); -emit_16(1056); -emit_16(1123); -emit_16(1057); -emit_16(1124); -emit_16(1058); -emit_16(1124); -emit_16(1057); -emit_16(1124); -emit_16(1058); -emit_16(1125); -emit_16(1059); -emit_16(1125); -emit_16(1058); -emit_16(1125); -emit_16(1059); -emit_16(1126); -emit_16(1060); -emit_16(1126); -emit_16(1059); -emit_16(1126); -emit_16(1060); -emit_16(1127); -emit_16(1061); -emit_16(1127); -emit_16(1060); -emit_16(1127); -emit_16(1061); -emit_16(1128); -emit_16(1062); -emit_16(1128); -emit_16(1061); -emit_16(1128); -emit_16(1062); -emit_16(1129); -emit_16(1063); -emit_16(1129); -emit_16(1062); -emit_16(1129); -emit_16(1063); -emit_16(1130); -emit_16(1064); -emit_16(1130); -emit_16(1063); -emit_16(1130); -emit_16(1064); -emit_16(1131); -emit_16(1065); -emit_16(1131); -emit_16(1064); -emit_16(1131); -emit_16(1065); -emit_16(1132); -emit_16(1066); -emit_16(1132); -emit_16(1065); -emit_16(1132); -emit_16(1066); -emit_16(1133); -emit_16(1067); -emit_16(1133); -emit_16(1066); -emit_16(1133); -emit_16(1067); -emit_16(1134); -emit_16(1068); -emit_16(1134); -emit_16(1067); -emit_16(1134); -emit_16(1068); -emit_16(1135); -emit_16(1069); -emit_16(1135); -emit_16(1068); -emit_16(1135); -emit_16(1069); -emit_16(1136); -emit_16(1070); -emit_16(1136); -emit_16(1069); -emit_16(1136); -emit_16(1070); -emit_16(1137); -emit_16(1071); -emit_16(1137); -emit_16(1070); -emit_16(1137); -emit_16(1071); -emit_16(1138); -emit_16(1072); -emit_16(1138); -emit_16(1071); -emit_16(1138); -emit_16(1072); -emit_16(1139); -emit_16(1073); -emit_16(1139); -emit_16(1072); -emit_16(1139); -emit_16(1073); -emit_16(1140); -emit_16(1074); -emit_16(1140); -emit_16(1073); -emit_16(1140); -emit_16(1074); -emit_16(1141); -emit_16(1075); -emit_16(1141); -emit_16(1074); -emit_16(1141); -emit_16(1075); -emit_16(1142); -emit_16(1076); -emit_16(1142); -emit_16(1075); -emit_16(1142); -emit_16(1076); -emit_16(1143); -emit_16(1077); -emit_16(1143); -emit_16(1076); -emit_16(1143); -emit_16(1077); -emit_16(1144); -emit_16(1078); -emit_16(1144); -emit_16(1077); -emit_16(1144); -emit_16(1078); -emit_16(1145); -emit_16(1079); -emit_16(1145); -emit_16(1078); -emit_16(1145); -emit_16(1079); -emit_16(1146); -emit_16(1080); -emit_16(1146); -emit_16(1079); -emit_16(1146); -emit_16(1080); -emit_16(1147); -emit_16(1081); -emit_16(1147); -emit_16(1080); -emit_16(1147); -emit_16(1081); -emit_16(1148); -emit_16(1082); -emit_16(1148); -emit_16(1081); -emit_16(1148); -emit_16(1082); -emit_16(1149); -emit_16(1083); -emit_16(1149); -emit_16(1082); -emit_16(1149); -emit_16(1083); -emit_16(1150); -emit_16(1084); -emit_16(1150); -emit_16(1083); -emit_16(1150); -emit_16(1084); -emit_16(1151); -emit_16(1085); -emit_16(1151); -emit_16(1084); -emit_16(1151); -emit_16(1085); -emit_16(1152); -emit_16(1086); -emit_16(1152); -emit_16(1085); -emit_16(1152); -emit_16(1086); -emit_16(1153); -emit_16(1087); -emit_16(1153); -emit_16(1086); -emit_16(1153); -emit_16(1087); -emit_16(1154); -emit_16(1088); -emit_16(1154); -emit_16(1087); -emit_16(1154); -emit_16(1088); -emit_16(1155); -emit_16(1089); -emit_16(1155); -emit_16(1088); -emit_16(1155); -emit_16(1089); -emit_16(1156); -emit_16(1090); -emit_16(1156); -emit_16(1089); -emit_16(1156); -emit_16(1090); -emit_16(1157); -emit_16(1091); -emit_16(1157); -emit_16(1090); -emit_16(1157); -emit_16(1091); -emit_16(1158); -emit_16(1092); -emit_16(1158); -emit_16(1091); -emit_16(1158); -emit_16(1092); -emit_16(1159); -emit_16(1093); -emit_16(1159); -emit_16(1092); -emit_16(1159); -emit_16(1093); -emit_16(1160); -emit_16(1094); -emit_16(1160); -emit_16(1093); -emit_16(1160); -emit_16(1094); -emit_16(1161); -emit_16(1095); -emit_16(1161); -emit_16(1094); -emit_16(1161); -emit_16(1095); -emit_16(1162); -emit_16(1096); -emit_16(1162); -emit_16(1095); -emit_16(1162); -emit_16(1096); -emit_16(1163); -emit_16(1097); -emit_16(1163); -emit_16(1096); -emit_16(1163); -emit_16(1097); -emit_16(1164); -emit_16(1098); -emit_16(1164); -emit_16(1097); -emit_16(1164); -emit_16(1098); -emit_16(1165); -emit_16(1099); -emit_16(1165); -emit_16(1098); -emit_16(1165); -emit_16(1099); -emit_16(1166); -emit_16(1100); -emit_16(1166); -emit_16(1099); -emit_16(1166); -emit_16(1100); -emit_16(1167); -emit_16(1101); -emit_16(1167); -emit_16(1100); -emit_16(1167); -emit_16(1101); -emit_16(1168); -emit_16(1102); -emit_16(1168); -emit_16(1101); -emit_16(1168); -emit_16(1102); -emit_16(1169); -emit_16(1103); -emit_16(1169); -emit_16(1102); -emit_16(1169); -emit_16(1103); -emit_16(1170); -emit_16(1104); -emit_16(1170); -emit_16(1103); -emit_16(1170); -emit_16(1104); -emit_16(1171); -emit_16(1105); -emit_16(1171); -emit_16(1104); -emit_16(1171); -emit_16(1105); -emit_16(1172); -emit_16(1106); -emit_16(1172); -emit_16(1105); -emit_16(1172); -emit_16(1106); -emit_16(1173); -emit_16(1107); -emit_16(1173); -emit_16(1106); -emit_16(1173); -emit_16(1107); -emit_16(1174); -emit_16(1108); -emit_16(1174); -emit_16(1107); -emit_16(1174); -emit_16(1108); -emit_16(1175); -emit_16(1109); -emit_16(1175); -emit_16(1108); -emit_16(1175); -emit_16(1109); -emit_16(1176); -emit_16(1110); -emit_16(1176); -emit_16(1109); -emit_16(1176); -emit_16(1110); -emit_16(1177); -emit_16(1111); -emit_16(1177); -emit_16(1110); -emit_16(1177); -emit_16(1111); -emit_16(1178); -emit_16(1112); -emit_16(1178); -emit_16(1111); -emit_16(1178); -emit_16(1112); -emit_16(1179); -emit_16(1113); -emit_16(1179); -emit_16(1112); -emit_16(1179); -emit_16(1113); -emit_16(1180); -emit_16(1114); -emit_16(1180); -emit_16(1113); -emit_16(1180); -emit_16(1114); -emit_16(1181); -emit_16(1115); -emit_16(1181); -emit_16(1114); -emit_16(1181); -emit_16(1115); -emit_16(1182); -emit_16(1116); -emit_16(1182); -emit_16(1115); -emit_16(1182); -emit_16(1116); -emit_16(1183); -emit_16(1117); -emit_16(1183); -emit_16(1116); -emit_16(1183); -emit_16(1117); -emit_16(1184); -emit_16(1118); -emit_16(1184); -emit_16(1117); -emit_16(1184); -emit_16(1118); -emit_16(1185); -emit_16(1119); -emit_16(1185); -emit_16(1118); -emit_16(1185); -emit_16(1119); -emit_16(1186); -emit_16(1120); -emit_16(1186); -emit_16(1119); -emit_16(1186); -emit_16(1120); -emit_16(1187); -emit_16(1121); -emit_16(1187); -emit_16(1120); -emit_16(1188); -emit_16(1122); -emit_16(1189); -emit_16(1123); -emit_16(1189); -emit_16(1122); -emit_16(1189); -emit_16(1123); -emit_16(1190); -emit_16(1124); -emit_16(1190); -emit_16(1123); -emit_16(1190); -emit_16(1124); -emit_16(1191); -emit_16(1125); -emit_16(1191); -emit_16(1124); -emit_16(1191); -emit_16(1125); -emit_16(1192); -emit_16(1126); -emit_16(1192); -emit_16(1125); -emit_16(1192); -emit_16(1126); -emit_16(1193); -emit_16(1127); -emit_16(1193); -emit_16(1126); -emit_16(1193); -emit_16(1127); -emit_16(1194); -emit_16(1128); -emit_16(1194); -emit_16(1127); -emit_16(1194); -emit_16(1128); -emit_16(1195); -emit_16(1129); -emit_16(1195); -emit_16(1128); -emit_16(1195); -emit_16(1129); -emit_16(1196); -emit_16(1130); -emit_16(1196); -emit_16(1129); -emit_16(1196); -emit_16(1130); -emit_16(1197); -emit_16(1131); -emit_16(1197); -emit_16(1130); -emit_16(1197); -emit_16(1131); -emit_16(1198); -emit_16(1132); -emit_16(1198); -emit_16(1131); -emit_16(1198); -emit_16(1132); -emit_16(1199); -emit_16(1133); -emit_16(1199); -emit_16(1132); -emit_16(1199); -emit_16(1133); -emit_16(1200); -emit_16(1134); -emit_16(1200); -emit_16(1133); -emit_16(1200); -emit_16(1134); -emit_16(1201); -emit_16(1135); -emit_16(1201); -emit_16(1134); -emit_16(1201); -emit_16(1135); -emit_16(1202); -emit_16(1136); -emit_16(1202); -emit_16(1135); -emit_16(1202); -emit_16(1136); -emit_16(1203); -emit_16(1137); -emit_16(1203); -emit_16(1136); -emit_16(1203); -emit_16(1137); -emit_16(1204); -emit_16(1138); -emit_16(1204); -emit_16(1137); -emit_16(1204); -emit_16(1138); -emit_16(1205); -emit_16(1139); -emit_16(1205); -emit_16(1138); -emit_16(1205); -emit_16(1139); -emit_16(1206); -emit_16(1140); -emit_16(1206); -emit_16(1139); -emit_16(1206); -emit_16(1140); -emit_16(1207); -emit_16(1141); -emit_16(1207); -emit_16(1140); -emit_16(1207); -emit_16(1141); -emit_16(1208); -emit_16(1142); -emit_16(1208); -emit_16(1141); -emit_16(1208); -emit_16(1142); -emit_16(1209); -emit_16(1143); -emit_16(1209); -emit_16(1142); -emit_16(1209); -emit_16(1143); -emit_16(1210); -emit_16(1144); -emit_16(1210); -emit_16(1143); -emit_16(1210); -emit_16(1144); -emit_16(1211); -emit_16(1145); -emit_16(1211); -emit_16(1144); -emit_16(1211); -emit_16(1145); -emit_16(1212); -emit_16(1146); -emit_16(1212); -emit_16(1145); -emit_16(1212); -emit_16(1146); -emit_16(1213); -emit_16(1147); -emit_16(1213); -emit_16(1146); -emit_16(1213); -emit_16(1147); -emit_16(1214); -emit_16(1148); -emit_16(1214); -emit_16(1147); -emit_16(1214); -emit_16(1148); -emit_16(1215); -emit_16(1149); -emit_16(1215); -emit_16(1148); -emit_16(1215); -emit_16(1149); -emit_16(1216); -emit_16(1150); -emit_16(1216); -emit_16(1149); -emit_16(1216); -emit_16(1150); -emit_16(1217); -emit_16(1151); -emit_16(1217); -emit_16(1150); -emit_16(1217); -emit_16(1151); -emit_16(1218); -emit_16(1152); -emit_16(1218); -emit_16(1151); -emit_16(1218); -emit_16(1152); -emit_16(1219); -emit_16(1153); -emit_16(1219); -emit_16(1152); -emit_16(1219); -emit_16(1153); -emit_16(1220); -emit_16(1154); -emit_16(1220); -emit_16(1153); -emit_16(1220); -emit_16(1154); -emit_16(1221); -emit_16(1155); -emit_16(1221); -emit_16(1154); -emit_16(1221); -emit_16(1155); -emit_16(1222); -emit_16(1156); -emit_16(1222); -emit_16(1155); -emit_16(1222); -emit_16(1156); -emit_16(1223); -emit_16(1157); -emit_16(1223); -emit_16(1156); -emit_16(1223); -emit_16(1157); -emit_16(1224); -emit_16(1158); -emit_16(1224); -emit_16(1157); -emit_16(1224); -emit_16(1158); -emit_16(1225); -emit_16(1159); -emit_16(1225); -emit_16(1158); -emit_16(1225); -emit_16(1159); -emit_16(1226); -emit_16(1160); -emit_16(1226); -emit_16(1159); -emit_16(1226); -emit_16(1160); -emit_16(1227); -emit_16(1161); -emit_16(1227); -emit_16(1160); -emit_16(1227); -emit_16(1161); -emit_16(1228); -emit_16(1162); -emit_16(1228); -emit_16(1161); -emit_16(1228); -emit_16(1162); -emit_16(1229); -emit_16(1163); -emit_16(1229); -emit_16(1162); -emit_16(1229); -emit_16(1163); -emit_16(1230); -emit_16(1164); -emit_16(1230); -emit_16(1163); -emit_16(1230); -emit_16(1164); -emit_16(1231); -emit_16(1165); -emit_16(1231); -emit_16(1164); -emit_16(1231); -emit_16(1165); -emit_16(1232); -emit_16(1166); -emit_16(1232); -emit_16(1165); -emit_16(1232); -emit_16(1166); -emit_16(1233); -emit_16(1167); -emit_16(1233); -emit_16(1166); -emit_16(1233); -emit_16(1167); -emit_16(1234); -emit_16(1168); -emit_16(1234); -emit_16(1167); -emit_16(1234); -emit_16(1168); -emit_16(1235); -emit_16(1169); -emit_16(1235); -emit_16(1168); -emit_16(1235); -emit_16(1169); -emit_16(1236); -emit_16(1170); -emit_16(1236); -emit_16(1169); -emit_16(1236); -emit_16(1170); -emit_16(1237); -emit_16(1171); -emit_16(1237); -emit_16(1170); -emit_16(1237); -emit_16(1171); -emit_16(1238); -emit_16(1172); -emit_16(1238); -emit_16(1171); -emit_16(1238); -emit_16(1172); -emit_16(1239); -emit_16(1173); -emit_16(1239); -emit_16(1172); -emit_16(1239); -emit_16(1173); -emit_16(1240); -emit_16(1174); -emit_16(1240); -emit_16(1173); -emit_16(1240); -emit_16(1174); -emit_16(1241); -emit_16(1175); -emit_16(1241); -emit_16(1174); -emit_16(1241); -emit_16(1175); -emit_16(1242); -emit_16(1176); -emit_16(1242); -emit_16(1175); -emit_16(1242); -emit_16(1176); -emit_16(1243); -emit_16(1177); -emit_16(1243); -emit_16(1176); -emit_16(1243); -emit_16(1177); -emit_16(1244); -emit_16(1178); -emit_16(1244); -emit_16(1177); -emit_16(1244); -emit_16(1178); -emit_16(1245); -emit_16(1179); -emit_16(1245); -emit_16(1178); -emit_16(1245); -emit_16(1179); -emit_16(1246); -emit_16(1180); -emit_16(1246); -emit_16(1179); -emit_16(1246); -emit_16(1180); -emit_16(1247); -emit_16(1181); -emit_16(1247); -emit_16(1180); -emit_16(1247); -emit_16(1181); -emit_16(1248); -emit_16(1182); -emit_16(1248); -emit_16(1181); -emit_16(1248); -emit_16(1182); -emit_16(1249); -emit_16(1183); -emit_16(1249); -emit_16(1182); -emit_16(1249); -emit_16(1183); -emit_16(1250); -emit_16(1184); -emit_16(1250); -emit_16(1183); -emit_16(1250); -emit_16(1184); -emit_16(1251); -emit_16(1185); -emit_16(1251); -emit_16(1184); -emit_16(1251); -emit_16(1185); -emit_16(1252); -emit_16(1186); -emit_16(1252); -emit_16(1185); -emit_16(1252); -emit_16(1186); -emit_16(1253); -emit_16(1187); -emit_16(1253); -emit_16(1186); -emit_16(1254); -emit_16(1188); -emit_16(1255); -emit_16(1189); -emit_16(1255); -emit_16(1188); -emit_16(1255); -emit_16(1189); -emit_16(1256); -emit_16(1190); -emit_16(1256); -emit_16(1189); -emit_16(1256); -emit_16(1190); -emit_16(1257); -emit_16(1191); -emit_16(1257); -emit_16(1190); -emit_16(1257); -emit_16(1191); -emit_16(1258); -emit_16(1192); -emit_16(1258); -emit_16(1191); -emit_16(1258); -emit_16(1192); -emit_16(1259); -emit_16(1193); -emit_16(1259); -emit_16(1192); -emit_16(1259); -emit_16(1193); -emit_16(1260); -emit_16(1194); -emit_16(1260); -emit_16(1193); -emit_16(1260); -emit_16(1194); -emit_16(1261); -emit_16(1195); -emit_16(1261); -emit_16(1194); -emit_16(1261); -emit_16(1195); -emit_16(1262); -emit_16(1196); -emit_16(1262); -emit_16(1195); -emit_16(1262); -emit_16(1196); -emit_16(1263); -emit_16(1197); -emit_16(1263); -emit_16(1196); -emit_16(1263); -emit_16(1197); -emit_16(1264); -emit_16(1198); -emit_16(1264); -emit_16(1197); -emit_16(1264); -emit_16(1198); -emit_16(1265); -emit_16(1199); -emit_16(1265); -emit_16(1198); -emit_16(1265); -emit_16(1199); -emit_16(1266); -emit_16(1200); -emit_16(1266); -emit_16(1199); -emit_16(1266); -emit_16(1200); -emit_16(1267); -emit_16(1201); -emit_16(1267); -emit_16(1200); -emit_16(1267); -emit_16(1201); -emit_16(1268); -emit_16(1202); -emit_16(1268); -emit_16(1201); -emit_16(1268); -emit_16(1202); -emit_16(1269); -emit_16(1203); -emit_16(1269); -emit_16(1202); -emit_16(1269); -emit_16(1203); -emit_16(1270); -emit_16(1204); -emit_16(1270); -emit_16(1203); -emit_16(1270); -emit_16(1204); -emit_16(1271); -emit_16(1205); -emit_16(1271); -emit_16(1204); -emit_16(1271); -emit_16(1205); -emit_16(1272); -emit_16(1206); -emit_16(1272); -emit_16(1205); -emit_16(1272); -emit_16(1206); -emit_16(1273); -emit_16(1207); -emit_16(1273); -emit_16(1206); -emit_16(1273); -emit_16(1207); -emit_16(1274); -emit_16(1208); -emit_16(1274); -emit_16(1207); -emit_16(1274); -emit_16(1208); -emit_16(1275); -emit_16(1209); -emit_16(1275); -emit_16(1208); -emit_16(1275); -emit_16(1209); -emit_16(1276); -emit_16(1210); -emit_16(1276); -emit_16(1209); -emit_16(1276); -emit_16(1210); -emit_16(1277); -emit_16(1211); -emit_16(1277); -emit_16(1210); -emit_16(1277); -emit_16(1211); -emit_16(1278); -emit_16(1212); -emit_16(1278); -emit_16(1211); -emit_16(1278); -emit_16(1212); -emit_16(1279); -emit_16(1213); -emit_16(1279); -emit_16(1212); -emit_16(1279); -emit_16(1213); -emit_16(1280); -emit_16(1214); -emit_16(1280); -emit_16(1213); -emit_16(1280); -emit_16(1214); -emit_16(1281); -emit_16(1215); -emit_16(1281); -emit_16(1214); -emit_16(1281); -emit_16(1215); -emit_16(1282); -emit_16(1216); -emit_16(1282); -emit_16(1215); -emit_16(1282); -emit_16(1216); -emit_16(1283); -emit_16(1217); -emit_16(1283); -emit_16(1216); -emit_16(1283); -emit_16(1217); -emit_16(1284); -emit_16(1218); -emit_16(1284); -emit_16(1217); -emit_16(1284); -emit_16(1218); -emit_16(1285); -emit_16(1219); -emit_16(1285); -emit_16(1218); -emit_16(1285); -emit_16(1219); -emit_16(1286); -emit_16(1220); -emit_16(1286); -emit_16(1219); -emit_16(1286); -emit_16(1220); -emit_16(1287); -emit_16(1221); -emit_16(1287); -emit_16(1220); -emit_16(1287); -emit_16(1221); -emit_16(1288); -emit_16(1222); -emit_16(1288); -emit_16(1221); -emit_16(1288); -emit_16(1222); -emit_16(1289); -emit_16(1223); -emit_16(1289); -emit_16(1222); -emit_16(1289); -emit_16(1223); -emit_16(1290); -emit_16(1224); -emit_16(1290); -emit_16(1223); -emit_16(1290); -emit_16(1224); -emit_16(1291); -emit_16(1225); -emit_16(1291); -emit_16(1224); -emit_16(1291); -emit_16(1225); -emit_16(1292); -emit_16(1226); -emit_16(1292); -emit_16(1225); -emit_16(1292); -emit_16(1226); -emit_16(1293); -emit_16(1227); -emit_16(1293); -emit_16(1226); -emit_16(1293); -emit_16(1227); -emit_16(1294); -emit_16(1228); -emit_16(1294); -emit_16(1227); -emit_16(1294); -emit_16(1228); -emit_16(1295); -emit_16(1229); -emit_16(1295); -emit_16(1228); -emit_16(1295); -emit_16(1229); -emit_16(1296); -emit_16(1230); -emit_16(1296); -emit_16(1229); -emit_16(1296); -emit_16(1230); -emit_16(1297); -emit_16(1231); -emit_16(1297); -emit_16(1230); -emit_16(1297); -emit_16(1231); -emit_16(1298); -emit_16(1232); -emit_16(1298); -emit_16(1231); -emit_16(1298); -emit_16(1232); -emit_16(1299); -emit_16(1233); -emit_16(1299); -emit_16(1232); -emit_16(1299); -emit_16(1233); -emit_16(1300); -emit_16(1234); -emit_16(1300); -emit_16(1233); -emit_16(1300); -emit_16(1234); -emit_16(1301); -emit_16(1235); -emit_16(1301); -emit_16(1234); -emit_16(1301); -emit_16(1235); -emit_16(1302); -emit_16(1236); -emit_16(1302); -emit_16(1235); -emit_16(1302); -emit_16(1236); -emit_16(1303); -emit_16(1237); -emit_16(1303); -emit_16(1236); -emit_16(1303); -emit_16(1237); -emit_16(1304); -emit_16(1238); -emit_16(1304); -emit_16(1237); -emit_16(1304); -emit_16(1238); -emit_16(1305); -emit_16(1239); -emit_16(1305); -emit_16(1238); -emit_16(1305); -emit_16(1239); -emit_16(1306); -emit_16(1240); -emit_16(1306); -emit_16(1239); -emit_16(1306); -emit_16(1240); -emit_16(1307); -emit_16(1241); -emit_16(1307); -emit_16(1240); -emit_16(1307); -emit_16(1241); -emit_16(1308); -emit_16(1242); -emit_16(1308); -emit_16(1241); -emit_16(1308); -emit_16(1242); -emit_16(1309); -emit_16(1243); -emit_16(1309); -emit_16(1242); -emit_16(1309); -emit_16(1243); -emit_16(1310); -emit_16(1244); -emit_16(1310); -emit_16(1243); -emit_16(1310); -emit_16(1244); -emit_16(1311); -emit_16(1245); -emit_16(1311); -emit_16(1244); -emit_16(1311); -emit_16(1245); -emit_16(1312); -emit_16(1246); -emit_16(1312); -emit_16(1245); -emit_16(1312); -emit_16(1246); -emit_16(1313); -emit_16(1247); -emit_16(1313); -emit_16(1246); -emit_16(1313); -emit_16(1247); -emit_16(1314); -emit_16(1248); -emit_16(1314); -emit_16(1247); -emit_16(1314); -emit_16(1248); -emit_16(1315); -emit_16(1249); -emit_16(1315); -emit_16(1248); -emit_16(1315); -emit_16(1249); -emit_16(1316); -emit_16(1250); -emit_16(1316); -emit_16(1249); -emit_16(1316); -emit_16(1250); -emit_16(1317); -emit_16(1251); -emit_16(1317); -emit_16(1250); -emit_16(1317); -emit_16(1251); -emit_16(1318); -emit_16(1252); -emit_16(1318); -emit_16(1251); -emit_16(1318); -emit_16(1252); -emit_16(1319); -emit_16(1253); -emit_16(1319); -emit_16(1252); -emit_16(1320); -emit_16(1254); -emit_16(1321); -emit_16(1255); -emit_16(1321); -emit_16(1254); -emit_16(1321); -emit_16(1255); -emit_16(1322); -emit_16(1256); -emit_16(1322); -emit_16(1255); -emit_16(1322); -emit_16(1256); -emit_16(1323); -emit_16(1257); -emit_16(1323); -emit_16(1256); -emit_16(1323); -emit_16(1257); -emit_16(1324); -emit_16(1258); -emit_16(1324); -emit_16(1257); -emit_16(1324); -emit_16(1258); -emit_16(1325); -emit_16(1259); -emit_16(1325); -emit_16(1258); -emit_16(1325); -emit_16(1259); -emit_16(1326); -emit_16(1260); -emit_16(1326); -emit_16(1259); -emit_16(1326); -emit_16(1260); -emit_16(1327); -emit_16(1261); -emit_16(1327); -emit_16(1260); -emit_16(1327); -emit_16(1261); -emit_16(1328); -emit_16(1262); -emit_16(1328); -emit_16(1261); -emit_16(1328); -emit_16(1262); -emit_16(1329); -emit_16(1263); -emit_16(1329); -emit_16(1262); -emit_16(1329); -emit_16(1263); -emit_16(1330); -emit_16(1264); -emit_16(1330); -emit_16(1263); -emit_16(1330); -emit_16(1264); -emit_16(1331); -emit_16(1265); -emit_16(1331); -emit_16(1264); -emit_16(1331); -emit_16(1265); -emit_16(1332); -emit_16(1266); -emit_16(1332); -emit_16(1265); -emit_16(1332); -emit_16(1266); -emit_16(1333); -emit_16(1267); -emit_16(1333); -emit_16(1266); -emit_16(1333); -emit_16(1267); -emit_16(1334); -emit_16(1268); -emit_16(1334); -emit_16(1267); -emit_16(1334); -emit_16(1268); -emit_16(1335); -emit_16(1269); -emit_16(1335); -emit_16(1268); -emit_16(1335); -emit_16(1269); -emit_16(1336); -emit_16(1270); -emit_16(1336); -emit_16(1269); -emit_16(1336); -emit_16(1270); -emit_16(1337); -emit_16(1271); -emit_16(1337); -emit_16(1270); -emit_16(1337); -emit_16(1271); -emit_16(1338); -emit_16(1272); -emit_16(1338); -emit_16(1271); -emit_16(1338); -emit_16(1272); -emit_16(1339); -emit_16(1273); -emit_16(1339); -emit_16(1272); -emit_16(1339); -emit_16(1273); -emit_16(1340); -emit_16(1274); -emit_16(1340); -emit_16(1273); -emit_16(1340); -emit_16(1274); -emit_16(1341); -emit_16(1275); -emit_16(1341); -emit_16(1274); -emit_16(1341); -emit_16(1275); -emit_16(1342); -emit_16(1276); -emit_16(1342); -emit_16(1275); -emit_16(1342); -emit_16(1276); -emit_16(1343); -emit_16(1277); -emit_16(1343); -emit_16(1276); -emit_16(1343); -emit_16(1277); -emit_16(1344); -emit_16(1278); -emit_16(1344); -emit_16(1277); -emit_16(1344); -emit_16(1278); -emit_16(1345); -emit_16(1279); -emit_16(1345); -emit_16(1278); -emit_16(1345); -emit_16(1279); -emit_16(1346); -emit_16(1280); -emit_16(1346); -emit_16(1279); -emit_16(1346); -emit_16(1280); -emit_16(1347); -emit_16(1281); -emit_16(1347); -emit_16(1280); -emit_16(1347); -emit_16(1281); -emit_16(1348); -emit_16(1282); -emit_16(1348); -emit_16(1281); -emit_16(1348); -emit_16(1282); -emit_16(1349); -emit_16(1283); -emit_16(1349); -emit_16(1282); -emit_16(1349); -emit_16(1283); -emit_16(1350); -emit_16(1284); -emit_16(1350); -emit_16(1283); -emit_16(1350); -emit_16(1284); -emit_16(1351); -emit_16(1285); -emit_16(1351); -emit_16(1284); -emit_16(1351); -emit_16(1285); -emit_16(1352); -emit_16(1286); -emit_16(1352); -emit_16(1285); -emit_16(1352); -emit_16(1286); -emit_16(1353); -emit_16(1287); -emit_16(1353); -emit_16(1286); -emit_16(1353); -emit_16(1287); -emit_16(1354); -emit_16(1288); -emit_16(1354); -emit_16(1287); -emit_16(1354); -emit_16(1288); -emit_16(1355); -emit_16(1289); -emit_16(1355); -emit_16(1288); -emit_16(1355); -emit_16(1289); -emit_16(1356); -emit_16(1290); -emit_16(1356); -emit_16(1289); -emit_16(1356); -emit_16(1290); -emit_16(1357); -emit_16(1291); -emit_16(1357); -emit_16(1290); -emit_16(1357); -emit_16(1291); -emit_16(1358); -emit_16(1292); -emit_16(1358); -emit_16(1291); -emit_16(1358); -emit_16(1292); -emit_16(1359); -emit_16(1293); -emit_16(1359); -emit_16(1292); -emit_16(1359); -emit_16(1293); -emit_16(1360); -emit_16(1294); -emit_16(1360); -emit_16(1293); -emit_16(1360); -emit_16(1294); -emit_16(1361); -emit_16(1295); -emit_16(1361); -emit_16(1294); -emit_16(1361); -emit_16(1295); -emit_16(1362); -emit_16(1296); -emit_16(1362); -emit_16(1295); -emit_16(1362); -emit_16(1296); -emit_16(1363); -emit_16(1297); -emit_16(1363); -emit_16(1296); -emit_16(1363); -emit_16(1297); -emit_16(1364); -emit_16(1298); -emit_16(1364); -emit_16(1297); -emit_16(1364); -emit_16(1298); -emit_16(1365); -emit_16(1299); -emit_16(1365); -emit_16(1298); -emit_16(1365); -emit_16(1299); -emit_16(1366); -emit_16(1300); -emit_16(1366); -emit_16(1299); -emit_16(1366); -emit_16(1300); -emit_16(1367); -emit_16(1301); -emit_16(1367); -emit_16(1300); -emit_16(1367); -emit_16(1301); -emit_16(1368); -emit_16(1302); -emit_16(1368); -emit_16(1301); -emit_16(1368); -emit_16(1302); -emit_16(1369); -emit_16(1303); -emit_16(1369); -emit_16(1302); -emit_16(1369); -emit_16(1303); -emit_16(1370); -emit_16(1304); -emit_16(1370); -emit_16(1303); -emit_16(1370); -emit_16(1304); -emit_16(1371); -emit_16(1305); -emit_16(1371); -emit_16(1304); -emit_16(1371); -emit_16(1305); -emit_16(1372); -emit_16(1306); -emit_16(1372); -emit_16(1305); -emit_16(1372); -emit_16(1306); -emit_16(1373); -emit_16(1307); -emit_16(1373); -emit_16(1306); -emit_16(1373); -emit_16(1307); -emit_16(1374); -emit_16(1308); -emit_16(1374); -emit_16(1307); -emit_16(1374); -emit_16(1308); -emit_16(1375); -emit_16(1309); -emit_16(1375); -emit_16(1308); -emit_16(1375); -emit_16(1309); -emit_16(1376); -emit_16(1310); -emit_16(1376); -emit_16(1309); -emit_16(1376); -emit_16(1310); -emit_16(1377); -emit_16(1311); -emit_16(1377); -emit_16(1310); -emit_16(1377); -emit_16(1311); -emit_16(1378); -emit_16(1312); -emit_16(1378); -emit_16(1311); -emit_16(1378); -emit_16(1312); -emit_16(1379); -emit_16(1313); -emit_16(1379); -emit_16(1312); -emit_16(1379); -emit_16(1313); -emit_16(1380); -emit_16(1314); -emit_16(1380); -emit_16(1313); -emit_16(1380); -emit_16(1314); -emit_16(1381); -emit_16(1315); -emit_16(1381); -emit_16(1314); -emit_16(1381); -emit_16(1315); -emit_16(1382); -emit_16(1316); -emit_16(1382); -emit_16(1315); -emit_16(1382); -emit_16(1316); -emit_16(1383); -emit_16(1317); -emit_16(1383); -emit_16(1316); -emit_16(1383); -emit_16(1317); -emit_16(1384); -emit_16(1318); -emit_16(1384); -emit_16(1317); -emit_16(1384); -emit_16(1318); -emit_16(1385); -emit_16(1319); -emit_16(1385); -emit_16(1318); -emit_16(1386); -emit_16(1320); -emit_16(1387); -emit_16(1321); -emit_16(1387); -emit_16(1320); -emit_16(1387); -emit_16(1321); -emit_16(1388); -emit_16(1322); -emit_16(1388); -emit_16(1321); -emit_16(1388); -emit_16(1322); -emit_16(1389); -emit_16(1323); -emit_16(1389); -emit_16(1322); -emit_16(1389); -emit_16(1323); -emit_16(1390); -emit_16(1324); -emit_16(1390); -emit_16(1323); -emit_16(1390); -emit_16(1324); -emit_16(1391); -emit_16(1325); -emit_16(1391); -emit_16(1324); -emit_16(1391); -emit_16(1325); -emit_16(1392); -emit_16(1326); -emit_16(1392); -emit_16(1325); -emit_16(1392); -emit_16(1326); -emit_16(1393); -emit_16(1327); -emit_16(1393); -emit_16(1326); -emit_16(1393); -emit_16(1327); -emit_16(1394); -emit_16(1328); -emit_16(1394); -emit_16(1327); -emit_16(1394); -emit_16(1328); -emit_16(1395); -emit_16(1329); -emit_16(1395); -emit_16(1328); -emit_16(1395); -emit_16(1329); -emit_16(1396); -emit_16(1330); -emit_16(1396); -emit_16(1329); -emit_16(1396); -emit_16(1330); -emit_16(1397); -emit_16(1331); -emit_16(1397); -emit_16(1330); -emit_16(1397); -emit_16(1331); -emit_16(1398); -emit_16(1332); -emit_16(1398); -emit_16(1331); -emit_16(1398); -emit_16(1332); -emit_16(1399); -emit_16(1333); -emit_16(1399); -emit_16(1332); -emit_16(1399); -emit_16(1333); -emit_16(1400); -emit_16(1334); -emit_16(1400); -emit_16(1333); -emit_16(1400); -emit_16(1334); -emit_16(1401); -emit_16(1335); -emit_16(1401); -emit_16(1334); -emit_16(1401); -emit_16(1335); -emit_16(1402); -emit_16(1336); -emit_16(1402); -emit_16(1335); -emit_16(1402); -emit_16(1336); -emit_16(1403); -emit_16(1337); -emit_16(1403); -emit_16(1336); -emit_16(1403); -emit_16(1337); -emit_16(1404); -emit_16(1338); -emit_16(1404); -emit_16(1337); -emit_16(1404); -emit_16(1338); -emit_16(1405); -emit_16(1339); -emit_16(1405); -emit_16(1338); -emit_16(1405); -emit_16(1339); -emit_16(1406); -emit_16(1340); -emit_16(1406); -emit_16(1339); -emit_16(1406); -emit_16(1340); -emit_16(1407); -emit_16(1341); -emit_16(1407); -emit_16(1340); -emit_16(1407); -emit_16(1341); -emit_16(1408); -emit_16(1342); -emit_16(1408); -emit_16(1341); -emit_16(1408); -emit_16(1342); -emit_16(1409); -emit_16(1343); -emit_16(1409); -emit_16(1342); -emit_16(1409); -emit_16(1343); -emit_16(1410); -emit_16(1344); -emit_16(1410); -emit_16(1343); -emit_16(1410); -emit_16(1344); -emit_16(1411); -emit_16(1345); -emit_16(1411); -emit_16(1344); -emit_16(1411); -emit_16(1345); -emit_16(1412); -emit_16(1346); -emit_16(1412); -emit_16(1345); -emit_16(1412); -emit_16(1346); -emit_16(1413); -emit_16(1347); -emit_16(1413); -emit_16(1346); -emit_16(1413); -emit_16(1347); -emit_16(1414); -emit_16(1348); -emit_16(1414); -emit_16(1347); -emit_16(1414); -emit_16(1348); -emit_16(1415); -emit_16(1349); -emit_16(1415); -emit_16(1348); -emit_16(1415); -emit_16(1349); -emit_16(1416); -emit_16(1350); -emit_16(1416); -emit_16(1349); -emit_16(1416); -emit_16(1350); -emit_16(1417); -emit_16(1351); -emit_16(1417); -emit_16(1350); -emit_16(1417); -emit_16(1351); -emit_16(1418); -emit_16(1352); -emit_16(1418); -emit_16(1351); -emit_16(1418); -emit_16(1352); -emit_16(1419); -emit_16(1353); -emit_16(1419); -emit_16(1352); -emit_16(1419); -emit_16(1353); -emit_16(1420); -emit_16(1354); -emit_16(1420); -emit_16(1353); -emit_16(1420); -emit_16(1354); -emit_16(1421); -emit_16(1355); -emit_16(1421); -emit_16(1354); -emit_16(1421); -emit_16(1355); -emit_16(1422); -emit_16(1356); -emit_16(1422); -emit_16(1355); -emit_16(1422); -emit_16(1356); -emit_16(1423); -emit_16(1357); -emit_16(1423); -emit_16(1356); -emit_16(1423); -emit_16(1357); -emit_16(1424); -emit_16(1358); -emit_16(1424); -emit_16(1357); -emit_16(1424); -emit_16(1358); -emit_16(1425); -emit_16(1359); -emit_16(1425); -emit_16(1358); -emit_16(1425); -emit_16(1359); -emit_16(1426); -emit_16(1360); -emit_16(1426); -emit_16(1359); -emit_16(1426); -emit_16(1360); -emit_16(1427); -emit_16(1361); -emit_16(1427); -emit_16(1360); -emit_16(1427); -emit_16(1361); -emit_16(1428); -emit_16(1362); -emit_16(1428); -emit_16(1361); -emit_16(1428); -emit_16(1362); -emit_16(1429); -emit_16(1363); -emit_16(1429); -emit_16(1362); -emit_16(1429); -emit_16(1363); -emit_16(1430); -emit_16(1364); -emit_16(1430); -emit_16(1363); -emit_16(1430); -emit_16(1364); -emit_16(1431); -emit_16(1365); -emit_16(1431); -emit_16(1364); -emit_16(1431); -emit_16(1365); -emit_16(1432); -emit_16(1366); -emit_16(1432); -emit_16(1365); -emit_16(1432); -emit_16(1366); -emit_16(1433); -emit_16(1367); -emit_16(1433); -emit_16(1366); -emit_16(1433); -emit_16(1367); -emit_16(1434); -emit_16(1368); -emit_16(1434); -emit_16(1367); -emit_16(1434); -emit_16(1368); -emit_16(1435); -emit_16(1369); -emit_16(1435); -emit_16(1368); -emit_16(1435); -emit_16(1369); -emit_16(1436); -emit_16(1370); -emit_16(1436); -emit_16(1369); -emit_16(1436); -emit_16(1370); -emit_16(1437); -emit_16(1371); -emit_16(1437); -emit_16(1370); -emit_16(1437); -emit_16(1371); -emit_16(1438); -emit_16(1372); -emit_16(1438); -emit_16(1371); -emit_16(1438); -emit_16(1372); -emit_16(1439); -emit_16(1373); -emit_16(1439); -emit_16(1372); -emit_16(1439); -emit_16(1373); -emit_16(1440); -emit_16(1374); -emit_16(1440); -emit_16(1373); -emit_16(1440); -emit_16(1374); -emit_16(1441); -emit_16(1375); -emit_16(1441); -emit_16(1374); -emit_16(1441); -emit_16(1375); -emit_16(1442); -emit_16(1376); -emit_16(1442); -emit_16(1375); -emit_16(1442); -emit_16(1376); -emit_16(1443); -emit_16(1377); -emit_16(1443); -emit_16(1376); -emit_16(1443); -emit_16(1377); -emit_16(1444); -emit_16(1378); -emit_16(1444); -emit_16(1377); -emit_16(1444); -emit_16(1378); -emit_16(1445); -emit_16(1379); -emit_16(1445); -emit_16(1378); -emit_16(1445); -emit_16(1379); -emit_16(1446); -emit_16(1380); -emit_16(1446); -emit_16(1379); -emit_16(1446); -emit_16(1380); -emit_16(1447); -emit_16(1381); -emit_16(1447); -emit_16(1380); -emit_16(1447); -emit_16(1381); -emit_16(1448); -emit_16(1382); -emit_16(1448); -emit_16(1381); -emit_16(1448); -emit_16(1382); -emit_16(1449); -emit_16(1383); -emit_16(1449); -emit_16(1382); -emit_16(1449); -emit_16(1383); -emit_16(1450); -emit_16(1384); -emit_16(1450); -emit_16(1383); -emit_16(1450); -emit_16(1384); -emit_16(1451); -emit_16(1385); -emit_16(1451); -emit_16(1384); -emit_16(1452); -emit_16(1386); -emit_16(1453); -emit_16(1387); -emit_16(1453); -emit_16(1386); -emit_16(1453); -emit_16(1387); -emit_16(1454); -emit_16(1388); -emit_16(1454); -emit_16(1387); -emit_16(1454); -emit_16(1388); -emit_16(1455); -emit_16(1389); -emit_16(1455); -emit_16(1388); -emit_16(1455); -emit_16(1389); -emit_16(1456); -emit_16(1390); -emit_16(1456); -emit_16(1389); -emit_16(1456); -emit_16(1390); -emit_16(1457); -emit_16(1391); -emit_16(1457); -emit_16(1390); -emit_16(1457); -emit_16(1391); -emit_16(1458); -emit_16(1392); -emit_16(1458); -emit_16(1391); -emit_16(1458); -emit_16(1392); -emit_16(1459); -emit_16(1393); -emit_16(1459); -emit_16(1392); -emit_16(1459); -emit_16(1393); -emit_16(1460); -emit_16(1394); -emit_16(1460); -emit_16(1393); -emit_16(1460); -emit_16(1394); -emit_16(1461); -emit_16(1395); -emit_16(1461); -emit_16(1394); -emit_16(1461); -emit_16(1395); -emit_16(1462); -emit_16(1396); -emit_16(1462); -emit_16(1395); -emit_16(1462); -emit_16(1396); -emit_16(1463); -emit_16(1397); -emit_16(1463); -emit_16(1396); -emit_16(1463); -emit_16(1397); -emit_16(1464); -emit_16(1398); -emit_16(1464); -emit_16(1397); -emit_16(1464); -emit_16(1398); -emit_16(1465); -emit_16(1399); -emit_16(1465); -emit_16(1398); -emit_16(1465); -emit_16(1399); -emit_16(1466); -emit_16(1400); -emit_16(1466); -emit_16(1399); -emit_16(1466); -emit_16(1400); -emit_16(1467); -emit_16(1401); -emit_16(1467); -emit_16(1400); -emit_16(1467); -emit_16(1401); -emit_16(1468); -emit_16(1402); -emit_16(1468); -emit_16(1401); -emit_16(1468); -emit_16(1402); -emit_16(1469); -emit_16(1403); -emit_16(1469); -emit_16(1402); -emit_16(1469); -emit_16(1403); -emit_16(1470); -emit_16(1404); -emit_16(1470); -emit_16(1403); -emit_16(1470); -emit_16(1404); -emit_16(1471); -emit_16(1405); -emit_16(1471); -emit_16(1404); -emit_16(1471); -emit_16(1405); -emit_16(1472); -emit_16(1406); -emit_16(1472); -emit_16(1405); -emit_16(1472); -emit_16(1406); -emit_16(1473); -emit_16(1407); -emit_16(1473); -emit_16(1406); -emit_16(1473); -emit_16(1407); -emit_16(1474); -emit_16(1408); -emit_16(1474); -emit_16(1407); -emit_16(1474); -emit_16(1408); -emit_16(1475); -emit_16(1409); -emit_16(1475); -emit_16(1408); -emit_16(1475); -emit_16(1409); -emit_16(1476); -emit_16(1410); -emit_16(1476); -emit_16(1409); -emit_16(1476); -emit_16(1410); -emit_16(1477); -emit_16(1411); -emit_16(1477); -emit_16(1410); -emit_16(1477); -emit_16(1411); -emit_16(1478); -emit_16(1412); -emit_16(1478); -emit_16(1411); -emit_16(1478); -emit_16(1412); -emit_16(1479); -emit_16(1413); -emit_16(1479); -emit_16(1412); -emit_16(1479); -emit_16(1413); -emit_16(1480); -emit_16(1414); -emit_16(1480); -emit_16(1413); -emit_16(1480); -emit_16(1414); -emit_16(1481); -emit_16(1415); -emit_16(1481); -emit_16(1414); -emit_16(1481); -emit_16(1415); -emit_16(1482); -emit_16(1416); -emit_16(1482); -emit_16(1415); -emit_16(1482); -emit_16(1416); -emit_16(1483); -emit_16(1417); -emit_16(1483); -emit_16(1416); -emit_16(1483); -emit_16(1417); -emit_16(1484); -emit_16(1418); -emit_16(1484); -emit_16(1417); -emit_16(1484); -emit_16(1418); -emit_16(1485); -emit_16(1419); -emit_16(1485); -emit_16(1418); -emit_16(1485); -emit_16(1419); -emit_16(1486); -emit_16(1420); -emit_16(1486); -emit_16(1419); -emit_16(1486); -emit_16(1420); -emit_16(1487); -emit_16(1421); -emit_16(1487); -emit_16(1420); -emit_16(1487); -emit_16(1421); -emit_16(1488); -emit_16(1422); -emit_16(1488); -emit_16(1421); -emit_16(1488); -emit_16(1422); -emit_16(1489); -emit_16(1423); -emit_16(1489); -emit_16(1422); -emit_16(1489); -emit_16(1423); -emit_16(1490); -emit_16(1424); -emit_16(1490); -emit_16(1423); -emit_16(1490); -emit_16(1424); -emit_16(1491); -emit_16(1425); -emit_16(1491); -emit_16(1424); -emit_16(1491); -emit_16(1425); -emit_16(1492); -emit_16(1426); -emit_16(1492); -emit_16(1425); -emit_16(1492); -emit_16(1426); -emit_16(1493); -emit_16(1427); -emit_16(1493); -emit_16(1426); -emit_16(1493); -emit_16(1427); -emit_16(1494); -emit_16(1428); -emit_16(1494); -emit_16(1427); -emit_16(1494); -emit_16(1428); -emit_16(1495); -emit_16(1429); -emit_16(1495); -emit_16(1428); -emit_16(1495); -emit_16(1429); -emit_16(1496); -emit_16(1430); -emit_16(1496); -emit_16(1429); -emit_16(1496); -emit_16(1430); -emit_16(1497); -emit_16(1431); -emit_16(1497); -emit_16(1430); -emit_16(1497); -emit_16(1431); -emit_16(1498); -emit_16(1432); -emit_16(1498); -emit_16(1431); -emit_16(1498); -emit_16(1432); -emit_16(1499); -emit_16(1433); -emit_16(1499); -emit_16(1432); -emit_16(1499); -emit_16(1433); -emit_16(1500); -emit_16(1434); -emit_16(1500); -emit_16(1433); -emit_16(1500); -emit_16(1434); -emit_16(1501); -emit_16(1435); -emit_16(1501); -emit_16(1434); -emit_16(1501); -emit_16(1435); -emit_16(1502); -emit_16(1436); -emit_16(1502); -emit_16(1435); -emit_16(1502); -emit_16(1436); -emit_16(1503); -emit_16(1437); -emit_16(1503); -emit_16(1436); -emit_16(1503); -emit_16(1437); -emit_16(1504); -emit_16(1438); -emit_16(1504); -emit_16(1437); -emit_16(1504); -emit_16(1438); -emit_16(1505); -emit_16(1439); -emit_16(1505); -emit_16(1438); -emit_16(1505); -emit_16(1439); -emit_16(1506); -emit_16(1440); -emit_16(1506); -emit_16(1439); -emit_16(1506); -emit_16(1440); -emit_16(1507); -emit_16(1441); -emit_16(1507); -emit_16(1440); -emit_16(1507); -emit_16(1441); -emit_16(1508); -emit_16(1442); -emit_16(1508); -emit_16(1441); -emit_16(1508); -emit_16(1442); -emit_16(1509); -emit_16(1443); -emit_16(1509); -emit_16(1442); -emit_16(1509); -emit_16(1443); -emit_16(1510); -emit_16(1444); -emit_16(1510); -emit_16(1443); -emit_16(1510); -emit_16(1444); -emit_16(1511); -emit_16(1445); -emit_16(1511); -emit_16(1444); -emit_16(1511); -emit_16(1445); -emit_16(1512); -emit_16(1446); -emit_16(1512); -emit_16(1445); -emit_16(1512); -emit_16(1446); -emit_16(1513); -emit_16(1447); -emit_16(1513); -emit_16(1446); -emit_16(1513); -emit_16(1447); -emit_16(1514); -emit_16(1448); -emit_16(1514); -emit_16(1447); -emit_16(1514); -emit_16(1448); -emit_16(1515); -emit_16(1449); -emit_16(1515); -emit_16(1448); -emit_16(1515); -emit_16(1449); -emit_16(1516); -emit_16(1450); -emit_16(1516); -emit_16(1449); -emit_16(1516); -emit_16(1450); -emit_16(1517); -emit_16(1451); -emit_16(1517); -emit_16(1450); -emit_16(1518); -emit_16(1452); -emit_16(1519); -emit_16(1453); -emit_16(1519); -emit_16(1452); -emit_16(1519); -emit_16(1453); -emit_16(1520); -emit_16(1454); -emit_16(1520); -emit_16(1453); -emit_16(1520); -emit_16(1454); -emit_16(1521); -emit_16(1455); -emit_16(1521); -emit_16(1454); -emit_16(1521); -emit_16(1455); -emit_16(1522); -emit_16(1456); -emit_16(1522); -emit_16(1455); -emit_16(1522); -emit_16(1456); -emit_16(1523); -emit_16(1457); -emit_16(1523); -emit_16(1456); -emit_16(1523); -emit_16(1457); -emit_16(1524); -emit_16(1458); -emit_16(1524); -emit_16(1457); -emit_16(1524); -emit_16(1458); -emit_16(1525); -emit_16(1459); -emit_16(1525); -emit_16(1458); -emit_16(1525); -emit_16(1459); -emit_16(1526); -emit_16(1460); -emit_16(1526); -emit_16(1459); -emit_16(1526); -emit_16(1460); -emit_16(1527); -emit_16(1461); -emit_16(1527); -emit_16(1460); -emit_16(1527); -emit_16(1461); -emit_16(1528); -emit_16(1462); -emit_16(1528); -emit_16(1461); -emit_16(1528); -emit_16(1462); -emit_16(1529); -emit_16(1463); -emit_16(1529); -emit_16(1462); -emit_16(1529); -emit_16(1463); -emit_16(1530); -emit_16(1464); -emit_16(1530); -emit_16(1463); -emit_16(1530); -emit_16(1464); -emit_16(1531); -emit_16(1465); -emit_16(1531); -emit_16(1464); -emit_16(1531); -emit_16(1465); -emit_16(1532); -emit_16(1466); -emit_16(1532); -emit_16(1465); -emit_16(1532); -emit_16(1466); -emit_16(1533); -emit_16(1467); -emit_16(1533); -emit_16(1466); -emit_16(1533); -emit_16(1467); -emit_16(1534); -emit_16(1468); -emit_16(1534); -emit_16(1467); -emit_16(1534); -emit_16(1468); -emit_16(1535); -emit_16(1469); -emit_16(1535); -emit_16(1468); -emit_16(1535); -emit_16(1469); -emit_16(1536); -emit_16(1470); -emit_16(1536); -emit_16(1469); -emit_16(1536); -emit_16(1470); -emit_16(1537); -emit_16(1471); -emit_16(1537); -emit_16(1470); -emit_16(1537); -emit_16(1471); -emit_16(1538); -emit_16(1472); -emit_16(1538); -emit_16(1471); -emit_16(1538); -emit_16(1472); -emit_16(1539); -emit_16(1473); -emit_16(1539); -emit_16(1472); -emit_16(1539); -emit_16(1473); -emit_16(1540); -emit_16(1474); -emit_16(1540); -emit_16(1473); -emit_16(1540); -emit_16(1474); -emit_16(1541); -emit_16(1475); -emit_16(1541); -emit_16(1474); -emit_16(1541); -emit_16(1475); -emit_16(1542); -emit_16(1476); -emit_16(1542); -emit_16(1475); -emit_16(1542); -emit_16(1476); -emit_16(1543); -emit_16(1477); -emit_16(1543); -emit_16(1476); -emit_16(1543); -emit_16(1477); -emit_16(1544); -emit_16(1478); -emit_16(1544); -emit_16(1477); -emit_16(1544); -emit_16(1478); -emit_16(1545); -emit_16(1479); -emit_16(1545); -emit_16(1478); -emit_16(1545); -emit_16(1479); -emit_16(1546); -emit_16(1480); -emit_16(1546); -emit_16(1479); -emit_16(1546); -emit_16(1480); -emit_16(1547); -emit_16(1481); -emit_16(1547); -emit_16(1480); -emit_16(1547); -emit_16(1481); -emit_16(1548); -emit_16(1482); -emit_16(1548); -emit_16(1481); -emit_16(1548); -emit_16(1482); -emit_16(1549); -emit_16(1483); -emit_16(1549); -emit_16(1482); -emit_16(1549); -emit_16(1483); -emit_16(1550); -emit_16(1484); -emit_16(1550); -emit_16(1483); -emit_16(1550); -emit_16(1484); -emit_16(1551); -emit_16(1485); -emit_16(1551); -emit_16(1484); -emit_16(1551); -emit_16(1485); -emit_16(1552); -emit_16(1486); -emit_16(1552); -emit_16(1485); -emit_16(1552); -emit_16(1486); -emit_16(1553); -emit_16(1487); -emit_16(1553); -emit_16(1486); -emit_16(1553); -emit_16(1487); -emit_16(1554); -emit_16(1488); -emit_16(1554); -emit_16(1487); -emit_16(1554); -emit_16(1488); -emit_16(1555); -emit_16(1489); -emit_16(1555); -emit_16(1488); -emit_16(1555); -emit_16(1489); -emit_16(1556); -emit_16(1490); -emit_16(1556); -emit_16(1489); -emit_16(1556); -emit_16(1490); -emit_16(1557); -emit_16(1491); -emit_16(1557); -emit_16(1490); -emit_16(1557); -emit_16(1491); -emit_16(1558); -emit_16(1492); -emit_16(1558); -emit_16(1491); -emit_16(1558); -emit_16(1492); -emit_16(1559); -emit_16(1493); -emit_16(1559); -emit_16(1492); -emit_16(1559); -emit_16(1493); -emit_16(1560); -emit_16(1494); -emit_16(1560); -emit_16(1493); -emit_16(1560); -emit_16(1494); -emit_16(1561); -emit_16(1495); -emit_16(1561); -emit_16(1494); -emit_16(1561); -emit_16(1495); -emit_16(1562); -emit_16(1496); -emit_16(1562); -emit_16(1495); -emit_16(1562); -emit_16(1496); -emit_16(1563); -emit_16(1497); -emit_16(1563); -emit_16(1496); -emit_16(1563); -emit_16(1497); -emit_16(1564); -emit_16(1498); -emit_16(1564); -emit_16(1497); -emit_16(1564); -emit_16(1498); -emit_16(1565); -emit_16(1499); -emit_16(1565); -emit_16(1498); -emit_16(1565); -emit_16(1499); -emit_16(1566); -emit_16(1500); -emit_16(1566); -emit_16(1499); -emit_16(1566); -emit_16(1500); -emit_16(1567); -emit_16(1501); -emit_16(1567); -emit_16(1500); -emit_16(1567); -emit_16(1501); -emit_16(1568); -emit_16(1502); -emit_16(1568); -emit_16(1501); -emit_16(1568); -emit_16(1502); -emit_16(1569); -emit_16(1503); -emit_16(1569); -emit_16(1502); -emit_16(1569); -emit_16(1503); -emit_16(1570); -emit_16(1504); -emit_16(1570); -emit_16(1503); -emit_16(1570); -emit_16(1504); -emit_16(1571); -emit_16(1505); -emit_16(1571); -emit_16(1504); -emit_16(1571); -emit_16(1505); -emit_16(1572); -emit_16(1506); -emit_16(1572); -emit_16(1505); -emit_16(1572); -emit_16(1506); -emit_16(1573); -emit_16(1507); -emit_16(1573); -emit_16(1506); -emit_16(1573); -emit_16(1507); -emit_16(1574); -emit_16(1508); -emit_16(1574); -emit_16(1507); -emit_16(1574); -emit_16(1508); -emit_16(1575); -emit_16(1509); -emit_16(1575); -emit_16(1508); -emit_16(1575); -emit_16(1509); -emit_16(1576); -emit_16(1510); -emit_16(1576); -emit_16(1509); -emit_16(1576); -emit_16(1510); -emit_16(1577); -emit_16(1511); -emit_16(1577); -emit_16(1510); -emit_16(1577); -emit_16(1511); -emit_16(1578); -emit_16(1512); -emit_16(1578); -emit_16(1511); -emit_16(1578); -emit_16(1512); -emit_16(1579); -emit_16(1513); -emit_16(1579); -emit_16(1512); -emit_16(1579); -emit_16(1513); -emit_16(1580); -emit_16(1514); -emit_16(1580); -emit_16(1513); -emit_16(1580); -emit_16(1514); -emit_16(1581); -emit_16(1515); -emit_16(1581); -emit_16(1514); -emit_16(1581); -emit_16(1515); -emit_16(1582); -emit_16(1516); -emit_16(1582); -emit_16(1515); -emit_16(1582); -emit_16(1516); -emit_16(1583); -emit_16(1517); -emit_16(1583); -emit_16(1516); -emit_16(1584); -emit_16(1518); -emit_16(1585); -emit_16(1519); -emit_16(1585); -emit_16(1518); -emit_16(1585); -emit_16(1519); -emit_16(1586); -emit_16(1520); -emit_16(1586); -emit_16(1519); -emit_16(1586); -emit_16(1520); -emit_16(1587); -emit_16(1521); -emit_16(1587); -emit_16(1520); -emit_16(1587); -emit_16(1521); -emit_16(1588); -emit_16(1522); -emit_16(1588); -emit_16(1521); -emit_16(1588); -emit_16(1522); -emit_16(1589); -emit_16(1523); -emit_16(1589); -emit_16(1522); -emit_16(1589); -emit_16(1523); -emit_16(1590); -emit_16(1524); -emit_16(1590); -emit_16(1523); -emit_16(1590); -emit_16(1524); -emit_16(1591); -emit_16(1525); -emit_16(1591); -emit_16(1524); -emit_16(1591); -emit_16(1525); -emit_16(1592); -emit_16(1526); -emit_16(1592); -emit_16(1525); -emit_16(1592); -emit_16(1526); -emit_16(1593); -emit_16(1527); -emit_16(1593); -emit_16(1526); -emit_16(1593); -emit_16(1527); -emit_16(1594); -emit_16(1528); -emit_16(1594); -emit_16(1527); -emit_16(1594); -emit_16(1528); -emit_16(1595); -emit_16(1529); -emit_16(1595); -emit_16(1528); -emit_16(1595); -emit_16(1529); -emit_16(1596); -emit_16(1530); -emit_16(1596); -emit_16(1529); -emit_16(1596); -emit_16(1530); -emit_16(1597); -emit_16(1531); -emit_16(1597); -emit_16(1530); -emit_16(1597); -emit_16(1531); -emit_16(1598); -emit_16(1532); -emit_16(1598); -emit_16(1531); -emit_16(1598); -emit_16(1532); -emit_16(1599); -emit_16(1533); -emit_16(1599); -emit_16(1532); -emit_16(1599); -emit_16(1533); -emit_16(1600); -emit_16(1534); -emit_16(1600); -emit_16(1533); -emit_16(1600); -emit_16(1534); -emit_16(1601); -emit_16(1535); -emit_16(1601); -emit_16(1534); -emit_16(1601); -emit_16(1535); -emit_16(1602); -emit_16(1536); -emit_16(1602); -emit_16(1535); -emit_16(1602); -emit_16(1536); -emit_16(1603); -emit_16(1537); -emit_16(1603); -emit_16(1536); -emit_16(1603); -emit_16(1537); -emit_16(1604); -emit_16(1538); -emit_16(1604); -emit_16(1537); -emit_16(1604); -emit_16(1538); -emit_16(1605); -emit_16(1539); -emit_16(1605); -emit_16(1538); -emit_16(1605); -emit_16(1539); -emit_16(1606); -emit_16(1540); -emit_16(1606); -emit_16(1539); -emit_16(1606); -emit_16(1540); -emit_16(1607); -emit_16(1541); -emit_16(1607); -emit_16(1540); -emit_16(1607); -emit_16(1541); -emit_16(1608); -emit_16(1542); -emit_16(1608); -emit_16(1541); -emit_16(1608); -emit_16(1542); -emit_16(1609); -emit_16(1543); -emit_16(1609); -emit_16(1542); -emit_16(1609); -emit_16(1543); -emit_16(1610); -emit_16(1544); -emit_16(1610); -emit_16(1543); -emit_16(1610); -emit_16(1544); -emit_16(1611); -emit_16(1545); -emit_16(1611); -emit_16(1544); -emit_16(1611); -emit_16(1545); -emit_16(1612); -emit_16(1546); -emit_16(1612); -emit_16(1545); -emit_16(1612); -emit_16(1546); -emit_16(1613); -emit_16(1547); -emit_16(1613); -emit_16(1546); -emit_16(1613); -emit_16(1547); -emit_16(1614); -emit_16(1548); -emit_16(1614); -emit_16(1547); -emit_16(1614); -emit_16(1548); -emit_16(1615); -emit_16(1549); -emit_16(1615); -emit_16(1548); -emit_16(1615); -emit_16(1549); -emit_16(1616); -emit_16(1550); -emit_16(1616); -emit_16(1549); -emit_16(1616); -emit_16(1550); -emit_16(1617); -emit_16(1551); -emit_16(1617); -emit_16(1550); -emit_16(1617); -emit_16(1551); -emit_16(1618); -emit_16(1552); -emit_16(1618); -emit_16(1551); -emit_16(1618); -emit_16(1552); -emit_16(1619); -emit_16(1553); -emit_16(1619); -emit_16(1552); -emit_16(1619); -emit_16(1553); -emit_16(1620); -emit_16(1554); -emit_16(1620); -emit_16(1553); -emit_16(1620); -emit_16(1554); -emit_16(1621); -emit_16(1555); -emit_16(1621); -emit_16(1554); -emit_16(1621); -emit_16(1555); -emit_16(1622); -emit_16(1556); -emit_16(1622); -emit_16(1555); -emit_16(1622); -emit_16(1556); -emit_16(1623); -emit_16(1557); -emit_16(1623); -emit_16(1556); -emit_16(1623); -emit_16(1557); -emit_16(1624); -emit_16(1558); -emit_16(1624); -emit_16(1557); -emit_16(1624); -emit_16(1558); -emit_16(1625); -emit_16(1559); -emit_16(1625); -emit_16(1558); -emit_16(1625); -emit_16(1559); -emit_16(1626); -emit_16(1560); -emit_16(1626); -emit_16(1559); -emit_16(1626); -emit_16(1560); -emit_16(1627); -emit_16(1561); -emit_16(1627); -emit_16(1560); -emit_16(1627); -emit_16(1561); -emit_16(1628); -emit_16(1562); -emit_16(1628); -emit_16(1561); -emit_16(1628); -emit_16(1562); -emit_16(1629); -emit_16(1563); -emit_16(1629); -emit_16(1562); -emit_16(1629); -emit_16(1563); -emit_16(1630); -emit_16(1564); -emit_16(1630); -emit_16(1563); -emit_16(1630); -emit_16(1564); -emit_16(1631); -emit_16(1565); -emit_16(1631); -emit_16(1564); -emit_16(1631); -emit_16(1565); -emit_16(1632); -emit_16(1566); -emit_16(1632); -emit_16(1565); -emit_16(1632); -emit_16(1566); -emit_16(1633); -emit_16(1567); -emit_16(1633); -emit_16(1566); -emit_16(1633); -emit_16(1567); -emit_16(1634); -emit_16(1568); -emit_16(1634); -emit_16(1567); -emit_16(1634); -emit_16(1568); -emit_16(1635); -emit_16(1569); -emit_16(1635); -emit_16(1568); -emit_16(1635); -emit_16(1569); -emit_16(1636); -emit_16(1570); -emit_16(1636); -emit_16(1569); -emit_16(1636); -emit_16(1570); -emit_16(1637); -emit_16(1571); -emit_16(1637); -emit_16(1570); -emit_16(1637); -emit_16(1571); -emit_16(1638); -emit_16(1572); -emit_16(1638); -emit_16(1571); -emit_16(1638); -emit_16(1572); -emit_16(1639); -emit_16(1573); -emit_16(1639); -emit_16(1572); -emit_16(1639); -emit_16(1573); -emit_16(1640); -emit_16(1574); -emit_16(1640); -emit_16(1573); -emit_16(1640); -emit_16(1574); -emit_16(1641); -emit_16(1575); -emit_16(1641); -emit_16(1574); -emit_16(1641); -emit_16(1575); -emit_16(1642); -emit_16(1576); -emit_16(1642); -emit_16(1575); -emit_16(1642); -emit_16(1576); -emit_16(1643); -emit_16(1577); -emit_16(1643); -emit_16(1576); -emit_16(1643); -emit_16(1577); -emit_16(1644); -emit_16(1578); -emit_16(1644); -emit_16(1577); -emit_16(1644); -emit_16(1578); -emit_16(1645); -emit_16(1579); -emit_16(1645); -emit_16(1578); -emit_16(1645); -emit_16(1579); -emit_16(1646); -emit_16(1580); -emit_16(1646); -emit_16(1579); -emit_16(1646); -emit_16(1580); -emit_16(1647); -emit_16(1581); -emit_16(1647); -emit_16(1580); -emit_16(1647); -emit_16(1581); -emit_16(1648); -emit_16(1582); -emit_16(1648); -emit_16(1581); -emit_16(1648); -emit_16(1582); -emit_16(1649); -emit_16(1583); -emit_16(1649); -emit_16(1582); -emit_16(1650); -emit_16(1584); -emit_16(1651); -emit_16(1585); -emit_16(1651); -emit_16(1584); -emit_16(1651); -emit_16(1585); -emit_16(1652); -emit_16(1586); -emit_16(1652); -emit_16(1585); -emit_16(1652); -emit_16(1586); -emit_16(1653); -emit_16(1587); -emit_16(1653); -emit_16(1586); -emit_16(1653); -emit_16(1587); -emit_16(1654); -emit_16(1588); -emit_16(1654); -emit_16(1587); -emit_16(1654); -emit_16(1588); -emit_16(1655); -emit_16(1589); -emit_16(1655); -emit_16(1588); -emit_16(1655); -emit_16(1589); -emit_16(1656); -emit_16(1590); -emit_16(1656); -emit_16(1589); -emit_16(1656); -emit_16(1590); -emit_16(1657); -emit_16(1591); -emit_16(1657); -emit_16(1590); -emit_16(1657); -emit_16(1591); -emit_16(1658); -emit_16(1592); -emit_16(1658); -emit_16(1591); -emit_16(1658); -emit_16(1592); -emit_16(1659); -emit_16(1593); -emit_16(1659); -emit_16(1592); -emit_16(1659); -emit_16(1593); -emit_16(1660); -emit_16(1594); -emit_16(1660); -emit_16(1593); -emit_16(1660); -emit_16(1594); -emit_16(1661); -emit_16(1595); -emit_16(1661); -emit_16(1594); -emit_16(1661); -emit_16(1595); -emit_16(1662); -emit_16(1596); -emit_16(1662); -emit_16(1595); -emit_16(1662); -emit_16(1596); -emit_16(1663); -emit_16(1597); -emit_16(1663); -emit_16(1596); -emit_16(1663); -emit_16(1597); -emit_16(1664); -emit_16(1598); -emit_16(1664); -emit_16(1597); -emit_16(1664); -emit_16(1598); -emit_16(1665); -emit_16(1599); -emit_16(1665); -emit_16(1598); -emit_16(1665); -emit_16(1599); -emit_16(1666); -emit_16(1600); -emit_16(1666); -emit_16(1599); -emit_16(1666); -emit_16(1600); -emit_16(1667); -emit_16(1601); -emit_16(1667); -emit_16(1600); -emit_16(1667); -emit_16(1601); -emit_16(1668); -emit_16(1602); -emit_16(1668); -emit_16(1601); -emit_16(1668); -emit_16(1602); -emit_16(1669); -emit_16(1603); -emit_16(1669); -emit_16(1602); -emit_16(1669); -emit_16(1603); -emit_16(1670); -emit_16(1604); -emit_16(1670); -emit_16(1603); -emit_16(1670); -emit_16(1604); -emit_16(1671); -emit_16(1605); -emit_16(1671); -emit_16(1604); -emit_16(1671); -emit_16(1605); -emit_16(1672); -emit_16(1606); -emit_16(1672); -emit_16(1605); -emit_16(1672); -emit_16(1606); -emit_16(1673); -emit_16(1607); -emit_16(1673); -emit_16(1606); -emit_16(1673); -emit_16(1607); -emit_16(1674); -emit_16(1608); -emit_16(1674); -emit_16(1607); -emit_16(1674); -emit_16(1608); -emit_16(1675); -emit_16(1609); -emit_16(1675); -emit_16(1608); -emit_16(1675); -emit_16(1609); -emit_16(1676); -emit_16(1610); -emit_16(1676); -emit_16(1609); -emit_16(1676); -emit_16(1610); -emit_16(1677); -emit_16(1611); -emit_16(1677); -emit_16(1610); -emit_16(1677); -emit_16(1611); -emit_16(1678); -emit_16(1612); -emit_16(1678); -emit_16(1611); -emit_16(1678); -emit_16(1612); -emit_16(1679); -emit_16(1613); -emit_16(1679); -emit_16(1612); -emit_16(1679); -emit_16(1613); -emit_16(1680); -emit_16(1614); -emit_16(1680); -emit_16(1613); -emit_16(1680); -emit_16(1614); -emit_16(1681); -emit_16(1615); -emit_16(1681); -emit_16(1614); -emit_16(1681); -emit_16(1615); -emit_16(1682); -emit_16(1616); -emit_16(1682); -emit_16(1615); -emit_16(1682); -emit_16(1616); -emit_16(1683); -emit_16(1617); -emit_16(1683); -emit_16(1616); -emit_16(1683); -emit_16(1617); -emit_16(1684); -emit_16(1618); -emit_16(1684); -emit_16(1617); -emit_16(1684); -emit_16(1618); -emit_16(1685); -emit_16(1619); -emit_16(1685); -emit_16(1618); -emit_16(1685); -emit_16(1619); -emit_16(1686); -emit_16(1620); -emit_16(1686); -emit_16(1619); -emit_16(1686); -emit_16(1620); -emit_16(1687); -emit_16(1621); -emit_16(1687); -emit_16(1620); -emit_16(1687); -emit_16(1621); -emit_16(1688); -emit_16(1622); -emit_16(1688); -emit_16(1621); -emit_16(1688); -emit_16(1622); -emit_16(1689); -emit_16(1623); -emit_16(1689); -emit_16(1622); -emit_16(1689); -emit_16(1623); -emit_16(1690); -emit_16(1624); -emit_16(1690); -emit_16(1623); -emit_16(1690); -emit_16(1624); -emit_16(1691); -emit_16(1625); -emit_16(1691); -emit_16(1624); -emit_16(1691); -emit_16(1625); -emit_16(1692); -emit_16(1626); -emit_16(1692); -emit_16(1625); -emit_16(1692); -emit_16(1626); -emit_16(1693); -emit_16(1627); -emit_16(1693); -emit_16(1626); -emit_16(1693); -emit_16(1627); -emit_16(1694); -emit_16(1628); -emit_16(1694); -emit_16(1627); -emit_16(1694); -emit_16(1628); -emit_16(1695); -emit_16(1629); -emit_16(1695); -emit_16(1628); -emit_16(1695); -emit_16(1629); -emit_16(1696); -emit_16(1630); -emit_16(1696); -emit_16(1629); -emit_16(1696); -emit_16(1630); -emit_16(1697); -emit_16(1631); -emit_16(1697); -emit_16(1630); -emit_16(1697); -emit_16(1631); -emit_16(1698); -emit_16(1632); -emit_16(1698); -emit_16(1631); -emit_16(1698); -emit_16(1632); -emit_16(1699); -emit_16(1633); -emit_16(1699); -emit_16(1632); -emit_16(1699); -emit_16(1633); -emit_16(1700); -emit_16(1634); -emit_16(1700); -emit_16(1633); -emit_16(1700); -emit_16(1634); -emit_16(1701); -emit_16(1635); -emit_16(1701); -emit_16(1634); -emit_16(1701); -emit_16(1635); -emit_16(1702); -emit_16(1636); -emit_16(1702); -emit_16(1635); -emit_16(1702); -emit_16(1636); -emit_16(1703); -emit_16(1637); -emit_16(1703); -emit_16(1636); -emit_16(1703); -emit_16(1637); -emit_16(1704); -emit_16(1638); -emit_16(1704); -emit_16(1637); -emit_16(1704); -emit_16(1638); -emit_16(1705); -emit_16(1639); -emit_16(1705); -emit_16(1638); -emit_16(1705); -emit_16(1639); -emit_16(1706); -emit_16(1640); -emit_16(1706); -emit_16(1639); -emit_16(1706); -emit_16(1640); -emit_16(1707); -emit_16(1641); -emit_16(1707); -emit_16(1640); -emit_16(1707); -emit_16(1641); -emit_16(1708); -emit_16(1642); -emit_16(1708); -emit_16(1641); -emit_16(1708); -emit_16(1642); -emit_16(1709); -emit_16(1643); -emit_16(1709); -emit_16(1642); -emit_16(1709); -emit_16(1643); -emit_16(1710); -emit_16(1644); -emit_16(1710); -emit_16(1643); -emit_16(1710); -emit_16(1644); -emit_16(1711); -emit_16(1645); -emit_16(1711); -emit_16(1644); -emit_16(1711); -emit_16(1645); -emit_16(1712); -emit_16(1646); -emit_16(1712); -emit_16(1645); -emit_16(1712); -emit_16(1646); -emit_16(1713); -emit_16(1647); -emit_16(1713); -emit_16(1646); -emit_16(1713); -emit_16(1647); -emit_16(1714); -emit_16(1648); -emit_16(1714); -emit_16(1647); -emit_16(1714); -emit_16(1648); -emit_16(1715); -emit_16(1649); -emit_16(1715); -emit_16(1648); -emit_16(1716); -emit_16(1650); -emit_16(1717); -emit_16(1651); -emit_16(1717); -emit_16(1650); -emit_16(1717); -emit_16(1651); -emit_16(1718); -emit_16(1652); -emit_16(1718); -emit_16(1651); -emit_16(1718); -emit_16(1652); -emit_16(1719); -emit_16(1653); -emit_16(1719); -emit_16(1652); -emit_16(1719); -emit_16(1653); -emit_16(1720); -emit_16(1654); -emit_16(1720); -emit_16(1653); -emit_16(1720); -emit_16(1654); -emit_16(1721); -emit_16(1655); -emit_16(1721); -emit_16(1654); -emit_16(1721); -emit_16(1655); -emit_16(1722); -emit_16(1656); -emit_16(1722); -emit_16(1655); -emit_16(1722); -emit_16(1656); -emit_16(1723); -emit_16(1657); -emit_16(1723); -emit_16(1656); -emit_16(1723); -emit_16(1657); -emit_16(1724); -emit_16(1658); -emit_16(1724); -emit_16(1657); -emit_16(1724); -emit_16(1658); -emit_16(1725); -emit_16(1659); -emit_16(1725); -emit_16(1658); -emit_16(1725); -emit_16(1659); -emit_16(1726); -emit_16(1660); -emit_16(1726); -emit_16(1659); -emit_16(1726); -emit_16(1660); -emit_16(1727); -emit_16(1661); -emit_16(1727); -emit_16(1660); -emit_16(1727); -emit_16(1661); -emit_16(1728); -emit_16(1662); -emit_16(1728); -emit_16(1661); -emit_16(1728); -emit_16(1662); -emit_16(1729); -emit_16(1663); -emit_16(1729); -emit_16(1662); -emit_16(1729); -emit_16(1663); -emit_16(1730); -emit_16(1664); -emit_16(1730); -emit_16(1663); -emit_16(1730); -emit_16(1664); -emit_16(1731); -emit_16(1665); -emit_16(1731); -emit_16(1664); -emit_16(1731); -emit_16(1665); -emit_16(1732); -emit_16(1666); -emit_16(1732); -emit_16(1665); -emit_16(1732); -emit_16(1666); -emit_16(1733); -emit_16(1667); -emit_16(1733); -emit_16(1666); -emit_16(1733); -emit_16(1667); -emit_16(1734); -emit_16(1668); -emit_16(1734); -emit_16(1667); -emit_16(1734); -emit_16(1668); -emit_16(1735); -emit_16(1669); -emit_16(1735); -emit_16(1668); -emit_16(1735); -emit_16(1669); -emit_16(1736); -emit_16(1670); -emit_16(1736); -emit_16(1669); -emit_16(1736); -emit_16(1670); -emit_16(1737); -emit_16(1671); -emit_16(1737); -emit_16(1670); -emit_16(1737); -emit_16(1671); -emit_16(1738); -emit_16(1672); -emit_16(1738); -emit_16(1671); -emit_16(1738); -emit_16(1672); -emit_16(1739); -emit_16(1673); -emit_16(1739); -emit_16(1672); -emit_16(1739); -emit_16(1673); -emit_16(1740); -emit_16(1674); -emit_16(1740); -emit_16(1673); -emit_16(1740); -emit_16(1674); -emit_16(1741); -emit_16(1675); -emit_16(1741); -emit_16(1674); -emit_16(1741); -emit_16(1675); -emit_16(1742); -emit_16(1676); -emit_16(1742); -emit_16(1675); -emit_16(1742); -emit_16(1676); -emit_16(1743); -emit_16(1677); -emit_16(1743); -emit_16(1676); -emit_16(1743); -emit_16(1677); -emit_16(1744); -emit_16(1678); -emit_16(1744); -emit_16(1677); -emit_16(1744); -emit_16(1678); -emit_16(1745); -emit_16(1679); -emit_16(1745); -emit_16(1678); -emit_16(1745); -emit_16(1679); -emit_16(1746); -emit_16(1680); -emit_16(1746); -emit_16(1679); -emit_16(1746); -emit_16(1680); -emit_16(1747); -emit_16(1681); -emit_16(1747); -emit_16(1680); -emit_16(1747); -emit_16(1681); -emit_16(1748); -emit_16(1682); -emit_16(1748); -emit_16(1681); -emit_16(1748); -emit_16(1682); -emit_16(1749); -emit_16(1683); -emit_16(1749); -emit_16(1682); -emit_16(1749); -emit_16(1683); -emit_16(1750); -emit_16(1684); -emit_16(1750); -emit_16(1683); -emit_16(1750); -emit_16(1684); -emit_16(1751); -emit_16(1685); -emit_16(1751); -emit_16(1684); -emit_16(1751); -emit_16(1685); -emit_16(1752); -emit_16(1686); -emit_16(1752); -emit_16(1685); -emit_16(1752); -emit_16(1686); -emit_16(1753); -emit_16(1687); -emit_16(1753); -emit_16(1686); -emit_16(1753); -emit_16(1687); -emit_16(1754); -emit_16(1688); -emit_16(1754); -emit_16(1687); -emit_16(1754); -emit_16(1688); -emit_16(1755); -emit_16(1689); -emit_16(1755); -emit_16(1688); -emit_16(1755); -emit_16(1689); -emit_16(1756); -emit_16(1690); -emit_16(1756); -emit_16(1689); -emit_16(1756); -emit_16(1690); -emit_16(1757); -emit_16(1691); -emit_16(1757); -emit_16(1690); -emit_16(1757); -emit_16(1691); -emit_16(1758); -emit_16(1692); -emit_16(1758); -emit_16(1691); -emit_16(1758); -emit_16(1692); -emit_16(1759); -emit_16(1693); -emit_16(1759); -emit_16(1692); -emit_16(1759); -emit_16(1693); -emit_16(1760); -emit_16(1694); -emit_16(1760); -emit_16(1693); -emit_16(1760); -emit_16(1694); -emit_16(1761); -emit_16(1695); -emit_16(1761); -emit_16(1694); -emit_16(1761); -emit_16(1695); -emit_16(1762); -emit_16(1696); -emit_16(1762); -emit_16(1695); -emit_16(1762); -emit_16(1696); -emit_16(1763); -emit_16(1697); -emit_16(1763); -emit_16(1696); -emit_16(1763); -emit_16(1697); -emit_16(1764); -emit_16(1698); -emit_16(1764); -emit_16(1697); -emit_16(1764); -emit_16(1698); -emit_16(1765); -emit_16(1699); -emit_16(1765); -emit_16(1698); -emit_16(1765); -emit_16(1699); -emit_16(1766); -emit_16(1700); -emit_16(1766); -emit_16(1699); -emit_16(1766); -emit_16(1700); -emit_16(1767); -emit_16(1701); -emit_16(1767); -emit_16(1700); -emit_16(1767); -emit_16(1701); -emit_16(1768); -emit_16(1702); -emit_16(1768); -emit_16(1701); -emit_16(1768); -emit_16(1702); -emit_16(1769); -emit_16(1703); -emit_16(1769); -emit_16(1702); -emit_16(1769); -emit_16(1703); -emit_16(1770); -emit_16(1704); -emit_16(1770); -emit_16(1703); -emit_16(1770); -emit_16(1704); -emit_16(1771); -emit_16(1705); -emit_16(1771); -emit_16(1704); -emit_16(1771); -emit_16(1705); -emit_16(1772); -emit_16(1706); -emit_16(1772); -emit_16(1705); -emit_16(1772); -emit_16(1706); -emit_16(1773); -emit_16(1707); -emit_16(1773); -emit_16(1706); -emit_16(1773); -emit_16(1707); -emit_16(1774); -emit_16(1708); -emit_16(1774); -emit_16(1707); -emit_16(1774); -emit_16(1708); -emit_16(1775); -emit_16(1709); -emit_16(1775); -emit_16(1708); -emit_16(1775); -emit_16(1709); -emit_16(1776); -emit_16(1710); -emit_16(1776); -emit_16(1709); -emit_16(1776); -emit_16(1710); -emit_16(1777); -emit_16(1711); -emit_16(1777); -emit_16(1710); -emit_16(1777); -emit_16(1711); -emit_16(1778); -emit_16(1712); -emit_16(1778); -emit_16(1711); -emit_16(1778); -emit_16(1712); -emit_16(1779); -emit_16(1713); -emit_16(1779); -emit_16(1712); -emit_16(1779); -emit_16(1713); -emit_16(1780); -emit_16(1714); -emit_16(1780); -emit_16(1713); -emit_16(1780); -emit_16(1714); -emit_16(1781); -emit_16(1715); -emit_16(1781); -emit_16(1714); -emit_16(1782); -emit_16(1716); -emit_16(1783); -emit_16(1717); -emit_16(1783); -emit_16(1716); -emit_16(1783); -emit_16(1717); -emit_16(1784); -emit_16(1718); -emit_16(1784); -emit_16(1717); -emit_16(1784); -emit_16(1718); -emit_16(1785); -emit_16(1719); -emit_16(1785); -emit_16(1718); -emit_16(1785); -emit_16(1719); -emit_16(1786); -emit_16(1720); -emit_16(1786); -emit_16(1719); -emit_16(1786); -emit_16(1720); -emit_16(1787); -emit_16(1721); -emit_16(1787); -emit_16(1720); -emit_16(1787); -emit_16(1721); -emit_16(1788); -emit_16(1722); -emit_16(1788); -emit_16(1721); -emit_16(1788); -emit_16(1722); -emit_16(1789); -emit_16(1723); -emit_16(1789); -emit_16(1722); -emit_16(1789); -emit_16(1723); -emit_16(1790); -emit_16(1724); -emit_16(1790); -emit_16(1723); -emit_16(1790); -emit_16(1724); -emit_16(1791); -emit_16(1725); -emit_16(1791); -emit_16(1724); -emit_16(1791); -emit_16(1725); -emit_16(1792); -emit_16(1726); -emit_16(1792); -emit_16(1725); -emit_16(1792); -emit_16(1726); -emit_16(1793); -emit_16(1727); -emit_16(1793); -emit_16(1726); -emit_16(1793); -emit_16(1727); -emit_16(1794); -emit_16(1728); -emit_16(1794); -emit_16(1727); -emit_16(1794); -emit_16(1728); -emit_16(1795); -emit_16(1729); -emit_16(1795); -emit_16(1728); -emit_16(1795); -emit_16(1729); -emit_16(1796); -emit_16(1730); -emit_16(1796); -emit_16(1729); -emit_16(1796); -emit_16(1730); -emit_16(1797); -emit_16(1731); -emit_16(1797); -emit_16(1730); -emit_16(1797); -emit_16(1731); -emit_16(1798); -emit_16(1732); -emit_16(1798); -emit_16(1731); -emit_16(1798); -emit_16(1732); -emit_16(1799); -emit_16(1733); -emit_16(1799); -emit_16(1732); -emit_16(1799); -emit_16(1733); -emit_16(1800); -emit_16(1734); -emit_16(1800); -emit_16(1733); -emit_16(1800); -emit_16(1734); -emit_16(1801); -emit_16(1735); -emit_16(1801); -emit_16(1734); -emit_16(1801); -emit_16(1735); -emit_16(1802); -emit_16(1736); -emit_16(1802); -emit_16(1735); -emit_16(1802); -emit_16(1736); -emit_16(1803); -emit_16(1737); -emit_16(1803); -emit_16(1736); -emit_16(1803); -emit_16(1737); -emit_16(1804); -emit_16(1738); -emit_16(1804); -emit_16(1737); -emit_16(1804); -emit_16(1738); -emit_16(1805); -emit_16(1739); -emit_16(1805); -emit_16(1738); -emit_16(1805); -emit_16(1739); -emit_16(1806); -emit_16(1740); -emit_16(1806); -emit_16(1739); -emit_16(1806); -emit_16(1740); -emit_16(1807); -emit_16(1741); -emit_16(1807); -emit_16(1740); -emit_16(1807); -emit_16(1741); -emit_16(1808); -emit_16(1742); -emit_16(1808); -emit_16(1741); -emit_16(1808); -emit_16(1742); -emit_16(1809); -emit_16(1743); -emit_16(1809); -emit_16(1742); -emit_16(1809); -emit_16(1743); -emit_16(1810); -emit_16(1744); -emit_16(1810); -emit_16(1743); -emit_16(1810); -emit_16(1744); -emit_16(1811); -emit_16(1745); -emit_16(1811); -emit_16(1744); -emit_16(1811); -emit_16(1745); -emit_16(1812); -emit_16(1746); -emit_16(1812); -emit_16(1745); -emit_16(1812); -emit_16(1746); -emit_16(1813); -emit_16(1747); -emit_16(1813); -emit_16(1746); -emit_16(1813); -emit_16(1747); -emit_16(1814); -emit_16(1748); -emit_16(1814); -emit_16(1747); -emit_16(1814); -emit_16(1748); -emit_16(1815); -emit_16(1749); -emit_16(1815); -emit_16(1748); -emit_16(1815); -emit_16(1749); -emit_16(1816); -emit_16(1750); -emit_16(1816); -emit_16(1749); -emit_16(1816); -emit_16(1750); -emit_16(1817); -emit_16(1751); -emit_16(1817); -emit_16(1750); -emit_16(1817); -emit_16(1751); -emit_16(1818); -emit_16(1752); -emit_16(1818); -emit_16(1751); -emit_16(1818); -emit_16(1752); -emit_16(1819); -emit_16(1753); -emit_16(1819); -emit_16(1752); -emit_16(1819); -emit_16(1753); -emit_16(1820); -emit_16(1754); -emit_16(1820); -emit_16(1753); -emit_16(1820); -emit_16(1754); -emit_16(1821); -emit_16(1755); -emit_16(1821); -emit_16(1754); -emit_16(1821); -emit_16(1755); -emit_16(1822); -emit_16(1756); -emit_16(1822); -emit_16(1755); -emit_16(1822); -emit_16(1756); -emit_16(1823); -emit_16(1757); -emit_16(1823); -emit_16(1756); -emit_16(1823); -emit_16(1757); -emit_16(1824); -emit_16(1758); -emit_16(1824); -emit_16(1757); -emit_16(1824); -emit_16(1758); -emit_16(1825); -emit_16(1759); -emit_16(1825); -emit_16(1758); -emit_16(1825); -emit_16(1759); -emit_16(1826); -emit_16(1760); -emit_16(1826); -emit_16(1759); -emit_16(1826); -emit_16(1760); -emit_16(1827); -emit_16(1761); -emit_16(1827); -emit_16(1760); -emit_16(1827); -emit_16(1761); -emit_16(1828); -emit_16(1762); -emit_16(1828); -emit_16(1761); -emit_16(1828); -emit_16(1762); -emit_16(1829); -emit_16(1763); -emit_16(1829); -emit_16(1762); -emit_16(1829); -emit_16(1763); -emit_16(1830); -emit_16(1764); -emit_16(1830); -emit_16(1763); -emit_16(1830); -emit_16(1764); -emit_16(1831); -emit_16(1765); -emit_16(1831); -emit_16(1764); -emit_16(1831); -emit_16(1765); -emit_16(1832); -emit_16(1766); -emit_16(1832); -emit_16(1765); -emit_16(1832); -emit_16(1766); -emit_16(1833); -emit_16(1767); -emit_16(1833); -emit_16(1766); -emit_16(1833); -emit_16(1767); -emit_16(1834); -emit_16(1768); -emit_16(1834); -emit_16(1767); -emit_16(1834); -emit_16(1768); -emit_16(1835); -emit_16(1769); -emit_16(1835); -emit_16(1768); -emit_16(1835); -emit_16(1769); -emit_16(1836); -emit_16(1770); -emit_16(1836); -emit_16(1769); -emit_16(1836); -emit_16(1770); -emit_16(1837); -emit_16(1771); -emit_16(1837); -emit_16(1770); -emit_16(1837); -emit_16(1771); -emit_16(1838); -emit_16(1772); -emit_16(1838); -emit_16(1771); -emit_16(1838); -emit_16(1772); -emit_16(1839); -emit_16(1773); -emit_16(1839); -emit_16(1772); -emit_16(1839); -emit_16(1773); -emit_16(1840); -emit_16(1774); -emit_16(1840); -emit_16(1773); -emit_16(1840); -emit_16(1774); -emit_16(1841); -emit_16(1775); -emit_16(1841); -emit_16(1774); -emit_16(1841); -emit_16(1775); -emit_16(1842); -emit_16(1776); -emit_16(1842); -emit_16(1775); -emit_16(1842); -emit_16(1776); -emit_16(1843); -emit_16(1777); -emit_16(1843); -emit_16(1776); -emit_16(1843); -emit_16(1777); -emit_16(1844); -emit_16(1778); -emit_16(1844); -emit_16(1777); -emit_16(1844); -emit_16(1778); -emit_16(1845); -emit_16(1779); -emit_16(1845); -emit_16(1778); -emit_16(1845); -emit_16(1779); -emit_16(1846); -emit_16(1780); -emit_16(1846); -emit_16(1779); -emit_16(1846); -emit_16(1780); -emit_16(1847); -emit_16(1781); -emit_16(1847); -emit_16(1780); -emit_16(1848); -emit_16(1782); -emit_16(1849); -emit_16(1783); -emit_16(1849); -emit_16(1782); -emit_16(1849); -emit_16(1783); -emit_16(1850); -emit_16(1784); -emit_16(1850); -emit_16(1783); -emit_16(1850); -emit_16(1784); -emit_16(1851); -emit_16(1785); -emit_16(1851); -emit_16(1784); -emit_16(1851); -emit_16(1785); -emit_16(1852); -emit_16(1786); -emit_16(1852); -emit_16(1785); -emit_16(1852); -emit_16(1786); -emit_16(1853); -emit_16(1787); -emit_16(1853); -emit_16(1786); -emit_16(1853); -emit_16(1787); -emit_16(1854); -emit_16(1788); -emit_16(1854); -emit_16(1787); -emit_16(1854); -emit_16(1788); -emit_16(1855); -emit_16(1789); -emit_16(1855); -emit_16(1788); -emit_16(1855); -emit_16(1789); -emit_16(1856); -emit_16(1790); -emit_16(1856); -emit_16(1789); -emit_16(1856); -emit_16(1790); -emit_16(1857); -emit_16(1791); -emit_16(1857); -emit_16(1790); -emit_16(1857); -emit_16(1791); -emit_16(1858); -emit_16(1792); -emit_16(1858); -emit_16(1791); -emit_16(1858); -emit_16(1792); -emit_16(1859); -emit_16(1793); -emit_16(1859); -emit_16(1792); -emit_16(1859); -emit_16(1793); -emit_16(1860); -emit_16(1794); -emit_16(1860); -emit_16(1793); -emit_16(1860); -emit_16(1794); -emit_16(1861); -emit_16(1795); -emit_16(1861); -emit_16(1794); -emit_16(1861); -emit_16(1795); -emit_16(1862); -emit_16(1796); -emit_16(1862); -emit_16(1795); -emit_16(1862); -emit_16(1796); -emit_16(1863); -emit_16(1797); -emit_16(1863); -emit_16(1796); -emit_16(1863); -emit_16(1797); -emit_16(1864); -emit_16(1798); -emit_16(1864); -emit_16(1797); -emit_16(1864); -emit_16(1798); -emit_16(1865); -emit_16(1799); -emit_16(1865); -emit_16(1798); -emit_16(1865); -emit_16(1799); -emit_16(1866); -emit_16(1800); -emit_16(1866); -emit_16(1799); -emit_16(1866); -emit_16(1800); -emit_16(1867); -emit_16(1801); -emit_16(1867); -emit_16(1800); -emit_16(1867); -emit_16(1801); -emit_16(1868); -emit_16(1802); -emit_16(1868); -emit_16(1801); -emit_16(1868); -emit_16(1802); -emit_16(1869); -emit_16(1803); -emit_16(1869); -emit_16(1802); -emit_16(1869); -emit_16(1803); -emit_16(1870); -emit_16(1804); -emit_16(1870); -emit_16(1803); -emit_16(1870); -emit_16(1804); -emit_16(1871); -emit_16(1805); -emit_16(1871); -emit_16(1804); -emit_16(1871); -emit_16(1805); -emit_16(1872); -emit_16(1806); -emit_16(1872); -emit_16(1805); -emit_16(1872); -emit_16(1806); -emit_16(1873); -emit_16(1807); -emit_16(1873); -emit_16(1806); -emit_16(1873); -emit_16(1807); -emit_16(1874); -emit_16(1808); -emit_16(1874); -emit_16(1807); -emit_16(1874); -emit_16(1808); -emit_16(1875); -emit_16(1809); -emit_16(1875); -emit_16(1808); -emit_16(1875); -emit_16(1809); -emit_16(1876); -emit_16(1810); -emit_16(1876); -emit_16(1809); -emit_16(1876); -emit_16(1810); -emit_16(1877); -emit_16(1811); -emit_16(1877); -emit_16(1810); -emit_16(1877); -emit_16(1811); -emit_16(1878); -emit_16(1812); -emit_16(1878); -emit_16(1811); -emit_16(1878); -emit_16(1812); -emit_16(1879); -emit_16(1813); -emit_16(1879); -emit_16(1812); -emit_16(1879); -emit_16(1813); -emit_16(1880); -emit_16(1814); -emit_16(1880); -emit_16(1813); -emit_16(1880); -emit_16(1814); -emit_16(1881); -emit_16(1815); -emit_16(1881); -emit_16(1814); -emit_16(1881); -emit_16(1815); -emit_16(1882); -emit_16(1816); -emit_16(1882); -emit_16(1815); -emit_16(1882); -emit_16(1816); -emit_16(1883); -emit_16(1817); -emit_16(1883); -emit_16(1816); -emit_16(1883); -emit_16(1817); -emit_16(1884); -emit_16(1818); -emit_16(1884); -emit_16(1817); -emit_16(1884); -emit_16(1818); -emit_16(1885); -emit_16(1819); -emit_16(1885); -emit_16(1818); -emit_16(1885); -emit_16(1819); -emit_16(1886); -emit_16(1820); -emit_16(1886); -emit_16(1819); -emit_16(1886); -emit_16(1820); -emit_16(1887); -emit_16(1821); -emit_16(1887); -emit_16(1820); -emit_16(1887); -emit_16(1821); -emit_16(1888); -emit_16(1822); -emit_16(1888); -emit_16(1821); -emit_16(1888); -emit_16(1822); -emit_16(1889); -emit_16(1823); -emit_16(1889); -emit_16(1822); -emit_16(1889); -emit_16(1823); -emit_16(1890); -emit_16(1824); -emit_16(1890); -emit_16(1823); -emit_16(1890); -emit_16(1824); -emit_16(1891); -emit_16(1825); -emit_16(1891); -emit_16(1824); -emit_16(1891); -emit_16(1825); -emit_16(1892); -emit_16(1826); -emit_16(1892); -emit_16(1825); -emit_16(1892); -emit_16(1826); -emit_16(1893); -emit_16(1827); -emit_16(1893); -emit_16(1826); -emit_16(1893); -emit_16(1827); -emit_16(1894); -emit_16(1828); -emit_16(1894); -emit_16(1827); -emit_16(1894); -emit_16(1828); -emit_16(1895); -emit_16(1829); -emit_16(1895); -emit_16(1828); -emit_16(1895); -emit_16(1829); -emit_16(1896); -emit_16(1830); -emit_16(1896); -emit_16(1829); -emit_16(1896); -emit_16(1830); -emit_16(1897); -emit_16(1831); -emit_16(1897); -emit_16(1830); -emit_16(1897); -emit_16(1831); -emit_16(1898); -emit_16(1832); -emit_16(1898); -emit_16(1831); -emit_16(1898); -emit_16(1832); -emit_16(1899); -emit_16(1833); -emit_16(1899); -emit_16(1832); -emit_16(1899); -emit_16(1833); -emit_16(1900); -emit_16(1834); -emit_16(1900); -emit_16(1833); -emit_16(1900); -emit_16(1834); -emit_16(1901); -emit_16(1835); -emit_16(1901); -emit_16(1834); -emit_16(1901); -emit_16(1835); -emit_16(1902); -emit_16(1836); -emit_16(1902); -emit_16(1835); -emit_16(1902); -emit_16(1836); -emit_16(1903); -emit_16(1837); -emit_16(1903); -emit_16(1836); -emit_16(1903); -emit_16(1837); -emit_16(1904); -emit_16(1838); -emit_16(1904); -emit_16(1837); -emit_16(1904); -emit_16(1838); -emit_16(1905); -emit_16(1839); -emit_16(1905); -emit_16(1838); -emit_16(1905); -emit_16(1839); -emit_16(1906); -emit_16(1840); -emit_16(1906); -emit_16(1839); -emit_16(1906); -emit_16(1840); -emit_16(1907); -emit_16(1841); -emit_16(1907); -emit_16(1840); -emit_16(1907); -emit_16(1841); -emit_16(1908); -emit_16(1842); -emit_16(1908); -emit_16(1841); -emit_16(1908); -emit_16(1842); -emit_16(1909); -emit_16(1843); -emit_16(1909); -emit_16(1842); -emit_16(1909); -emit_16(1843); -emit_16(1910); -emit_16(1844); -emit_16(1910); -emit_16(1843); -emit_16(1910); -emit_16(1844); -emit_16(1911); -emit_16(1845); -emit_16(1911); -emit_16(1844); -emit_16(1911); -emit_16(1845); -emit_16(1912); -emit_16(1846); -emit_16(1912); -emit_16(1845); -emit_16(1912); -emit_16(1846); -emit_16(1913); -emit_16(1847); -emit_16(1913); -emit_16(1846); -emit_16(1914); -emit_16(1848); -emit_16(1915); -emit_16(1849); -emit_16(1915); -emit_16(1848); -emit_16(1915); -emit_16(1849); -emit_16(1916); -emit_16(1850); -emit_16(1916); -emit_16(1849); -emit_16(1916); -emit_16(1850); -emit_16(1917); -emit_16(1851); -emit_16(1917); -emit_16(1850); -emit_16(1917); -emit_16(1851); -emit_16(1918); -emit_16(1852); -emit_16(1918); -emit_16(1851); -emit_16(1918); -emit_16(1852); -emit_16(1919); -emit_16(1853); -emit_16(1919); -emit_16(1852); -emit_16(1919); -emit_16(1853); -emit_16(1920); -emit_16(1854); -emit_16(1920); -emit_16(1853); -emit_16(1920); -emit_16(1854); -emit_16(1921); -emit_16(1855); -emit_16(1921); -emit_16(1854); -emit_16(1921); -emit_16(1855); -emit_16(1922); -emit_16(1856); -emit_16(1922); -emit_16(1855); -emit_16(1922); -emit_16(1856); -emit_16(1923); -emit_16(1857); -emit_16(1923); -emit_16(1856); -emit_16(1923); -emit_16(1857); -emit_16(1924); -emit_16(1858); -emit_16(1924); -emit_16(1857); -emit_16(1924); -emit_16(1858); -emit_16(1925); -emit_16(1859); -emit_16(1925); -emit_16(1858); -emit_16(1925); -emit_16(1859); -emit_16(1926); -emit_16(1860); -emit_16(1926); -emit_16(1859); -emit_16(1926); -emit_16(1860); -emit_16(1927); -emit_16(1861); -emit_16(1927); -emit_16(1860); -emit_16(1927); -emit_16(1861); -emit_16(1928); -emit_16(1862); -emit_16(1928); -emit_16(1861); -emit_16(1928); -emit_16(1862); -emit_16(1929); -emit_16(1863); -emit_16(1929); -emit_16(1862); -emit_16(1929); -emit_16(1863); -emit_16(1930); -emit_16(1864); -emit_16(1930); -emit_16(1863); -emit_16(1930); -emit_16(1864); -emit_16(1931); -emit_16(1865); -emit_16(1931); -emit_16(1864); -emit_16(1931); -emit_16(1865); -emit_16(1932); -emit_16(1866); -emit_16(1932); -emit_16(1865); -emit_16(1932); -emit_16(1866); -emit_16(1933); -emit_16(1867); -emit_16(1933); -emit_16(1866); -emit_16(1933); -emit_16(1867); -emit_16(1934); -emit_16(1868); -emit_16(1934); -emit_16(1867); -emit_16(1934); -emit_16(1868); -emit_16(1935); -emit_16(1869); -emit_16(1935); -emit_16(1868); -emit_16(1935); -emit_16(1869); -emit_16(1936); -emit_16(1870); -emit_16(1936); -emit_16(1869); -emit_16(1936); -emit_16(1870); -emit_16(1937); -emit_16(1871); -emit_16(1937); -emit_16(1870); -emit_16(1937); -emit_16(1871); -emit_16(1938); -emit_16(1872); -emit_16(1938); -emit_16(1871); -emit_16(1938); -emit_16(1872); -emit_16(1939); -emit_16(1873); -emit_16(1939); -emit_16(1872); -emit_16(1939); -emit_16(1873); -emit_16(1940); -emit_16(1874); -emit_16(1940); -emit_16(1873); -emit_16(1940); -emit_16(1874); -emit_16(1941); -emit_16(1875); -emit_16(1941); -emit_16(1874); -emit_16(1941); -emit_16(1875); -emit_16(1942); -emit_16(1876); -emit_16(1942); -emit_16(1875); -emit_16(1942); -emit_16(1876); -emit_16(1943); -emit_16(1877); -emit_16(1943); -emit_16(1876); -emit_16(1943); -emit_16(1877); -emit_16(1944); -emit_16(1878); -emit_16(1944); -emit_16(1877); -emit_16(1944); -emit_16(1878); -emit_16(1945); -emit_16(1879); -emit_16(1945); -emit_16(1878); -emit_16(1945); -emit_16(1879); -emit_16(1946); -emit_16(1880); -emit_16(1946); -emit_16(1879); -emit_16(1946); -emit_16(1880); -emit_16(1947); -emit_16(1881); -emit_16(1947); -emit_16(1880); -emit_16(1947); -emit_16(1881); -emit_16(1948); -emit_16(1882); -emit_16(1948); -emit_16(1881); -emit_16(1948); -emit_16(1882); -emit_16(1949); -emit_16(1883); -emit_16(1949); -emit_16(1882); -emit_16(1949); -emit_16(1883); -emit_16(1950); -emit_16(1884); -emit_16(1950); -emit_16(1883); -emit_16(1950); -emit_16(1884); -emit_16(1951); -emit_16(1885); -emit_16(1951); -emit_16(1884); -emit_16(1951); -emit_16(1885); -emit_16(1952); -emit_16(1886); -emit_16(1952); -emit_16(1885); -emit_16(1952); -emit_16(1886); -emit_16(1953); -emit_16(1887); -emit_16(1953); -emit_16(1886); -emit_16(1953); -emit_16(1887); -emit_16(1954); -emit_16(1888); -emit_16(1954); -emit_16(1887); -emit_16(1954); -emit_16(1888); -emit_16(1955); -emit_16(1889); -emit_16(1955); -emit_16(1888); -emit_16(1955); -emit_16(1889); -emit_16(1956); -emit_16(1890); -emit_16(1956); -emit_16(1889); -emit_16(1956); -emit_16(1890); -emit_16(1957); -emit_16(1891); -emit_16(1957); -emit_16(1890); -emit_16(1957); -emit_16(1891); -emit_16(1958); -emit_16(1892); -emit_16(1958); -emit_16(1891); -emit_16(1958); -emit_16(1892); -emit_16(1959); -emit_16(1893); -emit_16(1959); -emit_16(1892); -emit_16(1959); -emit_16(1893); -emit_16(1960); -emit_16(1894); -emit_16(1960); -emit_16(1893); -emit_16(1960); -emit_16(1894); -emit_16(1961); -emit_16(1895); -emit_16(1961); -emit_16(1894); -emit_16(1961); -emit_16(1895); -emit_16(1962); -emit_16(1896); -emit_16(1962); -emit_16(1895); -emit_16(1962); -emit_16(1896); -emit_16(1963); -emit_16(1897); -emit_16(1963); -emit_16(1896); -emit_16(1963); -emit_16(1897); -emit_16(1964); -emit_16(1898); -emit_16(1964); -emit_16(1897); -emit_16(1964); -emit_16(1898); -emit_16(1965); -emit_16(1899); -emit_16(1965); -emit_16(1898); -emit_16(1965); -emit_16(1899); -emit_16(1966); -emit_16(1900); -emit_16(1966); -emit_16(1899); -emit_16(1966); -emit_16(1900); -emit_16(1967); -emit_16(1901); -emit_16(1967); -emit_16(1900); -emit_16(1967); -emit_16(1901); -emit_16(1968); -emit_16(1902); -emit_16(1968); -emit_16(1901); -emit_16(1968); -emit_16(1902); -emit_16(1969); -emit_16(1903); -emit_16(1969); -emit_16(1902); -emit_16(1969); -emit_16(1903); -emit_16(1970); -emit_16(1904); -emit_16(1970); -emit_16(1903); -emit_16(1970); -emit_16(1904); -emit_16(1971); -emit_16(1905); -emit_16(1971); -emit_16(1904); -emit_16(1971); -emit_16(1905); -emit_16(1972); -emit_16(1906); -emit_16(1972); -emit_16(1905); -emit_16(1972); -emit_16(1906); -emit_16(1973); -emit_16(1907); -emit_16(1973); -emit_16(1906); -emit_16(1973); -emit_16(1907); -emit_16(1974); -emit_16(1908); -emit_16(1974); -emit_16(1907); -emit_16(1974); -emit_16(1908); -emit_16(1975); -emit_16(1909); -emit_16(1975); -emit_16(1908); -emit_16(1975); -emit_16(1909); -emit_16(1976); -emit_16(1910); -emit_16(1976); -emit_16(1909); -emit_16(1976); -emit_16(1910); -emit_16(1977); -emit_16(1911); -emit_16(1977); -emit_16(1910); -emit_16(1977); -emit_16(1911); -emit_16(1978); -emit_16(1912); -emit_16(1978); -emit_16(1911); -emit_16(1978); -emit_16(1912); -emit_16(1979); -emit_16(1913); -emit_16(1979); -emit_16(1912); -emit_16(1980); -emit_16(1914); -emit_16(1981); -emit_16(1915); -emit_16(1981); -emit_16(1914); -emit_16(1981); -emit_16(1915); -emit_16(1982); -emit_16(1916); -emit_16(1982); -emit_16(1915); -emit_16(1982); -emit_16(1916); -emit_16(1983); -emit_16(1917); -emit_16(1983); -emit_16(1916); -emit_16(1983); -emit_16(1917); -emit_16(1984); -emit_16(1918); -emit_16(1984); -emit_16(1917); -emit_16(1984); -emit_16(1918); -emit_16(1985); -emit_16(1919); -emit_16(1985); -emit_16(1918); -emit_16(1985); -emit_16(1919); -emit_16(1986); -emit_16(1920); -emit_16(1986); -emit_16(1919); -emit_16(1986); -emit_16(1920); -emit_16(1987); -emit_16(1921); -emit_16(1987); -emit_16(1920); -emit_16(1987); -emit_16(1921); -emit_16(1988); -emit_16(1922); -emit_16(1988); -emit_16(1921); -emit_16(1988); -emit_16(1922); -emit_16(1989); -emit_16(1923); -emit_16(1989); -emit_16(1922); -emit_16(1989); -emit_16(1923); -emit_16(1990); -emit_16(1924); -emit_16(1990); -emit_16(1923); -emit_16(1990); -emit_16(1924); -emit_16(1991); -emit_16(1925); -emit_16(1991); -emit_16(1924); -emit_16(1991); -emit_16(1925); -emit_16(1992); -emit_16(1926); -emit_16(1992); -emit_16(1925); -emit_16(1992); -emit_16(1926); -emit_16(1993); -emit_16(1927); -emit_16(1993); -emit_16(1926); -emit_16(1993); -emit_16(1927); -emit_16(1994); -emit_16(1928); -emit_16(1994); -emit_16(1927); -emit_16(1994); -emit_16(1928); -emit_16(1995); -emit_16(1929); -emit_16(1995); -emit_16(1928); -emit_16(1995); -emit_16(1929); -emit_16(1996); -emit_16(1930); -emit_16(1996); -emit_16(1929); -emit_16(1996); -emit_16(1930); -emit_16(1997); -emit_16(1931); -emit_16(1997); -emit_16(1930); -emit_16(1997); -emit_16(1931); -emit_16(1998); -emit_16(1932); -emit_16(1998); -emit_16(1931); -emit_16(1998); -emit_16(1932); -emit_16(1999); -emit_16(1933); -emit_16(1999); -emit_16(1932); -emit_16(1999); -emit_16(1933); -emit_16(2000); -emit_16(1934); -emit_16(2000); -emit_16(1933); -emit_16(2000); -emit_16(1934); -emit_16(2001); -emit_16(1935); -emit_16(2001); -emit_16(1934); -emit_16(2001); -emit_16(1935); -emit_16(2002); -emit_16(1936); -emit_16(2002); -emit_16(1935); -emit_16(2002); -emit_16(1936); -emit_16(2003); -emit_16(1937); -emit_16(2003); -emit_16(1936); -emit_16(2003); -emit_16(1937); -emit_16(2004); -emit_16(1938); -emit_16(2004); -emit_16(1937); -emit_16(2004); -emit_16(1938); -emit_16(2005); -emit_16(1939); -emit_16(2005); -emit_16(1938); -emit_16(2005); -emit_16(1939); -emit_16(2006); -emit_16(1940); -emit_16(2006); -emit_16(1939); -emit_16(2006); -emit_16(1940); -emit_16(2007); -emit_16(1941); -emit_16(2007); -emit_16(1940); -emit_16(2007); -emit_16(1941); -emit_16(2008); -emit_16(1942); -emit_16(2008); -emit_16(1941); -emit_16(2008); -emit_16(1942); -emit_16(2009); -emit_16(1943); -emit_16(2009); -emit_16(1942); -emit_16(2009); -emit_16(1943); -emit_16(2010); -emit_16(1944); -emit_16(2010); -emit_16(1943); -emit_16(2010); -emit_16(1944); -emit_16(2011); -emit_16(1945); -emit_16(2011); -emit_16(1944); -emit_16(2011); -emit_16(1945); -emit_16(2012); -emit_16(1946); -emit_16(2012); -emit_16(1945); -emit_16(2012); -emit_16(1946); -emit_16(2013); -emit_16(1947); -emit_16(2013); -emit_16(1946); -emit_16(2013); -emit_16(1947); -emit_16(2014); -emit_16(1948); -emit_16(2014); -emit_16(1947); -emit_16(2014); -emit_16(1948); -emit_16(2015); -emit_16(1949); -emit_16(2015); -emit_16(1948); -emit_16(2015); -emit_16(1949); -emit_16(2016); -emit_16(1950); -emit_16(2016); -emit_16(1949); -emit_16(2016); -emit_16(1950); -emit_16(2017); -emit_16(1951); -emit_16(2017); -emit_16(1950); -emit_16(2017); -emit_16(1951); -emit_16(2018); -emit_16(1952); -emit_16(2018); -emit_16(1951); -emit_16(2018); -emit_16(1952); -emit_16(2019); -emit_16(1953); -emit_16(2019); -emit_16(1952); -emit_16(2019); -emit_16(1953); -emit_16(2020); -emit_16(1954); -emit_16(2020); -emit_16(1953); -emit_16(2020); -emit_16(1954); -emit_16(2021); -emit_16(1955); -emit_16(2021); -emit_16(1954); -emit_16(2021); -emit_16(1955); -emit_16(2022); -emit_16(1956); -emit_16(2022); -emit_16(1955); -emit_16(2022); -emit_16(1956); -emit_16(2023); -emit_16(1957); -emit_16(2023); -emit_16(1956); -emit_16(2023); -emit_16(1957); -emit_16(2024); -emit_16(1958); -emit_16(2024); -emit_16(1957); -emit_16(2024); -emit_16(1958); -emit_16(2025); -emit_16(1959); -emit_16(2025); -emit_16(1958); -emit_16(2025); -emit_16(1959); -emit_16(2026); -emit_16(1960); -emit_16(2026); -emit_16(1959); -emit_16(2026); -emit_16(1960); -emit_16(2027); -emit_16(1961); -emit_16(2027); -emit_16(1960); -emit_16(2027); -emit_16(1961); -emit_16(2028); -emit_16(1962); -emit_16(2028); -emit_16(1961); -emit_16(2028); -emit_16(1962); -emit_16(2029); -emit_16(1963); -emit_16(2029); -emit_16(1962); -emit_16(2029); -emit_16(1963); -emit_16(2030); -emit_16(1964); -emit_16(2030); -emit_16(1963); -emit_16(2030); -emit_16(1964); -emit_16(2031); -emit_16(1965); -emit_16(2031); -emit_16(1964); -emit_16(2031); -emit_16(1965); -emit_16(2032); -emit_16(1966); -emit_16(2032); -emit_16(1965); -emit_16(2032); -emit_16(1966); -emit_16(2033); -emit_16(1967); -emit_16(2033); -emit_16(1966); -emit_16(2033); -emit_16(1967); -emit_16(2034); -emit_16(1968); -emit_16(2034); -emit_16(1967); -emit_16(2034); -emit_16(1968); -emit_16(2035); -emit_16(1969); -emit_16(2035); -emit_16(1968); -emit_16(2035); -emit_16(1969); -emit_16(2036); -emit_16(1970); -emit_16(2036); -emit_16(1969); -emit_16(2036); -emit_16(1970); -emit_16(2037); -emit_16(1971); -emit_16(2037); -emit_16(1970); -emit_16(2037); -emit_16(1971); -emit_16(2038); -emit_16(1972); -emit_16(2038); -emit_16(1971); -emit_16(2038); -emit_16(1972); -emit_16(2039); -emit_16(1973); -emit_16(2039); -emit_16(1972); -emit_16(2039); -emit_16(1973); -emit_16(2040); -emit_16(1974); -emit_16(2040); -emit_16(1973); -emit_16(2040); -emit_16(1974); -emit_16(2041); -emit_16(1975); -emit_16(2041); -emit_16(1974); -emit_16(2041); -emit_16(1975); -emit_16(2042); -emit_16(1976); -emit_16(2042); -emit_16(1975); -emit_16(2042); -emit_16(1976); -emit_16(2043); -emit_16(1977); -emit_16(2043); -emit_16(1976); -emit_16(2043); -emit_16(1977); -emit_16(2044); -emit_16(1978); -emit_16(2044); -emit_16(1977); -emit_16(2044); -emit_16(1978); -emit_16(2045); -emit_16(1979); -emit_16(2045); -emit_16(1978); -emit_16(2046); -emit_16(1980); -emit_16(2047); -emit_16(1981); -emit_16(2047); -emit_16(1980); -emit_16(2047); -emit_16(1981); -emit_16(2048); -emit_16(1982); -emit_16(2048); -emit_16(1981); -emit_16(2048); -emit_16(1982); -emit_16(2049); -emit_16(1983); -emit_16(2049); -emit_16(1982); -emit_16(2049); -emit_16(1983); -emit_16(2050); -emit_16(1984); -emit_16(2050); -emit_16(1983); -emit_16(2050); -emit_16(1984); -emit_16(2051); -emit_16(1985); -emit_16(2051); -emit_16(1984); -emit_16(2051); -emit_16(1985); -emit_16(2052); -emit_16(1986); -emit_16(2052); -emit_16(1985); -emit_16(2052); -emit_16(1986); -emit_16(2053); -emit_16(1987); -emit_16(2053); -emit_16(1986); -emit_16(2053); -emit_16(1987); -emit_16(2054); -emit_16(1988); -emit_16(2054); -emit_16(1987); -emit_16(2054); -emit_16(1988); -emit_16(2055); -emit_16(1989); -emit_16(2055); -emit_16(1988); -emit_16(2055); -emit_16(1989); -emit_16(2056); -emit_16(1990); -emit_16(2056); -emit_16(1989); -emit_16(2056); -emit_16(1990); -emit_16(2057); -emit_16(1991); -emit_16(2057); -emit_16(1990); -emit_16(2057); -emit_16(1991); -emit_16(2058); -emit_16(1992); -emit_16(2058); -emit_16(1991); -emit_16(2058); -emit_16(1992); -emit_16(2059); -emit_16(1993); -emit_16(2059); -emit_16(1992); -emit_16(2059); -emit_16(1993); -emit_16(2060); -emit_16(1994); -emit_16(2060); -emit_16(1993); -emit_16(2060); -emit_16(1994); -emit_16(2061); -emit_16(1995); -emit_16(2061); -emit_16(1994); -emit_16(2061); -emit_16(1995); -emit_16(2062); -emit_16(1996); -emit_16(2062); -emit_16(1995); -emit_16(2062); -emit_16(1996); -emit_16(2063); -emit_16(1997); -emit_16(2063); -emit_16(1996); -emit_16(2063); -emit_16(1997); -emit_16(2064); -emit_16(1998); -emit_16(2064); -emit_16(1997); -emit_16(2064); -emit_16(1998); -emit_16(2065); -emit_16(1999); -emit_16(2065); -emit_16(1998); -emit_16(2065); -emit_16(1999); -emit_16(2066); -emit_16(2000); -emit_16(2066); -emit_16(1999); -emit_16(2066); -emit_16(2000); -emit_16(2067); -emit_16(2001); -emit_16(2067); -emit_16(2000); -emit_16(2067); -emit_16(2001); -emit_16(2068); -emit_16(2002); -emit_16(2068); -emit_16(2001); -emit_16(2068); -emit_16(2002); -emit_16(2069); -emit_16(2003); -emit_16(2069); -emit_16(2002); -emit_16(2069); -emit_16(2003); -emit_16(2070); -emit_16(2004); -emit_16(2070); -emit_16(2003); -emit_16(2070); -emit_16(2004); -emit_16(2071); -emit_16(2005); -emit_16(2071); -emit_16(2004); -emit_16(2071); -emit_16(2005); -emit_16(2072); -emit_16(2006); -emit_16(2072); -emit_16(2005); -emit_16(2072); -emit_16(2006); -emit_16(2073); -emit_16(2007); -emit_16(2073); -emit_16(2006); -emit_16(2073); -emit_16(2007); -emit_16(2074); -emit_16(2008); -emit_16(2074); -emit_16(2007); -emit_16(2074); -emit_16(2008); -emit_16(2075); -emit_16(2009); -emit_16(2075); -emit_16(2008); -emit_16(2075); -emit_16(2009); -emit_16(2076); -emit_16(2010); -emit_16(2076); -emit_16(2009); -emit_16(2076); -emit_16(2010); -emit_16(2077); -emit_16(2011); -emit_16(2077); -emit_16(2010); -emit_16(2077); -emit_16(2011); -emit_16(2078); -emit_16(2012); -emit_16(2078); -emit_16(2011); -emit_16(2078); -emit_16(2012); -emit_16(2079); -emit_16(2013); -emit_16(2079); -emit_16(2012); -emit_16(2079); -emit_16(2013); -emit_16(2080); -emit_16(2014); -emit_16(2080); -emit_16(2013); -emit_16(2080); -emit_16(2014); -emit_16(2081); -emit_16(2015); -emit_16(2081); -emit_16(2014); -emit_16(2081); -emit_16(2015); -emit_16(2082); -emit_16(2016); -emit_16(2082); -emit_16(2015); -emit_16(2082); -emit_16(2016); -emit_16(2083); -emit_16(2017); -emit_16(2083); -emit_16(2016); -emit_16(2083); -emit_16(2017); -emit_16(2084); -emit_16(2018); -emit_16(2084); -emit_16(2017); -emit_16(2084); -emit_16(2018); -emit_16(2085); -emit_16(2019); -emit_16(2085); -emit_16(2018); -emit_16(2085); -emit_16(2019); -emit_16(2086); -emit_16(2020); -emit_16(2086); -emit_16(2019); -emit_16(2086); -emit_16(2020); -emit_16(2087); -emit_16(2021); -emit_16(2087); -emit_16(2020); -emit_16(2087); -emit_16(2021); -emit_16(2088); -emit_16(2022); -emit_16(2088); -emit_16(2021); -emit_16(2088); -emit_16(2022); -emit_16(2089); -emit_16(2023); -emit_16(2089); -emit_16(2022); -emit_16(2089); -emit_16(2023); -emit_16(2090); -emit_16(2024); -emit_16(2090); -emit_16(2023); -emit_16(2090); -emit_16(2024); -emit_16(2091); -emit_16(2025); -emit_16(2091); -emit_16(2024); -emit_16(2091); -emit_16(2025); -emit_16(2092); -emit_16(2026); -emit_16(2092); -emit_16(2025); -emit_16(2092); -emit_16(2026); -emit_16(2093); -emit_16(2027); -emit_16(2093); -emit_16(2026); -emit_16(2093); -emit_16(2027); -emit_16(2094); -emit_16(2028); -emit_16(2094); -emit_16(2027); -emit_16(2094); -emit_16(2028); -emit_16(2095); -emit_16(2029); -emit_16(2095); -emit_16(2028); -emit_16(2095); -emit_16(2029); -emit_16(2096); -emit_16(2030); -emit_16(2096); -emit_16(2029); -emit_16(2096); -emit_16(2030); -emit_16(2097); -emit_16(2031); -emit_16(2097); -emit_16(2030); -emit_16(2097); -emit_16(2031); -emit_16(2098); -emit_16(2032); -emit_16(2098); -emit_16(2031); -emit_16(2098); -emit_16(2032); -emit_16(2099); -emit_16(2033); -emit_16(2099); -emit_16(2032); -emit_16(2099); -emit_16(2033); -emit_16(2100); -emit_16(2034); -emit_16(2100); -emit_16(2033); -emit_16(2100); -emit_16(2034); -emit_16(2101); -emit_16(2035); -emit_16(2101); -emit_16(2034); -emit_16(2101); -emit_16(2035); -emit_16(2102); -emit_16(2036); -emit_16(2102); -emit_16(2035); -emit_16(2102); -emit_16(2036); -emit_16(2103); -emit_16(2037); -emit_16(2103); -emit_16(2036); -emit_16(2103); -emit_16(2037); -emit_16(2104); -emit_16(2038); -emit_16(2104); -emit_16(2037); -emit_16(2104); -emit_16(2038); -emit_16(2105); -emit_16(2039); -emit_16(2105); -emit_16(2038); -emit_16(2105); -emit_16(2039); -emit_16(2106); -emit_16(2040); -emit_16(2106); -emit_16(2039); -emit_16(2106); -emit_16(2040); -emit_16(2107); -emit_16(2041); -emit_16(2107); -emit_16(2040); -emit_16(2107); -emit_16(2041); -emit_16(2108); -emit_16(2042); -emit_16(2108); -emit_16(2041); -emit_16(2108); -emit_16(2042); -emit_16(2109); -emit_16(2043); -emit_16(2109); -emit_16(2042); -emit_16(2109); -emit_16(2043); -emit_16(2110); -emit_16(2044); -emit_16(2110); -emit_16(2043); -emit_16(2110); -emit_16(2044); -emit_16(2111); -emit_16(2045); -emit_16(2111); -emit_16(2044); -emit_16(2112); -emit_16(2046); -emit_16(2113); -emit_16(2047); -emit_16(2113); -emit_16(2046); -emit_16(2113); -emit_16(2047); -emit_16(2114); -emit_16(2048); -emit_16(2114); -emit_16(2047); -emit_16(2114); -emit_16(2048); -emit_16(2115); -emit_16(2049); -emit_16(2115); -emit_16(2048); -emit_16(2115); -emit_16(2049); -emit_16(2116); -emit_16(2050); -emit_16(2116); -emit_16(2049); -emit_16(2116); -emit_16(2050); -emit_16(2117); -emit_16(2051); -emit_16(2117); -emit_16(2050); -emit_16(2117); -emit_16(2051); -emit_16(2118); -emit_16(2052); -emit_16(2118); -emit_16(2051); -emit_16(2118); -emit_16(2052); -emit_16(2119); -emit_16(2053); -emit_16(2119); -emit_16(2052); -emit_16(2119); -emit_16(2053); -emit_16(2120); -emit_16(2054); -emit_16(2120); -emit_16(2053); -emit_16(2120); -emit_16(2054); -emit_16(2121); -emit_16(2055); -emit_16(2121); -emit_16(2054); -emit_16(2121); -emit_16(2055); -emit_16(2122); -emit_16(2056); -emit_16(2122); -emit_16(2055); -emit_16(2122); -emit_16(2056); -emit_16(2123); -emit_16(2057); -emit_16(2123); -emit_16(2056); -emit_16(2123); -emit_16(2057); -emit_16(2124); -emit_16(2058); -emit_16(2124); -emit_16(2057); -emit_16(2124); -emit_16(2058); -emit_16(2125); -emit_16(2059); -emit_16(2125); -emit_16(2058); -emit_16(2125); -emit_16(2059); -emit_16(2126); -emit_16(2060); -emit_16(2126); -emit_16(2059); -emit_16(2126); -emit_16(2060); -emit_16(2127); -emit_16(2061); -emit_16(2127); -emit_16(2060); -emit_16(2127); -emit_16(2061); -emit_16(2128); -emit_16(2062); -emit_16(2128); -emit_16(2061); -emit_16(2128); -emit_16(2062); -emit_16(2129); -emit_16(2063); -emit_16(2129); -emit_16(2062); -emit_16(2129); -emit_16(2063); -emit_16(2130); -emit_16(2064); -emit_16(2130); -emit_16(2063); -emit_16(2130); -emit_16(2064); -emit_16(2131); -emit_16(2065); -emit_16(2131); -emit_16(2064); -emit_16(2131); -emit_16(2065); -emit_16(2132); -emit_16(2066); -emit_16(2132); -emit_16(2065); -emit_16(2132); -emit_16(2066); -emit_16(2133); -emit_16(2067); -emit_16(2133); -emit_16(2066); -emit_16(2133); -emit_16(2067); -emit_16(2134); -emit_16(2068); -emit_16(2134); -emit_16(2067); -emit_16(2134); -emit_16(2068); -emit_16(2135); -emit_16(2069); -emit_16(2135); -emit_16(2068); -emit_16(2135); -emit_16(2069); -emit_16(2136); -emit_16(2070); -emit_16(2136); -emit_16(2069); -emit_16(2136); -emit_16(2070); -emit_16(2137); -emit_16(2071); -emit_16(2137); -emit_16(2070); -emit_16(2137); -emit_16(2071); -emit_16(2138); -emit_16(2072); -emit_16(2138); -emit_16(2071); -emit_16(2138); -emit_16(2072); -emit_16(2139); -emit_16(2073); -emit_16(2139); -emit_16(2072); -emit_16(2139); -emit_16(2073); -emit_16(2140); -emit_16(2074); -emit_16(2140); -emit_16(2073); -emit_16(2140); -emit_16(2074); -emit_16(2141); -emit_16(2075); -emit_16(2141); -emit_16(2074); -emit_16(2141); -emit_16(2075); -emit_16(2142); -emit_16(2076); -emit_16(2142); -emit_16(2075); -emit_16(2142); -emit_16(2076); -emit_16(2143); -emit_16(2077); -emit_16(2143); -emit_16(2076); -emit_16(2143); -emit_16(2077); -emit_16(2144); -emit_16(2078); -emit_16(2144); -emit_16(2077); -emit_16(2144); -emit_16(2078); -emit_16(2145); -emit_16(2079); -emit_16(2145); -emit_16(2078); -emit_16(2145); -emit_16(2079); -emit_16(2146); -emit_16(2080); -emit_16(2146); -emit_16(2079); -emit_16(2146); -emit_16(2080); -emit_16(2147); -emit_16(2081); -emit_16(2147); -emit_16(2080); -emit_16(2147); -emit_16(2081); -emit_16(2148); -emit_16(2082); -emit_16(2148); -emit_16(2081); -emit_16(2148); -emit_16(2082); -emit_16(2149); -emit_16(2083); -emit_16(2149); -emit_16(2082); -emit_16(2149); -emit_16(2083); -emit_16(2150); -emit_16(2084); -emit_16(2150); -emit_16(2083); -emit_16(2150); -emit_16(2084); -emit_16(2151); -emit_16(2085); -emit_16(2151); -emit_16(2084); -emit_16(2151); -emit_16(2085); -emit_16(2152); -emit_16(2086); -emit_16(2152); -emit_16(2085); -emit_16(2152); -emit_16(2086); -emit_16(2153); -emit_16(2087); -emit_16(2153); -emit_16(2086); -emit_16(2153); -emit_16(2087); -emit_16(2154); -emit_16(2088); -emit_16(2154); -emit_16(2087); -emit_16(2154); -emit_16(2088); -emit_16(2155); -emit_16(2089); -emit_16(2155); -emit_16(2088); -emit_16(2155); -emit_16(2089); -emit_16(2156); -emit_16(2090); -emit_16(2156); -emit_16(2089); -emit_16(2156); -emit_16(2090); -emit_16(2157); -emit_16(2091); -emit_16(2157); -emit_16(2090); -emit_16(2157); -emit_16(2091); -emit_16(2158); -emit_16(2092); -emit_16(2158); -emit_16(2091); -emit_16(2158); -emit_16(2092); -emit_16(2159); -emit_16(2093); -emit_16(2159); -emit_16(2092); -emit_16(2159); -emit_16(2093); -emit_16(2160); -emit_16(2094); -emit_16(2160); -emit_16(2093); -emit_16(2160); -emit_16(2094); -emit_16(2161); -emit_16(2095); -emit_16(2161); -emit_16(2094); -emit_16(2161); -emit_16(2095); -emit_16(2162); -emit_16(2096); -emit_16(2162); -emit_16(2095); -emit_16(2162); -emit_16(2096); -emit_16(2163); -emit_16(2097); -emit_16(2163); -emit_16(2096); -emit_16(2163); -emit_16(2097); -emit_16(2164); -emit_16(2098); -emit_16(2164); -emit_16(2097); -emit_16(2164); -emit_16(2098); -emit_16(2165); -emit_16(2099); -emit_16(2165); -emit_16(2098); -emit_16(2165); -emit_16(2099); -emit_16(2166); -emit_16(2100); -emit_16(2166); -emit_16(2099); -emit_16(2166); -emit_16(2100); -emit_16(2167); -emit_16(2101); -emit_16(2167); -emit_16(2100); -emit_16(2167); -emit_16(2101); -emit_16(2168); -emit_16(2102); -emit_16(2168); -emit_16(2101); -emit_16(2168); -emit_16(2102); -emit_16(2169); -emit_16(2103); -emit_16(2169); -emit_16(2102); -emit_16(2169); -emit_16(2103); -emit_16(2170); -emit_16(2104); -emit_16(2170); -emit_16(2103); -emit_16(2170); -emit_16(2104); -emit_16(2171); -emit_16(2105); -emit_16(2171); -emit_16(2104); -emit_16(2171); -emit_16(2105); -emit_16(2172); -emit_16(2106); -emit_16(2172); -emit_16(2105); -emit_16(2172); -emit_16(2106); -emit_16(2173); -emit_16(2107); -emit_16(2173); -emit_16(2106); -emit_16(2173); -emit_16(2107); -emit_16(2174); -emit_16(2108); -emit_16(2174); -emit_16(2107); -emit_16(2174); -emit_16(2108); -emit_16(2175); -emit_16(2109); -emit_16(2175); -emit_16(2108); -emit_16(2175); -emit_16(2109); -emit_16(2176); -emit_16(2110); -emit_16(2176); -emit_16(2109); -emit_16(2176); -emit_16(2110); -emit_16(2177); -emit_16(2111); -emit_16(2177); -emit_16(2110); -emit_start(LandscapeIdxCount) -emit_32(11718); -emit_32(11310); -emit_32(11718); -emit_32(12096); -emit_32(12870); -emit_32(13260); -emit_32(12852); -emit_32(12480); -emit_start(_ZTV14BenchmarkDemo4) -emit_32(0); -emit_32(_ZTI14BenchmarkDemo4); -emit_32(_ZN15DemoApplication6myinitEv__index__); -emit_32(_ZN15DemoApplication16getDynamicsWorldEv__index__); -emit_32(_ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape__index__); -emit_32(_ZN14BenchmarkDemo4D1Ev__index__); -emit_32(_ZN14BenchmarkDemo4D0Ev__index__); -emit_32(_ZN13BenchmarkDemo20clientMoveAndDisplayEv__index__); -emit_32(_ZN13BenchmarkDemo15displayCallbackEv__index__); -emit_start(_ZTI14BenchmarkDemo4) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS14BenchmarkDemo4); -emit_32(_ZTI13BenchmarkDemo); -emit_start(_ZTS14BenchmarkDemo4) -emit_string('14BenchmarkDemo4\x00'); -emit_start(_ZL14benchmarkDemo4) -emit_32(_ZTV14BenchmarkDemo4+8); -emit_32(0); -emit_32(1566444395); -emit_fill(0,1); -emit_fill(0,3); -emit_32(0); -emit_32(0); -emit_32(0); -emit_8(1); -emit_fill(0,3); -emit_fill(0,1); -emit_fill(0,3); -emit_32(0); -emit_32(0); -emit_32(0); -emit_8(1); -emit_fill(0,3); -emit_32(0); -emit_32(0); -emit_32(0); -emit_32(0); -emit_32(4); -emit_32(0); -emit_32(0); -emit_start(_ZTI21btBroadphaseInterface) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS21btBroadphaseInterface); -emit_start(_ZTS21btBroadphaseInterface) -emit_string('21btBroadphaseInterface\x00'); -emit_start(_ZTI25btOverlappingPairCallback) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS25btOverlappingPairCallback); -emit_start(_ZTS25btOverlappingPairCallback) -emit_string('25btOverlappingPairCallback\x00'); -emit_start(_ZTI22btOverlappingPairCache) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS22btOverlappingPairCache); -emit_32(_ZTI25btOverlappingPairCallback); -emit_start(_ZTS22btOverlappingPairCache) -emit_string('22btOverlappingPairCache\x00'); -emit_start(_ZTV15btNullPairCache) -emit_32(0); -emit_32(_ZTI15btNullPairCache); -emit_32(_ZN15btNullPairCacheD1Ev__index__); -emit_32(_ZN15btNullPairCacheD0Ev__index__); -emit_32(_ZN15btNullPairCache18addOverlappingPairEP17btBroadphaseProxyS1___index__); -emit_32(_ZN15btNullPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher__index__); -emit_32(_ZN15btNullPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher__index__); -emit_32(_ZN15btNullPairCache26getOverlappingPairArrayPtrEv__index__); -emit_32(_ZNK15btNullPairCache26getOverlappingPairArrayPtrEv__index__); -emit_32(_ZN15btNullPairCache23getOverlappingPairArrayEv__index__); -emit_32(_ZN15btNullPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher__index__); -emit_32(_ZNK15btNullPairCache22getNumOverlappingPairsEv__index__); -emit_32(_ZN15btNullPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher__index__); -emit_32(_ZN15btNullPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback__index__); -emit_32(_ZN15btNullPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher__index__); -emit_32(_ZN15btNullPairCache8findPairEP17btBroadphaseProxyS1___index__); -emit_32(_ZN15btNullPairCache18hasDeferredRemovalEv__index__); -emit_32(_ZN15btNullPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback__index__); -emit_32(_ZN15btNullPairCache20sortOverlappingPairsEP12btDispatcher__index__); -emit_start(_ZTI15btNullPairCache) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS15btNullPairCache); -emit_32(_ZTI22btOverlappingPairCache); -emit_start(_ZTS15btNullPairCache) -emit_string('15btNullPairCache\x00'); -emit_start(_2E_str11) -emit_string('handle > 0 && handle < m_maxHandles\x00'); -emit_start(_2E_str112) -emit_string('../../../../src/BulletCollision/BroadphaseCollision/btAxisSweep3.h\x00'); -emit_start(_2E_str213) -emit_string('m_firstFreeHandle\x00'); -emit_start(_2E_str314) -emit_string('!pair.m_algorithm\x00'); -emit_start(_ZTV20btAxisSweep3InternalItE) -emit_32(0); -emit_32(_ZTI20btAxisSweep3InternalItE); -emit_32(_ZN20btAxisSweep3InternalItED1Ev__index__); -emit_32(_ZN20btAxisSweep3InternalItED0Ev__index__); -emit_32(_ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4___index__); -emit_32(_ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__); -emit_32(_ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher__index__); -emit_32(_ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4___index__); -emit_32(_ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3___index__); -emit_32(_ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback__index__); -emit_32(_ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher__index__); -emit_32(_ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__); -emit_32(_ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__); -emit_32(_ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2___index__); -emit_32(_ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher__index__); -emit_32(_ZN20btAxisSweep3InternalItE10printStatsEv__index__); -emit_start(_ZTI20btAxisSweep3InternalItE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS20btAxisSweep3InternalItE); -emit_32(_ZTI21btBroadphaseInterface); -emit_start(_ZTS20btAxisSweep3InternalItE) -emit_string('20btAxisSweep3InternalItE\x00'); -emit_start(_ZTV12btAxisSweep3) -emit_32(0); -emit_32(_ZTI12btAxisSweep3); -emit_32(_ZN12btAxisSweep3D1Ev__index__); -emit_32(_ZN12btAxisSweep3D0Ev__index__); -emit_32(_ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4___index__); -emit_32(_ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__); -emit_32(_ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher__index__); -emit_32(_ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4___index__); -emit_32(_ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3___index__); -emit_32(_ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback__index__); -emit_32(_ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher__index__); -emit_32(_ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__); -emit_32(_ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__); -emit_32(_ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2___index__); -emit_32(_ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher__index__); -emit_32(_ZN20btAxisSweep3InternalItE10printStatsEv__index__); -emit_start(_ZTI12btAxisSweep3) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS12btAxisSweep3); -emit_32(_ZTI20btAxisSweep3InternalItE); -emit_start(_ZTS12btAxisSweep3) -emit_string('12btAxisSweep3\x00'); -emit_start(_ZTV20btCollisionAlgorithm) -emit_32(0); -emit_32(_ZTI20btCollisionAlgorithm); -emit_32(_ZN20btCollisionAlgorithmD1Ev__index__); -emit_32(_ZN20btCollisionAlgorithmD0Ev__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_start(_ZTI20btCollisionAlgorithm) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS20btCollisionAlgorithm); -emit_start(_ZTS20btCollisionAlgorithm) -emit_string('20btCollisionAlgorithm\x00'); -emit_start(_ZTIN6btDbvt8ICollideE) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTSN6btDbvt8ICollideE); -emit_start(_ZTSN6btDbvt8ICollideE) -emit_string('N6btDbvt8ICollideE\x00'); -emit_start(_2E_str1118) -emit_string('../../../../src/BulletCollision/BroadphaseCollision/btDbvt.cpp\x00'); -emit_start(_2E_str22) -emit_string('n==p->childs[i]\x00'); -emit_start(_ZTV18btDbvtTreeCollider) -emit_32(0); -emit_32(_ZTI18btDbvtTreeCollider); -emit_32(_ZN18btDbvtTreeColliderD1Ev__index__); -emit_32(_ZN18btDbvtTreeColliderD0Ev__index__); -emit_32(_ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2___index__); -emit_32(_ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode__index__); -emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__); -emit_32(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__); -emit_32(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__); -emit_start(_ZTI18btDbvtTreeCollider) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS18btDbvtTreeCollider); -emit_32(_ZTIN6btDbvt8ICollideE); -emit_start(_ZTS18btDbvtTreeCollider) -emit_string('18btDbvtTreeCollider\x00'); -emit_start(_ZTV19BroadphaseRayTester) -emit_32(0); -emit_32(_ZTI19BroadphaseRayTester); -emit_32(_ZN19BroadphaseRayTesterD1Ev__index__); -emit_32(_ZN19BroadphaseRayTesterD0Ev__index__); -emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3___index__); -emit_32(_ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode__index__); -emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__); -emit_32(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__); -emit_32(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__); -emit_start(_ZTI19BroadphaseRayTester) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS19BroadphaseRayTester); -emit_32(_ZTIN6btDbvt8ICollideE); -emit_start(_ZTS19BroadphaseRayTester) -emit_string('19BroadphaseRayTester\x00'); -emit_start(_ZTV20BroadphaseAabbTester) -emit_32(0); -emit_32(_ZTI20BroadphaseAabbTester); -emit_32(_ZN20BroadphaseAabbTesterD1Ev__index__); -emit_32(_ZN20BroadphaseAabbTesterD0Ev__index__); -emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3___index__); -emit_32(_ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode__index__); -emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__); -emit_32(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__); -emit_32(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__); -emit_start(_ZTI20BroadphaseAabbTester) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS20BroadphaseAabbTester); -emit_32(_ZTIN6btDbvt8ICollideE); -emit_start(_ZTS20BroadphaseAabbTester) -emit_string('20BroadphaseAabbTester\x00'); -emit_start(_2E_str18) -emit_string('../../../../src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp\x00'); -emit_start(_ZTV16btDbvtBroadphase) -emit_32(0); -emit_32(_ZTI16btDbvtBroadphase); -emit_32(_ZN16btDbvtBroadphaseD1Ev__index__); -emit_32(_ZN16btDbvtBroadphaseD0Ev__index__); -emit_32(_ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3___index__); -emit_32(_ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__); -emit_32(_ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher__index__); -emit_32(_ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3___index__); -emit_32(_ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2___index__); -emit_32(_ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback__index__); -emit_32(_ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher__index__); -emit_32(_ZN16btDbvtBroadphase23getOverlappingPairCacheEv__index__); -emit_32(_ZNK16btDbvtBroadphase23getOverlappingPairCacheEv__index__); -emit_32(_ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1___index__); -emit_32(_ZN16btDbvtBroadphase9resetPoolEP12btDispatcher__index__); -emit_32(_ZN16btDbvtBroadphase10printStatsEv__index__); -emit_start(_ZTI16btDbvtBroadphase) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS16btDbvtBroadphase); -emit_32(_ZTI21btBroadphaseInterface); -emit_start(_ZTS16btDbvtBroadphase) -emit_string('16btDbvtBroadphase\x00'); -emit_start(_ZTV12btDispatcher) -emit_32(0); -emit_32(_ZTI12btDispatcher); -emit_32(_ZN12btDispatcherD1Ev__index__); -emit_32(_ZN12btDispatcherD0Ev__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_start(_ZTI12btDispatcher) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS12btDispatcher); -emit_start(_ZTS12btDispatcher) -emit_string('12btDispatcher\x00'); -emit_start(_ZTI21btNodeOverlapCallback) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS21btNodeOverlapCallback); -emit_start(_ZTS21btNodeOverlapCallback) -emit_string('21btNodeOverlapCallback\x00'); -emit_start(_2E_str10) -emit_string('0\x00'); -emit_start(_2E_str212) -emit_string('m_useQuantization\x00'); -emit_start(_2E_str313) -emit_string('../../../../src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h\x00'); -emit_start(_2E_str414) -emit_string('point.getX() <= m_bvhAabbMax.getX()\x00'); -emit_start(_2E_str515) -emit_string('point.getY() <= m_bvhAabbMax.getY()\x00'); -emit_start(_2E_str616) -emit_string('point.getZ() <= m_bvhAabbMax.getZ()\x00'); -emit_start(_2E_str717) -emit_string('point.getX() >= m_bvhAabbMin.getX()\x00'); -emit_start(_2E_str820) -emit_string('point.getY() >= m_bvhAabbMin.getY()\x00'); -emit_start(_2E_str9) -emit_string('point.getZ() >= m_bvhAabbMin.getZ()\x00'); -emit_start(_ZTI17btOverlapCallback) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS17btOverlapCallback); -emit_start(_ZTS17btOverlapCallback) -emit_string('17btOverlapCallback\x00'); -emit_start(_ZTVZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback) -emit_32(0); -emit_32(_ZTIZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback); -emit_32(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD1Ev__index__); -emit_32(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev__index__); -emit_32(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair__index__); -emit_start(_ZTIZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback); -emit_32(_ZTI17btOverlapCallback); -emit_start(_ZTSZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback) -emit_string('ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherE17CleanPairCallback\x00'); -emit_start(_ZTVZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback) -emit_32(0); -emit_32(_ZTIZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback); -emit_32(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD1Ev__index__); -emit_32(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev__index__); -emit_32(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair__index__); -emit_start(_ZTIZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback); -emit_32(_ZTI17btOverlapCallback); -emit_start(_ZTSZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback) -emit_string('ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherE18RemovePairCallback\x00'); -emit_start(_ZTV28btHashedOverlappingPairCache) -emit_32(0); -emit_32(_ZTI28btHashedOverlappingPairCache); -emit_32(_ZN28btHashedOverlappingPairCacheD1Ev__index__); -emit_32(_ZN28btHashedOverlappingPairCacheD0Ev__index__); -emit_32(_ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1___index__); -emit_32(_ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher__index__); -emit_32(_ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher__index__); -emit_32(_ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv__index__); -emit_32(_ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv__index__); -emit_32(_ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv__index__); -emit_32(_ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher__index__); -emit_32(_ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv__index__); -emit_32(_ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher__index__); -emit_32(_ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback__index__); -emit_32(_ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher__index__); -emit_32(_ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1___index__); -emit_32(_ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv__index__); -emit_32(_ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback__index__); -emit_32(_ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher__index__); -emit_start(_ZTI28btHashedOverlappingPairCache) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS28btHashedOverlappingPairCache); -emit_32(_ZTI22btOverlappingPairCache); -emit_start(_ZTS28btHashedOverlappingPairCache) -emit_string('28btHashedOverlappingPairCache\x00'); -emit_start(_2E_str121) -emit_string('../../../../src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp\x00'); -emit_start(_2E_str222) -emit_string('index < m_overlappingPairArray.size()\x00'); -emit_start(_2E_str323) -emit_string('../../../../src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h\x00'); -emit_start(_2E_str424) -emit_string('pair->m_pProxy0->getUid() == proxyId1\x00'); -emit_start(_2E_str525) -emit_string('pair->m_pProxy1->getUid() == proxyId2\x00'); -emit_start(_2E_str626) -emit_string('pairIndex < m_overlappingPairArray.size()\x00'); -emit_start(_2E_str727) -emit_string('index != BT_NULL_PAIR\x00'); -emit_start(_2E_str32) -emit_string('btOptimizedBvhNodeData\x00'); -emit_start(_2E_str133) -emit_string('btQuantizedBvhNodeData\x00'); -emit_start(_2E_str234) -emit_string('btBvhSubtreeInfoData\x00'); -emit_start(_2E_str335) -emit_string('btQuantizedBvhFloatData\x00'); -emit_start(_ZTV14btQuantizedBvh) -emit_32(0); -emit_32(_ZTI14btQuantizedBvh); -emit_32(_ZN14btQuantizedBvhD1Ev__index__); -emit_32(_ZN14btQuantizedBvhD0Ev__index__); -emit_32(_ZNK14btQuantizedBvh9serializeEPvjb__index__); -emit_32(_ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv__index__); -emit_32(_ZNK14btQuantizedBvh9serializeEPvP12btSerializer__index__); -emit_32(_ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData__index__); -emit_32(_ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData__index__); -emit_start(_ZTI14btQuantizedBvh) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS14btQuantizedBvh); -emit_start(_ZTS14btQuantizedBvh) -emit_string('14btQuantizedBvh\x00'); -emit_start(_2E_str537) -emit_string('../../../../src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp\x00'); -emit_start(_2E_str638) -emit_string('m_subtreeHeaderCount == m_SubtreeHeaders.size()\x00'); -emit_start(_2E_str739) -emit_string('isLeafNode()\x00'); -emit_start(_2E_str941) -emit_string('!isLeafNode()\x00'); -emit_start(_2E_str1143) -emit_string('walkIterations < subTreeSize\x00'); -emit_start(_2E_str1844) -emit_string('!m_useQuantization\x00'); -emit_start(_2E_str1921) -emit_string('walkIterations < m_curNodeIndex\x00'); -emit_start(_2E_str21) -emit_string('!unbal\x00'); -emit_start(_2E_str2246) -emit_string('numIndices>0\x00'); -emit_start(_ZTV30btActivatingCollisionAlgorithm) -emit_32(0); -emit_32(_ZTI30btActivatingCollisionAlgorithm); -emit_32(_ZN30btActivatingCollisionAlgorithmD1Ev__index__); -emit_32(_ZN30btActivatingCollisionAlgorithmD0Ev__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_start(_ZTI30btActivatingCollisionAlgorithm) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS30btActivatingCollisionAlgorithm); -emit_32(_ZTI20btCollisionAlgorithm); -emit_start(_ZTS30btActivatingCollisionAlgorithm) -emit_string('30btActivatingCollisionAlgorithm\x00'); -emit_start(_2E_str59) -emit_string('m_manifoldPtr\x00'); -emit_start(_2E_str160) -emit_string('../../../../src/BulletCollision/CollisionDispatch/btManifoldResult.h\x00'); -emit_start(_ZTV26btBoxBoxCollisionAlgorithm) -emit_32(0); -emit_32(_ZTI26btBoxBoxCollisionAlgorithm); -emit_32(_ZN26btBoxBoxCollisionAlgorithmD1Ev__index__); -emit_32(_ZN26btBoxBoxCollisionAlgorithmD0Ev__index__); -emit_32(_ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__); -emit_start(_ZTI26btBoxBoxCollisionAlgorithm) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS26btBoxBoxCollisionAlgorithm); -emit_32(_ZTI30btActivatingCollisionAlgorithm); -emit_start(_ZTS26btBoxBoxCollisionAlgorithm) -emit_string('26btBoxBoxCollisionAlgorithm\x00'); -emit_start(_ZTI36btDiscreteCollisionDetectorInterface) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS36btDiscreteCollisionDetectorInterface); -emit_start(_ZTS36btDiscreteCollisionDetectorInterface) -emit_string('36btDiscreteCollisionDetectorInterface\x00'); -emit_start(_ZTV16btBoxBoxDetector) -emit_32(0); -emit_32(_ZTI16btBoxBoxDetector); -emit_32(_ZN16btBoxBoxDetectorD1Ev__index__); -emit_32(_ZN16btBoxBoxDetectorD0Ev__index__); -emit_32(_ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__); -emit_start(_ZTI16btBoxBoxDetector) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS16btBoxBoxDetector); -emit_32(_ZTI36btDiscreteCollisionDetectorInterface); -emit_start(_ZTS16btBoxBoxDetector) -emit_string('16btBoxBoxDetector\x00'); -emit_start(_2E_str65) -emit_string('*iret != i0\x00'); -emit_start(_2E_str166) -emit_string('../../../../src/BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp\x00'); -emit_start(_ZTIN36btDiscreteCollisionDetectorInterface6ResultE) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTSN36btDiscreteCollisionDetectorInterface6ResultE); -emit_start(_ZTSN36btDiscreteCollisionDetectorInterface6ResultE) -emit_string('N36btDiscreteCollisionDetectorInterface6ResultE\x00'); -emit_start(_ZTV23btCollisionPairCallback) -emit_32(0); -emit_32(_ZTI23btCollisionPairCallback); -emit_32(_ZN23btCollisionPairCallbackD1Ev__index__); -emit_32(_ZN23btCollisionPairCallbackD0Ev__index__); -emit_32(_ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair__index__); -emit_start(_ZTI23btCollisionPairCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS23btCollisionPairCallback); -emit_32(_ZTI17btOverlapCallback); -emit_start(_ZTS23btCollisionPairCallback) -emit_string('23btCollisionPairCallback\x00'); -emit_start(_2E_str169) -emit_string('../../../../src/LinearMath/btPoolAllocator.h\x00'); -emit_start(_2E_str270) -emit_string('!size || size<=m_elemSize\x00'); -emit_start(_2E_str371) -emit_string('m_freeCount>0\x00'); -emit_start(_2E_str472) -emit_string('findIndex < m_manifoldsPtr.size()\x00'); -emit_start(_2E_str573) -emit_string('../../../../src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp\x00'); -emit_start(_ZTV21btCollisionDispatcher) -emit_32(0); -emit_32(_ZTI21btCollisionDispatcher); -emit_32(_ZN21btCollisionDispatcherD1Ev__index__); -emit_32(_ZN21btCollisionDispatcherD0Ev__index__); -emit_32(_ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold__index__); -emit_32(_ZN21btCollisionDispatcher14getNewManifoldEPvS0___index__); -emit_32(_ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold__index__); -emit_32(_ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold__index__); -emit_32(_ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1___index__); -emit_32(_ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1___index__); -emit_32(_ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher__index__); -emit_32(_ZNK21btCollisionDispatcher15getNumManifoldsEv__index__); -emit_32(_ZN21btCollisionDispatcher26getManifoldByIndexInternalEi__index__); -emit_32(_ZN21btCollisionDispatcher26getInternalManifoldPointerEv__index__); -emit_32(_ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi__index__); -emit_32(_ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv__index__); -emit_start(_ZTI21btCollisionDispatcher) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS21btCollisionDispatcher); -emit_32(_ZTI12btDispatcher); -emit_start(_ZTS21btCollisionDispatcher) -emit_string('21btCollisionDispatcher\x00'); -emit_start(_2E_str674) -emit_string('m_doubleDispatch[i][j]\x00'); -emit_start(_2E_str775) -emit_string('body0\x00'); -emit_start(_2E_str876) -emit_string('body1\x00'); -emit_start(_2E_str977) -emit_string('warning btCollisionDispatcher::needsCollision: static-static collision!\x0a\x00'); -emit_start(_ZTV17btCollisionObject) -emit_32(0); -emit_32(_ZTI17btCollisionObject); -emit_32(_ZN17btCollisionObject24checkCollideWithOverrideEPS___index__); -emit_32(_ZN17btCollisionObjectD1Ev__index__); -emit_32(_ZN17btCollisionObjectD0Ev__index__); -emit_32(_ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape__index__); -emit_32(_ZNK17btCollisionObject28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK17btCollisionObject9serializeEPvP12btSerializer__index__); -emit_32(_ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer__index__); -emit_start(_ZTI17btCollisionObject) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS17btCollisionObject); -emit_start(_ZTS17btCollisionObject) -emit_string('17btCollisionObject\x00'); -emit_start(_2E_str78) -emit_string('btCollisionObjectFloatData\x00'); -emit_start(_ZTIN16btCollisionWorld20ConvexResultCallbackE) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTSN16btCollisionWorld20ConvexResultCallbackE); -emit_start(_ZTSN16btCollisionWorld20ConvexResultCallbackE) -emit_string('N16btCollisionWorld20ConvexResultCallbackE\x00'); -emit_start(_ZTI30btConvexPenetrationDepthSolver) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS30btConvexPenetrationDepthSolver); -emit_start(_ZTS30btConvexPenetrationDepthSolver) -emit_string('30btConvexPenetrationDepthSolver\x00'); -emit_start(_ZTVN12btConvexCast10CastResultE) -emit_32(0); -emit_32(_ZTIN12btConvexCast10CastResultE); -emit_32(_ZN12btConvexCast10CastResult9DebugDrawEf__index__); -emit_32(_ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform__index__); -emit_32(_ZN12btConvexCast10CastResultD1Ev__index__); -emit_32(_ZN12btConvexCast10CastResultD0Ev__index__); -emit_start(_ZTIN12btConvexCast10CastResultE) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTSN12btConvexCast10CastResultE); -emit_start(_ZTSN12btConvexCast10CastResultE) -emit_string('N12btConvexCast10CastResultE\x00'); -emit_start(_ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2) -emit_32(0); -emit_32(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2); -emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D1Ev__index__); -emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev__index__); -emit_32(_ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy__index__); -emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb__index__); -emit_start(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2); -emit_32(_ZTIN16btCollisionWorld17RayResultCallbackE); -emit_start(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2) -emit_string('ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE15LocalInfoAdder2\x00'); -emit_start(_ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder) -emit_32(0); -emit_32(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder); -emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD1Ev__index__); -emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0Ev__index__); -emit_32(_ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__); -emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultERNS_17LocalConvexResultEb__index__); -emit_start(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder); -emit_32(_ZTIN16btCollisionWorld20ConvexResultCallbackE); -emit_start(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder) -emit_string('ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE14LocalInfoAdder\x00'); -emit_start(_ZTI24btBroadphaseAabbCallback) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS24btBroadphaseAabbCallback); -emit_start(_ZTS24btBroadphaseAabbCallback) -emit_string('24btBroadphaseAabbCallback\x00'); -emit_start(_ZTI23btBroadphaseRayCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS23btBroadphaseRayCallback); -emit_32(_ZTI24btBroadphaseAabbCallback); -emit_start(_ZTS23btBroadphaseRayCallback) -emit_string('23btBroadphaseRayCallback\x00'); -emit_start(_ZTV17DebugDrawcallback) -emit_32(0); -emit_32(_ZTI17DebugDrawcallback); -emit_32(_ZN17DebugDrawcallbackD1Ev__index__); -emit_32(_ZN17DebugDrawcallbackD0Ev__index__); -emit_32(_ZN17DebugDrawcallback15processTriangleEP9btVector3ii__index__); -emit_32(_ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii__index__); -emit_32(4294967292); -emit_32(_ZTI17DebugDrawcallback); -emit_32(_ZThn4_N17DebugDrawcallbackD1Ev__index__); -emit_32(_ZThn4_N17DebugDrawcallbackD0Ev__index__); -emit_32(_ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii__index__); -emit_start(_ZTI17DebugDrawcallback) -emit_32(_ZTVN10__cxxabiv121__vmi_class_type_infoE+8); -emit_32(_ZTS17DebugDrawcallback); -emit_32(0); -emit_32(2); -emit_32(_ZTI18btTriangleCallback); -emit_32(2); -emit_32(_ZTI31btInternalTriangleIndexCallback); -emit_32(1026); -emit_start(_ZTS17DebugDrawcallback) -emit_string('17DebugDrawcallback\x00'); -emit_start(_ZTI18btTriangleCallback) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS18btTriangleCallback); -emit_start(_ZTS18btTriangleCallback) -emit_string('18btTriangleCallback\x00'); -emit_start(_ZTI31btInternalTriangleIndexCallback) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS31btInternalTriangleIndexCallback); -emit_start(_ZTS31btInternalTriangleIndexCallback) -emit_string('31btInternalTriangleIndexCallback\x00'); -emit_start(_ZTV16btCollisionWorld) -emit_32(0); -emit_32(_ZTI16btCollisionWorld); -emit_32(_ZN16btCollisionWorldD1Ev__index__); -emit_32(_ZN16btCollisionWorldD0Ev__index__); -emit_32(_ZN16btCollisionWorld11updateAabbsEv__index__); -emit_32(_ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw__index__); -emit_32(_ZN16btCollisionWorld14getDebugDrawerEv__index__); -emit_32(_ZN16btCollisionWorld14debugDrawWorldEv__index__); -emit_32(_ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3__index__); -emit_32(_ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE__index__); -emit_32(_ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss__index__); -emit_32(_ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject__index__); -emit_32(_ZN16btCollisionWorld33performDiscreteCollisionDetectionEv__index__); -emit_32(_ZN16btCollisionWorld9serializeEP12btSerializer__index__); -emit_start(_ZTI16btCollisionWorld) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS16btCollisionWorld); -emit_start(_ZTS16btCollisionWorld) -emit_string('16btCollisionWorld\x00'); -emit_start(_ZTI16btManifoldResult) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS16btManifoldResult); -emit_32(_ZTIN36btDiscreteCollisionDetectorInterface6ResultE); -emit_start(_ZTS16btManifoldResult) -emit_string('16btManifoldResult\x00'); -emit_start(_ZTV21btSingleSweepCallback) -emit_32(0); -emit_32(_ZTI21btSingleSweepCallback); -emit_32(_ZN21btSingleSweepCallbackD1Ev__index__); -emit_32(_ZN21btSingleSweepCallbackD0Ev__index__); -emit_32(_ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy__index__); -emit_start(_ZTI21btSingleSweepCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS21btSingleSweepCallback); -emit_32(_ZTI23btBroadphaseRayCallback); -emit_start(_ZTS21btSingleSweepCallback) -emit_string('21btSingleSweepCallback\x00'); -emit_start(_ZTV19btSingleRayCallback) -emit_32(0); -emit_32(_ZTI19btSingleRayCallback); -emit_32(_ZN19btSingleRayCallbackD1Ev__index__); -emit_32(_ZN19btSingleRayCallbackD0Ev__index__); -emit_32(_ZN19btSingleRayCallback7processEPK17btBroadphaseProxy__index__); -emit_start(_ZTI19btSingleRayCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS19btSingleRayCallback); -emit_32(_ZTI23btBroadphaseRayCallback); -emit_start(_ZTS19btSingleRayCallback) -emit_string('19btSingleRayCallback\x00'); -emit_start(_2E_str382) -emit_string('index < m_cachedPoints\x00'); -emit_start(_2E_str483) -emit_string('../../../../src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h\x00'); -emit_start(_2E_str584) -emit_string('s != btScalar(0.0)\x00'); -emit_start(_2E_str685) -emit_string('../../../../src/LinearMath/btQuaternion.h\x00'); -emit_start(_2E_str786) -emit_string('collisionObject\x00'); -emit_start(_2E_str887) -emit_string('../../../../src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp\x00'); -emit_start(_2E_str988) -emit_string('m_collisionObjects.findLinearSearch(collisionObject) == m_collisionObjects.size()\x00'); -emit_start(_ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0) -emit_32(0); -emit_32(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0); -emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1E_0v__index__); -emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v__index__); -emit_32(_ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii__index__); -emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii__index__); -emit_start(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0); -emit_32(_ZTI28btTriangleConvexcastCallback); -emit_start(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0) -emit_string('ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback_0\x00'); -emit_start(_ZTI28btTriangleConvexcastCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS28btTriangleConvexcastCallback); -emit_32(_ZTI18btTriangleCallback); -emit_start(_ZTS28btTriangleConvexcastCallback) -emit_string('28btTriangleConvexcastCallback\x00'); -emit_start(_ZTVZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback) -emit_32(0); -emit_32(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback); -emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1Ev__index__); -emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev__index__); -emit_32(_ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii__index__); -emit_32(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii__index__); -emit_start(_ZTIZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback); -emit_32(_ZTI28btTriangleConvexcastCallback); -emit_start(_ZTSZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback) -emit_string('ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfE32BridgeTriangleConvexcastCallback\x00'); -emit_start(_ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0) -emit_32(0); -emit_32(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0); -emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1E_0v__index__); -emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v__index__); -emit_32(_ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii__index__); -emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii__index__); -emit_start(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0); -emit_32(_ZTI25btTriangleRaycastCallback); -emit_start(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0) -emit_string('ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback_0\x00'); -emit_start(_ZTI25btTriangleRaycastCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS25btTriangleRaycastCallback); -emit_32(_ZTI18btTriangleCallback); -emit_start(_ZTS25btTriangleRaycastCallback) -emit_string('25btTriangleRaycastCallback\x00'); -emit_start(_ZTVZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback) -emit_32(0); -emit_32(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback); -emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1Ev__index__); -emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev__index__); -emit_32(_ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii__index__); -emit_32(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii__index__); -emit_start(_ZTIZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback); -emit_32(_ZTI25btTriangleRaycastCallback); -emit_start(_ZTSZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback) -emit_string('ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEE29BridgeTriangleRaycastCallback\x00'); -emit_start(_2E_str1089) -emit_string('convexSweepTest\x00'); -emit_start(_2E_str1190) -emit_string('performDiscreteCollisionDetection\x00'); -emit_start(_2E_str1291) -emit_string('calculateOverlappingPairs\x00'); -emit_start(_2E_str1392) -emit_string('dispatchAllCollisionPairs\x00'); -emit_start(_2E_str1493) -emit_string('convexSweepCompound\x00'); -emit_start(_2E_str1594) -emit_string('Overflow in AABB, object removed from simulation\x00'); -emit_start(_2E_str1695) -emit_string('If you can reproduce this, please email bugs@continuousphysics.com\x0a\x00'); -emit_start(_2E_str1796) -emit_string('Please include above information, your Platform, version of OS.\x0a\x00'); -emit_start(_2E_str1897) -emit_string('Thanks.\x0a\x00'); -emit_start(_2E_str1998) -emit_string('updateAabbs\x00'); -emit_start(_ZTV22btCompoundLeafCallback) -emit_32(0); -emit_32(_ZTI22btCompoundLeafCallback); -emit_32(_ZN22btCompoundLeafCallbackD1Ev__index__); -emit_32(_ZN22btCompoundLeafCallbackD0Ev__index__); -emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3___index__); -emit_32(_ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode__index__); -emit_32(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__); -emit_32(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__); -emit_32(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__); -emit_start(_ZTI22btCompoundLeafCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS22btCompoundLeafCallback); -emit_32(_ZTIN6btDbvt8ICollideE); -emit_start(_ZTS22btCompoundLeafCallback) -emit_string('22btCompoundLeafCallback\x00'); -emit_start(_2E_str99) -emit_string('colObj->getCollisionShape()->isCompound()\x00'); -emit_start(_2E_str1100) -emit_string('../../../../src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp\x00'); -emit_start(_2E_str2101) -emit_string('localAabbMin.getX() <= localAabbMax.getX()\x00'); -emit_start(_2E_str3102) -emit_string('../../../../src/LinearMath/btAabbUtil2.h\x00'); -emit_start(_2E_str4103) -emit_string('localAabbMin.getY() <= localAabbMax.getY()\x00'); -emit_start(_2E_str5104) -emit_string('localAabbMin.getZ() <= localAabbMax.getZ()\x00'); -emit_start(_2E_str6105) -emit_string('index>=0\x00'); -emit_start(_2E_str7106) -emit_string('indexgetNumChildShapes()\x00'); -emit_start(_ZTV28btCompoundCollisionAlgorithm) -emit_32(0); -emit_32(_ZTI28btCompoundCollisionAlgorithm); -emit_32(_ZN28btCompoundCollisionAlgorithmD1Ev__index__); -emit_32(_ZN28btCompoundCollisionAlgorithmD0Ev__index__); -emit_32(_ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__); -emit_start(_ZTI28btCompoundCollisionAlgorithm) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS28btCompoundCollisionAlgorithm); -emit_32(_ZTI30btActivatingCollisionAlgorithm); -emit_start(_ZTS28btCompoundCollisionAlgorithm) -emit_string('28btCompoundCollisionAlgorithm\x00'); -emit_start(_2E_str109) -emit_string('Triangle\x00'); -emit_start(_ZTV24btConvexTriangleCallback) -emit_32(0); -emit_32(_ZTI24btConvexTriangleCallback); -emit_32(_ZN24btConvexTriangleCallbackD1Ev__index__); -emit_32(_ZN24btConvexTriangleCallbackD0Ev__index__); -emit_32(_ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii__index__); -emit_start(_ZTI24btConvexTriangleCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS24btConvexTriangleCallback); -emit_32(_ZTI18btTriangleCallback); -emit_start(_ZTS24btConvexTriangleCallback) -emit_string('24btConvexTriangleCallback\x00'); -emit_start(_ZTVZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback) -emit_32(0); -emit_32(_ZTIZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback); -emit_32(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD1Ev__index__); -emit_32(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev__index__); -emit_32(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii__index__); -emit_start(_ZTIZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback); -emit_32(_ZTI18btTriangleCallback); -emit_start(_ZTSZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback) -emit_string('ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback\x00'); -emit_start(_ZTV15btTriangleShape) -emit_32(0); -emit_32(_ZTI15btTriangleShape); -emit_32(_ZN15btTriangleShapeD1Ev__index__); -emit_32(_ZN15btTriangleShapeD0Ev__index__); -emit_32(_ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4___index__); -emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__); -emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__); -emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__); -emit_32(_ZN21btConvexInternalShape15setLocalScalingERK9btVector3__index__); -emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__); -emit_32(_ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3__index__); -emit_32(_ZNK15btTriangleShape7getNameEv__index__); -emit_32(_ZN21btConvexInternalShape9setMarginEf__index__); -emit_32(_ZNK21btConvexInternalShape9getMarginEv__index__); -emit_32(_ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK21btConvexInternalShape9serializeEPvP12btSerializer__index__); -emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__); -emit_32(_ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3__index__); -emit_32(_ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__); -emit_32(_ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__); -emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__); -emit_32(_ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv__index__); -emit_32(_ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3__index__); -emit_32(_ZNK15btTriangleShape14getNumVerticesEv__index__); -emit_32(_ZNK15btTriangleShape11getNumEdgesEv__index__); -emit_32(_ZNK15btTriangleShape7getEdgeEiR9btVector3S1___index__); -emit_32(_ZNK15btTriangleShape9getVertexEiR9btVector3__index__); -emit_32(_ZNK15btTriangleShape12getNumPlanesEv__index__); -emit_32(_ZNK15btTriangleShape8getPlaneER9btVector3S1_i__index__); -emit_32(_ZNK15btTriangleShape8isInsideERK9btVector3f__index__); -emit_32(_ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1___index__); -emit_start(_ZTI15btTriangleShape) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS15btTriangleShape); -emit_32(_ZTI23btPolyhedralConvexShape); -emit_start(_ZTS15btTriangleShape) -emit_string('15btTriangleShape\x00'); -emit_start(_ZTI23btPolyhedralConvexShape) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS23btPolyhedralConvexShape); -emit_32(_ZTI21btConvexInternalShape); -emit_start(_ZTS23btPolyhedralConvexShape) -emit_string('23btPolyhedralConvexShape\x00'); -emit_start(_ZTI21btConvexInternalShape) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS21btConvexInternalShape); -emit_32(_ZTI13btConvexShape); -emit_start(_ZTS21btConvexInternalShape) -emit_string('21btConvexInternalShape\x00'); -emit_start(_ZTI13btConvexShape) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS13btConvexShape); -emit_32(_ZTI16btCollisionShape); -emit_start(_ZTS13btConvexShape) -emit_string('13btConvexShape\x00'); -emit_start(_ZTI16btCollisionShape) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS16btCollisionShape); -emit_start(_ZTS16btCollisionShape) -emit_string('16btCollisionShape\x00'); -emit_start(_2E_str1110) -emit_string('btConvexInternalShapeData\x00'); -emit_start(_2E_str3112) -emit_string('../../../../src/BulletCollision/CollisionShapes/btTriangleShape.h\x00'); -emit_start(_ZTV33btConvexConcaveCollisionAlgorithm) -emit_32(0); -emit_32(_ZTI33btConvexConcaveCollisionAlgorithm); -emit_32(_ZN33btConvexConcaveCollisionAlgorithmD1Ev__index__); -emit_32(_ZN33btConvexConcaveCollisionAlgorithmD0Ev__index__); -emit_32(_ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__); -emit_start(_ZTI33btConvexConcaveCollisionAlgorithm) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS33btConvexConcaveCollisionAlgorithm); -emit_32(_ZTI30btActivatingCollisionAlgorithm); -emit_start(_ZTS33btConvexConcaveCollisionAlgorithm) -emit_string('33btConvexConcaveCollisionAlgorithm\x00'); -emit_start(_ZTI30btCollisionAlgorithmCreateFunc) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS30btCollisionAlgorithmCreateFunc); -emit_start(_ZTS30btCollisionAlgorithmCreateFunc) -emit_string('30btCollisionAlgorithmCreateFunc\x00'); -emit_start(_ZTVN23btConvexConvexAlgorithm10CreateFuncE) -emit_32(0); -emit_32(_ZTIN23btConvexConvexAlgorithm10CreateFuncE); -emit_32(_ZN23btConvexConvexAlgorithm10CreateFuncD1Ev__index__); -emit_32(_ZN23btConvexConvexAlgorithm10CreateFuncD0Ev__index__); -emit_32(_ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__); -emit_start(_ZTIN23btConvexConvexAlgorithm10CreateFuncE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN23btConvexConvexAlgorithm10CreateFuncE); -emit_32(_ZTI30btCollisionAlgorithmCreateFunc); -emit_start(_ZTSN23btConvexConvexAlgorithm10CreateFuncE) -emit_string('N23btConvexConvexAlgorithm10CreateFuncE\x00'); -emit_start(_ZTV24btPerturbedContactResult) -emit_32(0); -emit_32(_ZTI24btPerturbedContactResult); -emit_32(_ZN24btPerturbedContactResultD1Ev__index__); -emit_32(_ZN24btPerturbedContactResultD0Ev__index__); -emit_32(_ZN16btManifoldResult20setShapeIdentifiersAEii__index__); -emit_32(_ZN16btManifoldResult20setShapeIdentifiersBEii__index__); -emit_32(_ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f__index__); -emit_start(_ZTI24btPerturbedContactResult) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS24btPerturbedContactResult); -emit_32(_ZTI16btManifoldResult); -emit_start(_ZTS24btPerturbedContactResult) -emit_string('24btPerturbedContactResult\x00'); -emit_start(_2E_str115) -emit_string('d != btScalar(0.0)\x00'); -emit_start(_2E_str4119) -emit_string('normalOnB.length2()>=(SIMD_EPSILON*SIMD_EPSILON)\x00'); -emit_start(_2E_str5120) -emit_string('../../../../src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp\x00'); -emit_start(_ZTV23btConvexConvexAlgorithm) -emit_32(0); -emit_32(_ZTI23btConvexConvexAlgorithm); -emit_32(_ZN23btConvexConvexAlgorithmD1Ev__index__); -emit_32(_ZN23btConvexConvexAlgorithmD0Ev__index__); -emit_32(_ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__); -emit_start(_ZTI23btConvexConvexAlgorithm) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS23btConvexConvexAlgorithm); -emit_32(_ZTI30btActivatingCollisionAlgorithm); -emit_start(_ZTS23btConvexConvexAlgorithm) -emit_string('23btConvexConvexAlgorithm\x00'); -emit_start(_ZTV31btConvexPlaneCollisionAlgorithm) -emit_32(0); -emit_32(_ZTI31btConvexPlaneCollisionAlgorithm); -emit_32(_ZN31btConvexPlaneCollisionAlgorithmD1Ev__index__); -emit_32(_ZN31btConvexPlaneCollisionAlgorithmD0Ev__index__); -emit_32(_ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__); -emit_start(_ZTI31btConvexPlaneCollisionAlgorithm) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS31btConvexPlaneCollisionAlgorithm); -emit_32(_ZTI20btCollisionAlgorithm); -emit_start(_ZTS31btConvexPlaneCollisionAlgorithm) -emit_string('31btConvexPlaneCollisionAlgorithm\x00'); -emit_start(_ZTVN31btConvexPlaneCollisionAlgorithm10CreateFuncE) -emit_32(0); -emit_32(_ZTIN31btConvexPlaneCollisionAlgorithm10CreateFuncE); -emit_32(_ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev__index__); -emit_32(_ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev__index__); -emit_32(_ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__); -emit_start(_ZTIN31btConvexPlaneCollisionAlgorithm10CreateFuncE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN31btConvexPlaneCollisionAlgorithm10CreateFuncE); -emit_32(_ZTI30btCollisionAlgorithmCreateFunc); -emit_start(_ZTSN31btConvexPlaneCollisionAlgorithm10CreateFuncE) -emit_string('N31btConvexPlaneCollisionAlgorithm10CreateFuncE\x00'); -emit_start(_ZTI24btCollisionConfiguration) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS24btCollisionConfiguration); -emit_start(_ZTS24btCollisionConfiguration) -emit_string('24btCollisionConfiguration\x00'); -emit_start(_ZTVN33btConvexConcaveCollisionAlgorithm10CreateFuncE) -emit_32(0); -emit_32(_ZTIN33btConvexConcaveCollisionAlgorithm10CreateFuncE); -emit_32(_ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev__index__); -emit_32(_ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev__index__); -emit_32(_ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__); -emit_start(_ZTIN33btConvexConcaveCollisionAlgorithm10CreateFuncE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN33btConvexConcaveCollisionAlgorithm10CreateFuncE); -emit_32(_ZTI30btCollisionAlgorithmCreateFunc); -emit_start(_ZTSN33btConvexConcaveCollisionAlgorithm10CreateFuncE) -emit_string('N33btConvexConcaveCollisionAlgorithm10CreateFuncE\x00'); -emit_start(_ZTVN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE) -emit_32(0); -emit_32(_ZTIN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE); -emit_32(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev__index__); -emit_32(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev__index__); -emit_32(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__); -emit_start(_ZTIN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE); -emit_32(_ZTI30btCollisionAlgorithmCreateFunc); -emit_start(_ZTSN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE) -emit_string('N33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncE\x00'); -emit_start(_ZTVN28btCompoundCollisionAlgorithm10CreateFuncE) -emit_32(0); -emit_32(_ZTIN28btCompoundCollisionAlgorithm10CreateFuncE); -emit_32(_ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev__index__); -emit_32(_ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev__index__); -emit_32(_ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__); -emit_start(_ZTIN28btCompoundCollisionAlgorithm10CreateFuncE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN28btCompoundCollisionAlgorithm10CreateFuncE); -emit_32(_ZTI30btCollisionAlgorithmCreateFunc); -emit_start(_ZTSN28btCompoundCollisionAlgorithm10CreateFuncE) -emit_string('N28btCompoundCollisionAlgorithm10CreateFuncE\x00'); -emit_start(_ZTVN28btCompoundCollisionAlgorithm17SwappedCreateFuncE) -emit_32(0); -emit_32(_ZTIN28btCompoundCollisionAlgorithm17SwappedCreateFuncE); -emit_32(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev__index__); -emit_32(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev__index__); -emit_32(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__); -emit_start(_ZTIN28btCompoundCollisionAlgorithm17SwappedCreateFuncE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN28btCompoundCollisionAlgorithm17SwappedCreateFuncE); -emit_32(_ZTI30btCollisionAlgorithmCreateFunc); -emit_start(_ZTSN28btCompoundCollisionAlgorithm17SwappedCreateFuncE) -emit_string('N28btCompoundCollisionAlgorithm17SwappedCreateFuncE\x00'); -emit_start(_ZTVN16btEmptyAlgorithm10CreateFuncE) -emit_32(0); -emit_32(_ZTIN16btEmptyAlgorithm10CreateFuncE); -emit_32(_ZN16btEmptyAlgorithm10CreateFuncD1Ev__index__); -emit_32(_ZN16btEmptyAlgorithm10CreateFuncD0Ev__index__); -emit_32(_ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__); -emit_start(_ZTIN16btEmptyAlgorithm10CreateFuncE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN16btEmptyAlgorithm10CreateFuncE); -emit_32(_ZTI30btCollisionAlgorithmCreateFunc); -emit_start(_ZTSN16btEmptyAlgorithm10CreateFuncE) -emit_string('N16btEmptyAlgorithm10CreateFuncE\x00'); -emit_start(_ZTVN32btSphereSphereCollisionAlgorithm10CreateFuncE) -emit_32(0); -emit_32(_ZTIN32btSphereSphereCollisionAlgorithm10CreateFuncE); -emit_32(_ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev__index__); -emit_32(_ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev__index__); -emit_32(_ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__); -emit_start(_ZTIN32btSphereSphereCollisionAlgorithm10CreateFuncE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN32btSphereSphereCollisionAlgorithm10CreateFuncE); -emit_32(_ZTI30btCollisionAlgorithmCreateFunc); -emit_start(_ZTSN32btSphereSphereCollisionAlgorithm10CreateFuncE) -emit_string('N32btSphereSphereCollisionAlgorithm10CreateFuncE\x00'); -emit_start(_ZTVN34btSphereTriangleCollisionAlgorithm10CreateFuncE) -emit_32(0); -emit_32(_ZTIN34btSphereTriangleCollisionAlgorithm10CreateFuncE); -emit_32(_ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev__index__); -emit_32(_ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev__index__); -emit_32(_ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__); -emit_start(_ZTIN34btSphereTriangleCollisionAlgorithm10CreateFuncE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN34btSphereTriangleCollisionAlgorithm10CreateFuncE); -emit_32(_ZTI30btCollisionAlgorithmCreateFunc); -emit_start(_ZTSN34btSphereTriangleCollisionAlgorithm10CreateFuncE) -emit_string('N34btSphereTriangleCollisionAlgorithm10CreateFuncE\x00'); -emit_start(_ZTVN26btBoxBoxCollisionAlgorithm10CreateFuncE) -emit_32(0); -emit_32(_ZTIN26btBoxBoxCollisionAlgorithm10CreateFuncE); -emit_32(_ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev__index__); -emit_32(_ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev__index__); -emit_32(_ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__); -emit_start(_ZTIN26btBoxBoxCollisionAlgorithm10CreateFuncE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN26btBoxBoxCollisionAlgorithm10CreateFuncE); -emit_32(_ZTI30btCollisionAlgorithmCreateFunc); -emit_start(_ZTSN26btBoxBoxCollisionAlgorithm10CreateFuncE) -emit_string('N26btBoxBoxCollisionAlgorithm10CreateFuncE\x00'); -emit_start(_2E_str128) -emit_string('usedsize==0\x00'); -emit_start(_2E_str1129) -emit_string('../../../../src/LinearMath/btStackAlloc.h\x00'); -emit_start(_ZTV31btDefaultCollisionConfiguration) -emit_32(0); -emit_32(_ZTI31btDefaultCollisionConfiguration); -emit_32(_ZN31btDefaultCollisionConfigurationD1Ev__index__); -emit_32(_ZN31btDefaultCollisionConfigurationD0Ev__index__); -emit_32(_ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv__index__); -emit_32(_ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv__index__); -emit_32(_ZN31btDefaultCollisionConfiguration17getStackAllocatorEv__index__); -emit_32(_ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii__index__); -emit_32(_ZN31btDefaultCollisionConfiguration16getSimplexSolverEv__index__); -emit_start(_ZTI31btDefaultCollisionConfiguration) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS31btDefaultCollisionConfiguration); -emit_32(_ZTI24btCollisionConfiguration); -emit_start(_ZTS31btDefaultCollisionConfiguration) -emit_string('31btDefaultCollisionConfiguration\x00'); -emit_start(_ZTV16btEmptyAlgorithm) -emit_32(0); -emit_32(_ZTI16btEmptyAlgorithm); -emit_32(_ZN16btEmptyAlgorithmD1Ev__index__); -emit_32(_ZN16btEmptyAlgorithmD0Ev__index__); -emit_32(_ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__); -emit_start(_ZTI16btEmptyAlgorithm) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS16btEmptyAlgorithm); -emit_32(_ZTI20btCollisionAlgorithm); -emit_start(_ZTS16btEmptyAlgorithm) -emit_string('16btEmptyAlgorithm\x00'); -emit_start(_ZTV16btManifoldResult) -emit_32(0); -emit_32(_ZTI16btManifoldResult); -emit_32(_ZN16btManifoldResultD1Ev__index__); -emit_32(_ZN16btManifoldResultD0Ev__index__); -emit_32(_ZN16btManifoldResult20setShapeIdentifiersAEii__index__); -emit_32(_ZN16btManifoldResult20setShapeIdentifiersBEii__index__); -emit_32(_ZN16btManifoldResult15addContactPointERK9btVector3S2_f__index__); -emit_start(_2E_str2149) -emit_string('validContactDistance(newPoint)\x00'); -emit_start(_2E_str3150) -emit_string('lifeTime>=0\x00'); -emit_start(_2E_str5152) -emit_string('../../../../src/BulletCollision/CollisionDispatch/btManifoldResult.cpp\x00'); -emit_start(_2E_str155) -emit_string('islandUnionFindAndQuickSort\x00'); -emit_start(_2E_str1156) -emit_string('(colObj0->getIslandTag() == islandId) || (colObj0->getIslandTag() == -1)\x00'); -emit_start(_2E_str2157) -emit_string('../../../../src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp\x00'); -emit_start(_2E_str3158) -emit_string('processIslands\x00'); -emit_start(_ZTV25btSimulationIslandManager) -emit_32(0); -emit_32(_ZTI25btSimulationIslandManager); -emit_32(_ZN25btSimulationIslandManagerD1Ev__index__); -emit_32(_ZN25btSimulationIslandManagerD0Ev__index__); -emit_32(_ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher__index__); -emit_32(_ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld__index__); -emit_start(_ZTI25btSimulationIslandManager) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS25btSimulationIslandManager); -emit_start(_ZTS25btSimulationIslandManager) -emit_string('25btSimulationIslandManager\x00'); -emit_start(_ZTV32btSphereSphereCollisionAlgorithm) -emit_32(0); -emit_32(_ZTI32btSphereSphereCollisionAlgorithm); -emit_32(_ZN32btSphereSphereCollisionAlgorithmD1Ev__index__); -emit_32(_ZN32btSphereSphereCollisionAlgorithmD0Ev__index__); -emit_32(_ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__); -emit_start(_ZTI32btSphereSphereCollisionAlgorithm) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS32btSphereSphereCollisionAlgorithm); -emit_32(_ZTI30btActivatingCollisionAlgorithm); -emit_start(_ZTS32btSphereSphereCollisionAlgorithm) -emit_string('32btSphereSphereCollisionAlgorithm\x00'); -emit_start(_ZTV34btSphereTriangleCollisionAlgorithm) -emit_32(0); -emit_32(_ZTI34btSphereTriangleCollisionAlgorithm); -emit_32(_ZN34btSphereTriangleCollisionAlgorithmD1Ev__index__); -emit_32(_ZN34btSphereTriangleCollisionAlgorithmD0Ev__index__); -emit_32(_ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__); -emit_32(_ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__); -emit_start(_ZTI34btSphereTriangleCollisionAlgorithm) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS34btSphereTriangleCollisionAlgorithm); -emit_32(_ZTI30btActivatingCollisionAlgorithm); -emit_start(_ZTS34btSphereTriangleCollisionAlgorithm) -emit_string('34btSphereTriangleCollisionAlgorithm\x00'); -emit_start(_ZTV22SphereTriangleDetector) -emit_32(0); -emit_32(_ZTI22SphereTriangleDetector); -emit_32(_ZN22SphereTriangleDetectorD1Ev__index__); -emit_32(_ZN22SphereTriangleDetectorD0Ev__index__); -emit_32(_ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__); -emit_start(_ZTI22SphereTriangleDetector) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS22SphereTriangleDetector); -emit_32(_ZTI36btDiscreteCollisionDetectorInterface); -emit_start(_ZTS22SphereTriangleDetector) -emit_string('22SphereTriangleDetector\x00'); -emit_start(_2E_str173) -emit_string('Box\x00'); -emit_start(_2E_str2175) -emit_string('../../../../src/BulletCollision/CollisionShapes/btBoxShape.h\x00'); -emit_start(_ZTV10btBoxShape) -emit_32(0); -emit_32(_ZTI10btBoxShape); -emit_32(_ZN10btBoxShapeD1Ev__index__); -emit_32(_ZN10btBoxShapeD0Ev__index__); -emit_32(_ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4___index__); -emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__); -emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__); -emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__); -emit_32(_ZN10btBoxShape15setLocalScalingERK9btVector3__index__); -emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__); -emit_32(_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3__index__); -emit_32(_ZNK10btBoxShape7getNameEv__index__); -emit_32(_ZN10btBoxShape9setMarginEf__index__); -emit_32(_ZNK21btConvexInternalShape9getMarginEv__index__); -emit_32(_ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK21btConvexInternalShape9serializeEPvP12btSerializer__index__); -emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__); -emit_32(_ZNK10btBoxShape24localGetSupportingVertexERK9btVector3__index__); -emit_32(_ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__); -emit_32(_ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__); -emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__); -emit_32(_ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv__index__); -emit_32(_ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3__index__); -emit_32(_ZNK10btBoxShape14getNumVerticesEv__index__); -emit_32(_ZNK10btBoxShape11getNumEdgesEv__index__); -emit_32(_ZNK10btBoxShape7getEdgeEiR9btVector3S1___index__); -emit_32(_ZNK10btBoxShape9getVertexEiR9btVector3__index__); -emit_32(_ZNK10btBoxShape12getNumPlanesEv__index__); -emit_32(_ZNK10btBoxShape8getPlaneER9btVector3S1_i__index__); -emit_32(_ZNK10btBoxShape8isInsideERK9btVector3f__index__); -emit_32(_ZNK10btBoxShape16getPlaneEquationER9btVector4i__index__); -emit_start(_ZTI10btBoxShape) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS10btBoxShape); -emit_32(_ZTI23btPolyhedralConvexShape); -emit_start(_ZTS10btBoxShape) -emit_string('10btBoxShape\x00'); -emit_start(_2E_str181) -emit_string('BVHTRIANGLEMESH\x00'); -emit_start(_ZTVZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback) -emit_32(0); -emit_32(_ZTIZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback); -emit_32(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev__index__); -emit_32(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev__index__); -emit_32(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii__index__); -emit_start(_ZTIZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback); -emit_32(_ZTI21btNodeOverlapCallback); -emit_start(_ZTSZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback) -emit_string('ZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback\x00'); -emit_start(_ZTVZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback) -emit_32(0); -emit_32(_ZTIZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback); -emit_32(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD1Ev__index__); -emit_32(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev__index__); -emit_32(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii__index__); -emit_start(_ZTIZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback); -emit_32(_ZTI21btNodeOverlapCallback); -emit_start(_ZTSZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback) -emit_string('ZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_E21MyNodeOverlapCallback\x00'); -emit_start(_ZTVZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback) -emit_32(0); -emit_32(_ZTIZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback); -emit_32(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev__index__); -emit_32(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev__index__); -emit_32(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii__index__); -emit_start(_ZTIZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback); -emit_32(_ZTI21btNodeOverlapCallback); -emit_start(_ZTSZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback) -emit_string('ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E21MyNodeOverlapCallback\x00'); -emit_start(_2E_str5186) -emit_string('../../../../src/BulletCollision/CollisionShapes/btTriangleMeshShape.h\x00'); -emit_start(_2E_str6187) -emit_string('indicestype==PHY_INTEGER||indicestype==PHY_SHORT\x00'); -emit_start(_2E_str7188) -emit_string('../../../../src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp\x00'); -emit_start(_2E_str8189) -emit_string('btTriangleMeshShapeData\x00'); -emit_start(_ZTV22btBvhTriangleMeshShape) -emit_32(0); -emit_32(_ZTI22btBvhTriangleMeshShape); -emit_32(_ZN22btBvhTriangleMeshShapeD1Ev__index__); -emit_32(_ZN22btBvhTriangleMeshShapeD0Ev__index__); -emit_32(_ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4___index__); -emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__); -emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__); -emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__); -emit_32(_ZN22btBvhTriangleMeshShape15setLocalScalingERK9btVector3__index__); -emit_32(_ZNK19btTriangleMeshShape15getLocalScalingEv__index__); -emit_32(_ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3__index__); -emit_32(_ZNK22btBvhTriangleMeshShape7getNameEv__index__); -emit_32(_ZN14btConcaveShape9setMarginEf__index__); -emit_32(_ZNK14btConcaveShape9getMarginEv__index__); -emit_32(_ZNK22btBvhTriangleMeshShape28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK22btBvhTriangleMeshShape9serializeEPvP12btSerializer__index__); -emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__); -emit_32(_ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4___index__); -emit_32(_ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3__index__); -emit_32(_ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__); -emit_32(_ZNK22btBvhTriangleMeshShape18serializeSingleBvhEP12btSerializer__index__); -emit_32(_ZNK22btBvhTriangleMeshShape30serializeSingleTriangleInfoMapEP12btSerializer__index__); -emit_start(_ZTI22btBvhTriangleMeshShape) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS22btBvhTriangleMeshShape); -emit_32(_ZTI19btTriangleMeshShape); -emit_start(_ZTS22btBvhTriangleMeshShape) -emit_string('22btBvhTriangleMeshShape\x00'); -emit_start(_ZTI19btTriangleMeshShape) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS19btTriangleMeshShape); -emit_32(_ZTI14btConcaveShape); -emit_start(_ZTS19btTriangleMeshShape) -emit_string('19btTriangleMeshShape\x00'); -emit_start(_ZTI14btConcaveShape) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS14btConcaveShape); -emit_32(_ZTI16btCollisionShape); -emit_start(_ZTS14btConcaveShape) -emit_string('14btConcaveShape\x00'); -emit_start(_2E_str194) -emit_string('CapsuleShape\x00'); -emit_start(_2E_str4198) -emit_string('../../../../src/BulletCollision/CollisionShapes/btConvexInternalShape.h\x00'); -emit_start(_2E_str6199) -emit_string('btCapsuleShapeData\x00'); -emit_start(_ZTV14btCapsuleShape) -emit_32(0); -emit_32(_ZTI14btCapsuleShape); -emit_32(_ZN14btCapsuleShapeD1Ev__index__); -emit_32(_ZN14btCapsuleShapeD0Ev__index__); -emit_32(_ZNK14btCapsuleShape7getAabbERK11btTransformR9btVector3S4___index__); -emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__); -emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__); -emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__); -emit_32(_ZN14btCapsuleShape15setLocalScalingERK9btVector3__index__); -emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__); -emit_32(_ZNK14btCapsuleShape21calculateLocalInertiaEfR9btVector3__index__); -emit_32(_ZNK14btCapsuleShape7getNameEv__index__); -emit_32(_ZN14btCapsuleShape9setMarginEf__index__); -emit_32(_ZNK21btConvexInternalShape9getMarginEv__index__); -emit_32(_ZNK14btCapsuleShape28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK14btCapsuleShape9serializeEPvP12btSerializer__index__); -emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__); -emit_32(_ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3__index__); -emit_32(_ZNK14btCapsuleShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__); -emit_32(_ZNK14btCapsuleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__); -emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__); -emit_32(_ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv__index__); -emit_32(_ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3__index__); -emit_start(_ZTI14btCapsuleShape) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS14btCapsuleShape); -emit_32(_ZTI21btConvexInternalShape); -emit_start(_ZTS14btCapsuleShape) -emit_string('14btCapsuleShape\x00'); -emit_start(_2E_str200) -emit_string('btCollisionShapeData\x00'); -emit_start(_ZTV14btConcaveShape) -emit_32(0); -emit_32(_ZTI14btConcaveShape); -emit_32(_ZN14btConcaveShapeD1Ev__index__); -emit_32(_ZN14btConcaveShapeD0Ev__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__); -emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__); -emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(_ZN14btConcaveShape9setMarginEf__index__); -emit_32(_ZNK14btConcaveShape9getMarginEv__index__); -emit_32(_ZNK16btCollisionShape28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK16btCollisionShape9serializeEPvP12btSerializer__index__); -emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__); -emit_32(__cxa_pure_virtual__index__); -emit_start(_2E_str219) -emit_string('Convex\x00'); -emit_start(_2E_str3222) -emit_string('../../../../src/BulletCollision/CollisionShapes/btConvexHullShape.cpp\x00'); -emit_start(_ZTV17btConvexHullShape) -emit_32(0); -emit_32(_ZTI17btConvexHullShape); -emit_32(_ZN17btConvexHullShapeD1Ev__index__); -emit_32(_ZN17btConvexHullShapeD0Ev__index__); -emit_32(_ZNK34btPolyhedralConvexAabbCachingShape7getAabbERK11btTransformR9btVector3S4___index__); -emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__); -emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__); -emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__); -emit_32(_ZN17btConvexHullShape15setLocalScalingERK9btVector3__index__); -emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__); -emit_32(_ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3__index__); -emit_32(_ZNK17btConvexHullShape7getNameEv__index__); -emit_32(_ZN21btConvexInternalShape9setMarginEf__index__); -emit_32(_ZNK21btConvexInternalShape9getMarginEv__index__); -emit_32(_ZNK17btConvexHullShape28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK17btConvexHullShape9serializeEPvP12btSerializer__index__); -emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__); -emit_32(_ZNK17btConvexHullShape24localGetSupportingVertexERK9btVector3__index__); -emit_32(_ZNK17btConvexHullShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__); -emit_32(_ZNK17btConvexHullShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__); -emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__); -emit_32(_ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv__index__); -emit_32(_ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3__index__); -emit_32(_ZNK17btConvexHullShape14getNumVerticesEv__index__); -emit_32(_ZNK17btConvexHullShape11getNumEdgesEv__index__); -emit_32(_ZNK17btConvexHullShape7getEdgeEiR9btVector3S1___index__); -emit_32(_ZNK17btConvexHullShape9getVertexEiR9btVector3__index__); -emit_32(_ZNK17btConvexHullShape12getNumPlanesEv__index__); -emit_32(_ZNK17btConvexHullShape8getPlaneER9btVector3S1_i__index__); -emit_32(_ZNK17btConvexHullShape8isInsideERK9btVector3f__index__); -emit_start(_ZTI17btConvexHullShape) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS17btConvexHullShape); -emit_32(_ZTI34btPolyhedralConvexAabbCachingShape); -emit_start(_ZTS17btConvexHullShape) -emit_string('17btConvexHullShape\x00'); -emit_start(_ZTI34btPolyhedralConvexAabbCachingShape) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS34btPolyhedralConvexAabbCachingShape); -emit_32(_ZTI23btPolyhedralConvexShape); -emit_start(_ZTS34btPolyhedralConvexAabbCachingShape) -emit_string('34btPolyhedralConvexAabbCachingShape\x00'); -emit_start(_2E_str5223) -emit_string('btVector3FloatData\x00'); -emit_start(_2E_str6224) -emit_string('btConvexHullShapeData\x00'); -emit_start(_2E_str6232) -emit_string('m_isLocalAabbValid\x00'); -emit_start(_ZTV13btConvexShape) -emit_32(0); -emit_32(_ZTI13btConvexShape); -emit_32(_ZN13btConvexShapeD1Ev__index__); -emit_32(_ZN13btConvexShapeD0Ev__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__); -emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__); -emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(_ZNK16btCollisionShape28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK16btCollisionShape9serializeEPvP12btSerializer__index__); -emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_start(_2E_str6249) -emit_string('ptIndex >= 0\x00'); -emit_start(_2E_str7250) -emit_string('../../../../src/BulletCollision/CollisionShapes/btConvexShape.cpp\x00'); -emit_start(_ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback) -emit_32(0); -emit_32(_ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback); -emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD1Ev__index__); -emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD0Ev__index__); -emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallback28internalProcessTriangleIndexEPS2_ii__index__); -emit_start(_ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback); -emit_32(_ZTI31btInternalTriangleIndexCallback); -emit_start(_ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback) -emit_string('ZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E20NodeTriangleCallback\x00'); -emit_start(_ZTVZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback) -emit_32(0); -emit_32(_ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback); -emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD1Ev__index__); -emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD0Ev__index__); -emit_32(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallback28internalProcessTriangleIndexEPS2_ii__index__); -emit_start(_ZTIZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback); -emit_32(_ZTI31btInternalTriangleIndexCallback); -emit_start(_ZTSZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback) -emit_string('ZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_E29QuantizedNodeTriangleCallback\x00'); -emit_start(_2E_str10306) -emit_string('../../../../src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp\x00'); -emit_start(_2E_str18314) -emit_string('partId < (1<=0\x00'); -emit_start(_ZTV14btOptimizedBvh) -emit_32(0); -emit_32(_ZTI14btOptimizedBvh); -emit_32(_ZN14btOptimizedBvhD1Ev__index__); -emit_32(_ZN14btOptimizedBvhD0Ev__index__); -emit_32(_ZNK14btQuantizedBvh9serializeEPvjb__index__); -emit_32(_ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv__index__); -emit_32(_ZNK14btQuantizedBvh9serializeEPvP12btSerializer__index__); -emit_32(_ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData__index__); -emit_32(_ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData__index__); -emit_32(_ZNK14btOptimizedBvh16serializeInPlaceEPvjb__index__); -emit_start(_ZTI14btOptimizedBvh) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS14btOptimizedBvh); -emit_32(_ZTI14btQuantizedBvh); -emit_start(_ZTS14btOptimizedBvh) -emit_string('14btOptimizedBvh\x00'); -emit_start(_2E_str7331) -emit_string('../../../../src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h\x00'); -emit_start(_2E_str342) -emit_string('SPHERE\x00'); -emit_start(_ZTV13btSphereShape) -emit_32(0); -emit_32(_ZTI13btSphereShape); -emit_32(_ZN13btSphereShapeD1Ev__index__); -emit_32(_ZN13btSphereShapeD0Ev__index__); -emit_32(_ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4___index__); -emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__); -emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__); -emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__); -emit_32(_ZN21btConvexInternalShape15setLocalScalingERK9btVector3__index__); -emit_32(_ZNK21btConvexInternalShape15getLocalScalingEv__index__); -emit_32(_ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3__index__); -emit_32(_ZNK13btSphereShape7getNameEv__index__); -emit_32(_ZN13btSphereShape9setMarginEf__index__); -emit_32(_ZNK13btSphereShape9getMarginEv__index__); -emit_32(_ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK21btConvexInternalShape9serializeEPvP12btSerializer__index__); -emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__); -emit_32(_ZNK13btSphereShape24localGetSupportingVertexERK9btVector3__index__); -emit_32(_ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__); -emit_32(_ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__); -emit_32(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__); -emit_32(_ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv__index__); -emit_32(_ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3__index__); -emit_start(_ZTI13btSphereShape) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS13btSphereShape); -emit_32(_ZTI21btConvexInternalShape); -emit_start(_ZTS13btSphereShape) -emit_string('13btSphereShape\x00'); -emit_start(_2E_str349) -emit_string('btIntIndexData\x00'); -emit_start(_2E_str1350) -emit_string('btShortIntIndexTripletData\x00'); -emit_start(_2E_str3352) -emit_string('../../../../src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp\x00'); -emit_start(_2E_str5354) -emit_string('btVector3DoubleData\x00'); -emit_start(_2E_str6355) -emit_string('(type == PHY_FLOAT) || (type == PHY_DOUBLE)\x00'); -emit_start(_2E_str7356) -emit_string('btMeshPartData\x00'); -emit_start(_2E_str8357) -emit_string('btStridingMeshInterfaceData\x00'); -emit_start(_2E_str9358) -emit_string('(gfxindextype == PHY_INTEGER) || (gfxindextype == PHY_SHORT)\x00'); -emit_start(_ZTV23btStridingMeshInterface) -emit_32(0); -emit_32(_ZTI23btStridingMeshInterface); -emit_32(_ZN23btStridingMeshInterfaceD1Ev__index__); -emit_32(_ZN23btStridingMeshInterfaceD0Ev__index__); -emit_32(_ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4___index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(__cxa_pure_virtual__index__); -emit_32(_ZNK23btStridingMeshInterface14hasPremadeAabbEv__index__); -emit_32(_ZNK23btStridingMeshInterface14setPremadeAabbERK9btVector3S2___index__); -emit_32(_ZNK23btStridingMeshInterface14getPremadeAabbEP9btVector3S1___index__); -emit_32(_ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK23btStridingMeshInterface9serializeEPvP12btSerializer__index__); -emit_start(_ZTI23btStridingMeshInterface) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS23btStridingMeshInterface); -emit_start(_ZTS23btStridingMeshInterface) -emit_string('23btStridingMeshInterface\x00'); -emit_start(_ZTV31btInternalTriangleIndexCallback) -emit_32(0); -emit_32(_ZTI31btInternalTriangleIndexCallback); -emit_32(_ZN31btInternalTriangleIndexCallbackD1Ev__index__); -emit_32(_ZN31btInternalTriangleIndexCallbackD0Ev__index__); -emit_32(__cxa_pure_virtual__index__); -emit_start(_ZTV18btTriangleCallback) -emit_32(0); -emit_32(_ZTI18btTriangleCallback); -emit_32(_ZN18btTriangleCallbackD1Ev__index__); -emit_32(_ZN18btTriangleCallbackD0Ev__index__); -emit_32(__cxa_pure_virtual__index__); -emit_start(_2E_str367) -emit_string('subpart< getNumSubParts()\x00'); -emit_start(_2E_str1368) -emit_string('../../../../src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp\x00'); -emit_start(_ZTV26btTriangleIndexVertexArray) -emit_32(0); -emit_32(_ZTI26btTriangleIndexVertexArray); -emit_32(_ZN26btTriangleIndexVertexArrayD1Ev__index__); -emit_32(_ZN26btTriangleIndexVertexArrayD0Ev__index__); -emit_32(_ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4___index__); -emit_32(_ZN26btTriangleIndexVertexArray24getLockedVertexIndexBaseEPPhRiR14PHY_ScalarTypeS2_S1_S2_S2_S4_i__index__); -emit_32(_ZNK26btTriangleIndexVertexArray32getLockedReadOnlyVertexIndexBaseEPPKhRiR14PHY_ScalarTypeS3_S2_S3_S3_S5_i__index__); -emit_32(_ZN26btTriangleIndexVertexArray16unLockVertexBaseEi__index__); -emit_32(_ZNK26btTriangleIndexVertexArray24unLockReadOnlyVertexBaseEi__index__); -emit_32(_ZNK26btTriangleIndexVertexArray14getNumSubPartsEv__index__); -emit_32(_ZN26btTriangleIndexVertexArray19preallocateVerticesEi__index__); -emit_32(_ZN26btTriangleIndexVertexArray18preallocateIndicesEi__index__); -emit_32(_ZNK26btTriangleIndexVertexArray14hasPremadeAabbEv__index__); -emit_32(_ZNK26btTriangleIndexVertexArray14setPremadeAabbERK9btVector3S2___index__); -emit_32(_ZNK26btTriangleIndexVertexArray14getPremadeAabbEP9btVector3S1___index__); -emit_32(_ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK23btStridingMeshInterface9serializeEPvP12btSerializer__index__); -emit_start(_ZTI26btTriangleIndexVertexArray) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS26btTriangleIndexVertexArray); -emit_32(_ZTI23btStridingMeshInterface); -emit_start(_ZTS26btTriangleIndexVertexArray) -emit_string('26btTriangleIndexVertexArray\x00'); -emit_start(_2E_str372) -emit_string('TRIANGLEMESH\x00'); -emit_start(_ZTV21SupportVertexCallback) -emit_32(0); -emit_32(_ZTI21SupportVertexCallback); -emit_32(_ZN21SupportVertexCallbackD1Ev__index__); -emit_32(_ZN21SupportVertexCallbackD0Ev__index__); -emit_32(_ZN21SupportVertexCallback15processTriangleEP9btVector3ii__index__); -emit_start(_ZTI21SupportVertexCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS21SupportVertexCallback); -emit_32(_ZTI18btTriangleCallback); -emit_start(_ZTS21SupportVertexCallback) -emit_string('21SupportVertexCallback\x00'); -emit_start(_ZTVZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback) -emit_32(0); -emit_32(_ZTIZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback); -emit_32(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD1Ev__index__); -emit_32(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD0Ev__index__); -emit_32(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallback28internalProcessTriangleIndexEPS2_ii__index__); -emit_start(_ZTIZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback); -emit_32(_ZTI31btInternalTriangleIndexCallback); -emit_start(_ZTSZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback) -emit_string('ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_E16FilteredCallback\x00'); -emit_start(_2E_str3375) -emit_string('../../../../src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp\x00'); -emit_start(_ZTV19btTriangleMeshShape) -emit_32(0); -emit_32(_ZTI19btTriangleMeshShape); -emit_32(_ZN19btTriangleMeshShapeD1Ev__index__); -emit_32(_ZN19btTriangleMeshShapeD0Ev__index__); -emit_32(_ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4___index__); -emit_32(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__); -emit_32(_ZNK16btCollisionShape20getAngularMotionDiscEv__index__); -emit_32(_ZNK16btCollisionShape27getContactBreakingThresholdEf__index__); -emit_32(_ZN19btTriangleMeshShape15setLocalScalingERK9btVector3__index__); -emit_32(_ZNK19btTriangleMeshShape15getLocalScalingEv__index__); -emit_32(_ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3__index__); -emit_32(_ZNK19btTriangleMeshShape7getNameEv__index__); -emit_32(_ZN14btConcaveShape9setMarginEf__index__); -emit_32(_ZNK14btConcaveShape9getMarginEv__index__); -emit_32(_ZNK16btCollisionShape28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK16btCollisionShape9serializeEPvP12btSerializer__index__); -emit_32(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__); -emit_32(_ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4___index__); -emit_32(_ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3__index__); -emit_32(_ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__); -emit_start(_ZTV16btPointCollector) -emit_32(0); -emit_32(_ZTI16btPointCollector); -emit_32(_ZN16btPointCollectorD1Ev__index__); -emit_32(_ZN16btPointCollectorD0Ev__index__); -emit_32(_ZN16btPointCollector20setShapeIdentifiersAEii__index__); -emit_32(_ZN16btPointCollector20setShapeIdentifiersBEii__index__); -emit_32(_ZN16btPointCollector15addContactPointERK9btVector3S2_f__index__); -emit_start(_ZTI16btPointCollector) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS16btPointCollector); -emit_32(_ZTIN36btDiscreteCollisionDetectorInterface6ResultE); -emit_start(_ZTS16btPointCollector) -emit_string('16btPointCollector\x00'); -emit_start(_ZTV27btContinuousConvexCollision) -emit_32(0); -emit_32(_ZTI27btContinuousConvexCollision); -emit_32(_ZN27btContinuousConvexCollisionD1Ev__index__); -emit_32(_ZN27btContinuousConvexCollisionD0Ev__index__); -emit_32(_ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__); -emit_start(_ZTI27btContinuousConvexCollision) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS27btContinuousConvexCollision); -emit_32(_ZTI12btConvexCast); -emit_start(_ZTS27btContinuousConvexCollision) -emit_string('27btContinuousConvexCollision\x00'); -emit_start(_ZTI12btConvexCast) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS12btConvexCast); -emit_start(_ZTS12btConvexCast) -emit_string('12btConvexCast\x00'); -emit_start(_ZTV12btConvexCast) -emit_32(0); -emit_32(_ZTI12btConvexCast); -emit_32(_ZN12btConvexCastD1Ev__index__); -emit_32(_ZN12btConvexCastD0Ev__index__); -emit_32(__cxa_pure_virtual__index__); -emit_start(_ZTV15btGjkConvexCast) -emit_32(0); -emit_32(_ZTI15btGjkConvexCast); -emit_32(_ZN15btGjkConvexCastD1Ev__index__); -emit_32(_ZN15btGjkConvexCastD0Ev__index__); -emit_32(_ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__); -emit_start(_ZTI15btGjkConvexCast) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS15btGjkConvexCast); -emit_32(_ZTI12btConvexCast); -emit_start(_ZTS15btGjkConvexCast) -emit_string('15btGjkConvexCast\x00'); -emit_start(_ZZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRjE4imd3) -emit_32(1); -emit_32(2); -emit_32(0); -emit_start(_ZZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonEE4i2m3) -emit_32(2); -emit_32(0); -emit_32(1); -emit_start(_ZTV30btGjkEpaPenetrationDepthSolver) -emit_32(0); -emit_32(_ZTI30btGjkEpaPenetrationDepthSolver); -emit_32(_ZN30btGjkEpaPenetrationDepthSolverD1Ev__index__); -emit_32(_ZN30btGjkEpaPenetrationDepthSolverD0Ev__index__); -emit_32(_ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc__index__); -emit_start(_ZTI30btGjkEpaPenetrationDepthSolver) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS30btGjkEpaPenetrationDepthSolver); -emit_32(_ZTI30btConvexPenetrationDepthSolver); -emit_start(_ZTS30btGjkEpaPenetrationDepthSolver) -emit_string('30btGjkEpaPenetrationDepthSolver\x00'); -emit_start(_ZTV17btGjkPairDetector) -emit_32(0); -emit_32(_ZTI17btGjkPairDetector); -emit_32(_ZN17btGjkPairDetectorD1Ev__index__); -emit_32(_ZN17btGjkPairDetectorD0Ev__index__); -emit_32(_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__); -emit_start(_ZTI17btGjkPairDetector) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS17btGjkPairDetector); -emit_32(_ZTI36btDiscreteCollisionDetectorInterface); -emit_start(_ZTS17btGjkPairDetector) -emit_string('17btGjkPairDetector\x00'); -emit_start(_2E_str425) -emit_string('btGjkPairDetector maxIter exceeded:%i\x0a\x00'); -emit_start(_2E_str1426) -emit_string('sepAxis=(%f,%f,%f), squaredDistance = %f, shapeTypeA=%i,shapeTypeB=%i\x0a\x00'); -emit_start(_2E_str2427) -emit_string('s > btScalar(0.0)\x00'); -emit_start(_2E_str3428) -emit_string('../../../../src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp\x00'); -emit_start(gContactBreakingThreshold) -emit_32(1017370378); -emit_start(_2E_str434) -emit_string('m_pointCache[lastUsedIndex].m_userPersistentData==0\x00'); -emit_start(_2E_str3437) -emit_string('../../../../src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp\x00'); -emit_start(_2E_str4438) -emit_string('m_pointCache[insertIndex].m_userPersistentData==0\x00'); -emit_start(_ZTV28btTriangleConvexcastCallback) -emit_32(0); -emit_32(_ZTI28btTriangleConvexcastCallback); -emit_32(_ZN28btTriangleConvexcastCallbackD1Ev__index__); -emit_32(_ZN28btTriangleConvexcastCallbackD0Ev__index__); -emit_32(_ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii__index__); -emit_32(__cxa_pure_virtual__index__); -emit_start(_ZTV22btSubsimplexConvexCast) -emit_32(0); -emit_32(_ZTI22btSubsimplexConvexCast); -emit_32(_ZN22btSubsimplexConvexCastD1Ev__index__); -emit_32(_ZN22btSubsimplexConvexCastD0Ev__index__); -emit_32(_ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__); -emit_start(_ZTI22btSubsimplexConvexCast) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS22btSubsimplexConvexCast); -emit_32(_ZTI12btConvexCast); -emit_start(_ZTS22btSubsimplexConvexCast) -emit_string('22btSubsimplexConvexCast\x00'); -emit_start(_2E_str457) -emit_string('m_numVertices>0\x00'); -emit_start(_2E_str1458) -emit_string('../../../../src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp\x00'); -emit_start(_ZTVN16btCollisionWorld27ClosestConvexResultCallbackE) -emit_32(0); -emit_32(_ZTIN16btCollisionWorld27ClosestConvexResultCallbackE); -emit_32(_ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev__index__); -emit_32(_ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev__index__); -emit_32(_ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__); -emit_32(_ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb__index__); -emit_start(_ZTIN16btCollisionWorld27ClosestConvexResultCallbackE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN16btCollisionWorld27ClosestConvexResultCallbackE); -emit_32(_ZTIN16btCollisionWorld20ConvexResultCallbackE); -emit_start(_ZTSN16btCollisionWorld27ClosestConvexResultCallbackE) -emit_string('N16btCollisionWorld27ClosestConvexResultCallbackE\x00'); -emit_start(_2E_str36) -emit_string('convexResult.m_hitFraction <= m_closestHitFraction\x00'); -emit_start(_2E_str239) -emit_string('btConeTwistConstraintData\x00'); -emit_start(_ZTV21btConeTwistConstraint) -emit_32(0); -emit_32(_ZTI21btConeTwistConstraint); -emit_32(_ZN21btConeTwistConstraintD1Ev__index__); -emit_32(_ZN21btConeTwistConstraintD0Ev__index__); -emit_32(_ZN21btConeTwistConstraint13buildJacobianEv__index__); -emit_32(_ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif__index__); -emit_32(_ZN21btConeTwistConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E__index__); -emit_32(_ZN21btConeTwistConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E__index__); -emit_32(_ZN21btConeTwistConstraint23solveConstraintObsoleteER11btRigidBodyS1_f__index__); -emit_32(_ZN21btConeTwistConstraint8setParamEifi__index__); -emit_32(_ZNK21btConeTwistConstraint8getParamEii__index__); -emit_32(_ZNK21btConeTwistConstraint28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK21btConeTwistConstraint9serializeEPvP12btSerializer__index__); -emit_start(_ZTI21btConeTwistConstraint) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS21btConeTwistConstraint); -emit_32(_ZTI17btTypedConstraint); -emit_start(_ZTS21btConeTwistConstraint) -emit_string('21btConeTwistConstraint\x00'); -emit_start(_2E_str1340) -emit_string('m_flags & BT_CONETWIST_FLAGS_LIN_ERP\x00'); -emit_start(_2E_str24) -emit_string('../../../../src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp\x00'); -emit_start(_2E_str442) -emit_string('m_flags & BT_CONETWIST_FLAGS_LIN_CFM\x00'); -emit_start(_2E_str543) -emit_string('m_flags & BT_CONETWIST_FLAGS_ANG_CFM\x00'); -emit_start(_2E_str846) -emit_string('m_Adiag > btScalar(0.0)\x00'); -emit_start(_2E_str947) -emit_string('../../../../src/BulletDynamics/ConstraintSolver/btJacobianEntry.h\x00'); -emit_start(_2E_str1149) -emit_string('!m_useSolveConstraintObsolete\x00'); -emit_start(_2E_str29) -emit_string('btHingeConstraintFloatData\x00'); -emit_start(_ZTV17btHingeConstraint) -emit_32(0); -emit_32(_ZTI17btHingeConstraint); -emit_32(_ZN17btHingeConstraintD1Ev__index__); -emit_32(_ZN17btHingeConstraintD0Ev__index__); -emit_32(_ZN17btHingeConstraint13buildJacobianEv__index__); -emit_32(_ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif__index__); -emit_32(_ZN17btHingeConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E__index__); -emit_32(_ZN17btHingeConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E__index__); -emit_32(_ZN17btTypedConstraint23solveConstraintObsoleteER11btRigidBodyS1_f__index__); -emit_32(_ZN17btHingeConstraint8setParamEifi__index__); -emit_32(_ZNK17btHingeConstraint8getParamEii__index__); -emit_32(_ZNK17btHingeConstraint28calculateSerializeBufferSizeEv__index__); -emit_32(_ZNK17btHingeConstraint9serializeEPvP12btSerializer__index__); -emit_start(_ZTI17btHingeConstraint) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS17btHingeConstraint); -emit_32(_ZTI17btTypedConstraint); -emit_start(_ZTS17btHingeConstraint) -emit_string('17btHingeConstraint\x00'); -emit_start(_2E_str130) -emit_string('m_flags & BT_HINGE_FLAGS_ERP_STOP\x00'); -emit_start(_2E_str231) -emit_string('../../../../src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp\x00'); -emit_start(_2E_str332) -emit_string('m_flags & BT_HINGE_FLAGS_CFM_STOP\x00'); -emit_start(_2E_str433) -emit_string('m_flags & BT_HINGE_FLAGS_CFM_NORM\x00'); -emit_start(_ZTI18btConstraintSolver) -emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8); -emit_32(_ZTS18btConstraintSolver); -emit_start(_ZTS18btConstraintSolver) -emit_string('18btConstraintSolver\x00'); -emit_start(_ZTV35btSequentialImpulseConstraintSolver) -emit_32(0); -emit_32(_ZTI35btSequentialImpulseConstraintSolver); -emit_32(_ZN35btSequentialImpulseConstraintSolverD1Ev__index__); -emit_32(_ZN35btSequentialImpulseConstraintSolverD0Ev__index__); -emit_32(_ZN18btConstraintSolver12prepareSolveEii__index__); -emit_32(_ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher__index__); -emit_32(_ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__); -emit_32(_ZN35btSequentialImpulseConstraintSolver5resetEv__index__); -emit_32(_ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__); -emit_32(_ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__); -emit_32(_ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__); -emit_32(_ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__); -emit_start(_ZTI35btSequentialImpulseConstraintSolver) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTS35btSequentialImpulseConstraintSolver); -emit_32(_ZTI18btConstraintSolver); -emit_start(_ZTS35btSequentialImpulseConstraintSolver) -emit_string('35btSequentialImpulseConstraintSolver\x00'); -emit_start(_2E_str248) -emit_string('m_constraintRefs.size()==0\x00'); -emit_start(_2E_str34955) -emit_string('../../../../src/BulletDynamics/Dynamics/btRigidBody.h\x00'); -emit_start(_2E_str450) -emit_string('solveGroup\x00'); -emit_start(_2E_str551) -emit_string('bodies\x00'); -emit_start(_2E_str652) -emit_string('../../../../src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp\x00'); -emit_start(_2E_str753) -emit_string('numBodies\x00'); -emit_start(_2E_str854) -emit_string('solveGroupCacheFriendlyIterations\x00'); -emit_start(_2E_str955) -emit_string('pt\x00'); -emit_start(_2E_str1056) -emit_string('solveGroupCacheFriendlySetup\x00'); -emit_start(_2E_str1157) -emit_string('currentRow\xff\xff\xff?456789:;<=\xff\xff\xff\xff\xff\xff\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff\xff\xff\x1a\x1b\x1c\x1d\x1e\x1f !\x22#$%&\x27()*+,-./0123\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'); -emit_start(_ZL25s_mandreel_internal_width) -emit_32(1024); -emit_start(_ZL26s_mandreel_internal_height) -emit_32(768); -emit_start(_2E_str779) -emit_string('mandreel.fat\x00'); -emit_start(_2E_str3782) -emit_string('asynctexture\x00'); -emit_start(_2E_str4783) -emit_string('warning: asynctexture data not valid\x00'); -emit_start(_2E_str5784) -emit_string('packtexture\x00'); -emit_start(_2E_str6785) -emit_string('unpackedtextures\x00'); -emit_start(_ZTVN10__cxxabiv120__si_class_type_infoE) -emit_32(0); -emit_32(_ZTIN10__cxxabiv120__si_class_type_infoE); -emit_32(_ZN10__cxxabiv120__si_class_type_infoD1Ev__index__); -emit_32(_ZN10__cxxabiv120__si_class_type_infoD0Ev__index__); -emit_32(_ZNKSt9type_info15__is_function_pEv__index__); -emit_32(_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__index__); -emit_32(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__index__); -emit_32(_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__index__); -emit_32(_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__index__); -emit_32(_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___index__); -emit_start(_ZTIN10__cxxabiv120__si_class_type_infoE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN10__cxxabiv120__si_class_type_infoE); -emit_32(_ZTIN10__cxxabiv117__class_type_infoE); -emit_start(_ZTSN10__cxxabiv120__si_class_type_infoE) -emit_string('N10__cxxabiv120__si_class_type_infoE\x00'); -emit_start(_ZTIN10__cxxabiv117__class_type_infoE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN10__cxxabiv117__class_type_infoE); -emit_32(_ZTISt9type_info); -emit_start(_ZTSN10__cxxabiv117__class_type_infoE) -emit_string('N10__cxxabiv117__class_type_infoE\x00'); -emit_start(_ZTVN10__cxxabiv117__class_type_infoE) -emit_32(0); -emit_32(_ZTIN10__cxxabiv117__class_type_infoE); -emit_32(_ZN10__cxxabiv117__class_type_infoD1Ev__index__); -emit_32(_ZN10__cxxabiv117__class_type_infoD0Ev__index__); -emit_32(_ZNKSt9type_info15__is_function_pEv__index__); -emit_32(_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__index__); -emit_32(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__index__); -emit_32(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE__index__); -emit_32(_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE__index__); -emit_32(_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2___index__); -emit_start(_ZTVN10__cxxabiv121__vmi_class_type_infoE) -emit_32(0); -emit_32(_ZTIN10__cxxabiv121__vmi_class_type_infoE); -emit_32(_ZN10__cxxabiv121__vmi_class_type_infoD1Ev__index__); -emit_32(_ZN10__cxxabiv121__vmi_class_type_infoD0Ev__index__); -emit_32(_ZNKSt9type_info15__is_function_pEv__index__); -emit_32(_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__index__); -emit_32(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__index__); -emit_32(_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__index__); -emit_32(_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__index__); -emit_32(_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___index__); -emit_start(_ZTIN10__cxxabiv121__vmi_class_type_infoE) -emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8); -emit_32(_ZTSN10__cxxabiv121__vmi_class_type_infoE); -emit_32(_ZTIN10__cxxabiv117__class_type_infoE); -emit_start(_ZTSN10__cxxabiv121__vmi_class_type_infoE) -emit_string('N10__cxxabiv121__vmi_class_type_infoE\x00'); -emit_start(_2E_str221) -emit_string('g_bInit\x00'); -emit_start(_2E_str1222) -emit_string('MandreelAudioLib.cpp\x00'); -emit_start(_2E_str3224) -emit_string('Mandreel_Audio_GetSoundDuration warning: sound duration not found(%s)\x0a\x00'); -emit_start(_2E_str4225) -emit_string('sandbox\x00'); -emit_start(_2E_str12233) -emit_string('%s%s\x00'); -emit_start(_2E_str22243) -emit_string('LoadSoundDuractions\x0a\x00'); -emit_start(_2E_str24245) -emit_string('error: mandreel.fat file not found. Maybe the working folder is not correctly set???\x0a\x00'); -emit_start(_2E_str26247) -emit_string('version\x00'); -emit_start(_2E_str27248) -emit_string('1.4\x00'); -emit_start(_2E_str28249) -emit_string('ERROR: mandreel.fat version number is (%s) instead of (%s)\x0a\x00'); -emit_start(_2E_str29250) -emit_string('audiofile\x00'); -emit_start(_2E_str30251) -emit_string('??\x00'); -emit_start(_2E_str31252) -emit_string('warning: audiofile(%s) duration can\x27t be read, invalid mandreel.fat file?\x0a\x00'); -emit_start(_2E_str32253) -emit_string('file\x00'); -emit_start(_2E_str33254) -emit_string('dir\x00'); -emit_start(_2E_str34255) -emit_string('!g_bInit\x00'); -emit_start(_2E_str35256) -emit_string('Mandreel_Audio_Init()\x00'); -emit_start(_ZL13s_fifo_errors) -emit_32(0); -emit_32(_ZL13s_fifo_errors+8); -emit_32(0); -emit_32(_ZL13s_fifo_errors+8); -emit_32(0); -emit_32(0); -emit_start(llvm_2E_global_ctors) -emit_32(65535); -emit_32(_GLOBAL__I_Landscape02Vtx__index__); -emit_32(65535); -emit_32(_GLOBAL__I__ZN7btClockC2Ev__index__); -emit_32(65535); -emit_32(_GLOBAL__I__ZN4__rw9__catfindEPNS_8__rw_catE__index__); -emit_32(65535); -emit_32(_GLOBAL__I__mandreel_create_tcp_socket__index__); -emit_32(65535); -emit_32(_GLOBAL__I__ZN5my_gl14glAttachShaderEjj__index__); -emit_start(llvm_2E_global_dtors) -emit_32(65535); -emit_32(_GLOBAL__D_Landscape02Vtx__index__); -emit_32(65535); -emit_32(_GLOBAL__D__Z6mymainiPPc__index__); -emit_32(65535); -emit_32(_GLOBAL__D__ZN19btGenericMemoryPool24allocate_from_free_nodesEj__index__); -emit_32(65535); -emit_32(_GLOBAL__D__ZN7btClockC2Ev__index__); -emit_32(65535); -emit_32(_GLOBAL__D__ZN4__rw9__catfindEPNS_8__rw_catE__index__); -emit_32(65535); -emit_32(_GLOBAL__D__ZN8OpenGLES12OpenGLESUtil15getCurrentErrorEv__index__); -emit_32(65535); -emit_32(_GLOBAL__D__ZN5my_gl14glAttachShaderEjj__index__); -emit_start(llvm_2E_used) -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -emit_32(llvm_2E_eh_2E_catch_2E_all_2E_value); -mandreel_call_constructors(llvm_2E_global_ctors,5,stackPos); -} -var _GLOBAL__D_Landscape02Vtx__index__ = register_delegate(_GLOBAL__D_Landscape02Vtx); -var _GLOBAL__D__Z6mymainiPPc__index__ = register_delegate(_GLOBAL__D__Z6mymainiPPc); -var _GLOBAL__D__ZN19btGenericMemoryPool24allocate_from_free_nodesEj__index__ = register_delegate(_GLOBAL__D__ZN19btGenericMemoryPool24allocate_from_free_nodesEj); -var _GLOBAL__D__ZN4__rw9__catfindEPNS_8__rw_catE__index__ = register_delegate(_GLOBAL__D__ZN4__rw9__catfindEPNS_8__rw_catE); -var _GLOBAL__D__ZN5my_gl14glAttachShaderEjj__index__ = register_delegate(_GLOBAL__D__ZN5my_gl14glAttachShaderEjj); -var _GLOBAL__D__ZN7btClockC2Ev__index__ = register_delegate(_GLOBAL__D__ZN7btClockC2Ev); -var _GLOBAL__D__ZN8OpenGLES12OpenGLESUtil15getCurrentErrorEv__index__ = register_delegate(_GLOBAL__D__ZN8OpenGLES12OpenGLESUtil15getCurrentErrorEv); -var _GLOBAL__I_Landscape02Vtx__index__ = register_delegate(_GLOBAL__I_Landscape02Vtx); -var _GLOBAL__I__ZN4__rw9__catfindEPNS_8__rw_catE__index__ = register_delegate(_GLOBAL__I__ZN4__rw9__catfindEPNS_8__rw_catE); -var _GLOBAL__I__ZN5my_gl14glAttachShaderEjj__index__ = register_delegate(_GLOBAL__I__ZN5my_gl14glAttachShaderEjj); -var _GLOBAL__I__ZN7btClockC2Ev__index__ = register_delegate(_GLOBAL__I__ZN7btClockC2Ev); -var _GLOBAL__I__mandreel_create_tcp_socket__index__ = register_delegate(_GLOBAL__I__mandreel_create_tcp_socket); -var _Z31MandreelDefaultDebugMsgCallbackiPKc__index__ = register_delegate(_Z31MandreelDefaultDebugMsgCallbackiPKc); -var _ZN10CFileCloud4feofEv__index__ = register_delegate(_ZN10CFileCloud4feofEv); -var _ZN10CFileCloud5freadEPvjj__index__ = register_delegate(_ZN10CFileCloud5freadEPvjj); -var _ZN10CFileCloud5fseekEli__index__ = register_delegate(_ZN10CFileCloud5fseekEli); -var _ZN10CFileCloud5ftellEv__index__ = register_delegate(_ZN10CFileCloud5ftellEv); -var _ZN10CFileCloud6fcloseEv__index__ = register_delegate(_ZN10CFileCloud6fcloseEv); -var _ZN10CFileCloud6fflushEv__index__ = register_delegate(_ZN10CFileCloud6fflushEv); -var _ZN10CFileCloud6fwriteEPKvjj__index__ = register_delegate(_ZN10CFileCloud6fwriteEPKvjj); -var _ZN10CFileCloud6ungetcEi__index__ = register_delegate(_ZN10CFileCloud6ungetcEi); -var _ZN10__cxxabiv117__class_type_infoD0Ev__index__ = register_delegate(_ZN10__cxxabiv117__class_type_infoD0Ev); -var _ZN10__cxxabiv117__class_type_infoD1Ev__index__ = register_delegate(_ZN10__cxxabiv117__class_type_infoD1Ev); -var _ZN10__cxxabiv120__si_class_type_infoD0Ev__index__ = register_delegate(_ZN10__cxxabiv120__si_class_type_infoD0Ev); -var _ZN10__cxxabiv120__si_class_type_infoD1Ev__index__ = register_delegate(_ZN10__cxxabiv120__si_class_type_infoD1Ev); -var _ZN10__cxxabiv121__vmi_class_type_infoD0Ev__index__ = register_delegate(_ZN10__cxxabiv121__vmi_class_type_infoD0Ev); -var _ZN10__cxxabiv121__vmi_class_type_infoD1Ev__index__ = register_delegate(_ZN10__cxxabiv121__vmi_class_type_infoD1Ev); -var _ZN10btBoxShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN10btBoxShape15setLocalScalingERK9btVector3); -var _ZN10btBoxShape9setMarginEf__index__ = register_delegate(_ZN10btBoxShape9setMarginEf); -var _ZN10btBoxShapeD0Ev__index__ = register_delegate(_ZN10btBoxShapeD0Ev); -var _ZN10btBoxShapeD1Ev__index__ = register_delegate(_ZN10btBoxShapeD1Ev); -var _ZN11CFileStdout4feofEv__index__ = register_delegate(_ZN11CFileStdout4feofEv); -var _ZN11CFileStdout5freadEPvjj__index__ = register_delegate(_ZN11CFileStdout5freadEPvjj); -var _ZN11CFileStdout5fseekEli__index__ = register_delegate(_ZN11CFileStdout5fseekEli); -var _ZN11CFileStdout5ftellEv__index__ = register_delegate(_ZN11CFileStdout5ftellEv); -var _ZN11CFileStdout6fcloseEv__index__ = register_delegate(_ZN11CFileStdout6fcloseEv); -var _ZN11CFileStdout6fflushEv__index__ = register_delegate(_ZN11CFileStdout6fflushEv); -var _ZN11CFileStdout6fwriteEPKvjj__index__ = register_delegate(_ZN11CFileStdout6fwriteEPKvjj); -var _ZN11CFileStdout6ungetcEi__index__ = register_delegate(_ZN11CFileStdout6ungetcEi); -var _ZN11CFileSystem4feofEv__index__ = register_delegate(_ZN11CFileSystem4feofEv); -var _ZN11CFileSystem5freadEPvjj__index__ = register_delegate(_ZN11CFileSystem5freadEPvjj); -var _ZN11CFileSystem5fseekEli__index__ = register_delegate(_ZN11CFileSystem5fseekEli); -var _ZN11CFileSystem5ftellEv__index__ = register_delegate(_ZN11CFileSystem5ftellEv); -var _ZN11CFileSystem6fcloseEv__index__ = register_delegate(_ZN11CFileSystem6fcloseEv); -var _ZN11CFileSystem6fflushEv__index__ = register_delegate(_ZN11CFileSystem6fflushEv); -var _ZN11CFileSystem6fwriteEPKvjj__index__ = register_delegate(_ZN11CFileSystem6fwriteEPKvjj); -var _ZN11CFileSystem6ungetcEi__index__ = register_delegate(_ZN11CFileSystem6ungetcEi); -var _ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject__index__ = register_delegate(_ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject); -var _ZN11btRigidBodyD0Ev__index__ = register_delegate(_ZN11btRigidBodyD0Ev); -var _ZN11btRigidBodyD1Ev__index__ = register_delegate(_ZN11btRigidBodyD1Ev); -var _ZN12btAxisSweep3D0Ev__index__ = register_delegate(_ZN12btAxisSweep3D0Ev); -var _ZN12btAxisSweep3D1Ev__index__ = register_delegate(_ZN12btAxisSweep3D1Ev); -var _ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform__index__ = register_delegate(_ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform); -var _ZN12btConvexCast10CastResult9DebugDrawEf__index__ = register_delegate(_ZN12btConvexCast10CastResult9DebugDrawEf); -var _ZN12btConvexCast10CastResultD0Ev__index__ = register_delegate(_ZN12btConvexCast10CastResultD0Ev); -var _ZN12btConvexCast10CastResultD1Ev__index__ = register_delegate(_ZN12btConvexCast10CastResultD1Ev); -var _ZN12btConvexCastD0Ev__index__ = register_delegate(_ZN12btConvexCastD0Ev); -var _ZN12btConvexCastD1Ev__index__ = register_delegate(_ZN12btConvexCastD1Ev); -var _ZN12btDispatcherD0Ev__index__ = register_delegate(_ZN12btDispatcherD0Ev); -var _ZN12btDispatcherD1Ev__index__ = register_delegate(_ZN12btDispatcherD1Ev); -var _ZN13BenchmarkDemo15displayCallbackEv__index__ = register_delegate(_ZN13BenchmarkDemo15displayCallbackEv); -var _ZN13BenchmarkDemo20clientMoveAndDisplayEv__index__ = register_delegate(_ZN13BenchmarkDemo20clientMoveAndDisplayEv); -var _ZN13BenchmarkDemoD0Ev__index__ = register_delegate(_ZN13BenchmarkDemoD0Ev); -var _ZN13BenchmarkDemoD1Ev__index__ = register_delegate(_ZN13BenchmarkDemoD1Ev); -var _ZN13btConvexShapeD0Ev__index__ = register_delegate(_ZN13btConvexShapeD0Ev); -var _ZN13btConvexShapeD1Ev__index__ = register_delegate(_ZN13btConvexShapeD1Ev); -var _ZN13btSphereShape9setMarginEf__index__ = register_delegate(_ZN13btSphereShape9setMarginEf); -var _ZN13btSphereShapeD0Ev__index__ = register_delegate(_ZN13btSphereShapeD0Ev); -var _ZN13btSphereShapeD1Ev__index__ = register_delegate(_ZN13btSphereShapeD1Ev); -var _ZN14BenchmarkDemo4D0Ev__index__ = register_delegate(_ZN14BenchmarkDemo4D0Ev); -var _ZN14BenchmarkDemo4D1Ev__index__ = register_delegate(_ZN14BenchmarkDemo4D1Ev); -var _ZN14btCapsuleShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN14btCapsuleShape15setLocalScalingERK9btVector3); -var _ZN14btCapsuleShape9setMarginEf__index__ = register_delegate(_ZN14btCapsuleShape9setMarginEf); -var _ZN14btCapsuleShapeD0Ev__index__ = register_delegate(_ZN14btCapsuleShapeD0Ev); -var _ZN14btCapsuleShapeD1Ev__index__ = register_delegate(_ZN14btCapsuleShapeD1Ev); -var _ZN14btConcaveShape9setMarginEf__index__ = register_delegate(_ZN14btConcaveShape9setMarginEf); -var _ZN14btConcaveShapeD0Ev__index__ = register_delegate(_ZN14btConcaveShapeD0Ev); -var _ZN14btConcaveShapeD1Ev__index__ = register_delegate(_ZN14btConcaveShapeD1Ev); -var _ZN14btOptimizedBvhD0Ev__index__ = register_delegate(_ZN14btOptimizedBvhD0Ev); -var _ZN14btOptimizedBvhD1Ev__index__ = register_delegate(_ZN14btOptimizedBvhD1Ev); -var _ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData__index__ = register_delegate(_ZN14btQuantizedBvh16deSerializeFloatER23btQuantizedBvhFloatData); -var _ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData__index__ = register_delegate(_ZN14btQuantizedBvh17deSerializeDoubleER24btQuantizedBvhDoubleData); -var _ZN14btQuantizedBvhD0Ev__index__ = register_delegate(_ZN14btQuantizedBvhD0Ev); -var _ZN14btQuantizedBvhD1Ev__index__ = register_delegate(_ZN14btQuantizedBvhD1Ev); -var _ZN15DemoApplication16getDynamicsWorldEv__index__ = register_delegate(_ZN15DemoApplication16getDynamicsWorldEv); -var _ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape__index__ = register_delegate(_ZN15DemoApplication20localCreateRigidBodyEfRK11btTransformP16btCollisionShape); -var _ZN15DemoApplication6myinitEv__index__ = register_delegate(_ZN15DemoApplication6myinitEv); -var _ZN15btDynamicsWorld10addVehicleEP17btActionInterface__index__ = register_delegate(_ZN15btDynamicsWorld10addVehicleEP17btActionInterface); -var _ZN15btDynamicsWorld12addCharacterEP17btActionInterface__index__ = register_delegate(_ZN15btDynamicsWorld12addCharacterEP17btActionInterface); -var _ZN15btDynamicsWorld13addConstraintEP17btTypedConstraintb__index__ = register_delegate(_ZN15btDynamicsWorld13addConstraintEP17btTypedConstraintb); -var _ZN15btDynamicsWorld13getConstraintEi__index__ = register_delegate(_ZN15btDynamicsWorld13getConstraintEi); -var _ZN15btDynamicsWorld13removeVehicleEP17btActionInterface__index__ = register_delegate(_ZN15btDynamicsWorld13removeVehicleEP17btActionInterface); -var _ZN15btDynamicsWorld15removeCharacterEP17btActionInterface__index__ = register_delegate(_ZN15btDynamicsWorld15removeCharacterEP17btActionInterface); -var _ZN15btDynamicsWorld16removeConstraintEP17btTypedConstraint__index__ = register_delegate(_ZN15btDynamicsWorld16removeConstraintEP17btTypedConstraint); -var _ZN15btDynamicsWorldD0Ev__index__ = register_delegate(_ZN15btDynamicsWorldD0Ev); -var _ZN15btDynamicsWorldD1Ev__index__ = register_delegate(_ZN15btDynamicsWorldD1Ev); -var _ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__ = register_delegate(_ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE); -var _ZN15btGjkConvexCastD0Ev__index__ = register_delegate(_ZN15btGjkConvexCastD0Ev); -var _ZN15btGjkConvexCastD1Ev__index__ = register_delegate(_ZN15btGjkConvexCastD1Ev); -var _ZN15btNullPairCache18addOverlappingPairEP17btBroadphaseProxyS1___index__ = register_delegate(_ZN15btNullPairCache18addOverlappingPairEP17btBroadphaseProxyS1_); -var _ZN15btNullPairCache18hasDeferredRemovalEv__index__ = register_delegate(_ZN15btNullPairCache18hasDeferredRemovalEv); -var _ZN15btNullPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher); -var _ZN15btNullPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher); -var _ZN15btNullPairCache20sortOverlappingPairsEP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache20sortOverlappingPairsEP12btDispatcher); -var _ZN15btNullPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher); -var _ZN15btNullPairCache23getOverlappingPairArrayEv__index__ = register_delegate(_ZN15btNullPairCache23getOverlappingPairArrayEv); -var _ZN15btNullPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback__index__ = register_delegate(_ZN15btNullPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback); -var _ZN15btNullPairCache26getOverlappingPairArrayPtrEv__index__ = register_delegate(_ZN15btNullPairCache26getOverlappingPairArrayPtrEv); -var _ZN15btNullPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher); -var _ZN15btNullPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback__index__ = register_delegate(_ZN15btNullPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback); -var _ZN15btNullPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN15btNullPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher); -var _ZN15btNullPairCache8findPairEP17btBroadphaseProxyS1___index__ = register_delegate(_ZN15btNullPairCache8findPairEP17btBroadphaseProxyS1_); -var _ZN15btNullPairCacheD0Ev__index__ = register_delegate(_ZN15btNullPairCacheD0Ev); -var _ZN15btNullPairCacheD1Ev__index__ = register_delegate(_ZN15btNullPairCacheD1Ev); -var _ZN15btTriangleShapeD0Ev__index__ = register_delegate(_ZN15btTriangleShapeD0Ev); -var _ZN15btTriangleShapeD1Ev__index__ = register_delegate(_ZN15btTriangleShapeD1Ev); -var _ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__ = register_delegate(_ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb); -var _ZN16btBoxBoxDetectorD0Ev__index__ = register_delegate(_ZN16btBoxBoxDetectorD0Ev); -var _ZN16btBoxBoxDetectorD1Ev__index__ = register_delegate(_ZN16btBoxBoxDetectorD1Ev); -var _ZN16btCollisionWorld11updateAabbsEv__index__ = register_delegate(_ZN16btCollisionWorld11updateAabbsEv); -var _ZN16btCollisionWorld14debugDrawWorldEv__index__ = register_delegate(_ZN16btCollisionWorld14debugDrawWorldEv); -var _ZN16btCollisionWorld14getDebugDrawerEv__index__ = register_delegate(_ZN16btCollisionWorld14getDebugDrawerEv); -var _ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw__index__ = register_delegate(_ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw); -var _ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3__index__ = register_delegate(_ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3); -var _ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss__index__ = register_delegate(_ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss); -var _ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject__index__ = register_delegate(_ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject); -var _ZN16btCollisionWorld24ClosestRayResultCallback15addSingleResultERNS_14LocalRayResultEb__index__ = register_delegate(_ZN16btCollisionWorld24ClosestRayResultCallback15addSingleResultERNS_14LocalRayResultEb); -var _ZN16btCollisionWorld24ClosestRayResultCallbackD0Ev__index__ = register_delegate(_ZN16btCollisionWorld24ClosestRayResultCallbackD0Ev); -var _ZN16btCollisionWorld24ClosestRayResultCallbackD1Ev__index__ = register_delegate(_ZN16btCollisionWorld24ClosestRayResultCallbackD1Ev); -var _ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb__index__ = register_delegate(_ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb); -var _ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev__index__ = register_delegate(_ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev); -var _ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev__index__ = register_delegate(_ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev); -var _ZN16btCollisionWorld33performDiscreteCollisionDetectionEv__index__ = register_delegate(_ZN16btCollisionWorld33performDiscreteCollisionDetectionEv); -var _ZN16btCollisionWorld9serializeEP12btSerializer__index__ = register_delegate(_ZN16btCollisionWorld9serializeEP12btSerializer); -var _ZN16btCollisionWorldD0Ev__index__ = register_delegate(_ZN16btCollisionWorldD0Ev); -var _ZN16btCollisionWorldD1Ev__index__ = register_delegate(_ZN16btCollisionWorldD1Ev); -var _ZN16btDbvtBroadphase10printStatsEv__index__ = register_delegate(_ZN16btDbvtBroadphase10printStatsEv); -var _ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3___index__ = register_delegate(_ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3_); -var _ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher); -var _ZN16btDbvtBroadphase23getOverlappingPairCacheEv__index__ = register_delegate(_ZN16btDbvtBroadphase23getOverlappingPairCacheEv); -var _ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher__index__ = register_delegate(_ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher); -var _ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2___index__ = register_delegate(_ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2_); -var _ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher__index__ = register_delegate(_ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher); -var _ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback__index__ = register_delegate(_ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback); -var _ZN16btDbvtBroadphase9resetPoolEP12btDispatcher__index__ = register_delegate(_ZN16btDbvtBroadphase9resetPoolEP12btDispatcher); -var _ZN16btDbvtBroadphaseD0Ev__index__ = register_delegate(_ZN16btDbvtBroadphaseD0Ev); -var _ZN16btDbvtBroadphaseD1Ev__index__ = register_delegate(_ZN16btDbvtBroadphaseD1Ev); -var _ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_); -var _ZN16btEmptyAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN16btEmptyAlgorithm10CreateFuncD0Ev); -var _ZN16btEmptyAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN16btEmptyAlgorithm10CreateFuncD1Ev); -var _ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE); -var _ZN16btEmptyAlgorithmD0Ev__index__ = register_delegate(_ZN16btEmptyAlgorithmD0Ev); -var _ZN16btEmptyAlgorithmD1Ev__index__ = register_delegate(_ZN16btEmptyAlgorithmD1Ev); -var _ZN16btManifoldResult15addContactPointERK9btVector3S2_f__index__ = register_delegate(_ZN16btManifoldResult15addContactPointERK9btVector3S2_f); -var _ZN16btManifoldResult20setShapeIdentifiersAEii__index__ = register_delegate(_ZN16btManifoldResult20setShapeIdentifiersAEii); -var _ZN16btManifoldResult20setShapeIdentifiersBEii__index__ = register_delegate(_ZN16btManifoldResult20setShapeIdentifiersBEii); -var _ZN16btManifoldResultD0Ev__index__ = register_delegate(_ZN16btManifoldResultD0Ev); -var _ZN16btManifoldResultD1Ev__index__ = register_delegate(_ZN16btManifoldResultD1Ev); -var _ZN16btPointCollector15addContactPointERK9btVector3S2_f__index__ = register_delegate(_ZN16btPointCollector15addContactPointERK9btVector3S2_f); -var _ZN16btPointCollector20setShapeIdentifiersAEii__index__ = register_delegate(_ZN16btPointCollector20setShapeIdentifiersAEii); -var _ZN16btPointCollector20setShapeIdentifiersBEii__index__ = register_delegate(_ZN16btPointCollector20setShapeIdentifiersBEii); -var _ZN16btPointCollectorD0Ev__index__ = register_delegate(_ZN16btPointCollectorD0Ev); -var _ZN16btPointCollectorD1Ev__index__ = register_delegate(_ZN16btPointCollectorD1Ev); -var _ZN17DebugDrawcallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN17DebugDrawcallback15processTriangleEP9btVector3ii); -var _ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii__index__ = register_delegate(_ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii); -var _ZN17DebugDrawcallbackD0Ev__index__ = register_delegate(_ZN17DebugDrawcallbackD0Ev); -var _ZN17DebugDrawcallbackD1Ev__index__ = register_delegate(_ZN17DebugDrawcallbackD1Ev); -var _ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape__index__ = register_delegate(_ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape); -var _ZN17btCollisionObject24checkCollideWithOverrideEPS___index__ = register_delegate(_ZN17btCollisionObject24checkCollideWithOverrideEPS_); -var _ZN17btCollisionObjectD0Ev__index__ = register_delegate(_ZN17btCollisionObjectD0Ev); -var _ZN17btCollisionObjectD1Ev__index__ = register_delegate(_ZN17btCollisionObjectD1Ev); -var _ZN17btConvexHullShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN17btConvexHullShape15setLocalScalingERK9btVector3); -var _ZN17btConvexHullShapeD0Ev__index__ = register_delegate(_ZN17btConvexHullShapeD0Ev); -var _ZN17btConvexHullShapeD1Ev__index__ = register_delegate(_ZN17btConvexHullShapeD1Ev); -var _ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__ = register_delegate(_ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb); -var _ZN17btGjkPairDetectorD0Ev__index__ = register_delegate(_ZN17btGjkPairDetectorD0Ev); -var _ZN17btGjkPairDetectorD1Ev__index__ = register_delegate(_ZN17btGjkPairDetectorD1Ev); -var _ZN17btHingeConstraint13buildJacobianEv__index__ = register_delegate(_ZN17btHingeConstraint13buildJacobianEv); -var _ZN17btHingeConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E__index__ = register_delegate(_ZN17btHingeConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E); -var _ZN17btHingeConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E__index__ = register_delegate(_ZN17btHingeConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E); -var _ZN17btHingeConstraint8setParamEifi__index__ = register_delegate(_ZN17btHingeConstraint8setParamEifi); -var _ZN17btHingeConstraintD0Ev__index__ = register_delegate(_ZN17btHingeConstraintD0Ev); -var _ZN17btHingeConstraintD1Ev__index__ = register_delegate(_ZN17btHingeConstraintD1Ev); -var _ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif__index__ = register_delegate(_ZN17btTypedConstraint21setupSolverConstraintER20btAlignedObjectArrayI18btSolverConstraintEiif); -var _ZN17btTypedConstraint23solveConstraintObsoleteER11btRigidBodyS1_f__index__ = register_delegate(_ZN17btTypedConstraint23solveConstraintObsoleteER11btRigidBodyS1_f); -var _ZN18btConstraintSolver12prepareSolveEii__index__ = register_delegate(_ZN18btConstraintSolver12prepareSolveEii); -var _ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc); -var _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode__index__ = register_delegate(_ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode); -var _ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2___index__ = register_delegate(_ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2_); -var _ZN18btDbvtTreeColliderD0Ev__index__ = register_delegate(_ZN18btDbvtTreeColliderD0Ev); -var _ZN18btDbvtTreeColliderD1Ev__index__ = register_delegate(_ZN18btDbvtTreeColliderD1Ev); -var _ZN18btTriangleCallbackD0Ev__index__ = register_delegate(_ZN18btTriangleCallbackD0Ev); -var _ZN18btTriangleCallbackD1Ev__index__ = register_delegate(_ZN18btTriangleCallbackD1Ev); -var _ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode__index__ = register_delegate(_ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode); -var _ZN19BroadphaseRayTesterD0Ev__index__ = register_delegate(_ZN19BroadphaseRayTesterD0Ev); -var _ZN19BroadphaseRayTesterD1Ev__index__ = register_delegate(_ZN19BroadphaseRayTesterD1Ev); -var _ZN19btSingleRayCallback7processEPK17btBroadphaseProxy__index__ = register_delegate(_ZN19btSingleRayCallback7processEPK17btBroadphaseProxy); -var _ZN19btSingleRayCallbackD0Ev__index__ = register_delegate(_ZN19btSingleRayCallbackD0Ev); -var _ZN19btSingleRayCallbackD1Ev__index__ = register_delegate(_ZN19btSingleRayCallbackD1Ev); -var _ZN19btTriangleMeshShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN19btTriangleMeshShape15setLocalScalingERK9btVector3); -var _ZN19btTriangleMeshShapeD0Ev__index__ = register_delegate(_ZN19btTriangleMeshShapeD0Ev); -var _ZN19btTriangleMeshShapeD1Ev__index__ = register_delegate(_ZN19btTriangleMeshShapeD1Ev); -var _ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode__index__ = register_delegate(_ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode); -var _ZN20BroadphaseAabbTesterD0Ev__index__ = register_delegate(_ZN20BroadphaseAabbTesterD0Ev); -var _ZN20BroadphaseAabbTesterD1Ev__index__ = register_delegate(_ZN20BroadphaseAabbTesterD1Ev); -var _ZN20btAxisSweep3InternalItE10printStatsEv__index__ = register_delegate(_ZN20btAxisSweep3InternalItE10printStatsEv); -var _ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4___index__ = register_delegate(_ZN20btAxisSweep3InternalItE11createProxyERK9btVector3S3_iPvssP12btDispatcherS4_); -var _ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN20btAxisSweep3InternalItE12destroyProxyEP17btBroadphaseProxyP12btDispatcher); -var _ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__ = register_delegate(_ZN20btAxisSweep3InternalItE23getOverlappingPairCacheEv); -var _ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher__index__ = register_delegate(_ZN20btAxisSweep3InternalItE25calculateOverlappingPairsEP12btDispatcher); -var _ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3___index__ = register_delegate(_ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3_); -var _ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher__index__ = register_delegate(_ZN20btAxisSweep3InternalItE7setAabbEP17btBroadphaseProxyRK9btVector3S5_P12btDispatcher); -var _ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback__index__ = register_delegate(_ZN20btAxisSweep3InternalItE8aabbTestERK9btVector3S3_R24btBroadphaseAabbCallback); -var _ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher__index__ = register_delegate(_ZN20btAxisSweep3InternalItE9resetPoolEP12btDispatcher); -var _ZN20btAxisSweep3InternalItED0Ev__index__ = register_delegate(_ZN20btAxisSweep3InternalItED0Ev); -var _ZN20btAxisSweep3InternalItED1Ev__index__ = register_delegate(_ZN20btAxisSweep3InternalItED1Ev); -var _ZN20btCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN20btCollisionAlgorithmD0Ev); -var _ZN20btCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN20btCollisionAlgorithmD1Ev); -var _ZN20btDefaultMotionState17setWorldTransformERK11btTransform__index__ = register_delegate(_ZN20btDefaultMotionState17setWorldTransformERK11btTransform); -var _ZN20btDefaultMotionStateD0Ev__index__ = register_delegate(_ZN20btDefaultMotionStateD0Ev); -var _ZN20btDefaultMotionStateD1Ev__index__ = register_delegate(_ZN20btDefaultMotionStateD1Ev); -var _ZN21SupportVertexCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN21SupportVertexCallback15processTriangleEP9btVector3ii); -var _ZN21SupportVertexCallbackD0Ev__index__ = register_delegate(_ZN21SupportVertexCallbackD0Ev); -var _ZN21SupportVertexCallbackD1Ev__index__ = register_delegate(_ZN21SupportVertexCallbackD1Ev); -var _ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold__index__ = register_delegate(_ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold); -var _ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold__index__ = register_delegate(_ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold); -var _ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1___index__ = register_delegate(_ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1_); -var _ZN21btCollisionDispatcher14getNewManifoldEPvS0___index__ = register_delegate(_ZN21btCollisionDispatcher14getNewManifoldEPvS0_); -var _ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1___index__ = register_delegate(_ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1_); -var _ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold__index__ = register_delegate(_ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold); -var _ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo__index__ = register_delegate(_ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo); -var _ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv__index__ = register_delegate(_ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv); -var _ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher__index__ = register_delegate(_ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher); -var _ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi__index__ = register_delegate(_ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi); -var _ZN21btCollisionDispatcher26getInternalManifoldPointerEv__index__ = register_delegate(_ZN21btCollisionDispatcher26getInternalManifoldPointerEv); -var _ZN21btCollisionDispatcher26getManifoldByIndexInternalEi__index__ = register_delegate(_ZN21btCollisionDispatcher26getManifoldByIndexInternalEi); -var _ZN21btCollisionDispatcherD0Ev__index__ = register_delegate(_ZN21btCollisionDispatcherD0Ev); -var _ZN21btCollisionDispatcherD1Ev__index__ = register_delegate(_ZN21btCollisionDispatcherD1Ev); -var _ZN21btConeTwistConstraint13buildJacobianEv__index__ = register_delegate(_ZN21btConeTwistConstraint13buildJacobianEv); -var _ZN21btConeTwistConstraint23solveConstraintObsoleteER11btRigidBodyS1_f__index__ = register_delegate(_ZN21btConeTwistConstraint23solveConstraintObsoleteER11btRigidBodyS1_f); -var _ZN21btConeTwistConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E__index__ = register_delegate(_ZN21btConeTwistConstraint8getInfo1EPN17btTypedConstraint17btConstraintInfo1E); -var _ZN21btConeTwistConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E__index__ = register_delegate(_ZN21btConeTwistConstraint8getInfo2EPN17btTypedConstraint17btConstraintInfo2E); -var _ZN21btConeTwistConstraint8setParamEifi__index__ = register_delegate(_ZN21btConeTwistConstraint8setParamEifi); -var _ZN21btConeTwistConstraintD0Ev__index__ = register_delegate(_ZN21btConeTwistConstraintD0Ev); -var _ZN21btConeTwistConstraintD1Ev__index__ = register_delegate(_ZN21btConeTwistConstraintD1Ev); -var _ZN21btConvexInternalShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN21btConvexInternalShape15setLocalScalingERK9btVector3); -var _ZN21btConvexInternalShape9setMarginEf__index__ = register_delegate(_ZN21btConvexInternalShape9setMarginEf); -var _ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy__index__ = register_delegate(_ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy); -var _ZN21btSingleSweepCallbackD0Ev__index__ = register_delegate(_ZN21btSingleSweepCallbackD0Ev); -var _ZN21btSingleSweepCallbackD1Ev__index__ = register_delegate(_ZN21btSingleSweepCallbackD1Ev); -var _ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb__index__ = register_delegate(_ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb); -var _ZN22SphereTriangleDetectorD0Ev__index__ = register_delegate(_ZN22SphereTriangleDetectorD0Ev); -var _ZN22SphereTriangleDetectorD1Ev__index__ = register_delegate(_ZN22SphereTriangleDetectorD1Ev); -var _ZN22btBvhTriangleMeshShape15setLocalScalingERK9btVector3__index__ = register_delegate(_ZN22btBvhTriangleMeshShape15setLocalScalingERK9btVector3); -var _ZN22btBvhTriangleMeshShapeD0Ev__index__ = register_delegate(_ZN22btBvhTriangleMeshShapeD0Ev); -var _ZN22btBvhTriangleMeshShapeD1Ev__index__ = register_delegate(_ZN22btBvhTriangleMeshShapeD1Ev); -var _ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode__index__ = register_delegate(_ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode); -var _ZN22btCompoundLeafCallbackD0Ev__index__ = register_delegate(_ZN22btCompoundLeafCallbackD0Ev); -var _ZN22btCompoundLeafCallbackD1Ev__index__ = register_delegate(_ZN22btCompoundLeafCallbackD1Ev); -var _ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__ = register_delegate(_ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE); -var _ZN22btSubsimplexConvexCastD0Ev__index__ = register_delegate(_ZN22btSubsimplexConvexCastD0Ev); -var _ZN22btSubsimplexConvexCastD1Ev__index__ = register_delegate(_ZN22btSubsimplexConvexCastD1Ev); -var _ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair__index__ = register_delegate(_ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair); -var _ZN23btCollisionPairCallbackD0Ev__index__ = register_delegate(_ZN23btCollisionPairCallbackD0Ev); -var _ZN23btCollisionPairCallbackD1Ev__index__ = register_delegate(_ZN23btCollisionPairCallbackD1Ev); -var _ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_); -var _ZN23btConvexConvexAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN23btConvexConvexAlgorithm10CreateFuncD0Ev); -var _ZN23btConvexConvexAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN23btConvexConvexAlgorithm10CreateFuncD1Ev); -var _ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE); -var _ZN23btConvexConvexAlgorithmD0Ev__index__ = register_delegate(_ZN23btConvexConvexAlgorithmD0Ev); -var _ZN23btConvexConvexAlgorithmD1Ev__index__ = register_delegate(_ZN23btConvexConvexAlgorithmD1Ev); -var _ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface); -var _ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3); -var _ZN23btDiscreteDynamicsWorld11clearForcesEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld11clearForcesEv); -var _ZN23btDiscreteDynamicsWorld11setNumTasksEi__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld11setNumTasksEi); -var _ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface); -var _ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody); -var _ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss); -var _ZN23btDiscreteDynamicsWorld12applyGravityEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12applyGravityEv); -var _ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface); -var _ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb); -var _ZN23btDiscreteDynamicsWorld13getConstraintEi__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld13getConstraintEi); -var _ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface); -var _ZN23btDiscreteDynamicsWorld14debugDrawWorldEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld14debugDrawWorldEv); -var _ZN23btDiscreteDynamicsWorld14stepSimulationEfif__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld14stepSimulationEfif); -var _ZN23btDiscreteDynamicsWorld14updateVehiclesEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld14updateVehiclesEf); -var _ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface); -var _ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody); -var _ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint); -var _ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo); -var _ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss); -var _ZN23btDiscreteDynamicsWorld18saveKinematicStateEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld18saveKinematicStateEf); -var _ZN23btDiscreteDynamicsWorld19getConstraintSolverEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld19getConstraintSolverEv); -var _ZN23btDiscreteDynamicsWorld19integrateTransformsEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld19integrateTransformsEf); -var _ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver); -var _ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject); -var _ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv); -var _ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf); -var _ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv); -var _ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf); -var _ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface); -var _ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer__index__ = register_delegate(_ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer); -var _ZN23btDiscreteDynamicsWorldD0Ev__index__ = register_delegate(_ZN23btDiscreteDynamicsWorldD0Ev); -var _ZN23btDiscreteDynamicsWorldD1Ev__index__ = register_delegate(_ZN23btDiscreteDynamicsWorldD1Ev); -var _ZN23btStridingMeshInterfaceD0Ev__index__ = register_delegate(_ZN23btStridingMeshInterfaceD0Ev); -var _ZN23btStridingMeshInterfaceD1Ev__index__ = register_delegate(_ZN23btStridingMeshInterfaceD1Ev); -var _ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii); -var _ZN24btConvexTriangleCallbackD0Ev__index__ = register_delegate(_ZN24btConvexTriangleCallbackD0Ev); -var _ZN24btConvexTriangleCallbackD1Ev__index__ = register_delegate(_ZN24btConvexTriangleCallbackD1Ev); -var _ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f__index__ = register_delegate(_ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f); -var _ZN24btPerturbedContactResultD0Ev__index__ = register_delegate(_ZN24btPerturbedContactResultD0Ev); -var _ZN24btPerturbedContactResultD1Ev__index__ = register_delegate(_ZN24btPerturbedContactResultD1Ev); -var _ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher__index__ = register_delegate(_ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher); -var _ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld__index__ = register_delegate(_ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld); -var _ZN25btSimulationIslandManagerD0Ev__index__ = register_delegate(_ZN25btSimulationIslandManagerD0Ev); -var _ZN25btSimulationIslandManagerD1Ev__index__ = register_delegate(_ZN25btSimulationIslandManagerD1Ev); -var _ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii); -var _ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_); -var _ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev); -var _ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev); -var _ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE); -var _ZN26btBoxBoxCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithmD0Ev); -var _ZN26btBoxBoxCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN26btBoxBoxCollisionAlgorithmD1Ev); -var _ZN26btTriangleIndexVertexArray16unLockVertexBaseEi__index__ = register_delegate(_ZN26btTriangleIndexVertexArray16unLockVertexBaseEi); -var _ZN26btTriangleIndexVertexArray18preallocateIndicesEi__index__ = register_delegate(_ZN26btTriangleIndexVertexArray18preallocateIndicesEi); -var _ZN26btTriangleIndexVertexArray19preallocateVerticesEi__index__ = register_delegate(_ZN26btTriangleIndexVertexArray19preallocateVerticesEi); -var _ZN26btTriangleIndexVertexArray24getLockedVertexIndexBaseEPPhRiR14PHY_ScalarTypeS2_S1_S2_S2_S4_i__index__ = register_delegate(_ZN26btTriangleIndexVertexArray24getLockedVertexIndexBaseEPPhRiR14PHY_ScalarTypeS2_S1_S2_S2_S4_i); -var _ZN26btTriangleIndexVertexArrayD0Ev__index__ = register_delegate(_ZN26btTriangleIndexVertexArrayD0Ev); -var _ZN26btTriangleIndexVertexArrayD1Ev__index__ = register_delegate(_ZN26btTriangleIndexVertexArrayD1Ev); -var _ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE__index__ = register_delegate(_ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE); -var _ZN27btContinuousConvexCollisionD0Ev__index__ = register_delegate(_ZN27btContinuousConvexCollisionD0Ev); -var _ZN27btContinuousConvexCollisionD1Ev__index__ = register_delegate(_ZN27btContinuousConvexCollisionD1Ev); -var _ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_); -var _ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev); -var _ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev); -var _ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_); -var _ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev); -var _ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev); -var _ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE); -var _ZN28btCompoundCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithmD0Ev); -var _ZN28btCompoundCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN28btCompoundCollisionAlgorithmD1Ev); -var _ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1___index__ = register_delegate(_ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1_); -var _ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv__index__ = register_delegate(_ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv); -var _ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher); -var _ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher); -var _ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher); -var _ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher); -var _ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv__index__ = register_delegate(_ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv); -var _ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback__index__ = register_delegate(_ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback); -var _ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv__index__ = register_delegate(_ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv); -var _ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher); -var _ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback__index__ = register_delegate(_ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback); -var _ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher__index__ = register_delegate(_ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher); -var _ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1___index__ = register_delegate(_ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1_); -var _ZN28btHashedOverlappingPairCacheD0Ev__index__ = register_delegate(_ZN28btHashedOverlappingPairCacheD0Ev); -var _ZN28btHashedOverlappingPairCacheD1Ev__index__ = register_delegate(_ZN28btHashedOverlappingPairCacheD1Ev); -var _ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii); -var _ZN28btTriangleConvexcastCallbackD0Ev__index__ = register_delegate(_ZN28btTriangleConvexcastCallbackD0Ev); -var _ZN28btTriangleConvexcastCallbackD1Ev__index__ = register_delegate(_ZN28btTriangleConvexcastCallbackD1Ev); -var _ZN30btActivatingCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN30btActivatingCollisionAlgorithmD0Ev); -var _ZN30btActivatingCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN30btActivatingCollisionAlgorithmD1Ev); -var _ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc); -var _ZN30btGjkEpaPenetrationDepthSolverD0Ev__index__ = register_delegate(_ZN30btGjkEpaPenetrationDepthSolverD0Ev); -var _ZN30btGjkEpaPenetrationDepthSolverD1Ev__index__ = register_delegate(_ZN30btGjkEpaPenetrationDepthSolverD1Ev); -var _ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_); -var _ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev); -var _ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev); -var _ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE); -var _ZN31btConvexPlaneCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithmD0Ev); -var _ZN31btConvexPlaneCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN31btConvexPlaneCollisionAlgorithmD1Ev); -var _ZN31btDefaultCollisionConfiguration16getSimplexSolverEv__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration16getSimplexSolverEv); -var _ZN31btDefaultCollisionConfiguration17getStackAllocatorEv__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration17getStackAllocatorEv); -var _ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv); -var _ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv); -var _ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii__index__ = register_delegate(_ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii); -var _ZN31btDefaultCollisionConfigurationD0Ev__index__ = register_delegate(_ZN31btDefaultCollisionConfigurationD0Ev); -var _ZN31btDefaultCollisionConfigurationD1Ev__index__ = register_delegate(_ZN31btDefaultCollisionConfigurationD1Ev); -var _ZN31btInternalTriangleIndexCallbackD0Ev__index__ = register_delegate(_ZN31btInternalTriangleIndexCallbackD0Ev); -var _ZN31btInternalTriangleIndexCallbackD1Ev__index__ = register_delegate(_ZN31btInternalTriangleIndexCallbackD1Ev); -var _ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_); -var _ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev); -var _ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev); -var _ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE); -var _ZN32btSphereSphereCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithmD0Ev); -var _ZN32btSphereSphereCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN32btSphereSphereCollisionAlgorithmD1Ev); -var _ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_); -var _ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev); -var _ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev); -var _ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_); -var _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev); -var _ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev); -var _ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE); -var _ZN33btConvexConcaveCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithmD0Ev); -var _ZN33btConvexConcaveCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN33btConvexConcaveCollisionAlgorithmD1Ev); -var _ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb__index__ = register_delegate(_ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb); -var _ZN34btClosestNotMeConvexResultCallbackD0Ev__index__ = register_delegate(_ZN34btClosestNotMeConvexResultCallbackD0Ev); -var _ZN34btClosestNotMeConvexResultCallbackD1Ev__index__ = register_delegate(_ZN34btClosestNotMeConvexResultCallbackD1Ev); -var _ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4___index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_); -var _ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev); -var _ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev); -var _ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult); -var _ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE); -var _ZN34btSphereTriangleCollisionAlgorithmD0Ev__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithmD0Ev); -var _ZN34btSphereTriangleCollisionAlgorithmD1Ev__index__ = register_delegate(_ZN34btSphereTriangleCollisionAlgorithmD1Ev); -var _ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher); -var _ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc); -var _ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc); -var _ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc); -var _ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc); -var _ZN35btSequentialImpulseConstraintSolver5resetEv__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolver5resetEv); -var _ZN35btSequentialImpulseConstraintSolverD0Ev__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolverD0Ev); -var _ZN35btSequentialImpulseConstraintSolverD1Ev__index__ = register_delegate(_ZN35btSequentialImpulseConstraintSolverD1Ev); -var _ZN4__rw10__rw_facetD0Ev__index__ = register_delegate(_ZN4__rw10__rw_facetD0Ev); -var _ZN4__rw10__rw_facetD1Ev__index__ = register_delegate(_ZN4__rw10__rw_facetD1Ev); -var _ZN6btDbvt8ICollide7DescentEPK10btDbvtNode__index__ = register_delegate(_ZN6btDbvt8ICollide7DescentEPK10btDbvtNode); -var _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3___index__ = register_delegate(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3_); -var _ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef__index__ = register_delegate(_ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef); -var _ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode__index__ = register_delegate(_ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode); -var _ZN7CFileLS4feofEv__index__ = register_delegate(_ZN7CFileLS4feofEv); -var _ZN7CFileLS5freadEPvjj__index__ = register_delegate(_ZN7CFileLS5freadEPvjj); -var _ZN7CFileLS5fseekEli__index__ = register_delegate(_ZN7CFileLS5fseekEli); -var _ZN7CFileLS5ftellEv__index__ = register_delegate(_ZN7CFileLS5ftellEv); -var _ZN7CFileLS6fcloseEv__index__ = register_delegate(_ZN7CFileLS6fcloseEv); -var _ZN7CFileLS6fflushEv__index__ = register_delegate(_ZN7CFileLS6fflushEv); -var _ZN7CFileLS6fwriteEPKvjj__index__ = register_delegate(_ZN7CFileLS6fwriteEPKvjj); -var _ZN7CFileLS6ungetcEi__index__ = register_delegate(_ZN7CFileLS6ungetcEi); -var _ZN7RagDollD0Ev__index__ = register_delegate(_ZN7RagDollD0Ev); -var _ZN7RagDollD1Ev__index__ = register_delegate(_ZN7RagDollD1Ev); -var _ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj); -var _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE__index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE); -var _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv); -var _ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE__index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE); -var _ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2___index__ = register_delegate(_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_); -var _ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__index__ = register_delegate(_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE); -var _ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__index__ = register_delegate(_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE); -var _ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___index__ = register_delegate(_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_); -var _ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__index__ = register_delegate(_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE); -var _ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__index__ = register_delegate(_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE); -var _ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___index__ = register_delegate(_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_); -var _ZNK10btBoxShape11getNumEdgesEv__index__ = register_delegate(_ZNK10btBoxShape11getNumEdgesEv); -var _ZNK10btBoxShape12getNumPlanesEv__index__ = register_delegate(_ZNK10btBoxShape12getNumPlanesEv); -var _ZNK10btBoxShape14getNumVerticesEv__index__ = register_delegate(_ZNK10btBoxShape14getNumVerticesEv); -var _ZNK10btBoxShape16getPlaneEquationER9btVector4i__index__ = register_delegate(_ZNK10btBoxShape16getPlaneEquationER9btVector4i); -var _ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3); -var _ZNK10btBoxShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK10btBoxShape24localGetSupportingVertexERK9btVector3); -var _ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3__index__ = register_delegate(_ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3); -var _ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv__index__ = register_delegate(_ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv); -var _ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3); -var _ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i); -var _ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4_); -var _ZNK10btBoxShape7getEdgeEiR9btVector3S1___index__ = register_delegate(_ZNK10btBoxShape7getEdgeEiR9btVector3S1_); -var _ZNK10btBoxShape7getNameEv__index__ = register_delegate(_ZNK10btBoxShape7getNameEv); -var _ZNK10btBoxShape8getPlaneER9btVector3S1_i__index__ = register_delegate(_ZNK10btBoxShape8getPlaneER9btVector3S1_i); -var _ZNK10btBoxShape8isInsideERK9btVector3f__index__ = register_delegate(_ZNK10btBoxShape8isInsideERK9btVector3f); -var _ZNK10btBoxShape9getVertexEiR9btVector3__index__ = register_delegate(_ZNK10btBoxShape9getVertexEiR9btVector3); -var _ZNK11CFileSystem12IsFileSystemEv__index__ = register_delegate(_ZNK11CFileSystem12IsFileSystemEv); -var _ZNK11btRigidBody21serializeSingleObjectEP12btSerializer__index__ = register_delegate(_ZNK11btRigidBody21serializeSingleObjectEP12btSerializer); -var _ZNK11btRigidBody28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK11btRigidBody28calculateSerializeBufferSizeEv); -var _ZNK11btRigidBody9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK11btRigidBody9serializeEPvP12btSerializer); -var _ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3__index__ = register_delegate(_ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3); -var _ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3__index__ = register_delegate(_ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3); -var _ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3); -var _ZNK13btSphereShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK13btSphereShape24localGetSupportingVertexERK9btVector3); -var _ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3); -var _ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i); -var _ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4_); -var _ZNK13btSphereShape7getNameEv__index__ = register_delegate(_ZNK13btSphereShape7getNameEv); -var _ZNK13btSphereShape9getMarginEv__index__ = register_delegate(_ZNK13btSphereShape9getMarginEv); -var _ZNK14CFileInterface12IsFileSystemEv__index__ = register_delegate(_ZNK14CFileInterface12IsFileSystemEv); -var _ZNK14btCapsuleShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK14btCapsuleShape21calculateLocalInertiaEfR9btVector3); -var _ZNK14btCapsuleShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK14btCapsuleShape28calculateSerializeBufferSizeEv); -var _ZNK14btCapsuleShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK14btCapsuleShape37localGetSupportingVertexWithoutMarginERK9btVector3); -var _ZNK14btCapsuleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK14btCapsuleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i); -var _ZNK14btCapsuleShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK14btCapsuleShape7getAabbERK11btTransformR9btVector3S4_); -var _ZNK14btCapsuleShape7getNameEv__index__ = register_delegate(_ZNK14btCapsuleShape7getNameEv); -var _ZNK14btCapsuleShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK14btCapsuleShape9serializeEPvP12btSerializer); -var _ZNK14btConcaveShape9getMarginEv__index__ = register_delegate(_ZNK14btConcaveShape9getMarginEv); -var _ZNK14btOptimizedBvh16serializeInPlaceEPvjb__index__ = register_delegate(_ZNK14btOptimizedBvh16serializeInPlaceEPvjb); -var _ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv__index__ = register_delegate(_ZNK14btQuantizedBvh31calculateSerializeBufferSizeNewEv); -var _ZNK14btQuantizedBvh9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK14btQuantizedBvh9serializeEPvP12btSerializer); -var _ZNK14btQuantizedBvh9serializeEPvjb__index__ = register_delegate(_ZNK14btQuantizedBvh9serializeEPvjb); -var _ZNK15btDynamicsWorld13getConstraintEi__index__ = register_delegate(_ZNK15btDynamicsWorld13getConstraintEi); -var _ZNK15btDynamicsWorld17getNumConstraintsEv__index__ = register_delegate(_ZNK15btDynamicsWorld17getNumConstraintsEv); -var _ZNK15btNullPairCache22getNumOverlappingPairsEv__index__ = register_delegate(_ZNK15btNullPairCache22getNumOverlappingPairsEv); -var _ZNK15btNullPairCache26getOverlappingPairArrayPtrEv__index__ = register_delegate(_ZNK15btNullPairCache26getOverlappingPairArrayPtrEv); -var _ZNK15btTriangleShape11getNumEdgesEv__index__ = register_delegate(_ZNK15btTriangleShape11getNumEdgesEv); -var _ZNK15btTriangleShape12getNumPlanesEv__index__ = register_delegate(_ZNK15btTriangleShape12getNumPlanesEv); -var _ZNK15btTriangleShape14getNumVerticesEv__index__ = register_delegate(_ZNK15btTriangleShape14getNumVerticesEv); -var _ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1___index__ = register_delegate(_ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1_); -var _ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3); -var _ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3__index__ = register_delegate(_ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3); -var _ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv__index__ = register_delegate(_ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv); -var _ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3); -var _ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i); -var _ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4_); -var _ZNK15btTriangleShape7getEdgeEiR9btVector3S1___index__ = register_delegate(_ZNK15btTriangleShape7getEdgeEiR9btVector3S1_); -var _ZNK15btTriangleShape7getNameEv__index__ = register_delegate(_ZNK15btTriangleShape7getNameEv); -var _ZNK15btTriangleShape8getPlaneER9btVector3S1_i__index__ = register_delegate(_ZNK15btTriangleShape8getPlaneER9btVector3S1_i); -var _ZNK15btTriangleShape8isInsideERK9btVector3f__index__ = register_delegate(_ZNK15btTriangleShape8isInsideERK9btVector3f); -var _ZNK15btTriangleShape9getVertexEiR9btVector3__index__ = register_delegate(_ZNK15btTriangleShape9getVertexEiR9btVector3); -var _ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf__index__ = register_delegate(_ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf); -var _ZNK16btCollisionShape20getAngularMotionDiscEv__index__ = register_delegate(_ZNK16btCollisionShape20getAngularMotionDiscEv); -var _ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer__index__ = register_delegate(_ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer); -var _ZNK16btCollisionShape27getContactBreakingThresholdEf__index__ = register_delegate(_ZNK16btCollisionShape27getContactBreakingThresholdEf); -var _ZNK16btCollisionShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK16btCollisionShape28calculateSerializeBufferSizeEv); -var _ZNK16btCollisionShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK16btCollisionShape9serializeEPvP12btSerializer); -var _ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy__index__ = register_delegate(_ZNK16btCollisionWorld17RayResultCallback14needsCollisionEP17btBroadphaseProxy); -var _ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__ = register_delegate(_ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy); -var _ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE__index__ = register_delegate(_ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE); -var _ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1___index__ = register_delegate(_ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1_); -var _ZNK16btDbvtBroadphase23getOverlappingPairCacheEv__index__ = register_delegate(_ZNK16btDbvtBroadphase23getOverlappingPairCacheEv); -var _ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3___index__ = register_delegate(_ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3_); -var _ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer__index__ = register_delegate(_ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer); -var _ZNK17btCollisionObject28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK17btCollisionObject28calculateSerializeBufferSizeEv); -var _ZNK17btCollisionObject9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK17btCollisionObject9serializeEPvP12btSerializer); -var _ZNK17btConvexHullShape11getNumEdgesEv__index__ = register_delegate(_ZNK17btConvexHullShape11getNumEdgesEv); -var _ZNK17btConvexHullShape12getNumPlanesEv__index__ = register_delegate(_ZNK17btConvexHullShape12getNumPlanesEv); -var _ZNK17btConvexHullShape14getNumVerticesEv__index__ = register_delegate(_ZNK17btConvexHullShape14getNumVerticesEv); -var _ZNK17btConvexHullShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK17btConvexHullShape24localGetSupportingVertexERK9btVector3); -var _ZNK17btConvexHullShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK17btConvexHullShape28calculateSerializeBufferSizeEv); -var _ZNK17btConvexHullShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK17btConvexHullShape37localGetSupportingVertexWithoutMarginERK9btVector3); -var _ZNK17btConvexHullShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i__index__ = register_delegate(_ZNK17btConvexHullShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i); -var _ZNK17btConvexHullShape7getEdgeEiR9btVector3S1___index__ = register_delegate(_ZNK17btConvexHullShape7getEdgeEiR9btVector3S1_); -var _ZNK17btConvexHullShape7getNameEv__index__ = register_delegate(_ZNK17btConvexHullShape7getNameEv); -var _ZNK17btConvexHullShape8getPlaneER9btVector3S1_i__index__ = register_delegate(_ZNK17btConvexHullShape8getPlaneER9btVector3S1_i); -var _ZNK17btConvexHullShape8isInsideERK9btVector3f__index__ = register_delegate(_ZNK17btConvexHullShape8isInsideERK9btVector3f); -var _ZNK17btConvexHullShape9getVertexEiR9btVector3__index__ = register_delegate(_ZNK17btConvexHullShape9getVertexEiR9btVector3); -var _ZNK17btConvexHullShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK17btConvexHullShape9serializeEPvP12btSerializer); -var _ZNK17btHingeConstraint28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK17btHingeConstraint28calculateSerializeBufferSizeEv); -var _ZNK17btHingeConstraint8getParamEii__index__ = register_delegate(_ZNK17btHingeConstraint8getParamEii); -var _ZNK17btHingeConstraint9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK17btHingeConstraint9serializeEPvP12btSerializer); -var _ZNK19btTriangleMeshShape15getLocalScalingEv__index__ = register_delegate(_ZNK19btTriangleMeshShape15getLocalScalingEv); -var _ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4___index__ = register_delegate(_ZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_); -var _ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK19btTriangleMeshShape21calculateLocalInertiaEfR9btVector3); -var _ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK19btTriangleMeshShape24localGetSupportingVertexERK9btVector3); -var _ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3__index__ = register_delegate(_ZNK19btTriangleMeshShape37localGetSupportingVertexWithoutMarginERK9btVector3); -var _ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK19btTriangleMeshShape7getAabbERK11btTransformR9btVector3S4_); -var _ZNK19btTriangleMeshShape7getNameEv__index__ = register_delegate(_ZNK19btTriangleMeshShape7getNameEv); -var _ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2___index__ = register_delegate(_ZNK20btAxisSweep3InternalItE17getBroadphaseAabbER9btVector3S2_); -var _ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv__index__ = register_delegate(_ZNK20btAxisSweep3InternalItE23getOverlappingPairCacheEv); -var _ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4___index__ = register_delegate(_ZNK20btAxisSweep3InternalItE7getAabbEP17btBroadphaseProxyR9btVector3S4_); -var _ZNK20btDefaultMotionState17getWorldTransformER11btTransform__index__ = register_delegate(_ZNK20btDefaultMotionState17getWorldTransformER11btTransform); -var _ZNK21btCollisionDispatcher15getNumManifoldsEv__index__ = register_delegate(_ZNK21btCollisionDispatcher15getNumManifoldsEv); -var _ZNK21btConeTwistConstraint28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK21btConeTwistConstraint28calculateSerializeBufferSizeEv); -var _ZNK21btConeTwistConstraint8getParamEii__index__ = register_delegate(_ZNK21btConeTwistConstraint8getParamEii); -var _ZNK21btConeTwistConstraint9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK21btConeTwistConstraint9serializeEPvP12btSerializer); -var _ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4_); -var _ZNK21btConvexInternalShape15getLocalScalingEv__index__ = register_delegate(_ZNK21btConvexInternalShape15getLocalScalingEv); -var _ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3__index__ = register_delegate(_ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3); -var _ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv); -var _ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3__index__ = register_delegate(_ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3); -var _ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv__index__ = register_delegate(_ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv); -var _ZNK21btConvexInternalShape9getMarginEv__index__ = register_delegate(_ZNK21btConvexInternalShape9getMarginEv); -var _ZNK21btConvexInternalShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK21btConvexInternalShape9serializeEPvP12btSerializer); -var _ZNK22btBvhTriangleMeshShape18serializeSingleBvhEP12btSerializer__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape18serializeSingleBvhEP12btSerializer); -var _ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4___index__ = register_delegate(_ZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_); -var _ZNK22btBvhTriangleMeshShape28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape28calculateSerializeBufferSizeEv); -var _ZNK22btBvhTriangleMeshShape30serializeSingleTriangleInfoMapEP12btSerializer__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape30serializeSingleTriangleInfoMapEP12btSerializer); -var _ZNK22btBvhTriangleMeshShape7getNameEv__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape7getNameEv); -var _ZNK22btBvhTriangleMeshShape9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK22btBvhTriangleMeshShape9serializeEPvP12btSerializer); -var _ZNK23btDiscreteDynamicsWorld10getGravityEv__index__ = register_delegate(_ZNK23btDiscreteDynamicsWorld10getGravityEv); -var _ZNK23btDiscreteDynamicsWorld12getWorldTypeEv__index__ = register_delegate(_ZNK23btDiscreteDynamicsWorld12getWorldTypeEv); -var _ZNK23btDiscreteDynamicsWorld13getConstraintEi__index__ = register_delegate(_ZNK23btDiscreteDynamicsWorld13getConstraintEi); -var _ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv__index__ = register_delegate(_ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv); -var _ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3__index__ = register_delegate(_ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3); -var _ZNK23btStridingMeshInterface14getPremadeAabbEP9btVector3S1___index__ = register_delegate(_ZNK23btStridingMeshInterface14getPremadeAabbEP9btVector3S1_); -var _ZNK23btStridingMeshInterface14hasPremadeAabbEv__index__ = register_delegate(_ZNK23btStridingMeshInterface14hasPremadeAabbEv); -var _ZNK23btStridingMeshInterface14setPremadeAabbERK9btVector3S2___index__ = register_delegate(_ZNK23btStridingMeshInterface14setPremadeAabbERK9btVector3S2_); -var _ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4___index__ = register_delegate(_ZNK23btStridingMeshInterface27InternalProcessAllTrianglesEP31btInternalTriangleIndexCallbackRK9btVector3S4_); -var _ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv__index__ = register_delegate(_ZNK23btStridingMeshInterface28calculateSerializeBufferSizeEv); -var _ZNK23btStridingMeshInterface9serializeEPvP12btSerializer__index__ = register_delegate(_ZNK23btStridingMeshInterface9serializeEPvP12btSerializer); -var _ZNK26btTriangleIndexVertexArray14getNumSubPartsEv__index__ = register_delegate(_ZNK26btTriangleIndexVertexArray14getNumSubPartsEv); -var _ZNK26btTriangleIndexVertexArray14getPremadeAabbEP9btVector3S1___index__ = register_delegate(_ZNK26btTriangleIndexVertexArray14getPremadeAabbEP9btVector3S1_); -var _ZNK26btTriangleIndexVertexArray14hasPremadeAabbEv__index__ = register_delegate(_ZNK26btTriangleIndexVertexArray14hasPremadeAabbEv); -var _ZNK26btTriangleIndexVertexArray14setPremadeAabbERK9btVector3S2___index__ = register_delegate(_ZNK26btTriangleIndexVertexArray14setPremadeAabbERK9btVector3S2_); -var _ZNK26btTriangleIndexVertexArray24unLockReadOnlyVertexBaseEi__index__ = register_delegate(_ZNK26btTriangleIndexVertexArray24unLockReadOnlyVertexBaseEi); -var _ZNK26btTriangleIndexVertexArray32getLockedReadOnlyVertexIndexBaseEPPKhRiR14PHY_ScalarTypeS3_S2_S3_S3_S5_i__index__ = register_delegate(_ZNK26btTriangleIndexVertexArray32getLockedReadOnlyVertexIndexBaseEPPKhRiR14PHY_ScalarTypeS3_S2_S3_S3_S5_i); -var _ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv__index__ = register_delegate(_ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv); -var _ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv__index__ = register_delegate(_ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv); -var _ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__ = register_delegate(_ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy); -var _ZNK34btPolyhedralConvexAabbCachingShape7getAabbERK11btTransformR9btVector3S4___index__ = register_delegate(_ZNK34btPolyhedralConvexAabbCachingShape7getAabbERK11btTransformR9btVector3S4_); -var _ZNKSt8messagesIcE6do_getEiiiRKSs__index__ = register_delegate(_ZNKSt8messagesIcE6do_getEiiiRKSs); -var _ZNKSt8messagesIcE7do_openERKSsRKSt6locale__index__ = register_delegate(_ZNKSt8messagesIcE7do_openERKSsRKSt6locale); -var _ZNKSt8messagesIcE8do_closeEi__index__ = register_delegate(_ZNKSt8messagesIcE8do_closeEi); -var _ZNKSt9type_info10__do_catchEPKS_PPvj__index__ = register_delegate(_ZNKSt9type_info10__do_catchEPKS_PPvj); -var _ZNKSt9type_info15__is_function_pEv__index__ = register_delegate(_ZNKSt9type_info15__is_function_pEv); -var _ZNSt8messagesIcED0Ev__index__ = register_delegate(_ZNSt8messagesIcED0Ev); -var _ZNSt8messagesIcED1Ev__index__ = register_delegate(_ZNSt8messagesIcED1Ev); -var _ZNSt9type_infoD0Ev__index__ = register_delegate(_ZNSt9type_infoD0Ev); -var _ZNSt9type_infoD1Ev__index__ = register_delegate(_ZNSt9type_infoD1Ev); -var _ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii__index__ = register_delegate(_ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii); -var _ZThn4_N17DebugDrawcallbackD0Ev__index__ = register_delegate(_ZThn4_N17DebugDrawcallbackD0Ev); -var _ZThn4_N17DebugDrawcallbackD1Ev__index__ = register_delegate(_ZThn4_N17DebugDrawcallbackD1Ev); -var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallback28internalProcessTriangleIndexEPS2_ii__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallback28internalProcessTriangleIndexEPS2_ii); -var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD0Ev__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD0Ev); -var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD1Ev__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN20NodeTriangleCallbackD1Ev); -var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallback28internalProcessTriangleIndexEPS2_ii__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallback28internalProcessTriangleIndexEPS2_ii); -var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD0Ev__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD0Ev); -var _ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD1Ev__index__ = register_delegate(_ZZN14btOptimizedBvh5buildEP23btStridingMeshInterfacebRK9btVector3S4_EN29QuantizedNodeTriangleCallbackD1Ev); -var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb); -var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev); -var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D1Ev__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D1Ev); -var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii); -var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii); -var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v); -var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev); -var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1E_0v__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1E_0v); -var _ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1Ev__index__ = register_delegate(_ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD1Ev); -var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultERNS_17LocalConvexResultEb__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultERNS_17LocalConvexResultEb); -var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0Ev__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0Ev); -var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD1Ev__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD1Ev); -var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii); -var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii); -var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v); -var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev); -var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1E_0v__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1E_0v); -var _ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1Ev__index__ = register_delegate(_ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD1Ev); -var _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii); -var _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev); -var _ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev); -var _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii); -var _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev); -var _ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD1Ev__index__ = register_delegate(_ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD1Ev); -var _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii__index__ = register_delegate(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii); -var _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev__index__ = register_delegate(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev); -var _ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD1Ev__index__ = register_delegate(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD1Ev); -var _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair); -var _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev); -var _ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD1Ev__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD1Ev); -var _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair); -var _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev); -var _ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD1Ev__index__ = register_delegate(_ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD1Ev); -var _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii__index__ = register_delegate(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii); -var _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev__index__ = register_delegate(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev); -var _ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD1Ev__index__ = register_delegate(_ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD1Ev); -var _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallback28internalProcessTriangleIndexEPS2_ii__index__ = register_delegate(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallback28internalProcessTriangleIndexEPS2_ii); -var _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD0Ev__index__ = register_delegate(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD0Ev); -var _ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD1Ev__index__ = register_delegate(_ZZNK19btTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN16FilteredCallbackD1Ev); -var _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii__index__ = register_delegate(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii); -var _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev__index__ = register_delegate(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev); -var _ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev__index__ = register_delegate(_ZZNK22btBvhTriangleMeshShape19processAllTrianglesEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD1Ev); -var __cxa_pure_virtual__index__ = register_delegate(__cxa_pure_virtual); -var __fwrite__index__ = register_delegate(__fwrite); -var __mandreel_internal_SetResolution__index__ = register_delegate(__mandreel_internal_SetResolution); -var __resize__index__ = register_delegate(__resize); -var cmpfacets__index__ = register_delegate(cmpfacets); -var cmplocales__index__ = register_delegate(cmplocales); -var iMandreel_TextureAsync_GetPackOffset__index__ = register_delegate(iMandreel_TextureAsync_GetPackOffset); -var iMandreel_TextureAsync_IsCompressed__index__ = register_delegate(iMandreel_TextureAsync_IsCompressed); -var imandreel_restore_glcontext__index__ = register_delegate(imandreel_restore_glcontext); -var imandreel_viewport_resize__index__ = register_delegate(imandreel_viewport_resize); -var mandreel_flash_tcp_onError__index__ = register_delegate(mandreel_flash_tcp_onError); -var swrite__index__ = register_delegate(swrite); -var _objc_sections = {}; -var _objc_sections_size = {}; - -// End of mandreel.js file. diff --git a/build/pgo/js-input/octane/navier-stokes.html b/build/pgo/js-input/octane/navier-stokes.html deleted file mode 100644 index 27d7dd65f697..000000000000 --- a/build/pgo/js-input/octane/navier-stokes.html +++ /dev/null @@ -1,19 +0,0 @@ - - -Octane - - - - -

Octane

-
-
- - - - - - - - - diff --git a/build/pgo/js-input/octane/navier-stokes.js b/build/pgo/js-input/octane/navier-stokes.js deleted file mode 100644 index 6e21cb57ac1d..000000000000 --- a/build/pgo/js-input/octane/navier-stokes.js +++ /dev/null @@ -1,415 +0,0 @@ -/** - * Copyright 2013 the V8 project authors. All rights reserved. - * Copyright 2009 Oliver Hunt - * - * 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. - * - * Update 10/21/2013: fixed loop variables at line 119 - */ - -var NavierStokes = new BenchmarkSuite('NavierStokes', [1484000], - [new Benchmark('NavierStokes', - true, - false, - 180, - runNavierStokes, - setupNavierStokes, - tearDownNavierStokes, - null, - 16)]); - -var solver = null; -var nsFrameCounter = 0; - -function runNavierStokes() -{ - solver.update(); - nsFrameCounter++; - - if(nsFrameCounter==15) - checkResult(solver.getDens()); -} - -function checkResult(dens) { - - this.result = 0; - for (var i=7000;i<7100;i++) { - this.result+=~~((dens[i]*10)); - } - - if (this.result!=77) { - throw(new Error("checksum failed")); - } -} - -function setupNavierStokes() -{ - solver = new FluidField(null); - solver.setResolution(128, 128); - solver.setIterations(20); - solver.setDisplayFunction(function(){}); - solver.setUICallback(prepareFrame); - solver.reset(); -} - -function tearDownNavierStokes() -{ - solver = null; -} - -function addPoints(field) { - var n = 64; - for (var i = 1; i <= n; i++) { - field.setVelocity(i, i, n, n); - field.setDensity(i, i, 5); - field.setVelocity(i, n - i, -n, -n); - field.setDensity(i, n - i, 20); - field.setVelocity(128 - i, n + i, -n, -n); - field.setDensity(128 - i, n + i, 30); - } -} - -var framesTillAddingPoints = 0; -var framesBetweenAddingPoints = 5; - -function prepareFrame(field) -{ - if (framesTillAddingPoints == 0) { - addPoints(field); - framesTillAddingPoints = framesBetweenAddingPoints; - framesBetweenAddingPoints++; - } else { - framesTillAddingPoints--; - } -} - -// Code from Oliver Hunt (http://nerget.com/fluidSim/pressure.js) starts here. -function FluidField(canvas) { - function addFields(x, s, dt) - { - for (var i=0; i Wp5) - x = Wp5; - var i0 = x | 0; - var i1 = i0 + 1; - if (y < 0.5) - y = 0.5; - else if (y > Hp5) - y = Hp5; - var j0 = y | 0; - var j1 = j0 + 1; - var s1 = x - i0; - var s0 = 1 - s1; - var t1 = y - j0; - var t0 = 1 - t1; - var row1 = j0 * rowSize; - var row2 = j1 * rowSize; - d[pos] = s0 * (t0 * d0[i0 + row1] + t1 * d0[i0 + row2]) + s1 * (t0 * d0[i1 + row1] + t1 * d0[i1 + row2]); - } - } - set_bnd(b, d); - } - - function project(u, v, p, div) - { - var h = -0.5 / Math.sqrt(width * height); - for (var j = 1 ; j <= height; j++ ) { - var row = j * rowSize; - var previousRow = (j - 1) * rowSize; - var prevValue = row - 1; - var currentRow = row; - var nextValue = row + 1; - var nextRow = (j + 1) * rowSize; - for (var i = 1; i <= width; i++ ) { - div[++currentRow] = h * (u[++nextValue] - u[++prevValue] + v[++nextRow] - v[++previousRow]); - p[currentRow] = 0; - } - } - set_bnd(0, div); - set_bnd(0, p); - - lin_solve(0, p, div, 1, 4 ); - var wScale = 0.5 * width; - var hScale = 0.5 * height; - for (var j = 1; j<= height; j++ ) { - var prevPos = j * rowSize - 1; - var currentPos = j * rowSize; - var nextPos = j * rowSize + 1; - var prevRow = (j - 1) * rowSize; - var currentRow = j * rowSize; - var nextRow = (j + 1) * rowSize; - - for (var i = 1; i<= width; i++) { - u[++currentPos] -= wScale * (p[++nextPos] - p[++prevPos]); - v[currentPos] -= hScale * (p[++nextRow] - p[++prevRow]); - } - } - set_bnd(1, u); - set_bnd(2, v); - } - - function dens_step(x, x0, u, v, dt) - { - addFields(x, x0, dt); - diffuse(0, x0, x, dt ); - advect(0, x, x0, u, v, dt ); - } - - function vel_step(u, v, u0, v0, dt) - { - addFields(u, u0, dt ); - addFields(v, v0, dt ); - var temp = u0; u0 = u; u = temp; - var temp = v0; v0 = v; v = temp; - diffuse2(u,u0,v,v0, dt); - project(u, v, u0, v0); - var temp = u0; u0 = u; u = temp; - var temp = v0; v0 = v; v = temp; - advect(1, u, u0, u0, v0, dt); - advect(2, v, v0, u0, v0, dt); - project(u, v, u0, v0 ); - } - var uiCallback = function(d,u,v) {}; - - function Field(dens, u, v) { - // Just exposing the fields here rather than using accessors is a measurable win during display (maybe 5%) - // but makes the code ugly. - this.setDensity = function(x, y, d) { - dens[(x + 1) + (y + 1) * rowSize] = d; - } - this.getDensity = function(x, y) { - return dens[(x + 1) + (y + 1) * rowSize]; - } - this.setVelocity = function(x, y, xv, yv) { - u[(x + 1) + (y + 1) * rowSize] = xv; - v[(x + 1) + (y + 1) * rowSize] = yv; - } - this.getXVelocity = function(x, y) { - return u[(x + 1) + (y + 1) * rowSize]; - } - this.getYVelocity = function(x, y) { - return v[(x + 1) + (y + 1) * rowSize]; - } - this.width = function() { return width; } - this.height = function() { return height; } - } - function queryUI(d, u, v) - { - for (var i = 0; i < size; i++) - u[i] = v[i] = d[i] = 0.0; - uiCallback(new Field(d, u, v)); - } - - this.update = function () { - queryUI(dens_prev, u_prev, v_prev); - vel_step(u, v, u_prev, v_prev, dt); - dens_step(dens, dens_prev, u, v, dt); - displayFunc(new Field(dens, u, v)); - } - this.setDisplayFunction = function(func) { - displayFunc = func; - } - - this.iterations = function() { return iterations; } - this.setIterations = function(iters) { - if (iters > 0 && iters <= 100) - iterations = iters; - } - this.setUICallback = function(callback) { - uiCallback = callback; - } - var iterations = 10; - var visc = 0.5; - var dt = 0.1; - var dens; - var dens_prev; - var u; - var u_prev; - var v; - var v_prev; - var width; - var height; - var rowSize; - var size; - var displayFunc; - function reset() - { - rowSize = width + 2; - size = (width+2)*(height+2); - dens = new Array(size); - dens_prev = new Array(size); - u = new Array(size); - u_prev = new Array(size); - v = new Array(size); - v_prev = new Array(size); - for (var i = 0; i < size; i++) - dens_prev[i] = u_prev[i] = v_prev[i] = dens[i] = u[i] = v[i] = 0; - } - this.reset = reset; - this.getDens = function() - { - return dens; - } - this.setResolution = function (hRes, wRes) - { - var res = wRes * hRes; - if (res > 0 && res < 1000000 && (wRes != width || hRes != height)) { - width = wRes; - height = hRes; - reset(); - return true; - } - return false; - } - this.setResolution(64, 64); -} diff --git a/build/pgo/js-input/octane/pdfjs.html b/build/pgo/js-input/octane/pdfjs.html deleted file mode 100644 index b41fd37c8066..000000000000 --- a/build/pgo/js-input/octane/pdfjs.html +++ /dev/null @@ -1,19 +0,0 @@ - - -Octane - - - - -

Octane

-
-
- - - - - - - - - diff --git a/build/pgo/js-input/octane/pdfjs.js b/build/pgo/js-input/octane/pdfjs.js deleted file mode 100644 index 79537541df85..000000000000 --- a/build/pgo/js-input/octane/pdfjs.js +++ /dev/null @@ -1,33053 +0,0 @@ -// Portions copyright 2012 Google, Inc. -// Portions copyright 2011 Mozilla Foundation. All rights reserved. - -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -// The PDF-JS code in this file has been written by Mozilla. -// It is available in its latest version from: -// -// https://github.com/mozilla/pdf.js - - -//////// Benchmark set-up. (c) by Google. //////// - -var pdf_file = "test.pdf"; -var canvas_logs = []; - -var PdfJS = new BenchmarkSuite("PdfJS", [10124921], [ - new Benchmark("PdfJS", false, false, 24, - runPdfJS, setupPdfJS, tearDownPdfJS, null, 4) -]); - -function setupPdfJS() { - // Check for Typed Arrays support, throw error if not. - if (!(typeof Uint8Array != "undefined" && - typeof Float64Array != "undefined" && - typeof (new Uint8Array(0)).subarray != "undefined")) { - throw "TypedArrayUnsupported"; - } - - PdfJS_window.__resources__[pdf_file] = buffer(PdfJS_window.atob(getPDF())); -} - -function runPdfJS() { - PDFJS.getDocument(pdf_file).then(function(pdf) { - var canvas = PdfJS_window.document.getElementById('canvas'); - var context = canvas.getContext('2d'); - var renderContext = {canvasContext: context}; - canvas_logs.push(context.__log__); - - // Cycle through all pages. - function renderPages(i, j) { - if (i > j) return; - context.clearRect(0, 0, canvas.width, canvas.height); - pdf.getPage(i).then(function(page) { - renderContext.viewport = page.getViewport(1); - canvas.height = renderContext.viewport.height; - canvas.width = renderContext.viewport.width; - page.render(renderContext).then(renderPages.bind(null, i + 1, j)); - }); - } - renderPages(1, pdf.numPages); - }); - - // Wait for everything to complete. - PdfJS_window.flushTimeouts(); -} - -function tearDownPdfJS() { - // Should produce 36788 939524096 for all runs. - for (var i = 0; i < canvas_logs.length; ++i) { - var log_length = canvas_logs[i].length; - var log_hash = hash(canvas_logs[i].join(" ")); - var expected_length = 36788; - var expected_hash = 939524096; - if (log_length !== expected_length || log_hash !== expected_hash) { - var message = "PdfJS produced incorrect output: " + - "expected " + expected_length + " " + expected_hash + ", " + - "got " + log_length + " " + log_hash; - console.log(message + "\n"); - throw message; - } - } - // Allow GC of global state. - delete this.PDFJS; - delete this.PdfJS_window; -} - -function buffer(s) { - var b = new ArrayBuffer(s.length); - var a = new Uint8Array(b); - for (var i = 0; i < s.length; ++i) a[i] = s.charCodeAt(i); - return b; -} - -function hash(s) { - var up = Math.floor((s.length + 3) / 4); - var h = 0; - for (var i = 0; 4*i - 3 < s.length; i += 4) { - for (var j = 0; j < 4 && i + j < s.length; ++j) - h = (h + s.charCodeAt(i + j) << (8*j)) | 0; - } - return h; -} - - -///////// Mocks of relevant browser functionality. (c) by Google. //////// - -// Every acces to window will be redirected to PdfJS_window. -var PdfJS_window = Object.create(this); - -function PdfJS_windowInstall(name, x) { - Object.defineProperty(PdfJS_window, name, {value: x}); -} - -PdfJS_windowInstall("setTimeout", function(cmd, delay) { - PdfJS_window.__timeouts__.push(cmd); -}); - -PdfJS_windowInstall("flushTimeouts", function() { - while (PdfJS_window.__timeouts__.length != 0) { - var next = PdfJS_window.__timeouts__.pop(); - if (typeof next === "function") - next({data: "{}"}); - else - eval(next); - } -}); - -PdfJS_windowInstall("window", PdfJS_window); - -PdfJS_window.__timeouts__ = []; -PdfJS_window.__resources__ = {}; - - -// Base64 encoding/decoding is based on code by Grant Galitz. -PdfJS_window.__to64__ = [ - "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", - "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", - "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", - "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", - "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "/", "=" -]; - -PdfJS_windowInstall("btoa", function(data) { - var result = ""; - if (data.length > 0) { - var i = 0; - while (i < data.length) { - var b1 = data.charCodeAt(i++) & 0xff; - var b2 = data.charCodeAt(i++ < data.length ? i-1 : 0) & 0xff; - var b3 = data.charCodeAt(i++ < data.length ? i-1 : 0) & 0xff; - result += PdfJS_window.__to64__[b1 >> 2]; - if (i === data.length + 2) { - result += PdfJS_window.__to64__[(b1 & 0x3) << 4] + "=="; - } else { - result += PdfJS_window.__to64__[((b1 & 0x3) << 4) | (b2 >> 4)]; - if (i === data.length + 1) { - result += PdfJS_window.__to64__[(b2 & 0xF) << 2] + "="; - } else { - result += PdfJS_window.__to64__[((b2 & 0xF) << 2) | (b3 >> 6)] + - PdfJS_window.__to64__[b3 & 0x3F]; - } - } - } - } - return result; -}); - -PdfJS_window.__from64__ = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - -PdfJS_windowInstall("atob", function(data) { - var result = ""; - var i = 0; - while (i < data.length) { - var x1 = PdfJS_window.__from64__.indexOf(data.charAt(i++)); - var x2 = PdfJS_window.__from64__.indexOf(data.charAt(i++)); - var x3 = PdfJS_window.__from64__.indexOf(data.charAt(i++)); - var x4 = PdfJS_window.__from64__.indexOf(data.charAt(i++)); - result += String.fromCharCode((x1 << 2) | (x2 >> 4)); - if (x3 != 0x40) { - result += String.fromCharCode(((x2 & 0x0F) << 4) | (x3 >> 2)); - if (x4 != 0x40) { - result += String.fromCharCode(((x3 & 0x03) << 6) | x4); - } - } - } - return result; -}); - - -PdfJS_windowInstall("XMLHttpRequest", function() { - this.open = function(type, url, some_bool) { - this.url = url; - } - this.overrideMimeType = function() {} - this.send = function() { - this.response = PdfJS_window.__resources__[this.url]; - this.readyState = 4; - this.status = 0; - this.onreadystatechange(); - } -}); - -PdfJS_windowInstall("console", this.console ? this.console : { - log: function(s) { - // To verify that the test produces the right results, - // uncomment this code. - /* - var re = new RegExp("%d", "g"); - var args = arguments; - var i = 0; - print(s.replace(re, function() { return args[++i] })); - */ - } -}); - -PdfJS_windowInstall("location", { - protocol: "" -}); - -PdfJS_windowInstall("Event", function() { - this.initEvent = function(name) { - this.name = name; - } -}); - -PdfJS_windowInstall("Element", function(type) { - this.__listeners__ = {}; - this.element_type = type; - this.insertBefore = function() {}; - this.addEventListener = function(name, listener) { - this.__listeners__[name] = listener; - }; - this.removeEventListener = function(name) { - delete this.__listeners__[name]; - }; - this.dispatchEvent = function(event) { - this.__listeners__[event.name](event) - }; - this.getElementsByTagName = function(name) { - if (name === "head") { - return [{appendChild: function() {}}] - } - }; - this.appendChild = function() {}; - this.setAttribute = function() {}; - this.sheet = { - cssRules: [], - insertRule: function() {} - }; -}); - -PdfJS_windowInstall("Context", function() { - this.__log__ = []; - this.save = function() { - this.__log__.push("save","\n"); - } - this.restore = function() { - this.__log__.push("restore","\n"); - } - this.transform = function(a,b,c,d,e,f) { - this.__log__.push("transform",a,b,c,d,e,f,"\n"); - } - this.translate = function(x,y) { - this.__log__.push("translate",x,y,"\n"); - } - this.scale = function(x,y) { - this.__log__.push("scale",x,y,"\n"); - } - this.rect = function(x,y,w,h) { - this.__log__.push("rect",x,y,w,h,"\n"); - } - this.clip = function() { - this.__log__.push("clip","\n"); - } - this.fill = function() { - this.__log__.push("fill","\n"); - } - this.stroke = function() { - this.__log__.push("stroke","\n"); - } - this.beginPath = function() { - this.__log__.push("beginPath","\n"); - } - this.closePath = function() { - this.__log__.push("closePath","\n"); - } - this.moveTo = function(x,y) { - this.__log__.push("moveTo",x,y,"\n"); - } - this.lineTo = function(x,y) { - this.__log__.push("lineTo",x,y,"\n"); - } - this.fillRect = function(x,y,w,h) { - this.__log__.push("fillRect",x,y,w,h,"\n"); - } - this.fillText = function(s,x,y,w) { - this.__log__.push("fillText",s,x,y,"\n"); - } - this.strokeText = function(s,x,y,w) { - this.__log__.push("strokeText",s,x,y,"\n"); - } - this.getImageData = function(x,y,w,h) { - this.__log__.push("getImageData",x,y,w,h,"\n"); - return {data: []}; - } - this.putImageData = function(data,x,y) { - this.__log__.push("putImageData","{...}",x,y,"\n"); - } - this.drawImage = function(image,x,y) { - this.__log__.push("drawImage","",x,y,"\n"); - } - this.getParameter = function(name) { - this.__log__.push("getParameter",name,"\n"); - return null; - } - this.enable = function() { - this.__log__.push("enable","\n"); - } - this.disable = function() { - this.__log__.push("disable","\n"); - } - this.depthFunc = function(param) { - this.__log__.push("depthFunc",param,"\n"); - } - this.clearColor = function(r,g,b,a) { - this.__log__.push("clearColor",r,g,b,a,"\n"); - } - this.clear = function(m) { - this.__log__.push("clear",m,"\n"); - } - this.clearRect = function(x,y,w,h) { - this.__log__.push("createRect",x,y,w,h,"\n"); - } -}); - -PdfJS_windowInstall("Canvas", function() { - this.getContext = function() { - return new PdfJS_window.Context(); - } - this.width = 100; - this.height = 100; - this.style = { visibility: "visibile" }; -}); - -PdfJS_windowInstall("document", { - body : new PdfJS_window.Element("body"), - documentElement : new PdfJS_window.Element("document"), - createElement : function(element_type) { - var element; - if (element_type === "canvas") { - element = new PdfJS_window.Canvas(); - } else { - element = new PdfJS_window.Element(element_type); - } - element.parentNode = new PdfJS_window.Element("dummy_parent"); - return element; - }, - getElementById : function(name) { - if (name === "canvas") { - return new PdfJS_window.Canvas(); - } else { - return undefined; - } - }, - getElementsByTagName : function(element) { - if (element === "script") { - return new Array(new this.createElement(element)); - } - }, - createEvent : function() { return new PdfJS_window.Event() } -}); - -PdfJS_window.window.addEventListener = function(name, listener) { - PdfJS_window.setTimeout(listener) -} - -PdfJS_windowInstall("Worker", undefined); - - -///////// The PDF we want to render, encoded in base64. //////// - -function getPDF() { - return "JVBERi0xLjQKJdDUxdgKMyAwIG9iaiA8PAovTGVuZ3RoIDMxMTAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjalVlLk+O2Eb7Pr1B8MadqRfP9uGX9iu2yEyc7VU7V7h4wFCTRQ5EKQM7u5pK/nq8flMhdeVO5iECj0Wh0N7o/QF8/3H31fVxs4jJM4jzbPOw3cZGEZVRtyjgP4zrfPOw2r4PfjvdJEXy436ZREnx/X9bB1DdjO/SmE9qvbjg4czq1/UEIv5hxtM7fv3346avvk3gTx2Gd5wmtkBR1WOX1pgiTrBT5b6IoFda4XLJukzwL87jebNMizDGHuX8ajj1WgUY/TIej9S+oUwY/9n5sx4nUsvdx0At1Pzjh/daM5h6EZ/qxo+39032eB+b8glbeZBm2XWy2cRrWs1rfHE13ol2wgIf7Kg7sU9/qRFXhfhsH/7nP6igYDhiB8KEzIjOFKdNcZVYiM4uTupCpf8G0qg6G0T7eb2meO8i8bVqHRVqvJ7767btvv/trKFPd76fjnxsfNrSeahl6KzZMk00d1kVSkAlzGLuAqKwKy0pFvXz0ozPNKOzVgnsbF3GYRwk1wlTt/RIGSPIi8MN+pPXe3SdVYJwVKuleBbYZTpb5yuA0zGOm30njNJCZHNxihQfs586+f0EbT4J2FLb2cxKcTm1PZ15ycKPpSRWdPA6qJi01ugmLNdyklrNi2TiDRTN8Ochkf7x6ncu+bNfBxlmaBL/dVyl1tzDW1IyTszvhEztUSzvUqjtGrfEfpMUKkVzXjpaCNEovo8VldGcfp4OOYj9xsJPxsxtI/nO7syrZyKcZus7y6RPGYc9bi3RThWyKLI7pu6mj6WkBdY5mpFYRNKYXkvpOqM5uJ097ZOZhJu6mRhn2UG4iO0j3vDrzBSkmpvcwYJ7FwTcDu+eZzSqemlMGpnemP0zmYP1Ke3XJuTO0alZEkNo39jxONC/L66BrT+3oZYxMQLTxqMziEvr5IAQo+djZkxc+jgejky6bp87VXMa1sAK2UCUpch1iYJHrWIHPKj75I9gSMvfgSThO60VlkB9NQ+o9YYEyiYIfSaN+ntEq09lIiFsnfYlMEeaPgwSfziGnEv0akoMM7a0hZ3kZRpQIdbkb9D+7m5bipKqgjxvbhmyDQM2Q3o8tEq/bDm5HKhLLLNdLl88tNTrz7w/Sss/3dKC7yRCfCpJQxGgjwTK69nEardAODlvoeHotEQkie6qEp7a3NCb3jeJ/eI4CEZ+XrFQU2PeGsg4XjDq+WJWGTqZvz9ggL11SlPlRZ8lWQBud1bnJHPwy4O2zipIcxyGOmbyjCbm5bWaS6Q4DNDye/Itb6vNaWVxQkkPY2jm/EUmCPC5JfBycj2arEYy6xgxHOyF24SjpvonyiGMdbUOq0TRdXQTtSdlBOy/h4jdRnDUthwYm/SirIwW2B9vzeQRVcgTr2N9KPAdzslucX3YC54akLmd7eSgVc35Ng1cty6TRi0/VfWXwQQYkqZayd2o8saF1VFJoGfipaaz3+6lbLUaZiRPrKupvBs18BrYpFOOUnqYZcu9oOo4/UG+VHaJzXNL3qLMQtJ2Q5DS6DtlECnO2Qf1Js4LBDZQAQCjmohzDRTEOJKyeUv0isSgGk2T6Tyo1ZidxWAFa8ewHzh1pVq9yB/VnOh80+gKYnc6jdFh5fHf2hKMLUMDxn0fYXEx5hJu8MTC9idNMN4feZXNfqCgpL2gtUwxrtCgUt5IMK1gsrJ1R/FPEnhUXzRZ/IRrJicwomfhBWrIRYCHbnYWy1uJargTPgWDfn7uhHWUe52cWuZM01VMUjhoUlwXkFN6IesSeOv1Rqw+Fwsk8SXWk+NF4aTprnAy/E5Nx8HCx4OgjBfJAd7yKSg6jzS0I80mdirN1fc7inA1NA2Qz6iMpdXKWBQkAFjdm4qIVM9qgzyXR0UwkaS+JkYbmmu4seY0oXGTAdykG4R+jrgcOq4KMxGWmyBZJFR14xHZ7bXv5EpICcpeOUaKRz7ymch5brrNH6TrbcHZuJVHrzHFWQRf+Uultf57G9SIUH7fytTtMiywdFRcIR+2d7XRBirksyjWHR8VyRaIP08hLUtt4YRHIAAJq+NSNyJoFAM0DZ8czVRS2+lVorpbMFvlOJd3UfWcp3feMaoHeaGpCRrGO4BKRyJ38xQpOmnsC0+pcBu/10tQrOZPrhSIQucj/jxVRxeg80agC/+K6qY9Kp57ASaORpqWU5uhbaeVIa43wYRyp4BGh06qtE5RxhWRY0HxrSa/QTxjPjnBdKxdKAr2428E/CLOjTIkD/79lnhgkyEVOmLtWqtwtpwFxtb1xlF9Kcji0xo/ii3JlI+CNYgYvYmz6CshMS4QgIZVFrSgJZ9IZAZ2TWVnMaUE6C/cR8yXRob1Wy/5LMJ4e/4+28LeJVgN+6IfR6IlFb49rzcDXSy+EB85prrfuS6VczU+9X1qH3RmCOQ+/EK4Q8mudV+Vv+WEgCh4pZuk8A+UAPU/dTjivt5+YLjpmZ3BVkN47gKRbuvdcBVJyPb8rZEnw1IvWSKWsGUYpimloXYLSK86gWClTRmi6C2Eg03tpKgUlGbXZuKel5DT4h/WoIpcMB8qrjy+lN7T/edyFbKg/KiMPArOSwGtcCBgkiqxl6NnACsr0MiA3dGpcK+elcBGdz3S9tkZyhdAnxYjJfJWmGZzkE2B0P6FiU1TublSS+eRD2QzTVo8MWQ1rOfkC8nth4dwKigYbzEW+qJPk0wp61VDnzDcUSbIgUDCIUN8e+kUZwJhHaF/wOx3GHCUchfeGV8RqrqXo42OLAjowNE6jOji08/2Zu0Y+AhG6ySp/r7nMybA6qz9Yxto4K5xEWZ7FgeLagf3q7FWcRtVi3yxsUCzUqg79zW34dme3lCFS2zCYwrICb0hTflQBdHsphEWxTgWIyAS5DoJ0NNenA6Hw0QPLvIRQtTRREwC0F5YZvJLA4XSW+yQ4BOSli4pKKl0y9u0yaen23sObNDev2AP0YIAv/PY7LeWE5IfJsdvAxQeVHhmmA/uUoASnYtAUtYIL+FCKh3QFj9BsvVeDWQTBCu9tM6nJQG4dUJddHjihb4Xb893qjxJYHq+9JSSxfZ4sokcGVK04mC/wVvhENXlQoS8ANQzr5XKf5rlA3qvkeJFxiX0OYth2p5LGi0StLbR8e+Iwriu55dzYFWzR2iu0y2ZTZuUC9suAZNByZqjgIRi7F6IM0gGwvnHto4D3JTcsls/vL0tx8yHhGzUHe1XRDXd+hFRtribytzCMGAon8GqoqPzEUBhnQ2FIrikfpEOG4hONzNdbYbxI3DvLMJ3azur7GnVW6WdeXa0fsSFbt+SE+5VNApoG2kZVFSzkvLnlpS09yaXzkxVaLR2NrM6XibbQ+zc15MK5t26+aSjmLbgu9v5s5pEv6L0OGVauwcRA+93x20aR8K1Q6fORk4HPvwss8iBkCxClexs/nitYoIEFCptfC+ZklF0MmF4qyOVBtLw+iPKoQljr6L1NwNPddw93/7qLoVm0iTdlsonzIoyrbNOc7l6/jTY70KF3mNbV5h1znTZxFYV5VKLdbV7d/f3ua/qXJyk3eViXJT8eVFmYlDEgQB2iLn38H0xSbaqwLgr+PygLAZs22zSsonr11ABwuXpqQH+nWRLNvSPbUyuuq4wfzcr5URBZuXUNP7Zp3+gsI5/F/y7onexpUKGDLnSiuK85RCv6XwptwCF+d67K4FXXHo5syU45nH1u/bzYM7O76yGk/zryqsI3gu91l+asezP87k/Hmes+5GNHtbTkuY5JdSRMjDBAef3DdKijtx/xEbWq31K0AtxotFZlMN8S5cpWycMXfR+Nn5efh+S6V9G7SHtoBaygdzUaMbPR5NEpXngzWm+yd8N+f8PpSRlmdQ1uqexc1+ioFmUgtq3FthlArt217Edqs4Oo8bMBCket/qd0Zf9o0CsKfR+dvEpk8t8PfZtu8Nat2WSrWRycp8eu9cd5nYW5OIUUxXUJhu7c4iTIjVmsAmRUVXG87nNlE+vcwKGXUlZHmQXg3TFUyINfO2vknYYKcjNJey4PIPqVeYgydLvt3vgj/Su5U25OrxpeW2/HUR8q6WbY71Yiy2DP/1lQHRlFoj60LZedH7aFrO+XFV2whLJ4qV3s9AdD/1fW9B/Xn8L5hZEYojrmKEiSsI5jmKkOq+szpWal/wISIDWMCmVuZHN0cmVhbQplbmRvYmoKMiAwIG9iaiA8PAovVHlwZSAvUGFnZQovQ29udGVudHMgMyAwIFIKL1Jlc291cmNlcyAxIDAgUgovTWVkaWFCb3ggWzAgMCA1OTUuMjc2IDg0MS44OV0KL1BhcmVudCAxMyAwIFIKPj4gZW5kb2JqCjEgMCBvYmogPDwKL0ZvbnQgPDwgL0YxNiA0IDAgUiAvRjIxIDUgMCBSIC9GMTcgNiAwIFIgL0YzMiA3IDAgUiAvRjggOCAwIFIgL0YzNCA5IDAgUiAvRjI3IDEwIDAgUiAvRjI4IDExIDAgUiAvRjMxIDEyIDAgUiA+PgovUHJvY1NldCBbIC9QREYgL1RleHQgXQo+PiBlbmRvYmoKMTQgMCBvYmoKWzUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNV0KZW5kb2JqCjE1IDAgb2JqClsyODUuNSA1MTMuOSA4NTYuNSA1MTMuOSA4NTYuNSA3OTkuNCAyODUuNSAzOTkuNyAzOTkuNyA1MTMuOSA3OTkuNCAyODUuNSAzNDIuNiAyODUuNSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSAyODUuNSAyODUuNSAyODUuNSA3OTkuNCA0ODUuMyA0ODUuMyA3OTkuNCA3NzAuNyA3MjcuOSA3NDIuMyA3ODUgNjk5LjQgNjcwLjggODA2LjUgNzcwLjcgMzcxIDUyOC4xIDc5OS4yIDY0Mi4zIDk0MiA3NzAuNyA3OTkuNCA2OTkuNCA3OTkuNCA3NTYuNSA1NzEgNzQyLjMgNzcwLjcgNzcwLjcgMTA1Ni4yIDc3MC43IDc3MC43IDYyOC4xIDI4NS41IDUxMy45IDI4NS41IDUxMy45IDI4NS41IDI4NS41IDUxMy45IDU3MSA0NTYuOCA1NzEgNDU3LjIgMzE0IDUxMy45IDU3MSAyODUuNSAzMTQgNTQyLjQgMjg1LjUgODU2LjUgNTcxIDUxMy45IDU3MSA1NDIuNCA0MDIgNDA1LjQgMzk5LjcgNTcxIDU0Mi40IDc0Mi4zIDU0Mi40IDU0Mi40XQplbmRvYmoKMTYgMCBvYmoKWzYzOC45XQplbmRvYmoKMTcgMCBvYmoKWzU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDMxMi41IDMxMi41IDM0Mi42IDg3NSA1MzEuMiA1MzEuMiA4NzUgODQ5LjUgNzk5LjggODEyLjUgODYyLjMgNzM4LjQgNzA3LjIgODg0LjMgODc5LjYgNDE5IDU4MSA4ODAuOCA2NzUuOSAxMDY3LjEgODc5LjYgODQ0LjkgNzY4LjUgODQ0LjkgODM5LjEgNjI1IDc4Mi40IDg2NC42IDg0OS41IDExNjIgODQ5LjUgODQ5LjUgNjg3LjUgMzEyLjUgNTgxIDMxMi41IDU2Mi41IDMxMi41IDMxMi41IDU0Ni45IDYyNSA1MDAgNjI1IDUxMy4zIDM0My43IDU2Mi41IDYyNSAzMTIuNSAzNDMuNyA1OTMuNyAzMTIuNSA5MzcuNSA2MjUgNTYyLjUgNjI1IDU5My43IDQ1OS41IDQ0My44IDQzNy41IDYyNV0KZW5kb2JqCjE4IDAgb2JqCls1ODMuMyA1NTUuNiA1NTUuNiA4MzMuMyA4MzMuMyAyNzcuOCAzMDUuNiA1MDAgNTAwIDUwMCA1MDAgNTAwIDc1MCA0NDQuNCA1MDAgNzIyLjIgNzc3LjggNTAwIDkwMi44IDEwMTMuOSA3NzcuOCAyNzcuOCAyNzcuOCA1MDAgODMzLjMgNTAwIDgzMy4zIDc3Ny44IDI3Ny44IDM4OC45IDM4OC45IDUwMCA3NzcuOCAyNzcuOCAzMzMuMyAyNzcuOCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDI3Ny44IDI3Ny44IDI3Ny44IDc3Ny44IDQ3Mi4yIDQ3Mi4yIDc3Ny44IDc1MCA3MDguMyA3MjIuMiA3NjMuOSA2ODAuNiA2NTIuOCA3ODQuNyA3NTAgMzYxLjEgNTEzLjkgNzc3LjggNjI1IDkxNi43IDc1MCA3NzcuOCA2ODAuNiA3NzcuOCA3MzYuMSA1NTUuNiA3MjIuMiA3NTAgNzUwIDEwMjcuOCA3NTAgNzUwIDYxMS4xIDI3Ny44IDUwMCAyNzcuOCA1MDAgMjc3LjggMjc3LjggNTAwIDU1NS42IDQ0NC40IDU1NS42IDQ0NC40IDMwNS42IDUwMCA1NTUuNiAyNzcuOCAzMDUuNiA1MjcuOCAyNzcuOCA4MzMuMyA1NTUuNiA1MDAgNTU1LjYgNTI3LjggMzkxLjcgMzk0LjQgMzg4LjkgNTU1LjYgNTI3LjggNzIyLjIgNTI3LjggNTI3LjggNDQ0LjRdCmVuZG9iagoxOSAwIG9iagpbODY5LjQgODE4LjEgODMwLjYgODgxLjkgNzU1LjYgNzIzLjYgOTA0LjIgOTAwIDQzNi4xIDU5NC40IDkwMS40IDY5MS43IDEwOTEuNyA5MDAgODYzLjkgNzg2LjEgODYzLjkgODYyLjUgNjM4LjkgODAwIDg4NC43IDg2OS40IDExODguOSA4NjkuNCA4NjkuNCA3MDIuOCAzMTkuNCA2MDIuOCAzMTkuNCA1NzUgMzE5LjQgMzE5LjQgNTU5IDYzOC45IDUxMS4xIDYzOC45IDUyNy4xIDM1MS40IDU3NSA2MzguOSAzMTkuNCAzNTEuNCA2MDYuOSAzMTkuNCA5NTguMyA2MzguOSA1NzUgNjM4LjkgNjA2LjkgNDczLjYgNDUzLjYgNDQ3LjJdCmVuZG9iagoyMCAwIG9iagpbMjcyIDMyNi40IDI3MiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiA0ODkuNiAyNzIgMjcyIDI3MiA3NjEuNiA0NjIuNCA0NjIuNCA3NjEuNiA3MzQgNjkzLjQgNzA3LjIgNzQ3LjggNjY2LjIgNjM5IDc2OC4zIDczNCAzNTMuMiA1MDMgNzYxLjIgNjExLjggODk3LjIgNzM0IDc2MS42IDY2Ni4yIDc2MS42IDcyMC42IDU0NCA3MDcuMiA3MzQgNzM0IDEwMDYgNzM0IDczNCA1OTguNCAyNzIgNDg5LjYgMjcyIDQ4OS42IDI3MiAyNzIgNDg5LjYgNTQ0IDQzNS4yIDU0NCA0MzUuMiAyOTkuMiA0ODkuNiA1NDQgMjcyIDI5OS4yIDUxNi44IDI3MiA4MTYgNTQ0IDQ4OS42IDU0NCA1MTYuOCAzODAuOCAzODYuMiAzODAuOCA1NDQgNTE2LjggNzA3LjIgNTE2LjggNTE2LjggNDM1LjIgNDg5LjYgOTc5LjIgNDg5LjYgNDg5LjYgNDg5LjZdCmVuZG9iagoyMSAwIG9iagpbNTAwXQplbmRvYmoKMjIgMCBvYmoKWzYwMi4xIDcyNi4zIDY5My4zIDMyNy42IDQ3MS41IDcxOS40IDU3NiA4NTAgNjkzLjMgNzE5LjggNjI4LjIgNzE5LjggNjgwLjUgNTEwLjkgNjY3LjYgNjkzLjMgNjkzLjMgOTU0LjUgNjkzLjMgNjkzLjMgNTYzLjEgMjQ5LjYgNDU4LjYgMjQ5LjYgNDU4LjYgMjQ5LjYgMjQ5LjYgNDU4LjYgNTEwLjkgNDA2LjQgNTEwLjkgNDA2LjQgMjc1LjggNDU4LjYgNTEwLjkgMjQ5LjYgMjc1LjggNDg0LjcgMjQ5LjYgNzcyLjEgNTEwLjkgNDU4LjYgNTEwLjkgNDg0LjcgMzU0LjEgMzU5LjQgMzU0LjEgNTEwLjkgNDg0LjcgNjY3LjYgNDg0LjcgNDg0LjddCmVuZG9iagoyMyAwIG9iaiA8PAovTGVuZ3RoMSAxNDc4Ci9MZW5ndGgyIDg1MTgKL0xlbmd0aDMgMAovTGVuZ3RoIDk1MDQgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjajbYFUBtaEzaMuxa3ErRAcXd3Kw7FAwQIFgjBvbh78aItLsWtWPHiFHfXAm1x60d7733t/2e+bzKTnN19dvc8K2fCQKOhzSZlBbEAyUOcYGxc7JzCABk1aQMuTgAnJw87Jyc3BgODDhjmAPpHj8GgB4K6giFOwv+BkIGCgLAnnSwQ9gRUgzgBlN0cAFw8AC5+YS4BYU5OADcnp9A/QAhUGCALdAdbAdTYAcoQJ5ArBoMMxNkLCraxhT3l+ecIYLJkBnAJCQmw/nEHSDmCoGBLoBNADQizBTk+ZbQEOgC0IZZgEMzrv0IwidrCYM7CHBweHh7sQEdXdgjURpyZFeABhtkCtECuIKg7yArwmzJAHegI+psaOwYDQMcW7PqXQRtiDfMAQkGAJ4UD2BLk5Prk4uZkBYICnrIDtJVUAa+cQU5/gVX/ArAC/i4OgIud61/h/vb+HQjs9McZaGkJcXQGOnmBnWwA1mAHEOCVvCo7zBPGCgA6Wf0GAh1cIU/+QHcg2AFo8QT4c3UgQF5KEwB8Yvg3P1dLKNgZ5sruCnb4zZHjd5inMss5WclAHB1BTjBXjN/3kwVDQZZPdffi+Lu59k4QDyeffyRrsJOV9W8aVm7OHLpOYBc3kJLs35gnFca/dTYgGICPk5NTgF8QAHIBgDwtbTl+J9Dxcgb9MXL9Vj9x8PNxhjgDrJ9ogPzA1qCnHwwfV6A7CACDuoH8fP7T8N8SBhcXwApsCQNYgGzAThj/jv6kBln/JT/1Hwr2BBhxPo0fF4Dz9+dfJ5OnCbOCODl4/Rv+p8UcmoYqWrJqL/+m/C+jtDTEE+DDxscPYOPm4wRwcfHzAgSeDn7/HedfFfiH/R+tBhD89+3+I6KSkzUEIPQXiafq/UPE/e/JYPp7bZgB/51BHfI0zyAA07/H35iTj9Py6Yvr/3kJ/rj8/83+7yj/1/H/3xvJuzk4/LEz/QX4/9iBjmAHr78RT/PsBnvaDTXI04Y4/S9UH/TXQktDHKz+16YEAz5tiJSTjcO/ygh2lQd7gqw0wDBL27+G6J8uPAV3ADuBNCCu4N8PDoCNi5Pzf2xPO2dp//SouD716o8J9LRS/51SzskSYvV797if+g6EQoFeGE+tf5L4AD5cT0tqBfL8M9sADnYnCOzJBfBEzg9gDYFi/O4oPx+AQ+q36o8kJADgAP5bEgRwWPxbEgJwWP5L4uLiBXBA/0N8iuP6HyI/gAP2R/yv21q6QaFPm/xnnp6o/CP/eTZAIE+QJcbCLMRSJMSuNqT9ukaKwoNtZ0xsmmFHP52ZzWcB+sntFgc1lbk6+80a9FIqdagHb3lLjulCcpH6weeopR41vDVZs+3O994sUWtypw1jfoK4f7zoSKqujwqdkk1Hctf3wcVXL8gesQW+U5khz8VNEEejgODao1fBs66vbGkkbHZHc7eaXwXzvmyKLVY3xjio+CtDvkXODCktCoyNCo3l2Zkn7teLy+lnueO/qJUTX2L4HcfyvPcxXOeOu5nxXqnQ4XbtIqMnMySlQrx4NjLJ6CO9/1aZZM6n5EPMmtjcO4HI+MHFkN6kGRU9Mlp/DVJoSCmbWFagaicBfVeuh2UW1EHPclwdwPiCug7NJ5ShRME6uYpuqMQshxIccPNAR6WdZABv9fJT9/Ou4xPdThbfpHhSYa7YvTHH55diBJsdOf789zcoHOXASQVV5FRruFW6RfVXxFOj2vl+clpDrrH1RT5Gfb/y2T9csdkh2oX7foA5Gq8K92J6CpJojN1ZaNTvJ59+e3jfmWA7ZNRQQ3hBFDyBZ9YhFLE1AeN+5EluFPgewqrETSKN8608R3BQOX2Nc4bQ0ZVSF0F/QvPWyuCYhnKyTwJn+iGn41uZxJLmybNj3m8grWjFWEyT6Sj2DOcAs4lRSonsoG3Bk3fCkAPhJl1ytyLZZEMjxwxTjkFgw/TybsAsbxpag8M572DSDPEOTFXUn5FaPzO0wkMVKGTzTAOt28V2QzMwcyyPuMvOvWqSOfTUxPWjixbtw0T1QCjdfQLopIuqKfXmAdlQJUBD8SwRKp8leiWnXFB7lylCsT7Jru5/VBqoN13jgqaq/NJsEs1uun4TA/b42l1loYD6E8jYDS1D9UzTJU5UL0lJajaU/PBGCNiOarb6gvFQXrZJSIFOr+39jaS7fdQQrJldjtLXu7zTsACcJfJO/SPWKxVqDsFbMtoztEm8UkWpRYGOWQlx2vJ3hTkksOO3Qx4iLJM7EQ58mJ2Y8vLY0vrbt1yh2s9pHvsQirhZGo4pUL6OmlPECAobJLQG/XDQLSdHbQ5RKjiXMPIoRyDfHLFEZzTcMy8mmyzN7VitwXK1UgTJf0h7QdzM4rq7jz01EaRjJfRVGrheFI33JnTRKG4EmEj/1qaWq+3eGhfVeD8VlfMAXeDbc6DWuCk+U+a9KokdPt0XGkePVe42ujanL9ANet/oX5M6z76poqYkm0z4lBsUm/+65e1jV0j1IGis2F7y1bjmlj60Wa73+Glh3yVf8w4TM0i9otjaTiTOSoIuwYH2Jf9xOVWPDcJuvM/NBT7LzerJtzSySUwCVm3NbRzuD20FdxWML0qcKsmMzWtNNKNDgoX3cTZXWnr4HcicOC2EwhxN2s++sx5xLJa8N35Nz09u9DJIVy6Krr85Ri3/1TET9ngtu+z9hmr1Zhmp8QXLhuS1N8+L4g+ME6n8H0LOuNOWUaI6GZBfMqWeZ9oHmteSyq49ctQOIqTaMz0bSoqLt0/Hc67GgZlfmh5If74NJ92c+WisGOR/+JrA7LL0S1L9IxHaHYElQxeuPxMhzSKGsvucKw6uX/qAkMusx+7Eus9WHn/Ys6ox17FkfLWQDPRrRk22z85v9l5EMkZlqDHWCtTjt+C/hRmu3SEZQ6kCfPlS1Yqb+Wjr3rB0VON2Uh0vHorWxIylysbF1LG2qf60tnuZkng83PGp8wv85VHuUA6tJ2fPlS0dYvmam5Hkot/G/gLtbDDGkJVSohwLOivArnPXZLfPnb0b5tmCRlSKfppkL9f92qGg+oOfVTg7G0gZc69u4EImIRU14IMYdanKFnGDLLadU7USrRehQTgF1rJso+81Y3t+xOcLe/F9cE57z8IxHhwhgWdNzJFFi1uPBMWHsMmPSYMA1oxTvRbXHO+u1PsdKUvsgDZshefTWAX9opYOpf2n443PvbVlFJusED+qxpbwI+W8HYH1dVEbIyybTBjkDTrYfEUc/mSfZPKaeRYJunCBLPjitFV8bV1AMTevzRy+Nw61PeBFbyMzPhSjdbNxKq4uV2FothrhfQGioX+WzF4aRrQuOxK2XLRM2wZPLrLfrC3I6W1v8aYcQWIFzU2QzL2R58ioZ5VTj4wLXQOdDriVHe8cfK0/x/EdvMMSLKFivjj0Lr8Xb+GB4pffgY3IWGdiLW5FsmTRpxjxWcXqwIruo7ub09IlRyehEa6MW7bwq528O6JSI7wkBPiKb33Yn7H2YHYCmGg8fWorXpveH0J2WTckDM+aJHdvtQg1pMHiP7cnjt6fHi+5R+jJzxhL2dp/hKQ3ViGv42ULIlGjIGQgnZ6yoHT2U0WqK5FruhcL8SJ4t/2K5J27cgzCBTgJMlPJ5hyuWZgMLLxD/SV6OqrLZLNzMX+zylRk/oo7LbrloYh0yduCB5lzC/PLBRupjl6NT3s1+rWZ4mlCtGm4UQeIwEF6YHMTOy2O6p43Rv17KGC76zaCuEVcvFMMlFvMo5k8wZb5gtNrcu1bKWluHN2FMpo+gBNtbSWCQsD4LvQZ7IyvapmMJzZFjDru81g72XwrEkkJbs+sr5FW5sZHcb4gpViCkLIcaNMFlieebZWtF82Wvd4X7cEqgXAlzGsd20GgTvIF4QrkaCjoKiSOqQpL38pVV+la7NTkdjoDT813Gjkz0Ur52vh1mRZOuYJXIG4TrxUT3pp6/BZlsw8tscONcRTAxH6wSlAPI+Ma/vRM6lRMbPwaegHQ2zYNuGTZcfS8YAJdVVD+EDPuH66huXnM+yzd+M5CMHCiZdIAezZDrbTmU31M5bP54s1nYAznuPX0aOYB6GkpVp7/9grXz0zMnrn4TFRRkQAr1mrTaf73O9Y5rBpdzmMlvmdV9u1agq0CDefPxcGYESgRjR9BANPOkLrsHPWpAkrJthrbZ/s55tVG0vLhHausqgxfHXUps9v3CeqlQYHtLPQ11E4Qzw0eFQDeRc9PPfoOowKj7piH0HRrXREy3sfo2Np3ZJoodi0/k25D6hKjUGzawqlt0tYgq8vYNAxUuuSEXe22ke9L25aZvuYAuC/2W+Zy6zo/BhcUswI26tczPr0iNZqISBozM5aI04d9ER0M5RBpicVqoN3Voqx0XOmpys1irrosJcySizOGDupzYXVPTyZBUt5PEMB5bc1GLjBLj0SdGXdILtoEHcSMK0s4AuRcXBZSQs4FeU1nJ4c3cTsnZXMbKYH3QgJYW0XNXRM+lUPFWc/KDWnqzczZoIsOC/Esp20u8G+ySN9tUy60zkflw7CQVGXgbaYwhJ0slNEjblVbe13iyVMGoHt2fKa9Qohl6lp6dcq4e5UCIKL1HwlOtQzHG+M1BK/7U90GYbMBb58vIUWQ8PY3R2+JutDqw6SNRfKlSq6RTe4LC5Gf115QWJMOeXh5+SoS5vschun6E4s6dI4AH9W+UyGnY8F1BOKfuC7Ntcyv45pNtvfejc2Iy49F96ZFuSdphg/Z4eY+4pMjJN1W5fATMbyzDESkKxrwb0jATIv68moXGRsRhDAVmRj+ArigzZX5YxwUDtjtkcd0w3Y1BdOSHhyGetV7JLCmNAT7o8ucvU/y39TqTzJvZ6V4sKMNfrkwWKFiH4utyUcSmT2sFFxm9+VeLuy7hQ7zCW41bh5tbFideIPHwYr7Xd2GLz0JO+9hMovktKvEEgb4OmLcGa7eom/TGIoeK4QjVf553VD0xv1l2TBKtarMdlvq2MsSqiVBhHjCt5Q3XtHsnjJTC/25jG86dUtS/RaMlXbII6DUOcO3wyTKNhRYOV0bwrtLshKk5KXDgCRUpqwf5Pjd7G+PqfhiDbSwzDmWbj+V+KAKmVcJrhPhxkdv9i7KP5NlVH0z4ms288g+VJGX5A48XNfeSRMR0GUYsRdB3FLFkpY2P4HZF/mhy/Xs4DYEGkcoamH3j9LKZxx+M8CrCfdd9ho/dfPf0cS3LbfvdOfVQ50uyoMnOnimot86liP4vSQloIeHIA7+Dn/m9b3pfCLbN/UFJr90Kj/MmWT2n4n64HIiYNFUCIUYvEdwsQRlObn/SLYhIm8F4OSk4VQdb1TcU2QVZwij2D8i25IjT3F/vPzl87gRBmnHg0Y2gQks4nfamdynD2Es3/vkUgYgLs9FOiNm2sY5dvHjWvkPjUqwVPFmT/Agzd0UTTpYP5bRSvPlI1NqxcXa8b7PC541RtEnvMu12olmpOOknoRcp8DcjOqnNUdH7uR0B2goSfu+GFOvJrgSeMj9+nldUb1wzN9arj8XixlGoCmIjv2tThSLwdOBMYiiGGP2vBLvxF/adlNsXb6+YI2W27jFhHU7YPqjJBTEVILjIL/H0hf1WuB+IXZx3rwI86OztgRDM9j3S/QNzBfOCO2K2EL0hkJATewme0qAxHVowqmB/M0EXuNkmQc37yreXGiXFYfFiay/EXP1DaoNb3E+z/7DigIjHIezenAPA24q1YJIZTsseRcbPk0YPobUef8Q65DwpsfPQy2TCJ8Dzgf9/XhFYCEnu0Vp2pYdjeFWnKRodNEu9pvLR2+vWYevzL8eaGsBS2cXKvkE41vBXSu6jpCpjBO0Be4iOEuEND/mwJytPe/kdWEyUfyPV6cXSyHyN9ToeZCes75gvNJ32/sKqrhewzqLAj9E5ZZONx+7XCL1/WXqC24cX5P9FNsDbbFbMdxi7XKK//ogskbQGd/URL/93XQMIU+c9XU2O5X83XJKEXxmLgN8isJnklZCuw5WRrgTYl3GMe2KMk7cwwyKmPJ07cpRmw7jreaeu6iMo5VJpJe2guzhhDRDxfUSib94/ZBf9o0Mneenn1rJjMzmi1wePVfo7agpDCzq7zOkk6pPIs0vrTudwgO5yLWI4yJ0aqmWob95DFSZl6T3XZDVr8yInj7n0FCvQzGdSOVh4VS52A466H1Y7m9i9ptGrFI+ULOhnaLnuxX8btZhUy7jyi3TIMCqkpOLO/NOAm2sbWycOW83NYJ3FesWZ5mLDr4H0lr+tqWJhEiJ2sAyR+Nq3j+yiQtQeIAG/PFm2/R9H+8D0RA/1XQKsx3Vqw+LQCJALxDbFOL1EGuaVz7FKESwlhZ5gbY3UM5Q0Ckq6rFZImYvkTKGuPRoJ1mh4Utpf0kcwFso/3gc5urHYvDweV7lg11xxk9LZ5MA/wxB0S7JrYTudJ7GQruWHe6c8DcMqfBCAupjZ/Te/gmmPd1RCOKOqp9V1beErrwij+q6ycKO0eAAwDlmlHFq3XtmWXaJ0Vm4WaH2nGprXq1L7rLTuEmDlpYRbDQPuue4ZlreFGiGI27MLhvrPoBbgkucCzQe2y3t47WsPQ2idXzZ4b4kTxRmQbTp4160ZIbZtJ6dBE0T0a+Q3hHriWj/WessMZfsT02Eyr3lFbI0hksdMyqyFENTlt1Xh0w7ogUGpAMJpOw5+9QTigct2DyKxBEDcKGlyvEXPYgaAtdJqXRfnsdrvWy21N0op9LR2YBnesdM3Xgvp2JqtcRQ30X741E7ml2lryyX0VfAJdxjRuGBbD7r9h39ul7kpHp+x/yjg+MUvwu3sVJYwHpaTOsy3GjncRFthCSQh7kXIw8TXl1gX1mgjhrp6waXQOnOrEq9N4ucCOnazfAoKb45hMH1OcGQlgQjAzGJVzdJRJmBfpqa3kKNn0zp6A316Jccm879UmtG1kHj+dnTn+uixhy9x4FL9QYFRJUS/EmQ8ZPPGwpmj6uBefezjmfJVJcf247VHWiYphdy3p5q3X2VnWl/Z8IWDn+1rfHTmvnFsfs9b9R4ebecsl7AmJFQp+N7EYSIY2gCDhSBJhZ0PHosUu9pOnUSvKwenD6ScVCRaCeg/+GQLqtuKgllGjVlbrhuaKBVWk+BKWAdvE1itK1UrC8lKtm8v5UlVsN/KVFNcGADhx9Dj60zrFB69Cw/iFPdVZXvYgFu7CBRlfqnWxRbHDz/rI2Z+y0Chuou5L1cdXN/gb8Sc70KDY/B9zGPT88w4VQ1r3ae+Vx1p8PGQCnsFJeW/cZsaMVSuVLp3S/geNRwhwh8V2q3VkBFpc7nH12JCEwFVbjS77xYbDhSTntLFgUqDrUBWKJgQiO7wRTL3gd9d5X36GSDS5WeBgb9dAhKkFCBaMy4rstl/JkNzBJly03hoZfazzuD21CYAGn7zsDiNSTa40FXE8a06qVNk2z7n996tOtVT72OV80e7a6/pGvNNYqebgF+jLTMoEE5msq7SbJsULuXvai2VlUKWYkSeiCEfNqK2HQqubgkRoxYcxWku+eWfVh5ZMg/RESzrFqo8ZA+165t9kstvDh4SSko6eWlqX3kNox/mjJu4P34zvFggcdz7jwSrEITW+nqFj2RZBVdtyAGJZX5aCDx06E9OHVEL0DfymtliU8ZN6Fuct9++YjzaPIaU7u1zVZ7RaVlO5a5mQg58Hng3G0ZeWRqg0OzxYbrGUXNow/8kbCST705I0Db+XHmK1YtfEF6YtXrVZtiRHGh0quJUQDeMnTUmiZYuHCOyGPdCYd6UQS3JRVwICl1q4KeKWET14OknugSdpiGxAtXK4jH3Buv834Uvc8SruvZSkm6lnbLuMrwqPCRPW/hT8JlbbS3fgsiPKJvlw6HG0QP0wDauqYIY9HxEOdzvPpf1rR8klLR6AW73y1cCA/hTSgvO/RnWfRexT9Xq4QtzrJqn9mYoZmZNORxhkZVHbIpDBvMXHvX7b9U8E1Cy7c2S4KayCkkLq0BXZay42wSih3RZ0wa1JwKf6WhuTPVyNZy1J8vqlqU4wccRM9ZbZ4uaFWKLClkSUgAlT/r6eBuPHqZ7i9V/mqyKXT0X880rzXkjtnfmIjwjUae8NmWUrZM09S6LsJycbJiWsVdyvbK+NF0CZEdNdcpU5aJR1r+qRjurQVcPh+YptK4r30onEvBmzuMHPbsz5aRbHuMSVZzHhM1io/lHJcoeQANiCAY6hyex78MLdUyKrC/tukbL479RUgUPEmSAkQO7aQtc8Ex/Wgxe1bTsbYwiM6ydR9A9ngMvTpe+O5bJSzchKeHrJ4g/apb1xtnaFnR4gyoUC2riFP9jZ6fnhem2t6AV61sAd+A0a50oq5EKjOb7dIAZFfJwGftr8QSD5RJ8sJwSEUTePHO0ToZk7EeMszVt1EqHLoLfpwKLcXfcaOqxXbsXgGpjwfC52YgSHKJAKSl746JTvwMmfK/klBoEPB0wYtbR26jmZedO3rceSHOV9Sud5ok+6lyorlANpTnvg0AMs4XTtfJeLdX9GSkpYNKVffuPEe5XM1KK8iYjLmHtwy3OwzZp5cxFCSuVjYpgg5B5Dkx9W6NjYIH2Lg8685v7wXxZV1Yk/s7GK9XcI141LDON1xRemGzHATjZd3NOlgieydJd424MiJEKSaysh/dOFcQUAuxZoo0743EvAMfh99r5LOoyOi6JNnnwaXEMIUPQUk/Dh43EKY2OKazawnE7wzn4CGJR4g7VOugIDvyh7U6G+HhfkcUWSf84DdUaWCg0x0Tbifl4T8z2tuaFoIx55BsfypNKEApJ9VotTq1QaMSw33eg17WYMi/m1miLe/gsoNSs0FTXptMgF7EFSwosbSFxDbk7ivpG3VwJHTJJT8/zrJ2dpl7EWgWqPc1+4AGxvJskhpN2PH6G3NWua2LnUlYEZvyUINqjtT6cgO7lZvuWl4epGHvhOj5QSbwQ3zPnbcuP/K4eZPpd+XWiLioMPiAFjyMReFHGPN3vAi6PZhnqZrS6f37JHMFsTW68u0kxyBA0gFb0YQaWmqNj/UMr1JYITrp/kki7KbGmIgavuwkW3aI3XfYcWKWjFFB1W7Yf1XGOmAE9g1bZL+Az+p6ubDhEvZ1B/xmJ49sXpkW6jwpem3HHEVhmte4GgxMCHyUxnK17dvjjjtzPg97xr4epegsBwTKRTsk55tzvN5Ikspw4NgnFELx8uqDIqOVNTakxQKRCTA2X9PtHXl0PVww2QR+dhfLDZrRffvFW93IbArW2Zs2rQKfEmohuGHzzEv2KHBZ7/ZtGJSHYpsxluWTRTC99sfMt1aDVlUR8Z8UeCsnTKcFw5n0hMcy4UP7NobRLvJZzCxFXRgr9RbF6d0QYH4Q1fxWZ+y0UYrIAn18KZdldyRPk9g7pI+Zi1HNjl3MB0V7fNm3K28ldIPIF9m+1bVSENL/CNTiri6jw6Dw8h4TFHCs4abye8nz2fsAbxfJ7N01T9HHhud6KIadp3j8J+VxSD/pTSIr+Pq6hn8Fv7SqYFuu9H1FUmb6+u1Ep6lNCGF26EP+PVnZe1Wly7NGedvbCprCn3ppc/4Yt+p0GNvwX45MDVzEp8KoPcnPTXSn5nnCD8LVi61j8AFqsTiD5Sy1YvSvlr6tpwNx+Q6Ja34SBBh8cubJXSup82TlPv2kPW9upmfGjai/5EEx9wE2Z1YfVoofAg/de/MVmku3r0P+Da5ApISQW6yQJhF3XZi7iDw8U2oI9yGxEIWhyvfdcz741rItjJMmkRuvJmtETZwmv8rPpbiJF3y3YMdCRaxQH3+OZ1zxvGEsous+r1ORAQ6i5q9eIQwSmZtgTD2ijpaUPlbZibDtc0p+tP/VduQaikOT0TwJP2hcPXDc+wsuKojudqIO+/aKhIa8L6dzkXjB/luJ9FAzaqz5zi2ek1AgGXXufvQdmvgEJupNAaZLAktFP5aTrX1F35tB7reoeIGBjOItrDmXi0fve7ZQhKztzcTeoTXlaw14KvdDnAa0vtJEvmpz/nlxuuibpzDmUp/McLrvpxFVRbGgPguxeQxuRyYMdIu/LWn0XMPv+KCR8D1Vb8fChu8kXc1ttiuCR8y0h+9b58OJuPyKwSukZHvtz4OUC3sO2838jZbkcxbCmYdT2mHl0hZo77HWB+FE/ZSgonUaucwJmXBZ1gyj2u/SAjBnE7eRWL+JWums9Ym4phjSI3eYF1dY12mvVyVq40zb45e4ppRd2KbqjfK1Jnb+INcDN3Fpa5Kd4nhpE8ZsITiWCS2plzT99BgLUCyuIIge42DEM4Rf2fpKysBjSboI94gbLI6eJpDPulMUJdXGITm4cPhO4M2PEYEqS6NwK//dlzh2YzpNe6XjYu28ZZjXCO8xsGg9KH00e7BnpoKVkHO5KztNBBrTduOnLqBten30j32fZwj2WzgdWr5jP2+60Vo8tqmsbfdvr9wo1FXG3GmB6/nFP2nV1MFwc41fZD2G1DNm6KG+xV7ycycbOfmRwDtg0z1urLPHWF7HZelt0kAeweD3aI7XRZKTR9TDvjtu7fLTLzQ9Rdzyl9x3Bd0b7zJfRvckF39+sLstR9Y/Sb4OGHi/aGJRa90fwnv12a36fNjCTUXe9JkgvSmTENRcXczoqq0qu5d+08MzUlvB8Ch0yLKxQYdeS1Ua4kf8QXEmR4TXhvsrdxyzH4MbvzirWcGVMhlfMh23BlV9mm7TvMRlE0segnhgOB3qevTqugTE1facdsHvetRtBzEOtqJFy32hY+kxVNqBQzG9oKkaOVo4QLbIlnlHPF/aUr3QKYQ0ebz2EVENkfBcysraJzKZKA7KicFkn9GuSBtJShU5DrvJMJLc6TNrD1pM79NzuNk9JeZ62RjO4ijM/8kkp0Mb9ypkMpAYPTorH0mYDWWAQ63nR3OjzJgxe9J56QCWv43KDV0/Ek5JoMtFzJywIyZnore8nNfHH6+Q7poWAAaJ1XDxYTnn6N65iw6vhC74UK/H8JrEh3d7t4kZGsfF8SzdXyWHRUiShEjy97T6z8csf/ZvjMaYHMh37UIIJo9K8N0ZeE3iwYocT9lHHvdK1VKSIYaoTKcjP2RG2oZp2XhG0fzgrDvBuoQZ66drglJwAAo2xzE1TRQK3jn2BDdlzLFy4MPN7tDq3alXRmr6DmxJpyxGp5uO0arPupzkcDbOOVxQXGtrA3+7ntBKbj+P2EWTWt3iyjtkHm/GtPGmtrwFX7fqXms/VFw7pd13lNsriHed+XlUvIqyWNUKrfHWvN9mbWunSriwbsNWzWn5IMYBXa3E0CU1+RhsPnhQkQQjlmDUSvXnDaOmzh2SicHK49cECECv9vHuNu+X0iv7gdczqePM/Eh+VxBe7w83QV54lPhf4KQFL3wtwNplhcoWG9U+4Qv6SJkvuLriggRIRVEFJ7r6MRpc9s2Fkt+4q/VIBVFkwDsVB0xewpv8oNwEJ+0LH2TfTsIyylDwTND7744ZO2DpyQNQhu52KzvZrkssXupT5z6l6VW+Ghq6BImrF0nyj5G8iJ5hr8+TKt50bhQM056KZzF9TXX7ccAZKIlJOtVv4gMocbW9RP9y73Nthqcazo5/KX1Y79T7k+So0Etft1/bf7RP5qLoNnhcWPhGAl2yLxL+/tMCn3vmZnzexhhDNGiFg1opnaVQ+ajb1Gmwja4clZiAeRHBaJ2XrB/nE7bm01+6xS+tjJAxTER07pj154eL1pm9R2u9NYteQ/a8QoLRMbkOjwr3396JyTvIdbEFJxNTUQy3RssfVJrVmyhKpo+Zb++tUfgPpSTlbJVE3agfQ6h3f9DZrsu03rJ+GYZ9cdEJhYlGSqcA3nK+0e3+GhIQCTAncn7PdLCReS+XG5K1lNwsEzHgK7akREVHj2JH0h1d60NF76uAu2AP/SJCKZ5xHUfXay1Ulu9tJyHCp1Bp+uJBnwmVJpKLBVsselXzbdWXOHi6OGtVv9VCheaOFZ6EW6lhQVEEC5FnxPXThMPcUpN7XY2KD+TMcr0VgbwDqxOC7NFC7Hbw+s2w3A+I6ka7kXNGQZUh2l3nL86DpE3eSOy428tDIlZIabTsDjaK5D/Tqp3RwNYaITHZz2nQFX0S92iK+VkwK1MTaX3PZCUmolnQsggxMjl3mx1vsQb4jg7Eul2FRLO25sbYxCUjlB8jV+Mb1ZA9m5txyBPtL8gWvrR1zbsc0ioQN8dgje31l9VwXCkXAdfdSMNu/Eew7eAakZreyCOS36yHmA5gDM9qu/sXWm+tp+f1fc++rw96Zdc/6iDHuZFTes+oWsP1WqXurehJ+f2wN4sukf+5eCFLid/D/A9GatEbzbQP2WZ1kgJhZpefTIo+LpvvpyJSsZYd6++AO04DgqTfHiMZZl+yq3QRZd3NRmmnjmAmwUOHSqd0v2armaF/r2rbQUTajI2Hy3fwhQ665wo1JHP6uGUly4QEdezA9NbIeg+tPHQgZuQ9D/eHj5c70ikIIMbOrGeGmBpaaIvCzcTGdbMWFLFqvBMLMfBMjk06+LTo1NUIhV8Pgi/iI7W6xAHWNA/Q5QbphrIt4SGj1EgLPE8POiXYqeNiodwBPd3Gt8I96x/aiSken22PjxvLGKmDj8mEMAha6dEFhsckPvySvvzU21vDHSJC2Rc00sXwMgi8eFymsXDRf0IKrPjGhsBdi0CM6jEi/n8AGodoJwplbmRzdHJlYW0KZW5kb2JqCjI0IDAgb2JqIDw8Ci9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL1FaS1JETStDTUJYMTAKL0ZsYWdzIDQKL0ZvbnRCQm94IFstNTYgLTI1MCAxMTY0IDc1MF0KL0FzY2VudCA2OTQKL0NhcEhlaWdodCA2ODYKL0Rlc2NlbnQgLTE5NAovSXRhbGljQW5nbGUgMAovU3RlbVYgMTE0Ci9YSGVpZ2h0IDQ0NAovQ2hhclNldCAoL0EvYS9iL2Mvci9zL3QpCi9Gb250RmlsZSAyMyAwIFIKPj4gZW5kb2JqCjI1IDAgb2JqIDw8Ci9MZW5ndGgxIDE1MjYKL0xlbmd0aDIgNzE5MwovTGVuZ3RoMyAwCi9MZW5ndGggODE5NCAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqNtwVUVN8bLgwiIS2dcihphu6QlpQGSYeZAQaGGRgapEtCBJFWKelS6QaRbqQ7JBQJSSm56K//37fWvWvWmjnPm/vZ+3n3OsPOrGvApwBF2cBUUUg3PkF+ASlASVvRVFAIEBAQ5hcQEMJnZzeEuyFgf9nx2Y1haFc4Cin1rwglNAzsdm1TBrtdB2qjkICGOwIQFAYExaQExaUEBAAhAQHJvwJRaClAGewBhwLa/IAGCglzxWdXQjl7o+F29m7Xff56BDghXICgpKQ47+90QMEJhoZDwEhAG+xmD3O67ggBIwADFAQOc/P+TwlOGXs3N2cpEMjT05Mf7OTKj0LbyXHxAp5wN3tAH+YKQ3vAoMAvyoAO2An2JzV+fHbA0B7u+ofDAGXr5glGw4BrAwIOgSFdr1PckVAYGrjuDhioawEPnGHIP4K1/gjgBf7cHECQX/Dvcn9m/yoER/5OBkMgKCdnMNIbjrQDbOEIGPBAVYvfzcuNFwAjob8CwQhX1HU+2AMMR4BtrgN+Lx0MqCroAeBrhn/yc4Wg4c5urvyucMQvjqBfZa63WQUJVUI5OcGQbq74v9anDEfDINf77g3683AdkShPpO9fyBaOhNr+ogF1dwYZIeEu7jB15T9jrk34/9jsYG6AqICAgLiYJABzAWBeEHvQrwaG3s6w307BX+ZrDn6+zihnwPaaBswPbgu7/sH3dQV7wAA3tDvMz/ffjv8ifEFBAAqHuAE2MDs4Ev+f6tdmmO0f+Pr80XAvwFzgWn6CgMCvz99PltcKg6KQCO9/wn8fMUjNVE1NUY/nT8p/OxUVUV6AL5+oMMAnJCoICAoKSwLiogKA33/r/L0Df7H/bdUFw/9cncA/FdWRtihA8g8S17v3FxGPP5XB+efYcAH/7aCDutYzDOD8R/4WAqICkOsvwf/nIfid8v+n/V9V/q/y/98VqbojEL/9nH8E/H/8YCc4wvvPiGs9u7tdz4Y26npCkP8bagL7Y6AVUQjo//rU3cDXE6KAtEP8vY1wV1W4FwyqC3eD2P8hor9O4bo4Ao6E6aJc4b8uHIBPUEDgf3zXMwdxvL5UXK/P6rcLdj1S/22pgoSgoL9mT0hUDACj0WBvfIFrgQmJigK+gtdDCoV5/dY2AOJHotyuU4Brcn6ALQqN/+tExYUBkPov028kKQmAIH+jX+sBQf8FRQEQ/B8oeO1F/gsKAiDU31DkutL1dfgvtwgAQv8LigEgt39BcQDk/hv+hx3EHY2+nvzf+rum/hf+fc3AYF4wCP70BAoiHerwPrTxx1sFek++tUHZT+xrJilcfL7T6Cb3M2LcRK7yl8GL6GOFxJ4PpHOrKpxH92aYLn236ipxI+oT9BrOH19Yx+uPrDXgTw1TdQ692VKo6GC8xcBneG/98aXLY+MgR6w6zBYN9kwXdwli3WzyH54f1bwqOopm+8Mn1vTWy8U0CS6KRvmeGsVYBOWPsWfZvBqnYcFx42PE4ybb8yIZOzr+RJYxdMWkEc+D7/ftqXCur9mSUOzpuM98iaGQaystG60ZDSPWEVn/yF1fxc0kDepJ34K8Zxrh0Xm2jFYTNXJNJGAXkXfMLdMyRX1Dy300X6yDlIpIVkfCn0H0VtgVe74gDDKaacgyK8TzRy8FrXPwXfWaNy6pfKJLx16iQ+Q7Hd22dYUiUtufI+6EHnHK4zRvRmwmTYpN0WZ3dkj6j3JUPr8KuBc/JWST5Wbe5gv2ItpuviH+47vf0JAaEu+1+aHhw205w2EMhh5WcK+gPXOGNM6j7dcm3Z1lZFeOcpj0hU9Hbmg69L9b1GjxIb5q13m9BQmRn7GSWT+9R3hjadLFcM09dApaZA4biU1zkNJoQ97s0zyPYhUyyH5r/mKr45WiDZl8f4k2ZjAq9L14eQEY/CYpMpuDrjbC7jD/RJdRarBypHD0CcEXaLki9PnjEfWi4Z2w+1aeT7RJyoqHYKzKyruCr4qFTRJyWiP5+4cPWjT4qcQmy8YYZVIMabV7vrFUyYWiaThpS3SCuyhfJxGuhLCmy9WYObQd22f3VPGkGP30LL/6vop/UckW97l9eMVi2USHXymX03jUYldnfZ0hs+lDrfBtYuwxBfl9hDWpa1uhdrhuzUkRQXOst62Bd8HyRIvN0u2B9keS7ozOsZ3HuivdcW913NETXFqy7vaFsePBo93Kg9NZ9W26Y9FW+X40NbVM2K2tY/if+QoGfYy4B2bvCJds+B+v3s/1pA7xWdOTujHeg9vARDyxPMD/YoQS4lVfRJXjQZNcRMeZFkwmYyYTJTaVJqo5O5ZWgfmJx+fitlpTlgAmV2sA+mFJQpTUZDlFDyQbk0qRqDBLXN14POgSe2It0+SqLl3fkqjqpeRHbDOzdEanxxBqVGjEu7ignmB1C6dwHYxwf2Tqi69r24THmbQCFrSXtlqE6eibUxM3ExuDHny88sebmR/Yjk0vbSXBxJLGDOXs5ZhZZwpKbrN9F0J0AcqFmCSHKKd0XdIWSGCG9J7pd3JakBSE1g+SZ9/8OD3aknbB5rxHnsA8zMI4dyBZEaMPyIqb7fsVvpyLs+TZ8oGF0Rjjmqf23qLDcaria+ZeXG1dEsmjYJt+Yaxsxlee1FaWOmYyo5nkXFVOuJNdW53lb+h+krs38WCrQpAyvoT5NIjBH5x+V1zkTcgGdsyXudGWDlxe2XqeviJjVWrIunCH8Ns+2i4Jxw4C+2/W2Ns4iAbKDQUkXtwiOG2tKrjmWKe1i2isRWovK988lW0gAyo1DIdQTqQ6XCqdawt9ftQvii7TenYglUPzueJN99lSafOA/9JPSCbZpPajWwVLkeTMtpLWcrpfy/3wVN8UHpfKYU+tp5AnVqfgruGJJDQySvjAbhjh8WjQbGOf0jrepiWUkeO9719mVdyNaSRX7n+bbMGf66YkdZJaBh+FdSjP0FgETrLQj8Y4pzT4+ungK0EM9LvEwm+HHXJmxTv9C/JDsQMSK7pmmE6bcTisTjBl3cORtIInYvX08S9OJfM8ZO1VWq1NOTu948J1fqTgckrS5W9QQ0UnZLIXTEWKsBtEyZmf7RGaKqXjvFW5o3EcW9xcQ2oxNWZpmkVBU590p7Is/WIawV071k8v9ZChik+OwblH/DixVqv+vLJryux1l5J/RRfi6PSoJIqsAZoq+GZAChR0Btgx81J04TfN+T3NItYb5NnDlRQ29gWaE/WeIia21MqqqleIxDGYpZluYHq78CyvF38nGtWoTAxQ2MLGubXuceIAQg+Pz7wMMWPUJeUSeWs7wfPA2dT6iZs/IJpk/kzfjE3GPlNpwTOlien7uYiuAvkLT3ubloD7p8JwFb/Q4Cpzklynbz4nifqUP9gYP11gmatkiviSh3109tEHmZx+Iea71RBUALZWx16vSnCyTyiC2e5zNNYGbpi7pNfk4/G/mlAScGcwyj5h/NZ0t2htlldh5JYnHwuPSAXbQq7caN2bFFnWMtg9TW6TG40qkeVuN617+DSaXnQR2DAO5kTkHJhBn+0V2kckxb2PfvZRzktnuzB7wXn1mStW3qs6Na3A6Qe59nIHGZ9QTw8/bWUWvKJrxZjRkN7T4LFwwh9kYtCgPRej6f3gSEseO+EUJMmCo0MIPFIebTNv2gM27cU8fRVIIDKyC2Uefun9JLoYSrmLeKPcUY9dFSaTv9lqdvIclgoyB5U+zU8wQJ6+6Vj1Z30aYH2bO9yS8XWVBXyPmfJUYwD+stelL8VJA9CsAGybMp94cxucYhL7HUfC1YzFPME1mNTLbE7vwz1kSH3M9OittMY3BHS+6rukHTPPcov3uGs9aByUtQkY8N+5sJ7XuHWpFKwuLyP6PRebwJDQxzW/ctvPXetRkvZUYFEzi/hrzeZPBFg7JxsN+5/D5yW8HwDRvvv7cW8eZ3o84rrzgV85nIFBOGt6PVGTLZGWImfzVmojwCsc8D4taXTetf2VMnXD0if9q8iE3A+GRNWB/ZB3uMVC3+JD2IMuvJUttCtvG0jen9rTe9o4/gpte6iWb3VhISoakci6Ou1BaR72cKiSi3KDSvOzQa4VQ6U/si61VJvO9JxX4m6OOJioE8r2M3k+kcDKDWRCFjTlPdQS0PKRJh/voESkVk/Tl2tadgAjzES5ESrXgKKDfZ0xS3eeTqSDh/LBSO7pPte6snn2uOSY1RmbRaxF8ymxFpOuad+ijw1xXoZZOGT0xO8qaJuLnVprStP2gRDJfFnQyhLAqTNWaRRXzlcJu2pCB2TE7LsT6hfXeccYOiKo5Oo5lt7f3/5EuCA5Esz3guu05dz9HX6rOw8FohJ69Fmk6kutTyFEyzUigeqHoQaOuRR2iccg3UXYeoy8SaTOj2htSu56orc62PDdHS3bA1vVMVC+PEEORv8LFOlgvzV4gDlzjmhF8aub5ZFPsEUTdTp2ycILfVAqWuTN1uYWlfZZQRLVOEb6pKpnQPcuTJQj1nI/oNKsVXfgjnM3ZuzkZHUeuly+WzcOHNpDMqiVwMGHRd+BPwShvF0UPXcirOaXa4hJu8GRNpP1DNnK2m0ld+PZaOYERyZfeu3NwIXAOdUfzZ7aDwzjypVdNVL69OjrK8/aQnxxb50HNRkuNNccCpUZ08aX6bgujsae75MENLMrhszYx+zPsjFM8i4fyGWsR9AdoL5oJs+w3H81VE48RpIJ1BYLDSqSFhgNiHNovOOs3m1g7Eof2S+FCOqqz8ctn/AjMvXGMB16VNkdMgp0K/EFdxp8bIR6yt6ZBC5o8zhp1oTWdXbZ8rLMgYT9cz6WS58fJ4lng8TbSmX7UHwb+uyBUetLyCQGDcVqhnvIdcwrMQWBLx/sWyn0VSXfZhhOEPrGcWbfTdljWwyLC5DqO7RvoTu5OnqmfeXQuoFbkEE4Rf+NPU71BrVx6NXME7WVbo+aYBz5RwZSS1tSGjBn/c7+6h6SHwErkunFGDGZffMyD0/Mkd3J1aWHXQs3YrfwKD4tNS9PhEh8ZTtrYWWB4Q3Lko07MhIwfrddsA3NSnoWk9FHUEZWGFxJqOtJr1IlmX80xKbTEDojk31ZcPWExcEUu8HUFetSG0039VWlvPLbq3GtC5ZN5m/ctjQ86cyYRgqR8UO9Nwh55YXJWle9xJO+i7HSt1yBmQ+iZJ+ssnaTn18S9CT2uOdSR9tk14ISFtVaKuZYgfu6JxaFFo9sllfH2Y7Rss1cA/JxoDy6E8lYmXQUuaIR6detafEy/kzRwlUaxepVfXUgtSJXEsxCY8xMvnqX0eu2oN16/laJS4pjomxS+LcYPsBMsDH8aXnj/H3z3bK0z6pgrHoDj3ujOfAv1Z4bo96sl9C0qxsf+nbDSdldexf90y2wYKeRPz5ZcsbuzuBLre2DherfyI+Qz835hmWuraplTLzGu/deqjMLUXLW4Qpel9icblarHzWOsm041LjdmDXXvJXbr44p86huJ5ZPfufIUprvYIsKR83PgO0O+DHhyTKKcLLa0Z1j1zOd9LI82TsIQ/VrSuiCc3ul0B2KuoSPfurcC5XUikpDct7yaQ+sezCxG0WSyS6kVhLf2ahsZBpbhgpWjxrvndrwhrBEaKJUBaA2cWC6+m+0V/0ZC7Yialb9JY7POX032gek5vDxUqt+LljywTRqpmzoEvsgQePylO8yLvrte05cecgGswOizjqtq1zTX3cavKd+tcnIC3Yr8IZjvvs+0o/+Wcdeua8qTHthR5qbkbsQfTdb229qtqBbOEPZsdv+0VOLDLQ7VG7xu/QJvE6B3rp5J5ISH6VqPZIKcTzSSR+L/sGEfJR95jFJOc4llJY4m/r8MxvrNpHY6Yjvz128i+KNlbJqC1WPI6NvJowELYGIHXx2L2xzu8ox0u0wBzH/XDIlgjHKOZbnz60cEUrvd71J6ufYGX4ycQ2zI6tNxlVfPgBhUGiTpnqXBvRQjG34H5i5NG0XzjDB1bPDgtjyMpT6DNO5vUKKOizPizaSuA6Z4BmYmG4iZulJxhhjlk5rkUHGnzDiZx6cJwQFlh01ctlhwH/W4e+z893QMOrMNLd9a2gqPgbipwuDRFBFB+EZ3XzCe2IvviuhnS0y9JXhls+mpNRqf8Wyw08ntMdRuu5hLCuR3PNMPJtAr/2GVeuThrw+rfbajxkE3sXhRQkhbw+HRElG9O+BfG239JS++xVDe1vxuieP/adW0RVfmMuxRBouM0bijhpibHVzUDXbgS3an3isOHhTiHfErEGzJr72UwM9uz2gyJG0r/0OGxUGfqM/tzUifAhGXMOjxqs/Ry1POFDfKlio8PdJ1/J1UbDA0B+1Z+OKlvLRMdDQmvdmcLB6/fFF13PGKsy4ToY7XKOGw/7DmmZYCpRnugLYz4JxNHSp/Dnl/CVX7rbnLni0rVhdseCFYDdzNUWYim7Qy9pj6YwGg3VIp94Xsj8VxF6Z8MARnLPzkN8IFBGrEA+6fxxPtcX886BK5/CyzSF75YEIY0ETxXSzzfzV2pu6p5huWar73vvrFWtH3+/u+h546pnzmEVpPM92qcXnqVu+R7C76oTkXXTQRqrYqhM6ERToqzGWG90srXxIXC7xIe2HThh1Qc7VK03SKCl6y49vFJmLOqh15AM1KKN2NzgmFfiPHVt9ZXS7PyTLr7GBbLJX2SH6lUHhy8hG5pvcIav7aVmSFBQSUUxzOiTu1oavvqYJVhMy3d3hxoa90bG6m++u/vjoNJTnakKgsIqFQIoAMw5KbYC7V1r8QazMyPPoAYvK5HkA4/De/pas6rN2mU6mTJIRc5YwLwEKjNurlwSpR2a+vsFP2w8XmPhDaQi3Jfq6OKrNblW2DViD2e2gRP4NAXE2q5uaJmPFW0aZPuH7mMfZ0b06r8Kzj3nVgWHYDvzWxg2EXPXFRukyZDUnvBWbB4RQzBzxp8DyCTvhW88kaNbBfmlCSW4CaUA/Gyb/EhZJHSMf8MGYFxqIacEmnVfixmCo38pOoS3RpvwtoHZYK8P1oW+kciWrCMGPEGVfcKGFg3QNGzKXFNqbwTEwoKlCmMThnLBGCP5053jOWuk2NabgBJSY+KL3AqyiQjwnwtKSJ2P+tafED1s8UJx9qj51I9ARJKRe7RjJUZrviWUj06+YSHb8uEv64Uo8QVkLolXVd6qIl/L45XquJD45B69cCGKLIcfMxeXe20dUkTQUStFvd3iJxWhnHu8b0W6+NxfqKvT9Udu/tu57aF3BEHUtbsSrRvNWzqOUOZWS1bC4l3crNZn5Bdy+cJXkxpHa7h2Njx2IJ+LEIkaQadqea6YyLwke9xC1/Miq3VvwpBFibeiVetw33Ci2kDUpcv/0be6YI/q7v3oohkpsrtPh2Pc0j9LIchveD+ZpXkXBQcvdpA/D7tWkLKEZtKhrWjnOmIT7pB7lKogrPfM35bFeT2nWZ1X7rGD80c0ySnkBStRcyXxrQiBwhTvIfRF71ufQ5jP12+CUt/RbxeiHI9t573Wi3mZUsx+M0NrhYex30xmZ3rUfeCIWN/WgeePgbGnMZFDondUMzY84TGIftfLtCwCukzk6WHx56W3bZG1wxTItd85v9+iYTlFMbQP/sntLMfHORTfUdCeuiuIots5UxQ/j3cvtsLB1mAlZg/VmBgKhV0gudokDRxWEBj1XlamIoxMeS70ww/o5v6LDTrWgh2PlOUgzHxLd7pt+V6U0RirbURYgifxC/z2NQbHgXY3649xE/Az/8Zn0clvNQrijVy7wbMenzamqFiD4JHw2XeHvtO2Ir5/DlxtQs4puuP9uyzVpJnLmwix/raSI/6blzzZL6mwZ5mpKe65+oP1xuq35fcoixFy48GxQr/lihE8ncQcIwMnfDXl4md+QxLsJHYmwOGgRQz1N2S4fm2rdrKNT+SCBoTZuTjpKTmxbme99L1Dc1DyTkDQaE/cLlMyEQ6xBQ6HgXO1IA7RLwOavxBjLXLnil0m0GnhTW7OCQKHGTOo4k7a5jSg+HuVH0V+mqpe1IBVtEEOVUKNrb4BLNbg+41F3mWaUA6/AlCimmdmtFLO0Onmxp97f3liSEOJOEsadpi/Ttri/Us2yK8WPteU/mPoD727pefh0leGtFxha9DqSFWr+sjzgwSZwFuhsMryBsxL/Cr8Fq/fTFVqyyL52qHudcSUH2TTKTqDpLzPX55Wy4u4N1mH9rgehlhhGnrIlmVvnBX8orf/pGR5pZN6mDd3Y3tJrTv25YFsZiTtc5Sk1P8/aR3zXclO7Xjqdu0Ys/uhixUr7w6j3uRq07kiLIV+M+T37Hc0F56V43rRVpHMb1R0tfxNlnseuvVATNbGy996CuDbFFLimItiaarnvWT/uiI9sCI/zoalISeNFWJBEgwpJGgfTZPQ4ictMlNL8/pjPlDXHMfvmUMFmecPSOZ42XgeNW1QhzBehH0xATokfels66ZNVlhoF3XapKJSoPSzxhaO1x/d4rMROpoZO7F93NDNXGgSoL2kZ1uZRB58JeQfz2eOR4xaNlfNX3HxiaVPmgZZuWhaNPHy3Uu/zLI6+/suDzy+r6pxIG4e3hDNcOHkeMAoRFBzGhKZOHnJtpVtSnEe6EiVFi6bcxCTh0rJBBKVpW5kjKGsDB56HtYM/UzXfZMLJ+egHWp81pcbt8TxFrIJYFCPL/LAJOF9UG3i4rSfud1gZKzgVbYLX2Mt2Lcvr+PgsdcK6KSZ2q+OITCSd7dotnbQy716WVG5jZF6Nag5ov4ZjS2/7vLyhFm+7cko7H+2ZXOcSb0faJbI7fEw4npMcsTPcJc+XvUa8Kby4rFlvMLrDx+4lUzI65UzziKyGO2Bqog4UnpxhFyKfxNjuH333C2lgb362BPJzo9zhvq3AUu1YmANTJ+X4w+97bmKpuyJg6TT6raHA76RDDqh7dLZnKjz57U23A3vpzDUaVivmnXGdM+Nm9r4mvFaWc8xnsFQU5xZFkko0uMot9UhWjhvMG7szXnCFKxO5IKiJuVtE7L3s7tYM85AKdtwu59C6jIjY2n61UbsX7pmy3q1O9U1naKNl3zf3KdV4KLGiw7sOrPNq5sGA6Tg5dIZC4ir7LfXEGM8HMUk5Dxc/HjYb/bxkt7ee9Qp2SDUkNmNMzZASN0vSRSjJpP90/MYtKiYb7on9dc0ZN9fu3DbP5/2Xw80hzVLs4Hv2Mwrg6kMVWOn6JGFOSDRyqoFVnDjn4e245A5OWRGb/KA6ymkGkqdqtcezWjl5DJcdifcoY2a/1ZiNd7hOyr+eeryur+8QEHmemuvcb2CREev9JZcB9zjt7ecJx88RrVXiFHjrb844gfQIjXP+i7OaXc01kNkdvRcZhrJxKeEKHG6YJkgTLO/SDm4s6el24S7SomK7JmKpJ+BjPuxJSS8x35QXoIsZhFeSfg37sso5Mzc60NVwkPIDkz2yK5ob39A4025CRPATlffnfbEb7w2egzK7Ht+kONEqnnfKy4CLedLm3WWf84tQ8vnsTlrW3R5gHb3sWCBL7AfQr9M+EXJ+rvlIlrIzkc1P6nTGa+U1cWyg4bwQ0vQn+1Pil1EgwgNtOkf8WTPnIpKaPfDcSnFFgvc6dOtFg6k+Mi33Z3+bqmA/gv0sqYZw8XYY3jbN2+WmaauDZxeCb2eLVMd/yPUimVmSMCGn1QlKxt9y+DNzR+Ptxq/kE+xmX32r+8SaeJYy6Dddkl+eUPn9yMWPpzgrbIkrI1FveYBOR/mNg1bOh0LLT1Y+d6pjfMonsrrXQxctZGoKB0P81Bd/vLBYY15rDRcgLkVAeMctyW+pZ8k2rDg4mM7oe5NgmeNy2oltwKWSyV638jkSAYqTJGo5SCNBuoSJDd7GqQnrbs0HX9GXGxYQI6YMONKGA1WmVrVwe1lYLpFHgIgCXSbd9SA9elu7H+o8/1KFjaH96Lap0+DKTJ7xCHX/gF/kGgVBJ6lBCnfnWbZw/2lVsyKJs38FtU+lwQURaBEijBibaA+Z2A3bXQG9un5xt5QIIug5kuN7h4GiNw/GNJ2102cF5qMZhjGHGlMm+B8ziHkeBHwdR+lGnHLXpT+ZV5S8heeleeMVx0JhWBv9Tv2xzmeUZI6NNXSSOYz7YnZ/W1fKgjE+D2dan1DsJQYvYyGkLsFM/JCca3HucRpMZ8fv/fIrpbVlTb+AO1g4hK6tH3qMCag47rw2m9GjY4bdwarasdjJOs9LNsRDBvam3EbGxMX7VTMvPqQ6UJ4n/MYbxasgUW6jy1xN+1abLVddgbTNaKFdrmpALDmIvBGPqpzLIyZF3qnKHw5dvNOC985J5WLOBXM7pYQg86uLYfugmf7FB6cGz8jiUMh6OavFMQHFpt0tQ1q8z9E8j6SZSt97BeLoCceilgAqZ/2xs023O7WZbeQtlRLkM6xP0bYBmbHVxK/KXNZnOyK1O5LdE9H7j56POwDI+Fhu+rZ5USZuwjAxqY1j/LPOhJ2fhLjNQvOvJWYEv7r44IJ5yKErsU49fccXO3BFkM6KcE/qUpfAiK5TYjEpO4MYX8mea/4WER03t5TUm6XkzMrF+ZmPkb3v1hJvLVkOy9yavbeDQ3s7pRGEkjbQC1tQNjMgDq1dKaqPpwjXHx1ZidqxANRRW/pp94QWhlt5pQ5oAC+7zR+ec5ae+fmatWt2s5fLTS4uT9aXytQCWYrG3myJEu3jY/zAljlnl2HrNP+8lTy9EnTXL9UtJaDdo6MMys64804aSo9PMOn5c2NTV15/nQa/EoIumCBgT5/EVB6LSe9+kzLw/lFn3ZOfF8jqdQxUWd/XTkhvfcbKouvzvj7n1CBvUmxn0sKelScldbvjoiTPM6KOtfVSw7ANPiE0n2OQsX9XuD37vFC45AWsaPCq8OsZKu/oxqwliygXk7RumpmA/VxqzAJRY3OrUAJVc7D0mOphAZ1F1l09hbHrP76lH/b0HgdIeDhpJf8fGS3lGgplbmRzdHJlYW0KZW5kb2JqCjI2IDAgb2JqIDw8Ci9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL0dYR0dCUStDTUJYMTIKL0ZsYWdzIDQKL0ZvbnRCQm94IFstNTMgLTI1MSAxMTM5IDc1MF0KL0FzY2VudCA2OTQKL0NhcEhlaWdodCA2ODYKL0Rlc2NlbnQgLTE5NAovSXRhbGljQW5nbGUgMAovU3RlbVYgMTA5Ci9YSGVpZ2h0IDQ0NAovQ2hhclNldCAoL0kvYy9kL2kvbi9vL29uZS9yL3QvdSkKL0ZvbnRGaWxlIDI1IDAgUgo+PiBlbmRvYmoKMjcgMCBvYmogPDwKL0xlbmd0aDEgMjIzMgovTGVuZ3RoMiAxNzgzNAovTGVuZ3RoMyAwCi9MZW5ndGggMTkxNDUgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqM9QNU5W37BgyHybZrp8m2NdmezJ1rZ9uTjcmTbWPihMm2Pdk14e2+n+e58f++td53tdbud5y6zuPEdVGSKqkyiJiCjIESIDtnBhZGZl6AmLwKCzOAmZmNkZmZFZ6SUs3S2Qb4XzE8pQbQ0ckSZMf7DwMxR6CR87vsk5Hzu508yA4g42IDYGEDsHDysnDxMjMDWJmZef5nCHLkBXwycrU0BcgzAmRAdkAneEoxkL2Ho6W5hfP7Mf/7BFCb0ABYeHi46P90B4jYAh0tTYzsAPJGzhZA2/cTTYxsAKogE0ugs8e/QlDzWzg72/MyMbm5uTEa2ToxghzNBWnoAW6WzhYAFaAT0NEVaAr4gzBAwcgW+B9mjPCUADULS6f/yFVBZs5uRo5AwLvAxtIEaOf07uFiZwp0BLwfDlCVlgMo2gPt/mMs9x8DesB/awNgYWT5K9x/vf8IZGn3p7ORiQnI1t7IzsPSzhxgZmkDBChKyDE6uzvTA4zsTP8wNLJxAr37G7kaWdoYGb8b/Jm5EUBCRBlg9E7wv/ScTBwt7Z2dGJ0sbf6gyPRHmPcqi9uZioFsbYF2zk7wf+T3ydIRaPJedg+m/3TW2g7kZuf1X2BmaWdq9gcJUxd7JnU7SwcXoPSn/5q8i+D/lpkDnQEczMzMXDxsAKADAOhuYsH0R3g1D3vgn0qWP8TvDHy87EH2ALN3EkAfSzPg+z94LycjVyDA2dEF6OP1T8W/ETwLC8DU0sQZYAw0t7SD/zv6uxho9h/83nxHS3eADvP77LEAmP/4++tL7328TEF2Nh5/m//ZXyYVbSV5OVW6/zD+SycqCnIHeDGwMwMYWDmYASx/DBnX+4fPv8P8VYD/kf9TqmRk+d/k/hFR2s4MBOD5D4f34v2Ph+t/x4L6vytDA/j3CQqg91kGAqj/Hn1dZg5mk/cflv/PC/Cny/+/uf8jyv/b6P/fhCRcbGz+VFP/qf//URvZWtp4/NfgfZRdnN/XQh70vhx2/9dUE/ifVZYHmlq62P5frbSz0ft6iNiZ2/xVRksnCUt3oKmSpbOJxX9m6H9deA9vY2kHVAI5Wf5x2QAY3hv2f3TvC2di/X6hOL336k8V8H2f/n2kuJ0JyPSPxWPl4AQYOToaecC/t/4dcQC8WN431BTo/udoA5gY7UDO7y6Ad3o+ADOQI/wfHeXkADCJ/CH6D+ICMIn9hbiYAUwSfyM2AJP034gTwCT3N3r3k/8b8QCYFP9C3Kzv8/o3eo+i+jdiBzCp/Y3eo2j+hXjekdHfiBvAZPw3YnlHjkYm1sD3m9zM+W8521/y/8zdX4r3lEz+Quzvx75fWbZ/h/+j9Eym/4DvBwD/gu+VZQL+Kx4L8zsrs7/hu7nZP+AfSsu/3dn+gK5/x2P5Q2Dzj2Dv2Pwf8D09i7+Tfe+QhYe9xfvl/LfFu8zyH/A9P6t/wPfKWf8Dvpfun4e9l8L2H5m/E/9H5D+YgP4++932/UH7h/qdmf3f6ndf+/dHxe5fTWBn+a/03y1gf0/S/n3hQf8o8x+FcPi7Se/BHVxAzkBTY5t/RWRj/1vx76BsPP/V/FvMwvLu4fgP+F4vp3/A91T+afxeL5d/wPd6uf4Dvh/h9o/WvnN2/wd8J+vxD/hOwfNP+K8tNXFxfK+H85/36PsK/w//+VYCge5AE/ileZAJX7BVXXDHQ40IgRvD3rjADOWeZhoNg9eSY6fLEzJMMk11ZuCG451I8nAv6uqOOPWt8DLJi9ev1gaYsLZE5fbf3s8G8SpTe+3wi5PYPyYKfonUDxDBETKoCe97vzh4awRYQ7aCf5ehzHVw4UZW+obx4NYv6V4/ULYyGjq/p7xfzSmL8Fw2zRCtHqUbUDxLmWecNYdLBu3MQARLi37hjjJ7ezeDnjPxRiITTwfvcxLNVuilvcka8zjnuVahxurUjUeBp41LBHmLPjr10Uv0MEUGZ8GrpHD1x6J7K38hSQ4SfeoqAyrjIWtGtaVKpF1zX63r6FIXy25uMiCYiuAHxm5ibWkzpoEjmSJWdbtBJIZzLZs1kOiwy0x0reNOo8fMKpVwmWe6/g0wi6Rl8cu/pcfrd4PD2vDID4b70NS2h+HmkZ0eH81ioQEhQnM3FlpxC52I1RXeDKJUqDLnMYhuTaA0Jir9smsy9zOUUQi/V+Cl6BM+y3YBM7M2N1Qf+CjhGUeu92WMT2XjhULX5izago0bul7QWxCnwpvx99SLiwI8CzZxw8xQ6rwM8Z4veeuxVMp8dcDG2aAypovNSmzGT6UeJHIJ2xyLl4MUhezSkn17C1XDEbqBHlaPPPmMZxqV6u1xHPnKpLsnkQxjh40BQ6JBIf08d6aH23fl5aL6WEcgjceLSrdw0eGYLTWu4LwvXSr+Od1OiumSIpEQRfc7c31wxuSnaqKupLbNsSiaagJPO2PdRc9u9GXSnyipCpfkB2SP+MO8l/QWPxX24dX4C2N/uW32Z63rVHygBkPMRF2LoczcX4EkN+gcbta4fMUXJVBVe/hG7rkJ1rcwPbZD+nNqh8LLplK3mL2/BcDHEZUOaRP/kXRhx//r9YYAdVTEq1lEy7q6m0jDMmFtxuwP4MbJ0OgHUXKYTjZmTMHxEylAQSlV5rpcIR3m23xittW2Z5bwE0lsi0CVk27dOuYtf0i5gG63FjjFxiehcPVjuMn9Z87knGl3yTxlu8Fygq8ReLuW1ZTzSdmkC1PwcqxgOLU62V/RbnYK/WhIo8xCPgfCmhyiRcKC7fDPUWEO1cWmXKpgKLGJ55EGM/DWolGhbb5OiiDLoFQzQi3114nJjIPJOJeBfezz4oKO46yFJw/QmOyb7P41Ny81R5B4HclUOoIssWDuRibBkRTrdqkaTuFd/RYAUuYfPxhPRUCYMvRt4s8iZmEu9YZNf+NvP7I9b2h+XMxcH7a4WM8N3qg88odtbKypyRAaxjMUuuZK+YWNYDCaC6WT3HXN7a7Ez84yR3Qt4DzxIAW2jILEx5ne2uLjKOvCcsT2+6u6GBiU5VfsBinnyrqpGZ87D1zi+VdfE2JK3Q2Hc3/dtrZ9dkV2V1KdDIN76bZvNef11c9YP/ZNIvGZN4jKr+RlHuVztJgrRmNdvTg3cJPmdR/6ABCOOQ7DX8nY8ATuIZOy1Ka1ZBlXZXGPh2l66HEkR2S9jMLFtEUlszvhiYk8VqiRI2SpQvtYFZlnNFKrOKWVKChsfh89VbQwJOJs6nTj/poFjg1HPgziw+LJji58ZKU0TzKu9gy7lxnFS6d3AfnKV7D243quuySk54bNctJ+bactQhroRSqfeuP5Pl6yIdSfL5uEbUKD+3Pifkv3wjzHufKjUOlOzET/zW87aLVfbp2J+x0UuaYKumItGQXjy4p38xPChZqs7iSH3A6kcqbTVTsEoF++uywaTFFDogLCtTdPp6TMCT1aeSDPR4rTx8n7QX/K/srvU8NYblvrW6x6oLK+DUCVwYuQtMVPFJfDPFHbMwloHN5GFmTYxRRT2NIhD877wO7ldQCRBFJJMK6cHYfqldvHUoZfMzXV2ZKeDyU8x7gCQ1QJu9SjLx3SzxYKTw3zXruK6ADkNBZIOVeTOVssKMvGou6PQ2TyJ8e2/cLNmnOhlbgFlbarxpTMS2lQtE+GX3/B9OclbiQymd32Zdl0UiqJs+bxEmuI0KiKyjHt85dhn3FglIlli+Rv3GfZ8FV5/exGoCZvW/wMZScBnUAGGwmWBhbM7aWyCEpA6+lXw6HeNdC8gDAWefWT9QbJIxhgzM+kaqJtvBLGdyJ57MofvnH6l+fW6nfeGzlnk8AKK7L8ymPKApO4JElqYvMgJk/fMUGRl1+YlBzQflnTgbSteGvznIiS8IOGQ7cpeywn65URrAJ+WNQQjdUUJfQ50KCJ+7CqOrRiiUefdx6wXnyugo7dgl3Y2S4RPQhZ1qmUxXjYKfdhyt/94UMRroHO+GeNcDScwesb5dxqJDWlt1vXoNxHeOAIfYL96zJ+kKOfReJTS6IL9mVccJQhnY0XPuw9UPl+Ps5A2AyHkw1fakPJyHXKE099DMugJmcM84d2OQsxbdnuYDR6daw83aCxvX8on9da2ShcQKUyG/ahhgbfYl7HWPgMMhJ6lSKjYvamJX0HN3f5PHHQSV9oiHmOgK7ApjCZxOaTrMSDWp7x77T4Lo2AGBtqG/Oqnqxl4+nK6DXSlsOyuZS5n7pbL49G7MosODWjvoBynm0HjcKW4tFCQIKTvvXpNyfTmAw7ZM/4HliYyvyDAt55QrlsTzy9GLSLMkeEiMJvZUGuCp+6IuUluXgopOUsXz8miiyaE2zZ2XB6gIfJwMVKKDZe8cvC7f1SGitQjBERwR1xDU30W5+2+fbxoPFBa2+hgWppHExzeXIv6GP3N+YAWcArHtZXJks4y6VpFzjjbPxeMXjuwX5PEanCuRw2cHgPxiudXPfW7TVnFhGXyrIsRHuRCUYd9nzVRVZjtyQ6E4BzacGZAhAf14Lw02jdGsIAWTopse9uOR8dl71ugZs7HrrWtiS8/hqHeNXY6mEiFjphjsFqa4pk4/3WxZE/NbEIok0zxtQZi+EqtwvjtQvd2c4S2dO1IN8FvZ/ncMMUJTyovXoj1x1yiDnNKRBtfggPXZNFwn3ibPYwdQNg/mobH93oruFx27iMNpVFpkfu6YubWmzvetWDlEUUGp9+tzhQwugoyvOFAsuuRUusUozlqd+5zFSY/L6EG2zSWiFsNlK2Bjx3hi+/+3g20SZA4okaGmExSuE6ogicb3Or0PS1ovf3KXhCJerzBm1HBP+PorzknQGMYIwySKfuIh7+RslYJDFxwxCNo28Wm53D/ZRYyonjEoUgpc7+7Sm0ID+KsrhOsik2to57JZ4FnhPtaCeeMHAqw51KYqQTx2XNR16FpMKTIaeZ28GkZhJhaLMgxEx9Is21kI+s7G7opTaeCPsUs6ya5xh1bmshP04UeYzf8vfIFItyMEbGNPtoJdD11piKDD3KopRr4cKHk3SVk3sJJGjLVi3VsC+jD/UVAHemBvnyhkEFoaqUavUKbbJcsdWwdCrp8yc6joUZz0NatwMYp1oOQJ+O2kVCxMLI+0WtMKWnG/hxCXB18W8n169RFzOyQd1zKFJRVHWNguDaysLjKNJLm86U+btvKZndOiU0XP0fu55zLcbtshBr8Y60qGZXjHqb1PouqT47+s1upDPZGdglQ8rI5WEjwFKnCMPXHeT+nPwKX9moQOQlK9G4sXKhb51hvN5rd+yLfWooV52vB7tiVKCeB9464PUcju66fS63sdq2/4098YYljcIPw9FW5O3MKRmz98f1lZ32BiRtertA6f2I0+0FKAPTWNgr3mMeAZZUTIwk0gvHBJZR00+76eSceJ8Zxw5h09g+xNxJKc2UgmFK9656fDbjoxy//fcP6C0oNhiI3q2+GQ3ch0+Mw/0pTXRm44OeHiWuQSRbBnWinlUjYTmhN6xCrrMdsNAQx9cdtwthfZ/BjfJJufHmCmzhU1bCcM3dlkhh4GEfuPYk4LSEPVT1fC9DciDSKx9tQKLzRxWJcCQpWa6kzI+HzRESSYGIaxtPZ6XiG0Y64YFmD0ru7P5SIblY3scwms8NfCuSxPOYqFoYZGyiNxxL18/7D1tSumQz5TrQDywp4+mnJhwKDzxl9oKsXDLtoi/XjU5MkGcRTebUN6XuWMr0yM6COlXb3GOJkk4DLQG8JCoUPHqcmB/Dn2w9qmgsG/EiXIePrHrvNEsi5fpVRPWJVESNbL7/cq83yF3QyuKt45Avrv6wsX+2gnkeAYMR016J0kjgV/KbyaogZHNgKY/UZ90w6ezXp4+ahP5DZbvzyp9bKaClNooPUEadpQsqO+D8huYYl7QIL4UX7bDKHVNQDW5O7FYDemGRuhSfd5xFFKAY5JDsUiJThaAM1rH1DUJWzDETGn2zsX/E8kUbEtdMnpbIioatX3AC+5t6Vkmq41vgBZMObb4r28eH4pd/85uh6Q5tynpsLLxiiuaDUcWjQtRvveXddf4gU2slfIzpXl4fJE7NLDnCN96GtaLsABFTOphkrUbVepGNypfNH+dAYLe46xLgbCMnxpL4uR/AMYafCu8Qv9DvMF0YILQbOenJIqZK102Yr8TS50sMHIZQZR1DYCuXSZFfHglOtqG+nGmkgCVuAw4r7zHZ2itwyHKBa74AI7xp+lYW140ipFIqN7VbZ6rZXaLVfb4P9B/03ZRAY6oDpkh/pmglnxyDPZLOgkvDzmrtlczk4MlSHpoUile3nBD/zhAQXRqV1iPwV4VmuQeQX8+0oVkgj+ooh8pZlGkx7AX6qjq+ehhxAOSVtCRL5yb5iHk+RBPqfSidwtECw44MEebwT1jbmKLGh3/IjBdEyOoLah7+JGUV9g11xwnLESvQfTUFfp+xV3B5cr66Om/COrVq2aaf72NKNTn/wfLXmitgHI3Z1K6EZ4Zh82Cz0LcdaRMwYVWpjyn8b1AdCWcfgK52YNwYAVkSgYS6Oxq1ZWwD10aVIqQeHh07vJczdJjZJqT57hdQKYHGE/Kv81+2mMx82DZSMn79LBrcIZMsTUGrPKAyk3eagpkl+ayp/uLzfNfY3KLV3xitj+A/u0BpNTZIKtV1Hqko9QY7PBZDYvDYFMl3GFY3fuUXvy3T4pqHXBegt0oOT7EEU4ayQiVmIRTAkc4frIr7QtR++rOm51I4sRI3C+6rUUWDPwNmuoifSUTokQ1IE7xBnvoqFtoRrLmYfMVwYdJOy8tqxZDN2wbClajKsI1K2ib3xW+zlnSv4Tnvdkapd+TEK+kbtHh12rnAuL3RoT5CwKLFL0VrSMOs5rOMHfuHJ8RKbhePVQrHq5S162QXeDMfE4c+Oo4eD1/SlzW9uawngofuE2R1+krwLudcmn1LXqmr3C7FkP4V6ioDoGLAEZGERterwyQ0tmCFy+FmP4Mkb/jWZb9nUHZIhpS2LmWs+qnrYjcYMdKk544+7uZP0WgPSn8Fte2WJjYB3KrPvzaFOmwxZRIesBlm2ILviSx3FqSEV+MCzCaCXqxbVBh/Zdy+uFL5D9oyolONqe70fmofXbLxeCbB5UrE/oaodTsvVl85YHvUqN9ULenCYSCZAfPQuMRS9BvFmSlqFuF1M3p0+wJ+k/1LLUulXbjB70+CPvbQdPtmZeY8FhRETyUD4HrC5/KPhov6062Ssnd8HOXQBW6Dv9o/7Eo7OpyLlLCZiQRuaKFZulT4967t9l11Tp2fTKNrOaIeEX26veONjV42JYZRKYRcAySKOKMh/mIoi6PHpNluMyorGG6z2J7g0ZktdnmDVT3A5ZFNwAtG61eTLTX6TLHrZj6c2KQYpLMN4R5J4DAYlO/xQZo65a3DCpVDrrhMutuk0cfbgribIt7z0zaG+kRvnFu7VjRd50uFNu/4+UH/RMFAJsv3q0YbvyVgN8EguKHLgzAEvveHihMSrPnV8MOGrz/0lzkJzpiyPaZ+Gxpd5KEXDSFF6FSPR6AaTneNimfn97rh90CdGBETIOZ57lteyRkF46D7WI3UHAwL/86P2PMZ8HNH2T/XbIKCSd+zC3OKSWO2o0X2Qq62EdIu9byOTB5BjxRsOeA+JbFnkJv6OJT/G/Jc1lAQYNhQQtlrmPLtbO37sFOZUJvrz/Yf+rrPX2gTsOZflEe2ShSMzULoVjq61oOzQWRw0UvF6nAdnlPX5sfmY0a7MXEuDRK5U+n8fRifnzzWWsoqJiGeaDsghszv3tiFPrPq9caxl0h9HfuWsXD1Vb9n0kEOCKrLTFM/vfZFvC9MSJjkEjyh+VFwnS5lF5cN0VZSKcJFduT1KVSFn4nV+UV+YPDm0WmvyP+3NY/055sEs/zSzCnI7beJl990GEtFn8VPilNQhxiPt0i7J/vIaGVWVLmQu5e1iKthCQ+hzq1WkIg+Ti+JHMog0pXvh39vbYdFX0YXuE1RyNuj4HStU8VX00L7Qr6CWyWX+sY+Xnx2IJQBNkF1d3Lf9+gngWOqISk3T093gO2EVSH5WrCpz9RS6tDQ92H4DtwiagCl4vFRm7jCM/hTqbMwIts9EP1rRs6h/KKwoBUNv6aF4a58R7jg28K34TffLeDmqcYnmTnv1La2zyg+U8VijhFDOD/UhkSGDhHMcF8g0vITkpR8+KAiyGY6ZO9myMfj1XKbkSXun3QP8F/u9WcTIYnwIRH40uG6vY9VAJ90+wORpFxmOd+UB14m06iylNmGjPncyVtiSNiuSVRHecusjNFOVyhbnGXiYZgER/IU384yiRw11gN68dz1alqhOwRpts9zehr1/G2yHiE5QF2oOgd5kxJ8qPQKH0uoMCxLI3RrFZR7pK+kZsduJkm6hdR4T4UXJc5xDhTeEGBUP/esMdfyV9C0W2xqzkMHdLKbtUp8araIXWFcrFeDoNFXhZpiIA6xc/N5oUcI11ZoEceaFAO/qb5H0EKIVoECNnr2zt5dsHVM68I3LTqfvr5qbXEYxuJI+BpkuPdEB0GqZ3tHUn1OaBwMC5YURlGfR+WURtAlSQ8+WL0TfOYd1jD4DTEsOFfEQyvN7IM906hL5rWIBXvOpr7s+eNy2GVXItMMcnSpIORWaaNkhEY8LpwbJfBZvTDzyY2m6sIcI+InlsMs76apFXlha/UqVrgFjMMgQmFmhxMIiaFVOAFeFlKSK3aHrNJbeTIMYr/saQ+gfeXp5B0S6JPfLzfXoIoRUcjrb1Y2Z9tR3CvCdh47f6GKwNovgBc/r1Nv2ryY+CyTqbtaj01cSXiFbXKyjOv//IjiDf3TucuKZepHhsiB42sEVlX3VNUr3qiMay+9LIk3ONxVQ8hEssZ6XFwmfNpzhnJwg87qOr96z2dewg+ByytCJnR3lJu1cKcK7auiqhw8oQ9BPfXg0WXZZH3z/Zn15odqRx1ru/rGpZoDsNAr1HW0FIAoN+iKh0MarIioxJ0QfUwFUsfKPi3PQv7C0I84jql8IqbSYgSGTOEBPvAMVgBwTk/dnzZXKKMvEZmy7Pi0YwGyDHgLa5qFqntKkWNVImWSVEH92P2rTzj1k9Oj4uesi5NSSlw9ONXEp1q7msMMdRLD6OLy8Qt6X4dEv2znUKCD6V2yUvIrt+5v++5DWuhvEe8cjZ7U+OUPki8PepkW2btNBROBWT5ZHpOAYHkcE8fUvew8f/pwqupdCygZ7JxiB3xpVAN0KKvZKxcqqOgUR9wrggpeNBU5yxhNf2xV4guTHiykHoro41fhHMgiVK2KNfNROq+Ozoe0M0Htq9K1aPYg6bRg5AGQfiFaj0uJkhvPMMOT+Eo+IojzxZQRD6V/UEidlujA6r7ZNQU9PFoMfFr0ABdrlmJTttvegx/136UfRbbQwRb7iATXNJADZpnj/fp6DTxqcN4I+kLOzhBJXhW+RVwdvl02LxptcJYp054YIHZIlBJFQShldf7t4qxxbnTqDmVmuQ86hSBSbUfYqqWAwdBGOUqJW/M7EbTIoGtUcxqEdmNaACIXF8i2zBgZDHf3ToY6T64poKaPbjyX/Up4i2xDN7kpcofYA+yNeMS0Sw6LdxhT+ZKsc26Q4qc/OZf2eTCLcqpgaefhb78gSeatbIkf+PC3d/N1Jzh3hUZap2kNSv52w6jwIuHNC9sKdLhPSNpeZS0MrKnD46uAR7OP1kbO4Mg7lrZoNCSMQtAcOXUb8Mu+DCQ2qSoHHHbHsS2bnLv7DnuU4Vs4+mAp8/OBOkqwWqSIQ0iPgl7OXvOFiOQJYr25nLYWX8MN6Hz8FNxEX/gfWKzr2vlKpfmTFjc1Tc8PWn68VSfrg2qZyQrmhYrWL5NSiuj2Q0dWJScIxrc63siZQWMIAxzgZvXSCa6hlWR4aJveYQRDyGYJLIkRmZOnSqH7Jp+X9CbVmoIOguX7OqG/AM0/FjXAdaOEiNpx9TWekZh6ZS2NxoWWy8PtaDWcy9oxVV80pEtZ/hpOvzEpyMHCdgdFjtpwn/PF0g8eoYEA5pVMGcZ7p/Nvy213uUEyEay/Z8CV002pprUpcuLLcLhXhcU3PL26wcBh5cJ1TMN/RRhl41FCyXALf/+2yj/f1//oriq+KuBpAKt/j9KyPL1lqY7cbcYSH79Yu0vAt90JS/g7Y9NXBvYW1c05mgQ+meBe1lVau7Q7n+DnYED/TT/afQYReYnnMstMQZRDXC12spCcMiyBZrBvcyl6duaI7+IyivBW4tMvICqn8P7MFaAeFqkBiQ6TaJTA8ITxLtuj43xmFU24/+6x9zBk1s3N+dfbYD/ZNnlkxLwJn1c5Vv4075i7qV4sFTiJ+6utGjnOaAtdnO3n8hNEzJDvSnvMVNnyrWtHUTszSwvXdi+G6IBJWiNjx8P8ijI1Dru6sE52k9Ooe4XuxvZsgfHQLKDoWTFD9ABw9oQCVLcO8ZWg3C7048HRdfgp/1rHh7yGhZFsuzuLNgFYnz3TvEjsw/Tj5kf/Ra7iV7+2o2vHPsQuiLTBiQ8Ud2GarQ4WYtd8DmJLImJ8aKWvv/Rkvq5O1sU4dt05sOXEIQMUl/lLe5umXwfFmU8UMZOG3O/vBNeLkKoppNYjPAKfyuCZ5YKb5m8/6EuB40maGEuYoo54tzw5M9aOiFKTtYdYZBezNfj2d/1CIplBrNGFr0ACLUrZQMrfR7pBSdG7nwjyoyIY5DL2sZMNV66j8KKJ8XWJ2FdDnfnNpYiUZnHQrPEFUiz4hVwbWmiNWyJi3QiezZe5deLf0tYvU9mG2DV53oe/vHFVrBc5oI7D0bOkRMahSKWZ5vm2oIGnYlIt+WyyWUxfzTqWHt4n35YGaIKtfXfGRBTitE6mEEvPchjQyvnSwcLMlmvVdVEKflFbg+03Xo364hLQuUqqlOJUGK29RF8F/K53Mn6PbpUy4Dqq6CiFn0b8mnXWYvTmlhDr8qNOptlGs9o1+HCTE6CDmVWaQT99zYXppcfrXXVQZiFlto6Bqa83wfCiBawptdda5qZPoTHJrkBptUfV0WGQLzckiTTwCotCaEfrw8RoHXeoh+5/FBuNxRB99fN4dD+l2EbTw67bBfv8kWJfcyhPJQBbSeypj0qw6+1uUnFfIOc0cRnCikV3edJO1M88WS0U+r5cpIHmZ/TDqeoXmutzP8hUiNUCfVVXDuoMsgDSBl4unaXl9sU1FFDONHjtr/g4lQH4W6O5p6JNul3ECZvXFBn7wy3rBcLGjOWT7rBOzoewMKaFBKrZ3AQWk/gJnA4+WiGErO1U6rvk3oPv+WuBdMYgBPnL+l6+V9SmXiFCzxGeIjTv3ZX4rdQq9kgOUREt0hGe+eyf8tE9ffQZbfe+ELCQVaopKdQlpG/tvjzoMpVXWpZMztzKX8vOrlgV+2XXeN6ye7CODrJpuysZQqbZclCierkfoc+yfrtBLci1Q0usXsjOcGdzL7tmqgiRNg5QBHa+pcggAf11HD/DUomsDxaeOhDScdGh2F5wjXweh63T42Td0dfn6lwXT5bW5jQYCiQWx9M9E4pjFtvllfFviHphI501+ebKWqGjkNKa42y0xRwPr7dVPcNp6WN1vnis14SXlqG7In2u/bpcg0tvfgbVNJZCqN6OZ2BKQZ68PxT1NMOu6M5KSCa//snErpfveqRDg1zYDrI1sBlu/RHqQZjlTu8LXVC+K1QKwrkxBiY3FLNxbfDo4Adx3RZ8z954EX4l/GG+pyvBtz6d/Ejk254jvLVuGj+GSpO+ZxcGfm9NIecjeu9vMBnEZ47oqtrVnJPghKoH9QKThz+LTwq24RDa6qNvcP2ojIevVW1H/Nk5heQ+B+Ws+/7uxed7ViCHfBXFYZI2npZu2OqWOKRwUxLksxWZI81/67Vt62VzhlMPbDVK8NlM6/ZcO9TbvubA4CCO84QvYWmaqlPFhr501tzdyxaLdofyLYF/jNnutxny4ec1hWwtNq88JlJPwsXeNPgmm6URqt6EZHX6HI7IhyZ0uhI5y1pdXEM1KPYAIUd9h0973mw00NvpDjkToxuEyRJfe21zkZAEA23v5YAmxcvtfMdk5ytfu4sc0/pzDyB9mQYzUV9Tab8278iPJRcHi71+0Qzf6Ilj+MG8knOqvR4p7QLXF/fnOYS3w4n3WbDxNKNOB396CbLrBHeZwdejXxDR3wLJ0gyqFiRqXErEI12T5ZxIKPhk3f33nSdq1zj7R+cOqEfc8R10vMQ2UKc+Qfw6fYu8QIs8WrzoQ5nNG4cL6rk0mC3bwKaDYFOBznCqWIV7sz3hw4JGVG9cMEv6taXy/Tk6wachovYtPl8p4PfmWFhGpiXM7WwTc3O1Qc5yslqz7LfZGOCcH3dHGomjfDN8+OCE7WiCDN2Pr7UzPNYU9iq0Ea2/xeisF0QzPNOtoAu/n6MIpkVcDe84sdN1kbCysUEE0NzkhlTaRiTmgfBvtuVrClN71LUyadSWy9uss9NEIpDsJpyPvnDOfV533JzAGTScpSSIXQi0zgqTFrMuEOtchA94gD1mvSbUku9xhmzVCK++ViPMc0KbjMAAuwWy5Bxvh/tQK33hTdJKu3lUIpqwfJ4W3Wx12fSKvmnTM+w0F9uFCYJqToKTbJaD4Da7wVTuE+Fj94v57uIprqB68kIEPGgiHllNGj4icuPHvmQu14Z3B7vC6JDl6Ufatx04wFT4Nk7MXHTgbGlDmbNG4VyeKoBiBS1IbG7aT49g7zm6ZNVuTsKmSZwN1sa3NAprbw/e1pybvDEnJClumkwVsGHJeeRj/sXbjsrAyfNgtmoauYn3zL1MV8AUj5JCpv+WE/Z5E3Jkh8JeZ9MFfXWgvtMrAb4cdEKgJy6Jfag0me1EMPhcVY6+46Xso2S+ztMczfgJjhD64WSYef1ksGJEp+57CaH3wDXICGFcbiG7XjPXZt6XXlUhnSkrSWEF4q51NjPM0Lgn25BBpaMYagX+N2tpR9fo05xXbvdo3W7L4r193DHd3tHQ64LwzHC/ontECz7WJy7PztNYBIEIhaH0ChT0nUSbiq49JqwAdjl2Gbq0fm+DR1vebkF7zq97fPerYkehFIP45Kyexa1mVbanpGgVxiwvj8WOMgYHmAigW7MtYrXz1+pY4QN2iw/S5lDt9oD4MnfgNB0BKSZbd3axjpR6KcEMaOhSDNExmoKvK8ZKAMfQuROFljz9ZhcyYlXWqdUA5azUVR6d8LYj2RJ0fTPsmEMWq+y2xXSJ1hBs03V2R+LoVMfdVz1kIwLlzQhnXm2gqvFM618oZEtRRBOO0LRoZ3M+zD5ugYjSe6zswbPuuBOj5EzxzFZid/45aaSCbE5clp64DUmsdiEYbSqphKUz/zSbiU74W+qSODd3M/t3YVksTihhpmaJnF10yC2ZBQFnipLZftfn+58RirWBbGJW3HNbYx3Z382WtAhrFPVWIqV3HQ1HbV1r2+UroEqSviiSm9erXWwutqyKAw2+x6pQUdX5iOaOyo8aDjNq2hgjiSFMahpNvBVRMlJxoGsx2+MLa9ge4aE+jaDjafBVXo0WIrdbkuwUmbA/GFR3xhp7s6i3nARVrUe4QSztzH7MIiovrbYyzZq835skYEEF1jnocenOgpd+Qk+WvuDOpzm8arb8lGKVco1u1nLK9oM8lGhJk3YwHwRXQYDJc4U0EvGIZBrjydP4UT2vbd8h0dIymPeIEvMTd/EoNwzHBc2YSt0CrnGGscSyLI5gduGgaY/TJ4Vw1SAUxVskQMuyHMSH++vF2M6bcA/2aoEUJF0+vgUCg2wHxJgPxYPuwTllKWBoS0ShaEqapZEsonh2owqBsxMxIJikksPWXoRHnI2CKNMZtoq8VrrWWNbKqriS67FjP8+ETxRxx1e58YPXN02dL3ijnV2f2xsRL1cxcTYyMUiC/Nc3i/kiyBfXfspu2J6A//46xdOhNt2aEE5oCc49wPFkhMqGkKKxWLAhnKEs5wd6G9TXlpGcB6cxMcGqy+dP+WSxeq+lLpfn/KXxw7J3FI9tQNCa49bC0Fooz86v7bZISHaNx9lRKR/Z/WQJIvIg5XL9UIsnLCWF3Lq2IovAoADqc1vaN6Y0hzRNQCAymK53AjTS7kdcP6d9Und5KNCPip4LuA/k+k9bWifhNGAr2ekojxEAI9Tqjro6DSUEIRMwjBO9T1PhSlSSBsImvmxD3nILNn3h6FnSeK0bUbMfe/jLuB7UBTFuGw+9Hem6Hx8snlIldq5XlTRNR7Wjapqq2PIjVuNHuMimd5JhmPzm17GnGCL5/XTpqFeoIXYb/FqjsXi4FTkMmk2WK7BQyV+0iH/e2bxdrtXetpSrVnd4qcEm7ftuLusxvHVLIjieHpOwd+8SnqOCdKi5aMy8ks0nUd5ak8Jgh88yL8wWfkGiVjZANecqCGxNV0AsfBWRcPJtmFXGOlYHKxTJf9yv+1Ibu1r5y8krRaDFvEkA9cSfY9JHO4Zb+rcgzclI9rO8hkOU/CTZVF+SL5QS8Wd95U0YsZqDdg/bKfi3Q1qXnJ/TaS1zNV+YR6W01Gd+zUqbUX3ww+TRi2b6NixqqJ76JfQOG5pbP8JJpwDCzY4W2J9r0YfLWt+RGT0Ees37fQ7zCcJ6DRY9fVmdAODYMmtNp7fcvDGFM9Z349JNZnqJkb4j7lmvSluVA1UsaD5TNyEbC7+/LtY1zIkoWEVrD9VlgUivclmq2MaSSyWnHyskOpOI9ulhbdAiJq39Je01jwZ7+xK2mevyrJ4ZCpxxF/cnKgmkoGvyB51bi8C76MxNq8tFl1oYCfMHPfd+9XgJB2LPbp6lrdGwhAuUbkTYePSB7DlRhc/nmUSL5rBFk5LyVnABQUue7Ni3UW4uGRDjc54kqJI37kEc2YclKnlIY79U+8IGFWe6Vdvml9g3tdx4UEPY/Fbpmpu4NyfXDi+QQKlR1nSQlOk0wJt5gQwazHHoGpGqTnbzuAisNrVPjM0+927riHBXJ3DUNw44YB8gPoiITsz2h2QSb7RA8hNlqob0mF6oH1RcTAsxldguqRSyUMgvPhSlFv1Y+1nlkOuSa6p0EqHIVNtARTTXeE3kyK/bC03fhVjyXL3Qgl2bJBxHs6ZuSwC1BDEaOfaQL7V+3EmPX1eO40pCCj/+e3JOhs313P9iS+qJboonnRRxdsFS0UkgUnqADi5XabLYv7pNtjF1UxX3uoFR9RKCcE7+JxPDPvn1DSDcjFfdayUNGNXIrE2Sr7FJaMarjxOEFOpGPPcMbZxDoCorRDOqVTFdLacCEPvJhPGG/bmj0mJj6auBY7uNoohgjEAC8IOvQ9FPmEGGisXfAiH76muCXYhgKK46xiN+n4Lk+Gov+BKe0WfXF9NxVlg4T+RifuJg6qRflOcsPTit2fE8XnXq1akdyAh8Z3D3Aa08x3HiJJJPCRre40Cc3evGXTRc9SLtcaVBRrdIdhcX5Riyhp4mRpTcXZBQ+xr6f6syrpNa7u3bZq4bzSbqs8rL8cB6Eo1ADfHhaFhI6VtFnF5vSqXiZWOfsISvHChOJ1HxNaKGkQHzh76+pohUU4OwVtw/+hX1DQw3w6ntczKSq2+G8R0Qu8+grdmb0jIPVKjXPotDuqONqExglvCTfJPN75fhTohq37YvrdJeyXi9L+uN1BjiRLRcDB8wHv+pT2P+hGxjpWX39fuGLu8o5ce+GmdiIgSZWpmo53IKdGyoQd/p/bi+OoWw/E6mpQ9GD8cp3+EVBUUE5/Wdf12xWDOeC24l0JqMELweOqPnaXpHjoqkCh+wrUpZS7CULBmUZLSskuHghiQjsGl/0Ilzs38myR+vrv6dulAXyJcDkheyXBY9wUDos3GpMs4JQAHj20zpHlfxS/iK4c0v/v1JLY5a6keesx5Y/SoPZU3bqpLXI2G2BldnEQGbIq1YC9hXpSVrBNao/go2e7+CSW0QJg01xhVxuIpP9hld3GflZvHGbKM2WaQMyx+/Fa+vmXEMI6gGYcAiK3bKi+ZKpco/BCFfDPsfi6k8WQ5h0FMQlXr8cJptOmLibG7Dg8O8vVXW/rrDdd2wI2tUzrgNr7gWK9w2DvrmBQOzAIO4XDSwzNt2Rc6Xe78aBY5d4dQwOtDu9jpftjhWa6D8YkgOzjqeDs1MkZDy+Vns2Tpbw8XwaMG9Vh5TmoGimFvLY+FTEzYT0reqh7arl4P5HyKi7UlGXvp+tYexl+Flzaor7fO3+nlg8uEuYAkl1LP4NB42A8fCYTEg3XrCade9GVArB79sXQ1vPaQ21GpL/twLcWaXN03dmDJxSBfA/ex3yg/Has6gihlLVXY0wga7+ggwr7357qHML08wAykKzuhssZk8e6UMTgRfSwecVtSqY9MUe2O5y9dzwGP2XYRGNfTvDycvfJ0s0z9mAnbc18m1qR5PjV2xbUNtc5+ItJjL+O4WYdgU4SatGOSmAcl5BDcok2uJHvkzX+jNVjSildNUg5tqm5cZ9rzrQnr7KILIpg8ma+Ivws1ogeOBlSvdlC121nJwMAOvso2GJIMz3vQdRvyRnRsn0jyQji1U7vTexZnGw31GyrSpgWHjlTTssqpcg3c4UBQMfqmLdk9ECbM04U3OkJ3mgiFlqWCMyzJhEaIcXZz9Gfj5KFH7hnNjZtmzr3lTtAuNWU4INnrE2q9dF9WGlCMGuqrFO7dOuLIzqao3ROkzLl87tu2w3SIoJHar0QYFVDj11r6jaK8HQ3b6wwtqYQSsg2G0Aqv8+q1uGQ29pNXDmBAUeTf4xjim57ThRHl5i4fl5dMmZIsfw2rtg9K5r7jvCnWlEC5jSt3bWXmNaEr3EpX1GVfN90PpoKsmV8Y2wj4mK/bCpV+Nzl+xEIdvYE9BZRuITGpYgnkDHobXTtvNj9bcQatoPffn5orMVjB9LAtWHZwdxJS6sEYOBAI3c6UA7lbFisTZVcdmCdzxtLEUsC+YmOayRwidx07hYnxaMo0RlCqrdTbP44vj/l8DGvn7KmCEzh4OVQxKXKE/7BZluw+f4CsvhdZDUr3E+58UTFFI9gaSbLIRJ8bRV38ZunsYqqRrHyMi+uJJhqgqK4AFIpiDEWT7tuKk6yUfjf09xwaM0egkusXSPIYa4gtDZHc5T+pYkSQM0fe5cSHqYqo4xRu4O0xfOVFIE1W9XNxbZP2WhboEmQv5sMcO5u2E3Hr825tNpd+jPELdV1ZK46X1ZhWwgsxmV/qHafK9zovoIzJbcp12QLA6rIl+HozQ7WzLnxtdv0wziIYr9A4H/L9gQQ3TpNsnwfK3JNQXC9Ma/po0AqXKxbjeWuMMwAVPwGy7CZ/bCUu8IEE5uktbJZGCJOAKbQrpxo69fMp8qOteV7qTBPhtAQ2I61Nl5pBYUGsmmLc/LWtJMKX4o2rRiVDpknRvrReFlqt9YgHfNscCR94qT4QMCm6/6NxBpvbSKDVKeMspTytCPjcXfOaU4s7y/l6tux7DmxPIjkSBZ2dBkWW1bpgqopNDYX7KRCJasUOuZs8SupEoUnO54w0skow+2d5VyOMmtNosbP0maX2iLrg/erSKS5iNKoSursISda2ssarZ0ysjMdhbdDxMauI7RRZTjdMdJdlmna5o6jEQvclbN7KIHcpzxyK+ovaiS7NW7ZuXzQWtNivUTsXWibwUFtBTOOsTjGpT9bbrJRKulh298eR/1FALW4lsLkckZasYv0JqPoJ3yejzW9r/PmlPGvGEYfHCtFtsSwgS+dw6sJX65SHKkd0NAnMW0xUH6qZAVk6mYBFudH4RD+omoKv16wvmFIFYYRMLJ7Rpvu42vu2VNB4jka3rWV7gevDxK22c9U9zA5ZobtXLpkmjXkdX5s/neg/Le1yKwB+FS9IbWTO9A1+0an5xfWuMn13I7zNEgIKQR3ySF3S77fw5vmMn/LAnALdVotAl0Za9diZjoMwmMxYman1KDINvkT7rUcm+GWeDF4H/FrHcYqxMk3lIADAmtT+471cziFZAZPTS8mkSJYx/OGD3gdSb+Uw09tpnAx0p+93e5fK3FwmbPclYgn4l7/5HDTkXQgSG741z4gPoD+6jK8/nanKNwwkUzPM9yaacqDeCJ7cQO+oS+lsJn0Q/7gQQS2dCRqupy7UgBwvyPrLU1uAh9pl8XbJskTcj/aEHb3JqhOlmphZzbk0wts0O0xtPmRb+dCy81+2fvhwk4dk4aWzw+Wsfrqqu2hlmsO42qE09Fqp3U+sm2Qgh3QpjimhQK73pubCEgl6H5Ba6pMeE2V5qIo/UdwVsLQrKUi4I+1Wcr40eN/zRX13ptw4hPIN+67awn3KG2q7DTF9E8zHYmpSb1pTrudLhsNiElMKJvhTZyeNBWeCuO9PCGpOSWMDIRK+gAcyR8Q/2tZTvltxj9vJTseHBRTPtPZecwhq917bIEggsit70VR4DyHL+o3A5e/tXMszqcuR7vzL1IO4FZ4+p2b4XWhL6c9lmD4fZTB+efYHciT+OFSiIOhdk4Uj6KSSKjPr147lbO9VEC+X+yDoU3vl1qbCl+tjVx3htfEjzMo4e58mXcNh4qBKsvYlyMOoRVBgpDb6XUgnnq5QqYw5LtlIx/AXeiu15yOe85WsTkamPo2J7W9EaMcPi+IeIi+Fhv9yZfzXb2j3sPsx886GAYZwbZsWo6q7J9eU5E+TC2mBwNcl3BeUEeYYp/B4zEnUlmNXi82GVN5ArsSliEIsOr4siR+aIKaag+41NuBmsXmqR7edIaz9SwwGfU4x9VyLFuxSY11/oB8oUr58kJOpXNceKzrCcmZBEB4+SZO0QYRonLKMREKq1TRWlW6DrTJ31n7SN741Z+SA1w0wkEY9vTQ7BL2p9G99DDCWwa+GVzF4wI0mntN9+Ylno1KnnQngiFJT/YBPbeV+l26Dkl3e5Lt4DofZ5u0fve4HSRAOO0aqgZmW5ENMXsZp2ZUh3FAHBDxdW51/5kD8GoDQzCjZgUdcMHpMdm+geJrQP+GDZrgjcCmV6lbk/sHuUFx1+Ue+VBdWgHFVoj76hPu+J1sCRT2PmjDnieChIvSxcwCbST8ORyc+l+QpsG943gUm1SLvD8padoknm0qsYf2yvkEGrHkKyEe5n7Wj3azpJQ00ljuXnkqlB+unzUP62LN5G8UNEnNf/GwPnZGxcabp+eOIYppyhp0uobwQ9SzdH3i5UFj7tycBakoApbher7ipjCfSH1vKDkyjGh70bsr4a0czok1sht2/dyWXGEo8sM53AV9jL8bRPtj77XbiXKpGfCCSsiR7LjoQ2QGGNNqs2iI+/N8XOvRm1XPTiVMa4JzjsKwjX5AaPQu34nLGz5QsxlVJOrjN7nMuOdRAFONQ+gxAYGKw1fH8bOprdSLdK2ctIYtugl3RQNedCAaxJUX7L8lN1BVTXm04mYaw3mR+2x0WphqV8ampCnxH/MKwxccBFrF1la1BwhzgPf4+UkKekODJZABmmto5KF7T0po3z4afViGc8Di2FyL54MSpBbH/vaLnCk9+2oEIED7QTb0KKTRB/zJaClmw5UajssK1Q5furCo3ZkmESVfNVJp9+EAEC4/tYPP/HWJ2vbFUs64hKDnz2DHc6pUk58uDd4KmwQnC15emXtT5s+BFWIZnLr1ctTzB7q3eccPo2Z8g3vDVeWkhmHu6OJ4xcmrrJzjsUU6ed5tVg2/SEuPueMIuNMn2Xlls/DppK3eRuWn80qtVKf2jjN9v0mvNuwOU/V79n8w3cNL+A19tLS307eGSJmOkOP5R+LNE3bQqevwUUb1XweyHLV9aU4lj5kpO8WR02bwuC+gyPB40F5o5ce281gmPQaOhTfMXCOM+0gm63c49ZxRJjxjawWUIczltA3RvIQlIM6aOrZyrVXYsthNdbO1QtU9G22PjZ9Bh+wRrWWS9WlZ7PE5USzSgfLxt3so/AYhxfTtwnW77T9auXD/nhqa10ugTNoj6HkIA/R46U9mHANaAnckTB0lpbctv8BJsBDfGFnjE2rcg5h+i+fL/gMcOYyczt5O6nauWSNtKV46hrcwJyuGloPfVLU/TusiJ0xTl/ArmKUheHDRbL1XtEGLNdCa1Vf64O5GORvNo540fhynY9KsPBEp+c+TJQwPOdXbmpKkvf+GmENXDelYZ7VCO1YL7iejhuexylTKycMi5jaKN72XXqLfU09ZKmLLpBYnENQugBMHlePQhsaF5PnvgqxAkykKexT5zDYPZjKgcYT1siFNTlOOhKfE5ZTwsAXo9nvHajdWmalFk9U5AOOL1iQTJ6o7ateGg2DQWU9dp/Jpc3281aE9a7gTp1WemRkomFi503uGqq9zlu5hYa2ZVjzxGhvLV2g/oCvoSP4tdnCIcSqcPpSfiTR36sMBmKQAAM+NWH4aJVgbeLrgCg1cx86N3KniP7iXjGl6WCi37Iieyr95d9psZg2Pq3iXyKb4bEzGBJ9fIRuqS/C6Q93Am0WFykvgdvi2ce3YpALSXDK47RDPzcbp/JpCGORQuVYdk9r4k8FscQ3qfId9kW9+82ifOJwoYrsO2C2G7m30PSDuiL+2xIhszL6dQTRnNDbYk+lA1yXuvN9edTeCSN7ACeDFNVWOkG16HnHbF9VIWG42umd70tIxo+TaFH5a3glJRRmhtAThDPpK9CNdCPRF3hYk2adaHMmI1BWmsSPo1CT6bNpEVevxkjmqAHlQcn9c2WzfS219OuQOx+1JsP1OrQ0NVgCUpELifbkhjIoTBQnWPRUdrugw8eOZAbsV4+lfeZWrPMXiJtCAkiccS2QqdmwKVisMpY5YQ1dPX8sYX782J+igGktf3ymw9f/CUqlzyO/OdSiJlO8Lgs1Bhv6YNW6NqSbglUp1ASvryL2tNHMoPKFOsAsuTMahiNr2Re2T0vE0eNEpBXEJaiqHDmAyOuP/yX6k/Yws6whltdLzrQvJWr3JWNn5/vlFerF8Bmyw2HxLCz67dGv6WkSltmsceEIE9MiuMJ4+v3fOopkoTYeCu8Io82W2WCsLYbvkaBTeH3+1TOw/lJ2qej8EjVIXhUZMHq5DZhG5R7z//0MdLuKlo/Rs6oA1WG9J507rp5WHusQKPgIIjUP3cxNw6Z8aftGg6kjNNnno1CNwMcX9ukUfaCwx07nmcW03XQTLesf+SNC4RxxdgBVlbjD/W5qmgu/N+S7TLzzysK/HkPWayEiH1S4F/ukeaN+J9u4nzWU7SVq/SCe70m/cCmEtDTMT0gf3DvFF3GyLDdpexoaDVK7irpVGJOlhJfkhLThB5DN3V0D9pAckSliBwDLShqBYXOZZV1tp/2HjE9Aw44KAU9lfUu+mOhvPD3EYQgqeVGmhPiqy6xDCr8Ouq/oinfZFrDamOhpbDq+Ae6J9YyQ5EH4vKMtmkaqDsqZJcxikh9o389rSjIEBWds61TL3rMekZga1AUfvoorGcImB1rHf61YIwGnuLcItgQlxeFJjgTC6l+9hAnv6jVycEBIUVZdAw/rsipiK0ix6teGkbHX4ndyUvADxYKi8PZDwgMOhFg/W1/loFPlhrfkeYCHSC+FV3mq/cos88ARkt7ngYJegub+/W2nDbvKRDUea3qu0AtxuD5w01p6cK48hyOKW+UmQQVBu8z1XcswRAZ70PVlMBcfl1UIUz3kEtFASTbvEka+rCTCEt7U1lD0MUXwXwSJ/nqHSWvifCjwJKLqjG1Jn6QdeG5Oar+ZD8BmBz0JxO8yNYGJDDEB4nK8D0uCUJhoy5qezCWWvtdsK7wxuHTJj18jrDBNYUhejOaOiojT7oiBiMFTHhqxTZCE7N2bw8MvB7D3To2XY/6U8zvWXIt7FJIQUIoJPhJs2O7elPtu6/ssBikvzylkZa19Ch4OitqoQHGrmiceuIzJuUO2UdxsdZI4JDmzVLMLk+/tKJqdC0cn1WRptWTfDTQnL/f7H/dk+n4cpj5DMmQ8nNAG9+1lFPH0zzwuINv5nOdiSk1jQSSbzg7N+WBtY+JH8YHjm0mq1xzbBDysRYMh7GNhdAZb/TKA+QbO2xRrIJN+HHgEqkU7VQipSfzI8kRqacDxDT4QlHKDPIu4eXLyXeZSP6Nxo82gdOvEzlxBXtf8vw3Dw7KvrYkM4rhiDyFpTai3gbzU5zSY4kIT6vgcvkCEJpvGtk7J3BlyeJIwyS6dF4+enKF2MhzbLuYuN+7FgFfRPWKpVg+lGnfEm7Uq0BdBD/wjaQ/VM9SpsCDBJgoqrQnETlDpxwSoaC8+aH6FFXOEQEYQ6Is3JFutL6k5T8J3JC7A+THKXQStO9PzV6SyJMZBU2Mzr7RjDiYK0C69PCFkRorRzwfXG2yfxIrljMUWlyFKZyNZlTHw5Rlg5sPOJWug5vRwA8WslUho83t4Hk9iK6ArZDS3SLX56CVVu3HGa/uERVyzRtX1R24tHEpk8MUl1l+lv5/AjgJx/ZP2C578oV5apsunveomjb9J4Y5drIC75QhTaCMK4xctaAqlG9JTGquwpgPXjnfYWVUFsBG4xIIH2dDrKY3ToEMS3kFpWLrCK+MSvwjy1Yz87LnEAe5MUnKDeNhOcaZG4BLTKeoBIaySfKcfiX07sO4BS2lkGYEN13+HxIWw5RWpJPBEB761OY9l0yWQpPYlWQlzUXApaQZ134E75wwHzykSIjpGiZmQrcP1w5zg6YcW9Fu920cM2ydDW6sCxdftcQRDu56AqnrVLnwtdYf8PDa2d1r0cYpyooIxaiFcECXAOYpcN1Is+c27qv4vGiGL6wQJ2cgA/t7ybJGJpIZ10X8iU+0xni/4EOHRvqL6ed87H10e05MiMBbuJXL2ODh+wQ9YU5eiKTxgFr+0qurcMn/dkmUoj7iHzY5GTh1LZNRjQN3/X2Dw1hEmcJaNEiIeUj/DwpJsMOI6OUM15OSUCs/rjdZwqY3pkZckpqjWwL8WnhSp2uoPf4xEJfsbpV5Bb963EFBjtn98Rvueq10YkzEv+mHXgjw5lC2xQtN5SgqgOVwaDdnl2utzPb6yaAB7nqlGlBibGCDqiG1iJ8okR9keh7HtLuoHCQ/XsF4Yl8uUAkZw3vdGMizLxB26VGIq0PWNORjyh9VMunnRfU+YsWzHwMLtxSVIO2AfV5Ygxpn9oJZmAw3XlHF/4Bz9IOmBZm9ntVn+DUpg9OmUYetKAKw4aO2lIpGTG1celOq70cQAk9PxkDKvWNmqB+Q9RQG/M/gRw6AOBo+eIob/VgwR6/pNOYcTMja8B/V5Rnh9sb8gfrOiYYrgYl7Jk55QgfaeM8kPJVPcXd5yW0WSbgLQhMVbOJ8lgl0AV3QXqd5RQMbXP5pQw6xX4Erk+YgjWVVQciHGpX5L0Ph4wDLQDslLyILjs4ONymjHqjBIJTU04Cv/CSbWhaoABrmO0aT6hwwtI9d4E1XH1bJI8tJ4IoELLyIVbOMyWztHCDEGVXc8Nw3ohDlY1mH+GSLFzdtjhS+HGN0y5Bc9qvSFRAh06NVod/YZlAJ8enIkFV9gS4JpW99HjmqzScFlcf/dmtJOw0VYSa5oFNndIXYTOF7yxGzQVutsWkhBves52wTxwedfQ5ZODtRDlVxV88cvnEVcWaO0+mSkFbcdgTH8MlxhXGa29NmUA22Zjx/UlMFrbpe6Fltwc0inD7nklF7E2odan6Mh2O2h9F6bcUuMASV+IxVPNUtHeIbsG84Z/jpQIYPOMDpz//AVSZPkWbv4gHRj1sgOyI3RYwLqaM/HBKjknWvu5PplYQsOPW9LRNFBrAb/sJoFW8LXfB8Voq9srTpcgP1bIflzXmFRjgGCRbqWyQXcFA+iG8VygWg2jDCq3xA9a/qSu4dl3lOa7ppi9SwJZJj94+0L1PD27u9IgsRl9s1u8zo1UEhyhe5eOOM9j9L0iTfpmbzmnA+1fDwzk/eK25ccdvz+ho343AJRHHcm2JI9EJOVtm5W5KZFuLaktkjeK3h/3TlSasEIQDitjRrEn+ZF3Wt+riFsAf7NXedZCr7YmyIJudIaS77ECXIcjAV/enwHLbPnL2kTbQi82+B3FbufxIpTld1ZykJaUNcw+qLDzaObKgGZA17jMaTlROlwOFEAqAaGtRsUkiOEuvi7tuW3sP3lZaZkT8VGITEhnM4R90aEbLwyPPQx/woHpVxlOzQPnjLuYDM3X8NVKhovw2z/n6czdhtoaduL0XihEJJHimI+tb7nlXWmvjBYoTXeWONjhJzWJEAS6wUtRS/iAawEcGZxFeHuSIaeXMx0WFZLdFX5XpqmItAIQDcE8chGNMpglolPrq4YX2rUNPnDa7oNAzjUMrdlHSGhB7R3fqBdvc5R4KNAVeKIevtcU0410kXpjXl+JmA2Nhopn7g4gdKJI0F8Bsd/odJr5tXPtVQWWH3AjTGUV+UB0l55yBpQ/lO/mQvCKieA5VyGkPDjGmZUUQ2FSOh1FfaLK/uhnNXjOCORsWqLlkHW3+/KTOQlQCEhWVtDr1/ZOsSJMZZPiSnuPL5IQm9ZaYY0Dl+7knP+nOhF82rXCIlV5pR8pBCXgQImyYpHeWlPiPyHqTdvxfWekc7y+SDCrXFjWFMA50gV1ZbJIvhg1JiSFl3BmWhUA8IQAFvbF8GVQvngL5yxH+rjdrCnz3+Ulu7vKTYdmogqoxiXcR1hbN/hOmo9PLdbFZXBYv9p/6QJ3850XnuqlhcDDQiZs5y1sNUNuK8Wbear3QJbNLW6ezgGbmleEQCHoQyhiVforzK/dLxGuHHzbXgY4n7K/sJatVLImGNgD5iJvt9bDFyFo50se4AhMiqcErEMI7X2eXW/oGeorridrhOhXhoVow9J8zeKldQkwRVkDtDs9FExZrRMJVCM6hK1njA/Ne2O12TvNsoq6avSmEqoj+/oiK57l+vUVz7JsFUStgB1YHowm+r2UZTsCiX8KTddvOgbjdG/JXdhkS0236CHImkfPHMHuqo2zKKIiFGPn7yaJoEEBSdc3Q3gjjuwkAp+Z9gaOsMrSKBiId5slXTl6ItbE52prLq7f66XLhGpUWyIPkv2tcFOgTFB/kr6ZLkDl+egDrOVLKxzpl1aWm/7w9SSSN4z5FnuH+EPoqggHMgWJuTMCXEsDs7fU3H6AJlVes9m06yk1IJDd1S2D9KPRwRsuXrZTL2UuWk2gQwCK3JrmndjxCZgnQAKEad5kxQ2E/A3c2tqLXqVvOGc1Z1jgTuCBb4OmedGZ/SOiSzPyY7MVk78T9JCNRWxGzeEKou6/TcxCXAWzwb45QLdBJeZ+QMChHBorH1/ulBVeSUpiiXtv6blMlewyNMQeukHN8qd7K5g/jKMkN59Rj0znKTLhV6Mt59KxFLtEdHwpFZV+ohizyj708aChr/vK7LfuoFdZuFWGbOLkz33HxszURk7GFo/rWff1wgyzJCqoL/QATMcpU1deTRRdTO1OzLhAsv1YD8Ggf1FTdsY72P/QaJOz0m0CqISs6IXaYkCiIKHI53waHbm8tPJdvA6dpMpth+DJXzmlke1B4/HJ6NSZU6bMKhNtu54vd3eLZOfZMZjQQuXJvjq5IL4gkLh4+i8CdJjMt8grHXv7TkdGQXUW5uJaPcnDTW1ftimXJ0a5IKZW5kc3RyZWFtCmVuZG9iagoyOCAwIG9iaiA8PAovVHlwZSAvRm9udERlc2NyaXB0b3IKL0ZvbnROYW1lIC9SWlBNTFMrQ01SMTAKL0ZsYWdzIDQKL0ZvbnRCQm94IFstNDAgLTI1MCAxMDA5IDc1MF0KL0FzY2VudCA2OTQKL0NhcEhlaWdodCA2ODMKL0Rlc2NlbnQgLTE5NAovSXRhbGljQW5nbGUgMAovU3RlbVYgNjkKL1hIZWlnaHQgNDMxCi9DaGFyU2V0ICgvQS9DL0YvSS9ML00vTy9SL1MvVC9XL2EvYi9icmFja2V0bGVmdC9icmFja2V0cmlnaHQvYy9jb21tYS9kL2UvZWlnaHQvZi9mZi9maS9maXZlL2ZsL2cvaC9oeXBoZW4vaS9qL2svbC9tL24vby9vbmUvcC9wYXJlbmxlZnQvcGFyZW5yaWdodC9wZXJpb2QvcS9xdW90ZWRibGxlZnQvcXVvdGVkYmxyaWdodC9xdW90ZXJpZ2h0L3Ivcy90L3Uvdi93L3gveS96KQovRm9udEZpbGUgMjcgMCBSCj4+IGVuZG9iagoyOSAwIG9iaiA8PAovTGVuZ3RoMSAxOTc3Ci9MZW5ndGgyIDEzMDU1Ci9MZW5ndGgzIDAKL0xlbmd0aCAxNDI3MSAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42o23BVSb2xYtjLu7E9zdHYpT3KVQLECQ4O7uFKe4F3d3l1Io7q4tFIo7lMeRe3ru/f8x3hsZI/nmsj3n3mvtJDQUqhosEub2pkAZe7ALCwcruyBAUkmdgxPAzs7Fys7OiURDowlysQX+bUai0QY6OYPswYL/CpB0Apq4vNqkTFxe45TswQAFV1sABxeAg1eQg0+QnR3Ayc4u8J9AeydBgJSJG8gcoMQKULAHA52RaCTtHTydQJZWLq/L/OcRQG/GAOAQEOBj/jMdIGEHdAKZmYABSiYuVkC71xXNTGwBGvZmIKCL53+VoBe2cnFxEGRjc3d3ZzWxc2a1d7IUZWAGuINcrADqQGegkxvQHPCHYICyiR3wL2WsSDQATSuQ8192DXsLF3cTJyDg1WALMgOCnV8zXMHmQCfA6+IADXlFgIoDEPxXsOJfAcyAv/cGwMHK8U+5v7P/KAQC/5lsYmZmb+dgAvYEgS0BFiBbIEBFRpHVxcOFGWACNv8j0MTW2f4138TNBGRrYvoa8CdzE4CMhBrA5FXg3/KczZxADi7OrM4g2z8ksv1R5nWXpcHmkvZ2dkCwizPSH/ykQE5As9dt92T762RtwPbuYO+/gQUIbG7xhwhzVwc2LTDI0RUoL/V3yKsJ6bfNEugC4GFnZ+cT4AYAHQFADzMrtj/Ka3o6AP90cvxhflXg6+1g7wCweBUB9AVZAF8/kLydTdyAABcnV6Cv978d/42QODgA5iAzF4Ap0BIERvpd/dUMtPgLvx6+E8gDYMD+2nscAPY/Xv88Gb62l7k92Nbzd/if58umKvdGV0qN6S/F//jevLH3AHizcHEDWDh5OAAC/PwAPh52gO9/V/lH/3+0/2lVNQH9zY39d0F5sIU9QOAvCa979x8Zbn93Bf3fE8MA+O8VlO1fWxkIoP/d+e/YedjNXt84/p/7/8+U/7+2/6PK/63z/5eQjKut7Z9u+j/9/x+3iR3I1vPvgNdOdnV5nQol+9fZAP9vqA7wr0lWApqDXO3+1yvvYvI6HRJgS9t/thHkLAPyAJqrglzMrP5qof+cwmt5WxAYqGrvDPrjrgGwcLCz/4/vdd7MbF7vE+fXs/rTBXwdp/9eUhpsZm/+x9xx8vACTJycTDyR2F/bi5OHB+DN8Tqg5kCPPzsbwMYKtnd5TQG8yvMFWNg7If1xorx8ADbJP0x/IX4Am9RvJABgk/4H8XEA2GR/I04Am9xvxAVgk/+NuAFsCr/Ra03lfxD/a6TGb/QaqfkbvXLR+QcJvCKT31xeI01cfjtfi5r+Rq9Ezf5B3K+hr/eR3e9kDs7XWuYgoBPQ+fUu+sf6OmRswH/BV0kW/0CeP5C9q9O//K/ULf8FX5ex+hfkAbCB/gV5AWzW/4KvBGz+BV/p2/4LvvK3+w052AFs4N9EXlPBr73wL/8rb/vfcl+T7f/L/crc4bf7lYjD65zZm/8r4pX6v4RxvFL/vS08r07n1wvpt/u1wu+df21ENhd3+3+5X/m5/gu+SnP7E/5Xn5q5Ojm93t9/3iSvTfwf/OeXBRDoATRDWl6wNxMKsa4P6byrlSB2Z9n/KjJLs6/zkYHFe9mpy/UBDT6FoSYraNPpRiLlcz/G2q40/bX4Cvmz94+2Rvjw9iS1jkefp/cJ6tP7HUhLU3jDk0U/JBqGSBFJWDTFD3yeHX20A22g2yB7FGjyHF350VQLsO/cB2U9GobKV8fDFvbVDmp43yI/lc+wxGrFvAssmaPJN82eJ6CEc2EhRWDEOvNAn7u+mcXKnXwhV0hgQvI9juUq9tbf4oy7n/dar9TkdO4lpCbUJyCFvsYan6b1fvM9VQF/0bu0eNNpPG0er2ti2y6Zw/Y7vde+svqd0+GFES3NpCA9IQEbNI58dMxmu1yiXQlFIhx39tmawqaH/AVfm6kzs0oi6EXFlq+BRx1ZYL/vIbfB6zs8PW69LmO4uhVuSgM5eIAnnBQyt4EWLaJw33LkKRZ/492I2frYOk5TqwCasTRpW1fAjmVWvXvg4bomxec1j1H5uXMFr5kIt8NdRlucsyuzTPvhnoMJZ3M7QiPIFJqmpiCR77XtKblSyEzE0XgN2aSuNwJtxLBEsVQpWRl5bVxNqsgj7w3r938gM2TWfO8Ycke6ixg62sUp1yp/kaipyuPPwixClIP/EHffAhW+PeGKJzu1LSi1gRW+rRAR94s+rOBSp6r/cqL78tSwkIVdmLXcUuMNOoqybTK2fo5KvOLpbH4cD7GRQOMAzi/BkrftjLA+P2WQgkJevAciASvhAeUL0sybhDmPjp1Q+KJd1uxGaR4/UuvVhn7R6Q4cnvgfhkZ2gghRPgsReup/Vr12aYXZLYDCE32pW1pz+EbGEaihXQvp+2FE8FPvRrnJpTm71eCit7+/sB3cPKf7yXhu6kMYbqglz7AfdFDq6CkE0n0wCbGAbJBVQIzf5MnlHIMwl8Y0AWqoeU8FlMIAxAK+IpkjY/R1Dw1x6K6wOx1HnnPgpZGylFthc0wORhar7GCjBrjTQ//0Z1Eintds5iNrtkZ0ktIVOUPYqvDnlpifbs+qs1YBVMIc8lQq7/ed14s6Bkdlbi1dawd2T/BMt6xXmVzgwu5ekhLzzx5Rc+1UKxg86B52P9By8nobO1gsWKFH4t9OPmHAx4Jgni3PSZUqJt91KMNXXqKdk9WJaWeUzuB7zGTqAn+aETuAPo29RelLRz9M41vrF1P7SIuXyQ01qD84x5D2q4iJKNJObZAOW4B3e0meD67AhH+fTioLapqSXJe98HysNeOe6WjSfN3wzWEqzgyq2EiiZYmJZ/OpxKf6aaO9lnJjuA/XAngZPKyHoBSm4JhuBViPGhTBvsKDtclTPV/1b5OWI/sCfjVThy6HtloPuF4U5YZ04U5ij2KMFuSbdz7x8zfT9AXSV7J9wz3isB0omGCbTD+v78CTlaihQpUb0YGNXYWcmAaJXIacrx8rwg0GEeE6KnEySLUiB0SeYT1PYwl4rnEdks9a1XO1blsvsGlH2DvbS7Hjg+hSWbYyy+r5sVOmXeRfJDwYxwuptynWLMnVoQnkAjQgSCqE1Pu0IU60tgKOxShsP8UqLVdOc1piq3xfZcUJ1RzkSyJ4aHafTPJnEGuDLpZE2MxL1TbF4TPascnMKbtWEKo0Q0VS7k1mvERdjpUl6f1UtLXsk5k4N0AWoVX0YjZRvVnwHe1zqe2c/3YS74xVBi+sASLn8mbTVG48Gbn+lpvWVcaObaeqDw2D9kgrmt1Z+2JFNikWlghtpwnSt0q8K4W4AeePIe9JC8frE9NhPeP8l4l8vNWDCmJ5BxtzxtLepH3gs5a/JYIPxA8PGP3ImUb03GCCE/lUQoPy8lGcjxtZ/AUC94ibPpGkk1UE8idggtw4Z8aKzqFyZpfJI8VtQtc3rF4sehxTdoELU4pUMC3IqPlDU/5sbjwjbRv3ucOS045H7NM2DxCaLO+DkRV6po34ucb78bh9cklbIyO4cd+VZhZHAfH26U3gywaieF3Hr0/weS0+Ue5KUU5JZjgCm6q49Hs5wjb8HfA1QinlfCNybEmFLdxp6ityBB083VWzAXAL+1pNuIvMMiQ+E4xrwTEh0NiVUSbk+w6RaATByhooUwYUtFWw2PEk+0PU/j7zt3Y0UKKaXZM2tdsIh06uobV64krgqBbXrzrGNGJE6Gr8pFfuslyWpAG/hDqRzYvhWtdsx+wRJ4jaOJ9RkrS2L69de3l3PkouRNMQDelpXtOpX8WMEFnPQOTaL3CQKpWDfRV/fWCCOEsSVPnVxDZufCse/G02dzZuHxcC9zN3a1xjhQISWsgblOjxUeoKPZP5WjlcRIkEf0t2PHm1ZMJL4Q0huLRHNx/hE174OdnlPXGXWEfdsBjR7c8fHOTxq2hq6cl0r9xSxg74fDkaBSBtKyRq3q5UB0CS8xZjIqSmGib1YTBlPGzV2SZcvefFvaRLJfwxxbVmbMOoidJMX11mmDOAzsujvsRi0EcvXXUsoUDB5SwIC2SUKDhaKxxHgdX/VT4q7dyoPB1j12g2VX7Oyrp6L4oS3h8xe5ElqtYTTttGnDriUb3/Y7zNC/wRrScizEaytNbCUYdlOeU5mNcx0h6e8aMDE+uNpbWtfp4TmZUL8YevYlyCnMUuy+fLnrTEMukU7sI3juSnaCe1HTKsSrNo3gRl20IZEuzgB9PEajG3QWw95a9MCmnDuzXYQ7y0edTHmY/xwsieWEdUDui3k7XQYKLgK+taVs29FGSI63CC77QVmOH8+3O5XnVD2bL2EQK943OURvhV9wHqGEXYHuE++hRGQ+jd7tImixZ1Mz8/t4DsXrJiubmJ2UyrlV+O6YjSb6DfrvZz7Xdhnl8c1gVWqFhNKkiMpGc0dIoalWAJuOXOxnsyEsPTydu5tM5WC5orU52mBRUmK84SH5ioe+QNUIQ+mVN0qSNDJmf6R2Q0MZ7nwQX27Akc5OFrVA9JmWPbLA0QJZpS1z5on4+ElRu5pHL7WvEAEzbklCOcBuWq5IuZVVrgeem2igm3JzFtCxrIwzKRQl7ClFWOCFaoPEwgEMdUNHMQtPdZOuhbKBSaWvS7PXU3EbtKKQxrvBbXxBdZmwPK7nFReE4iISZZPiRJKTbyvHdalts/rHK0DCqpYSNz+lYShPHdcqJGlSYp2gNQaX7Uk9rrkTcn8Wz2Y+jjWPtkfsGTnvk6fQijYM6dfay5cURBgYTSg6ppSEwYC7goIfywxgUm0ZCqqThy2NaS9vMssDStCv17qimPOfY0o4o0Ik88ap2WptUD4bqtW49AB/F7Bsj7OcJxagfJzIzhH6QYTOP0rUpxiPOdK6qP2tGJKg75YyMuZpLG7fN5O+yZcYP1AdX8PJV6EvRDdIeJERwKGcgMKEQ12MmzImNgMWmHuLhtE0fMgqh3NfdHdAxf3nMvk3b7vtXLr2FqMl8QNTLb0I7mHcZil9YfdmEefcbBJmSoBN1AA/0BKuQNVbO5PGDMT8Qg/jc8vxgPhkPSPLbAXeLkfdKPUFKqL6LteUBqHPnr1WOjVvByrwmyXrko7l1+gQ3VVrW7WJ/DwHbjy0TSwPO2S1M2HulqL8V7DkDn7KC5U7138ZM5SuIuc9KM+IUh01JzQleU5Cq6V9s1GNMb5pBd/ViruufteQwJM+184MohMXntO6Lhqvi1vakCDsU3tRWTWFQKe/WQTWe9l78GzltJHfDx2XEnADgQX3VDFbAwE97y6StKUZoUplxZHMhzlJKIzVm7DNB95hdko4+Rz5HNz12Bh4MYa+KNGoEhDP+IKhzMlF9f5nQDuMvyyFmyDvwiEtHoX9Mh0LPvNSDfTQHzabjZCRMoq9yjq+wgEZnKDaflbGgqZJkASRbLoij4LeaWDbdypXrcAdtkKRUBXXB3isPjfiT5YnTPOAFOuzflnFZaGio3UKzZDIMAbeEOB0VyNW0knY+vnsV4ZJkapqZKyW0T/oj0CM+nIZTWeTDmK0o1ry7FoCUV2Hwy3CDJHXMvJBBMH2K+HJdmP2dPflvyPvQ42Z4TbVd4vaMcESqijmQEtQ8diizcQylevscIqeuqyoDaXErzSH8B4x5lZsB6sGUrKAnko8L6TVrA3VQDqt156A28V/z2QsZoI0VTBqflGVTRwhMObynG1uqEKbyZ00fytovVBB0iDjR/CcpNsG7B+DlHE2QHdyg4IfAtaZ+KJAueskTZtogAviWPyImOkcfEOD2sR2Dj4MtKjrQ/WW3figs/Poavcu7Vgnyc1FhIcuLHyJ6KjGLyHorAeILPUBuwAZSGvpDNMjg9Q70Jy9Ka2JyjduogYcRP/U5cJnjsIz+GKMgsdhJHvsN2RGlk0ergemsTL0BUw62+f0EtR9saLGliS0vXMUMKRN3nSFriyfVM4G8gZkNpX4DTbt+tKblaLmkbuAgMysZgNJLxJSKnEkNRJT6Iaw1ggXs69Uslshvwsz5LzkpEkHEj0R4GkEe+PVtixYB/R6dXcDMcd6UfFJWLHUsaGbHgc4AlQAuf1TWEtmHhxIe+3Ryg1ukHbmEBKPJEqmHtn7AZREF1kRAYJAUFqKi7Akvwn0T3ZQcnkYu9IB5qrFW/1DBb63wLTMZTX6l25Wt0RD3uuLO2s0UKi8rgyqVYOyMUcEoM+UEUC0I8xDB2HeSnqOehJmowgym919JKf1IZE/LzXS1Fb8W8MxcNiRolQhhDG0+9RyW3bO+Gh4W01Xqydyt+jsplwmygVKPxEhmkLtWCgHQVbsFV4FWXTbsZa1wbD3ez29hrwKe5vh/oyG2YwTGsFFGV9A15WnvPuTYyZ/N8jYNN+2MYCvlQCFgny7eYCFssn3oX08WuZtHH1p5wgxj1SE64eZqZA6TQ2PHhjEuSmRKKXYgH4wZwCV7LWseH3zL42aRkjC8r0UlEl6yqi0qStG8qGfk+GIaZK75xbaV3/zg6RAuYl1VgRD+d69aIZffB+S7pMWzfUwxSjgl4K64s/jHmB87HW4uawb31+2DOjdqiftCCUz7fNGwYDUkBtkfU9AR3MV/0Cf+XlpOQgLrw0QIeG795wV9d2VLuDpQVQtbntRIwD1WIX4011N8168Gg1bHOuCtv4T9L1iXY7HtiV/htuMpRHdLzo00q8zUA3NA32eTxyZAthb4nsStZEHkvJT7KcJEiJsUGa7jLgR18perYT+Afflx5Xu+ZWBQFB5RmSXCJSd/Esapj5L5Bg9yE3Q9MgzWb1PJRuShlatMipW50mhZZDo+MryYGxz83fuMxHk8pZN7aZps7M3IS4hEjEhhbOkMXVctSXpTVB8EHV27eZiVYpoU5iHiHzb5HH01nn5ObEKX/0uiq0zVb7OWTqTneuKstr7RbY8G4WRjC248LP272rXrFSDgtS51nwo3FvZpxXwl96UPE/WUqR5B2wScUULjYXkGQwhuL0DzC7B+k6p+g4EHee3JUjdxWyPShkHnElkN+nUj83SwLcYtHoV0TOOJ39L7HmQRPkQd4mllwmshKaVkhqlV1QcanDnMR+cZeMd6/6DKzIjxQIk9xmTISkb7gC/8UdllMFFDOWO4b37SVlyPNW3fOHhA5dQai147vjMPg3/gXcSh8LS9jjF2s7SlTNEhvGYx1ZjSzvBZf8rOzsXArleRfHxvBDglDRRXQdNAX/2CEGTw+DF0Skgfic2ip4GxOCVJTrGjgqy9y6EVtwTMX/8agbtj3YiW2YmAX6iBGdexRmMbODON+IGbv1XCR2bKGIL/jqvxGDp3uGLLhLA5/SFunHDeGQpd3Dpih23HJ5u/rfOc5kZ1xQr/qK8ARedLF3rvnvPwxYhDu1hU28uAK/1ut80ihLKpnxLsifMkLBYg8hkDazV47pUgaYpjdvPEe+Ix3MBI9fVPjF3wOkpV5hYolWMUKb9rYr28wrzPV/e4L7V54hYLjqhDdVHcYsGVrnnb3VQlo0OstDGk+qLgE+n9o298lsLXolLCB38nHEv28kBu63UTu2ywe8X6ypX73BbbsUgeH9lspAyzV/dfFgNqMmIVHpnx86s/xnAeg9+llb7K93GBOjUkMJQ9HDM2YvgcETse0hzTCMgaP3TdV7ysRs7d1ht3mL76bGP0FZz9MvnoZd2nXro1UxlysadB5CVe4vGAScko35BS30r3c8lWEKY/10OV90wwzXcCnflWGlcupkhwnxlnMbW6dUIdF6jxkEi1vUpaY5tLpoDeRxJeA3JgwIseVvPQCJBNjlXEfx91I84+w+RvbX7kOiaBnB9qpt4/YLn1mlNQfWliMY4i3alDKhHgPlB58hnIHLP0uAm71AK7lBnW2F/T2ncsvcHOBlkTpttLox+5JLa19CyFMATH+DlfmKw26tjgfpHRdyXEKcmSR28hMOZWggFWo+5GMwMXFu02Q+qquB3+bxPc0abAGVso7ddx8uDzPNOnZbfTAzH7o9P5gYuvJJ00BDoJT1aQSp5rm5StDTZ/BaVf2dK8tHaUojW8itfFJ0JdgYsh1ouAZm8z7zF+DsQjAuVjm77GD83fkEoULMtlLNo1spu+ud7/Xu8mv3x58hmpBhs5Xw9rAusyGlKqbO7p8tLlzTi2wEm3OMA5NyDWJLVOtpfezplGtDmsd/SyKjtQkq2Obohg4LQaVnh2+13R2/+kGZj2hjLYvysr1GoK2i0wCMowaIyYodo7mIU7A7J0qCqUsPeUGytBO+f3zdVPY9jHs594+nJQZDAivUBiSmNw0JsqkvQDiVpyV1uBy7R25qPTE6xXCplgO2ZXcWzmPqB099M5DzfqJmYrPkM7xLAMOGjFwFX2SDfV5joJIQdACAh5AMzhD9VlvL8k66PB2MU+Vdo0F1gOmLU0q4ydjyiVAIOKwTUKWDadEpug+LUmwUf36d0J1r2kRC8zIw1SGO0trifUkOo9w0zeq5sI1u8VGM3HMsxToA/lu8/t2S8gKFAl1jMLVdWwa9VCj/VAiSuMCvrqkBqvqXNsPEpxMysHmPyh33CBkeBGlrxMNTlnR87/O6isrB0kRk+72fyO3IsCNKfQhxzp7+02UZyaalYf+7fYD7qwoE3xYMBN3h+e8eCnuBmx23NSb+Z8GeuStncnXiJWkLMZPmDEpkckJ5xMJFMUlLD5l1+raSk68iObUmNaxtxXu1UCi3Paq2BN6GlZj1psLVJfeJCRjgvNR/4ic7zeNH8Ac+1YAdLDX9CpQPXsrgAp8b7eHs6FSC/VrOYzAvd9dxZVReeQOzQbCwywqO/1Fu3CuT6BSrt+Rv5bzc9EkJtd5wdeLi0X/+cyrgmDWQI0MOKZRfHFa9K6ohHeD04a92aY6m/kUBcobxQ7LuCYDP9kTLT502n5YB3fMIklLxaI0OsB/l3QSPK+9JMXcnztWw4ARKdyDSPiOszOerdNEDI3H702WYCeptdQi1KLm8ot4N9ugOkp/sxwL03o4o9FHD1qNm3z0QFIYVx84ufQT335v/0Eq1PlygR9yUq7iIXsVZkzpSi7te9tZ3jcuiJN069OOKp/QAQf+s9AFEfIXR0yxmc5Q7BYRaWk04BS06A5vzttAXwvOc3eTBEMTUVFrmc8tdaG/kNJy0sqfnTtDm6cgWi8QoxJH4buftOOjeZKguh6/FA0KMYInTKkvNKrdTqyevrAE8HtOfImv22r+9ZNM5AzkvNobQ+5En82GegpEh+Cn045oe9CPVGTn409XxEUdYShrlX5QapsYG58OeJss1R+yR0ul8QKpS3r0BI3C/Nl3f3uF16Z9EsLU1CNl47iB1aAKK3+abBfrMCwEYjb1EY69Olmev/bFBNE75mPVJoFlxG1/7zEOXCAyae5LY5GcNnV++n5C1Hn+FLW1gj/Q6VwExez4ReXA5NlAo+O22Iah5QFjzAk7KPdrpSSSZnndiF/J+bH5XahRwM10VJf0C7klt8P6gA183aq6XS41fEve9CEHHqU9TFCjYbbfDL2vqkpqIejlSzM/sYiuKdZK+AZjY29mhmUZbbvCA1EaF9a8gUoKZRi2HCcayWR/dTb+mEVKrjihpNEbNi8FeRI4Aj+74dbcGZj9Ql/TOFCSplfOAj3jltTkDwZPJxF/lBb4inGDkPDw0IVmlPIcrT08UZT2M8WRN+FJmdXzM2VJufbtlg8plqzDyRZP3FYJV08T1Eee2Vm2wdraDdRDfaThUkdeUOkXGXoOW+hv5PS2diqWW+DLQE69AlKEJc+fpT8dmFlMsjgyDsEVBeDLpNp7GJi7RkIgHoaSq8opcJhZXSCPr71rDZy3p0OLcQcoOT2TtDvAbAY2TKvylcjiofjFq0Jd0TeiP8zd0lbz1juHWI5pxqkEf6P7Epwep6zs82GmFLqc5PPJkWvisQvptqXwUd5Vn1z14g0kKfdUq0fvVH7eJHFLHbRC/lXg93fh/NaRAc0/276aHdCpidRvnbslQrZsN/djehoVvuxt52uvn2F9fuCaS/3a6Uv841C9We5g7LZk0fwLez7rw5T9vLopTNUMBAI1c7ip1u43WER3S32xcqkQUCs9FurPXr0sT8GnfXVXScUJca5KBNcvRDJyyG7BH144r7hcxrvwvhO6twdzvnM72H6suCzpxqbFulVeUP2SdBDCChD98pPbOyhodwc++hfPBkx1u4RgD4m3PUMGAsUec9r4815kWgAkB4H/idqvfp1MdKhUSlkYqlEIZ2ZhtbiFWsCN7+1GhuAPK6pJd3Yrpu4PtQcnKdcfed6JnEbtlrwrfFYJU0+aJyTLnRwdsnesJZ4HSyL30s4g0jA3tIf7IqL3BcCKFvRjPmiUF91UYXq7YF3pDE9YQdfkmaqtoeozD5pBT6suSFvWzGQHZTJUiYi6x23jPJc3pqoimDRHXZQxuRiuoJtoU7mhre2lLk1Lju1huwrZWqfC0Uvue9I8HrgrmfkF2502fNzevxiRQ0l6Lq+aieb16vgi/nIUTs4CVfoRp2ZKX+S0xZuHLzrufcw17EBTm7A0d+K2NlFZOUynNVXsSBMUucse3Et7ffCmtANxSJa1Qqx9mR9J7chIdXa38htzvhvoNAHptCcHtXeFbV/IZKH1A2U59bSfWh9G2Jp/VqkT8NlYptT4Fz8SyEcX+8tW/sQtcBX0DxDGazdjeZ+hF5BAkBnRe2JCEqoQeK9WmLVz5MV0O8P00dtBDjzDDhnOpkLJZTjeBFfrCIXlwjx51g2o9fU39QjEi88MNE10lUZeCQ4y1nHmCzpxvqIm21ZZ4YM/Y35BzMfVurc0pt6XKCRf8ZzOfqSYRbcFhJTt3n9YUlq0UszARijYVKB1HYuCB8AXWMU7SAIGn+HvtAL2fMKCES7j88mMTX6eYKIxiruk4TC8lXazdQIZH1AYWIAJghBWOrDVjBjxwoanaEqgxjZd2xo9cs9oxtFrna1Wxg4fr5Rdi83LyzC2ZrK1H7ISpTCof630f/PBAbUk3jZVJ/vJE/hs5QzRRS9k0vOHt6lGl3hFruThPN5psQ5HyDpQXEhBFrIFhpUPBwbY3MrmnK+8F7OiDRN+IIbU0BJZXlXTdF2m3Oy0A/WcfM7CP3SNC+gTETNlHTqii188l5JpKKkowVxHsukKaMQtn9Tj4gE+nkhqiVK63hapKq57HYudij0P8wcT79Q30iUWNCcmf/Sto23duG8XVMbtM0mA5JXWZ3yeQY/OTeO04uXpbxU/3KBKNVIGIHmLed08exfOjZ28mOrdfiTe7ZnoZ9MrvLf5aZeW7KVWtwH7eDlKN5H19uGxhvJd6Qs00eMM5rFHmQ8lxJqr0qFAco7sVf92N1TCtzckethFo/RnqFtJhRg9NVkVHwwXdiW6o6TEn5dxOexkr/RQgAVEG35e0t4pngmL6fl5e99sadlrrcOTJnjZ7jrdVGvAeTEHVRxx9NiWewqN+y+BJ9/QyWqg5nPlLpqsJK7CwT8ci+wx4MIvC5Sfcy6DT/fS+xo8ke+fpXrN81JI98qtciJuT849CB9dJ4XS5GTMRPg2XEMarYPwOC4Vv05wNF9dVBqAUD54M7kC6e9tc5z3qHL0JTsE1RXcq/FCctp0cTrJ7vM/xd8U5+JXeWAshQdb1Fb4AEF6JqpCyA7zrCKViFlFvRWWuAJyyeoHe9ElvdnimgKeoYR4W4EtRr2KOaQd88+aYndRk619KsYN1c/x4A5nL7IxBgmeH+9Dao6IZE5HON8SUQJ4JgeEmbchOJAHovWQI5S3irGidpbIA1GlkryEJw9zD7NURj0riamXBNxfzr9DjLZIPVJkCxJmz3FcH/fp/JxZENido0F9z9jc8qWW2RuLz4s0Y5wdtu1OusgTpWz0JzNoWcIkzBPqVH6tym8YJBjCP+sjZU3+JLfnMcCIpSy5gSAToy7ChHJj2N3F996NHCEtRP50pp8ST8VjIgJ0gXmDlXAT6iAZk19IgKFHl6glOPGVRO8Lsdv7bjVJdKCJnrOoXRGiUszkcE2c8F30DLG2QcAK9fvd8V2xEyWbrnYlDzcVJtfq3qklhVQW+7xY1G26GY+Hz9IRQr1C3qZFUYEtEaW/qvmC3B6Q2ySYXCzN9yTIHhGyYXfZg0prP+yMYYTJCx6pa2F6PFyqyDU6OkSRf43tXY+v8jcYcwQxUKRXoNbd3VNy6IWwphjCP9j9HEe1P9yv/nDlPVxJW128HFsUxcsdkWk5vdiO+6Pcy799wCPlBEsy4od3M7eIv0UkVc1NPVu2rdmkrnuHXZ10746MotFuBX/ObJVc3Db7lb02rE/1r22ITi+8Uf8j95m8DGxrZW+VTjrlw9zHM5umGVmz0FHLkZV9nBorf4nqys41WmfDgdwtso/9So0d4EOcthzpT8scDPfmF/mwek+tii3w78MXcYRDIMc+5DdX4PZwdCHMDu1mPkAk1H0Cm0gt4MLsOcuSBjDkWGr5nMlVSME0ygAMdnWDGhGvEjk/EfVdEjI0k43s8rwNm2EbdPGGY/S+d2GV/W7cbgL1yA6Pfdq3WrKEa4Q400tUfy8f54OfTBXKfRZHVbNhGmvbJhloEKdXfwvt/awdQ2B15VWpu+tn/aJw2OFKqegeEzfi+wtW7HxDnnb3CV2fmVyn9hliiBLLj9OffbrQcbECSxWu96l5BTpgkDTlm7jgPCUOuuP4jUPZsrfbhu4nXS7DnjmBTmWoT0e76oALcLz83J5J4Ze38NCmQZc52uYn5V7pDqqYF6lRStLkYolbAfElmTYWfKcRlbZIh19aZ664GCKl98qTOXYy16wwvgXp2R0pFzXzPfPWTlw/wZqoSiPT3JFfRfelzpNpjGzT3Gh61Nb1JGEzBuhIfI9/qfa4CcrRQPdyDLgESwzAc1Cai740oP7Ur4/GgC+orpuzYx3ncZA1//7YWYso1dcyvwVsW/f8QYP/FS7Etj0YdFzMdbhWvR3cHLupuvX6F+6HWoBlDEV7lQlOlN6Xjw4fupvzutDdcIVTAhsIBJdfJn9F4BRfjyQsPiSI064UFqIyKyO9wZV9OB3AfS9H6eFnCzWrsppJwSTB6fFrv+rzE+untzvoSv4mYsNqfp5wUTuJLVEDTGV0Pso1H6f5C1FHdxsx54wOXtzjSeIzgtDWRB4+JC0/52DYClDEQOvKtufXv0RGUlCOdB+ndF/tLUGTCCmNLZIIbXmH2Gb+tIgeSsXWPGux1yutdvJ5h/BpSNpfBaFgzMVGTdXXB4CKMRDX+a0hQMRO+jKbKaKnNfhhbq+B86IiZv4dvVhPXki4SBhhLJYSRPS6RTVSMAycSlYMuvRN06iLgwtjVO3RcywPb/zxVMlNjBdjFwlr/eZjw2lBjMnlwA+i+BXhB3FtaOaGsNP6tao79rrT2w70VhQiXaPqOoCXNgRZWylV+1X/CtJDnU467Uymwq4mhWil1M+yT5W/aqoEpIvo9K3mZiyVnVHx5LuPUZbls7+kgiCPLlyPQjVdaB9jxwAKqhg7EedIFSq5wV+4b486lHFYlBomCDyQpyJ7GuAmRITFpyzbVUrssiA2ZlTCK9dwNSe1bFzaAPmiCpqC0+++7Dk1myGQH9Tg2eH+UowuNUFL/J6DsC3I9pVXM0oO2j9r+FC1Ct6Ky3475uGXWZQv0wkLgEL5hdl0vdxlexyDcpNE7Mxk2zO8h5pttd1LzyzPKWtBBSXnxLjpsmgp/+3x/nDfXi0PHh4ULOqRaPNqbm1zut8bIQaim/aFTnx5Ghlxvbqi9AS0RZXUJKipd2QQylkk9qiSnl4ytxCtLLBBP2i4R+XQ9Iy3oSbm5TxxHisZJ8eQtHA4MJoq1umqpaqbPYcL/ACqdg8e80MXI58/W3en3BIWAt1I+6qJPzZhf7yanhZO01rce5/KpBGprdBVrDiQWYiFsWYzVb141FLFoW2CjMuamECpY9OPay+vhE4Q272IWzQxl7WVV0AKhbkbcyGbC0eu607X8APvncg7pGuFOOUd/icDDSJfGjil+CkHF0cf8ub4jSpJw4xBPmS5npgi7I3aOmmTfESWEewEKNBbKpG8RVHv8EuQo9tZzXwroaU9kGaEu7rzYKDhXoqGRiz/zXEoafZVTQmIi2Ra+mOdFjft0/i2PyHJgDuWtcQRY9s7vdblVRuOWJ6ZojUspTnGQZiNTu53krVXD8GTJLu4FPg3yRvNdbH5b01GtVg765YiN+XyOeoRdMECV8KeAhhuttlYSJMAJshDtK9rPLEJHSrfoMMfCn00Cs9uQzcK7J1o+049hA4RiIfS1vgQThBlK3atvnnB3UYRiEwEeHrXHiByzcOrJK5m1AasIhdg27B8jUcOkS3IldDlhBL6aV047aGcXETzltPVGKIGWnrsko5BOFn1wcgWTb+XnGuijX2MlLAxTVrUg4GEPkaaqCZT3eZ9EV3Z7apnhf6LTg19FSadXECGcryd7nKJBzHIMZx5VWKiYKxSw0rrcA+7KpFVgt5f8NnwyG9hbBNOcluDuqmed1jQw2U4LYzZuGbsfIvTMZe/dalVcxFTe3hK82YUmSnFXUxKMDnIcsrqLD/uW26XkqN6kUI+zD3NtjymE6nhVQhzQEafRecmTl6cHW6WjkTCXKhSyw9WEhE1kVbYY/XgvKr59YYMRn5046riLTK5x+vASZ4WvtLxcaTkr4JD15JTNAltyjv1Mc8n3R2Lie9/HDxdEPnAw9hSqI4uTVDcz5wVCBaXOuTFSpm1pUyaeQ57RnO+W+A+D7THeijQYfE9S8x9iVc98+haj9MLjjsmMzttns+QQiH2xbpPL9XeAyR/RzBsUp10KzrQeW+scq/Xn1+auUZtYMH/sfuptUe1Lt1urJ5i3cuHd1DxBoRC8BZhjRl5RV6MkM7CMADaC9NKROO6+BETiRtCDr81rITXZwAhVpHNEd1JFhNET1zZcM4vRZ5ZPtyCtDSbXO6JS0aple/Q7anHxiiWIRpCfa0oWqVsg4cnyieh45bRn6ooLnpB5sXdvjIUp3w3yeMnp+qcrAA3/y4dgcTsglFu2ALfs0saOjiyfRPCijMnemxMQxc7HrkQtnp7Cu3dF3YOMM7MG06KvYjZEm8DqySsrC4hUfKf01s3E0KVNoIfa/ALiGTo5x+PbK/tCoyMTsh9RDhd7z3Lo+xtgTKWDqWJkTVR8DxWCRNK1OImdJQ8zTVdtWkRNSXr6Obv3GGItJr2SzyWq77d2B6zU6KxDPrQw0zmjnlW6KW2Ey18CZyvtZlGFsv9RgXusMDKQX2DwWb+pPtDRZA1ay4V9MNxP8Zw1pQrz0+SE63mbaOxcTsGhnvLjihyt6fZpPkUkSlMOGjv2uxUO+UpJ5cyFZ73uO6EiT889n6inrPzAxq1GlF5vc6nBdVFiLC+4jpJY5XUMYMGXYsmZGmZgBVBXom1SsI3fH4pBhg/2S9sSfqQoa6nJ9li02vyBOQ/9csQARcXIPngaI7NQp23Hy22qDrnecWJFDRmA0dOrqknE2OVkD4cRi0rpFV7oUwnhlLuZEIPhlm5SzHqzOD3odIJMT99T9pfQpijn/y87tG2GZqRoKA1nTWhVWqDApEFKfqYwrx3GySNqcfLtK+oM6MhNH7mn6+zggYFdFX+dX4KJZ6L38E3k386Vr0R4Yob4I43RVFzev0N/oqvvT9unFRIJ+LFQ5hkN3YJlG/rODzFEY4cNrfkBHrSMqKfs7672W+EPGayvKvvbcReqyv1sMMe8NWgTxCJWsA+oy2wWlwVGk62eBQEvevpK6Cz5FLnw+D1i9gSBa+/d2P5TisohcKZtpn05dPP9T5CVHp9/YGpPUwPOPay0ks8ej5dn5fds8hDEvixXvprGB/TAnow237B2/Ds/ZV5V87JBG77FJ8ksy7d8rI3SgTXeS67HfPnYlgBNv6HHdCzTVIgsRzihLW0C1d8PL0YpBLm3TCmfT1s5I6FgKBChVxqvcuMN4EtZMU0YYpX69P4M1YVxfCGbDGLD7XTWDn6pr74kJ8lImACjfAPrmjOCI55bdtX0gwWvqgBAmMsuKF3SRYmevwS8erRfyacfhAeaRH3peMEIX+QdYKqQSYcOaZQsM5hRkeL6LyMCrmJS1PGY1UQIqKLLMkMhJ7+3IR9+CugP6qObNgTtewTEYEc4vQDJwn3Ae7CHn+Z8pLSEtunIKVw3hGflUV1qoPwJOkSV4MR4VAvnaO4moZrXq8H7XpDitKayLOu2RuM/urOEgB7z0kSR64B9AFbS1EMtTAECUHMlErtcvVe6h4G0OmR63B302F/mPsA/tGvg7p+cWF0TRB+PJqIkdo5mtAKmfH5ZCWa9nuotjZ87WpqxCR+byi9AF+MEtcx/EXldt8ar+B4z4vGZRX1biP6mVKX2Dp9TOl3QgaD40/+rhkBuxWxDbjdWHnKBjviuGGizbDti809L2qKT+RkIaLbJRF1nFw2XTq8g/nhmdPXl0ElAhWlpw6a7FTlmz0YuLiwNkRn4jmzM2nXjz4tX5fO4NTXxF6uCAmG10c6mIqrMs+dCo2ceOv43aBsPkMd1lKOpku5Lvdn/QBAr7JWmQKXVcPJLh2Espe+SF6FMJa9NFY8jU97K7vtJ+A5jN1PAcdaSTCgkxZEX/rC5bhFSbmZayiSGbP8frrOdGHKiJe9HMwxyRhiWMh6d0iYv42Fx9v99BLC9h5JTP9kxJdwMKWxc/3rl/rT0GIuaocQ62o4heHb0fcBzIxMhORK3dUZJu/20ZyYjd7dns71lAqxjW8if83jp+9rxGA/jM27dnE9vwpOFdBTye4kIuTASpbrnlSxeY76wf+s1E3tOgnOghxqY4UqeaoeC6mLef0Bf9JQ84FgKlv5yFw5DfPTY70lvaRvzbV8/c/tYQvohM/LaB7O06Hm3tKgfZ1wz25aSMWIRMVOUNkjjTXupow2bm+V5I1imYOVqmxJR0Ap3liBLlKj7yzVubz3sw7t/ml8OMDp4YG7xNcIrQ0qC3LWcpSPkQ/iE1csVBBgAVKU5ojwobKGWtjXa11gjvPT81uTXUrCYX4erQmDd5UjWsiNDkjGGL72jbbW+Pa2cj9SDnC9B4hGPaCrgs6/OG8LuhlGVeWKsRIx02myjd/P9d5NrkeL+TS+4Mcbu18yrYq6z960eZPwy9MQIlK9KJP2BYkQ8Mbf4eOaB4Ugi6LHpPQFt5DT3REGFIs3WNry0Z7HRGZjkwt7M4CcKJ3GBryMTvobxftC0xQJ2sKvtg9ORUwA+9K+v6DSAVtMnWQHQo1sYUmIJLMXIj/S3r6FQNCAce3DUnjIzUf5NrVbLNMc2L6ScNFrchwM88uYnffSyjm5ZQQsAUDRI5PoH5QQkwvgpWVAmmPcJuegsoh3d5gQkiz/Sfxtn8/nLOrb1BzPVN3SvmADTjMIrTmJqtZl+dn0/gojtzk2UI2LTWH00nGj815PCmqjmsRzwxZ7MDqKGUg/n0wEyZIuD0c2afuyuHUmeWmTL4PMLUZ++K1xxVbpi4h2e3LjLwUegQ8B7kVt51iIX7+noMYj7llH+GjUtczQ0I3c5eWzM0PQaLqux73ffJPxBsxONNsUGeXiV1IFQeun/bHdipDK1e3MlPZSfkd0T9PWmeL84+ARFLUruplkObBrYpxHgh01t0PlgfpTiMhh/KaZINGNY7Nc4EMRZZzx/iF4WD/d73EpWpH97JZKBUrqLogKIEjvsyHH1looBW7s2D742E3wqHeHaciNtqDkruwRJzm+3doi332pVCkuAH0PGkBAMOW+8nJ/g/BUtUHj1Ch7aU5CS2OPa8hiykR1htSzsBxhO1xZF94/41axBaqrCD7oc77elUqdNXrDtahLxPmUdKxpHulU1EbiFyNsfJdIijZN2oZhlzFBdFjdwcSI064BcK0Xmhe0ULUNqMwWwdxPzDkRVeq9ntNv0jzq5OSyvRraJMfpdn8Y9lBd48kw/uSHqlH7BOsHm/2TuRBx3hIY+V6nOZagPIWWXuVqRs6OvakOk085RHWhzBPRk5JHDsmt+udiExVXIBE1tMP9o4byQloPs9hSt7By6U9uPGNEdyxsqoW1nW8enBpM65kIMyNL52u8h3v2+gn676irIQr2bwgoPGqVI5sgo6G5aYr1qcRTi7BmsgJcNviVuOZBMi/K5DScs+9Hm3TcOj/brEPUvP962/iSDkWbxAdAdl6Ndi7aDTzk2FJ0nYtzvhiVmX/62DRvOytw4M6PcC30JajQiU2D42uRoTIVkY2t8dRxsdebZE3s2NEOkOY6o22i6IJSMQ1j9bwa/K+I3Mmd/nnZ85aUA/ZQtCy0G65UuUaIdrPvU8cbIjT4FmGpYeK9kk/3ExXQzV0/eny57NZ2zQyYbzCSVJDOk1jBkiJN+jMYUquFZ1FHHu2Q9/K2CafTv9bG0cP00cib+uDtQge+NBxffoZdC5QPqoPp8EF83lmGiZ6Qedvd2To/mzi56Fa2SlkbJduXTl3jN1mC0HqoyoumJsz2FSGGX5c347kFP0wBA915gHJxc9VrNumpuwC/DvFhn10IkpJGYeeDriRuk3lKdtZiL9NdZA6iVR0Vc8EvujA/PfAn7TDdEI25C+iRZec46OUmOQsQ8VBtHQaC2EOuxa6OQ4+gweit5qUMzM7N7ZyKslwDaUfrZ6lcXMeBrTmciRlHrtr2fKsybkCVNLScxUxM/nfu79mDDIvrRWirocM+AdCr/agX9u/pfctd3EiWO8O4lUcSrMXGfEwVtwQX1t1CdEYOwTLkdwlvRnm5BDFKn5VehgCt3my6Dr2o6w1vzy1qpdvDg+okMi4sRQNCK2OUm5ttR3yUAv2v3AdJzAy3i8cssGK3HG2JbOBVAfDmaZPolKNzD7AnMUkLdPFpCRmUmhwtRjrTfCDSmMNnjMg8bdFtTVEPoNt3JZdf1/xMzBPTT5dGJlQ8me9hBKE//bSkThPQS4sX22Lf5Shd7JaS4Yd/TK/UTgfbn7LlGJtdVtU9IU1BSHKIi5bVQo6hQvoTPfThqu8wHecKvP7AkSYiJE22OVT++Dxs+KDXV+PEmeDYZ0Owwi1kcIZFPmKO5IzB4CNYfSUmT5TpKag2Ma5bMvZ/AHCfxQkKZW5kc3RyZWFtCmVuZG9iagozMCAwIG9iaiA8PAovVHlwZSAvRm9udERlc2NyaXB0b3IKL0ZvbnROYW1lIC9QSEJYRFErQ01SMTIKL0ZsYWdzIDQKL0ZvbnRCQm94IFstMzQgLTI1MSA5ODggNzUwXQovQXNjZW50IDY5NAovQ2FwSGVpZ2h0IDY4MwovRGVzY2VudCAtMTk0Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViA2NQovWEhlaWdodCA0MzEKL0NoYXJTZXQgKC9DL0QvRS9HL0gvSS9KL04vUy9UL1cvYS9hdC9iL2MvY29tbWEvZGllcmVzaXMvZS9mL2ZvdXIvZy9oL2kvai9rL2wvbS9uL25pbmUvby9vbmUvcC9wZXJpb2Qvci9zL3NpeC90L3R3by91L3YpCi9Gb250RmlsZSAyOSAwIFIKPj4gZW5kb2JqCjMxIDAgb2JqIDw8Ci9MZW5ndGgxIDE2NDkKL0xlbmd0aDIgOTQzMQovTGVuZ3RoMyAwCi9MZW5ndGggMTA0OTAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqNtgVQXNkWLox78ODSBHcPFtylcQ8ODTTSjUtw9wQI7pbgBHcI7u7ukuAEDxAemZk7M/f+f9V7dar6nG/Jt/e39lq7mpZKVYNV3AJqBpKBQlxYOdk4BAGSQHVOPgAHBzcbBwcXGi2tJtjFDvSXGY1WG+TkDIZCBP8VIOkEMnV5tkmZujzHAaEQgIKrHYCTG8D5WpCTT5CDA8DFwSHwn0CokyBAytQNbAEAsgEUoBCQMxqtJNTB0wlsZe3yvMx/PgEM5owATgEBPpY/0gHi9iAnsLkpBAA0dbEG2T+vaG5qB9CAmoNBLp7/RcHwxtrFxUGQnd3d3Z3N1N6ZDepkJcLIAnAHu1gD1EHOICc3kAXgt2CAsqk96E9lbGi0AE1rsPOfdg2opYu7qRMI8GywA5uDIM7PGa4QC5AT4HlxgIa8EkDFAQT5M1jpzwAWwF+1AXCycf5N91f2byIw5I9kU3NzqL2DKcQTDLECWILtQAAVGSU2Fw8XFoApxOJ3oKmdM/Q539TNFGxnavYc8MfOTQEy4moA02eBf8lzNncCO7g4szmD7X5LZP9N81xlaYiFJNTeHgRxcUb7vT8psBPI/Lnsnux/nqwtBOoO8foLWIIhFpa/RVi4OrBrQcCOriB5qb9Cnk1o/9isQC4AXg4ODj4BXgDIEQDyMLdm/02v6ekA+sPJ+dv8rMDHywHqALB8FgHyAVuCnl9oXs6mbiCAi5MryMfr347/RmicnAALsLkLwAxkBYag/cP+bAZZ/omfD98J7AF4y/Hce5wAjt/P31+Gz+1lAYXYef4T/sf5sito6gEVlZn/VPy3T0IC6gHwYuXmBrBy8XIABHh4AXw8AgCf/2b5W/9/tP9hVTUF/7U3jn8I5SGWUIDAnxKea/cfGW5/dQXDXxPDCPjvFZShz60MAjD80/kGHLwc5s8/nP/P/f9Hyv9f2/9m+b91/v9uSMbVzu4PN8Mf/v+P29QebOf5V8BzJ7u6PE8FEPo8G5D/DdUB/TnJQJAF2NX+f73yLqbP0yEOsbL7u4xgZxmwB8hCFexibv1nC/3nFJ7p7cAQkCrUGfz7rgGwcnJw/I/ved7MbZ/vE+fns/rDBXoep/9eUhpiDrX4PXdcvK8Bpk5Opp5oHM/txcXLC/DifB5QC5DHH50NYGeDQF2eUwDP8nwAllAntN8nyscBYJf5bfoT8QHYgX8j/mef6j/o2afzNxJ4Rqb/IAEAu/nfiPO5e9lB/4LcAHarf0EeALv1vyAvgB38L8gPYLf7F3xmtv8Hcj5vCfIv+LwQ9F/wmdnpX/CZ2flf8DWA3eVf8FmB6z+Q65nK8w/4X/U1d3Vyer53/piA5+L/B/9xyYFAHiBztMU5qLlQsE11cOttpTipO+vumPA07a5OCiOr16JTm+tPTORExi8ZgetO1+KJg13YK9vSDFdiS5SPXodNtchhzR/VWu69H4zj1Cd3W9AWJgj6xgsOxWt6yVHJWDXF9rwfHb21A2zhm2C/KtDmOLryY6rm4d2698h61PSWLI+Ezu2q7X15rYj+UDLFGqMVbRBQOEOba5Y5S/QKyYWVHIUJ98wDa+bqeho3e/yJUiGOGc3nKIb7k5f+Btf7u9l3q2WaXM4dxDTE+kTk8Fe4I5N0XhLfkhQI572KPkdhN7INc+U9KmQaHkWgLShQMRjt+nd72YwpdiJLHV1vRNJ5gELbhvdu/H2QUM7eybRK1qJE7emE6Ml6dAo326uRQRMGcdjM4bD1r7963866HitMFqYRgM38X4xwtK81Rb5/6ZSMj8YgqK2fVRLrw+LqobFQ0Nl+ZpUn3Rvh1M1fJ6GHo4d5sK46LZoou5SXg424rJrK1461mt65lyxiEmWM8qO1hRg3RgjTPvDNbfScjCZw635c+1MRUA5uk3pnftJTX7Ytwfw8mkqzUncz+cbHytZRIFMOl/DoBUHclVf5I7u4V/ityG2oesjxHX5SF922zuzBFU/At2smjy3rqdZ1nrA6cnn3JIcXQ/FvsqT45870uLUJv7ml9U9WPMpTsD2EPEAnVsO1qg2BMt31LA/rB/3NOu3RQecsmjWzlGb9KCZrbEOalkikr3/iMFj8JJNXF4ARe8NYMveQ/4slmKxDI/rjjX8tc7aV6diS+smrj2/O7GX9Mxn9yKY3a7BIyrqMxWGQ8Xo9vkiDyQ3YpK2OfkzVnuynD0WoOu8LwdtbVX1pzeg7WfKQ1viQmnDZ4ZNHYxUrZtmkDFnATN8y/UwEaGLR68rgglYGwNC2GnWO0chv+VQN5GhVsOPnwbXe7lntU7SpHtFBncejGn0DfkQKvys2pCyHX521u4gz6EN//PQxzitSduBmKPIOS9htkVVk8IUAPm7/A66vWCNylDl2quGooQLJOtHw+7ZaYVQetJzzBXfw2TyF3IvCqzQuAuXOMNMraQvL07CoyDxnosxZqTUUPOxxVi9Po0S1ZvyEbXsyLEp/91hZTGm/DQzBtm+ZaN4kgh1GKy+vZN4Zy7vnDC1Y+ovd7234+5U/0L5J/qDzRabNMFS+cvyyl/TuNc5k1JizO9V4ghwRrgqTAHBo6hVcVa6bBF70VUXvpgijZWESxNDHYvJDhMRSDQn4VxskmzthDk/ORigh2sWVTFw5WMPn5U6IX3EekVEBbAuuF3+yKe14mbFipfEitziKKWK+lFCG4bZRTE84oYht3nutGm/hy4JcqPGH/lXXd+9OqZAX2ogxt7IEs/3aAkeOYk3IyHG4PgupPkg1cKefi3m7yIUgkkyRTbgY4tt2aollZfFZcjsYAKVOUDDHpSnfPtkGYpVUseqP2R9KynGKkcqoiKCjX2jSG1Y1nExxJA0vLdUJqM/hYWwZz3dGxc3Kirddn2BixeV/GmxJLHIv1NHT7FrrC9r2P3Gh+uE9M2Y9wIzMxDL5uCCApWvtyVvqZ85N+wnHOu2YdI3PhkXFYzqs4WolRdM1vHGpXbFbTS3Rh/5CV17rE8wHB1/Cohf+8XOJncWPfVPN0JZrh5VxUuBBgFvCPaRkpW/2SCcszKLVkaAWkXUmumyJcAvL1TO4P73Mb/jjkD8LRUh0kXwl+cmXLhlbIYwbdXLeuSW5sm8G3rHHUIQ75JuDV939/rtMeX1BOhkcisNSoZqppeg1S8GyE8MXK5qzQafJO7a3SHzz3TOsuZ9/dcD/qlOxTJdgrILXmpS0lOZnq3khr8PhtbbVLzvz+SQk4RtqHZ5E1U3kaIgEnjqxA7V1yyoSDubB1y1F4/Wwq6/Ay+tFby2pyLXU0tkoptFjpt7Fs84pVQ/79qxKJ4qDl5tR/OPsukOaxC/52tSDJdhd8THcb3W5Am58dYa0o6oAzUFGN9ZS4IMftZ1fQRmUmkJFb7/lc7ZTzG6Ly7crfsJT4zyvvEdYCzRr0b6CH54Bq2+e1vX98s0fHtmBjxZ4oqYnRTIobCjOwlxCdxg7KItT4OUtrUSyegfPFxtgJStXHj4uyRDwfnH6fqk2hI01V+7NBjHKKDFWBH+LlMLaor7ZQo2f7IwHoQpdywl8YMhgr17ftvAGTt/DvPjBC0/kRjLQsraRjP1KhHD+STBlwM+ft0jRhWm2I2zXp/e7Up8ZOIqIVnnEdIX9J7nNf7Q8rfJXD9fuoti+6rq1kpnLaTHHx3N/18ba+JRoQA+fzxS3AaNNBKP+dYv7PudKn/67K0KM2g5O70HokyIRsCbDAs1sJLWtU6AKttH1Y4Szpt6DtXz+hh+FfYihxWrXmwoMHnxcvPKJq5KrD1HCv/KbrrNcm3THhNWhFzMmhcj7a5kV2nezJJ9MaPDYRd7Vm/EtZj3S2+zLEyOxRNCAd6HfeO4nt7va2ZamR7gKGMV0yvPplbVKt0NohYYiL5biQ5g5hKUZS5gYVZMX3+ZbCdvVMs1prMJc3PW7t2boxRPE26npzHgyPYIYAekwXOB7znQleF+TcyWFe4M2qK+kjaL18apvanPGVOyGPaHDkMys6qWJcl/sYqU4QlkADvMRp794PuYjhq94n1sQDHvvODC5EZBKZGjEDkZ4pUOZf2ZzUYgGTdBaWnhDOWu+c1RQd6dL3sbJ/ua2zaN+F0v3STItuxF4EqartP2qQ6Q4ZTUXnl0GPDJQjwx05zXWmwx0LEhoo7wzhxKufQ2xMWtWn2wZN8lJLn015mNIFEuJEx8c6VHQoUG/yOWZfYp/Nk8X1QNZ4tp1abVB9P+hVqgxd3xce047dqpQJTnTvfpD3kep40OExtv28p/Wimnr3z4W8TAo9ZCfJByURyXjZbMVlr0i5OPItku20R4Pb56qBsnfs3gMdSrz+XUva6d4fMdabUyIDZkLGHBaVcaqsoHaIoiH1zfXpVJOAUQHx9/cqXP4vF3lS5/OJfP7smnQVOsOKuxJvHDnntTM2dTa5JLFQ5j2Gx6Q36dUcbzSC0pcLF8xCUG/FcKcTLMjyUjl+/TamAsorENIp+hH4z0xT8/aMrpYciICk6FeBXXhx0E9A1PZOCAy7zR8ZUNoflOV1U6idoi2wNF1Ga4u3C0/wVvytknL/ohrp+jGLZr9Lu6tbnJk6PdUeTe1j6m4rHlGdftsHYytH4UNrFQzCsoSGs49GY/qsAlR65kwwkXftlt9pZ34uBz1KuIHYMkXI9JubLn8nRJeypjgvXOhedupNNJusnCvJ5o3jP6TCjHzRsXIDpMkKC/NmDpLxNUnBUFgRcB6s1hALQU36/kO/46CUGVEojfOx+iArNm1bpJXPOrNjaPl9jCEVf9aTEOD6UNllwQoyi51ItDvmHzTmd+uHrAb5hPvKEN+tpUNA0ASq77C3XkSGJ0uJiZyW9YKUxXCDTxeIUy++4XuybbbCYc9Y0minT9LgtS4wVmIBh8QmLdIu0mRrRPnEI7rxeGAZjFLI5b26r0gU6/KB47vCqCloo8NgV2dyplqpLYbpQehutko/nbN13qeopkbRcOL7cCSB3xiN9btJaMv8qBPU6ykyPABDcmiorXaGDF2pbJvX2WOSgrRdPjlFiGVuCAeMdSpTX3CRYuf4q0PXdMsveiwHL9rvEwzH5EKE5BvQZBAmc67ecsuGXdjg6siSkOVDsWr+9KB4OjF8ms1yy4f3bOKQGrCLbyZn4qmpSPPkmsqavflkr6ZpxAVB4ynfL/OCpZ6YwxW3wwvdtRNkPH17Fz7FleiyMhj0NkS7uuazPSdqyI4HK+RQI6Qq5ZMQ7oa4qQE7WDfsrGpDj2LFWJluYQGf1S3FyluIgzj5Vr4tLm4zGQJnbtdb3u/DvNHScWy7kK0OGXrs5XQzyPHB4plVh6VRQ/6B+nNRcmN4evfzrq9uDN31xQafWczqhteD7ZikiWgPAl62fANEtWMFA5ubj1LsS3XqhXTbwigROjHBSdgN3M1xx+//+LQ0tDgULdSljpjkh5HsVh+KIwwqbi92SiBexFfDkESAPZM76WdfLJAnet5bXRkRrAL+qZbWeQpcEedATv5zT4CibS6TFoRZFxdmCNZBujOZv3CAONHL7Gy9h4Hmqkfk+RKPcfn/OCi2J3PDD+QfNfHKHPMKIhIcZ+UJbYYie1RGZxImzLY6247Sr5fjfWyeB03oTAswRyhorwe6RIeRbxWpGc2GU39ZV5Qmu+AQNuHUEmNFmBHVfPVvkDwEuY3REQFOfxk/IHJNySyKlo8NhblrTUW/INSZLsGqpvgzoZS7i3BZNX65AHlXL7kGzguq9KS3nL1at4qO8ckkmbKnqvo02DR2Zn5mU04L+jUJsXWLxTBphX7MDrUhZSQCdeDihdUDsaiWZ3mbrr+LKijvjYR4LUcyk/9bz6Hz+GxEJIPG55readeikiUB2Efa0gHua8HCi8j0tg8rWmd0HN4/vLfkULszrWLQbIxyTUkJ8DU9dCsRxtpubF76ESAfdIXAV8TDDEoCzOMwrpneMFEc05fmn7W+xzkqgou8+U9SFSKpfHuvOO+30ryFF6/HGj7kDv74Kb/UVoFHqk5YtBqE1ae6DuWZfT3C91Jrq0KdkeBetvajeojECmDhXsVk6iaeWipVKO/Kf3FVieGxotwQo5L5YyiSSRJ0bqmDWVfjAAGafKoOguZN2/6gHGb3668W9H5NF2HLM10iiItzLcLn3oDIguPlyOPXqg2siUMzdx8WZWVzOkhsMtP4FNrYrHjAGqHPaBFqA5TEOJgM8zXPab8xHc+oVplh8XY6ghSU7oYQbSYl2oCZImWGagirsR7LMPha6EEIdZxQ2vfA2EwkmEyDxkA597a4q/qEFAP5WEvWKgvZyOV1DfYPxeGodnEsa3WnQb/nEN36E7/4LG+5VGqEWPvjjVmc1y0TefHMottXVcHTegR8WyoNdS/BcMr4bBsYNcXY2CN2gaJA7tQqxYCehEe1GxxQjD8BJSSBx/2xN9nN4gNXyu4XbEAHqQ6aqZojGc9mt5rvGPv26Fx702WjimJxNfbxLSThek7vM1LTfbdso55FbUfX/1Vu0Ix6O2slpbQVYnqa07U7ab8SGK3/Y2hBp4EZMp2h1euigzIEGuvABD2VRqemXyeyWmu5KsBEf+87dtskcwkXNLtUY3rixJe+iKCsbM0QFctZWaadhr3CiRl2rZy9BzFyuTSxrn0ZMx6h5RWSUXNJRaFWF0P/TplGVJXi0CWWbDhSmaFpMpjoJ4ApM6n9d2i/t4bhQJ3qHJ2HJgvUdytT9L8Ps2o/7LjLbrJOphCYinuGnq6zRcZRKFJUdQXv/6BxnFAGqNvCumeJYvRTMh0mv6KmCi6mr8dMmwfhR/V3MA0+PR9+4AazX6NmOJqxToO0ewh9autxiFb+s47eZgnduGkFiNTp3f1BSaYSRSPr3NKX8eRzUAkT3vWOwiMuxL6mMlqhG/U6x6R7Qlbszewqy/iOSPnQeVlZhVB0z7ZCZAWmdAP8s6PeyLHrmVVAFgleCvIsM6cqiTBqrLbemaBnYsnrIQgkTLsBzFbu2RI4YABjqJP+I/chQvmYI+bLzcQtOZ3Bj5Z2x/yVN7u1P6QGZqbbdJh7OKpfyPq/4H422qv3JhfKJA4XquYxZyRYyecObtX6mVfxPolcW6a78uNL6k/3gSARwd3PaRMah3V3C2LHJLaZEqWG+9KqBkUYsTo4X0muoRPJCioTB7OGY/z2y2fAlTYofaf3SIusGwiaqshghOg71mfpu2XTsrr4Yy5g6cjAiTTv4xheu5GiVL2aVBjTjag+mvoCUbn+4IPC+RsxrVjeilyGap//MyzkwmjZO7SthV8GGXlS2tM6MwR0svsh2OXuDYRqg5Pb7g1sd8schMmNXVI3bnuL5RGrwFXCSmDSGKbcyRodI+jYn0PEKnRgGZ4GsHiJzdRMkT8bLer0XSc5qKh1OmEVJErEsJIVZe/+rYWDQkf58MEhxBl+SE/a6UcE7YOkR6A+XglM2pHCmbYY2kVRprp03UY3TaWPyZAa3o0V4Vt9JwnStQAQ5i8hnS7BPGSatbr6YjRrMypoX3yQI/ce0K5dhIWxPIuokjGgnqGg+y3ajoB8kVfxe1r2WtM77lmpOIdTJ5AokynHW45y4wmqi7nvPxaZ2sSFwShVXqcAt1Y2bM/3fywvL3tS9eq736OW1tciq2VXAvcXOsDAmfQNSVx6MJzkosFo0MLBYLjDuu9UrejxFuRNOx1avaS/Q15X0U9Okm7Le6GU/9kIFuyPs/N6NHssNPEVtCtbxZIbSNXiPBN/skjEX7uOFDMnOJpm29JPLDEFHjsm/XFkUrt5amLI3+gakuH6zn6lcKq5+jBl/gBAEvq0VQgW/HJA9i0u2RaPDJC+HDmBXNm4GwuhF8NtoLfUxWxc/TnORaNww4iunVzn2v+R+oT8LXWDF9afFAeth1wZi3McFEulqbJrs9RqnI7Ab0vSxIZH5S+2fra6PVofowU0Z0UZYODYgFhcgUTKKJWqxmqVgknU4Q8ooJ8fDrxlg/up7UV7FbKw1m1xguvAMOWhM1RXBOBgXrxS0olMdJSarax4CMU04PmvAxzqkLYrwi5Zxwl87TJHvxxBJkpFA4XD/HAV8eP8BoKeI5EP+wTdCpTMsSoJxfifumHvFPFFy9BQQjN3u0zrK8FCHSJNII1HEWdMeEPXj15VR+esOrkMFM3SmMh3di/naeIMUKbHQ2fon0IfaNuWGhJJSd27Kww/nVUsuf6K2U7As+n5V8fXXPvpGdcr+QnKRbmll5SKob+QjsNPR6LL0UPbSEYDu4qAPO+iL9UGnFZnmJXIZio1cOFeUrb4/Is0uJBWQXw66c79nIK/vG3MpEKoZLALGDPAoRV8BZN2mlfxhr06VtPZZkc3YGM1EIk+kaSSZUy5RYM24cnyY4UuJVr/VBUkUQjRdTLjR6NLMVU3DfIIOSypZug4s9byvPkXcAeEZ0oNXs37NbCaZ2f1EGBebKQ0XTcYRt1+9MZMmu6wT2gjAHMSKLaDEOvBlZ6zSk8rQj6WUd/kvPpU2QjH2QmzXyALcK+A/723GZ6PzqyuWPd8wB7+166jYngUY5UJhnfmPfaFJOtxshIrsv1V1Vaey0D1XFjHjrPBj/SDW7xfC8BefKClAzCEtrYE6PDet67SkDWTJUAVo/9ScHHJemwytZ50mvZyBdjWkwAGfrg4EN/Ed6ar+/Z9Uw5WAfhKgpDGDPvDVxhfwZOhO3detr6nd72/6DLViyZOQ9w0sCM5ul5r4Ey3ng1sCpsVKXKPer4JUCGdHjpA66y8O2dLbl3m0EvpaXgEft67UKKIfNV2eSc18cR8R1UYCIWyzAhsU7CdMcrahiVYZRrBtJMLVzoy64g2chJYxkrvh3buoZwR9FGGGLDsksQdhHUsW6tibhjIwGIyQh84DqQKxvVXahP+CbmMVsQY16nV4Cwsm9xCvnpTE40zt1ynX1wMN86N6KT7zPPqo/00OvrDbuLPYt8NEKMwkVnicpAHvRicXdRk4ym+UHjtIApNjdFLmCRbNSfKzNyxysynvlFZKmyxBopze3SCRPhYZUnAUf4Hg+XLU2PY7lLi2gIi0vVlDettZJQ8oU/z8Yh6tMZKtm6jxTpu835diaeIJtVOO91dcsTnJSVzMTZKSVFW3pRLTYKt+qeOIVCYQG+KCnJKWyy6+zr6iAZhyQse4wo518UYZbBDIIi8NP5khrJX3Oa32NQ38B0iu/JlRZ/JPmFMcVNGreUrX7pKzyEmn10m+TGMSEi18InZ6gjdobRGJTz2UQu1ThHaVzLZLAV65N7ST1d6GX6XsPwt1V7Gol9Fx5aD9DcEiPakYqGRGgFh3Wx341CxJoGaT3wyBR2A2hijhjzrTcg9TGbmkeW0QOZ2e1FjzjJOqK5Grw3jvAVAfrTmSMpp5doj1pPUKVuIWxzaWQn3maeXYJ+xDePUG2jebZddhLypY5wMnqBbH5WrQavDa9VGeZXLRZMomxHk956Frii7kBs2PrF5rIB61tiOoulJZc+EsV49SSax897VoxG8imWXIiHP6q8l0+CnbWY3dGjWAr142GcKIWE9NBEz2Bz9PdvgmKzLaMJh9UjVkP6OW1I59slrfpelbZR9EnFDC6aBWXWxInV491kdne8DLVDP4t0Frv3K9V0+FWG4Ic1NNLDm73V2p7mR1wpQmzni2Sx5VJRaxSbzmlvlIQ7rRSTeEe/7LjeadBi3gDQp9YxCB7mgVUI1fvxYfLLKiXyKjpT4XDM4n3kTRllDOAha92EMVHxyU38isnYqeXFeC+C/kz9p8uFqgjLtlqqTNOFTnaJ6g9dpJ15XPNfRJv0U4upSj7UaJJPPGpMg/vxWtNXNgc2uvv4YC2EaNCeGJphM181BfLQmeqw8u8MVPChsioecwN5huiR1WZGjtkYZaxZ0QM/vtCJT8u2TG8sw2VzDeJuEfZM3RInqGY3p/QWh8c4lbt1w+6yyByxpTFiG36UMLoL8dI5tdzfU/em0zLTkSQR/jnPHSMU8G16nl/XDMJouR1RAseZb3AjU2Jlt6ROg0oaxnxI5AnhWaYKsXcJWrRi+cXEkOj73rilBDr7S+ODl/kAktJkOiPvIDDhfffgzn6GVLNF1DxulB6HVKpizpyeiQ1GRr6c6CSygjmIfcNHza0koy7xJrRGnLZO4dK8/D0wlZVyofMH0nvnNhMWeTPeK+cc3w71r8bU3XFTEZH3aNZrrzWT44ycn3BHklO2XNAQ8k54cRqrLF0dOlkQajOSTwoXE2HmPLlO6q1anHQCrUlzsltT4+Yr9dDJHOunZElrTL2AsMSNH1ypkC6O9F912P76wVyBgjF+S8QkHOrMiHg0hhG6N55hE6b2MeWJbVhdhanXiPKttJBvyZBRPRHXYruh9RaiZkYkQUNBuTBkPytXa3rNcAGRcB0rlrTzyl0vzA582mntfLu7qeqEqRCohRbLL9GfJVc1sQXO34c3s8FK6SJDoaLAjOJvUsHk23TgmH1MMJ3n06WAV8SyItIR8xPkrZGz1VVrHDDCYEg7I854B8J2Iq+GocM05y6kaGqpkSQ2Vuuqca8EIwMmbThCucCVqSWfXRUhCV6tE8ko6qTMCdffxrvZuiW/r9E2hnb2sGrqE7x0OnbTuVZpP/Xy4Gk7yI7J+pjWZRhaVbGoMOw4K9zG0E9SYu0YPe/mtI6S1+dAwu6N2p83wmJfnrNFdNk/T8lDNNFjl83ItK7ZTBx7hEDKHxmn5+9Te1+LD50bfEeqaH9TL/zd2bZn3m4754CLfG/Rlrs8fjftJ8mUFa3NCt9LwVHRiYePtmsR+1iCdpU8xtqxwVEi5dwTj/IkIwmYLztO/cU8eSw3LUvpZ7HVpctF6jOmnXf1KAvRwHvQyK8R7zHHfPkDdzK/cVqepUiEHimEviGiVG8UpSS5f4ivayq1X9AgS8ddp1l2sN+rEpXW91qtIXPXxy3NArIZZ6mo2BEskwNbtGEQxNNNbwhiEBKoGeZSX5VXcWB0q4r4H6bXkN6F8aVby3WNwSdtqSyeIagjXH7qhqIPHt81lXFiE6UasC1L7IrwrPF+ooMPDjrBkLbiJnkMniFPQS98vSxdcHZoxVTMibrTB1xxPTEasKbz/V7ZcdAgghOnlDHYFks5IpQUH9Krf5rlro6gijsnvk0SxVvIUNdyBGPyvngu3eDUFiGjBo6yMt5n+4etXIGbnOQOXb5kgS1YPe/tocndQvu3ypHtIs+tglYVESo/2W2Gwgf1jNJHe6L+1Z1iRmpj4qLv45ozMbj3hSstkcMAvY64UtfPonh5HgTkrOkCVF+4X79Y3kR5eQmGV9S+O0D2wLbhH1Di0+tXP/Nzn4tWWawWYqHsl8/RGUp4h453IWBwtYQVTbJekWSoouSDXReGH+Gt+nqZOa98ul4tVJfOFUPX1pb6NG+Or7USfUaO5m0F6VY0Wgpx5laeuK/UtSUz4eTAVRjBffEsXdhIlautcBaRI3T9J4sN9oNJN4kVYWDdwGXA0zs0cZ7qw+ixxoSmoIblADsAtMRZSBEhgNf9awVtqZtxmnZdE6hznUEL/Z1QhO0ynRSB264bDghKiDlrTZXo+WsqQTzkZmk4R3cC2SdJqIOiWupM+QtsBZeukt+68THF2XyOv5bJEv55BUKKZhBlwDv3idw9RWbJntQBYoP0CCA3BbnY0XRqplpqs2uDxKmodqVbx8zk8ZXw6i4qa+qD/FXvWmCu/3bIKlwB04lw3mJKakYrY1YqgjJlZwV9qZTJt0+Jr2OotuFCQU6AOYxo2Rh0L6mvEnI1qVquck3RWVRo2STjOyE0E/I7WezClXbp9yKuyVuuPr6CAu3cFSkIrMBRxt7hrZbpDOrXNT88qm2hmuMeWftpMYqG9NY+oFnYhnpCNsdzSdO8+IlUUlikZVq9dCAN97epc6YjPZrverZWMlkjbZhRH0zI0T7x10S7hCkuEE3ZHwyGgU71PJosaZZyk06/Mbk2hlkoxhsxQw3DGpXHadU8XC1BpQgVvOR38d6eFuYrFy0OzBtOy1J61nChZVnBxnae8ePSsWvYDNWXSpTkAyKDj4tn/PRfE9fWHeRvy/XeODzuBNJ8YUgiht91AKqrt8JDGNuLZi9fv/+03INlvCsti1IYjOO8ywtvgjeaa8AuOWg5efidCogD/IGcLSd+wnV5oIafX7DV3MQEL31oxk+qX+rMSlPMb9qPRuE76wZTGREW4NYQTwsvIbutgT2nfHHE5aVdYIId9rpUIqaMXhU1sOvIjGnmcSw6wr3AQN8xjU+ROJWw6lEL6TK546yTI4eYcr/ZfoZC+LwE7YOyK7JXOg9tMF5S8KnkVCoelk6YeKqhPqvLLYSXei1TbM3X7d5Kjb918MJNhMfK63iMWa8/9ruPgHIRDqOAvNCiDBCdn7Sq/hY+LtvOjUVikJPWRSXLmPN0Casyf86+27r/Y2fIJZyYmavhNY9zqSpfZ41RwZlRUDBtTeL2Gwa3FUn3B/dZFPOBl5e7VD2o1NacxgyUZGVhNdGt7RChqGSXc0cFe1kZkxSwGVOlZ3jQO8RrLptCQlRW8An2hcEoCKVwyCJPeiHKSHVE6aRYRm0NH36aTdU0+64vcXS7Ekg82GqsoOLKrC4zIWano58l/IILv0PjIAF/IkETi+iUSxTNwBIn4ubQP7DUk3BUsbNFJmLDs+NdE81DWyqxfQYy2ejD1dSN2PePlTMd0qU2oWzrcPR2Zoovj0LsrRWULw5YRmCKwTQhV/p1iAPqsbMyJ7ISyWNNm+2lTauQ9OWB2pWrzvzHQsMCKUf7+KJiWRHVt32ix2IauEUdoiwJXCNpQq6qy8ARu7XafPM+hfIWlhcn7ilqrNOFL6tqb3ztUMY+7ZLqwtbEPqaTl4ZjcOqJ5pMceICU6dSHNEfRDN5MWy9ve+K3uHy8rGZF6upem0pZXG/qiKtMzW6J/tACn4pdoJ7kadHOIv9TBEC3s++TiTed79xeCsztn7eiVq0kboy2cWhIIPfiX8tceR3uoVU0s7ULi+lG8HCaGfvNbT51VpaqNvROTLYPgGD4YmR83LDtmmcIPvreKGMk/9tIUPsYJXzk+VRc/sBnM89fawvdstso2XMsZlqNLps/42Ye8wQH1wC9ljbMMMg4MO91XDRglfFEnbJ22sLu2pdMNpNarHjnASxVSZq9yOrRRN+FeRdfiRi98oOLJZ7VYj0K8bflInPJGWWSZZJ/cMrND0DfKczGpWuPbnvzToBkXVRWzcmw4gdRQ7Npl+CUtCcwhOL0VQlOlaajXiaWHuziqI5yAOnOxFwfsAocjq20FzbAteZyJMHq3fzuhVG9G9qpECWreYV2vPZEUOTq0aQh/QAp7mKo8uPHOvJHh7LUUv0h5Q6zm6zwkJOYsC9+P93L3qYEc9XzO0Bb7hha2dHRtQPxyjN5joKg/KT8kFpOiPaXaHcfQ5XbD2/T1GyGjCtDjW3FBbpvvpPKmKE+7HkuyFR/FB6vF17RsUIXQQmvflNEHDDCaAHUSwTm0JErGk8JNjawEEnQL4ZnSptHSssqmtjSnLdSUcBHwd1vm4DH3SUOFcrMG3808h0SWJMXEPgwyTmYeunfkhUv4mjesNPOeaHgn09RnqiSy5EM5xcMj7GMssjTcydosn7yBQawXSM4NCvIxbik14emIUo2aMIs9LdmIYYylaC4fmUq6/5A9jmND4J9I9NKF5hXfDAgX8YYN+e2OTd60XOe9ZG2Hh12uZ3+YbBs29neHrCR8DZ2fAFvdfesRyly4dDfvC3sddCm6P28DNfxTZtxbOAn84Gc71G619xptHCqFZpZo1LEJYMYZ6Dd8YK9jBYW0fhG3yKnc4pVm2sJdKx7ZgNWWfaqNp/EHuJx6fjM7AZSN5ac3FwmATVZ7XdNLFvloe6rwU07kcUE6mdwYs3BT3Dt5NjIevG5SyNtffIfN+orsPaVxr+Haw8QDimri365mB2O0foR7bO3D7cYQw4smpDXi6NHQ933DdeWn0Db3hQ/a6T3wYv8zOnItj95Bw36uFHzyef/AHsKXDUKZW5kc3RyZWFtCmVuZG9iagozMiAwIG9iaiA8PAovVHlwZSAvRm9udERlc2NyaXB0b3IKL0ZvbnROYW1lIC9KVFlNS04rQ01SMTcKL0ZsYWdzIDQKL0ZvbnRCQm94IFstMzMgLTI1MCA5NDUgNzQ5XQovQXNjZW50IDY5NAovQ2FwSGVpZ2h0IDY4MwovRGVzY2VudCAtMTk1Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViA1MwovWEhlaWdodCA0MzAKL0NoYXJTZXQgKC9GL00vUC9XL2EvYy9lL2cvaC9pL2wvbS9uL28vci9zL3QvdS95KQovRm9udEZpbGUgMzEgMCBSCj4+IGVuZG9iagozMyAwIG9iaiA8PAovTGVuZ3RoMSAyMDEyCi9MZW5ndGgyIDE0MzExCi9MZW5ndGgzIDAKL0xlbmd0aCAxNTU0MyAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42o33BVAc2NYFCuPuwbVxdwju7u4uDXSQxl2COwQnOAQN7u4e3CVo8OBBgvOYmXtn5n7/X/VedRV91va1z96nC2pyVQ1mMUuwOVAa7ODKzM7Cxg+QUFLnA7CxcbKwsXEgUVNrglztgH9Jkai1gc4uILAD/7/0Es5AM9c3maSZ65uZEtgBIO9mB2DnBLC/52fn4WdjA3CwsfH91xDszA+QNHMHWQKUWADyYAegCxK1BNjRyxlkbeP6luW/RwCdBT2AnY+Ph+lPd4CYPdAZZGHmAFAyc7UB2r9ltDCzA2iALUBAV6//CUEnaOPq6sjPyurh4cFiZu/CAna2FqZnAniAXG0A6kAXoLM70BLwB12Aspk98E9iLEjUAE0bkMtfYg2wlauHmTMQ8CawA1kAHVzeHNwcLIHOgLfcAA05RYCKI9DhL2PFvwyYAP9pDYCdhf3vcP/x/iMQyOFPZzMLC7C9o5mDF8jBGmAFsgMCVKQVWVw9XZkAZg6Wfxia2bmA3/zN3M1AdmbmbwZ/Fm4GkBZTA5i98fsPOxcLZ5CjqwuLC8juD4asf4R5a7KUg6UE2N4e6ODqgvRHfZIgZ6DFW9e9WP+8VlsHsIeDz19nK5CDpdUfFCzdHFm1HEBObkA5yf9YvImQ/pFZA10B3GxsbDx8HACgEwDoaWHD+kdwTS9H4J9K9j/Eb/X7+TiCHQFWbxSAfiAr4NsXko+LmTsQ4OrsBvTz+bfifxESOzvAEmThCjAHWoMckP6J/iYGWv2F327eGeQJMGB7Gzx2ANsfn79PRm+zZQl2sPP6x/zPy2XVVJCXlZVj/JPw3ypxcbAnwIeZkw/AzMHNBmBn43wP4Hk7+P1vlL/5/5f7n1JVM9B/amP7J6KcgxUYwPcXhbfe/ZeG+39mgu4/60IP+N8MyuC3OQYC6P4Ze0M2bjaLtz/s/5+H/0+X/38z/0eU/5ex/7/1SLvZ2f2ppftD/f+jNbMH2Xn9R/82xW6ubxuhBH7bC4f/a6oD/GuJlYCWIDf7/6uVczV72wwxB2u7v5sIcpEGeQItVUGuFjZ/DdB/7+AtvB3IAagKdgH98cwAmNnZ2P6P7m3XLGzfnhKXt5v6UwV8W6X/TSnlYAG2/GPnOLjfA8ycnc28kN4u/g1xA3zY35bTEuj551wDWFkcwK5vLoA3en4AK7Az0h/3+Z4HwCrxh+hPxMMBYJX9B70HsCr+jXjZAKyq/yBOAKvGP4jrbSD/QbwAVt2/Ed9bBrN/0JvO/B/E/oaczSxsgW9PsZXrP3LOv+V/Tc/fCj4Aq8XfiOst7durY/9P+D9ayGr5L/iWAPg3fOsQK/B/4nG+JXrrjp2Z/b983ppg9Y/PHwjs5vwv/ZuP9b/gWxE2/5TE/Ya8HG3eXtF/LN5koH/Bt4bY/gu+dcTuX/CN4b+KYX/j808o7jdXh7e5+Jf+jSD4n+xvzuD/Ub9V7/iP+o2/49vGgf/VIfa38v9Fjv2tVpd/wTcP13/Bt/xu/4Jvpbv/C75l9/gHcryV7vkv+Fap1z+lvLl6A53/Kv1/JtrCzdn57ZX/88V5G/f/4j9/UoBAT6AF0soi2EIg5ENdSMddjRiRB/PepNAc9Z5OOj2zz4pzp9sDGnwKfXVW0KbzrVjKaB/G2o4U3Y3oKtmzz3FrA3x4W5Ja+6Pvk0mC+sxeO9LyNO7QVOGxWP0gCSIxs6bovu+zk692oC10K2S3PHWekxsvmmrBuzuPARnP+sGv38fDFvfU9qvfKyA/fZ1ljtWKMQwsmafON89ewKeAc2UmQWDAuvBEn7+5ncPKnXolk09gRPI7ieUs8tHf4oi7X/Ber9DkcOkhoCLQxyeBvsEan6HxET9Mlcdb8iktWhta9mwVLCLLRWVKW2PGYDnkyKwGqUc7NPfXuo+vdLHv5qUAQmiJht7tJtWWNWObOFOo4FS3m0S/c63ltAWSHHZZia933Gr3Wn1II17lm61/BSzwkCfVouZEekys6/L3oHDm5xbKe5xPFJ4mpMsp4H7YfrQi0HnCe5YjPGGxdZcYG9cxWeeujS2x/q6jf5Omc6vy5L9mRK5A4TnSP7wcOePsdiI/XxQjIj2x+v74Xj4bzykSQhi68FLc+MuMFRqtIEdXgnnCbiKxRiWcN242jDBrq+3mvlnnj9Eu1UqKD5d9gYlr+K5bfgZYq5Q4aQaO+wl7JugmyPCnlwXvRI/04E9XsG/JR1sfXaYxJ8nc/NeWYFgjeJWAZBIcjD4Ji5746FQMDSe+RY9rYbb02c01kg8nw6MonBKzUclRWqmd74jhJD3G7i+Oklg/9afMRCVWfOGBdkvW4Hi9dm9fnww8QfGP2PdyvR1TsKT4tmdFrp89FSrC8rNpeLjobPxG076xQPzZbl/2OitvTErLIERfOqiuzFTt2ovedGMGb+3O2hJIIC2XVuSsxTwk7/9KFO15Y33KFaage1aJGu/TuxJQUf87KSMFNWSf54jqpWHvMl1FVOnx6xcRw8wxODoiRexImB9lcRkI3tS5MAuECsryT0mmA+WFs36LOu9bCgby8MUQYlWJMN4rH8VkUkTxmLZ3rCW5LSgjfdE40xX9xQCaG2B68ZT7nsWgwkqR2oPcjOTKLkBlFzQy/kqNOgiIy198dKTMF2cs8Fta/dj+eIdDO1RbV6yuYZxXhDunOtb42Sxc+uaoBp6uyz+7Dr/hFo0SrbWnLCRkHbvie3fI12Vxuhk5Yhp40T7M3P2diV0yv0jm7XR+nz0vMQiqFnv+O5igSNpvfsVzJe8+GBv+fB1oE95xeT4Apo5YD257w5IzrTWusya7XTQTM0PyNbn5JRYBExrlvGCnHOeaXKhI4iwPSEaWlNVYp+f4KgSJc9FmTc97UU1MQz7bC6xyuX0ys8CH8XSuJO9eR1AUR5Ho6fjkRoEWjomvIPkzThUDnDrTYXHvLWiradcdK0KQtW1E/rj+eem7cHPrxs7LMGnsclOIdUjyl7nQD0LCxOy1Acly9nwP5KaP+jT5WvmYOBp6WWpjYCDm3kgd4lL3IQqbTLEw4Lk2U4T/hOVy/wvgSNlyKN8oFaf7TiuRu7r8q9BZIf8szAJzGdH6vDcp2Xv0hGx8GOs1LBq1nRp9OYNGQZ0UU5Emqv4CsP87e/Jd1UHIyeNTSaHgq8lYtDT3l7Vhiv3dmx8Dvau4rbXjpYFcOMqHbvr6TSLZ6Irqjmqnvzq+2NxVBRJ9+yCwd2xxbQSkW2ucCCXYq0J8hMIwXycINWtHYJQc/6r0vGIsQLPq4GatvVW6/uUOWsgll6G68L1hXUDBT8jg6hxiuCurx83PqR15vfajW3jqhh7y7ohT6o63NZd7dP5h5wBbfuT8iFgt9J/mgOaauh/8GxPbiflp5o5bUiuMp9hsmJWQYhaWui+Q2eWZiu+sTBSuFZpOz5af4+RZIO1iY/3O+rwoVu2reshNKFdLPM1nfztyKxu8MKh7uaQlUx3zm7Oe1osC9D6LfVN4gHnnY1W6sumfzlM1R/Yb8R5hWziLvreMbhlyHAUfW20QMbLH+D1Jq4z4VBO9BL5V1pBdZI91i9D0lyOImOf6gYCKojakYUfKd1J5ocdxTW3xqWBqEOglpVOTlxihz52Jmsbn/TKFHIWqm7CWHcpssUOm33nOUe6P4Z2vX37CL7n9RDj8AJu/5pWDLmtsHJST+UnkI0Usr1htfxhkXEzXhsILlo1JQ43O/JrT/kTfGp1O2U9QBmQLIVcurEu8yUZXdjlFBevPUXOmnZk13K9wO4feGTnHe/td2kF91l/sGu8IvvOatMLKlH74MOUpIa1ZMfBFh6KD3Z04myYtSRtP1E+cN1mnpKSgbdQ1D5bPCsHa+gnu98YOvMsS4roCiT1JPLKfp8HNMDmLvoT1ulju/fcKsvEb6GtBPvcpUkm6GUsbvikm0miwwgzX9EeRbl2gMfZ8QDwu6YDUeY9wZHITnD1IbQ5/TDhH8bU0K5P06RQpcvSqFMaX7gg6jUN4i4icITYwkIiWMIr6MCpfORAFD22RhxhqvsBRGBP1l47zu252+M5RCGRlH8UVfsYa4f7noitG6P6J1NSbFn6tuLFbePpjm19jgiXrrqvL/lBFH9hR1HKqmDn9Pqd8IVvTRMLWcGM2wodhuMAy9WFqDKDTbppuP8gj2yxmWnVv6O4PISNnnF/UNyq+pjul0HUIB/VRVwcnl+gNXykLSXq1cpoq4rnBRXESLrWOPa2230QdVFss83MHjWoCAn8snNHQ9SGP0+mxsOLd6Hdr+0ZHM/KIzQT5cX2Fb/qI9Lh51IqyVePV0fru+yznPQ398g73MoWKlmOG76h9fb583Vv5xxZqyRLfLQX5jKcQjRpxntc+wW/gbfAu+M2e/XyFKf9d2OlU2OKmFpU7G7PizPpBceqyI4ZZrGajUkQ0ZDLDafKm5k67c5DuyOwGgrKc12tLm1CQS5Zei6Rf7iGRt8m2YSx+YEL98cZX4HrSG45RNnM8oMiAyCAHQA76zSE+zuObxwRt8jmdKLcuMJHtfoaZRSnGYcU9QZEJIRtrkXIkdWpcQ8nPHPv3Am6x8r3S15u5cbOKzsclhYMf6FCB9zCbxVdqotvQTa8i91juqmyGsoEbHQ64/vlnbDe5/nVctPuz6z0yLT1WSBBF+FzPIL7yCl0bcHlnBuEUl+pcnfe8Pvv0iu7ZzuQFIJTtY92oR81wv3KsSDknC9TYvHmvbOUgIxST8r4J2nEouy9WX1SoS11t0Hc2Fs3RjeFtHhCOauf1r/iIVNsD55cvWaCx/cy5tBe8JQHo8hVTCWOsCdCI5Y1tDyozs4pXjDFnFkGucpAxWKq5F/2xTA3DeNWT54YzqFPEiCNEbLojkx/e/FuhU5XASs6zXdiv/m73YTLtiPCo3fjnhtJtVJykg4lzbhvsuTmYPCo9jNXjU42tQJklqGCAi8ajP6Hku6Iq1mBK+ea1GKVBzyzGQZpt4q+Wmh9Z8hNssofibAu9CVHWPQZaGfOQJlOQ0PjgPQi5Pzu2/xD2DVLWaKXRLnt9FmwllYA8YSkuLSDN+FnRkREYcNKkHf+4Xlxl7zFbIhPMhtP7HlddLwvlSJaGzzoyBL5A+H6FfRxEOqpTndYvJzKUFjJYP1LMQRTWl3KhJ+A1F2QNxr1fKWmrfWyH+hCJDTpoMSqq1HlUq+rzMul+T6CQxz5kIooj62PqGXiAEe95VYNkYl1nbTgo1+waeUaWWRsXHcFtP0CdCyT+7ct22kMMwxrAqQny9jiBCd49hXXy+5ZapHyzf1/yslX/AplDLCcGlPmNKkQbpysBBTuDNslbGnMMjjESWXgK+BoD3PNI+0xnzyBsMHAnw3fYUHPWa8FiziMFuxIK5VfZVYmt8YtOqnBhQt5/WjIATd081BPR1NwhoJHhIqImpR6xWQbzmCQNLE5fl4sdgcaDQ56oEfxzvnjyZdMUjCICz3dfFVli43MgHWvLJ46JpMhe9fu40gtMp4Yvk0DF9nmpxoizkvInFJOKfDGvr//2GUXM+dRZ68Jwv0od2JpuoN3z8IfEpvVpcjscl58qKRAZnQZs14HPlvjtN20PajN1gJ7ww6R2uzL4JHB4OTrk2m5oHQ3hQ46QgOd5zMtA5XXmtz5O9D16uBVymSvXuvZlK3kjglA6hJtvHD5r9CBn9lhe1lTLLL3BET12MWtBrful5HGbI60Xv+sd55YmaGNmJVvGqMl1CPOdekd/u+8JHtwsaN21fGYYmp0I8aKL9IXl/aRYeeRdGCaWtHyIC3U8+GaohgE8r5RC/FKR57zh5JW1r8LDTq2ywW4uVUsBtJwCfcOnnxISx3LU95Vd6Rw+CSOhU3xFQ/mGRKiC/tpmiiWWFg3G9DQfPZdCvZ7NyFShk49bb7mucx2Fl0kJGbYxszBnBl0dQ3o0aPBNNRll0IlQNnfCHlNOVFzcQfBMfA97J7lgw8REmUUImdqyXTG6dKIr9P0XvmiMRVIMWVXoJHISl4iT8G40+ckeTyathPoUSh1/mCOpId2Vs4x2rRzMt0Ybzongkmp09hST4BX8/Duk8IXuuZDrEbVIF3P3diRXooiZ/o4BKmGvM6Fj5h++B1EVkt1ka7Li5S9t46TNY6ysfbvre0Gw1jP2i/cwIhoDeNL3KkQYUr0OPHODGydam3FRWkk/rVbWC5Y6pNDQpz2fK+2L2vu7wlbnTT6HwZZIFqqbHRMv3W06EPROMiwI3UFB/ah230zZ5HhOPBk+3LopXnL9STJxAITfj0bo2NT1jXf7EBgH4J5MZ2j2SUq7dPVsHkE3x1nsnbWDSqLRXiwCkA+qFR/FXHrXXeEKk9N/9jTI+rKxzk2z0/NCYkgpimZWYv0J+okKi3uSygY+eEpgkcz+o5ZnGb3v58E99WJHK0QGPemxFNl373pc0AiZg5HIGIIOugaFmJKpuGC9j/fQbEPMbS+I3UUi5DWlvNk2dU2sNSg2NNe7pbrmkyas1kmfGtL10pCJNXDPTPmyMNJW6wtdoOCjUR1f7ywEB7+VLotIzgTOXxtV399m7CHudeNmvIoPy4jg1vFSNFAElLrO8kndaeDTj2DNDorvevKDzbZ/hlodIlRHS9KkmRAJvtCh8ty8ZiqnKtK2Uc+ZsD92a0JvV73ng/ZylI5q+TUgvIVxYbhJK+EJ7a+o3E4/O3iuvQ8bv5F8U39OqsK2TvFYk59xHTlHIAYwTBksu0APGBnwyHiZOPK68Vam4EwKTshnNNM7l6OgQDSILNPq8uCS6VsKT6Wb3N7OqV+uxr/hgrIU1OmEATU4GsOGcT8BbZwe0TzxmFs9UCrGq9fMri+uheGcV8Ne331dLSUzy/zFEIGGrY7NaHnYw+SRkjf8Q7vEPq8h3r/jSmzmZZ7+9M5XbtcrqyigOYNIFA+p4NOrGHVsBpvDByBCeJNgHKckkRH6VzSiaCEShYv5r/p+9OKgPUqv3xYw8jTHtttuiz9dAl6sl3Vg1wmlDMjUSfA8oLEE5ukL8R40pfU2AyeDe9ncmJDxFCPgNdM2xuJO4n6T9JPbvXeEnqK7+6QuT8MVOVuyNxnuLUn3mxeoc/PpKEWqRQWQCnfaSmcuq8x3+rMQSw5i8jqWw2lUKT6HIkIe1/E30WY9VgdoPL5PccmT75idDvlDiI+nsaoows3S+fys7rq1BgPxqaxu6m/zPiBNVBkmTNGVjb6JSuleobYaZc5PeYGBCoKvo5CcGE7vlxV0A9Wsyr6NIz6NKWGUCtY+pD8doau2WE4P2OxjyIcRdwbFA0B76HjyI6uiemB5ovBSZADB3gpc7oxV/2qwmNeUmzaIcurqiJj3lYumWpK/2VKFBrJHWlCN3cQx3HawfkhQPHyIZktiNUHJ9N1LOXMw295edTyBtYDpXax9IzJw/JPvjrA4I1u8Ehpx1KVhbAwst7mkncGGTgtGe9aHI2H5PbdLunj1tdKt6bTB8H6lx7MsgWAt6Zrp083GsuX29xauA3RXPWOkPfVwavZHfvT2Nojt7xqO3rV1gprYnbfWIR0Socjos9RyzgMiMZcbunvqJ7uOPViTfX62XxUmPG3V4kTIcQpMccVZb1+7MNVO7+9F4mf3fu79fmqp5oKy32EbQXISaqLBGOwVDZlYUxx6KeyzTHRBJlmErcAJPchM7P2OViL002kEU4I5OXEZmqyVnqLYjP+zU/DBIh7b6XcWq4w4DocbCzBTdJX1One18yhlWMut71GIfTUb9wb82N4sWP7acUA25lKioRns5oN8SoJV+KLK7oe7iAjCp9FEte0tIL+w1Qd2jH9zAEWx3X+84g01s3cKQFu2y2glj0bn2Gq4eEkgHizRy8TKeBfU7gLvl1YjFYurKFktM6XBQC+qzBvJTS8x9J0pE9/j5q5xNoNLqHP+PYWSt2tcjtF3MXl6I8WkLDjngBgGOYfU6lwJ4wM1crlOrBI8XDXtxKyai89RezH6dU9YFlEcqwuftDDCChcEJhHEY9K60aTNL6UXqlMSeK8D8GAcdHMb0+RIEmHEFAHGMTcJDH1BmSFglqNUwweNs+1bwr0VmHg9ObcTL3xdl0qRd8ik4+w5JD3dV9Px/IUysFWW1QdOkKXXylTy1l9hHxwUXXZ9xJ30vhl9IEhptHrRE191Po6LOg25+QXqwh+74q5z1IiBK++VqK/Lc+JHCoLm4/MEWsAZqc/5eEvUQoe3iXiptGkssuwzbmlSmj7JMzQEMZRWqThPLPEjszPXdciYYVBI65p3wHOkD6pIMwoCdkhU4x2xhzXp9SDozIK0XxWQSCGKatv1E2fyx2MfRSMi1rtU+LPrdp1rjeP2+ZWK+Vy+oryE5s44iYYwSCY+6KWbYATMCULImQtLXAINzuJaRadLjKiDSIpHPhJRKvBEk2XP/3w4HFH/kJBlyyGWKbxHQxxsXLd+SKDuPSNkhRl5lEp/Z/1BbD2J1jPcXFzVUrB6p8h4No5pjhy9P999Yc9+GVmePKGWQbCqllWjDmqkD0pIaZzPT5fE4Ls65/aDGAejcrDlMcUPdwjp94hSN4kG5yzo+ZNz+srKQZJEJDt9B2Q2+DgxX3zJsC4UDoS5Z6NZuOkUth9w5oQZ4cOCGbnavRZES3E2YLPjpsUXzgz0yFo6km8QK0iYTZ8wY1IikxMuJxLIi0qYfctu1LWVnN8jWlJhfoj9Xe5RBSTMbauMPaWjZjFluf2F6tqThGSKfzkSEJFzeNsQ78C+ZwNAd/Ce+Q5Uz976SOlwb7+LvaFSA/WyEobv0eeh4sagPHyHZgvhaRGV/flV+8t8L1+FbJ8Tbw3HaOEUJudlweSvX0sBC5nXBcEsgRoZcIwjeKI06J1RCYYDM0Y92eY6m/nkBcobRY4rOGb9Z2yJVvEddvHrDu1zSFKSsSgNjvCHEs78lzVXJJh78ydqGDBCX3YhEg6xf4xn6zQSQePy+pAm2EtoLTcLNKu5vhDtZBtURelvfsXC/DCU0eCrB63GRTayLyGIow+cWj7DA+/uPUgGCseehMVcaYvClOH0oqm/D/9dnA8vt844+AEUU6TUif1jKZYlTsAPb1MdYjEwm+2R/JiTUZyNS+XBabPQq+4YW3LPcffBFhrN31kbJlZrEc2u75d0wovQVP92nr8C9hnTWjzydMi3eijnwwsgeXRpKKfHqTPA12q6KfHFlyjArga3hwMCbYmL4rfdHiRw8XPTEe2hnPIME/dtleK4rZIUKR3fpE2R+leZq1AlWp0bxF+17tkO7k5JPPjqnbc8vRgnpQ72jroYsbVJzscPJW2RvLM0JbaQJLnrVn2KGrLyX+fBl8AXLsaObtgWngNo2mgA5eu13bV/qLfjL7JsudGPQj1T8AyHI1e2rbwvdyKI96Hs3IIZcd0H37My8JxMrLtOrj8b9RtJJ5SEQC5JccuF56L2Hp68OpcBil6eLVNl565dojlwqL+3g5LCRUKZ6MkSweNqlJWnKLhj/vH0wVbrckDaTLzavrE8iyzYZfPoT+kEeFHphr/rSstLWmury/dzr1vr3Fr0dRXWsVAm5tCgpdgUBPOmyVuYaDcCgrUrJNx68BCKiVDy7XphO6awptC85ZBa+EXXZBfdYzIXkPJb3FalCgl50Dqbh+GU+E5lDmEiPtCkSG6grRdBRvKkTdJ/NjL8ACxhEBwZsWoOoDCukfgUGv3qyIaMpAGx/7WLu4boM+ERRvNaEPFzlK2hrxBz/HqoQfIeLeYJ7Uh0hZ0NhO9sg3KG3WmwRPdMHrsR09UX8ZH+rRNPGe3XNKcMiu6bOeIsO/QbcKbQZSrPe8u7tS+Nt67ze6CgvTyCZXkKZ8cZEehyCcJs9yxQZtbGS1JOin4Pij3KOmSy7yOU/4i+jmPBB3YNoztpdY2khkveCnAqSileVGbCIJkDG1xlBWn6VAJEcRXKI2KkV3Y2FR2pxIVb6iLa8MVN6A4bm/tzF+bH1fazWlcsHirFRL2aD4P0q2Rh8BE8zipcFLXpJZpAncnDBYHBcaPDyF6j+oj86Oal+rNVH/Ly/RqI5lfvBeRyIuwxaS7N3C86zlre4PpFJRik0LaPFugvwm1LIQEhvITNNZ8wlScmXmyq0eRnrBQLcXCj4sZyE4qVy0viY0KlSEvr9xXpq1zRvvWZdNgRDY2XVQY+JJdnaf96v45DoeJP/UE5jzmf1NCk3z7ZsFR4ID5ppkUkNdyoGZcANlepezO4kfiQWZ/kEqAthWdBRd/8EOvPG7mq/Y3LG5qapNftoKKeLN5B9ivtjt1L2C8ZaIoVLQ8HIjspdnk/P7pfH1DdE+ZEaviwavOYD2f14A6FPIkvPfFCyYUkmULcxq5+Fuf5IVHN+4vXYvfEWoP8KZ7MznS0LOjUzU3b1EjyRUpReBcNVkULQArjlUZaes6tE0zTzz+pI6oDd+t2ej9GCkbn2jdRxEDCVm16tX/06XRIhWK3L5MiVbeQyUu7DgzJ6yEn1amJiE11SLOwMuMPXKEedeU2LapEbEuBoXiokvOCuXtwJqrMVL4QoXpxcOiHHHrE16WdSrMlcAdqE/uQs25bhuMlSTnfu35XMuDzxDSvJfWSG4xDB92QZQoOwN2eBjEKTnEGdJbsEoh9eWrE+1XWuEBWJkYFv43yTSR/yvArwUR7Uau/xAHmDH6rFxDN8gP0yBPUnvROunaNX+Bm5X35SGNmzMUTCH/xLrwzsibniRiBYm0T3ZlylWhvMHzZ0k3hKSQ85Kfo1NJuHoGctxRFFQD/LvjrR8XRVQETN5jQVBcVRJjNWaXufdYAsMosjr2vaAulfdt0QXcGDuENh9kUGoAMD2h6izZs7Gq8rePtgFyXZu5eiWTEQgnyG9y8Sz2JIcBdYGFfPrghWRjQvx+LsjCfCOAdl+jXfFROo95ROAUmIXz/iXZnfF4aIz6cPqBZ2CGPPZQYiaVMYkM0bEy09nsTZlMmtkto/040cn+ryPvDAnXDo3S2ymb4WavU3nTP72Uxa7Zqhd2nJNJUreQtDkfRPKpJqlNL3l8YIjFPox/HEp/ViOv7EgBWCCUJaKTIUBHmVeBt5pk1acK46XfMhKHvrK5rz0F7VCZRUuRXZMeYQRETcbbSOy3jDfl8t19f0QWJJwiXfGhBXquGzW2qMa881Yta4pPx46qXsi8zHBIwosa79SXk2p2IuYzcIQy/aJwWm7HRfwHV3U61otn9ZtG4jqopBPzzLDfHIftDPKovT7TlE9Rvpp0sU0osmqe52LcFdrhweMj7BiLBLuFahtigMj5zP2apOh5pMeobH9m5LzfBfp5ZkAcFCObB3DGVocsPrh1K+KNt1QUc6PDSq7O7xWco48PLmdIn7nGST0PA4Ql1XyUSmZBdjHl+b85FnQvGtJL6968jJZHFDJqwz2ytWNFyggNbfXZXez9Dtao62RQrSySHVGlbEca4V9+XU6IJJTjm7XMhyD14aKImG+kOx0RKhRVISabDc+F5Z7pQ/lpU+izty6z0Ja6Q4wL9PmsrrTz9RWIwsemFZnVIYimI3vC9lu0kgiuCxEIeUaNsDi5l6IiKsNyqh14iyV4hj0v8vNKnBowxmb2sPaYxcWVwJpHNbzY+e3bHZ5t8eJXuQ4udhPn3Wx6bRTexT4onGGXU4Nj6k1NKb9SACm5vhdW7fFTLnYLXI8W5bX4rsXdxh8s//LPSk0POQPHd1HuSMmUjmUnr+S74aewL4k2/f8ywYJ7wVzTzPDAi7n4q1CBMHlsvR03MT2c8a/LJudP4JtdD0PBgir9FQRQivubQ6J625+uW743XYQ3LU70zT3sR1NyWcibilLg7ZtC+dsujaJwoBVIhk+LQiKiUKfGpbTfw7c08EF4mRPY484WUa5lcHmo8/NGTYT4jotHSdZP7mMrfik89zfNplSY2zgNjpazeF/JpMxIaXPjFbKBu7/UY7fMs00Z09TELbLuX1bcrJb786ZPvekWoz7FNaDZhHuoS39fwBh2tspBsI1GMN/gm/U4HESRPplS2XSSJvIvm6u6+Uzy/36dH34UKwMJocyboLkZpd/UmR9ZNwLTSbaXpcMcz4ef5JaVkgphnx3Oqge/4/lYbTpYf8gTkcD/wOY8+o220cNWysM+F9lWWyX14YlA55YeTmQeoPAU7k5Nt68wYtKo2XXGaoy0w9/ilRbTsSXKDe2yEXbLJvWHlCF2osIhewUdCTiYzXTKDRRQJjrBTboMRjDu/ao3uLbBVVHDmKqvBFk71FHiK+0Q496z3lOrom8Sl7WfyG8YQDIPzHjVyWnVlZuQEDqy2uiaXHl5MjdDJXkXOsdDQbLmQGvRBI0UtUf1q5NcPKlGYHYlkuC1/7Q1hTQhacWRMCPsWz+lxHsigW1vygMVxGoCdH+73Bcugr8GqWzDRDUGTF6bRZD+yp1T0WI1k/acCexfBtNeymD5p1yuVnRBxh7iQfq8VKaQrmlnBaJi7H130k936zmo/VJI0l2pd+ndzaZ0EAeghrcVvRl5WIpvGLNtFh17Gjyfw89Fqki1ZNos7Q8TsQiFvhJ/ZD+gkZcQbTPeHxssZGKbOut+rDwoEsH26orKY4inG/up+t3j7JdB8T6LWvi7cAkdgsPZ6SUx5NT/5By6+8hMfzxUcRVpQ2QNiNnVyyZcSxbbfy1fFSCI9HVlI7Cct6Ab3yoQTLsZstj9jwMxLK4fOjeJpvbU5qjGMxQMHmHJBGHqtnB9/aWaTfuwPbjprUmjL2dMgMxFbHRcvsOLs+/zBNAtz7rEfo4/x3foIey/ejdq2AU1jzCM57tjsnLtaGrxYz1mZsgyyAqpnebBGvGf1B6T1lO2f3ol0umx340U0a5BDdfadwSnuQBsygKw3cJNLNPzQrFVKy5XTOyKa9id9/QgvkgXAinI9oVX3s1vih4B3fZpgyrZXA/IuuMwtlbJUvz2OK5LN1G44Qd4k8uGD7X3MrATmpaN6cChZFQeEwlAkgQCzYSAeBehXMOYvUyPmiE8Qly7Ee3LrEDHG/TVxml2bEvEcX2vrIlMVvIA4Iy60PwbX6n5h87j06TYLPDL16mxkNNf5ypw4FCTTAYlLKZEk6o+RnzUNCM0nmII9w+LqMmFF6eQ2/XnJu3od8ykNJi/08FYJEzSJBGz5GP37Kfaa1LVhPtoZ2y1rclpDwzJumY4LYbbmMGBfjUw5ojaCIze2s3KboDwT906nLKuiivN9R4ZiiX6rRcANzaawmiYaDPs6tSloW3PLtiiu1EsYSqzYIiT8wFu+eyUwcwqQzdFz3r5jjXIa6mfFxeK7hjNlwu7SUlTLFLZk/0gr+qMx3jqAcw2e6vDXyJYqZmOGabryjg1m281O2wq2+9p6070+CnHctkWVdectUQF7fBeJopn5UwnfqHYaMcGPjGuFpYJMOs8jvsM9dJ9dzPfwY5HvtHUM1DldLlfrcnchcEIDuQpwT/z1tpP6Jt75KFGNsyC3wDLxfxlpfk8QsdpVtIg9raZO8H2AA75EqLLfWFl2JhRFqQO/SM+XU5BugHZ/54GHFeWDZ6pJyFSKb7r5HbDqIxvRsjPU+acgmiE6mzzsLRYOipQxDBYWyi/Y9dKtwm7KYfa3d2q3C8slKKjkN8KpIluve/39FQDFA37nVT3Yw/rUA7ntVcoa/ASKS+49GLomRn/NL/xF+7l3W/pOOsCrASdEIytNPTB5gQpse4EHmBB3Oq+LnGzKiZdyhXw/C9Mhr5YXYmlGbJllELYgVvOxrN6Rj/N70XTx622hY/eID+1oGaaGAmUV5H2tYEejKS4Lr/0uIKQUwg5BJk7Nq/qY7rUtT64zQo7aTy8N9VtfwvceQ35Lw53drvyIGYnqh9/fTy9+Rp2Wq+lqaxW1cxsW9v/q0RHk7q/73HhC28en5d8FWSTx6dujAio0RcCwM9Xc9xJWhuQVbuPxWwC/xmSZFMK3QKQQL5uaRBM6/qfRjg8wnASo454mGph+Xs4dBefRzXg9xtPzfXaYftxr6Ff6M4bk4oVlOx3YxR+yU4TFyYhpU2NKfxxVRInXaqEs7q8sf8+Qqz/PZhSU5GdYai+4Rlu9zHCTYZrBidBoJ+lAm+tW0u+Or+l2DyRsgbwIjVqXXlxBevVBn//eGRs+3yMoFgCa5Y8eHbha7Hj41kobLMQYW5bWa0cfce5fHelB4ZEGpb7rmP/SQMMXnsUflk8Sl7RKdiNh3hQXC3ciZM+Uz8ty0ZuSPyyjw+V+S7Hp94V0I+kO5RmV3iBHoGs5PZj8yY6kOkNshRpxhKfHGa7CBF3uUzFUmNLXSiborcUcyyEJhMMDSGhzscauhlMaNB9XSj54dRfy3npjjfKD8zamlpITNipTx6SPwbH+1ZQwrFfqcmPkhQZ4Mf2PwwWJweMZHzMq4gNWniwLW5jCrCEbQ3wR3KwuqSCijf00YbdnMvf6KqRzhz99LCgqXm4mLbuIJzXXlM+SIGwtBS7O8YuWROHbmCFAj1DBhED7IYhcKW78zP6pJTNo+Jv7Z6QFix5UVc3zYhK71OxR/0Ppif+lxYI+2jcEoUp2Q3gnekx6Kyoy9qZgEAxHmZKbak591IDe+pkw7nUuy9kDZFFqPu6hm8g3mCcbz64cyP72vB1HayIB9R3cGrQaf6sGViUDSrSZqtJCylMhWUp1LNGGro+wTvQ/JhzNHS5cHHjqdrnP2jHIVuuCBrdTBTO8x2XKO1krZZU0Tb88MwkRHpbyuBjbr62lseWIFMyVDMtaKaHqNd+2lfRT1zqblmTwVUxEwDi16N99j3SvrOSRwK3VYwt9/LiTBSQU3P98zvT8mExXUXfLaGwQUms6JZq04Xxz1DaqSa3bRlBEC/lRpIMEaHA+7fApw6BvoR7dw3Lk7KYy4f3m5IUPx5U/gjd7IMUz5BzadkKbBRU8qgFdKlyQDjhpSDqvxfw258gibECq3/z13hxy4tZApg1Q1BXOEcBDp8208XA0PSXMNI4NMWtl70YwnXhTRIVcy1yEliQCPU9pVBRa0n8liGv2PHqTj4/aBJkZJQf/nRpInGNaX+S8rBEemiXZognQKD5GuIUvS7JFhHrZjNLZGh5Ebpgzuk0DnT+2ojL2xya6pXyDrc9cQVhg4EDsHt/2+VmHk7K1RR8eEi1Mp0OxTvfO+Xf1F9vj+gz0zMSJGbrOa3Z/FfN4uVquWlm5CjX+jDAhPYl4k51Dzr0TfcqBVcNSxwdTi3KMGJLyAt5ryanDClbW67FcXVktbluX+Yr7h7od11O4bF3P9Yc674gInxEbLTrrUng1Mwb/acRkDtwTORGkHzkUnmTYEjeKQiMyw7VaQjyasE3nkx0u+OpbbDLLzNbbfd+wk+nEs6qDe8Jm5b39rVweDXPpG/eZa+3yEIc3Y2nHDziZNr/kPDfCYL0jpBlCGhelw4ez+63vfIWuROrrmBUwyEuRbe1bwoC5o2dxnfDJjUzqgtsR8LWCNMvZSpV5reYZHTT3m3wQ1+r6QaLnK36pksTLpLpcJW3vJ7mCVzgbufvSu3NyhB0YXmB4KDMeLyLnjsWDDLnbQ9kdiTyV9kcQ9pAOT+S5LUrnqPB7knwiDyb0bB/un+qXsEi7NTLRnnsp97FslI05qO1kdvvZP5a45QEnFE/GYpkVlNg6tE/+zAOStj8+GSMWl2c9xlII+n87hkJyWF1774y3sVSJaNzLNgVmm4RwdhxDNOijCf2KidgEicVlvtdc8RqkR2OAU0Ohi0Q4bx+Tqt/KZNO1GCuSATPZBDzeJy0pOGsPFKbclvEUUyggd0aXqgv+gcZ+mEOMcZrightxl9z9pH0JeV+ukEuf9p0cu7qTmyghrXIef6E/FG94oTYrKyz/PRLLg82xzhm6uDCizWvheRioil/cdWkKEClo1X46AH4uuCTs8JyqfXQO/ohyZqxpLbSLwFyIIP1x3LPekR+7cKhOKLZCij1ZzU9aqrtcaeE8QV/dR/nBwATNu3rwKm3BKYGpSxB2OGYGjmwlqCvZffzJYB6C5uwEaF94AyJSr/NRwvZAEH8+IT0DLqCSIDXX+gPHOpWE2Knl/D36KDhkOx6dl52ABWHQn26nJgBji6OOQPMQxKxf5QkN8k+7B89F1bFaGebwOPOqVnEjeWY6HCGvBYR2yP7zUwbyijWYwlcf1HzSj0K+iiUZCXvjKsWyUMYdm/X32hGwxuj64FPSWYzKc8n4U/i2o0P3h2rX16eAogjXkJRSIcLEj6HqgXh5QA+DYcyO5ZURtxX49gSIlEwAVN0Y0SLqAs6BX9yYW39uAbhwFKqXI72SSw58t02EGUN4FXi59R0w8CXPR6OdgcskJGyZU7p/keF99kVzvPChk6D5LoOQu4Oqye9hVeqOIrnYL/Eb1iv3kYw5oTrOOXBKYkSvlH25eDd0wmICSMqKpzWuvSmnzkHW0x5GC/LhEfrYTzCjBzfp5UJqc+W/K+zp97syWVFYKYDErCsslOa0YgPgqcaqsOaajrWPpgFTCyng4FznFlsArfYKLyxMDSp5C8V5I8cKyPIVfEvXpeOP88i06dN2rhWtLyXhtWfpVq8PdeadTbvAqYOktqqmLGra+eubot556u3U98NsONsMaPqDdz2wwHRn6681RtAPtIqp3Uhf0JVc/Ed3LjxcVLsS9c/cHS7xRcdpkBXXU8ZLDp7giiAxJQd5rGaujhp4hj5jX72cDGQbfLXHwPvkSbJLeyC2TyjmMNdcI6V2AqI67cV06zEVOcrbfMYhGOJa9dyp409Iv8JfjDhqNUCWzNLad2pgn+ePQqmyOn4qED7HKaiQf5+2FOEUN/vOJQW/3EY+sQHfD7/hY/TtJJ2Pc41zcH/InfBPcgm0ohHQj9WvuMxfYncS1izzbyEDTwYZItoy4bW2koOAuFJ5Fte9cWoqdtvKHRaMBMplmuNDNs/5oKDH9EBacRQoZ030aCYohPh4Q3QZZd4VyRuzh128cSWFz/OXwD2ZkkPCJY8oXGIp1Wxd6QllrLJrlXQ0H3sexXh+Hc1v2RAY0HUC1ammB0VlYeiMheDBDRhyXjXK3ktIRWkE0oZKoUWuzY5p5wJ1a8ZMBRaDamwT3TzlDjwauSAB/zUvrSHNEoqBM19AeGYVTysVQHC7Vp6UH3t1OdrI/uBLGbMpnetjN4s072abv+ahooauTJwcH1sAZF1wGmlgpLXZhSVXkp8GwnyXtAAcxWbKbY4Cl09+K+JvLX2R+bpPnzL9DJUS3EBjgpadWnUdfZMkPOjggezNzpjWRottD0ob5sSrhlLis+wRZmTlNU4pA2y6r8TDBpDqa69Bl3QHu98u+i7ZpDjn8oR/KY/B8yXJVTE35bQpajjEMteMnCMxF9GFJgH7vtTatmt+bqghhdEhAcB2DJQiFRe+LkNchEIv4DIAw4NWIOUJzDuxoY6D2OtbyMu4dXHO28CUtZdViHaD9DWSvTDN6XOPLPcGWXVd19LHfWXiQ2m1T3n8RXuBVK9RBwVVuKrMEvD2Y93LhTuzJBcE8/dXbJywk15ijgYSqLaxSkTrpJDGuu4hB/KjjU3Kk0ieVaJr4S6o6aY4GJC3Q1cSz3VYYzT9AvABu61FE7BA1vWin1NJgOp2i+aMlE0nwSnAoFgBu6ZlDy4Sr14Y9fEjnn7HJLNPxzu3ogGb7J25uP0HV80cdfQXgnVqD/uMyiz25dBDW7kKyBvZp3TEifYweVeQuwwFChUkAgRdfqKkL05GoH1zOAU9notdNBSf3mik86pDHsek+cOBa5ZLlP+B7tICy27o6hg+kqFtDt7z8KKJ6HAzG2zEDjqxkpIBwxrJryWzz7KMWoB9lOOuTatD1pfITDPXxQy4ymFmSoVHUU0KlLiM/R2OT2YU32Ag8nZzwwXCW1sF6JM1Bh/RfOlZOAa6TcbuL83SxH6cQYNhpTk5Z/sWakZ+4/cmpB9zEXDP6CGKF0sOcX+6dMGJXw2HdpyHkPmawy2PdI1V/oPiKtGGGRwj5Rti8CwoxfSDxJ6iFXhR8fIxNge4vEVuDEAmMV4kDih9ZOXOVIYlFD29MN4zmL4ngJJB85TfP0fKM/3m1ZMPrVyzFuEt+l1vD1jX84hwdnCSkHTyZWwpTuODN1uefXiJzbBFUnk6vrLar0u8ZLLnbAI6/ix6Le+nJ+8ppkM72M8gLYUSAufA5jGMFnuJOcN8Q9UJ2EZL3a6P6KhwcLS4RBZat9V2Eyrkx3IuRCqMaDSSWrdCbogoLwuGZMS3ObxjOIgU3y1FJt6LIRR97UFlO/cJpcQyxGKrRIVaw+0VvKes3VJWwsgtkxZIZ0PzmDmqdezJXUytrQTJDVLclgoyWE99Hd0jFmGN55ejFlOVmp4m/Mydtf8hGGXswJmSZNo7jW3yddtjpUhAgSp+eufR3rknY+650Vbk8++guJRNyN6L5I3xdSH97BoNmou19qFN4tbXwwvDnDQPr6YfpvjLGBELuxJGdiZx0uuWeXvu4deLIgaebCxekZLUU7Z75lFRvLR9Q6EKlFRGUocsGVSfzLQD8qmnmnwoMK3O1J43t8uY4VdkUyxY/bqRr/ttr3P8ZGGigcUZLBo2ByRdCHupPcDJw31NX2TdT1k/TA0ACDy0TXfoQeE/eR0/TRY2UX70grH6tHpeXf8Y1t1TosAj2ouvdpUq3fItuFVJgn2cKtE/ufkH5M/n544A2p254rQsFb7fxfEQCbNxDV9wTo3ZQFS0fRpgCJnVneShAxSLgheZLXKqMQ5DkkfJLmw4eTW52YbmvCuXuVYY/M/Iukm29P4c5x865gTWZBGapMXrXzwyRhDsdnT2oq2M3Rfu9iwhE2h2fhSgBGiHHaDBqUxX26m2wxdsYsoSq47zRj+74p4Wjzr135NDTkjHvNLWNLezkc/8JA/UCkexTSfYw4QXUtkmqmh1RCHWFQqLn0ndWiv0r5/Zy91u6wi5VFVnKTr6dvZLPVLirJBAWpIxx/M1xauxdLa0Is25DK4WmuWuaHXyHIH0h2ZvI2lcdPdT3iCnXuN8NuLBkIr5ZL2wbjHoAKaZVNQjcSr2qB6f5ptNfE4v3kJNWaAMdbuHTpigvfckij8kplW6lqqpE7rSKK3HvVZ9SnD7GocaP7VW1vZ3TCMBELgH8fP3+FncO1/jySTO+gax7B2sAitbF2+u4o4Kux08d4YO16cFHV8n3vkhNhv0ZtiG6qkwf2Sx3w7ZZXM31SjuA0VHv5cKn4KZ7eoUcNG52MwUpXWFGpjMMjUJkBpbGvV+Koqsn2Eyxnr5e9dZQZTkeitdf8pPeUhinc6ytMIB0ZFUsmwpG2t56KJT38QHUiriKcU0bJSeNb6u3DvSag1r9a4zFs8CIp2Erwa6i2HhCIxOzgBMKt92kEp+788106vXRsBRE3WP9IeYLc+sfqkilM/ZkcBBtP+ZPs4oaGA5yviJaH3cJSn9aeIR5sfljv6w3QVfiLIYA86wp8Xnjayj+vReI7xxU4gbrFEvyal09sTPR2H8uvhMSZcPqMFQSPkzHYPsBzZavgw3v9pDtNnhTomiFGGdU+K2N6ZlNAWe+oTk4dyGkkaDfOG32M6hJhhtNmI27ewac3bv3COjc0e9femqzZLdTANgiprYkeEhNmJvL+7xJ8r2omx0PounJr5X+yzgdyYgqkA1hiEe2ayrmycZsuDAS850FE1xY8zDnqgWnLTIx4GUj3k5obmRV8Uv1IBFJLxqWVTCm8oR5RnOgnMb0sFMrucshODxGjn/ovIFgjHO+RgPz0AUFlrg+f4meZ75VtgTbVSVrfIi2zDOsB/j4dRekm9rL+lT3AC8ly2OUwRPaRtUsTF+2OSwyhap3HO8hUlmPUS5Nsrhvf/HUnXVb9o5yuBHHTzaEOJpbZ5LnYfCdhHMNheSrpsJyx14Bde4QRWXOOvwzhR3SuUFq7BFMyZvf2Mh5JPLSayimIUujpLJ4ASUCnGT3wWm/DylutQs3cIfNnZ/1CGNs214jiDmG8tfXaXuSkDOClWRkyCFY3hdU7uf9rlikjmvaUIXaltF0TjhtVlS5vRbVhdLCrcT8CBMIbOlaSmUAkScfkcBZ3ocrTBdbq9mt6n8XmvuR2Uc/GkXh3t8UtxzIT5eJdZThFxlm3Ou92hi2+w6MPzipdReAdV7mMF9pqlbE0EKM486oFiobzMoUXWINSJDs7PeHYoPPz1uYQd5tLBcynwiJbIlV2k/JxGVywrtXsGmd8AeHeEO1gJb5QyN6yf5rvVQrMRiPQYX0zWTx49p+uXIQiTT1Rqx1FCLlPiqoBSI1qO1fUMzQZ/Y2JgZZBk7QCcJwct7CsWxMUf3P6tldzsXx2y3Z848INzKXS0cwwkLObEpvtY/doZs1+Odc7ohxVpowCGX2VRLnLE/NXGT4OZKHkyLJrVpHtOf6cW8+I6sNnEfKi6mzByOfOaW3zJyFdU8JKbWWkGJitwIRWuhIcCr9lJX7pzU08GCePT2D78SflzbWi693kkFOaoJLZFTs7ci2OMOvy5a+jeT4PRauWprRofMfNCUUW8OMoZagSXpz0hHJ+QIfHM3chkWY3d/gwtDQ8sOFU1Wi2HYNQD5V92AnkUho5L2qzE3h1Irwu0GF4Dfgu+j8klQ8G9buehbS1QZscYgSYMJCesX/ffvkI9qZSUhZHWgvokQXwhjNqGxMAU6CAESxfO4ghL7qz1l+c1X08ztHH/apN5UkxCNhmJn5q+1hMzzgNMXpdogJZL8MhSEcW4+Ep+df6UgYe+n79wEMrdSeGhgNFTrQC6uHnB/v2TN//n/AEGINnUKZW5kc3RyZWFtCmVuZG9iagozNCAwIG9iaiA8PAovVHlwZSAvRm9udERlc2NyaXB0b3IKL0ZvbnROYW1lIC9US0pISEkrQ01SOQovRmxhZ3MgNAovRm9udEJCb3ggWy0zOSAtMjUwIDEwMzYgNzUwXQovQXNjZW50IDY5NAovQ2FwSGVpZ2h0IDY4MwovRGVzY2VudCAtMTk0Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViA3NAovWEhlaWdodCA0MzEKL0NoYXJTZXQgKC9DL0gvTC9QL1MvVC9YL2EvYi9icmFja2V0bGVmdC9icmFja2V0cmlnaHQvYy9jb21tYS9kL2UvZWlnaHQvZXhjbGFtL2YvZm91ci9nL2gvaHlwaGVuL2kvay9sL20vbi9uaW5lL28vb25lL3AvcGVyaW9kL3Ivcy90L3Uvdi93L3gveS96ZXJvKQovRm9udEZpbGUgMzMgMCBSCj4+IGVuZG9iagozNSAwIG9iaiA8PAovTGVuZ3RoMSAxNDA4Ci9MZW5ndGgyIDYwMzkKL0xlbmd0aDMgMAovTGVuZ3RoIDY5OTggICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjajXgHVFPr0jYC0qQjSDcgvSYgvXeQ3kFqSAIEQoIkdJBepTfpCEoHAeldqQLSBQEVpChdelFBvujx3HvP/f+1vm9lrWS/M8/MvM87z+y9VzjZDIwFlaAoB5g6CokRBAkBpQEqusaWICAACBQVAgJFSDg5TeAYBOxvOwmnGcwDDUchpf8DoeIBA2OwNlUwBgvURSEB9zwRAJAoACQuDZKQBgIBIkCg1N9AlIc0QBXsBYcCdIUA91BIGJqEUwXl7usBd3LGYOv8fQnggfACQFJSEgK/wwFKbjAPOASMBOiCMc4wN2xFCBgBMEZB4DCM7z9S8Mg6YzDu0sLC3t7eQmA3tBDKw0meVwDgDcc4A4xgaJiHFwwK+EUZoAd2g/2hJkTCCTBxhqP/chijHDHeYA8YAGtAwCEwJBob4omEwjwA2OoAYy0dgL47DPkXWOcvgADgz+EAQEKgf6X7E/0rERz5OxgMgaDc3MFIXzjSCeAIR8AA+uo6QhgfjAAAjIT+AoIRaBQ2HuwFhiPADljA762DAepKhgAwluEffmiIB9wdgxZCwxG/OAr/SoM9ZjUkVAXl5gZDYtAkv/anCveAQbDn7iv8p7muSJQ30v/vlSMcCXX8RQPq6S5sioQ/8IRpqf7BYE0k/7Y5wTAAMaCUuLgYCAB7AID5QJyFfxUw8XWH/Xb+NmM5BPq7o9wBjlgasEC4Iwz7Q+KPBnvBABgPT1ig/386/rkiAYEAUDgEA3CAOcGRJP/OjjXDHP9aY/vvAfcBWAGx8gMBgL8+/7qywSoMikIifP8N/91iYVM1rfuW5vx/KP/LqayM8gH4C4pIAQSlxIEAEAgkDpCQEAME/jPPv07gb/a/rQZg+J/d/UdGLaQjCiD1Fwns6f1NxOuPMnj+jA0v4J8V9FBYPcMAPP+WvzVQDAjBfoH+z0PwO+T/p/1fWf5X+f/3jtQ9EYjffp6/AP+PH+wGR/j+QWD17InBzoYuCjshyP+GmsP+GmhdGBTu6fbfXi0MGDsjSkgnrM4FQXeFgHf/ssPR6nAfGNQAjoE4/6Wlv5uBrYGAI2EGKDT8130HGwUE/pcPO3oQV+y9BY1t2W8XDDtZ/6yrhoSgoL9GUERMHAD28AD7kmAVgF2JAfxB2FmFwnx+SxwgLIREYbAhACzHQIAjyoPkV2NFAcJgNJYzHO2K7YPzLyfJPwpAPD08sDP4WwnY6n+vfw88DOYDg5DMz6IgMuEuL8I7zmuVmLwFP48SLC13xSRZ9keLYbjePfF31iHM1ph6oGwPraYfeWwwVx45ORvAxPf1fMzH+lVuyGKGZgEGR61/VXlfsHDo29ErJxgrFMXoNC7xOGaVai/ZkIXC3grfijvVfPYiQqJHdP35l2eXXej1+1LbADdAySklWwYTJl4pv2sb95ElG8cyZtjSmjKB2sMq09NEy3T8EvcRPOFMuSOO4ZvvqlVC1vDHj69zB/ofix4WaffWiFdH0jDc9LvHlj+SMshAm5x7rxmNw6UsdqpSnp7EzlDsFsm1iGcvsfhjumigPXlQ1LPRSU8l5Ib+wzdNnvUosVm5/J7FQ2a7tRyTb8Jk9C0pMc4CtY85lDlroDinw5l7NaKIgl58OlYAQX3X+yvdaVRp2ZmlDu5CUxzhwzBR2y8T9Of28dnJIBGbdDmE5OCnp8riBghW9xFH84UL2XQADSMnjYEWnh6by7LnyB0BoZOn/fBKi9upyOONltcdwz1R+yiOryy0UyFJFp3Z231byc1aYqdvqcz41MQxddrvUN12vIn5idNBRgX5+AbtXRoy9xWl5ibYE81EKQpNqN6Z6KzjZOoRW0pHKAVPU5LTuH4tZ3m+UCX+5olcaItcumQw8OH7if1rqoY7iZR1qzcMe75dt01y8NgXFiGy1S7ouu9sX6rHfQ9zNwnetJ10saFsORWyLzG7WKD80zTIjqbsoXWBY/yPhJP148a9Agul+uj7iJi07qmgVbunb1g67w8kMGe+nNjp7eROX/fRbPx+ir9P4zCsIT3IHl6MqGxKFGtT+ThAG2NqNQDW6ThuIfLoeePYdPyNFGR1JnN3LcTddqNRb8/9R8UDZVUANQX3XISU6Gq1bjCXlD8+abRZkCrZiSQ1GXiiMVRkFimE4+zYRLKGUNBeoCvatuJ41BJLVf9dw33/tJf5I01bHbPwvUE/yBlecai65A8vA9EPn4Qt9MVf+yqhuuu+PtxetzF/wKQaqttKEG15d6n0KLKFqsgyceZNkYWB2r7OpciqnUjrjerWcpRmuj8J6JbPFMPNoS3u7g5PhoB2FNn56XdzvdssRtlqaYclu1mtidO4xz+40lYzEbfVr+isg3SocI2cQc9Z1fMdDkqqxwP5oxBkKuc2gJLi9z08ROHMXo4zqDB+x3H6XN3t3dv1gWcIBWYI32I0+9dq2yCjqi82FW6Ra5Rv4aXh2hX6Q1MJbFo34l5Mv/ixTn9iRPXTDjNtLpPV/eYgc9BTkedOBYbvTSnN9A3TJ7n+AasnJ4aBYNHP6mUIvPSuI0kf/ComwmdTmBRNc6WynuoVmXq2BbPFiZ9kKm3DN8PMUPWP33u15e+kKPTUp92WScutkxv5IC8QPrBaWtllzV75rSk9+9ak0e51LyOV9Lli/FxDVWcSBvJpRTuB/EG6kVyKTldqungHR8S6kta5gS1uRX2W93w2TQlUa0jTz5UHciYa5vMjiTV2KGTHeNjUQKve0V97rHwUzRhB+nXUsqajcFd4x+tV4rhVYeuPOdYWHU79QsXtLM2wyFRq2UUD7oR7T0feB3klzwgMcDSwO5uW6ioc128rLKe6882GS3iRv7sl994AhA5c1aBIVXymlyJmuy+aHmPyuV7SsS0SwOhrWBIV1qrPG95AVgWUmP4yxUkeQRyuQfrse4qR31OaoyPHTf+oCVsqVecPx7JrRf5ZWSvK6SNbs4HfXw7M56NFHLlVjnwXV2rtBp9PP1e0gbBKptYhGSUecIcxfLmmHX1x11Vf7tbuz0rFWVNAStkHhMBHA5Tao8VbX1xx32bxkUsQPcCzWmAj2Dn73jw2tzFtjWoPtX3H0cwV9/no0IZKEpGeuNaMbuUKD38lnLSyYsubzWbyuS8YTHaEu1z1dX6ifpkupNOYvVAmcSP9wtMWxziGREnsMEtcWY7qfZEX8n2WySpRdVZi3XgHe8TkWTmNjTDBqGBQoH/05MCQYsF0Bv8j5mw4+bXLcgh4zB059H61YfrTjH8FmV55KM6eMyf6W8Xmfj4Ap/Xdst4zutC1z1VmC2tjg2Hd4PJsm+MNhRkBUtzdQwdMISI105lSPPlKP9qrx66UwGjzTb1UkjHAFs9gl83Q/Yz4VRLTWauH+FnHK5ni+vsZG90Da15zrFKupL5UCXSNmim+7jKMqkPvVgGpLgy7oNwJ6X2jcJuqjzkOfhoqCuycoQGwj8XebBt1GaPi8SPFRgYbHF+aW6WvOt/yDnUmqN2Z2yiGclf1fu5mEmxtIn0tgiPM1A/gPEgIjJrvZoqb+3CL1G0koub+BWNfkQ655PjL4/l4yMhR4zjq5jxuVWyOjmbx2zbtD8dHTfm8mSeED/L5372HWPqm94+2FxfkXCOhsdN9E3dpL6hYTwikNiO4ZOI+zh2vmzgtxxiXDT2jgCp8rLOgxafhCbMMi+g7c9Uzb7R8uas+J7uhHFifsela/76XcMlol2dhZtxWZI6TEoirdHG54xbejhM3RrGJCHALQ02/3im/y2D4uY22OrzQN48mIDVxwes29R7/w6RnBax9aWqNkIS3L+bxUnQHtt8JV5+y0G1j5iLwLjRh2ZHzBioNm156X9fZNcQDSUt2yL4SFuTbNIIKlW4lvYxL4w9Yr+VZazWbOViK1SirQkiEajsymd/0W/QosNuV+6HB7s9dcXck0kIXUMLTTd+bXhe5x+An/KG+ad5vSqf3fnhAa4zqNdaBu4IU35aBarvuTbGM942/txwpDS5HVRFF179eZphrUVpLa33ViUF01Y1pXhZa4ZiE+KDHdItYIgxi+BqewGDliSWOJV043q4LUfSs55ogXgmiskQ4e/xE714oB5Bl7mdIQ2WvmQK8m5o6xu9oXXKgP6C7WB565eJrkh0f0tto5jb45fEyw4PSN04qwwzJR8l7cy/bsq9J+V1v/2wSrbIYJNyHediW3J8Zeb0UxcK3+1gqbsBjfEbrUSHKpcZ0V/uUxselsE2IWIBg9JzfAVQ7++KAtFcrB6Gqs2d4H0805KzJQBCJOu447OSWnbDsXCKACe6AhM/J4wokQuL41MTuPIZGHTxDJWT426hUyHP8xFMn9nNim4jme4pqw5m+7hL7VlDvR8juaPFoNepQMrFf29vQ6WO8ey4fyJaGPFRoNjY6b6xnu45Uxyzm4fHrq4tzN7KbCPAYmQ3nzR0h9hL7pPZyu+eGzXDmIMY195en/Qmsw4SE6BRcMV8hi7BEPOap0ee8B1+Yi0wKd3FKTqEg7YIi18rKN7EuH4Mqi4iYkEC/WxUaz1mWbz+IaU7cBpebG25y+oVP09970Tpn8YyxqEcUo+UL7Ot6KoQ/fSem3yr1zjOWMNU7am9DU9zda9T5KstO6hYzvfY89KehY0gJ5I1nVFN4jlJhfDVMOxbSJ13r8oMd2dJ8o4s6LI64o/G0vVIpXOAUFxl+Fn/admAUMe/EglKKU2+tNt9WiIV2D+57syZuv/n7R2+UWBZ4iZFfT8dv1M+YdKRR9WYlvdcZWyK/t713uGmrCi+7tCrZl0bL5n1oEelhO7i5aBr1PSAHJ+MOwTcxs/Btx0nT2K0HBiGBZxdTAXJXcdnY95keMf0Ag16CDXS21EEpa0Lg2udUPhIWfid3pWCBWoFXcgEulSJiVCpDoRI5JzOkKXsZNY2P55gpg4Q2hdXLmJiGWkeARRkYo9zltlhcIXZmbxipMyNDN7lB8BPY2qyb++HXe1GoBsXaupWMkCu7/S2lqSDR0hVD2s1uZVaz44cc+1JqRW10SS5yJI9sFACVG3n+3tdr7CjERM+K1b86TXfX381TztpYy9lRKqukXu588GJ8f4Ti9tLLxcm7jYSxrFHPkia+gp4bONK/Ja46Epg17i8QP17tuM78xONZqVXyx1de9p9IOxrrfsTfOu4O8jnT4LgqYAov3hoXCixsHbvxJq257NaH8S710aw0SG1ddnKoHH31K0e2W9du8410VggRCK97E/TFGEm28SjOzz/K9iODtHQq9upxabk9zv/4VN6C7bVbOuxgWHEMQUdufsU+ZaaiuXGeJ/nW9dZM8nVZ3/NcPU8ycBrhVnFZZ79QycAeLkavobgvGiHygrLFVUnLJor3lu45RVCTcdGXK8uMeWQjY2g8AUFW4gxXGZ9tAstgMvcFRBGHYoX+gqt5KEB2aaz/2eOzLtZJxt1a6qut+Qr+NAh5dXCTbOFDX263HbRslulmiJQ7m10Xbqlhx8LJGneJXo5Gw97y9Ux5ctz+stGXLjYN1MgjUQv5e4V+CvOqu8FyeucR1zodkGQs8f4PbjlY8sizz0vybTzqGhp1LfMVPUetxJ7jfAAEH8VorvaQJap6r7Se2zwLJu1kSqLdhj7xV0uhHS7ufeQdMs+wnEUlxEFrtrzuzIjJPfVz5XB15bC5u11Di78PcWwp/F5D2a6Cb56heDhy9EM07/Sx+22EYc2TVMMvWTH4DstltMLuR9caj54wm6Q+6FKflMS3+zmjRJXSjdymMXxLeFXkpp3gz+UnIzvTnU8Q4na4agWXeDNO17Cd+/SAm4/u8oFFsMk15CFGlmkmzvVQmEihXMSNgTd/ZNzxuLVmN315pejc9w7Pao0954J/BRNlKVuHIWuuMJALveTTeuy4rlzJXzXj8WhPbWnPCjO54KSvzRxv+JTjO8cLuZuMn0Lf5SpsQRVFIbyUNqIVjBnkWzPMMzicfLqBmsy9jFmbxfkyKtCny5nXhzzcOxlqQTddLgvUqRgpu6MhEWgWTPquBvfZiop1Rps7L3417ynBz1y729lURbx1Mzyt33OKG2/o6raRNNaHkz0Y8OJqqhk+U1n6LKqH06RzH13vbWLg6Z9Mh+5oG689N8h/xC+YV11eaProcZ36iem5AXu79lhkJH9lx5RlF0yCRgFYyZN+SgSHMjFl6zTIOLkSSr2i5rHUEkyKQ9g/P/kqYz9Du/5FaYJIU7rh+ZNlS00WB1Bq40q75qB/i3fYoJGt5WQ2A7kAyRMO9bK3GZqq84dmjAruh4S+k49bbxoscqrLtYf2DA4oRxGczp8WamjPGTjXP9RrsGrB1xq224oOViHaN6HzW5xyJF4nlp3OSIu7CLlmfxf7VFYDzd7j7rhc/shhH2hETEARSrgQZF0WTLWiJ+LqWAQ+QnnekxDNC6Lcajj0Wt7qPg7Sfm/un6s7vSiq8C4xvlz30OabtDmDzE0qr9tJEZSZ1y1WZK6HK99OIY4ptaBJFDJY1pJRKGAzeRYNELrRjKbbwTs1tVl7HpYiN2kR+/PGZYpYw8vYYI9gXYy8r1xNJN9qiIMKXtdDW7JOTD+TkkddIYK76by/JP3i6Jr18dlcwRCzTgjudlihQSqXBAZDgXvqqeEno+10d+FoMp5VptmTl32zXub7B+P0jB6vzpH9ixOVh/UK3ffC2oVT1NnFTYVqgfLrBLjH/B+0DafDgQzsw9OVk3LbIQfozcXdMB/UPZvldxVsb7wvxPU/CgU+yg/GbI8EiVHtF5mtjJTX81dRFTdXVb+8YJGIrTdFh2Y/ny0f8F3/PNyXSmhSEKcidqHh4bRiStBHKfaGIzHqcRxXQG1iY3cs0cP0jxoVa3OS+Y+3yAprCHS9Pi/xuNzClIatLgHIDsaLkAe7OTZjNv2GuG/M6SP055IZo93IheKeJlTvExtZdd2ayETpybrc+UL0kzt0va8DVE0zR/5SJvA2xX6EtW5QHmSWR3oOllincBoRuUpzP+suq3a0UxR+ef/Gs57ydQoaxbhck6o0wAw3+JSdc0A7wN5QO/BT0evVQ0/VyNzUGPLAI67gyz5JKaHL2dL2dQdGL2UIf5BaN78C6ZBYSTQXQurYotVAfgLpdEyspb4urdCDSZtLIjA21R+DDJC7iKi4WRV/qtSXkA9xNf/uWlxU3ok7YlHDHfbiK0sJXS4FbY+saemLd3rvJXVQUJf36HfkopRR8qRZd5gYDzImMdwW6VBaKX41ibp9vTUCoixonKR/v81hnFtrnnAUw42BA8r89ncJtMVQRi+GR5a4kQSWGac/b3uj3GmON7PYstT6DPIk1BVQ9ON9LgYUUiuH1ew5r5xSlWPz4sb65w2+JhzLKNsaJuqXp4p+6+ZTviFaH+aJbMfjaF7SGiDfuiqw0yeA/bR/S3I7k+Plkn1ooKAUraFwX/Fn3XpYcL7C3KvBoa2p2sZrrJQ7zmt4NrElDvvdxJeb7VuVdlsispPnoxkD/PiUOxjmnopaq/HcumiGe4U/y/UVn3HqJmuFLm6SYUoa57wIwiJnrBlbhR1WJ3sPdc3UaYeBYldj/K5an0XMpeQdMwLLmwGUE+d9TceimKimyqu2QpeKyJLeAPbShi/HX5NmSQoGh6xop3VinQtwEyypaet551BiEq60Sz9T73AGEWqmWOMIVPmMBRyja9A+u8Wa+bLq2lSra1Fz10d3nUtvtN4Xn6CPwHETWJx0NhY0v0+dSI43do+eu7n2bFiubO2Dt97nvHowokI6huNcX2zJYC3cu9duIkYNGMumvSgaMzHCbvt58pvTg59SwDpHtQEeGXd2uZ/DjpB3QjmuGujdGZWR7ZDVWGL9bwfb9tTDRKXuKZn+LUtlWuK3VDK0L1XwhL1r89xuElZ+GDZ+y/Hc8AfrpIrOcdFRcgudT6Y38aeuEpYI9ZbFnOtcZA/Zw9fUUuVHIwOaZOzxKfpJvX5wnt9eqDGx2oXMEtjshcJwY9k1HpsyusQvVRKE+8buY7x8ZqQ9oYbJdJ73fe1uvjCBsqdWPHXgX3+lH2kzh6jx+cQt7n24Km7xQoWyW1WbVZ+Q4VWUYw6Pk6K3jWOJWdZIj9VW0MPtOJD6t01WWwolUa8q4sEV/RyvqRrmJpFrXqQkft8/m7Qsfh8Bzn+86XDnNOeaVY6f73jKDAc+DFT13nVG7DHUSGnHnqc/QtE/Se66r7l89370mvz35Jp1X8Uv/VetpsvfiX7/pdCrKTMI8c/Yl/VVdpAoR7Bx+SS27V9XLI96u5dOJAgtxH/f6bm2ZY3TM4r7hT0z6Izb8+twAC2b/HvRH8CG+Fu9HU9tZ56n0fPOZAn6N+snttbqz34XoTQq62mg8Hm9sU10O9qwn+jYW9lpInml49L4sj0/h/1dBSLHYf/UT6a1LlPLd8Za7d31VyNbMe4eZa66pM2KBIo9MK6XT0TTMxG9wzEY47MvfZwsIbu8G8LuRoPni/MvK9jpRRo9STLVYCli5/x987Xo0vuH3IxEN+taS08yP607RBu+YDzerzVGUBe49J8CkhgY/Qi9GHAoF4NXHnIK0Wj7WevdLIwNX79YPaNT2yIUWIWZiUxRyeneQtHw3hQMuQcZNPv0THqK0XReZLJFfggU/e51KjtFt6F525Mw/cuTyeS7fPp+P9qEIC1HLpC0Skuui6UPc3PjNIk7W3LbEtRplvRZDafnr/e3BJTEkMNaS+qx6cK5ChdvYrOWyWzAaKEGPb71FyZt9YBJqaSr0SYFORPWKcZP7BtuSwDWKqdrTzwqDr2gH/V8MH1rPM4Cqot5OTd77Mp6NrxIRn0PmGmWM+35N+fNFVD4UJngyufMTVz5OK8rlfK0eu1dqerOj5G+3j45DF/D+jvEuvviS6YF304iaPBqffN+Zn4nPTemvs5w/9tmysIgAtGcf0IP+1JLfZh3Oi0qV/HZVTxhUbjHxQJP9XJ39NsAjeNJdFDdOpDCJ3NF1d2WaKljiVTstMr4rY5xvBlDmOnG4SjgBXcsEI1yPtKqdal9lX0t6ojl0+xmtl2NykFqqTPF5A8EiTOaNV2vir6EqCz/WKJoKK+0KX4DovWWe+fTVvxke9P4686LzjVi4IsjtqICxUP/cmOgwEoYrfpkhlFltHKjAX8bjuQ6b80dDriFAwc82dQvQlqTGZV9e1fIddJrZ+DEOZbNJqe6sRK68DTeCP9BhcPuBZG+8tURp9obk83U3NyF2ciUCOYDrkKqhGNkglTjng6RaFxWPRl/5Zfo9ISGNMo2P4zA1ToVO7UNYTmVtV1mUCquOvZBGC77SGNSjTWRPXQMggcSL+lXm7LjwWUQo/EhOOzn2ncgx106YSNWsAbR8FkX/Q9W6JGrCmVuZHN0cmVhbQplbmRvYmoKMzYgMCBvYmogPDwKL1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvVUVJWllXK0NNU1kxMAovRmxhZ3MgNAovRm9udEJCb3ggWy0yOSAtOTYwIDExMTYgNzc1XQovQXNjZW50IDc1MAovQ2FwSGVpZ2h0IDY4MwovRGVzY2VudCAtMTk0Ci9JdGFsaWNBbmdsZSAtMTQKL1N0ZW1WIDQwCi9YSGVpZ2h0IDQzMQovQ2hhclNldCAoL2FzdGVyaXNrbWF0aCkKL0ZvbnRGaWxlIDM1IDAgUgo+PiBlbmRvYmoKMzcgMCBvYmogPDwKL0xlbmd0aDEgMTM5OQovTGVuZ3RoMiA2MDg1Ci9MZW5ndGgzIDAKL0xlbmd0aCA3MDQ3ICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42o12B1RTa9MuAtKrNBGQANIhJPSq0ntvUhQCCRAhCSShhCIovfcivQgoXQSp0hTpCAgIKE2lg9JBpPxRz/nOf75717p37bX23u/MMzPv884ze21eLiNTUWUoygGmgUJiRcFAkDxAVd/UShoAAkkAQSBxCl5eMzjWDfaXmYLXAobGwFFI+f8FUEXDIFi8TQ2CxeP0UUiAjqcbACwBAEvLg2XkQSCAOAgk9zcQhZYHqEG84FCAPhCgg0LCMBS8qih3HBru7ILFl/n7FSDgKAgAy8nJiPwOBygjYGi4IwQJ0IdgXWAIfEVHiBvAFOUIh2Fx/0ohoOiCxbrLi4l5e3sDIQgMEIV2vikoAvCGY10AJjAMDO0FgwJ+EQYYQBCwP8yAFLwAMxc45o/dFOWE9YagYQC8wQ3uCENi8BGeSCgMDcAXB5hq6wEM3WHIP2C9PwARwF9nAwADwf9J91f0r0Rw5O9giKMjCuEOQeLgSGeAE9wNBjDU0ANifbAiAAgS+gsIccOg8PEQLwjcDeKAB/zeOQSgoWwMgOAJ/kUP44iGu2MxQAzc7RdFsV9p8KesjoSqohAIGBKLofi1PzU4GuaIP3ac2J/OuiJR3ki/vxZOcCTU6RcJqKe7mDkS7uEJ01b7C4I3Ufxjc4ZhAVIgOWlpSRkAzAMA83F0EfuV3gznDvvtBP8y4xkE+Lmj3AFOeBKwALgTDP+g8MNAvGAALNoTFuD3vx3/XlGAwQAo3BELcIA5w5EU/2THm2FOf9b45qPhPgAbEF57YADo1/Wft7t4eUFRSDfcP/Df/RXTNDe0NNMV/sP4Pz4VFZQPwE9UEiAqJymLl6u4HEBGVhoQ8O8s/+H/N/ffViMI/K+9gf5JqI10QgHk/lDAn93fNLz+UoXAXxMjCPh3BQMUXsowgMA/yrcFSYEc8Tfw/7f+f4f832T/K8v/S/n/vSENTze3326B3/7/ww1BwN1wfwHwSvbE4qdCH4WfDeR/Qy1hfyZZHwaFeyL+26uNheCnQxnpjFe4KFgSCJL8Y4djNOA+MKgRHOvo8kdHf7cCX8MNjoQZoTDwXx8cfBQI9F8+/NA5uuI/Khh8w367YPiZ+ndddaQjCvpr+MSlpAEQNBqCowDhNSYuJQXwA+OnFArz+S1vgBgQicLiQwB4jgEAJxSa4ldbJQBiEAyeMxzjiu+Cyy8nxb8KOHqi0fjp+60DfPW/179HHQbzgTlSTE+iHBVC7teGtB7XKLN5iy4NkcwvtkUmWHVHSGH5PuT7ueiRZmqOeajYQyuvDqQbTT0LG530ZxP6djzsY9uZ/XAuTSsPS6De/UVlW7Sg78depzPsOhR1zfmdTHrkF/rvicYctPY2xDb8yZaTp6EyXRIrVctPztowK9ZyGwAEoOSQjiuNDRurnNu2QRhtxXVjEdtvZUsXdwVtk+Fppm3+7owwGh53pNIaw/oD98Um7nH/7Gxv9tvudIndQt3X1dKVYQysjL46XLkDST2sTInZOg0YAj4VqUPVZ6kJ3KzFiDC+OSJE7TiYnf1G3BtWEAJQyn5/QBkecSkJrZWvdH3zfpVSq2LiIGLy6b5v6traSI7bPGPk65nHodaOZ8XefncZDG32CZcAzKodt2zIMkZZrODMGtU8O8e+lYHuB2kEWaPddBcbdE2QMr4E7PRZAj0SA3yk+GCofsCQxNezzSC8tpOEXDd7xcVucfTQ4mKfv3nGg8RpiS/L+6mQD/LFOtb6TdXklazG7ZdPCKV5HjCktZqU5y8jjjUXUzrYgQUQferU6IZm/x7bOSIB8jUL8OyEC/DB5dI9tZhhrUP989AJGdLsW9ZSSs9SbXX1MwxsKmpLMNJP51fvyNNGjLx6KhWaP6S9qKjyssUhnZ9anTncsL05o61ViLNVXHVTgWz1Fq8/uj0Yd71067G2EMdnYvCoaVxsZaprN00WtjZ+I9rUk+rgmTChXMEI5UKqtDbikQ1NgagrCfCRJWk0XfKu/PDngepnrLU037K5nPYJrqRuyun3sohgwqH7V9vLIebsN+a0+PQ2F+06JhWvRvRBxH8GdTMosGwJHsiKjPPKSz3/VmzwlWoDaWMxSd+gEhn3lejVrWBJJgnOOlc1kQq29mWOLrf1XTRisGt9aHd3uVXuZwZv5VmiSX7egDVRoeKCg6FvoGRVjYVQ5Nu24esVmhy+7Zrc9tmLoIOsVu73npsp7g/oBB/yX6GgUJ6Hse/0bOurX3ocLsFASOSYMJOgqz6vTIfWYGwbryWhqXypfpqxAN7Ya5kXoJKtPKHrZTyXWxgYba0pneQHU7AXf7oOFsOpLH0K8rNzgYae3n1eaeZ+KQqX0ZvkkHpqsijEA9RM1qL7Sh8BUs7cICAkZ7Cxc2EQuMTS/9rkNNLdj4Frm8pch1lt1Yps6WJEQAvdw8bW+l73JMCeUepOpfzjt8L3I15xSkhXPrvM0LSj1OM6GtJpyez5YkvyDqHL9xWPUTesFppssenFKoeux30tav+fDoiSH3lhpwjEzYCC7Z4cSoXkjLCuxhlFjPHnlpe1ULWcvBCupvNRHirymqwo5VcVfAVywYcGNdPrYVxS2elJtipaQlphK8BZiRP6qC5eKoKLsmjnlyWGm8ETOYq6DsbT8RZZLTuc68YHPvqgR5lf67/n003n6tFWu/XS7R/0bQ4HzXJRNotZta3UKK6hBeO0CqDKJXWUChKTRRvlURbU56/TtDkQYU/iVLgCvh8RhSglnSx3RnvZSWbWIjCLyzLlFYtrl0cIWd/rhzhI2AGqijHMoywfI6nortfBbcEXRlA2tHlPyz3PLvAMevt7k8haRJTi+tTrR1mUcLrruDs/LbH30j4bqSdAHnEXYTiytIhiHKlXHJ+7tmIHfnKuGMlt7gykvYUCYysaprWxN3ruUuoe31xbjFo5lnVw+3iZfW2/6lOUtH71JiufboE5BhhLKRj3zEh6Wj2eZCLdozC+TwoFI2bVelUadtiN+QAe8GX7IHUS8hCiC2qYxp7KvtnkuK5W50j0aFRNIJsswz1IJGQzfjKI5c1wx6c6lvACCekj25eKD+b9Ys76KESkaqRItotuBvoPBLN396VoMn7Su0harJJWW/c5dX0QmFg9EUv7NUwwieeDULdpCiFY7fv91w9+tozPUNtk+dymZavppBAvSr0qPJgn4GBZHcsdPc2TSb5eyPjF7WYeNViSqO/DEz+EKt/YS+VlqTg4mlw+MVLQ79vJ99Win85NcDtmYf2wA2Oyu8p9mlzDyuz7FK3XugZzxr6r1Q7kfZKVDLjKfXO7TOUhQnEVerx9HgC0CtsqdSsCgqPHdVXBocfK63O7l4Ib2bOXJIuFYBp3glJuTjrFBUkKuspSpr4/Tb1iEHfDXubny/SMe7QpxQx6ThcFH07kU6LT7cvcSq9QvnlkDFW6ytXTmmvn7vEpI8rnnPCwqSGbfNqWLXqVpo5djt7vKbfhmJSfXM+8bMUxg0ih95A6H6vZpRLUcre29r1kkkUBZrajNW0mqi8bCeS7Bi72glMLt88d/AOpgy5pJtl5kjXvHvjnKRtzf37onUGCatQjBYu2N1zN1uGL/dx+Y/g7O5zR5NLrwIKVFS29ca/xxsPww55ui5tstm0Ha+FgYlsQcSW1mOIYTmvTX3q+9Lbf45yzNzEKTSxblz77aVDzCdIzgUD9ompSN+5113Y8nhB6L6Sze6PRTjZnt5jn6LoEB3kTvDSUrruJmWMxySxV3XGCslKkIczhUs0rC1xaobvriFCWMESmwuhV7eYlpWYeixGCq2QH4cpMvExDc7Z5nQzsCeJscwM/p9n3FEHFd31Rwq0bR6eTDa8aQYdjq559F/I255WFl9kb6xO1F/S/nhioEFVVP09meP0ybVbTuKt/7VtBSG1LhNUkxLI+wsNfd/KlzOGaBlkF1xno3nnoVw6FjiE+noCKi8FhMu1S674njLt0nbEsedQD7VfDkrocdaeM1V+V73WTsVe2BBHLzRf1hzfMM9Dy8MUeeVPZ7g34BqDkDHdlf/Zbc2A0buZqvI5V/Ob/Kbcj8pLpzJ1Pkhvn4+mnln3sN/2PB6Y8RzK+WOwurJPKWqKK2yZkLdNcXwzEQFtjFKT4Su19PiTto1ghBTLWCJrq3Ox9YaMsipS1ZFIlmmkXEhoKpae6kOAIG+tmj74UD1KNcMfryrxaU/lEL6GONdItD0XW+68R9dSEfmQJjdr2OZp727BeFGt2n8etMH+kzsw+vDQ28Qln/W65AOOQ5d1dDHSfkdJO1+An26zXkLrMlXpyhxo+rqKgiOSvELIVJbCn3iXfZfok7nbhg4wicRxRZ7F9rhIv0Ce+afTY7UTf+W1wPavmTMD7afHbN3L3b4U8knVa293KWiBjfLGHDnJuYZyIne9KC460quOKsi8LPCJRRKQ2exIQhDMX/Ci+l0ksN1dLDOJpL7pP+WbG8EbHADLXvUCzQW63rJ6KO/BphX+KxM/yABKBYi0im5yw+0SzVQ6FQPT0j+X6awScM5Zviax1NKU4HFO3nTwVGtx5xPKauhgnl546K9BecwgLcxHceAxw2qJqsmdMNX7sW1ga83MQqYV6o/hslRj1tWr2TrFl6NE00c6FcccLxVlnTibrhQ8GbXvh+g3EjVycE1xq0o/KV3nP3uKuzd4vXPO42x2DrdbNY4DsEM4YMXC30DOvWgUvqkaYCTwLOVCgiy+Magvwzuw66U/1/jB0J2LQVjgFVkNSdqP+hZqqZUVg9WVu1Rqz/S+921hFyQP+9g+kKf1uUIJbAzsUU6VRLKtq4lyNwqgVWirFm7HN4zsFpwlb4yFXfOmxD9T00mdM3lPT08qEUXpwE3VLrhCIu8dZ3DcHUUL8qY4WbxTO8hCILFRDSvPfemrQG5xuVhKtSfl2FzbTfzQpDtLIE+fgER+cVqNou3z/no+a2tip9vE7hIHfyZoiSVQlT4+DzTAp6JxygDfqcE17Irb2wpB9PqVHoTD+aq/1BOdM+tcjEcRcgxvp+13gBBdTeSRfBA0BdeISy6T1fuLjOlFT8QqNKp/KweetTjUNmLCki0RkEwDwlJC4taDnpMi0pi45t3JBbL/8HEgQKD3zyjAPSPA+35wwZoTGI1DpiX83dG1Wk8c1oQJ41m5va/tiNCwoa5DAa32+qad+3Mrj9CgA5LEBssNde17ScoQ4wr6+MI0U/V4fN29871kHaqe4pqC4L4fMFNZDZeFHygSgHfUS9oV7ywDrrKvkk4RjGF1bcrJ7pVoCk+bv4uSSclgeLN2yBCtoTvtnpRyJxRCduN6xtGUYg1gg619IysssDBtTbqE0GfxGhJEtlfmZ0FSEzKzp9LkW52UI9c8bQ7GPXuoLFVtmYZY7cyveET/RU0GhCeIOlUgJmp329VIyF6Js7UQ77lcuLbT3DAvk23TfVeDvCqa8kgZce9r7Y69u9fVC7IWuqIBjPiIUW1yiOdlhP6/0zUvJUe9ns967CMy7x4/HPiGuJrRiftAATdoU/K5ETaYxMS20sLK+VjSfoJBLCzo7+yYYraPRGMBgkpHqOp4d+QroMuOmVfSwRXJoz8CDA8XA2OSr87EfZucgv9PlpzGNzHlKXW2lBvYNqrXBVSgM1xFfckgZSnqfV3mW0hplwkYyySVNGR4ZRSxaX35av79UEXA/7NRGKpLrczJV65Oib/kSr9dzfGJW6aOtziqOC1y03aVielDYemGO2QrR3o4Y0P5Yvzdlrn/qJLcRVY5JUGalpVnAi+AynfRBbw8+1sy3InnuWulQXjCffvX6hOyYXs72bMeqX2Bp/2fRLta2G2Np5/6nAhmzRuGyOo9h5WlGJR20Hx2Ew39C5/oj7lxgPqle1WWJePZZA2dDWqktzc98vJ6y4vOKiWQk4N33nkGvexJn7qFk7cZ3zq2MNJF5sxvEhXrtA4Nf6/MRFMepZalmFPS72uMDLoI0hbyV9z67DdpRXJlPKwzQXTNhhPVKf+9KLS87yxo7/+q7mxpBLn1k4f7cfb2efz5qj+fN0ojU6FzYC1t+odkPJzLirfd0SCXzbuxeBt6Zi5197TZNPqJ9qeABJ+0FYtK19LES6RyW99ZVQqmnk3T3ZqhVGz64iWFshW98MGX2yZ3tmCQVYk6mAy4vfnKKS0vFEPRYH5m5iU4f5PfmL3ME/xACQc2/beDCy7Joa9ero7/7x3y55suHSOhuz7NPO6VpD9JtXaLsK4gbGWHUrvqc+mpM1Utg2C9NcOnuI5EtgaSuvNUE+CkyR76f15SKo6DywWS0A0itKtvHOL4Yzu9bTPs6Z5WL7vygGLSRoW9duFRn5dhV881A6sNeBaUCW1gF+0DnyqnZ4gyOxSdamVuUxodYTaTUr8rr/TvVss47ZmlMwr59y7w/ZnYmiwyuSNunkD7mTfpB06oPdB13k+VWsup836Z1WBHVfauempc0lDzK9za53aFpz1cnA9DOoX3RJzK52arJr9JNznIBpurZclebrAMRhV5fceW0R0MHOznWH6SqIQ+ZCgKR5rM/TK5HVhQrCBgvPdnVwoRJmccyy/YMUAutd9oXyIfs8RVJp7h2WwdZV34caq4u7ErdDC4pu08NJoUhervnyPqf3cOV1kXJ1mu5xiPvpWp9YWmeuGNYpHP54XPRqcvpcyrXtn3YTzR4X+g7ACojbdOJOgjMU/ausbWWONwS6HOE67VTQyp2JA92bwPUed3J0S6GnaBlM9p3uQkRpChfnORD0xOT3sy3BsdnwHmzM1fLLiyriWPKe95ZIUn6J/V87WyT0ZIxJ0D2b62PNarNNApgAq++63qaT0Y2Md+WJZA6+CEjF7wmvx69olhpYJ5WjQsMMchKWZk0x6lQ9DOdHvOsk8ul3/voxnmdxKOuhTmca7pIbgDtNyTzqmc1zk4789E5gFUs8Qe0XIZsynRkoCsQbFEDNuFFjBMmi0JaPF6ReQgEmWZUJRJyeAK/RBDSx5tdefyw1r2kaPMCwWx5SJT0tkC4U1/BGPWoOdEiOfjumucsn2W74tTCG1Hr8yS7idDxwRWYH3xEckHn/bzQ9fdvsqW/toragjkPv4Q8dF59YsZIKP+hWY0sXaGw15Yu76SD4Q0zrfO7SFRjQdHUzHuIddgjos0RdUzwbWms0y5Njp+9/GcC7FireHknj+heCZSSLSDuSUR4R0yPgVY50zCg8f7hm9CutcaaV6SEss6PvTJQ51uCnFSNyeoeQp0Pn79VG3tPJEE6x8Cb08RDtXUT6OI7sPz6+uBNYresbBpMZxrY+oJ7D8T30UQ/kOp0Yhqoy5C8lzW3HSHDbzVlkFGQSDMYiGMAsXxKySUUoq8CJAcJr4slzYSX0NyZhb8x0Jp82ggp+EEunog4yNUAtNYUmTUw5ryJp/riRBNNL9LYpP3U1npI7b4eGY08fDLB/2ai70744SrF8iZHkEYtNiFlpYrT+SSJacukz2HpPrQMRzs3coiItfsZz9Wyyh+ZHcQ4LgQwO7nCGgx4gBMMOOxtBa+ocqZ/aOFJW5PfZuQX96qPEmXJciL5TlL7rMzd9VbKm4Rhpskp+mHf06uM75ZDNxfe1hUKZeFUIXbL9BE3P66ndG1acB+MGB4Kk4wbohi9rgEyvSR8vOPfeFP2R8Pc1HTSdF2kzjXbLAPYaerjVEUCbI+frC/xFRpNxb2jpdXYd/Y10gmvOYyv2Imdp/94LuNp0V+WS1cSFDejx+I3wqMslYUdzmp+YKXFG/dcRW9M//kVDBkxTbUB1yCmX7fiGuYJEeCLXrIpgJzCWjo31I5/SvfVbdK9iiT5+Q3lx+2Un1r0G69KOWUkhhAM0+WKLHEH1da0Ssjjf0ko5HQKpFAyQzzB7EFmlhMfgoazlReVW/NqS2BKAd8YXTQsdJhfUCeV5nSDRFv7yVZJogt/NJsd8MuAvHGv1Htk2+70DUbK+Rcx0qfGKXldIZN3QFi7XEfSPL9jnCFmI3pLHPA5mXu79Jvhc9fDpTaY/QtKllhiaNP6wvPy0imhVTTw5jXWIGQ9Vif8xcObeTGnukVsGarxR7MkU8WRSr15w5NYLu9nQ6G5EvwGP3drnVezYCICalnuBbsnht+KsFM2o0aCAzQDXX1HJwq+lvTP6raYjusOb0ObSs18Vbb2NvrM0HM6WyYWKGcF+sqasnHB5UNv5IXredJash6vkmQOooe1dOI9QUQmjY34YCPXxsSdIFbfnOKEL6P96A3TBb18EWxsIPPHL7ueFdRnW6SI8PNDH0pKt8tpjmLXCGrG6GzXoStFHzsUb5iIdW6ak9ePvPq8krVKae+7+eWWh2fH03cl5AEvWAdmX7hXsLdr9PfXZnLeOm2kWvRgzRJUimKelf9kt2jqDTIUeCEW2uZh1JVtMnH+9iy77Sgmp16yO+QFtig24DDa9Im7acdGggbrdlndXm/bElPr6Gzptnnt1oVMRaumPUsrNM+kjF1cfWE5z8TspU3nXX+CVKFRhoV7yQ+GBJkZFscb7opPt/B+kx+uC7c5i+z7EZ/qd3leT9o9fTOmxebBgkOhuKpn7mg2T56jS/XXs5SRhxFjXCXb2kFSjnVdvsnG6tyCYU4Jq5pxFFCSLjdn5KQlq+M7y9mlkAVsOY6b7i3Rqr5+sO5y2neC4u1n1jd+sPVh5mnk2Tgl7q7hsv1DxYS45w+uR1Il4sJ8/RJM7rJjB3NG27XKj+qD3vJ92xHYO/TgrHuCSXeW34dvhzdFNPeeBYH1NJONXAhuW1pmRt10pbDsNF+vadixZxPcdPf5bFru0CLLGt44PiWJk6pIIA4v5JdNvQXOXGUR6dh67yckoix6SugkN0ywlTduUItzvUf8wbKiYO5BUX2ygvMDI0OMoQtylz92mTlHWWIYHBg68Vbi8lFV3rPR93WhLgUFsESBngzetytaXoTrz7c6t8Tv6k/LzdaExeWG2KY2MxoqGV9TfyZbaL/A8JJ29Wi0JW9/p7PBYfbK4mvu0Z8T+VEt3wnhbSrYmLFzOV6j2FvX6+I3HhBi6m2EU8qzsoL10t+dFZjsd6HpZIvjBOaSCNAr9diAgpOlKRVjTRiXsaVJxcpJ+PLk88tPesqxJjWR9xlseho1dc5I5rl9lK/JbWnFGIQxXyvPhN6mDpe8iauab7oan93Xf8+kZox789KC3pHHegfgYwdu7MMYh7o+Oo2kbBKoQhmF46C1S2tuaxORCiPVPrLwSj58fqcjQKoLE3g5iBLbEKSx/zNsMK3p0BROox4JHaJStVI45lnkyYzmcuSaD2HrKU1CSRhyRuF2m220rHbnyby9Im/NlBA08XM/uMdwychaMd49fzpfq8qiJzHvkDDgaYlxb5U5gcIb5nxz02zTbJlMpQ54r5KIVJmPKtWjc/QmkIsR/VDwOOx/ALLUoVYKZW5kc3RyZWFtCmVuZG9iagozOCAwIG9iaiA8PAovVHlwZSAvRm9udERlc2NyaXB0b3IKL0ZvbnROYW1lIC9HVU9XVEsrQ01TWTYKL0ZsYWdzIDQKL0ZvbnRCQm94IFstNCAtOTQ4IDEzMjkgNzg2XQovQXNjZW50IDc1MAovQ2FwSGVpZ2h0IDY4MwovRGVzY2VudCAtMTk0Ci9JdGFsaWNBbmdsZSAtMTQKL1N0ZW1WIDUyCi9YSGVpZ2h0IDQzMQovQ2hhclNldCAoL2FzdGVyaXNrbWF0aCkKL0ZvbnRGaWxlIDM3IDAgUgo+PiBlbmRvYmoKMzkgMCBvYmogPDwKL0xlbmd0aDEgMTQyOAovTGVuZ3RoMiA2Mjk3Ci9MZW5ndGgzIDAKL0xlbmd0aCA3MjYyICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42o10B1RTa7M2VSA0AZUmsEFAkZLQpal0kSJNpEMIIQRCAiEJIEWqFEWk916lg3REutJ7U5AiTRABaaKAXiznnO98/7/WvStr7eyZeWbeed55ZvNx6xoIK9pibOBqGDROWFQEIgsoaxsaygAQiLgIBCIG4uMzROJQ8D9uEJ8RHOuKxKBl/wOgjIVDcac+FSjuFKeNQQO38ShAVBwQlZIVlZaFQAAxCETmLyAGKwuoQAlIW0BbBLiNQcNdQXzKGGcPLBJhjzs95q9X4ApMABCVkZEW+pUOKDrBsUgYFA1oQ3H2cKfTE2FQFGCAgSHhOI9/lbgib4/DOcuCwW5ubiJQJ1cRDBZxXUAIcEPi7AF9uCscS4DbAj8JAzpQJ/hvZiIgPsDQHun622+AscO5QbFw4NSBQsLgaNfTDDzaFo4FTg8HDDS0gDvOcPRvsNZvgBDw524AURHRv8v9yf5ZCIn+lQyFwTBOzlC0BxKNAOyQKDhwR01LBOeOEwKgaNufQCjKFXOaDyVAkSiozSngV+dQQE1RD4CeEvxDzxWGRTrjXEVckaifFME/y5zesiraVhnj5ARH41xBP/tTQWLhsNNr9wD/nqwjGuOG9vxj2CHRtnY/SdjincF30UgXPFxD5Q/k1AX6x4eA4wBJCARyTVwUgLsAcHeYPfhneUMPZ/iv4C/3KQNvT2eMM2B3SgLujbSDn/6BPF2hBDiAw+Lh3p7/Gfi3BRIVBWyRMBxgA0cg0aB/qp+64Xa/7dPhY5HugBnkVHuiAOTn7+83i1N52WLQKI9/4L/mC9ZW01ZRVBP8zfjvmJISxh3wFJYChMXExQFJCTFASuYa4P3vIn/T/4v6L68uFPmnNcg/9TTQdhhA5jeD06v7iwXhjyiu/FkYAeDfJ+hgTpUMB678I3xziCQEdvoQ/T/L/1fK/0/1P6v8b8L/74bU8CjUr/CVX/H/Jwx1QqI8/gBOhYzHnS6FNuZ0NdD/Db0H/73I2nBbJN7pv6MaOOjpciiiEai/rxHpqoZ0h9vqInEw+19y+WsIp9VRSDRcF+OK/PmlAYRFIZD/ip1uG8zx9GviejqqXyH46TL9+0RVNAxj+3PrxCSlACgWC/UAQU7FJSYpCXiKnq6nLdz9l64BsAgagztNAU7ZeQN2GCzo50BFIWIA+JfvtykKAcDo/zBFATDmP0wJAIz9Zf6rCRgeiz1dzV8qOe3wL/vXdwAOd4fDQG8mMDC5QIfKwBeH5YrsbsLLAwqjfMv3EgSEPd9gm/Df6ChiBcpS/OewB4qx3W1nZxZVr+zffMt14vmxvooiuCFar/HI69gqUn94uRE0NXTh1WDOR8XnnRxUF4UNb654nbh4Gfk5ktYTN9/my3DBX6PTzWI6dOtQd3/eWTjd93BiWW+lTEqT+rhwRDj87mNzv/wxvkyb1HEWnjM4YQ7Kq4zb7vRj+wejjOmDP7huRwqCvDfCxXM9TefFnnwdv/+u2FDMtYWVl9WUhYN0n7FvmN9T6UPcbeZJz4K8x3MKk2kQARGiKXRr1raSreUBOJdbTFh9UtBnJ89mmEj6OaBzyI8K+G5L5Eqyn7DAh5Gs3RbXqTvqHyLTrYDJbN4VijH5WOEPOU+uVdl8sFrRI3hHsdVWvl43FeHyad2fG2meZj/nniOnJHhcbVzPP5Mu8ABTmcgIOip5CdX4bE2cm6e4JdLL1BqEseoERvyLbFMTLd5sPLvpGk/qzN0+PRkv1/y1WfB4fhOAFWgnPxC4C1x1yk1rHYnMkhBkxfBmkXDdrQpQhcWoXi05tiJVB0Xun++hsBUpbrybPSozeHjwNvdSgsXKNW7aeANvMDQ+vzHnQtEaT9cB14jENVUjedrriTpyKWw1oxRpM8sHTWYyvezR3Lk8OY5Wj0Yf8hLpD4/aMI8nDCM6dylpuvFP3AtGjbTtN8a0eMV1SRKmP50beePRSCeZUnxOqBnDMyR9OWS14eqZT6o5gfJkFabEP0bX8mGNnwv7ba6FY3mt1VqWKGfzwRWp37AHe59eBL07bLPwjZZV2t8lXdYw5/WJVxiLzKpa9x0MCajNepJw4U3vucOulK5m7qX1uMrWCr2WKoOrZFZaAx5Lxj2Iq03cl5Tk1GzPeXyToSWoiTS4t/Hfm/FlHlwdgYVqmo2svSz55rBXAgqY+UxbOWeYImzvUJcwRtYSRSk7UbneZwPrHM1yZ//qM4TgdGQhgzxIssw2jbMYKKjifywujnj8WXxl3c1J7AtZyxNnpccpGn2+5HShsj4RLsVqdPNr/qF4+XeWLETbGqoKg1eHbw+JlJi6PRyBbZKJ+zFMXGPfMKmYEBE966Cp6BouV5+73dH45Iv1gL7lmAeXsp4EpUdjyJPZLrplmprX/J6s+IhtPYQaaIg1l4Cq1M3cqntWntXX2gLqga92KKh7oNxA7haEnAaGsDPZ/N+aGTAydrVvkXovnKvaOmeHPSic9MawSMoLDk971Uinzftb7lIwKhHhC6lkXddWOYJLEgNfe0h/XMqieBGRqn952bCJIrQxaIhkyBPmh00Bb9tshN23w/d57NfNvqJgEbbSPLF/65MGuF44iMwurhstuQ69En8/Nu6R3X3uSyd5QYR3pvgXc0SmKzxG7XdVu9O/uZUcngjvEV8kutn44MwisEZyoeYNElg6gmoIJlDrr5/ta67QjfuR91LO+IUyIAVv+siR3CK46RAKn+wxq26R/sx8IGzpEEWc9d5s69xbVhAbIvRJucyjs6HiJTRT7UGvmFWetbJFfQ0JpYLx0VTUTSVOe5TdVlZ4dp98PeYTM8OIGQ4gJCbG9Dy77m+00ile4JT4o1SGudV/O1XhnnNeiOAiaiKiFT0ZzCWOyCi4JP1KtkfPj6X1ZrWuz4jwBv7maIXKlpE5u6vBsyi57+5yoIDbpcWDtKWXnSPiiXdADR43+r5HWCp37zPufNWgreF9ekvdJAM3as1GG0hJv2Y+zayV4sB3YlecMkDq/nptw+BMMsXbx9iNdzMvC85BvssppKHkypfafTO0hzWuYwDltWoeEJXTq9nnEY17hRqxlrI95+94NeNFLN8P6zCs4nfZUtxsrDeGZRokr1fmHM5S2t6+HURT3rEN+bS3a/w0b7ubw/kgncxsALf7bp6Jk7wb/4HLkm8qb8ea4/I+CGL4IJOGTMOTiitIykEhk/UbSZ9b2BRVd1Nu89tQysbeTumHrIddCScvzwxObzB1fn0r6/kt79wz+v30huAbqFtVLxIFduJXr0XcKbXLyXIyRguFPedM6J2Lp9VNImlCIr9PdVsY89PFflI6cvdkS5DkeF1sd1H1Zchs6UsVdtz86v0JGXSvR6ZSEGdnB5C8iBOkWpJ4HEL2vec8vVCG8yRv1k13/hMvzq2OAolbPhKMm49vSxco+c8nyWclD7UVnVOu6NZdGSJO8Wv1xt//0OaV+gXRzkCMFb6QxCDLlvEBv0S8m8m6N2/WrvLBXA6QN96fsXZjG4VEcIZ2a9hbjJKU61h4LPICXmLTC7XHP5zPL/CzKHGAXjrzPAjLnbk0rn4btk5EpZZ6wGmShgn3pmxWTMgbYDoaXcin6BX4GHGCUO06ZITp28YjiBpWd7+mC1mpnU3Oxngx4ZfMit+fOxjT0xCGned1LYubJ9PfCj96dja6t19kjfBxp95CPjXpQGPwgcEzeiPhBGHlMHvD1+5qdKDYizjej/45OUyDHzZjr+lvaqexTVJAxMRXkv1mUeHlltmOpVrfZItK6Km1uK68HePRah+j+cHprxD2Jc0A63B0NvYz9YknqazTD8904jdzzBhdkwWHFHr/UAAZcf68paSD77PiocaoxEsn6tW6te+mAywlzLTjzD/V+Q0w5BPvl4RErnrYSPnntD19vTiU605uP55APQQ4yNTcR3SJJHa17YAb3kuoMXMtJeWEZeXkTs/RxShKH50nM/B+eoVlctWrrc6tiYHf/S4HcPM5wam6itjPhqI+qjaBWEBbWotSOQAELztZ7CwPEeUYVRx8PuoV41I3xkGWwnIiK8n1ubNJjbjadSf8kEnTcvvDg6692cQ+dvUg7l6lxDA6Z8toJmIm+eOEV/oqGV5ZF/mdK49I3gV2xys4s2zb0n9oUngXRib+2kFl+QdhrSuuZHdGFPTqI/TwjP4NdJdK/o4qu+81Nip/0cHWHy0TYqCisNurSlw4C596R6ZetRn88ybijsyHTPa3b+GJfbI6usgKGj5F58WEL41k6WWkfVqgKL9MNfjgbcqQeoYoeRE/BYS7SXgb7rrhKXtL+J6f76poxX7DMTN8Vr22YeER6Rh5oekbr7ZgAVUZGV6pgk+5+d90bgCBpi2apuvZOYQD+NjM9G7vDVzXB+x084MMMd8Drdpz8ypTW0nWLsS1hJDCe53cY6QGac7EX0rOpNdJAGq0e75z6yL9va0hGYW0zw9Fx9+IF5a03o8+rixAJi6c5IHs3i/E4eq8SJo3TCuveF3dWfEzjuLlVVUlfv6O3f3aElI3n1K2aeEb1SI12L7Mgl5kiJK+HlFcny6EfdZrEvVuN8zp5TemNN4ZwGWwvsNRSK8y0r6NnfPMrmRgZH4qt5KFZUV06mt7hYP1Q9ZbZ9rVFGi7W5qiPAM1T6YjbHp4S6FxNDVzU4UyLynNvJjk/c6ZN/hg7lksJfRmeCs4y+neuiMNoqBmMKr27yJqMn6xeovXIPfGpVXkyTuDPfuyVw3UxViSqSr9RMb3TPeUL2+mIOiUdF+U98JDkDTnzc6o9oatDuGRHoSmm+7Ore7xA2EkIaOWuWeC6YXMeyA/Zr8u8W3rONz4PDepSKsf8Hjt5gOvAs0W3a9nJRTBIWd3fCuE7y0MpMamfkoa2WS0jH93znRJQ1gme6IzPEO3zIeJNQYZGB2lsW2y+B7LVUR3R7tCsv8s9kcRd7AtaTqif2HI113IO1Doy/SFT1lJarfQqk2ctUnGnCo8X0fpLDKCiE9QvPy0jPOThCYRk+vefowZFTZ3jzRYDDwTu8Wk3yp8Jn02skFBo6aU7Bg4exmUt+oLBJOK+PB0dD3YW8Klf7rDcl9YXP+IPmzlTa1pv1l8fGQ0/8hit73K9y9e5Yp6c+rKtwBZ88thddbQ8OGARbH6A08FTMZ1cjzZEP8TyEn9XGOMHPxhKUTUwmiAslMMVnCYk/LkuXVSxsNo5Y7bon6M4PRhrbJ732kTTGCO3ZU5OaFDlOQcVPvt3rD8a2+JtZS9Cio6EQF8L0yKuGREHkfuVN9I3mVJIm6Eh1YOCfr6j9O16474HWxpSAh5X8rwIFKdCk48sOAz7LvedxKw/ZbRW6jVgCqH+8HVB60iuzk0VNEJhATc8pD0wy+7HMxmrHdqs9u4KvTJDotMaoKZHnaf2diPM0gxGCuUHE9DCV6n63/ygqiiDkUvVbZ8t9SkYevZ5ZKCr1ZZznxkFFsK5ccWlrKOYkAni00zufhIJQFPYv49ICIi3pE76WHpKjr1275Y36OAm3p+kVeJmJkIw95jkvfFneanknbAr/YLyp4Xp7NWWdGH7vo0rw2p220TMatvFEZGS8T4C+WWPFpXyJM8OuTLfFtvsaSaeivMDt097ev+6JX+xaqdb+laYK7L9YA0pUhK7eJnOPmXwab8wKdlwcHs0BF17+Uglg9t9NjKTJDPFwGaIgt53ljy7TIxfHUOu/wJQX5nUkeXyStLsetYnc0xp49ahELXpOTV8CjnHbmCxiYl/ZSLAiXPMMVrRuvl7dsG31fkO/wT5KCdepyij/H3ISGaHXwc+t0EYjRCLtKzlLDvWNTJvjm05DMViu61DKIIbbl2c7ax0OSgdrzuyhRbqfv2m9gruNdc/MYmO8KNJdJXi9h3IFvu0QJ9qps45WY3OQSUR1Syw8LM7jlKhGr+g2n4Sk6fhs0TxIWn465u84bh/EXP8kz76k4EVIJulbA+xBXCaWr6pLLqaH3aJL9M1txIYZsqzagafE1+tNDaRjHnGLLEEXQRKyJQE4uqOsiM7XK3qmTmvBGiV3JvWFwsiCLpCqpg8SMtR9jKsJffnUkbYbW41WELkbiLpfqpuirnY+THKhZVju7Mq5DXJVuotJW2aZFzKZCBlxO7slro9ls1N8++3i8pz7GemO9WC0DoWfVogN6fJ0cfueiWNTbUFlldSUBMqbNr8jt1NODq7retHZdYERdiqCetJfLvS+QIh0tTijpu2dK7xj51KzB3pzVNj7pGWkW75mGemKRfQ8KeNTeysT2IIuq7OcbpO50ctDuz0lZdxUtWULbdf+lRN3sb9HKt55j/U+RzJh9NlMPwspHS5ufN6Pt3qx6AjUVpDDKXXBTqvtvzS+N3i8jU94wKPlAqWo21indoH399v+DTZhmUjFshgQRXkpCo88u/7joam4z1HmHZPrSfrW5/tPQNEtidA3szUv4xIvY6fSBRzV4kRiqkSWDOU08pptjY7NKscoeGuEPAd/huVAhYx5c0veGuMYNgzkdWognr4A+RPGHkZ3XNzI/miQIalhSNG6BsXsgcsrgYmlvoEi7HeiG2WurRG9SRt8OtPMQtGdrIYf2H3l4XoDhmuiaq4/AL8qTv5UQJUTczZz0ZVEeKi7p66Wlpks5ltYKTVDekBW/QsVtXjwlKtxlyjJEndIeAs9J9ssWistTgy4/DajWSdyUFDEoZjN9wEXTCquABKdFBXVRKI6XNTh5toR1WohMSuOPOz58yvoyh4iFucT9A4pouIMP3X2cGwxlL+trNi4lHX9zfehKFulgYbMFnk0vmfIJIneGSVqdkF2jCvS83mzcKHdbJfDn13ef1Hcu84ITVx2O0HCQE67CiY4L1cLATPagzxDjDvq7gJP469kJFs2yADJxd1GBPR3ljnhe2MnXIRxNK33dun5erLU/IMFP7jFjYoPKdd8dGmfB0hdjD1wYk0gv4bL9Yq4hAOk/3FNrYt7wbspdMd5AvRXuCC1Ep1B607TWWXnpHaZnlWoMhsGZ+1qFb6CiBGUqqwYKer11e9nCWdpZ3tC3en+mSNQ4btAf3KLNex94b375KLyhsWvxxTsh2ttDDLrPAiTCWbIGj+i5HxsFu/ZbBD1M1xWoRE3bvVjFj+ad5E9J33syXdXWsGwzwSnYXeIVSt8ZjR7UOxpZ2axW+udE7PYc4sRtRnh1bpopD+SVShxjeQeNYs6UmtXmMewMWLx74ubxYVnliB+lxcpW5wdGRlmSVFLHihL5lvagYpDjJ4DSS1MAKmpgpiYZGbWXFEX14vOlgh+67OzWd+LhdOS25HpqNqwU/nlntWGki2iFMz0zOvdV1uajKq6NrafUmyN/26wdCRd1BPg+9YTqRshnwvdmroIkuz23ET9RLmnEvXolv9EfNBzt/rmzmeyXhPLYtC1KUehQa0KYvI6kP6TpVRRbkXxqkIlO+tsYzjScKMI0LVqdR9/ENdZKZWMtRRcSHlUpyB2titAwa43XGOaMO7HXtl1S239boRyayCL8MLK1nM9hZW3kUuNp4g8pvJ295PMfg2hEZVxh3YbxQz+AF6sAiwqAO88VKM9IXgHU3jxIFdCWqTXKCq+3SE1ZbtwaKtXt8JqjQlz4XmGXBVf7XS00L5OBjaq2eOpcyPEc+effckPY4RICYEuxZDWqDsmjmrXGmeTw0V1kvfNBT5td0PYNH9Yzdrk3yOis1SYKc5cWGqE6oGSMQAy/n+Ak9XbesNIryBJ6/fqelz7Jw9UkFey25Xhui27iMCJ9kJDQUxVPIZ/X0GcdTrYHAHB4Jwkx9btubZwTf9kbT1/vc5KDl8b7NozmTm4daYaHnPB/0EeYaIgX9KB4N6Fw1uRDdK+iCtDik3ARbagkscoZVhXFEsTt5zImyKeyGBGuuVzM9oU0s8/FEVuM8R9Bvb1x+GCxWacsmVL3UlDzAMIQN2cRFzj3v/hJzIPxCbSaoJI8xLOdMiBqKlVqLyiOU1O7VitoN7Q++Vln+765CWxniHnOy10+RdLSySY43LI02xbY95m4sDs22zacVo3u0OJBMh/xW4AbmGZRzsbu3w/Mk3pKydBHCy4DABG6VQe/tZhLWnUSO+7OUplvAsJtpnrLNtjy+it9qWQiDhxa63soU21f5KRzde+T2Mh19pWYejtC5dweQ8DWM01oaiw1rPUZYZEYdsu8G9Rk5ldWWEOdp27t/WUrX5d+6MuSZzr6y4484yhqynMhm7jqh6sgZi+r1+lTRcGXD1rFrma15A5w5MNMQfst3LIbUZfD2Zbdipc1sXGkTe75vvN+DNMSdd9Z3KjJy52Bje/XRNKXmKZpXd8EJ/QxHVWdL6ygTXyCeVsqYHshDCEtKkbV7nPc0FeIfLOlFWkBlzsoPthjJC5dow20svWZ9s13Ys1t4OiwH+yb5UUwZXmsRrusI5I9hPYUarhZGhrV97CjZMuBkRsTBOiJLjNW6Mlq3GxQINW5LSWrXQFUXwcMOR0983V41XRgmvWFaquPkr3z3wcOqb1O0x5ETEbFyKN8WGJmcpUJ+4ZcXYKIeVb9LH+eDXHgNnMfZqdgNWyi2mQEasIiLpqJqPzXnilRcBP3nkrze9Xbrfj0VZsXBwiGOyxPoPCkyijsFJ+oji7wLlCr9UXtcZnqNq9dc5XVUpBIQsmU6sQXeEdci+pvw0d7ZUFp4vsLDz5ISftUCi0uSzP74J7VIfP5t+l1RDm2zj1VPnZPcRut55kO81BDeTLZ4jX7rPMJJwuCc7xnvi92By3dPWr9qTpWEUrtbQISubdHofVaTUrmo03Zc95lGXm8DJoOQFMKfNWXkwXPORQo0iVZeZJl/rAJRei45CWg/8c66ZvO9f0HoQAhQfwkTgIHQ6+Sxkxz+ADZnTUgR5RWylTAYcexg6MzmI3diP1MYDm27bKrtmHFLyyXyBa0Yk5Zq9MRK84my8Bj51OubC+F07GE1NALnNCw0SJgv6VhyjpgSVW/rXnL0HqDjLV9Oi5CyIva9YbNuO5d8mEVxd0HFswz84SXBZnYO0Sw9OBTC/p4i/odKjXB7TllG+oSGdLelc9Ctp4mfgw7Q8lsYVHimFDhTPkiBGYhr2U2fkPmuazQ7auMwV55O8wmnRf9ijt1f4gSyVhgZ0hBHU8oW6sX1hTF8TCFnU8HQNq397sOqXfib6+18MYbc189uuXS4fMnLZVyk4xw4GUnhm/P09XGrVeZEn6wNmMwpKYXdNHCv9UibTDTzOjwrYAL+Ed60XoZJGzBu4lgw962mnVXmfeipnSXMtirHxK6cekl+0CvR1NyIKPAE3yu1I9+2c18xvfdcImfCxY6jveiXGjXQGoKhE7OncIRpQnXZRuKOD6NpvVTu19x74WPwc4rmiqJtiwxS5Q0rDTWhm7WtgoalMlZsZavZPY54uUcOkj9Yols2YoQD+nRlTTdWk5fx+qFuz9wcJR6aUQZTv832XogZJGbSaGYK1Q34zL60ryRZziUT9drPG8qqxr1HnhcnLUt0eB5MgEtR9KSHlZ6VX/GSnBwqDM7de+da68ZaQW4ZYwDOlyg5THCpGWvmUxXMK5bjkHPc4r/W12CheT08Of3JVZ4lv3YGa0WDR01mfUmB6xzjokLQc3ukfG6xsIT19/vTqKeVAylXqMyCWRsky4VaZsT7Vibuv8GGxC7XToegrvebyXdbtw9p5HgLpTWptCKqTLk+yf8P4ygJngplbmRzdHJlYW0KZW5kb2JqCjQwIDAgb2JqIDw8Ci9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL01GTURBRitDTVRUOQovRmxhZ3MgNAovRm9udEJCb3ggWy02IC0yMzMgNTQyIDY5OF0KL0FzY2VudCA2MTEKL0NhcEhlaWdodCA2MTEKL0Rlc2NlbnQgLTIyMgovSXRhbGljQW5nbGUgMAovU3RlbVYgNzQKL1hIZWlnaHQgNDMxCi9DaGFyU2V0ICgvZi9uL28vcikKL0ZvbnRGaWxlIDM5IDAgUgo+PiBlbmRvYmoKNyAwIG9iaiA8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0Jhc2VGb250IC9RWktSRE0rQ01CWDEwCi9Gb250RGVzY3JpcHRvciAyNCAwIFIKL0ZpcnN0Q2hhciA2NQovTGFzdENoYXIgMTE2Ci9XaWR0aHMgMTkgMCBSCj4+IGVuZG9iago5IDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0dYR0dCUStDTUJYMTIKL0ZvbnREZXNjcmlwdG9yIDI2IDAgUgovRmlyc3RDaGFyIDQ5Ci9MYXN0Q2hhciAxMTcKL1dpZHRocyAxNyAwIFIKPj4gZW5kb2JqCjggMCBvYmogPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvUlpQTUxTK0NNUjEwCi9Gb250RGVzY3JpcHRvciAyOCAwIFIKL0ZpcnN0Q2hhciAxMQovTGFzdENoYXIgMTIyCi9XaWR0aHMgMTggMCBSCj4+IGVuZG9iago2IDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL1BIQlhEUStDTVIxMgovRm9udERlc2NyaXB0b3IgMzAgMCBSCi9GaXJzdENoYXIgNDQKL0xhc3RDaGFyIDEyNwovV2lkdGhzIDIwIDAgUgo+PiBlbmRvYmoKNCAwIG9iaiA8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0Jhc2VGb250IC9KVFlNS04rQ01SMTcKL0ZvbnREZXNjcmlwdG9yIDMyIDAgUgovRmlyc3RDaGFyIDcwCi9MYXN0Q2hhciAxMjEKL1dpZHRocyAyMiAwIFIKPj4gZW5kb2JqCjExIDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL1RLSkhISStDTVI5Ci9Gb250RGVzY3JpcHRvciAzNCAwIFIKL0ZpcnN0Q2hhciAzMwovTGFzdENoYXIgMTIxCi9XaWR0aHMgMTUgMCBSCj4+IGVuZG9iago1IDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL1VFSVpZVytDTVNZMTAKL0ZvbnREZXNjcmlwdG9yIDM2IDAgUgovRmlyc3RDaGFyIDMKL0xhc3RDaGFyIDMKL1dpZHRocyAyMSAwIFIKPj4gZW5kb2JqCjEwIDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0dVT1dUSytDTVNZNgovRm9udERlc2NyaXB0b3IgMzggMCBSCi9GaXJzdENoYXIgMwovTGFzdENoYXIgMwovV2lkdGhzIDE2IDAgUgo+PiBlbmRvYmoKMTIgMCBvYmogPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvTUZNREFGK0NNVFQ5Ci9Gb250RGVzY3JpcHRvciA0MCAwIFIKL0ZpcnN0Q2hhciAxMDIKL0xhc3RDaGFyIDExNAovV2lkdGhzIDE0IDAgUgo+PiBlbmRvYmoKMTMgMCBvYmogPDwKL1R5cGUgL1BhZ2VzCi9Db3VudCAxCi9LaWRzIFsyIDAgUl0KPj4gZW5kb2JqCjQxIDAgb2JqIDw8Ci9UeXBlIC9DYXRhbG9nCi9QYWdlcyAxMyAwIFIKPj4gZW5kb2JqCjQyIDAgb2JqIDw8Ci9Qcm9kdWNlciAocGRmVGVYLTEuNDAuMTApCi9DcmVhdG9yIChUZVgpCi9DcmVhdGlvbkRhdGUgKEQ6MjAxMjA2MTExODA4NDYrMDInMDAnKQovTW9kRGF0ZSAoRDoyMDEyMDYxMTE4MDg0NiswMicwMCcpCi9UcmFwcGVkIC9GYWxzZQovUFRFWC5GdWxsYmFubmVyIChUaGlzIGlzIHBkZlRlWCwgVmVyc2lvbiAzLjE0MTU5MjYtMS40MC4xMC0yLjIgKFRlWCBMaXZlIDIwMDkvRGViaWFuKSBrcGF0aHNlYSB2ZXJzaW9uIDUuMC4wKQo+PiBlbmRvYmoKeHJlZgowIDQzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMzMxNiAwMDAwMCBuIAowMDAwMDAzMjA0IDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDEwODgzNCAwMDAwMCBuIAowMDAwMTA5MTEyIDAwMDAwIG4gCjAwMDAxMDg2OTUgMDAwMDAgbiAKMDAwMDEwODI3NiAwMDAwMCBuIAowMDAwMTA4NTU2IDAwMDAwIG4gCjAwMDAxMDg0MTYgMDAwMDAgbiAKMDAwMDEwOTI0OSAwMDAwMCBuIAowMDAwMTA4OTczIDAwMDAwIG4gCjAwMDAxMDkzODYgMDAwMDAgbiAKMDAwMDEwOTUyNyAwMDAwMCBuIAowMDAwMDAzNDc0IDAwMDAwIG4gCjAwMDAwMDM1NDQgMDAwMDAgbiAKMDAwMDAwNDA3MSAwMDAwMCBuIAowMDAwMDA0MDk1IDAwMDAwIG4gCjAwMDAwMDQ1MDEgMDAwMDAgbiAKMDAwMDAwNTEyMyAwMDAwMCBuIAowMDAwMDA1NDQxIDAwMDAwIG4gCjAwMDAwMDU5MDYgMDAwMDAgbiAKMDAwMDAwNTkyOCAwMDAwMCBuIAowMDAwMDA2MjU0IDAwMDAwIG4gCjAwMDAwMTU4NzcgMDAwMDAgbiAKMDAwMDAxNjEwOCAwMDAwMCBuIAowMDAwMDI0NDIxIDAwMDAwIG4gCjAwMDAwMjQ2NjAgMDAwMDAgbiAKMDAwMDA0MzkyNSAwMDAwMCBuIAowMDAwMDQ0MzQyIDAwMDAwIG4gCjAwMDAwNTg3MzMgMDAwMDAgbiAKMDAwMDA1OTA1NiAwMDAwMCBuIAowMDAwMDY5NjY1IDAwMDAwIG4gCjAwMDAwNjk5MTcgMDAwMDAgbiAKMDAwMDA4NTU4MCAwMDAwMCBuIAowMDAwMDg1OTMxIDAwMDAwIG4gCjAwMDAwOTMwNDggMDAwMDAgbiAKMDAwMDA5MzI3OSAwMDAwMCBuIAowMDAwMTAwNDQ1IDAwMDAwIG4gCjAwMDAxMDA2NzQgMDAwMDAgbiAKMDAwMDEwODA1NSAwMDAwMCBuIAowMDAwMTA5NTg1IDAwMDAwIG4gCjAwMDAxMDk2MzYgMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSA0MwovUm9vdCA0MSAwIFIKL0luZm8gNDIgMCBSCi9JRCBbPEE1MTIyOERDMEI2RDhERTcwNDA5QjM4RUY1MDJDQkYwPiA8QTUxMjI4REMwQjZEOERFNzA0MDlCMzhFRjUwMkNCRjA+XSA+PgpzdGFydHhyZWYKMTA5OTAyCiUlRU9GCg==" -} - - -///////// Rest taken from generated pdf.js. (c) by Mozilla. //////// -///////// File unchanged, except that all references to DOM- //////// -///////// specific global names have been prefixed by PdfJS_window., //////// -///////// to avoid interference with the benchmark runner script. //////// - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -var PDFJS = {}; - -(function pdfjsWrapper() { - // Use strict in our context only - users might not want it - 'use strict'; - - PDFJS.build = '3cc61f0'; - - // Files are inserted below - see Makefile -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -'use strict'; - -var globalScope = (typeof PdfJS_window.window === 'undefined') ? this : PdfJS_window.window; - -var isWorker = (typeof PdfJS_window.window == 'undefined'); - -var ERRORS = 0, WARNINGS = 1, TODOS = 5; -var verbosity = WARNINGS; - -// The global PDFJS object exposes the API -// In production, it will be declared outside a global wrapper -// In development, it will be declared here -if (!globalScope.PDFJS) { - globalScope.PDFJS = {}; -} - -// getPdf() -// Convenience function to perform binary Ajax GET -// Usage: getPdf('http://...', callback) -// getPdf({ -// url:String , -// [,progress:Function, error:Function] -// }, -// callback) -function getPdf(arg, callback) { - var params = arg; - if (typeof arg === 'string') - params = { url: arg }; - - var xhr = new PdfJS_window.XMLHttpRequest(); - xhr.open('GET', params.url); - xhr.mozResponseType = xhr.responseType = 'arraybuffer'; - var protocol = params.url.indexOf(':') < 0 ? PdfJS_window.window.location.protocol : - params.url.substring(0, params.url.indexOf(':') + 1); - xhr.expected = (protocol === 'http:' || protocol === 'https:') ? 200 : 0; - - if ('progress' in params) - xhr.onprogress = params.progress || undefined; - - if ('error' in params) - xhr.onerror = params.error || undefined; - - xhr.onreadystatechange = function getPdfOnreadystatechange(e) { - if (xhr.readyState === 4) { - if (xhr.status === xhr.expected) { - var data = (xhr.mozResponseArrayBuffer || xhr.mozResponse || - xhr.responseArrayBuffer || xhr.response); - callback(data); - } else if (params.error) { - params.error(e); - } - } - }; - xhr.send(null); -} -globalScope.PDFJS.getPdf = getPdf; -globalScope.PDFJS.pdfBug = false; - -var Page = (function PageClosure() { - function Page(xref, pageNumber, pageDict, ref) { - this.pageNumber = pageNumber; - this.pageDict = pageDict; - this.xref = xref; - this.ref = ref; - - this.displayReadyPromise = null; - } - - Page.prototype = { - getPageProp: function Page_getPageProp(key) { - return this.pageDict.get(key); - }, - inheritPageProp: function Page_inheritPageProp(key) { - var dict = this.pageDict; - var obj = dict.get(key); - while (obj === undefined) { - dict = dict.get('Parent'); - if (!dict) - break; - obj = dict.get(key); - } - return obj; - }, - get content() { - return shadow(this, 'content', this.getPageProp('Contents')); - }, - get resources() { - return shadow(this, 'resources', this.inheritPageProp('Resources')); - }, - get mediaBox() { - var obj = this.inheritPageProp('MediaBox'); - // Reset invalid media box to letter size. - if (!isArray(obj) || obj.length !== 4) - obj = [0, 0, 612, 792]; - return shadow(this, 'mediaBox', obj); - }, - get view() { - var mediaBox = this.mediaBox; - var cropBox = this.inheritPageProp('CropBox'); - if (!isArray(cropBox) || cropBox.length !== 4) - return shadow(this, 'view', mediaBox); - - // From the spec, 6th ed., p.963: - // "The crop, bleed, trim, and art boxes should not ordinarily - // extend beyond the boundaries of the media box. If they do, they are - // effectively reduced to their intersection with the media box." - cropBox = Util.intersect(cropBox, mediaBox); - if (!cropBox) - return shadow(this, 'view', mediaBox); - - return shadow(this, 'view', cropBox); - }, - get annotations() { - return shadow(this, 'annotations', this.inheritPageProp('Annots')); - }, - get rotate() { - var rotate = this.inheritPageProp('Rotate') || 0; - // Normalize rotation so it's a multiple of 90 and between 0 and 270 - if (rotate % 90 != 0) { - rotate = 0; - } else if (rotate >= 360) { - rotate = rotate % 360; - } else if (rotate < 0) { - // The spec doesn't cover negatives, assume its counterclockwise - // rotation. The following is the other implementation of modulo. - rotate = ((rotate % 360) + 360) % 360; - } - return shadow(this, 'rotate', rotate); - }, - - getOperatorList: function Page_getOperatorList(handler, dependency) { - var xref = this.xref; - var content = this.content; - var resources = this.resources; - if (isArray(content)) { - // fetching items - var streams = []; - var i, n = content.length; - for (i = 0; i < n; ++i) - streams.push(xref.fetchIfRef(content[i])); - content = new StreamsSequenceStream(streams); - } else if (isStream(content)) { - content.reset(); - } else if (!content) { - // replacing non-existent page content with empty one - content = new Stream(new Uint8Array(0)); - } - - var pe = this.pe = new PartialEvaluator( - xref, handler, 'p' + this.pageNumber + '_'); - - return pe.getOperatorList(content, resources, dependency); - }, - - getLinks: function Page_getLinks() { - var links = []; - var annotations = pageGetAnnotations(); - var i, n = annotations.length; - for (i = 0; i < n; ++i) { - if (annotations[i].type != 'Link') - continue; - links.push(annotations[i]); - } - return links; - }, - getAnnotations: function Page_getAnnotations() { - var xref = this.xref; - function getInheritableProperty(annotation, name) { - var item = annotation; - while (item && !item.has(name)) { - item = item.get('Parent'); - } - if (!item) - return null; - return item.get(name); - } - function isValidUrl(url) { - if (!url) - return false; - var colon = url.indexOf(':'); - if (colon < 0) - return false; - var protocol = url.substr(0, colon); - switch (protocol) { - case 'http': - case 'https': - case 'ftp': - case 'mailto': - return true; - default: - return false; - } - } - - var annotations = this.annotations || []; - var i, n = annotations.length; - var items = []; - for (i = 0; i < n; ++i) { - var annotationRef = annotations[i]; - var annotation = xref.fetch(annotationRef); - if (!isDict(annotation)) - continue; - var subtype = annotation.get('Subtype'); - if (!isName(subtype)) - continue; - var rect = annotation.get('Rect'); - - var item = {}; - item.type = subtype.name; - item.rect = rect; - switch (subtype.name) { - case 'Link': - var a = annotation.get('A'); - if (a) { - switch (a.get('S').name) { - case 'URI': - var url = a.get('URI'); - // TODO: pdf spec mentions urls can be relative to a Base - // entry in the dictionary. - if (!isValidUrl(url)) - url = ''; - item.url = url; - break; - case 'GoTo': - item.dest = a.get('D'); - break; - default: - TODO('other link types'); - } - } else if (annotation.has('Dest')) { - // simple destination link - var dest = annotation.get('Dest'); - item.dest = isName(dest) ? dest.name : dest; - } - break; - case 'Widget': - var fieldType = getInheritableProperty(annotation, 'FT'); - if (!isName(fieldType)) - break; - item.fieldType = fieldType.name; - // Building the full field name by collecting the field and - // its ancestors 'T' properties and joining them using '.'. - var fieldName = []; - var namedItem = annotation, ref = annotationRef; - while (namedItem) { - var parent = namedItem.get('Parent'); - var parentRef = namedItem.getRaw('Parent'); - var name = namedItem.get('T'); - if (name) { - fieldName.unshift(stringToPDFString(name)); - } else { - // The field name is absent, that means more than one field - // with the same name may exist. Replacing the empty name - // with the '`' plus index in the parent's 'Kids' array. - // This is not in the PDF spec but necessary to id the - // the input controls. - var kids = parent.get('Kids'); - var j, jj; - for (j = 0, jj = kids.length; j < jj; j++) { - var kidRef = kids[j]; - if (kidRef.num == ref.num && kidRef.gen == ref.gen) - break; - } - fieldName.unshift('`' + j); - } - namedItem = parent; - ref = parentRef; - } - item.fullName = fieldName.join('.'); - var alternativeText = stringToPDFString(annotation.get('TU') || ''); - item.alternativeText = alternativeText; - var da = getInheritableProperty(annotation, 'DA') || ''; - var m = /([\d\.]+)\sTf/.exec(da); - if (m) - item.fontSize = parseFloat(m[1]); - item.textAlignment = getInheritableProperty(annotation, 'Q'); - item.flags = getInheritableProperty(annotation, 'Ff') || 0; - break; - case 'Text': - var content = annotation.get('Contents'); - var title = annotation.get('T'); - item.content = stringToPDFString(content || ''); - item.title = stringToPDFString(title || ''); - item.name = !annotation.has('Name') ? 'Note' : - annotation.get('Name').name; - break; - default: - TODO('unimplemented annotation type: ' + subtype.name); - break; - } - items.push(item); - } - return items; - } - }; - - return Page; -})(); - -/** - * The `PDFDocument` holds all the data of the PDF file. Compared to the - * `PDFDoc`, this one doesn't have any job management code. - * Right now there exists one PDFDocument on the main thread + one object - * for each worker. If there is no worker support enabled, there are two - * `PDFDocument` objects on the main thread created. - */ -var PDFDocument = (function PDFDocumentClosure() { - function PDFDocument(arg, callback) { - if (isStream(arg)) - init.call(this, arg); - else if (isArrayBuffer(arg)) - init.call(this, new Stream(arg)); - else - error('PDFDocument: Unknown argument type'); - } - - function init(stream) { - assertWellFormed(stream.length > 0, 'stream must have data'); - this.stream = stream; - this.setup(); - this.acroForm = this.catalog.catDict.get('AcroForm'); - } - - function find(stream, needle, limit, backwards) { - var pos = stream.pos; - var end = stream.end; - var str = ''; - if (pos + limit > end) - limit = end - pos; - for (var n = 0; n < limit; ++n) - str += stream.getChar(); - stream.pos = pos; - var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle); - if (index == -1) - return false; /* not found */ - stream.pos += index; - return true; /* found */ - } - - PDFDocument.prototype = { - get linearization() { - var length = this.stream.length; - var linearization = false; - if (length) { - linearization = new Linearization(this.stream); - if (linearization.length != length) - linearization = false; - } - // shadow the prototype getter with a data property - return shadow(this, 'linearization', linearization); - }, - get startXRef() { - var stream = this.stream; - var startXRef = 0; - var linearization = this.linearization; - if (linearization) { - // Find end of first obj. - stream.reset(); - if (find(stream, 'endobj', 1024)) - startXRef = stream.pos + 6; - } else { - // Find startxref by jumping backward from the end of the file. - var step = 1024; - var found = false, pos = stream.end; - while (!found && pos > 0) { - pos -= step - 'startxref'.length; - if (pos < 0) - pos = 0; - stream.pos = pos; - found = find(stream, 'startxref', step, true); - } - if (found) { - stream.skip(9); - var ch; - do { - ch = stream.getChar(); - } while (Lexer.isSpace(ch)); - var str = ''; - while ((ch - '0') <= 9) { - str += ch; - ch = stream.getChar(); - } - startXRef = parseInt(str, 10); - if (isNaN(startXRef)) - startXRef = 0; - } - } - // shadow the prototype getter with a data property - return shadow(this, 'startXRef', startXRef); - }, - get mainXRefEntriesOffset() { - var mainXRefEntriesOffset = 0; - var linearization = this.linearization; - if (linearization) - mainXRefEntriesOffset = linearization.mainXRefEntriesOffset; - // shadow the prototype getter with a data property - return shadow(this, 'mainXRefEntriesOffset', mainXRefEntriesOffset); - }, - // Find the header, remove leading garbage and setup the stream - // starting from the header. - checkHeader: function PDFDocument_checkHeader() { - var stream = this.stream; - stream.reset(); - if (find(stream, '%PDF-', 1024)) { - // Found the header, trim off any garbage before it. - stream.moveStart(); - return; - } - // May not be a PDF file, continue anyway. - }, - setup: function PDFDocument_setup(ownerPassword, userPassword) { - this.checkHeader(); - var xref = new XRef(this.stream, - this.startXRef, - this.mainXRefEntriesOffset); - this.xref = xref; - this.catalog = new Catalog(xref); - }, - get numPages() { - var linearization = this.linearization; - var num = linearization ? linearization.numPages : this.catalog.numPages; - // shadow the prototype getter - return shadow(this, 'numPages', num); - }, - getDocumentInfo: function PDFDocument_getDocumentInfo() { - var info; - if (this.xref.trailer.has('Info')) { - var infoDict = this.xref.trailer.get('Info'); - - info = {}; - infoDict.forEach(function(key, value) { - info[key] = typeof value !== 'string' ? value : - stringToPDFString(value); - }); - } - - return shadow(this, 'getDocumentInfo', info); - }, - getFingerprint: function PDFDocument_getFingerprint() { - var xref = this.xref, fileID; - if (xref.trailer.has('ID')) { - fileID = ''; - var id = xref.trailer.get('ID')[0]; - id.split('').forEach(function(el) { - fileID += Number(el.charCodeAt(0)).toString(16); - }); - } else { - // If we got no fileID, then we generate one, - // from the first 100 bytes of PDF - var data = this.stream.bytes.subarray(0, 100); - var hash = calculateMD5(data, 0, data.length); - fileID = ''; - for (var i = 0, length = hash.length; i < length; i++) { - fileID += Number(hash[i]).toString(16); - } - } - - return shadow(this, 'getFingerprint', fileID); - }, - getPage: function PDFDocument_getPage(n) { - return this.catalog.getPage(n); - } - }; - - return PDFDocument; -})(); - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -'use strict'; - -function log(msg) { - if (PdfJS_window.console && PdfJS_window.console.log) - PdfJS_window.console.log(msg); - else if (print) - print(msg); -} - -function warn(msg) { - if (verbosity >= WARNINGS) - log('Warning: ' + msg); -} - -function backtrace() { - try { - throw new Error(); - } catch (e) { - return e.stack ? e.stack.split('\n').slice(2).join('\n') : ''; - } -} - -function error(msg) { - log('Error: ' + msg); - log(backtrace()); - throw new Error(msg); -} - -function TODO(what) { - if (verbosity >= TODOS) - log('TODO: ' + what); -} - -function malformed(msg) { - error('Malformed PDF: ' + msg); -} - -function assert(cond, msg) { - if (!cond) - error(msg); -} - -// In a well-formed PDF, |cond| holds. If it doesn't, subsequent -// behavior is undefined. -function assertWellFormed(cond, msg) { - if (!cond) - malformed(msg); -} - -function shadow(obj, prop, value) { - Object.defineProperty(obj, prop, { value: value, - enumerable: true, - configurable: true, - writable: false }); - return value; -} - -function bytesToString(bytes) { - var str = ''; - var length = bytes.length; - for (var n = 0; n < length; ++n) - str += String.fromCharCode(bytes[n]); - return str; -} - -function stringToBytes(str) { - var length = str.length; - var bytes = new Uint8Array(length); - for (var n = 0; n < length; ++n) - bytes[n] = str.charCodeAt(n) & 0xFF; - return bytes; -} - -var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; - -var Util = PDFJS.Util = (function UtilClosure() { - function Util() {} - - Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { - var ri = (255 * r) | 0, gi = (255 * g) | 0, bi = (255 * b) | 0; - return 'rgb(' + ri + ',' + gi + ',' + bi + ')'; - }; - - Util.makeCssCmyk = function Util_makeCssCmyk(c, m, y, k) { - c = (new DeviceCmykCS()).getRgb([c, m, y, k]); - var ri = (255 * c[0]) | 0, gi = (255 * c[1]) | 0, bi = (255 * c[2]) | 0; - return 'rgb(' + ri + ',' + gi + ',' + bi + ')'; - }; - - // For 2d affine transforms - Util.applyTransform = function Util_applyTransform(p, m) { - var xt = p[0] * m[0] + p[1] * m[2] + m[4]; - var yt = p[0] * m[1] + p[1] * m[3] + m[5]; - return [xt, yt]; - }; - - Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { - var d = m[0] * m[3] - m[1] * m[2]; - var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; - var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; - return [xt, yt]; - }; - - Util.inverseTransform = function Util_inverseTransform(m) { - var d = m[0] * m[3] - m[1] * m[2]; - return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, - (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; - }; - - // Apply a generic 3d matrix M on a 3-vector v: - // | a b c | | X | - // | d e f | x | Y | - // | g h i | | Z | - // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i], - // with v as [X,Y,Z] - Util.apply3dTransform = function Util_apply3dTransform(m, v) { - return [ - m[0] * v[0] + m[1] * v[1] + m[2] * v[2], - m[3] * v[0] + m[4] * v[1] + m[5] * v[2], - m[6] * v[0] + m[7] * v[1] + m[8] * v[2] - ]; - } - - // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2) - // For coordinate systems whose origin lies in the bottom-left, this - // means normalization to (BL,TR) ordering. For systems with origin in the - // top-left, this means (TL,BR) ordering. - Util.normalizeRect = function Util_normalizeRect(rect) { - var r = rect.slice(0); // clone rect - if (rect[0] > rect[2]) { - r[0] = rect[2]; - r[2] = rect[0]; - } - if (rect[1] > rect[3]) { - r[1] = rect[3]; - r[3] = rect[1]; - } - return r; - } - - // Returns a rectangle [x1, y1, x2, y2] corresponding to the - // intersection of rect1 and rect2. If no intersection, returns 'false' - // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2] - Util.intersect = function Util_intersect(rect1, rect2) { - function compare(a, b) { - return a - b; - }; - - // Order points along the axes - var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), - orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), - result = []; - - rect1 = Util.normalizeRect(rect1); - rect2 = Util.normalizeRect(rect2); - - // X: first and second points belong to different rectangles? - if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) || - (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) { - // Intersection must be between second and third points - result[0] = orderedX[1]; - result[2] = orderedX[2]; - } else { - return false; - } - - // Y: first and second points belong to different rectangles? - if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) || - (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) { - // Intersection must be between second and third points - result[1] = orderedY[1]; - result[3] = orderedY[2]; - } else { - return false; - } - - return result; - }; - - Util.sign = function Util_sign(num) { - return num < 0 ? -1 : 1; - }; - - return Util; -})(); - -var PageViewport = PDFJS.PageViewport = (function PageViewportClosure() { - function PageViewport(viewBox, scale, rotate, offsetX, offsetY) { - // creating transform to convert pdf coordinate system to the normal - // canvas like coordinates taking in account scale and rotation - var centerX = (viewBox[2] + viewBox[0]) / 2; - var centerY = (viewBox[3] + viewBox[1]) / 2; - var rotateA, rotateB, rotateC, rotateD; - switch (rotate) { - case -180: - case 180: - rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1; - break; - case -270: - case 90: - rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0; - break; - case -90: - case 270: - rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0; - break; - case 360: - case 0: - default: - rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1; - break; - } - var offsetCanvasX, offsetCanvasY; - var width, height; - if (rotateA == 0) { - offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; - offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; - width = Math.abs(viewBox[3] - viewBox[1]) * scale; - height = Math.abs(viewBox[2] - viewBox[0]) * scale; - } else { - offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; - offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; - width = Math.abs(viewBox[2] - viewBox[0]) * scale; - height = Math.abs(viewBox[3] - viewBox[1]) * scale; - } - // creating transform for the following operations: - // translate(-centerX, -centerY), rotate and flip vertically, - // scale, and translate(offsetCanvasX, offsetCanvasY) - this.transform = [ - rotateA * scale, - rotateB * scale, - rotateC * scale, - rotateD * scale, - offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, - offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY - ]; - - this.offsetX = offsetX; - this.offsetY = offsetY; - this.width = width; - this.height = height; - this.fontScale = scale; - } - PageViewport.prototype = { - convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) { - return Util.applyTransform([x, y], this.transform); - }, - convertToViewportRectangle: - function PageViewport_convertToViewportRectangle(rect) { - var tl = Util.applyTransform([rect[0], rect[1]], this.transform); - var br = Util.applyTransform([rect[2], rect[3]], this.transform); - return [tl[0], tl[1], br[0], br[1]]; - }, - convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) { - return Util.applyInverseTransform([x, y], this.transform); - } - }; - return PageViewport; -})(); - -var PDFStringTranslateTable = [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, - 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, - 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, - 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC -]; - -function stringToPDFString(str) { - var i, n = str.length, str2 = ''; - if (str[0] === '\xFE' && str[1] === '\xFF') { - // UTF16BE BOM - for (i = 2; i < n; i += 2) - str2 += String.fromCharCode( - (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1)); - } else { - for (i = 0; i < n; ++i) { - var code = PDFStringTranslateTable[str.charCodeAt(i)]; - str2 += code ? String.fromCharCode(code) : str.charAt(i); - } - } - return str2; -} - -function isBool(v) { - return typeof v == 'boolean'; -} - -function isInt(v) { - return typeof v == 'number' && ((v | 0) == v); -} - -function isNum(v) { - return typeof v == 'number'; -} - -function isString(v) { - return typeof v == 'string'; -} - -function isNull(v) { - return v === null; -} - -function isName(v) { - return v instanceof Name; -} - -function isCmd(v, cmd) { - return v instanceof Cmd && (!cmd || v.cmd == cmd); -} - -function isDict(v, type) { - return v instanceof Dict && (!type || v.get('Type').name == type); -} - -function isArray(v) { - return v instanceof Array; -} - -function isStream(v) { - return typeof v == 'object' && v != null && ('getChar' in v); -} - -function isArrayBuffer(v) { - return typeof v == 'object' && v != null && ('byteLength' in v); -} - -function isRef(v) { - return v instanceof Ref; -} - -function isPDFFunction(v) { - var fnDict; - if (typeof v != 'object') - return false; - else if (isDict(v)) - fnDict = v; - else if (isStream(v)) - fnDict = v.dict; - else - return false; - return fnDict.has('FunctionType'); -} - -/** - * 'Promise' object. - * Each object that is stored in PDFObjects is based on a Promise object that - * contains the status of the object and the data. There migth be situations, - * where a function want to use the value of an object, but it isn't ready at - * that time. To get a notification, once the object is ready to be used, s.o. - * can add a callback using the `then` method on the promise that then calls - * the callback once the object gets resolved. - * A promise can get resolved only once and only once the data of the promise - * can be set. If any of these happens twice or the data is required before - * it was set, an exception is throw. - */ -var Promise = PDFJS.Promise = (function PromiseClosure() { - var EMPTY_PROMISE = {}; - - /** - * If `data` is passed in this constructor, the promise is created resolved. - * If there isn't data, it isn't resolved at the beginning. - */ - function Promise(name, data) { - this.name = name; - this.isRejected = false; - this.error = null; - // If you build a promise and pass in some data it's already resolved. - if (data != null) { - this.isResolved = true; - this._data = data; - this.hasData = true; - } else { - this.isResolved = false; - this._data = EMPTY_PROMISE; - } - this.callbacks = []; - this.errbacks = []; - this.progressbacks = []; - }; - /** - * Builds a promise that is resolved when all the passed in promises are - * resolved. - * @param {Promise[]} promises Array of promises to wait for. - * @return {Promise} New dependant promise. - */ - Promise.all = function Promise_all(promises) { - var deferred = new Promise(); - var unresolved = promises.length; - var results = []; - if (unresolved === 0) { - deferred.resolve(results); - return deferred; - } - for (var i = 0, ii = promises.length; i < ii; ++i) { - var promise = promises[i]; - promise.then((function(i) { - return function(value) { - results[i] = value; - unresolved--; - if (unresolved === 0) - deferred.resolve(results); - }; - })(i)); - } - return deferred; - }; - Promise.prototype = { - hasData: false, - - set data(value) { - if (value === undefined) { - return; - } - if (this._data !== EMPTY_PROMISE) { - error('Promise ' + this.name + - ': Cannot set the data of a promise twice'); - } - this._data = value; - this.hasData = true; - - if (this.onDataCallback) { - this.onDataCallback(value); - } - }, - - get data() { - if (this._data === EMPTY_PROMISE) { - error('Promise ' + this.name + ': Cannot get data that isn\'t set'); - } - return this._data; - }, - - onData: function Promise_onData(callback) { - if (this._data !== EMPTY_PROMISE) { - callback(this._data); - } else { - this.onDataCallback = callback; - } - }, - - resolve: function Promise_resolve(data) { - if (this.isResolved) { - error('A Promise can be resolved only once ' + this.name); - } - if (this.isRejected) { - error('The Promise was already rejected ' + this.name); - } - - this.isResolved = true; - this.data = data || null; - var callbacks = this.callbacks; - - for (var i = 0, ii = callbacks.length; i < ii; i++) { - callbacks[i].call(null, data); - } - }, - - progress: function Promise_progress(data) { - var callbacks = this.progressbacks; - for (var i = 0, ii = callbacks.length; i < ii; i++) { - callbacks[i].call(null, data); - } - }, - - reject: function Promise_reject(reason) { - if (this.isRejected) { - error('A Promise can be rejected only once ' + this.name); - } - if (this.isResolved) { - error('The Promise was already resolved ' + this.name); - } - - this.isRejected = true; - this.error = reason || null; - var errbacks = this.errbacks; - - for (var i = 0, ii = errbacks.length; i < ii; i++) { - errbacks[i].call(null, reason); - } - }, - - then: function Promise_then(callback, errback, progressback) { - if (!callback) { - error('Requiring callback' + this.name); - } - - // If the promise is already resolved, call the callback directly. - if (this.isResolved) { - var data = this.data; - callback.call(null, data); - } else if (this.isRejected && errback) { - var error = this.error; - errback.call(null, error); - } else { - this.callbacks.push(callback); - if (errback) - this.errbacks.push(errback); - } - - if (progressback) - this.progressbacks.push(progressback); - } - }; - - return Promise; -})(); - -var StatTimer = (function StatTimerClosure() { - function rpad(str, pad, length) { - while (str.length < length) - str += pad; - return str; - } - function StatTimer() { - this.started = {}; - this.times = []; - this.enabled = true; - } - StatTimer.prototype = { - time: function StatTimer_time(name) { - if (!this.enabled) - return; - if (name in this.started) - throw 'Timer is already running for ' + name; - this.started[name] = Date.now(); - }, - timeEnd: function StatTimer_timeEnd(name) { - if (!this.enabled) - return; - if (!(name in this.started)) - throw 'Timer has not been started for ' + name; - this.times.push({ - 'name': name, - 'start': this.started[name], - 'end': Date.now() - }); - // Remove timer from started so it can be called again. - delete this.started[name]; - }, - toString: function StatTimer_toString() { - var times = this.times; - var out = ''; - // Find the longest name for padding purposes. - var longest = 0; - for (var i = 0, ii = times.length; i < ii; ++i) { - var name = times[i]['name']; - if (name.length > longest) - longest = name.length; - } - for (var i = 0, ii = times.length; i < ii; ++i) { - var span = times[i]; - var duration = span.end - span.start; - out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\n'; - } - return out; - } - }; - return StatTimer; -})(); - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -/** - * This is the main entry point for loading a PDF and interacting with it. - * NOTE: If a URL is used to fetch the PDF data a standard XMLHttpRequest(XHR) - * is used, which means it must follow the same origin rules that any XHR does - * e.g. No cross domain requests without CORS. - * - * @param {string|TypedAray} source Either a url to a PDF is located or a - * typed array already populated with data. - * @return {Promise} A promise that is resolved with {PDFDocumentProxy} object. - */ -PDFJS.getDocument = function getDocument(source) { - var promise = new PDFJS.Promise(); - var transport = new WorkerTransport(promise); - if (typeof source === 'string') { - // fetch url - PDFJS.getPdf( - { - url: source, - progress: function getPDFProgress(evt) { - if (evt.lengthComputable) - promise.progress({ - loaded: evt.loaded, - total: evt.total - }); - }, - error: function getPDFError(e) { - promise.reject('Unexpected server response of ' + - e.target.status + '.'); - } - }, - function getPDFLoad(data) { - transport.sendData(data); - }); - } else { - // assuming the source is array, instantiating directly from it - transport.sendData(source); - } - return promise; -}; - -/** - * Proxy to a PDFDocument in the worker thread. Also, contains commonly used - * properties that can be read synchronously. - */ -var PDFDocumentProxy = (function PDFDocumentProxyClosure() { - function PDFDocumentProxy(pdfInfo, transport) { - this.pdfInfo = pdfInfo; - this.transport = transport; - } - PDFDocumentProxy.prototype = { - /** - * @return {number} Total number of pages the PDF contains. - */ - get numPages() { - return this.pdfInfo.numPages; - }, - /** - * @return {string} A unique ID to identify a PDF. Not guaranteed to be - * unique. - */ - get fingerprint() { - return this.pdfInfo.fingerprint; - }, - /** - * @param {number} The page number to get. The first page is 1. - * @return {Promise} A promise that is resolved with a {PDFPageProxy} - * object. - */ - getPage: function PDFDocumentProxy_getPage(number) { - return this.transport.getPage(number); - }, - /** - * @return {Promise} A promise that is resolved with a lookup table for - * mapping named destinations to reference numbers. - */ - getDestinations: function PDFDocumentProxy_getDestinations() { - var promise = new PDFJS.Promise(); - var destinations = this.pdfInfo.destinations; - promise.resolve(destinations); - return promise; - }, - /** - * @return {Promise} A promise that is resolved with an {array} that is a - * tree outline (if it has one) of the PDF. The tree is in the format of: - * [ - * { - * title: string, - * bold: boolean, - * italic: boolean, - * color: rgb array, - * dest: dest obj, - * items: array of more items like this - * }, - * ... - * ]. - */ - getOutline: function PDFDocumentProxy_getOutline() { - var promise = new PDFJS.Promise(); - var outline = this.pdfInfo.outline; - promise.resolve(outline); - return promise; - }, - /** - * @return {Promise} A promise that is resolved with an {object} that has - * info and metadata properties. Info is an {object} filled with anything - * available in the information dictionary and similarly metadata is a - * {Metadata} object with information from the metadata section of the PDF. - */ - getMetadata: function PDFDocumentProxy_getMetadata() { - var promise = new PDFJS.Promise(); - var info = this.pdfInfo.info; - var metadata = this.pdfInfo.metadata; - promise.resolve({ - info: info, - metadata: metadata ? new PDFJS.Metadata(metadata) : null - }); - return promise; - }, - destroy: function PDFDocumentProxy_destroy() { - this.transport.destroy(); - } - }; - return PDFDocumentProxy; -})(); - -var PDFPageProxy = (function PDFPageProxyClosure() { - function PDFPageProxy(pageInfo, transport) { - this.pageInfo = pageInfo; - this.transport = transport; - this.stats = new StatTimer(); - this.stats.enabled = !!globalScope.PDFJS.enableStats; - this.objs = transport.objs; - this.renderInProgress = false; - } - PDFPageProxy.prototype = { - /** - * @return {number} Page number of the page. First page is 1. - */ - get pageNumber() { - return this.pageInfo.pageIndex + 1; - }, - /** - * @return {number} The number of degrees the page is rotated clockwise. - */ - get rotate() { - return this.pageInfo.rotate; - }, - /** - * @return {object} The reference that points to this page. It has 'num' and - * 'gen' properties. - */ - get ref() { - return this.pageInfo.ref; - }, - /** - * @return {array} An array of the visible portion of the PDF page in the - * user space units - [x1, y1, x2, y2]. - */ - get view() { - return this.pageInfo.view; - }, - /** - * @param {number} scale The desired scale of the viewport. - * @param {number} rotate Degrees to rotate the viewport. If omitted this - * defaults to the page rotation. - * @return {PageViewport} Contains 'width' and 'height' properties along - * with transforms required for rendering. - */ - getViewport: function PDFPageProxy_getViewport(scale, rotate) { - if (arguments.length < 2) - rotate = this.rotate; - return new PDFJS.PageViewport(this.view, scale, rotate, 0, 0); - }, - /** - * @return {Promise} A promise that is resolved with an {array} of the - * annotation objects. - */ - getAnnotations: function PDFPageProxy_getAnnotations() { - if (this.annotationsPromise) - return this.annotationsPromise; - - var promise = new PDFJS.Promise(); - this.annotationsPromise = promise; - this.transport.getAnnotations(this.pageInfo.pageIndex); - return promise; - }, - /** - * Begins the process of rendering a page to the desired context. - * @param {object} params A parameter object that supports: - * { - * canvasContext(required): A 2D context of a DOM Canvas object., - * textLayer(optional): An object that has beginLayout, endLayout, and - * appendText functions. - * }. - * @return {Promise} A promise that is resolved when the page finishes - * rendering. - */ - render: function PDFPageProxy_render(params) { - this.renderInProgress = true; - - var promise = new Promise(); - var stats = this.stats; - stats.time('Overall'); - // If there is no displayReadyPromise yet, then the operatorList was never - // requested before. Make the request and create the promise. - if (!this.displayReadyPromise) { - this.displayReadyPromise = new Promise(); - this.destroyed = false; - - this.stats.time('Page Request'); - this.transport.messageHandler.send('RenderPageRequest', { - pageIndex: this.pageNumber - 1 - }); - } - - var self = this; - function complete(error) { - self.renderInProgress = false; - if (self.destroyed) { - delete self.operatorList; - delete self.displayReadyPromise; - } - - if (error) - promise.reject(error); - else - promise.resolve(); - }; - - // Once the operatorList and fonts are loaded, do the actual rendering. - this.displayReadyPromise.then( - function pageDisplayReadyPromise() { - if (self.destroyed) { - complete(); - return; - } - - var gfx = new CanvasGraphics(params.canvasContext, - this.objs, params.textLayer); - try { - this.display(gfx, params.viewport, complete); - } catch (e) { - complete(e); - } - }.bind(this), - function pageDisplayReadPromiseError(reason) { - complete(reason); - } - ); - - return promise; - }, - /** - * For internal use only. - */ - startRenderingFromOperatorList: - function PDFPageProxy_startRenderingFromOperatorList(operatorList, - fonts) { - var self = this; - this.operatorList = operatorList; - - var displayContinuation = function pageDisplayContinuation() { - // Always defer call to display() to work around bug in - // Firefox error reporting from XHR callbacks. - PdfJS_window.setTimeout(function pageSetTimeout() { - self.displayReadyPromise.resolve(); - }); - }; - - this.ensureFonts(fonts, - function pageStartRenderingFromOperatorListEnsureFonts() { - displayContinuation(); - } - ); - }, - /** - * For internal use only. - */ - ensureFonts: function PDFPageProxy_ensureFonts(fonts, callback) { - this.stats.time('Font Loading'); - // Convert the font names to the corresponding font obj. - for (var i = 0, ii = fonts.length; i < ii; i++) { - fonts[i] = this.objs.objs[fonts[i]].data; - } - - // Load all the fonts - FontLoader.bind( - fonts, - function pageEnsureFontsFontObjs(fontObjs) { - this.stats.timeEnd('Font Loading'); - - callback.call(this); - }.bind(this) - ); - }, - /** - * For internal use only. - */ - display: function PDFPageProxy_display(gfx, viewport, callback) { - var stats = this.stats; - stats.time('Rendering'); - - gfx.beginDrawing(viewport); - - var startIdx = 0; - var length = this.operatorList.fnArray.length; - var operatorList = this.operatorList; - var stepper = null; - if (PDFJS.pdfBug && StepperManager.enabled) { - stepper = StepperManager.create(this.pageNumber - 1); - stepper.init(operatorList); - stepper.nextBreakPoint = stepper.getNextBreakPoint(); - } - - var self = this; - function next() { - startIdx = - gfx.executeOperatorList(operatorList, startIdx, next, stepper); - if (startIdx == length) { - gfx.endDrawing(); - stats.timeEnd('Rendering'); - stats.timeEnd('Overall'); - if (callback) callback(); - } - } - next(); - }, - /** - * Stub for future feature. - */ - getTextContent: function PDFPageProxy_getTextContent() { - var promise = new PDFJS.Promise(); - var textContent = 'page text'; // not implemented - promise.resolve(textContent); - return promise; - }, - /** - * Stub for future feature. - */ - getOperationList: function PDFPageProxy_getOperationList() { - var promise = new PDFJS.Promise(); - var operationList = { // not implemented - dependencyFontsID: null, - operatorList: null - }; - promise.resolve(operationList); - return promise; - }, - /** - * Destroys resources allocated by the page. - */ - destroy: function PDFPageProxy_destroy() { - this.destroyed = true; - - if (!this.renderInProgress) { - delete this.operatorList; - delete this.displayReadyPromise; - } - } - }; - return PDFPageProxy; -})(); -/** - * For internal use only. - */ -var WorkerTransport = (function WorkerTransportClosure() { - function WorkerTransport(promise) { - this.workerReadyPromise = promise; - this.objs = new PDFObjects(); - - this.pageCache = []; - this.pagePromises = []; - this.fontsLoading = {}; - - // If worker support isn't disabled explicit and the browser has worker - // support, create a new web worker and test if it/the browser fullfills - // all requirements to run parts of pdf.js in a web worker. - // Right now, the requirement is, that an Uint8Array is still an Uint8Array - // as it arrives on the worker. Chrome added this with version 15. - if (!globalScope.PDFJS.disableWorker && typeof PdfJS_window.Worker !== 'undefined') { - var workerSrc = PDFJS.workerSrc; - if (typeof workerSrc === 'undefined') { - error('No PDFJS.workerSrc specified'); - } - - try { - var worker; - if (PDFJS.isFirefoxExtension) { - // The firefox extension can't load the worker from the resource:// - // url so we have to inline the script and then use the blob loader. - var bb = new MozBlobBuilder(); - bb.append(PdfJS_window.document.querySelector('#PDFJS_SCRIPT_TAG').textContent); - var blobUrl = PdfJS_window.window.URL.createObjectURL(bb.getBlob()); - worker = new Worker(blobUrl); - } else { - // Some versions of FF can't create a worker on localhost, see: - // https://bugzilla.mozilla.org/show_bug.cgi?id=683280 - worker = new Worker(workerSrc); - } - - var messageHandler = new MessageHandler('main', worker); - this.messageHandler = messageHandler; - - messageHandler.on('test', function transportTest(supportTypedArray) { - if (supportTypedArray) { - this.worker = worker; - this.setupMessageHandler(messageHandler); - } else { - globalScope.PDFJS.disableWorker = true; - this.setupFakeWorker(); - } - }.bind(this)); - - var testObj = new Uint8Array(1); - // Some versions of Opera throw a DATA_CLONE_ERR on - // serializing the typed array. - messageHandler.send('test', testObj); - return; - } catch (e) { - warn('The worker has been disabled.'); - } - } - // Either workers are disabled, not supported or have thrown an exception. - // Thus, we fallback to a faked worker. - globalScope.PDFJS.disableWorker = true; - this.setupFakeWorker(); - } - WorkerTransport.prototype = { - destroy: function WorkerTransport_destroy() { - if (this.worker) - this.worker.terminate(); - - this.pageCache = []; - this.pagePromises = []; - }, - setupFakeWorker: function WorkerTransport_setupFakeWorker() { - // If we don't use a worker, just post/sendMessage to the main thread. - var fakeWorker = { - postMessage: function WorkerTransport_postMessage(obj) { - fakeWorker.onmessage({data: obj}); - }, - terminate: function WorkerTransport_terminate() {} - }; - - var messageHandler = new MessageHandler('main', fakeWorker); - this.setupMessageHandler(messageHandler); - - // If the main thread is our worker, setup the handling for the messages - // the main thread sends to it self. - WorkerMessageHandler.setup(messageHandler); - }, - - setupMessageHandler: - function WorkerTransport_setupMessageHandler(messageHandler) { - this.messageHandler = messageHandler; - - messageHandler.on('GetDoc', function transportDoc(data) { - var pdfInfo = data.pdfInfo; - var pdfDocument = new PDFDocumentProxy(pdfInfo, this); - this.pdfDocument = pdfDocument; - this.workerReadyPromise.resolve(pdfDocument); - }, this); - - messageHandler.on('GetPage', function transportPage(data) { - var pageInfo = data.pageInfo; - var page = new PDFPageProxy(pageInfo, this); - this.pageCache[pageInfo.pageIndex] = page; - var promise = this.pagePromises[pageInfo.pageIndex]; - promise.resolve(page); - }, this); - - messageHandler.on('GetAnnotations', function transportAnnotations(data) { - var annotations = data.annotations; - var promise = this.pageCache[data.pageIndex].annotationsPromise; - promise.resolve(annotations); - }, this); - - messageHandler.on('RenderPage', function transportRender(data) { - var page = this.pageCache[data.pageIndex]; - var depFonts = data.depFonts; - - page.stats.timeEnd('Page Request'); - page.startRenderingFromOperatorList(data.operatorList, depFonts); - }, this); - - messageHandler.on('obj', function transportObj(data) { - var id = data[0]; - var type = data[1]; - if (this.objs.hasData(id)) - return; - - switch (type) { - case 'JpegStream': - var imageData = data[2]; - loadJpegStream(id, imageData, this.objs); - break; - case 'Image': - var imageData = data[2]; - this.objs.resolve(id, imageData); - break; - case 'Font': - var name = data[2]; - var file = data[3]; - var properties = data[4]; - - if (file) { - // Rewrap the ArrayBuffer in a stream. - var fontFileDict = new Dict(); - file = new Stream(file, 0, file.length, fontFileDict); - } - - // At this point, only the font object is created but the font is - // not yet attached to the DOM. This is done in `FontLoader.bind`. - var font = new Font(name, file, properties); - this.objs.resolve(id, font); - break; - default: - error('Got unkown object type ' + type); - } - }, this); - - messageHandler.on('PageError', function transportError(data) { - var page = this.pageCache[data.pageNum - 1]; - if (page.displayReadyPromise) - page.displayReadyPromise.reject(data.error); - else - error(data.error); - }, this); - - messageHandler.on('JpegDecode', function(data, promise) { - var imageData = data[0]; - var components = data[1]; - if (components != 3 && components != 1) - error('Only 3 component or 1 component can be returned'); - - var img = new Image(); - img.onload = (function messageHandler_onloadClosure() { - var width = img.width; - var height = img.height; - var size = width * height; - var rgbaLength = size * 4; - var buf = new Uint8Array(size * components); - var tmpCanvas = createScratchCanvas(width, height); - var tmpCtx = tmpCanvas.getContext('2d'); - tmpCtx.drawImage(img, 0, 0); - var data = tmpCtx.getImageData(0, 0, width, height).data; - - if (components == 3) { - for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) { - buf[j] = data[i]; - buf[j + 1] = data[i + 1]; - buf[j + 2] = data[i + 2]; - } - } else if (components == 1) { - for (var i = 0, j = 0; i < rgbaLength; i += 4, j++) { - buf[j] = data[i]; - } - } - promise.resolve({ data: buf, width: width, height: height}); - }).bind(this); - var src = 'data:image/jpeg;base64,' + PdfJS_window.window.btoa(imageData); - img.src = src; - }); - }, - - sendData: function WorkerTransport_sendData(data) { - this.messageHandler.send('GetDocRequest', data); - }, - - getPage: function WorkerTransport_getPage(pageNumber, promise) { - var pageIndex = pageNumber - 1; - if (pageIndex in this.pagePromises) - return this.pagePromises[pageIndex]; - var promise = new PDFJS.Promise('Page ' + pageNumber); - this.pagePromises[pageIndex] = promise; - this.messageHandler.send('GetPageRequest', { pageIndex: pageIndex }); - return promise; - }, - - getAnnotations: function WorkerTransport_getAnnotations(pageIndex) { - this.messageHandler.send('GetAnnotationsRequest', - { pageIndex: pageIndex }); - } - }; - return WorkerTransport; - -})(); - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -'use strict'; - -// contexts store most of the state we need natively. -// However, PDF needs a bit more state, which we store here. - -var TextRenderingMode = { - FILL: 0, - STROKE: 1, - FILL_STROKE: 2, - INVISIBLE: 3, - FILL_ADD_TO_PATH: 4, - STROKE_ADD_TO_PATH: 5, - FILL_STROKE_ADD_TO_PATH: 6, - ADD_TO_PATH: 7 -}; - -// Minimal font size that would be used during canvas fillText operations. -var MIN_FONT_SIZE = 1; - -function createScratchCanvas(width, height) { - var canvas = PdfJS_window.document.createElement('canvas'); - canvas.width = width; - canvas.height = height; - return canvas; -} - -function addContextCurrentTransform(ctx) { - // If the context doesn't expose a `mozCurrentTransform`, add a JS based on. - if (!ctx.mozCurrentTransform) { - // Store the original context - ctx._originalSave = ctx.save; - ctx._originalRestore = ctx.restore; - ctx._originalRotate = ctx.rotate; - ctx._originalScale = ctx.scale; - ctx._originalTranslate = ctx.translate; - ctx._originalTransform = ctx.transform; - - ctx._transformMatrix = [1, 0, 0, 1, 0, 0]; - ctx._transformStack = []; - - Object.defineProperty(ctx, 'mozCurrentTransform', { - get: function getCurrentTransform() { - return this._transformMatrix; - } - }); - - Object.defineProperty(ctx, 'mozCurrentTransformInverse', { - get: function getCurrentTransformInverse() { - // Calculation done using WolframAlpha: - // http://www.wolframalpha.com/input/? - // i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}} - - var m = this._transformMatrix; - var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5]; - - var ad_bc = a * d - b * c; - var bc_ad = b * c - a * d; - - return [ - d / ad_bc, - b / bc_ad, - c / bc_ad, - a / ad_bc, - (d * e - c * f) / bc_ad, - (b * e - a * f) / ad_bc - ]; - } - }); - - ctx.save = function ctxSave() { - var old = this._transformMatrix; - this._transformStack.push(old); - this._transformMatrix = old.slice(0, 6); - - this._originalSave(); - }; - - ctx.restore = function ctxRestore() { - var prev = this._transformStack.pop(); - if (prev) { - this._transformMatrix = prev; - this._originalRestore(); - } - }; - - ctx.translate = function ctxTranslate(x, y) { - var m = this._transformMatrix; - m[4] = m[0] * x + m[2] * y + m[4]; - m[5] = m[1] * x + m[3] * y + m[5]; - - this._originalTranslate(x, y); - }; - - ctx.scale = function ctxScale(x, y) { - var m = this._transformMatrix; - m[0] = m[0] * x; - m[1] = m[1] * x; - m[2] = m[2] * y; - m[3] = m[3] * y; - - this._originalScale(x, y); - }; - - ctx.transform = function ctxTransform(a, b, c, d, e, f) { - var m = this._transformMatrix; - this._transformMatrix = [ - m[0] * a + m[2] * b, - m[1] * a + m[3] * b, - m[0] * c + m[2] * d, - m[1] * c + m[3] * d, - m[0] * e + m[2] * f + m[4], - m[1] * e + m[3] * f + m[5] - ]; - - ctx._originalTransform(a, b, c, d, e, f); - }; - - ctx.rotate = function ctxRotate(angle) { - var cosValue = Math.cos(angle); - var sinValue = Math.sin(angle); - - var m = this._transformMatrix; - this._transformMatrix = [ - m[0] * cosValue + m[2] * sinValue, - m[1] * cosValue + m[3] * sinValue, - m[0] * (-sinValue) + m[2] * cosValue, - m[1] * (-sinValue) + m[3] * cosValue, - m[4], - m[5] - ]; - - this._originalRotate(angle); - }; - } -} - -var CanvasExtraState = (function CanvasExtraStateClosure() { - function CanvasExtraState(old) { - // Are soft masks and alpha values shapes or opacities? - this.alphaIsShape = false; - this.fontSize = 0; - this.fontSizeScale = 1; - this.textMatrix = IDENTITY_MATRIX; - this.fontMatrix = IDENTITY_MATRIX; - this.leading = 0; - // Current point (in user coordinates) - this.x = 0; - this.y = 0; - // Start of text line (in text coordinates) - this.lineX = 0; - this.lineY = 0; - // Character and word spacing - this.charSpacing = 0; - this.wordSpacing = 0; - this.textHScale = 1; - this.textRenderingMode = TextRenderingMode.FILL; - // Color spaces - this.fillColorSpace = new DeviceGrayCS(); - this.fillColorSpaceObj = null; - this.strokeColorSpace = new DeviceGrayCS(); - this.strokeColorSpaceObj = null; - this.fillColorObj = null; - this.strokeColorObj = null; - // Default fore and background colors - this.fillColor = '#000000'; - this.strokeColor = '#000000'; - // Note: fill alpha applies to all non-stroking operations - this.fillAlpha = 1; - this.strokeAlpha = 1; - this.lineWidth = 1; - - this.old = old; - } - - CanvasExtraState.prototype = { - clone: function CanvasExtraState_clone() { - return Object.create(this); - }, - setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) { - this.x = x; - this.y = y; - } - }; - return CanvasExtraState; -})(); - -var CanvasGraphics = (function CanvasGraphicsClosure() { - // Defines the time the executeOperatorList is going to be executing - // before it stops and shedules a continue of execution. - var kExecutionTime = 15; - - function CanvasGraphics(canvasCtx, objs, textLayer) { - this.ctx = canvasCtx; - this.current = new CanvasExtraState(); - this.stateStack = []; - this.pendingClip = null; - this.res = null; - this.xobjs = null; - this.objs = objs; - this.textLayer = textLayer; - if (canvasCtx) { - addContextCurrentTransform(canvasCtx); - } - } - - var LINE_CAP_STYLES = ['butt', 'round', 'square']; - var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; - var NORMAL_CLIP = {}; - var EO_CLIP = {}; - - CanvasGraphics.prototype = { - slowCommands: { - 'stroke': true, - 'closeStroke': true, - 'fill': true, - 'eoFill': true, - 'fillStroke': true, - 'eoFillStroke': true, - 'closeFillStroke': true, - 'closeEOFillStroke': true, - 'showText': true, - 'showSpacedText': true, - 'setStrokeColorSpace': true, - 'setFillColorSpace': true, - 'setStrokeColor': true, - 'setStrokeColorN': true, - 'setFillColor': true, - 'setFillColorN': true, - 'setStrokeGray': true, - 'setFillGray': true, - 'setStrokeRGBColor': true, - 'setFillRGBColor': true, - 'setStrokeCMYKColor': true, - 'setFillCMYKColor': true, - 'paintJpegXObject': true, - 'paintImageXObject': true, - 'paintImageMaskXObject': true, - 'shadingFill': true - }, - - beginDrawing: function CanvasGraphics_beginDrawing(viewport) { - var transform = viewport.transform; - this.ctx.save(); - this.ctx.transform.apply(this.ctx, transform); - - if (this.textLayer) - this.textLayer.beginLayout(); - }, - - executeOperatorList: function CanvasGraphics_executeOperatorList( - operatorList, - executionStartIdx, continueCallback, - stepper) { - var argsArray = operatorList.argsArray; - var fnArray = operatorList.fnArray; - var i = executionStartIdx || 0; - var argsArrayLen = argsArray.length; - - // Sometimes the OperatorList to execute is empty. - if (argsArrayLen == i) { - return i; - } - - var executionEndIdx; - var endTime = Date.now() + kExecutionTime; - - var objs = this.objs; - var fnName; - var slowCommands = this.slowCommands; - - while (true) { - if (stepper && i === stepper.nextBreakPoint) { - stepper.breakIt(i, continueCallback); - return i; - } - - fnName = fnArray[i]; - - if (fnName !== 'dependency') { - this[fnName].apply(this, argsArray[i]); - } else { - var deps = argsArray[i]; - for (var n = 0, nn = deps.length; n < nn; n++) { - var depObjId = deps[n]; - - // If the promise isn't resolved yet, add the continueCallback - // to the promise and bail out. - if (!objs.isResolved(depObjId)) { - objs.get(depObjId, continueCallback); - return i; - } - } - } - - i++; - - // If the entire operatorList was executed, stop as were done. - if (i == argsArrayLen) { - return i; - } - - // If the execution took longer then a certain amount of time, shedule - // to continue exeution after a short delay. - // However, this is only possible if a 'continueCallback' is passed in. - if (continueCallback && slowCommands[fnName] && Date.now() > endTime) { - PdfJS_window.setTimeout(continueCallback, 0); - return i; - } - - // If the operatorList isn't executed completely yet OR the execution - // time was short enough, do another execution round. - } - }, - - endDrawing: function CanvasGraphics_endDrawing() { - this.ctx.restore(); - - if (this.textLayer) - this.textLayer.endLayout(); - }, - - // Graphics state - setLineWidth: function CanvasGraphics_setLineWidth(width) { - this.current.lineWidth = width; - this.ctx.lineWidth = width; - }, - setLineCap: function CanvasGraphics_setLineCap(style) { - this.ctx.lineCap = LINE_CAP_STYLES[style]; - }, - setLineJoin: function CanvasGraphics_setLineJoin(style) { - this.ctx.lineJoin = LINE_JOIN_STYLES[style]; - }, - setMiterLimit: function CanvasGraphics_setMiterLimit(limit) { - this.ctx.miterLimit = limit; - }, - setDash: function CanvasGraphics_setDash(dashArray, dashPhase) { - this.ctx.mozDash = dashArray; - this.ctx.mozDashOffset = dashPhase; - this.ctx.webkitLineDash = dashArray; - this.ctx.webkitLineDashOffset = dashPhase; - }, - setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) { - TODO('set rendering intent: ' + intent); - }, - setFlatness: function CanvasGraphics_setFlatness(flatness) { - TODO('set flatness: ' + flatness); - }, - setGState: function CanvasGraphics_setGState(states) { - for (var i = 0, ii = states.length; i < ii; i++) { - var state = states[i]; - var key = state[0]; - var value = state[1]; - - switch (key) { - case 'LW': - this.setLineWidth(value); - break; - case 'LC': - this.setLineCap(value); - break; - case 'LJ': - this.setLineJoin(value); - break; - case 'ML': - this.setMiterLimit(value); - break; - case 'D': - this.setDash(value[0], value[1]); - break; - case 'RI': - this.setRenderingIntent(value); - break; - case 'FL': - this.setFlatness(value); - break; - case 'Font': - this.setFont(state[1], state[2]); - break; - case 'CA': - this.current.strokeAlpha = state[1]; - break; - case 'ca': - this.current.fillAlpha = state[1]; - this.ctx.globalAlpha = state[1]; - break; - } - } - }, - save: function CanvasGraphics_save() { - this.ctx.save(); - var old = this.current; - this.stateStack.push(old); - this.current = old.clone(); - }, - restore: function CanvasGraphics_restore() { - var prev = this.stateStack.pop(); - if (prev) { - this.current = prev; - this.ctx.restore(); - } - }, - transform: function CanvasGraphics_transform(a, b, c, d, e, f) { - this.ctx.transform(a, b, c, d, e, f); - }, - - // Path - moveTo: function CanvasGraphics_moveTo(x, y) { - this.ctx.moveTo(x, y); - this.current.setCurrentPoint(x, y); - }, - lineTo: function CanvasGraphics_lineTo(x, y) { - this.ctx.lineTo(x, y); - this.current.setCurrentPoint(x, y); - }, - curveTo: function CanvasGraphics_curveTo(x1, y1, x2, y2, x3, y3) { - this.ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3); - this.current.setCurrentPoint(x3, y3); - }, - curveTo2: function CanvasGraphics_curveTo2(x2, y2, x3, y3) { - var current = this.current; - this.ctx.bezierCurveTo(current.x, current.y, x2, y2, x3, y3); - current.setCurrentPoint(x3, y3); - }, - curveTo3: function CanvasGraphics_curveTo3(x1, y1, x3, y3) { - this.curveTo(x1, y1, x3, y3, x3, y3); - this.current.setCurrentPoint(x3, y3); - }, - closePath: function CanvasGraphics_closePath() { - this.ctx.closePath(); - }, - rectangle: function CanvasGraphics_rectangle(x, y, width, height) { - this.ctx.rect(x, y, width, height); - }, - stroke: function CanvasGraphics_stroke(consumePath) { - consumePath = typeof consumePath !== 'undefined' ? consumePath : true; - var ctx = this.ctx; - var strokeColor = this.current.strokeColor; - if (this.current.lineWidth === 0) - ctx.lineWidth = this.getSinglePixelWidth(); - // For stroke we want to temporarily change the global alpha to the - // stroking alpha. - ctx.globalAlpha = this.current.strokeAlpha; - if (strokeColor && strokeColor.hasOwnProperty('type') && - strokeColor.type === 'Pattern') { - // for patterns, we transform to pattern space, calculate - // the pattern, call stroke, and restore to user space - ctx.save(); - ctx.strokeStyle = strokeColor.getPattern(ctx); - ctx.stroke(); - ctx.restore(); - } else { - ctx.stroke(); - } - if (consumePath) - this.consumePath(); - // Restore the global alpha to the fill alpha - ctx.globalAlpha = this.current.fillAlpha; - }, - closeStroke: function CanvasGraphics_closeStroke() { - this.closePath(); - this.stroke(); - }, - fill: function CanvasGraphics_fill(consumePath) { - consumePath = typeof consumePath !== 'undefined' ? consumePath : true; - var ctx = this.ctx; - var fillColor = this.current.fillColor; - - if (fillColor && fillColor.hasOwnProperty('type') && - fillColor.type === 'Pattern') { - ctx.save(); - ctx.fillStyle = fillColor.getPattern(ctx); - ctx.fill(); - ctx.restore(); - } else { - ctx.fill(); - } - if (consumePath) - this.consumePath(); - }, - eoFill: function CanvasGraphics_eoFill() { - var savedFillRule = this.setEOFillRule(); - this.fill(); - this.restoreFillRule(savedFillRule); - }, - fillStroke: function CanvasGraphics_fillStroke() { - this.fill(false); - this.stroke(false); - - this.consumePath(); - }, - eoFillStroke: function CanvasGraphics_eoFillStroke() { - var savedFillRule = this.setEOFillRule(); - this.fillStroke(); - this.restoreFillRule(savedFillRule); - }, - closeFillStroke: function CanvasGraphics_closeFillStroke() { - this.closePath(); - this.fillStroke(); - }, - closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { - var savedFillRule = this.setEOFillRule(); - this.closePath(); - this.fillStroke(); - this.restoreFillRule(savedFillRule); - }, - endPath: function CanvasGraphics_endPath() { - this.consumePath(); - }, - - // Clipping - clip: function CanvasGraphics_clip() { - this.pendingClip = NORMAL_CLIP; - }, - eoClip: function CanvasGraphics_eoClip() { - this.pendingClip = EO_CLIP; - }, - - // Text - beginText: function CanvasGraphics_beginText() { - this.current.textMatrix = IDENTITY_MATRIX; - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; - }, - endText: function CanvasGraphics_endText() { - }, - setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) { - this.current.charSpacing = spacing; - }, - setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) { - this.current.wordSpacing = spacing; - }, - setHScale: function CanvasGraphics_setHScale(scale) { - this.current.textHScale = scale / 100; - }, - setLeading: function CanvasGraphics_setLeading(leading) { - this.current.leading = -leading; - }, - setFont: function CanvasGraphics_setFont(fontRefName, size) { - var fontObj = this.objs.get(fontRefName); - var current = this.current; - - if (!fontObj) - error('Can\'t find font for ' + fontRefName); - - // Slice-clone matrix so we can manipulate it without affecting original - if (fontObj.fontMatrix) - current.fontMatrix = fontObj.fontMatrix.slice(0); - else - current.fontMatrix = IDENTITY_MATRIX.slice(0); - - // A valid matrix needs all main diagonal elements to be non-zero - // This also ensures we bypass FF bugzilla bug #719844. - if (current.fontMatrix[0] === 0 || - current.fontMatrix[3] === 0) { - warn('Invalid font matrix for font ' + fontRefName); - } - - // The spec for Tf (setFont) says that 'size' specifies the font 'scale', - // and in some docs this can be negative (inverted x-y axes). - // We implement this condition with fontMatrix. - if (size < 0) { - size = -size; - current.fontMatrix[0] *= -1; - current.fontMatrix[3] *= -1; - } - - this.current.font = fontObj; - this.current.fontSize = size; - - if (fontObj.coded) - return; // we don't need ctx.font for Type3 fonts - - var name = fontObj.loadedName || 'sans-serif'; - var bold = fontObj.black ? (fontObj.bold ? 'bolder' : 'bold') : - (fontObj.bold ? 'bold' : 'normal'); - - var italic = fontObj.italic ? 'italic' : 'normal'; - var serif = fontObj.isSerifFont ? 'serif' : 'sans-serif'; - var typeface = '"' + name + '", ' + serif; - - // Some font backends cannot handle fonts below certain size. - // Keeping the font at minimal size and using the fontSizeScale to change - // the current transformation matrix before the fillText/strokeText. - // See https://bugzilla.mozilla.org/show_bug.cgi?id=726227 - var browserFontSize = size >= MIN_FONT_SIZE ? size : MIN_FONT_SIZE; - this.current.fontSizeScale = browserFontSize != MIN_FONT_SIZE ? 1.0 : - size / MIN_FONT_SIZE; - - var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface; - this.ctx.font = rule; - }, - setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { - if (mode >= TextRenderingMode.FILL_ADD_TO_PATH) - TODO('unsupported text rendering mode: ' + mode); - this.current.textRenderingMode = mode; - }, - setTextRise: function CanvasGraphics_setTextRise(rise) { - TODO('text rise: ' + rise); - }, - moveText: function CanvasGraphics_moveText(x, y) { - this.current.x = this.current.lineX += x; - this.current.y = this.current.lineY += y; - }, - setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) { - this.setLeading(-y); - this.moveText(x, y); - }, - setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) { - this.current.textMatrix = [a, b, c, d, e, f]; - - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; - }, - nextLine: function CanvasGraphics_nextLine() { - this.moveText(0, this.current.leading); - }, - applyTextTransforms: function CanvasGraphics_applyTextTransforms() { - var ctx = this.ctx; - var current = this.current; - var textHScale = current.textHScale; - var fontMatrix = current.fontMatrix || IDENTITY_MATRIX; - - ctx.transform.apply(ctx, current.textMatrix); - ctx.scale(1, -1); - ctx.translate(current.x, -1 * current.y); - ctx.transform.apply(ctx, fontMatrix); - ctx.scale(textHScale, 1); - }, - getTextGeometry: function CanvasGraphics_getTextGeometry() { - var geometry = {}; - var ctx = this.ctx; - var font = this.current.font; - var ctxMatrix = ctx.mozCurrentTransform; - if (ctxMatrix) { - var bl = Util.applyTransform([0, 0], ctxMatrix); - var tr = Util.applyTransform([1, 1], ctxMatrix); - geometry.x = bl[0]; - geometry.y = bl[1]; - geometry.hScale = tr[0] - bl[0]; - geometry.vScale = tr[1] - bl[1]; - } - geometry.spaceWidth = font.spaceWidth; - return geometry; - }, - - showText: function CanvasGraphics_showText(str, skipTextSelection) { - var ctx = this.ctx; - var current = this.current; - var font = current.font; - var glyphs = font.charsToGlyphs(str); - var fontSize = current.fontSize; - var fontSizeScale = current.fontSizeScale; - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var textHScale = current.textHScale; - var fontMatrix = current.fontMatrix || IDENTITY_MATRIX; - var textHScale2 = textHScale * fontMatrix[0]; - var glyphsLength = glyphs.length; - var textLayer = this.textLayer; - var text = {str: '', length: 0, canvasWidth: 0, geom: {}}; - var textSelection = textLayer && !skipTextSelection ? true : false; - var textRenderingMode = current.textRenderingMode; - - // Type3 fonts - each glyph is a "mini-PDF" - if (font.coded) { - ctx.save(); - ctx.transform.apply(ctx, current.textMatrix); - ctx.translate(current.x, current.y); - - ctx.scale(textHScale, 1); - - if (textSelection) { - this.save(); - ctx.scale(1, -1); - text.geom = this.getTextGeometry(); - this.restore(); - } - for (var i = 0; i < glyphsLength; ++i) { - - var glyph = glyphs[i]; - if (glyph === null) { - // word break - this.ctx.translate(wordSpacing, 0); - continue; - } - - this.save(); - ctx.scale(fontSize, fontSize); - ctx.transform.apply(ctx, fontMatrix); - this.executeOperatorList(glyph.operatorList); - this.restore(); - - var transformed = Util.applyTransform([glyph.width, 0], fontMatrix); - var width = transformed[0] * fontSize + - Util.sign(current.fontMatrix[0]) * charSpacing; - - ctx.translate(width, 0); - current.x += width * textHScale; - - text.str += glyph.unicode; - text.length++; - text.canvasWidth += width; - } - ctx.restore(); - } else { - ctx.save(); - this.applyTextTransforms(); - - var lineWidth = current.lineWidth; - var scale = Math.abs(current.textMatrix[0] * fontMatrix[0]); - if (scale == 0 || lineWidth == 0) - lineWidth = this.getSinglePixelWidth(); - else - lineWidth /= scale; - - if (textSelection) - text.geom = this.getTextGeometry(); - - if (fontSizeScale != 1.0) { - ctx.scale(fontSizeScale, fontSizeScale); - lineWidth /= fontSizeScale; - } - - ctx.lineWidth = lineWidth; - - var x = 0; - for (var i = 0; i < glyphsLength; ++i) { - var glyph = glyphs[i]; - if (glyph === null) { - // word break - x += Util.sign(current.fontMatrix[0]) * wordSpacing; - continue; - } - - var character = glyph.fontChar; - var charWidth = glyph.width * fontSize * 0.001 + - Util.sign(current.fontMatrix[0]) * charSpacing; - - if (!glyph.disabled) { - var scaledX = x / fontSizeScale; - switch (textRenderingMode) { - default: // other unsupported rendering modes - case TextRenderingMode.FILL: - case TextRenderingMode.FILL_ADD_TO_PATH: - ctx.fillText(character, scaledX, 0); - break; - case TextRenderingMode.STROKE: - case TextRenderingMode.STROKE_ADD_TO_PATH: - ctx.strokeText(character, scaledX, 0); - break; - case TextRenderingMode.FILL_STROKE: - case TextRenderingMode.FILL_STROKE_ADD_TO_PATH: - ctx.fillText(character, scaledX, 0); - ctx.strokeText(character, scaledX, 0); - break; - case TextRenderingMode.INVISIBLE: - break; - } - } - - x += charWidth; - - var glyphUnicode = glyph.unicode === ' ' ? '\u00A0' : glyph.unicode; - var glyphUnicodeLength = glyphUnicode.length; - //reverse an arabic ligature - if (glyphUnicodeLength > 1 && - isRTLRangeFor(glyphUnicode.charCodeAt(0))) { - for (var ii = glyphUnicodeLength - 1; ii >= 0; ii--) - text.str += glyphUnicode[ii]; - } else - text.str += glyphUnicode; - text.length += glyphUnicodeLength; - text.canvasWidth += charWidth; - } - current.x += x * textHScale2; - ctx.restore(); - } - - if (textSelection) - this.textLayer.appendText(text, font.loadedName, fontSize); - - return text; - }, - showSpacedText: function CanvasGraphics_showSpacedText(arr) { - var ctx = this.ctx; - var current = this.current; - var font = current.font; - var fontSize = current.fontSize; - var textHScale = current.textHScale; - if (!font.coded) - textHScale *= (current.fontMatrix || IDENTITY_MATRIX)[0]; - var arrLength = arr.length; - var textLayer = this.textLayer; - var text = {str: '', length: 0, canvasWidth: 0, geom: {}}; - var textSelection = textLayer ? true : false; - - if (textSelection) { - ctx.save(); - // Type3 fonts - each glyph is a "mini-PDF" (see also showText) - if (font.coded) { - ctx.transform.apply(ctx, current.textMatrix); - ctx.scale(1, -1); - ctx.translate(current.x, -1 * current.y); - ctx.scale(textHScale, 1); - } else - this.applyTextTransforms(); - text.geom = this.getTextGeometry(); - ctx.restore(); - } - - for (var i = 0; i < arrLength; ++i) { - var e = arr[i]; - if (isNum(e)) { - var spacingLength = -e * 0.001 * fontSize * textHScale; - current.x += spacingLength; - - if (textSelection) { - // Emulate precise spacing via HTML spaces - text.canvasWidth += spacingLength; - if (e < 0 && text.geom.spaceWidth > 0) { // avoid div by zero - var numFakeSpaces = Math.round(-e / text.geom.spaceWidth); - if (numFakeSpaces > 0) { - text.str += '\u00A0'; - text.length++; - } - } - } - } else if (isString(e)) { - var shownText = this.showText(e, true); - - if (textSelection) { - if (shownText.str === ' ') { - text.str += '\u00A0'; - } else { - text.str += shownText.str; - } - text.canvasWidth += shownText.canvasWidth; - text.length += shownText.length; - } - } else { - malformed('TJ array element ' + e + ' is not string or num'); - } - } - - if (textSelection) - this.textLayer.appendText(text, font.loadedName, fontSize); - }, - nextLineShowText: function CanvasGraphics_nextLineShowText(text) { - this.nextLine(); - this.showText(text); - }, - nextLineSetSpacingShowText: - function CanvasGraphics_nextLineSetSpacingShowText(wordSpacing, - charSpacing, - text) { - this.setWordSpacing(wordSpacing); - this.setCharSpacing(charSpacing); - this.nextLineShowText(text); - }, - - // Type3 fonts - setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) { - // We can safely ignore this since the width should be the same - // as the width in the Widths array. - }, - setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, - yWidth, - llx, - lly, - urx, - ury) { - // TODO According to the spec we're also suppose to ignore any operators - // that set color or include images while processing this type3 font. - this.rectangle(llx, lly, urx - llx, ury - lly); - this.clip(); - this.endPath(); - }, - - // Color - setStrokeColorSpace: function CanvasGraphics_setStrokeColorSpace(raw) { - this.current.strokeColorSpace = ColorSpace.fromIR(raw); - }, - setFillColorSpace: function CanvasGraphics_setFillColorSpace(raw) { - this.current.fillColorSpace = ColorSpace.fromIR(raw); - }, - setStrokeColor: function CanvasGraphics_setStrokeColor(/*...*/) { - var cs = this.current.strokeColorSpace; - var rgbColor = cs.getRgb(arguments); - var color = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); - this.ctx.strokeStyle = color; - this.current.strokeColor = color; - }, - getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR, cs) { - if (IR[0] == 'TilingPattern') { - var args = IR[1]; - var base = cs.base; - var color; - if (base) { - var baseComps = base.numComps; - - color = []; - for (var i = 0; i < baseComps; ++i) - color.push(args[i]); - - color = base.getRgb(color); - } - var pattern = new TilingPattern(IR, color, this.ctx, this.objs); - } else if (IR[0] == 'RadialAxial' || IR[0] == 'Dummy') { - var pattern = Pattern.shadingFromIR(IR); - } else { - error('Unkown IR type ' + IR[0]); - } - return pattern; - }, - setStrokeColorN: function CanvasGraphics_setStrokeColorN(/*...*/) { - var cs = this.current.strokeColorSpace; - - if (cs.name == 'Pattern') { - this.current.strokeColor = this.getColorN_Pattern(arguments, cs); - } else { - this.setStrokeColor.apply(this, arguments); - } - }, - setFillColor: function CanvasGraphics_setFillColor(/*...*/) { - var cs = this.current.fillColorSpace; - var rgbColor = cs.getRgb(arguments); - var color = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); - this.ctx.fillStyle = color; - this.current.fillColor = color; - }, - setFillColorN: function CanvasGraphics_setFillColorN(/*...*/) { - var cs = this.current.fillColorSpace; - - if (cs.name == 'Pattern') { - this.current.fillColor = this.getColorN_Pattern(arguments, cs); - } else { - this.setFillColor.apply(this, arguments); - } - }, - setStrokeGray: function CanvasGraphics_setStrokeGray(gray) { - if (!(this.current.strokeColorSpace instanceof DeviceGrayCS)) - this.current.strokeColorSpace = new DeviceGrayCS(); - - var color = Util.makeCssRgb(gray, gray, gray); - this.ctx.strokeStyle = color; - this.current.strokeColor = color; - }, - setFillGray: function CanvasGraphics_setFillGray(gray) { - if (!(this.current.fillColorSpace instanceof DeviceGrayCS)) - this.current.fillColorSpace = new DeviceGrayCS(); - - var color = Util.makeCssRgb(gray, gray, gray); - this.ctx.fillStyle = color; - this.current.fillColor = color; - }, - setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { - if (!(this.current.strokeColorSpace instanceof DeviceRgbCS)) - this.current.strokeColorSpace = new DeviceRgbCS(); - - var color = Util.makeCssRgb(r, g, b); - this.ctx.strokeStyle = color; - this.current.strokeColor = color; - }, - setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { - if (!(this.current.fillColorSpace instanceof DeviceRgbCS)) - this.current.fillColorSpace = new DeviceRgbCS(); - - var color = Util.makeCssRgb(r, g, b); - this.ctx.fillStyle = color; - this.current.fillColor = color; - }, - setStrokeCMYKColor: function CanvasGraphics_setStrokeCMYKColor(c, m, y, k) { - if (!(this.current.strokeColorSpace instanceof DeviceCmykCS)) - this.current.strokeColorSpace = new DeviceCmykCS(); - - var color = Util.makeCssCmyk(c, m, y, k); - this.ctx.strokeStyle = color; - this.current.strokeColor = color; - }, - setFillCMYKColor: function CanvasGraphics_setFillCMYKColor(c, m, y, k) { - if (!(this.current.fillColorSpace instanceof DeviceCmykCS)) - this.current.fillColorSpace = new DeviceCmykCS(); - - var color = Util.makeCssCmyk(c, m, y, k); - this.ctx.fillStyle = color; - this.current.fillColor = color; - }, - - shadingFill: function CanvasGraphics_shadingFill(patternIR) { - var ctx = this.ctx; - - this.save(); - var pattern = Pattern.shadingFromIR(patternIR); - ctx.fillStyle = pattern.getPattern(ctx); - - var inv = ctx.mozCurrentTransformInverse; - if (inv) { - var canvas = ctx.canvas; - var width = canvas.width; - var height = canvas.height; - - var bl = Util.applyTransform([0, 0], inv); - var br = Util.applyTransform([0, height], inv); - var ul = Util.applyTransform([width, 0], inv); - var ur = Util.applyTransform([width, height], inv); - - var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); - var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); - var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); - var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); - - this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); - } else { - // HACK to draw the gradient onto an infinite rectangle. - // PDF gradients are drawn across the entire image while - // Canvas only allows gradients to be drawn in a rectangle - // The following bug should allow us to remove this. - // https://bugzilla.mozilla.org/show_bug.cgi?id=664884 - - this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); - } - - this.restore(); - }, - - // Images - beginInlineImage: function CanvasGraphics_beginInlineImage() { - error('Should not call beginInlineImage'); - }, - beginImageData: function CanvasGraphics_beginImageData() { - error('Should not call beginImageData'); - }, - - paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, - bbox) { - this.save(); - - if (matrix && isArray(matrix) && 6 == matrix.length) - this.transform.apply(this, matrix); - - if (bbox && isArray(bbox) && 4 == bbox.length) { - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; - this.rectangle(bbox[0], bbox[1], width, height); - this.clip(); - this.endPath(); - } - }, - - paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() { - this.restore(); - }, - - paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { - var domImage = this.objs.get(objId); - if (!domImage) { - error('Dependent image isn\'t ready yet'); - } - - this.save(); - - var ctx = this.ctx; - // scale the image to the unit square - ctx.scale(1 / w, -1 / h); - - ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, - 0, -h, w, h); - - this.restore(); - }, - - paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject( - imgArray, inverseDecode, width, height) { - function applyStencilMask(buffer, inverseDecode) { - var imgArrayPos = 0; - var i, j, mask, buf; - // removing making non-masked pixels transparent - var bufferPos = 3; // alpha component offset - for (i = 0; i < height; i++) { - mask = 0; - for (j = 0; j < width; j++) { - if (!mask) { - buf = imgArray[imgArrayPos++]; - mask = 128; - } - if (!(buf & mask) == inverseDecode) { - buffer[bufferPos] = 0; - } - bufferPos += 4; - mask >>= 1; - } - } - } - - this.save(); - - var ctx = this.ctx; - var w = width, h = height; - // scale the image to the unit square - ctx.scale(1 / w, -1 / h); - - var tmpCanvas = createScratchCanvas(w, h); - var tmpCtx = tmpCanvas.getContext('2d'); - - var fillColor = this.current.fillColor; - tmpCtx.fillStyle = (fillColor && fillColor.hasOwnProperty('type') && - fillColor.type === 'Pattern') ? - fillColor.getPattern(tmpCtx) : fillColor; - tmpCtx.fillRect(0, 0, w, h); - - var imgData = tmpCtx.getImageData(0, 0, w, h); - var pixels = imgData.data; - - applyStencilMask(pixels, inverseDecode); - - tmpCtx.putImageData(imgData, 0, 0); - ctx.drawImage(tmpCanvas, 0, -h); - this.restore(); - }, - - paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { - var imgData = this.objs.get(objId); - if (!imgData) - error('Dependent image isn\'t ready yet'); - - this.save(); - var ctx = this.ctx; - var w = imgData.width; - var h = imgData.height; - // scale the image to the unit square - ctx.scale(1 / w, -1 / h); - - var tmpCanvas = createScratchCanvas(w, h); - var tmpCtx = tmpCanvas.getContext('2d'); - this.putBinaryImageData(tmpCtx, imgData, w, h); - - ctx.drawImage(tmpCanvas, 0, -h); - this.restore(); - }, - - putBinaryImageData: function CanvasGraphics_putBinaryImageData() { - // - }, - - // Marked content - - markPoint: function CanvasGraphics_markPoint(tag) { - TODO('Marked content'); - }, - markPointProps: function CanvasGraphics_markPointProps(tag, properties) { - TODO('Marked content'); - }, - beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) { - TODO('Marked content'); - }, - beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps( - tag, properties) { - TODO('Marked content'); - }, - endMarkedContent: function CanvasGraphics_endMarkedContent() { - TODO('Marked content'); - }, - - // Compatibility - - beginCompat: function CanvasGraphics_beginCompat() { - TODO('ignore undefined operators (should we do that anyway?)'); - }, - endCompat: function CanvasGraphics_endCompat() { - TODO('stop ignoring undefined operators'); - }, - - // Helper functions - - consumePath: function CanvasGraphics_consumePath() { - if (this.pendingClip) { - var savedFillRule = null; - if (this.pendingClip == EO_CLIP) - savedFillRule = this.setEOFillRule(); - - this.ctx.clip(); - - this.pendingClip = null; - if (savedFillRule !== null) - this.restoreFillRule(savedFillRule); - } - this.ctx.beginPath(); - }, - // We generally keep the canvas context set for - // nonzero-winding, and just set evenodd for the operations - // that need them. - setEOFillRule: function CanvasGraphics_setEOFillRule() { - var savedFillRule = this.ctx.mozFillRule; - this.ctx.mozFillRule = 'evenodd'; - return savedFillRule; - }, - restoreFillRule: function CanvasGraphics_restoreFillRule(rule) { - this.ctx.mozFillRule = rule; - }, - getSinglePixelWidth: function CanvasGraphics_getSinglePixelWidth(scale) { - var inverse = this.ctx.mozCurrentTransformInverse; - return Math.abs(inverse[0] + inverse[2]); - } - }; - - return CanvasGraphics; -})(); - -if (!isWorker) { - // Feature detection if the browser can use an Uint8Array directly as imgData. - var canvas = PdfJS_window.document.createElement('canvas'); - canvas.width = 1; - canvas.height = 1; - var ctx = canvas.getContext('2d'); - - try { - ctx.putImageData({ - width: 1, - height: 1, - data: new Uint8Array(4) - }, 0, 0); - - CanvasGraphics.prototype.putBinaryImageData = - function CanvasGraphicsPutBinaryImageDataNative(ctx, imgData) { - ctx.putImageData(imgData, 0, 0); - }; - } catch (e) { - CanvasGraphics.prototype.putBinaryImageData = - function CanvasGraphicsPutBinaryImageDataShim(ctx, imgData, w, h) { - var tmpImgData = ctx.getImageData(0, 0, w, h); - - // Copy over the imageData pixel by pixel. - var tmpImgDataPixels = tmpImgData.data; - var len = tmpImgDataPixels.length; - - while (len--) { - tmpImgDataPixels[len] = imgData.data[len]; - } - - ctx.putImageData(tmpImgData, 0, 0); - }; - } -} - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -'use strict'; - -var Name = (function NameClosure() { - function Name(name) { - this.name = name; - } - - Name.prototype = {}; - - return Name; -})(); - -var Cmd = (function CmdClosure() { - function Cmd(cmd) { - this.cmd = cmd; - } - - Cmd.prototype = {}; - - var cmdCache = {}; - - Cmd.get = function Cmd_get(cmd) { - var cmdValue = cmdCache[cmd]; - if (cmdValue) - return cmdValue; - - return cmdCache[cmd] = new Cmd(cmd); - }; - - return Cmd; -})(); - -var Dict = (function DictClosure() { - // xref is optional - function Dict(xref) { - // Map should only be used internally, use functions below to access. - var map = Object.create(null); - - this.assignXref = function Dict_assignXref(newXref) { - xref = newXref; - }; - - // automatically dereferences Ref objects - this.get = function Dict_get(key1, key2, key3) { - var value; - if (typeof (value = map[key1]) != 'undefined' || key1 in map || - typeof key2 == 'undefined') { - return xref ? xref.fetchIfRef(value) : value; - } - if (typeof (value = map[key2]) != 'undefined' || key2 in map || - typeof key3 == 'undefined') { - return xref ? xref.fetchIfRef(value) : value; - } - value = map[key3] || null; - return xref ? xref.fetchIfRef(value) : value; - }; - - // no dereferencing - this.getRaw = function Dict_getRaw(key) { - return map[key]; - }; - - // creates new map and dereferences all Refs - this.getAll = function Dict_getAll() { - var all = {}; - for (var key in map) { - var obj = this.get(key); - all[key] = obj instanceof Dict ? obj.getAll() : obj; - } - return all; - }; - - this.set = function Dict_set(key, value) { - map[key] = value; - }; - - this.has = function Dict_has(key) { - return key in map; - }; - - this.forEach = function Dict_forEach(callback) { - for (var key in map) { - callback(key, this.get(key)); - } - }; - }; - - return Dict; -})(); - -var Ref = (function RefClosure() { - function Ref(num, gen) { - this.num = num; - this.gen = gen; - } - - Ref.prototype = {}; - - return Ref; -})(); - -// The reference is identified by number and generation, -// this structure stores only one instance of the reference. -var RefSet = (function RefSetClosure() { - function RefSet() { - this.dict = {}; - } - - RefSet.prototype = { - has: function RefSet_has(ref) { - return !!this.dict['R' + ref.num + '.' + ref.gen]; - }, - - put: function RefSet_put(ref) { - this.dict['R' + ref.num + '.' + ref.gen] = ref; - } - }; - - return RefSet; -})(); - -var Catalog = (function CatalogClosure() { - function Catalog(xref) { - this.xref = xref; - var obj = xref.getCatalogObj(); - assertWellFormed(isDict(obj), 'catalog object is not a dictionary'); - this.catDict = obj; - } - - Catalog.prototype = { - get metadata() { - var stream = this.catDict.get('Metadata'); - var metadata; - if (stream && isDict(stream.dict)) { - var type = stream.dict.get('Type'); - var subtype = stream.dict.get('Subtype'); - - if (isName(type) && isName(subtype) && - type.name === 'Metadata' && subtype.name === 'XML') { - metadata = stringToPDFString(bytesToString(stream.getBytes())); - } - } - - return shadow(this, 'metadata', metadata); - }, - get toplevelPagesDict() { - var pagesObj = this.catDict.get('Pages'); - assertWellFormed(isDict(pagesObj), 'invalid top-level pages dictionary'); - // shadow the prototype getter - return shadow(this, 'toplevelPagesDict', pagesObj); - }, - get documentOutline() { - var xref = this.xref; - var obj = this.catDict.get('Outlines'); - var root = { items: [] }; - if (isDict(obj)) { - obj = obj.getRaw('First'); - var processed = new RefSet(); - if (isRef(obj)) { - var queue = [{obj: obj, parent: root}]; - // to avoid recursion keeping track of the items - // in the processed dictionary - processed.put(obj); - while (queue.length > 0) { - var i = queue.shift(); - var outlineDict = xref.fetchIfRef(i.obj); - if (outlineDict === null) - continue; - if (!outlineDict.has('Title')) - error('Invalid outline item'); - var dest = outlineDict.get('A'); - if (dest) - dest = dest.get('D'); - else if (outlineDict.has('Dest')) { - dest = outlineDict.getRaw('Dest'); - if (isName(dest)) - dest = dest.name; - } - var title = outlineDict.get('Title'); - var outlineItem = { - dest: dest, - title: stringToPDFString(title), - color: outlineDict.get('C') || [0, 0, 0], - count: outlineDict.get('Count'), - bold: !!(outlineDict.get('F') & 2), - italic: !!(outlineDict.get('F') & 1), - items: [] - }; - i.parent.items.push(outlineItem); - obj = outlineDict.getRaw('First'); - if (isRef(obj) && !processed.has(obj)) { - queue.push({obj: obj, parent: outlineItem}); - processed.put(obj); - } - obj = outlineDict.getRaw('Next'); - if (isRef(obj) && !processed.has(obj)) { - queue.push({obj: obj, parent: i.parent}); - processed.put(obj); - } - } - } - } - obj = root.items.length > 0 ? root.items : null; - return shadow(this, 'documentOutline', obj); - }, - get numPages() { - var obj = this.toplevelPagesDict.get('Count'); - assertWellFormed( - isInt(obj), - 'page count in top level pages object is not an integer' - ); - // shadow the prototype getter - return shadow(this, 'num', obj); - }, - traverseKids: function Catalog_traverseKids(pagesDict) { - var pageCache = this.pageCache; - var kids = pagesDict.get('Kids'); - assertWellFormed(isArray(kids), - 'page dictionary kids object is not an array'); - for (var i = 0, ii = kids.length; i < ii; ++i) { - var kid = kids[i]; - assertWellFormed(isRef(kid), - 'page dictionary kid is not a reference'); - var obj = this.xref.fetch(kid); - if (isDict(obj, 'Page') || (isDict(obj) && !obj.has('Kids'))) { - pageCache.push(new Page(this.xref, pageCache.length, obj, kid)); - } else { // must be a child page dictionary - assertWellFormed( - isDict(obj), - 'page dictionary kid reference points to wrong type of object' - ); - this.traverseKids(obj); - } - } - }, - get destinations() { - function fetchDestination(dest) { - return isDict(dest) ? dest.get('D') : dest; - } - - var xref = this.xref; - var dests = {}, nameTreeRef, nameDictionaryRef; - var obj = this.catDict.get('Names'); - if (obj) - nameTreeRef = obj.getRaw('Dests'); - else if (this.catDict.has('Dests')) - nameDictionaryRef = this.catDict.get('Dests'); - - if (nameDictionaryRef) { - // reading simple destination dictionary - obj = nameDictionaryRef; - obj.forEach(function catalogForEach(key, value) { - if (!value) return; - dests[key] = fetchDestination(value); - }); - } - if (nameTreeRef) { - // reading name tree - var processed = new RefSet(); - processed.put(nameTreeRef); - var queue = [nameTreeRef]; - while (queue.length > 0) { - var i, n; - obj = xref.fetch(queue.shift()); - if (obj.has('Kids')) { - var kids = obj.get('Kids'); - for (i = 0, n = kids.length; i < n; i++) { - var kid = kids[i]; - if (processed.has(kid)) - error('invalid destinations'); - queue.push(kid); - processed.put(kid); - } - continue; - } - var names = obj.get('Names'); - for (i = 0, n = names.length; i < n; i += 2) { - dests[names[i]] = fetchDestination(xref.fetchIfRef(names[i + 1])); - } - } - } - return shadow(this, 'destinations', dests); - }, - getPage: function Catalog_getPage(n) { - var pageCache = this.pageCache; - if (!pageCache) { - pageCache = this.pageCache = []; - this.traverseKids(this.toplevelPagesDict); - } - return this.pageCache[n - 1]; - } - }; - - return Catalog; -})(); - -var XRef = (function XRefClosure() { - function XRef(stream, startXRef, mainXRefEntriesOffset) { - this.stream = stream; - this.entries = []; - this.xrefstms = {}; - var trailerDict = this.readXRef(startXRef); - trailerDict.assignXref(this); - this.trailer = trailerDict; - // prepare the XRef cache - this.cache = []; - - var encrypt = trailerDict.get('Encrypt'); - if (encrypt) { - var fileId = trailerDict.get('ID'); - this.encrypt = new CipherTransformFactory(encrypt, - fileId[0] /*, password */); - } - - // get the root dictionary (catalog) object - if (!(this.root = trailerDict.get('Root'))) - error('Invalid root reference'); - } - - XRef.prototype = { - readXRefTable: function XRef_readXRefTable(parser) { - // Example of cross-reference table: - // xref - // 0 1 <-- subsection header (first obj #, obj count) - // 0000000000 65535 f <-- actual object (offset, generation #, f/n) - // 23 2 <-- subsection header ... and so on ... - // 0000025518 00002 n - // 0000025635 00000 n - // trailer - // ... - - // Outer loop is over subsection headers - var obj; - while (!isCmd(obj = parser.getObj(), 'trailer')) { - var first = obj, - count = parser.getObj(); - - if (!isInt(first) || !isInt(count)) - error('Invalid XRef table: wrong types in subsection header'); - - // Inner loop is over objects themselves - for (var i = 0; i < count; i++) { - var entry = {}; - entry.offset = parser.getObj(); - entry.gen = parser.getObj(); - var type = parser.getObj(); - - if (isCmd(type, 'f')) - entry.free = true; - else if (isCmd(type, 'n')) - entry.uncompressed = true; - - // Validate entry obj - if (!isInt(entry.offset) || !isInt(entry.gen) || - !(entry.free || entry.uncompressed)) { - error('Invalid entry in XRef subsection: ' + first + ', ' + count); - } - - if (!this.entries[i + first]) - this.entries[i + first] = entry; - } - } - - // Sanity check: as per spec, first object must be free - if (this.entries[0] && !this.entries[0].free) - error('Invalid XRef table: unexpected first object'); - - // Sanity check - if (!isCmd(obj, 'trailer')) - error('Invalid XRef table: could not find trailer dictionary'); - - // Read trailer dictionary, e.g. - // trailer - // << /Size 22 - // /Root 20R - // /Info 10R - // /ID [ <81b14aafa313db63dbd6f981e49f94f4> ] - // >> - // The parser goes through the entire stream << ... >> and provides - // a getter interface for the key-value table - var dict = parser.getObj(); - if (!isDict(dict)) - error('Invalid XRef table: could not parse trailer dictionary'); - - return dict; - }, - readXRefStream: function XRef_readXRefStream(stream) { - var streamParameters = stream.parameters; - var byteWidths = streamParameters.get('W'); - var range = streamParameters.get('Index'); - if (!range) - range = [0, streamParameters.get('Size')]; - var i, j; - while (range.length > 0) { - var first = range[0], n = range[1]; - if (!isInt(first) || !isInt(n)) - error('Invalid XRef range fields: ' + first + ', ' + n); - var typeFieldWidth = byteWidths[0]; - var offsetFieldWidth = byteWidths[1]; - var generationFieldWidth = byteWidths[2]; - if (!isInt(typeFieldWidth) || !isInt(offsetFieldWidth) || - !isInt(generationFieldWidth)) { - error('Invalid XRef entry fields length: ' + first + ', ' + n); - } - for (i = 0; i < n; ++i) { - var type = 0, offset = 0, generation = 0; - for (j = 0; j < typeFieldWidth; ++j) - type = (type << 8) | stream.getByte(); - // if type field is absent, its default value = 1 - if (typeFieldWidth == 0) - type = 1; - for (j = 0; j < offsetFieldWidth; ++j) - offset = (offset << 8) | stream.getByte(); - for (j = 0; j < generationFieldWidth; ++j) - generation = (generation << 8) | stream.getByte(); - var entry = {}; - entry.offset = offset; - entry.gen = generation; - switch (type) { - case 0: - entry.free = true; - break; - case 1: - entry.uncompressed = true; - break; - case 2: - break; - default: - error('Invalid XRef entry type: ' + type); - } - if (!this.entries[first + i]) - this.entries[first + i] = entry; - } - range.splice(0, 2); - } - return streamParameters; - }, - indexObjects: function XRef_indexObjects() { - // Simple scan through the PDF content to find objects, - // trailers and XRef streams. - function readToken(data, offset) { - var token = '', ch = data[offset]; - while (ch !== 13 && ch !== 10) { - if (++offset >= data.length) - break; - token += String.fromCharCode(ch); - ch = data[offset]; - } - return token; - } - function skipUntil(data, offset, what) { - var length = what.length, dataLength = data.length; - var skipped = 0; - // finding byte sequence - while (offset < dataLength) { - var i = 0; - while (i < length && data[offset + i] == what[i]) - ++i; - if (i >= length) - break; // sequence found - - offset++; - skipped++; - } - return skipped; - } - var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]); - var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, - 101, 102]); - var endobjBytes = new Uint8Array([101, 110, 100, 111, 98, 106]); - var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]); - - var stream = this.stream; - stream.pos = 0; - var buffer = stream.getBytes(); - var position = stream.start, length = buffer.length; - var trailers = [], xrefStms = []; - var state = 0; - var currentToken; - while (position < length) { - var ch = buffer[position]; - if (ch === 32 || ch === 9 || ch === 13 || ch === 10) { - ++position; - continue; - } - if (ch === 37) { // %-comment - do { - ++position; - ch = buffer[position]; - } while (ch !== 13 && ch !== 10); - continue; - } - var token = readToken(buffer, position); - var m; - if (token === 'xref') { - position += skipUntil(buffer, position, trailerBytes); - trailers.push(position); - position += skipUntil(buffer, position, startxrefBytes); - } else if ((m = /^(\d+)\s+(\d+)\s+obj\b/.exec(token))) { - this.entries[m[1]] = { - offset: position, - gen: m[2] | 0, - uncompressed: true - }; - - var contentLength = skipUntil(buffer, position, endobjBytes) + 7; - var content = buffer.subarray(position, position + contentLength); - - // checking XRef stream suspect - // (it shall have '/XRef' and next char is not a letter) - var xrefTagOffset = skipUntil(content, 0, xrefBytes); - if (xrefTagOffset < contentLength && - content[xrefTagOffset + 5] < 64) { - xrefStms.push(position); - this.xrefstms[position] = 1; // don't read it recursively - } - - position += contentLength; - } else - position += token.length + 1; - } - // reading XRef streams - for (var i = 0, ii = xrefStms.length; i < ii; ++i) { - this.readXRef(xrefStms[i], true); - } - // finding main trailer - var dict; - for (var i = 0, ii = trailers.length; i < ii; ++i) { - stream.pos = trailers[i]; - var parser = new Parser(new Lexer(stream), true, null); - var obj = parser.getObj(); - if (!isCmd(obj, 'trailer')) - continue; - // read the trailer dictionary - if (!isDict(dict = parser.getObj())) - continue; - // taking the first one with 'ID' - if (dict.has('ID')) - return dict; - } - // no tailer with 'ID', taking last one (if exists) - if (dict) - return dict; - // nothing helps - error('Invalid PDF structure'); - }, - readXRef: function XRef_readXRef(startXRef, recoveryMode) { - var stream = this.stream; - stream.pos = startXRef; - - try { - var parser = new Parser(new Lexer(stream), true, null); - var obj = parser.getObj(); - var dict; - - // Get dictionary - if (isCmd(obj, 'xref')) { - // Parse end-of-file XRef - dict = this.readXRefTable(parser); - - // Recursively get other XRefs 'XRefStm', if any - obj = dict.get('XRefStm'); - if (isInt(obj)) { - var pos = obj; - // ignore previously loaded xref streams - // (possible infinite recursion) - if (!(pos in this.xrefstms)) { - this.xrefstms[pos] = 1; - this.readXRef(pos); - } - } - } else if (isInt(obj)) { - // Parse in-stream XRef - if (!isInt(parser.getObj()) || - !isCmd(parser.getObj(), 'obj') || - !isStream(obj = parser.getObj())) { - error('Invalid XRef stream'); - } - dict = this.readXRefStream(obj); - if (!dict) - error('Failed to read XRef stream'); - } - - // Recursively get previous dictionary, if any - obj = dict.get('Prev'); - if (isInt(obj)) - this.readXRef(obj, recoveryMode); - else if (isRef(obj)) { - // The spec says Prev must not be a reference, i.e. "/Prev NNN" - // This is a fallback for non-compliant PDFs, i.e. "/Prev NNN 0 R" - this.readXRef(obj.num, recoveryMode); - } - - return dict; - } catch (e) { - log('(while reading XRef): ' + e); - } - - if (recoveryMode) - return; - - warn('Indexing all PDF objects'); - return this.indexObjects(); - }, - getEntry: function XRef_getEntry(i) { - var e = this.entries[i]; - if (e === null) - return null; - return e.free ? null : e; // returns null is the entry is free - }, - fetchIfRef: function XRef_fetchIfRef(obj) { - if (!isRef(obj)) - return obj; - return this.fetch(obj); - }, - fetch: function XRef_fetch(ref, suppressEncryption) { - assertWellFormed(isRef(ref), 'ref object is not a reference'); - var num = ref.num; - if (num in this.cache) - return this.cache[num]; - - var e = this.getEntry(num); - - // the referenced entry can be free - if (e === null) - return (this.cache[num] = e); - - var gen = ref.gen; - var stream, parser; - if (e.uncompressed) { - if (e.gen != gen) - error('inconsistent generation in XRef'); - stream = this.stream.makeSubStream(e.offset); - parser = new Parser(new Lexer(stream), true, this); - var obj1 = parser.getObj(); - var obj2 = parser.getObj(); - var obj3 = parser.getObj(); - if (!isInt(obj1) || obj1 != num || - !isInt(obj2) || obj2 != gen || - !isCmd(obj3)) { - error('bad XRef entry'); - } - if (!isCmd(obj3, 'obj')) { - // some bad pdfs use "obj1234" and really mean 1234 - if (obj3.cmd.indexOf('obj') == 0) { - num = parseInt(obj3.cmd.substring(3), 10); - if (!isNaN(num)) - return num; - } - error('bad XRef entry'); - } - if (this.encrypt && !suppressEncryption) { - try { - e = parser.getObj(this.encrypt.createCipherTransform(num, gen)); - } catch (ex) { - // almost all streams must be encrypted, but sometimes - // they are not probably due to some broken generators - // re-trying without encryption - return this.fetch(ref, true); - } - } else { - e = parser.getObj(); - } - // Don't cache streams since they are mutable (except images). - if (!isStream(e) || e instanceof JpegStream) - this.cache[num] = e; - return e; - } - - // compressed entry - stream = this.fetch(new Ref(e.offset, 0)); - if (!isStream(stream)) - error('bad ObjStm stream'); - var first = stream.parameters.get('First'); - var n = stream.parameters.get('N'); - if (!isInt(first) || !isInt(n)) { - error('invalid first and n parameters for ObjStm stream'); - } - parser = new Parser(new Lexer(stream), false, this); - var i, entries = [], nums = []; - // read the object numbers to populate cache - for (i = 0; i < n; ++i) { - num = parser.getObj(); - if (!isInt(num)) { - error('invalid object number in the ObjStm stream: ' + num); - } - nums.push(num); - var offset = parser.getObj(); - if (!isInt(offset)) { - error('invalid object offset in the ObjStm stream: ' + offset); - } - } - // read stream objects for cache - for (i = 0; i < n; ++i) { - entries.push(parser.getObj()); - this.cache[nums[i]] = entries[i]; - } - e = entries[e.gen]; - if (!e) { - error('bad XRef entry for compressed object'); - } - return e; - }, - getCatalogObj: function XRef_getCatalogObj() { - return this.root; - } - }; - - return XRef; -})(); - -/** - * A PDF document and page is built of many objects. E.g. there are objects - * for fonts, images, rendering code and such. These objects might get processed - * inside of a worker. The `PDFObjects` implements some basic functions to - * manage these objects. - */ -var PDFObjects = (function PDFObjectsClosure() { - function PDFObjects() { - this.objs = {}; - } - - PDFObjects.prototype = { - objs: null, - - /** - * Internal function. - * Ensures there is an object defined for `objId`. Stores `data` on the - * object *if* it is created. - */ - ensureObj: function PDFObjects_ensureObj(objId, data) { - if (this.objs[objId]) - return this.objs[objId]; - return this.objs[objId] = new Promise(objId, data); - }, - - /** - * If called *without* callback, this returns the data of `objId` but the - * object needs to be resolved. If it isn't, this function throws. - * - * If called *with* a callback, the callback is called with the data of the - * object once the object is resolved. That means, if you call this - * function and the object is already resolved, the callback gets called - * right away. - */ - get: function PDFObjects_get(objId, callback) { - // If there is a callback, then the get can be async and the object is - // not required to be resolved right now - if (callback) { - this.ensureObj(objId).then(callback); - return null; - } - - // If there isn't a callback, the user expects to get the resolved data - // directly. - var obj = this.objs[objId]; - - // If there isn't an object yet or the object isn't resolved, then the - // data isn't ready yet! - if (!obj || !obj.isResolved) - error('Requesting object that isn\'t resolved yet ' + objId); - - return obj.data; - }, - - /** - * Resolves the object `objId` with optional `data`. - */ - resolve: function PDFObjects_resolve(objId, data) { - var objs = this.objs; - - // In case there is a promise already on this object, just resolve it. - if (objs[objId]) { - objs[objId].resolve(data); - } else { - this.ensureObj(objId, data); - } - }, - - onData: function PDFObjects_onData(objId, callback) { - this.ensureObj(objId).onData(callback); - }, - - isResolved: function PDFObjects_isResolved(objId) { - var objs = this.objs; - if (!objs[objId]) { - return false; - } else { - return objs[objId].isResolved; - } - }, - - hasData: function PDFObjects_hasData(objId) { - var objs = this.objs; - if (!objs[objId]) { - return false; - } else { - return objs[objId].hasData; - } - }, - - /** - * Sets the data of an object but *doesn't* resolve it. - */ - setData: function PDFObjects_setData(objId, data) { - // Watchout! If you call `this.ensureObj(objId, data)` you're going to - // create a *resolved* promise which shouldn't be the case! - this.ensureObj(objId).data = data; - } - }; - return PDFObjects; -})(); - - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -'use strict'; - -var PDFFunction = (function PDFFunctionClosure() { - var CONSTRUCT_SAMPLED = 0; - var CONSTRUCT_INTERPOLATED = 2; - var CONSTRUCT_STICHED = 3; - var CONSTRUCT_POSTSCRIPT = 4; - - return { - getSampleArray: function PDFFunction_getSampleArray(size, outputSize, bps, - str) { - var length = 1; - for (var i = 0, ii = size.length; i < ii; i++) - length *= size[i]; - length *= outputSize; - - var array = []; - var codeSize = 0; - var codeBuf = 0; - // 32 is a valid bps so shifting won't work - var sampleMul = 1.0 / (Math.pow(2.0, bps) - 1); - - var strBytes = str.getBytes((length * bps + 7) / 8); - var strIdx = 0; - for (var i = 0; i < length; i++) { - while (codeSize < bps) { - codeBuf <<= 8; - codeBuf |= strBytes[strIdx++]; - codeSize += 8; - } - codeSize -= bps; - array.push((codeBuf >> codeSize) * sampleMul); - codeBuf &= (1 << codeSize) - 1; - } - return array; - }, - - getIR: function PDFFunction_getIR(xref, fn) { - var dict = fn.dict; - if (!dict) - dict = fn; - - var types = [this.constructSampled, - null, - this.constructInterpolated, - this.constructStiched, - this.constructPostScript]; - - var typeNum = dict.get('FunctionType'); - var typeFn = types[typeNum]; - if (!typeFn) - error('Unknown type of function'); - - return typeFn.call(this, fn, dict, xref); - }, - - fromIR: function PDFFunction_fromIR(IR) { - var type = IR[0]; - switch (type) { - case CONSTRUCT_SAMPLED: - return this.constructSampledFromIR(IR); - case CONSTRUCT_INTERPOLATED: - return this.constructInterpolatedFromIR(IR); - case CONSTRUCT_STICHED: - return this.constructStichedFromIR(IR); - case CONSTRUCT_POSTSCRIPT: - default: - return this.constructPostScriptFromIR(IR); - } - }, - - parse: function PDFFunction_parse(xref, fn) { - var IR = this.getIR(xref, fn); - return this.fromIR(IR); - }, - - constructSampled: function PDFFunction_constructSampled(str, dict) { - function toMultiArray(arr) { - var inputLength = arr.length; - var outputLength = arr.length / 2; - var out = []; - var index = 0; - for (var i = 0; i < inputLength; i += 2) { - out[index] = [arr[i], arr[i + 1]]; - ++index; - } - return out; - } - var domain = dict.get('Domain'); - var range = dict.get('Range'); - - if (!domain || !range) - error('No domain or range'); - - var inputSize = domain.length / 2; - var outputSize = range.length / 2; - - domain = toMultiArray(domain); - range = toMultiArray(range); - - var size = dict.get('Size'); - var bps = dict.get('BitsPerSample'); - var order = dict.get('Order'); - if (!order) - order = 1; - if (order !== 1) - error('No support for cubic spline interpolation: ' + order); - - var encode = dict.get('Encode'); - if (!encode) { - encode = []; - for (var i = 0; i < inputSize; ++i) { - encode.push(0); - encode.push(size[i] - 1); - } - } - encode = toMultiArray(encode); - - var decode = dict.get('Decode'); - if (!decode) - decode = range; - else - decode = toMultiArray(decode); - - var samples = this.getSampleArray(size, outputSize, bps, str); - - return [ - CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, - outputSize, Math.pow(2, bps) - 1, range - ]; - }, - - constructSampledFromIR: function PDFFunction_constructSampledFromIR(IR) { - // See chapter 3, page 109 of the PDF reference - function interpolate(x, xmin, xmax, ymin, ymax) { - return ymin + ((x - xmin) * ((ymax - ymin) / (xmax - xmin))); - } - - return function constructSampledFromIRResult(args) { - // See chapter 3, page 110 of the PDF reference. - var m = IR[1]; - var domain = IR[2]; - var encode = IR[3]; - var decode = IR[4]; - var samples = IR[5]; - var size = IR[6]; - var n = IR[7]; - var mask = IR[8]; - var range = IR[9]; - - if (m != args.length) - error('Incorrect number of arguments: ' + inputSize + ' != ' + - args.length); - - var x = args; - - // Building the cube vertices: its part and sample index - // http://rjwagner49.com/Mathematics/Interpolation.pdf - var cubeVertices = 1 << m; - var cubeN = new Float64Array(cubeVertices); - var cubeVertex = new Uint32Array(cubeVertices); - for (var j = 0; j < cubeVertices; j++) - cubeN[j] = 1; - - var k = n, pos = 1; - // Map x_i to y_j for 0 <= i < m using the sampled function. - for (var i = 0; i < m; ++i) { - // x_i' = min(max(x_i, Domain_2i), Domain_2i+1) - var domain_2i = domain[i][0]; - var domain_2i_1 = domain[i][1]; - var xi = Math.min(Math.max(x[i], domain_2i), domain_2i_1); - - // e_i = Interpolate(x_i', Domain_2i, Domain_2i+1, - // Encode_2i, Encode_2i+1) - var e = interpolate(xi, domain_2i, domain_2i_1, - encode[i][0], encode[i][1]); - - // e_i' = min(max(e_i, 0), Size_i - 1) - var size_i = size[i]; - e = Math.min(Math.max(e, 0), size_i - 1); - - // Adjusting the cube: N and vertex sample index - var e0 = e < size_i - 1 ? Math.floor(e) : e - 1; // e1 = e0 + 1; - var n0 = e0 + 1 - e; // (e1 - e) / (e1 - e0); - var n1 = e - e0; // (e - e0) / (e1 - e0); - var offset0 = e0 * k; - var offset1 = offset0 + k; // e1 * k - for (var j = 0; j < cubeVertices; j++) { - if (j & pos) { - cubeN[j] *= n1; - cubeVertex[j] += offset1; - } else { - cubeN[j] *= n0; - cubeVertex[j] += offset0; - } - } - - k *= size_i; - pos <<= 1; - } - - var y = new Float64Array(n); - for (var j = 0; j < n; ++j) { - // Sum all cube vertices' samples portions - var rj = 0; - for (var i = 0; i < cubeVertices; i++) - rj += samples[cubeVertex[i] + j] * cubeN[i]; - - // r_j' = Interpolate(r_j, 0, 2^BitsPerSample - 1, - // Decode_2j, Decode_2j+1) - rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]); - - // y_j = min(max(r_j, range_2j), range_2j+1) - y[j] = Math.min(Math.max(rj, range[j][0]), range[j][1]); - } - - return y; - } - }, - - constructInterpolated: function PDFFunction_constructInterpolated(str, - dict) { - var c0 = dict.get('C0') || [0]; - var c1 = dict.get('C1') || [1]; - var n = dict.get('N'); - - if (!isArray(c0) || !isArray(c1)) - error('Illegal dictionary for interpolated function'); - - var length = c0.length; - var diff = []; - for (var i = 0; i < length; ++i) - diff.push(c1[i] - c0[i]); - - return [CONSTRUCT_INTERPOLATED, c0, diff, n]; - }, - - constructInterpolatedFromIR: - function PDFFunction_constructInterpolatedFromIR(IR) { - var c0 = IR[1]; - var diff = IR[2]; - var n = IR[3]; - - var length = diff.length; - - return function constructInterpolatedFromIRResult(args) { - var x = n == 1 ? args[0] : Math.pow(args[0], n); - - var out = []; - for (var j = 0; j < length; ++j) - out.push(c0[j] + (x * diff[j])); - - return out; - - } - }, - - constructStiched: function PDFFunction_constructStiched(fn, dict, xref) { - var domain = dict.get('Domain'); - - if (!domain) - error('No domain'); - - var inputSize = domain.length / 2; - if (inputSize != 1) - error('Bad domain for stiched function'); - - var fnRefs = dict.get('Functions'); - var fns = []; - for (var i = 0, ii = fnRefs.length; i < ii; ++i) - fns.push(PDFFunction.getIR(xref, xref.fetchIfRef(fnRefs[i]))); - - var bounds = dict.get('Bounds'); - var encode = dict.get('Encode'); - - return [CONSTRUCT_STICHED, domain, bounds, encode, fns]; - }, - - constructStichedFromIR: function PDFFunction_constructStichedFromIR(IR) { - var domain = IR[1]; - var bounds = IR[2]; - var encode = IR[3]; - var fnsIR = IR[4]; - var fns = []; - - for (var i = 0, ii = fnsIR.length; i < ii; i++) { - fns.push(PDFFunction.fromIR(fnsIR[i])); - } - - return function constructStichedFromIRResult(args) { - var clip = function constructStichedFromIRClip(v, min, max) { - if (v > max) - v = max; - else if (v < min) - v = min; - return v; - }; - - // clip to domain - var v = clip(args[0], domain[0], domain[1]); - // calulate which bound the value is in - for (var i = 0, ii = bounds.length; i < ii; ++i) { - if (v < bounds[i]) - break; - } - - // encode value into domain of function - var dmin = domain[0]; - if (i > 0) - dmin = bounds[i - 1]; - var dmax = domain[1]; - if (i < bounds.length) - dmax = bounds[i]; - - var rmin = encode[2 * i]; - var rmax = encode[2 * i + 1]; - - var v2 = rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin); - - // call the appropropriate function - return fns[i]([v2]); - }; - }, - - constructPostScript: function PDFFunction_constructPostScript(fn, dict, - xref) { - var domain = dict.get('Domain'); - var range = dict.get('Range'); - - if (!domain) - error('No domain.'); - - if (!range) - error('No range.'); - - var lexer = new PostScriptLexer(fn); - var parser = new PostScriptParser(lexer); - var code = parser.parse(); - - return [CONSTRUCT_POSTSCRIPT, domain, range, code]; - }, - - constructPostScriptFromIR: function PDFFunction_constructPostScriptFromIR( - IR) { - var domain = IR[1]; - var range = IR[2]; - var code = IR[3]; - var numOutputs = range.length / 2; - var evaluator = new PostScriptEvaluator(code); - // Cache the values for a big speed up, the cache size is limited though - // since the number of possible values can be huge from a PS function. - var cache = new FunctionCache(); - return function constructPostScriptFromIRResult(args) { - var initialStack = []; - for (var i = 0, ii = (domain.length / 2); i < ii; ++i) { - initialStack.push(args[i]); - } - - var key = initialStack.join('_'); - if (cache.has(key)) - return cache.get(key); - - var stack = evaluator.execute(initialStack); - var transformed = []; - for (i = numOutputs - 1; i >= 0; --i) { - var out = stack.pop(); - var rangeIndex = 2 * i; - if (out < range[rangeIndex]) - out = range[rangeIndex]; - else if (out > range[rangeIndex + 1]) - out = range[rangeIndex + 1]; - transformed[i] = out; - } - cache.set(key, transformed); - return transformed; - }; - } - }; -})(); - -var FunctionCache = (function FunctionCacheClosure() { - // Of 10 PDF's with type4 functions the maxium number of distinct values seen - // was 256. This still may need some tweaking in the future though. - var MAX_CACHE_SIZE = 1024; - function FunctionCache() { - this.cache = {}; - this.total = 0; - } - FunctionCache.prototype = { - has: function FunctionCache_has(key) { - return key in this.cache; - }, - get: function FunctionCache_get(key) { - return this.cache[key]; - }, - set: function FunctionCache_set(key, value) { - if (this.total < MAX_CACHE_SIZE) { - this.cache[key] = value; - this.total++; - } - } - }; - return FunctionCache; -})(); - -var PostScriptStack = (function PostScriptStackClosure() { - var MAX_STACK_SIZE = 100; - function PostScriptStack(initialStack) { - this.stack = initialStack || []; - } - - PostScriptStack.prototype = { - push: function PostScriptStack_push(value) { - if (this.stack.length >= MAX_STACK_SIZE) - error('PostScript function stack overflow.'); - this.stack.push(value); - }, - pop: function PostScriptStack_pop() { - if (this.stack.length <= 0) - error('PostScript function stack underflow.'); - return this.stack.pop(); - }, - copy: function PostScriptStack_copy(n) { - if (this.stack.length + n >= MAX_STACK_SIZE) - error('PostScript function stack overflow.'); - var stack = this.stack; - for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) - stack.push(stack[i]); - }, - index: function PostScriptStack_index(n) { - this.push(this.stack[this.stack.length - n - 1]); - }, - // rotate the last n stack elements p times - roll: function PostScriptStack_roll(n, p) { - var stack = this.stack; - var l = stack.length - n; - var r = stack.length - 1, c = l + (p - Math.floor(p / n) * n), i, j, t; - for (i = l, j = r; i < j; i++, j--) { - t = stack[i]; stack[i] = stack[j]; stack[j] = t; - } - for (i = l, j = c - 1; i < j; i++, j--) { - t = stack[i]; stack[i] = stack[j]; stack[j] = t; - } - for (i = c, j = r; i < j; i++, j--) { - t = stack[i]; stack[i] = stack[j]; stack[j] = t; - } - } - }; - return PostScriptStack; -})(); -var PostScriptEvaluator = (function PostScriptEvaluatorClosure() { - function PostScriptEvaluator(operators, operands) { - this.operators = operators; - this.operands = operands; - } - PostScriptEvaluator.prototype = { - execute: function PostScriptEvaluator_execute(initialStack) { - var stack = new PostScriptStack(initialStack); - var counter = 0; - var operators = this.operators; - var length = operators.length; - var operator, a, b; - while (counter < length) { - operator = operators[counter++]; - if (typeof operator == 'number') { - // Operator is really an operand and should be pushed to the stack. - stack.push(operator); - continue; - } - switch (operator) { - // non standard ps operators - case 'jz': // jump if false - b = stack.pop(); - a = stack.pop(); - if (!a) - counter = b; - break; - case 'j': // jump - a = stack.pop(); - counter = a; - break; - - // all ps operators in alphabetical order (excluding if/ifelse) - case 'abs': - a = stack.pop(); - stack.push(Math.abs(a)); - break; - case 'add': - b = stack.pop(); - a = stack.pop(); - stack.push(a + b); - break; - case 'and': - b = stack.pop(); - a = stack.pop(); - if (isBool(a) && isBool(b)) - stack.push(a && b); - else - stack.push(a & b); - break; - case 'atan': - a = stack.pop(); - stack.push(Math.atan(a)); - break; - case 'bitshift': - b = stack.pop(); - a = stack.pop(); - if (a > 0) - stack.push(a << b); - else - stack.push(a >> b); - break; - case 'ceiling': - a = stack.pop(); - stack.push(Math.ceil(a)); - break; - case 'copy': - a = stack.pop(); - stack.copy(a); - break; - case 'cos': - a = stack.pop(); - stack.push(Math.cos(a)); - break; - case 'cvi': - a = stack.pop() | 0; - stack.push(a); - break; - case 'cvr': - // noop - break; - case 'div': - b = stack.pop(); - a = stack.pop(); - stack.push(a / b); - break; - case 'dup': - stack.copy(1); - break; - case 'eq': - b = stack.pop(); - a = stack.pop(); - stack.push(a == b); - break; - case 'exch': - stack.roll(2, 1); - break; - case 'exp': - b = stack.pop(); - a = stack.pop(); - stack.push(Math.pow(a, b)); - break; - case 'false': - stack.push(false); - break; - case 'floor': - a = stack.pop(); - stack.push(Math.floor(a)); - break; - case 'ge': - b = stack.pop(); - a = stack.pop(); - stack.push(a >= b); - break; - case 'gt': - b = stack.pop(); - a = stack.pop(); - stack.push(a > b); - break; - case 'idiv': - b = stack.pop(); - a = stack.pop(); - stack.push((a / b) | 0); - break; - case 'index': - a = stack.pop(); - stack.index(a); - break; - case 'le': - b = stack.pop(); - a = stack.pop(); - stack.push(a <= b); - break; - case 'ln': - a = stack.pop(); - stack.push(Math.log(a)); - break; - case 'log': - a = stack.pop(); - stack.push(Math.log(a) / Math.LN10); - break; - case 'lt': - b = stack.pop(); - a = stack.pop(); - stack.push(a < b); - break; - case 'mod': - b = stack.pop(); - a = stack.pop(); - stack.push(a % b); - break; - case 'mul': - b = stack.pop(); - a = stack.pop(); - stack.push(a * b); - break; - case 'ne': - b = stack.pop(); - a = stack.pop(); - stack.push(a != b); - break; - case 'neg': - a = stack.pop(); - stack.push(-b); - break; - case 'not': - a = stack.pop(); - if (isBool(a) && isBool(b)) - stack.push(a && b); - else - stack.push(a & b); - break; - case 'or': - b = stack.pop(); - a = stack.pop(); - if (isBool(a) && isBool(b)) - stack.push(a || b); - else - stack.push(a | b); - break; - case 'pop': - stack.pop(); - break; - case 'roll': - b = stack.pop(); - a = stack.pop(); - stack.roll(a, b); - break; - case 'round': - a = stack.pop(); - stack.push(Math.round(a)); - break; - case 'sin': - a = stack.pop(); - stack.push(Math.sin(a)); - break; - case 'sqrt': - a = stack.pop(); - stack.push(Math.sqrt(a)); - break; - case 'sub': - b = stack.pop(); - a = stack.pop(); - stack.push(a - b); - break; - case 'true': - stack.push(true); - break; - case 'truncate': - a = stack.pop(); - a = a < 0 ? Math.ceil(a) : Math.floor(a); - stack.push(a); - break; - case 'xor': - b = stack.pop(); - a = stack.pop(); - if (isBool(a) && isBool(b)) - stack.push(a != b); - else - stack.push(a ^ b); - break; - default: - error('Unknown operator ' + operator); - break; - } - } - return stack.stack; - } - }; - return PostScriptEvaluator; -})(); - -var PostScriptParser = (function PostScriptParserClosure() { - function PostScriptParser(lexer) { - this.lexer = lexer; - this.operators = []; - this.token; - this.prev; - } - PostScriptParser.prototype = { - nextToken: function PostScriptParser_nextToken() { - this.prev = this.token; - this.token = this.lexer.getToken(); - }, - accept: function PostScriptParser_accept(type) { - if (this.token.type == type) { - this.nextToken(); - return true; - } - return false; - }, - expect: function PostScriptParser_expect(type) { - if (this.accept(type)) - return true; - error('Unexpected symbol: found ' + this.token.type + ' expected ' + - type + '.'); - }, - parse: function PostScriptParser_parse() { - this.nextToken(); - this.expect(PostScriptTokenTypes.LBRACE); - this.parseBlock(); - this.expect(PostScriptTokenTypes.RBRACE); - return this.operators; - }, - parseBlock: function PostScriptParser_parseBlock() { - while (true) { - if (this.accept(PostScriptTokenTypes.NUMBER)) { - this.operators.push(this.prev.value); - } else if (this.accept(PostScriptTokenTypes.OPERATOR)) { - this.operators.push(this.prev.value); - } else if (this.accept(PostScriptTokenTypes.LBRACE)) { - this.parseCondition(); - } else { - return; - } - } - }, - parseCondition: function PostScriptParser_parseCondition() { - // Add two place holders that will be updated later - var conditionLocation = this.operators.length; - this.operators.push(null, null); - - this.parseBlock(); - this.expect(PostScriptTokenTypes.RBRACE); - if (this.accept(PostScriptTokenTypes.IF)) { - // The true block is right after the 'if' so it just falls through on - // true else it jumps and skips the true block. - this.operators[conditionLocation] = this.operators.length; - this.operators[conditionLocation + 1] = 'jz'; - } else if (this.accept(PostScriptTokenTypes.LBRACE)) { - var jumpLocation = this.operators.length; - this.operators.push(null, null); - var endOfTrue = this.operators.length; - this.parseBlock(); - this.expect(PostScriptTokenTypes.RBRACE); - this.expect(PostScriptTokenTypes.IFELSE); - // The jump is added at the end of the true block to skip the false - // block. - this.operators[jumpLocation] = this.operators.length; - this.operators[jumpLocation + 1] = 'j'; - - this.operators[conditionLocation] = endOfTrue; - this.operators[conditionLocation + 1] = 'jz'; - } else { - error('PS Function: error parsing conditional.'); - } - } - }; - return PostScriptParser; -})(); - -var PostScriptTokenTypes = { - LBRACE: 0, - RBRACE: 1, - NUMBER: 2, - OPERATOR: 3, - IF: 4, - IFELSE: 5 -}; - -var PostScriptToken = (function PostScriptTokenClosure() { - function PostScriptToken(type, value) { - this.type = type; - this.value = value; - } - - var opCache = {}; - - PostScriptToken.getOperator = function PostScriptToken_getOperator(op) { - var opValue = opCache[op]; - if (opValue) - return opValue; - - return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op); - }; - - PostScriptToken.LBRACE = new PostScriptToken(PostScriptTokenTypes.LBRACE, - '{'); - PostScriptToken.RBRACE = new PostScriptToken(PostScriptTokenTypes.RBRACE, - '}'); - PostScriptToken.IF = new PostScriptToken(PostScriptTokenTypes.IF, 'IF'); - PostScriptToken.IFELSE = new PostScriptToken(PostScriptTokenTypes.IFELSE, - 'IFELSE'); - return PostScriptToken; -})(); - -var PostScriptLexer = (function PostScriptLexerClosure() { - function PostScriptLexer(stream) { - this.stream = stream; - } - PostScriptLexer.prototype = { - getToken: function PostScriptLexer_getToken() { - var s = ''; - var ch; - var comment = false; - var stream = this.stream; - - // skip comments - while (true) { - if (!(ch = stream.getChar())) - return EOF; - - if (comment) { - if (ch == '\x0a' || ch == '\x0d') - comment = false; - } else if (ch == '%') { - comment = true; - } else if (!Lexer.isSpace(ch)) { - break; - } - } - switch (ch) { - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - case '+': case '-': case '.': - return new PostScriptToken(PostScriptTokenTypes.NUMBER, - this.getNumber(ch)); - case '{': - return PostScriptToken.LBRACE; - case '}': - return PostScriptToken.RBRACE; - } - // operator - var str = ch.toLowerCase(); - while (true) { - ch = stream.lookChar(); - if (ch === null) - break; - ch = ch.toLowerCase(); - if (ch >= 'a' && ch <= 'z') - str += ch; - else - break; - stream.skip(); - } - switch (str) { - case 'if': - return PostScriptToken.IF; - case 'ifelse': - return PostScriptToken.IFELSE; - default: - return PostScriptToken.getOperator(str); - } - }, - getNumber: function PostScriptLexer_getNumber(ch) { - var str = ch; - var stream = this.stream; - while (true) { - ch = stream.lookChar(); - if ((ch >= '0' && ch <= '9') || ch == '-' || ch == '.') - str += ch; - else - break; - stream.skip(); - } - var value = parseFloat(str); - if (isNaN(value)) - error('Invalid floating point number: ' + value); - return value; - } - }; - return PostScriptLexer; -})(); - - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -'use strict'; - -var ISOAdobeCharset = [ - '.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', - 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', - 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', - 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', - 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', - 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', - 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', - 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', - 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', - 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', - 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', - 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', - 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', - 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', - 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', - 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', - 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', - 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', - 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', - 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', - 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', - 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', - 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', - 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', - 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', - 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', - 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', - 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', - 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', - 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', - 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', - 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', - 'ugrave', 'yacute', 'ydieresis', 'zcaron' -]; - -var ExpertCharset = [ - '.notdef', 'space', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', - 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', - 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', - 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', - 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', - 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', - 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', - 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', - 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', - 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', - 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', - 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', - 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', - 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', - 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', - 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', - 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', - 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', - 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', - 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', - 'Cedillasmall', 'onequarter', 'onehalf', 'threequarters', - 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', - 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', - 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', - 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', - 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', - 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', - 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', - 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', - 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', - 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', - 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', - 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', - 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', - 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', - 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', - 'Ydieresissmall' -]; - -var ExpertSubsetCharset = [ - '.notdef', 'space', 'dollaroldstyle', 'dollarsuperior', - 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', - 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', - 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', - 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', - 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', - 'threequartersemdash', 'periodsuperior', 'asuperior', 'bsuperior', - 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', - 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', - 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', - 'parenrightinferior', 'hyphensuperior', 'colonmonetary', 'onefitted', - 'rupiah', 'centoldstyle', 'figuredash', 'hypheninferior', 'onequarter', - 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', - 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', - 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', - 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', - 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', - 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', - 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', - 'periodinferior', 'commainferior' -]; - - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -'use strict'; - -var CIDToUnicodeMaps = { - 'Adobe-Japan1': [[32, 160], {f: 12, c: 33}, [45, 8209], {f: 46, c: 46}, 165, - {f: 2, c: 93}, [95, 818], [96, 768], {f: 27, c: 97}, 166, 125, [732, 771], - [700, 8217], 92, [699, 8216], 124, [126, 8764], {f: 3, c: 161}, 8260, 402, - 0, 164, 8220, 171, {f: 2, c: 8249}, {f: 2, c: 64257}, [8210, 8211], 0, 0, - [183, 8729], 0, 8226, 8218, 8222, 8221, 187, 0, 0, 191, {f: 2, c: 769}, - [175, 772], {f: 3, c: 774}, 778, [184, 807], 779, 808, 780, [822, 8212], - 198, 170, 321, 216, 338, 186, 230, 305, 322, 248, 339, 223, 173, 169, 172, - 174, 0, 0, {f: 2, c: 178}, 181, 185, {f: 3, c: 188}, {f: 6, c: 192}, - {f: 16, c: 199}, 0, {f: 6, c: 217}, {f: 6, c: 224}, {f: 16, c: 231}, 0, - {f: 7, c: 249}, 352, 376, 381, [773, 8254], 353, 8482, 382, 0, 8194, - {s: 91}, 65512, {s: 3}, {f: 63, c: 65377}, {s: 243}, [8195, 12288], - {f: 2, c: 12289}, 65292, 65294, 12539, {f: 2, c: 65306}, 65311, 65281, - {f: 2, c: 12443}, 180, 65344, 168, 65342, 65507, 65343, {f: 2, c: 12541}, - {f: 2, c: 12445}, 12291, 20189, {f: 3, c: 12293}, 12540, 8213, 8208, 65295, - 65340, [12316, 65374], 8214, 65372, 8230, 8229, {s: 4}, {f: 2, c: 65288}, - {f: 2, c: 12308}, 65339, 65341, 65371, 65373, {f: 10, c: 12296}, 65291, - [8722, 65293], 177, 215, 247, 65309, 8800, 65308, 65310, {f: 2, c: 8806}, - 8734, 8756, 9794, 9792, 176, {f: 2, c: 8242}, 8451, 65509, 65284, - {f: 2, c: 65504}, 65285, 65283, 65286, 65290, 65312, 167, 9734, 9733, 9675, - 9679, 9678, 9671, 9670, 9633, 9632, 9651, 9650, 9661, 9660, 8251, 12306, - 8594, {f: 2, c: 8592}, 8595, 12307, 8712, 8715, {f: 2, c: 8838}, - {f: 2, c: 8834}, 8746, 8745, {f: 2, c: 8743}, 65506, 8658, 8660, 8704, - 8707, 8736, 8869, 8978, 8706, 8711, 8801, 8786, {f: 2, c: 8810}, 8730, - 8765, 8733, 8757, {f: 2, c: 8747}, 8491, 8240, 9839, 9837, 9834, - {f: 2, c: 8224}, 182, 9711, {f: 10, c: 65296}, {f: 26, c: 65313}, - {f: 26, c: 65345}, {f: 83, c: 12353}, {f: 86, c: 12449}, {f: 17, c: 913}, - {f: 7, c: 931}, {f: 17, c: 945}, {f: 7, c: 963}, {f: 6, c: 1040}, 1025, - {f: 32, c: 1046}, 1105, {f: 26, c: 1078}, 20124, 21782, 23043, 38463, - 21696, 24859, 25384, 23030, 36898, 33909, 33564, 31312, 24746, 25569, - 28197, 26093, 33894, 33446, 39925, 26771, 22311, 26017, 25201, 23451, - 22992, 34427, 39156, 32098, 32190, 39822, 25110, 31903, 34999, 23433, - 24245, 25353, 26263, 26696, 38343, 38797, 26447, 20197, 20234, 20301, - 20381, 20553, 22258, 22839, 22996, 23041, 23561, 24799, 24847, 24944, - 26131, 26885, 28858, 30031, 30064, 31227, 32173, 32239, 32963, 33806, - [12176, 34915], 35586, 36949, 36986, 21307, 20117, 20133, 22495, 32946, - 37057, 30959, [12032, 19968], 22769, 28322, 36920, 31282, 33576, 33419, - 39983, 20801, 21360, 21693, 21729, 22240, 23035, 24341, 39154, 28139, - 32996, 34093, 38498, 38512, 38560, 38907, 21515, 21491, 23431, 28879, - [12155, 32701], 36802, [12204, 38632], 21359, 40284, 31418, 19985, 30867, - [12165, 33276], 28198, 22040, 21764, 27421, 34074, 39995, 23013, 21417, - 28006, [12128, 29916], 38287, 22082, 20113, 36939, 38642, 33615, 39180, - 21473, 21942, 23344, 24433, 26144, 26355, 26628, 27704, 27891, 27945, - 29787, 30408, 31310, 38964, 33521, 34907, 35424, 37613, 28082, 30123, - 30410, 39365, 24742, 35585, 36234, 38322, 27022, 21421, 20870, 22290, - 22576, 22852, 23476, 24310, 24616, 25513, 25588, 27839, 28436, 28814, - 28948, 29017, 29141, 29503, 32257, 33398, 33489, 34199, 36960, 37467, - 40219, 22633, 26044, 27738, 29989, 20985, 22830, 22885, 24448, 24540, - 25276, 26106, 27178, 27431, 27572, 29579, 32705, 35158, 40236, 40206, - [12009, 40644], 23713, 27798, 33659, 20740, 23627, 25014, 33222, 26742, - 29281, [12036, 20057], 20474, 21368, 24681, 28201, 31311, [12211, 38899], - 19979, 21270, 20206, 20309, 20285, 20385, 20339, 21152, 21487, 22025, - 22799, 23233, 23478, 23521, 31185, 26247, 26524, 26550, 27468, 27827, - [12117, 28779], 29634, 31117, [12146, 31166], 31292, 31623, 33457, 33499, - 33540, 33655, 33775, 33747, 34662, 35506, 22057, 36008, 36838, 36942, - 38686, 34442, 20420, 23784, 25105, [12123, 29273], 30011, 33253, 33469, - 34558, 36032, 38597, 39187, 39381, 20171, 20250, 35299, 22238, 22602, - 22730, 24315, 24555, 24618, 24724, 24674, 25040, 25106, 25296, 25913, - 39745, 26214, 26800, 28023, 28784, 30028, 30342, 32117, 33445, 34809, - 38283, 38542, [12185, 35997], 20977, 21182, 22806, 21683, 23475, 23830, - 24936, 27010, 28079, 30861, 33995, 34903, 35442, 37799, 39608, 28012, - 39336, 34521, 22435, 26623, 34510, 37390, 21123, 22151, 21508, 24275, - 25313, 25785, 26684, 26680, 27579, 29554, 30906, 31339, 35226, - [12179, 35282], 36203, 36611, 37101, 38307, 38548, [12208, 38761], 23398, - 23731, 27005, {f: 2, c: 38989}, 25499, 31520, 27179, 27263, 26806, 39949, - 28511, 21106, 21917, 24688, 25324, 27963, 28167, 28369, 33883, 35088, - 36676, 19988, 39993, 21494, 26907, 27194, 38788, 26666, 20828, 31427, - 33970, 37340, 37772, 22107, 40232, 26658, 33541, 33841, 31909, 21000, - 33477, [12129, 29926], 20094, 20355, 20896, 23506, 21002, 21208, 21223, - 24059, 21914, 22570, 23014, 23436, 23448, 23515, [12082, 24178], 24185, - 24739, 24863, 24931, 25022, 25563, 25954, 26577, 26707, 26874, 27454, - 27475, 27735, 28450, 28567, 28485, 29872, [12130, 29976], 30435, 30475, - 31487, 31649, 31777, 32233, [12152, 32566], 32752, 32925, 33382, 33694, - 35251, 35532, 36011, 36996, 37969, 38291, 38289, 38306, 38501, 38867, - 39208, 33304, 20024, 21547, 23736, 24012, 29609, 30284, 30524, 23721, - 32747, 36107, 38593, 38929, 38996, 39000, 20225, 20238, 21361, 21916, - 22120, 22522, 22855, 23305, 23492, 23696, 24076, 24190, 24524, 25582, - 26426, 26071, 26082, 26399, 26827, 26820, 27231, 24112, 27589, 27671, - 27773, 30079, 31048, 23395, 31232, 32000, 24509, 35215, 35352, 36020, - 36215, 36556, 36637, 39138, 39438, [12004, 12225, 39740], [12018, 20096], - 20605, 20736, 22931, 23452, 25135, 25216, 25836, 27450, 29344, 30097, - 31047, 32681, 34811, 35516, 35696, 25516, 33738, 38816, 21513, 21507, - 21931, 26708, 27224, 35440, 30759, 26485, [12233, 40653], 21364, 23458, - 33050, 34384, 36870, 19992, 20037, 20167, 20241, 21450, 21560, 23470, - [12088, 24339], 24613, 25937, 26429, 27714, 27762, 27875, 28792, 29699, - 31350, 31406, 31496, 32026, 31998, 32102, 26087, [12124, 29275], 21435, - 23621, 24040, 25298, 25312, 25369, 28192, 34394, 35377, 36317, 37624, - 28417, 31142, [12226, 39770], 20136, {f: 2, c: 20139}, 20379, 20384, 20689, - 20807, 31478, 20849, 20982, 21332, 21281, 21375, 21483, 21932, 22659, - 23777, 24375, 24394, 24623, 24656, 24685, 25375, 25945, 27211, 27841, - 29378, 29421, 30703, 33016, 33029, 33288, 34126, 37111, 37857, 38911, - 39255, 39514, 20208, 20957, 23597, 26241, 26989, 23616, 26354, 26997, - [12127, 29577], 26704, 31873, 20677, 21220, 22343, [12081, 24062], 37670, - [12100, 26020], 27427, 27453, 29748, 31105, 31165, 31563, 32202, 33465, - 33740, 34943, 35167, 35641, 36817, [12198, 37329], 21535, 37504, 20061, - 20534, 21477, 21306, 29399, 29590, 30697, 33510, 36527, 39366, 39368, - 39378, 20855, 24858, 34398, 21936, 31354, 20598, 23507, 36935, 38533, - 20018, 27355, 37351, 23633, 23624, 25496, 31391, 27795, 38772, 36705, - 31402, 29066, 38536, 31874, 26647, 32368, 26705, 37740, 21234, 21531, - 34219, 35347, 32676, 36557, 37089, 21350, 34952, 31041, 20418, 20670, - 21009, 20804, 21843, 22317, 29674, 22411, 22865, 24418, 24452, 24693, - 24950, 24935, 25001, 25522, 25658, 25964, 26223, 26690, 28179, 30054, - 31293, 31995, 32076, 32153, 32331, 32619, 33550, 33610, 34509, 35336, - 35427, 35686, 36605, 38938, 40335, 33464, 36814, 39912, 21127, 25119, - 25731, 28608, 38553, 26689, 20625, [12107, 27424], 27770, 28500, - [12147, 31348], 32080, [12174, 34880], 35363, [12105, 26376], 20214, 20537, - 20518, 20581, 20860, 21048, 21091, 21927, 22287, 22533, 23244, 24314, - 25010, 25080, 25331, 25458, 26908, 27177, 29309, [12125, 29356], 29486, - 30740, 30831, 32121, 30476, 32937, [12178, 35211], 35609, 36066, 36562, - 36963, 37749, 38522, 38997, 39443, 40568, 20803, 21407, 21427, 24187, - 24358, 28187, 28304, [12126, 29572], 29694, 32067, 33335, [12180, 35328], - 35578, 38480, 20046, 20491, 21476, 21628, 22266, 22993, 23396, - [12080, 24049], 24235, 24359, [12094, 25144], 25925, 26543, 28246, 29392, - 31946, 34996, 32929, 32993, 33776, [11969, 34382], 35463, 36328, 37431, - 38599, 39015, [12238, 40723], 20116, 20114, 20237, 21320, 21577, 21566, - 23087, 24460, 24481, 24735, 26791, 27278, 29786, 30849, 35486, 35492, - 35703, 37264, 20062, 39881, 20132, 20348, 20399, 20505, 20502, 20809, - 20844, 21151, 21177, 21246, 21402, [12061, 21475], 21521, 21518, 21897, - 22353, 22434, 22909, 23380, 23389, 23439, [12079, 24037], 24039, 24055, - 24184, 24195, 24218, 24247, 24344, 24658, 24908, 25239, 25304, 25511, - 25915, 26114, 26179, 26356, 26477, 26657, 26775, 27083, 27743, 27946, - 28009, 28207, 28317, 30002, 30343, 30828, 31295, 31968, 32005, 32024, - 32094, 32177, 32789, 32771, 32943, 32945, 33108, 33167, 33322, 33618, - [12175, 34892], 34913, 35611, 36002, 36092, 37066, 37237, 37489, 30783, - 37628, 38308, 38477, 38917, [12217, 39321], [12220, 39640], 40251, 21083, - 21163, 21495, 21512, 22741, 25335, 28640, 35946, 36703, 40633, 20811, - 21051, 21578, 22269, 31296, 37239, 40288, [12234, 40658], 29508, 28425, - 33136, 29969, 24573, 24794, [12219, 39592], 29403, 36796, 27492, 38915, - 20170, 22256, 22372, 22718, 23130, 24680, 25031, 26127, 26118, 26681, - 26801, 28151, 30165, 32058, [12169, 33390], 39746, 20123, 20304, 21449, - 21766, 23919, 24038, 24046, 26619, 27801, 29811, 30722, 35408, 37782, - 35039, 22352, 24231, 25387, 20661, 20652, 20877, 26368, 21705, 22622, - 22971, 23472, 24425, 25165, 25505, 26685, 27507, 28168, 28797, 37319, - 29312, 30741, 30758, 31085, 25998, 32048, 33756, 35009, 36617, 38555, - 21092, 22312, 26448, 32618, 36001, 20916, 22338, 38442, 22586, 27018, - 32948, 21682, 23822, 22524, 30869, 40442, 20316, 21066, 21643, 25662, - 26152, 26388, 26613, 31364, 31574, 32034, 37679, 26716, 39853, 31545, - 21273, 20874, 21047, 23519, 25334, 25774, 25830, 26413, 27578, 34217, - 38609, 30352, 39894, 25420, 37638, 39851, [12139, 30399], 26194, 19977, - 20632, 21442, [12077, 23665], 24808, 25746, 25955, 26719, 29158, 29642, - 29987, 31639, 32386, 34453, 35715, 36059, 37240, 39184, 26028, 26283, - 27531, 20181, 20180, 20282, 20351, 21050, 21496, 21490, 21987, 22235, - [12064, 22763], 22987, 22985, 23039, [12070, 23376], 23629, 24066, 24107, - 24535, 24605, 25351, [12096, 25903], 23388, 26031, 26045, 26088, 26525, - [12108, 27490], 27515, [12114, 27663], 29509, 31049, 31169, [12151, 31992], - 32025, 32043, 32930, 33026, [12164, 33267], 35222, 35422, 35433, 35430, - 35468, 35566, 36039, 36060, 38604, 39164, [12013, 27503], 20107, 20284, - 20365, 20816, 23383, 23546, 24904, 25345, 26178, 27425, 28363, 27835, - 29246, 29885, 30164, 30913, [12144, 31034], [12157, 32780], [12159, 32819], - [12163, 33258], 33940, 36766, 27728, [12229, 40575], 24335, 35672, 40235, - 31482, 36600, 23437, 38635, 19971, 21489, 22519, 22833, 23241, 23460, - 24713, 28287, 28422, 30142, 36074, 23455, 34048, 31712, 20594, 26612, - 33437, 23649, 34122, 32286, 33294, 20889, 23556, 25448, 36198, 26012, - 29038, 31038, 32023, 32773, 35613, [12190, 36554], 36974, 34503, 37034, - 20511, 21242, 23610, 26451, 28796, 29237, 37196, 37320, 37675, 33509, - 23490, 24369, 24825, 20027, 21462, 23432, [12095, 25163], 26417, 27530, - 29417, 29664, 31278, 33131, 36259, 37202, [12216, 39318], 20754, 21463, - 21610, 23551, 25480, 27193, 32172, 38656, 22234, 21454, 21608, 23447, - 23601, 24030, 20462, 24833, 25342, 27954, 31168, 31179, 32066, 32333, - 32722, 33261, [12168, 33311], 33936, 34886, 35186, 35728, 36468, 36655, - 36913, 37195, 37228, 38598, 37276, 20160, 20303, 20805, [12055, 21313], - 24467, 25102, 26580, 27713, 28171, 29539, 32294, 37325, 37507, 21460, - 22809, 23487, 28113, 31069, 32302, 31899, 22654, 29087, 20986, 34899, - 36848, 20426, 23803, 26149, 30636, 31459, 33308, 39423, 20934, 24490, - 26092, 26991, 27529, 28147, 28310, 28516, 30462, 32020, 24033, 36981, - 37255, 38918, 20966, 21021, 25152, 26257, 26329, 28186, 24246, 32210, - 32626, 26360, 34223, 34295, 35576, 21161, 21465, [12069, 22899], 24207, - 24464, 24661, 37604, 38500, 20663, 20767, 21213, 21280, 21319, 21484, - 21736, 21830, 21809, 22039, 22888, 22974, 23100, 23477, 23558, - [12073, 23567], 23569, 23578, 24196, 24202, 24288, 24432, 25215, 25220, - 25307, 25484, 25463, 26119, 26124, 26157, 26230, 26494, 26786, 27167, - 27189, 27836, 28040, 28169, 28248, 28988, 28966, 29031, 30151, 30465, - 30813, 30977, 31077, 31216, 31456, 31505, 31911, 32057, 32918, 33750, - 33931, 34121, 34909, 35059, 35359, 35388, 35412, 35443, 35937, 36062, - 37284, 37478, 37758, 37912, 38556, 38808, 19978, 19976, 19998, 20055, - 20887, 21104, 22478, 22580, 22732, 23330, 24120, 24773, 25854, 26465, - 26454, 27972, 29366, 30067, 31331, 33976, 35698, 37304, 37664, 22065, - 22516, 39166, 25325, 26893, 27542, 29165, 32340, 32887, [12170, 33394], - 35302, [12215, 39135], 34645, 36785, 23611, 20280, 20449, 20405, 21767, - 23072, 23517, 23529, [12092, 24515], 24910, 25391, 26032, 26187, 26862, - 27035, 28024, 28145, 30003, 30137, 30495, 31070, 31206, 32051, - [12162, 33251], 33455, 34218, 35242, 35386, [12189, 36523], [12191, 36763], - 36914, 37341, 38663, [12040, 20154], 20161, 20995, 22645, 22764, 23563, - 29978, 23613, 33102, 35338, 36805, 38499, 38765, 31525, 35535, 38920, - 37218, 22259, 21416, 36887, 21561, 22402, 24101, 25512, [12116, 27700], - 28810, 30561, 31883, 32736, 34928, 36930, 37204, 37648, 37656, 38543, - 29790, 39620, 23815, 23913, 25968, 26530, 36264, 38619, 25454, 26441, - 26905, 33733, 38935, 38592, 35070, 28548, 25722, [12072, 23544], 19990, - 28716, 30045, 26159, 20932, 21046, 21218, 22995, 24449, 24615, 25104, - 25919, 25972, 26143, 26228, 26866, 26646, 27491, 28165, 29298, - [12131, 29983], 30427, 31934, 32854, 22768, 35069, [11972, 35199], 35488, - 35475, 35531, 36893, 37266, [11992, 38738], 38745, [12011, 25993], 31246, - 33030, 38587, 24109, 24796, 25114, 26021, 26132, 26512, [12143, 30707], - 31309, 31821, 32318, 33034, 36012, [12186, 36196], 36321, 36447, 30889, - 20999, 25305, 25509, 25666, 25240, 35373, 31363, 31680, 35500, 38634, - 32118, [12166, 33292], 34633, 20185, 20808, 21315, 21344, 23459, 23554, - 23574, 24029, 25126, 25159, 25776, 26643, 26676, 27849, 27973, 27927, - 26579, 28508, 29006, 29053, 26059, 31359, 31661, 32218, 32330, 32680, - 33146, [12167, 33307], 33337, 34214, 35438, 36046, 36341, 36984, 36983, - 37549, 37521, 38275, 39854, 21069, 21892, 28472, 28982, 20840, 31109, - 32341, 33203, 31950, 22092, 22609, 23720, 25514, 26366, 26365, 26970, - 29401, 30095, 30094, 30990, 31062, 31199, 31895, 32032, 32068, 34311, - 35380, 38459, 36961, [12239, 40736], 20711, 21109, 21452, 21474, 20489, - 21930, 22766, 22863, 29245, 23435, 23652, 21277, 24803, 24819, 25436, - 25475, 25407, 25531, 25805, 26089, 26361, 24035, 27085, 27133, 28437, - 29157, 20105, 30185, 30456, 31379, 31967, 32207, 32156, 32865, 33609, - 33624, 33900, 33980, 34299, 35013, [12187, 36208], 36865, 36973, 37783, - 38684, 39442, 20687, 22679, 24974, 33235, 34101, 36104, 36896, 20419, - 20596, 21063, 21363, 24687, 25417, 26463, 28204, [12188, 36275], 36895, - 20439, 23646, 36042, 26063, 32154, 21330, 34966, 20854, 25539, 23384, - 23403, 23562, 25613, 26449, 36956, 20182, 22810, 22826, 27760, 35409, - 21822, 22549, 22949, 24816, 25171, 26561, 33333, 26965, 38464, 39364, - 39464, 20307, 22534, 23550, 32784, 23729, 24111, 24453, 24608, 24907, - 25140, 26367, 27888, 28382, 32974, 33151, 33492, 34955, 36024, 36864, - 36910, 38538, 40667, 39899, 20195, 21488, [12068, 22823], 31532, 37261, - 38988, 40441, 28381, 28711, 21331, 21828, 23429, 25176, 25246, 25299, - 27810, 28655, 29730, 35351, 37944, 28609, 35582, 33592, 20967, 34552, - 21482, 21481, 20294, 36948, [12192, 36784], 22890, 33073, 24061, 31466, - 36799, 26842, [12181, 35895], 29432, 40008, 27197, 35504, 20025, 21336, - 22022, 22374, 25285, 25506, 26086, 27470, 28129, 28251, 28845, 30701, - 31471, 31658, 32187, 32829, 32966, 34507, 35477, 37723, 22243, 22727, - 24382, 26029, 26262, 27264, 27573, 30007, 35527, 20516, 30693, 22320, - 24347, 24677, 26234, 27744, 30196, 31258, 32622, 33268, 34584, 36933, - 39347, 31689, 30044, [12149, 31481], 31569, 33988, 36880, 31209, 31378, - 33590, 23265, 30528, 20013, 20210, 23449, 24544, 25277, 26172, 26609, - 27880, [12173, 34411], 34935, 35387, 37198, 37619, 39376, 27159, 28710, - 29482, 33511, 33879, 36015, 19969, 20806, 20939, 21899, 23541, 24086, - 24115, 24193, 24340, 24373, 24427, 24500, 25074, 25361, 26274, 26397, - 28526, 29266, 30010, 30522, 32884, 33081, 33144, 34678, 35519, 35548, - 36229, 36339, 37530, [11985, 12199, 38263], 38914, [12227, 40165], 21189, - 25431, 30452, 26389, 27784, 29645, 36035, 37806, 38515, 27941, 22684, - 26894, 27084, 36861, 37786, 30171, 36890, 22618, 26626, 25524, 27131, - 20291, 28460, 26584, 36795, 34086, 32180, 37716, 26943, 28528, 22378, - 22775, 23340, 32044, [12118, 29226], 21514, 37347, 40372, 20141, 20302, - 20572, 20597, 21059, 35998, 21576, 22564, 23450, 24093, 24213, 24237, - 24311, 24351, 24716, 25269, 25402, 25552, 26799, 27712, 30855, 31118, - 31243, 32224, 33351, 35330, 35558, 36420, 36883, 37048, 37165, 37336, - [12237, 40718], 27877, 25688, 25826, 25973, 28404, 30340, 31515, 36969, - 37841, 28346, 21746, 24505, 25764, 36685, 36845, 37444, 20856, 22635, - 22825, 23637, 24215, 28155, 32399, 29980, 36028, 36578, 39003, 28857, - 20253, 27583, 28593, [12133, 30000], 38651, 20814, 21520, 22581, 22615, - 22956, 23648, 24466, [12099, 26007], 26460, 28193, 30331, 33759, 36077, - 36884, 37117, 37709, 30757, 30778, 21162, 24230, [12063, 22303], 22900, - 24594, 20498, 20826, 20908, 20941, [12049, 20992], 21776, 22612, 22616, - 22871, 23445, 23798, 23947, 24764, 25237, 25645, 26481, 26691, 26812, - 26847, 30423, 28120, 28271, 28059, 28783, 29128, 24403, 30168, 31095, - 31561, 31572, 31570, 31958, 32113, 21040, 33891, 34153, 34276, 35342, - 35588, [12182, 35910], 36367, 36867, 36879, 37913, 38518, 38957, 39472, - 38360, 20685, 21205, 21516, 22530, 23566, 24999, 25758, 27934, 30643, - 31461, 33012, 33796, 36947, 37509, 23776, 40199, 21311, 24471, 24499, - 28060, 29305, 30563, 31167, 31716, 27602, 29420, 35501, 26627, 27233, - 20984, 31361, 26932, 23626, 40182, 33515, 23493, [12195, 37193], 28702, - 22136, 23663, 24775, 25958, 27788, 35930, 36929, 38931, 21585, 26311, - 37389, 22856, 37027, 20869, 20045, 20970, 34201, 35598, 28760, 25466, - 37707, 26978, 39348, 32260, 30071, 21335, 26976, 36575, 38627, 27741, - [12038, 20108], 23612, 24336, 36841, 21250, 36049, [12161, 32905], 34425, - 24319, [12103, 26085], 20083, [12042, 20837], 22914, 23615, 38894, 20219, - 22922, 24525, 35469, 28641, 31152, 31074, 23527, 33905, 29483, 29105, - 24180, 24565, 25467, 25754, 29123, 31896, 20035, 24316, 20043, 22492, - 22178, 24745, 28611, 32013, 33021, 33075, 33215, 36786, 35223, 34468, - 24052, 25226, 25773, 35207, 26487, 27874, 27966, 29750, 30772, 23110, - 32629, 33453, [12218, 39340], 20467, 24259, 25309, 25490, 25943, 26479, - 30403, 29260, 32972, 32954, 36649, 37197, 20493, 22521, 23186, 26757, - 26995, 29028, 29437, 36023, 22770, 36064, 38506, 36889, 34687, 31204, - 30695, 33833, 20271, 21093, 21338, 25293, 26575, 27850, [12137, 30333], - 31636, 31893, 33334, 34180, 36843, 26333, 28448, 29190, 32283, 33707, - 39361, [12008, 40614], 20989, 31665, 30834, 31672, 32903, 31560, 27368, - 24161, 32908, 30033, 30048, [12043, 20843], 37474, 28300, 30330, 37271, - 39658, 20240, 32624, 25244, 31567, 38309, 40169, 22138, 22617, 34532, - 38588, 20276, 21028, 21322, 21453, 21467, 24070, 25644, 26001, 26495, - 27710, 27726, 29256, 29359, 29677, 30036, 32321, 33324, 34281, 36009, - 31684, [12196, 37318], 29033, 38930, 39151, 25405, 26217, 30058, 30436, - 30928, 34115, 34542, 21290, 21329, 21542, 22915, 24199, 24444, 24754, - 25161, 25209, 25259, 26000, [12112, 27604], 27852, 30130, [12138, 30382], - 30865, 31192, 32203, 32631, 32933, 34987, 35513, 36027, 36991, - [12206, 38750], [12214, 39131], 27147, 31800, 20633, 23614, 24494, 26503, - 27608, 29749, 30473, 32654, [12240, 40763], 26570, 31255, 21305, - [12134, 30091], 39661, 24422, 33181, 33777, 32920, 24380, 24517, 30050, - 31558, 36924, 26727, 23019, 23195, 32016, 30334, 35628, 20469, 24426, - 27161, 27703, 28418, 29922, 31080, 34920, 35413, 35961, 24287, 25551, - 30149, 31186, 33495, 37672, 37618, 33948, 34541, 39981, 21697, 24428, - 25996, 27996, 28693, 36007, 36051, 38971, 25935, 29942, 19981, 20184, - 22496, 22827, 23142, 23500, 20904, 24067, 24220, 24598, 25206, 25975, - 26023, 26222, 28014, [12119, 29238], 31526, 33104, 33178, 33433, 35676, - 36000, 36070, 36212, [12201, 38428], 38468, 20398, 25771, 27494, 33310, - 33889, 34154, 37096, 23553, 26963, [12213, 39080], 33914, 34135, 20239, - 21103, 24489, 24133, 26381, 31119, 33145, 35079, 35206, 28149, 24343, - 25173, 27832, 20175, 29289, 39826, 20998, 21563, 22132, 22707, 24996, - 25198, 28954, 22894, 31881, 31966, 32027, 38640, [12098, 25991], 32862, - 19993, 20341, 20853, 22592, 24163, 24179, 24330, 26564, 20006, 34109, - 38281, 38491, [12150, 31859], [12212, 38913], 20731, 22721, 30294, 30887, - 21029, 30629, 34065, 31622, 20559, 22793, [12122, 29255], 31687, 32232, - 36794, 36820, 36941, 20415, 21193, 23081, 24321, 38829, 20445, 33303, - 37610, 22275, 25429, 27497, 29995, 35036, 36628, 31298, 21215, 22675, - 24917, 25098, 26286, [11935, 27597], 31807, 33769, 20515, 20472, 21253, - 21574, 22577, 22857, 23453, 23792, 23791, 23849, 24214, 25265, 25447, - 25918, [12101, 26041], 26379, 27861, 27873, 28921, 30770, 32299, 32990, - 33459, 33804, 34028, 34562, 35090, 35370, 35914, 37030, 37586, 39165, - 40179, 40300, 20047, 20129, 20621, 21078, 22346, 22952, 24125, - {f: 2, c: 24536}, 25151, 26292, 26395, 26576, 26834, 20882, 32033, 32938, - 33192, 35584, 35980, 36031, 37502, 38450, 21536, 38956, 21271, 20693, - [12056, 21340], 22696, 25778, 26420, 29287, 30566, 31302, 37350, 21187, - 27809, 27526, 22528, 24140, 22868, 26412, 32763, 20961, 30406, 25705, - 30952, 39764, [12231, 40635], 22475, 22969, 26151, 26522, 27598, 21737, - 27097, 24149, 33180, 26517, 39850, 26622, 40018, 26717, 20134, 20451, - [12060, 21448], 25273, 26411, 27819, 36804, 20397, 32365, 40639, 19975, - 24930, 28288, 28459, 34067, 21619, 26410, 39749, [11922, 24051], 31637, - 23724, 23494, 34588, 28234, 34001, 31252, 33032, 22937, 31885, - [11936, 27665], 30496, 21209, 22818, 28961, 29279, [12141, 30683], 38695, - 40289, 26891, 23167, 23064, 20901, 21517, 21629, 26126, 30431, 36855, - 37528, 40180, 23018, 29277, 28357, 20813, 26825, 32191, 32236, - [12207, 38754], 40634, 25720, 27169, 33538, 22916, 23391, [12113, 27611], - 29467, 30450, 32178, 32791, 33945, 20786, [12106, 26408], 40665, - [12140, 30446], 26466, 21247, 39173, 23588, 25147, 31870, 36016, 21839, - 24758, 32011, [12200, 38272], 21249, 20063, 20918, 22812, 29242, 32822, - 37326, 24357, [12142, 30690], 21380, 24441, 32004, 34220, 35379, 36493, - 38742, 26611, 34222, 37971, 24841, 24840, 27833, 30290, 35565, 36664, - 21807, 20305, 20778, 21191, 21451, 23461, 24189, 24736, 24962, 25558, - 26377, 26586, 28263, 28044, {f: 2, c: 29494}, 30001, 31056, 35029, 35480, - 36938, [12194, 37009], 37109, 38596, 34701, [12067, 22805], 20104, 20313, - 19982, 35465, 36671, 38928, 20653, 24188, 22934, 23481, 24248, 25562, - 25594, 25793, 26332, 26954, 27096, 27915, 28342, 29076, [12132, 29992], - 31407, [12154, 32650], 32768, 33865, 33993, 35201, 35617, 36362, 36965, - 38525, 39178, 24958, 25233, 27442, 27779, 28020, 32716, 32764, 28096, - 32645, 34746, 35064, 26469, 33713, 38972, 38647, 27931, 32097, 33853, - 37226, 20081, 21365, 23888, 27396, 28651, 34253, 34349, 35239, 21033, - 21519, 23653, 26446, 26792, 29702, 29827, 30178, 35023, 35041, - [12197, 37324], 38626, 38520, 24459, 29575, [12148, 31435], 33870, 25504, - 30053, 21129, 27969, 28316, 29705, 30041, 30827, 31890, 38534, - [12015, 31452], [12243, 40845], 20406, 24942, 26053, 34396, 20102, 20142, - 20698, 20001, 20940, 23534, 26009, 26753, 28092, 29471, 30274, 30637, - 31260, 31975, 33391, 35538, 36988, 37327, 38517, 38936, [12050, 21147], - 32209, 20523, 21400, 26519, 28107, 29136, 29747, 33256, 36650, 38563, - 40023, 40607, 29792, 22593, 28057, 32047, 39006, 20196, 20278, 20363, - 20919, 21169, 23994, 24604, 29618, 31036, 33491, 37428, 38583, 38646, - 38666, 40599, 40802, 26278, 27508, 21015, 21155, 28872, 35010, 24265, - 24651, 24976, 28451, 29001, 31806, 32244, 32879, 34030, 36899, 37676, - 21570, 39791, 27347, 28809, 36034, 36335, 38706, 21172, 23105, 24266, - 24324, 26391, 27004, 27028, 28010, 28431, 29282, 29436, 31725, - [12156, 32769], 32894, 34635, 37070, 20845, 40595, 31108, 32907, 37682, - 35542, 20525, 21644, 35441, 27498, 36036, 33031, 24785, 26528, 40434, - 20121, 20120, 39952, 35435, 34241, 34152, 26880, 28286, 30871, 33109, - 24332, 19984, 19989, 20010, 20017, [12034, 20022], 20028, [12035, 20031], - 20034, 20054, 20056, 20098, [12037, 20101], 35947, 20106, 33298, 24333, - 20110, {f: 2, c: 20126}, [12039, 20128], 20130, 20144, 20147, 20150, 20174, - 20173, 20164, 20166, 20162, 20183, 20190, 20205, 20191, 20215, 20233, - 20314, 20272, 20315, 20317, 20311, 20295, 20342, 20360, 20367, 20376, - 20347, 20329, 20336, 20369, 20335, 20358, 20374, 20760, 20436, 20447, - 20430, 20440, 20443, 20433, 20442, 20432, {f: 2, c: 20452}, 20506, 20520, - 20500, 20522, 20517, 20485, 20252, 20470, 20513, 20521, 20524, 20478, - 20463, 20497, 20486, 20547, 20551, 26371, 20565, 20560, 20552, 20570, - 20566, 20588, 20600, 20608, 20634, 20613, 20660, 20658, {f: 2, c: 20681}, - 20659, 20674, 20694, 20702, 20709, 20717, 20707, 20718, 20729, 20725, - 20745, {f: 2, c: 20737}, 20758, 20757, 20756, 20762, 20769, 20794, 20791, - 20796, 20795, [12041, 20799], [11918, 20800], 20818, 20812, 20820, 20834, - 31480, {f: 2, c: 20841}, 20846, 20864, [12044, 20866], 22232, 20876, 20873, - 20879, 20881, 20883, 20885, [12045, 20886], 20900, 20902, 20898, - {f: 2, c: 20905}, [12046, 20907], 20915, {f: 2, c: 20913}, 20912, 20917, - 20925, 20933, 20937, 20955, [12047, 20960], 34389, 20969, 20973, 20976, - [12048, 20981], 20990, 20996, 21003, 21012, 21006, 21031, 21034, 21038, - 21043, 21049, 21071, 21060, {f: 2, c: 21067}, 21086, 21076, 21098, 21108, - 21097, 21107, 21119, 21117, 21133, 21140, 21138, 21105, 21128, 21137, - 36776, 36775, {f: 2, c: 21164}, 21180, 21173, 21185, 21197, 21207, 21214, - 21219, 21222, 39149, 21216, 21235, 21237, 21240, [12051, 21241], 21254, - 21256, 30008, 21261, 21264, 21263, [12052, 21269], [12053, 21274], 21283, - 21295, 21297, 21299, [12054, 21304], 21312, 21318, 21317, 19991, 21321, - 21325, 20950, 21342, [12057, 21353], 21358, 22808, 21371, 21367, - [12058, 21378], 21398, 21408, 21414, 21413, 21422, 21424, [12059, 21430], - 21443, 31762, 38617, 21471, 26364, 29166, 21486, 21480, 21485, 21498, - 21505, 21565, 21568, {f: 2, c: 21548}, 21564, 21550, 21558, 21545, 21533, - 21582, 21647, 21621, 21646, 21599, 21617, 21623, 21616, 21650, 21627, - 21632, 21622, 21636, 21648, 21638, 21703, 21666, 21688, 21669, 21676, - 21700, 21704, 21672, 21675, 21698, 21668, 21694, 21692, 21720, - {f: 2, c: 21733}, 21775, 21780, 21757, 21742, 21741, 21754, 21730, 21817, - 21824, 21859, 21836, 21806, 21852, 21829, {f: 2, c: 21846}, 21816, 21811, - 21853, 21913, 21888, 21679, 21898, 21919, 21883, 21886, 21912, 21918, - 21934, 21884, 21891, 21929, 21895, 21928, 21978, 21957, 21983, 21956, - 21980, 21988, 21972, 22036, 22007, 22038, 22014, 22013, 22043, 22009, - 22094, 22096, 29151, 22068, 22070, 22066, 22072, 22123, 22116, 22063, - 22124, 22122, 22150, 22144, 22154, 22176, 22164, 22159, 22181, 22190, - 22198, 22196, 22210, 22204, 22209, 22211, 22208, 22216, 22222, 22225, - 22227, [12062, 22231], 22254, 22265, 22272, 22271, 22276, 22281, 22280, - 22283, 22285, 22291, 22296, 22294, 21959, 22300, 22310, {f: 2, c: 22327}, - 22350, 22331, 22336, 22351, 22377, 22464, 22408, 22369, 22399, 22409, - 22419, 22432, 22451, 22436, 22442, 22448, 22467, 22470, 22484, - {f: 2, c: 22482}, 22538, 22486, 22499, 22539, 22553, 22557, 22642, 22561, - 22626, 22603, 22640, 27584, 22610, 22589, 22649, 22661, 22713, 22687, - 22699, 22714, 22750, 22715, 22712, 22702, 22725, 22739, 22737, 22743, - 22745, 22744, 22757, 22748, 22756, 22751, 22767, 22778, 22777, - {f: 3, c: 22779}, [12065, 22786], [12066, 22794], 22800, 22811, 26790, - 22821, {f: 2, c: 22828}, 22834, 22840, 22846, 31442, 22869, 22864, 22862, - 22874, 22872, 22882, 22880, 22887, 22892, 22889, 22904, 22913, 22941, - 20318, 20395, 22947, 22962, 22982, 23016, 23004, 22925, {f: 2, c: 23001}, - 23077, 23071, 23057, 23068, 23049, 23066, 23104, 23148, 23113, - {f: 2, c: 23093}, 23138, 23146, 23194, 23228, 23230, 23243, 23234, 23229, - 23267, 23255, 23270, 23273, 23254, {f: 2, c: 23290}, 23308, 23307, 23318, - 23346, 23248, 23338, 23350, 23358, 23363, 23365, 23360, 23377, 23381, - {f: 2, c: 23386}, 23397, 23401, 23408, 23411, 23413, 23416, 25992, 23418, - [12071, 23424], 23427, 23462, 23480, 23491, 23495, 23497, 23508, 23504, - 23524, 23526, 23522, 23518, 23525, 23531, 23536, 23542, 23539, 23557, - {f: 2, c: 23559}, 23565, 23571, 23584, [11920, 12074, 23586], 23592, - [12075, 23608], 23609, 23617, 23622, 23630, 23635, 23632, 23631, 23409, - 23660, [12076, 23662], 20066, 23670, 23673, 23692, 23697, 23700, 22939, - 23723, 23739, 23734, 23740, 23735, 23749, 23742, 23751, 23769, 23785, - 23805, 23802, 23789, 23948, 23786, 23819, 23829, 23831, 23900, 23839, - 23835, 23825, 23828, 23842, 23834, 23833, 23832, 23884, 23890, 23886, - 23883, 23916, 23923, 23926, 23943, 23940, 23938, 23970, 23965, 23980, - 23982, 23997, 23952, 23991, 23996, 24009, 24013, 24019, 24018, 24022, - [12078, 24027], 24043, 24050, 24053, 24075, 24090, 24089, 24081, 24091, - {f: 2, c: 24118}, 24132, 24131, 24128, 24142, 24151, 24148, 24159, 24162, - 24164, 24135, {f: 2, c: 24181}, [11923, 12083, 24186], 40636, - [12084, 24191], 24224, {f: 2, c: 24257}, 24264, 24272, 24271, 24278, 24291, - 24285, {f: 2, c: 24282}, 24290, 24289, {f: 2, c: 24296}, 24300, 24305, - 24307, 24304, [12085, 24308], 24312, [12086, 24318], 24323, 24329, 24413, - 24412, [12087, 24331], 24337, 24342, 24361, 24365, 24376, 24385, 24392, - 24396, 24398, 24367, [11924, 24401], {f: 2, c: 24406}, 24409, - [12090, 24417], 24429, [12091, 24435], 24439, 24451, 24450, 24447, 24458, - 24456, 24465, 24455, 24478, 24473, 24472, 24480, 24488, 24493, 24508, - 24534, 24571, 24548, 24568, 24561, 24541, 24755, 24575, 24609, 24672, - 24601, 24592, 24617, 24590, 24625, 24603, 24597, 24619, 24614, 24591, - 24634, 24666, 24641, 24682, 24695, 24671, 24650, 24646, 24653, 24675, - 24643, 24676, 24642, 24684, 24683, 24665, 24705, 24717, 24807, 24707, - 24730, 24708, 24731, {f: 2, c: 24726}, 24722, 24743, 24715, 24801, 24760, - 24800, 24787, 24756, 24560, 24765, 24774, 24757, 24792, 24909, 24853, - 24838, {f: 2, c: 24822}, 24832, 24820, 24826, 24835, 24865, 24827, 24817, - {f: 2, c: 24845}, 24903, 24894, 24872, 24871, 24906, 24895, 24892, 24876, - 24884, 24893, 24898, 24900, 24947, 24951, {f: 3, c: 24920}, 24939, 24948, - 24943, 24933, 24945, 24927, 24925, 24915, 24949, 24985, 24982, 24967, - 25004, 24980, 24986, 24970, 24977, 25003, 25006, 25036, 25034, 25033, - 25079, 25032, 25027, 25030, 25018, 25035, 32633, 25037, 25062, 25059, - 25078, 25082, 25076, 25087, 25085, 25084, 25086, 25088, [12093, 25096], - 25097, 25101, 25100, 25108, 25115, 25118, 25121, 25130, 25134, 25136, - {f: 2, c: 25138}, 25153, 25166, 25182, 25187, 25179, 25184, 25192, 25212, - 25218, 25225, 25214, {f: 2, c: 25234}, 25238, 25300, 25219, 25236, 25303, - 25297, 25275, 25295, 25343, 25286, 25812, 25288, 25308, 25292, 25290, - 25282, 25287, 25243, 25289, 25356, 25326, 25329, 25383, 25346, 25352, - 25327, 25333, 25424, 25406, 25421, 25628, 25423, 25494, 25486, 25472, - 25515, 25462, 25507, 25487, 25481, 25503, 25525, 25451, 25449, 25534, - 25577, 25536, 25542, 25571, 25545, 25554, 25590, 25540, 25622, 25652, - 25606, 25619, 25638, 25654, 25885, 25623, 25640, 25615, 25703, 25711, - 25718, 25678, 25898, 25749, 25747, 25765, 25769, 25736, 25788, 25818, - 25810, 25797, 25799, 25787, 25816, 25794, 25841, 25831, 33289, - {f: 2, c: 25824}, 25260, 25827, 25839, 25900, 25846, 25844, 25842, 25850, - 25856, 25853, 25880, 25884, 25861, 25892, 25891, 25899, [12097, 25908], - [11929, 25909], 25911, 25910, 25912, 30027, 25928, 25942, 25941, 25933, - 25944, 25950, 25949, 25970, 25976, {f: 2, c: 25986}, 35722, 26011, 26015, - 26027, 26039, 26051, 26054, 26049, 26052, 26060, 26066, 26075, 26073, - [12102, 26080], [11931, 26081], 26097, 26482, 26122, 26115, 26107, 26483, - {f: 2, c: 26165}, 26164, 26140, 26191, 26180, 26185, 26177, 26206, 26205, - 26212, {f: 2, c: 26215}, 26207, 26210, 26224, 26243, 26248, 26254, 26249, - 26244, 26264, 26269, 26305, 26297, 26313, 26302, 26300, 26308, 26296, - 26326, 26330, 26336, 26175, 26342, 26345, [12104, 26352], 26357, 26359, - 26383, 26390, 26398, {f: 2, c: 26406}, 38712, 26414, 26431, 26422, 26433, - 26424, 26423, 26438, 26462, 26464, 26457, {f: 2, c: 26467}, 26505, 26480, - 26537, 26492, 26474, 26508, 26507, 26534, 26529, 26501, 26551, 26607, - 26548, 26604, 26547, 26601, 26552, 26596, 26590, 26589, 26594, 26606, - 26553, 26574, 26566, 26599, 27292, 26654, 26694, 26665, 26688, 26701, - 26674, 26702, 26803, 26667, 26713, 26723, 26743, 26751, 26783, 26767, - 26797, 26772, 26781, 26779, 26755, 27310, 26809, 26740, 26805, 26784, - 26810, 26895, 26765, 26750, 26881, 26826, 26888, 26840, 26914, 26918, - 26849, 26892, 26829, 26836, 26855, 26837, 26934, 26898, 26884, 26839, - 26851, 26917, 26873, 26848, 26863, 26920, 26922, 26906, 26915, 26913, - 26822, 27001, 26999, 26972, 27000, 26987, 26964, 27006, 26990, 26937, - 26996, 26941, 26969, 26928, 26977, 26974, 26973, 27009, 26986, 27058, - 27054, 27088, 27071, 27073, 27091, 27070, 27086, 23528, 27082, 27101, - 27067, 27075, 27047, 27182, 27025, 27040, 27036, 27029, 27060, 27102, - 27112, 27138, 27163, 27135, 27402, 27129, 27122, 27111, 27141, 27057, - 27166, 27117, 27156, 27115, 27146, 27154, 27329, 27171, 27155, 27204, - 27148, 27250, 27190, 27256, 27207, 27234, 27225, 27238, 27208, 27192, - 27170, 27280, 27277, 27296, 27268, {f: 2, c: 27298}, 27287, 34327, 27323, - 27331, 27330, 27320, 27315, 27308, 27358, 27345, 27359, 27306, 27354, - 27370, 27387, 27397, 34326, 27386, 27410, 27414, 39729, 27423, 27448, - 27447, 30428, 27449, 39150, 27463, 27459, 27465, 27472, 27481, 27476, - 27483, 27487, 27489, 27512, [12109, 27513], {f: 2, c: 27519}, 27524, 27523, - 27533, 27544, 27541, 27550, 27556, {f: 2, c: 27562}, 27567, 27570, 27569, - [12110, 27571], 27575, 27580, 27590, [12111, 27595], 27603, 27615, 27628, - 27627, 27635, 27631, 40638, 27656, 27667, [12115, 27668], 27675, 27684, - 27683, 27742, 27733, 27746, 27754, 27778, 27789, 27802, 27777, 27803, - 27774, 27752, 27763, 27794, 27792, 27844, 27889, 27859, 27837, 27863, - 27845, 27869, 27822, 27825, 27838, 27834, 27867, 27887, 27865, 27882, - 27935, 34893, 27958, 27947, 27965, 27960, 27929, 27957, 27955, 27922, - 27916, 28003, 28051, 28004, 27994, 28025, 27993, 28046, 28053, 28644, - 28037, 28153, 28181, 28170, 28085, 28103, 28134, 28088, 28102, 28140, - 28126, 28108, 28136, 28114, 28101, 28154, 28121, 28132, 28117, 28138, - 28142, 28205, 28270, 28206, 28185, 28274, 28255, 28222, 28195, 28267, - 28203, 28278, 28237, 28191, 28227, 28218, 28238, 28196, 28415, 28189, - 28216, 28290, 28330, 28312, 28361, 28343, 28371, 28349, 28335, 28356, - 28338, {f: 2, c: 28372}, 28303, 28325, 28354, 28319, 28481, 28433, 28748, - 28396, 28408, 28414, 28479, 28402, 28465, 28399, 28466, 28364, 28478, - 28435, 28407, 28550, 28538, 28536, 28545, 28544, 28527, 28507, 28659, - 28525, 28546, 28540, 28504, 28558, 28561, 28610, 28518, 28595, 28579, - 28577, 28580, 28601, 28614, 28586, 28639, 28629, 28652, 28628, 28632, - 28657, 28654, 28635, 28681, 28683, 28666, 28689, 28673, 28687, 28670, - 28699, 28698, 28532, 28701, 28696, 28703, 28720, 28734, 28722, 28753, - 28771, 28825, 28818, 28847, 28913, 28844, 28856, 28851, 28846, 28895, - 28875, 28893, 28889, 28937, 28925, 28956, 28953, 29029, 29013, 29064, - 29030, 29026, 29004, 29014, 29036, 29071, 29179, 29060, 29077, 29096, - 29100, 29143, 29113, 29118, 29138, 29129, 29140, 29134, 29152, 29164, - 29159, 29173, 29180, 29177, 29183, 29197, 29200, 29211, 29224, 29229, - 29228, 29232, 29234, [12120, 29243], 29244, [12121, 29247], 29248, 29254, - 29259, 29272, 29300, 29310, 29314, 29313, 29319, 29330, 29334, 29346, - 29351, 29369, 29362, 29379, 29382, 29380, 29390, 29394, 29410, - {f: 2, c: 29408}, 29433, 29431, 20495, 29463, 29450, 29468, 29462, 29469, - 29492, 29487, 29481, 29477, 29502, {f: 2, c: 29518}, 40664, 29527, 29546, - 29544, 29552, 29560, 29557, 29563, 29562, 29640, 29619, 29646, 29627, - 29632, 29669, 29678, 29662, 29858, 29701, 29807, 29733, 29688, 29746, - 29754, 29781, 29759, 29791, 29785, 29761, 29788, 29801, 29808, 29795, - 29802, 29814, 29822, 29835, 29854, 29863, 29898, 29903, 29908, 29681, - 29920, 29923, 29927, 29929, 29934, 29938, {f: 2, c: 29936}, 29944, 29943, - 29956, 29955, 29957, 29964, 29966, 29965, 29973, 29971, 29982, 29990, - 29996, 30012, 30020, 30029, 30026, 30025, 30043, 30022, 30042, 30057, - 30052, 30055, 30059, 30061, 30072, 30070, {f: 2, c: 30086}, 30068, 30090, - 30089, 30082, 30100, 30106, 30109, 30117, 30115, 30146, 30131, 30147, - 30133, 30141, 30136, 30140, 30129, 30157, 30154, 30162, 30169, 30179, - 30174, {f: 2, c: 30206}, 30204, 30209, 30192, 30202, {f: 2, c: 30194}, - 30219, 30221, 30217, 30239, 30247, {f: 3, c: 30240}, 30244, 30260, 30256, - 30267, {f: 2, c: 30279}, 30278, 30300, 30296, {f: 2, c: 30305}, - {f: 3, c: 30312}, 30311, 30316, 30320, 30322, [12136, 30326], 30328, 30332, - 30336, 30339, 30344, 30347, 30350, 30358, 30355, {f: 2, c: 30361}, 30384, - 30388, {f: 3, c: 30392}, 30402, 30413, 30422, 30418, 30430, 30433, 30437, - 30439, 30442, 34351, 30459, 30472, 30471, 30468, 30505, 30500, 30494, - {f: 2, c: 30501}, 30491, {f: 2, c: 30519}, 30535, 30554, 30568, 30571, - 30555, 30565, 30591, 30590, 30585, 30606, 30603, 30609, 30624, 30622, - 30640, 30646, 30649, 30655, {f: 2, c: 30652}, 30651, 30663, 30669, 30679, - 30682, 30684, 30691, 30702, 30716, 30732, 30738, 31014, 30752, 31018, - 30789, 30862, 30836, 30854, 30844, 30874, 30860, 30883, 30901, 30890, - 30895, 30929, 30918, 30923, 30932, 30910, 30908, 30917, 30922, 30956, - 30951, 30938, 30973, 30964, 30983, 30994, 30993, 31001, 31020, 31019, - 31040, 31072, 31063, 31071, 31066, 31061, 31059, 31098, 31103, 31114, - 31133, 31143, 40779, 31146, 31150, 31155, {f: 2, c: 31161}, 31177, 31189, - 31207, 31212, 31201, 31203, 31240, 31245, {f: 2, c: 31256}, 31264, 31263, - 31104, 31281, 31291, 31294, 31287, 31299, 31319, 31305, {f: 2, c: 31329}, - 31337, 40861, 31344, 31353, 31357, 31368, 31383, 31381, 31384, 31382, - 31401, 31432, 31408, 31414, 31429, 31428, 31423, 36995, 31431, 31434, - 31437, 31439, 31445, 31443, {f: 2, c: 31449}, 31453, {f: 2, c: 31457}, - 31462, 31469, 31472, 31490, 31503, 31498, 31494, 31539, {f: 2, c: 31512}, - 31518, 31541, 31528, 31542, 31568, 31610, 31492, 31565, 31499, 31564, - 31557, 31605, 31589, 31604, 31591, {f: 2, c: 31600}, 31596, 31598, 31645, - 31640, 31647, 31629, 31644, 31642, 31627, 31634, 31631, 31581, 31641, - 31691, 31681, 31692, 31695, 31668, 31686, 31709, 31721, 31761, 31764, - 31718, 31717, 31840, 31744, 31751, 31763, 31731, 31735, 31767, 31757, - 31734, 31779, 31783, 31786, 31775, 31799, 31787, 31805, 31820, 31811, - 31828, 31823, 31808, 31824, 31832, 31839, 31844, 31830, 31845, 31852, - 31861, 31875, 31888, 31908, 31917, 31906, 31915, 31905, 31912, 31923, - 31922, 31921, 31918, 31929, 31933, 31936, 31941, 31938, 31960, 31954, - 31964, 31970, 39739, 31983, 31986, 31988, 31990, 31994, 32006, 32002, - 32028, 32021, 32010, 32069, 32075, 32046, 32050, 32063, 32053, 32070, - 32115, 32086, 32078, 32114, 32104, 32110, 32079, 32099, 32147, 32137, - 32091, 32143, 32125, 32155, 32186, 32174, 32163, 32181, 32199, 32189, - 32171, 32317, 32162, 32175, 32220, 32184, 32159, 32176, 32216, 32221, - 32228, 32222, 32251, 32242, 32225, 32261, 32266, 32291, 32289, 32274, - 32305, 32287, 32265, 32267, 32290, 32326, 32358, 32315, 32309, 32313, - 32323, 32311, 32306, 32314, 32359, 32349, 32342, 32350, {f: 2, c: 32345}, - 32377, 32362, 32361, 32380, 32379, 32387, 32213, 32381, 36782, 32383, - {f: 2, c: 32392}, 32396, 32402, 32400, {f: 2, c: 32403}, 32406, 32398, - {f: 2, c: 32411}, 32568, 32570, 32581, {f: 3, c: 32588}, 32592, - [12153, 32593], 32597, 32596, 32600, {f: 2, c: 32607}, {f: 2, c: 32616}, - 32615, 32632, 32642, 32646, 32643, 32648, 32647, 32652, 32660, 32670, - 32669, 32666, 32675, 32687, 32690, 32697, 32686, 32694, 32696, 35697, - {f: 2, c: 32709}, 32714, 32725, 32724, 32737, 32742, 32745, 32755, 32761, - 39132, 32774, 32772, 32779, [12158, 32786], {f: 2, c: 32792}, 32796, 32801, - 32808, 32831, 32827, 32842, 32838, 32850, 32856, 32858, 32863, 32866, - 32872, 32883, 32882, 32880, 32886, 32889, 32893, [12160, 32895], 32900, - 32902, 32901, 32923, 32915, 32922, 32941, 20880, 32940, 32987, 32997, - 32985, 32989, 32964, 32986, 32982, 33033, 33007, 33009, 33051, 33065, - 33059, 33071, 33099, 38539, 33094, 33086, 33107, 33105, 33020, 33137, - 33134, {f: 2, c: 33125}, 33140, 33155, 33160, 33162, 33152, 33154, 33184, - 33173, 33188, 33187, 33119, 33171, 33193, 33200, 33205, 33214, 33208, - 33213, 33216, 33218, 33210, 33225, 33229, 33233, 33241, 33240, 33224, - 33242, {f: 2, c: 33247}, 33255, {f: 2, c: 33274}, 33278, {f: 2, c: 33281}, - 33285, 33287, 33290, 33293, 33296, 33302, 33321, 33323, 33336, 33331, - 33344, 33369, 33368, 33373, 33370, 33375, 33380, 33378, 33384, - {f: 2, c: 33386}, 33326, 33393, 33399, [12171, 33400], 33406, 33421, 33426, - 33451, 33439, 33467, 33452, 33505, 33507, 33503, 33490, 33524, 33523, - 33530, 33683, 33539, 33531, 33529, 33502, 33542, 33500, 33545, 33497, - 33589, 33588, 33558, 33586, 33585, 33600, 33593, 33616, 33605, 33583, - 33579, {f: 2, c: 33559}, 33669, 33690, 33706, 33695, 33698, 33686, 33571, - 33678, 33671, 33674, 33660, 33717, 33651, 33653, 33696, 33673, 33704, - 33780, 33811, 33771, 33742, 33789, 33795, 33752, 33803, 33729, 33783, - 33799, 33760, 33778, 33805, 33826, 33824, 33725, 33848, 34054, 33787, - 33901, 33834, 33852, 34138, 33924, 33911, 33899, 33965, 33902, 33922, - 33897, 33862, 33836, 33903, 33913, 33845, 33994, 33890, 33977, 33983, - 33951, 34009, 33997, 33979, 34010, 34000, 33985, 33990, 34006, 33953, - 34081, 34047, 34036, {f: 2, c: 34071}, 34092, 34079, 34069, 34068, 34044, - 34112, 34147, 34136, 34120, 34113, 34306, 34123, 34133, 34176, 34212, - 34184, 34193, 34186, 34216, 34157, 34196, 34203, 34282, 34183, 34204, - 34167, 34174, 34192, 34249, 34234, 34255, 34233, 34256, 34261, 34269, - 34277, 34268, 34297, 34314, 34323, 34315, 34302, 34298, 34310, 34338, - 34330, 34352, 34367, [12172, 34381], 20053, 34388, 34399, 34407, 34417, - 34451, 34467, {f: 2, c: 34473}, {f: 2, c: 34443}, 34486, 34479, 34500, - 34502, 34480, 34505, 34851, 34475, 34516, 34526, 34537, 34540, 34527, - 34523, 34543, 34578, 34566, 34568, 34560, 34563, 34555, 34577, 34569, - 34573, 34553, 34570, 34612, 34623, 34615, 34619, 34597, 34601, 34586, - 34656, 34655, 34680, 34636, 34638, 34676, 34647, 34664, 34670, 34649, - 34643, 34659, 34666, 34821, 34722, 34719, 34690, 34735, 34763, 34749, - 34752, 34768, 38614, 34731, 34756, 34739, 34759, 34758, 34747, 34799, - 34802, 34784, 34831, 34829, 34814, {f: 2, c: 34806}, 34830, 34770, 34833, - 34838, 34837, 34850, 34849, 34865, 34870, 34873, 34855, 34875, 34884, - 34882, 34898, 34905, 34910, 34914, 34923, 34945, 34942, 34974, 34933, - 34941, 34997, 34930, 34946, 34967, 34962, 34990, 34969, 34978, 34957, - 34980, 34992, 35007, 34993, {f: 2, c: 35011}, 35028, {f: 2, c: 35032}, - 35037, 35065, 35074, 35068, 35060, 35048, 35058, 35076, 35084, 35082, - 35091, 35139, 35102, 35109, {f: 2, c: 35114}, 35137, 35140, 35131, 35126, - 35128, 35148, 35101, 35168, 35166, 35174, 35172, 35181, 35178, 35183, - 35188, 35191, [12177, 35198], 35203, 35208, 35210, 35219, 35224, 35233, - 35241, 35238, 35244, 35247, 35250, 35258, 35261, {f: 2, c: 35263}, 35290, - {f: 2, c: 35292}, 35303, 35316, 35320, 35331, 35350, 35344, 35340, 35355, - 35357, 35365, 35382, 35393, 35419, 35410, 35398, 35400, 35452, 35437, - 35436, 35426, 35461, 35458, 35460, 35496, 35489, 35473, {f: 2, c: 35493}, - 35482, 35491, 35524, 35533, 35522, 35546, 35563, 35571, 35559, 35556, - 35569, 35604, 35552, 35554, 35575, 35550, 35547, 35596, 35591, 35610, - 35553, 35606, 35600, 35607, 35616, 35635, 38827, 35622, 35627, 35646, - 35624, 35649, 35660, 35663, 35662, 35657, 35670, 35675, 35674, 35691, - 35679, 35692, 35695, 35700, 35709, 35712, 35724, 35726, {f: 2, c: 35730}, - 35734, {f: 2, c: 35737}, 35898, 35905, 35903, 35912, 35916, 35918, 35920, - [12183, 35925], 35938, 35948, [12184, 35960], 35962, 35970, 35977, 35973, - 35978, {f: 2, c: 35981}, 35988, 35964, 35992, 25117, 36013, 36010, 36029, - {f: 2, c: 36018}, 36014, 36022, 36040, 36033, 36068, 36067, 36058, 36093, - {f: 2, c: 36090}, {f: 2, c: 36100}, 36106, 36103, 36111, 36109, 36112, - 40782, 36115, 36045, 36116, 36118, 36199, 36205, 36209, 36211, 36225, - 36249, 36290, 36286, 36282, 36303, 36314, 36310, 36300, 36315, 36299, - {f: 2, c: 36330}, 36319, 36323, 36348, {f: 2, c: 36360}, 36351, - {f: 2, c: 36381}, 36368, 36383, 36418, 36405, 36400, 36404, 36426, 36423, - 36425, 36428, 36432, 36424, 36441, 36452, 36448, 36394, 36451, 36437, - 36470, 36466, 36476, 36481, 36487, 36485, 36484, 36491, 36490, 36499, - 36497, 36500, 36505, 36522, 36513, 36524, 36528, 36550, 36529, 36542, - 36549, 36552, 36555, 36571, 36579, 36604, 36603, 36587, 36606, 36618, - 36613, 36629, 36626, 36633, 36627, 36636, 36639, 36635, 36620, 36646, - 36659, 36667, 36665, 36677, 36674, 36670, 36684, 36681, 36678, 36686, - 36695, 36700, {f: 3, c: 36706}, 36764, 36767, 36771, 36781, 36783, 36791, - 36826, 36837, 36834, 36842, 36847, 36999, 36852, 36869, {f: 2, c: 36857}, - 36881, 36885, 36897, 36877, 36894, 36886, 36875, 36903, 36918, 36917, - 36921, 36856, {f: 4, c: 36943}, 36878, 36937, 36926, 36950, 36952, 36958, - 36968, 36975, 36982, 38568, 36978, 36994, 36989, 36993, 36992, 37002, - 37001, 37007, 37032, 37039, 37041, 37045, 37090, 37092, 25160, 37083, - 37122, 37138, 37145, 37170, 37168, 37194, 37206, 37208, 37219, 37221, - 37225, 37235, 37234, 37259, 37257, 37250, 37282, 37291, 37295, 37290, - 37301, 37300, 37306, {f: 2, c: 37312}, 37321, 37323, 37328, 37334, 37343, - 37345, 37339, 37372, {f: 2, c: 37365}, 37406, 37375, 37396, 37420, 37397, - 37393, 37470, 37463, 37445, 37449, 37476, 37448, 37525, 37439, 37451, - 37456, 37532, 37526, 37523, 37531, 37466, 37583, 37561, 37559, 37609, - 37647, 37626, 37700, 37678, 37657, 37666, 37658, 37667, 37690, 37685, - 37691, 37724, 37728, 37756, 37742, 37718, 37808, {f: 2, c: 37804}, 37780, - 37817, {f: 2, c: 37846}, 37864, 37861, 37848, 37827, 37853, 37840, 37832, - 37860, 37914, 37908, 37907, 37891, 37895, 37904, 37942, 37931, 37941, - 37921, 37946, 37953, 37970, 37956, 37979, 37984, 37986, 37982, 37994, - 37417, 38000, 38005, 38007, 38013, 37978, 38012, 38014, 38017, 38015, - 38274, 38279, 38282, 38292, 38294, {f: 2, c: 38296}, 38304, 38312, 38311, - 38317, 38332, 38331, 38329, 38334, 38346, 28662, 38339, 38349, 38348, - 38357, 38356, 38358, 38364, 38369, 38373, 38370, 38433, 38440, - {f: 2, c: 38446}, 38466, 38476, 38479, 38475, 38519, 38492, 38494, 38493, - 38495, 38502, 38514, 38508, 38541, 38552, 38549, 38551, 38570, 38567, - {f: 2, c: 38577}, 38576, 38580, [12202, 38582], 38584, [12203, 38585], - 38606, 38603, 38601, 38605, 35149, 38620, 38669, 38613, 38649, 38660, - 38662, 38664, 38675, 38670, 38673, 38671, 38678, 38681, 38692, 38698, - 38704, 38713, {f: 2, c: 38717}, 38724, 38726, 38728, 38722, 38729, 38748, - 38752, 38756, 38758, 38760, 21202, 38763, 38769, 38777, 38789, 38780, - 38785, 38778, 38790, 38795, {f: 2, c: 38799}, 38812, 38824, 38822, 38819, - {f: 2, c: 38835}, 38851, 38854, 38856, [12209, 38859], 38876, - [12210, 38893], 40783, 38898, 31455, 38902, 38901, 38927, 38924, 38968, - 38948, 38945, 38967, 38973, 38982, 38991, 38987, 39019, {f: 3, c: 39023}, - 39028, 39027, 39082, 39087, 39089, 39094, 39108, 39107, 39110, 39145, - 39147, 39171, 39177, 39186, 39188, 39192, 39201, {f: 2, c: 39197}, 39204, - 39200, 39212, 39214, {f: 2, c: 39229}, 39234, 39241, 39237, 39248, 39243, - {f: 2, c: 39249}, 39244, 39253, {f: 2, c: 39319}, 39333, {f: 2, c: 39341}, - 39356, 39391, 39387, 39389, 39384, 39377, {f: 2, c: 39405}, - {f: 2, c: 39409}, 39419, 39416, 39425, 39439, 39429, 39394, 39449, 39467, - 39479, 39493, 39490, 39488, 39491, 39486, 39509, 39501, 39515, 39511, - 39519, 39522, 39525, 39524, 39529, 39531, 39530, 39597, 39600, 39612, - 39616, 39631, 39633, {f: 2, c: 39635}, 39646, [12221, 39647], - {f: 2, c: 39650}, 39654, 39663, 39659, 39662, 39668, 39665, 39671, 39675, - 39686, 39704, 39706, 39711, {f: 2, c: 39714}, [12222, 39717], - {f: 4, c: 39719}, 39726, [12223, 39727], [12224, 39730], 39748, 39747, - 39759, {f: 2, c: 39757}, 39761, 39768, 39796, 39827, 39811, 39825, - {f: 2, c: 39830}, {f: 2, c: 39839}, 39848, 39860, 39872, 39882, 39865, - 39878, 39887, {f: 2, c: 39889}, 39907, 39906, 39908, 39892, 39905, 39994, - 39922, 39921, 39920, 39957, 39956, 39945, 39955, 39948, 39942, 39944, - 39954, 39946, 39940, 39982, 39963, 39973, 39972, 39969, 39984, 40007, - 39986, 40006, 39998, 40026, 40032, 40039, 40054, 40056, 40167, 40172, - 40176, 40201, 40200, 40171, 40195, 40198, 40234, 40230, 40367, 40227, - 40223, 40260, 40213, 40210, 40257, 40255, 40254, 40262, 40264, - {f: 2, c: 40285}, 40292, 40273, 40272, 40281, 40306, 40329, 40327, 40363, - 40303, 40314, 40346, 40356, 40361, 40370, 40388, 40385, 40379, 40376, - 40378, 40390, 40399, 40386, 40409, 40403, 40440, 40422, 40429, 40431, - 40445, {f: 2, c: 40474}, 40478, [12228, 40565], 40569, 40573, 40577, 40584, - {f: 2, c: 40587}, 40594, 40597, 40593, 40605, [12230, 40613], 40617, 40632, - 40618, 40621, 38753, 40652, {f: 3, c: 40654}, 40660, 40668, 40670, 40669, - 40672, 40677, 40680, 40687, 40692, {f: 2, c: 40694}, [12235, 40697], - {f: 2, c: 40699}, [12236, 40701], {f: 2, c: 40711}, 30391, 40725, 40737, - 40748, 40766, [12241, 40778], [12242, 40786], 40788, 40803, - {f: 3, c: 40799}, {f: 2, c: 40806}, 40812, 40810, 40823, 40818, 40822, - 40853, [12244, 40860], [12245, 40864], 22575, 27079, 36953, 29796, 0, - {f: 76, c: 9472}, {f: 20, c: 9312}, {f: 10, c: 8544}, 13129, 13076, 0, - 13133, 0, 13095, 0, 13110, 13137, 0, 13069, 13094, 0, 13099, 13130, 0, - {f: 3, c: 13212}, {f: 2, c: 13198}, 13252, 13217, 12317, 12319, 8470, - 13261, 0, {f: 5, c: 12964}, {f: 2, c: 12849}, 12857, 13182, 13181, 13180, - 8750, 8721, {s: 3}, 8735, 8895, 0, 0, 21854, {s: 7}, 167133, 0, 0, 28976, - 0, 40407, {s: 4}, 64054, 0, 0, 22169, 15694, {s: 4}, 20448, 0, 0, 36544, 0, - 194797, {s: 4}, 153716, 32363, 33606, 167670, {s: 3}, 40572, 0, 0, 26171, - 0, 40628, {s: 4}, 26629, {s: 5}, 23650, 0, 194780, 0, 32353, 0, 0, 64070, - {s: 5}, 34083, 37292, {s: 7}, 34796, {s: 8}, 25620, 0, 0, 39506, {s: 4}, - 64074, 0, 194692, {s: 4}, 31774, {s: 6}, 64016, 25681, 0, 0, 63980, 22625, - 39002, 0, 194679, {s: 3}, 31153, 0, 28678, {s: 9}, 22218, {s: 3}, 21085, 0, - 28497, 37297, {s: 10}, 64106, {s: 6}, 38960, 0, 40629, {s: 9}, 33802, - 63939, {f: 2, c: 63890}, 63897, 0, 34847, 194575, 0, 194771, 194584, - {s: 7}, 137754, 23643, {s: 4}, 25890, 0, 0, 26618, 0, 26766, 0, 148432, - 194848, {s: 21}, 34110, {s: 15}, 30562, {s: 12}, 65075, 0, - {f: 2, c: 65073}, {s: 4}, 65072, {f: 2, c: 65077}, {f: 2, c: 65081}, 0, 0, - {f: 2, c: 65079}, {f: 2, c: 65087}, {f: 2, c: 65085}, {f: 4, c: 65089}, - {f: 2, c: 65083}, {s: 41}, {f: 3, c: 12436}, 0, 0, 22099, {s: 41}, 65508, - 65287, 65282, 0, 9665, 9655, 8681, 8679, 8678, 8680, 9634, 9831, 9825, - 9828, 9826, 13216, 13218, {f: 2, c: 13220}, 13207, 8467, 13208, 13235, - 13234, 13233, 13232, {f: 3, c: 13189}, 13259, 13200, 13268, 13206, 13090, - 13078, 13080, 13077, 13059, 13091, 13143, 13122, 13113, 13115, 13056, - 13105, 13127, 13086, 13098, 0, 13183, 8481, 9742, 12342, 12320, {s: 3}, - {f: 9, c: 9352}, {f: 20, c: 9332}, 12881, {f: 10, c: 8560}, - {f: 10, c: 12882}, {f: 26, c: 9372}, 12867, 12861, 12863, 12852, 12856, - 12851, 12860, 12866, 12862, 12854, 12853, 12859, 12864, 12858, 12976, - 12973, 12969, 12975, 12948, 12970, 12952, 12971, 12946, 12945, 12947, - 12972, 12974, 12950, {s: 8}, {f: 3, c: 9131}, 0, {f: 3, c: 9127}, 0, 13260, - 13061, 0, 0, 13215, 13219, 13222, 0, 0, 12958, {f: 2, c: 13192}, 13256, - 8749, 0, 12848, {f: 6, c: 12842}, 12855, 12865, 10145, {s: 3}, 9673, 9824, - 9829, 9827, 9830, {f: 4, c: 9728}, 9758, {f: 2, c: 9756}, 9759, 12953, - 9450, {f: 2, c: 8554}, {s: 3}, {f: 8, c: 9601}, 9615, 9614, 9613, 9612, - 9611, 9610, 9609, {f: 2, c: 9620}, {f: 2, c: 9581}, 9584, 9583, 9552, 9566, - 9578, 9569, {f: 2, c: 9698}, 9701, 9700, 0, 0, {f: 3, c: 9585}, {s: 20}, - 20956, 29081, {f: 9, c: 10102}, {s: 3}, {f: 2, c: 8570}, {s: 3}, 8575, - 8458, 8457, 0, 0, 12292, 8646, {f: 2, c: 8644}, 0, {f: 4, c: 12535}, 0, 0, - 12957, {s: 3}, 13179, {s: 3}, 13107, 13134, {s: 30}, 32394, 35100, 37704, - 37512, 34012, 20425, 28859, 26161, 26824, 37625, 26363, 24389, - [12033, 20008], 20193, 20220, 20224, 20227, 20281, 20310, 20370, 20362, - 20378, 20372, 20429, 20544, 20514, 20479, 20510, 20550, 20592, 20546, - 20628, 20724, 20696, 20810, 20836, 20893, 20926, 20972, 21013, 21148, - 21158, 21184, 21211, 21248, 0, 21284, 21362, 21395, 21426, 21469, 64014, - 21660, 21642, 21673, 21759, 21894, 22361, 22373, 22444, 22472, 22471, - 64015, 0, 22686, 22706, 22795, 22867, 22875, 22877, 22883, 22948, 22970, - 23382, 23488, 29999, 23512, 0, 23582, 23718, 23738, 23797, 23847, 23891, 0, - 23874, 23917, {f: 2, c: 23992}, 24016, 24353, 24372, 24423, 24503, 24542, - 24669, 24709, 24714, 24798, 24789, 24864, 24818, 24849, 24887, 24880, - 24984, 25107, 25254, 25589, 25696, 25757, 25806, 25934, 26112, 26133, - 26121, 26158, 0, 26148, 26213, 26199, 26201, 64018, 26227, 26265, 26272, - 26290, 26303, 26362, 26382, 0, 26470, 26555, 26706, 26560, 0, 26692, 26831, - 64019, 26984, 64020, 27032, 27106, 27184, 27243, 27206, 27251, 27262, - 27362, 27364, 27606, 27711, 27740, 27782, 27759, 27866, 27908, 28039, - 28015, 28054, 28076, 28111, 28152, 28146, 28156, 28217, 28252, 28199, - 28220, 28351, 28552, 28597, 28661, 28677, 28679, 28712, 28805, 28843, - 28943, 28932, 29020, {f: 2, c: 28998}, 0, 29121, 29182, 29361, 29374, - 29476, 64022, 29559, 29629, 29641, 29654, 29667, 29650, 29703, 29685, - 29734, 29738, 29737, 29742, 0, 29833, 29855, 29953, 30063, 30338, 30364, - 30366, 30363, 30374, 64023, 30534, 21167, 30753, 30798, 30820, 30842, - 31024, {f: 3, c: 64024}, 31124, 64027, 31131, 31441, 31463, 64028, 31467, - 31646, 64029, 32072, 0, 32183, 32160, 32214, 32338, 32583, 32673, 64030, - 33537, 33634, 33663, 33735, 33782, 33864, 33972, 34131, 34137, 34155, - 64031, 34224, {f: 2, c: 64032}, 34823, 35061, 35346, 35383, 35449, 35495, - 35518, 35551, 64034, 35574, 35667, 35711, 36080, 36084, 36114, 36214, - 64035, 36559, 0, 64037, 36967, 37086, 64038, 37141, 37159, 37338, 37335, - 37342, {f: 2, c: 37357}, {f: 2, c: 37348}, 37382, 37392, 37386, 37434, - 37440, 37436, 37454, 37465, 37457, 37433, 37479, 37543, {f: 2, c: 37495}, - 37607, 37591, 37593, 37584, 64039, 37589, 37600, 37587, 37669, 37665, - 37627, 64040, 37662, 37631, 37661, 37634, 37744, 37719, 37796, 37830, - 37854, 37880, 37937, 37957, 37960, 38290, 0, 64041, 38557, 38575, 38707, - 38715, 38723, 38733, 38735, [12205, 38737], 0, 38999, 39013, - {f: 2, c: 64042}, 39207, 64044, 39326, 39502, 39641, 39644, 39797, 39794, - 39823, 39857, 39867, 39936, 40304, 40299, 64045, 40473, 40657, {s: 636}, - 8364, 8486, 0, 0, 64256, {f: 2, c: 64259}, 257, 299, 363, 275, 333, 256, - 298, 362, 274, 332, {f: 4, c: 8539}, {f: 2, c: 8531}, 8304, - {f: 6, c: 8308}, {f: 10, c: 8320}, 461, 282, 0, 7868, 463, 0, 296, 465, 0, - 467, 366, 360, 462, 283, 0, 7869, 464, 0, 297, 466, 0, 468, 367, 361, 593, - 8049, 8048, 509, 0, 596, 0, 0, 601, 0, 0, 602, 0, 0, 603, 8051, 8050, 0, - 331, 629, 652, 0, 0, 658, 643, 720, {s: 682}, {f: 10, c: 12832}, {s: 108}, - {f: 4, c: 12892}, {f: 15, c: 12977}, {s: 50}, {f: 26, c: 9424}, - {f: 26, c: 9398}, {s: 48}, {f: 47, c: 13008}, 0, {f: 10, c: 12928}, 12944, - {f: 6, c: 12938}, 0, 12959, {s: 6}, {f: 2, c: 12960}, 12955, 12954, 12963, - 12962, 12951, 0, 12956, 12949, {s: 6}, 9676, {s: 11}, 10111, - {f: 10, c: 9451}, {s: 510}, 8414, {s: 815}, 13274, {s: 3}, 8448, 13250, 0, - 0, 8453, 0, 13169, 0, 0, 13197, 13211, {s: 3}, {f: 2, c: 13271}, {s: 3}, - {f: 2, c: 13057}, 13060, 13062, 0, 13064, 0, 13063, 13066, 0, 13065, 0, - 13067, 0, 13068, {f: 6, c: 13070}, 0, 13079, 0, 13081, 0, {f: 4, c: 13082}, - {f: 3, c: 13087}, 13092, 0, 13093, 0, 0, {f: 2, c: 13096}, 0, 13101, 0, 0, - {f: 3, c: 13102}, 13106, 0, 0, {f: 2, c: 13108}, 13116, {s: 3}, 13111, 0, - 13112, 13114, 13117, 13121, {f: 3, c: 13118}, {f: 4, c: 13123}, 13128, - {f: 2, c: 13131}, {f: 2, c: 13135}, 0, 0, 13138, 13140, 0, 0, 13139, - {f: 2, c: 13141}, {s: 132}, 8501, 976, 8714, 8463, 0, 981, 987, 977, 0, - {f: 2, c: 9832}, 9836, {s: 5}, 12347, 0, {f: 3, c: 12339}, 8252, 8265, - {s: 5}, 8723, 0, 8771, {f: 2, c: 8818}, {s: 6}, {f: 2, c: 12312}, - {f: 2, c: 65375}, {s: 10}, 9115, {f: 2, c: 9117}, 9120, {s: 4}, 9121, - {f: 2, c: 9123}, 9126, {s: 12}, [9116, 9119, 9122, 9125, 9130], {s: 8}, - 9986, 0, 0, 12349, 0, 12447, 0, 0, 8709, 8864, 8854, 8856, 8853, 8855, - {s: 4}, 9664, 9654, {s: 4}, 8656, 8596, {f: 2, c: 8600}, {f: 2, c: 8598}, - 8652, 8651, {s: 10}, 12336, 8967, {s: 8}, 10048, 10047, {s: 7}, 9643, 0, - 9642, 0, 10010, {s: 12}, 9702, {s: 4}, 10070, {s: 379}, {f: 2, c: 65093}, - {s: 679}, 64103, 64098, 32227, [12232, 40643], 28331, 64082, 64061, 64069, - 64062, 27114, 28212, 64096, 64071, 64056, 64066, 64078, 34395, 64105, - 64052, 64099, 25581, 25802, 30799, 64084, 63856, 64077, 64097, 64072, - 64076, {f: 2, c: 64091}, 64081, 64067, 64090, 28041, 29376, 0, 194885, - 64086, 64080, 64049, 64059, 24034, 64063, 64101, 21373, 64055, 64095, - 24501, 64064, 0, 64083, 0, 64085, 64104, 64068, 64089, 26202, 64053, 64075, - 64100, 64065, 64048, 0, 64057, 64051, 27493, 64058, 27599, 64050, 25150, - 64079, 63773, 63964, 63798, 28122, 63952, 26310, 27511, 64087, 37706, 0, - 37636, {s: 120}, 133390, {s: 120}, 35999, 11991, [11965, 158033], {s: 5}, - 37555, 38321, 0, 0, 194812, {s: 13}, 194965, {s: 8}, 194794, 0, 26478, - 11974, 0, 194594, {s: 13}, 13314, 0, 0, 26083, {s: 4}, 134071, {s: 10}, - 171339, 0, 194611, 24378, {s: 8}, 11945, 0, 20465, {s: 7}, 63753, {s: 7}, - 11964, 0, 0, 194732, 26435, {s: 3}, 133732, 35329, 25142, 0, 0, 21555, - 23067, {s: 3}, 25221, 0, 0, 194819, {s: 6}, 21567, {s: 9}, 27506, {s: 4}, - 29986, 19256, 0, 0, 24063, {s: 6}, 194827, 29626, 134047, {s: 3}, 194600, - 0, 194849, {s: 5}, 194623, {s: 16}, 194675, {f: 2, c: 11916}, 23577, - {s: 3}, 131083, 23426, 194642, {s: 5}, 11997, [11999, 39136], - [11998, 169599], 14221, 0, [11927, 14586], 0, 194887, 0, [11909, 20155], - 131490, {s: 7}, 13599, 0, 194738, 0, 0, [11971, 35200], {s: 4}, 31237, - {s: 4}, 35498, 0, 32085, 0, 28568, {s: 7}, 25591, 30246, {s: 4}, - [11978, 163767], {s: 5}, 146686, {s: 5}, 13351, 0, 0, 33067, 0, 0, 194842, - {s: 5}, 11950, {s: 5}, 194714, {s: 3}, 194831, {s: 19}, 22305, 135741, - 194586, 0, 64003, {s: 7}, 21534, 15240, 20839, {s: 4}, 63839, {s: 9}, - 20023, {s: 13}, [11946, 150804], 24421, 23020, 194658, 0, 24217, {s: 46}, - 13416, {s: 8}, 21200, {s: 9}, 26625, 0, 195024, 195039, {s: 5}, 153215, 0, - 0, 11959, {s: 4}, 36534, 63775, {s: 3}, 63875, {s: 5}, 31867, 63906, 0, - 63898, 0, [11961, 32770], 157360, {s: 4}, [11911, 132648], 0, 0, 131210, - 194604, [11915, 13630], {s: 4}, 21589, 0, 22841, 0, 0, 23414, 194669, - 23572, 14306, 23782, 0, 20040, 0, 0, 194742, {s: 4}, 158105, 25371, 0, 0, - 26211, 0, 194779, 0, 0, 27126, 27014, {s: 3}, 27596, 0, 28183, 0, 0, 27818, - {s: 3}, [11942, 20012], 0, 0, 29935, 30069, 30188, 30286, 16305, 30570, - 30633, {s: 6}, 31571, 0, 0, 16996, {s: 3}, 194924, 0, 0, 32328, {s: 5}, - 11955, {s: 4}, 33089, 17491, 0, [11966, 33401], [11967, 64094], - [11968, 64093], 0, 20857, 33626, {s: 3}, 17701, 0, 34292, 131248, {s: 4}, - 34429, 0, 13358, 35014, {s: 6}, 18406, {s: 8}, 36808, {s: 19}, 166279, 0, - 0, 167447, 0, 0, 38969, {s: 6}, 39432, {s: 4}, 39903, {s: 10}, 148206, - {s: 5}, 21385, 0, 64017, 194785, 0, 146622, 132625, 0, {f: 2, c: 19972}, - 19999, 20011, {f: 2, c: 20015}, {f: 2, c: 20032}, 20036, [11907, 20058], - 20095, 20109, 20118, 20153, 20176, 20192, 20221, 20223, 20235, 20245, - 20320, 20283, 20297, 20308, 20346, {f: 2, c: 20349}, 20375, 20414, 20431, - 20477, {f: 2, c: 20480}, 20496, 20507, 20519, 20526, 20567, 20582, 20586, - 20539, 20623, 20630, 20636, 20684, 20710, 20713, 20719, 20744, 20747, - 20752, 20763, 20766, 20831, 20897, 20924, 0, 20974, 20980, 20993, - [11913, 20994], 21011, 21065, 21089, 21094, 21139, 21192, 21232, - {f: 2, c: 21258}, 21310, 21324, 21323, 21345, 21356, 21419, 21466, 21478, - 21493, 21543, 21581, 21606, 21611, 21620, 21645, 21654, 21665, 21677, - 21689, 21695, 21702, 21709, 21774, 21803, 21813, 21834, 21856, 0, 21896, - 21902, 22024, {f: 2, c: 22030}, 22071, 22079, 22089, 22091, 22095, 22118, - 22121, 22127, {f: 2, c: 22129}, 22165, 22170, {f: 2, c: 22188}, 22193, - 22217, 22237, 22244, 22282, 22293, 22307, 22319, {f: 2, c: 22323}, 22348, - 22384, 22412, 22428, 22456, 22502, 22509, {f: 2, c: 22517}, 22527, 22537, - 22560, 22578, 22652, 22656, 22697, 22734, 22736, 22740, 22746, 22761, - 22796, 22820, 22831, 22881, 22893, 22986, 22994, 23005, {f: 2, c: 23011}, - 23044, 23052, 23075, 23111, 23125, 23139, 23149, 23166, 23198, 23207, - 23212, 23219, 23264, 23296, 23321, 23333, 23341, 23361, 23420, - {f: 2, c: 23422}, 23434, [11919, 23587], 23595, 23600, 23651, 23657, 23676, - 23755, 23762, 23796, 23844, 23846, 23875, 23878, 23882, 23954, 23956, - 23961, 23968, 24024, 24032, 24056, 24064, 24082, {f: 2, c: 24084}, 24088, - 24110, 24152, {f: 2, c: 24171}, 24232, 24234, {f: 2, c: 24254}, 0, 24274, - 24327, 24334, {f: 2, c: 24348}, 24354, 24360, 24374, 24379, 24384, - [12089, 24400], 24408, 24420, 24457, 24476, 24487, 24484, 24495, 24504, - [11926, 24516], 24521, 24545, 24553, 24557, 24572, 24599, 24602, 24627, - 24673, 24703, 24734, 24740, 24752, 24779, 24795, 24824, {f: 3, c: 24850}, - 24860, 24956, 24973, 24991, 25000, 25026, 25055, 25109, 25129, 25155, - 25158, [11928, 25164], 25169, 25174, 25284, 25340, 25354, 25357, 25368, - 25401, {f: 2, c: 25410}, 25445, 25460, 25469, 25476, 25479, 25488, 25502, - 25553, 25564, 25609, 25616, 25634, 25684, 25691, 25709, 25723, - {f: 2, c: 25790}, 25829, 25847, 25851, 25860, 25878, 25881, 25927, 25959, - 25985, 25989, 26050, 26096, 26098, 26156, 26188, {f: 2, c: 26203}, 26209, - 26219, 0, 26276, 26312, 26348, 26373, 26387, 26419, 26440, 26444, 26486, - 26491, 26544, 26546, 26617, 26583, 26585, 26608, 26668, {f: 2, c: 26672}, - 26715, 26738, 26741, 26746, 26756, 26789, 26802, 26832, 26838, 26856, - 26861, {f: 2, c: 26864}, 26876, 26897, 26899, 26933, 26939, 26967, 26979, - 26994, {f: 2, c: 27007}, 27046, 27053, 27063, {f: 2, c: 27094}, 27137, - 27151, 27157, 27176, 27188, 27198, 27205, {f: 2, c: 27216}, 27222, 27227, - 27267, 27273, 27281, {f: 3, c: 27293}, 27356, 27367, 27372, 27422, 27428, - 27445, 27462, 27478, 27488, 27522, 27582, 27617, 27633, 27664, 27699, - [11937, 27701], 11938, 27737, 27766, 27771, 27781, 27797, 27804, 27856, - 27860, 27862, 27872, {f: 2, c: 27883}, 27886, 27914, 27918, 27921, 27950, - 27991, 27998, 28005, 28034, 28095, 28100, 28106, 28118, 28137, 28194, - 28241, 28359, 28362, 28366, 28413, 28442, 28458, 28463, 28467, 28506, - 28510, 28514, 28541, 28555, 28557, 28562, 28564, 28570, {f: 2, c: 28583}, - 28598, 28634, 28638, 0, 28729, 28732, 0, 28756, {f: 2, c: 28765}, 28772, - [11939, 28780], 28798, 28801, 28821, 28855, {f: 2, c: 28883}, 28888, 28892, - 28935, 28960, 28977, 29002, 29010, 29024, 29049, 29074, 0, 29131, 29139, - 29142, 29184, 29213, 29227, 29240, 29249, 29267, {f: 2, c: 29269}, 29276, - 29325, [11944, 29357], 29364, 29383, 29435, {f: 2, c: 29444}, 29480, 29489, - 29507, 29548, 29564, 29571, {f: 2, c: 29573}, 29589, {f: 3, c: 29598}, - 29606, 29611, 29621, 29623, 29628, 29647, 29657, 29673, 29684, 29693, - 29700, 29706, {f: 2, c: 29722}, 29732, 29736, 29740, {f: 3, c: 29743}, - 29753, 29764, 29767, 29771, 29773, 29777, 29783, 29798, 29803, 29809, - 29824, {f: 3, c: 29829}, 29840, 29848, 29852, 29856, 29859, 29864, 29867, - 29877, 29887, 29896, 29914, 29918, 30030, 30073, 30081, 30096, - [12135, 30098], 30099, 30132, 30180, 30201, 30208, 30218, {f: 2, c: 30229}, - 30233, 30238, 30253, 30261, 30275, 30283, 30309, 30317, 30319, 30321, - 30324, {f: 2, c: 30372}, 30405, 30412, 30444, 30460, 30516, 30518, 30556, - {f: 2, c: 30559}, 30578, 30589, 30613, 30634, 30694, 30704, 30708, 30726, - 30754, {f: 2, c: 30765}, 30768, 30773, 30824, 30878, 30920, 30924, 30926, - 30948, {f: 2, c: 30944}, 30962, 30967, 30971, 31025, 0, [11949, 31035], - 31037, 31045, {f: 2, c: 31067}, 31115, 31126, 31128, [12145, 31160], 31163, - 31178, 31194, 31235, 31241, 31249, 31262, 31277, 31289, 31301, 31308, - 31325, 0, 31341, 31352, 31392, 31395, 31411, {f: 2, c: 31419}, 31430, - 31495, 31508, 31527, 31537, 31559, 31566, 31584, 31593, 31597, 31602, - 31633, 31663, 31703, 31705, 31755, 31759, 31776, 31782, 31793, 31798, - 31825, 31833, 31847, 31854, 31856, 31932, 31935, {f: 2, c: 31944}, 31959, - 31961, 31965, 31979, {f: 3, c: 32007}, 32019, 32029, 32035, 32065, 32083, - 32089, 32093, 32122, 32134, {f: 2, c: 32139}, 32204, 32235, 32241, 32249, - 32264, 32273, 32277, 32288, 32327, 32354, 32366, 32371, 32397, 32401, - 32408, 32580, 32591, [11947, 11954, 32594], [11953, 32595], 32609, 32657, - 32703, 32718, 32735, 32741, 32748, {f: 2, c: 32750}, 32762, 32782, 32785, - 32788, 32804, 32806, 32826, 32828, 32864, 32881, 32885, 32926, 32934, - 32939, {f: 2, c: 32983}, 33046, 33048, 33082, 33098, 33100, 33153, 33156, - 33204, 33231, 33273, 33283, 33313, 33330, 33332, 33350, 33355, 33359, - 33422, 33454, 33463, 33470, 33478, 33534, 33603, 33617, 33621, 33670, - 33677, 33682, 33688, 33705, {f: 2, c: 33727}, 33770, 33807, 33809, 33866, - 33910, 33960, 33967, 33984, 33986, 34032, 34045, 34060, 34100, 34142, - 34191, 34231, 34254, 34221, 34322, 34345, 34386, 34403, 34412, 34415, - 34426, 34445, 34449, 34456, {f: 2, c: 34471}, 34554, 34557, 34571, 34579, - 34585, 34590, 34600, 34622, 34673, 34696, 34713, {f: 2, c: 34732}, 34741, - 34774, 34795, 34797, 34817, 0, 34822, 34827, 34836, 34844, 34902, 34911, - [11970, 34916], 34968, 34986, {f: 2, c: 35005}, 35018, 35026, 35035, - {f: 2, c: 35056}, 35078, {f: 3, c: 35096}, 35111, 35120, 35134, 35195, - 35284, 35286, 35301, 35313, 35335, 35343, 35349, 35362, 35406, 35455, - 35572, 35615, 35639, {f: 2, c: 35651}, 35668, 35740, 35742, 35911, 35924, - 35955, 36004, 36057, 36065, 36088, 36094, 36123, 36201, 36204, 36228, - 36237, 36245, 36262, 36294, 36302, 36324, 36332, 36384, 36427, 36460, - 36464, 36474, 36498, 36526, 36531, 36561, 36564, 36601, 36631, 36662, - 36774, [12193, 36789], [11981, 36790], 0, 36832, 36836, 36854, 36866, - 36908, 36932, 37000, 37013, 37017, 37019, 37026, 37044, 37079, 37085, - 37108, 37143, 37148, 37169, 37178, 37181, 37192, 37211, 37217, 37220, - 37262, 37278, 37288, {f: 2, c: 37293}, 37298, 37308, 37360, 37367, 37371, - 37383, 37416, 37427, 37432, 37443, 37447, 37455, 37472, 37570, - {f: 2, c: 37579}, 37599, 37645, 37653, 37663, 37671, 37703, 37714, 0, - 37738, 37741, 37787, 37818, 37801, 37825, 37834, 37858, 37882, 37885, - 37903, 37940, 37951, 37973, 37995, 38002, [11986, 38264], 38310, 38313, 0, - 38324, 38333, 38362, [11983, 11990, 38429], 38465, 38488, 38532, 38564, - 38569, 38610, 195060, 38622, 38633, 38641, 38658, 38665, 38746, 38755, - 38766, 38771, 38810, 38818, {f: 2, c: 38837}, 38873, 38878, 38900, 38922, - 38926, 38942, 38947, 38955, 38974, {f: 2, c: 38994}, 39001, 39020, 39096, - 39098, 39103, 39112, 39141, {f: 2, c: 39218}, 39232, 39245, 39260, 39263, - 39345, {f: 2, c: 39353}, 39369, 39426, 39446, 39460, 39463, - {f: 2, c: 39469}, 39478, 39480, 39498, 39510, {f: 2, c: 39605}, 39673, - 39683, 39712, {f: 2, c: 39731}, 39795, 39801, 39847, 39873, 39879, 39895, - 39911, 39915, 39927, 39930, 39933, 39947, 39975, 39978, 39990, 40001, - 40019, 40035, 40048, 40055, 40194, 40258, 40263, 40291, 40297, 40316, - 40318, 40333, 40369, 40387, 40391, 40406, 40415, 40427, 40436, 40469, - 40477, 40612, 40616, 40620, 40679, 40686, 40720, 40722, 40727, 40729, - 40751, 40759, 40761, 40769, 40773, 40791, 40808, 40817, 40821, 40848, - 40852, 40866, 0, 13317, 194564, 22048, 24267, 11925, 0, 144954, 0, 28665, - 28390, 29107, [11940, 64073], {s: 4}, [11980, 64102], 0, 23986, 0, 20435, - 20697, 20720, 20931, 22134, 27220, 27905, 28112, 28226, 28377, 29668, - 29729, 30060, 30801, 34805, 144382, 29608, 15091, 13531, 17420, 16010, 0, - 0, 19432, 0, 16090, 15138, 0, 17786, 16531, 0, 18021, 16643, 17043, 18094, - 13448, 140809, {f: 3, c: 63584}, 63610, 63615, {s: 23}, {f: 2, c: 8836}, - {f: 2, c: 8842}, 8713, 0, {f: 2, c: 8965}, {s: 9}, {f: 2, c: 8741}, - {s: 14}, 8802, 0, 8773, 8776, {f: 2, c: 8822}, {s: 4}, 8487, {s: 209}, - {f: 2, c: 8922}, 8533, 8984, {f: 2, c: 7742}, {f: 2, c: 504}, 470, 472, - 474, 476, 260, 728, 317, 346, 350, 356, 377, 379, 261, 731, 318, 347, 711, - 351, 357, 378, 733, 380, 340, 258, 313, 262, 268, 280, 270, 323, 327, 336, - 344, 368, 354, 341, 259, 314, 263, 269, 281, 271, 273, 324, 328, 337, 345, - 369, 355, 729, 264, 284, 292, 308, 348, 364, 265, 285, 293, 309, 349, 365, - 625, 651, 638, 620, 622, 633, 648, 598, 627, 637, 642, 656, 635, 621, 607, - 626, 669, 654, 609, 624, 641, 295, 661, 660, 614, 664, 450, 595, 599, 644, - 608, 403, 616, 649, 600, 604, 606, 592, 623, 650, 612, 594, 653, 613, 674, - 673, 597, 657, 634, 615, 865, 712, 716, 721, 8255, 783, {f: 5, c: 741}, 0, - 0, 805, 812, 825, 796, {f: 2, c: 799}, 829, 809, 815, 734, 804, 816, 828, - 820, {f: 2, c: 797}, {f: 2, c: 792}, 810, {f: 2, c: 826}, 794, {s: 3}, - {f: 2, c: 610}, 618, 628, 630, 632, 640, 655, 665, 668, 671, 688, 690, 695, - 704, {f: 2, c: 736}, {s: 6}, 8862, {s: 287}, 12348, 12543, 0, - {f: 2, c: 12310}, 9838, 9835, {f: 2, c: 10548}, 10687, 0, 12448, 0, - {f: 2, c: 10746}, {s: 13}, 962, {f: 10, c: 9461}, {f: 2, c: 9750}, 9649, - {f: 10, c: 12784}, 0, {f: 6, c: 12794}, {f: 15, c: 9150}, 0, 0, 10003, 0, - 9251, 9166, {f: 4, c: 9680}, {f: 2, c: 8263}, 0, 8273, 8258, - {f: 16, c: 12688}, {s: 13}, {f: 2, c: 9136}, {f: 12, c: 9842}, - {f: 2, c: 12441}, 8413, {s: 450}, 20296, 20319, 20330, 20332, 20494, 20504, - 20545, 20722, 20688, 20742, 20739, 20789, 20821, 20823, 13493, 20938, - 20962, 21079, 21196, 21206, 21243, 21276, 21347, 21405, 21522, 21631, - 21640, 21840, 21889, 21933, 21966, 22075, 22174, 22185, 22195, 22391, - 22396, 135963, 22479, 22500, 22628, 22665, 136302, 22738, 22752, 34369, - 22923, 22930, 22979, 23059, 23143, 23159, 23172, 23236, 137405, 23421, - 23443, 23570, 64060, 136884, 23674, 23695, 23711, 23715, 23722, 23760, - 138804, 23821, 23879, 23937, 23972, 23975, 24011, 24158, 24313, 24320, - 24322, 24355, 24381, 24404, 24445, 24589, 24596, 24600, 24629, 24647, - 24733, 24788, 24797, 24875, 25020, 25017, 25122, 25178, 25199, 25302, - 25468, 25573, 25721, 25796, 25808, 25897, 26013, 26170, 26146, 26155, - 26160, 26163, 26184, 143812, {f: 2, c: 26231}, 26253, 26299, 26331, 26344, - 26439, 26497, 26515, 26520, 26523, 26620, 26653, 26787, 26890, 26953, - 144836, 26946, 26980, 27045, 27087, 15286, 15299, 27113, 27125, 145215, - 27195, 145251, 27284, 27301, 15375, 27419, 27436, 27495, 27561, 27565, - 27607, 27647, 27653, 27764, 27800, 27899, 27846, 27953, 27961, 27967, - 27992, 28052, 28074, 28123, 28125, 28228, 28254, 28337, 28353, 28432, - 28505, 28513, 28542, 28556, 28576, 28604, 28615, 28618, 28656, 28750, - 28789, 28836, 28900, 28971, 28958, 28974, 29009, 29032, 29061, 29063, - 29114, 29124, 29205, 15935, 29339, 149489, 29479, 29520, 29542, 29602, - 29739, 29766, 29794, 29805, 29862, 29865, 29897, 29951, 29975, 16242, - 30158, 30210, 30216, 30308, 30337, 30365, 30378, 30390, 30414, 30420, - 30438, 30449, 30474, 30489, {f: 2, c: 30541}, 30586, 30592, 30612, 30688, - 152718, 30787, 30830, 30896, 152846, 30893, 30976, 31004, 31022, 31028, - 31046, 31097, 31176, 153457, 31188, 31198, 31211, 31213, 31365, 154052, - 31438, 31485, 31506, 31533, 31547, 31599, 31745, 31795, 155041, 31853, - 31865, 31887, 31892, 31904, 31957, 32049, 32092, 32131, 32166, 32194, - 32296, 32663, 32731, 32821, 32823, 32970, 32992, 33011, 33120, - {f: 2, c: 33127}, 33133, 33211, 33226, 33239, 17499, 33376, 33396, 158463, - 33441, {f: 2, c: 33443}, 33449, 33471, 33493, 33533, 33536, 33570, 33581, - 33594, 33607, 33661, 33703, 33743, 33745, 33761, 33793, 33798, 33887, - 33904, 33907, 33925, 33950, 33978, 159296, 34098, 34078, 34095, 34148, - 34170, 34188, 34210, 34251, 34285, 34303, {f: 2, c: 34308}, 34320, 159988, - 34328, 34360, 34391, 34402, 17821, 34421, 34488, 34556, 34695, 17898, - 34826, 34832, 35022, 161412, 35122, 35129, 35136, 35220, 35318, 35399, - 35421, 35425, 35445, 35536, 35654, 35673, 35689, 35741, 35913, 35944, - 36271, 36305, 36311, 36387, 36413, 36475, 164471, 18500, 36602, 36638, - 36653, 36692, 164813, 36840, 36846, 36872, 36909, 37015, 37043, 37054, - {f: 2, c: 37060}, 37063, 37103, 37140, 37142, {f: 2, c: 37154}, 37167, - 37172, 37251, 37361, 37705, {f: 2, c: 37732}, 37795, 37855, 37892, 37939, - 37962, 37987, 38001, 38286, 38303, 38316, 38326, 38347, 38352, 38355, - 18864, 38366, 38565, 38639, 38734, 38805, 38830, 38842, 38849, 38857, - 38875, 38998, 39143, 39256, 39427, 39617, 39619, 39630, 39638, 39682, - 39688, 19479, 39725, 39774, 39782, 39812, 39818, 39838, 39886, 39909, - 39928, 39971, {f: 2, c: 40015}, 40037, {f: 2, c: 40221}, 40259, 40274, - 40330, 40342, 40384, 40364, 40380, 172432, 40423, 40455, 40606, 40623, - 40855, 131209, 19970, 19983, 19986, 20009, 20014, 20039, 131234, 20049, - 13318, 131236, 20073, 20125, 13356, 20156, 20163, 20168, 20203, 20186, - 20209, 20213, 20246, 20324, 20279, 20286, 20312, 131603, {f: 2, c: 20343}, - 20354, 20357, 20454, 20402, 20421, 20427, 20434, 13418, 20466, 20499, - 20508, 20558, 20563, 20579, 20643, 20616, {f: 2, c: 20626}, 20629, 20650, - 131883, 20657, {f: 2, c: 20666}, 20676, 20679, 20723, 131969, 20686, - 131953, 20692, 20705, 13458, 132089, 20759, 132170, 20832, 132361, 20851, - 20867, 20875, 13500, 20888, 20899, 20909, 13511, 132566, 20979, 21010, - 21014, 132943, 21077, 21084, 21100, 21111, 21124, 21122, 133127, 21144, - 133178, 21156, {f: 2, c: 21178}, 21194, 21201, 133305, 21239, 21301, 21314, - 133500, 133533, 21351, 21370, 21412, 21428, 133843, 21431, 21440, 133917, - {f: 2, c: 13661}, 21461, 13667, 21492, 21540, 21544, 13678, 21571, 21602, - 21612, 21653, 21664, 21670, 21678, 21687, 21690, 21699, 134469, 21740, - 21743, 21745, 21747, {f: 2, c: 21760}, 21769, 21820, 21825, 13734, 21831, - 13736, 21860, 134625, 21885, 21890, 21905, 13765, 21970, 134805, 134765, - 21951, 21961, 21964, 21969, 21981, 13786, 21986, 134756, 21993, 22056, - 135007, 22023, 22032, 22064, 13812, 22077, 22080, 22087, 22110, 22112, - 22125, 13829, 22152, 22156, 22173, 22184, 22194, 22213, 22221, 22239, - 22248, {f: 2, c: 22262}, 135681, 135765, 22313, 135803, {f: 2, c: 22341}, - 22349, 135796, 22376, 22383, {f: 3, c: 22387}, 22395, 135908, 135895, - 22426, {f: 2, c: 22429}, 22440, 22487, 135933, 22476, 135990, 136004, - 22494, 22512, 13898, 22520, 22523, 22525, 22532, 22558, 22567, 22585, - 136132, 22601, 22604, 22631, {f: 2, c: 22666}, 22669, {f: 2, c: 22671}, - 22676, 22685, 22698, 22705, 136301, 22723, 22733, 22754, {f: 2, c: 22771}, - {f: 2, c: 22789}, 22797, 22804, 136663, 13969, 22845, 13977, 22854, 13974, - 158761, 22879, 136775, {f: 2, c: 22901}, 22908, 22943, 22958, 22972, 22984, - 22989, 23006, 23015, 23022, 136966, 137026, 14031, 23053, 23063, 23079, - 23085, 23141, 23162, 23179, 23196, {f: 2, c: 23199}, 23202, 23217, 23221, - 23226, 23231, 23258, 23260, 23269, 23280, 23278, 23285, 23304, 23319, - 23348, 23372, 23378, 23400, 23407, 23425, 23428, 137667, 23446, 23468, - {f: 2, c: 14177}, 23502, 23510, 14188, 14187, 23537, 23549, 14197, 23555, - 23593, 138326, 23647, {f: 2, c: 23655}, 23664, 138541, 138565, 138616, - 138594, 23688, 23690, 14273, 138657, 138652, 23712, 23714, 23719, 138642, - 23725, 23733, 138679, 23753, 138720, 138803, 23814, 23824, 23851, 23837, - 23840, 23857, 23865, 14312, 23905, 23914, 14324, 23920, 139038, 14333, - 23944, 14336, 23959, 23984, 23988, 139126, 24017, 24023, 139258, 24036, - 24041, 14383, 14390, 14400, 24095, 24126, 24137, 14428, 24150, 14433, - {f: 2, c: 24173}, 139643, 24229, 24236, 24249, 24262, 24281, 140062, 24317, - 24328, 140205, 24350, 24391, 24419, 24434, 24446, 24463, 24482, 24519, - 24523, {f: 3, c: 24530}, 24546, {f: 2, c: 24558}, 24563, 14615, 24610, - 24612, 14618, 24652, 24725, 24744, 141043, 24753, 24766, 24776, 24793, - 24814, 24821, 24848, 24857, 24862, 24890, 14703, 24897, 24902, 24928, - 141403, {f: 2, c: 24978}, 24983, 24997, 25005, 141483, 25045, 25053, 25077, - 141711, 25123, 25170, 25185, 25188, 25211, 25197, 25203, 25241, 25301, - 142008, 25341, 25347, 25360, {f: 2, c: 142159}, 25394, 25397, - {f: 2, c: 25403}, 25409, 25412, 25422, 142150, 25433, 142365, 142246, - 25452, 25497, 142372, 25492, 25533, {f: 2, c: 25556}, 25568, - {f: 2, c: 25579}, 25586, 25630, 25637, 25641, 25647, 25690, 25693, 25715, - 25725, 25735, 25745, 25759, {f: 2, c: 25803}, 25813, 25815, 142817, 25828, - 25855, 14958, 25871, 25876, 14963, 25886, 25906, 25924, 25940, 25963, - 25978, 25988, 25994, 26034, 26037, 26040, 26047, 26057, 26068, 15062, - 26105, 26108, 26116, 26120, 26145, 26154, 26181, 26193, 26190, 15082, - 143811, 143861, 143798, 26218, {f: 2, c: 26220}, 26235, 26240, 26256, - 26258, 15118, 26285, 26289, 26293, 15130, 15132, 15063, 26369, 26386, - 144242, 26393, 144339, 144338, 26445, 26452, 26461, 144336, 144356, 144341, - 26484, 144346, 26514, 144351, 33635, 26640, 26563, 26568, 26578, 26587, - 26615, 144458, 144465, 144459, 26648, 26655, 26669, 144485, 26675, 26683, - 26686, 26693, 26697, 26700, 26709, 26711, 15223, 26731, 26734, 26748, - 26754, 26768, 26774, 15213, {f: 3, c: 26776}, 26780, {f: 2, c: 26794}, - 26804, 26811, 26875, 144612, 144730, 26819, 26821, 26828, 26841, - {f: 2, c: 26852}, 26860, 26871, 26883, 26887, 15239, 144788, 15245, 26950, - 26985, 26988, 27002, 27026, 15268, 27030, 27056, 27066, 27068, 27072, - 27089, 144953, 144967, 144952, 27107, {f: 2, c: 27118}, 27123, 15309, - 27124, 27134, 27153, 27162, 27165, 145180, {f: 2, c: 27186}, 27199, 27209, - 27258, 27214, 27218, 27236, 145164, 27275, 15344, 27297, 145252, 27307, - 27325, 27334, 27348, 27344, 27357, 145407, 145383, {f: 3, c: 27377}, 27389, - 145444, 27403, {f: 3, c: 27407}, 145469, 27415, 15398, 27439, 27466, 27480, - 27500, 27509, [11934, 27514], 27521, 27547, 27566, 146072, 27581, - {f: 3, c: 27591}, 27610, {f: 2, c: 27622}, 27630, 27650, 27658, 27662, - 27702, 146559, 27725, 27739, 27757, 27780, 27785, 15555, 27796, 27799, - 27821, 27842, 15570, 27868, 27881, 27885, 146688, 27904, 27940, - {f: 2, c: 27942}, 27751, 27951, 27964, 27995, 28000, 28016, - {f: 2, c: 28032}, 28042, 28045, 28049, 28056, 146752, 146938, 146937, - 146899, 28075, 28078, 28084, 28098, 27956, 28104, 28110, 28127, 28150, - 28214, 28190, 15633, 28210, {f: 2, c: 28232}, {f: 2, c: 28235}, 28239, - {f: 2, c: 28243}, 28247, 28259, 15646, 28307, 28327, 28340, 28355, 28469, - 28395, 28409, 28411, 28426, 28428, 28440, 28453, 28470, 28476, 147326, - 28498, 28503, 28512, 28520, 28560, 28566, 28606, 28575, 28581, 28591, - 15716, {f: 2, c: 28616}, 28649, 147606, 28668, 28672, 28682, 28707, 147715, - 28730, 28739, 28743, 28747, 15770, 28773, 28777, 28782, 28790, 28806, - 28823, 147910, 28831, 28849, 147966, 28908, 28874, 28881, 28931, 28934, - 28936, 28940, 15808, 28975, 29008, 29011, 29022, 15828, 29078, 29056, - 29083, 29088, 29090, {f: 2, c: 29102}, 148412, 29145, 29148, 29191, 15877, - 29236, 29241, 29250, 29271, 29283, 149033, {f: 2, c: 29294}, 29304, 29311, - 29326, 149157, 29358, 29360, 29377, 15968, 29388, 15974, 15976, 29427, - 29434, 29447, 29458, {f: 2, c: 29464}, 16003, 29497, 29484, 29491, 29501, - 29522, 16020, 29547, 149654, {f: 2, c: 29550}, 29553, 29569, 29578, 29588, - 29592, 29596, 29605, 29625, 29631, 29637, 29643, 29665, 29671, 29689, - 29715, 29690, 29697, 29779, 29760, 29763, 29778, 29789, 29825, 29832, - 150093, 29842, 29847, 29849, 29857, 29861, 29866, 29881, 29883, 29882, - 29910, 29912, 29931, 150358, 29946, 150383, 29984, 29988, 29994, 16215, - 150550, {f: 2, c: 30013}, 30016, 30024, 30032, 30034, 30066, 30065, 30074, - {f: 2, c: 30077}, 30092, 16245, 30114, 16247, 30128, 30135, - {f: 2, c: 30143}, 30150, 30159, 30163, 30173, {f: 2, c: 30175}, 30183, - 30190, 30193, 30211, 30232, 30215, 30223, 16302, 151054, 30227, - {f: 2, c: 30235}, 151095, 30245, 30248, 30268, 30259, 151146, 16329, 30273, - 151179, 30281, 30293, 16343, 30318, 30357, 30369, 30368, {f: 2, c: 30375}, - 30383, 151626, 30409, 151637, 30440, 151842, 30487, 30490, 30509, 30517, - 151977, 16441, 152037, 152013, 30552, 152094, 30588, 152140, 16472, 30618, - 30623, 30626, 30628, {f: 2, c: 30686}, 30692, 30698, 30700, 30715, 152622, - 30725, 30729, 30733, 30745, 30764, 30791, 30826, 152793, 30858, 30868, - 30884, 30877, 30879, 30907, 30933, 30950, {f: 2, c: 30969}, 30974, 152999, - 30992, 31003, 31013, 31050, 31064, 16645, 31079, 31090, 31125, 31137, - 31145, 31156, 31170, 31175, {f: 2, c: 31180}, 31190, 16712, 153513, 153524, - 16719, 31242, 31253, 31259, 16739, 31288, 31303, 31318, 31321, 31324, - 31327, 31335, 31338, 31349, 31362, 31370, 31376, 31404, 154068, 16820, - 31417, 31422, 16831, 31436, 31464, 31476, 154340, 154339, 154353, 31549, - 31530, {f: 2, c: 31534}, 16870, 16883, 31615, 31553, 16878, 31573, 31609, - 31588, 31590, 31603, 154546, 16903, 31632, 31643, 16910, 31669, 31676, - 31685, 31690, 154699, 154724, 31700, 31702, 31706, 31722, 31728, 31747, - 31758, 31813, 31818, 31831, 31838, 31841, 31849, 31855, 155182, 155222, - 155237, 31910, 155234, {f: 2, c: 31926}, 155352, 31940, 155330, 31949, - 155368, 155427, 31974, 155484, 31989, 32003, 17094, 32018, 32030, 155616, - 155604, {f: 2, c: 32061}, 32064, 32071, 155660, 155643, 17110, 32090, - 32106, 32112, 17117, 32127, 155671, 32136, 32151, 155744, 32157, 32167, - 32170, 32182, 32192, 32215, 32217, 32230, 17154, 155885, 64088, 32272, - 32279, 32285, 32295, 32300, 32325, 32373, 32382, {f: 2, c: 32390}, 17195, - 32410, 17219, 32572, 32571, 32574, 32579, 13505, 156272, 156294, - {f: 2, c: 32611}, 32621, {f: 2, c: 32637}, 32656, 20859, 146702, 32662, - 32668, 32685, 156674, 32707, 32719, 32739, 32754, 32778, 32776, 32790, - 32812, 32816, 32835, 32870, 32891, 32921, 32924, 32932, 32935, 32952, - 157310, 32965, 32981, 32998, 33037, 33013, 33019, 17390, 33077, 33054, - 17392, 33060, 33063, 33068, 157469, 33085, 17416, 33129, 17431, 17436, - 33157, 17442, 33176, 33202, 33217, 33219, 33238, 33243, 157917, 33252, - 157930, 33260, 33277, 33279, 158063, 33284, 158173, 33305, 33314, 158238, - 33340, 33353, 33349, 158296, 17526, 17530, 33367, 158348, 33372, 33379, - 158391, 17553, 33405, 33407, 33411, 33418, 33427, {f: 2, c: 33447}, 33458, - 33460, 33466, 33468, 33506, 33512, 33527, {f: 2, c: 33543}, 33548, 33620, - 33563, 33565, 33584, 33596, 33604, 33623, 17598, 17620, 17587, - {f: 2, c: 33684}, 33691, 33693, 33737, 33744, 33748, 33757, 33765, 33785, - 33813, 158835, 33815, 33849, 33871, {f: 2, c: 33873}, {f: 2, c: 33881}, - 33884, 158941, 33893, 33912, 33916, 33921, 17677, 33943, 33958, 33982, - 17672, {f: 2, c: 33998}, 34003, 159333, 34023, 34026, 34031, 34033, 34042, - 34075, {f: 2, c: 34084}, 34091, 34127, 34159, 17731, 34129, - {f: 2, c: 34145}, 159636, 34171, 34173, 34175, 34177, 34182, 34195, 34205, - 34207, 159736, {f: 2, c: 159734}, 34236, 34247, 34250, {f: 2, c: 34264}, - 34271, 34273, 34278, 34294, 34304, 34321, 34334, 34337, 34340, 34343, - 160013, 34361, 34364, 160057, 34368, 34387, 34390, 34423, 34439, 34441, - {f: 2, c: 34460}, 34481, 34483, 34497, 34499, 34513, 34517, 34519, 34531, - 34534, 17848, 34565, 34567, 34574, 34576, 34591, 34593, 34595, 34609, - 34618, 34624, 34627, 34641, 34648, {f: 2, c: 34660}, 34674, 34684, 160731, - 160730, 34727, 34697, 34699, 34707, 34720, 160766, 17893, 34750, 160784, - 34753, 34766, 34783, 160841, 34787, {f: 2, c: 34789}, 34794, 34835, 34856, - 34862, 34866, 34876, 17935, 34890, 34904, 161301, 161300, 34921, 161329, - 34927, 34976, 35004, 35008, 161427, 35025, 35027, 17985, 35073, 161550, - 35127, 161571, 35138, 35141, 35145, 161618, 35170, 35209, 35216, 35231, - 35248, 35255, 35288, 35307, 18081, 35315, 35325, 35327, 18095, 35345, - 35348, 162181, 35361, 35381, 35390, 35397, 35405, 35416, 35502, 35472, - 35511, 35543, 35580, 162436, 35594, 35589, 35597, 35612, 35629, 18188, - 35665, 35678, 35702, 35713, 35723, {f: 2, c: 35732}, 35897, 162739, 35901, - 162750, 162759, 35909, 35919, 35927, 35945, 35949, 163000, 35987, 35986, - 35993, 18276, 35995, 36054, 36053, 163232, 36081, 163344, 36105, 36110, - 36296, 36313, 36364, 18429, 36349, 36358, 163978, 36372, 36374, - {f: 2, c: 36385}, 36391, 164027, 18454, 36406, 36409, 36436, 36450, 36461, - 36463, 36504, 36510, 36533, 36539, 164482, 18510, 164595, 36608, 36616, - 36651, 36672, 36682, 36696, 164876, 36772, 36788, 164949, 36801, 36806, - 64036, 36810, 36813, 36819, 36821, 36849, 36853, 36859, 36876, 36919, - 165227, 36931, 36957, {f: 2, c: 165320}, 36997, 37004, 37008, 37025, 18613, - 37040, 37046, 37059, 37064, 165591, 37084, 37087, 165626, 37110, 37106, - 37120, 37099, {f: 2, c: 37118}, 37124, 37126, 37144, 37150, 37175, 37177, - {f: 2, c: 37190}, 37207, 37209, 37236, 37241, 37253, 37299, 37302, - {f: 2, c: 37315}, 166217, 166214, 37356, 37377, {f: 2, c: 37398}, 166251, - 37442, 37450, 37462, 37473, 37477, 37480, 166280, {f: 2, c: 37500}, 37503, - 37513, 37517, 37527, 37529, 37535, 37547, {f: 2, c: 166330}, 37554, - {f: 2, c: 37567}, 37574, 37582, 37605, 37649, 166430, 166441, 37623, 37673, - 166513, 166467, 37713, 37722, 37739, 37745, 37747, 37793, 166553, 166605, - 37768, 37771, 37775, 37790, 37877, 166628, 166621, 37873, 37831, 37852, - 37863, 37897, {f: 2, c: 37910}, 37883, 37938, 37947, 166849, 166895, 37997, - 37999, 38265, 38278, {f: 2, c: 38284}, 167184, 167281, 38344, 167419, - 167455, 38444, {f: 2, c: 38451}, 167478, 38460, 38497, 167561, 38530, - 167659, 38554, 167730, 18919, 38579, 38586, 38589, 18938, 167928, 38616, - 38618, 38621, 18948, 38676, 38691, 18985, 38710, 38721, 38727, 38743, - 38747, 38762, 168608, 168625, 38806, 38814, {f: 2, c: 38833}, 38846, 38860, - 38865, 38868, 38872, 38881, 38897, 38916, 38925, 38932, 38934, 19132, - 169104, {f: 2, c: 38962}, 38949, 38983, 39014, 39083, 39085, 39088, 169423, - 39095, {f: 2, c: 39099}, 39106, 39111, 39115, 39137, 39139, 39146, - {f: 2, c: 39152}, 39155, 39176, 19259, 169712, {f: 2, c: 39190}, 169753, - {f: 3, c: 39194}, 169808, 39217, {f: 3, c: 39226}, 39233, 39238, 39246, - 39264, 39331, 39334, 39357, 39359, 39363, 39380, 39385, 39390, 170182, - 39408, 39417, 39420, 39434, 39441, 39450, 39456, 39473, 39492, 39500, - 39512, 19394, 39599, 19402, 39607, 19410, 39609, 170610, 39622, 39632, - 39634, 39637, 39648, 39653, 39657, 39692, 39696, 39698, 39702, 39708, - 39723, 39741, 19488, 39755, 39779, 39781, {f: 2, c: 39787}, - {f: 2, c: 39798}, 39846, 39852, 171483, 39858, 39864, 39870, 39923, 39896, - 39901, 39914, 39919, 39918, 171541, 171658, 171593, 39958, - {f: 3, c: 39960}, 39965, 39970, 39977, 171716, 39985, 39991, 40005, 40028, - 171753, {f: 2, c: 40009}, 171739, 40020, 40024, 40027, 40029, 40031, - {f: 3, c: 40041}, {f: 2, c: 40045}, 40050, 40053, 40058, 40166, 40178, - 40203, [171982, 171991], 40209, {f: 2, c: 40215}, 172079, 19652, 172058, - 40242, 19665, 40266, 40287, 40290, 172281, 172162, 40307, {f: 2, c: 40310}, - 40324, 40345, 40353, 40383, 40373, 40377, 40381, 40393, 40410, 40416, - 40419, 19719, 40458, 40450, 40461, 40476, 40571, 139800, 40576, 40581, - 40603, 172940, 40637, 173111, 40671, 40703, 40706, 19831, 40707, 40762, - 40765, 40774, 40787, 40789, 40792, 173553, 40797, 173570, 40809, 40813, - 40816, 173746, 11948, 13844, 14509, 15820, 16348, 17854, 17936, 19326, - 19512, 19681, 19980, {f: 2, c: 20003}, 20089, 20211, 20236, 20249, 20267, - 20270, 20273, 20356, 20382, 20407, 20484, 20492, 20556, 20575, 20578, - 20599, 20622, 20638, 20642, 20675, 20712, 20721, 20734, 20743, - {f: 3, c: 20748}, 20787, 20792, 20852, 20868, 20920, 20922, 20936, 20943, - 20945, {f: 2, c: 20947}, 20952, 20959, 20997, 21030, 21032, 21035, - {f: 2, c: 21041}, 21045, 21052, 21082, 21088, 21102, {f: 2, c: 21112}, - 21130, 21132, 21217, 21225, 21233, 21251, 21265, 21279, 21293, 21298, - 21309, 21349, 21357, 21369, 21374, 21396, 21401, 21418, 21423, 21434, - 21441, {f: 2, c: 21444}, 21472, 21523, 21546, 21553, {f: 2, c: 21556}, - 21580, 21671, 21674, 21681, 21691, 21710, 21738, 21756, 21765, 21768, - 21781, 21799, 21802, 21814, 21841, 21862, 21903, 21906, 21908, 21924, - 21938, 21955, 21958, 21971, 21979, 21996, 21998, 22001, 22006, 22008, - 22021, 22029, {f: 2, c: 22033}, 22060, 22069, 22073, 22093, 22100, 22149, - 22175, 22182, 22199, 22220, 22223, 22233, 22241, 22251, 22253, 22257, - 22279, 22284, {f: 2, c: 22298}, 22301, 22316, 22318, {f: 2, c: 22333}, - 22367, 22379, 22381, 22394, 22403, 22423, 22446, 22485, 22503, 22541, - 22566, 22605, 22607, 22623, 22637, 22655, 22657, 22680, 22716, 22815, - 22819, 22873, 22905, 22935, 22959, 22963, 23007, 23025, 23032, 23218, - 23224, 23274, 23286, 23323, 23325, 23329, 23352, 23479, 23511, 23520, - 23583, 23594, 23596, 23606, 23641, 23644, 23661, 23773, 23809, 23860, - 23869, 23897, 23934, 23939, 24007, 24057, 24104, 24114, 24117, 24155, - 24168, 24170, 24183, 24192, 24203, 24243, 24253, 24273, {f: 2, c: 24276}, - 24397, 24492, 24554, 24583, 24649, 24660, 24679, 24763, 24772, 24829, - 24842, 24854, 24874, 24886, 24926, 24932, 24955, 24957, 24959, 24989, - 25016, 25052, 25058, 25061, 25064, 25092, 25095, 25137, 25145, 25149, - 25210, 25232, 25256, 25306, 25332, 25366, 25386, 25398, 25414, 25419, - 25427, 25457, 25461, 25471, 25474, 25482, {f: 2, c: 25518}, 25578, - {f: 2, c: 25592}, 25618, 25624, 25632, 25636, 25642, 25653, 25661, 25663, - 25682, 25695, 25716, 25744, {f: 2, c: 25752}, 25772, 25779, 25837, 25840, - 25883, 25887, 25902, 25929, 25952, 26002, 26005, 26036, 26046, 26056, - 26062, 26064, 26079, 26238, {f: 2, c: 26251}, 26291, 26304, 26319, 26405, - 26421, 26453, 26496, 26511, 26513, 26532, 26545, 26549, 26558, 26664, - 26758, 26859, 26869, 26903, 26931, 26936, 26971, 26981, 27048, 27051, - 27055, 27109, 27121, 27210, 27221, 27239, 27249, 27311, {f: 2, c: 27336}, - 27395, 27451, 27455, {f: 2, c: 27517}, 27568, 27639, 27641, 27652, 27657, - 27661, 27692, 27722, 27730, 27732, 27769, 27820, 27828, 27858, 28001, - 28028, 28089, 28144, 28229, 28275, 28283, 28285, 28297, 28348, - {f: 2, c: 28378}, 28454, 28457, 28464, 28551, 28573, 28590, 28599, 28685, - 28704, 28745, 28824, 28848, {f: 2, c: 28885}, 28997, 29106, 29172, 29207, - 29215, 29251, {f: 2, c: 29263}, 29274, 29280, 29288, 29303, 29316, 29385, - 29413, 29428, 29442, 29451, 29470, 29474, {f: 2, c: 29498}, 29517, 29528, - 29543, 29810, 29871, 29919, 29924, 29940, 29947, 29974, 29985, 30015, - 30046, 30105, 30116, 30145, 30148, 30156, 30167, 30172, 30177, 30191, - 30212, 30220, 30237, 30258, 30264, 30277, 30282, 30303, 30381, 30397, - 30425, 30443, 30448, 30457, 30464, 30478, 30498, 30504, 30511, 30521, - 30526, 30533, 30538, 30543, 30558, 30564, 30567, 30572, 30596, - {f: 2, c: 30604}, 30614, 30631, 30639, 30647, 30654, 30665, 30673, 30681, - 30705, 30775, 30812, 30846, 30872, 30881, 30897, 30899, 30921, 30931, - 30988, 31007, {f: 2, c: 31015}, 31039, 31042, 31060, 31083, 31100, 31147, - 31172, 31210, 31234, 31244, 31280, 31290, 31300, 31360, 31366, 31380, - 31413, 31421, 31486, 31531, 31607, 31648, 31660, 31664, 31720, 31730, - 31736, 31740, 31742, 31753, 31784, 31791, 31810, {f: 2, c: 31826}, - {f: 3, c: 31835}, 31858, 31869, 31879, 31902, 31930, 31943, 31955, 31962, - 32060, 32077, 32130, 32133, 32141, 32145, 32158, 32179, 32185, 32208, - 32229, {f: 2, c: 32245}, 32303, 32310, 32324, 32367, 32376, 32385, 32573, - 32603, 32605, 32613, 32625, {f: 2, c: 32639}, 32651, 32674, - {f: 3, c: 32765}, 32775, 32781, 32798, 32825, 32904, 32910, 32975, 32980, - 33005, 33008, 33015, 33018, 33022, 33027, 33047, 33072, 33111, 33135, - 33139, 33163, 33168, 33179, 33182, 33227, 33237, {f: 2, c: 33245}, 33249, - 33263, 33270, 33280, 33291, {f: 2, c: 33299}, 33306, 33338, 33348, 33389, - 33412, 33417, 33425, 33450, 33456, 33488, 33514, 33519, 33526, 33622, - 33656, 33784, 33788, 33880, 33939, 33969, 33981, 34043, 34118, 34134, - 34141, 34181, 34200, 34370, 34374, 34496, 34580, 34594, 34606, 34617, - 34653, 34683, 34700, 34702, {f: 2, c: 34711}, 34718, 34723, 34734, 34751, - 34761, 34778, 34840, 34843, 34861, 34874, 34885, 34891, 34894, 34901, - 34906, 34926, {f: 3, c: 34970}, 35021, 35040, 35055, {f: 2, c: 35086}, - 35110, 35125, 35162, 35164, 35179, 35184, 35196, 35237, 35253, 35260, - 35285, 35401, 35415, 35431, 35454, 35462, 35478, 35510, 35529, 35537, - 35549, 35564, 35573, 35590, 35599, 35601, 35653, 35666, 35693, 35704, - 35708, 35710, 35717, 35743, 35915, 35923, 35963, 36026, 36037, 36041, - 36050, 36076, 36085, 36087, 36097, 36099, 36119, 36124, 36206, 36241, - 36255, 36267, 36274, 36309, 36327, {f: 2, c: 36337}, 36340, 36353, 36363, - 36390, 36401, {f: 2, c: 36416}, 36429, 36431, 36444, 36449, 36457, 36465, - 36469, 36471, 36489, 36496, 36501, 36506, 36519, 36521, 36525, 36584, - 36592, 36615, 36632, 36645, 36647, 36652, 36661, 36666, 36675, 36679, - 36689, 36693, {f: 3, c: 36768}, 36773, 36868, 36891, 36911, 36940, 36955, - 36976, 36980, 36985, 37003, 37016, 37024, 37042, 37053, 37065, 37104, - 37125, 37157, 37210, 37223, 37242, 37258, 37265, 37269, 37296, 37307, - 37309, 37314, 37317, 37376, 37385, 37411, 37494, 37518, 37551, - {f: 2, c: 37563}, 37569, 37571, 37573, 37576, 37652, 37683, 37686, 37720, - 37759, 37762, 37770, 37819, 37836, 37862, 37881, 37890, {f: 2, c: 37901}, - 37934, 37964, 38280, 38305, 38335, 38342, 38345, {f: 2, c: 38353}, 38368, - 38372, 38374, 38436, 38449, 38456, 38461, 38484, 38516, 38523, 38527, - 38529, 38531, 38537, 38550, 38574, 38659, 38683, {f: 2, c: 38689}, 38696, - 38705, 38759, 38774, 38781, 38783, 38809, 38815, 38828, 38841, 38861, - 38880, 38895, 38919, 38950, 38958, {f: 2, c: 39010}, 39092, 39109, 39170, - 39185, 39189, 39221, 39240, 39252, 39262, 39393, 39436, 39440, 39459, - 39489, 39505, {f: 2, c: 39613}, 39681, 39689, 39691, {f: 2, c: 39693}, - 39705, 39733, 39752, 39765, 39784, 39808, 39814, 39824, 39837, 39856, - 39871, 39880, 39935, 39938, 39964, 39989, 40004, 40022, 40033, 40040, - 40240, 40253, 40298, 40315, 40421, 40425, 40435, 40570, {f: 3, c: 40578}, - 40624, 40676, 40688, 40690, 40713, 40719, 40724, 40731, 40738, 40742, - {f: 2, c: 40746}, 40756, 40794, 40815, 40862, 40869, 131317, 151044, - 151538, 163187, 194581, 194630, 194713, 194726, 194789, 195038, 13790, - {s: 4}, 172722, 0, 0, 131416, {s: 4}, 132529, 0, 0, 132844, {s: 6}, 134488, - {s: 21}, 154060, {s: 9}, 14756, 14776, 142914, 0, 0, 14940, 0, 0, 143339, - 0, 0, 162228, 0, 15044, 15051, {s: 5}, 14981, {s: 8}, 15347, 27384, {s: 5}, - 15665, {s: 9}, 147531, 0, 15936, 14497, {s: 34}, 158878, {s: 12}, 18207, - 162876, {s: 4}, 18462, {s: 71}, 39709, 39724, 20482, 20958, 21255, 23532, - 63784, 26142, 63785, 28746, 64021, 21857, 27706, 31328, 156492, 34819, - 38315, 38741, 171581, 173594], - 'Adobe-Korea1': [{f: 95, c: 32}, 8361, 8208, 169, 0, 0, [12288, 12644], - {f: 2, c: 12289}, 12539, 8229, [8230, 8943], 168, 12291, {f: 2, c: 8211}, - 8214, 65340, 65374, {f: 2, c: 8216}, {f: 2, c: 8220}, {f: 2, c: 12308}, - {f: 10, c: 12296}, 177, 215, 247, 8800, {f: 2, c: 8804}, 8734, 8756, 176, - {f: 2, c: 8242}, 8451, 8491, {f: 2, c: 65504}, 65509, 9794, 9792, 8736, - 8869, 8978, 8706, 8711, 8801, 8786, 167, 8251, 9734, 9733, 9675, 9679, - 9678, 9671, 9670, 9633, 9632, 9651, 9650, 9661, 9660, 8594, - {f: 2, c: 8592}, {f: 2, c: 8595}, 12307, 171, 187, 8730, 8765, 8733, 8757, - {f: 2, c: 8747}, 8712, 8715, {f: 2, c: 8838}, {f: 2, c: 8834}, 8746, 8745, - {f: 2, c: 8743}, 65506, 8658, 8660, 8704, 8707, 180, 732, 711, 728, 733, - 730, 729, 184, 731, 161, 191, 8758, 8750, 8721, 8719, 164, 8457, 8240, - 9665, 9664, 9655, 9654, 9828, {f: 2, c: 9824}, 9829, 9831, 9827, 9673, - 9672, 9635, {f: 2, c: 9680}, 9618, {f: 2, c: 9636}, 9640, 9639, 9638, 9641, - 9832, 9743, 9742, 9756, 9758, 182, {f: 2, c: 8224}, 8597, 8599, 8601, 8598, - 8600, 9837, {f: 2, c: 9833}, 9836, 12927, 12828, 8470, 13255, 8482, 13250, - 13272, 8481, {f: 59, c: 65281}, 65510, {f: 33, c: 65341}, 65507, - {f: 51, c: 12593}, {f: 42, c: 12645}, {f: 10, c: 8560}, {f: 10, c: 8544}, - {f: 17, c: 913}, {f: 7, c: 931}, {f: 17, c: 945}, {f: 7, c: 963}, 9472, - 9474, 9484, 9488, 9496, 9492, 9500, 9516, 9508, 9524, 9532, 9473, 9475, - 9487, 9491, 9499, 9495, 9507, 9523, 9515, 9531, 9547, 9504, 9519, 9512, - 9527, 9535, 9501, 9520, 9509, 9528, 9538, 9490, 9489, 9498, 9497, 9494, - 9493, 9486, 9485, {f: 2, c: 9502}, {f: 2, c: 9505}, {f: 2, c: 9510}, - {f: 2, c: 9513}, {f: 2, c: 9517}, {f: 2, c: 9521}, {f: 2, c: 9525}, - {f: 2, c: 9529}, {f: 2, c: 9533}, {f: 2, c: 9536}, {f: 8, c: 9539}, - {f: 3, c: 13205}, 8467, 13208, 13252, {f: 4, c: 13219}, {f: 10, c: 13209}, - 13258, {f: 3, c: 13197}, 13263, {f: 2, c: 13192}, 13256, {f: 2, c: 13223}, - {f: 10, c: 13232}, {f: 5, c: 13184}, {f: 6, c: 13242}, {f: 5, c: 13200}, - 8486, {f: 2, c: 13248}, {f: 3, c: 13194}, 13270, 13253, {f: 3, c: 13229}, - 13275, {f: 4, c: 13225}, 13277, 13264, 13267, 13251, 13257, 13276, 13254, - 198, 208, 170, 294, 306, 319, 321, 216, 338, 186, 222, 358, 330, - {f: 28, c: 12896}, {f: 26, c: 9424}, {f: 15, c: 9312}, 189, - {f: 2, c: 8531}, 188, 190, {f: 4, c: 8539}, 230, 273, 240, 295, 305, 307, - 312, 320, 322, 248, 339, 223, 254, 359, 331, 329, {f: 28, c: 12800}, - {f: 26, c: 9372}, {f: 15, c: 9332}, 185, {f: 2, c: 178}, 8308, 8319, - {f: 4, c: 8321}, {f: 83, c: 12353}, {f: 86, c: 12449}, {f: 6, c: 1040}, - 1025, {f: 32, c: 1046}, 1105, {f: 26, c: 1078}, {f: 2, c: 44032}, 44036, - {f: 4, c: 44039}, {f: 8, c: 44048}, {f: 5, c: 44057}, 44064, 44068, - {f: 2, c: 44076}, {f: 3, c: 44079}, {f: 2, c: 44088}, 44092, 44096, 44107, - 44109, 44116, 44120, 44124, {f: 2, c: 44144}, 44148, {f: 2, c: 44151}, - 44154, {f: 2, c: 44160}, {f: 4, c: 44163}, {f: 4, c: 44169}, 44176, 44180, - {f: 2, c: 44188}, {f: 3, c: 44191}, {f: 3, c: 44200}, 44204, - {f: 2, c: 44207}, {f: 2, c: 44216}, {f: 3, c: 44219}, 44225, 44228, 44232, - 44236, 44245, 44247, {f: 2, c: 44256}, 44260, {f: 2, c: 44263}, 44266, - 44268, {f: 3, c: 44271}, 44275, {f: 2, c: 44277}, {f: 2, c: 44284}, 44288, - 44292, 44294, {f: 2, c: 44300}, 44303, 44305, 44312, 44316, 44320, 44329, - {f: 2, c: 44332}, {f: 2, c: 44340}, 44344, 44348, {f: 2, c: 44356}, 44359, - 44361, 44368, 44372, 44376, 44385, 44387, {f: 2, c: 44396}, 44400, - {f: 4, c: 44403}, {f: 3, c: 44411}, 44415, {f: 2, c: 44417}, - {f: 2, c: 44424}, 44428, 44432, {f: 2, c: 44444}, 44452, 44471, - {f: 2, c: 44480}, 44484, 44488, {f: 2, c: 44496}, 44499, 44508, 44512, - 44516, {f: 2, c: 44536}, 44540, {f: 3, c: 44543}, {f: 2, c: 44552}, 44555, - 44557, 44564, {f: 2, c: 44592}, 44596, {f: 2, c: 44599}, 44602, - {f: 2, c: 44608}, 44611, {f: 2, c: 44613}, 44618, {f: 3, c: 44620}, 44624, - 44628, 44630, {f: 2, c: 44636}, {f: 3, c: 44639}, 44645, {f: 2, c: 44648}, - 44652, 44656, {f: 2, c: 44664}, {f: 3, c: 44667}, {f: 2, c: 44676}, 44684, - {f: 3, c: 44732}, 44736, 44740, {f: 2, c: 44748}, {f: 3, c: 44751}, - {f: 2, c: 44760}, 44764, 44776, 44779, 44781, 44788, 44792, 44796, - {f: 2, c: 44807}, 44813, 44816, {f: 2, c: 44844}, 44848, 44850, 44852, - {f: 2, c: 44860}, 44863, {f: 3, c: 44865}, {f: 2, c: 44872}, 44880, - {f: 2, c: 44892}, {f: 2, c: 44900}, 44921, 44928, 44932, 44936, - {f: 2, c: 44944}, 44949, 44956, {f: 2, c: 44984}, 44988, 44992, - {f: 3, c: 44999}, 45003, {f: 2, c: 45005}, 45012, 45020, {f: 2, c: 45032}, - {f: 2, c: 45040}, 45044, 45048, {f: 2, c: 45056}, 45060, 45068, 45072, - 45076, {f: 2, c: 45084}, 45096, {f: 2, c: 45124}, 45128, 45130, 45132, - 45134, {f: 3, c: 45139}, 45143, 45145, 45149, {f: 2, c: 45180}, 45184, - 45188, {f: 2, c: 45196}, 45199, 45201, {f: 3, c: 45208}, 45212, - {f: 4, c: 45215}, {f: 2, c: 45224}, {f: 5, c: 45227}, 45233, - {f: 3, c: 45235}, 45240, 45244, {f: 2, c: 45252}, {f: 3, c: 45255}, - {f: 2, c: 45264}, 45268, 45272, 45280, 45285, {f: 2, c: 45320}, - {f: 2, c: 45323}, 45328, {f: 2, c: 45330}, {f: 2, c: 45336}, - {f: 3, c: 45339}, {f: 3, c: 45347}, 45352, 45356, {f: 2, c: 45364}, - {f: 3, c: 45367}, {f: 2, c: 45376}, 45380, 45384, {f: 2, c: 45392}, - {f: 2, c: 45396}, 45400, 45404, 45408, {f: 2, c: 45432}, 45436, 45440, - 45442, {f: 2, c: 45448}, 45451, 45453, {f: 3, c: 45458}, 45464, 45468, - 45480, 45516, 45520, 45524, {f: 2, c: 45532}, 45535, {f: 2, c: 45544}, - 45548, 45552, 45561, 45563, 45565, {f: 2, c: 45572}, 45576, - {f: 2, c: 45579}, {f: 2, c: 45588}, 45591, 45593, 45600, 45620, 45628, - 45656, 45660, 45664, {f: 2, c: 45672}, {f: 2, c: 45684}, 45692, - {f: 2, c: 45700}, 45705, {f: 2, c: 45712}, 45716, {f: 3, c: 45720}, - {f: 2, c: 45728}, 45731, {f: 2, c: 45733}, 45738, 45740, 45744, 45748, - {f: 2, c: 45768}, 45772, 45776, 45778, {f: 2, c: 45784}, 45787, 45789, - 45794, {f: 3, c: 45796}, 45800, {f: 5, c: 45803}, {f: 3, c: 45811}, - {f: 5, c: 45815}, {f: 3, c: 45823}, 45828, 45832, {f: 2, c: 45840}, - {f: 3, c: 45843}, 45852, {f: 3, c: 45908}, 45912, {f: 2, c: 45915}, - {f: 2, c: 45918}, {f: 2, c: 45924}, 45927, 45929, 45931, 45934, - {f: 2, c: 45936}, 45940, 45944, {f: 2, c: 45952}, {f: 3, c: 45955}, 45964, - 45968, 45972, {f: 2, c: 45984}, 45992, 45996, {f: 2, c: 46020}, 46024, - {f: 2, c: 46027}, 46030, 46032, {f: 2, c: 46036}, 46039, 46041, 46043, - 46045, 46048, 46052, 46056, 46076, 46096, 46104, 46108, 46112, - {f: 2, c: 46120}, 46123, 46132, {f: 2, c: 46160}, 46164, 46168, - {f: 2, c: 46176}, 46179, 46181, 46188, 46208, 46216, 46237, 46244, 46248, - 46252, 46261, 46263, 46265, 46272, 46276, 46280, 46288, 46293, - {f: 2, c: 46300}, 46304, {f: 2, c: 46307}, 46310, {f: 2, c: 46316}, 46319, - 46321, 46328, {f: 2, c: 46356}, 46360, {f: 2, c: 46363}, {f: 2, c: 46372}, - {f: 4, c: 46375}, {f: 2, c: 46384}, 46388, 46392, {f: 2, c: 46400}, - {f: 3, c: 46403}, {f: 3, c: 46411}, 46416, 46420, {f: 2, c: 46428}, - {f: 3, c: 46431}, {f: 2, c: 46496}, 46500, 46504, {f: 2, c: 46506}, - {f: 2, c: 46512}, {f: 3, c: 46515}, {f: 3, c: 46523}, 46528, 46532, - {f: 2, c: 46540}, {f: 3, c: 46543}, 46552, 46572, {f: 2, c: 46608}, 46612, - 46616, 46629, 46636, 46644, 46664, 46692, 46696, {f: 2, c: 46748}, 46752, - 46756, {f: 2, c: 46763}, 46769, 46804, 46832, 46836, 46840, - {f: 2, c: 46848}, 46853, {f: 2, c: 46888}, 46892, {f: 2, c: 46895}, - {f: 2, c: 46904}, 46907, 46916, 46920, 46924, {f: 2, c: 46932}, 46944, - 46948, 46952, {f: 2, c: 46960}, 46963, 46965, {f: 2, c: 46972}, 46976, - 46980, {f: 2, c: 46988}, {f: 4, c: 46991}, {f: 4, c: 46998}, 47004, 47008, - {f: 2, c: 47016}, {f: 3, c: 47019}, {f: 2, c: 47028}, 47032, 47047, 47049, - {f: 2, c: 47084}, 47088, 47092, {f: 2, c: 47100}, {f: 3, c: 47103}, - {f: 3, c: 47111}, 47116, 47120, {f: 2, c: 47128}, 47131, 47133, - {f: 2, c: 47140}, 47144, 47148, {f: 2, c: 47156}, {f: 3, c: 47159}, 47168, - 47172, 47185, 47187, {f: 2, c: 47196}, 47200, 47204, {f: 2, c: 47212}, - 47215, 47217, 47224, 47228, 47245, 47272, 47280, 47284, 47288, - {f: 2, c: 47296}, 47299, 47301, 47308, 47312, 47316, 47325, 47327, 47329, - {f: 2, c: 47336}, 47340, 47344, {f: 2, c: 47352}, 47355, 47357, 47364, - 47384, 47392, {f: 2, c: 47420}, 47424, 47428, 47436, 47439, 47441, - {f: 2, c: 47448}, 47452, 47456, {f: 2, c: 47464}, 47467, 47469, - {f: 2, c: 47476}, 47480, 47484, {f: 2, c: 47492}, 47495, {f: 2, c: 47497}, - {f: 2, c: 47501}, {f: 2, c: 47532}, 47536, 47540, {f: 2, c: 47548}, 47551, - 47553, {f: 2, c: 47560}, 47564, {f: 5, c: 47566}, {f: 2, c: 47576}, 47579, - {f: 2, c: 47581}, 47585, {f: 3, c: 47587}, 47592, 47596, {f: 2, c: 47604}, - {f: 4, c: 47607}, {f: 2, c: 47616}, 47624, 47637, {f: 2, c: 47672}, 47676, - 47680, 47682, {f: 2, c: 47688}, 47691, {f: 2, c: 47693}, {f: 3, c: 47699}, - 47704, 47708, {f: 2, c: 47716}, {f: 3, c: 47719}, {f: 2, c: 47728}, 47732, - 47736, {f: 3, c: 47747}, 47751, 47756, {f: 2, c: 47784}, {f: 2, c: 47787}, - 47792, 47794, {f: 2, c: 47800}, 47803, 47805, 47812, 47816, - {f: 2, c: 47832}, 47868, 47872, 47876, 47885, 47887, 47889, 47896, 47900, - 47904, 47913, 47915, {f: 3, c: 47924}, 47928, {f: 4, c: 47931}, - {f: 2, c: 47940}, 47943, 47945, 47949, {f: 2, c: 47951}, 47956, 47960, - 47969, 47971, 47980, 48008, 48012, 48016, 48036, 48040, 48044, 48052, - 48055, 48064, 48068, 48072, 48080, 48083, {f: 2, c: 48120}, 48124, - {f: 2, c: 48127}, 48130, {f: 2, c: 48136}, {f: 3, c: 48139}, 48143, 48145, - {f: 5, c: 48148}, {f: 5, c: 48155}, {f: 2, c: 48164}, 48167, 48169, 48173, - {f: 2, c: 48176}, 48180, 48184, {f: 2, c: 48192}, {f: 3, c: 48195}, 48201, - {f: 2, c: 48204}, 48208, 48221, {f: 2, c: 48260}, 48264, {f: 2, c: 48267}, - 48270, {f: 2, c: 48276}, 48279, {f: 2, c: 48281}, {f: 2, c: 48288}, 48292, - {f: 2, c: 48295}, {f: 2, c: 48304}, {f: 3, c: 48307}, {f: 2, c: 48316}, - 48320, 48324, 48333, {f: 3, c: 48335}, 48341, 48344, 48348, - {f: 3, c: 48372}, 48376, 48380, {f: 2, c: 48388}, 48391, 48393, 48400, - 48404, 48420, 48428, 48448, {f: 2, c: 48456}, 48460, 48464, - {f: 2, c: 48472}, 48484, 48488, {f: 2, c: 48512}, 48516, {f: 4, c: 48519}, - {f: 2, c: 48528}, 48531, 48533, {f: 2, c: 48537}, 48540, 48548, 48560, - 48568, {f: 2, c: 48596}, 48600, 48604, 48617, 48624, 48628, 48632, 48640, - 48643, 48645, {f: 2, c: 48652}, 48656, 48660, {f: 2, c: 48668}, 48671, - {f: 2, c: 48708}, 48712, 48716, 48718, {f: 2, c: 48724}, 48727, - {f: 3, c: 48729}, {f: 2, c: 48736}, 48740, 48744, 48746, {f: 2, c: 48752}, - {f: 3, c: 48755}, {f: 3, c: 48763}, 48768, 48772, {f: 2, c: 48780}, - {f: 3, c: 48783}, {f: 2, c: 48792}, 48808, {f: 2, c: 48848}, 48852, - {f: 2, c: 48855}, 48864, {f: 3, c: 48867}, 48876, 48897, {f: 2, c: 48904}, - {f: 2, c: 48920}, {f: 3, c: 48923}, {f: 2, c: 48960}, 48964, 48968, - {f: 2, c: 48976}, 48981, 49044, 49072, 49093, {f: 2, c: 49100}, 49104, - 49108, 49116, 49119, 49121, 49212, 49233, 49240, 49244, 49248, - {f: 2, c: 49256}, {f: 2, c: 49296}, 49300, 49304, {f: 2, c: 49312}, 49315, - 49317, {f: 2, c: 49324}, {f: 2, c: 49327}, {f: 4, c: 49331}, - {f: 2, c: 49340}, {f: 3, c: 49343}, 49349, {f: 2, c: 49352}, 49356, 49360, - {f: 2, c: 49368}, {f: 3, c: 49371}, {f: 2, c: 49380}, 49384, 49388, - {f: 2, c: 49396}, 49399, 49401, 49408, 49412, 49416, 49424, 49429, - {f: 5, c: 49436}, {f: 2, c: 49443}, {f: 2, c: 49446}, {f: 2, c: 49452}, - {f: 3, c: 49455}, 49462, {f: 2, c: 49464}, 49468, 49472, {f: 2, c: 49480}, - {f: 3, c: 49483}, {f: 2, c: 49492}, 49496, 49500, {f: 2, c: 49508}, - {f: 3, c: 49511}, 49520, 49524, 49528, 49541, {f: 3, c: 49548}, 49552, - 49556, 49558, {f: 2, c: 49564}, 49567, 49569, 49573, {f: 2, c: 49576}, - 49580, 49584, 49597, 49604, 49608, 49612, 49620, {f: 2, c: 49623}, 49632, - 49636, 49640, {f: 2, c: 49648}, 49651, {f: 2, c: 49660}, 49664, 49668, - {f: 2, c: 49676}, 49679, 49681, {f: 2, c: 49688}, 49692, {f: 2, c: 49695}, - {f: 2, c: 49704}, 49707, 49709, 49711, {f: 2, c: 49713}, 49716, 49736, - {f: 2, c: 49744}, 49748, 49752, 49760, 49765, {f: 2, c: 49772}, 49776, - 49780, {f: 2, c: 49788}, 49791, 49793, {f: 2, c: 49800}, 49808, 49816, - 49819, 49821, {f: 2, c: 49828}, 49832, {f: 2, c: 49836}, {f: 2, c: 49844}, - 49847, 49849, {f: 2, c: 49884}, 49888, {f: 2, c: 49891}, {f: 3, c: 49899}, - 49903, 49905, 49910, {f: 2, c: 49912}, {f: 2, c: 49915}, 49920, - {f: 2, c: 49928}, {f: 2, c: 49932}, {f: 3, c: 49939}, 49944, 49948, - {f: 2, c: 49956}, {f: 2, c: 49960}, 49989, {f: 2, c: 50024}, 50028, 50032, - 50034, {f: 2, c: 50040}, {f: 2, c: 50044}, 50052, 50056, 50060, 50112, - {f: 2, c: 50136}, 50140, {f: 2, c: 50143}, 50146, {f: 2, c: 50152}, 50157, - {f: 2, c: 50164}, 50168, 50184, 50192, 50212, 50220, 50224, 50228, - {f: 2, c: 50236}, 50248, {f: 2, c: 50276}, 50280, 50284, {f: 2, c: 50292}, - 50297, 50304, 50324, 50332, 50360, 50364, 50409, {f: 2, c: 50416}, 50420, - 50424, 50426, {f: 3, c: 50431}, 50444, 50448, 50452, 50460, - {f: 2, c: 50472}, 50476, 50480, {f: 2, c: 50488}, 50491, 50493, - {f: 2, c: 50500}, {f: 3, c: 50504}, {f: 3, c: 50508}, {f: 3, c: 50515}, - {f: 3, c: 50519}, {f: 2, c: 50525}, {f: 2, c: 50528}, 50532, 50536, - {f: 2, c: 50544}, {f: 3, c: 50547}, {f: 2, c: 50556}, 50560, 50564, 50567, - {f: 2, c: 50572}, 50575, 50577, 50581, {f: 2, c: 50583}, 50588, 50592, - 50601, {f: 2, c: 50612}, {f: 2, c: 50616}, {f: 4, c: 50619}, - {f: 7, c: 50628}, 50636, 50638, {f: 2, c: 50640}, 50644, 50648, - {f: 2, c: 50656}, 50659, 50661, {f: 3, c: 50668}, 50672, 50676, - {f: 2, c: 50678}, {f: 6, c: 50684}, {f: 4, c: 50693}, 50700, 50704, - {f: 2, c: 50712}, {f: 2, c: 50715}, {f: 2, c: 50724}, 50728, - {f: 3, c: 50732}, 50736, {f: 3, c: 50739}, 50743, 50745, 50747, - {f: 2, c: 50752}, 50756, 50760, {f: 2, c: 50768}, {f: 3, c: 50771}, - {f: 2, c: 50780}, 50784, 50796, 50799, 50801, {f: 2, c: 50808}, 50812, - 50816, {f: 2, c: 50824}, 50827, 50829, {f: 2, c: 50836}, 50840, 50844, - {f: 2, c: 50852}, 50855, 50857, {f: 2, c: 50864}, 50868, {f: 3, c: 50872}, - {f: 2, c: 50880}, 50883, 50885, {f: 2, c: 50892}, 50896, 50900, - {f: 2, c: 50908}, {f: 2, c: 50912}, {f: 2, c: 50920}, 50924, 50928, - {f: 2, c: 50936}, 50941, {f: 2, c: 50948}, 50952, 50956, {f: 2, c: 50964}, - 50967, 50969, {f: 2, c: 50976}, 50980, 50984, {f: 2, c: 50992}, 50995, - 50997, 50999, {f: 2, c: 51004}, 51008, 51012, 51018, {f: 2, c: 51020}, - 51023, {f: 8, c: 51025}, 51036, 51040, 51048, 51051, {f: 2, c: 51060}, - 51064, {f: 3, c: 51068}, {f: 3, c: 51075}, {f: 4, c: 51079}, 51086, - {f: 2, c: 51088}, 51092, {f: 3, c: 51094}, 51098, {f: 2, c: 51104}, - {f: 4, c: 51107}, {f: 2, c: 51116}, 51120, 51124, {f: 2, c: 51132}, - {f: 3, c: 51135}, {f: 2, c: 51144}, 51148, 51150, 51152, 51160, 51165, - 51172, 51176, 51180, {f: 2, c: 51200}, 51204, 51208, 51210, - {f: 2, c: 51216}, 51219, {f: 2, c: 51221}, {f: 2, c: 51228}, 51232, 51236, - {f: 2, c: 51244}, 51247, 51249, 51256, 51260, 51264, {f: 2, c: 51272}, - {f: 2, c: 51276}, 51284, {f: 2, c: 51312}, 51316, 51320, 51322, - {f: 2, c: 51328}, 51331, {f: 3, c: 51333}, {f: 3, c: 51339}, 51348, 51357, - 51359, 51361, 51368, {f: 2, c: 51388}, 51396, 51400, 51404, - {f: 2, c: 51412}, 51415, 51417, {f: 2, c: 51424}, 51428, 51445, - {f: 2, c: 51452}, 51456, {f: 3, c: 51460}, {f: 2, c: 51468}, 51471, 51473, - 51480, 51500, 51508, {f: 2, c: 51536}, 51540, 51544, {f: 2, c: 51552}, - 51555, 51564, 51568, 51572, 51580, {f: 2, c: 51592}, 51596, 51600, - {f: 2, c: 51608}, 51611, 51613, {f: 2, c: 51648}, 51652, {f: 2, c: 51655}, - 51658, {f: 2, c: 51664}, 51667, {f: 2, c: 51669}, {f: 2, c: 51673}, - {f: 2, c: 51676}, 51680, 51682, 51684, 51687, {f: 2, c: 51692}, - {f: 3, c: 51695}, {f: 2, c: 51704}, 51708, 51712, {f: 2, c: 51720}, - {f: 3, c: 51723}, 51732, 51736, 51753, {f: 2, c: 51788}, 51792, 51796, - {f: 2, c: 51804}, {f: 3, c: 51807}, 51816, 51837, 51844, 51864, - {f: 2, c: 51900}, 51904, 51908, {f: 2, c: 51916}, 51919, 51921, 51923, - {f: 2, c: 51928}, 51936, 51948, 51956, 51976, 51984, 51988, 51992, - {f: 2, c: 52000}, 52033, {f: 2, c: 52040}, 52044, 52048, {f: 2, c: 52056}, - 52061, 52068, {f: 2, c: 52088}, 52124, 52152, 52180, 52196, 52199, 52201, - {f: 2, c: 52236}, 52240, 52244, {f: 2, c: 52252}, {f: 2, c: 52257}, - {f: 3, c: 52263}, 52268, 52270, 52272, {f: 2, c: 52280}, {f: 4, c: 52283}, - {f: 2, c: 52292}, 52296, 52300, {f: 2, c: 52308}, {f: 3, c: 52311}, 52320, - 52324, 52326, 52328, 52336, 52341, {f: 2, c: 52376}, 52380, 52384, - {f: 2, c: 52392}, {f: 3, c: 52395}, {f: 2, c: 52404}, 52408, 52412, - {f: 2, c: 52420}, 52423, 52425, 52432, 52436, 52452, 52460, 52464, 52481, - {f: 2, c: 52488}, 52492, 52496, {f: 2, c: 52504}, 52507, 52509, 52516, - 52520, 52524, 52537, 52572, 52576, 52580, {f: 2, c: 52588}, 52591, 52593, - 52600, 52616, {f: 2, c: 52628}, 52632, 52636, {f: 2, c: 52644}, 52647, - 52649, 52656, 52676, 52684, 52688, 52712, 52716, 52720, {f: 2, c: 52728}, - 52731, 52733, 52740, 52744, 52748, 52756, 52761, {f: 2, c: 52768}, 52772, - 52776, {f: 2, c: 52784}, 52787, 52789, {f: 2, c: 52824}, 52828, - {f: 3, c: 52831}, {f: 2, c: 52840}, 52843, 52845, {f: 2, c: 52852}, 52856, - 52860, {f: 2, c: 52868}, 52871, 52873, {f: 2, c: 52880}, 52884, 52888, - {f: 2, c: 52896}, {f: 3, c: 52899}, {f: 2, c: 52908}, 52929, - {f: 2, c: 52964}, 52968, {f: 2, c: 52971}, {f: 2, c: 52980}, - {f: 3, c: 52983}, {f: 2, c: 52992}, 52996, 53000, {f: 2, c: 53008}, 53011, - 53013, 53020, 53024, 53028, {f: 2, c: 53036}, {f: 3, c: 53039}, 53048, - {f: 2, c: 53076}, 53080, 53084, {f: 2, c: 53092}, 53095, 53097, - {f: 2, c: 53104}, 53108, 53112, 53120, 53125, 53132, 53153, 53160, 53168, - 53188, {f: 2, c: 53216}, 53220, 53224, {f: 2, c: 53232}, 53235, 53237, - 53244, 53248, 53252, 53265, 53272, 53293, {f: 2, c: 53300}, 53304, 53308, - {f: 2, c: 53316}, 53319, 53321, 53328, 53332, 53336, 53344, - {f: 2, c: 53356}, 53360, 53364, {f: 2, c: 53372}, 53377, {f: 2, c: 53412}, - 53416, 53420, {f: 2, c: 53428}, 53431, 53433, {f: 2, c: 53440}, 53444, - {f: 2, c: 53448}, {f: 2, c: 53456}, {f: 3, c: 53459}, {f: 2, c: 53468}, - 53472, 53476, {f: 2, c: 53484}, {f: 3, c: 53487}, 53496, 53517, - {f: 2, c: 53552}, 53556, 53560, 53562, {f: 2, c: 53568}, {f: 3, c: 53571}, - {f: 2, c: 53580}, 53584, 53588, {f: 2, c: 53596}, 53599, 53601, 53608, - 53612, 53628, 53636, 53640, {f: 2, c: 53664}, 53668, 53672, - {f: 2, c: 53680}, 53683, 53685, 53690, 53692, 53696, 53720, 53748, 53752, - 53767, 53769, 53776, {f: 2, c: 53804}, 53808, 53812, {f: 2, c: 53820}, - 53823, 53825, 53832, 53852, 53860, {f: 2, c: 53888}, 53892, 53896, - {f: 2, c: 53904}, 53909, 53916, 53920, 53924, 53932, 53937, - {f: 2, c: 53944}, 53948, {f: 2, c: 53951}, 53954, {f: 2, c: 53960}, 53963, - 53972, 53976, 53980, {f: 2, c: 53988}, {f: 2, c: 54000}, 54004, 54008, - {f: 2, c: 54016}, 54019, 54021, {f: 3, c: 54028}, 54032, 54036, 54038, - {f: 2, c: 54044}, {f: 3, c: 54047}, 54053, {f: 2, c: 54056}, 54060, 54064, - {f: 2, c: 54072}, {f: 3, c: 54075}, {f: 2, c: 54084}, {f: 2, c: 54140}, - 54144, 54148, {f: 2, c: 54156}, {f: 3, c: 54159}, {f: 2, c: 54168}, 54172, - 54176, {f: 2, c: 54184}, 54187, 54189, 54196, 54200, 54204, - {f: 2, c: 54212}, {f: 2, c: 54216}, 54224, 54232, 54241, 54243, - {f: 2, c: 54252}, 54256, 54260, {f: 2, c: 54268}, 54271, 54273, 54280, - 54301, 54336, 54340, 54364, 54368, 54372, 54381, 54383, {f: 2, c: 54392}, - 54396, {f: 2, c: 54399}, 54402, {f: 2, c: 54408}, 54411, 54413, 54420, - 54441, 54476, 54480, 54484, 54492, 54495, 54504, 54508, 54512, 54520, - 54523, 54525, 54532, 54536, 54540, {f: 2, c: 54548}, 54551, - {f: 2, c: 54588}, 54592, 54596, {f: 2, c: 54604}, 54607, 54609, - {f: 2, c: 54616}, 54620, 54624, 54629, {f: 2, c: 54632}, 54635, 54637, - {f: 2, c: 54644}, 54648, 54652, {f: 2, c: 54660}, {f: 3, c: 54663}, 54672, - 54693, {f: 2, c: 54728}, 54732, 54736, 54738, {f: 2, c: 54744}, 54747, - 54749, {f: 2, c: 54756}, 54760, 54764, {f: 2, c: 54772}, 54775, 54777, - {f: 2, c: 54784}, 54788, 54792, {f: 2, c: 54800}, {f: 3, c: 54803}, 54812, - 54816, 54820, 54829, {f: 2, c: 54840}, 54844, 54848, 54853, - {f: 2, c: 54856}, 54859, 54861, 54865, {f: 2, c: 54868}, 54872, 54876, - 54887, 54889, {f: 2, c: 54896}, 54900, 54915, 54917, {f: 2, c: 54924}, - 54928, 54932, 54941, 54943, 54945, 54952, 54956, 54960, 54969, 54971, - {f: 2, c: 54980}, 54984, 54988, 54993, 54996, 54999, 55001, 55008, 55012, - 55016, 55024, 55029, {f: 2, c: 55036}, 55040, 55044, 55057, - {f: 2, c: 55064}, 55068, 55072, {f: 2, c: 55080}, 55083, 55085, - {f: 2, c: 55092}, 55096, 55100, 55108, 55111, 55113, {f: 2, c: 55120}, - 55124, {f: 4, c: 55126}, {f: 2, c: 55136}, 55139, 55141, 55145, 55148, - 55152, 55156, {f: 2, c: 55164}, 55169, {f: 2, c: 55176}, 55180, 55184, - {f: 2, c: 55192}, 55195, 55197, 20285, 20339, 20551, 20729, 21152, 21487, - 21621, 21733, 22025, 23233, 23478, 26247, {f: 2, c: 26550}, 26607, 27468, - 29634, 30146, 31292, 33499, 33540, 34903, 34952, 35382, [36040, 63747], - 36303, 36603, 36838, 39381, 21051, 21364, 21508, 24682, 24932, 27580, - 29647, 33050, 35258, [12179, 35282], 38307, 20355, 21002, 22718, 22904, - 23014, [12082, 24178], 24185, 25031, 25536, 26438, 26604, 26751, 28567, - 30286, 30475, 30965, 31240, 31487, 31777, 32925, [12169, 33390], 33393, - 35563, 38291, 20075, 21917, 26359, 28212, 30883, 31469, 33883, 35088, - 34638, 38824, 21208, 22350, 22570, 23884, 24863, 25022, 25121, 25954, - 26577, 27204, 28187, [12130, 29976], 30131, 30435, 30640, 32058, 37039, - {f: 2, c: 37969}, 40853, 21283, 23724, 30002, 32987, 37440, 38296, 21083, - 22536, 23004, 23713, 23831, 24247, 24378, 24394, 24951, 27743, 30074, - 30086, 31968, 32115, 32177, 32652, 33108, 33313, 34193, 35137, 35611, - 37628, [38477, 64009], 40007, 20171, 20215, 20491, 20977, 22607, 24887, - 24894, 24936, 25913, 27114, 28433, 30117, 30342, 30422, 31623, 33445, - 33995, 37799, 38283, 21888, 23458, 22353, 31923, 32697, 37301, 20520, - 21435, 23621, 24040, 25298, 25454, 25818, 25831, 28192, 28844, 31067, - 36317, 36382, 36989, 37445, 37624, 20094, 20214, 20581, [12081, 24062], - 24314, 24838, 26967, 33137, 34388, 36423, 37749, 39467, 20062, 20625, - 26480, 26688, 20745, 21133, 21138, 27298, 30652, 37392, 40660, 21163, - 24623, 36850, 20552, 25001, 25581, 25802, 26684, 27268, 28608, 33160, - 35233, 38548, 22533, 29309, [12125, 29356], 29956, 32121, 32365, 32937, - [12178, 35211, 64010], 35700, 36963, 40273, 25225, 27770, 28500, 32080, - 32570, 35363, 20860, 24906, 31645, 35609, 37463, 37772, 20140, 20435, - 20510, 20670, 20742, 21185, 21197, 21375, 22384, 22659, 24218, 24465, - 24950, 25004, 25806, 25964, 26223, 26299, [26356, 63745], 26775, 28039, - 28805, 28913, 29855, 29861, 29898, 30169, 30828, 30956, 31455, 31478, - 32069, 32147, 32789, 32831, 33051, 33686, 35686, 36629, 36885, 37857, - 38915, 38968, 39514, 39912, 20418, 21843, 22586, [22865, 63753], 23395, - 23622, 24760, 25106, 26690, 26800, 26856, 28330, 30028, 30328, 30926, - 31293, 31995, 32363, 32380, 35336, 35489, 35903, 38542, 40388, 21476, - 21481, 21578, 21617, 22266, 22993, 23396, 23611, 24235, 25335, 25911, - 25925, 25970, 26272, 26543, 27073, 27837, 30204, 30352, 30590, 31295, - 32660, 32771, 32929, 33167, 33510, 33533, 33776, 34241, 34865, 34996, - 35493, 36764, 37678, 38599, 39015, [12220, 39640], [12238, 40723], 21741, - 26011, 26354, 26767, 31296, [12181, 35895], 40288, 22256, 22372, 23825, - 26118, 26801, 26829, 28414, 29736, 34974, 39908, 27752, [12219, 39592], - 20379, 20844, 20849, 21151, 23380, [12079, 24037], 24656, 24685, 25329, - 25511, 25915, 29657, 31354, 34467, 36002, 38799, [20018, 63749], 23521, - [12093, 25096], 26524, [12128, 29916], 31185, 33747, 35463, 35506, 36328, - 36942, 37707, 38982, [24275, 64011], 27112, 34303, 37101, 20896, 23448, - 23532, 24931, 26874, 27454, 28748, 29743, 29912, 31649, 32592, 33733, - 35264, 36011, 38364, 39208, 21038, 24669, 25324, 36866, 20362, 20809, - 21281, 22745, 24291, 26336, 27960, 28826, 29378, 29654, 31568, 33009, - 37979, 21350, 25499, 32619, 20054, 20608, 22602, 22750, 24618, 24871, - 25296, 27088, 39745, 23439, 32024, 32945, 36703, 20132, 20689, 21676, - 21932, 23308, 23968, 24039, 25898, 25934, 26657, 27211, 29409, 30350, - 30703, 32094, 32761, 33184, 34126, 34527, 36611, 36686, 37066, 39171, - 39509, 39851, 19992, 20037, 20061, 20167, 20465, 20855, 21246, 21312, - [12061, 21475], [21477, 63750], 21646, 22036, 22389, 22434, 23495, 23943, - 24272, 25084, 25304, 25937, 26552, 26601, 27083, 27472, 27590, 27628, - 27714, 28317, 28792, 29399, 29590, 29699, 30655, 30697, 31350, 32127, - 32777, [12165, 33276], 33285, 33290, 33503, 34914, 35635, 36092, 36544, - 36881, 37041, 37476, 37558, 39378, 39493, 40169, 40407, - [12244, 40860, 63751, 63752], 22283, 23616, 33738, 38816, 38827, 40628, - 21531, 31384, 32676, 35033, 36557, 37089, 22528, 23624, 25496, 31391, - 23470, [12088, 24339], 31353, 31406, 33422, 36524, 20518, 21048, 21240, - 21367, 22280, 25331, 25458, 27402, 28099, 30519, 21413, 29527, 34152, - 36470, 38357, 26426, 27331, 28528, 35437, 36556, 39243, 26231, 27512, - 36020, [12225, 39740], 21483, 22317, 22862, 25542, 27131, 29674, 30789, - 31418, 31429, 31998, 33909, 35215, 36211, 36917, 38312, 21243, 22343, - 30023, 31584, 33740, 37406, 27224, 20811, 21067, 21127, 25119, 26840, - 26997, 38553, 20677, 21156, 21220, 25027, [12100, 26020], 26681, 27135, - 29822, 31563, 33465, 33771, 35250, 35641, 36817, 39241, 20170, 22935, - 25810, 26129, 27278, 29748, 31105, 31165, 33449, {f: 2, c: 34942}, 35167, - 37670, 20235, 21450, 24613, 25201, 27762, 32026, 32102, 20120, 20834, - 30684, 32943, 20225, 20238, 20854, 20864, 21980, 22120, 22331, 22522, - 22524, 22804, 22855, 22931, 23492, 23696, 23822, [12080, 24049], 24190, - 24524, 25216, 26071, 26083, {f: 2, c: 26398}, 26462, 26827, 26820, 27231, - 27450, 27683, 27773, 27778, 28103, 29592, 29734, 29738, 29826, 29859, - 30072, 30079, 30849, 30959, 31041, {f: 2, c: 31047}, 31098, 31637, 32000, - 32186, 32648, 32774, 32813, 32908, 35352, 35663, [35912, 63744], 36215, - 37665, 37668, 39138, 39249, {f: 2, c: 39438}, 39525, 40594, 32202, 20342, - 21513, 25326, 26708, [12198, 37329, 63754], 21931, 20794, 23068, 25062, - [25295, 63835], 25343, 37027, [35582, 63837], 26262, 29014, 38627, 25423, - 25466, 21335, 26511, 26976, 28275, 30007, 32013, 34930, 22218, 23064, - 20035, 20839, [22856, 63756], 26608, 32784, [12069, 22899, 63873], - [24180, 63886], [25754, 63889], [31178, 63893], [24565, 63907], 24684, - 25288, [25467, 63908], [23527, 63839, 63914], 23511, 21162, 22900, 24361, - [24594, 63840], 29785, 39377, 28611, 33215, 36786, 24817, 33126, - [23615, 63933], 23273, 35365, [26491, 63944], [32016, 63951], 33021, 23612, - [27877, 63971], [21311, 63979], [28346, 63980], 22810, [33590, 63998], - [20025, 63838], 20150, 20294, 21934, 22296, 22727, 24406, 26039, 26086, - 27264, 27573, 28237, 30701, 31471, 31774, 32222, 34507, 34962, 37170, - 37723, 25787, 28606, 29562, 30136, 36948, 21846, 22349, 25018, 25812, - 26311, 28129, 28251, 28525, 28601, 30192, 32835, 33213, 34113, 35203, - 35527, 35674, 37663, 27795, 30035, 31572, 36367, 36957, 21776, 22530, - 22616, 24162, 25095, 25758, 26848, 30070, [31958, 64003], 34739, 40680, - 20195, 22408, 22382, [12068, 22823], 23565, 23729, 24118, 24453, 25140, - 25825, 29619, 33274, 34955, 36024, 38538, 40667, [23429, 64004], 24503, - 24755, 20498, [12049, 20992], 21040, 22294, 22581, 22615, 23566, 23648, - 23798, 23947, [24230, 64001], 24466, 24764, 25361, 25481, 25623, 26691, - 26873, 27330, 28120, 28193, 28372, 28644, 29182, 30428, 30585, 31153, - 31291, 33796, 35241, 36077, 36339, 36424, 36867, 36884, 36947, 37117, - 37709, 38518, 38876, 27602, 28678, 29272, 29346, 29544, 30563, 31167, - 31716, 32411, [35712, 63834], 22697, 24775, 25958, 26109, 26302, 27788, - 28958, 29129, 35930, 38931, 20077, 31361, 20189, 20908, 20941, 21205, - 21516, 24999, 26481, 26704, 26847, [27934, 64005], 28540, 30140, 30643, - 31461, 33012, 33891, 37509, 20828, [12099, 26007], 26460, 26515, 30168, - 31431, 33651, [12182, 35910], 36887, 38957, 23663, 33216, 33434, 36929, - 36975, 37389, 24471, 23965, 27225, 29128, 30331, 31561, 34276, 35588, - 37159, 39472, [21895, 63755], [25078, 63757], [30313, 63758], - [32645, 63759], [34367, 63760], [34746, 63761], [35064, 63762], - [37007, 63763], [27931, 63765], [28889, 63766], [29662, 63767], 32097, - [33853, 63768], [37226, 63769], [39409, 63770], [20098, 63771], - [21365, 63772], [27396, 63773], 27410, 28734, [29211, 63774], - [34349, 63775], [40478, 63776], 21068, 36771, [23888, 63777], 25829, 25900, - 27414, [28651, 63778], 31811, 32412, [34253, 63779], [35172, 63780], 35261, - [25289, 63781], [33240, 63782], [34847, 63783], [24266, 63784], - [26391, 63785], [28010, 63786], [29436, 63787], 29701, 29807, 34690, - [37086, 63788], [20358, 63789], 23821, 24480, 33802, [20919, 63790], - [25504, 63861], [30053, 63862], [20142, 63863], 20486, [20841, 63864], - [20937, 63865], [26753, 63866], 27153, 31918, 31921, [31975, 63867], - [33391, 63868], [35538, 63869], 36635, [37327, 63870], 20406, 20791, - [21237, 63871], [21570, 63872], [24300, 63874], 24942, 25150, - [26053, 63875], 27354, [28670, 63876], [31018, 63877], 34268, 34851, - [38317, 63878], 39522, [39530, 63879], [40599, 63880], [40654, 63881], - [12050, 21147, 63882], [26310, 63883], [27511, 63884], 28701, 31019, - [36706, 63885], 38722, [24976, 63887], [25088, 63888], 25891, - [28451, 63890], [29001, 63891], [29833, 63892], [32244, 63894], - [32879, 63895], [34030, 63897], [36646, 63896], [36899, 63898], - [37706, 63899], 20925, [21015, 63900], [21155, 63901], 27916, - [28872, 63903], [35010, 63904], [24265, 63906], 25986, [27566, 63909], - 28610, [31806, 63910], [29557, 63911], [20196, 63912], 20278, - [22265, 63913], 23738, [23994, 63915], [24604, 63916], [29618, 63917], - 31533, [32666, 63919], 32718, [32838, 63920], 36894, [37428, 63921], - [38646, 63922], [38728, 63923], [38936, 63924], 40801, [20363, 63925], - 28583, [31150, 63926], [37300, 63927], [38583, 63928], [21214, 63791], - 25736, [25796, 63792], [27347, 63793], 28510, 28696, [29200, 63794], - [30439, 63795], [12156, 32769, 63796], [34310, 63797], [34396, 63798], - [36335, 63799], 36613, [38706, 63800], [39791, 63801], [40442, 63802], - [12228, 40565], [30860, 63803], [31103, 63804], [32160, 63805], - [33737, 63806], [37636, 63807], [12229, 40575, 63808], 40595, - [35542, 63809], [22751, 63810], [24324, 63811], 26407, 28711, 29903, - [31840, 63812], [32894, 63813], 20769, 28712, [29282, 63814], - [30922, 63815], [36034, 63816], 36058, 36084, [38647, 63817], - [20102, 63930], [20698, 63931], [23534, 63932], 24278, [26009, 63934], - [29134, 63936], [30274, 63937], 30637, 32842, [34044, 63938], - [36988, 63939], 39719, [12243, 40845, 63940], [22744, 63818], 23105, - [23650, 63819], [27155, 63820], [28122, 63821], [28431, 63822], 30267, - [32047, 63823], [32311, 63824], 34078, 35128, 37860, [38475, 63825], - [21129, 63943], 26066, [26611, 63945], 27060, [27969, 63946], - [28316, 63947], 28687, [29705, 63948], 29792, [30041, 63949], 30244, - [30827, 63950], 35628, [39006, 63952], [20845, 63953], [25134, 63954], - [38520, 63955], 20374, [20523, 63956], [23833, 63957], [28138, 63958], - 32184, [36650, 63959], [24459, 63960], [24900, 63961], [26647, 63962], - [38534, 63964], [21202, 63826], [32907, 63827], [20956, 63828], - [20940, 63829], 26974, [31260, 63830], [32190, 63831], [33777, 63832], - [38517, 63833], 20442, [21033, 63965], 21400, [21519, 63966], 21774, - [23653, 63967], 24743, [26446, 63969], [26792, 63970], 28012, 29313, 29432, - [29702, 63972], 29827, [30178, 63973], 31852, [32633, 63974], 32696, 33673, - [35023, 63975], [35041, 63976], [12197, 37324, 63977], 37328, - [38626, 63978], 39881, [21533, 63981], 28542, [29136, 63982], - [29848, 63983], [34298, 63984], 36522, [38563, 63985], [40023, 63986], - [40607, 63987], [26519, 63988], [28107, 63989], 29747, [33256, 63990], - 38678, 30764, [12148, 31435, 63991], [31520, 63992], [31890, 63993], 25705, - 29802, 30194, 30908, 30952, [12218, 39340], 39764, [12231, 40635], 23518, - 24149, 28448, 33180, 33707, 37000, 19975, 21325, 23081, 24018, 24398, - 24930, 25405, 26217, 26364, 28415, 28459, 28771, 30622, 33836, 34067, - 34875, 36627, 39237, 39995, 21788, 25273, 26411, 27819, 33545, 35178, - 38778, 20129, 22916, {f: 2, c: 24536}, 26395, 32178, 32596, 33426, 33579, - 33725, 36638, 37017, 22475, 22969, 23186, 23504, 26151, 26522, 26757, - 27599, 29028, 32629, 36023, 36067, 36993, 39749, 33032, 35978, 38476, - 39488, [12230, 40613], 23391, 27667, 29467, 30450, 30431, 33804, 20906, - 35219, 20813, 20885, 21193, 26825, 27796, 30468, 30496, 32191, 32236, - [12207, 38754], 40629, 28357, 34065, 20901, 21517, 21629, 26126, 26269, - 26919, 28319, [12139, 30399], 30609, 33559, 33986, 34719, 37225, 37528, - 40180, 34946, 20398, 20882, 21215, 22982, 24125, 24917, {f: 2, c: 25720}, - 26286, 26576, 27169, 27597, [12113, 27611], 29279, 29281, 29761, 30520, - [12141, 30683], 32791, 33468, 33541, 35584, 35624, 35980, [12106, 26408], - 27792, 29287, [12140, 30446], 30566, 31302, 40361, 27519, 27794, 22818, - 26406, 33945, 21359, 22675, 22937, 24287, 25551, 26164, 26483, 28218, - 29483, 31447, 33495, 37672, 21209, 24043, 25006, 25035, 25098, 25287, - 25771, [12102, 26080], 26969, 27494, [12111, 27595], 28961, 29687, 30045, - 32326, 33310, 33538, 34154, 35491, 36031, 38695, 40289, 22696, 40664, - 20497, 21006, 21563, 21839, [12098, 25991], 27766, {f: 2, c: 32010}, 32862, - 34442, [12200, 38272], 38639, 21247, 27797, 29289, 21619, 23194, 23614, - 23883, 24396, 24494, 26410, 26806, 26979, 28220, 28228, 30473, - [12150, 31859], 32654, 34183, 35598, 36855, 38753, 40692, 23735, 24758, - 24845, 25003, 25935, {f: 2, c: 26107}, 27665, 27887, 29599, 29641, 32225, - 38292, 23494, 34588, 35600, 21085, 21338, 25293, 25615, 25778, 26420, - 27192, 27850, 29632, 29854, 31636, 31893, 32283, 33162, 33334, 34180, - 36843, 38649, 39361, 20276, 21322, 21453, 21467, 25292, 25644, 25856, - 26001, 27075, 27886, 28504, 29677, 30036, 30242, 30436, 30460, 30928, - [30971, 63844], 31020, 32070, 33324, 34784, 36820, 38930, 39151, 21187, - 25300, 25765, 28196, 28497, 30332, 36299, 37297, 37474, 39662, 39747, - 20515, 20621, 22346, 22952, 23592, 24135, 24439, 25151, 25918, - [12101, 26041], 26049, 26121, 26507, 27036, 28354, 30917, 32033, 32938, - 33152, 33323, 33459, 33953, 34444, 35370, 35607, 37030, 38450, 40848, - 20493, 20467, 22521, 24472, 25308, 25490, 26479, 28227, 28953, 30403, - 32972, 32986, {f: 2, c: 35060}, 35097, 36064, 36649, 37197, 38506, 20271, - 20336, 24091, 26575, 26658, [12137, 30333], 30334, 39748, 24161, 27146, - 29033, 29140, 30058, 32321, 34115, 34281, 39132, 20240, 31567, 32624, - 38309, 20961, 24070, 26805, 27710, 27726, 27867, 29359, 31684, 33539, - 27861, 29754, 20731, 21128, 22721, 25816, 27287, 29863, 30294, 30887, - 34327, 38370, 38713, 21342, 24321, 35722, 36776, 36783, 37002, 21029, - 30629, 40009, 40712, 19993, 20482, 20853, 23643, 24183, 26142, 26170, - 26564, 26821, 28851, 29953, 30149, 31177, 31453, 36647, 39200, 39432, - 20445, 22561, 22577, 23542, 26222, 27493, 27921, 28282, 28541, 29668, - 29995, 33769, 35036, 35091, 35676, 36628, 20239, 20693, 21264, - [12056, 21340], 23443, [24489, 63846], 26381, 31119, 33145, 33583, 34068, - 35079, 35206, 36665, [36667, 64007], 39333, 39954, 26412, 20086, 20472, - 22857, 23553, {f: 2, c: 23791}, 25447, 26834, 28925, 29090, 29739, 32299, - 34028, 34562, 36898, 37586, 40179, [19981, 63847], 20184, 20463, 20613, - 21078, 21103, 21542, 21648, 22496, 22827, 23142, 23386, 23413, 23500, - 24220, 25206, 25975, 26023, 28014, 28325, [12119, 29238], 31526, 31807, - [12152, 32566], {f: 2, c: 33104}, 33178, 33344, 33433, 33705, 35331, 36000, - 36070, 36091, 36212, 36282, 37096, 37340, [12201, 38428], 38468, 39385, - 40167, [21271, 63843], 20998, 21545, 22132, 22707, 22868, 22894, 24575, - 24996, 25198, 26128, 27774, 28954, 30406, 31881, 31966, 32027, 33452, - 36033, 38640, 20315, 24343, 24447, 25282, 23849, 26379, 26842, 30844, - 32323, 40300, 19989, 20633, [12052, 21269], 21290, 21329, 22915, 23138, - 24199, 24754, 24970, 25161, 25209, 26000, 26503, 27047, [12112, 27604], - {f: 3, c: 27606}, 27832, 29749, 30202, 30738, 30865, 31189, 31192, 31875, - 32203, 32737, 32933, 33086, 33218, 33778, 34586, 35048, 35513, 35692, - 36027, 37145, [12206, 38750], [12214, 39131], [12240, 40763], 22188, 23338, - 24428, 25996, 27315, 27567, 27996, 28657, 28693, 29277, 29613, 36007, - 36051, 38971, 24977, 27703, 32856, 39425, 20045, 20107, 20123, 20181, - 20282, 20284, 20351, 20447, 20735, 21490, 21496, 21766, 21987, 22235, - [12064, 22763], 22882, 23057, 23531, 23546, 23556, 24051, 24107, 24473, - 24605, 25448, 26012, 26031, 26614, 26619, 26797, 27515, 27801, 27863, - 28195, 28681, 29509, 30722, 31038, 31040, 31072, 31169, 31721, 32023, - 32114, 32902, 33293, 33678, 34001, 34503, 35039, 35408, 35422, 35613, - 36060, 36198, 36781, 37034, 39164, 39391, 40605, 21066, 26388, 20632, - 21034, [12077, 23665], 25955, 27733, 29642, 29987, 30109, 31639, 33948, - 37240, 38704, 20087, 25746, [27578, 63856], 29022, 34217, 19977, 26441, - 26862, 28183, 33439, 34072, 34923, 25591, 28545, 37394, 39087, 19978, - 20663, 20687, 20767, 21830, 21930, 22039, 23360, 23577, 23776, 24120, - 24202, 24224, 24258, 24819, 26705, 27233, 28248, 29245, 29248, - [29376, 63994], 30456, 31077, 31665, 32724, 35059, 35316, 35443, 35937, - 36062, 38684, [22622, 63852], 29885, 36093, 21959, 31329, [32034, 63850], - [12170, 33394], 29298, [12131, 29983], 29989, 31513, 22661, 22779, 23996, - 24207, 24246, 24464, 24661, 25234, 25471, 25933, 26257, 26329, 26360, - 26646, 26866, 29312, 29790, 31598, 32110, 32214, 32626, 32997, 33298, - 34223, 35199, 35475, 36893, 37604, [12233, 40653], [12239, 40736], - [12067, 22805], 22893, 24109, 24796, 26132, 26227, 26512, 27728, 28101, - 28511, [12143, 30707], 30889, 33990, 37323, 37675, 20185, 20682, 20808, - 21892, 23307, 23459, 25159, 25982, 26059, 28210, 29053, 29697, 29764, - 29831, 29887, 30316, 31146, 32218, 32341, 32680, 33146, 33203, 33337, - 34330, 34796, 35445, 36323, 36984, 37521, 37925, 39245, 39854, 21352, - 23633, 26964, 27844, 27945, 28203, [12166, 33292], 34203, 35131, 35373, - [35498, 63855, 63905], 38634, 40807, 21089, 26297, 27570, 32406, 34814, - 36109, 38275, 38493, 25885, 28041, 29166, 22478, 22995, 23468, 24615, - 24826, 25104, 26143, 26207, 29481, 29689, 30427, [30465, 63853], 31596, - 32854, 32882, 33125, 35488, 37266, 19990, 21218, 27506, 27927, 31237, - 31545, 32048, 36016, 21484, 22063, 22609, 23477, [12073, 23567], 23569, - 24034, 25152, 25475, 25620, 26157, 26803, 27836, 28040, 28335, 28703, - 28836, 29138, 29990, 30095, 30094, 30233, 31505, 31712, 31787, 32032, - 32057, 34092, 34157, 34311, 35380, 36877, 36961, 37045, 37559, 38902, - 39479, 20439, 23660, 26463, 28049, 31903, 32396, 35606, 36118, 36895, - 23403, 24061, 25613, 33984, 36956, 39137, [29575, 63841, 63963], 23435, - 24730, 26494, 28126, 35359, 35494, 36865, 38924, 21047, 28753, 30862, - 37782, 34928, 37335, 20462, 21463, 22013, 22234, 22402, 22781, 23234, - 23432, 23723, 23744, 24101, 24833, 25101, [12095, 25163], 25480, 25628, - 25910, [25976, 63849], 27193, 27530, [12116, 27700], 27929, 28465, 29159, - 29417, 29560, 29703, 29874, 30246, 30561, 31168, 31319, 31466, 31929, - 32143, 32172, 32353, 32670, 33065, 33585, 33936, 34010, 34282, 34966, - 35504, 35728, 36664, 36930, 36995, 37228, 37526, 37561, 38539, - {f: 2, c: 38567}, 38614, 38656, 38920, [12216, 39318], 39635, 39706, 21460, - 22654, 22809, 23408, 23487, 28113, 28506, 29087, 29729, 29881, 32901, - 33789, 24033, 24455, 24490, 24642, 26092, 26642, 26991, 27219, 27529, - 27957, 28147, 29667, 30462, 30636, 31565, 32020, 33059, 33308, 33600, - 34036, 34147, 35426, 35524, 37255, 37662, 38918, 39348, 25100, 34899, - 36848, 37477, 23815, 23847, 23913, 29791, 33181, 34664, 28629, - [25342, 63859], 32722, 35126, 35186, 19998, 20056, 20711, 21213, 21319, - 25215, 26119, 32361, 34821, 38494, 20365, 21273, 22070, 22987, 23204, - [12075, 23608], 23630, 23629, 24066, 24337, 24643, 26045, 26159, 26178, - 26558, 26612, 29468, [12142, 30690], [12144, 31034], 32709, 33940, 33997, - 35222, 35430, 35433, 35553, [12183, 35925], 35962, 22516, 23508, 24335, - 24687, 25325, 26893, 27542, 28252, 29060, 31698, 34645, [35672, 63996], - 36606, [12215, 39135], 39166, 20280, 20353, 20449, 21627, 23072, 23480, - 24892, 26032, 26216, 29180, 30003, 31070, 32051, 33102, [12162, 33251], - 33688, 34218, 34254, 34563, 35338, [12189, 36523], [12191, 36763], 36805, - 22833, 23460, 23526, 24713, 23529, 23563, [12092, 24515], 27777, 28145, - 28683, 29978, 33455, 35574, [20160, 63997], [12055, 21313], 38617, - [12114, 27663], 20126, 20420, 20818, 21854, 23077, 23784, 25105, - [12123, 29273], 33469, 33706, 34558, 34905, 35357, 38463, 38597, 39187, - 40201, 40285, 22538, 23731, 23997, 24132, [24801, 63929], 24853, 25569, - [27138, 63764, 63836, 63935], 28197, 37122, 37716, 38990, 39952, 40823, - 23433, 23736, 25353, 26191, 26696, 30524, 38593, 38797, 38996, 39839, - 26017, 35585, 36555, 38332, 21813, 23721, 24022, 24245, 26263, 30284, - 33780, 38343, 22739, 25276, 29390, 40232, 20208, 22830, 24591, 26171, - 27523, 31207, 40230, 21395, 21696, 22467, 23830, 24859, 26326, 28079, - 30861, 33406, 38552, 38724, 21380, 25212, 25494, 28082, 32266, 33099, - 38989, 27387, 32588, 40367, 40474, 20063, 20539, 20918, 22812, 24825, - 25590, 26928, 29242, 32822, 37326, 24369, 32004, [33509, 63860], 33903, - 33979, 34277, 36493, 20335, 22756, 23363, 24665, 25562, 25880, 25965, - 26264, 26954, 27171, 27915, 28673, 29036, 30162, 30221, 31155, 31344, - [12154, 32650], 35140, 35731, 37312, 38525, 39178, 22276, 24481, 26044, - 28417, 30208, 31142, 35486, 39341, [12226, 39770], 40812, 20740, 25014, - 25233, 27277, 33222, 20547, 22576, 24422, 28937, [12180, 35328], 35578, - 23420, 34326, 20474, 20796, 22196, 22852, 25513, 28153, 23978, 26989, - 20870, 20104, 20313, 22914, 27487, 27741, 29877, 30998, 33287, 33349, - 33593, 36671, 36701, 39192, 20134, 22495, 24441, [26131, 63968], 30123, - 32377, 35695, 36870, 39515, 22181, 22567, 23032, 23071, 23476, 24310, - 25424, 25403, 26941, 27783, 27839, 28046, 28051, 28149, 28436, 28895, - 28982, 29017, 29123, 29141, 30799, 30831, 31605, 32227, 32303, 34893, - 36575, 37467, 40182, 24709, 28037, 29105, 38321, 21421, 26579, 28814, - 28976, 29744, 33398, 33490, 38331, 39653, 40573, 26308, 29121, - [33865, 63854], 22603, 23992, 24433, 26144, 26254, 27001, 27054, 27704, - 27891, 28214, 28481, 28634, 28699, 28719, 29008, 29151, 29552, 29787, - 29908, 30408, 31310, 32403, 33521, 35424, 36814, 37704, 38681, 20034, - 20522, 21000, 21473, 26355, 27757, 28618, 29450, 30591, 31330, 33454, - 34269, 34306, 35028, 35427, 35709, 35947, 37555, 38675, 38928, 20116, - 20237, 20425, 20658, 21320, 21566, 21555, 21978, 22626, 22714, 22887, - 23067, 23524, 24735, 25034, 25942, 26111, 26212, 26791, 27738, 28595, - 28879, 29100, 29522, 31613, 34568, 35492, 39986, 40711, 23627, 27779, - 29508, [12127, 29577], 37434, 28331, 29797, 30239, 31337, 32277, 34314, - 20800, 22725, 25793, 29934, 29973, 30320, 32705, 37013, 38605, 39252, - 28198, [12129, 29926], {f: 2, c: 31401}, 33253, 34521, 34680, 35355, 23113, - 23436, 23451, 26785, 26880, 28003, 29609, 29715, 29740, 30871, 32233, - 32747, 33048, 33109, 33694, 35916, [38446, 63942], 38929, [12104, 26352], - 24448, 26106, 26505, 27754, 29579, 20525, 23043, 27498, 30702, 22806, - 23916, 24013, 29477, 30031, 20709, 20985, 22575, 22829, 22934, 23002, - 23525, 23970, 25303, 25622, 25747, 25854, 26332, 27208, 29183, 29796, - 31368, 31407, 32327, 32350, 32768, 33136, 34799, 35201, 35616, 36953, - 36992, 39250, 24958, 27442, 28020, 32287, 35109, 36785, 20433, 20653, - 20887, 21191, 22471, 22665, 23481, 24248, 24898, 27029, 28044, 28263, - 28342, 29076, 29794, [12132, 29992], 29996, 32883, 33592, 33993, 36362, - 37780, 37854, 20110, 20305, 20598, 20778, [12060, 21448], 21451, 21491, - 23431, 23507, 23588, 24858, 24962, 26100, [12124, 29275], 29591, 29760, - 30402, 31056, 31121, 31161, 32006, [12155, 32701], 33419, 34261, 34398, - 36802, 36935, 37109, 37354, 38533, [12204, 38632], 38633, 21206, 24423, - 26093, 26161, 26671, 29020, 31286, 37057, 38922, 20113, 27218, 27550, - 28560, 29065, 32792, 33464, 34131, 36939, 38549, 38642, 38907, 34074, - 39729, 20112, 29066, 38596, 20803, 21407, 21729, 22291, 22290, 22435, - 23195, 23236, 23491, 24616, 24895, 25588, 27781, 27961, 28274, 28304, - 29232, 29503, 29783, 33489, 34945, 36677, 36960, 38498, 39000, 40219, - [12105, 26376], 36234, 37470, 20301, 20553, 20702, 21361, 22285, 22996, - 23041, 23561, 24944, 26256, 28205, 29234, 29771, 32239, 32963, 33806, - 33894, 34111, 34655, 34907, 35096, 35586, 36949, [12209, 38859], 39759, - 20083, 20369, 20754, 20842, 21807, 21929, 23418, 23461, {f: 2, c: 24188}, - 24254, 24736, 24799, {f: 2, c: 24840}, 25540, 25912, 26377, 26580, 26586, - {f: 2, c: 26977}, 27833, 27943, 28216, 28641, {f: 2, c: 29494}, 29788, - 30001, 30290, 32173, 33278, 33848, 35029, 35480, 35547, 35565, 36400, - 36418, 36938, 36926, 36986, [12195, 37193], 37321, 37742, 22537, 27603, - [12161, 32905], 32946, 20801, 22891, 23609, 28516, 29607, 32996, 36103, - 37399, 38287, [12160, 32895], 25102, 28700, 32104, 34701, 22432, 24681, - 24903, 27575, 35518, 37504, 38577, [12036, 20057], 21535, 28139, 34093, - 38512, [12211, 38899], 39150, 25558, 27875, [12194, 37009], 20957, 25033, - 33210, 40441, 20381, 20506, 20736, 23452, 24847, 25087, 25836, 26885, - 27589, 30097, 30691, 32681, 33380, 34191, 34811, [12176, 34915], 35516, - 35696, 37291, [12038, 20108], 20197, 20234, 22839, 23016, 24050, 24347, - 24411, 24609, 29246, 29669, [30064, 63842], 30157, 31227, [12157, 32780], - [12159, 32819], 32900, 33505, 33617, 36029, 36019, 36999, 39156, 39180, - 28727, 30410, 32714, 32716, 32764, 35610, [12040, 20154], 20161, 20995, - 21360, [21693, 63902], 22240, 23035, 23493, 24341, 24525, 28270, 32106, - 33589, 34451, 35469, 38765, 38775, [12032, 19968], 20314, 20350, 22777, - [12103, 26085], 28322, 36920, 37808, 39353, 20219, 22764, 22922, 23001, - 24641, 31252, 33615, 36035, [12042, 20837], 21316, 20173, 21097, 23381, - 33471, 20180, [21050, 63999], 21672, 22985, 23039, [12070, 23376], 23383, - 23388, 24675, 24904, 28363, [28825, 63995], 29038, 29574, 29943, 30133, - 30913, 32043, 32773, [12163, 33258], 33576, 34071, 34249, 35566, 36039, - 38604, 20316, 21242, 22204, 26027, 26152, 28796, 28856, 29237, 32189, - 33421, 37196, 38592, 40306, 23409, 26855, 27544, 28538, 30430, 23697, - 26283, 28507, 31668, 31786, 34870, 38620, 19976, 20183, 21280, 22580, - 22715, 22767, 22892, 23559, 24115, 24196, 24373, 25484, 26290, 26454, - 27167, 27299, 27404, 28479, 29254, 29520, 29835, 31456, 31911, 33144, - 33247, 33255, 33674, 33900, 34083, 34196, 34255, 35037, 36115, 37292, - [12199, 38263], 38556, 20877, 21705, 22312, 23472, 25165, 26448, 26685, - 26771, 28221, 28371, 28797, 32289, 35009, 36001, 36617, 40779, 40782, - 29229, 31631, 35533, 37658, 20295, 20302, 20786, 21632, 22992, 24213, - 25269, 26485, 26990, 27159, 27822, 28186, 29401, 29482, 30141, 31672, - 32053, 33511, 33785, 33879, 34295, 35419, 36015, 36487, 36889, 37048, - 38606, 40799, 21219, 21514, 23265, 23490, 25688, 25973, 28404, 29380, - 30340, 31309, 31515, 31821, 32318, 32735, 33659, 35627, 36042, - [12186, 36196], 36321, 36447, 36842, 36857, 36969, 37841, 20291, 20346, - 20659, 20840, 20856, 21069, 21098, 22625, 22652, 22880, 23560, 23637, - 24283, 24731, 25136, 26643, 27583, 27656, 28593, 29006, 29728, - [12133, 30000], 30008, 30033, 30322, 31564, 31627, 31661, 31686, 32399, - 35438, 36670, 36681, 37439, 37523, 37666, 37931, 38651, 39002, 39019, - 39198, [20999, 64000], 25130, 25240, 27993, 30308, 31434, 31680, 32118, - 21344, 23742, 24215, 28472, 28857, 31896, 38673, 39822, 40670, 25509, - 25722, 34678, 19969, 20117, 20141, 20572, 20597, 21576, 22979, 23450, - 24128, 24237, 24311, 24449, 24773, 25402, 25919, 25972, 26060, 26230, - 26232, 26622, 26984, 27273, 27491, 27712, 28096, 28136, 28191, 28254, - 28702, 28833, 29582, 29693, 30010, 30555, 30855, 31118, 31243, 31357, - 31934, 32142, 33351, 35330, 35562, 35998, 37165, 37194, 37336, 37478, - 37580, 37664, 38662, 38742, 38748, 38914, [12237, 40718], 21046, 21137, - 21884, 22564, 24093, 24351, 24716, 25552, 26799, 28639, 31085, 31532, - 33229, 34234, 35069, 35576, 36420, 37261, 38500, 38555, 38717, 38988, - [12241, 40778], 20430, 20806, 20939, 21161, 22066, 24340, 24427, 25514, - 25805, 26089, 26177, 26362, 26361, 26397, 26781, 26839, 27133, 28437, - 28526, 29031, 29157, [12118, 29226], 29866, 30522, 31062, 31066, 31199, - 31264, 31381, 31895, 31967, 32068, 32368, 32903, 34299, 34468, 35412, - 35519, 36249, 36481, 36896, 36973, 37347, 38459, 38613, [12227, 40165], - 26063, 31751, [12188, 36275], 37827, 23384, 23562, 21330, 25305, 29469, - 20519, 23447, 24478, 24752, 24939, 26837, 28121, 29742, 31278, 32066, - 32156, 32305, 33131, 36394, 36405, 37758, 37912, 20304, 22352, 24038, - 24231, 25387, 32618, 20027, 20303, 20367, 20570, 23005, 32964, 21610, - 21608, 22014, 22863, 23449, 24030, 24282, 26205, 26417, 26609, 26666, - 27880, 27954, 28234, 28557, 28855, 29664, 30087, 31820, 32002, 32044, - 32162, [12168, 33311], 34523, 35387, 35461, [12187, 36208], 36490, 36659, - 36913, 37198, 37202, 37956, 39376, [12149, 31481], 31909, 20426, 20737, - 20934, 22472, 23535, 23803, 26201, 27197, 27994, 28310, 28652, 28940, - 30063, 31459, 34850, 36897, 36981, 38603, 39423, 33537, 20013, 20210, - 34886, 37325, 21373, 27355, 26987, 27713, 33914, 22686, 24974, 26366, - 25327, 28893, 29969, 30151, 32338, 33976, 35657, 36104, 20043, 21482, - 21675, 22320, 22336, 24535, 25345, 25351, 25711, [12096, 25903], 26088, - 26234, 26525, 26547, [12108, 27490], 27744, 27802, 28460, 30693, 30757, - 31049, 31063, 32025, 32930, 33026, [12164, 33267], 33437, 33463, 34584, - 35468, 36100, 36286, 36978, 30452, 31257, 31287, 32340, 32887, 21767, - 21972, 22645, 25391, 25634, 26185, 26187, 26733, 27035, 27524, 27941, - 28337, 29645, 29800, 29857, 30043, 30137, 30433, 30494, 30603, 31206, - 32265, 32285, 33275, 34095, 34967, 35386, 36049, 36587, - [12192, 36784, 63857], 36914, 37805, 38499, 38515, 38663, 20356, 21489, - 23018, 23241, 24089, 26702, 29894, 30142, 31209, 31378, 33187, 34541, - 36074, 36300, 36845, 26015, 26389, 22519, 28503, 32221, 36655, 37878, - 38598, 24501, 25074, 28548, 19988, 20376, 20511, 21449, 21983, 23919, - 24046, 27425, 27492, 30923, 31642, 36425, [12190, 36554, 63746], 36974, - 25417, 25662, 30528, 31364, 37679, 38015, 40810, 25776, 28591, 29158, - 29864, 29914, 31428, 31762, 32386, 31922, 32408, 35738, 36106, 38013, - 39184, 39244, 21049, 23519, 25830, 26413, 32046, 20717, [21443, 63851], - 22649, {f: 2, c: 24920}, 25082, 26028, 31449, 35730, 35734, 20489, 20513, - 21109, 21809, 23100, 24288, 24432, 24884, 25950, 26124, 26166, 26274, - 27085, 28356, 28466, 29462, 30241, 31379, 33081, 33369, 33750, 33980, - 20661, 22512, 23488, 23528, 24425, 25505, 30758, 32181, 33756, 34081, - 37319, 37365, 20874, 26613, 31574, 36012, 20932, 22971, 24765, 34389, - 20508, 21076, 23610, 24957, 25114, [25299, 64002], 25842, 26021, 28364, - 30240, 33034, 36448, 38495, 38587, 20191, 21315, 21912, 22825, 24029, - 25797, 27849, 28154, 29588, 31359, [12167, 33307], 34214, 36068, 36368, - 36983, 37351, 38369, 38433, 38854, 20984, 21746, 21894, 24505, 25764, - 28552, 32180, 36639, 36685, 37941, 20681, 23574, 27838, 28155, 29979, - 30651, 31805, 31844, 35449, 35522, 22558, 22974, 24086, 25463, 29266, - 30090, 30571, 35548, 36028, 36626, 24307, 26228, 28152, 32893, 33729, - 35531, [12205, 38737], 39894, 21059, 26367, 28053, 28399, 32224, 35558, - 36910, 36958, 39636, 21021, 21119, 21736, 24980, 25220, 25307, 26786, - 26898, 26970, 27189, 28818, 28966, 30813, 30977, 30990, 31186, 31245, - 32918, [12171, 33400], 33493, 33609, 34121, 35970, 36229, 37218, 37259, - 37294, 20419, 22225, 29165, 30679, 34560, 35320, [12072, 23544], 24534, - 26449, 37032, 21474, 22618, 23541, 24740, 24961, 25696, 32317, 32880, - 34085, 37507, 25774, 20652, 23828, 26368, 22684, 25277, 25512, 26894, - 27000, 27166, 28267, 30394, 31179, 33467, 33833, 35535, 36264, 36861, - 37138, 37195, 37276, 37648, 37656, 37786, 38619, 39478, 39949, 19985, - 30044, 31069, 31482, 31569, 31689, 32302, 33988, 36441, 36468, 36600, - 36880, 26149, 26943, 29763, 20986, 26414, 40668, 20805, 24544, 27798, - 34802, 34909, 34935, 24756, 33205, 33795, 36101, 21462, 21561, 22068, - 23094, 23601, 28810, 32736, 32858, 33030, 33261, 36259, 37257, 39519, - 40434, 20596, 20164, 21408, 24827, 28204, 23652, 20360, 20516, 21988, - 23769, 24159, 24677, 26772, 27835, 28100, 29118, 30164, 30196, 30305, - 31258, 31305, 32199, 32251, 32622, 33268, 34473, 36636, 38601, 39347, - [12242, 40786], 21063, 21189, 39149, 35242, 19971, 26578, 28422, 20405, - 23522, 26517, [27784, 63858], 28024, 29723, 30759, 37341, 37756, 34756, - 31204, 31281, 24555, 20182, 21668, 21822, 22702, 22949, 24816, 25171, - 25302, 26422, 26965, 33333, 38464, 39345, 39389, 20524, 21331, 21828, - 22396, 25176, 25826, 26219, 26589, 28609, 28655, 29730, 29752, 35351, - 37944, 21585, 22022, 22374, 24392, 24986, 27470, 28760, 28845, 32187, - 35477, 22890, 33067, 25506, 30472, 32829, 36010, 22612, 25645, 27067, - 23445, 24081, 28271, 34153, 20812, 21488, 22826, 24608, 24907, 27526, - 27760, 27888, 31518, 32974, 33492, 36294, 37040, 39089, 25799, 28580, - 25745, 25860, 20814, 21520, [12063, 22303], 35342, 24927, 26742, 30171, - 31570, 32113, 36890, 22534, 27084, 33151, 35114, 36864, 38969, 20600, - 22871, 22956, 25237, 36879, 39722, 24925, 29305, 38358, 22369, 23110, - 24052, 25226, 25773, 25850, 26487, 27874, 27966, 29228, 29750, 30772, - 32631, 33453, 36315, 38935, 21028, 22338, 26495, 29256, 29923, 36009, - 36774, 37393, 38442, [12043, 20843], 21485, 25420, 20329, 21764, 24726, - 25943, 27803, 28031, 29260, 29437, 31255, 35207, [12185, 35997], 24429, - 28558, 28921, 33192, 24846, [20415, 63845], 20559, 25153, [12122, 29255], - 31687, 32232, 32745, 36941, 38829, 39449, 36022, 22378, 24179, 26544, - 33805, 35413, 21536, 23318, 24163, 24290, 24330, 25987, 32954, 34109, - 38281, 38491, 20296, 21253, 21261, 21263, 21638, 21754, 22275, 24067, - 24598, 25243, 25265, 25429, 27873, 28006, 30129, 30770, 32990, 33071, - 33502, 33889, 33970, 34957, 35090, 36875, 37610, 39165, 39825, 24133, - [26292, 64006], 26333, 28689, 29190, 20469, 21117, 24426, 24915, 26451, - 27161, 28418, 29922, 31080, 34920, 35961, 39111, 39108, 39491, 21697, - 31263, 26963, 35575, 35914, [12213, 39080], 39342, 24444, 25259, 30130, - [12138, 30382], 34987, 36991, 38466, 21305, 24380, 24517, [27852, 63848], - 29644, 30050, [12134, 30091], 31558, 33534, 39325, 20047, 36924, 19979, - 20309, 21414, 22799, 24264, 26160, 27827, 29781, 33655, 34662, 36032, - 36944, 38686, 39957, 22737, 23416, 34384, 35604, 40372, 23506, 24680, - 24717, 26097, 27735, 28450, 28579, 28698, 32597, 32752, {f: 2, c: 38289}, - 38480, 38867, 21106, 36676, 20989, 21547, 21688, 21859, 21898, 27323, - 28085, 32216, 33382, 37532, 38519, 40569, 21512, 21704, 30418, 34532, - 38308, 38356, 38492, 20130, 20233, 23022, 23270, 24055, 24658, 25239, - 26477, 26689, 27782, 28207, 32568, 32923, 33322, 38917, 20133, 20565, - 21683, 22419, 22874, 23401, 23475, 25032, 26999, 28023, 28707, 34809, - 35299, 35442, 35559, 36994, 39405, 39608, 21182, 26680, 20502, 24184, - 26447, 33607, [12175, 34892, 64008], 20139, 21521, 22190, 29670, 37141, - 38911, 39177, 39255, [12217, 39321], 22099, 22687, 34395, 35377, 25010, - 27382, 29563, 36562, 27463, 38570, 39511, 22869, 29184, 36203, - [12208, 38761], 20436, 23796, 24358, 25080, 26203, 27883, 28843, - [12126, 29572], 29625, 29694, 30505, 30541, 32067, 32098, 32291, 33335, - 34898, 36066, 37449, 39023, 23377, [12147, 31348], [12174, 34880], - [12212, 38913], 23244, 20448, 21332, 22846, 23805, 25406, 28025, 29433, - 33029, 33031, 33698, 37583, 38960, 20136, 20804, 21009, 22411, 24418, - 27842, 28366, 28677, 28752, 28847, 29074, 29673, [29801, 63918], 33610, - 34722, 34913, 36872, 37026, 37795, 39336, 20846, 24407, 24800, 24935, - 26291, 34137, 36426, 37295, 38795, 20046, 20114, 21628, 22741, 22778, - 22909, 23733, 24359, [12094, 25142], 25160, 26122, 26215, 27627, 28009, - 28111, 28246, 28408, 28564, 28640, 28649, 28765, 29392, 29733, 29786, - 29920, 30355, 31068, 31946, 32286, 32993, 33446, 33899, 33983, 34382, - 34399, 34676, 35703, 35946, 37804, 38912, 39013, 24785, 25110, 37239, - 23130, 26127, 28151, 28222, 29759, 39746, 24573, 24794, 31503, 21700, - 24344, 27742, 27859, 27946, 28888, 32005, 34425, 35340, 40251, 21270, - 21644, 23301, 27194, [12117, 28779], 30069, 31117, [12146, 31166], 33457, - 33775, 35441, 35649, 36008, 38772, 25844, 25899, {f: 2, c: 30906}, 31339, - 20024, 21914, 22864, 23462, 24187, 24739, 25563, 27489, 26213, 26707, - 28185, 29029, 29872, 32008, 36996, 39529, 39973, 27963, [28369, 63748], - 29502, 35905, 38346, 20976, 24140, 24488, 24653, 24822, 24880, 24908, - {f: 2, c: 26179}, 27045, 27841, 28255, 28361, 28514, 29004, 29852, 30343, - 31681, 31783, 33618, 34647, 36945, 38541, [12232, 40643], 21295, 22238, - 24315, 24458, 24674, 24724, 25079, 26214, 26371, 27292, 28142, 28590, - 28784, 29546, 32362, 33214, 33588, 34516, 35496, 36036, 21123, 29554, - 23446, 27243, 37892, 21742, 22150, 23389, 25928, 25989, 26313, 26783, - 28045, 28102, [12120, 29243], 32948, 37237, 39501, 20399, 20505, 21402, - 21518, 21564, 21897, 21957, 24127, 24460, 26429, 29030, 29661, 36869, - 21211, 21235, 22628, 22734, 28932, 29071, 29179, 34224, 35347, - [26248, 63941], 34216, 21927, 26244, 29002, 33841, 21321, 21913, 27585, - 24409, 24509, 25582, 26249, 28999, 35569, 36637, 40638, 20241, 25658, - 28875, 30054, 34407, 24676, 35662, 40440, 20807, 20982, 21256, 27958, - 33016, [12234, 40657], 26133, 27427, 28824, 30165, 21507, 23673, 32007, - 35350, [12107, 27424], 27453, 27462, 21560, 24688, 27965, 32725, 33288, - 20694, 20958, 21916, 22123, 22221, 23020, 23305, 24076, 24985, 24984, - 25137, 26206, 26342, 29081, {f: 2, c: 29113}, 29351, 31143, 31232, 32690, - 35440, {s: 163}, {f: 4, c: 12310}, {s: 14}, 8223, 8219, {f: 2, c: 8314}, - {s: 7}, 8316, 0, {f: 2, c: 8317}, {s: 23}, 700, {s: 44}, 8942, 8759, - {s: 20}, {f: 10, c: 10122}, {s: 36}, {f: 26, c: 9398}, {s: 61}, - {f: 2, c: 8826}, {f: 2, c: 8910}, {f: 2, c: 8832}, {f: 4, c: 8816}, 0, - 8842, 0, 8843, {f: 2, c: 8822}, 8825, {f: 2, c: 8922}, {s: 5}, 8773, 8771, - 8776, 0, 8868, {s: 78}, 8244, {s: 11}, 9839, {s: 4}, 8258, {s: 4}, 10045, - 0, 0, 8226, {s: 4}, {f: 2, c: 8249}, {s: 16}, 10010, 10006, 0, 9711, - {s: 3}, 10070, 0, 9676, {s: 24}, 9775, {s: 6}, 12320, 0, {f: 10, c: 10102}, - {s: 17}, 12306, 12342, {s: 13}, 8710, 0, 8735, 0, {f: 2, c: 8741}, 0, 8787, - 8785, {f: 2, c: 8806}, 8723, {f: 3, c: 8853}, 0, 8980, 0, 0, 8802, 0, 9649, - 0, 8738, 8784, 0, 0, 8867, 0, 0, {f: 2, c: 8814}, 8837, 8836, 8713, 8716, - {f: 2, c: 8891}, 8794, 8966, {s: 6}, 12958, 0, 8252, {s: 11}, 9702, {s: 3}, - 9663, 9653, 9657, 9667, {s: 4}, 9674, 12849, 12857, 13259, {f: 5, c: 9327}, - {s: 18}, 8656, 8655, 8653, {s: 37}, 8657, 8659, {s: 8}, 8626, 8625, 0, - 8628, 8624, 8627, {s: 14}, 8636, 8640, {s: 10}, {f: 2, c: 8644}, {s: 144}, - {f: 5, c: 9347}, {s: 33}, 12948, {s: 15}, 12965, {s: 93}, 8672, 8674, 8673, - 8675, {s: 4}, 8678, 8680, 8679, 8681, {s: 20}, 9757, 9759, {s: 76}, 12944, - {f: 6, c: 12938}, {s: 15}, {f: 2, c: 12318}, 8246, 0, 8245, {s: 3}, 12540, - 0, 0, {f: 2, c: 44034}, {f: 2, c: 44037}, {f: 5, c: 44043}, 44056, - {f: 2, c: 44062}, {f: 3, c: 44065}, {f: 7, c: 44069}, 44078, - {f: 6, c: 44082}, {f: 2, c: 44090}, {f: 3, c: 44093}, {f: 10, c: 44097}, - 44108, {f: 6, c: 44110}, {f: 3, c: 44117}, {f: 3, c: 44121}, - {f: 19, c: 44125}, {f: 2, c: 44146}, {f: 2, c: 44149}, 44153, - {f: 5, c: 44155}, 44162, {f: 2, c: 44167}, {f: 3, c: 44173}, - {f: 3, c: 44177}, {f: 7, c: 44181}, 44190, {f: 6, c: 44194}, 44203, - {f: 2, c: 44205}, {f: 7, c: 44209}, 44218, {f: 3, c: 44222}, - {f: 2, c: 44226}, {f: 3, c: 44229}, {f: 3, c: 44233}, {f: 8, c: 44237}, - 44246, {f: 8, c: 44248}, {f: 2, c: 44258}, {f: 2, c: 44261}, 44265, 44267, - {f: 2, c: 44269}, 44274, 44276, {f: 5, c: 44279}, {f: 2, c: 44286}, - {f: 3, c: 44289}, 44293, {f: 5, c: 44295}, 44302, 44304, {f: 6, c: 44306}, - {f: 3, c: 44313}, {f: 3, c: 44317}, {f: 8, c: 44321}, {f: 2, c: 44330}, - {f: 6, c: 44334}, {f: 2, c: 44342}, {f: 3, c: 44345}, {f: 7, c: 44349}, - 44358, 44360, {f: 6, c: 44362}, {f: 3, c: 44369}, {f: 3, c: 44373}, - {f: 8, c: 44377}, 44386, {f: 8, c: 44388}, {f: 2, c: 44398}, - {f: 2, c: 44401}, {f: 4, c: 44407}, 44414, 44416, {f: 5, c: 44419}, - {f: 2, c: 44426}, {f: 3, c: 44429}, {f: 11, c: 44433}, {f: 6, c: 44446}, - {f: 18, c: 44453}, {f: 8, c: 44472}, {f: 2, c: 44482}, {f: 3, c: 44485}, - {f: 7, c: 44489}, 44498, {f: 8, c: 44500}, {f: 3, c: 44509}, - {f: 3, c: 44513}, {f: 19, c: 44517}, {f: 2, c: 44538}, {f: 2, c: 44541}, - {f: 6, c: 44546}, 44554, 44556, {f: 6, c: 44558}, {f: 27, c: 44565}, - {f: 2, c: 44594}, {f: 2, c: 44597}, 44601, {f: 5, c: 44603}, 44610, 44612, - {f: 3, c: 44615}, 44619, 44623, {f: 3, c: 44625}, 44629, {f: 5, c: 44631}, - 44638, {f: 3, c: 44642}, {f: 2, c: 44646}, {f: 2, c: 44650}, - {f: 3, c: 44653}, {f: 7, c: 44657}, 44666, {f: 6, c: 44670}, - {f: 6, c: 44678}, {f: 47, c: 44685}, 44735, {f: 3, c: 44737}, - {f: 7, c: 44741}, 44750, {f: 6, c: 44754}, {f: 2, c: 44762}, - {f: 11, c: 44765}, {f: 2, c: 44777}, 44780, {f: 6, c: 44782}, - {f: 3, c: 44789}, {f: 3, c: 44793}, {f: 10, c: 44797}, {f: 4, c: 44809}, - {f: 2, c: 44814}, {f: 27, c: 44817}, {f: 2, c: 44846}, 44849, 44851, - {f: 7, c: 44853}, 44862, 44864, {f: 4, c: 44868}, {f: 6, c: 44874}, - {f: 11, c: 44881}, {f: 6, c: 44894}, {f: 19, c: 44902}, {f: 6, c: 44922}, - {f: 3, c: 44929}, {f: 3, c: 44933}, {f: 7, c: 44937}, {f: 3, c: 44946}, - {f: 6, c: 44950}, {f: 27, c: 44957}, {f: 2, c: 44986}, {f: 3, c: 44989}, - {f: 6, c: 44993}, 45002, 45004, {f: 5, c: 45007}, {f: 7, c: 45013}, - {f: 11, c: 45021}, {f: 6, c: 45034}, {f: 2, c: 45042}, {f: 3, c: 45045}, - {f: 7, c: 45049}, {f: 2, c: 45058}, {f: 7, c: 45061}, {f: 3, c: 45069}, - {f: 3, c: 45073}, {f: 7, c: 45077}, {f: 10, c: 45086}, {f: 27, c: 45097}, - {f: 2, c: 45126}, 45129, 45131, 45133, {f: 4, c: 45135}, 45142, 45144, - {f: 3, c: 45146}, {f: 30, c: 45150}, {f: 2, c: 45182}, {f: 3, c: 45185}, - {f: 7, c: 45189}, 45198, 45200, {f: 6, c: 45202}, 45211, {f: 2, c: 45213}, - {f: 5, c: 45219}, 45226, 45232, 45234, {f: 2, c: 45238}, {f: 3, c: 45241}, - {f: 7, c: 45245}, 45254, {f: 6, c: 45258}, {f: 2, c: 45266}, - {f: 3, c: 45269}, {f: 7, c: 45273}, {f: 4, c: 45281}, {f: 34, c: 45286}, - 45322, {f: 3, c: 45325}, 45329, {f: 4, c: 45332}, 45338, {f: 5, c: 45342}, - {f: 2, c: 45350}, {f: 3, c: 45353}, {f: 7, c: 45357}, 45366, - {f: 6, c: 45370}, {f: 2, c: 45378}, {f: 3, c: 45381}, {f: 7, c: 45385}, - {f: 2, c: 45394}, {f: 2, c: 45398}, {f: 3, c: 45401}, {f: 3, c: 45405}, - {f: 23, c: 45409}, {f: 2, c: 45434}, {f: 3, c: 45437}, 45441, - {f: 5, c: 45443}, 45450, 45452, {f: 4, c: 45454}, {f: 3, c: 45461}, - {f: 3, c: 45465}, {f: 11, c: 45469}, {f: 35, c: 45481}, {f: 3, c: 45517}, - {f: 3, c: 45521}, {f: 7, c: 45525}, 45534, {f: 8, c: 45536}, - {f: 2, c: 45546}, {f: 3, c: 45549}, {f: 8, c: 45553}, 45562, 45564, - {f: 6, c: 45566}, {f: 2, c: 45574}, {f: 2, c: 45577}, {f: 7, c: 45581}, - 45590, 45592, {f: 6, c: 45594}, {f: 19, c: 45601}, {f: 7, c: 45621}, - {f: 27, c: 45629}, {f: 3, c: 45657}, {f: 3, c: 45661}, {f: 7, c: 45665}, - {f: 10, c: 45674}, {f: 6, c: 45686}, {f: 7, c: 45693}, {f: 3, c: 45702}, - {f: 6, c: 45706}, {f: 2, c: 45714}, {f: 3, c: 45717}, {f: 5, c: 45723}, - 45730, 45732, {f: 3, c: 45735}, 45739, {f: 3, c: 45741}, {f: 3, c: 45745}, - {f: 19, c: 45749}, {f: 2, c: 45770}, {f: 3, c: 45773}, 45777, - {f: 5, c: 45779}, 45786, 45788, {f: 4, c: 45790}, 45795, 45799, - {f: 2, c: 45801}, {f: 3, c: 45808}, 45814, {f: 3, c: 45820}, - {f: 2, c: 45826}, {f: 3, c: 45829}, {f: 7, c: 45833}, 45842, - {f: 6, c: 45846}, {f: 55, c: 45853}, 45911, {f: 2, c: 45913}, 45917, - {f: 4, c: 45920}, 45926, 45928, 45930, {f: 2, c: 45932}, 45935, - {f: 2, c: 45938}, {f: 3, c: 45941}, {f: 7, c: 45945}, 45954, - {f: 6, c: 45958}, {f: 3, c: 45965}, {f: 3, c: 45969}, {f: 11, c: 45973}, - {f: 6, c: 45986}, {f: 3, c: 45993}, {f: 23, c: 45997}, {f: 2, c: 46022}, - {f: 2, c: 46025}, 46029, 46031, {f: 3, c: 46033}, 46038, 46040, 46042, - 46044, {f: 2, c: 46046}, {f: 3, c: 46049}, {f: 3, c: 46053}, - {f: 19, c: 46057}, {f: 19, c: 46077}, {f: 7, c: 46097}, {f: 3, c: 46105}, - {f: 3, c: 46109}, {f: 7, c: 46113}, 46122, {f: 8, c: 46124}, - {f: 27, c: 46133}, {f: 2, c: 46162}, {f: 3, c: 46165}, {f: 7, c: 46169}, - 46178, 46180, {f: 6, c: 46182}, {f: 19, c: 46189}, {f: 7, c: 46209}, - {f: 20, c: 46217}, {f: 6, c: 46238}, {f: 3, c: 46245}, {f: 3, c: 46249}, - {f: 8, c: 46253}, 46262, 46264, {f: 6, c: 46266}, {f: 3, c: 46273}, - {f: 3, c: 46277}, {f: 7, c: 46281}, {f: 4, c: 46289}, {f: 6, c: 46294}, - {f: 2, c: 46302}, {f: 2, c: 46305}, 46309, {f: 5, c: 46311}, 46318, 46320, - {f: 6, c: 46322}, {f: 27, c: 46329}, {f: 2, c: 46358}, {f: 2, c: 46361}, - {f: 7, c: 46365}, 46374, {f: 5, c: 46379}, {f: 2, c: 46386}, - {f: 3, c: 46389}, {f: 7, c: 46393}, 46402, {f: 5, c: 46406}, - {f: 2, c: 46414}, {f: 3, c: 46417}, {f: 7, c: 46421}, 46430, - {f: 62, c: 46434}, {f: 2, c: 46498}, {f: 3, c: 46501}, 46505, - {f: 4, c: 46508}, 46514, {f: 5, c: 46518}, {f: 2, c: 46526}, - {f: 3, c: 46529}, {f: 7, c: 46533}, 46542, {f: 6, c: 46546}, - {f: 19, c: 46553}, {f: 35, c: 46573}, {f: 2, c: 46610}, {f: 3, c: 46613}, - {f: 12, c: 46617}, {f: 6, c: 46630}, {f: 7, c: 46637}, {f: 19, c: 46645}, - {f: 27, c: 46665}, {f: 3, c: 46693}, {f: 51, c: 46697}, {f: 2, c: 46750}, - {f: 3, c: 46753}, {f: 6, c: 46757}, {f: 4, c: 46765}, {f: 34, c: 46770}, - {f: 27, c: 46805}, {f: 3, c: 46833}, {f: 3, c: 46837}, {f: 7, c: 46841}, - {f: 3, c: 46850}, {f: 34, c: 46854}, {f: 2, c: 46890}, {f: 2, c: 46893}, - {f: 7, c: 46897}, 46906, {f: 8, c: 46908}, {f: 3, c: 46917}, - {f: 3, c: 46921}, {f: 7, c: 46925}, {f: 10, c: 46934}, {f: 3, c: 46945}, - {f: 3, c: 46949}, {f: 7, c: 46953}, 46962, 46964, {f: 6, c: 46966}, - {f: 2, c: 46974}, {f: 3, c: 46977}, {f: 7, c: 46981}, 46990, - {f: 3, c: 46995}, {f: 2, c: 47002}, {f: 3, c: 47005}, {f: 7, c: 47009}, - 47018, {f: 6, c: 47022}, {f: 2, c: 47030}, {f: 14, c: 47033}, 47048, - {f: 34, c: 47050}, {f: 2, c: 47086}, {f: 3, c: 47089}, {f: 7, c: 47093}, - 47102, {f: 5, c: 47106}, {f: 2, c: 47114}, {f: 3, c: 47117}, - {f: 7, c: 47121}, 47130, 47132, {f: 6, c: 47134}, {f: 2, c: 47142}, - {f: 3, c: 47145}, {f: 7, c: 47149}, 47158, {f: 6, c: 47162}, - {f: 3, c: 47169}, {f: 12, c: 47173}, 47186, {f: 8, c: 47188}, - {f: 2, c: 47198}, {f: 3, c: 47201}, {f: 7, c: 47205}, 47214, 47216, - {f: 6, c: 47218}, {f: 3, c: 47225}, {f: 16, c: 47229}, {f: 26, c: 47246}, - {f: 7, c: 47273}, {f: 3, c: 47281}, {f: 3, c: 47285}, {f: 7, c: 47289}, - 47298, 47300, {f: 6, c: 47302}, {f: 3, c: 47309}, {f: 3, c: 47313}, - {f: 8, c: 47317}, 47326, 47328, {f: 6, c: 47330}, {f: 2, c: 47338}, - {f: 3, c: 47341}, {f: 7, c: 47345}, 47354, 47356, {f: 6, c: 47358}, - {f: 19, c: 47365}, {f: 7, c: 47385}, {f: 27, c: 47393}, {f: 2, c: 47422}, - {f: 3, c: 47425}, {f: 7, c: 47429}, {f: 2, c: 47437}, 47440, - {f: 6, c: 47442}, {f: 2, c: 47450}, {f: 3, c: 47453}, {f: 7, c: 47457}, - 47466, 47468, {f: 6, c: 47470}, {f: 2, c: 47478}, {f: 3, c: 47481}, - {f: 7, c: 47485}, 47494, 47496, {f: 2, c: 47499}, {f: 29, c: 47503}, - {f: 2, c: 47534}, {f: 3, c: 47537}, {f: 7, c: 47541}, 47550, 47552, - {f: 6, c: 47554}, {f: 2, c: 47562}, 47565, {f: 5, c: 47571}, 47578, 47580, - {f: 2, c: 47583}, 47586, {f: 2, c: 47590}, {f: 3, c: 47593}, - {f: 7, c: 47597}, 47606, {f: 5, c: 47611}, {f: 6, c: 47618}, - {f: 12, c: 47625}, {f: 34, c: 47638}, {f: 2, c: 47674}, {f: 3, c: 47677}, - 47681, {f: 5, c: 47683}, 47690, 47692, {f: 4, c: 47695}, {f: 2, c: 47702}, - {f: 3, c: 47705}, {f: 7, c: 47709}, 47718, {f: 6, c: 47722}, - {f: 2, c: 47730}, {f: 3, c: 47733}, {f: 10, c: 47737}, 47750, - {f: 4, c: 47752}, {f: 27, c: 47757}, 47786, {f: 3, c: 47789}, 47793, - {f: 5, c: 47795}, 47802, 47804, {f: 6, c: 47806}, {f: 3, c: 47813}, - {f: 15, c: 47817}, {f: 34, c: 47834}, {f: 3, c: 47869}, {f: 3, c: 47873}, - {f: 8, c: 47877}, 47886, 47888, {f: 6, c: 47890}, {f: 3, c: 47897}, - {f: 3, c: 47901}, {f: 8, c: 47905}, 47914, {f: 8, c: 47916}, 47927, - {f: 2, c: 47929}, {f: 5, c: 47935}, 47942, 47944, {f: 3, c: 47946}, 47950, - {f: 3, c: 47953}, {f: 3, c: 47957}, {f: 8, c: 47961}, 47970, - {f: 8, c: 47972}, {f: 27, c: 47981}, {f: 3, c: 48009}, {f: 3, c: 48013}, - {f: 19, c: 48017}, {f: 3, c: 48037}, {f: 3, c: 48041}, {f: 7, c: 48045}, - {f: 2, c: 48053}, {f: 8, c: 48056}, {f: 3, c: 48065}, {f: 3, c: 48069}, - {f: 7, c: 48073}, {f: 2, c: 48081}, {f: 36, c: 48084}, {f: 2, c: 48122}, - {f: 2, c: 48125}, 48129, {f: 5, c: 48131}, 48138, 48142, 48144, - {f: 2, c: 48146}, {f: 2, c: 48153}, {f: 4, c: 48160}, 48166, 48168, - {f: 3, c: 48170}, {f: 2, c: 48174}, {f: 2, c: 48178}, {f: 3, c: 48181}, - {f: 7, c: 48185}, 48194, {f: 3, c: 48198}, {f: 2, c: 48202}, - {f: 2, c: 48206}, {f: 12, c: 48209}, {f: 38, c: 48222}, {f: 2, c: 48262}, - {f: 2, c: 48265}, 48269, {f: 5, c: 48271}, 48278, 48280, {f: 5, c: 48283}, - {f: 2, c: 48290}, {f: 2, c: 48293}, {f: 7, c: 48297}, 48306, - {f: 6, c: 48310}, {f: 2, c: 48318}, {f: 3, c: 48321}, {f: 8, c: 48325}, - 48334, {f: 3, c: 48338}, {f: 2, c: 48342}, {f: 3, c: 48345}, - {f: 23, c: 48349}, 48375, {f: 3, c: 48377}, {f: 7, c: 48381}, 48390, 48392, - {f: 6, c: 48394}, {f: 3, c: 48401}, {f: 15, c: 48405}, {f: 7, c: 48421}, - {f: 19, c: 48429}, {f: 7, c: 48449}, {f: 2, c: 48458}, {f: 3, c: 48461}, - {f: 7, c: 48465}, {f: 10, c: 48474}, {f: 3, c: 48485}, {f: 23, c: 48489}, - {f: 2, c: 48514}, {f: 2, c: 48517}, {f: 5, c: 48523}, 48530, 48532, - {f: 3, c: 48534}, 48539, {f: 7, c: 48541}, {f: 11, c: 48549}, - {f: 7, c: 48561}, {f: 27, c: 48569}, {f: 2, c: 48598}, {f: 3, c: 48601}, - {f: 12, c: 48605}, {f: 6, c: 48618}, {f: 3, c: 48625}, {f: 3, c: 48629}, - {f: 7, c: 48633}, {f: 2, c: 48641}, 48644, {f: 6, c: 48646}, - {f: 2, c: 48654}, {f: 3, c: 48657}, {f: 7, c: 48661}, 48670, - {f: 36, c: 48672}, {f: 2, c: 48710}, {f: 3, c: 48713}, 48717, - {f: 5, c: 48719}, 48726, 48728, {f: 4, c: 48732}, {f: 2, c: 48738}, - {f: 3, c: 48741}, 48745, {f: 5, c: 48747}, 48754, {f: 5, c: 48758}, - {f: 2, c: 48766}, {f: 3, c: 48769}, {f: 7, c: 48773}, 48782, - {f: 6, c: 48786}, {f: 14, c: 48794}, {f: 39, c: 48809}, {f: 2, c: 48850}, - {f: 2, c: 48853}, {f: 7, c: 48857}, {f: 2, c: 48865}, {f: 6, c: 48870}, - {f: 20, c: 48877}, {f: 6, c: 48898}, {f: 14, c: 48906}, 48922, - {f: 34, c: 48926}, {f: 2, c: 48962}, {f: 3, c: 48965}, {f: 7, c: 48969}, - {f: 3, c: 48978}, {f: 62, c: 48982}, {f: 27, c: 49045}, {f: 20, c: 49073}, - {f: 6, c: 49094}, {f: 2, c: 49102}, {f: 3, c: 49105}, {f: 7, c: 49109}, - {f: 2, c: 49117}, 49120, {f: 90, c: 49122}, {f: 20, c: 49213}, - {f: 6, c: 49234}, {f: 3, c: 49241}, {f: 3, c: 49245}, {f: 7, c: 49249}, - {f: 38, c: 49258}, {f: 2, c: 49298}, {f: 3, c: 49301}, {f: 7, c: 49305}, - 49314, 49316, {f: 6, c: 49318}, 49326, {f: 2, c: 49329}, {f: 5, c: 49335}, - 49342, {f: 3, c: 49346}, {f: 2, c: 49350}, {f: 2, c: 49354}, - {f: 3, c: 49357}, {f: 7, c: 49361}, 49370, {f: 6, c: 49374}, - {f: 2, c: 49382}, {f: 3, c: 49385}, {f: 7, c: 49389}, 49398, 49400, - {f: 6, c: 49402}, {f: 3, c: 49409}, {f: 3, c: 49413}, {f: 7, c: 49417}, - {f: 4, c: 49425}, {f: 6, c: 49430}, {f: 2, c: 49441}, 49445, - {f: 4, c: 49448}, 49454, {f: 4, c: 49458}, 49463, {f: 2, c: 49466}, - {f: 3, c: 49469}, {f: 7, c: 49473}, 49482, {f: 6, c: 49486}, - {f: 2, c: 49494}, {f: 3, c: 49497}, {f: 7, c: 49501}, 49510, - {f: 6, c: 49514}, {f: 3, c: 49521}, {f: 3, c: 49525}, {f: 12, c: 49529}, - {f: 6, c: 49542}, 49551, {f: 3, c: 49553}, 49557, {f: 5, c: 49559}, 49566, - 49568, {f: 3, c: 49570}, {f: 2, c: 49574}, {f: 2, c: 49578}, - {f: 3, c: 49581}, {f: 12, c: 49585}, {f: 6, c: 49598}, {f: 3, c: 49605}, - {f: 3, c: 49609}, {f: 7, c: 49613}, {f: 2, c: 49621}, {f: 7, c: 49625}, - {f: 3, c: 49633}, {f: 3, c: 49637}, {f: 7, c: 49641}, 49650, - {f: 8, c: 49652}, {f: 2, c: 49662}, {f: 3, c: 49665}, {f: 7, c: 49669}, - 49678, 49680, {f: 6, c: 49682}, {f: 2, c: 49690}, {f: 2, c: 49693}, - {f: 7, c: 49697}, 49706, 49708, 49710, 49712, 49715, {f: 19, c: 49717}, - {f: 7, c: 49737}, {f: 2, c: 49746}, {f: 3, c: 49749}, {f: 7, c: 49753}, - {f: 4, c: 49761}, {f: 6, c: 49766}, {f: 2, c: 49774}, {f: 3, c: 49777}, - {f: 7, c: 49781}, 49790, 49792, {f: 6, c: 49794}, {f: 6, c: 49802}, - {f: 7, c: 49809}, {f: 2, c: 49817}, 49820, {f: 6, c: 49822}, - {f: 2, c: 49830}, {f: 3, c: 49833}, {f: 6, c: 49838}, 49846, 49848, - {f: 34, c: 49850}, {f: 2, c: 49886}, {f: 2, c: 49889}, {f: 6, c: 49893}, - 49902, 49904, {f: 4, c: 49906}, 49911, 49914, {f: 3, c: 49917}, - {f: 7, c: 49921}, {f: 2, c: 49930}, {f: 5, c: 49934}, {f: 2, c: 49942}, - {f: 3, c: 49945}, {f: 7, c: 49949}, {f: 2, c: 49958}, {f: 27, c: 49962}, - {f: 34, c: 49990}, {f: 2, c: 50026}, {f: 3, c: 50029}, 50033, - {f: 5, c: 50035}, {f: 2, c: 50042}, {f: 6, c: 50046}, {f: 3, c: 50053}, - {f: 3, c: 50057}, {f: 51, c: 50061}, {f: 23, c: 50113}, {f: 2, c: 50138}, - {f: 2, c: 50141}, 50145, {f: 5, c: 50147}, {f: 3, c: 50154}, - {f: 6, c: 50158}, {f: 2, c: 50166}, {f: 15, c: 50169}, {f: 7, c: 50185}, - {f: 19, c: 50193}, {f: 7, c: 50213}, {f: 3, c: 50221}, {f: 3, c: 50225}, - {f: 7, c: 50229}, {f: 10, c: 50238}, {f: 27, c: 50249}, {f: 2, c: 50278}, - {f: 3, c: 50281}, {f: 7, c: 50285}, {f: 3, c: 50294}, {f: 6, c: 50298}, - {f: 19, c: 50305}, {f: 7, c: 50325}, {f: 27, c: 50333}, {f: 3, c: 50361}, - {f: 44, c: 50365}, {f: 6, c: 50410}, {f: 2, c: 50418}, {f: 3, c: 50421}, - 50425, {f: 4, c: 50427}, {f: 10, c: 50434}, {f: 3, c: 50445}, - {f: 3, c: 50449}, {f: 7, c: 50453}, {f: 11, c: 50461}, {f: 2, c: 50474}, - {f: 3, c: 50477}, {f: 7, c: 50481}, 50490, 50492, {f: 6, c: 50494}, - {f: 2, c: 50502}, 50507, {f: 4, c: 50511}, 50518, {f: 3, c: 50522}, 50527, - {f: 2, c: 50530}, {f: 3, c: 50533}, {f: 7, c: 50537}, 50546, - {f: 6, c: 50550}, {f: 2, c: 50558}, {f: 3, c: 50561}, {f: 2, c: 50565}, - {f: 4, c: 50568}, 50574, 50576, {f: 3, c: 50578}, 50582, {f: 3, c: 50585}, - {f: 3, c: 50589}, {f: 8, c: 50593}, {f: 10, c: 50602}, {f: 2, c: 50614}, - 50618, {f: 5, c: 50623}, 50635, 50637, 50639, {f: 2, c: 50642}, - {f: 3, c: 50645}, {f: 7, c: 50649}, 50658, 50660, {f: 6, c: 50662}, 50671, - {f: 3, c: 50673}, 50677, {f: 4, c: 50680}, {f: 3, c: 50690}, - {f: 3, c: 50697}, {f: 3, c: 50701}, {f: 7, c: 50705}, 50714, - {f: 7, c: 50717}, {f: 2, c: 50726}, {f: 3, c: 50729}, 50735, - {f: 2, c: 50737}, 50742, 50744, 50746, {f: 4, c: 50748}, {f: 2, c: 50754}, - {f: 3, c: 50757}, {f: 7, c: 50761}, 50770, {f: 6, c: 50774}, - {f: 2, c: 50782}, {f: 11, c: 50785}, {f: 2, c: 50797}, 50800, - {f: 6, c: 50802}, {f: 2, c: 50810}, {f: 3, c: 50813}, {f: 7, c: 50817}, - 50826, 50828, {f: 6, c: 50830}, {f: 2, c: 50838}, {f: 3, c: 50841}, - {f: 7, c: 50845}, 50854, 50856, {f: 6, c: 50858}, {f: 2, c: 50866}, - {f: 3, c: 50869}, {f: 5, c: 50875}, 50882, 50884, {f: 6, c: 50886}, - {f: 2, c: 50894}, {f: 3, c: 50897}, {f: 7, c: 50901}, {f: 2, c: 50910}, - {f: 6, c: 50914}, {f: 2, c: 50922}, {f: 3, c: 50925}, {f: 7, c: 50929}, - {f: 3, c: 50938}, {f: 6, c: 50942}, {f: 2, c: 50950}, {f: 3, c: 50953}, - {f: 7, c: 50957}, 50966, 50968, {f: 6, c: 50970}, {f: 2, c: 50978}, - {f: 3, c: 50981}, {f: 7, c: 50985}, 50994, 50996, 50998, {f: 4, c: 51000}, - {f: 2, c: 51006}, {f: 3, c: 51009}, {f: 5, c: 51013}, 51019, 51022, 51024, - {f: 3, c: 51033}, {f: 3, c: 51037}, {f: 7, c: 51041}, {f: 2, c: 51049}, - {f: 8, c: 51052}, {f: 2, c: 51062}, {f: 3, c: 51065}, {f: 4, c: 51071}, - 51078, {f: 3, c: 51083}, 51087, {f: 2, c: 51090}, 51093, 51097, - {f: 5, c: 51099}, 51106, {f: 5, c: 51111}, {f: 2, c: 51118}, - {f: 3, c: 51121}, {f: 7, c: 51125}, 51134, {f: 6, c: 51138}, - {f: 2, c: 51146}, 51149, 51151, {f: 7, c: 51153}, {f: 4, c: 51161}, - {f: 6, c: 51166}, {f: 3, c: 51173}, {f: 3, c: 51177}, {f: 19, c: 51181}, - {f: 2, c: 51202}, {f: 3, c: 51205}, 51209, {f: 5, c: 51211}, 51218, 51220, - {f: 5, c: 51223}, {f: 2, c: 51230}, {f: 3, c: 51233}, {f: 7, c: 51237}, - 51246, 51248, {f: 6, c: 51250}, {f: 3, c: 51257}, {f: 3, c: 51261}, - {f: 7, c: 51265}, {f: 2, c: 51274}, {f: 6, c: 51278}, {f: 27, c: 51285}, - {f: 2, c: 51314}, {f: 3, c: 51317}, 51321, {f: 5, c: 51323}, 51330, 51332, - {f: 3, c: 51336}, {f: 6, c: 51342}, {f: 8, c: 51349}, 51358, 51360, - {f: 6, c: 51362}, {f: 19, c: 51369}, {f: 6, c: 51390}, {f: 3, c: 51397}, - {f: 3, c: 51401}, {f: 7, c: 51405}, 51414, 51416, {f: 6, c: 51418}, - {f: 2, c: 51426}, {f: 16, c: 51429}, {f: 6, c: 51446}, {f: 2, c: 51454}, - {f: 3, c: 51457}, {f: 5, c: 51463}, 51470, 51472, {f: 6, c: 51474}, - {f: 19, c: 51481}, {f: 7, c: 51501}, {f: 27, c: 51509}, {f: 2, c: 51538}, - {f: 3, c: 51541}, {f: 7, c: 51545}, 51554, {f: 8, c: 51556}, - {f: 3, c: 51565}, {f: 3, c: 51569}, {f: 7, c: 51573}, {f: 11, c: 51581}, - {f: 2, c: 51594}, {f: 3, c: 51597}, {f: 7, c: 51601}, 51610, 51612, - {f: 34, c: 51614}, {f: 2, c: 51650}, {f: 2, c: 51653}, 51657, - {f: 5, c: 51659}, 51666, 51668, {f: 2, c: 51671}, 51675, {f: 2, c: 51678}, - 51681, 51683, {f: 2, c: 51685}, {f: 4, c: 51688}, 51694, {f: 6, c: 51698}, - {f: 2, c: 51706}, {f: 3, c: 51709}, {f: 7, c: 51713}, 51722, - {f: 6, c: 51726}, {f: 3, c: 51733}, {f: 16, c: 51737}, {f: 34, c: 51754}, - {f: 2, c: 51790}, {f: 3, c: 51793}, {f: 7, c: 51797}, 51806, - {f: 6, c: 51810}, {f: 20, c: 51817}, {f: 6, c: 51838}, {f: 19, c: 51845}, - {f: 35, c: 51865}, {f: 2, c: 51902}, {f: 3, c: 51905}, {f: 7, c: 51909}, - 51918, 51920, 51922, {f: 4, c: 51924}, {f: 6, c: 51930}, {f: 11, c: 51937}, - {f: 7, c: 51949}, {f: 19, c: 51957}, {f: 7, c: 51977}, {f: 3, c: 51985}, - {f: 3, c: 51989}, {f: 7, c: 51993}, {f: 31, c: 52002}, {f: 6, c: 52034}, - {f: 2, c: 52042}, {f: 3, c: 52045}, {f: 7, c: 52049}, {f: 3, c: 52058}, - {f: 6, c: 52062}, {f: 19, c: 52069}, {f: 34, c: 52090}, {f: 27, c: 52125}, - {f: 27, c: 52153}, {f: 15, c: 52181}, {f: 2, c: 52197}, 52200, - {f: 34, c: 52202}, {f: 2, c: 52238}, {f: 3, c: 52241}, {f: 7, c: 52245}, - {f: 3, c: 52254}, {f: 4, c: 52259}, {f: 2, c: 52266}, 52269, 52271, - {f: 7, c: 52273}, 52282, {f: 5, c: 52287}, {f: 2, c: 52294}, - {f: 3, c: 52297}, {f: 7, c: 52301}, 52310, {f: 6, c: 52314}, - {f: 3, c: 52321}, 52325, 52327, {f: 7, c: 52329}, {f: 4, c: 52337}, - {f: 34, c: 52342}, {f: 2, c: 52378}, {f: 3, c: 52381}, {f: 7, c: 52385}, - 52394, {f: 6, c: 52398}, {f: 2, c: 52406}, {f: 3, c: 52409}, - {f: 7, c: 52413}, 52422, 52424, {f: 6, c: 52426}, {f: 3, c: 52433}, - {f: 15, c: 52437}, {f: 7, c: 52453}, {f: 3, c: 52461}, {f: 16, c: 52465}, - {f: 6, c: 52482}, {f: 2, c: 52490}, {f: 3, c: 52493}, {f: 7, c: 52497}, - 52506, 52508, {f: 6, c: 52510}, {f: 3, c: 52517}, {f: 3, c: 52521}, - {f: 12, c: 52525}, {f: 34, c: 52538}, {f: 3, c: 52573}, {f: 3, c: 52577}, - {f: 7, c: 52581}, 52590, 52592, {f: 6, c: 52594}, {f: 15, c: 52601}, - {f: 11, c: 52617}, {f: 2, c: 52630}, {f: 3, c: 52633}, {f: 7, c: 52637}, - 52646, 52648, {f: 6, c: 52650}, {f: 19, c: 52657}, {f: 7, c: 52677}, - {f: 3, c: 52685}, {f: 23, c: 52689}, {f: 3, c: 52713}, {f: 3, c: 52717}, - {f: 7, c: 52721}, 52730, 52732, {f: 6, c: 52734}, {f: 3, c: 52741}, - {f: 3, c: 52745}, {f: 7, c: 52749}, {f: 4, c: 52757}, {f: 6, c: 52762}, - {f: 2, c: 52770}, {f: 3, c: 52773}, {f: 7, c: 52777}, 52786, 52788, - {f: 34, c: 52790}, {f: 2, c: 52826}, {f: 2, c: 52829}, {f: 6, c: 52834}, - 52842, 52844, {f: 6, c: 52846}, {f: 2, c: 52854}, {f: 3, c: 52857}, - {f: 7, c: 52861}, 52870, 52872, {f: 6, c: 52874}, {f: 2, c: 52882}, - {f: 3, c: 52885}, {f: 7, c: 52889}, 52898, {f: 6, c: 52902}, - {f: 19, c: 52910}, {f: 34, c: 52930}, {f: 2, c: 52966}, {f: 2, c: 52969}, - {f: 7, c: 52973}, 52982, {f: 6, c: 52986}, {f: 2, c: 52994}, - {f: 3, c: 52997}, {f: 7, c: 53001}, 53010, 53012, {f: 6, c: 53014}, - {f: 3, c: 53021}, {f: 3, c: 53025}, {f: 7, c: 53029}, 53038, - {f: 6, c: 53042}, {f: 27, c: 53049}, {f: 2, c: 53078}, {f: 3, c: 53081}, - {f: 7, c: 53085}, 53094, 53096, {f: 6, c: 53098}, {f: 2, c: 53106}, - {f: 3, c: 53109}, {f: 7, c: 53113}, {f: 4, c: 53121}, {f: 6, c: 53126}, - {f: 20, c: 53133}, {f: 6, c: 53154}, {f: 7, c: 53161}, {f: 19, c: 53169}, - {f: 27, c: 53189}, {f: 2, c: 53218}, {f: 3, c: 53221}, {f: 7, c: 53225}, - 53234, 53236, {f: 6, c: 53238}, {f: 3, c: 53245}, {f: 3, c: 53249}, - {f: 12, c: 53253}, {f: 6, c: 53266}, {f: 20, c: 53273}, {f: 6, c: 53294}, - {f: 2, c: 53302}, {f: 3, c: 53305}, {f: 7, c: 53309}, 53318, 53320, - {f: 6, c: 53322}, {f: 3, c: 53329}, {f: 3, c: 53333}, {f: 7, c: 53337}, - {f: 11, c: 53345}, {f: 2, c: 53358}, {f: 3, c: 53361}, {f: 7, c: 53365}, - {f: 3, c: 53374}, {f: 34, c: 53378}, {f: 2, c: 53414}, {f: 3, c: 53417}, - {f: 7, c: 53421}, 53430, 53432, {f: 6, c: 53434}, {f: 2, c: 53442}, - {f: 3, c: 53445}, {f: 6, c: 53450}, 53458, {f: 6, c: 53462}, - {f: 2, c: 53470}, {f: 3, c: 53473}, {f: 7, c: 53477}, 53486, - {f: 6, c: 53490}, {f: 20, c: 53497}, {f: 34, c: 53518}, {f: 2, c: 53554}, - {f: 3, c: 53557}, 53561, {f: 5, c: 53563}, 53570, {f: 6, c: 53574}, - {f: 2, c: 53582}, {f: 3, c: 53585}, {f: 7, c: 53589}, 53598, 53600, - {f: 6, c: 53602}, {f: 3, c: 53609}, {f: 15, c: 53613}, {f: 7, c: 53629}, - {f: 3, c: 53637}, {f: 23, c: 53641}, {f: 2, c: 53666}, {f: 3, c: 53669}, - {f: 7, c: 53673}, 53682, 53684, {f: 4, c: 53686}, 53691, {f: 3, c: 53693}, - {f: 23, c: 53697}, {f: 27, c: 53721}, {f: 3, c: 53749}, {f: 14, c: 53753}, - 53768, {f: 6, c: 53770}, {f: 27, c: 53777}, {f: 2, c: 53806}, - {f: 3, c: 53809}, {f: 7, c: 53813}, 53822, 53824, {f: 6, c: 53826}, - {f: 19, c: 53833}, {f: 7, c: 53853}, {f: 27, c: 53861}, {f: 2, c: 53890}, - {f: 3, c: 53893}, {f: 7, c: 53897}, {f: 3, c: 53906}, {f: 6, c: 53910}, - {f: 3, c: 53917}, {f: 3, c: 53921}, {f: 7, c: 53925}, {f: 4, c: 53933}, - {f: 6, c: 53938}, {f: 2, c: 53946}, {f: 2, c: 53949}, 53953, - {f: 5, c: 53955}, 53962, {f: 8, c: 53964}, {f: 3, c: 53973}, - {f: 3, c: 53977}, {f: 7, c: 53981}, {f: 10, c: 53990}, {f: 2, c: 54002}, - {f: 3, c: 54005}, {f: 7, c: 54009}, 54018, 54020, {f: 6, c: 54022}, 54031, - {f: 3, c: 54033}, 54037, {f: 5, c: 54039}, 54046, {f: 3, c: 54050}, - {f: 2, c: 54054}, {f: 2, c: 54058}, {f: 3, c: 54061}, {f: 7, c: 54065}, - 54074, {f: 6, c: 54078}, {f: 54, c: 54086}, {f: 2, c: 54142}, - {f: 3, c: 54145}, {f: 7, c: 54149}, 54158, {f: 6, c: 54162}, - {f: 2, c: 54170}, {f: 3, c: 54173}, {f: 7, c: 54177}, 54186, 54188, - {f: 6, c: 54190}, {f: 3, c: 54197}, {f: 3, c: 54201}, {f: 7, c: 54205}, - {f: 2, c: 54214}, {f: 6, c: 54218}, {f: 7, c: 54225}, {f: 8, c: 54233}, - 54242, {f: 8, c: 54244}, {f: 2, c: 54254}, {f: 3, c: 54257}, - {f: 7, c: 54261}, 54270, 54272, {f: 6, c: 54274}, {f: 20, c: 54281}, - {f: 34, c: 54302}, {f: 3, c: 54337}, {f: 23, c: 54341}, {f: 3, c: 54365}, - {f: 3, c: 54369}, {f: 8, c: 54373}, 54382, {f: 8, c: 54384}, - {f: 2, c: 54394}, {f: 2, c: 54397}, 54401, {f: 5, c: 54403}, 54410, 54412, - {f: 6, c: 54414}, {f: 20, c: 54421}, {f: 34, c: 54442}, {f: 3, c: 54477}, - {f: 3, c: 54481}, {f: 7, c: 54485}, {f: 2, c: 54493}, {f: 8, c: 54496}, - {f: 3, c: 54505}, {f: 3, c: 54509}, {f: 7, c: 54513}, {f: 2, c: 54521}, - 54524, {f: 6, c: 54526}, {f: 3, c: 54533}, {f: 3, c: 54537}, - {f: 7, c: 54541}, 54550, {f: 36, c: 54552}, {f: 2, c: 54590}, - {f: 3, c: 54593}, {f: 7, c: 54597}, 54606, 54608, {f: 6, c: 54610}, - {f: 2, c: 54618}, {f: 3, c: 54621}, {f: 4, c: 54625}, {f: 2, c: 54630}, - 54634, 54636, {f: 6, c: 54638}, {f: 2, c: 54646}, {f: 3, c: 54649}, - {f: 7, c: 54653}, 54662, {f: 6, c: 54666}, {f: 20, c: 54673}, - {f: 34, c: 54694}, {f: 2, c: 54730}, {f: 3, c: 54733}, 54737, - {f: 5, c: 54739}, 54746, 54748, {f: 6, c: 54750}, {f: 2, c: 54758}, - {f: 3, c: 54761}, {f: 7, c: 54765}, 54774, 54776, {f: 6, c: 54778}, - {f: 2, c: 54786}, {f: 3, c: 54789}, {f: 7, c: 54793}, 54802, - {f: 6, c: 54806}, {f: 3, c: 54813}, {f: 3, c: 54817}, {f: 8, c: 54821}, - {f: 10, c: 54830}, {f: 2, c: 54842}, {f: 3, c: 54845}, {f: 4, c: 54849}, - {f: 2, c: 54854}, 54858, 54860, {f: 3, c: 54862}, {f: 2, c: 54866}, - {f: 2, c: 54870}, {f: 3, c: 54873}, {f: 10, c: 54877}, 54888, - {f: 6, c: 54890}, {f: 2, c: 54898}, {f: 14, c: 54901}, 54916, - {f: 6, c: 54918}, {f: 2, c: 54926}, {f: 3, c: 54929}, {f: 8, c: 54933}, - 54942, 54944, {f: 6, c: 54946}, {f: 3, c: 54953}, {f: 3, c: 54957}, - {f: 8, c: 54961}, 54970, {f: 8, c: 54972}, {f: 2, c: 54982}, - {f: 3, c: 54985}, {f: 4, c: 54989}, {f: 2, c: 54994}, {f: 2, c: 54997}, - 55000, {f: 6, c: 55002}, {f: 3, c: 55009}, {f: 3, c: 55013}, - {f: 7, c: 55017}, {f: 4, c: 55025}, {f: 6, c: 55030}, {f: 2, c: 55038}, - {f: 3, c: 55041}, {f: 12, c: 55045}, {f: 6, c: 55058}, {f: 2, c: 55066}, - {f: 3, c: 55069}, {f: 7, c: 55073}, 55082, 55084, {f: 6, c: 55086}, - {f: 2, c: 55094}, {f: 3, c: 55097}, {f: 7, c: 55101}, {f: 2, c: 55109}, - 55112, {f: 6, c: 55114}, {f: 2, c: 55122}, 55125, {f: 6, c: 55130}, 55138, - 55140, {f: 3, c: 55142}, {f: 2, c: 55146}, {f: 3, c: 55149}, - {f: 3, c: 55153}, {f: 7, c: 55157}, {f: 3, c: 55166}, {f: 6, c: 55170}, - {f: 2, c: 55178}, {f: 3, c: 55181}, {f: 7, c: 55185}, 55194, 55196, - {f: 6, c: 55198}], - 'Adobe-CNS1': [{f: 95, c: 32}, {s: 3}, 12288, 65292, {f: 2, c: 12289}, 65294, - 8226, 65307, 65306, 65311, 65281, 65072, 8230, 8229, 65104, 65380, 65106, - 183, {f: 4, c: 65108}, 65372, 8211, 65073, 8212, {s: 4}, {f: 2, c: 65288}, - {f: 2, c: 65077}, 65371, 65373, {f: 2, c: 65079}, {f: 2, c: 12308}, - {f: 2, c: 65081}, {f: 2, c: 12304}, {f: 2, c: 65083}, {f: 2, c: 12298}, - {f: 2, c: 65085}, {f: 2, c: 12296}, {f: 2, c: 65087}, {f: 2, c: 12300}, - {f: 2, c: 65089}, {f: 2, c: 12302}, {f: 2, c: 65091}, {f: 6, c: 65113}, - {f: 2, c: 8216}, {f: 2, c: 8220}, {f: 2, c: 12317}, 8245, 8242, 65283, - 65286, 65290, 8251, 167, 12291, 9675, 9679, 9651, 9650, 9678, 9734, 9733, - 9671, 9670, 9633, 9632, 9661, 9660, 12963, 8453, 8254, 0, 65343, 0, - {f: 2, c: 65097}, {f: 2, c: 65101}, {f: 2, c: 65099}, {f: 3, c: 65119}, - 65291, 65293, 215, 247, 177, 8730, 65308, 65310, 65309, {f: 2, c: 8806}, - 8800, 8734, 8786, 8801, {f: 5, c: 65122}, 8764, {f: 2, c: 8745}, 8869, - 8736, 8735, 8895, 13266, 13265, 8747, 8750, 8757, 8756, 9792, 9794, 9793, - 9737, 8593, 8595, 8594, 8592, {f: 2, c: 8598}, 8601, 8600, 8741, 8739, 0, - 0, 65295, 65340, 65284, 165, 12306, {f: 2, c: 162}, 65285, 65312, 8451, - 8457, {f: 3, c: 65129}, 13269, {f: 3, c: 13212}, 13262, 13217, - {f: 2, c: 13198}, 13252, 176, [20825, 58834], [20827, 58835], - [20830, 58837], [20829, 58836], 20833, 20835, 21991, [29929, 58044], - [31950, 58191], {f: 8, c: 9601}, 9615, 9614, 9613, 9612, 9611, 9610, 9609, - 9532, 9524, 9516, 9508, 9500, 9620, 9472, 9474, 9621, 9484, 9488, 9492, - 9496, {f: 2, c: 9581}, 9584, 9583, 9552, 9566, 9578, 9569, {f: 2, c: 9698}, - 9701, 9700, {f: 3, c: 9585}, {f: 10, c: 65296}, {f: 10, c: 8544}, - {f: 9, c: 12321}, 0, [21316, 57443], 0, {f: 26, c: 65313}, - {f: 26, c: 65345}, {f: 17, c: 913}, {f: 7, c: 931}, {f: 17, c: 945}, - {f: 7, c: 963}, {f: 37, c: 12549}, 729, 714, 711, 715, [9312, 63153], - [9313, 63154], [9314, 63155], [9315, 63156], [9316, 63157], [9317, 63158], - [9318, 63159], [9319, 63160], [9320, 63161], [9321, 63162], [9332, 63163], - [9333, 63164], [9334, 63165], [9335, 63166], [9336, 63167], [9337, 63168], - [9338, 63169], [9339, 63170], [9340, 63171], [9341, 63172], [8560, 63173], - [8561, 63174], [8562, 63175], [8563, 63176], [8564, 63177], [8565, 63178], - [8566, 63179], [8567, 63180], [8568, 63181], [8569, 63182], [12033, 20008], - [12034, 20022, 63183], [12035, 20031, 63184], [12037, 20101, 63185], - [12039, 20128, 63186], [12044, 20866, 63187], [12045, 20886, 63188], - [12046, 20907, 63189], [12051, 21241, 63190], [12054, 21304, 63191], - [12057, 21353, 63192], [12059, 21430, 63193], - [12065, 12066, 22786, 22794, 63194], [12071, 23424, 63195], - [12078, 24027, 63196], [12083, 24186, 63197], [12084, 24191, 63198], - [12085, 24308], [12089, 24400, 63200], [12090, 24417, 63201], - [12097, 25908, 63202], [12102, 26080], [12135, 30098, 63204], - [12136, 30326], [12193, 36789, 63206], [12202, 38582], {f: 32, c: 9216}, - 9249, [12032, 19968], [12036, 20057], 19969, 19971, 20035, 20061, 20102, - [12038, 20108], [12040, 20154], [12041, 20799], [12042, 20837], - [12043, 20843], [12047, 20960], [12049, 20992], 20993, [12050, 21147], - [12052, 21269], [12055, 21313], [12056, 21340], [12060, 21448], 19977, - 19979, 19976, 19978, 20011, 20024, 20961, 20037, 20040, 20063, 20062, - 20110, 20129, [20800, 64012], 20995, 21242, 21315, 21449, [12061, 21475], - [12063, 22303], [12064, 22763], [12067, 22805], [12068, 22823], - [12069, 22899], [12070, 23376], 23377, 23379, [12072, 23544], - [12073, 23567], [12074, 23586], [12075, 23608], [12077, 23665], 24029, - [12079, 24037], [12080, 24049], {f: 2, c: 24050}, [12081, 24062], - [12082, 24178], [12086, 24318], [12087, 24331], [12088, 24339], 25165, - 19985, 19984, 19981, 20013, 20016, 20025, 20043, 23609, 20104, 20113, - 20117, 20114, 20116, 20130, 20161, 20160, 20163, {f: 2, c: 20166}, 20173, - {f: 2, c: 20170}, 20164, 20803, 20801, 20839, {f: 2, c: 20845}, 20844, - 20887, 20982, {f: 3, c: 20998}, 21243, {f: 2, c: 21246}, 21270, 21305, - 21320, 21319, 21317, 21342, 21380, 21451, 21450, 21453, 22764, 22825, - 22827, 22826, 22829, 23380, 23569, 23588, 23610, 23663, 24052, 24187, - 24319, {f: 2, c: 24340}, [12092, 24515], [12093, 25096], [12094, 25142], - [12095, 25163], 25166, [12096, 25903], [12098, 25991], [12099, 26007], - [12100, 26020], [12101, 26041], [12103, 26085], [12104, 26352], - [12105, 26376], [12106, 26408], [12107, 27424], [12108, 27490], - [12109, 27513], [12111, 27595], [12112, 27604], [12113, 27611], - [12114, 27663], [12116, 27700], [12117, 28779], [12118, 29226], - [12119, 29238], [12120, 29243], [12122, 29255], [12123, 29273], - [12124, 29275], [12125, 29356], 29579, 19993, 19990, 19989, 19988, 19992, - 20027, 20045, 20047, 20046, 20197, 20184, {f: 4, c: 20180}, - {f: 2, c: 20195}, 20185, 20190, 20805, 20804, {f: 2, c: 20873}, 20908, - {f: 2, c: 20985}, 20984, 21002, 21152, 21151, [21253, 57435], 21254, 21271, - 21277, 20191, 21322, 21321, 21345, 21344, 21359, 21358, 21435, 21487, - 21476, 21491, 21484, 21486, 21481, 21480, 21500, 21496, 21493, 21483, - 21478, 21482, 21490, 21489, 21488, 21477, 21485, 21499, 22235, 22234, - 22806, 22830, 22833, 22900, 22902, 23381, 23427, 23612, 24040, 24039, - 24038, {f: 2, c: 24066}, 24179, 24188, 24321, 24344, 24343, 24517, 25098, - {f: 2, c: 25171}, 25170, 25169, 26021, 26086, 26414, 26412, - {f: 2, c: 26410}, 26413, 27491, 27597, 27665, 27664, 27704, 27713, 27712, - 27710, 29359, [12126, 29572], [12127, 29577], [12128, 29916], - [12129, 29926], [12130, 29976], [12131, 29983], [12132, 29992], 29993, - [12133, 30000], {f: 3, c: 30001}, [12134, 30091], [12137, 30333], - [12138, 30382], [12139, 30399], [12140, 30446], [12141, 30683], - [12142, 30690], [12143, 30707], [12144, 31034], [12146, 31166], - [12147, 31348], [12148, 31435], {f: 2, c: 19998}, {f: 2, c: 20050}, 20073, - 20121, 20132, 20134, 20133, 20223, 20233, 20249, 20234, 20245, 20237, - {f: 2, c: 20240}, 20239, 20210, 20214, 20219, 20208, 20211, 20221, 20225, - 20235, 20809, 20807, 20806, 20808, 20840, 20849, 20877, 20912, 21015, - {f: 2, c: 21009}, 21006, 21014, 21155, 21256, 21281, 21280, - {f: 2, c: 21360}, 21513, 21519, 21516, 21514, 21520, 21505, 21515, 21508, - 21521, 21517, 21512, 21507, 21518, 21510, 21522, 22240, 22238, 22237, - 22323, 22320, 22312, 22317, 22316, 22319, 22313, {f: 2, c: 22809}, - {f: 2, c: 22839}, 22916, 22904, 22915, 22909, 22905, 22914, 22913, - {f: 2, c: 23383}, {f: 2, c: 23431}, 23429, 23433, 23546, 23574, 23673, - 24030, 24070, 24182, 24180, 24335, 24347, 24537, 24534, 25102, - {f: 2, c: 25100}, 25104, 25187, 25179, 25176, 25910, 26089, 26088, - {f: 2, c: 26092}, {f: 2, c: 26354}, 26377, 26429, 26420, 26417, 26421, - 27425, 27492, 27515, 27670, 27741, 27735, 27737, {f: 2, c: 27743}, 27728, - 27733, 27745, 27739, {f: 2, c: 27725}, 28784, 29279, 29277, 30334, - [12149, 31481], [12150, 31859], [12151, 31992], [12152, 32566], - [12154, 32650], [12155, 32701], [12156, 32769], 32771, [12157, 32780], - [12158, 32786], [12159, 32819], [12160, 32895], [12161, 32905], - {f: 2, c: 32907}, [12162, 33251], [12163, 33258], [12164, 33267], - [12165, 33276], [12166, 33292], [12167, 33307], [12168, 33311], - [12169, 33390], [12170, 33394], 33406, [12173, 34411], [12174, 34880], - [12175, 34892], [12176, 34915], 35199, 38433, 20018, 20136, 20301, 20303, - 20295, 20311, 20318, 20276, 20315, 20309, 20272, {f: 2, c: 20304}, 20285, - 20282, 20280, 20291, 20308, 20284, 20294, 20323, 20316, 20320, 20271, - 20302, 20278, 20313, 20317, 20296, 20314, 20812, 20811, 20813, 20853, - {f: 2, c: 20918}, 21029, 21028, {f: 2, c: 21033}, 21032, 21163, - {f: 2, c: 21161}, 21164, 21283, 21363, 21365, 21533, 21549, 21534, 21566, - 21542, 21582, 21543, 21574, 21571, 21555, 21576, 21570, 21531, 21545, - 21578, 21561, 21563, 21560, 21550, {f: 2, c: 21557}, 21536, 21564, 21568, - 21553, 21547, 21535, 21548, 22250, 22256, 22244, 22251, 22346, 22353, - 22336, 22349, 22343, 22350, 22334, 22352, 22351, 22331, 22767, 22846, - 22941, 22930, 22952, 22942, 22947, 22937, 22934, 22925, 22948, 22931, - 22922, 22949, 23389, 23388, {f: 2, c: 23386}, 23436, 23435, 23439, 23596, - {f: 2, c: 23616}, 23615, 23614, {f: 2, c: 23696}, 23700, 23692, 24043, - 24076, 24207, 24199, 24202, 24311, 24324, 24351, 24420, 24418, 24439, - 24441, 24536, 24524, 24535, 24525, 24561, 24555, 24568, 24554, 25106, - 25105, 25220, 25239, 25238, 25216, 25206, 25225, 25197, 25226, 25212, - 25214, 25209, 25203, 25234, 25199, 25240, 25198, 25237, 25235, 25233, - 25222, 25913, 25915, 25912, 26097, 26356, 26463, {f: 4, c: 26446}, 26460, - 26454, [26462, 57801], 26441, 26438, 26464, 26451, 26455, 27493, 27599, - 27714, 27742, 27801, 27777, {f: 2, c: 27784}, 27781, 27803, 27754, 27770, - 27792, 27760, 27788, 27752, 27798, 27794, 27773, 27779, 27762, 27774, - 27764, 27782, 27766, 27789, 27796, 27800, 27778, 28790, {f: 2, c: 28796}, - 28792, 29282, 29281, 29280, 29380, 29378, 29590, 29996, 29995, - {f: 2, c: 30007}, 30338, 30447, 30691, 31169, 31168, 31167, 31350, 31995, - 32597, 32918, 32915, 32925, 32920, 32923, 32922, 32946, 33391, 33426, - 33419, 33421, [12178, 35211], [12179, 35282], [12180, 35328], - [12181, 35895], [12182, 35910], [12183, 35925], [12185, 35997], - [12186, 36196], [12187, 36208], [12188, 36275], [12189, 36523], - [12190, 36554], [12191, 36763], [12192, 36784], 36802, 36806, 36805, 36804, - 24033, [12194, 37009], 37026, 37034, 37030, 37027, [12195, 37193], - [12196, 37318], [12197, 37324], 38450, 38446, 38449, 38442, 38444, 20006, - 20054, 20083, 20107, 20123, 20126, {f: 2, c: 20139}, 20335, 20381, 20365, - 20339, 20351, 20332, 20379, 20363, 20358, 20355, 20336, 20341, 20360, - 20329, 20347, 20374, 20350, 20367, 20369, 20346, 20820, 20818, 20821, - 20841, 20855, 20854, 20856, 20925, 20989, 21051, 21048, 21047, 21050, - 21040, 21038, 21046, 21057, 21182, 21179, 21330, 21332, 21331, 21329, - 21350, {f: 3, c: 21367}, 21462, 21460, 21463, 21619, 21621, 21654, 21624, - 21653, 21632, 21627, 21623, 21636, 21650, 21638, 21628, 21648, 21617, - 21622, 21644, 21658, 21602, 21608, 21643, 21629, 21646, 22266, 22403, - 22391, 22378, 22377, 22369, 22374, 22372, 22396, 22812, 22857, - {f: 2, c: 22855}, 22852, 22868, 22974, 22971, 22996, 22969, 22958, 22993, - 22982, 22992, 22989, 22987, 22995, 22986, 22959, 22963, 22994, 22981, - 23391, 23396, 23395, 23447, 23450, 23448, 23452, 23449, 23451, 23578, - 23624, {f: 2, c: 23621}, 23735, 23713, 23736, 23721, 23723, 23729, 23731, - 24088, 24090, 24086, 24085, 24091, 24081, 24184, 24218, 24215, 24220, - {f: 2, c: 24213}, 24310, {f: 2, c: 24358}, 24361, {f: 2, c: 24448}, 24447, - 24444, 24541, 24544, 24573, 24565, 24575, 24591, 24596, 24623, 24629, - 24598, 24618, 24597, 24609, 24615, 24617, 24619, 24603, 25110, 25109, - 25151, 25150, 25152, 25215, 25289, 25292, 25284, 25279, 25282, 25273, - 25298, 25307, 25259, {f: 2, c: 25299}, 25291, 25288, 25256, 25277, 25276, - [25296, 60582], 25305, 25287, 25293, 25269, 25306, 25265, 25304, - {f: 2, c: 25302}, 25286, 25260, [25294, 61010], 25918, 26023, 26044, 26106, - 26132, 26131, 26124, 26118, 26114, 26126, 26112, 26127, 26133, 26122, - 26119, 26381, 26379, 26477, 26507, 26517, 26481, 26524, 26483, 26487, - 26503, 26525, 26519, {f: 2, c: 26479}, 26495, 26505, 26494, 26512, 26485, - 26522, 26515, 26492, 26474, 26482, 27427, {f: 2, c: 27494}, 27519, 27667, - 27675, 27875, 27880, 27891, 27825, 27852, 27877, 27827, {f: 2, c: 27837}, - 27836, 27874, 27819, 27861, 27859, 27832, 27844, 27833, 27841, 27822, - 27863, 27845, 27889, 27839, 27835, 27873, 27867, 27850, 27820, 27887, - 27868, 27862, 27872, 28821, 28814, 28818, 28810, 28825, {f: 2, c: 29228}, - 29240, 29256, 29287, 29289, 29376, 29390, 29401, 29399, 29392, 29609, - 29608, 29599, 29611, 29605, 30013, 30109, {f: 2, c: 30105}, 30340, 30402, - 30450, 30452, 30693, 30717, 31038, {f: 2, c: 31040}, 31177, 31176, 31354, - 31353, 31482, 31998, 32596, 32652, 32651, [32773, 58236], 32954, 32933, - 32930, 32945, 32929, 32939, 32937, 32948, 32938, 32943, 33253, 33278, - 33293, 33459, 33437, 33433, 33453, 33469, 33439, 33465, 33457, 33452, - 33445, 33455, 33464, 33443, 33456, 33470, 33463, 34382, 34417, 21021, - 34920, 36555, 36814, 36820, 36817, 37045, 37048, 37041, 37046, 37319, - [12198, 37329], [12199, 38263], [12200, 38272], [12201, 38428], 38464, - 38463, 38459, 38468, 38466, [12203, 38585], [12204, 38632], 38738, - [12206, 38750], 20127, {f: 2, c: 20141}, 20449, 20405, 20399, 20415, 20448, - 20433, 20431, 20445, 20419, 20406, 20440, 20447, 20426, 20439, 20398, - 20432, 20420, 20418, 20442, 20430, 20446, 20407, 20823, 20882, 20881, - 20896, 21070, 21059, 21066, 21069, 21068, 21067, 21063, 21191, 21193, - 21187, 21185, 21261, 21335, 21371, 21402, 21467, 21676, 21696, 21672, - 21710, 21705, 21688, 21670, 21683, 21703, 21698, 21693, 21674, 21697, - 21700, 21704, 21679, 21675, 21681, 21691, 21673, 21671, 21695, 22271, - 22402, 22411, 22432, 22435, 22434, 22478, 22446, 22419, 22869, 22865, - 22863, 22862, 22864, 23004, 23000, 23039, 23011, 23016, 23043, 23013, - 23018, 23002, 23014, 23041, 23035, 23401, 23459, 23462, 23460, 23458, - 23461, 23553, {f: 2, c: 23630}, 23629, 23627, 23769, 23762, 24055, 24093, - 24101, 24095, 24189, 24224, 24230, 24314, 24328, 24365, 24421, 24456, - 24453, {f: 2, c: 24458}, 24455, 24460, 24457, 24594, 24605, 24608, 24613, - 24590, 24616, 24653, 24688, 24680, [24674, 60712], 24646, 24643, 24684, - 24683, 24682, 24676, 25153, 25308, 25366, 25353, 25340, 25325, 25345, - 25326, 25341, 25351, 25329, 25335, 25327, 25324, 25342, 25332, 25361, - 25346, 25919, 25925, 26027, 26045, 26082, 26149, 26157, 26144, 26151, - 26159, 26143, 26152, 26161, 26148, 26359, 26623, 26579, 26609, 26580, - 26576, 26604, 26550, 26543, 26613, 26601, 26607, 26564, 26577, 26548, - 26586, 26597, 26552, 26575, 26590, 26611, 26544, 26585, 26594, 26589, - 26578, 27498, 27523, 27526, 27573, 27602, 27607, 27679, 27849, 27915, - 27954, 27946, 27969, 27941, 27916, 27953, 27934, 27927, 27963, - {f: 2, c: 27965}, 27958, 27931, 27893, 27961, 27943, 27960, 27945, 27950, - 27957, 27918, 27947, 28843, 28858, 28851, 28844, 28847, 28845, 28856, - 28846, 28836, 29232, 29298, 29295, 29300, 29417, {f: 2, c: 29408}, 29623, - 29642, 29627, 29618, 29645, 29632, 29619, 29978, 29997, 30031, 30028, - 30030, 30027, 30123, {f: 2, c: 30116}, {f: 2, c: 30114}, 30328, - {f: 3, c: 30342}, 30408, 30406, 30403, 30405, 30465, 30457, 30456, 30473, - 30475, 30462, 30460, 30471, 30684, 30722, 30740, {f: 2, c: 30732}, 31046, - 31049, 31048, 31047, {f: 2, c: 31161}, {f: 2, c: 31185}, 31179, 31359, - 31361, 31487, 31485, 31869, 32002, 32005, 32000, 32009, 32007, 32004, - 32006, 32568, 32654, 32703, 32784, 32781, 32785, 32822, 32982, 32997, - 32986, {f: 2, c: 32963}, 32972, 32993, 32987, 32974, 32990, 32996, 32989, - 33268, 33314, 33511, 33539, 33541, 33507, 33499, 33510, 33540, 33509, - 33538, 33545, 33490, 33495, 33521, 33537, 33500, 33492, 33489, 33502, - 33491, 33503, 33519, 33542, 34384, 34425, 34427, 34426, 34893, 34923, - 35201, 35284, 35336, {f: 2, c: 35330}, 35998, 36000, 36212, 36211, 36276, - 36557, 36556, 36848, 36838, 36834, 36842, 36837, 36845, 36843, 36836, - 36840, 37066, 37070, 37057, 37059, 37195, 37194, 37325, 38274, 38480, - {f: 3, c: 38475}, [12207, 38754], [12208, 38761], [12209, 38859], - [12210, 38893], [12211, 38899], [12212, 38913], [12213, 39080], - [12214, 39131], [12215, 39135], [12216, 39318], [12217, 39321], 20056, - 20147, {f: 2, c: 20492}, 20515, 20463, 20518, 20517, 20472, [20521, 57375], - 20502, 20486, 20540, 20511, 20506, 20498, 20497, 20474, 20480, 20500, - 20520, 20465, 20513, 20491, 20505, 20504, 20467, 20462, 20525, 20522, - 20478, 20523, 20489, 20860, {f: 2, c: 20900}, 20898, 20941, 20940, 20934, - 20939, 21078, 21084, 21076, 21083, 21085, 21290, [21375, 57459], 21407, - 21405, 21471, 21736, 21776, 21761, 21815, 21756, 21733, 21746, 21766, - 21754, 21780, 21737, 21741, 21729, 21769, 21742, 21738, 21734, 21799, - 21767, 21757, 21775, {f: 2, c: 22275}, 22466, 22484, 22475, 22467, 22537, - 22799, {f: 2, c: 22871}, 22874, 23057, 23064, 23068, 23071, 23067, 23059, - 23020, 23072, 23075, 23081, 23077, 23052, 23049, 23403, 23640, 23472, - 23475, 23478, 23476, 23470, 23477, 23481, 23480, 23556, 23633, 23637, - 23632, 23789, 23805, 23803, 23786, 23784, 23792, 23798, 23809, 23796, - 24046, 24109, 24107, 24235, 24237, 24231, 24369, 24466, 24465, 24464, - 24665, 24675, 24677, 24656, 24661, 24685, 24681, 24687, 24708, 24735, - 24730, 24717, 24724, 24716, 24709, 24726, 25159, 25331, 25352, 25343, - 25422, 25406, 25391, 25429, 25410, 25414, 25423, 25417, 25402, 25424, - 25405, {f: 2, c: 25386}, 25384, 25421, 25420, {f: 2, c: 25928}, 26009, - 26049, 26053, 26178, 26185, 26191, 26179, 26194, 26188, 26181, 26177, - 26360, {f: 2, c: 26388}, 26391, 26657, 26680, 26696, 26694, 26707, 26681, - 26690, 26708, 26665, 26803, 26647, 26700, 26705, 26685, 26612, 26704, - 26688, 26684, 26691, 26666, 26693, 26643, 26648, 26689, 27530, 27529, - 27575, 27683, {f: 2, c: 27687}, 27686, 27684, 27888, 28010, 28053, 28040, - 28039, 28006, 28024, 28023, 27993, 28051, 28012, 28041, 28014, 27994, - 28020, 28009, 28044, 28042, 28025, 28037, 28005, 28052, 28874, 28888, - 28900, 28889, 28872, 28879, 29241, 29305, 29436, 29433, 29437, 29432, - 29431, 29574, 29677, 29705, 29678, 29664, 29674, 29662, 30036, 30045, - 30044, 30042, 30041, 30142, 30149, 30151, {f: 2, c: 30130}, 30141, 30140, - 30137, 30146, 30136, 30347, 30384, 30410, {f: 2, c: 30413}, 30505, - {f: 2, c: 30495}, 30504, 30697, 30768, 30759, 30776, 30749, 30772, 30775, - 30757, 30765, 30752, 30751, 30770, 31061, 31056, 31072, 31071, 31062, - 31070, 31069, 31063, 31066, 31204, [31203, 60418], 31207, 31199, 31206, - 31209, 31192, 31364, 31368, 31449, 31494, 31505, 31881, 32033, 32023, - 32011, 32010, 32032, 32034, 32020, 32016, 32021, 32026, 32028, 32013, - 32025, 32027, 32570, 32607, 32660, 32709, 32705, 32774, 32772, 32792, - 32789, 32793, 32791, 32829, 32831, 33009, 33026, 33008, 33029, 33005, - 33012, 33030, 33016, 33011, 33032, 33021, 33034, 33020, 33007, 33261, - 33260, 33280, 33296, {f: 2, c: 33322}, 33320, 33324, 33467, 33579, 33618, - 33620, 33610, 33592, 33616, 33609, 33589, 33588, 33615, 33586, 33593, - 33590, 33559, 33600, 33585, 33576, 33603, 34388, 34442, 34474, 34451, - 34468, 34473, 34444, 34467, 34460, 34928, 34935, {f: 2, c: 34945}, 34941, - 34937, 35352, 35344, 35342, 35340, 35349, 35338, 35351, 35347, 35350, - 35343, 35345, 35912, 35962, 35961, {f: 2, c: 36001}, [36215, 58442], 36524, - 36562, 36564, 36559, 36785, 36865, 36870, 36855, 36864, 36858, 36852, - 36867, 36861, 36869, 36856, 37013, 37089, 37085, 37090, 37202, 37197, - 37196, 37336, 37341, 37335, 37340, 37337, 38275, {f: 2, c: 38498}, 38497, - 38491, 38493, 38500, 38488, 38494, 38587, 39138, [12218, 39340], - [12219, 39592], [12220, 39640], [12222, 39717], [12224, 39730], - [12225, 39740], 20094, 20602, [20605, 57382], 20572, 20551, 20547, 20556, - 20570, 20553, 20581, 20598, 20558, 20565, 20597, 20596, 20599, 20559, - 20495, 20591, 20589, 20828, 20885, 20976, 21098, 21103, 21202, 21209, - 21208, 21205, 21264, 21263, 21273, {f: 2, c: 21311}, 21310, 21443, 26364, - 21830, 21866, 21862, 21828, 21854, 21857, 21827, 21834, 21809, 21846, - 21839, 21845, 21807, 21860, 21816, 21806, 21852, 21804, 21859, 21811, - 21825, 21847, 22280, 22283, 22281, 22495, 22533, 22538, 22534, 22496, - 22500, 22522, 22530, 22581, 22519, 22521, 22816, 22882, 23094, 23105, - 23113, 23142, 23146, 23104, 23100, 23138, 23130, 23110, 23114, 23408, - 23495, 23493, 23492, 23490, 23487, 23494, 23561, 23560, 23559, 23648, - {f: 2, c: 23644}, 23815, 23814, 23822, 23835, 23830, 23842, 23825, 23849, - 23828, 23833, 23844, 23847, 23831, 24034, 24120, 24118, 24115, 24119, - {f: 2, c: 24247}, 24246, 24245, 24254, 24373, 24375, 24407, 24428, 24425, - 24427, 24471, 24473, 24478, 24472, 24481, 24480, 24476, 24703, 24739, - 24713, 24736, 24744, 24779, 24756, 24806, 24765, 24773, 24763, 24757, - 24796, 24764, 24792, 24789, 24774, 24799, 24760, 24794, 24775, - {f: 2, c: 25114}, 25160, 25504, 25511, 25458, 25494, 25506, 25509, 25463, - 25447, 25496, 25514, 25457, 25513, 25481, 25475, 25499, 25451, 25512, - 25476, 25480, 25497, 25505, 25516, 25490, 25487, 25472, 25467, 25449, - 25448, 25466, 25949, 25942, 25937, 25945, 25943, 21855, 25935, 25944, - 25941, 25940, 26012, 26011, 26028, 26063, {f: 2, c: 26059}, 26062, 26205, - 26202, 26212, 26216, 26214, 26206, 26361, 21207, 26395, 26753, 26799, - 26786, 26771, 26805, 26751, 26742, 26801, 26791, 26775, 26800, 26755, - 26820, 26797, 26758, 26757, 26772, 26781, 26792, 26783, 26785, 26754, - 27442, 27578, {f: 2, c: 27627}, 27691, 28046, 28092, 28147, 28121, 28082, - 28129, 28108, 28132, 28155, 28154, 28165, 28103, 28107, 28079, 28113, - 28078, 28126, 28153, 28088, 28151, 28149, 28101, 28114, 28186, 28085, - 28122, 28139, 28120, 28138, 28145, 28142, 28136, 28102, 28100, 28074, - 28140, 28095, 28134, 28921, {f: 2, c: 28937}, 28925, 28911, 29245, 29309, - 29313, 29468, 29467, 29462, 29459, 29465, 29575, 29701, 29706, 29699, - 29702, 29694, 29709, 29920, {f: 2, c: 29942}, 29980, 29986, - {f: 2, c: 30053}, 30050, 30064, 30095, {f: 2, c: 30164}, 30133, 30154, - 30157, 30350, 30420, 30418, 30427, 30519, 30526, 30524, 30518, 30520, - 30522, 30827, 30787, 30798, 31077, 31080, 31085, 31227, 31378, 31381, - 31520, 31528, 31515, 31532, 31526, 31513, 31518, 31534, 31890, 31895, - 31893, 32070, 32067, 32113, 32046, 32057, 32060, 32064, 32048, 32051, - 32068, 32047, 32066, 32050, 32049, 32573, 32670, 32666, 32716, 32718, - 32722, 32796, 32842, 32838, 33071, 33046, 33059, 33067, 33065, 33072, - 33060, 33282, 33333, 33335, 33334, 33337, 33678, 33694, 33688, 33656, - 33698, 33686, 33725, 33707, 33682, 33674, 33683, 33673, 33696, 33655, - {f: 2, c: 33659}, 33670, 33703, 34389, 24426, 34503, 34496, 34486, 34500, - 34485, 34502, 34507, 34481, 34479, 34505, 34899, 34974, 34952, 34987, - 34962, 34966, 34957, 34955, 35219, 35215, 35370, 35357, 35363, 35365, - 35377, 35373, 35359, 35355, 35362, 35913, 35930, 36009, 36012, 36011, - 36008, 36010, 36007, 36199, 36198, 36286, 36282, 36571, 36575, 36889, - 36877, 36890, 36887, 36899, 36895, 36893, 36880, 36885, 36894, 36896, - 36879, 36898, 36886, 36891, 36884, 37096, 37101, [37117, 58488], 37207, - 37326, 37365, 37350, 37347, 37351, 37357, 37353, 38281, 38506, 38517, - 38515, 38520, 38512, 38516, {f: 2, c: 38518}, 38508, 38592, 38634, 38633, - 31456, 31455, {f: 2, c: 38914}, [12226, 39770], [12227, 40165], - [12228, 40565], [12229, 40575], [12230, 40613], [12231, 40635], 20642, - 20621, 20613, 20633, 20625, 20608, 20630, 20632, 20634, 26368, 20977, - 21106, {f: 2, c: 21108}, 21097, 21214, 21213, 21211, 21338, 21413, 21883, - 21888, 21927, 21884, 21898, 21917, 21912, 21890, 21916, 21930, 21908, - 21895, 21899, 21891, 21939, 21934, 21919, 21822, 21938, 21914, 21947, - 21932, 21937, 21886, 21897, 21931, 21913, 22285, 22575, 22570, 22580, - 22564, {f: 2, c: 22576}, 22561, 22557, 22560, {f: 2, c: 22777}, 22880, - [23159, 57587], 23194, 23167, 23186, 23195, 23207, 23411, 23409, 23506, - 23500, 23507, 23504, {f: 2, c: 23562}, 23601, 23884, 23888, 23860, 23879, - 24061, 24133, 24125, 24128, 24131, 24190, 24266, {f: 2, c: 24257}, 24260, - 24380, 24429, {f: 2, c: 24489}, 24488, 24785, 24801, 24754, 24758, 24800, - 24860, 24867, 24826, 24853, 24816, 24827, 24820, 24936, 24817, 24846, - 24822, 24841, 24832, 24850, 25119, 25161, 25507, 25484, 25551, 25536, - 25577, 25545, 25542, 25549, 25554, 25571, 25552, 25569, 25558, - {f: 2, c: 25581}, 25462, 25588, 25578, 25563, 25682, 25562, 25593, 25950, - 25958, {f: 2, c: 25954}, 26001, 26000, 26031, 26222, 26224, [26228, 57786], - 26230, 26223, 26257, 26234, 26238, 26231, {f: 2, c: 26366}, 26399, 26397, - 26874, 26837, 26848, 26840, 26839, 26885, 26847, 26869, 26862, 26855, - 26873, 26834, 26866, 26851, 26827, 26829, 26893, 26898, 26894, 26825, - 26842, 26990, 26875, 27454, 27450, 27453, 27544, 27542, 27580, 27631, - {f: 2, c: 27694}, 27692, [28207, 57904], 28216, 28244, 28193, 28210, 28263, - 28234, 28192, 28197, 28195, 28187, 28251, 28248, 28196, 28246, 28270, - 28205, 28198, 28271, 28212, 28237, 28218, 28204, 28227, [28189, 57901], - 28222, 28363, 28297, 28185, 28238, 28259, 28228, 28274, 28265, 28255, - {f: 2, c: 28953}, 28966, 28976, 28961, 28982, [29038, 57958], 28956, 29260, - 29316, 29312, 29494, 29477, 29492, 29481, 29754, 29738, 29747, 29730, - 29733, {f: 2, c: 29749}, 29748, 29743, 29723, 29734, 29736, - {f: 2, c: 29989}, 30059, 30058, 30178, 30171, 30179, 30169, 30168, 30174, - 30176, {f: 2, c: 30331}, 30358, 30355, 30388, 30428, 30543, 30701, 30813, - 30828, 30831, 31245, 31240, 31243, 31237, 31232, 31384, 31383, 31382, - 31461, 31459, 31561, 31574, 31558, 31568, 31570, 31572, 31565, 31563, - 31567, [31569, 60510], 31903, 31909, 32094, 32080, 32104, 32085, 32043, - 32110, 32114, 32097, 32102, 32098, 32112, 32115, 21892, {f: 2, c: 32724}, - 32779, 32850, 32901, 33109, 33108, 33099, 33105, 33102, 33081, 33094, - 33086, 33100, 33107, 33140, 33298, 33308, 33769, 33795, 33784, 33805, - 33760, 33733, 33803, [33729, 58309], 33775, 33777, 33780, 33879, 33802, - 33776, 33804, 33740, 33789, 33778, 33738, 33848, 33806, 33796, 33756, - 33799, 33748, 33759, 34395, 34527, 34521, 34541, 34516, 34523, 34532, - 34512, 34526, 34903, {f: 2, c: 35009}, 34993, 35203, 35222, 35387, 35424, - 35413, 35422, 35388, 35393, 35412, 35419, 35408, 35398, 35380, 35386, - 35382, 35414, 35937, 35970, 36015, 36028, 36019, 36029, 36033, 36027, - 36032, 36020, 36023, 36022, 36031, 36024, 36234, 36229, 36225, 36302, - 36317, 36299, 36314, 36305, 36300, 36315, 36294, 36603, 36600, 36604, - 36764, 36910, 36917, 36913, 36920, 36914, 36918, 37122, 37109, 37129, - 37118, 37219, 37221, 37327, {f: 2, c: 37396}, 37411, 37385, 37406, 37389, - 37392, 37383, 37393, 38292, 38287, 38283, 38289, 38291, 38290, 38286, - 38538, 38542, 38539, 38525, {f: 2, c: 38533}, 38541, 38514, 38532, 38593, - 38597, 38596, {f: 2, c: 38598}, 38639, 38642, 38860, {f: 2, c: 38917}, - 38920, 39143, 39146, 39151, 39145, 39154, 39149, 39342, 39341, - [12232, 40643], [12233, 40653], [12234, 40657], 20098, 20653, 20661, - {f: 2, c: 20658}, 20677, 20670, 20652, 20663, 20667, 20655, 20679, 21119, - 21111, 21117, 21215, 21222, 21220, {f: 2, c: 21218}, 21295, 21983, 21992, - 21971, 21990, 21966, 21980, 21959, 21969, {f: 2, c: 21987}, 21999, 21978, - 21985, {f: 2, c: 21957}, 21989, 21961, {f: 2, c: 22290}, 22622, 22609, - 22616, 22615, 22618, 22612, 22635, 22604, 22637, 22602, 22626, 22610, - 22603, 22887, 23233, 23241, 23244, 23230, 23229, 23228, 23219, 23234, - 23218, 23913, 23919, 24140, 24185, 24265, 24264, 24338, 24409, 24492, - 24494, 24858, 24847, 24904, 24863, 24819, 24859, 24825, 24833, 24840, - 24910, 24908, 24900, 24909, 24894, 24884, 24871, 24845, 24838, 24887, - {f: 2, c: 25121}, 25619, 25662, 25630, 25642, 25645, 25661, 25644, 25615, - 25628, 25620, 25613, 25654, {f: 2, c: 25622}, 25606, 25964, 26015, 26032, - 26263, 26249, {f: 2, c: 26247}, 26262, 26244, 26264, 26253, 26371, 27028, - 26989, 26970, 26999, 26976, 26964, 26997, 26928, 27010, 26954, 26984, - 26987, 26974, 26963, 27001, 27014, 26973, 26979, 26971, 27463, 27506, - 27584, 27583, 27603, 27645, 28322, 28335, 28371, 28342, 28354, 28304, - 28317, 28359, 28357, 28325, 28312, 28348, 28346, 28331, 28369, 28310, - 28316, 28356, 28372, 28330, 28327, 28340, 29006, 29017, 29033, 29028, - 29001, 29031, 29020, 29036, 29030, 29004, 29029, 29022, 28998, 29032, - 29014, 29242, 29266, 29495, 29509, 29503, 29502, 29807, 29786, 29781, - 29791, 29790, 29761, 29759, 29785, 29787, [29788, 58019], 30070, 30072, - 30208, 30192, 30209, 30194, 30193, 30202, 30207, 30196, 30195, - {f: 2, c: 30430}, 30555, 30571, 30566, 30558, 30563, 30585, 30570, 30572, - 30556, 30565, 30568, 30562, 30702, 30862, 30896, {f: 2, c: 30871}, 30860, - 30857, 30844, 30865, 30867, 30847, 31098, 31103, 31105, 33836, 31165, - 31260, 31258, 31264, 31252, 31263, 31262, {f: 2, c: 31391}, 31607, 31680, - 31584, 31598, 31591, 31921, 31923, 31925, 32147, 32121, 32145, 32129, - 32143, 32091, 32622, {f: 2, c: 32617}, 32626, 32681, 32680, 32676, 32854, - 32856, 32902, 32900, 33137, 33136, 33144, 33125, 33134, 33139, 33131, - {f: 2, c: 33145}, 33126, 33285, 33351, 33922, 33911, 33853, 33841, 33909, - 33894, 33899, 33865, 33900, 33883, 33852, 33845, 33889, 33891, 33897, - 33901, 33862, 34398, 34396, 34399, 34553, 34579, 34568, 34567, 34560, - 34558, 34555, {f: 2, c: 34562}, 34566, 34570, 34905, 35039, 35028, 35033, - 35036, 35032, 35037, 35041, 35018, 35029, 35026, 35228, 35299, 35435, - {f: 2, c: 35442}, 35430, 35433, 35440, 35463, 35452, 35427, 35488, 35441, - 35461, 35437, 35426, 35438, 35436, 35449, 35451, 35390, 35432, 35938, - 35978, 35977, 36042, {f: 2, c: 36039}, 36036, 36018, 36035, 36034, 36037, - 36321, 36319, 36328, 36335, 36339, 36346, 36330, 36324, 36326, 36530, - 36611, 36617, 36606, 36618, 36767, 36786, 36939, 36938, 36947, 36930, - 36948, 36924, 36949, 36944, 36935, 36943, 36942, 36941, 36945, 36926, - 36929, 37138, 37143, 37228, 37226, 37225, 37321, 37431, 37463, 37432, - 37437, 37440, 37438, 37467, 37451, 37476, 37457, 37428, 37449, 37453, - 37445, 37433, 37439, 37466, 38296, 38552, {f: 2, c: 38548}, 38605, 38603, - {f: 2, c: 38601}, 38647, 38651, 38649, 38646, 38742, 38772, 38774, - {f: 2, c: 38928}, 38931, 38922, 38930, 38924, 39164, 39156, - {f: 2, c: 39165}, 39347, 39345, 39348, 39649, 40169, 40578, [12237, 40718], - [12238, 40723], [12239, 40736], 20711, 20718, 20709, 20694, [20717, 60903], - 20698, 20693, 20687, 20689, 20721, 20686, 20713, 20834, 20979, 21123, - 21122, 21297, 21421, 22014, 22016, 22043, 22039, 22013, 22036, 22022, - 22025, {f: 2, c: 22029}, 22007, 22038, 22047, 22024, 22032, 22006, 22296, - 22294, 22645, 22654, 22659, 22675, 22666, 22649, 22661, 22653, 22781, - 22821, 22818, 22820, 22890, 22889, 23265, 23270, 23273, 23255, 23254, - 23256, 23267, 23413, 23518, 23527, 23521, {f: 2, c: 23525}, 23528, 23522, - 23524, 23519, 23565, 23650, 23940, 23943, 24155, 24163, 24149, 24151, - 24148, 24275, 24278, 24330, 24390, 24432, 24505, 24903, 24895, 24907, - 24951, {f: 2, c: 24930}, 24927, 24922, 24920, 24949, 25130, 25735, 25688, - 25684, 25764, 25720, 25695, 25722, 25681, 25703, 25652, 25709, 25723, - 25970, 26017, 26071, 26070, 26274, 26280, 26269, 27036, 27048, 27029, - 27073, 27054, 27091, 27083, 27035, 27063, 27067, 27051, 27060, 27088, - 27085, 27053, 27084, 27046, 27075, 27043, 27465, 27468, 27699, 28467, - 28436, 28414, 28435, 28404, 28457, 28478, 28448, 28460, 28431, 28418, - 28450, 28415, 28399, 28422, 28465, 28472, 28466, 28451, 28437, 28459, - 28463, 28552, 28458, 28396, 28417, 28402, 28364, 28407, 29076, 29081, - 29053, 29066, 29060, 29074, 29246, 29330, 29334, 29508, 29520, 29796, - 29795, 29802, 29808, 29805, 29956, 30097, 30247, 30221, 30219, 30217, - 30227, 30433, 30435, 30596, 30589, 30591, 30561, 30913, 30879, 30887, - 30899, 30889, 30883, {f: 2, c: 31118}, 31117, 31278, 31281, 31402, 31401, - 31469, 31471, 31649, 31637, 31627, 31605, 31639, 31645, 31636, 31631, - [31672, 58170], 31623, 31620, 31929, {f: 2, c: 31933}, 32187, 32176, 32156, - {f: 2, c: 32189}, 32160, 32202, 32180, 32178, 32177, 32186, 32162, 32191, - 32181, 32184, 32173, [32210, 58202], 32199, 32172, 32624, {f: 2, c: 32736}, - 32735, 32862, 32858, 32903, 33104, 33152, 33167, 33160, 33162, 33151, - 33154, 33255, 33274, 33287, 33300, 33310, 33355, 33993, 33983, 33990, - 33988, 33945, 33950, 33970, 33948, 33995, 33976, 33984, 34003, 33936, - 33980, 34001, 33994, 34623, 34588, 34619, 34594, 34597, 34612, 34584, - 34645, 34615, 34601, 35059, 35074, 35060, 35065, 35064, 35069, 35048, - 35098, 35055, 35494, 35468, 35486, 35491, 35469, 35489, 35475, 35492, - 35498, 35493, 35496, 35480, 35473, 35482, 35495, 35946, 35981, 35980, - 36051, {f: 2, c: 36049}, 36203, 36249, 36245, 36348, 36628, 36626, 36629, - 36627, 36771, 36960, 36952, 36956, 36963, 36953, 36958, 36962, 36957, - 36955, 37145, 37144, 37150, 37237, 37240, 37239, 37236, 37496, 37548, - 37504, 37509, 37528, 37526, 37499, 37523, 37532, 37544, 37500, 37521, - 38305, {f: 2, c: 38312}, 38307, 38309, 38308, 38553, 38556, 38555, 38604, - 38610, 38656, 38780, 38789, 38902, {f: 2, c: 38935}, 39087, 39089, 39171, - 39173, 39180, 39177, 39361, {f: 2, c: 39599}, 39654, {f: 2, c: 39745}, - 40180, 40182, 40179, 40636, [12240, 40763], [12241, 40778], 20740, 20736, - 20731, 20725, 20729, 20738, {f: 2, c: 20744}, 20741, 20956, - {f: 3, c: 21127}, 21133, 21130, 21232, 21426, 22062, 22075, 22073, 22066, - 22079, 22068, 22057, 22099, 22094, 22103, 22132, 22070, {f: 2, c: 22063}, - 22656, 22687, 22686, 22707, 22684, 22702, 22697, 22694, 22893, 23305, - 23291, 23307, 23285, 23308, 23304, 23534, 23532, 23529, 23531, - {f: 2, c: 23652}, 23965, 23956, 24162, 24159, 24161, 24290, 24282, 24287, - 24285, 24291, 24288, 24392, 24433, 24503, 24501, 24950, 24935, 24942, - 24925, 24917, 24962, 24956, 24944, 24939, 24958, 24999, 24976, 25003, - 24974, 25004, 24986, 24996, 24980, 25006, 25134, 25705, 25711, 25721, - 25758, 25778, 25736, [25744, 57745], 25776, 25765, 25747, 25749, 25769, - 25746, 25774, 25773, 25771, 25754, 25772, 25753, 25762, 25779, 25973, - {f: 2, c: 25975}, 26286, 26283, 26292, 26289, 27171, 27167, 27112, 27137, - 27166, 27161, 27133, 27169, 27155, 27146, 27123, 27138, 27141, 27117, - 27153, 27472, 27470, 27556, {f: 2, c: 27589}, 28479, 28540, 28548, 28497, - 28518, 28500, 28550, 28525, 28507, 28536, 28526, 28558, 28538, 28528, - 28516, 28567, 28504, 28373, 28527, 28512, 28511, 29087, 29100, 29105, - 29096, 29270, 29339, 29518, 29527, 29801, 29835, 29827, 29822, 29824, - 30079, 30240, 30249, 30239, 30244, 30246, {f: 2, c: 30241}, 30362, 30394, - 30436, 30606, 30599, 30604, 30609, 30603, 30923, 30917, 30906, 30922, - 30910, 30933, 30908, 30928, 31295, 31292, 31296, 31293, 31287, 31291, - 31407, 31406, 31661, 31665, 31684, 31668, {f: 2, c: 31686}, 31681, 31648, - 31692, 31946, 32224, 32244, 32239, 32251, 32216, 32236, 32221, 32232, - 32227, 32218, 32222, 32233, 32158, 32217, 32242, 32249, 32629, 32631, - 32687, 32745, 32806, {f: 3, c: 33179}, 33184, 33178, 33176, 34071, 34109, - 34074, 34030, {f: 2, c: 34092}, 34067, 34065, 34083, 34081, 34068, 34028, - 34085, 34047, 34054, 34690, 34676, 34678, 34656, 34662, 34680, 34664, - 34649, 34647, 34636, 34643, 34907, 34909, 35088, 35079, {f: 2, c: 35090}, - 35093, 35082, 35516, 35538, 35527, 35524, 35477, 35531, 35576, 35506, - 35529, 35522, 35519, 35504, 35542, 35533, 35510, 35513, 35547, 35916, - 35918, 35948, 36064, 36062, 36070, 36068, {f: 2, c: 36076}, - {f: 2, c: 36066}, 36060, 36074, 36065, 36205, 36255, 36259, 36395, 36368, - 36381, 36386, 36367, 36393, 36383, 36385, 36382, 36538, 36637, 36635, - 36639, 36649, 36646, 36650, 36636, 36638, 36645, 36969, 36974, 36968, - 36973, 36983, 37168, 37165, 37159, 37169, 37255, 37257, 37259, 37251, - 37573, 37563, 37559, 37610, 37604, 37569, 37555, 37564, 37586, 37575, - 37616, 37554, 38317, 38321, 38660, {f: 2, c: 38662}, 38665, 38752, 38797, - 38795, 38799, 38945, 38955, 38940, 39091, 39178, 39187, 39186, 39192, - 39389, 39376, 39391, 39387, 39377, 39381, 39378, 39385, 39607, - {f: 2, c: 39662}, 39719, 39749, 39748, 39799, 39791, 40198, 40201, 40195, - 40617, 40638, 40654, 22696, [12242, 40786], 20754, 20760, 20756, 20752, - 20757, 20864, 20906, 20957, 21137, 21139, 21235, 22105, 22123, 22137, - 22121, 22116, 22136, 22122, 22120, 22117, 22129, 22127, 22124, 22114, - 22134, 22721, 22718, 22727, 22725, 22894, 23325, 23348, 23416, 23536, - 23566, 24394, 25010, 24977, 25001, 24970, 25037, 25014, 25022, 25034, - 25032, 25136, 25797, 25793, 25803, {f: 2, c: 25787}, 25818, 25796, 25799, - 25794, 25805, 25791, 25810, 25812, 25790, 25972, 26310, 26313, 26297, - 26308, 26311, 26296, 27197, 27192, 27194, 27225, 27243, 27224, 27193, - 27204, 27234, 27233, 27211, 27207, 27189, 27231, 27208, 27481, 27511, - 27653, 28610, 28593, 28577, 28611, 28580, 28609, 28583, 28595, 28608, - 28601, [28598, 60318], 28582, 28576, 28596, 29118, 29129, 29136, 29138, - 29128, 29141, 29113, 29134, 29145, 29148, {f: 2, c: 29123}, 29544, 29852, - 29859, 29848, 29855, 29854, 29922, {f: 2, c: 29964}, 30260, 30264, 30266, - 30439, 30437, 30624, {f: 2, c: 30622}, 30629, 30952, 30938, 30956, 30951, - 31142, {f: 2, c: 31309}, 31302, 31308, 31307, 31418, 31705, 31761, 31689, - 31716, 31707, 31713, 31721, 31718, {f: 2, c: 31957}, 32266, 32273, 32264, - 32283, 32291, 32286, [32285, 58211], 32265, 32272, 32633, 32690, - {f: 2, c: 32752}, 32750, [32808, 58239], 33203, 33193, 33192, 33275, 33288, - {f: 2, c: 33368}, 34122, 34137, 34120, {f: 2, c: 34152}, 34115, 34121, - 34157, 34154, 34142, 34691, 34719, 34718, 34722, 34701, 34913, 35114, - 35122, 35109, 35115, 35105, 35242, [35238, 58391], 35558, 35578, 35563, - 35569, 35584, 35548, 35559, 35566, 35582, {f: 2, c: 35585}, 35575, 35565, - 35571, 35574, 35580, 35947, 35949, 35987, 36084, 36420, 36401, 36404, - 36418, 36409, 36405, 36667, 36655, 36664, 36659, 36776, 36774, 36981, - 36980, 36984, 36978, 36988, 36986, 37172, 37266, 37664, 37686, 37624, - 37683, 37679, 37666, 37628, 37675, 37636, 37658, 37648, 37670, 37665, - 37653, 37678, 37657, 38331, {f: 2, c: 38567}, 38570, 38613, 38670, 38673, - 38678, 38669, 38675, 38671, 38747, [38748, 58565], 38758, 38808, 38960, - 38968, 38971, 38967, 38957, 38969, 38948, 39184, 39208, 39198, 39195, - 39201, 39194, 39405, 39394, 39409, 39608, 39612, 39675, 39661, 39720, - 39825, 40213, 40227, 40230, 40232, 40210, 40219, 40664, 40660, - [12243, 40845], [12244, 40860], 20778, 20767, 20769, 20786, 21237, 22158, - 22144, 22160, 22149, 22151, 22159, 22741, 22739, 22737, 22734, 23344, - 23338, 23332, 23418, 23607, 23656, 23996, 23994, 23997, 23992, 24171, - 24396, 24509, 25033, 25026, 25031, 25062, 25035, 25138, 25140, 25806, - 25802, 25816, 25824, 25840, 25830, 25836, 25841, 25826, 25837, - {f: 2, c: 25986}, 26329, 26326, 27264, 27284, 27268, 27298, 27292, 27355, - 27299, 27262, 27287, 27280, 27296, 27484, 27566, 27610, 27656, 28632, - 28657, {f: 2, c: 28639}, 28635, 28644, 28651, 28655, 28544, 28652, 28641, - 28649, 28629, 28654, 28656, 29159, [29151, 60361], 29166, 29158, 29157, - 29165, 29164, 29172, 29152, 29237, 29254, 29552, 29554, 29865, 29872, - 29862, 29864, 30278, 30274, 30284, 30442, 30643, 30634, 30640, 30636, - 30631, 30637, 30703, 30967, 30970, 30964, 30959, 30977, 31143, 31146, - 31319, 31423, 31751, 31757, 31742, 31735, 31756, 31712, 31968, 31964, - 31966, 31970, 31967, 31961, 31965, 32302, 32318, 32326, 32311, 32306, - 32323, 32299, 32317, 32305, 32325, 32321, 32308, 32313, 32328, 32309, - 32319, 32303, 32580, 32755, 32764, {f: 2, c: 32881}, 32880, 32879, 32883, - 33222, 33219, 33210, 33218, 33216, 33215, 33213, 33225, 33214, 33256, - 33289, 33393, 34218, 34180, 34174, 34204, 34193, 34196, 34223, 34203, - 34183, 34216, 34186, 34214, 34407, 34752, 34769, 34739, 34770, 34758, - 34731, 34747, 34746, 34760, 34763, 35131, 35126, 35140, 35128, 35133, - 35244, 35598, 35607, 35609, 35611, 35594, 35616, 35613, 35588, 35600, - 35905, 35903, 35955, 36090, 36093, 36092, 36088, 36091, 36264, 36425, - 36427, 36424, 36426, 36676, 36670, 36674, 36677, 36671, 36991, 36989, - 36996, {f: 2, c: 36993}, 36992, 37177, 37283, 37278, 37276, 37709, 37762, - 37672, 37749, 37706, 37733, 37707, 37656, 37758, 37740, 37723, 37744, - 37722, 37716, {f: 3, c: 38346}, 38344, 38342, 38577, 38584, 38614, 38684, - 38686, 38816, 38867, 38982, 39094, 39221, 39425, 39423, 39854, 39851, - 39850, 39853, 40251, 40255, 40587, 40655, 40670, {f: 2, c: 40668}, 40667, - 40766, 40779, 21474, 22165, 22190, 22745, 22744, 23352, 24413, 25059, - 25139, 25844, 25842, 25854, 25862, {f: 2, c: 25850}, 25847, 26039, 26332, - 26406, 27315, 27308, 27331, 27323, 27320, 27330, {f: 2, c: 27310}, 27487, - 27512, 27567, 28681, 28683, 28670, 28678, 28666, 28689, 28687, - {f: 2, c: 29179}, 29182, 29176, 29559, 29557, 29863, 29887, 29973, 30294, - 30296, 30290, 30653, 30655, {f: 2, c: 30651}, 30990, 31150, - {f: 2, c: 31329}, 31328, {f: 2, c: 31428}, 31787, 31783, 31786, 31774, - 31779, 31777, 31975, {f: 2, c: 32340}, 32350, 32346, 32353, 32338, 32345, - 32584, 32761, 32763, 32887, 32886, 33229, 33231, 33290, 34255, 34217, - 34253, 34256, 34249, 34224, 34234, 34233, 34799, 34796, 34802, 34784, - 35206, 35250, 35316, 35624, 35641, 35628, 35627, 35920, 36101, 36441, - 36451, 36454, 36452, 36447, 36437, 36544, 36681, 36685, 36999, 36995, - 37000, {f: 2, c: 37291}, 37328, 37780, 37770, 37782, 37794, 37811, 37806, - 37804, 37808, 37784, 37786, 37783, 38356, 38358, 38352, 38357, 38626, - 38620, 38617, 38619, 38622, 38692, 38819, 38822, 38829, 38905, 38989, - 38991, 38988, 38990, 38995, 39098, {f: 2, c: 39230}, 39229, 39214, 39333, - 39438, 39617, 39683, 39686, 39759, 39758, 39757, 39882, 39881, 39933, - 39880, 39872, 40273, 40285, 40288, 40672, 40725, 40748, 20787, 22181, - 22184, {f: 2, c: 22750}, 22754, 23541, 40848, 24300, 25074, 25079, 25078, - 25077, 25856, 25871, 26336, 26333, 27365, 27357, 27354, 27347, 28699, - 28703, 28712, 28698, 28701, 28693, 28696, 29190, 29197, 29272, 29346, - 29560, 29562, 29885, 29898, 29923, 30087, 30086, 30303, 30305, 30663, - 31001, 31153, 31339, 31337, {f: 2, c: 31806}, 31800, 31805, 31799, 31808, - 32363, 32365, 32377, {f: 2, c: 32361}, 32371, 32645, 32694, 32697, 32696, - 33240, 34281, 34269, 34282, 34261, {f: 2, c: 34276}, 34295, 34811, 34821, - 34829, 34809, 34814, 35168, 35167, 35158, 35166, 35649, 35676, 35672, - 35657, 35674, {f: 2, c: 35662}, 35654, 35673, 36104, 36106, 36476, 36466, - 36487, 36470, 36460, 36474, 36468, 36692, 36686, 36781, {f: 2, c: 37002}, - 37297, 37294, 37857, 37841, 37855, 37827, 37832, {f: 2, c: 37852}, 37846, - 37858, 37837, 37848, 37860, 37847, 37864, 38364, 38580, 38627, 38698, - 38695, 38753, 38876, 38907, 39006, 39000, 39003, 39100, 39237, 39241, - 39446, 39449, 39693, 39912, 39911, 39894, 39899, 40329, 40289, 40306, - 40298, 40300, 40594, 40599, 40595, 40628, 21240, 22199, 22198, 22196, - 22204, 22756, 23360, 23363, 23421, 23542, 24009, 25080, 25082, 25880, - 25876, 25881, 26342, 26407, 27372, 28734, 28720, 28722, 29200, 29563, - 29903, 30306, 30309, 31014, 31018, 31020, 31019, 31431, 31478, 31820, - 31811, 31821, {f: 2, c: 31983}, 36782, 32381, 32380, 32386, 32588, 32768, - 33242, 33382, 34299, 34297, 34321, 34298, 34310, 34315, 34311, 34314, - {f: 2, c: 34836}, 35172, 35258, 35320, 35696, 35692, 35686, 35695, 35679, - 35691, 36111, 36109, 36489, 36481, 36485, 36482, 37300, 37323, 37912, - 37891, 37885, 38369, 38704, 39108, 39250, 39249, 39336, 39467, 39472, - 39479, 39477, 39955, 39949, 40569, 40629, 40680, 40751, 40799, 40803, - 40801, {f: 2, c: 20791}, 22209, 22208, 22210, 22804, 23660, 24013, 25084, - 25086, 25885, 25884, 26005, 26345, 27387, 27396, 27386, 27570, 28748, - 29211, 29351, 29910, 29908, 30313, 30675, 31824, 32399, 32396, 32700, - 34327, 34349, 34330, 34851, 34850, 34849, 34847, 35178, 35180, 35261, - 35700, 35703, 35709, 36115, 36490, 36493, 36491, 36703, 36783, 37306, - 37934, 37939, 37941, 37946, 37944, 37938, 37931, 38370, {f: 2, c: 38712}, - 38706, [38911, 58586], 39015, 39013, 39255, 39493, 39491, 39488, 39486, - 39631, 39764, 39761, 39981, 39973, 40367, 40372, 40386, 40376, 40605, - 40687, 40729, 40796, {f: 2, c: 40806}, 20796, 20795, 22216, 22218, 22217, - 23423, 24020, 24018, 24398, 25087, 25892, 27402, 27489, 28753, 28760, - 29568, 29924, 30090, 30318, 30316, 31155, 31840, 31839, 32894, 32893, - 33247, 35186, 35183, 35324, 35712, {f: 2, c: 36118}, 36497, 36499, 36705, - 37192, 37956, {f: 2, c: 37969}, {f: 2, c: 38717}, 38851, 38849, 39019, - 39253, 39509, 39501, 39634, 39706, 40009, 39985, 39998, 39995, 40403, - 40407, 40756, 40812, 40810, 40852, 22220, 24022, 25088, 25891, 25899, - 25898, 26348, 27408, 29914, 31434, 31844, 31843, 31845, 32403, 32406, - 32404, 33250, 34360, 34367, 34865, 35722, 37008, 37007, 37987, 37984, - 37988, 38760, 39023, 39260, {f: 2, c: 39514}, 39511, {f: 2, c: 39635}, - 39633, 40020, 40023, 40022, 40421, 40607, 40692, 22225, 22761, 25900, - 28766, {f: 2, c: 30321}, [30679, 60226], 32592, 32648, 34870, 34873, 34914, - 35731, 35730, 35734, 33399, 36123, 37312, 37994, 38722, 38728, 38724, - 38854, 39024, 39519, 39714, 39768, 40031, {f: 2, c: 40441}, - {f: 2, c: 40572}, 40711, 40823, 40818, 24307, 27414, 28771, 31852, 31854, - 34875, 35264, 36513, 37313, 38002, 38000, 39025, 39262, 39638, 39715, - 40652, 28772, 30682, 35738, 38007, 38857, 39522, 39525, 32412, 35740, - 36522, 37317, {f: 2, c: 38013}, 38012, {f: 2, c: 40055}, 40695, 35924, - 38015, 40474, 29224, 39530, 39729, 40475, 40478, 31858, 20034, 20060, - [12048, 20981], [12053, 21274], [12058, 21378], 19975, 19980, 20039, 20109, - [12062, 22231], [12076, 23662], [12091, 24435], 19983, 20871, 19982, 20014, - 20115, 20162, 20169, 20168, 20888, 21244, 21356, 21433, 22304, 22787, - 22828, [23568, 60417], 24063, 26081, [12110, 27571], 27596, [12115, 27668], - [12121, 29247], 20017, 20028, 20200, 20188, 20201, 20193, 20189, 20186, - 21004, 21001, 21276, 21324, {f: 2, c: 22306}, 22807, 22831, 23425, 23428, - 23570, 23611, 23668, 23667, 24068, 24192, 24194, 24521, 25097, 25168, - 27669, 27702, 27715, 27711, 27707, 29358, 29360, 29578, [12145, 31160], - 32906, 38430, 20238, 20248, 20268, 20213, 20244, 20209, 20224, 20215, - 20232, 20253, 20226, 20229, 20258, 20243, 20228, 20212, 20242, 20913, - 21011, 21008, 21158, 21282, 21279, 21325, 21386, 21511, 22241, 22239, - 22318, 22314, 22324, 22844, 22912, 22908, 22917, 22907, 22910, 22903, - 22911, 23382, 23573, 23589, 23676, {f: 2, c: 23674}, 23678, 24031, - [24181, 57646], 24196, 24322, 24346, 24436, 24533, 24532, 24527, 25180, - 25182, 25188, 25185, 25190, 25186, 25177, 25184, 25178, 25189, 25911, - 26095, 26094, 26430, 26425, 26424, 26427, 26426, 26431, 26428, 26419, - 27672, 27718, 27730, 27740, 27727, [27722, 60796], 27732, {f: 2, c: 27723}, - 28785, 29278, {f: 2, c: 29364}, 29582, 29994, 30335, 31349, [12153, 32593], - [12171, 33400], 33404, 33408, 33405, 33407, [12172, 34381], [12177, 35198], - 37017, [37015, 59347], 37016, 37019, 37012, 38434, 38436, 38432, 38435, - 20310, 20283, 20322, 20297, 20307, 20324, 20286, 20327, 20306, 20319, - 20289, 20312, 20269, 20275, 20287, 20321, 20879, 20921, 21020, 21022, - 21025, {f: 2, c: 21165}, 21257, 21347, 21362, {f: 2, c: 21390}, 21552, - 21559, 21546, 21588, 21573, 21529, 21532, 21541, 21528, 21565, 21583, - 21569, 21544, 21540, 21575, 22254, 22247, 22245, 22337, 22341, 22348, - 22345, 22347, 22354, 22790, 22848, 22950, 22936, 22944, 22935, 22926, - 22946, 22928, 22927, 22951, 22945, 23438, 23442, 23592, 23594, 23693, - 23695, 23688, 23691, 23689, 23698, 23690, 23686, 23699, 23701, 24032, - 24074, 24078, 24203, 24201, 24204, 24200, 24205, 24325, 24349, 24440, - 24438, 24530, 24529, 24528, 24557, 24552, 24558, 24563, 24545, 24548, - 24547, 24570, 24559, 24567, 24571, 24576, 24564, 25146, 25219, 25228, - {f: 2, c: 25230}, 25236, 25223, 25201, 25211, 25210, 25200, 25217, 25224, - 25207, 25213, 25202, 25204, 26096, 26100, 26099, 26098, 26101, 26437, - 26439, 26457, 26453, 26444, 26440, 26461, 26445, 26458, 26443, 27600, - {f: 2, c: 27673}, 27768, 27751, 27755, 27780, 27787, 27791, 27761, 27759, - 27753, 27802, 27757, 27783, 27797, [27804, 57900], 27750, 27763, 27749, - 27771, 27790, 28788, 28794, 29283, 29375, 29373, 29379, 29382, 29377, - 29370, 29381, 29589, 29591, {f: 2, c: 29587}, 29586, 30010, 30009, - {f: 2, c: 30100}, 30337, 31037, 32820, 32917, 32921, 32912, 32914, 32924, - 33424, 33423, 33413, 33422, 33425, 33427, 33418, {f: 2, c: 33411}, - [12184, 35960], 36809, 36799, 37023, 37025, 37029, 37022, 37031, 37024, - 38448, 38440, 38447, 38445, 20019, 20376, 20348, 20357, 20349, 20352, - 20359, 20342, 20340, 20361, 20356, 20343, 20300, 20375, 20330, 20378, - 20345, 20353, 20344, 20368, 20380, 20372, 20382, 20370, 20354, 20373, - 20331, 20334, 20894, 20924, 20926, 21045, {f: 2, c: 21042}, 21062, 21041, - 21180, {f: 2, c: 21258}, 21308, 21394, 21396, 21639, 21631, 21633, 21649, - 21634, 21640, 21611, 21626, 21630, 21605, 21612, 21620, 21606, 21645, - 21615, 21601, 21600, 21656, 21603, 21607, 21604, 22263, 22265, 22383, - 22386, 22381, 22379, 22385, 22384, 22390, 22400, 22389, 22395, - {f: 2, c: 22387}, 22370, 22376, 22397, 22796, 22853, 22965, 22970, 22991, - 22990, 22962, 22988, 22977, 22966, 22972, 22979, 22998, 22961, 22973, - 22976, 22984, 22964, 22983, 23394, 23397, 23443, 23445, 23620, 23623, - 23726, 23716, 23712, 23733, 23727, 23720, 23724, 23711, 23715, 23725, - 23714, 23722, 23719, 23709, 23717, 23734, 23728, 23718, 24087, 24084, - 24089, 24360, {f: 3, c: 24354}, 24404, 24450, 24446, 24445, 24542, 24549, - 24621, 24614, 24601, 24626, 24587, 24628, 24586, 24599, 24627, 24602, - 24606, 24620, 24610, 24589, 24592, 24622, 24595, 24593, 24588, 24585, - 24604, 25108, 25149, 25261, 25268, 25297, 25278, 25258, 25270, 25290, - 25262, 25267, 25263, 25275, 25257, 25264, 25272, 25917, 26024, 26043, - 26121, 26108, 26116, 26130, 26120, 26107, 26115, 26123, 26125, 26117, - 26109, 26129, 26128, 26358, 26378, 26501, 26476, 26510, 26514, 26486, - 26491, 26520, 26502, 26500, 26484, 26509, 26508, 26490, 26527, 26513, - 26521, 26499, 26493, 26497, {f: 2, c: 26488}, 26516, 27429, 27520, 27518, - 27614, 27677, 27795, 27884, 27883, 27886, 27865, 27830, 27860, 27821, - 27879, 27831, 27856, 27842, 27834, 27843, 27846, 27885, 27890, 27858, - 27869, 27828, 27786, 27805, 27776, 27870, 27840, 27952, 27853, 27847, - 27824, 27897, 27855, 27881, 27857, 28820, 28824, 28805, 28819, 28806, - 28804, 28817, 28822, 28802, 28826, 28803, 29290, 29398, 29387, 29400, - 29385, 29404, 29394, 29396, 29402, 29388, 29393, 29604, 29601, 29613, - 29606, 29602, 29600, 29612, 29597, 29917, 29928, {f: 2, c: 30015}, 30014, - 30092, 30104, 30383, 30451, 30449, 30448, 30453, 30712, 30716, 30713, - 30715, 30714, 30711, 31042, 31039, 31173, 31352, 31355, 31483, 31861, - 31997, 32821, 32911, 32942, 32931, 32952, 32949, 32941, 33312, 33440, - 33472, 33451, 33434, 33432, 33435, 33461, 33447, 33454, 33468, 33438, - 33466, 33460, 33448, 33441, 33449, 33474, 33444, 33475, 33462, 33442, - 34416, 34415, {f: 2, c: 34413}, 35926, 36818, 36811, 36819, 36813, 36822, - 36821, 36823, 37042, 37044, 37039, 37043, 37040, 38457, 38461, 38460, - 38458, 38467, 20429, 20421, 20435, 20402, 20425, 20427, 20417, 20436, - 20444, 20441, [20411, 60346], 20403, 20443, 20423, 20438, 20410, 20416, - 20409, 20460, 21060, 21065, 21184, 21186, 21309, 21372, 21399, 21398, - 21401, 21400, 21690, 21665, 21677, 21669, 21711, 21699, 33549, 21687, - 21678, 21718, 21686, {f: 2, c: 21701}, 21664, 21616, 21692, 21666, 21694, - 21618, 21726, 21680, 22453, {f: 2, c: 22430}, 22436, 22412, 22423, 22429, - 22427, 22420, 22424, 22415, 22425, 22437, 22426, 22421, 22772, 22797, - 22867, 23009, 23006, 23022, 23040, 23025, 23005, 23034, 23037, 23036, - 23030, 23012, 23026, 23031, 23003, 23017, 23027, 23029, 23008, 23038, - 23028, 23021, 23464, 23628, 23760, 23768, 23756, 23767, 23755, 23771, - 23774, 23770, 23753, 23751, 23754, 23766, {f: 2, c: 23763}, 23759, 23752, - 23750, 23758, 23775, 23800, 24057, {f: 3, c: 24097}, 24096, 24100, 24240, - 24228, 24226, 24219, 24227, 24229, 24327, 24366, 24406, 24454, 24631, - 24633, 24660, 24690, 24670, 24645, 24659, 24647, 24649, 24667, 24652, - 24640, 24642, 24671, 24612, 24644, 24664, 24678, 24686, {f: 2, c: 25154}, - 25295, 25357, 25355, 25333, 25358, 25347, 25323, 25337, 25359, 25356, - 25336, 25334, 25344, {f: 2, c: 25363}, 25338, 25365, 25339, 25328, 25921, - 25923, 26026, 26047, 26166, 26145, 26162, 26165, 26140, 26150, 26146, - 26163, 26155, 26170, 26141, 26164, 26169, 26158, {f: 2, c: 26383}, 26561, - 26610, 26568, 26554, 26588, 26555, 26616, 26584, 26560, 26551, 26565, - 26603, 26596, 26591, 26549, 26573, 26547, 26615, 26614, 26606, 26595, - 26562, 26553, 26574, 26599, 26608, 26546, 26620, 26566, 26605, 26572, - 26542, 26598, 26587, 26618, {f: 2, c: 26569}, 26563, 26602, 26571, 27432, - 27522, 27524, 27574, 27606, 27608, 27616, {f: 2, c: 27680}, 27944, 27956, - 27949, 27935, 27964, 27967, 27922, 27914, 27866, 27955, 27908, 27929, - 27962, 27930, 27921, 27904, 27933, 27970, 27905, 27928, 27959, 27907, - 27919, 27968, 27911, 27936, 27948, 27912, 27938, 27913, 27920, 28855, - 28831, 28862, 28849, 28848, 28833, {f: 2, c: 28852}, 28841, 29249, - {f: 2, c: 29257}, 29292, 29296, 29299, 29294, 29386, 29412, 29416, 29419, - 29407, 29418, 29414, 29411, 29573, 29644, 29634, 29640, 29637, 29625, - 29622, 29621, 29620, 29675, 29631, 29639, 29630, 29635, 29638, 29624, - 29643, 29932, 29934, 29998, {f: 2, c: 30023}, 30119, 30122, 30329, 30404, - 30472, {f: 3, c: 30467}, 30474, 30455, 30459, 30458, {f: 2, c: 30695}, - 30726, {f: 2, c: 30737}, 30725, 30736, 30735, 30734, [30729, 58095], 30723, - 30739, 31050, 31052, 31051, 31045, 31044, 31189, 31181, 31183, 31190, - 31182, 31360, 31358, 31441, {f: 2, c: 31488}, 31866, {f: 2, c: 31864}, - {f: 3, c: 31871}, 32003, 32008, 32001, 32600, 32657, 32653, 32702, 32775, - {f: 2, c: 32782}, 32788, 32823, 32984, 32967, 32992, 32977, 32968, 32962, - 32976, 32965, 32995, 32985, 32988, 32970, 32981, 32969, 32975, 32983, - 32998, 32973, 33279, 33313, 33428, 33497, 33534, 33529, 33543, 33512, - 33536, 33493, 33594, 33515, 33494, 33524, 33516, 33505, 33522, 33525, - 33548, 33531, 33526, 33520, 33514, 33508, 33504, 33530, 33523, 33517, - 34423, 34420, 34428, 34419, 34881, 34894, 34919, 34922, 34921, 35283, - 35332, 35335, 36210, 36835, 36833, 36846, 36832, 37105, 37053, 37055, - 37077, 37061, 37054, 37063, 37067, 37064, [37332, 60294], 37331, 38484, - 38479, 38481, 38483, 38474, 38478, 20510, 20485, 20487, 20499, 20514, - 20528, 20507, 20469, 20468, 20531, 20535, 20524, {f: 2, c: 20470}, 20503, - 20508, 20512, 20519, 20533, 20527, 20529, 20494, 20826, 20884, 20883, - 20938, {f: 2, c: 20932}, 20936, 20942, 21089, 21082, 21074, - {f: 2, c: 21086}, 21077, 21090, 21197, 21262, 21406, 21798, 21730, 21783, - 21778, 21735, 21747, 21732, 21786, 21759, 21764, 21768, 21739, 21777, - 21765, 21745, 21770, 21755, {f: 2, c: 21751}, 21728, 21774, 21763, 21771, - {f: 2, c: 22273}, 22476, 22578, 22485, 22482, 22458, 22470, 22461, 22460, - 22456, 22454, 22463, 22471, 22480, 22457, 22465, 22798, 22858, 23065, - 23062, {f: 2, c: 23085}, 23061, 23055, 23063, 23050, 23070, 23091, 23404, - 23463, 23469, 23468, 23555, 23638, 23636, 23788, 23807, 23790, 23793, - 23799, 23808, 23801, 24105, 24104, 24232, 24238, 24234, 24236, 24371, - 24368, 24423, 24669, 24666, 24679, 24641, 24738, 24712, 24704, 24722, - 24705, 24733, 24707, 24725, 24731, 24727, 24711, 24732, 24718, 25113, - 25158, 25330, 25360, 25430, 25388, {f: 2, c: 25412}, 25398, 25411, 25572, - 25401, 25419, 25418, 25404, 25385, 25409, 25396, 25432, 25428, 25433, - 25389, 25415, 25395, 25434, 25425, 25400, 25431, 25408, 25416, 25930, - 25926, 26054, {f: 2, c: 26051}, 26050, 26186, 26207, 26183, 26193, - {f: 2, c: 26386}, 26655, 26650, 26697, {f: 2, c: 26674}, 26683, 26699, - 26703, 26646, 26673, 26652, 26677, 26667, 26669, 26671, 26702, 26692, - 26676, 26653, 26642, 26644, 26662, 26664, 26670, 26701, 26682, 26661, - 26656, 27436, 27439, 27437, 27441, 27444, 27501, 32898, 27528, 27622, - 27620, 27624, 27619, 27618, 27623, 27685, 28026, {f: 2, c: 28003}, 28022, - 27917, 28001, 28050, 27992, 28002, 28013, 28015, 28049, 28045, 28143, - 28031, 28038, 27998, [28007, 59078], 28000, 28055, 28016, 28028, 27999, - 28034, 28056, 27951, 28008, 28043, 28030, 28032, 28036, 27926, 28035, - 28027, 28029, 28021, 28048, 28892, 28883, 28881, 28893, 28875, 32569, - 28898, 28887, 28882, 28894, 28896, 28884, 28877, {f: 3, c: 28869}, 28890, - 28878, 28897, 29250, 29304, 29303, 29302, 29440, 29434, 29428, 29438, - 29430, 29427, 29435, 29441, 29651, 29657, 29669, 29654, 29628, 29671, - 29667, 29673, 29660, 29650, 29659, 29652, 29661, 29658, {f: 2, c: 29655}, - 29672, {f: 2, c: 29918}, {f: 2, c: 29940}, 29985, 30043, 30047, 30128, - 30145, 30139, 30148, 30144, 30143, 30134, 30138, 30346, 30409, 30493, - 30491, 30480, 30483, 30482, 30499, 30481, 30485, {f: 2, c: 30489}, 30498, - 30503, 30755, 30764, 30754, 30773, 30767, 30760, 30766, 30763, 30753, - 30761, 30771, 30762, 30769, 31060, 31067, 31055, 31068, 31059, 31058, - 31057, {f: 2, c: 31211}, 31200, 31214, 31213, 31210, 31196, 31198, 31197, - 31366, 31369, 31365, {f: 2, c: 31371}, 31370, 31367, 31448, 31504, 31492, - 31507, 31493, 31503, 31496, 31498, 31502, 31497, 31506, 31876, 31889, - 31882, 31884, 31880, 31885, 31877, 32030, 32029, 32017, 32014, 32024, - 32022, 32019, 32031, 32018, 32015, 32012, 32604, 32609, 32606, 32608, - 32605, 32603, 32662, 32658, 32707, 32706, 32704, 32790, 32830, 32825, - 33018, 33010, 33017, 33013, 33025, 33019, 33024, 33281, 33327, 33317, - 33587, 33581, 33604, 33561, 33617, 33573, 33622, 33599, 33601, 33574, - 33564, 33570, 33602, 33614, 33563, 33578, 33544, 33596, 33613, 33558, - 33572, 33568, 33591, 33583, 33577, 33607, 33605, 33612, 33619, 33566, - 33580, 33611, 33575, 33608, 34387, 34386, 34466, 34472, 34454, 34445, - 34449, 34462, 34439, 34455, 34438, 34443, 34458, 34437, 34469, 34457, - 34465, 34471, 34453, 34456, 34446, 34461, 34448, 34452, {f: 2, c: 34883}, - 34925, {f: 2, c: 34933}, 34930, 34944, 34929, 34943, 34927, 34947, 34942, - 34932, 34940, 35346, 35911, 35927, 35963, 36004, 36003, 36214, 36216, - 36277, 36279, 36278, 36561, 36563, 36862, 36853, 36866, 36863, 36859, - 36868, 36860, 36854, 37078, 37088, {f: 2, c: 37081}, 37091, 37087, 37093, - 37080, 37083, 37079, 37084, 37092, 37200, {f: 2, c: 37198}, 37333, 37346, - 37338, 38492, 38495, 38588, 39139, [12221, 39647], [12223, 39727], 20095, - 20592, 20586, 20577, 20574, 20576, 20563, 20555, 20573, 20594, 20552, - 20557, 20545, 20571, 20554, 20578, 20501, 20549, 20575, 20585, 20587, - {f: 2, c: 20579}, 20550, 20544, 20590, 20595, 20567, 20561, 20944, 21099, - 21101, 21100, 21102, 21206, 21203, 21293, 21404, {f: 2, c: 21877}, 21820, - 21837, 21840, 21812, 21802, 21841, 21858, 21814, 21813, 21808, 21842, - 21829, 21772, 21810, 21861, 21838, 21817, 21832, 21805, 21819, 21824, - 21835, 22282, 22279, 22523, 22548, 22498, 22518, 22492, 22516, 22528, - 22509, 22525, 22536, 22520, 22539, 22515, 22479, 22535, 22510, 22499, - 22514, 22501, 22508, 22497, 22542, 22524, 22544, 22503, 22529, 22540, - 22513, 22505, 22512, 22541, 22532, 22876, 23136, 23128, 23125, - [23143, 60437], 23134, 23096, 23093, 23149, 23120, 23135, 23141, 23148, - 23123, 23140, 23127, 23107, 23133, 23122, 23108, 23131, 23112, 23182, - 23102, 23117, 23097, 23116, 23152, 23145, 23111, 23121, 23126, 23106, - 23132, 23410, 23406, 23489, 23488, 23641, 23838, 23819, 23837, 23834, - 23840, 23820, 23848, 23821, 23846, 23845, 23823, 23856, 23826, 23843, - 23839, 23854, 24126, 24116, 24241, 24244, 24249, {f: 2, c: 24242}, 24374, - 24376, 24475, 24470, 24479, 24714, 24720, 24710, 24766, 24752, 24762, - {f: 2, c: 24787}, 24783, 24804, 24793, 24797, 24776, 24753, 24795, 24759, - 24778, 24767, 24771, 24781, 24768, 25394, 25445, 25482, 25474, 25469, - 25533, 25502, 25517, 25501, 25495, 25515, 25486, 25455, 25479, 25488, - 25454, 25519, 25461, 25500, 25453, 25518, 25468, 25508, 25403, 25503, - 25464, 25477, 25473, 25489, 25485, 25456, 25939, 26061, 26213, 26209, - 26203, 26201, 26204, 26210, 26392, 26745, 26759, 26768, 26780, - {f: 2, c: 26733}, 26798, 26795, 26966, 26735, 26787, 26796, 26793, 26741, - 26740, 26802, 26767, 26743, 26770, 26748, 26731, 26738, 26794, 26752, - 26737, 26750, 26779, 26774, 26763, 26784, 26761, 26788, 26744, 26747, - 26769, 26764, 26762, 26749, 27446, 27443, {f: 2, c: 27447}, 27537, 27535, - {f: 2, c: 27533}, 27532, 27690, 28096, 28075, 28084, 28083, 28276, 28076, - 28137, 28130, 28087, 28150, 28116, 28160, 28104, 28128, 28127, 28118, - 28094, 28133, {f: 2, c: 28124}, 28123, 28148, 28106, 28093, 28141, 28144, - 28090, 28117, 28098, 28111, 28105, 28112, 28146, 28115, 28157, 28119, - 28109, 28131, 28091, 28922, 28941, 28919, 28951, 28916, 28940, 28912, - 28932, 28915, 28944, 28924, 28927, 28934, 28947, 28928, 28920, 28918, - 28939, 28930, 28942, 29310, {f: 2, c: 29307}, 29311, 29469, 29463, 29447, - 29457, 29464, 29450, 29448, 29439, 29455, 29470, 29576, 29686, 29688, - 29685, 29700, 29697, 29693, 29703, 29696, 29690, 29692, 29695, 29708, - 29707, 29684, 29704, 30052, 30051, 30158, 30162, 30159, {f: 2, c: 30155}, - 30161, 30160, 30351, 30345, 30419, 30521, 30511, 30509, {f: 2, c: 30513}, - 30516, 30515, 30525, 30501, 30523, 30517, 30792, 30802, 30793, 30797, - 30794, 30796, 30758, 30789, 30800, 31076, 31079, {f: 2, c: 31081}, 31075, - 31083, 31073, 31163, 31226, 31224, {f: 2, c: 31222}, 31375, 31380, 31376, - 31541, 31547, 31540, 31525, 31536, 31522, 31524, 31539, 31512, 31530, - 31517, 31537, 31531, 31533, 31535, 31538, 31544, 31514, 31523, 31892, - 31896, 31894, 31907, 32053, 32061, 32056, 32054, 32058, 32069, 32044, - 32041, 32065, 32071, {f: 2, c: 32062}, 32074, 32059, 32040, 32611, 32661, - {f: 2, c: 32668}, 32667, {f: 2, c: 32714}, 32717, {f: 2, c: 32720}, 32711, - 32719, 32713, 32799, 32798, 32795, 32839, 32835, 32840, 33048, 33061, - 33049, 33051, 33069, 33055, 33068, 33054, 33057, 33045, 33063, 33053, - 33058, 33297, 33336, 33331, 33338, 33332, 33330, 33396, 33680, 33699, - 33704, 33677, 33658, 33651, 33700, 33652, 33679, 33665, 33685, 33689, - 33653, 33684, 33705, 33661, 33667, 33676, 33693, 33691, 33706, 33675, - 33662, 33701, 33711, 33672, 33687, 33712, 33663, 33702, 33671, 33710, - 33654, 34393, 34390, 34495, 34487, 34498, 34497, 34501, 34490, 34480, - 34504, 34489, 34483, 34488, 34508, 34484, {f: 2, c: 34491}, 34499, - {f: 2, c: 34493}, 34898, 34953, 34965, 34984, 34978, 34986, 34970, 34961, - 34977, 34975, 34968, 34983, 34969, 34971, 34967, 34980, 34988, 34956, - 34963, 34958, 35202, 35286, 35289, 35285, 35376, 35367, 35372, 35358, - 35897, 35899, {f: 2, c: 35932}, 35965, 36005, 36221, 36219, 36217, 36284, - 36290, 36281, 36287, 36289, 36568, 36574, 36573, 36572, 36567, - {f: 2, c: 36576}, 36900, 36875, 36881, 36892, 36876, 36897, 37103, 37098, - 37104, 37108, {f: 2, c: 37106}, 37076, {f: 2, c: 37099}, 37097, 37206, - 37208, 37210, 37203, 37205, 37356, 37364, 37361, 37363, 37368, 37348, - 37369, {f: 2, c: 37354}, 37367, 37352, 37358, 38266, 38278, 38280, 38524, - 38509, 38507, 38513, 38511, 38591, 38762, 38916, 39141, 39319, 20635, - 20629, 20628, 20638, 20619, 20643, 20611, 20620, 20622, 20637, 20584, - 20636, 20626, 20610, 20615, 20831, 20948, 21266, 21265, 21412, 21415, - 21905, 21928, 21925, 21933, 21879, 22085, 21922, 21907, 21896, 21903, - 21941, 21889, 21923, 21906, 21924, 21885, 21900, 21926, 21887, 21909, - 21921, 21902, 22284, 22569, 22583, 22553, 22558, 22567, 22563, 22568, - 22517, 22600, 22565, 22556, 22555, 22579, 22591, 22582, 22574, 22585, - 22584, 22573, 22572, 22587, 22881, 23215, 23188, 23199, 23162, 23202, - 23198, 23160, 23206, 23164, 23205, 23212, 23189, 23214, 23095, 23172, - 23178, 23191, 23171, 23179, 23209, 23163, 23165, 23180, 23196, 23183, - 23187, 23197, 23530, 23501, 23499, 23508, 23505, 23498, 23502, 23564, - 23600, 23863, 23875, 23915, 23873, 23883, 23871, 23861, 23889, 23886, - 23893, 23859, 23866, 23890, 23869, 23857, 23897, 23874, 23865, 23881, - 23864, 23868, 23858, 23862, 23872, 23877, 24132, 24129, [24408, 57673], - 24486, 24485, 24491, 24777, 24761, 24780, 24802, 24782, 24772, 24852, - 24818, 24842, 24854, 24837, 24821, 24851, 24824, 24828, 24830, 24769, - 24835, 24856, 24861, 24848, 24831, 24836, 24843, 25162, 25492, 25521, - 25520, 25550, 25573, 25576, 25583, 25539, 25757, 25587, 25546, 25568, - 25590, 25557, 25586, 25589, 25697, 25567, 25534, 25565, 25564, 25540, - 25560, 25555, 25538, 25543, 25548, 25547, 25544, 25584, 25559, 25561, - 25906, 25959, 25962, 25956, 25948, 25960, 25957, 25996, {f: 2, c: 26013}, - 26030, 26064, 26066, 26236, 26220, 26235, 26240, 26225, 26233, 26218, - 26226, 26369, 26892, 26835, 26884, 26844, 26922, 26860, 26858, 26865, - 26895, 26838, 26871, 26859, 26852, 26870, 26899, 26896, 26867, 26849, - 26887, 26828, 26888, 26992, 26804, 26897, 26863, 26822, 26900, 26872, - 26832, 26877, 26876, 26856, 26891, 26890, 26903, 26830, 26824, - {f: 2, c: 26845}, 26854, 26868, 26833, 26886, 26836, 26857, 26901, 26917, - 26823, 27449, 27451, 27455, 27452, 27540, 27543, 27545, 27541, 27581, - 27632, {f: 2, c: 27634}, 27696, 28156, {f: 2, c: 28230}, 28191, 28233, - 28296, {f: 2, c: 28220}, 28229, 28258, 28203, 28223, 28225, 28253, 28275, - 28188, 28211, 28235, 28224, 28241, 28219, 28163, 28206, 28254, 28264, - 28252, 28257, 28209, 28200, 28256, 28273, 28267, 28217, 28194, 28208, - 28243, 28261, 28199, 28280, 28260, 28279, 28245, 28281, 28242, 28262, - {f: 2, c: 28213}, 28250, 28960, 28958, 28975, 28923, 28974, 28977, 28963, - 28965, 28962, 28978, 28959, 28968, 28986, 28955, 29259, 29274, - {f: 2, c: 29320}, 29318, 29317, 29323, 29458, 29451, 29488, 29474, 29489, - 29491, 29479, 29490, 29485, 29478, 29475, 29493, 29452, 29742, 29740, - 29744, 29739, 29718, 29722, 29729, 29741, 29745, 29732, 29731, 29725, - 29737, 29728, 29746, 29947, 29999, 30063, 30060, 30183, 30170, 30177, - 30182, 30173, 30175, 30180, 30167, 30357, 30354, 30426, {f: 2, c: 30534}, - 30532, 30541, 30533, 30538, 30542, {f: 2, c: 30539}, 30686, 30700, 30816, - {f: 2, c: 30820}, 30812, 30829, 30833, 30826, 30830, 30832, 30825, 30824, - 30814, 30818, 31092, 31091, 31090, 31088, 31234, 31242, 31235, 31244, - 31236, 31385, 31462, 31460, 31562, 31559, 31556, 31560, 31564, 31566, - 31552, 31576, 31557, 31906, 31902, 31912, 31905, 32088, 32111, 32099, - 32083, 32086, 32103, 32106, 32079, 32109, 32092, 32107, 32082, 32084, - 32105, 32081, 32095, 32078, {f: 2, c: 32574}, {f: 2, c: 32613}, 32674, - {f: 2, c: 32672}, 32727, 32849, {f: 2, c: 32847}, 33022, 32980, 33091, - 33098, 33106, 33103, 33095, 33085, 33101, 33082, 33254, 33262, - {f: 3, c: 33271}, 33284, {f: 2, c: 33340}, 33343, 33397, 33595, - [33743, 60382], 33785, 33827, 33728, 33768, 33810, 33767, 33764, 33788, - 33782, 33808, 33734, 33736, 33771, 33763, 33727, 33793, 33757, 33765, - 33752, 33791, 33761, 33739, 33742, 33750, 33781, 33737, 33801, - [33807, 58332], 33758, 33809, 33798, 33730, 33779, 33749, 33786, 33735, - 33745, 33770, 33811, 33690, 33731, 33772, 33774, 33732, 33787, 33751, - 33762, 33819, 33755, 33790, 34520, 34530, 34534, 34515, 34531, 34522, - 34538, 34525, 34539, 34524, 34540, 34537, 34519, 34536, 34513, 34888, - 34902, 34901, 35002, 35031, 35001, 35000, 35008, 35006, 34998, 35004, - 34999, 35005, 34994, 35073, 35017, 35221, 35224, 35223, 35293, - {f: 2, c: 35290}, 35406, 35405, 35385, 35417, 35392, {f: 2, c: 35415}, - {f: 2, c: 35396}, 35410, 35400, 35409, 35402, 35404, 35407, 35935, 35969, - 35968, 36026, 36030, 36016, 36025, 36021, 36228, 36224, 36233, 36312, - 36307, 36301, 36295, 36310, 36316, 36303, 36309, 36313, 36296, 36311, - 36293, 36591, 36599, 36602, 36601, 36582, 36590, 36581, 36597, - {f: 2, c: 36583}, 36598, 36587, 36593, 36588, 36596, 36585, 36909, 36916, - 36911, 37126, 37164, [37124, 60367], 37119, 37116, 37128, 37113, 37115, - 37121, 37120, 37127, 37125, 37123, 37217, 37220, 37215, 37218, 37216, - 37377, 37386, 37413, 37379, 37402, 37414, 37391, 37388, 37376, 37394, - 37375, 37373, 37382, 37380, 37415, 37378, 37404, 37412, 37401, 37399, - 37381, 37398, 38267, 38285, 38284, 38288, 38535, 38526, {f: 2, c: 38536}, - 38531, 38528, 38594, 38600, 38595, 38641, 38640, 38764, 38768, 38766, - 38919, 39081, 39147, 40166, [12235, 40697], {f: 2, c: 20099}, 20150, 20669, - 20671, 20678, 20654, 20676, 20682, 20660, 20680, 20674, 20656, 20673, - 20666, 20657, 20683, 20681, 20662, 20664, 20951, 21114, 21112, - {f: 2, c: 21115}, 21955, 21979, 21964, 21968, 21963, 21962, 21981, - [21952, 64013], 21972, 21956, 21993, 21951, 21970, 21901, 21967, 21973, - 21986, 21974, 21960, 22002, 21965, 21977, 21954, 22292, 22611, 22632, - 22628, 22607, 22605, 22601, 22639, 22613, 22606, 22621, 22617, 22629, - 22619, 22589, 22627, 22641, 22780, 23239, 23236, 23243, 23226, 23224, - 23217, 23221, 23216, 23231, 23240, 23227, 23238, 23223, 23232, 23242, - 23220, 23222, 23245, 23225, 23184, 23510, {f: 2, c: 23512}, 23583, 23603, - 23921, 23907, 23882, 23909, 23922, 23916, 23902, 23912, 23911, 23906, - 24048, 24143, 24142, 24138, 24141, 24139, 24261, 24268, 24262, 24267, - 24263, 24384, 24495, 24493, 24823, {f: 2, c: 24905}, 24875, 24901, 24886, - 24882, 24878, 24902, 24879, 24911, 24873, 24896, 25120, 37224, 25123, - 25125, 25124, 25541, 25585, 25579, 25616, 25618, 25609, 25632, 25636, - 25651, 25667, 25631, 25621, 25624, 25657, 25655, {f: 2, c: 25634}, 25612, - 25638, 25648, 25640, 25665, 25653, 25647, 25610, 25626, 25664, 25637, - 25639, 25611, 25575, 25627, 25646, 25633, 25614, 25967, 26002, 26067, - 26246, 26252, 26261, 26256, 26251, 26250, 26265, 26260, 26232, 26400, - 26982, 26975, 26936, 26958, 26978, 26993, 26943, 26949, 26986, 26937, - 26946, 26967, 26969, 27002, {f: 2, c: 26952}, 26933, 26988, 26931, 26941, - 26981, 26864, 27000, 26932, 26985, 26944, 26991, 26948, 26998, 26968, - 26945, 26996, 26956, 26939, 26955, 26935, 26972, 26959, 26961, 26930, - 26962, 26927, 27003, 26940, 27462, 27461, 27459, 27458, 27464, 27457, - 27547, {f: 2, c: 27643}, 27641, {f: 2, c: 27639}, 28315, 28374, 28360, - 28303, 28352, 28319, {f: 2, c: 28307}, 28320, 28337, 28345, 28358, 28370, - 28349, 28353, 28318, 28361, 28343, 28336, 28365, 28326, 28367, 28338, - 28350, 28355, 28380, 28376, 28313, 28306, 28302, 28301, 28324, 28321, - 28351, 28339, 28368, 28362, 28311, 28334, 28323, 28999, 29012, 29010, - 29027, 29024, 28993, 29021, [29026, 61080], 29042, 29048, 29034, 29025, - 28994, 29016, 28995, 29003, 29040, 29023, 29008, 29011, 28996, 29005, - 29018, 29263, 29325, 29324, 29329, 29328, 29326, 29500, 29506, 29499, - 29498, 29504, 29514, 29513, 29764, {f: 2, c: 29770}, 29778, 29777, 29783, - 29760, {f: 2, c: 29775}, 29774, 29762, 29766, 29773, 29780, 29921, 29951, - 29950, 29949, 29981, 30073, 30071, 27011, 30191, 30223, 30211, 30199, - 30206, 30204, [30201, 60782], 30200, 30224, 30203, 30198, 30189, 30197, - 30205, 30361, 30389, 30429, 30549, {f: 2, c: 30559}, 30546, 30550, 30554, - 30569, 30567, 30548, 30553, 30573, 30688, 30855, 30874, 30868, 30863, - 30852, 30869, {f: 2, c: 30853}, 30881, 30851, 30841, 30873, 30848, 30870, - 30843, 31100, 31106, 31101, 31097, 31249, {f: 2, c: 31256}, 31250, 31255, - 31253, 31266, 31251, 31259, 31248, 31395, 31394, 31390, 31467, 31590, - 31588, 31597, 31604, 31593, 31602, 31589, 31603, 31601, 31600, 31585, - 31608, 31606, 31587, 31922, 31924, 31919, 32136, 32134, 32128, 32141, - 32127, 32133, 32122, 32142, 32123, 32131, 32124, 32140, 32148, 32132, - 32125, 32146, 32621, 32619, {f: 2, c: 32615}, 32620, 32678, 32677, 32679, - {f: 2, c: 32731}, 32801, 33124, 33120, 33143, 33116, 33129, 33115, 33122, - 33138, 26401, 33118, 33142, 33127, 33135, 33092, 33121, 33309, 33353, - 33348, 33344, 33346, 33349, 34033, 33855, 33878, 33910, 33913, 33935, - 33933, 33893, 33873, 33856, 33926, 33895, 33840, 33869, 33917, 33882, - 33881, 33908, 33907, 33885, 34055, 33886, 33847, 33850, 33844, 33914, - 33859, 33912, 33842, 33861, 33833, 33753, 33867, 33839, 33858, 33837, - 33887, 33904, 33849, 33870, 33868, 33874, 33903, 33989, 33934, 33851, - 33863, 33846, 33843, 33896, 33918, 33860, 33835, 33888, 33876, 33902, - 33872, 34571, 34564, 34551, 34572, 34554, 34518, 34549, 34637, 34552, - 34574, 34569, 34561, 34550, 34573, 34565, 35030, 35019, {f: 2, c: 35021}, - 35038, 35035, 35034, 35020, 35024, 35205, 35227, 35295, 35301, 35300, - 35297, 35296, 35298, 35292, 35302, 35446, 35462, 35455, 35425, 35391, - 35447, 35458, 35460, 35445, 35459, 35457, 35444, 35450, 35900, 35915, - 35914, 35941, 35940, 35942, 35974, {f: 2, c: 35972}, 36044, - {f: 2, c: 36200}, 36241, 36236, {f: 2, c: 36238}, 36237, {f: 2, c: 36243}, - 36240, 36242, 36336, 36320, 36332, 36337, 36334, 36304, 36329, 36323, - 36322, 36327, 36338, 36331, 36340, 36614, 36607, 36609, 36608, 36613, - {f: 2, c: 36615}, 36610, [36619, 60507], 36946, 36927, 36932, 36937, 36925, - 37136, 37133, 37135, 37137, 37142, 37140, 37131, 37134, {f: 2, c: 37230}, - 37448, 37458, 37424, 37434, 37478, 37427, 37477, 37470, 37507, 37422, - 37450, 37446, 37485, 37484, 37455, 37472, 37479, 37487, 37430, 37473, - 37488, 37425, 37460, 37475, 37456, 37490, 37454, 37459, 37452, 37462, - 37426, 38303, 38300, 38302, 38299, {f: 2, c: 38546}, 38545, 38551, 38606, - 38650, 38653, 38648, 38645, 38771, {f: 2, c: 38775}, 38770, 38927, - {f: 2, c: 38925}, 39084, 39158, 39161, 39343, 39346, 39344, 39349, 39597, - 39595, 39771, 40170, 40173, 40167, 40576, [12236, 40701], 20710, 20692, - 20695, 20712, 20723, 20699, 20714, 20701, 20708, 20691, 20716, 20720, - 20719, 20707, 20704, 20952, {f: 2, c: 21120}, 21225, 21227, 21296, 21420, - 22055, 22037, 22028, 22034, 22012, 22031, 22044, 22017, 22035, 22018, - 22010, 22045, 22020, 22015, 22009, 22665, 22652, 22672, 22680, 22662, - 22657, 22655, 22644, 22667, 22650, 22663, 22673, 22670, 22646, 22658, - 22664, 22651, 22676, 22671, 22782, 22891, 23260, 23278, 23269, 23253, - 23274, 23258, 23277, 23275, 23283, 23266, 23264, 23259, 23276, 23262, - 23261, 23257, 23272, 23263, 23415, 23520, 23523, 23651, 23938, 23936, - 23933, 23942, 23930, 23937, 23927, 23946, 23945, 23944, 23934, 23932, - 23949, 23929, 23935, {f: 2, c: 24152}, 24147, 24280, 24273, 24279, 24270, - 24284, 24277, 24281, 24274, 24276, 24388, 24387, 24431, 24502, 24876, - 24872, 24897, 24926, 24945, 24947, {f: 2, c: 24914}, 24946, 24940, 24960, - 24948, 24916, 24954, 24923, 24933, 24891, 24938, 24929, 24918, 25129, - 25127, 25131, 25643, 25677, 25691, 25693, 25716, 25718, {f: 2, c: 25714}, - 25725, 25717, 25702, 25766, 25678, 25730, 25694, 25692, 25675, 25683, - 25696, 25680, 25727, 25663, 25708, 25707, 25689, 25701, 25719, 25971, - 26016, 26273, 26272, 26271, 26373, 26372, 26402, 27057, 27062, 27081, - 27040, 27086, 27030, 27056, 27052, 27068, 27025, 27033, 27022, 27047, - 27021, 27049, 27070, 27055, 27071, 27076, 27069, 27044, 27092, 27065, - 27082, 27034, 27087, 27059, 27027, 27050, 27041, 27038, 27097, 27031, - 27024, 27074, 27061, 27045, 27078, 27466, 27469, 27467, {f: 3, c: 27550}, - {f: 2, c: 27587}, 27646, 28366, 28405, 28401, 28419, 28453, 28408, 28471, - 28411, 28462, 28425, 28494, {f: 2, c: 28441}, 28455, 28440, 28475, 28434, - 28397, 28426, 28470, 28531, 28409, 28398, 28461, 28480, 28464, 28476, - 28469, 28395, 28423, 28430, 28483, 28421, 28413, 28406, 28473, 28444, - 28412, 28474, 28447, 28429, 28446, 28424, 28449, 29063, 29072, 29065, - 29056, 29061, 29058, 29071, 29051, 29062, 29057, 29079, 29252, 29267, - 29335, 29333, 29331, 29507, 29517, 29521, 29516, 29794, 29811, 29809, - 29813, 29810, 29799, 29806, 29952, {f: 2, c: 29954}, 30077, 30096, 30230, - 30216, 30220, 30229, 30225, 30218, 30228, 30392, 30593, 30588, 30597, - 30594, 30574, 30592, 30575, 30590, 30595, 30898, 30890, 30900, 30893, - 30888, 30846, 30891, 30878, 30885, 30880, 30892, 30882, 30884, 31128, - {f: 2, c: 31114}, 31126, 31125, 31124, 31123, 31127, 31112, 31122, 31120, - 31275, 31306, 31280, 31279, 31272, 31270, 31400, {f: 2, c: 31403}, 31470, - 31624, 31644, 31626, 31633, 31632, 31638, 31629, 31628, 31643, 31630, - 31621, 31640, 21124, 31641, 31652, 31618, 31931, 31935, 31932, 31930, - 32167, 32183, 32194, 32163, 32170, 32193, 32192, 32197, 32157, 32206, - 32196, 32198, {f: 2, c: 32203}, 32175, 32185, 32150, 32188, 32159, 32166, - 32174, 32169, 32161, 32201, 32627, {f: 2, c: 32738}, 32741, 32734, 32804, - 32861, 32860, 33161, 33158, 33155, 33159, 33165, 33164, 33163, 33301, - 33943, 33956, 33953, 33951, 33978, 33998, 33986, 33964, 33966, 33963, - 33977, 33972, 33985, 33997, 33962, 33946, 33969, 34000, 33949, 33959, - 33979, 33954, 33940, 33991, 33996, 33947, 33961, 33967, [33960, 58327], - 34006, 33944, 33974, 33999, 33952, 34007, 34004, 34002, 34011, 33968, - 33937, 34401, 34611, 34595, 34600, 34667, 34624, 34606, 34590, 34593, - 34585, 34587, 34627, 34604, 34625, 34622, 34630, 34592, 34610, 34602, - 34605, 34620, 34578, 34618, 34609, 34613, 34626, {f: 2, c: 34598}, 34616, - 34596, 34586, 34608, 34577, 35063, 35047, {f: 2, c: 35057}, 35066, 35070, - 35054, 35068, 35062, 35067, 35056, 35052, 35051, 35229, 35233, 35231, - 35230, 35305, 35307, 35304, 35499, 35481, 35467, 35474, 35471, 35478, - 35901, {f: 2, c: 35944}, 36053, 36047, 36055, 36246, 36361, 36354, 36351, - 36365, 36349, 36362, 36355, 36359, 36358, 36357, 36350, 36352, 36356, - {f: 2, c: 36624}, 36622, 36621, 37155, 37148, 37152, 37154, 37151, 37149, - 37146, 37156, 37153, 37147, 37242, 37234, 37241, 37235, 37541, 37540, - 37494, 37531, 37498, 37536, 37524, 37546, 37517, 37542, 37530, 37547, - 37497, 37527, 37503, 37539, 37614, 37518, 37506, 37525, 37538, 37501, - 37512, 37537, 37514, 37510, 37516, 37529, 37543, 37502, 37511, 37545, - 37533, 37515, 37421, 38558, 38561, 38655, 38744, 38781, 38778, 38782, - 38787, 38784, 38786, 38779, 38788, 38785, 38783, 38862, 38861, 38934, - {f: 2, c: 39085}, 39170, 39168, 39175, 39325, 39324, 39363, 39353, 39355, - 39354, 39362, 39357, 39367, 39601, 39651, 39655, {f: 2, c: 39742}, - {f: 2, c: 39776}, 39775, {f: 2, c: 40177}, 40181, 40615, 20735, 20739, - 20784, 20728, {f: 2, c: 20742}, 20726, 20734, {f: 2, c: 20747}, 20733, - 20746, {f: 2, c: 21131}, 21233, 21231, 22088, 22082, 22092, 22069, 22081, - 22090, 22089, 22086, 22104, 22106, 22080, 22067, 22077, 22060, 22078, - 22072, 22058, 22074, 22298, 22699, 22685, 22705, 22688, 22691, 22703, - 22700, 22693, 22689, 22783, 23295, 23284, 23293, 23287, 23286, 23299, - 23288, 23298, 23289, 23297, 23303, 23301, 23311, 23655, 23961, 23959, - 23967, 23954, 23970, 23955, 23957, 23968, 23964, 23969, 23962, 23966, - 24169, 24157, 24160, 24156, 32243, 24283, 24286, 24289, 24393, 24498, - 24971, 24963, 24953, 25009, 25008, 24994, 24969, 24987, 24979, 25007, - 25005, 24991, 24978, 25002, 24993, 24973, 24934, 25011, 25133, 25710, - 25712, 25750, 25760, 25733, 25751, 25756, 25743, 25739, 25738, 25740, - 25763, 25759, 25704, 25777, 25752, 25974, 25978, 25977, 25979, - {f: 2, c: 26034}, 26293, 26288, 26281, 26290, 26295, 26282, 26287, 27136, - 27142, 27159, 27109, 27128, 27157, 27121, 27108, 27168, 27135, 27116, - 27106, 27163, 27165, 27134, 27175, 27122, 27118, 27156, 27127, 27111, - 27200, 27144, 27110, 27131, 27149, 27132, 27115, 27145, 27140, 27160, - 27173, 27151, 27126, 27174, 27143, 27124, 27158, 27473, 27557, 27555, - 27554, 27558, 27649, 27648, 27647, 27650, 28481, 28454, 28542, 28551, - 28614, 28562, 28557, 28553, 28556, 28514, 28495, 28549, 28506, 28566, - 28534, 28524, 28546, 28501, 28530, 28498, 28496, 28503, 28564, 28563, - 28509, 28416, 28513, 28523, 28541, 28519, 28560, 28499, 28555, 28521, - 28543, 28565, 28515, 28535, 28522, 28539, 29106, 29103, 29083, 29104, - 29088, 29082, 29097, 29109, 29085, 29093, 29086, 29092, 29089, 29098, - 29084, 29095, 29107, 29336, 29338, 29528, 29522, {f: 3, c: 29534}, 29533, - 29531, 29537, 29530, 29529, 29538, 29831, {f: 2, c: 29833}, 29830, 29825, - 29821, 29829, 29832, 29820, [29817, 58868], 29960, 29959, 30078, 30245, - 30238, 30233, 30237, 30236, 30243, 30234, 30248, 30235, {f: 3, c: 30364}, - 30363, 30605, 30607, 30601, 30600, 30925, 30907, 30927, 30924, 30929, - 30926, 30932, 30920, {f: 2, c: 30915}, 30921, 31130, 31137, 31136, 31132, - 31138, [31131, 59175], 27510, 31289, 31410, 31412, 31411, 31671, 31691, - 31678, 31660, 31694, 31663, 31673, 31690, 31669, 31941, 31944, 31948, - 31947, 32247, 32219, 32234, 32231, 32215, 32225, 32259, 32250, 32230, - 32246, 32241, 32240, 32238, 32223, 32630, 32684, 32688, 32685, 32749, - 32747, 32746, 32748, 32742, 32744, 32868, 32871, 33187, 33183, 33182, - 33173, 33186, 33177, 33175, 33302, 33359, 33363, 33362, 33360, 33358, - 33361, 34084, 34107, 34063, 34048, 34089, 34062, 34057, 34061, 34079, - 34058, 34087, 34076, 34043, 34091, 34042, 34056, 34060, 34036, 34090, - 34034, 34069, 34039, 34027, 34035, 34044, 34066, 34026, 34025, 34070, - 34046, 34088, 34077, 34094, 34050, 34045, 34078, 34038, 34097, 34086, - {f: 2, c: 34023}, 34032, 34031, 34041, 34072, 34080, 34096, 34059, 34073, - 34095, 34402, 34646, {f: 2, c: 34659}, 34679, 34785, 34675, 34648, 34644, - 34651, 34642, 34657, 34650, 34641, 34654, 34669, 34666, 34640, 34638, - 34655, 34653, 34671, 34668, 34682, 34670, 34652, 34661, 34639, 34683, - 34677, 34658, 34663, 34665, 34906, 35077, 35084, 35092, 35083, - {f: 3, c: 35095}, 35078, 35094, 35089, 35086, 35081, 35234, 35236, 35235, - 35309, 35312, 35308, 35535, 35526, 35512, 35539, 35537, {f: 2, c: 35540}, - 35515, 35543, 35518, 35520, 35525, 35544, 35523, 35514, 35517, 35545, - 35902, 35917, 35983, 36069, 36063, 36057, 36072, 36058, 36061, 36071, - 36256, 36252, 36257, 36251, 36384, 36387, 36389, 36388, 36398, 36373, - 36379, 36374, 36369, 36377, {f: 2, c: 36390}, 36372, 36370, 36376, 36371, - 36380, 36375, 36378, 36652, 36644, 36632, 36634, 36640, 36643, - {f: 2, c: 36630}, 36979, 36976, 36975, 36967, 36971, 37167, 37163, - {f: 2, c: 37161}, 37170, 37158, 37166, {f: 2, c: 37253}, 37258, - {f: 2, c: 37249}, 37252, 37248, 37584, {f: 2, c: 37571}, 37568, 37593, - 37558, 37583, 37617, 37599, 37592, 37609, 37591, 37597, 37580, 37615, - 37570, 37608, 37578, 37576, 37582, 37606, 37581, 37589, 37577, 37600, - 37598, 37607, 37585, 37587, 37557, 37601, 37669, 37574, 37556, 38268, - 38316, 38315, 38318, 38320, 38564, 38562, 38611, 38661, 38664, 38658, - 38746, 38794, 38798, 38792, 38864, 38863, 38942, 38941, 38950, 38953, - 38952, 38944, 38939, 38951, 39090, 39176, 39162, 39185, 39188, - {f: 2, c: 39190}, 39189, 39388, 39373, 39375, {f: 2, c: 39379}, 39374, - 39369, [39382, 60270], 39384, 39371, 39383, 39372, 39603, 39660, 39659, - 39667, 39666, 39665, 39750, 39747, 39783, 39796, 39793, 39782, 39798, - 39797, 39792, 39784, 39780, 39788, 40188, 40186, 40189, 40191, 40183, - 40199, 40192, 40185, 40187, 40200, 40197, 40196, 40579, 40659, - {f: 2, c: 40719}, 20764, 20755, 20759, 20762, 20753, 20958, 21300, 21473, - 22128, 22112, 22126, 22131, 22118, 22115, 22125, 22130, 22110, 22135, - 22300, 22299, 22728, 22717, 22729, 22719, 22714, 22722, 22716, 22726, - 23319, 23321, 23323, 23329, 23316, 23315, 23312, 23318, [23336, 59539], - 23322, 23328, 23326, 23535, 23980, 23985, 23977, 23975, 23989, 23984, - 23982, 23978, 23976, 23986, 23981, 23983, 23988, {f: 2, c: 24167}, 24166, - 24175, 24297, 24295, 24294, 24296, 24293, 24395, 24508, 24507, 24989, - 25000, 24982, 25029, 25012, 25030, 25025, 25036, 25018, 25023, 25016, - 24972, 25815, 25814, 25808, 25807, 25801, 25789, 25737, 25795, 25819, - 25843, 25817, 25907, 25983, 25980, 26018, 26312, 26302, 26304, - {f: 2, c: 26314}, 26319, 26301, 26299, 26298, 26316, 26403, 27188, 27238, - 27209, 27239, 27186, 27240, 27198, 27229, 27245, 27254, 27227, 27217, - 27176, 27226, 27195, 27199, 27201, 27242, 27236, 27216, 27215, 27220, - 27247, 27241, 27232, 27196, 27230, 27222, 27221, {f: 2, c: 27213}, 27206, - 27477, 27476, 27478, 27559, {f: 2, c: 27562}, 27592, 27591, 27652, 27651, - 27654, 28589, 28619, 28579, 28615, 28604, 28622, 28616, 28510, 28612, - 28605, 28574, 28618, 28584, 28676, 28581, 28590, 28602, 28588, 28586, - 28623, 28607, 28600, 28578, 28617, 28587, 28621, 28591, 28594, 28592, - 29125, 29122, 29119, 29112, 29142, {f: 2, c: 29120}, 29131, 29140, 29130, - 29127, 29135, 29117, 29144, 29116, 29126, {f: 2, c: 29146}, - {f: 2, c: 29341}, 29545, {f: 2, c: 29542}, 29548, 29541, 29547, 29546, - 29823, 29850, 29856, 29844, 29842, 29845, 29857, 29963, 30080, 30255, - 30253, 30257, 30269, 30259, 30268, 30261, 30258, 30256, 30395, 30438, - 30618, 30621, 30625, 30620, 30619, {f: 2, c: 30626}, 30613, 30617, 30615, - 30941, 30953, 30949, 30954, 30942, 30947, 30939, {f: 2, c: 30945}, 30957, - {f: 2, c: 30943}, 31140, 31300, 31304, 31303, 31414, 31416, 31413, 31409, - 31415, 31710, 31715, 31719, 31709, 31701, 31717, 31706, 31720, 31737, - 31700, 31722, 31714, 31708, 31723, 31704, 31711, 31954, 31956, 31959, - {f: 2, c: 31952}, 32274, 32289, 32279, 32268, {f: 2, c: 32287}, 32275, - 32270, 32284, 32277, 32282, 32290, 32267, 32271, 32278, 32269, 32276, - 32293, 32292, 32579, {f: 2, c: 32635}, 32634, 32689, 32751, 32810, 32809, - 32876, 33201, 33190, 33198, 33209, 33205, 33195, 33200, 33196, 33204, - 33202, 33207, 33191, 33266, {f: 3, c: 33365}, 34134, 34117, 34155, 34125, - 34131, 34145, 34136, 34112, 34118, 34148, 34113, 34146, 34116, 34129, - 34119, 34147, 34110, 34139, 34161, 34126, 34158, 34165, 34133, 34151, - 34144, 34188, 34150, 34141, 34132, 34149, 34156, 34403, 34405, 34404, - 34724, 34715, 34703, 34711, 34707, 34706, 34696, 34689, 34710, 34712, - 34681, 34695, 34723, 34693, {f: 2, c: 34704}, 34717, 34692, 34708, 34716, - 34714, 34697, 35102, 35110, 35120, {f: 2, c: 35117}, 35111, 35121, 35106, - 35113, 35107, 35119, 35116, 35103, 35313, 35552, 35554, 35570, - {f: 2, c: 35572}, 35549, 35604, 35556, 35551, 35568, 35528, 35550, 35553, - 35560, 35583, 35567, 35579, {f: 2, c: 35985}, 35984, 36085, 36078, 36081, - 36080, 36083, 36204, 36206, 36261, 36263, 36403, 36414, 36408, 36416, - 36421, 36406, {f: 2, c: 36412}, 36417, 36400, 36415, 36541, [36662, 60329], - 36654, 36661, 36658, 36665, 36663, 36660, 36982, 36985, 36987, 36998, - 37114, 37171, {f: 2, c: 37173}, 37267, {f: 2, c: 37264}, 37261, 37263, - 37671, 37662, 37640, 37663, 37638, 37647, 37754, 37688, 37692, 37659, - 37667, 37650, 37633, 37702, 37677, 37646, 37645, 37579, 37661, 37626, - 37651, 37625, 37623, 37684, 37634, 37668, 37631, 37673, 37689, 37685, - 37674, 37652, 37644, 37643, 37630, 37641, 37632, 37627, 37654, 38332, - 38349, 38334, {f: 2, c: 38329}, 38326, 38335, 38325, 38333, 38569, 38612, - 38667, 38674, 38672, 38809, 38807, 38804, 38896, 38904, 38965, 38959, - 38962, 39204, 39199, 39207, 39209, 39326, 39406, 39404, 39397, 39396, - 39408, 39395, 39402, 39401, 39399, 39609, 39615, 39604, 39611, 39670, - 39674, 39673, 39671, 39731, 39808, 39813, 39815, 39804, 39806, 39803, - 39810, 39827, 39826, 39824, 39802, 39829, 39805, 39816, 40229, 40215, - 40224, 40222, 40212, 40233, 40221, 40216, 40226, 40208, 40217, 40223, - 40584, {f: 2, c: 40582}, 40622, 40621, {f: 2, c: 40661}, 40698, 40722, - 40765, 20774, 20773, 20770, 20772, 20768, 20777, 21236, 22163, - {f: 2, c: 22156}, 22150, 22148, 22147, 22142, 22146, 22143, 22145, 22742, - 22740, 22735, 22738, 23341, 23333, 23346, 23331, 23340, 23335, 23334, - 23343, 23342, 23419, {f: 2, c: 23537}, 23991, 24172, 24170, 24510, 25027, - 25013, 25020, 25063, 25056, 25061, 25060, 25064, 25054, 25839, 25833, - 25827, 25835, 25828, 25832, 25985, 25984, 26038, 26074, 26322, 27277, - 27286, 27265, 27301, 27273, 27295, 27291, 27297, 27294, 27271, 27283, - 27278, 27285, 27267, 27304, 27300, 27281, 27263, 27302, 27290, 27269, - 27276, 27282, 27483, 27565, 27657, 28620, 28585, 28660, 28628, 28643, - 28636, 28653, 28647, 28646, 28638, 28658, 28637, 28642, 28648, 29153, - 29169, 29160, 29170, 29156, 29168, 29154, 29555, {f: 2, c: 29550}, 29847, - 29874, 29867, 29840, 29866, 29869, 29873, 29861, 29871, {f: 3, c: 29968}, - 29967, 30084, 30275, {f: 2, c: 30280}, 30279, 30372, 30441, 30645, 30635, - 30642, 30647, 30646, 30644, 30641, 30632, 30704, 30963, 30973, 30978, - {f: 2, c: 30971}, 30975, 30962, 30981, 30969, 30974, 30980, 31147, 31144, - 31324, 31323, 31318, 31320, 31316, 31322, 31422, {f: 2, c: 31424}, 31749, - 31759, 31730, 31744, 31743, 31739, 31758, 31732, 31755, 31731, 31746, - 31753, 31747, 31745, 31736, 31741, [31750, 58176], {f: 2, c: 31728}, 31760, - 31754, 31976, 32301, 32316, 32322, 32307, 38984, 32312, 32298, 32329, - 32320, 32327, 32297, 32332, 32304, 32315, 32310, 32324, 32314, 32581, - 32639, 32638, 32637, 32756, 32754, 32812, 33211, 33220, 33228, 33226, - 33221, 33223, 33212, 33257, 33371, 33370, 33372, 34179, 34176, 34191, - 34215, 34197, 34208, 34187, 34211, 34171, 34212, 34202, 34206, 34167, - 34172, 34185, 34209, 34170, 34168, 34135, 34190, 34198, 34182, 34189, - 34201, 34205, 34177, 34210, 34178, 34184, 34181, 34169, 34166, 34200, - 34192, 34207, 34408, 34750, 34730, 34733, 34757, 34736, 34732, 34745, - 34741, 34748, 34734, 34761, 34755, 34754, 34764, 34743, 34735, 34756, - 34762, 34740, 34742, 34751, 34744, 34749, 34782, 34738, 35125, 35123, - 35132, 35134, 35137, 35154, 35127, 35138, 35245, 35247, 35246, - {f: 2, c: 35314}, 35614, 35608, 35606, 35601, 35589, 35595, 35618, 35599, - 35602, 35605, 35591, 35597, 35592, 35590, 35612, 35603, 35610, 35919, - 35952, 35954, 35953, 35951, 35989, 35988, 36089, 36207, 36430, 36429, - 36435, 36432, 36428, 36423, 36675, 36672, 36997, 36990, 37176, 37274, - 37282, 37275, 37273, 37279, 37281, 37277, 37280, 37793, 37763, 37807, - 37732, 37718, 37703, 37756, 37720, 37724, 37750, 37705, {f: 2, c: 37712}, - 37728, 37741, 37775, 37708, 37738, 37753, 37719, 37717, 37714, 37711, - 37745, 37751, 37755, 37729, 37726, 37731, 37735, 37710, 37721, 38343, - 38336, 38345, 38339, 38341, 38327, 38574, 38576, 38572, 38688, 38687, - 38680, 38685, 38681, 38810, 38817, 38812, 38814, 38813, 38869, 38868, - 38897, 38977, 38980, 38986, 38985, 38981, 38979, 39205, {f: 2, c: 39211}, - 39210, 39219, 39218, 39215, 39213, 39217, 39216, 39320, 39331, 39329, - 39426, 39418, 39412, 39415, 39417, 39416, 39414, 39419, {f: 2, c: 39421}, - 39420, 39427, 39614, 39678, 39677, 39681, 39676, 39752, 39834, 39848, - 39838, 39835, 39846, 39841, 39845, 39844, 39814, 39842, 39840, 39855, - 40243, 40257, 40295, 40246, {f: 2, c: 40238}, 40241, 40248, 40240, 40261, - {f: 2, c: 40258}, 40254, 40247, 40256, 40253, 32757, 40237, 40586, 40585, - 40589, 40624, 40648, 40666, 40699, 40703, 40740, 40739, 40738, 40788, - [12245, 40864], 20785, {f: 2, c: 20781}, 22168, 22172, 22167, 22170, 22173, - 22169, 22896, 23356, {f: 2, c: 23657}, 24000, {f: 2, c: 24173}, 25048, - 25055, {f: 2, c: 25069}, 25073, 25066, 25072, 25067, 25046, 25065, 25855, - 25860, 25853, 25848, 25857, 25859, 25852, 26004, 26075, {f: 2, c: 26330}, - 26328, 27333, 27321, 27325, 27361, 27334, 27322, {f: 2, c: 27318}, 27335, - 27316, 27309, 27486, 27593, 27659, 28679, {f: 2, c: 28684}, 28673, 28677, - 28692, 28686, {f: 2, c: 28671}, 28667, 28710, 28668, 28663, 28682, - [29185, 60224], 29183, 29177, 29187, 29181, 29558, 29880, 29888, 29877, - 29889, 29886, 29878, 29883, 29890, 29972, 29971, 30300, 30308, 30297, - 30288, 30291, 30295, 30298, 30374, 30397, 30444, 30658, 30650, 30988, - {f: 2, c: 30995}, 30985, 30992, 30994, 30993, 31149, 31148, 31327, 31772, - 31785, 31769, 31776, 31775, 31789, 31773, 31782, 31784, 31778, 31781, - 31792, 32348, 32336, 32342, 32355, 32344, 32354, 32351, 32337, 32352, - 32343, 32339, 32693, 32691, {f: 2, c: 32759}, 32885, {f: 2, c: 33233}, - 33232, 33375, 33374, 34228, 34246, 34240, 34243, 34242, 34227, 34229, - 34237, 34247, 34244, 34239, 34251, 34254, 34248, 34245, 34225, 34230, - 34258, 34340, 34232, 34231, 34238, 34409, 34791, 34790, 34786, 34779, - 34795, 34794, 34789, 34783, 34803, 34788, 34772, 34780, 34771, 34797, - 34776, 34787, 34775, 34777, 34817, 34804, 34792, 34781, 35155, 35147, - 35151, 35148, 35142, {f: 2, c: 35152}, 35145, 35626, 35623, 35619, 35635, - 35632, 35637, 35655, 35631, 35644, 35646, 35633, 35621, 35639, 35622, - 35638, 35630, 35620, 35643, 35645, 35642, 35906, 35957, 35993, 35992, - 35991, 36094, 36100, 36098, 36096, 36444, 36450, 36448, 36439, 36438, - 36446, 36453, 36455, 36443, 36442, 36449, 36445, 36457, 36436, - {f: 3, c: 36678}, 36683, 37160, {f: 2, c: 37178}, 37182, 37288, 37285, - 37287, 37295, 37290, 37813, 37772, 37778, 37815, 37787, 37789, 37769, - 37799, 37774, 37802, 37790, 37798, 37781, 37768, 37785, 37791, 37760, - 37773, 37809, 37777, 37810, 37796, 37800, 37812, 37795, {f: 2, c: 38354}, - 38353, 38579, 38615, 38618, 24002, 38623, 38616, 38621, 38691, 38690, - 38693, 38828, 38830, 38824, 38827, 38820, 38826, 38818, 38821, 38871, - 38873, 38870, 38872, 38906, {f: 3, c: 38992}, 39096, 39233, 39228, 39226, - 39439, 39435, 39433, 39437, 39428, 39441, 39434, 39429, 39431, 39430, - 39616, 39644, 39688, {f: 2, c: 39684}, 39721, 39733, 39754, 39756, 39755, - 39879, 39878, 39875, 39871, 39873, 39861, 39864, 39891, 39862, 39876, - 39865, 39869, 40284, 40275, 40271, 40266, 40283, 40267, 40281, 40278, - 40268, 40279, 40274, 40276, 40287, 40280, 40282, 40590, 40588, 40671, - 40705, 40704, [40726, 58693], 40741, 40747, 40746, 40745, 40744, 40780, - 40789, {f: 2, c: 20788}, 21142, 21239, 21428, 22187, 22189, - {f: 2, c: 22182}, 22186, 22188, 22746, 22749, 22747, 22802, - {f: 3, c: 23357}, 24003, 24176, 24511, 25083, 25863, 25872, 25869, 25865, - 25868, 25870, 25988, 26078, 26077, 26334, 27367, 27360, 27340, 27345, - 27353, 27339, 27359, 27356, 27344, 27371, 27343, 27341, 27358, 27488, - 27568, 27660, 28697, 28711, 28704, 28694, 28715, {f: 3, c: 28705}, 28713, - 28695, 28708, 28700, 29196, 29194, 29191, 29186, 29189, {f: 2, c: 29349}, - 29348, 29347, 29345, 29899, 29893, 29879, 29891, 29974, 30304, - {f: 2, c: 30665}, 30660, 30705, 31005, 31003, 31009, 31004, 30999, 31006, - 31152, {f: 2, c: 31335}, 31795, 31804, 31801, 31788, 31803, 31980, 31978, - 32374, 32373, 32376, 32368, 32375, 32367, 32378, 32370, 32372, 32360, - 32587, 32586, 32643, 32646, 32695, {f: 2, c: 32765}, 32888, 33239, 33237, - 33291, 33380, 33377, 33379, 34283, 34289, 34285, 34265, 34273, 34280, - 34266, 34263, 34284, 34290, 34296, 34264, 34271, 34275, 34268, 34257, - 34288, 34278, 34287, 34270, 34274, 34816, 34810, 34819, {f: 2, c: 34806}, - 34825, 34828, 34827, 34822, 34812, 34824, 34815, 34826, 34818, 35170, - {f: 2, c: 35162}, 35159, 35169, 35164, 35160, 35165, 35161, 35208, 35255, - 35254, 35318, 35664, 35656, 35658, 35648, 35667, 35670, 35668, 35659, - 35669, 35665, 35650, 35666, 35671, 35907, 35959, 35958, 35994, - {f: 2, c: 36102}, 36105, 36268, 36266, 36269, 36267, 36461, 36472, 36467, - 36458, 36463, 36475, 36546, 36690, 36689, {f: 2, c: 36687}, 36691, 36788, - 37184, 37183, 37296, 37293, 37854, 37831, 37839, 37826, 37850, 37840, - 37881, 37868, 37836, 37849, 37801, 37862, 37834, 37844, 37870, 37859, - 37845, 37828, 37838, 37824, 37842, 37797, 37863, 38269, {f: 2, c: 38362}, - 38625, 38697, {f: 2, c: 38699}, 38696, 38694, 38835, 38839, 38838, - {f: 3, c: 38877}, 39004, 39001, 39005, 38999, 39103, 39101, 39099, 39102, - 39240, 39239, 39235, {f: 2, c: 39334}, 39450, 39445, 39461, 39453, 39460, - 39451, 39458, 39456, 39463, 39459, 39454, 39452, 39444, 39618, 39691, - 39690, 39694, 39692, 39735, {f: 2, c: 39914}, 39904, 39902, 39908, 39910, - 39906, 39920, 39892, 39895, 39916, 39900, 39897, 39909, 39893, 39905, - 39898, 40311, 40321, 40330, 40324, 40328, 40305, 40320, 40312, 40326, - {f: 2, c: 40331}, 40317, 40299, {f: 2, c: 40308}, 40304, 40297, 40325, - 40307, 40315, 40322, 40303, 40313, 40319, 40327, 40296, 40596, 40593, - 40640, 40700, 40749, {f: 2, c: 40768}, 40781, {f: 3, c: 40790}, 21303, - 22194, 22197, 22195, 22755, 23365, {f: 2, c: 24006}, {f: 2, c: 24302}, - {f: 2, c: 24512}, 25081, 25879, 25878, 25877, 25875, 26079, 26344, - {f: 2, c: 26339}, 27379, 27376, 27370, 27368, 27385, 27377, - {f: 2, c: 27374}, 28732, 28725, 28719, 28727, 28724, 28721, 28738, 28728, - 28735, 28730, 28729, 28714, 28736, 28731, 28723, 28737, {f: 2, c: 29203}, - 29352, 29565, 29564, 29882, 30379, 30378, 30398, 30445, 30668, - {f: 2, c: 30670}, 30669, 30706, 31013, 31011, {f: 2, c: 31015}, 31012, - 31017, 31154, 31342, {f: 2, c: 31340}, 31479, 31817, 31816, 31818, 31815, - 31813, 31982, 32379, 32382, 32385, 32384, 32698, 32767, 32889, 33243, - 33241, {f: 2, c: 33384}, 34338, 34303, 34305, 34302, 34331, 34304, 34294, - 34308, 34313, 34309, 34316, 34301, 34841, {f: 2, c: 34832}, 34839, 34835, - 34838, 35171, 35174, 35257, 35319, 35680, 35690, 35677, 35688, 35683, - 35685, 35687, 35693, 36270, 36486, 36488, 36484, 36697, {f: 2, c: 36694}, - 36693, 36696, 36698, 37005, 37187, 37185, 37303, 37301, {f: 2, c: 37298}, - 37899, 37907, 37883, 37920, 37903, 37908, 37886, 37909, 37904, 37928, - 37913, 37901, 37877, 37888, 37879, 37895, 37902, 37910, 37906, 37882, - 37897, 37880, 37948, 37898, 37887, 37884, 37900, 37878, 37905, 37894, - 38366, 38368, 38367, {f: 2, c: 38702}, 38841, 38843, {f: 2, c: 38909}, - 39008, {f: 2, c: 39010}, 39007, {f: 2, c: 39105}, 39248, 39246, 39257, - 39244, 39243, 39251, 39474, 39476, 39473, 39468, 39466, 39478, 39465, - 39470, 39480, 39469, 39623, 39626, 39622, 39696, 39698, 39697, 39947, - 39944, 39927, 39941, 39954, 39928, 40000, 39943, 39950, 39942, 39959, - 39956, 39945, 40351, 40345, 40356, 40349, 40338, 40344, 40336, 40347, - 40352, 40340, 40348, 40362, 40343, 40353, 40346, 40354, 40360, 40350, - 40355, 40383, 40361, 40342, {f: 2, c: 40358}, 40601, 40603, 40602, 40677, - 40676, 40679, 40678, 40752, 40750, 40795, 40800, 40798, 40797, 40793, - 40849, 20794, 20793, 21144, 21143, 22211, {f: 2, c: 22205}, 23368, 23367, - 24011, 24015, 24305, 25085, 25883, 27394, 27388, 27395, 27384, 27392, - {f: 2, c: 28739}, 28746, {f: 2, c: 28744}, {f: 2, c: 28741}, 29213, 29210, - 29209, 29566, 29975, 30314, 30672, 31021, 31025, 31023, 31828, 31827, - 31986, 32394, [32391, 60229], 32392, 32395, 32390, 32397, 32589, 32699, - 32816, 33245, 34328, 34346, 34342, 34335, 34339, 34332, 34329, 34343, - 34350, 34337, 34336, 34345, 34334, 34341, 34857, 34845, 34843, 34848, - 34852, 34844, 34859, 34890, 35181, 35177, 35182, 35179, 35322, 35705, - 35704, 35653, {f: 2, c: 35706}, 36112, 36116, 36271, 36494, 36492, 36702, - 36699, 36701, 37190, {f: 2, c: 37188}, 37305, 37951, 37947, 37942, 37929, - 37949, 37936, 37945, 37930, 37943, 37932, 37952, 37937, 38373, 38372, - 38371, 38709, 38714, 38847, 38881, 39012, 39113, 39110, 39104, 39256, - 39254, 39481, 39485, 39494, 39492, 39490, 39489, 39482, 39487, 39629, - 39701, {f: 2, c: 39703}, 39702, 39738, 39762, 39979, 39965, 39964, 39980, - 39971, {f: 2, c: 39976}, 39972, 39969, 40375, 40374, 40380, 40385, 40391, - 40394, 40399, 40382, 40389, 40387, 40379, 40373, 40398, {f: 2, c: 40377}, - 40364, 40392, 40369, 40365, 40396, 40371, 40397, 40370, 40570, 40604, - 40683, 40686, 40685, 40731, 40728, 40730, 40753, 40782, 40805, 40804, - 40850, 20153, 22214, 22213, 22219, 22897, {f: 2, c: 23371}, 24021, 24017, - 24306, 25889, 25888, 25894, 25890, 27403, {f: 2, c: 27400}, 27661, - {f: 3, c: 28757}, 28754, {f: 2, c: 29214}, 29353, 29567, 29912, 29909, - 29913, 29911, 30317, 30381, 31029, 31156, {f: 2, c: 31344}, 31831, 31836, - 31833, 31835, 31834, 31988, 31985, 32401, 32591, 32647, 33246, 33387, - {f: 2, c: 34356}, 34355, 34348, 34354, 34358, 34860, 34856, 34854, 34858, - 34853, 35185, 35263, 35262, 35323, 35710, 35716, 35714, 35718, 35717, - 35711, 36117, 36501, 36500, 36506, 36498, 36496, {f: 2, c: 36502}, 36704, - 36706, 37191, 37964, 37968, {f: 2, c: 37962}, 37967, 37959, 37957, - {f: 2, c: 37960}, 37958, 38719, 38883, 39018, 39017, 39115, 39252, 39259, - 39502, {f: 2, c: 39507}, 39500, 39503, 39496, 39498, 39497, 39506, 39504, - 39632, 39705, 39723, 39739, 39766, 39765, 40006, 40008, 39999, 40004, - 39993, 39987, 40001, 39996, 39991, 39988, 39986, 39997, 39990, 40411, - 40402, 40414, 40410, 40395, 40400, 40412, 40401, 40415, 40425, 40409, - 40408, 40406, 40437, 40405, 40413, 40630, 40688, 40757, 40755, 40754, - 40770, 40811, 40853, 40866, 20797, 21145, 22760, 22759, 22898, 23373, - 24024, 34863, 24399, 25089, {f: 2, c: 25091}, 25897, 25893, 26006, 26347, - {f: 2, c: 27409}, 27407, 27594, 28763, 28762, 29218, 29570, 29569, 29571, - 30320, 30676, 31847, 31846, 32405, 33388, 34362, 34368, 34361, 34364, - 34353, 34363, 34366, 34864, 34866, 34862, 34867, 35190, 35188, 35187, - 35326, 35724, 35726, 35723, 35720, 35909, 36121, 36504, 36708, 36707, - 37308, 37986, 37973, 37981, 37975, 37982, {f: 2, c: 38852}, 38912, 39510, - 39513, {f: 3, c: 39710}, 40018, 40024, 40016, 40010, 40013, 40011, 40021, - 40025, 40012, 40014, 40443, 40439, 40431, 40419, 40427, 40440, 40420, - 40438, 40417, 40430, 40422, 40434, [40432, 60370], 40418, 40428, 40436, - 40435, 40424, 40429, 40642, 40656, {f: 2, c: 40690}, 40710, 40732, 40760, - 40759, 40758, 40771, 40783, 40817, 40816, {f: 2, c: 40814}, 22227, 22221, - 23374, 23661, 25901, {f: 2, c: 26349}, 27411, 28767, 28769, 28765, 28768, - 29219, 29915, 29925, 30677, 31032, 31159, 31158, 31850, 32407, 32649, - 33389, 34371, 34872, 34871, 34869, 34891, {f: 2, c: 35732}, - {f: 3, c: 36510}, 36509, 37310, 37309, 37314, 37995, {f: 2, c: 37992}, - 38629, 38726, 38723, 38727, 38855, 38885, 39518, 39637, 39769, 40035, - 40039, 40038, 40034, 40030, 40032, 40450, 40446, 40455, 40451, 40454, - 40453, {f: 2, c: 40448}, 40457, 40447, 40445, 40452, 40608, 40734, 40774, - {f: 3, c: 40820}, 22228, 25902, 26040, {f: 2, c: 27416}, 27415, 27418, - 28770, 29222, 29354, {f: 2, c: 30680}, 31033, 31849, 31851, 31990, 32410, - 32408, 32411, 32409, {f: 2, c: 33248}, {f: 3, c: 34374}, {f: 2, c: 35193}, - 35196, 35195, 35327, {f: 2, c: 35736}, 36517, 36516, 36515, 37998, 37997, - 37999, 38001, 38003, 38729, 39026, 39263, 40040, 40046, 40045, 40459, - 40461, 40464, 40463, 40466, 40465, 40609, 40693, 40713, 40775, 40824, - 40827, 40826, 40825, 22302, 28774, 31855, 34876, 36274, 36518, 37315, - 38004, 38008, 38006, 38005, 39520, [39726, 60830], 40052, 40051, 40049, - 40053, 40468, 40467, 40694, 40714, 40868, 28776, 28773, 31991, 34410, - 34878, 34877, 34879, 35742, 35996, 36521, 36553, 38731, {f: 2, c: 39027}, - 39116, 39265, 39339, 39524, {f: 2, c: 39526}, 39716, 40469, 40471, 40776, - 25095, 27422, 29223, 34380, 36520, 38018, {f: 2, c: 38016}, 39529, 39528, - 40473, 34379, 35743, 38019, 40057, 40631, 30325, 39531, 40058, 40477, - {f: 2, c: 28777}, 29225, 40612, 40830, 40777, 40856, {s: 97}, 65075, 0, - 65076, 65103, [168, 776, 63208], [710, 63209, 65342], [12541, 63210], - [12542, 63211], [12445, 63212], [12446, 63213], 0, [12293, 63216], - [12294, 63217], [12295, 63218], [12540, 63219], [63220, 65339], - [63221, 65341], [10045, 63222], [12353, 63223], [12354, 63224], - [12355, 63225], [12356, 63226], [12357, 63227], [12358, 63228], - [12359, 63229], [12360, 63230], [12361, 63231], [12362, 63232], - [12363, 63233], [12364, 63234], [12365, 63235], [12366, 63236], - [12367, 63237], [12368, 63238], [12369, 63239], [12370, 63240], - [12371, 63241], [12372, 63242], [12373, 63243], [12374, 63244], - [12375, 63245], [12376, 63246], [12377, 63247], [12378, 63248], - [12379, 63249], [12380, 63250], [12381, 63251], [12382, 63252], - [12383, 63253], [12384, 63254], [12385, 63255], [12386, 63256], - [12387, 63257], [12388, 63258], [12389, 63259], [12390, 63260], - [12391, 63261], [12392, 63262], [12393, 63263], [12394, 63264], - [12395, 63265], [12396, 63266], [12397, 63267], [12398, 63268], - [12399, 63269], [12400, 63270], [12401, 63271], [12402, 63272], - [12403, 63273], [12404, 63274], [12405, 63275], [12406, 63276], - [12407, 63277], [12408, 63278], [12409, 63279], [12410, 63280], - [12411, 63281], [12412, 63282], [12413, 63283], [12414, 63284], - [12415, 63285], [12416, 63286], [12417, 63287], [12418, 63288], - [12419, 63289], [12420, 63290], [12421, 63291], [12422, 63292], - [12423, 63293], [12424, 63294], [12425, 63295], [12426, 63296], - [12427, 63297], [12428, 63298], [12429, 63299], [12430, 63300], - [12431, 63301], [12432, 63302], [12433, 63303], [12434, 63304], - [12435, 63305], [12449, 63306], [12450, 63307], [12451, 63308], - [12452, 63309], [12453, 63310], [12454, 63311], [12455, 63312], - [12456, 63313], [12457, 63314], [12458, 63315], [12459, 63316], - [12460, 63317], [12461, 63318], [12462, 63319], [12463, 63320], - [12464, 63321], [12465, 63322], [12466, 63323], [12467, 63324], - [12468, 63325], [12469, 63326], [12470, 63327], [12471, 63328], - [12472, 63329], [12473, 63330], [12474, 63331], [12475, 63332], - [12476, 63333], [12477, 63334], [12478, 63335], [12479, 63336], - [12480, 63337], [12481, 63338], [12482, 63339], [12483, 63340], - [12484, 63341], [12485, 63342], [12486, 63343], [12487, 63344], - [12488, 63345], [12489, 63346], [12490, 63347], [12491, 63348], - [12492, 63349], [12493, 63350], [12494, 63351], [12495, 63352], - [12496, 63353], [12497, 63354], [12498, 63355], [12499, 63356], - [12500, 63357], [12501, 63358], [12502, 63359], [12503, 63360], - [12504, 63361], [12505, 63362], [12506, 63363], [12507, 63364], - [12508, 63365], [12509, 63366], [12510, 63367], [12511, 63368], - [12512, 63369], [12513, 63370], [12514, 63371], [12515, 63372], - [12516, 63373], [12517, 63374], [12518, 63375], [12519, 63376], - [12520, 63377], [12521, 63378], [12522, 63379], [12523, 63380], - [12524, 63381], [12525, 63382], [12526, 63383], [12527, 63384], - [12528, 63385], [12529, 63386], [12530, 63387], [12531, 63388], - [12532, 63389], [12533, 63390], [12534, 63391], [1040, 63392], - [1041, 63393], [1042, 63394], [1043, 63395], [1044, 63396], [1045, 63397], - [1025, 63398], [1046, 63399], [1047, 63400], [1048, 63401], [1049, 63402], - [1050, 63403], [1051, 63404], [1052, 63405], [1053, 63406], [1054, 63407], - [1055, 63408], [1056, 63409], [1057, 63410], [1058, 63411], [1059, 63412], - [1060, 63413], [1061, 63414], [1062, 63415], [1063, 63416], [1064, 63417], - [1065, 63418], [1066, 63419], [1067, 63420], [1068, 63421], [1069, 63422], - [1070, 63423], [1071, 63424], [1072, 63425], [1073, 63426], [1074, 63427], - [1075, 63428], [1076, 63429], [1077, 63430], [1105, 63431], [1078, 63432], - [1079, 63433], [1080, 63434], [1081, 63435], [1082, 63436], [1083, 63437], - [1084, 63438], [1085, 63439], [1086, 63440], [1087, 63441], [1088, 63442], - [1089, 63443], [1090, 63444], [1091, 63445], [1092, 63446], [1093, 63447], - [1094, 63448], [1095, 63449], [1096, 63450], [1097, 63451], [1098, 63452], - [1099, 63453], [1100, 63454], [1101, 63455], [1102, 63456], [1103, 63457], - [8679, 63458], [8632, 63459], [8633, 63460], [20033, 63461], - [63462, 131276], [20058, 63463], [63464, 131210], [20994, 63465], - [17553, 63466], 63467, [20872, 63468], [13853, 63469], [63470, 161287], - {s: 40}, [172, 63511, 65506], [63512, 65508], [63513, 65287], - [63514, 65282], [12849, 63515], [8470, 63516], [8481, 63517], 30849, - [37561, 58501], 35023, 22715, 24658, 31911, 23290, 9556, 9574, 9559, 9568, - 9580, 9571, 9562, 9577, 9565, 9554, 9572, 9557, {s: 3}, 9560, 9575, 9563, - 9555, 9573, 9558, 9567, 9579, 9570, 9561, 9576, 9564, 9553, {s: 5}, 9619, - {s: 26}, [58129, 147159], [22462, 58130], [58131, 159443], [28990, 58132], - [58133, 153568], [27042, 58135], [58136, 166889], [23412, 58137], - [31305, 58138], [58139, 153825], [58140, 169177], [31333, 58141], - [31357, 58142], [58143, 154028], [31419, 58144], [31408, 58145], - [31426, 58146], [31427, 58147], [29137, 58148], [58149, 156813], - [16842, 58150], [31450, 58151], [31453, 58152], [31466, 58153], - [16879, 58154], [21682, 58155], [58156, 154625], [31499, 58157], - [31573, 58158], [31529, 58159], [58160, 152334], [58161, 154878], - [31650, 58162], [31599, 58163], [33692, 58164], [58165, 154548], - [58166, 158847], [31696, 58167], [33825, 58168], [31634, 58169], 0, - [58171, 154912], 0, [33938, 58174], [31738, 58175], 0, [31797, 58177], - [58178, 154817], [31812, 58179], [31875, 58180], [58181, 149634], - [31910, 58182], [58184, 148856], [31945, 58185], [31943, 58186], - [31974, 58187], 0, [31987, 58189], [31989, 58190], [32359, 58192], - [17693, 58193], [58194, 159300], [32093, 58195], [58196, 159446], - [32137, 58198], [32171, 58199], [28981, 58200], [32179, 58201], 32214, - [58203, 147543], [58204, 155689], [32228, 58205], [15635, 58206], - [32245, 58207], [58208, 137209], [32229, 58209], [58210, 164717], 0, - [58212, 155937], [58213, 155994], [32366, 58214], 0, [17195, 58216], - [37996, 58217], [32295, 58218], [32576, 58219], [32577, 58220], - [32583, 58221], [31030, 58222], [58223, 156368], [39393, 58224], - [32663, 58225], [58226, 156497], [32675, 58227], [58228, 136801], - [58229, 131176], [17756, 58230], [58231, 145254], [58233, 164666], - [32762, 58234], [58235, 156809], 0, [32776, 58237], [32797, 58238], 0, - [32815, 58240], [58241, 172167], [58242, 158915], [32827, 58243], - [32828, 58244], [32865, 58245], [58246, 141076], [18825, 58247], - [58248, 157222], [58249, 146915], [58250, 157416], [26405, 58251], - [32935, 58252], [58253, 166472], [33031, 58254], [33050, 58255], - [22704, 58256], [58257, 141046], [27775, 58258], [58259, 156824], - [25831, 58261], [58262, 136330], [33304, 58263], [58264, 137310], - [27219, 58265], [58266, 150117], [58267, 150165], [17530, 58268], - [33321, 58269], [58271, 158290], [58272, 146814], [20473, 58273], - [58274, 136445], [34018, 58275], [33634, 58276], 0, [58278, 149927], - [58279, 144688], [58280, 137075], [58281, 146936], [33450, 58282], - [26907, 58283], [58284, 194964], [16859, 58285], [34123, 58286], - [33488, 58287], [33562, 58288], [58289, 134678], [58290, 137140], - [14017, 58291], [58292, 143741], [58293, 144730], [33403, 58294], - [33506, 58295], [33560, 58296], [58297, 147083], [58298, 159139], - [58299, 158469], [58300, 158615], [58301, 144846], [15807, 58302], - [33565, 58303], [21996, 58304], [33669, 58305], [17675, 58306], - [58307, 159141], [33708, 58308], 0, [33747, 58310], [58312, 159444], - [27223, 58313], [34138, 58314], [13462, 58315], [58316, 159298], - [33880, 58318], [58319, 154596], [33905, 58320], [15827, 58321], - [17636, 58322], [27303, 58323], [33866, 58324], [31064, 58326], 0, - [58328, 158614], [58329, 159351], [58330, 159299], [34014, 58331], 0, - [33681, 58333], [17568, 58334], [33939, 58335], [34020, 58336], - [58337, 154769], [16960, 58338], [58339, 154816], [17731, 58340], - [34100, 58341], [23282, 58342], 0, [17703, 58344], [34163, 58345], - [17686, 58346], [26559, 58347], [34326, 58348], [58349, 165413], - [58350, 165435], [34241, 58351], [58352, 159880], [34306, 58353], - [58354, 136578], [58355, 159949], [58356, 194994], [17770, 58357], - [34344, 58358], [13896, 58359], [58360, 137378], [21495, 58361], - [58362, 160666], [34430, 58363], 0, [58365, 172280], [34798, 58366], - [58367, 142375], [34737, 58368], [34778, 58369], [34831, 58370, 60990], - [22113, 58371], [34412, 58372], [26710, 58373], [17935, 58374], - [34885, 58375], [34886, 58376], [58377, 161248], [58378, 146873], - [58379, 161252], [34910, 58380], [34972, 58381], [18011, 58382], - [34996, 58383], [34997, 58384], [35013, 58386], [58388, 161551], - [35207, 58389], {s: 3}, [35239, 58393], [35260, 58394], [58395, 166437], - [35303, 58396], [58397, 162084], [58398, 162493], [35484, 58399], - [30611, 58400], [37374, 58401], [35472, 58402], [58403, 162393], - [31465, 58404], [58405, 162618], [18195, 58407], [58408, 162616], - [29052, 58409], [35596, 58410], [35615, 58411], [58412, 152624], - [58413, 152933], [35647, 58414], 0, [35661, 58416], [35497, 58417], - [58418, 150138], [35728, 58419], [35739, 58420], [35503, 58421], - [58422, 136927], [17941, 58423], [34895, 58424], [35995, 58425], - [58426, 163156], [58427, 163215], [58428, 195028], [14117, 58429], - [58430, 163155], [36054, 58431], [58432, 163224], [58433, 163261], - [36114, 58434], [36099, 58435], [58436, 137488], [36059, 58437], - [28764, 58438], [36113, 58439], [16080, 58441], 0, [36265, 58443], - [58444, 163842], [58445, 135188], [58446, 149898], [15228, 58447], - [58448, 164284], [58449, 160012], [31463, 58450], [36525, 58451], - [36534, 58452], [36547, 58453], [37588, 58454], [36633, 58455], - [36653, 58456], [58457, 164709], [58458, 164882], [36773, 58459], - [37635, 58460], [58461, 172703], [58462, 133712], [36787, 58463], 0, - [58465, 166366], [58466, 165181], [58467, 146875], [24312, 58468], - [58469, 143970], [36857, 58470], 0, [58474, 140069], [14720, 58475], - [58476, 159447], [36919, 58477], [58478, 165180], [58479, 162494], - [36961, 58480], [58481, 165228], [58482, 165387], [37032, 58483], - [58484, 165651], [37060, 58485], [58486, 165606], [37038, 58487], 0, - [37223, 58489], [37289, 58491], [37316, 58492], [31916, 58493], - [58494, 166195], [58495, 138889], [37390, 58496], [27807, 58497], - [37441, 58498], [37474, 58499], [58500, 153017], [58502, 166598], - [58503, 146587], [58504, 166668], [58505, 153051], [58506, 134449], - [37676, 58507], [37739, 58508], [58509, 166625], [58510, 166891], - [23235, 58512], [58513, 166626], [58514, 166629], [18789, 58515], - [37444, 58516], [58517, 166892], [58518, 166969], [58519, 166911], - [37747, 58520], [37979, 58521], [36540, 58522], [38277, 58523], - [38310, 58524], [37926, 58525], [38304, 58526], [28662, 58527], - [17081, 58528], [58530, 165592], [58531, 135804], [58532, 146990], - [18911, 58533], [27676, 58534], [38523, 58535], [38550, 58536], - [16748, 58537], [38563, 58538], [58539, 159445], [25050, 58540], 58541, - [30965, 58542], [58543, 166624], [38589, 58544], [21452, 58545], - [18849, 58546], [58547, 158904], [58548, 131700], [58549, 156688], - [58550, 168111], [58551, 168165], [58552, 150225], [58553, 137493], - [58554, 144138], [38705, 58555], [34370, 58556], [38710, 58557], - [18959, 58558], [17725, 58559], [17797, 58560], [58561, 150249], - [28789, 58562], [23361, 58563], [38683, 58564], 0, [58566, 168405], - [38743, 58567], [23370, 58568], [58569, 168427], [38751, 58570], - [37925, 58571], [20688, 58572], [58573, 143543], [58574, 143548], - [38793, 58575], [38815, 58576], [38833, 58577], [38846, 58578], - [38848, 58579], [38866, 58580], [38880, 58581], [58582, 152684], - [38894, 58583], [29724, 58584], [58585, 169011], 0, [38901, 58587], - [58588, 168989], [58589, 162170], [19153, 58590], [38964, 58591], - [38963, 58592], [38987, 58593], [39014, 58594], [15118, 58595], - [58596, 160117], [15697, 58597], [58598, 132656], [58599, 147804], - [58600, 153350], [39114, 58601], [39095, 58602], [39112, 58603], - [39111, 58604], [19199, 58605], [58606, 159015], [58607, 136915], - [21936, 58608], [39137, 58609], [39142, 58610], [39148, 58611], - [37752, 58612], [39225, 58613], [58614, 150057], [19314, 58615], - [58616, 170071], [58617, 170245], [39413, 58618], [39436, 58619], - [39483, 58620], [39440, 58621], [39512, 58622], [58623, 153381], - [14020, 58624], [58625, 168113], [58626, 170965], [39648, 58627], - [39650, 58628], [58629, 170757], [39668, 58630], [19470, 58631], - [39700, 58632], [39725, 58633], [58634, 165376], [20532, 58635], - [39732, 58636], [14531, 58638], [58639, 143485], [39760, 58640], - [39744, 58641], [58642, 171326], [23109, 58643], [58644, 137315], - [39822, 58645], [39938, 58647], [39935, 58648], [39948, 58649], - [58650, 171624], [40404, 58651], [58652, 171959], [58653, 172434], - [58654, 172459], [58655, 172257], [58656, 172323], [58657, 172511], - [40318, 58658], [40323, 58659], [58660, 172340], [40462, 58661], - [40388, 58663], [58665, 172435], [58666, 172576], [58667, 137531], - [58668, 172595], [40249, 58669], [58670, 172217], [58671, 172724], - [40592, 58672], [40597, 58673], [40606, 58674], [40610, 58675], - [19764, 58676], [40618, 58677], [40623, 58678], [58679, 148324], - [40641, 58680], [15200, 58681], [14821, 58682], [15645, 58683], - [20274, 58684], [14270, 58685], [58686, 166955], [40706, 58687], - [40712, 58688], [19350, 58689], [37924, 58690], [58691, 159138], - [40727, 58692, 60836], 0, [40761, 58694], [22175, 58695], [22154, 58696], - [40773, 58697], [39352, 58698], [58699, 168075], [38898, 58700], - [33919, 58701], 0, [40809, 58703], [31452, 58704], [40846, 58705], - [29206, 58706], [19390, 58707], [58708, 149877], [58709, 149947], - [29047, 58710], [58711, 150008], [58712, 148296], [58713, 150097], - [29598, 58714], [58715, 166874], [58716, 137466], [31135, 58717], - [58718, 166270], [58719, 167478], [37737, 58720], [37875, 58721], - [58722, 166468], [37612, 58723], [37761, 58724], [37835, 58725], - [58726, 166252], [58727, 148665], [29207, 58728], [16107, 58729], - [30578, 58730], [31299, 58731], [28880, 58732], [58733, 148595], - [58734, 148472], [29054, 58735], [58736, 137199], [28835, 58737], - [58738, 137406], [58739, 144793], [16071, 58740], [58741, 137349], - [58742, 152623], [58743, 137208], [14114, 58744], [58745, 136955], - [58746, 137273], [14049, 58747], [58748, 137076], [58749, 137425], - [58750, 155467], [14115, 58751], [58752, 136896], [22363, 58753], - [58754, 150053], [58755, 136190], [58756, 135848], [58757, 136134], - [58758, 136374], [34051, 58759, 58761], [58760, 145062], 0, [33877, 58762], - [58763, 149908], [58764, 160101], [58765, 146993], [58766, 152924], - [58767, 147195], [58768, 159826], [17652, 58769], [58770, 145134], - [58771, 170397], [58772, 159526], [26617, 58773], [14131, 58774], - [15381, 58775], [15847, 58776], [22636, 58777], [58778, 137506], - [26640, 58779], [16471, 58780], [58781, 145215], [58782, 147681], - [58783, 147595], [58784, 147727], [58785, 158753], [21707, 58786], - [22174, 58787], [58788, 157361], [22162, 58789], [58790, 135135], - [58791, 134056], [58792, 134669], 0, [58794, 166675], [37788, 58795], - [20216, 58796], [20779, 58797], [14361, 58798], [58799, 148534], - [20156, 58800], [58801, 132197], 0, [20299, 58803], [20362, 58804], - [58805, 153169], [23144, 58806], [58807, 131499], [58808, 132043], - [14745, 58809], [58810, 131850], [58811, 132116], [13365, 58812], - [20265, 58813], [58814, 131776], [58815, 167603], [58816, 131701], - [35546, 58817], [58818, 131596], [20120, 58819], [20685, 58820], - [20749, 58821], [20386, 58822], [20227, 58823], [58824, 150030], - [58825, 147082], [20290, 58826], [20526, 58827], [20588, 58828], - [20609, 58829], [20428, 58830], [20453, 58831], [20568, 58832], - [20732, 58833], [28278, 58838], [58839, 144789], [58840, 147001], - [58841, 147135], [28018, 58842], [58843, 137348], [58844, 147081], - [20904, 58845], [20931, 58846], [58847, 132576], [17629, 58848], - [58849, 132259], [58850, 132242], [58851, 132241], [36218, 58852], - [58853, 166556], [58854, 132878], [21081, 58855], [21156, 58856], - [58857, 133235], [21217, 58858], 0, [18042, 58860], [29068, 58861], - [58862, 148364], [58863, 134176], [58864, 149932], [58865, 135396], - [27089, 58866], [58867, 134685], 0, [16094, 58869], [29849, 58870], - [29716, 58871], [29782, 58872], [29592, 58873], [19342, 58874], - [58875, 150204], [58876, 147597], [21456, 58877], [13700, 58878], - [29199, 58879], [58880, 147657], [21940, 58881], [58882, 131909], - [21709, 58883], [58884, 134086], [22301, 58885], [37469, 58886], - [38644, 58887], [22493, 58889], [22413, 58890], [22399, 58891], - [13886, 58892], [22731, 58893], [23193, 58894], [58895, 166470], - [58896, 136954], [58897, 137071], [58898, 136976], [23084, 58899], - [22968, 58900], [23166, 58902], [23247, 58903], [23058, 58904], - [58905, 153926], [58906, 137715], [58907, 137313], [58908, 148117], - [14069, 58909], [27909, 58910], [29763, 58911], [23073, 58912], - [58913, 155267], [23169, 58914], [58915, 166871], [58916, 132115], - [37856, 58917], [29836, 58918], [58919, 135939], [28933, 58920], - [18802, 58921], [37896, 58922], [58923, 166395], [37821, 58924], - [14240, 58925], [23582, 58926], [23710, 58927], [24158, 58928], - [24136, 58929], [58930, 137622], [58931, 137596], [58932, 146158], - [24269, 58933], [23375, 58934], [58935, 137475], [58936, 137476], - [14081, 58937], [58938, 137376], [14045, 58939], [58940, 136958], - [14035, 58941], [33066, 58942], [58943, 166471], [58944, 138682], - [58945, 144498], [58946, 166312], [24332, 58947, 60916], [24334, 58948], - [58949, 137511], [58950, 137131], [23147, 58951], [58952, 137019], - [23364, 58953], [58955, 161277], [34912, 58956], [24702, 58957], - [58958, 141408], [58959, 140843], [24539, 58960], [16056, 58961], - [58962, 140719], [58963, 140734], [58964, 168072], [58965, 159603], - [25024, 58966], [58967, 131134], [58968, 131142], [58969, 140827], - [24985, 58970], [24984, 58971], [24693, 58972], [58973, 142491], - [58974, 142599], [58975, 149204], [58976, 168269], [25713, 58977], - [58978, 149093], [58979, 142186], [14889, 58980], [58981, 142114], - [58982, 144464], [58983, 170218], [58984, 142968], [25399, 58985], - [25782, 58987], [25393, 58988], [25553, 58989], [58990, 149987], - [58991, 142695], [25252, 58992], [58993, 142497], [25659, 58994], - [25963, 58995], [26994, 58996], [15348, 58997], [58998, 143502], - [58999, 144045], [59000, 149897], [59001, 144043], [21773, 59002], - [59003, 144096], [59004, 137433], [59005, 169023], [26318, 59006], - [59007, 144009], [59008, 143795], [15072, 59009], [59011, 152964], - [59012, 166690], [59013, 152975], [59014, 136956], [59015, 152923], - [59016, 152613], [30958, 59017], [59018, 143619], [59019, 137258], - [59020, 143924], [13412, 59021], [59022, 143887], [59023, 143746], - [59024, 148169], [26254, 59025], [59026, 159012], [26219, 59027], - [19347, 59028], [26160, 59029], [59030, 161904], [59031, 138731], - [26211, 59032], [59033, 144082], [59034, 144097], [26142, 59035], - [59036, 153714], [14545, 59037], [59038, 145466], [59039, 145340], - [15257, 59040], [59041, 145314], [59042, 144382], [29904, 59043], - [15254, 59044], [59046, 149034], [26806, 59047], 0, [15300, 59049], - [27326, 59050], [59052, 145365], [59053, 148615], [27187, 59054], - [27218, 59055], [27337, 59056], [27397, 59057], [59058, 137490], - [25873, 59059], [26776, 59060], [27212, 59061], [15319, 59062], - [27258, 59063], [27479, 59064], [59065, 147392], [59066, 146586], - [37792, 59067], [37618, 59068], [59069, 166890], [59070, 166603], - [37513, 59071], [59072, 163870], [59073, 166364], [37991, 59074], - [28069, 59075], [28427, 59076], 0, [59079, 147327], [15759, 59080], - [28164, 59081], [59082, 147516], [23101, 59083], [28170, 59084], - [22599, 59085], [27940, 59086], [30786, 59087], [28987, 59088], - [59089, 148250], [59090, 148086], [28913, 59091], [29264, 59092, 61085], - [29319, 59093], [29332, 59094], [59095, 149391], [59096, 149285], - [20857, 59097], [59098, 150180], [59099, 132587], [29818, 59100], - [59101, 147192], [59102, 144991], [59103, 150090], [59104, 149783], - [59105, 155617], [16134, 59106], [16049, 59107], [59108, 150239], - [59109, 166947], [59110, 147253], [24743, 59111], [16115, 59112], - [29900, 59113], [29756, 59114], [37767, 59115], [29751, 59116], - [17567, 59117], [59118, 159210], [17745, 59119], [30083, 59120], - [16227, 59121], [59122, 150745], [59123, 150790], [16216, 59124], - [30037, 59125], [30323, 59126], [59127, 173510], 0, [29800, 59129, 61070], - [59130, 166604], [59131, 149931], [59132, 149902], [15099, 59133], - [15821, 59134], [59135, 150094], [16127, 59136], [59137, 149957], - [59138, 149747], [37370, 59139], [22322, 59140], [37698, 59141], - [59142, 166627], [59143, 137316], [20703, 59144], [59145, 152097], - [59146, 152039], [30584, 59147], [59148, 143922], [30478, 59149], - [30479, 59150], [30587, 59151], [59152, 149143], [59153, 145281], - [14942, 59154], [59155, 149744], [29752, 59156], [29851, 59157], - [16063, 59158], [59159, 150202], [59160, 150215], [16584, 59161], - [59162, 150166], [59163, 156078], [37639, 59164], [59165, 152961], - [30750, 59166], [30861, 59167], [30856, 59168], [30930, 59169], - [29648, 59170], [31065, 59171], [59172, 161601], [59173, 153315], - [16654, 59174], 0, 0, [31141, 59177], [27181, 59178], [59179, 147194], - [31290, 59180], [31220, 59181], [16750, 59182], [59183, 136934], - [16690, 59184], [37429, 59185], [31217, 59186], [59187, 134476], - [59188, 149900], [59189, 131737], [59190, 146874], [59191, 137070], - [13719, 59192], [21867, 59193], [13680, 59194], [13994, 59195], - [59196, 131540], [59197, 134157], [31458, 59198], [23129, 59199], - [59200, 141045], [59201, 154287], [59202, 154268], [23053, 59203], - [59204, 131675], [30960, 59205], [23082, 59206], [59207, 154566], - [31486, 59208], [16889, 59209], [31837, 59210], [31853, 59211], - [16913, 59212], [59213, 154547], [59214, 155324], [59215, 155302], - [31949, 59216], [59217, 150009], [59218, 137136], [31886, 59219], - [31868, 59220], [31918, 59221], [27314, 59222], [32220, 59223], - [32263, 59224], [32211, 59225], [32590, 59226], [59227, 156257], - [59228, 155996], [59229, 162632], [32151, 59230], [59231, 155266], - [17002, 59232], [59233, 158581], [59234, 133398], [26582, 59235], - [59236, 131150], [59237, 144847], [22468, 59238], [59239, 156690], - [59240, 156664], [32733, 59242], [31527, 59243], [59244, 133164], - [59245, 154345], [59246, 154947], [31500, 59247], [59248, 155150], - [39398, 59249], [34373, 59250], [39523, 59251], [27164, 59252], - [59253, 144447], [59255, 150007], [59256, 157101], [39455, 59257], - [59258, 157088], 0, [59260, 160039], [59261, 158929], [17642, 59262], - [33079, 59263], [17410, 59264], [32966, 59265], [33033, 59266], - [33090, 59267], [59268, 157620], [39107, 59269], [59270, 158274], - [33378, 59271], [33381, 59272], [59273, 158289], [33875, 59274], - [59275, 159143], [34320, 59276], [59277, 160283], [23174, 59278], - [16767, 59279], [59280, 137280], [23339, 59281], [59282, 137377], - [23268, 59283], [59284, 137432], [34464, 59285], [59286, 195004], - [59287, 146831], [34861, 59288], [59289, 160802], [23042, 59290], - [34926, 59291], [20293, 59292], [34951, 59293], [35007, 59294], - [35046, 59295], [35173, 59296], [35149, 59297], [59298, 153219], - [35156, 59299], [59300, 161669], [59301, 161668], [59302, 166901], - [59303, 166873], [59304, 166812], [59305, 166393], [16045, 59306], - [33955, 59307], [18165, 59308], [18127, 59309], [14322, 59310], - [35389, 59311], [35356, 59312], [59313, 169032], [24397, 59314], - [37419, 59315], [59316, 148100], [26068, 59317], [28969, 59318], - [28868, 59319], [59320, 137285], [40301, 59321], [35999, 59322], - [36073, 59323], [59324, 163292], [22938, 59325], [30659, 59326], - [23024, 59327], [14036, 59329], [36394, 59330], [36519, 59331], - [59332, 150537], [36656, 59333], [36682, 59334], [17140, 59335], - [27736, 59336], [28603, 59337], [59338, 140065], [18587, 59339], - [28537, 59340], [28299, 59341], [59342, 137178], [39913, 59343], - [14005, 59344], [59345, 149807], [37051, 59346], 0, [21873, 59348], - [18694, 59349], [37307, 59350], [37892, 59351], [59352, 166475], - [16482, 59353], [59354, 166652], [37927, 59355], [59356, 166941], - [59357, 166971], [34021, 59358], [35371, 59359], [38297, 59360], - [38311, 59361], [38295, 59362], [38294, 59363], [59364, 167220], - [29765, 59365], [16066, 59366], [59367, 149759], [59368, 150082], - [59369, 148458], [16103, 59370], [59371, 143909], [38543, 59372], - [59373, 167655], [59374, 167526], [59375, 167525], [16076, 59376], - [59377, 149997], [59378, 150136], [59379, 147438], [29714, 59380], - [29803, 59381], [16124, 59382], [38721, 59383], [59384, 168112], - [26695, 59385], [18973, 59386], [59387, 168083], [59388, 153567], 0, - [37736, 59390], [59391, 166281], [59392, 166950], [59393, 166703], - [59394, 156606], [37562, 59395], [23313, 59396], [35689, 59397], - [18748, 59398], [29689, 59399], [59400, 147995], [38811, 59401], 0, - [39224, 59403], [59404, 134950], [24001, 59405], [59406, 166853], - [59407, 150194], [38943, 59408], [59409, 169178], [37622, 59410], - [59411, 169431], [37349, 59412], [17600, 59413], [59414, 166736], - [59415, 150119], [59416, 166756], [39132, 59417], [59418, 166469], - [16128, 59419], [37418, 59420], [18725, 59421], [33812, 59422], - [39227, 59423], [39245, 59424], [59425, 162566], [15869, 59426], 0, - [19311, 59428], [39338, 59429], [39516, 59430], [59431, 166757], - [59432, 153800], [27279, 59433], [39457, 59434], [23294, 59435], - [39471, 59436], [59437, 170225], [19344, 59438], [59439, 170312], - [39356, 59440], [19389, 59441], [19351, 59442], [37757, 59443], - [22642, 59444], [59445, 135938], [22562, 59446], [59447, 149944], - [59448, 136424], [30788, 59449], [59450, 141087], [59451, 146872], - [26821, 59452], [15741, 59453], [37976, 59454], [14631, 59455], - [24912, 59456], [59457, 141185], [59458, 141675], [24839, 59459], - [40015, 59460], [40019, 59461], [40059, 59462], [39989, 59463], - [39952, 59464], [39807, 59465], [39887, 59466], [59467, 171565], - [39839, 59468], [59469, 172533], [59470, 172286], [40225, 59471], - [19630, 59472], [59473, 147716], [40472, 59474], [19632, 59475], - [40204, 59476], [59477, 172468], [59478, 172269], [59479, 172275], - [59480, 170287], [40357, 59481], [33981, 59482], [59483, 159250], - [59484, 159711], [59485, 158594], [34300, 59486], [17715, 59487], - [59488, 159140], [59489, 159364], [59490, 159216], [33824, 59491], - [34286, 59492], [59493, 159232], [59494, 145367], [59495, 155748], - [31202, 59496], [59497, 144796], [59498, 144960], [59500, 149982], - [15714, 59501], [37851, 59502], [37566, 59503], [37704, 59504], - [59505, 131775], [30905, 59506], [37495, 59507], [37965, 59508], - [20452, 59509], [13376, 59510], [36964, 59511], [59512, 152925], - [30781, 59513], [30804, 59514], [30902, 59515], [30795, 59516], - [59517, 137047], [59518, 143817], [59519, 149825], [13978, 59520], - [20338, 59521], [28634, 59522], [28633, 59523], 0, [28702, 59524, 59525], - [21524, 59526], [59527, 147893], [22459, 59528], [22771, 59529], - [22410, 59530], [40214, 59531], [22487, 59532], [28980, 59533], - [13487, 59534], [59535, 147884], [29163, 59536], [59537, 158784], - [59538, 151447], 0, [59540, 137141], [59541, 166473], [24844, 59542], - [23246, 59543], [23051, 59544], [17084, 59545], [59546, 148616], - [14124, 59547], [19323, 59548], [59549, 166396], [37819, 59550], - [37816, 59551], [59552, 137430], [59553, 134941], [33906, 59554], - [59555, 158912], [59556, 136211], [59557, 148218], [59558, 142374], - [59559, 148417], [22932, 59560], [59561, 146871], [59562, 157505], - [32168, 59563], [59564, 155995], [59565, 155812], [59566, 149945], - [59567, 149899], [59568, 166394], [37605, 59569], [29666, 59570], - [16105, 59571], [29876, 59572], [59573, 166755], [59574, 137375], - [16097, 59575], [59576, 150195], [27352, 59577], [29683, 59578], - [29691, 59579], [16086, 59580], [59581, 150078], [59582, 150164], - [59583, 137177], [59584, 150118], [59585, 132007], [59586, 136228], - [59587, 149989], [29768, 59588], [59589, 149782], [28837, 59590], - [59591, 149878], [37508, 59592], [29670, 59593], [37727, 59594], - [59595, 132350], [37681, 59596], [59597, 166606], [59598, 166422], - [37766, 59599], [59600, 166887], [59601, 153045], [18741, 59602], - [59603, 166530], [29035, 59604], [59605, 149827], [59606, 134399], - [22180, 59607], [59608, 132634], [59609, 134123], [59610, 134328], - [21762, 59611], [31172, 59612], [59613, 137210], [32254, 59614], - [59615, 136898], [59616, 150096], [59617, 137298], [17710, 59618], - [37889, 59619], [14090, 59620], [59621, 166592], [59622, 149933], - [22960, 59623], [59624, 137407], [59625, 137347], [59626, 160900], - [23201, 59627], [14050, 59628], [59629, 146779], [14000, 59630], - [37471, 59631], [23161, 59632], [59633, 166529], [59634, 137314], - [37748, 59635], [15565, 59636], [59637, 133812], [19094, 59638], - [14730, 59639], [20724, 59640], [15721, 59641], [15692, 59642], - [59643, 136092], [29045, 59644], [17147, 59645], [59646, 164376], - [28175, 59647], [59648, 168164], [17643, 59649], [27991, 59650], - [59651, 163407], [28775, 59652], [27823, 59653], [15574, 59654], - [59655, 147437], [59656, 146989], [28162, 59657], [28428, 59658], - [15727, 59659], [59660, 132085], [30033, 59661], [14012, 59662], - [13512, 59663], [18048, 59664], [16090, 59665], [18545, 59666], - [22980, 59667], [37486, 59668], [18750, 59669], [36673, 59670], - [59671, 166940], [59672, 158656], [22546, 59673], [22472, 59674], - [14038, 59675], [59676, 136274], [28926, 59677], [59678, 148322], - [59679, 150129], [59680, 143331], [59681, 135856], [59682, 140221], - [26809, 59683], [26983, 59684], [59685, 136088], [59686, 144613], - [59687, 162804], [59688, 145119], [59689, 166531], [59690, 145366], - [59691, 144378], [59692, 150687], [27162, 59693], [59694, 145069], - [59695, 158903], [33854, 59696], [17631, 59697], [17614, 59698], - [59699, 159014], [59700, 159057], [59701, 158850], [59702, 159710], 0, 0, - [33597, 59705], [59706, 137018], [33773, 59707], [59708, 158848], - [59709, 159827], [59710, 137179], [22921, 59711], [23170, 59712], - [59713, 137139], [23137, 59714], [23153, 59715], [59716, 137477], - [59717, 147964], [14125, 59718], [23023, 59719], [59720, 137020], - [14023, 59721], [29070, 59722], [37776, 59723], [26266, 59724], - [59725, 148133], [23150, 59726], [23083, 59727], [59728, 148115], - [27179, 59729], [59730, 147193], [59731, 161590], [59732, 148571], - [59733, 148170], [28957, 59734], [59735, 148057], [59736, 166369], - [20400, 59737], [59738, 159016], [23746, 59739], [59740, 148686], - [59741, 163405], [59742, 148413], [27148, 59743], [59744, 148054], - [59745, 135940], 0, [28979, 59747], [59748, 148457], [15781, 59749], - [27871, 59750], [59751, 194597], [23019, 59754], [24412, 59757], - [59764, 144128], [31955, 59776], [59783, 162548], [59786, 153334], - [59790, 162584], [36972, 59791], [33270, 59795], [30476, 59797], - [27810, 59799], [22269, 59800], [22633, 59828], [26465, 59832], - [23646, 59838], [22770, 59841], [28857, 59843], [26627, 59853], - [36795, 59859], [36796, 59861], [20001, 59871], [31545, 59898], - [15820, 59902], [29482, 57990, 59909], [30048, 59912], [22586, 59920], - [33446, 59932], [27018, 59940], [24803, 59944], [20206, 59984], - [39364, 60002], [40639, 60023], [21249, 60025], [26528, 60038], - [24808, 60046], [20916, 60053], [31363, 60064], [39994, 60075], - [31432, 60093], [26906, 60098], [22956, 60100], [22592, 60102], - [21610, 60114], [24807, 60123], [22138, 60125], [26965, 60132], - [39983, 60133], [34725, 60134], [23584, 60141], [24075, 60143], - [26398, 60147], [33965, 60157], [35713, 60161], [20088, 60166], - [25283, 60176], [26709, 60180], 0, [33533, 60190], [35237, 60194], - [36768, 60196], [38840, 60198], [38983, 60200], [39613, 60201], - [24497, 60218], [26184, 60219], [26303, 60220], [60221, 162425], 0, - [60225, 149946], 0, 0, [60230, 131910], [26382, 60232], [26904, 60233], - [60235, 161367], [60236, 155618], [60239, 161278], [60240, 139418], - [18640, 60241], [19128, 60242], [60244, 166554], [60247, 147515], - [60250, 150085], [60251, 132554], [20946, 60252], [60253, 132625], - [22943, 60254], [60255, 138920], [15294, 60256], [60257, 146687], - [14747, 60262], [60264, 165352], [60265, 170441], [14178, 60266], - [60267, 139715], [35678, 60268], [60269, 166734], 0, [29193, 60274], - [60276, 134264], [60280, 132985], [36570, 60281], [21135, 60283], - [29041, 60285], [60288, 147274], [60289, 150183], [21948, 60290], - [60293, 158546], [13427, 60295], [60297, 161330], [18200, 60299], - [60303, 149823], [20582, 60305], [13563, 60306], [60307, 144332], 0, - [18300, 60310], [60311, 166216], [60315, 138640], 0, [60320, 162834], - [36950, 60321], [60323, 151450], [35682, 60324], [23899, 60327], - [60328, 158711], 0, [60331, 137500], [35562, 60332], [60333, 150006], - [60335, 147439], [19392, 60337], [60340, 141083], [37989, 60341], - [60342, 153569], [24981, 60343], [23079, 60344], [60345, 194765], 0, - [60348, 148769], [20074, 60350], [60351, 149812], [38486, 60352], - [28047, 60353], [60354, 158909], [35191, 60356], [60359, 156689], 0, - [31554, 60363], [60364, 168128], [60365, 133649], 0, [31301, 60369], - [39462, 60372], [13919, 60374], [60375, 156777], [60376, 131105], - [31107, 60377], [23852, 60380], [60381, 144665], 0, [18128, 60384], - [30011, 60386], [34917, 60387], [22710, 60389], [14108, 60390], - [60391, 140685], [15444, 60394], [37505, 60397], [60398, 139642], - [37680, 60400], [60402, 149968], [27705, 60403], [60406, 134904], - [34855, 60407], [35061, 60408], [60409, 141606], [60410, 164979], - [60411, 137137], [28344, 60412], [60413, 150058], [60414, 137248], - [14756, 60415], 0, 0, [17727, 60419], [26294, 60420], [60421, 171181], - [60422, 170148], [35139, 60423], [16607, 60427], [60428, 136714], - [14753, 60429], [60430, 145199], [60431, 164072], [60432, 136133], - [29101, 60433], [33638, 60434], [60436, 168360], 0, [19639, 60438], - [60439, 159919], [60440, 166315], [60445, 147834], [31555, 60446], - [31102, 60447], [28597, 60449], [60450, 172767], [27139, 60451], - [60452, 164632], [21410, 60453], [60454, 159239], [37823, 60455], - [26678, 60456], [38749, 59389, 60457], [60458, 164207], [60460, 158133], - [60461, 136173], [60462, 143919], [23941, 60464], [60465, 166960], - [22293, 60467], [38947, 60468], [60469, 166217], [23979, 60470], - [60471, 149896], [26046, 60472], [27093, 60473], [21458, 60474], - [60475, 150181], [60476, 147329], [15377, 60477], [26422, 60478], - [60482, 139169], [13770, 60490], [18682, 60493], 0, [30728, 60496], - [37461, 60497], [17394, 60499], [17375, 60501], [23032, 60505], 0, - [22155, 60518], [60520, 169449], [36882, 60541], [21953, 60546], - [17673, 60551], [32383, 60552], [28502, 60553], [27313, 60554], - [13540, 60556], [60558, 161949], [14138, 60559], 0, [60562, 163876], - [60565, 162366], [15851, 60567], [60569, 146615], [60574, 156248], - [22207, 60575], [36366, 60577], [23405, 60578], [25566, 60581], 0, - [25904, 60585], [22061, 60586], [21530, 60588], [60591, 171416], - [19581, 60592], [22050, 60593], [22046, 60594], [32585, 60595], - [22901, 60597], [60598, 146752], [34672, 60599], [33047, 60604], - [40286, 60605], [36120, 60606], [30267, 60607], [40005, 60608], - [30286, 60609], [30649, 60610], [37701, 60611], [21554, 60612], - [33096, 60613], [33527, 60614], [22053, 60615], [33074, 60616], - [33816, 60617], [32957, 60618], [21994, 60619], [31074, 60620], - [22083, 60621], [21526, 60622], [60623, 134813], [13774, 60624], - [22021, 57509, 60625], [22001, 60626], [26353, 60627], [60628, 164578], - [13869, 60629], [30004, 60630], [22000, 60631], [21946, 60632], - [21655, 60633], [21874, 60634], [60635, 134209], [60636, 134294], - [24272, 57652, 60637], [60639, 134774], [60640, 142434], [60641, 134818], - [40619, 60642], [32090, 60643], 0, [60645, 135285], [25245, 60646], - [38765, 60647], [21652, 60648], [36045, 60649], [29174, 60650], - [37238, 60651], [25596, 60652], [25529, 60653], [25598, 60654], - [21865, 60655], [60656, 142147], [40050, 60657], [60658, 143027], - [20890, 60659], [13535, 60660], [60661, 134567], [20903, 60662], - [21581, 60663], [21790, 60664], [21779, 60665], [30310, 60666], - [36397, 60667], [60668, 157834], [30129, 60669], [32950, 60670], - [34820, 60671], 0, [35015, 60673], [33206, 60674], [33820, 60675], - [17644, 60677], [29444, 60678], [33547, 60681], [22139, 60683], - [37232, 60690], [37384, 60692], [60696, 134905], [29286, 60697], - [18254, 60699], [60701, 163833], [16634, 60703], [40029, 60704], - [25887, 60705], [18675, 60707], [60708, 149472], [60709, 171388], 0, - [60713, 161187], 60715, [60716, 155720], [29091, 60718], [32398, 60719], - [40272, 60720], [13687, 60723], [27826, 60725], [21351, 60726], - [14812, 60728], [60731, 149016], [33325, 60734], [21579, 60735], 60739, - [14930, 60740], [29556, 60742], [60743, 171692], [19721, 60744], - [39917, 60745], 0, [19547, 60748], [60751, 171998], [33884, 60752], - [60754, 160434], [25390, 60757], [32037, 60758], [14890, 60761], - [36872, 60762], [21196, 60763], [15988, 60764], [13946, 60765], - [17897, 60766], [60767, 132238], [30272, 60768], [23280, 60769], - [60770, 134838], [30842, 60771], [18358, 60772], [22695, 60773], - [16575, 60774], [22140, 60775], [39819, 60776], [23924, 60777], - [30292, 60778], [60779, 173108], [40581, 60780], [19681, 60781], 0, - [14331, 60783], [24857, 60784], [60786, 148466], 60787, [22109, 60788], - [60792, 171526], [21044, 60793], [13741, 60795], 0, [40316, 60797], - [31830, 60798], [39737, 60799], [22494, 60800], [23635, 60802], - [25811, 60803], [60804, 169168], [60805, 156469], [34477, 60807], - [60808, 134440], [60811, 134513], 60812, [20990, 60813], [60814, 139023], - [23950, 60815], [38659, 60816], [60817, 138705], [40577, 60818], - [36940, 60819], [31519, 60820], [39682, 60821], [23761, 60822], - [31651, 60823], [25192, 60824], [25397, 60825], [39679, 60826], - [31695, 60827], [39722, 60828], [31870, 60829], 0, [31810, 60831], - [31878, 60832], [39957, 60833], [31740, 60834], [39689, 60835], 0, 39982, - [40794, 60839], [21875, 60840], [23491, 60841], [20477, 60842], - [40600, 60843], [20466, 60844], [21088, 60845], [21201, 60847], - [22375, 60848], [20566, 60849], [22967, 60850], [24082, 60851], - [38856, 60852], [40363, 60853], [36700, 60854], [21609, 60855], - [38836, 60856], [39232, 60857], [38842, 60858], [21292, 60859], - [24880, 60860], [26924, 60861], [21466, 60862], [39946, 60863], - [40194, 60864], [19515, 60865], [38465, 60866], [27008, 60867], - [20646, 60868], [30022, 60869], [60870, 137069], [39386, 60871], - [21107, 60872], 60873, [37209, 60874], [38529, 60875], [37212, 60876], - 60877, [37201, 60878], [60879, 167575], [25471, 60880], [27338, 60882], - [22033, 60883], [37262, 60884], [30074, 60885], [25221, 60886], - [29519, 60888], [31856, 60889], [60890, 154657], 60892, [30422, 60894], - [39837, 60895], [20010, 60896], [60897, 134356], [33726, 60898], - [34882, 60899], 60900, [23626, 60901], [27072, 60902], 0, 0, - [21023, 60905], [24053, 60906], [20174, 60907], [27697, 60908], - [60909, 131570], [20281, 60910], [21660, 60911], 0, [21146, 60913], - [36226, 60914], [13822, 60915], 0, [13811, 60917], 60918, [27474, 60919], - [37244, 60920], [40869, 60921], [39831, 60922], [38958, 60923], - [39092, 60924], [39610, 60925], [40616, 60926], [40580, 60927], - [31508, 60929], 60930, [27642, 60931], [34840, 60932], [32632, 60933], - 60934, [22048, 60935], [60936, 173642], [36471, 60937], [40787, 60938], - 60939, [36308, 60940], [36431, 60941], [40476, 60942], [36353, 60943], - [25218, 60944], [60945, 164733], [36392, 60946], [36469, 60947], - [31443, 60948], [31294, 60950], [30936, 60951], [27882, 60952], - [35431, 60953], [30215, 60954], [40742, 60956], [27854, 60957], - [34774, 60958], [30147, 60959], [60960, 172722], [30803, 60961], - [36108, 60963], [29410, 60964], [29553, 60965], [35629, 60966], - [29442, 60967], [29937, 60968], [36075, 60969], [60970, 150203], - [34351, 60971], [24506, 60972], [34976, 60973], [17591, 60974], 60975, - [60977, 159237], 60978, [35454, 60979], [60980, 140571], 60981, - [24829, 60982], [30311, 60983], [39639, 60984], [40260, 60985], - [37742, 58859, 60986], [39823, 60987], [34805, 60988], 60989, 0, - [36087, 60991], [29484, 60992], [38689, 60993], [39856, 60994], - [13782, 60995], [29362, 60996], [19463, 60997], [31825, 60998], - [39242, 60999], [24921, 61001], [19460, 61002], [40598, 61003], - [24957, 61004], 61005, [22367, 61006], [24943, 61007], [25254, 61008], - [25145, 61009], 0, [14940, 61011], [25058, 61012], [21418, 61013], - [25444, 61015], [26626, 61016], [13778, 61017], [23895, 61018], - [36826, 61020], [61021, 167481], 61022, [20697, 61023], [30982, 61025], - [21298, 61026], [38456, 61027], [61028, 134971], [16485, 61029], 61030, - [30718, 61031], 61032, [31938, 61033], [61034, 155418], [31962, 61035], - [31277, 61036], [32870, 61037], [32867, 61038], [32077, 61039], - [29957, 61040], [29938, 61041], [35220, 61042], [33306, 61043], - [26380, 61044], [32866, 61045], [61046, 160902], [32859, 61047], - [29936, 61048], [33027, 61049], [30500, 61050], [35209, 61051], - [61052, 157644], [30035, 61053], [34729, 61055], [34766, 61056], - [33224, 61057], [34700, 61058], [35401, 61059], [36013, 61060], - [35651, 61061], [30507, 61062], [29944, 61063], [34010, 61064], - [27058, 61066], [36262, 61067], 61068, [35241, 58392, 61069], 0, - [28089, 61071], [34753, 61072], [61073, 147473], [29927, 61074], - [15835, 61075], [29046, 61076], [24740, 57702, 61077], [24988, 61078], - [15569, 61079], 0, [24695, 61081], 61082, [32625, 61083], 0, - [24809, 61086], [19326, 61087], [57344, 132423], [37595, 57345], - [57346, 132575], [57347, 147397], [34124, 57348], [17077, 57349], - [29679, 57350], [20917, 57351], [13897, 57352], [57353, 149826], - [57354, 166372], [37700, 57355], [57356, 137691], [33518, 57357], - [57358, 146632], [30780, 57359], [26436, 57360], [25311, 57361], - [57362, 149811], [57363, 166314], [57364, 131744], [57365, 158643], - [57366, 135941], [20395, 57367], [57368, 140525], [20488, 57369], - [57370, 159017], [57371, 162436], [57372, 144896], [57373, 150193], - [57374, 140563], 0, [57376, 131966], [24484, 57377], [57378, 131968], - [57379, 131911], [28379, 57380], [57381, 132127], 20702, [20737, 57383], - [13434, 57384], [20750, 57385], [39020, 57386], [14147, 57387], - [33814, 57388], [57389, 149924], [57390, 132231], [20832, 57391], - [57392, 144308], [20842, 57393], [57394, 134143], [57395, 139516], - [57396, 131813], [57397, 140592], [57398, 132494], [57399, 143923], - [57400, 137603], [23426, 57401], [34685, 57402], [57403, 132531], - [57404, 146585], [20914, 57405], [20920, 57406], [40244, 57407], - [20937, 57408], [20943, 57409], [20945, 57410], [15580, 57411], - [20947, 57412], [57413, 150182], [20915, 57414], 0, 0, [20973, 57417], - [33741, 57418], [26942, 57419], [57420, 145197], [24443, 57421], - [21003, 57422], [21030, 57423], [21052, 57424], [21173, 57425], - [21079, 57426], [21140, 57427], [21177, 57428], [21189, 57429], - [31765, 57430], [34114, 57431], [21216, 57432], [34317, 57433], - [57434, 158483], 0, [57436, 166622], [21833, 57437], [28377, 57438], - [57439, 147328], [57440, 133460], [57441, 147436], [21299, 57442], 0, - [57444, 134114], [27851, 57445], [57446, 136998], [26651, 57447], - [29653, 57448], [24650, 57449], [16042, 57450], [14540, 57451], - [57452, 136936], [29149, 57453], [17570, 57454], [21357, 57455], - [21364, 57456], [57457, 165547], [21374, 57458], 0, [57460, 136598], - [57461, 136723], [30694, 57462], [21395, 57463], [57464, 166555], - [21408, 57465], [21419, 57466], [21422, 57467], [29607, 57468], - [57469, 153458], [16217, 57470], [29596, 57471], [21441, 57472], - [21445, 57473], [27721, 57474], [20041, 57475], [22526, 57476], - [21465, 57477], [15019, 57478], [57479, 134031], [21472, 57480], - [57481, 147435], [57482, 142755], [21494, 57483], [57484, 134263], - [21523, 57485], [28793, 57486], [21803, 57487], [26199, 57488], - [27995, 57489], [21613, 57490], [57491, 158547], [57492, 134516], - [21853, 57493], [21647, 57494], [21668, 57495], [18342, 57496], - [57497, 136973], [57498, 134877], [15796, 57499], [57500, 134477], - [57501, 166332], [57502, 140952], [21831, 57503], [19693, 57504], - [21551, 57505], [29719, 57506], [21894, 57507], [21929, 57508], 0, - [57510, 137431], [57511, 147514], [17746, 57512], [57513, 148533], - [26291, 57514], [57515, 135348], [22071, 57516], [26317, 57517], - [57518, 144010], [26276, 57519], 0, [22093, 57521], [22095, 57522], - [30961, 57523], [22257, 57524], [38791, 57525], [21502, 57526], - [22272, 57527], [22255, 57528], [22253, 57529], [57530, 166758], - [13859, 57531], [57532, 135759], [22342, 57533], [57534, 147877], - [27758, 57535], [28811, 57536], [22338, 57537], [14001, 57538], - [57539, 158846], [22502, 57540], [57541, 136214], [22531, 57542], - [57543, 136276], [57544, 148323], [22566, 57545], [57546, 150517], 0, - [22698, 57548], [13665, 57549], [22752, 57550], [22748, 57551], - [57552, 135740], [22779, 57553], [23551, 57554], [22339, 57555], - [57556, 172368], [57557, 148088], [37843, 57558], [13729, 57559], - [22815, 57560], [26790, 57561], [14019, 57562], [28249, 57563], - [57564, 136766], [23076, 57565], 0, [57567, 136850], [34053, 57568], - [22985, 57569], [57570, 134478], [57571, 158849], [57572, 159018], - [57573, 137180], [23001, 57574], [57575, 137211], [57576, 137138], - [57577, 159142], [28017, 57578], [57579, 137256], [57580, 136917], - [23033, 57581], [57582, 159301], [23211, 57583], [23139, 57584], - [14054, 57585], [57586, 149929], 0, [14088, 57588], [23190, 57589], - [29797, 57590], [23251, 57591], [57592, 159649], [57593, 140628], - [57595, 137489], [14130, 57596], [57597, 136888], [24195, 57598], - [21200, 57599], [23414, 57600], [25992, 57601], [23420, 57602], - [57603, 162318], [16388, 57604], [18525, 57605], [57606, 131588], - [23509, 57607], [57609, 137780], [57610, 154060], [57611, 132517], - [23539, 57612], [23453, 57613], [19728, 57614], [23557, 57615], - [57616, 138052], [23571, 57617], [29646, 57618], [23572, 57619], - [57620, 138405], [57621, 158504], [23625, 57622], [18653, 57623], - [23685, 57624], [23785, 57625], [23791, 57626], [23947, 57627], - [57628, 138745], [57629, 138807], [23824, 57630], [23832, 57631], - [23878, 57632], [57633, 138916], [23738, 57634], [24023, 57635], - [33532, 57636], [14381, 57637], [57638, 149761], [57639, 139337], - [57640, 139635], [33415, 57641], [14390, 57642], [15298, 57643], - [24110, 57644], [27274, 57645], 0, 57647, [57648, 148668], [57649, 134355], - [21414, 57650], [20151, 57651], 0, [21416, 57653], [57654, 137073], - [24073, 57655], 57656, [57657, 164994], [24313, 57658], [24315, 57659], - [14496, 57660], [24316, 57661], [26686, 57662], [37915, 57663], - [24333, 57664], [57665, 131521], [57666, 194708], [15070, 57667], - [57669, 135994], [24378, 57670], [57671, 157832], [57672, 140240], - [57674, 140401], [24419, 57675], [57677, 159342], [24434, 57678], - [37696, 57679], [57680, 166454], [24487, 57681], [23990, 57682], - [15711, 57683], [57684, 152144], [57685, 139114], [57686, 159992], - [57687, 140904], [37334, 57688], [57689, 131742], [57690, 166441], - [24625, 57691], [26245, 57692], [14691, 57694], [15815, 57695], - [13881, 57696], [22416, 57697], [57698, 141236], [31089, 57699], - [15936, 57700], [24734, 57701], 0, 0, [57704, 149890], [57705, 149903], - [57706, 162387], [29860, 57707], [20705, 57708], [23200, 57709], - [24932, 57710], [24898, 57712], [57713, 194726], [57714, 159442], - [24961, 57715], [20980, 57716], [57717, 132694], [24967, 57718], - [23466, 57719], [57720, 147383], [57721, 141407], [25043, 57722], - [57723, 166813], [57724, 170333], [25040, 57725], [14642, 57726], - [57727, 141696], [57728, 141505], [24611, 57729], [24924, 57730], - [25886, 57731], [25483, 57732], [57733, 131352], [25285, 57734], - [57735, 137072], [25301, 57736], [57737, 142861], [25452, 57738], - [57739, 149983], [14871, 57740], [25656, 57741], [25592, 57742], - [57743, 136078], [57744, 137212], [28554, 57746], [57747, 142902], 0, - [57750, 153373], [25825, 57751], [25829, 57752], [38011, 57753], - [14950, 57754], [25658, 57755], [14935, 57756], [25933, 57757], - [28438, 57758], [57759, 150056], [57760, 150051], [25989, 57761], - [25965, 57762], [25951, 57763], 0, [26037, 57765], [57766, 149824], - [19255, 57767], [26065, 57768], [16600, 57769], [57770, 137257], 57771, - [26083, 57772], [24543, 57773], [57774, 144384], [26136, 57775], - [57776, 143863], [57777, 143864], [26180, 57778], [57779, 143780], - [57780, 143781], [26187, 57781], [57782, 134773], [26215, 57783], - [57784, 152038], [26227, 57785], 0, [57788, 143921], [57789, 165364], - [57790, 143816], [57791, 152339], [30661, 57792], [57793, 141559], - [39332, 57794], [26370, 57795], [57796, 148380], [57797, 150049], - [27130, 57799], [57800, 145346], 0, [26471, 57802], [26466, 57803], - [57804, 147917], [57805, 168173], [26583, 57806], [17641, 57807], - [26658, 57808], [28240, 57809], [37436, 57810], [26625, 57811], - [57812, 144358], [57813, 159136], [26717, 57814], [57815, 144495], - [27105, 57816], [27147, 57817], [57818, 166623], [26995, 57819], - [26819, 57820], [57821, 144845], [26881, 57822], [26880, 57823], - [14849, 57825], [57826, 144956], [15232, 57827], [26540, 57828], - [26977, 57829], [57830, 166474], [17148, 57831], [26934, 57832], - [27032, 57833], [15265, 57834], [57835, 132041], [33635, 57836], - [20624, 57837], [27129, 57838], [57839, 144985], [57840, 139562], - [27205, 57841], [57842, 145155], [27293, 57843], [15347, 57844], - [26545, 57845], [27336, 57846], [57847, 168348], [15373, 57848], - [27421, 57849], [57850, 133411], [24798, 57851, 60308], [27445, 57852], - [27508, 57853], [57854, 141261], [28341, 57855], [57856, 146139], 0, - [57858, 137560], [14144, 57859], [21537, 57860], [57861, 146266], - [27617, 57862], [57863, 147196], [27612, 57864], [27703, 57865], - [57866, 140427], [57867, 149745], [57868, 158545], [27738, 57869], - [33318, 57870], [27769, 57871], [57872, 146876], [17605, 57873], - [57874, 146877], [57875, 147876], [57876, 149772], [57877, 149760], - [57878, 146633], [14053, 57879], [15595, 57880], [57881, 134450], - [39811, 57882], [57883, 143865], [57884, 140433], [32655, 57885], - [26679, 57886], [57887, 159013], [57888, 159137], [57889, 159211], - [28054, 57890], [27996, 57891], [28284, 57892], [28420, 57893], - [57894, 149887], [57895, 147589], [57896, 159346], [34099, 57897], - [57898, 159604], [20935, 57899], 0, 0, [33838, 57902], [57903, 166689], 0, - [57905, 146991], [29779, 57906], [57907, 147330], [31180, 57908], - [28239, 57909], [23185, 57910], [57911, 143435], [28664, 57912], - [14093, 57913], [28573, 57914], [57915, 146992], [28410, 57916], - [57917, 136343], [57918, 147517], [17749, 57919], [37872, 57920], - [28484, 57921], [28508, 57922], [15694, 57923], [28532, 57924], - [57925, 168304], [15675, 57926], [28575, 57927], [57928, 147780], - [28627, 57929], [57930, 147601], [57931, 147797], [57932, 147513], - [57933, 147440], [57934, 147380], [57935, 147775], [20959, 57936], - [57937, 147798], [57938, 147799], [57939, 147776], [57940, 156125], - [28747, 57941], [28798, 57942], [28839, 57943], 0, [28876, 57945], - [28885, 57946], [28886, 57947], [28895, 57948], [16644, 57949], - [15848, 57950], [29108, 57951], [29078, 57952], [57953, 148087], - [28971, 57954], [28997, 57955], [23176, 57956], [29002, 57957], 0, - [57960, 148325], [29007, 57961], [37730, 57962], [57963, 148161], - [28972, 57964], [57965, 148570], [57966, 150055], [57967, 150050], - [29114, 57968], [57969, 166888], [28861, 57970], [29198, 57971], - [37954, 57972], [29205, 57973], [22801, 57974], [37955, 57975], - [29220, 57976], [37697, 57977], [57978, 153093], [29230, 57979], - [29248, 57980], [57981, 149876], [26813, 57982], [29269, 57983], - [29271, 57984], [15957, 57985], [57986, 143428], [26637, 57987], - [28477, 57988], [29314, 57989], 0, [29483, 57991], [57992, 149539], - [57993, 165931], [18669, 57994], [57995, 165892], [29480, 57996], - [29486, 57997], [29647, 57998], [29610, 57999], [58000, 134202], - [58001, 158254], [29641, 58002], [29769, 58003], [58004, 147938], - [58005, 136935], [58006, 150052], [26147, 58007], [14021, 58008], - [58009, 149943], [58010, 149901], [58011, 150011], [29687, 58012], - [29717, 58013], [26883, 58014], [58015, 150054], [29753, 58016], - [16087, 58018], 0, [58020, 141485], [29792, 58021], [58022, 167602], - [29767, 58023], [29668, 58024], [29814, 58025], [33721, 58026], - [29804, 58027], [29812, 58029], [37873, 58030], [27180, 58031], - [29826, 58032], [18771, 58033], [58034, 150156], [58035, 147807], - [58036, 150137], [58037, 166799], [23366, 58038], [58039, 166915], - [58040, 137374], [29896, 58041], [58042, 137608], [29966, 58043], - [29982, 58045], [58046, 167641], [58047, 137803], [23511, 58048], - [58049, 167596], [37765, 58050], [30029, 58051], [30026, 58052], - [30055, 58053], [30062, 58054], [58055, 151426], [16132, 58056], - [58057, 150803], [30094, 58058], [29789, 58059], [30110, 58060], - [30132, 58061], [30210, 58062], [30252, 58063], [30289, 58064], - [30287, 58065], [30319, 58066], 58067, [58068, 156661], [30352, 58069], - [33263, 58070], [14328, 58071], [58072, 157969], [58073, 157966], - [30369, 58074], [30373, 58075], [30391, 58076], [30412, 58077], - [58078, 159647], [33890, 58079], [58080, 151709], [58081, 151933], - [58082, 138780], [30494, 58083], [30502, 58084], [30528, 58085], - [25775, 58086], [58087, 152096], [30552, 58088], [58089, 144044], - [30639, 58090], [58091, 166244], [58092, 166248], [58093, 136897], - [30708, 58094], 0, [26826, 58098], [30895, 58099], [30919, 58100], - [30931, 58101], [38565, 58102], [31022, 58103], [58104, 153056], - [30935, 58105], [31028, 58106], [30897, 58107], [58108, 161292], - [36792, 58109], [34948, 58110], [58113, 140828], [31110, 58114], - [35072, 58115], [26882, 58116], [31104, 58117], [58118, 153687], - [31133, 58119], [58120, 162617], [31036, 58121], [31145, 58122], - [28202, 58123], [58124, 160038], [16040, 58125], [31174, 58126], - [58127, 168205], [31188, 58128], 0, [21797, 62526], 0, [62528, 134210], - [62529, 134421], [62530, 151851], [21904, 62531], [62532, 142534], - [14828, 62533], [62534, 131905], [36422, 62535], [62536, 150968], - [62537, 169189], 0, [62539, 164030], [30586, 62540], [62541, 142392], - [14900, 62542], [18389, 62543], [62544, 164189], [62545, 158194], - [62546, 151018], [25821, 62547], [62548, 134524], [62549, 135092], - [62550, 134357], 0, [25741, 62552], [36478, 62553], [62554, 134806], 0, - [62556, 135012], [62557, 142505], [62558, 164438], [62559, 148691], 0, - [62561, 134470], [62562, 170573], [62563, 164073], [18420, 62564], - [62565, 151207], [62566, 142530], [39602, 62567], [14951, 62568], - [62569, 169460], [16365, 62570], [13574, 62571], [62572, 152263], - [62573, 169940], 0, [62575, 142660], [40302, 62576], [38933, 62577], 0, - [17369, 62579], 0, [25780, 62581], [21731, 62582], 0, [62584, 142282], 0, - [14843, 62586], 0, [62588, 157402], [62589, 157462], [62590, 162208], - [25834, 62591], [62592, 151634], [62593, 134211], [36456, 62594], 0, - [62596, 166732], [62597, 132913], 0, [18443, 62599], [62600, 131497], - [16378, 62601], [22643, 62602], [62603, 142733], 0, [62605, 148936], - [62606, 132348], [62607, 155799], [62608, 134988], 0, [21881, 62610], 0, - [17338, 62612], 0, [19124, 62614], [62615, 141926], [62616, 135325], - [33194, 62617], [39157, 62618], [62619, 134556], [25465, 62620], - [14846, 62621], [62622, 141173], [36288, 62623], [22177, 62624], - [25724, 62625], [15939, 62626], 0, [62628, 173569], [62629, 134665], - [62630, 142031], 0, 0, [62633, 135368], [62634, 145858], [14738, 62635], - [14854, 62636], [62637, 164507], [13688, 62638], [62639, 155209], - [62640, 139463], 0, 0, [62643, 142514], [62644, 169760], [13500, 62645], - [27709, 62646], [62647, 151099], 0, 0, [62650, 161140], [62651, 142987], - [62652, 139784], [62653, 173659], [62654, 167117], [62655, 134778], - [62656, 134196], [62683, 161337], [62684, 142286], [62687, 142417], - [14872, 62689], [62691, 135367], [62693, 173618], [62695, 167122], - [62696, 167321], [62697, 167114], [38314, 62698], 0, [62706, 161630], - [28992, 62708], 0, [20822, 62385], 0, [20616, 62487], 0, [13459, 62489], - [20870, 62491], [24130, 63037], [20997, 62495], [21031, 62436], - [21113, 62497], 0, [13651, 62504], [21442, 62505], [21343, 62715], 0, - [21823, 62520], 0, [21976, 59986], [13789, 62722], [22049, 63067], 0, - [22100, 60044], [60148, 135291], 0, [60153, 135379], 0, [61095, 135934], 0, - 0, [14265, 60104], [23745, 61099], [23829, 63066], [23894, 63030], - [14392, 63036], [20097, 62477], [24253, 63038], [14612, 63042], - [25017, 63050], [25232, 63054], [25368, 63056], [25690, 63063], - [25745, 62381], [33133, 62709], [33156, 59922], [33171, 59924], - [26624, 63080], [15292, 63093], [29327, 60517], [29389, 59781], 0, - [29497, 59785], [30018, 59811], [30172, 59817], [16320, 59818], - [60278, 151205], [16343, 59820], 0, 30336, [30348, 59824, 151388], - [16552, 59845], [30777, 59846], [16643, 59855], [31377, 59863], - [31771, 59876], [31981, 59884], [32659, 62658], [32686, 59892], 0, - [33535, 59936], [22623, 59981], [34482, 59960], 0, [34699, 59963], - [35143, 59969], 0, [35369, 59972], 0, [36465, 59988], [60484, 164233], - [36528, 59990], 0, [37214, 62443], [37260, 62441], [39182, 60051], - [39196, 60054], 0, 0, [39809, 60066], [40384, 60080], [40339, 60078], - [40620, 60085], [19857, 60540], 0, 37818, [40571, 60084], [28809, 63148], - [29512, 59788], 0, [31129, 59858], [36791, 59997], 0, [39234, 60056], - {s: 193}, 8364, {s: 4}, [12443, 63518], [12444, 63519], [11904, 63520], - {f: 5, c: 62211}, [62216, 131340], 62217, [62218, 131281], [62219, 131277], - {f: 2, c: 62220}, [62222, 131275], [62223, 139240], 62224, [62225, 131274], - {f: 4, c: 62226}, [62230, 131342], {f: 2, c: 62231}, {f: 2, c: 62776}, - [62778, 138177], [62779, 194680], [12205, 38737, 62780], [62781, 131206], - [20059, 62782], [20155, 62783], [13630, 62784], [23587, 62785], - [24401, 62786], [24516, 62787], [14586, 62788], [25164, 62789], - [25909, 62790], [27514, 62791], [27701, 62792], [27706, 62793], - [28780, 62794], [29227, 62795], [20012, 62796], [29357, 62797], - [62798, 149737], [32594, 62799], [31035, 62800], [31993, 62801], - [32595, 62802], [62803, 156266], [13505, 62804], [62806, 156491], - [32770, 62807], [32896, 62808], [62809, 157202], [62810, 158033], - [21341, 62811], [34916, 62812], [35265, 62813], [62814, 161970], - [35744, 62815], [36125, 62816], [38021, 62817], [38264, 62818], - [38271, 62819], [38376, 62820], [62821, 167439], [38886, 62822], - [39029, 62823], [39118, 62824], [39134, 62825], [39267, 62826], - [62827, 170000], [40060, 62828], [40479, 62829], [40644, 62830], - [27503, 62831], [62832, 63751], [20023, 62833], [62834, 131207], - [38429, 62835], [25143, 62836], [38050, 62837], [11908, 63521], - [11910, 63522], [11911, 63523], [11912, 63524], [11914, 63525], - [11916, 63526], [11917, 63527], [11925, 63528], [11932, 63529], - [11941, 63531], [11943, 63532], [11946, 63533], [11948, 63534], - [11950, 63535], [11958, 63536], [11964, 63537], [11966, 63538], - [11978, 63540], [11980, 63541], [11981, 63542], [11983, 63543], - [11990, 63544], [11991, 63545], [11998, 63546], [62368, 172969], - [62369, 135493], [25866, 62371], [20029, 62374], [28381, 62375], - [40270, 62376], [37343, 62377], [62380, 161589], [20250, 62382], - [20264, 62383], [20392, 62384], [20852, 62386], [20892, 62387], - [20964, 62388], [21153, 62389], [21160, 62390], [21307, 62391], - [21326, 62392], [21457, 62393], [21464, 62394], [22242, 62395], - [22768, 62396], [22788, 62397], [22791, 62398], [22834, 62399], - [22836, 62400], [23398, 62401], [23454, 62402], [23455, 62403], - [23706, 62404], [24198, 62405], [24635, 62406], [25993, 62407], - [26622, 62408], [26628, 62409], [26725, 62410], [27982, 62411], - [28860, 62412], [30005, 62413], [32420, 62414], [32428, 62415], - [32442, 62416], [32455, 62417], [32463, 62418], [32479, 62419], - [32518, 62420], [32567, 62421], [33402, 62422], [33487, 62423], - [33647, 62424], [35270, 62425], [35774, 62426], [35810, 62427], - [36710, 62428], [36711, 62429], [36718, 62430], [29713, 62431], - [31996, 62432], [32205, 62433], [26950, 62434], [31433, 62435], - [30904, 62442], [32956, 62444], [36107, 62446], [33014, 62447], - [62448, 133607], [32927, 62451], [40647, 62452], [19661, 62453], - [40393, 62454], [40460, 62455], [19518, 62456], [62457, 171510], - [62458, 159758], [40458, 62459], [62460, 172339], [13761, 62461], - [28314, 62463], [33342, 62464], [29977, 62465], [18705, 62467], - [39532, 62468], [39567, 62469], [40857, 62470], [31111, 62471], - [62472, 164972], [62473, 138698], [62474, 132560], [62475, 142054], - [20004, 62476], [20096, 62478], [20103, 62479], [20159, 62480], - [20203, 62481], [20279, 62482], [13388, 62483], [20413, 62484], - [15944, 62485], [20483, 62486], [13437, 62488], [13477, 62490], - [22789, 62492], [20955, 62493], [20988, 62494], [20105, 62496], - [21136, 62498], [21287, 62499], [13767, 62500], [21417, 62501], - [13649, 62502], [21424, 62503], [21539, 62506], [13677, 62507], - [13682, 62508], [13953, 62509], [21651, 62510], [21667, 62511], - [21684, 62512], [21689, 62513], [21712, 62514], [21743, 62515], - [21784, 62516], [21795, 62517], [21800, 62518], [13720, 62519], - [13733, 62521], [13759, 62522], [21975, 62523], [13765, 62524], - [62525, 163204], [16467, 62538], [62551, 135412], [62555, 134155], - [62574, 161992], [62580, 155813], [62583, 142668], [62585, 135287], - [62587, 135279], [62595, 139681], [62609, 134550], [16571, 62611], - [62631, 142537], [22098, 62641], [62642, 134961], [62657, 157724], - [62659, 135375], [62660, 141315], [62661, 141625], [13819, 62662], - [62663, 152035], [62664, 134796], [62665, 135053], [62666, 134826], - [16275, 62667], [62668, 134960], [62669, 134471], [62670, 135503], - [62671, 134732], [62673, 134827], [62674, 134057], [62675, 134472], - [62676, 135360], [62677, 135485], [16377, 62678], [62679, 140950], - [25650, 62680], [62681, 135085], [62682, 144372], [62685, 134526], - [62686, 134527], [62688, 142421], [62690, 134808], [62692, 134958], - [62694, 158544], [21708, 62699], [33476, 62700], [21945, 62701], - [62703, 171715], [39974, 62704], [39606, 62705], [62707, 142830], - [33004, 62710], [23580, 62711], [62712, 157042], [33076, 62713], - [14231, 62714], [62716, 164029], [37302, 62717], [62718, 134906], - [62719, 134671], [62720, 134775], [62721, 134907], [62723, 151019], - [13833, 62724], [62725, 134358], [22191, 62726], [62727, 141237], - [62728, 135369], [62729, 134672], [62730, 134776], [62731, 135288], - [62732, 135496], [62733, 164359], [62734, 136277], [62735, 134777], - [62736, 151120], [62737, 142756], [23124, 62738], [62739, 135197], - [62740, 135198], [62741, 135413], [62742, 135414], [22428, 62743], - [62744, 134673], [62745, 161428], [62746, 164557], [62747, 135093], - [62748, 134779], [62749, 151934], [14083, 62750], [62751, 135094], - [62752, 135552], [62753, 152280], [62754, 172733], [62755, 149978], - [62756, 137274], [62757, 147831], [62758, 164476], [22681, 62759], - [21096, 62760], [13850, 62761], [62762, 153405], [31666, 62763], - [23400, 62764], [18432, 62765], [19244, 62766], [40743, 62767], - [18919, 62768], [39967, 62769], [39821, 62770], [62771, 154484], - [62772, 143677], [22011, 62773], [13810, 62774], [22153, 62775], - [23870, 63028], [23880, 63029], [15868, 63031], [14351, 63032], - [23972, 63033], [23993, 63034], [14368, 63035], [24357, 63039], - [24451, 63040], [14600, 63041], [14655, 63043], [14669, 63044], - [24791, 63045], [24893, 63046], [23781, 63047], [14729, 63048], - [25015, 63049], [25039, 63051], [14776, 63052], [25132, 63053], - [25317, 63055], [14840, 63057], [22193, 63058], [14851, 63059], - [25570, 63060], [25595, 63061], [25607, 63062], [14923, 63064], - [25792, 63065], [40863, 63068], [14999, 63069], [25990, 63070], - [15037, 63071], [26111, 63072], [26195, 63073], [15090, 63074], - [26258, 63075], [15138, 63076], [26390, 63077], [15170, 63078], - [26532, 63079], [15192, 63081], [26698, 63082], [26756, 63083], - [15218, 63084], [15217, 63085], [15227, 63086], [26889, 63087], - [26947, 63088], [29276, 63089], [26980, 63090], [27039, 63091], - [27013, 63092], [27094, 63094], [15325, 63095], [27237, 63096], - [27252, 63097], [27249, 63098], [27266, 63099], [15340, 63100], - [27289, 63101], [15346, 63102], [27307, 63103], [27317, 63104], - [27348, 63105], [27382, 63106], [27521, 63107], [27585, 63108], - [27626, 63109], [27765, 63110], [27818, 63111], [15563, 63112], - [27906, 63113], [27910, 63114], [27942, 63115], [28033, 63116], - [15599, 63117], [28068, 63118], [28081, 63119], [28181, 63120], - [28184, 63121], [28201, 63122], [28294, 63123], [63124, 166336], - [28347, 63125], [28386, 63126], [28378, 63127], [40831, 63128], - [28392, 63129], [28393, 63130], [28452, 63131], [28468, 63132], - [15686, 63133], [63134, 147265], [28545, 63135], [28606, 63136], - [15722, 63137], [15733, 63138], [29111, 63139], [23705, 63140], - [15754, 63141], [28716, 63142], [15761, 63143], [28752, 63144], - [28756, 63145], [28783, 63146], [28799, 63147], [63149, 131877], - [17345, 63150], [13809, 63151], [63152, 134872], [13902, 58134], - [15789, 58172], [58173, 154725], [26237, 58183], [31860, 58188], - [29837, 58197], [32402, 58215], [17667, 58232], [58260, 151480], - [58270, 133901], [58277, 158474], [13438, 58311], [58317, 143087], - [58325, 146613], [58343, 159385], [34673, 58364], [25537, 58385], - [30583, 58387], [35210, 58390], [58406, 147343], [35660, 58415], - [58440, 150729], [18730, 58464], [58471, 172052], [58472, 165564], - [58473, 165121], [15088, 58490], [28815, 58511], [58529, 140922], - [58637, 158120], [58646, 148043], [26760, 58662], [58664, 139611], - [40802, 58702], [37830, 58793], [58802, 131967], [37734, 58888], - [37519, 58901], [34324, 58954], [58986, 173147], [16784, 59010], - [26511, 59045], [26654, 59048], [14435, 59051], [59077, 149996], - [15129, 59128], [33942, 59176], [59241, 149858], [14818, 59254], - [33920, 59259], [17262, 59328], [38769, 59402], [39323, 59427], - [18733, 59499], [28439, 59703], [59704, 160009], [28838, 59746], - [59752, 150095], [32357, 59753], [23855, 59755], [15859, 59756], - [59758, 150109], [59759, 137183], [32164, 59760], [33830, 59761], - [21637, 59762], [59763, 146170], [59765, 131604], [22398, 59766], - [59767, 133333], [59768, 132633], [16357, 59769], [59770, 139166], - [59771, 172726], [28675, 59772], [59773, 168283], [23920, 59774], - [29583, 59775], [59777, 166489], [59778, 168992], [20424, 59779], - [32743, 59780], [29456, 59782], [29496, 59784], [29505, 59787], - [16041, 59789], [29173, 59792], [59793, 149746], [29665, 59794], - [16074, 59796], [16081, 59798], [29721, 59801], [29726, 59802], - [29727, 59803], [16098, 59804], [16112, 59805], [16116, 59806], - [16122, 59807], [29907, 59808], [16142, 59809], [16211, 59810], - [30061, 59812], [30066, 59813], [30093, 59814], [16252, 59815], - [30152, 59816], [30285, 59819], [30324, 59821], [16348, 59822], - [30330, 59823], [29064, 59825], [22051, 59826], [35200, 59827], - [16413, 59829], [30531, 59830], [16441, 59831], [16453, 59833], - [13787, 59834], [30616, 59835], [16490, 59836], [16495, 59837], - [30654, 59839], [30667, 59840], [30744, 59842], [30748, 59844], - [30791, 59847], [30801, 59848], [30822, 59849], [33864, 59850], - [59851, 152885], [31027, 59852], [31026, 59854], [16649, 59856], - [31121, 59857], [31238, 59860], [16743, 59862], [16818, 59864], - [31420, 59865], [33401, 59866], [16836, 59867], [31439, 59868], - [31451, 59869], [16847, 59870], [31586, 59872], [31596, 59873], - [31611, 59874], [31762, 59875], [16992, 59877], [17018, 59878], - [31867, 59879], [31900, 59880], [17036, 59881], [31928, 59882], - [17044, 59883], [36755, 59885], [28864, 59886], [59887, 134351], - [32207, 59888], [32212, 59889], [32208, 59890], [32253, 59891], - [32692, 59893], [29343, 59894], [17303, 59895], [32800, 59896], - [32805, 59897], [32814, 59899], [32817, 59900], [32852, 59901], - [22452, 59903], [28832, 59904], [32951, 59905], [33001, 59906], - [17389, 59907], [33036, 59908], [33038, 59910], [33042, 59911], - [33044, 59913], [17409, 59914], [15161, 59915], [33110, 59916], - [33113, 59917], [33114, 59918], [17427, 59919], [33148, 59921], - [17445, 59923], [17453, 59925], [33189, 59926], [22511, 59927], - [33217, 59928], [33252, 59929], [33364, 59930], [17551, 59931], - [33398, 59933], [33482, 59934], [33496, 59935], [17584, 59937], - [33623, 59938], [38505, 59939], [33797, 59941], [28917, 59942], - [33892, 59943], [33928, 59945], [17668, 59946], [33982, 59947], - [34017, 59948], [34040, 59949], [34064, 59950], [34104, 59951], - [34130, 59952], [17723, 59953], [34159, 59954], [34160, 59955], - [34272, 59956], [17783, 59957], [34418, 59958], [34450, 59959], - [34543, 59961], [38469, 59962], [17926, 59964], [17943, 59965], - [34990, 59966], [35071, 59967], [35108, 59968], [35217, 59970], - [59971, 162151], [35384, 59973], [35476, 59974], [35508, 59975], - [35921, 59976], [36052, 59977], [36082, 59978], [36124, 59979], - [18328, 59980], [36291, 59982], [18413, 59983], [36410, 59985], - [22356, 59987], [22005, 59989], [18487, 59991], [36558, 59992], - [36578, 59993], [36580, 59994], [36589, 59995], [36594, 59996], - [36801, 59998], [36810, 59999], [36812, 60000], [36915, 60001], - [18605, 60003], [39136, 60004], [37395, 60005], [18718, 60006], - [37416, 60007], [37464, 60008], [37483, 60009], [37553, 60010], - [37550, 60011], [37567, 60012], [37603, 60013], [37611, 60014], - [37619, 60015], [37620, 60016], [37629, 60017], [37699, 60018], - [37764, 60019], [37805, 60020], [18757, 60021], [18769, 60022], - [37911, 60024], [37917, 60026], [37933, 60027], [37950, 60028], - [18794, 60029], [37972, 60030], [38009, 60031], [38189, 60032], - [38306, 60033], [18855, 60034], [38388, 60035], [38451, 60036], - [18917, 60037], [18980, 60039], [38720, 60040], [18997, 60041], - [38834, 60042], [38850, 60043], [19172, 60045], [39097, 60047], - [19225, 60048], [39153, 60049], [22596, 60050], [39193, 60052], - [39223, 60055], [39261, 60057], [39266, 60058], [19312, 60059], - [39365, 60060], [19357, 60061], [39484, 60062], [39695, 60063], - [39785, 60065], [39901, 60067], [39921, 60068], [39924, 60069], - [19565, 60070], [39968, 60071], [14191, 60072], [60073, 138178], - [40265, 60074], [40702, 60076], [22096, 60077], [40381, 60079], - [40444, 60081], [38134, 60082], [36790, 60083], [40625, 60086], - [40637, 60087], [40646, 60088], [38108, 60089], [40674, 60090], - [40689, 60091], [40696, 60092], [40772, 60094], [60095, 131220], - [60096, 131767], [60097, 132000], [38083, 60099], [60101, 132311], - [38081, 60103], [60105, 132565], [60106, 132629], [60107, 132726], - [60108, 136890], [22359, 60109], [29043, 60110], [60111, 133826], - [60112, 133837], [60113, 134079], [60115, 194619], [60116, 134091], - [21662, 60117], [60118, 134139], [60119, 134203], [60120, 134227], - [60121, 134245], [60122, 134268], [60124, 134285], [60126, 134325], - [60127, 134365], [60128, 134381], [60129, 134511], [60130, 134578], - [60131, 134600], [60135, 134660], [60136, 134670], [60137, 134871], - [60138, 135056], [60139, 134957], [60140, 134771], [60142, 135100], - [60144, 135260], [60145, 135247], [60146, 135286], [60149, 135304], - [60150, 135318], [13895, 60151], [60152, 135359], [60154, 135471], - [60155, 135483], [21348, 60156], [60158, 135907], [60159, 136053], - [60160, 135990], [60162, 136567], [60163, 136729], [60164, 137155], - [60165, 137159], [28859, 60167], [60168, 137261], [60169, 137578], - [60170, 137773], [60171, 137797], [60172, 138282], [60173, 138352], - [60174, 138412], [60175, 138952], [60177, 138965], [60178, 139029], - [29080, 60179], [60181, 139333], [27113, 60182], [14024, 60183], - [60184, 139900], [60185, 140247], [60186, 140282], [60187, 141098], - [60188, 141425], [60189, 141647], [60191, 141671], [60192, 141715], - [60193, 142037], [60195, 142056], [60197, 142094], [60199, 142143], - [60202, 142412], [60204, 142472], [60205, 142519], [60206, 154600], - [60207, 142600], [60208, 142610], [60209, 142775], [60210, 142741], - [60211, 142914], [60212, 143220], [60213, 143308], [60214, 143411], - [60215, 143462], [60216, 144159], [60217, 144350], [60222, 144743], - [60223, 144883], [60227, 144922], [60228, 145174], [22709, 60231], - [60234, 146087], [60237, 146961], [60238, 147129], [60243, 147737], - [60245, 148206], [60246, 148237], [60248, 148276], [60249, 148374], - [60258, 148484], [60259, 148694], [22408, 60260], [60261, 149108], - [60263, 149295], [60271, 149522], [60272, 149755], [60273, 150037], - [60275, 150208], [22885, 60277], [60279, 151430], [60282, 151596], - [22335, 60284], [60286, 152217], [60287, 152601], [60291, 152646], - [60292, 152686], [60296, 152895], [60298, 152926], [60300, 152930], - [60301, 152934], [60302, 153543], [60304, 153693], [60309, 153859], - [60312, 154286], [60313, 154505], [60314, 154630], [22433, 60316], - [29009, 60317], [60319, 155906], [60322, 156082], [60325, 156674], - [60326, 156746], [60330, 156804], [60334, 156808], [60336, 156946], - [60338, 157119], [60339, 157365], [22201, 60347], [60349, 157436], - [13848, 60355], [60357, 157593], [60358, 157806], [60360, 157790], - [60362, 157895], [60366, 157990], [60368, 158009], [60371, 158202], - [60373, 158253], [60378, 158260], [60379, 158555], [60383, 158621], - [60385, 158884], [60388, 159150], [60392, 159819], [60393, 160205], - [60395, 160384], [60396, 160389], [60399, 160395], [60401, 160486], - [38047, 60404], [60405, 160848], [14009, 60416], [60424, 161740], - [60425, 161880], [22230, 60426], [60435, 162269], [60441, 162301], - [60442, 162314], [60443, 162571], [60444, 163174], [60448, 163849], - [60459, 163875], [60463, 163912], [60466, 163971], [60479, 163984], - [60480, 164084], [60481, 164142], [60483, 164175], [60485, 164271], - [60486, 164378], [60487, 164614], [60488, 164655], [60489, 164746], - [60491, 164968], [60492, 165546], [25574, 60494], [60495, 166230], - [60498, 166328], [60500, 166375], [60502, 166376], [60503, 166726], - [60504, 166868], [60506, 166921], [60508, 167877], [60509, 168172], - [60511, 168208], [60512, 168252], [15863, 60513], [60514, 168286], - [60515, 150218], [36816, 60516], [60519, 169191], [60521, 169392], - [60522, 169400], [60523, 169778], [60524, 170193], [60525, 170313], - [60526, 170346], [60527, 170435], [60528, 170536], [60529, 170766], - [60530, 171354], [60531, 171419], [32415, 60532], [60533, 171768], - [60534, 171811], [19620, 60535], [38215, 60536], [60537, 172691], - [29090, 60538], [60539, 172799], [60542, 173515], [19868, 60543], - [60544, 134300], [36798, 60545], [36794, 60547], [60548, 140464], - [36793, 60549], [60550, 150163], [20202, 60555], [60557, 166700], - [36480, 60560], [60561, 137205], [60563, 166764], [60564, 166809], - [60566, 157359], [60568, 161365], [60570, 153141], [60571, 153942], - [20122, 60572], [60573, 155265], [60576, 134765], [60579, 147080], - [60580, 150686], [60583, 137206], [60584, 137339], [60587, 154698], - [60589, 152337], [15814, 60590], [60596, 155352], [19996, 60600], - [60601, 135146], [60602, 134473], [60603, 145082], [60638, 151880], - [21982, 60644], [34694, 60672], [60676, 135361], [60679, 149254], - [23440, 60680], [60682, 157843], [60684, 141044], [60685, 163119], - [60686, 147875], [60687, 163187], [60688, 159440], [60689, 160438], - [60691, 135641], [60693, 146684], [60694, 173737], [60695, 134828], - [60698, 138402], [60700, 151490], [60702, 135147], [60706, 142752], - [60710, 135148], [60711, 134666], [60714, 135149], [60717, 135559], - [19994, 60721], [19972, 60722], [23309, 60724], [13996, 60727], - [21373, 60729], [13989, 60730], [22682, 60732], [60733, 150382], - [22442, 60736], [60737, 154261], [60738, 133497], [60741, 140389], - [60746, 146686], [60747, 171824], [60749, 151465], [60750, 169374], - [60753, 146870], [60755, 157619], [60756, 145184], [60759, 147191], - [60760, 146988], [60785, 143578], [60789, 135849], [22439, 60790], - [60791, 149859], [60794, 159918], [60801, 137068], [60806, 160100], - [60809, 159010], [60810, 150242], [39963, 60837], [60838, 149822], - [15878, 60846], [60881, 159011], [60887, 132092], [60891, 146685], - [60893, 149785], [22394, 60904], [21722, 60912], [29050, 60928], - [60949, 150135], [60955, 166490], [60962, 194624], [60976, 137275], - [61000, 155993], [61014, 144373], [61019, 166850], [61024, 138566], - [61054, 159441], [13877, 61065], [61084, 166701], [21024, 61088], - [15384, 61089], [61090, 146631], [61091, 155351], [61092, 161366], - [61093, 152881], [61094, 137540], [61096, 170243], [61097, 159196], - [61098, 159917], [61100, 156077], [61101, 166415], [61102, 145015], - [61103, 131310], [61104, 157766], [61105, 151310], [17762, 61106], - [23327, 61107], [61108, 156492], [40784, 61109], [40614, 61110], - [61111, 156267], [20962, 57415], [21314, 57416], [26285, 57520], - [22620, 57547], [21843, 57566], [15749, 57594], [24928, 57608], - [18606, 57668], [38845, 57676], [57693, 137335], [24755, 57703], - [33828, 57711], [38932, 57748], [57749, 147596], [57764, 143486], - [57787, 138813], [15147, 57798], [15666, 57824], [57857, 132021], - [28801, 57944], [23708, 57959], [58017, 132547], [14128, 58028], - [58096, 136054], [58097, 150034], [58111, 166699], [58112, 155779], - [256, 62233], [193, 62234], [461, 62235], [192, 62236], [274, 62237], - [201, 62238], [282, 62239], [200, 62240], [332, 62241], [211, 62242], - [465, 62243], [210, 62244], 62245, [7870, 62246], 62247, [7872, 62248], - [202, 62249], [257, 62250], [225, 62251], [462, 62252], [224, 62253], - [593, 62254], [275, 62255], [233, 62256], [283, 62257], [232, 62258], - [299, 62259], [237, 62260], [464, 62261], [236, 62262], [333, 62263], - [243, 62264], [466, 62265], [242, 62266], [363, 62267], [250, 62268], - [468, 62269], [249, 62270], [470, 62271], [472, 62272], [474, 62273], - [476, 62274], [252, 62275], 62276, [7871, 62277], 62278, [7873, 62279], - [234, 62280], [609, 62281], [643, 63551], [592, 63552], [603, 63553], - [596, 63554], [629, 63555], [339, 63556], [248, 63557], [331, 63558], - [650, 63559], [618, 63560], {f: 2, c: 62282}, [11933, 63530], - [11974, 63539], [12003, 63547], 20539, 28158, [62841, 171123], 62842, - [15817, 62843], 34959, [62845, 147790], 28791, 23797, [19232, 62848], - [62849, 152013], [13657, 62850], [62851, 154928], 24866, [62853, 166450], - 36775, 37366, 29073, 26393, 29626, [62859, 144001], [62860, 172295], - [15499, 62861], [62862, 137600], [19216, 62863], 30948, 29698, 20910, - [62867, 165647], [16393, 62868], 27235, [62870, 172730], [16931, 62871], - 34319, 31274, [62875, 170311], [62876, 166634], 38741, 28749, 21284, - [62880, 139390], 37876, 30425, [62883, 166371], 62884, 30685, 20131, 20464, - 20668, 20015, 20247, 62891, 21556, 32139, 22674, 22736, [62896, 138678], - 24210, 24217, 24514, [62900, 141074], 25995, [62902, 144377], 26905, 27203, - [62905, 146531], 27903, 29184, [62909, 148741], 29580, [16091, 62911], - [62912, 150035], 23317, 29881, 35715, [62916, 154788], [62917, 153237], - 31379, 31724, 31939, 32364, 33528, 34199, 62924, 34960, 62926, 36537, - 62928, 36815, 34143, 39392, 37409, 62933, [62934, 167353], [62935, 136255], - [16497, 62936], [17058, 62937], 23066, 39016, 26475, [17014, 62944], 22333, - 34262, [62948, 149883], 33471, [62950, 160013], [19585, 62951], - [62952, 159092], 23931, [62954, 158485], [62955, 159678], {f: 2, c: 62956}, - 23446, 62959, 32347], - 'Adobe-GB1': [{f: 95, c: 32}, {f: 3, c: 12288}, [183, 12539], 713, 711, 168, - 12291, 12293, 8212, 65374, 8214, [8230, 8943], {f: 2, c: 8216}, - {f: 2, c: 8220}, {f: 2, c: 12308}, {f: 8, c: 12296}, {f: 2, c: 12310}, - {f: 2, c: 12304}, 177, 215, 247, 8758, {f: 2, c: 8743}, 8721, 8719, 8746, - 8745, 8712, 8759, 8730, 8869, 8741, 8736, 8978, 8857, 8747, 8750, 8801, - 8780, 8776, 8765, 8733, 8800, {f: 2, c: 8814}, {f: 2, c: 8804}, 8734, 8757, - 8756, 9794, 9792, 176, {f: 2, c: 8242}, 8451, 65284, 164, {f: 2, c: 65504}, - 8240, 167, 8470, 9734, 9733, 9675, 9679, 9678, 9671, 9670, 9633, 9632, - 9651, 9650, 8251, 8594, {f: 2, c: 8592}, 8595, 12307, {f: 20, c: 9352}, - {f: 20, c: 9332}, {f: 10, c: 9312}, {f: 10, c: 12832}, {f: 12, c: 8544}, - {f: 3, c: 65281}, 65509, {f: 89, c: 65285}, 65507, {f: 83, c: 12353}, - {f: 86, c: 12449}, {f: 17, c: 913}, {f: 7, c: 931}, {f: 17, c: 945}, - {f: 7, c: 963}, {f: 7, c: 59277}, {f: 2, c: 65077}, {f: 2, c: 65081}, - {f: 2, c: 65087}, {f: 2, c: 65085}, {f: 4, c: 65089}, {f: 2, c: 59284}, - {f: 2, c: 65083}, {f: 2, c: 65079}, 65073, 59286, {f: 2, c: 65075}, - {f: 6, c: 1040}, 1025, {f: 32, c: 1046}, 1105, {f: 26, c: 1078}, 257, 225, - 462, 224, 275, 233, 283, 232, 299, 237, 464, 236, 333, 243, 466, 242, 363, - 250, 468, 249, 470, 472, 474, 476, 252, 234, 593, 7743, 324, 328, 505, 609, - {f: 37, c: 12549}, 0, {f: 76, c: 9472}, {s: 126}, 21834, 38463, 22467, - 25384, 21710, 21769, 21696, 30353, 30284, 34108, 30702, 33406, 30861, - 29233, 38552, 38797, 27688, 23433, 20474, 25353, 26263, 23736, 33018, - 26696, 32942, 26114, 30414, 20985, 25942, 29100, 32753, 34948, 20658, - 22885, 25034, 28595, 33453, 25420, 25170, 21485, 21543, 31494, - [12043, 20843], 30116, 24052, 25300, 36299, 38774, 25226, 32793, 22365, - 38712, 32610, 29240, [12137, 30333], 26575, 30334, 25670, 20336, 36133, - 25308, 31255, 26001, 29677, 25644, 25203, 33324, 39041, 26495, 29256, - 25198, 25292, 20276, 29923, 21322, 21150, 32458, 37030, 24110, 26758, - 27036, 33152, 32465, 26834, 30917, 34444, 38225, 20621, 35876, 33502, - 32990, 21253, 35090, 21093, 34180, 38649, 20445, 22561, 39281, 23453, - 25265, 25253, 26292, 35961, 40077, 29190, 26479, 30865, 24754, 21329, - 21271, 36744, 32972, 36125, 38049, 20493, 29384, 22791, 24811, 28953, - 34987, 22868, 33519, 26412, 31528, 23849, 32503, 29997, 27893, 36454, - 36856, 36924, [12240, 40763], [12112, 27604], 37145, 31508, 24444, 30887, - 34006, 34109, 27605, 27609, 27606, 24065, 24199, 30201, 38381, 25949, - 24330, 24517, 36767, 22721, 33218, 36991, 38491, 38829, 36793, 32534, - 36140, 25153, 20415, 21464, 21342, {f: 2, c: 36776}, 36779, 36941, 26631, - 24426, 33176, 34920, 40150, 24971, 21035, 30250, 24428, 25996, 28626, - 28392, 23486, 25672, 20853, 20912, 26564, 19993, 31177, 39292, 28851, - 30149, 24182, 29627, 33760, 25773, 25320, 38069, 27874, 21338, 21187, - 25615, 38082, 31636, 20271, 24091, 33334, 33046, 33162, 28196, 27850, - 39539, 25429, [12056, 21340], 21754, 34917, 22496, 19981, 24067, 27493, - 31807, 37096, 24598, 25830, 29468, 35009, 26448, 25165, 36130, 30572, - 36393, 37319, 24425, 33756, 34081, 39184, 21442, 34453, 27531, 24813, - 24808, 28799, 33485, 33329, 20179, 27815, 34255, 25805, 31961, 27133, - 26361, 33609, 21397, 31574, 20391, 20876, 27979, 23618, 36461, 25554, - 21449, 33580, 33590, 26597, 30900, 25661, 23519, 23700, 24046, 35815, - 25286, 26612, 35962, 25600, 25530, 34633, 39307, 35863, 32544, 38130, - 20135, 38416, 39076, 26124, 29462, 22330, 23581, 24120, 38271, 20607, - 32928, [12058, 21378], 25950, 30021, 21809, 20513, 36229, 25220, 38046, - 26397, 22066, 28526, 24034, 21557, 28818, 36710, 25199, 25764, 25507, - 24443, 28552, 37108, [12162, 33251], [12192, 36784], 23576, 26216, 24561, - 27785, 38472, 36225, 34924, 25745, 31216, 22478, 27225, 25104, 21576, - 20056, 31243, 24809, 28548, 35802, 25215, 36894, 39563, 31204, 21507, - 30196, 25345, 21273, 27744, 36831, 24347, 39536, 32827, 40831, 20360, - 23610, [12186, 36196], 32709, 26021, 28861, 20805, 20914, [12173, 34411], - 23815, 23456, 25277, 37228, 30068, 36364, 31264, 24833, 31609, 20167, - 32504, 30597, 19985, 33261, 21021, 20986, 27249, 21416, 36487, 38148, - 38607, 28353, 38500, 26970, 30784, 20648, 30679, 25616, 35302, 22788, - 25571, 24029, 31359, 26941, 20256, 33337, 21912, 20018, 30126, 31383, - 24162, 24202, 38383, 21019, 21561, 28810, 25462, 38180, 22402, 26149, - 26943, 37255, 21767, 28147, 32431, 34850, 25139, 32496, 30133, 33576, - 30913, 38604, 36766, 24904, 29943, 35789, 27492, 21050, 36176, 27425, - 32874, 33905, 22257, 21254, 20174, 19995, 20945, 31895, 37259, 31751, - 20419, 36479, 31713, 31388, 25703, 23828, 20652, 33030, 30209, 31929, - 28140, 32736, 26449, 23384, [12072, 23544], 30923, 25774, 25619, 25514, - 25387, 38169, 25645, 36798, 31572, 30249, 25171, [12068, 22823], 21574, - [12109, 27513], 20643, 25140, 24102, 27526, 20195, 36151, 34955, 24453, - 36910, 24608, 32829, 25285, 20025, 21333, 37112, 25528, 32966, 26086, - 27694, 20294, 24814, 28129, 35806, 24377, 34507, 24403, 25377, 20826, - 33633, 26723, [12049, 20992], 25443, 36424, 20498, 23707, 31095, 23548, - 21040, 31291, 24764, 36947, 30423, 24503, 24471, 30340, 36460, 28783, - 30331, 31561, 30634, 20979, 37011, 22564, 20302, 28404, 36842, 25932, - 31515, 29380, 28068, 32735, 23265, 25269, 24213, 22320, 33922, 31532, - 24093, 24351, 36882, 32532, 39072, 25474, 28359, 30872, 28857, 20856, - 38747, 22443, 30005, 20291, 30008, 24215, 24806, 22880, 28096, 27583, - 30857, 21500, 38613, 20939, 20993, 25481, 21514, 38035, 35843, 36300, - 29241, 30879, 34678, 36845, 35853, 21472, 19969, 30447, 21486, 38025, - 39030, [12237, 40718], 38189, 23450, 35746, 20002, 19996, 20908, 33891, - 25026, 21160, 26635, 20375, 24683, 20923, 27934, 20828, 25238, - [12099, 26007], 38497, [12182, 35910], 36887, 30168, 37117, 30563, 27602, - 29322, 29420, 35835, 22581, 30585, 36172, 26460, 38208, 32922, 24230, - 28193, 22930, 31471, 30701, 38203, 27573, 26029, 32526, 22534, 20817, - 38431, 23545, 22697, 21544, 36466, 25958, 39039, 22244, 38045, 30462, - 36929, 25479, 21702, 22810, 22842, 22427, 36530, 26421, 36346, 33333, - 21057, 24816, 22549, 34558, 23784, 40517, 20420, 39069, 35769, 23077, - 24694, 21380, 25212, 36943, 37122, 39295, 24681, [12157, 32780], - [12041, 20799], [12159, 32819], 23572, 39285, 27953, [12038, 20108], 36144, - 21457, 32602, 31567, 20240, 20047, 38400, 27861, 29648, 34281, 24070, - 30058, 32763, 27146, 30718, 38034, 32321, 20961, 28902, 21453, 36820, - 33539, 36137, 29359, 39277, 27867, 22346, 33459, [12101, 26041], 32938, - 25151, 38450, 22952, 20223, 35775, 32442, 25918, 33778, [12206, 38750], - 21857, 39134, 32933, 21290, 35837, 21536, 32954, 24223, 27832, 36153, - 33452, 37210, 21545, 27675, 20998, 32439, 22367, 28954, 27774, 31881, - 22859, 20221, 24575, 24868, 31914, 20016, 23553, 26539, 34562, 23792, - 38155, 39118, 30127, 28925, 36898, 20911, 32541, 35773, 22857, 20964, - 20315, 21542, 22827, 25975, 32932, 23413, 25206, 25282, 36752, 24133, - 27679, 31526, 20239, 20440, 26381, 28014, 28074, 31119, 34993, 24343, - 29995, 25242, 36741, 20463, 37340, 26023, 33071, 33105, 24220, 33104, - 36212, 21103, 35206, 36171, 22797, 20613, 20184, [12201, 38428], - [12119, 29238], 33145, 36127, 23500, 35747, 38468, 22919, 32538, 21648, - 22134, 22030, 35813, 25913, 27010, 38041, 30422, 28297, [12082, 24178], - [12130, 29976], 26438, 26577, 31487, 32925, 36214, 24863, 31174, 25954, - 36195, 20872, 21018, 38050, 32568, 32923, 32434, 23703, 28207, 26464, - 31705, 30347, [12220, 39640], 33167, 32660, 31957, 25630, 38224, 31295, - 21578, 21733, 27468, 25601, [12093, 25096], 40509, 33011, 30105, 21106, - [12208, 38761], 33883, 26684, 34532, 38401, 38548, 38124, 20010, 21508, - 32473, 26681, 36319, 32789, 26356, 24218, 32697, 22466, 32831, 26775, - [12079, 24037], 25915, 21151, 24685, 40858, 20379, 36524, 20844, 23467, - [12088, 24339], 24041, 27742, 25329, 36129, 20849, 38057, 21246, 27807, - 33503, 29399, 22434, 26500, 36141, 22815, 36764, 33735, 21653, 31629, - 20272, 27837, 23396, 22993, [12238, 40723], 21476, 34506, [12219, 39592], - [12181, 35895], 32929, 25925, 39038, 22266, 38599, 21038, [12128, 29916], - 21072, 23521, 25346, 35074, 20054, 25296, 24618, 26874, 20851, 23448, - 20896, 35266, 31649, 39302, 32592, 24815, 28748, 36143, 20809, - [12084, 24191], 36891, 29808, 35268, 22317, 30789, 24402, 40863, 38394, - 36712, [12225, 39740], 35809, 30328, 26690, 26588, 36330, 36149, 21053, - 36746, 28378, 26829, 38149, 37101, 22269, 26524, 35065, 36807, 21704, - 39608, 23401, 28023, 27686, 20133, 23475, 39559, 37219, 25000, 37039, - 38889, 21547, 28085, 23506, 20989, 21898, 32597, 32752, 25788, 25421, - 26097, 25022, 24717, 28938, 27735, 27721, 22831, 26477, 33322, 22741, - 22158, 35946, 27627, 37085, 22909, 32791, 21495, 28009, 21621, 21917, - 33655, 33743, 26680, [12146, 31166], 21644, 20309, 21512, 30418, 35977, - 38402, 27827, 28088, 36203, 35088, 40548, 36154, 22079, [12234, 40657], - 30165, 24456, 29408, 24680, 21756, 20136, 27178, 34913, 24658, 36720, - 21700, 28888, 34425, 40511, 27946, 23439, 24344, 32418, 21897, 20399, - 29492, 21564, 21402, 20505, 21518, 21628, 20046, 24573, 29786, 22774, - 33899, 32993, 34676, 29392, 31946, 28246, 24359, 34382, 21804, 25252, - 20114, 27818, 25143, 33457, 21719, 21326, 29502, 28369, 30011, 21010, - 21270, 35805, 27088, 24458, 24576, 28142, 22351, 27426, 29615, 26707, - 36824, 32531, 25442, 24739, 21796, 30186, 35938, 28949, 28067, 23462, - 24187, 33618, 24908, 40644, 30970, 34647, 31783, 30343, 20976, 24822, - 29004, 26179, 24140, 24653, 35854, 28784, 25381, 36745, 24509, 24674, - 34516, 22238, 27585, 24724, 24935, 21321, 24800, 26214, 36159, 31229, - 20250, 28905, 27719, 35763, 35826, 32472, 33636, 26127, 23130, 39746, - 27985, 28151, 35905, 27963, 20249, [12117, 28779], 33719, 25110, 24785, - 38669, 36135, 31096, 20987, 22334, 22522, 26426, 30072, 31293, 31215, - 31637, 32908, 39269, 36857, 28608, 35749, 40481, 23020, 32489, 32521, - 21513, 26497, 26840, 36753, 31821, 38598, 21450, 24613, 30142, 27762, - 21363, 23241, 32423, 25380, [12047, 20960], 33034, [12080, 24049], 34015, - 25216, 20864, 23395, 20238, 31085, 21058, 24760, 27982, 23492, 23490, - 35745, 35760, 26082, 24524, 38469, 22931, 32487, 32426, 22025, 26551, - 22841, 20339, 23478, 21152, 33626, 39050, 36158, 30002, 38078, 20551, - 31292, 20215, 26550, 39550, 23233, 27516, 30417, 22362, 23574, 31546, - 38388, 29006, 20860, 32937, 33392, 22904, 32516, 33575, 26816, 26604, - 30897, 30839, 25315, 25441, 31616, 20461, 21098, 20943, 33616, 27099, - 37492, 36341, 36145, 35265, 38190, 31661, 20214, 20581, 33328, 21073, - 39279, 28176, 28293, 28071, 24314, 20725, 23004, 23558, 27974, 27743, - 30086, 33931, 26728, 22870, 35762, 21280, 37233, 38477, 34121, 26898, - 30977, 28966, 33014, 20132, 37066, 27975, 39556, 23047, 22204, 25605, - 38128, 30699, 20389, 33050, 29409, [12179, 35282], 39290, 32564, 32478, - 21119, 25945, 37237, 36735, 36739, 21483, 31382, 25581, 25509, 30342, - 31224, 34903, 38454, 25130, 21163, 33410, 26708, 26480, 25463, 30571, - 31469, 27905, 32467, 35299, 22992, 25106, 34249, 33445, 30028, 20511, - 20171, 30117, 35819, 23626, [12081, 24062], 31563, [12100, 26020], - [12198, 37329], 20170, 27941, 35167, 32039, 38182, 20165, 35880, 36827, - 38771, 26187, 31105, 36817, 28908, 28024, 23613, 21170, 33606, 20834, - 33550, 30555, 26230, 40120, 20140, 24778, 31934, 31923, 32463, 20117, - 35686, 26223, 39048, 38745, 22659, 25964, 38236, 24452, 30153, 38742, - 31455, 31454, 20928, 28847, 31384, 25578, 31350, 32416, 29590, - [12210, 38893], 20037, 28792, 20061, 37202, 21417, 25937, 26087, - [12165, 33276], 33285, 21646, 23601, 30106, 38816, 25304, 29401, 30141, - 23621, 39545, 33738, 23616, 21632, 30697, 20030, 27822, 32858, 25298, - 25454, 24040, 20855, 36317, 36382, 38191, 20465, 21477, 24807, 28844, - 21095, 25424, 40515, 23071, 20518, 30519, 21367, 32482, 25733, 25899, - 25225, 25496, 20500, 29237, 35273, 20915, 35776, 32477, 22343, 33740, - 38055, 20891, 21531, 23803, 20426, 31459, 27994, 37089, 39567, 21888, - 21654, 21345, 21679, 24320, 25577, 26999, 20975, 24936, 21002, 22570, - 21208, 22350, 30733, 30475, 24247, 24951, 31968, 25179, 25239, 20130, - 28821, 32771, 25335, 28900, 38752, 22391, 33499, 26607, 26869, 30933, - 39063, 31185, 22771, 21683, 21487, 28212, 20811, 21051, 23458, 35838, - 32943, 21827, 22438, 24691, 22353, 21549, 31354, 24656, 23380, 25511, - 25248, [12061, 21475], 25187, 23495, 26543, 21741, 31391, 33510, 37239, - 24211, 35044, 22840, 22446, 25358, 36328, 33007, 22359, 31607, 20393, - 24555, 23485, 27454, 21281, 31568, 29378, 26694, 30719, 30518, 26103, - 20917, 20111, 30420, 23743, 31397, 33909, 22862, 39745, 20608, 39304, - 24871, 28291, 22372, 26118, 25414, 22256, 25324, 25193, 24275, 38420, - 22403, 25289, 21895, 34593, 33098, 36771, 21862, 33713, 26469, 36182, - 34013, 23146, 26639, 25318, 31726, 38417, 20848, 28572, 35888, 25597, - 35272, 25042, 32518, 28866, 28389, 29701, 27028, 29436, 24266, 37070, - 26391, 28010, 25438, 21171, 29282, [12156, 32769], 20332, 23013, 37226, - 28889, 28061, 21202, 20048, 38647, 38253, 34174, 30922, 32047, 20769, - 22418, 25794, 32907, 31867, 27882, 26865, 26974, 20919, 21400, 26792, - 29313, 40654, 31729, 29432, 31163, 28435, 29702, 26446, [12197, 37324], - 40100, 31036, 33673, 33620, 21519, 26647, 20029, 21385, 21169, 30782, - 21382, 21033, 20616, 20363, 20432, 30178, [12148, 31435], 31890, 27813, - [12202, 38582], [12050, 21147], 29827, 21737, 20457, 32852, 33714, 36830, - 38256, 24265, 24604, 28063, 24088, 25947, 33080, 38142, 24651, 28860, - 32451, 31918, 20937, 26753, 31921, 33391, 20004, 36742, 37327, 26238, - 20142, 35845, 25769, 32842, 20698, 30103, 29134, 23525, 36797, 28518, - 20102, 25730, 38243, 24278, 26009, 21015, 35010, 28872, 21155, 29454, - 29747, 26519, 30967, 38678, 20020, 37051, 40158, 28107, 20955, 36161, - 21533, 25294, 29618, 33777, 38646, 40836, 38083, 20278, 32666, 20940, - 28789, 38517, 23725, 39046, 21478, 20196, 28316, 29705, 27060, 30827, - 39311, 30041, 21016, 30244, 27969, 26611, 20845, 40857, 32843, 21657, - 31548, 31423, 38534, 22404, 25314, 38471, 27004, 23044, 25602, 31699, - 28431, 38475, 33446, 21346, 39045, 24208, 28809, 25523, 21348, 34383, - 40065, 40595, 30860, 38706, 36335, 36162, [12229, 40575], 28510, 31108, - 24405, 38470, 25134, 39540, 21525, 38109, 20387, 26053, 23653, 23649, - 32533, 34385, 27695, 24459, 29575, 28388, 32511, 23782, 25371, 23402, - 28390, 21365, 20081, 25504, 30053, 25249, 36718, 20262, 20177, 27814, - 32438, 35770, 33821, 34746, 32599, 36923, 38179, 31657, 39585, 35064, - 33853, 27931, 39558, 32476, 22920, [12231, 40635], 29595, 30721, 34434, - 39532, 39554, 22043, 21527, 22475, 20080, 40614, 21334, 36808, 33033, - 30610, 39314, 34542, 28385, 34067, 26364, 24930, 28459, 35881, 33426, - 33579, 30450, 27667, 24537, 33725, 29483, 33541, 38170, [12113, 27611], - [12141, 30683], 38086, 21359, 33538, 20882, 24125, 35980, 36152, 20040, - 29611, 26522, 26757, 37238, 38665, 29028, 27809, 30473, 23186, 38209, - 27599, 32654, 26151, 23504, 22969, 23194, 38376, 38391, 20204, 33804, - 33945, 27308, 30431, 38192, 29467, 26790, 23391, 30511, 37274, 38753, - 31964, 36855, 35868, 24357, [12150, 31859], 31192, 35269, 27852, 34588, - 23494, 24130, 26825, 30496, 32501, 20885, 20813, 21193, 23081, 32517, - [12207, 38754], 33495, 25551, 30596, 34256, 31186, 28218, 24217, 22937, - 34065, 28781, 27665, 25279, [12139, 30399], 25935, 24751, 38397, 26126, - 34719, 40483, 38125, 21517, 21629, 35884, {f: 2, c: 25720}, 34321, 27169, - 33180, 30952, 25705, 39764, 25273, 26411, 33707, 22696, 40664, 27819, - 28448, 23518, 38476, 35851, 29279, 26576, 25287, 29281, 20137, 22982, - 27597, 22675, 26286, 24149, 21215, 24917, [12106, 26408], [12140, 30446], - 30566, 29287, 31302, 25343, 21738, 21584, 38048, 37027, 23068, 32435, - 27670, 20035, 22902, 32784, 22856, 21335, 30007, 38590, 22218, 25376, - 33041, 24700, 38393, 28118, 21602, 39297, 20869, 23273, 33021, 22958, - 38675, 20522, 27877, 23612, 25311, 20320, 21311, 33147, 36870, 28346, - 34091, 25288, 24180, 30910, 25781, 25467, 24565, 23064, 37247, 40479, - 23615, 25423, 32834, 23421, 21870, 38218, 38221, 28037, 24744, 26592, - 29406, 20957, 23425, 25319, 27870, [12124, 29275], 25197, 38062, 32445, - 33043, 27987, 20892, 24324, 22900, 21162, 24594, [12069, 22899], 26262, - 34384, 30111, 25386, 25062, 31983, 35834, 21734, 27431, 40485, 27572, - 34261, 21589, 20598, 27812, 21866, 36276, 29228, 24085, 24597, 29750, - 25293, 25490, 29260, 24472, 28227, 27966, 25856, 28504, 30424, 30928, - 30460, 30036, 21028, 21467, 20051, 24222, 26049, 32810, 32982, 25243, - 21638, 21032, 28846, 34957, 36305, 27873, 21624, 32986, 22521, 35060, - 36180, 38506, 37197, 20329, 27803, 21943, 30406, 30768, 25256, 28921, - 28558, 24429, 34028, 26842, 30844, 31735, 33192, 26379, 40527, 25447, - 30896, 22383, 30738, 38713, 25209, 25259, 21128, 29749, 27607, 21860, - 33086, 30130, [12138, 30382], 21305, 30174, 20731, 23617, 35692, 31687, - 20559, [12122, 29255], 39575, 39128, 28418, 29922, 31080, 25735, 30629, - 25340, 39057, 36139, 21697, 32856, 20050, 22378, 33529, 33805, 24179, - 20973, 29942, 35780, 23631, 22369, 27900, 39047, 23110, 30772, 39748, - 36843, 31893, 21078, 25169, 38138, 20166, 33670, 33889, 33769, 33970, - 22484, 26420, 22275, 26222, 28006, 35889, 26333, 28689, 26399, 27450, - 26646, 25114, 22971, 19971, 20932, 28422, 26578, 27791, 20854, 26827, - 22855, 27495, 30054, 23822, 33040, 40784, 26071, 31048, 31041, 39569, - 36215, 23682, 20062, 20225, 21551, 22865, 30732, 22120, [12115, 27668], - 36804, 24323, 27773, 27875, 35755, 25488, 24688, 27965, 29301, 25190, - 38030, 38085, 21315, 36801, 31614, 20191, 35878, 20094, 40660, 38065, - 38067, 21069, 28508, 36963, 27973, 35892, 22545, 23884, [12107, 27424], - 27465, 26538, 21595, 33108, 32652, 22681, 34103, 24378, 25250, 27207, - 38201, 25970, 24708, 26725, 30631, 20052, 20392, 24039, 38808, 25772, - 32728, 23789, 20431, 31373, 20999, 33540, 19988, 24623, 31363, 38054, - 20405, 20146, 31206, 29748, 21220, 33465, 25810, 31165, 23517, 27777, - 38738, 36731, 27682, 20542, 21375, 28165, 25806, 26228, 27696, 24773, - 39031, 35831, 24198, 29756, 31351, 31179, 19992, 37041, 29699, 27714, - 22234, 37195, 27845, 36235, 21306, 34502, 26354, 36527, 23624, 39537, - 28192, 21462, 23094, 40843, 36259, 21435, 22280, 39079, 26435, 37275, - 27849, 20840, 30154, 25331, [12125, 29356], 21048, 21149, 32570, 28820, - 30264, 21364, 40522, 27063, 30830, 38592, 35033, 32676, 28982, 29123, - 20873, 26579, 29924, 22756, 25880, 22199, 35753, 39286, 25200, 32469, - 24825, 28909, 22764, 20161, [12040, 20154], 24525, 38887, 20219, 35748, - 20995, 22922, 32427, 25172, 20173, [12103, 26085], 25102, 33592, 33993, - 33635, 34701, 29076, 28342, 23481, 32466, 20887, 25545, 26580, - [12161, 32905], 33593, 34837, 20754, 23418, 22914, 36785, 20083, 27741, - [12042, 20837], 35109, 36719, 38446, 34122, 29790, 38160, 38384, 28070, - 33509, 24369, 25746, 27922, 33832, 33134, 40131, 22622, 36187, 19977, - 21441, 20254, 25955, 26705, 21971, 20007, 25620, 39578, 25195, 23234, - 29791, [12170, 33394], 28073, 26862, 20711, 33678, 30722, 26432, 21049, - 27801, 32433, 20667, 21861, 29022, 31579, 26194, 29642, 33515, 26441, - [12077, 23665], 21024, 29053, 34923, 38378, 38485, 25797, 36193, 33203, - 21892, 27733, 25159, 32558, 22674, 20260, 21830, 36175, 26188, 19978, - 23578, 35059, 26786, 25422, 31245, 28903, 33421, 21242, 38902, 23569, - 21736, 37045, 32461, 22882, 36170, 34503, [12166, 33292], 33293, 36198, - 25668, 23556, 24913, 28041, 31038, 35774, 30775, 30003, 21627, 20280, - [12189, 36523], 28145, 23072, 32453, 31070, 27784, 23457, 23158, 29978, - 32958, 24910, 28183, 22768, [12131, 29983], 29989, 29298, 21319, 32499, - 30465, 30427, 21097, 32988, 22307, 24072, 22833, 29422, 26045, 28287, - 35799, [12075, 23608], 34417, [12055, 21313], [12143, 30707], 25342, 26102, - 20160, [12215, 39135], 34432, 23454, 35782, 21490, [12142, 30690], 20351, - 23630, 39542, 22987, 24335, [12144, 31034], [12064, 22763], 19990, 26623, - 20107, 25325, 35475, 36893, 21183, 26159, 21980, 22124, 36866, 20181, - 20365, 37322, 39280, [12114, 27663], 24066, 24643, 23460, 35270, 35797, - 25910, [12095, 25163], [12216, 39318], 23432, 23551, 25480, 21806, 21463, - 30246, 20861, 34092, 26530, 26803, 27530, 25234, 36755, 21460, 33298, - 28113, 30095, 20070, 36174, 23408, 29087, 34223, 26257, 26329, 32626, - 34560, [12233, 40653], [12239, 40736], 23646, 26415, 36848, 26641, 26463, - 25101, 31446, 22661, 24246, 25968, 28465, 24661, 21047, 32781, 25684, - 34928, 29993, 24069, 26643, 25332, 38684, 21452, 29245, 35841, - [12116, 27700], 30561, 31246, 21550, 30636, 39034, 33308, 35828, 30805, - 26388, 28865, 26031, 25749, 22070, 24605, 31169, 21496, 19997, 27515, - 32902, 23546, 21987, 22235, 20282, 20284, 39282, 24051, 26494, 32824, - 24578, 39042, 36865, 23435, 35772, 35829, 25628, 33368, 25822, 22013, - 33487, 37221, 20439, 32032, 36895, 31903, 20723, 22609, 28335, 23487, - 35785, 32899, 37240, 33948, 31639, 34429, 38539, 38543, 32485, 39635, - 30862, 23681, 31319, 36930, 38567, 31071, 23385, 25439, 31499, 34001, - 26797, 21766, 32553, 29712, 32034, 38145, 25152, 22604, 20182, 23427, - 22905, 22612, 29549, 25374, 36427, 36367, 32974, 33492, 25260, 21488, - 27888, 37214, 22826, 24577, 27760, 22349, 25674, 36138, 30251, 28393, - 22363, 27264, 30192, 28525, 35885, 35848, 22374, 27631, 34962, 30899, - 25506, 21497, 28845, 27748, 22616, 25642, 22530, 26848, 33179, 21776, - 31958, 20504, 36538, 28108, 36255, 28907, 25487, 28059, 28372, 32486, - 33796, 26691, 36867, 28120, 38518, 35752, 22871, 29305, 34276, 33150, - 30140, 35466, 26799, 21076, 36386, 38161, 25552, 39064, 36420, 21884, - 20307, 26367, 22159, 24789, 28053, 21059, 23625, 22825, 28155, 22635, - [12133, 30000], 29980, 24684, 33300, 33094, 25361, 26465, 36834, 30522, - 36339, 36148, 38081, 24086, 21381, 21548, 28867, 27712, 24311, 20572, - 20141, 24237, 25402, 33351, 36890, 26704, 37230, 30643, 21516, 38108, - 24420, 31461, 26742, 25413, 31570, 32479, 30171, 20599, 25237, 22836, - 36879, 20984, 31171, 31361, 22270, 24466, 36884, 28034, 23648, - [12063, 22303], 21520, 20820, 28237, 22242, 25512, 39059, 33151, 34581, - 35114, 36864, 21534, 23663, 33216, 25302, 25176, 33073, 40501, 38464, - 39534, 39548, 26925, 22949, 25299, 21822, 25366, 21703, 34521, 27964, - 23043, [12129, 29926], 34972, 27498, 22806, 35916, 24367, 28286, 29609, - 39037, 20024, 28919, 23436, 30871, 25405, 26202, 30358, 24779, 23451, - 23113, 19975, 33109, 27754, 29579, 20129, 26505, [12153, 32593], 24448, - 26106, 26395, 24536, 22916, 23041, 24013, 24494, 21361, 38886, 36829, - 26693, 22260, 21807, 24799, 20026, 28493, 32500, 33479, 33806, 22996, - 20255, 20266, 23614, 32428, 26410, 34074, 21619, 30031, 32963, 21890, - 39759, 20301, 28205, 35859, 23561, 24944, 21355, 30239, 28201, 34442, - [12098, 25991], 38395, 32441, 21563, 31283, 32010, 38382, 21985, 32705, - 29934, 25373, 34583, 28065, 31389, 25105, 26017, 21351, 25569, 27779, - 24043, 21596, 38056, 20044, 27745, 35820, 23627, [12102, 26080], 33436, - 26791, 21566, 21556, [12111, 27595], 27494, 20116, 25410, 21320, 33310, - 20237, 20398, 22366, 25098, 38654, 26212, 29289, 21247, 21153, 24735, - 35823, 26132, 29081, 26512, 35199, 30802, 30717, 26224, 22075, 21560, - 38177, 29306, 31232, 24687, 24076, 24713, 33181, [12067, 22805], 24796, - 29060, 28911, 28330, 27728, 29312, 27268, 34989, 24109, 20064, 23219, - 21916, 38115, 27927, 31995, 38553, 25103, 32454, 30606, 34430, 21283, - 38686, 36758, 26247, 23777, 20384, 29421, 19979, 21414, 22799, 21523, - 25472, 38184, 20808, 20185, 40092, 32420, 21688, 36132, 34900, 33335, - 38386, 28046, 24358, 23244, 26174, 38505, 29616, 29486, 21439, 33146, - 39301, 32673, 23466, 38519, 38480, 32447, 30456, 21410, 38262, - [12217, 39321], 31665, 35140, 28248, 20065, 32724, 31077, 35814, 24819, - 21709, 20139, 39033, 24055, 27233, 20687, 21521, 35937, 33831, 30813, - 38660, 21066, 21742, 22179, 38144, 28040, 23477, 28102, 26195, - [12073, 23567], 23389, 26657, 32918, 21880, 31505, 25928, 26964, 20123, - 27463, 34638, 38795, 21327, 25375, 25658, 37034, 26012, 32961, 35856, - 20889, 26800, 21368, 34809, 25032, 27844, 27899, 35874, 23633, 34218, - 33455, 38156, 27427, [12191, 36763], 26032, 24571, [12092, 24515], 20449, - 34885, 26143, 33125, 29481, 24826, 20852, 21009, 22411, 24418, 37026, - [12175, 34892], 37266, 24184, 26447, 24615, 22995, 20804, 20982, 33016, - 21256, 27769, 38596, 29066, 20241, 20462, 32670, 26429, 21957, 38152, - 31168, 34966, 32483, 22687, 25100, 38656, 34394, 22040, 39035, 24464, - 35768, 33988, 37207, 21465, 26093, 24207, 30044, 24676, 32110, 23167, - 32490, 32493, 36713, 21927, 23459, 24748, 26059, [12126, 29572], 36873, - 30307, 30505, 32474, 38772, 34203, 23398, [12147, 31348], 38634, - [12174, 34880], 21195, 29071, 24490, 26092, 35810, 23547, 39535, 24033, - 27529, 27739, 35757, 35759, 36874, 36805, 21387, 25276, 40486, 40493, - 21568, 20011, 33469, [12123, 29273], 34460, 23830, 34905, 28079, 38597, - 21713, 20122, 35766, 28937, 21693, 38409, 28895, 28153, 30416, 20005, - 30740, 34578, 23721, 24310, [12180, 35328], 39068, 38414, 28814, 27839, - 22852, 25513, 30524, 34893, 28436, 33395, 22576, 29141, 21388, 30746, - 38593, 21761, 24422, 28976, 23476, 35866, 39564, 27523, 22830, 40495, - 31207, 26472, 25196, 20335, 30113, [12154, 32650], 27915, 38451, 27687, - 20208, 30162, 20859, 26679, 28478, 36992, 33136, 22934, 29814, 25671, - 23591, 36965, 31377, 35875, 23002, 21676, 33280, 33647, 35201, 32768, - 26928, 22094, 32822, 29239, 37326, 20918, 20063, 39029, 25494, 19994, - 21494, 26355, 33099, 22812, 28082, [12032, 19968], 22777, 21307, 25558, - 38129, 20381, 20234, [12176, 34915], 39056, 22839, 36951, 31227, 20202, - 33008, 30097, 27778, 23452, 23016, 24413, 26885, 34433, 20506, 24050, - [12036, 20057], 30691, 20197, 33402, 25233, 26131, [12194, 37009], 23673, - 20159, 24441, 33222, 36920, 32900, 30123, 20134, 35028, 24847, 27589, - 24518, 20041, 30410, 28322, 35811, 35758, 35850, 35793, 24322, 32764, - 32716, 32462, 33589, 33643, 22240, 27575, [12211, 38899], 38452, 23035, - 21535, 38134, 28139, 23493, 39278, 23609, 24341, 38544, 21360, 33521, - 27185, 23156, 40560, 24212, 32552, 33721, {f: 2, c: 33828}, 33639, 34631, - 36814, 36194, 30408, 24433, 39062, 30828, 26144, 21727, 25317, 20323, - 33219, 30152, 24248, 38605, 36362, 34553, 21647, 27891, 28044, 27704, - 24703, 21191, [12132, 29992], 24189, 20248, 24736, 24551, 23588, 30001, - 37038, 38080, 29369, 27833, 28216, [12195, 37193], 26377, 21451, 21491, - 20305, 37321, 35825, [12060, 21448], 24188, 36802, 28132, 20110, 30402, - 27014, 34398, 24858, 33286, 20313, 20446, 36926, 40060, 24841, 28189, - 28180, 38533, 20104, 23089, [12204, 38632], 19982, 23679, 31161, 23431, - 35821, [12155, 32701], [12127, 29577], 22495, 33419, 37057, 21505, 36935, - 21947, 23786, 24481, 24840, 27442, 29425, 32946, 35465, 28020, 23507, - 35029, 39044, 35947, 39533, 40499, 28170, 20900, 20803, 22435, 34945, - 21407, 25588, 36757, 22253, 21592, 22278, 29503, 28304, 32536, 36828, - 33489, 24895, 24616, 38498, [12104, 26352], 32422, 36234, 36291, 38053, - 23731, 31908, [12105, 26376], 24742, 38405, 32792, 20113, 37095, 21248, - 38504, 20801, 36816, 34164, 37213, 26197, 38901, 23381, 21277, 30776, - 26434, 26685, 21705, 28798, 23472, 36733, 20877, 22312, 21681, 25874, - 26242, 36190, 36163, 33039, 33900, 36973, 31967, 20991, 34299, 26531, - 26089, 28577, 34468, 36481, 22122, 36896, 30338, 28790, 29157, 36131, - 25321, 21017, 27901, 36156, 24590, 22686, 24974, 26366, 36192, 25166, - 21939, 28195, 26413, 36711, 38113, 38392, 30504, 26629, 27048, 21643, - 20045, 28856, 35784, 25688, 25995, 23429, 31364, 20538, 23528, 30651, - 27617, 35449, 31896, 27838, 30415, 26025, 36759, 23853, 23637, 34360, - 26632, 21344, 25112, 31449, 28251, 32509, 27167, 31456, 24432, 28467, - 24352, 25484, 28072, 26454, 19976, 24080, 36134, 20183, 32960, 30260, - 38556, 25307, 26157, 25214, 27836, 36213, 29031, 32617, 20806, 32903, - 21484, 36974, 25240, 21746, 34544, 36761, 32773, 38167, 34071, 36825, - 27993, 29645, 26015, 30495, 29956, 30759, 33275, 36126, 38024, 20390, - 26517, 30137, 35786, 38663, 25391, 38215, 38453, 33976, 25379, 30529, - 24449, 29424, 20105, 24596, 25972, 25327, 27491, 25919, 24103, 30151, - 37073, 35777, 33437, 26525, [12096, 25903], 21553, 34584, 30693, 32930, - 33026, 27713, 20043, 32455, 32844, 30452, 26893, 27542, 25191, 20540, - 20356, 22336, 25351, [12108, 27490], 36286, 21482, 26088, 32440, 24535, - 25370, 25527, [12164, 33267], 33268, 32622, 24092, 23769, 21046, 26234, - 31209, 31258, 36136, 28825, 30164, 28382, 27835, 31378, 20013, 30405, - 24544, 38047, 34935, 32456, 31181, 32959, 37325, 20210, 20247, - [12168, 33311], 21608, 24030, 27954, 35788, 31909, 36724, 32920, 24090, - 21650, 30385, 23449, 26172, 39588, 29664, 26666, 34523, 26417, 29482, - 35832, 35803, 36880, [12149, 31481], 28891, 29038, 25284, 30633, 22065, - 20027, 33879, 26609, 21161, 34496, 36142, 38136, 31569, 20303, 27880, - 31069, 39547, 25235, [12118, 29226], 25341, 19987, 30742, 36716, 25776, - 36186, 31686, 26729, 24196, 35013, 22918, 25758, 22766, 29366, 26894, - 38181, 36861, 36184, 22368, 32512, 35846, 20934, 25417, 25305, 21331, - 26700, 29730, 33537, 37196, 21828, 30528, 28796, 27978, 20857, 21672, - 36164, 23039, 28363, 28100, 23388, 32043, 20180, 31869, 28371, - [12070, 23376], [12163, 33258], 28173, 23383, 39683, 26837, 36394, 23447, - 32508, 24635, 32437, 37049, [12187, 36208], 22863, 25549, 31199, - [12188, 36275], 21330, 26063, 31062, 35781, 38459, 32452, 38075, 32386, - 22068, 37257, 26368, 32618, 23562, 36981, 26152, 24038, 20304, 26590, - 20570, 20316, 22352, 24231, 20109, 19980, 20800, 19984, 24319, 21317, - 19989, 20120, 19998, [12224, 39730], 23404, 22121, [12033, 20008], 31162, - [12035, 20031], [12052, 21269], 20039, 22829, [12120, 29243], 21358, 27664, - 22239, 32996, 39319, 27603, 30590, 40727, [12034, 20022], 20127, 40720, - 20060, 20073, 20115, 33416, 23387, 21868, 22031, 20164, 21389, 21405, - 21411, 21413, 21422, 38757, 36189, [12053, 21274], 21493, 21286, 21294, - 21310, 36188, 21350, 21347, 20994, 21000, 21006, 21037, 21043, - {f: 2, c: 21055}, 21068, 21086, 21089, 21084, 33967, 21117, 21122, 21121, - 21136, 21139, [12044, 20866], 32596, 20155, 20163, 20169, 20162, 20200, - 20193, 20203, 20190, 20251, 20211, 20258, 20324, 20213, 20261, 20263, - 20233, 20267, 20318, 20327, 25912, 20314, 20317, 20319, 20311, 20274, - 20285, 20342, 20340, 20369, 20361, 20355, 20367, 20350, 20347, 20394, - 20348, 20396, 20372, 20454, 20456, 20458, 20421, 20442, 20451, 20444, - 20433, 20447, 20472, 20521, 20556, 20467, 20524, 20495, 20526, 20525, - 20478, 20508, 20492, 20517, 20520, 20606, 20547, 20565, 20552, 20558, - 20588, 20603, 20645, 20647, 20649, 20666, 20694, 20742, 20717, 20716, - 20710, 20718, 20743, 20747, 20189, 27709, 20312, 20325, 20430, - [12245, 40864], 27718, 31860, 20846, 24061, 40649, 39320, 20865, 22804, - [12051, 21241], 21261, 35335, 21264, 20971, 22809, 20821, [12039, 20128], - 20822, 20147, 34926, 34980, 20149, 33044, 35026, 31104, 23348, 34819, - 32696, [12046, 20907], 20913, 20925, 20924, 20935, [12045, 20886], 20898, - 20901, 35744, {f: 2, c: 35750}, 35754, {f: 2, c: 35764}, 35767, - {f: 2, c: 35778}, 35787, 35791, 35790, {f: 3, c: 35794}, 35798, - {f: 2, c: 35800}, 35804, {f: 2, c: 35807}, 35812, {f: 2, c: 35816}, 35822, - 35824, 35827, 35830, 35833, 35836, {f: 2, c: 35839}, 35842, 35844, 35847, - 35852, 35855, {f: 2, c: 35857}, {f: 3, c: 35860}, 35865, 35867, 35864, - 35869, {f: 3, c: 35871}, 35877, 35879, {f: 2, c: 35882}, {f: 2, c: 35886}, - {f: 2, c: 35890}, {f: 2, c: 35893}, [12057, 21353], 21370, 38429, 38434, - 38433, 38449, 38442, 38461, 38460, 38466, 38473, 38484, 38495, 38503, - 38508, 38514, 38516, 38536, 38541, 38551, 38576, 37015, 37019, 37021, - 37017, 37036, 37025, 37044, 37043, 37046, 37050, 37048, 37040, 37071, - 37061, 37054, 37072, 37060, 37063, 37075, 37094, 37090, 37084, 37079, - 37083, 37099, 37103, 37118, 37124, 37154, 37150, 37155, 37169, 37167, - 37177, 37187, 37190, 21005, 22850, 21154, {f: 2, c: 21164}, 21182, 21759, - 21200, 21206, 21232, 21471, 29166, 30669, [12085, 24308], [12048, 20981], - 20988, [12223, 39727], [12059, 21430], 24321, 30042, 24047, 22348, 22441, - 22433, 22654, 22716, 22725, 22737, 22313, 22316, 22314, 22323, 22329, - {f: 2, c: 22318}, 22364, 22331, 22338, 22377, 22405, 22379, 22406, 22396, - 22395, 22376, 22381, 22390, 22387, 22445, 22436, 22412, 22450, 22479, - 22439, 22452, 22419, 22432, 22485, 22488, 22490, 22489, 22482, 22456, - 22516, 22511, 22520, 22500, 22493, 22539, 22541, 22525, 22509, 22528, - 22558, 22553, 22596, 22560, 22629, 22636, 22657, 22665, 22682, 22656, - 39336, 40729, 25087, 33401, 33405, 33407, 33423, 33418, 33448, 33412, - 33422, 33425, 33431, 33433, 33451, 33464, 33470, 33456, 33480, 33482, - 33507, 33432, 33463, 33454, {f: 2, c: 33483}, 33473, 33449, 33460, 33441, - 33450, 33439, 33476, 33486, 33444, 33505, 33545, 33527, 33508, 33551, - 33543, 33500, 33524, 33490, 33496, 33548, 33531, 33491, 33553, 33562, - 33542, {f: 2, c: 33556}, 33504, 33493, 33564, 33617, {f: 2, c: 33627}, - 33544, 33682, 33596, 33588, 33585, 33691, 33630, 33583, 33615, 33607, - 33603, 33631, 33600, 33559, 33632, 33581, 33594, 33587, 33638, 33637, - 33640, 33563, 33641, 33644, 33642, {f: 2, c: 33645}, 33712, 33656, - {f: 2, c: 33715}, 33696, 33706, 33683, 33692, 33669, 33660, 33718, 33705, - 33661, 33720, 33659, 33688, 33694, 33704, 33722, 33724, 33729, 33793, - 33765, 33752, 22535, 33816, 33803, 33757, 33789, 33750, 33820, 33848, - 33809, 33798, 33748, 33759, 33807, 33795, {f: 2, c: 33784}, 33770, 33733, - 33728, 33830, 33776, 33761, 33884, 33873, 33882, 33881, 33907, - {f: 2, c: 33927}, 33914, 33929, 33912, 33852, 33862, 33897, 33910, 33932, - 33934, 33841, 33901, 33985, 33997, 34000, 34022, 33981, 34003, 33994, - 33983, 33978, 34016, 33953, 33977, 33972, 33943, 34021, 34019, 34060, - 29965, 34104, 34032, 34105, 34079, 34106, 34134, 34107, 34047, 34044, - 34137, 34120, 34152, 34148, 34142, 34170, 30626, 34115, 34162, 34171, - 34212, 34216, 34183, 34191, 34169, 34222, 34204, 34181, 34233, 34231, - 34224, 34259, 34241, 34268, 34303, 34343, 34309, 34345, 34326, 34364, - [12086, 24318], 24328, 22844, 22849, 32823, 22869, 22874, 22872, 21263, - [12074, 23586], 23589, 23596, 23604, 25164, 25194, 25247, 25275, 25290, - 25306, 25303, 25326, 25378, 25334, 25401, 25419, 25411, 25517, 25590, - 25457, 25466, 25486, 25524, 25453, 25516, 25482, 25449, 25518, 25532, - 25586, 25592, 25568, 25599, 25540, 25566, 25550, 25682, 25542, 25534, - 25669, 25665, 25611, 25627, 25632, 25612, 25638, 25633, 25694, 25732, - 25709, 25750, 25722, {f: 2, c: 25783}, 25753, 25786, 25792, 25808, 25815, - 25828, 25826, 25865, 25893, 25902, [12087, 24331], 24530, 29977, 24337, - 21343, 21489, 21501, 21481, 21480, 21499, 21522, 21526, 21510, 21579, - {f: 3, c: 21586}, 21590, 21571, 21537, 21591, 21593, 21539, 21554, 21634, - 21652, 21623, 21617, 21604, {f: 2, c: 21658}, 21636, 21622, 21606, 21661, - 21712, 21677, 21698, 21684, 21714, 21671, 21670, {f: 2, c: 21715}, 21618, - 21667, 21717, 21691, 21695, 21708, {f: 2, c: 21721}, 21724, - {f: 2, c: 21673}, 21668, 21725, 21711, 21726, 21787, 21735, 21792, 21757, - 21780, 21747, {f: 2, c: 21794}, 21775, 21777, 21799, 21802, 21863, 21903, - 21941, 21833, 21869, 21825, 21845, 21823, 21840, 21820, 21815, 21846, - {f: 3, c: 21877}, 21811, 21808, 21852, 21899, 21970, 21891, 21937, 21945, - 21896, 21889, 21919, 21886, 21974, 21905, 21883, 21983, {f: 2, c: 21949}, - 21908, 21913, 21994, 22007, 21961, 22047, 21969, {f: 2, c: 21995}, 21972, - 21990, 21981, 21956, 21999, 21989, {f: 2, c: 22002}, {f: 2, c: 21964}, - 21992, 22005, 21988, 36756, 22046, 22024, 22028, 22017, 22052, 22051, - 22014, 22016, 22055, 22061, 22104, 22073, 22103, 22060, 22093, 22114, - 22105, 22108, 22092, 22100, 22150, 22116, 22129, 22123, {f: 2, c: 22139}, - 22149, 22163, 22191, 22228, [12062, 22231], 22237, 22241, 22261, 22251, - 22265, 22271, 22276, 22282, 22281, 22300, 24079, 24089, 24084, 24081, - 24113, {f: 2, c: 24123}, 24119, 24132, 24148, 24155, 24158, 24161, 23692, - 23674, 23693, 23696, 23702, 23688, {f: 2, c: 23704}, 23697, 23706, 23708, - 23733, 23714, 23741, 23724, 23723, 23729, 23715, 23745, 23735, 23748, - 23762, 23780, 23755, 23781, {f: 2, c: 23810}, 23847, 23846, 23854, 23844, - 23838, 23814, 23835, 23896, 23870, 23860, 23869, 23916, 23899, 23919, - 23901, 23915, 23883, 23882, 23913, 23924, 23938, 23961, 23965, 35955, - 23991, 24005, [12091, 24435], 24439, 24450, 24455, 24457, 24460, 24469, - 24473, 24476, 24488, 24493, 24501, 24508, 34914, [12090, 24417], 29357, - 29360, 29364, {f: 2, c: 29367}, 29379, 29377, 29390, 29389, 29394, 29416, - 29423, 29417, 29426, 29428, 29431, 29441, 29427, 29443, {f: 2, c: 29434}, - 29463, 29459, 29473, 29450, 29470, 29469, 29461, 29474, 29497, 29477, - 29484, 29496, 29489, 29520, 29517, 29527, 29536, 29548, 29551, 29566, - [12167, 33307], 22821, 39143, 22820, [12065, 22786], 39267, - {f: 6, c: 39271}, 39284, 39287, 39293, 39296, 39300, 39303, 39306, 39309, - {f: 2, c: 39312}, {f: 3, c: 39315}, 24192, 24209, 24203, 24214, 24229, - 24224, 24249, 24245, 24254, 24243, 36179, 24274, 24273, 24283, 24296, - 24298, 33210, 24516, 24521, 24534, 24527, 24579, 24558, 24580, 24545, - 24548, 24574, {f: 2, c: 24581}, 24554, 24557, 24568, 24601, 24629, 24614, - 24603, 24591, 24589, 24617, 24619, 24586, 24639, 24609, {f: 2, c: 24696}, - 24699, 24698, 24642, 24682, 24701, 24726, 24730, 24749, 24733, 24707, - 24722, 24716, 24731, 24812, 24763, 24753, 24797, 24792, 24774, 24794, - 24756, 24864, 24870, 24853, 24867, 24820, 24832, 24846, 24875, 24906, - 24949, 25004, 24980, 24999, 25015, 25044, 25077, 24541, 38579, 38377, - 38379, 38385, 38387, {f: 2, c: 38389}, 38396, 38398, {f: 2, c: 38403}, - 38406, 38408, {f: 4, c: 38410}, 38415, 38418, {f: 3, c: 38421}, - {f: 2, c: 38425}, 20012, [12121, 29247], 25109, 27701, 27732, 27740, 27722, - 27811, 27781, 27792, 27796, 27788, {f: 2, c: 27752}, 27764, 27766, 27782, - 27817, 27856, 27860, 27821, {f: 2, c: 27895}, 27889, 27863, 27826, 27872, - 27862, 27898, 27883, 27886, 27825, 27859, 27887, 27902, 27961, 27943, - 27916, 27971, 27976, 27911, 27908, 27929, 27918, 27947, 27981, 27950, - 27957, 27930, 27983, 27986, 27988, 27955, 28049, 28015, 28062, 28064, - 27998, {f: 2, c: 28051}, 27996, 28000, 28028, 28003, 28186, 28103, 28101, - 28126, 28174, 28095, 28128, 28177, 28134, 28125, 28121, 28182, 28075, - 28172, 28078, 28203, 28270, 28238, 28267, 28338, 28255, 28294, - {f: 2, c: 28243}, 28210, 28197, 28228, 28383, 28337, 28312, 28384, 28461, - 28386, 28325, 28327, 28349, 28347, 28343, 28375, 28340, 28367, 28303, - 28354, 28319, 28514, {f: 2, c: 28486}, 28452, 28437, 28409, 28463, 28470, - 28491, 28532, 28458, 28425, 28457, 28553, 28557, 28556, 28536, 28530, - 28540, 28538, 28625, 28617, 28583, 28601, 28598, 28610, 28641, 28654, - 28638, 28640, 28655, 28698, 28707, 28699, 28729, 28725, 28751, 28766, - [12071, 23424], 23428, 23445, 23443, 23461, 23480, 29999, 39582, 25652, - 23524, 23534, 35120, 23536, 36423, 35591, 36790, 36819, 36821, 36837, - 36846, 36836, 36841, 36838, 36851, 36840, 36869, 36868, 36875, 36902, - 36881, 36877, 36886, 36897, {f: 2, c: 36917}, 36909, 36911, 36932, - {f: 2, c: 36945}, 36944, 36968, 36952, 36962, 36955, 26297, 36980, 36989, - 36994, 37000, 36995, 37003, [12089, 24400], 24407, 24406, 24408, 23611, - 21675, 23632, 23641, 23409, 23651, 23654, 32700, 24362, 24361, 24365, - 33396, 24380, 39739, [12076, 23662], 22913, 22915, 22925, {f: 2, c: 22953}, - 22947, 22935, 22986, 22955, 22942, 22948, 22994, 22962, 22959, 22999, - 22974, {f: 2, c: 23045}, 23005, 23048, 23011, 23000, 23033, 23052, 23049, - 23090, 23092, 23057, 23075, 23059, 23104, 23143, 23114, 23125, 23100, - 23138, 23157, 33004, 23210, 23195, 23159, 23162, 23230, 23275, 23218, - 23250, 23252, 23224, 23264, 23267, 23281, 23254, 23270, 23256, 23260, - 23305, 23319, 23318, 23346, 23351, 23360, 23573, 23580, 23386, 23397, - 23411, 23377, 23379, 23394, 39541, {f: 2, c: 39543}, 39546, 39551, 39549, - {f: 2, c: 39552}, 39557, 39560, 39562, 39568, {f: 2, c: 39570}, 39574, - 39576, {f: 3, c: 39579}, {f: 2, c: 39583}, {f: 2, c: 39586}, 39589, 39591, - 32415, 32417, 32419, 32421, {f: 2, c: 32424}, 32429, 32432, 32446, - {f: 3, c: 32448}, 32457, {f: 2, c: 32459}, 32464, 32468, 32471, 32475, - {f: 2, c: 32480}, 32488, 32491, {f: 2, c: 32494}, {f: 2, c: 32497}, 32525, - 32502, {f: 2, c: 32506}, 32510, {f: 3, c: 32513}, {f: 2, c: 32519}, - {f: 2, c: 32523}, 32527, {f: 2, c: 32529}, 32535, 32537, 32540, 32539, - 32543, {f: 7, c: 32545}, {f: 4, c: 32554}, {f: 5, c: 32559}, 32565, - [12083, 24186], 30079, [12078, 24027], 30014, 37013, 29582, 29585, 29614, - 29602, 29599, 29647, 29634, 29649, 29623, 29619, 29632, 29641, 29640, - 29669, 29657, 39036, 29706, 29673, 29671, 29662, 29626, 29682, 29711, - 29738, 29787, 29734, 29733, 29736, 29744, 29742, 29740, 29723, 29722, - 29761, 29788, 29783, 29781, 29785, 29815, 29805, 29822, 29852, 29838, - {f: 2, c: 29824}, 29831, 29835, 29854, {f: 2, c: 29864}, 29840, 29863, - 29906, 29882, {f: 3, c: 38890}, 26444, 26451, 26462, 26440, 26473, 26533, - 26503, 26474, 26483, 26520, 26535, 26485, 26536, 26526, 26541, 26507, - 26487, 26492, 26608, 26633, 26584, 26634, 26601, 26544, 26636, 26585, - 26549, 26586, 26547, 26589, 26624, 26563, 26552, 26594, 26638, 26561, - 26621, {f: 2, c: 26674}, {f: 2, c: 26720}, 26702, 26722, 26692, 26724, - 26755, 26653, 26709, 26726, 26689, 26727, 26688, 26686, 26698, 26697, - 26665, 26805, 26767, 26740, 26743, 26771, 26731, 26818, 26990, 26876, - {f: 2, c: 26911}, 26873, 26916, 26864, 26891, 26881, 26967, 26851, 26896, - 26993, 26937, 26976, 26946, 26973, 27012, 26987, 27008, 27032, 27000, - 26932, 27084, {f: 2, c: 27015}, 27086, 27017, 26982, 26979, 27001, 27035, - 27047, 27067, 27051, 27053, 27092, 27057, 27073, 27082, 27103, 27029, - 27104, 27021, 27135, 27183, 27117, {f: 2, c: 27159}, 27237, 27122, 27204, - 27198, 27296, 27216, 27227, 27189, 27278, 27257, 27197, 27176, 27224, - 27260, 27281, 27280, 27305, 27287, 27307, 29495, 29522, {f: 2, c: 27521}, - 27527, 27524, {f: 2, c: 27538}, 27533, {f: 2, c: 27546}, 27553, 27562, - 36715, 36717, {f: 3, c: 36721}, {f: 2, c: 36725}, 36728, 36727, - {f: 2, c: 36729}, 36732, 36734, {f: 2, c: 36737}, 36740, 36743, 36747, - {f: 3, c: 36749}, 36760, 36762, 36558, 25099, 25111, 25115, 25119, 25122, - 25121, 25125, 25124, 25132, 33255, 29935, 29940, 29951, 29967, 29969, - 29971, [12097, 25908], {f: 3, c: 26094}, 26122, 26137, 26482, 26115, 26133, - 26112, 28805, 26359, 26141, 26164, 26161, 26166, 26165, 32774, 26207, - 26196, 26177, 26191, 26198, 26209, 26199, 26231, 26244, 26252, 26279, - 26269, 26302, {f: 2, c: 26331}, 26342, 26345, {f: 2, c: 36146}, 36150, - 36155, 36157, 36160, {f: 2, c: 36165}, {f: 2, c: 36168}, 36167, 36173, - 36181, 36185, 35271, {f: 3, c: 35274}, {f: 4, c: 35278}, 29294, 29343, - 29277, 29286, 29295, {f: 2, c: 29310}, 29316, 29323, 29325, 29327, 29330, - 25352, 25394, 25520, 25663, 25816, 32772, 27626, 27635, 27645, 27637, - 27641, 27653, 27655, 27654, 27661, 27669, {f: 3, c: 27672}, 27681, 27689, - 27684, 27690, 27698, 25909, 25941, 25963, 29261, 29266, 29270, 29232, - 34402, 21014, 32927, 32924, 32915, 32956, 26378, 32957, 32945, 32939, - 32941, 32948, 32951, {f: 4, c: 32999}, 32987, 32962, 32964, 32985, 32973, - 32983, 26384, 32989, 33003, 33009, 33012, 33005, {f: 2, c: 33037}, 33010, - 33020, 26389, 33042, 35930, 33078, 33054, 33068, 33048, 33074, 33096, - 33100, 33107, 33140, {f: 2, c: 33113}, 33137, 33120, 33129, - {f: 2, c: 33148}, 33133, 33127, 22605, 23221, 33160, 33154, 33169, 28373, - 33187, 33194, 33228, 26406, 33226, 33211, 33217, 33190, 27428, 27447, - 27449, 27459, 27462, 27481, {f: 3, c: 39121}, 39125, {f: 2, c: 39129}, - [12110, 27571], 24384, 27586, 35315, 26000, 40785, 26003, 26044, 26054, - 26052, 26051, 26060, 26062, 26066, 26070, 28800, 28828, 28822, 28829, - 28859, 28864, 28855, 28843, 28849, 28904, 28874, 28944, 28947, 28950, - 28975, 28977, 29043, 29020, 29032, 28997, 29042, 29002, 29048, 29050, - 29080, 29107, 29109, 29096, 29088, 29152, 29140, 29159, 29177, 29213, - 29224, 28780, 28952, 29030, 29113, 25150, 25149, 25155, {f: 2, c: 25160}, - 31035, 31040, 31046, 31049, {f: 2, c: 31067}, 31059, 31066, 31074, 31063, - 31072, 31087, 31079, 31098, 31109, 31114, 31130, 31143, 31155, 24529, - 24528, 24636, 24669, 24666, 24679, 24641, 24665, 24675, 24747, 24838, - 24845, 24925, 25001, 24989, 25035, 25041, 25094, 32896, [12160, 32895], - 27795, 27894, 28156, 30710, 30712, 30720, 30729, {f: 2, c: 30743}, 30737, - 26027, 30765, {f: 2, c: 30748}, {f: 3, c: 30777}, 30751, 30780, 30757, - 30764, 30755, 30761, 30798, 30829, {f: 2, c: 30806}, 30758, 30800, 30791, - 30796, 30826, 30875, 30867, 30874, 30855, 30876, 30881, 30883, 30898, - 30905, 30885, 30932, 30937, 30921, 30956, 30962, 30981, 30964, 30995, - 31012, 31006, 31028, 40859, [12235, 40697], {f: 2, c: 40699}, 30449, 30468, - 30477, 30457, {f: 2, c: 30471}, 30490, 30498, 30489, 30509, 30502, 30517, - 30520, {f: 2, c: 30544}, 30535, 30531, 30554, 30568, 30562, 30565, 30591, - 30605, 30589, 30592, 30604, 30609, {f: 2, c: 30623}, 30640, 30645, 30653, - 30010, 30016, 30030, 30027, 30024, 30043, 30066, 30073, 30083, 32600, - 32609, 32607, 35400, 32616, 32628, 32625, 32633, 32641, 32638, 30413, - 30437, 34866, {f: 3, c: 38021}, 38027, 38026, {f: 2, c: 38028}, - {f: 2, c: 38031}, 38036, 38039, 38037, {f: 3, c: 38042}, {f: 2, c: 38051}, - 38059, 38058, 38061, 38060, {f: 2, c: 38063}, 38066, 38068, - {f: 5, c: 38070}, {f: 2, c: 38076}, 38079, 38084, {f: 7, c: 38088}, - {f: 3, c: 38096}, {f: 3, c: 38101}, 38105, 38104, 38107, {f: 3, c: 38110}, - 38114, {f: 2, c: 38116}, {f: 2, c: 38119}, 38122, 38121, 38123, - {f: 2, c: 38126}, {f: 3, c: 38131}, 38135, 38137, {f: 2, c: 38140}, 38143, - 38147, 38146, {f: 2, c: 38150}, {f: 2, c: 38153}, {f: 3, c: 38157}, - {f: 5, c: 38162}, 38168, 38171, {f: 3, c: 38173}, 38178, {f: 2, c: 38186}, - 38185, 38188, {f: 2, c: 38193}, 38196, {f: 3, c: 38198}, 38204, - {f: 2, c: 38206}, 38210, 38197, {f: 3, c: 38212}, 38217, 38220, - {f: 2, c: 38222}, {f: 3, c: 38226}, {f: 4, c: 38230}, 38235, - {f: 2, c: 38238}, 38237, {f: 2, c: 38241}, {f: 9, c: 38244}, 38255, - {f: 3, c: 38257}, 38202, 30695, 30700, 38601, 31189, 31213, 31203, 31211, - 31238, 23879, 31235, 31234, 31262, 31252, 31289, 31287, 31313, 40655, - 39333, 31344, 30344, 30350, 30355, 30361, 30372, 29918, 29920, 29996, - 40480, 40482, {f: 5, c: 40488}, 40498, 40497, 40502, 40504, 40503, - {f: 2, c: 40505}, 40510, {f: 2, c: 40513}, 40516, {f: 4, c: 40518}, - {f: 2, c: 40523}, 40526, 40529, 40533, 40535, {f: 3, c: 40538}, 40542, - 40547, {f: 7, c: 40550}, 40561, 40557, 40563, [12135, 30098], 30100, 30102, - 30112, 30109, 30124, 30115, {f: 2, c: 30131}, 30136, 30148, 30129, 30128, - 30147, 30146, 30166, 30157, 30179, 30184, 30182, 30180, 30187, 30183, - 30211, 30193, 30204, 30207, 30224, 30208, 30213, 30220, 30231, 30218, - 30245, 30232, 30229, 30233, 30235, 30268, 30242, 30240, 30272, 30253, - 30256, 30271, 30261, 30275, 30270, 30259, 30285, 30302, 30292, 30300, - 30294, 30315, 30319, 32714, 31462, {f: 2, c: 31352}, 31360, 31366, 31368, - 31381, 31398, 31392, 31404, 31400, 31405, 31411, 34916, 34921, 34930, - 34941, 34943, 34946, 34978, 35014, 34999, 35004, 35017, 35042, 35022, - 35043, 35045, 35057, 35098, 35068, 35048, 35070, 35056, 35105, 35097, - 35091, 35099, 35082, 35124, 35115, 35126, 35137, 35174, 35195, - [12134, 30091], 32997, 30386, 30388, 30684, [12158, 32786], 32788, 32790, - 32796, 32800, 32802, {f: 3, c: 32805}, 32809, 32808, 32817, 32779, 32821, - 32835, 32838, 32845, 32850, 32873, 32881, 35203, 39032, 39040, 39043, - 39049, {f: 2, c: 39052}, 39055, 39060, {f: 2, c: 39066}, {f: 2, c: 39070}, - {f: 2, c: 39073}, {f: 2, c: 39077}, [12172, 34381], 34388, 34412, 34414, - 34431, 34426, 34428, 34427, 34472, 34445, 34443, 34476, 34461, 34471, - 34467, 34474, 34451, 34473, 34486, 34500, 34485, 34510, 34480, 34490, - 34481, 34479, 34505, 34511, 34484, 34537, {f: 2, c: 34545}, 34541, 34547, - 34512, 34579, 34526, 34548, 34527, 34520, 34513, 34563, 34567, 34552, - 34568, 34570, 34573, 34569, 34595, 34619, 34590, 34597, 34606, 34586, - 34622, 34632, 34612, 34609, 34601, 34615, 34623, 34690, 34594, - {f: 2, c: 34685}, 34683, 34656, 34672, 34636, 34670, 34699, 34643, 34659, - 34684, 34660, 34649, 34661, 34707, 34735, 34728, 34770, 34758, 34696, - 34693, 34733, 34711, 34691, 34731, 34789, 34732, 34741, 34739, 34763, - 34771, 34749, 34769, 34752, 34762, 34779, 34794, 34784, 34798, 34838, - 34835, 34814, 34826, 34843, 34849, 34873, 34876, [12152, 32566], 32578, - {f: 2, c: 32580}, 33296, 31482, 31485, 31496, {f: 2, c: 31491}, 31509, - 31498, 31531, 31503, 31559, 31544, 31530, 31513, 31534, 31537, 31520, - 31525, 31524, 31539, 31550, 31518, 31576, 31578, 31557, 31605, 31564, - 31581, 31584, 31598, 31611, 31586, 31602, 31601, 31632, {f: 2, c: 31654}, - 31672, 31660, 31645, 31656, 31621, 31658, 31644, 31650, 31659, 31668, - 31697, 31681, 31692, 31709, 31706, {f: 2, c: 31717}, 31722, 31756, 31742, - 31740, 31759, 31766, 31755, 31775, 31786, 31782, 31800, 31809, 31808, - 33278, {f: 2, c: 33281}, 33284, 33260, 34884, {f: 3, c: 33313}, 33325, - 33327, 33320, 33323, 33336, 33339, {f: 2, c: 33331}, 33342, 33348, 33353, - 33355, 33359, 33370, 33375, 33384, 34942, 34949, 34952, 35032, 35039, - 35166, 32669, 32671, 32679, {f: 2, c: 32687}, 32690, 31868, 25929, 31889, - 31901, 31900, 31902, 31906, 31922, {f: 2, c: 31932}, 31937, 31943, - {f: 2, c: 31948}, 31944, 31941, 31959, 31976, [12169, 33390], 26280, 32703, - 32718, 32725, 32741, 32737, 32742, 32745, 32750, 32755, [12151, 31992], - 32119, 32166, 32174, 32327, 32411, 40632, 40628, 36211, 36228, 36244, - 36241, 36273, 36199, 36205, 35911, 35913, 37194, 37200, {f: 2, c: 37198}, - 37220, 37218, 37217, 37232, 37225, 37231, {f: 2, c: 37245}, 37234, 37236, - 37241, 37260, 37253, 37264, 37261, 37265, {f: 2, c: 37282}, 37290, - {f: 3, c: 37293}, 37301, 37300, 37306, [12183, 35925], 40574, 36280, 36331, - 36357, 36441, 36457, 36277, 36287, 36284, 36282, 36292, {f: 2, c: 36310}, - 36314, 36318, {f: 2, c: 36302}, 36315, 36294, 36332, {f: 2, c: 36343}, - 36323, 36345, 36347, 36324, 36361, 36349, 36372, 36381, 36383, 36396, - 36398, 36387, 36399, 36410, 36416, 36409, 36405, 36413, 36401, 36425, - {f: 2, c: 36417}, {f: 2, c: 36433}, 36426, 36464, 36470, 36476, 36463, - 36468, 36485, 36495, 36500, 36496, 36508, 36510, [12184, 35960], 35970, - 35978, 35973, 35992, 35988, 26011, 35286, 35294, 35290, 35292, 35301, - 35307, 35311, 35390, 35622, 38739, 38633, 38643, 38639, 38662, 38657, - 38664, 38671, 38670, 38698, 38701, 38704, 38718, 40832, 40835, - {f: 6, c: 40837}, 40844, 40702, 40715, 40717, [12203, 38585], - {f: 2, c: 38588}, 38606, 38610, 30655, 38624, 37518, 37550, 37576, 37694, - 37738, 37834, 37775, 37950, 37995, 40063, 40066, {f: 4, c: 40069}, 31267, - 40075, 40078, {f: 3, c: 40080}, {f: 2, c: 40084}, {f: 2, c: 40090}, - {f: 6, c: 40094}, {f: 5, c: 40101}, 40107, {f: 2, c: 40109}, - {f: 8, c: 40112}, {f: 4, c: 40122}, {f: 4, c: 40132}, {f: 7, c: 40138}, - {f: 3, c: 40147}, {f: 3, c: 40151}, {f: 2, c: 40156}, 40159, 40162, 38780, - 38789, {f: 2, c: 38801}, 38804, 38831, 38827, 38819, 38834, 38836, 39601, - 39600, 39607, 40536, 39606, 39610, 39612, 39617, 39616, 39621, 39618, - {f: 2, c: 39627}, 39633, 39749, 39747, 39751, 39753, 39752, 39757, 39761, - 39144, 39181, 39214, 39253, 39252, [12221, 39647], 39649, 39654, 39663, - 39659, 39675, 39661, 39673, 39688, 39695, 39699, 39711, 39715, - {f: 2, c: 40637}, 32315, 40578, {f: 2, c: 40583}, 40587, 40594, 37846, - 40605, 40607, {f: 3, c: 40667}, 40672, 40671, 40674, 40681, 40679, 40677, - 40682, 40687, 40738, 40748, 40751, 40761, 40759, {f: 2, c: 40765}, 40772, - 12295, {s: 13}, 30362, 34297, 31001, 24859, 39599, 35158, 22761, 32631, - 25850, 25943, 38930, 36774, 32070, 24171, 32129, 37770, 35607, 39165, - 23542, 22577, 39825, 36649, [12185, 35997], 37575, 29437, 20633, 24970, - 32179, 31558, 30050, 25987, 24163, 38281, 37002, 32232, 36022, 35722, - 36783, 36782, 27161, 40009, 30303, 28693, 28657, 36051, 25839, 39173, - 25765, 37474, 37457, 39361, 35036, 36001, 21443, 34870, 27544, 24922, - 24920, 29158, 33980, 33369, 20489, 28356, 21408, 20596, 28204, 23652, - 35435, 25881, 25723, 34796, 39262, 35730, 32399, 37855, 29987, 38369, - 39019, 22580, 22039, [12199, 38263], 20767, 33144, 24288, 26274, 37396, - [12190, 36554], 24505, 22645, 38515, 35183, 31281, 25074, 35488, 39425, - 36978, 39347, [12242, 40786], 29118, 34909, 34802, 23541, 30087, 36490, - 31820, 32162, 37276, 37604, 38619, 30990, 20786, 35320, 34389, 20659, - 30241, 38358, 21109, 37656, 32020, 32189, 36781, 35422, 36060, 32880, - 24478, 21474, 36517, 31428, 37679, 36948, 24118, 36024, 25812, 21934, - 37170, 25763, 33213, 24986, 35477, 24392, 30070, 25803, 40680, 34153, - 27284, 25623, 23798, 31153, 23566, 29128, 37159, 25973, 28364, 36958, - 32224, 39003, 40670, 22666, 38651, 28593, 37347, 35519, 35548, 37336, - 38914, 37664, 35330, 26481, 21205, 26847, 20941, [12222, 39717], 29346, - 29544, 35712, 36077, 37709, 37723, 26039, 32222, 38538, 23565, 22136, - 38931, 37389, 22890, 22702, 40285, 38989, 35355, 24801, 39187, 20818, - 29246, 39180, 36019, 30332, 32624, 38309, 31020, 37353, 29033, 31684, - 36009, 39151, 35370, 32033, [12214, 39131], 35513, 24290, 36027, 32027, - 22707, 22894, 24996, 31966, 35920, 26963, 37586, [12213, 39080], 30219, - 39342, 32299, 35575, 40179, 33178, 36667, 25771, 36628, 36070, 24489, - 36000, 35331, 23142, 32283, 35442, 37411, 33995, 24185, 36245, 36123, - 23713, 21083, 37628, 32177, 23831, 37804, 25841, 40255, 38307, 37499, - 20491, 32102, 40852, 38799, 36002, 37390, 28317, 27083, 36092, 34865, - 39015, 21102, 38364, 35264, 39208, 24931, 36011, 24291, 35215, 27512, - [12244, 40860], 38312, 36556, 35437, 27331, 36020, 21130, 36645, 37707, - 22283, 36942, 39405, 38867, 28450, 34399, 38305, 40372, 36032, 36703, - 40251, 32005, 22778, 35703, 28396, 22057, 33775, 30059, 21123, 35441, - 25079, 22750, 27489, 29872, 36996, 32233, 35594, 25582, 36637, 36036, - 31330, 26371, 29172, 21295, 35569, 35496, 32362, 33911, 28222, 29554, - 36008, 31117, 25802, 27231, 31309, 39249, 35663, 40388, 32318, 32221, - 26997, 36655, 32026, 25824, 24190, 34186, 21137, 28639, 35336, 35352, - 38555, 32380, 32000, 22846, 33698, 38960, 36040, 37440, 20729, 39381, - 27570, 30435, 22533, 31627, 38291, 33393, 32216, 32365, 27298, 40572, - 25536, 25791, 31777, 20745, 34214, 27323, 37970, 36368, 36068, - [12178, 35211], 37749, 33382, 21133, 39198, 28472, 28666, 28567, 23559, - 28479, 34083, 27123, 22892, 35611, 37292, 33184, 28550, 39509, 23308, - 25898, 37496, 30703, 20709, 39171, 32371, 32094, 36686, 36611, 38542, - 31680, 28500, 32080, 35489, 32202, 37670, 20677, 35641, 36914, 29180, - 30433, 21185, 33686, 39912, 39514, 32147, 38968, 37857, 24465, 30169, - 31478, 31998, 33290, 39378, 33289, 25818, 37624, 25084, 21127, 40273, - 32121, 35258, 35363, 32118, 37406, 36557, 39423, 38283, 20977, 38982, - 27579, 35506, 22718, 25031, 25715, 24235, 35122, 35463, 22602, 20744, - 23532, 31014, 26336, 34407, 24011, 31418, 39243, 28528, 25844, 38346, - 34847, 33240, 33802, 20358, 36084, 34253, 27396, 25876, 31811, 38348, - 34349, 28734, 35733, 25900, 35261, 25078, 32412, 29211, 28651, 25736, - 21214, 28551, 27138, 37939, 22744, 39006, 31852, 38626, 28757, 35023, - 39881, 31150, 40599, 21426, 21237, 31019, 27511, 28701, 38584, 20486, - 32879, 34030, 36899, 37934, 24976, 28451, 31806, 25986, 33225, 37832, - 25088, 29001, 32244, 31975, 20841, 36635, 35538, 30274, 36988, 37904, - 29557, 33256, 37168, 40023, 36035, 40801, 37428, 38728, 23994, 38936, - 39230, 21129, [12243, 40845], 32894, 22184, 31840, 22751, 25871, 38580, - 27155, 23105, 25695, 31757, 34310, 30439, 39025, 24300, 29200, 25796, - 28407, 34396, 39791, 36034, 37682, 38520, 39522, 37569, 23650, 32311, - 24942, 28670, 32209, 24018, 25891, 23423, 28772, 20098, 25476, 36650, - 20523, 20374, 28138, 32184, 35542, 34367, 32645, 37007, 38012, 31854, - 39486, 39409, 32097, 23229, 29802, 30908, 34718, [12218, 39340], 39393, - 21966, 36023, [12230, 40613], 36067, 36993, 30622, 39237, 34875, 28415, - 35646, 37672, 37466, 36031, 37762, [12200, 38272], 24758, 20497, 37683, - 22818, 35598, 24396, 35219, 32191, 32236, 24287, 28357, 25003, 38313, - 40180, 37528, 35628, 35584, 30045, 37385, 32013, 38627, 25747, 33126, - 24817, 39719, 39186, 25836, 33193, 25862, 37312, [12227, 40165], 32886, - 22169, 38007, 37811, 27320, 29552, 23527, 25840, 28632, 37397, 32016, - 33215, 28611, 36786, 30247, 35582, 27472, 40407, 27590, 22036, 28442, - 30436, 40848, 36064, 22132, 40300, 39449, 39108, 38971, 36007, 34315, - 24977, 35413, 28497, 38935, 25778, 37610, 20693, 27192, 35676, 33229, - [12241, 40778], 39438, 35912, 21843, 27683, 35350, 29309, 37370, 37467, - 36983, 31805, 35609, 37666, 37463, 28154, 35700, 22649, 27085, 21958, - 22715, 34196, 25654, 37740, 27211, 21932, 20689, 32761, 31429, 31434, - 27453, 35242, 23522, 36629, 27691, 20670, 38915, 35531, 24950, 29898, - 31406, 36264, 21312, 36544, 39493, 40818, 39028, 27402, 21240, 40306, - 30906, 35731, 39250, 25854, 32350, 29105, 38860, 35469, 32009, 27054, - 32104, 36575, 37613, 38287, 28516, 28753, 34217, 39955, 36093, 20632, - 21930, 39479, 25475, 28544, 27578, 32023, 31721, 26348, 38275, 38493, - 36109, 32341, 20663, 36062, 29138, 32057, 36050, 25448, 25885, 25086, - 35373, 32051, 23529, 23352, 33102, 28402, 32882, 32361, 21213, 32854, - 24107, 29509, 28629, 35433, 26178, 34645, 23526, 35672, 39387, 21218, - 36969, 37323, 39166, 35222, 35430, 22781, 29560, 27166, 36664, 26360, - 36118, 23660, 34899, 27193, 31466, 25976, 24101, 38617, 35504, 38918, - 35500, 30889, 29197, 32114, 39164, 39686, 32883, 24939, 38924, 35359, - 35494, 25851, 34311, 35380, 32901, 38614, 38568, 32143, 27506, 23403, - 25613, 32302, 29795, 37782, 29562, 25787, 33274, 24907, 25892, 36010, - 30321, 28760, 22727, 35674, 35527, 22022, 28271, 29145, 28644, 32295, - 35342, 39472, 35588, 37563, 38988, 39636, 26781, 36028, 37941, 24307, - 32893, 28916, 37509, 32113, 38957, 22294, 22615, 22296, 38973, 40213, - 39345, 39389, 27234, 31402, 35178, 24398, 28771, 38929, 33836, 32178, - [12209, 38859], 36949, 22285, 29234, 28656, 32173, 33894, 20553, 20702, - 32239, 35586, 34907, 32862, 32011, 31337, 21839, 25790, 34680, 28198, - 31401, 21978, 37794, 28879, 35491, 28961, 34154, 22626, 38695, 21209, - 35492, 37675, 29351, 35186, 32722, 37521, 25138, 32048, 34662, 36676, - 23805, 20448, 29433, 22151, 37697, 39854, 32406, 36066, 37532, 38289, - 39023, 38570, 29694, 29563, 32291, 39201, 25010, 32171, 38002, 37129, - 35443, 38911, 38917, 34157, 22210, 37559, 26313, 22063, 21332, 25406, - 33029, 35559, 23531, 28681, 35613, 37573, 37313, 33288, 37561, 32137, - 38920, 35377, 32210, 32396, 36562, 25080, 36984, 30316, 32098, 23416, - 21211, 35426, 23563, 39348, 35347, 35338, 36956, 22739, 40201, 40232, - 21854, 20126, 35357, 38329, 40573, 22196, 38996, 38331, 33399, 21421, - 30831, 35578, 39511, 40230, 26954, 25562, 30221, 38525, 30306, 39178, - 27171, 22575, 35617, 34277, 29242, [12212, 38913], 26989, 33865, 37291, - 37541, 38948, 36986, 20736, 34811, 34269, 20740, 25014, 32681, 35427, - 35696, 35516, 35695, 32377, 34093, 38512, 37504, 39154, 38577, 27387, - 23344, 40441, 25033, 32403, 29801, 34722, 29151, 29074, 34821, 36111, - 31310, 21938, 25793, 20653, 30320, 36404, 20778, 24962, 37109, 37438, - 29494, 35480, 36671, 39192, [12226, 39770], 28417, 33287, 23996, 35486, - 39729, 29508, 35709, 38928, 39341, 40219, 28149, 36677, 22290, 21729, - 22291, 32227, 36960, 39000, 32004, 36493, 38000, 38322, 38642, 37142, - 38549, 36939, 34292, 37270, 26248, 38620, 36617, 25890, 26283, 36106, - 36124, 33247, 38015, 26839, 31432, 36012, 25799, 21063, 28580, 36042, - 36104, 36555, 37720, 38296, 35408, 40779, 20661, 27656, 30430, 26028, - 36670, 23940, 26855, 25136, 32187, 24373, 28466, 24115, 36076, 33081, - 36249, 34756, 36685, 37754, 36889, 35998, 37341, 20597, 35386, 37806, - 38499, 24128, 30309, 37165, 35657, 32340, 32887, 22519, 34937, 32025, - 25711, 25842, 24159, 36074, 28399, 37912, 32066, 31278, 33131, 34886, - 35589, 36600, 30394, 26205, 39519, 35576, 35461, 29165, 30682, 22225, - 36015, 37956, 31689, 39376, 23560, 30938, 36681, 36090, 27137, 33674, - 35037, 22941, 22767, 29376, 37648, 36101, 22684, 32180, 35524, 28310, - 28609, 36039, 28460, 32156, 32317, 32305, 37138, 35419, 32068, 38013, - 21959, 21401, 21428, 38760, 36107, 21293, 21297, 36094, 21060, 21132, - 21108, 20660, 20480, 20630, 20757, 20738, 20756, 20796, 20791, 20712, - 20674, 20795, 20752, 20794, 20681, 31988, 40652, 22213, 40172, 35131, - 33248, 35329, 35344, 35340, 35349, 35635, 35406, 35365, 35393, 35382, - 35398, 35412, 35416, 35410, 35462, 35460, 35455, 35440, 35452, 35445, - 35436, 35438, 35533, 35554, 35425, 35482, 35493, {f: 2, c: 35473}, 35535, - 35537, 35529, 35547, 35543, 35522, 35510, 35574, 35563, 35604, 35585, - 35556, 35565, 35580, 35571, 35558, 35566, 35550, 35624, 35740, 35606, - 35610, 35600, 35627, 35629, 35670, 35673, 35662, 35742, 35691, 35734, - 38488, 37178, 37140, 37172, 37087, 37174, 37126, 37192, 33467, 21233, - 24048, 22538, 22745, 22754, 22752, 22746, 22497, 22607, 22550, 22610, - 22557, 22628, 34188, 34131, 34294, 33703, 33799, 34031, 33511, 34338, - 34086, 22603, 29026, 34136, 34045, 34126, 34184, 34234, 29334, 28366, - 34113, 34254, 34130, 33984, 33874, 33892, 33940, 33845, 34207, 34133, - 40367, 33939, 32264, 34118, 34146, 34078, 39488, 34362, 37795, 34167, - 34334, 34298, 34308, 34282, 34330, 22889, 23607, 25451, 25718, 25759, - 25681, 25692, 25779, 25860, 25878, 25847, 25852, 25883, 22064, 22072, - 22216, 22182, 21764, 21692, 22144, 22109, 22112, 22069, 22006, 22118, - 22130, 22156, 22117, 22044, 22062, 21993, 22038, 22208, 22029, 22195, - 22209, 22127, 36705, 22198, 22165, 22279, 24131, 24172, 24152, 24151, - 23943, 23796, 23888, 23852, 23975, 23968, 23959, 23821, 23992, 23937, - 24020, 24480, 29559, 29505, 29546, 29499, 29547, 29568, 29564, 39136, - 39219, 39145, 39228, {f: 2, c: 39146}, 39149, 39156, 39177, 39185, 39195, - 39223, 39231, 39235, {f: 3, c: 39240}, 39244, 39266, 24289, 36065, 25082, - 25006, 24938, 24894, 24757, 24884, 25036, 24927, 25064, 24827, 24887, - 24818, 24947, 24860, 24978, 38274, 38278, 38344, 38286, 38292, 38284, - 38373, 38317, 38315, 39726, 38316, 38334, 38326, 39721, 38335, 38333, - 38332, 38339, 38347, 38356, 38352, 38357, 38366, 28739, 28505, 28711, - 28696, 28668, 28039, 28025, 28254, 28590, 28687, 28408, 28527, 28150, - 28543, 28678, 28576, 28683, 28775, 28740, 28677, 28535, 28704, 28703, - 28722, 28712, 28765, 39467, 36999, 36885, 37008, 23656, 24371, 23285, - 23255, 23296, 23149, 23304, 23372, 23207, 23291, 23307, 23329, 23338, - 23321, 39380, 39391, 39385, 39478, 39515, 39377, 39384, 39501, 39498, - 39394, 39530, 39439, 39437, 39429, 39490, 39469, 39446, 39489, 39470, - 39480, {f: 2, c: 39491}, 39503, 39525, 39524, 31993, 32006, 32002, - {f: 2, c: 32007}, 32394, 32028, 32021, 32019, 32058, 32050, 32049, 32272, - 32060, 32064, 32063, 32093, 32078, 32115, 32134, 32131, 32136, 32190, - 32186, 32203, 32212, 32196, 32158, 32172, 32185, 32163, 32176, 32199, - 32217, 32215, 32249, 32242, 32354, 32230, 32246, 32241, 32267, 32225, - 32265, 32285, 32287, 32286, 32301, 32266, 32273, 32381, 32313, 32309, - 32306, 32326, 32325, 32392, 32346, 32338, 32366, 32382, 32368, 32367, - 32408, 29859, 29771, 29903, 38922, 29885, 29759, 29833, 29862, 29908, - 29914, 38873, 38878, 38876, 27050, 27370, 26776, 26838, 27141, 26783, - 27355, 27379, 27368, 27359, 27273, 26895, 27208, 26984, 27071, 27194, - 27292, 27410, 27422, 27357, 27111, 27407, 27414, 27372, 27354, 27384, - 27315, 27367, 27299, 27347, 27358, 27556, 27550, 27566, 27563, 27567, - 36564, 36571, 36594, 36603, 36708, 36601, 36604, 36587, 36580, 36706, - 36602, 36606, 36618, 36615, 36613, 36626, 36646, {f: 2, c: 36638}, 36636, - 36659, 36678, 36692, 25108, 25127, 29964, 26311, 26308, 26249, 26326, - 36033, 36016, 36026, 36029, 36100, 36018, 36037, 36112, 36049, 36058, - 36053, 36075, 36071, 36091, 35224, 35244, 35233, 35263, 35238, 35247, - 35250, 35255, 27647, 27660, 27692, 29272, 26407, 33110, 33242, 33051, - 33214, 33121, 33231, 27487, {f: 2, c: 39086}, 39094, 39100, 39110, 39112, - 36674, 40783, 26005, 29036, 29010, 29079, 29121, 29148, 29182, 31152, - 31118, 31146, 25055, 24932, 25059, 25095, 28585, 30959, 30893, 30824, - 30904, 31018, 31025, 30820, 30973, 30951, 30947, 40853, 30616, 30558, - 30652, 32646, 32648, {f: 3, c: 37330}, 37337, 37335, 37333, 37367, 37351, - 37348, 37702, 37365, 37369, 37384, 37414, 37445, 37393, 37392, 37377, - 37415, 37380, 37413, 37376, 37434, 37478, 37431, 37427, 37461, 37437, - 37432, 37470, {f: 2, c: 37484}, 37439, 37984, 37424, 37449, 37448, 37453, - 37422, 37433, 37944, 37548, 37536, 37498, 37546, 37614, 37583, 37891, - 37603, 37946, 37553, 37542, 37799, 37526, 37580, 37545, 37877, 37523, - 37503, 37801, 37530, 37658, 37547, 37507, 37899, 37544, 37539, 37906, - 37688, 37617, 37847, 37605, 37616, 37615, 37608, 37564, 37597, 37622, - {f: 2, c: 37926}, 37571, 37599, 37606, 37650, 37638, 37737, 37659, 37696, - 37633, 37653, 37678, 37699, {f: 2, c: 37639}, 37663, 37657, 37733, 37703, - 37750, 37716, 37732, 37802, 37744, 37764, 37860, 37848, 37928, 37767, - 37836, 37784, 37816, 37823, 37798, 37808, 37813, 37964, 37858, - {f: 2, c: 37852}, 37837, 37854, 37827, 37831, 37841, 37908, 37917, 37879, - 37989, 37907, 37997, 37920, 38009, 37881, 37913, 37962, 37938, 37951, - 37972, 37987, 37758, 31329, 40169, 40182, 40199, 40198, 40227, 40327, - 40469, 40221, 40223, 40421, 40239, 40409, 40240, 40258, 40478, 40275, - 40477, 40288, 40274, 40435, 40284, 40289, 40339, 40298, 40303, 40329, - 40344, 40346, 40384, 40357, 40361, 40386, 40380, 40474, 40403, 40410, - 40431, 40422, 40434, 40440, 40460, 40442, 40475, 30308, 30296, 30311, - 30210, {f: 2, c: 30278}, 30281, 30238, 30267, {f: 2, c: 30317}, 30313, - 30322, 31431, 31414, 35168, 35123, 35165, 35143, 35128, 35172, 30392, - 32814, 32812, 32889, 32885, 38919, {f: 2, c: 38926}, 38945, 38940, 28481, - 38950, 38967, 38990, 38995, 39027, 39010, 39001, 39013, 39020, 39024, - 34787, 34822, 34566, 34851, 34806, 34554, 34799, 34692, 34832, 34760, - 34833, 34747, 34766, 32588, 31716, 31591, 31849, 31731, 31744, 31691, - 31836, 31774, 31787, 31779, 31850, 31839, 33380, 33387, 35018, 32677, - 31986, 31990, 31965, 32310, 40617, 36274, 37317, 37315, 40570, 36489, - 36428, 36498, 36474, 36437, 36506, 36491, 36499, 36497, 36513, 36451, - 36522, 36518, 35316, 35318, 38746, 38722, 38717, 38724, 40788, 40799, - 40793, 40800, 40796, 40806, 40812, 40810, 40823, [12236, 40701], 40703, - 40713, 35726, 38014, 37864, 39799, 39796, 39809, 39811, 39822, 40056, - 31308, 39826, 40031, 39824, 39853, 39834, 39850, 39838, 40045, 39851, - 39837, 40024, 39873, 40058, 39985, 39993, 39971, 39991, 39872, 39882, - 39879, 39933, 39894, {f: 2, c: 39914}, 39905, 39908, 39911, 39901, 39906, - 39920, 39899, 39924, 39892, 40029, 39944, 39952, 39949, 39954, 39945, - 39935, 39968, 39986, 39981, 39976, 39973, 39977, 39987, 39998, 40008, - 39995, 39989, 40005, 40022, 40020, 40018, 40039, 38851, 38845, 38857, - 40379, 39631, 39638, 39637, 39768, 39758, 39255, 39260, 39714, 40695, - 40690, 35180, 38342, 37686, 24390, 34068, 32404, 40803, 22137, 40725, - 22081, 39662, 35079, 31296, 39091, 38308, 39693, 36852, 24409, 31339, - 39138, 20642, 34193, 20760, 25458, 21067, 30543, 32397, 26310, 30637, - [12228, 40565], 22217, 40692, 28635, 25054, 30663, 28720, 40629, 34890, - 38370, 38854, 31844, 32308, 38822, 40623, 22220, 39089, 27311, 32590, - 31984, 20418, 32363, 40569, 22190, 39706, 33903, 31142, 31858, 39634, - 38587, 32251, 35069, 30787, {f: 10, c: 8560}, {f: 2, c: 714}, 729, 8211, - 8213, 8229, 8245, 8453, 8457, {f: 4, c: 8598}, 8725, 8735, 8739, 8786, - {f: 2, c: 8806}, 8895, {f: 36, c: 9552}, {f: 15, c: 9601}, {f: 3, c: 9619}, - {f: 2, c: 9660}, {f: 4, c: 9698}, 9737, 8853, 12306, {f: 2, c: 12317}, - {f: 9, c: 12321}, 12963, {f: 2, c: 13198}, {f: 3, c: 13212}, 13217, 13252, - 13262, {f: 2, c: 13265}, 13269, 65072, 65506, 65508, 8481, 12849, 8208, - 12540, {f: 2, c: 12443}, {f: 2, c: 12541}, 12294, {f: 2, c: 12445}, - {f: 10, c: 65097}, {f: 4, c: 65108}, {f: 14, c: 65113}, {f: 4, c: 65128}, - 12350, {f: 12, c: 12272}, 19970, {f: 3, c: 19972}, 19983, 19986, 19991, - {f: 3, c: 19999}, 20003, 20006, 20009, {f: 2, c: 20014}, 20017, 20019, - 20021, 20023, 20028, {f: 3, c: 20032}, 20036, 20038, 20042, 20049, 20053, - 20055, {f: 2, c: 20058}, {f: 4, c: 20066}, {f: 2, c: 20071}, - {f: 6, c: 20074}, 20082, {f: 10, c: 20084}, {f: 3, c: 20095}, - {f: 2, c: 20099}, [12037, 20101], 20103, 20106, 20112, {f: 2, c: 20118}, - 20121, {f: 2, c: 20124}, 20131, 20138, {f: 3, c: 20143}, 20148, - {f: 4, c: 20150}, {f: 3, c: 20156}, 20168, 20172, {f: 2, c: 20175}, 20178, - {f: 3, c: 20186}, 20192, 20194, {f: 2, c: 20198}, 20201, {f: 3, c: 20205}, - 20209, 20212, {f: 3, c: 20216}, 20220, 20222, 20224, {f: 7, c: 20226}, - {f: 2, c: 20235}, {f: 5, c: 20242}, {f: 2, c: 20252}, 20257, 20259, - {f: 2, c: 20264}, {f: 3, c: 20268}, 20273, 20275, 20277, 20279, 20281, - 20283, {f: 5, c: 20286}, {f: 2, c: 20292}, {f: 6, c: 20295}, 20306, 20308, - 20310, {f: 2, c: 20321}, 20326, 20328, {f: 2, c: 20330}, {f: 2, c: 20333}, - {f: 2, c: 20337}, 20341, {f: 4, c: 20343}, 20349, {f: 3, c: 20352}, 20357, - 20359, 20362, 20364, 20366, 20368, {f: 2, c: 20370}, 20373, - {f: 3, c: 20376}, 20380, {f: 2, c: 20382}, {f: 2, c: 20385}, 20388, 20395, - 20397, {f: 5, c: 20400}, {f: 9, c: 20406}, {f: 2, c: 20416}, - {f: 4, c: 20422}, {f: 3, c: 20427}, {f: 5, c: 20434}, 20441, 20443, 20450, - {f: 2, c: 20452}, 20455, {f: 2, c: 20459}, 20464, 20466, {f: 4, c: 20468}, - 20473, {f: 3, c: 20475}, 20479, {f: 5, c: 20481}, {f: 2, c: 20487}, 20490, - 20494, 20496, 20499, {f: 3, c: 20501}, 20507, {f: 2, c: 20509}, 20512, - {f: 3, c: 20514}, 20519, {f: 11, c: 20527}, 20539, 20541, {f: 4, c: 20543}, - {f: 3, c: 20548}, {f: 2, c: 20554}, 20557, {f: 5, c: 20560}, - {f: 4, c: 20566}, 20571, {f: 8, c: 20573}, {f: 6, c: 20582}, - {f: 7, c: 20589}, {f: 3, c: 20600}, {f: 2, c: 20604}, {f: 4, c: 20609}, - {f: 2, c: 20614}, {f: 4, c: 20617}, {f: 8, c: 20622}, 20631, - {f: 8, c: 20634}, 20644, 20646, {f: 2, c: 20650}, {f: 4, c: 20654}, 20662, - {f: 2, c: 20664}, {f: 2, c: 20668}, {f: 3, c: 20671}, {f: 2, c: 20675}, - {f: 3, c: 20678}, {f: 5, c: 20682}, 20688, {f: 3, c: 20690}, - {f: 3, c: 20695}, {f: 3, c: 20699}, {f: 6, c: 20703}, {f: 3, c: 20713}, - {f: 4, c: 20719}, 20724, {f: 3, c: 20726}, 20730, {f: 4, c: 20732}, 20737, - 20739, 20741, 20746, {f: 4, c: 20748}, 20753, 20755, {f: 2, c: 20758}, - {f: 6, c: 20761}, 20768, {f: 8, c: 20770}, {f: 7, c: 20779}, - {f: 4, c: 20787}, {f: 2, c: 20792}, {f: 2, c: 20797}, 20802, 20807, 20810, - 20812, {f: 3, c: 20814}, 20819, {f: 3, c: 20823}, 20827, {f: 5, c: 20829}, - {f: 2, c: 20835}, {f: 2, c: 20838}, 20842, 20847, 20850, 20858, - {f: 2, c: 20862}, {f: 2, c: 20867}, {f: 2, c: 20870}, {f: 2, c: 20874}, - {f: 4, c: 20878}, {f: 2, c: 20883}, 20888, 20890, {f: 3, c: 20893}, 20897, - 20899, {f: 5, c: 20902}, {f: 2, c: 20909}, 20916, {f: 3, c: 20920}, - {f: 2, c: 20926}, {f: 3, c: 20929}, 20933, 20936, 20938, 20942, 20944, - {f: 9, c: 20946}, 20956, {f: 2, c: 20958}, {f: 2, c: 20962}, - {f: 6, c: 20965}, 20972, 20974, 20978, 20980, 20983, 20990, - {f: 2, c: 20996}, 21001, {f: 2, c: 21003}, {f: 2, c: 21007}, - {f: 3, c: 21011}, 21020, {f: 2, c: 21022}, {f: 3, c: 21025}, - {f: 3, c: 21029}, 21034, 21036, 21039, {f: 2, c: 21041}, {f: 2, c: 21044}, - 21052, 21054, {f: 2, c: 21061}, {f: 2, c: 21064}, {f: 2, c: 21070}, - {f: 2, c: 21074}, 21077, {f: 4, c: 21079}, 21085, {f: 2, c: 21087}, - {f: 3, c: 21090}, 21094, 21096, {f: 3, c: 21099}, {f: 2, c: 21104}, 21107, - {f: 7, c: 21110}, 21118, 21120, {f: 3, c: 21124}, 21131, {f: 2, c: 21134}, - 21138, {f: 7, c: 21140}, 21148, {f: 4, c: 21156}, {f: 3, c: 21166}, - {f: 10, c: 21172}, 21184, 21186, {f: 3, c: 21188}, 21192, 21194, - {f: 4, c: 21196}, 21201, {f: 2, c: 21203}, 21207, 21210, 21212, - {f: 2, c: 21216}, 21219, {f: 11, c: 21221}, {f: 3, c: 21234}, - {f: 2, c: 21238}, {f: 3, c: 21243}, {f: 4, c: 21249}, 21255, - {f: 4, c: 21257}, 21262, {f: 4, c: 21265}, 21272, {f: 2, c: 21275}, - {f: 2, c: 21278}, 21282, {f: 2, c: 21284}, {f: 3, c: 21287}, - {f: 2, c: 21291}, 21296, {f: 6, c: 21298}, [12054, 21304], - {f: 2, c: 21308}, 21314, 21316, 21318, {f: 3, c: 21323}, 21328, - {f: 2, c: 21336}, 21339, 21341, 21349, 21352, 21354, {f: 2, c: 21356}, - 21362, 21366, 21369, {f: 4, c: 21371}, {f: 2, c: 21376}, 21379, - {f: 2, c: 21383}, 21386, {f: 7, c: 21390}, {f: 2, c: 21398}, - {f: 2, c: 21403}, 21406, 21409, 21412, 21415, {f: 3, c: 21418}, - {f: 3, c: 21423}, 21427, 21429, {f: 4, c: 21431}, {f: 3, c: 21436}, 21440, - {f: 4, c: 21444}, {f: 3, c: 21454}, {f: 2, c: 21458}, 21461, 21466, - {f: 3, c: 21468}, 21473, 21479, 21492, 21498, {f: 3, c: 21502}, 21506, - 21509, 21511, 21515, 21524, {f: 3, c: 21528}, 21532, 21538, - {f: 2, c: 21540}, 21546, 21552, 21555, {f: 2, c: 21558}, 21562, 21565, - 21567, {f: 2, c: 21569}, {f: 2, c: 21572}, 21575, 21577, {f: 4, c: 21580}, - 21585, 21594, {f: 5, c: 21597}, 21603, 21605, 21607, {f: 8, c: 21609}, - 21620, {f: 2, c: 21625}, {f: 2, c: 21630}, 21633, 21635, 21637, - {f: 4, c: 21639}, 21645, 21649, 21651, {f: 2, c: 21655}, 21660, - {f: 5, c: 21662}, 21669, 21678, 21680, 21682, {f: 3, c: 21685}, - {f: 2, c: 21689}, 21694, 21699, 21701, {f: 2, c: 21706}, 21718, 21720, - 21723, 21728, {f: 3, c: 21730}, {f: 2, c: 21739}, {f: 3, c: 21743}, - {f: 6, c: 21748}, 21755, 21758, 21760, {f: 2, c: 21762}, 21765, 21768, - {f: 5, c: 21770}, {f: 2, c: 21778}, {f: 6, c: 21781}, {f: 4, c: 21788}, - 21793, {f: 2, c: 21797}, {f: 2, c: 21800}, 21803, 21805, 21810, - {f: 3, c: 21812}, {f: 4, c: 21816}, 21821, 21824, 21826, 21829, - {f: 2, c: 21831}, {f: 4, c: 21835}, {f: 2, c: 21841}, 21844, - {f: 5, c: 21847}, 21853, {f: 2, c: 21855}, {f: 2, c: 21858}, - {f: 2, c: 21864}, 21867, {f: 6, c: 21871}, {f: 2, c: 21881}, 21885, 21887, - {f: 2, c: 21893}, {f: 3, c: 21900}, 21904, {f: 2, c: 21906}, - {f: 3, c: 21909}, {f: 2, c: 21914}, 21918, {f: 7, c: 21920}, - {f: 2, c: 21928}, 21931, 21933, {f: 2, c: 21935}, 21940, 21942, 21944, - 21946, 21948, {f: 5, c: 21951}, 21960, {f: 2, c: 21962}, {f: 2, c: 21967}, - 21973, {f: 3, c: 21975}, 21979, 21982, 21984, 21986, 21991, - {f: 2, c: 21997}, {f: 2, c: 22000}, 22004, {f: 5, c: 22008}, 22015, - {f: 4, c: 22018}, 22023, {f: 2, c: 22026}, {f: 4, c: 22032}, 22037, - {f: 2, c: 22041}, 22045, {f: 3, c: 22048}, {f: 2, c: 22053}, 22056, - {f: 2, c: 22058}, 22067, 22071, 22074, {f: 3, c: 22076}, 22080, - {f: 10, c: 22082}, {f: 5, c: 22095}, {f: 2, c: 22101}, {f: 2, c: 22106}, - {f: 2, c: 22110}, 22113, 22115, 22119, {f: 2, c: 22125}, 22128, 22131, - 22133, 22135, 22138, {f: 3, c: 22141}, {f: 4, c: 22145}, {f: 4, c: 22152}, - 22157, {f: 3, c: 22160}, 22164, {f: 3, c: 22166}, {f: 9, c: 22170}, - {f: 2, c: 22180}, 22183, {f: 5, c: 22185}, {f: 3, c: 22192}, 22197, - {f: 4, c: 22200}, {f: 3, c: 22205}, {f: 2, c: 22211}, {f: 2, c: 22214}, - 22219, {f: 4, c: 22221}, {f: 2, c: 22226}, {f: 2, c: 22229}, - {f: 2, c: 22232}, 22236, 22243, {f: 6, c: 22245}, 22252, {f: 2, c: 22254}, - {f: 2, c: 22258}, {f: 3, c: 22262}, {f: 2, c: 22267}, {f: 3, c: 22272}, - 22277, 22284, {f: 4, c: 22286}, {f: 2, c: 22292}, 22295, {f: 3, c: 22297}, - {f: 2, c: 22301}, {f: 3, c: 22304}, {f: 4, c: 22308}, 22315, - {f: 2, c: 22321}, {f: 5, c: 22324}, {f: 2, c: 22332}, 22335, 22337, - {f: 4, c: 22339}, {f: 2, c: 22344}, 22347, {f: 5, c: 22354}, - {f: 2, c: 22360}, {f: 2, c: 22370}, 22373, 22375, 22380, 22382, - {f: 3, c: 22384}, {f: 2, c: 22388}, {f: 3, c: 22392}, {f: 5, c: 22397}, - {f: 4, c: 22407}, {f: 5, c: 22413}, {f: 7, c: 22420}, {f: 4, c: 22428}, - 22437, 22440, 22442, 22444, {f: 3, c: 22447}, 22451, {f: 3, c: 22453}, - {f: 9, c: 22457}, {f: 7, c: 22468}, {f: 2, c: 22476}, {f: 2, c: 22480}, - 22483, {f: 2, c: 22486}, {f: 2, c: 22491}, 22494, {f: 2, c: 22498}, - {f: 8, c: 22501}, 22510, {f: 4, c: 22512}, {f: 2, c: 22517}, - {f: 2, c: 22523}, {f: 2, c: 22526}, 22529, {f: 2, c: 22531}, - {f: 2, c: 22536}, 22540, {f: 3, c: 22542}, {f: 3, c: 22546}, - {f: 2, c: 22551}, {f: 3, c: 22554}, 22559, {f: 2, c: 22562}, - {f: 5, c: 22565}, {f: 4, c: 22571}, {f: 2, c: 22578}, {f: 14, c: 22582}, - {f: 5, c: 22597}, 22606, 22608, 22611, {f: 2, c: 22613}, {f: 5, c: 22617}, - {f: 3, c: 22623}, 22627, {f: 5, c: 22630}, {f: 8, c: 22637}, - {f: 3, c: 22646}, {f: 4, c: 22650}, 22655, 22658, 22660, {f: 3, c: 22662}, - {f: 7, c: 22667}, {f: 5, c: 22676}, 22683, 22685, {f: 8, c: 22688}, - {f: 4, c: 22698}, {f: 4, c: 22703}, {f: 7, c: 22708}, 22717, - {f: 2, c: 22719}, {f: 3, c: 22722}, 22726, {f: 9, c: 22728}, 22738, 22740, - {f: 2, c: 22742}, {f: 3, c: 22747}, 22753, 22755, {f: 4, c: 22757}, 22762, - 22765, {f: 2, c: 22769}, {f: 2, c: 22772}, {f: 2, c: 22775}, - {f: 2, c: 22779}, {f: 4, c: 22782}, 22787, {f: 2, c: 22789}, - {f: 2, c: 22792}, [12066, 22794], {f: 2, c: 22795}, 22798, - {f: 4, c: 22800}, {f: 2, c: 22807}, 22811, {f: 2, c: 22813}, - {f: 2, c: 22816}, 22819, 22822, 22824, 22828, 22832, {f: 2, c: 22834}, - {f: 2, c: 22837}, 22843, 22845, {f: 2, c: 22847}, 22851, {f: 2, c: 22853}, - 22858, {f: 2, c: 22860}, 22864, {f: 2, c: 22866}, 22873, {f: 5, c: 22875}, - 22881, {f: 2, c: 22883}, {f: 3, c: 22886}, 22891, 22893, {f: 4, c: 22895}, - 22901, 22903, {f: 3, c: 22906}, {f: 3, c: 22910}, 22917, 22921, - {f: 2, c: 22923}, {f: 4, c: 22926}, {f: 2, c: 22932}, 22936, - {f: 3, c: 22938}, {f: 4, c: 22943}, {f: 2, c: 22950}, {f: 2, c: 22956}, - {f: 2, c: 22960}, {f: 6, c: 22963}, 22970, {f: 2, c: 22972}, - {f: 7, c: 22975}, {f: 3, c: 22983}, {f: 4, c: 22988}, {f: 2, c: 22997}, - 23001, 23003, {f: 5, c: 23006}, 23012, {f: 2, c: 23014}, {f: 3, c: 23017}, - {f: 12, c: 23021}, 23034, {f: 3, c: 23036}, 23040, 23042, {f: 2, c: 23050}, - {f: 4, c: 23053}, 23058, {f: 4, c: 23060}, {f: 3, c: 23065}, - {f: 2, c: 23069}, {f: 2, c: 23073}, 23076, {f: 3, c: 23078}, - {f: 7, c: 23082}, 23091, 23093, {f: 5, c: 23095}, {f: 3, c: 23101}, - {f: 4, c: 23106}, {f: 2, c: 23111}, {f: 10, c: 23115}, {f: 4, c: 23126}, - {f: 7, c: 23131}, {f: 3, c: 23139}, {f: 2, c: 23144}, {f: 2, c: 23147}, - {f: 6, c: 23150}, {f: 2, c: 23160}, {f: 4, c: 23163}, {f: 18, c: 23168}, - {f: 7, c: 23187}, {f: 11, c: 23196}, {f: 2, c: 23208}, {f: 7, c: 23211}, - 23220, {f: 2, c: 23222}, {f: 4, c: 23225}, {f: 2, c: 23231}, - {f: 6, c: 23235}, {f: 2, c: 23242}, {f: 5, c: 23245}, 23251, 23253, - {f: 3, c: 23257}, {f: 3, c: 23261}, 23266, {f: 2, c: 23268}, - {f: 2, c: 23271}, 23274, {f: 5, c: 23276}, {f: 3, c: 23282}, - {f: 5, c: 23286}, {f: 4, c: 23292}, {f: 7, c: 23297}, 23306, - {f: 9, c: 23309}, 23320, {f: 7, c: 23322}, {f: 8, c: 23330}, - {f: 5, c: 23339}, 23345, 23347, {f: 2, c: 23349}, {f: 7, c: 23353}, - {f: 11, c: 23361}, {f: 3, c: 23373}, 23378, 23382, 23390, {f: 2, c: 23392}, - {f: 2, c: 23399}, {f: 3, c: 23405}, 23410, 23412, {f: 2, c: 23414}, 23417, - {f: 2, c: 23419}, 23422, 23426, 23430, 23434, {f: 2, c: 23437}, - {f: 3, c: 23440}, 23444, 23446, 23455, {f: 3, c: 23463}, {f: 4, c: 23468}, - {f: 2, c: 23473}, 23479, {f: 3, c: 23482}, {f: 2, c: 23488}, 23491, - {f: 4, c: 23496}, {f: 3, c: 23501}, 23505, {f: 9, c: 23508}, 23520, 23523, - 23530, 23533, 23535, {f: 4, c: 23537}, 23543, {f: 2, c: 23549}, 23552, - {f: 2, c: 23554}, 23557, 23564, 23568, {f: 2, c: 23570}, 23575, 23577, - 23579, {f: 4, c: 23582}, 23587, 23590, {f: 4, c: 23592}, {f: 4, c: 23597}, - {f: 2, c: 23602}, {f: 2, c: 23605}, {f: 2, c: 23619}, {f: 2, c: 23622}, - {f: 2, c: 23628}, {f: 3, c: 23634}, {f: 3, c: 23638}, {f: 4, c: 23642}, - 23647, 23655, {f: 3, c: 23657}, 23661, 23664, {f: 7, c: 23666}, - {f: 4, c: 23675}, 23680, {f: 5, c: 23683}, {f: 3, c: 23689}, - {f: 2, c: 23694}, {f: 2, c: 23698}, 23701, {f: 4, c: 23709}, - {f: 5, c: 23716}, 23722, {f: 3, c: 23726}, 23730, 23732, 23734, - {f: 4, c: 23737}, 23742, 23744, {f: 2, c: 23746}, {f: 6, c: 23749}, - {f: 6, c: 23756}, {f: 6, c: 23763}, {f: 7, c: 23770}, {f: 2, c: 23778}, - 23783, 23785, {f: 2, c: 23787}, {f: 2, c: 23790}, {f: 3, c: 23793}, 23797, - {f: 4, c: 23799}, 23804, {f: 4, c: 23806}, {f: 2, c: 23812}, - {f: 5, c: 23816}, {f: 5, c: 23823}, 23829, {f: 3, c: 23832}, - {f: 2, c: 23836}, {f: 5, c: 23839}, 23845, 23848, {f: 2, c: 23850}, - {f: 5, c: 23855}, {f: 8, c: 23861}, {f: 8, c: 23871}, {f: 2, c: 23880}, - {f: 3, c: 23885}, {f: 7, c: 23889}, {f: 2, c: 23897}, 23900, - {f: 11, c: 23902}, 23914, {f: 2, c: 23917}, {f: 4, c: 23920}, - {f: 12, c: 23925}, 23939, {f: 2, c: 23941}, {f: 15, c: 23944}, 23960, - {f: 3, c: 23962}, {f: 2, c: 23966}, {f: 6, c: 23969}, {f: 15, c: 23976}, - 23993, 23995, {f: 8, c: 23997}, {f: 5, c: 24006}, 24012, {f: 4, c: 24014}, - 24019, {f: 6, c: 24021}, 24028, {f: 2, c: 24031}, {f: 2, c: 24035}, 24042, - {f: 2, c: 24044}, {f: 2, c: 24053}, {f: 5, c: 24056}, {f: 2, c: 24063}, - 24068, 24071, {f: 3, c: 24073}, {f: 2, c: 24077}, {f: 2, c: 24082}, 24087, - {f: 7, c: 24094}, {f: 3, c: 24104}, 24108, {f: 2, c: 24111}, 24114, - {f: 2, c: 24116}, {f: 2, c: 24121}, {f: 2, c: 24126}, 24129, - {f: 6, c: 24134}, {f: 7, c: 24141}, 24150, {f: 2, c: 24153}, - {f: 2, c: 24156}, 24160, {f: 7, c: 24164}, {f: 5, c: 24173}, 24181, 24183, - {f: 3, c: 24193}, 24197, {f: 2, c: 24200}, {f: 3, c: 24204}, 24210, 24216, - 24219, 24221, {f: 4, c: 24225}, {f: 3, c: 24232}, 24236, {f: 5, c: 24238}, - 24244, {f: 4, c: 24250}, {f: 10, c: 24255}, {f: 6, c: 24267}, - {f: 2, c: 24276}, {f: 4, c: 24279}, {f: 3, c: 24284}, {f: 4, c: 24292}, - 24297, 24299, {f: 6, c: 24301}, 24309, {f: 2, c: 24312}, {f: 3, c: 24315}, - {f: 3, c: 24325}, 24329, {f: 3, c: 24332}, 24336, 24338, 24340, 24342, - {f: 2, c: 24345}, {f: 3, c: 24348}, {f: 4, c: 24353}, 24360, - {f: 2, c: 24363}, 24366, 24368, 24370, 24372, {f: 3, c: 24374}, 24379, - {f: 3, c: 24381}, {f: 5, c: 24385}, 24391, {f: 3, c: 24393}, 24397, 24399, - 24401, 24404, {f: 3, c: 24410}, {f: 3, c: 24414}, 24419, 24421, - {f: 2, c: 24423}, 24427, {f: 2, c: 24430}, 24434, {f: 3, c: 24436}, 24440, - 24442, {f: 3, c: 24445}, 24451, 24454, {f: 3, c: 24461}, {f: 2, c: 24467}, - 24470, {f: 2, c: 24474}, 24477, 24479, {f: 6, c: 24482}, {f: 2, c: 24491}, - {f: 6, c: 24495}, 24502, 24504, {f: 2, c: 24506}, {f: 5, c: 24510}, - {f: 2, c: 24519}, {f: 2, c: 24522}, 24526, {f: 3, c: 24531}, - {f: 3, c: 24538}, {f: 2, c: 24542}, {f: 2, c: 24546}, {f: 2, c: 24549}, - {f: 2, c: 24552}, 24556, {f: 2, c: 24559}, {f: 3, c: 24562}, - {f: 2, c: 24566}, {f: 2, c: 24569}, 24572, {f: 3, c: 24583}, - {f: 2, c: 24587}, {f: 2, c: 24592}, 24595, {f: 2, c: 24599}, 24602, - {f: 2, c: 24606}, {f: 3, c: 24610}, {f: 3, c: 24620}, {f: 5, c: 24624}, - {f: 5, c: 24630}, {f: 2, c: 24637}, 24640, {f: 7, c: 24644}, 24652, - {f: 2, c: 24654}, 24657, {f: 2, c: 24659}, {f: 3, c: 24662}, - {f: 2, c: 24667}, {f: 4, c: 24670}, {f: 2, c: 24677}, 24686, - {f: 2, c: 24689}, {f: 2, c: 24692}, 24695, 24702, {f: 3, c: 24704}, - {f: 4, c: 24709}, {f: 2, c: 24714}, {f: 4, c: 24718}, 24723, 24725, - {f: 3, c: 24727}, 24732, 24734, {f: 2, c: 24737}, {f: 2, c: 24740}, 24743, - {f: 2, c: 24745}, 24750, 24752, 24755, 24759, {f: 2, c: 24761}, - {f: 8, c: 24765}, {f: 3, c: 24775}, {f: 5, c: 24780}, {f: 3, c: 24786}, - {f: 2, c: 24790}, 24793, 24795, 24798, {f: 4, c: 24802}, 24810, 24821, - {f: 2, c: 24823}, {f: 4, c: 24828}, {f: 4, c: 24834}, 24839, - {f: 3, c: 24842}, {f: 5, c: 24848}, {f: 4, c: 24854}, {f: 2, c: 24861}, - {f: 2, c: 24865}, 24869, {f: 3, c: 24872}, {f: 8, c: 24876}, - {f: 2, c: 24885}, {f: 6, c: 24888}, {f: 8, c: 24896}, 24905, 24909, - {f: 2, c: 24911}, {f: 3, c: 24914}, {f: 2, c: 24918}, 24921, - {f: 2, c: 24923}, 24926, {f: 2, c: 24928}, {f: 2, c: 24933}, 24937, - {f: 2, c: 24940}, 24943, {f: 2, c: 24945}, 24948, {f: 10, c: 24952}, - {f: 7, c: 24963}, {f: 2, c: 24972}, 24975, 24979, {f: 5, c: 24981}, - {f: 2, c: 24987}, {f: 6, c: 24990}, {f: 2, c: 24997}, 25002, 25005, - {f: 3, c: 25007}, {f: 3, c: 25011}, {f: 6, c: 25016}, {f: 3, c: 25023}, - {f: 4, c: 25027}, {f: 4, c: 25037}, 25043, {f: 9, c: 25045}, - {f: 3, c: 25056}, {f: 2, c: 25060}, 25063, {f: 9, c: 25065}, - {f: 2, c: 25075}, 25081, 25083, 25085, {f: 5, c: 25089}, 25097, 25107, - 25113, {f: 3, c: 25116}, 25120, 25123, 25126, {f: 2, c: 25128}, 25131, - 25133, 25135, 25137, 25141, [12094, 25142], {f: 5, c: 25144}, 25154, - {f: 3, c: 25156}, 25162, {f: 2, c: 25167}, {f: 3, c: 25173}, - {f: 2, c: 25177}, {f: 7, c: 25180}, {f: 2, c: 25188}, 25192, - {f: 2, c: 25201}, {f: 2, c: 25204}, {f: 2, c: 25207}, {f: 2, c: 25210}, - 25213, {f: 3, c: 25217}, {f: 4, c: 25221}, {f: 6, c: 25227}, 25236, 25241, - {f: 3, c: 25244}, 25251, {f: 2, c: 25254}, {f: 2, c: 25257}, - {f: 4, c: 25261}, {f: 3, c: 25266}, {f: 3, c: 25270}, 25274, 25278, - {f: 2, c: 25280}, 25283, 25291, 25295, 25297, 25301, {f: 2, c: 25309}, - {f: 2, c: 25312}, 25316, {f: 2, c: 25322}, 25328, 25330, 25333, - {f: 4, c: 25336}, 25344, {f: 4, c: 25347}, {f: 4, c: 25354}, - {f: 2, c: 25359}, {f: 4, c: 25362}, {f: 3, c: 25367}, 25372, - {f: 2, c: 25382}, 25385, {f: 3, c: 25388}, {f: 2, c: 25392}, - {f: 6, c: 25395}, {f: 2, c: 25403}, {f: 3, c: 25407}, 25412, - {f: 2, c: 25415}, 25418, {f: 4, c: 25425}, {f: 8, c: 25430}, 25440, - {f: 3, c: 25444}, 25450, 25452, {f: 2, c: 25455}, {f: 3, c: 25459}, - {f: 2, c: 25464}, {f: 4, c: 25468}, 25473, {f: 2, c: 25477}, 25483, 25485, - 25489, {f: 3, c: 25491}, 25495, {f: 7, c: 25497}, 25505, 25508, 25510, - 25515, 25519, {f: 2, c: 25521}, {f: 2, c: 25525}, 25529, 25531, 25533, - 25535, {f: 3, c: 25537}, 25541, {f: 2, c: 25543}, {f: 3, c: 25546}, 25553, - {f: 3, c: 25555}, {f: 3, c: 25559}, {f: 3, c: 25563}, 25567, 25570, - {f: 5, c: 25572}, {f: 2, c: 25579}, {f: 3, c: 25583}, 25587, 25589, 25591, - {f: 4, c: 25593}, 25598, {f: 2, c: 25603}, {f: 5, c: 25606}, 25614, - {f: 2, c: 25617}, {f: 2, c: 25621}, {f: 3, c: 25624}, 25629, 25631, - {f: 4, c: 25634}, {f: 3, c: 25639}, 25643, {f: 6, c: 25646}, 25653, - {f: 3, c: 25655}, {f: 2, c: 25659}, 25662, 25664, {f: 2, c: 25666}, 25673, - {f: 6, c: 25675}, 25683, {f: 3, c: 25685}, {f: 3, c: 25689}, 25693, - {f: 7, c: 25696}, 25704, {f: 3, c: 25706}, 25710, {f: 3, c: 25712}, - {f: 2, c: 25716}, 25719, {f: 6, c: 25724}, 25731, 25734, {f: 8, c: 25737}, - 25748, {f: 2, c: 25751}, {f: 4, c: 25754}, {f: 3, c: 25760}, - {f: 3, c: 25766}, 25770, 25775, 25777, 25780, 25782, 25785, 25789, 25795, - 25798, {f: 2, c: 25800}, 25804, 25807, 25809, 25811, {f: 2, c: 25813}, - 25817, {f: 3, c: 25819}, 25823, 25825, 25827, 25829, {f: 5, c: 25831}, - {f: 2, c: 25837}, 25843, {f: 2, c: 25845}, {f: 2, c: 25848}, 25853, 25855, - {f: 3, c: 25857}, 25861, {f: 2, c: 25863}, {f: 5, c: 25866}, - {f: 2, c: 25872}, 25875, 25877, 25879, 25882, 25884, {f: 4, c: 25886}, - {f: 4, c: 25894}, 25901, {f: 4, c: 25904}, 25911, 25914, {f: 2, c: 25916}, - {f: 5, c: 25920}, {f: 2, c: 25926}, {f: 2, c: 25930}, {f: 2, c: 25933}, - 25936, {f: 3, c: 25938}, 25944, 25946, 25948, {f: 3, c: 25951}, - {f: 2, c: 25956}, {f: 4, c: 25959}, {f: 3, c: 25965}, 25969, 25971, 25974, - {f: 9, c: 25977}, {f: 3, c: 25988}, {f: 3, c: 25992}, {f: 3, c: 25997}, - 26002, 26004, 26006, 26008, 26010, {f: 2, c: 26013}, 26016, - {f: 2, c: 26018}, 26022, 26024, 26026, 26030, {f: 6, c: 26033}, 26040, - {f: 2, c: 26042}, {f: 3, c: 26046}, 26050, {f: 4, c: 26055}, 26061, - {f: 2, c: 26064}, {f: 3, c: 26067}, {f: 8, c: 26072}, 26081, - {f: 2, c: 26083}, {f: 2, c: 26090}, {f: 4, c: 26098}, {f: 2, c: 26104}, - {f: 5, c: 26107}, 26113, {f: 2, c: 26116}, {f: 3, c: 26119}, 26123, 26125, - {f: 3, c: 26128}, {f: 3, c: 26134}, {f: 3, c: 26138}, 26142, - {f: 4, c: 26145}, 26150, {f: 4, c: 26153}, 26158, 26160, {f: 2, c: 26162}, - {f: 5, c: 26167}, 26173, {f: 2, c: 26175}, {f: 7, c: 26180}, - {f: 2, c: 26189}, {f: 2, c: 26192}, {f: 2, c: 26200}, {f: 2, c: 26203}, - 26206, 26208, {f: 2, c: 26210}, 26213, 26215, {f: 5, c: 26217}, - {f: 3, c: 26225}, 26229, {f: 2, c: 26232}, {f: 3, c: 26235}, - {f: 3, c: 26239}, 26243, {f: 2, c: 26245}, {f: 2, c: 26250}, - {f: 4, c: 26253}, {f: 4, c: 26258}, {f: 5, c: 26264}, {f: 4, c: 26270}, - {f: 4, c: 26275}, {f: 2, c: 26281}, {f: 2, c: 26284}, {f: 5, c: 26287}, - {f: 4, c: 26293}, {f: 4, c: 26298}, {f: 5, c: 26303}, 26309, 26312, - {f: 12, c: 26314}, {f: 2, c: 26327}, 26330, {f: 2, c: 26334}, - {f: 5, c: 26337}, {f: 2, c: 26343}, {f: 2, c: 26346}, {f: 3, c: 26349}, - 26353, {f: 2, c: 26357}, {f: 2, c: 26362}, 26365, {f: 2, c: 26369}, - {f: 4, c: 26372}, 26380, {f: 2, c: 26382}, {f: 3, c: 26385}, 26390, - {f: 3, c: 26392}, 26396, 26398, {f: 6, c: 26400}, 26409, 26414, 26416, - {f: 2, c: 26418}, {f: 4, c: 26422}, {f: 2, c: 26427}, {f: 2, c: 26430}, - 26433, {f: 2, c: 26436}, 26439, {f: 2, c: 26442}, 26445, 26450, - {f: 2, c: 26452}, {f: 5, c: 26455}, 26461, {f: 3, c: 26466}, - {f: 2, c: 26470}, {f: 2, c: 26475}, 26478, 26484, 26486, {f: 4, c: 26488}, - 26493, 26496, {f: 2, c: 26498}, {f: 2, c: 26501}, 26504, 26506, - {f: 4, c: 26508}, {f: 4, c: 26513}, 26518, 26521, 26523, {f: 3, c: 26527}, - 26532, 26534, 26537, 26540, 26542, {f: 2, c: 26545}, 26548, - {f: 8, c: 26553}, 26562, {f: 10, c: 26565}, {f: 3, c: 26581}, 26587, 26591, - 26593, {f: 2, c: 26595}, {f: 3, c: 26598}, {f: 2, c: 26602}, - {f: 2, c: 26605}, 26610, {f: 8, c: 26613}, 26622, {f: 4, c: 26625}, 26630, - 26637, 26640, 26642, {f: 2, c: 26644}, {f: 5, c: 26648}, {f: 3, c: 26654}, - {f: 7, c: 26658}, {f: 7, c: 26667}, {f: 3, c: 26676}, {f: 2, c: 26682}, - 26687, 26695, 26699, 26701, 26703, 26706, {f: 10, c: 26710}, 26730, - {f: 8, c: 26732}, 26741, {f: 9, c: 26744}, 26754, 26756, {f: 8, c: 26759}, - {f: 3, c: 26768}, {f: 3, c: 26772}, {f: 4, c: 26777}, 26782, - {f: 2, c: 26784}, {f: 3, c: 26787}, {f: 4, c: 26793}, 26798, - {f: 2, c: 26801}, 26804, {f: 10, c: 26806}, 26817, {f: 6, c: 26819}, 26826, - 26828, {f: 4, c: 26830}, {f: 2, c: 26835}, 26841, {f: 4, c: 26843}, - {f: 2, c: 26849}, {f: 3, c: 26852}, {f: 6, c: 26856}, 26863, - {f: 3, c: 26866}, {f: 3, c: 26870}, 26875, {f: 4, c: 26877}, - {f: 3, c: 26882}, {f: 5, c: 26886}, 26892, 26897, {f: 12, c: 26899}, - {f: 3, c: 26913}, {f: 8, c: 26917}, {f: 2, c: 26926}, {f: 3, c: 26929}, - {f: 4, c: 26933}, {f: 3, c: 26938}, 26942, {f: 2, c: 26944}, - {f: 7, c: 26947}, {f: 8, c: 26955}, {f: 2, c: 26965}, {f: 2, c: 26968}, - {f: 2, c: 26971}, 26975, {f: 2, c: 26977}, {f: 2, c: 26980}, 26983, - {f: 2, c: 26985}, 26988, {f: 2, c: 26991}, {f: 3, c: 26994}, 26998, - {f: 2, c: 27002}, {f: 3, c: 27005}, 27009, 27011, 27013, {f: 3, c: 27018}, - {f: 6, c: 27022}, {f: 2, c: 27030}, {f: 2, c: 27033}, {f: 10, c: 27037}, - 27049, 27052, {f: 2, c: 27055}, {f: 2, c: 27058}, {f: 2, c: 27061}, - {f: 3, c: 27064}, {f: 3, c: 27068}, 27072, {f: 8, c: 27074}, 27087, - {f: 3, c: 27089}, {f: 6, c: 27093}, {f: 3, c: 27100}, {f: 6, c: 27105}, - {f: 5, c: 27112}, {f: 4, c: 27118}, {f: 9, c: 27124}, 27134, 27136, - {f: 2, c: 27139}, {f: 4, c: 27142}, {f: 8, c: 27147}, {f: 3, c: 27156}, - {f: 4, c: 27162}, 27168, 27170, {f: 4, c: 27172}, 27177, {f: 4, c: 27179}, - 27184, {f: 3, c: 27186}, {f: 2, c: 27190}, {f: 2, c: 27195}, - {f: 5, c: 27199}, {f: 2, c: 27205}, {f: 2, c: 27209}, {f: 4, c: 27212}, - {f: 7, c: 27217}, 27226, {f: 3, c: 27228}, 27232, {f: 2, c: 27235}, - {f: 11, c: 27238}, {f: 7, c: 27250}, {f: 2, c: 27258}, {f: 3, c: 27261}, - {f: 3, c: 27265}, {f: 4, c: 27269}, {f: 4, c: 27274}, 27279, - {f: 2, c: 27282}, {f: 2, c: 27285}, {f: 4, c: 27288}, {f: 3, c: 27293}, - 27297, {f: 5, c: 27300}, 27306, {f: 2, c: 27309}, {f: 3, c: 27312}, - {f: 4, c: 27316}, {f: 2, c: 27321}, {f: 7, c: 27324}, {f: 15, c: 27332}, - {f: 6, c: 27348}, 27356, {f: 7, c: 27360}, 27369, 27371, {f: 6, c: 27373}, - {f: 4, c: 27380}, {f: 2, c: 27385}, {f: 8, c: 27388}, {f: 5, c: 27397}, - {f: 4, c: 27403}, {f: 2, c: 27408}, {f: 3, c: 27411}, {f: 7, c: 27415}, - 27423, {f: 2, c: 27429}, {f: 10, c: 27432}, {f: 4, c: 27443}, 27448, - {f: 2, c: 27451}, {f: 4, c: 27455}, {f: 2, c: 27460}, 27464, - {f: 2, c: 27466}, {f: 3, c: 27469}, {f: 8, c: 27473}, {f: 5, c: 27482}, - 27488, {f: 2, c: 27496}, {f: 7, c: 27499}, {f: 4, c: 27507}, 27514, - {f: 4, c: 27517}, 27525, 27528, 27532, {f: 4, c: 27534}, {f: 2, c: 27540}, - 27543, 27545, {f: 2, c: 27548}, {f: 2, c: 27551}, {f: 2, c: 27554}, - {f: 5, c: 27557}, {f: 2, c: 27564}, {f: 2, c: 27568}, 27574, - {f: 2, c: 27576}, {f: 3, c: 27580}, 27584, {f: 2, c: 27587}, - {f: 4, c: 27591}, 27596, 27598, {f: 2, c: 27600}, 27608, 27610, - {f: 5, c: 27612}, {f: 8, c: 27618}, {f: 3, c: 27628}, {f: 3, c: 27632}, - 27636, {f: 3, c: 27638}, {f: 3, c: 27642}, 27646, {f: 5, c: 27648}, - {f: 3, c: 27657}, 27662, 27666, 27671, {f: 3, c: 27676}, 27680, 27685, - 27693, 27697, 27699, {f: 2, c: 27702}, {f: 4, c: 27705}, {f: 2, c: 27710}, - {f: 3, c: 27715}, 27720, {f: 5, c: 27723}, {f: 3, c: 27729}, 27734, - {f: 3, c: 27736}, {f: 2, c: 27746}, {f: 3, c: 27749}, {f: 5, c: 27755}, - 27761, 27763, 27765, {f: 2, c: 27767}, {f: 3, c: 27770}, {f: 2, c: 27775}, - 27780, 27783, {f: 2, c: 27786}, {f: 2, c: 27789}, {f: 2, c: 27793}, - {f: 4, c: 27797}, 27802, {f: 3, c: 27804}, 27808, 27810, 27816, 27820, - {f: 2, c: 27823}, {f: 4, c: 27828}, 27834, {f: 4, c: 27840}, - {f: 3, c: 27846}, 27851, {f: 3, c: 27853}, {f: 2, c: 27857}, - {f: 3, c: 27864}, {f: 2, c: 27868}, 27871, 27876, {f: 2, c: 27878}, 27881, - {f: 2, c: 27884}, 27890, 27892, 27897, {f: 2, c: 27903}, {f: 2, c: 27906}, - {f: 2, c: 27909}, {f: 3, c: 27912}, 27917, {f: 3, c: 27919}, - {f: 4, c: 27923}, 27928, {f: 2, c: 27932}, {f: 6, c: 27935}, 27942, - {f: 2, c: 27944}, {f: 2, c: 27948}, {f: 2, c: 27951}, 27956, - {f: 3, c: 27958}, 27962, {f: 2, c: 27967}, 27970, 27972, 27977, 27980, - 27984, {f: 4, c: 27989}, 27995, 27997, 27999, {f: 2, c: 28001}, - {f: 2, c: 28004}, {f: 2, c: 28007}, {f: 3, c: 28011}, {f: 4, c: 28016}, - {f: 2, c: 28021}, {f: 2, c: 28026}, {f: 5, c: 28029}, {f: 2, c: 28035}, - 28038, {f: 2, c: 28042}, 28045, {f: 2, c: 28047}, 28050, {f: 5, c: 28054}, - 28060, 28066, 28069, {f: 2, c: 28076}, {f: 2, c: 28080}, {f: 2, c: 28083}, - {f: 2, c: 28086}, {f: 6, c: 28089}, {f: 3, c: 28097}, {f: 3, c: 28104}, - {f: 4, c: 28109}, {f: 4, c: 28114}, 28119, {f: 3, c: 28122}, 28127, - {f: 2, c: 28130}, 28133, {f: 3, c: 28135}, 28141, {f: 2, c: 28143}, 28146, - 28148, 28152, {f: 8, c: 28157}, {f: 4, c: 28166}, 28171, 28175, - {f: 2, c: 28178}, 28181, {f: 2, c: 28184}, {f: 2, c: 28187}, - {f: 2, c: 28190}, 28194, {f: 2, c: 28199}, 28202, 28206, {f: 2, c: 28208}, - 28211, {f: 3, c: 28213}, 28217, {f: 3, c: 28219}, {f: 4, c: 28223}, - {f: 8, c: 28229}, {f: 4, c: 28239}, 28245, 28247, {f: 2, c: 28249}, - {f: 2, c: 28252}, {f: 11, c: 28256}, {f: 2, c: 28268}, {f: 14, c: 28272}, - {f: 3, c: 28288}, 28292, {f: 2, c: 28295}, {f: 5, c: 28298}, - {f: 5, c: 28305}, 28311, {f: 3, c: 28313}, 28318, {f: 2, c: 28320}, - {f: 2, c: 28323}, 28326, {f: 2, c: 28328}, {f: 4, c: 28331}, 28336, 28339, - 28341, {f: 2, c: 28344}, 28348, {f: 3, c: 28350}, 28355, 28358, - {f: 3, c: 28360}, 28365, 28368, 28370, 28374, {f: 2, c: 28376}, - {f: 3, c: 28379}, 28387, 28391, {f: 2, c: 28394}, {f: 2, c: 28397}, - {f: 2, c: 28400}, 28403, {f: 2, c: 28405}, {f: 5, c: 28410}, 28416, - {f: 3, c: 28419}, {f: 2, c: 28423}, {f: 5, c: 28426}, {f: 3, c: 28432}, - {f: 4, c: 28438}, {f: 5, c: 28443}, 28449, {f: 4, c: 28453}, 28462, 28464, - {f: 2, c: 28468}, 28471, {f: 5, c: 28473}, 28480, {f: 4, c: 28482}, - {f: 3, c: 28488}, 28492, {f: 3, c: 28494}, {f: 2, c: 28498}, - {f: 3, c: 28501}, {f: 2, c: 28506}, 28509, {f: 3, c: 28511}, 28515, 28517, - {f: 6, c: 28519}, 28529, 28531, {f: 2, c: 28533}, 28537, 28539, - {f: 2, c: 28541}, {f: 3, c: 28545}, 28549, {f: 2, c: 28554}, - {f: 8, c: 28559}, {f: 4, c: 28568}, {f: 3, c: 28573}, {f: 2, c: 28578}, - {f: 2, c: 28581}, 28584, {f: 4, c: 28586}, {f: 2, c: 28591}, 28594, - {f: 2, c: 28596}, {f: 2, c: 28599}, {f: 6, c: 28602}, {f: 5, c: 28612}, - {f: 7, c: 28618}, {f: 2, c: 28627}, {f: 2, c: 28630}, {f: 2, c: 28633}, - {f: 2, c: 28636}, {f: 2, c: 28642}, {f: 6, c: 28645}, {f: 2, c: 28652}, - {f: 8, c: 28658}, 28667, 28669, {f: 6, c: 28671}, {f: 2, c: 28679}, 28682, - {f: 3, c: 28684}, 28688, {f: 3, c: 28690}, {f: 2, c: 28694}, 28697, 28700, - 28702, {f: 2, c: 28705}, {f: 3, c: 28708}, {f: 7, c: 28713}, 28721, - {f: 2, c: 28723}, {f: 3, c: 28726}, {f: 4, c: 28730}, {f: 4, c: 28735}, - {f: 7, c: 28741}, {f: 2, c: 28749}, 28752, {f: 3, c: 28754}, - {f: 2, c: 28758}, {f: 4, c: 28761}, {f: 4, c: 28767}, {f: 2, c: 28773}, - {f: 3, c: 28776}, 28782, {f: 4, c: 28785}, 28791, {f: 3, c: 28793}, 28797, - {f: 4, c: 28801}, {f: 3, c: 28806}, {f: 3, c: 28811}, {f: 3, c: 28815}, - 28819, {f: 2, c: 28823}, {f: 2, c: 28826}, {f: 13, c: 28830}, 28848, 28850, - {f: 3, c: 28852}, 28858, {f: 2, c: 28862}, {f: 4, c: 28868}, 28873, - {f: 4, c: 28875}, {f: 8, c: 28880}, 28890, {f: 3, c: 28892}, - {f: 4, c: 28896}, 28901, 28906, 28910, {f: 4, c: 28912}, {f: 2, c: 28917}, - 28920, {f: 3, c: 28922}, {f: 11, c: 28926}, {f: 5, c: 28939}, - {f: 2, c: 28945}, 28948, 28951, {f: 6, c: 28955}, {f: 4, c: 28962}, - {f: 8, c: 28967}, {f: 4, c: 28978}, {f: 14, c: 28983}, {f: 3, c: 28998}, - 29003, 29005, {f: 3, c: 29007}, {f: 9, c: 29011}, 29021, {f: 3, c: 29023}, - 29027, 29029, {f: 2, c: 29034}, 29037, {f: 3, c: 29039}, {f: 4, c: 29044}, - 29049, {f: 2, c: 29051}, {f: 6, c: 29054}, {f: 5, c: 29061}, - {f: 4, c: 29067}, {f: 2, c: 29072}, 29075, {f: 2, c: 29077}, - {f: 5, c: 29082}, {f: 7, c: 29089}, {f: 3, c: 29097}, {f: 4, c: 29101}, - 29106, 29108, {f: 3, c: 29110}, {f: 4, c: 29114}, {f: 2, c: 29119}, 29122, - {f: 4, c: 29124}, {f: 5, c: 29129}, {f: 3, c: 29135}, 29139, - {f: 3, c: 29142}, {f: 2, c: 29146}, {f: 2, c: 29149}, {f: 4, c: 29153}, - {f: 5, c: 29160}, {f: 5, c: 29167}, {f: 4, c: 29173}, {f: 2, c: 29178}, - 29181, {f: 7, c: 29183}, {f: 6, c: 29191}, {f: 2, c: 29198}, - {f: 10, c: 29201}, 29212, {f: 10, c: 29214}, 29225, 29227, - {f: 3, c: 29229}, {f: 2, c: 29235}, 29244, {f: 7, c: 29248}, - {f: 3, c: 29257}, {f: 4, c: 29262}, {f: 3, c: 29267}, 29271, 29274, 29276, - 29278, 29280, {f: 3, c: 29283}, 29288, {f: 4, c: 29290}, {f: 2, c: 29296}, - {f: 2, c: 29299}, {f: 3, c: 29302}, {f: 2, c: 29307}, {f: 2, c: 29314}, - {f: 5, c: 29317}, 29324, 29326, {f: 2, c: 29328}, {f: 3, c: 29331}, - {f: 8, c: 29335}, {f: 2, c: 29344}, {f: 4, c: 29347}, {f: 4, c: 29352}, - 29358, {f: 3, c: 29361}, 29365, {f: 6, c: 29370}, {f: 3, c: 29381}, - {f: 4, c: 29385}, 29391, 29393, {f: 4, c: 29395}, 29400, {f: 4, c: 29402}, - 29407, {f: 6, c: 29410}, {f: 2, c: 29418}, {f: 2, c: 29429}, - {f: 3, c: 29438}, 29442, {f: 6, c: 29444}, {f: 3, c: 29451}, - {f: 4, c: 29455}, 29460, {f: 3, c: 29464}, {f: 2, c: 29471}, - {f: 2, c: 29475}, {f: 3, c: 29478}, 29485, {f: 2, c: 29487}, - {f: 2, c: 29490}, 29493, 29498, {f: 2, c: 29500}, 29504, {f: 2, c: 29506}, - {f: 7, c: 29510}, {f: 2, c: 29518}, 29521, {f: 4, c: 29523}, - {f: 8, c: 29528}, {f: 7, c: 29537}, 29545, 29550, 29553, {f: 2, c: 29555}, - 29558, 29561, 29565, 29567, {f: 3, c: 29569}, {f: 2, c: 29573}, 29576, - 29578, {f: 2, c: 29580}, {f: 2, c: 29583}, {f: 4, c: 29586}, - {f: 4, c: 29591}, {f: 3, c: 29596}, {f: 2, c: 29600}, {f: 6, c: 29603}, - 29610, {f: 2, c: 29612}, 29617, {f: 3, c: 29620}, {f: 2, c: 29624}, - {f: 4, c: 29628}, 29633, {f: 5, c: 29635}, {f: 2, c: 29643}, 29646, - {f: 7, c: 29650}, {f: 4, c: 29658}, 29663, {f: 4, c: 29665}, 29670, 29672, - {f: 3, c: 29674}, {f: 4, c: 29678}, {f: 11, c: 29683}, {f: 4, c: 29695}, - 29700, {f: 2, c: 29703}, {f: 4, c: 29707}, {f: 9, c: 29713}, - {f: 6, c: 29724}, {f: 2, c: 29731}, 29735, 29737, 29739, 29741, 29743, - {f: 2, c: 29745}, {f: 5, c: 29751}, {f: 2, c: 29757}, 29760, - {f: 9, c: 29762}, {f: 9, c: 29772}, 29782, 29784, 29789, {f: 3, c: 29792}, - {f: 5, c: 29796}, {f: 2, c: 29803}, {f: 2, c: 29806}, {f: 5, c: 29809}, - {f: 6, c: 29816}, 29823, 29826, {f: 3, c: 29828}, 29832, 29834, - {f: 2, c: 29836}, 29839, {f: 11, c: 29841}, 29853, {f: 4, c: 29855}, - {f: 2, c: 29860}, {f: 6, c: 29866}, {f: 9, c: 29873}, {f: 2, c: 29883}, - {f: 12, c: 29886}, {f: 4, c: 29899}, {f: 2, c: 29904}, 29907, - {f: 5, c: 29909}, 29915, 29917, 29919, 29921, 29925, {f: 7, c: 29927}, - {f: 4, c: 29936}, 29941, {f: 7, c: 29944}, {f: 4, c: 29952}, - {f: 7, c: 29957}, 29966, 29968, 29970, {f: 4, c: 29972}, 29979, - {f: 2, c: 29981}, {f: 3, c: 29984}, 29988, {f: 2, c: 29990}, 29994, 29998, - 30004, 30006, 30009, {f: 2, c: 30012}, 30015, {f: 4, c: 30017}, - {f: 2, c: 30022}, {f: 2, c: 30025}, 30029, {f: 4, c: 30032}, - {f: 4, c: 30037}, {f: 4, c: 30046}, {f: 2, c: 30051}, {f: 3, c: 30055}, - {f: 6, c: 30060}, 30067, 30069, 30071, {f: 5, c: 30074}, {f: 3, c: 30080}, - {f: 2, c: 30084}, {f: 3, c: 30088}, {f: 3, c: 30092}, 30096, 30099, 30101, - 30104, {f: 2, c: 30107}, 30110, 30114, {f: 5, c: 30118}, 30125, - {f: 2, c: 30134}, {f: 2, c: 30138}, {f: 3, c: 30143}, 30150, - {f: 2, c: 30155}, {f: 4, c: 30158}, 30163, 30167, 30170, {f: 2, c: 30172}, - {f: 3, c: 30175}, 30181, 30185, {f: 4, c: 30188}, {f: 2, c: 30194}, - {f: 4, c: 30197}, {f: 2, c: 30202}, {f: 2, c: 30205}, 30212, - {f: 4, c: 30214}, {f: 2, c: 30222}, {f: 4, c: 30225}, 30230, 30234, - {f: 2, c: 30236}, 30243, 30248, 30252, {f: 2, c: 30254}, {f: 2, c: 30257}, - {f: 2, c: 30262}, {f: 2, c: 30265}, 30269, 30273, {f: 2, c: 30276}, 30280, - {f: 2, c: 30282}, {f: 6, c: 30286}, 30293, 30295, {f: 3, c: 30297}, 30301, - {f: 2, c: 30304}, 30310, 30312, 30314, {f: 3, c: 30323}, [12136, 30326], - 30327, {f: 2, c: 30329}, {f: 3, c: 30335}, 30339, 30341, {f: 2, c: 30345}, - {f: 2, c: 30348}, {f: 2, c: 30351}, 30354, {f: 2, c: 30356}, - {f: 2, c: 30359}, {f: 9, c: 30363}, {f: 9, c: 30373}, {f: 2, c: 30383}, - 30387, {f: 3, c: 30389}, 30393, {f: 4, c: 30395}, {f: 2, c: 30400}, - {f: 2, c: 30403}, 30407, 30409, {f: 2, c: 30411}, 30419, 30421, - {f: 2, c: 30425}, {f: 2, c: 30428}, 30432, 30434, 30438, {f: 6, c: 30440}, - 30448, 30451, {f: 3, c: 30453}, {f: 2, c: 30458}, 30461, {f: 2, c: 30463}, - {f: 2, c: 30466}, {f: 2, c: 30469}, 30474, 30476, {f: 11, c: 30478}, - {f: 4, c: 30491}, 30497, {f: 3, c: 30499}, 30503, {f: 3, c: 30506}, 30510, - {f: 5, c: 30512}, 30521, 30523, {f: 3, c: 30525}, 30530, {f: 3, c: 30532}, - {f: 7, c: 30536}, {f: 8, c: 30546}, {f: 2, c: 30556}, {f: 2, c: 30559}, - 30564, 30567, {f: 2, c: 30569}, {f: 12, c: 30573}, {f: 3, c: 30586}, - {f: 3, c: 30593}, {f: 6, c: 30598}, {f: 2, c: 30607}, {f: 5, c: 30611}, - {f: 5, c: 30617}, 30625, {f: 2, c: 30627}, 30630, 30632, 30635, - {f: 2, c: 30638}, {f: 2, c: 30641}, 30644, {f: 5, c: 30646}, 30654, - {f: 7, c: 30656}, {f: 5, c: 30664}, {f: 9, c: 30670}, {f: 2, c: 30680}, - {f: 5, c: 30685}, 30692, 30694, 30696, 30698, {f: 3, c: 30704}, - {f: 2, c: 30708}, 30711, {f: 4, c: 30713}, {f: 6, c: 30723}, - {f: 2, c: 30730}, {f: 3, c: 30734}, 30739, 30741, 30745, 30747, 30750, - {f: 3, c: 30752}, 30756, 30760, {f: 2, c: 30762}, {f: 2, c: 30766}, - {f: 3, c: 30769}, {f: 2, c: 30773}, 30781, 30783, {f: 2, c: 30785}, 30788, - 30790, {f: 4, c: 30792}, 30797, 30799, 30801, {f: 2, c: 30803}, - {f: 5, c: 30808}, {f: 6, c: 30814}, {f: 3, c: 30821}, 30825, - {f: 7, c: 30832}, {f: 4, c: 30840}, {f: 10, c: 30845}, 30856, - {f: 2, c: 30858}, {f: 2, c: 30863}, 30866, {f: 3, c: 30868}, 30873, - {f: 2, c: 30877}, 30880, 30882, 30884, 30886, 30888, {f: 3, c: 30890}, - {f: 2, c: 30894}, {f: 3, c: 30901}, 30907, 30909, {f: 2, c: 30911}, - {f: 3, c: 30914}, {f: 3, c: 30918}, {f: 4, c: 30924}, {f: 3, c: 30929}, - {f: 3, c: 30934}, {f: 8, c: 30939}, {f: 3, c: 30948}, {f: 3, c: 30953}, - {f: 2, c: 30957}, {f: 2, c: 30960}, 30963, {f: 2, c: 30965}, - {f: 2, c: 30968}, {f: 2, c: 30971}, {f: 3, c: 30974}, {f: 3, c: 30978}, - {f: 8, c: 30982}, {f: 4, c: 30991}, {f: 5, c: 30996}, {f: 4, c: 31002}, - {f: 5, c: 31007}, 31013, {f: 3, c: 31015}, {f: 4, c: 31021}, - {f: 2, c: 31026}, {f: 5, c: 31029}, 31037, 31039, {f: 4, c: 31042}, 31047, - {f: 9, c: 31050}, {f: 2, c: 31060}, {f: 2, c: 31064}, 31073, - {f: 2, c: 31075}, 31078, {f: 4, c: 31081}, 31086, {f: 7, c: 31088}, 31097, - {f: 5, c: 31099}, {f: 2, c: 31106}, {f: 4, c: 31110}, {f: 2, c: 31115}, - {f: 10, c: 31120}, {f: 11, c: 31131}, {f: 2, c: 31144}, {f: 3, c: 31147}, - 31151, 31154, {f: 4, c: 31156}, [12145, 31160], 31164, 31167, 31170, - {f: 2, c: 31172}, {f: 2, c: 31175}, 31178, 31180, {f: 3, c: 31182}, - {f: 2, c: 31187}, {f: 2, c: 31190}, {f: 6, c: 31193}, {f: 3, c: 31200}, - 31205, 31208, 31210, 31212, 31214, {f: 7, c: 31217}, {f: 2, c: 31225}, - 31228, {f: 2, c: 31230}, 31233, {f: 2, c: 31236}, {f: 4, c: 31239}, 31244, - {f: 5, c: 31247}, {f: 2, c: 31253}, {f: 2, c: 31256}, {f: 3, c: 31259}, - 31263, {f: 2, c: 31265}, {f: 10, c: 31268}, {f: 2, c: 31279}, 31282, - {f: 3, c: 31284}, 31288, 31290, 31294, {f: 5, c: 31297}, {f: 5, c: 31303}, - {f: 2, c: 31311}, {f: 5, c: 31314}, {f: 9, c: 31320}, {f: 6, c: 31331}, - 31338, {f: 4, c: 31340}, {f: 3, c: 31345}, 31349, {f: 4, c: 31355}, 31362, - 31365, 31367, {f: 4, c: 31369}, {f: 3, c: 31374}, {f: 2, c: 31379}, - {f: 3, c: 31385}, 31390, {f: 4, c: 31393}, 31399, 31403, {f: 4, c: 31407}, - {f: 2, c: 31412}, {f: 3, c: 31415}, {f: 4, c: 31419}, {f: 4, c: 31424}, - 31430, 31433, {f: 10, c: 31436}, {f: 2, c: 31447}, {f: 4, c: 31450}, - {f: 2, c: 31457}, 31460, {f: 3, c: 31463}, {f: 2, c: 31467}, 31470, - {f: 6, c: 31472}, {f: 2, c: 31479}, {f: 2, c: 31483}, 31486, - {f: 3, c: 31488}, 31493, 31495, 31497, {f: 3, c: 31500}, 31504, - {f: 2, c: 31506}, {f: 3, c: 31510}, 31514, {f: 2, c: 31516}, 31519, - {f: 3, c: 31521}, 31527, 31529, 31533, {f: 2, c: 31535}, 31538, - {f: 4, c: 31540}, 31545, 31547, 31549, {f: 6, c: 31551}, 31560, 31562, - {f: 2, c: 31565}, 31571, 31573, 31575, 31577, 31580, {f: 2, c: 31582}, - 31585, {f: 4, c: 31587}, {f: 6, c: 31592}, {f: 2, c: 31599}, - {f: 2, c: 31603}, 31606, 31608, 31610, {f: 2, c: 31612}, 31615, - {f: 4, c: 31617}, {f: 5, c: 31622}, 31628, {f: 2, c: 31630}, - {f: 3, c: 31633}, 31638, {f: 4, c: 31640}, {f: 3, c: 31646}, - {f: 3, c: 31651}, {f: 3, c: 31662}, {f: 2, c: 31666}, {f: 3, c: 31669}, - {f: 7, c: 31673}, {f: 2, c: 31682}, 31685, 31688, 31690, {f: 4, c: 31693}, - 31698, {f: 5, c: 31700}, {f: 2, c: 31707}, {f: 3, c: 31710}, - {f: 2, c: 31714}, {f: 2, c: 31719}, {f: 3, c: 31723}, {f: 2, c: 31727}, - 31730, {f: 3, c: 31732}, {f: 4, c: 31736}, 31741, 31743, {f: 6, c: 31745}, - {f: 3, c: 31752}, 31758, {f: 6, c: 31760}, {f: 7, c: 31767}, 31776, 31778, - {f: 2, c: 31780}, {f: 2, c: 31784}, {f: 12, c: 31788}, {f: 4, c: 31801}, - 31810, {f: 8, c: 31812}, {f: 14, c: 31822}, {f: 2, c: 31837}, - {f: 3, c: 31841}, {f: 4, c: 31845}, 31851, 31853, {f: 3, c: 31855}, - {f: 6, c: 31861}, {f: 11, c: 31870}, {f: 7, c: 31882}, {f: 2, c: 31891}, - 31894, {f: 3, c: 31897}, {f: 2, c: 31904}, 31907, {f: 4, c: 31910}, - {f: 3, c: 31915}, {f: 2, c: 31919}, {f: 5, c: 31924}, {f: 2, c: 31930}, - {f: 2, c: 31935}, {f: 3, c: 31938}, 31942, 31945, 31947, {f: 7, c: 31950}, - 31960, {f: 2, c: 31962}, {f: 6, c: 31969}, {f: 6, c: 31977}, 31985, 31987, - 31989, 31991, 31994, {f: 2, c: 31996}, 31999, 32001, 32003, 32012, - {f: 2, c: 32014}, {f: 2, c: 32017}, 32022, 32024, {f: 3, c: 32029}, - {f: 4, c: 32035}, {f: 3, c: 32040}, {f: 3, c: 32044}, {f: 5, c: 32052}, - 32059, {f: 2, c: 32061}, 32065, 32067, 32069, {f: 7, c: 32071}, 32079, - {f: 12, c: 32081}, {f: 2, c: 32095}, {f: 3, c: 32099}, 32103, - {f: 5, c: 32105}, {f: 2, c: 32111}, {f: 2, c: 32116}, 32120, - {f: 7, c: 32122}, 32130, {f: 2, c: 32132}, 32135, {f: 5, c: 32138}, - {f: 3, c: 32144}, {f: 8, c: 32148}, 32157, {f: 3, c: 32159}, - {f: 2, c: 32164}, {f: 4, c: 32167}, 32175, {f: 3, c: 32181}, 32188, - {f: 4, c: 32192}, {f: 2, c: 32197}, {f: 2, c: 32200}, {f: 5, c: 32204}, - 32211, {f: 2, c: 32213}, {f: 3, c: 32218}, 32223, 32226, {f: 2, c: 32228}, - 32231, {f: 2, c: 32234}, {f: 2, c: 32237}, 32240, 32243, 32245, - {f: 2, c: 32247}, 32250, {f: 12, c: 32252}, {f: 4, c: 32268}, - {f: 9, c: 32274}, 32284, {f: 3, c: 32288}, {f: 3, c: 32292}, - {f: 3, c: 32296}, 32300, {f: 2, c: 32303}, 32307, 32312, 32314, 32316, - {f: 2, c: 32319}, {f: 3, c: 32322}, {f: 10, c: 32328}, 32339, - {f: 4, c: 32342}, {f: 3, c: 32347}, {f: 3, c: 32351}, {f: 6, c: 32355}, - 32364, {f: 2, c: 32369}, {f: 5, c: 32372}, {f: 2, c: 32378}, - {f: 3, c: 32383}, {f: 5, c: 32387}, 32393, 32395, 32398, {f: 3, c: 32400}, - 32405, 32407, {f: 2, c: 32409}, {f: 2, c: 32413}, 32430, 32436, - {f: 2, c: 32443}, 32470, 32484, 32492, 32505, 32522, 32528, 32542, 32567, - 32569, {f: 7, c: 32571}, 32579, {f: 6, c: 32582}, 32589, 32591, - {f: 2, c: 32594}, 32598, 32601, {f: 4, c: 32603}, 32608, {f: 5, c: 32611}, - {f: 3, c: 32619}, 32623, 32627, {f: 2, c: 32629}, 32632, {f: 4, c: 32634}, - {f: 2, c: 32639}, {f: 3, c: 32642}, 32647, 32649, 32651, 32653, - {f: 5, c: 32655}, {f: 5, c: 32661}, {f: 2, c: 32667}, 32672, - {f: 2, c: 32674}, 32678, 32680, {f: 5, c: 32682}, 32689, {f: 5, c: 32691}, - {f: 2, c: 32698}, 32702, 32704, {f: 3, c: 32706}, {f: 4, c: 32710}, 32715, - 32717, {f: 3, c: 32719}, 32723, {f: 2, c: 32726}, {f: 6, c: 32729}, - {f: 3, c: 32738}, {f: 2, c: 32743}, {f: 4, c: 32746}, 32751, 32754, - {f: 5, c: 32756}, 32762, {f: 3, c: 32765}, 32770, {f: 4, c: 32775}, - {f: 2, c: 32782}, 32785, 32787, {f: 2, c: 32794}, {f: 3, c: 32797}, 32801, - {f: 2, c: 32803}, 32811, 32813, {f: 2, c: 32815}, 32818, 32820, - {f: 2, c: 32825}, 32828, 32830, {f: 2, c: 32832}, {f: 2, c: 32836}, - {f: 3, c: 32839}, {f: 4, c: 32846}, 32851, 32853, 32855, 32857, - {f: 3, c: 32859}, {f: 10, c: 32863}, {f: 4, c: 32875}, 32884, 32888, - {f: 3, c: 32890}, {f: 2, c: 32897}, 32904, 32906, {f: 6, c: 32909}, - {f: 2, c: 32916}, 32919, 32921, 32926, 32931, {f: 3, c: 32934}, 32940, - 32944, 32947, {f: 2, c: 32949}, {f: 2, c: 32952}, 32955, 32965, - {f: 5, c: 32967}, {f: 7, c: 32975}, 32984, {f: 2, c: 32991}, - {f: 2, c: 32994}, 32998, 33006, 33013, 33015, 33017, 33019, - {f: 4, c: 33022}, {f: 2, c: 33027}, {f: 2, c: 33031}, {f: 2, c: 33035}, - 33045, 33047, 33049, {f: 2, c: 33052}, {f: 13, c: 33055}, {f: 2, c: 33069}, - 33072, {f: 3, c: 33075}, 33079, {f: 4, c: 33082}, {f: 7, c: 33087}, 33095, - 33097, 33101, 33103, 33106, {f: 2, c: 33111}, {f: 5, c: 33115}, - {f: 3, c: 33122}, 33128, 33130, 33132, 33135, {f: 2, c: 33138}, - {f: 3, c: 33141}, 33153, {f: 5, c: 33155}, 33161, {f: 4, c: 33163}, 33168, - {f: 6, c: 33170}, 33177, {f: 2, c: 33182}, {f: 2, c: 33185}, - {f: 2, c: 33188}, 33191, {f: 8, c: 33195}, {f: 6, c: 33204}, 33212, - {f: 2, c: 33220}, {f: 2, c: 33223}, 33227, 33230, {f: 8, c: 33232}, 33241, - {f: 4, c: 33243}, {f: 2, c: 33249}, {f: 3, c: 33252}, 33257, 33259, - {f: 5, c: 33262}, {f: 5, c: 33269}, 33277, 33279, 33283, 33291, - {f: 2, c: 33294}, 33297, 33299, {f: 6, c: 33301}, 33309, 33312, - {f: 4, c: 33316}, 33321, 33326, 33330, 33338, {f: 2, c: 33340}, - {f: 5, c: 33343}, {f: 2, c: 33349}, 33352, 33354, {f: 3, c: 33356}, - {f: 8, c: 33360}, {f: 4, c: 33371}, {f: 4, c: 33376}, 33381, 33383, - {f: 2, c: 33385}, {f: 2, c: 33388}, {f: 2, c: 33397}, [12171, 33400], - {f: 2, c: 33403}, {f: 2, c: 33408}, 33411, {f: 3, c: 33413}, 33417, 33420, - 33424, {f: 4, c: 33427}, {f: 2, c: 33434}, 33438, 33440, {f: 2, c: 33442}, - 33447, 33458, {f: 2, c: 33461}, 33466, 33468, {f: 2, c: 33471}, - {f: 2, c: 33474}, {f: 2, c: 33477}, 33481, 33488, 33494, {f: 2, c: 33497}, - 33501, 33506, {f: 3, c: 33512}, {f: 3, c: 33516}, 33520, {f: 2, c: 33522}, - {f: 2, c: 33525}, 33528, 33530, {f: 5, c: 33532}, {f: 2, c: 33546}, 33549, - 33552, {f: 2, c: 33554}, 33558, {f: 2, c: 33560}, {f: 10, c: 33565}, - {f: 2, c: 33577}, 33582, 33584, 33586, 33591, 33595, {f: 3, c: 33597}, - {f: 2, c: 33601}, {f: 2, c: 33604}, 33608, {f: 5, c: 33610}, 33619, - {f: 5, c: 33621}, 33629, 33634, {f: 7, c: 33648}, {f: 2, c: 33657}, - {f: 7, c: 33662}, {f: 2, c: 33671}, {f: 3, c: 33675}, {f: 3, c: 33679}, - {f: 2, c: 33684}, 33687, {f: 2, c: 33689}, 33693, 33695, 33697, - {f: 4, c: 33699}, {f: 4, c: 33708}, 33717, 33723, {f: 2, c: 33726}, - {f: 3, c: 33730}, 33734, {f: 2, c: 33736}, 33739, {f: 2, c: 33741}, - {f: 4, c: 33744}, 33749, 33751, {f: 3, c: 33753}, 33758, {f: 3, c: 33762}, - {f: 3, c: 33766}, {f: 4, c: 33771}, {f: 5, c: 33779}, {f: 3, c: 33786}, - {f: 3, c: 33790}, 33794, 33797, {f: 2, c: 33800}, 33808, {f: 6, c: 33810}, - {f: 3, c: 33817}, {f: 6, c: 33822}, {f: 3, c: 33833}, {f: 4, c: 33837}, - {f: 3, c: 33842}, {f: 2, c: 33846}, {f: 3, c: 33849}, {f: 8, c: 33854}, - {f: 2, c: 33863}, {f: 7, c: 33866}, {f: 4, c: 33875}, 33880, - {f: 4, c: 33885}, 33890, 33893, {f: 2, c: 33895}, 33898, 33902, 33904, - 33906, 33908, 33913, {f: 7, c: 33915}, {f: 4, c: 33923}, 33930, 33933, - {f: 4, c: 33935}, {f: 2, c: 33941}, 33944, {f: 2, c: 33946}, - {f: 4, c: 33949}, {f: 13, c: 33954}, {f: 2, c: 33968}, 33971, - {f: 3, c: 33973}, 33979, 33982, {f: 2, c: 33986}, {f: 4, c: 33989}, 33996, - {f: 2, c: 33998}, 34002, {f: 2, c: 34004}, {f: 6, c: 34007}, 34014, - {f: 2, c: 34017}, 34020, {f: 5, c: 34023}, 34029, {f: 11, c: 34033}, 34046, - {f: 12, c: 34048}, {f: 4, c: 34061}, 34066, {f: 2, c: 34069}, - {f: 2, c: 34072}, {f: 3, c: 34075}, 34080, 34082, {f: 2, c: 34084}, - {f: 4, c: 34087}, {f: 9, c: 34094}, {f: 3, c: 34110}, 34114, - {f: 2, c: 34116}, 34119, {f: 3, c: 34123}, {f: 3, c: 34127}, 34132, 34135, - {f: 4, c: 34138}, {f: 3, c: 34143}, 34147, {f: 3, c: 34149}, - {f: 2, c: 34155}, {f: 4, c: 34158}, 34163, {f: 2, c: 34165}, 34168, - {f: 2, c: 34172}, {f: 5, c: 34175}, 34182, 34185, 34187, {f: 2, c: 34189}, - 34192, {f: 2, c: 34194}, {f: 6, c: 34197}, {f: 2, c: 34205}, - {f: 4, c: 34208}, 34213, 34215, {f: 3, c: 34219}, {f: 6, c: 34225}, 34232, - {f: 6, c: 34235}, {f: 7, c: 34242}, {f: 3, c: 34250}, {f: 2, c: 34257}, - 34260, {f: 6, c: 34262}, {f: 6, c: 34270}, {f: 3, c: 34278}, - {f: 9, c: 34283}, 34293, {f: 2, c: 34295}, {f: 3, c: 34300}, - {f: 4, c: 34304}, {f: 3, c: 34312}, {f: 5, c: 34316}, {f: 4, c: 34322}, - {f: 3, c: 34327}, {f: 3, c: 34331}, {f: 3, c: 34335}, {f: 4, c: 34339}, - 34344, {f: 3, c: 34346}, {f: 10, c: 34350}, 34361, 34363, {f: 2, c: 34365}, - {f: 13, c: 34368}, {f: 2, c: 34386}, {f: 4, c: 34390}, 34395, 34397, - {f: 2, c: 34400}, {f: 4, c: 34403}, {f: 3, c: 34408}, 34413, - {f: 2, c: 34415}, {f: 7, c: 34418}, {f: 7, c: 34435}, {f: 5, c: 34446}, - 34452, {f: 6, c: 34454}, {f: 5, c: 34462}, {f: 2, c: 34469}, 34475, - {f: 2, c: 34477}, {f: 2, c: 34482}, {f: 3, c: 34487}, {f: 5, c: 34491}, - {f: 3, c: 34497}, 34501, 34504, {f: 2, c: 34508}, {f: 2, c: 34514}, - {f: 3, c: 34517}, 34522, {f: 2, c: 34524}, {f: 4, c: 34528}, - {f: 4, c: 34533}, {f: 3, c: 34538}, 34543, {f: 3, c: 34549}, - {f: 3, c: 34555}, 34559, 34561, {f: 2, c: 34564}, {f: 2, c: 34571}, - {f: 4, c: 34574}, 34580, 34582, 34585, 34587, 34589, {f: 2, c: 34591}, - 34596, {f: 3, c: 34598}, {f: 4, c: 34602}, {f: 2, c: 34607}, - {f: 2, c: 34610}, {f: 2, c: 34613}, {f: 3, c: 34616}, {f: 2, c: 34620}, - {f: 7, c: 34624}, {f: 2, c: 34634}, 34637, {f: 4, c: 34639}, 34644, 34646, - 34648, {f: 6, c: 34650}, {f: 2, c: 34657}, {f: 7, c: 34663}, 34671, - {f: 3, c: 34673}, 34677, 34679, {f: 2, c: 34681}, {f: 3, c: 34687}, - {f: 2, c: 34694}, {f: 2, c: 34697}, 34700, {f: 5, c: 34702}, - {f: 3, c: 34708}, {f: 6, c: 34712}, {f: 2, c: 34720}, {f: 5, c: 34723}, - {f: 2, c: 34729}, 34734, {f: 3, c: 34736}, 34740, {f: 4, c: 34742}, 34748, - {f: 2, c: 34750}, {f: 3, c: 34753}, 34757, 34759, 34761, {f: 2, c: 34764}, - {f: 2, c: 34767}, {f: 7, c: 34772}, {f: 4, c: 34780}, {f: 2, c: 34785}, - 34788, {f: 4, c: 34790}, 34795, 34797, {f: 2, c: 34800}, {f: 3, c: 34803}, - {f: 2, c: 34807}, 34810, {f: 2, c: 34812}, {f: 4, c: 34815}, 34820, - {f: 3, c: 34823}, {f: 5, c: 34827}, 34834, 34836, {f: 4, c: 34839}, - {f: 3, c: 34844}, 34848, {f: 13, c: 34852}, {f: 3, c: 34867}, - {f: 2, c: 34871}, 34874, {f: 3, c: 34877}, {f: 3, c: 34881}, - {f: 3, c: 34887}, 34891, {f: 5, c: 34894}, {f: 2, c: 34901}, 34904, 34906, - 34908, {f: 3, c: 34910}, {f: 2, c: 34918}, 34922, 34925, 34927, 34929, - {f: 4, c: 34931}, 34936, {f: 3, c: 34938}, 34944, 34947, {f: 2, c: 34950}, - {f: 2, c: 34953}, 34956, {f: 4, c: 34958}, {f: 3, c: 34963}, - {f: 5, c: 34967}, {f: 5, c: 34973}, 34979, {f: 6, c: 34981}, 34988, - {f: 3, c: 34990}, {f: 5, c: 34994}, {f: 4, c: 35000}, {f: 4, c: 35005}, - {f: 2, c: 35011}, {f: 2, c: 35015}, {f: 3, c: 35019}, {f: 2, c: 35024}, - 35027, {f: 2, c: 35030}, {f: 2, c: 35034}, 35038, {f: 2, c: 35040}, - {f: 2, c: 35046}, {f: 7, c: 35049}, 35058, {f: 3, c: 35061}, - {f: 2, c: 35066}, {f: 3, c: 35071}, {f: 4, c: 35075}, {f: 2, c: 35080}, - {f: 5, c: 35083}, 35089, {f: 5, c: 35092}, {f: 5, c: 35100}, - {f: 3, c: 35106}, {f: 4, c: 35110}, {f: 4, c: 35116}, 35121, 35125, 35127, - {f: 2, c: 35129}, {f: 5, c: 35132}, {f: 2, c: 35138}, {f: 2, c: 35141}, - {f: 14, c: 35144}, {f: 6, c: 35159}, {f: 3, c: 35169}, 35173, - {f: 3, c: 35175}, 35179, {f: 2, c: 35181}, {f: 2, c: 35184}, - {f: 8, c: 35187}, {f: 2, c: 35196}, [12177, 35198], 35200, 35202, - {f: 2, c: 35204}, {f: 4, c: 35207}, {f: 3, c: 35212}, {f: 3, c: 35216}, - {f: 2, c: 35220}, 35223, {f: 8, c: 35225}, {f: 4, c: 35234}, - {f: 3, c: 35239}, 35243, {f: 2, c: 35245}, {f: 2, c: 35248}, - {f: 4, c: 35251}, {f: 2, c: 35256}, {f: 2, c: 35259}, 35262, 35267, 35277, - {f: 3, c: 35283}, {f: 3, c: 35287}, 35291, 35293, {f: 4, c: 35295}, 35300, - {f: 4, c: 35303}, {f: 3, c: 35308}, {f: 3, c: 35312}, 35317, 35319, - {f: 7, c: 35321}, {f: 3, c: 35332}, 35337, 35339, 35341, 35343, - {f: 2, c: 35345}, 35348, 35351, {f: 2, c: 35353}, 35356, 35358, - {f: 3, c: 35360}, 35364, {f: 4, c: 35366}, {f: 2, c: 35371}, - {f: 3, c: 35374}, {f: 2, c: 35378}, 35381, {f: 3, c: 35383}, - {f: 3, c: 35387}, {f: 2, c: 35391}, {f: 4, c: 35394}, 35399, - {f: 5, c: 35401}, 35407, 35409, 35411, {f: 2, c: 35414}, {f: 2, c: 35417}, - {f: 2, c: 35420}, {f: 2, c: 35423}, {f: 2, c: 35428}, {f: 2, c: 35431}, - 35434, 35439, 35444, {f: 3, c: 35446}, {f: 2, c: 35450}, {f: 2, c: 35453}, - {f: 4, c: 35456}, 35464, {f: 2, c: 35467}, {f: 3, c: 35470}, 35476, - {f: 2, c: 35478}, 35481, {f: 3, c: 35483}, 35487, 35490, 35495, - {f: 3, c: 35497}, {f: 3, c: 35501}, 35505, {f: 3, c: 35507}, - {f: 2, c: 35511}, {f: 2, c: 35514}, {f: 2, c: 35517}, {f: 2, c: 35520}, - 35523, {f: 2, c: 35525}, 35528, 35530, 35532, 35534, 35536, - {f: 3, c: 35539}, {f: 3, c: 35544}, 35549, {f: 3, c: 35551}, 35555, 35557, - {f: 3, c: 35560}, 35564, {f: 2, c: 35567}, 35570, {f: 2, c: 35572}, 35577, - 35579, 35581, 35583, 35587, 35590, {f: 2, c: 35592}, {f: 3, c: 35595}, - 35599, {f: 3, c: 35601}, 35605, 35608, 35612, {f: 3, c: 35614}, - {f: 4, c: 35618}, 35623, {f: 2, c: 35625}, {f: 5, c: 35630}, - {f: 5, c: 35636}, {f: 4, c: 35642}, {f: 10, c: 35647}, {f: 4, c: 35658}, - {f: 6, c: 35664}, 35671, 35675, {f: 9, c: 35677}, {f: 4, c: 35687}, - {f: 2, c: 35693}, {f: 3, c: 35697}, {f: 2, c: 35701}, {f: 5, c: 35704}, - {f: 2, c: 35710}, {f: 9, c: 35713}, {f: 3, c: 35723}, {f: 3, c: 35727}, - 35732, {f: 5, c: 35735}, 35741, 35743, 35756, 35761, 35771, 35783, 35792, - 35818, 35849, 35870, {f: 9, c: 35896}, {f: 4, c: 35906}, {f: 2, c: 35914}, - {f: 3, c: 35917}, {f: 4, c: 35921}, {f: 4, c: 35926}, {f: 6, c: 35931}, - {f: 7, c: 35939}, {f: 7, c: 35948}, {f: 4, c: 35956}, {f: 7, c: 35963}, - {f: 2, c: 35971}, {f: 3, c: 35974}, 35979, {f: 7, c: 35981}, - {f: 3, c: 35989}, {f: 4, c: 35993}, 35999, {f: 4, c: 36003}, - {f: 2, c: 36013}, 36017, 36021, 36025, 36030, 36038, 36041, - {f: 6, c: 36043}, 36052, {f: 4, c: 36054}, 36059, 36061, 36063, 36069, - {f: 2, c: 36072}, {f: 6, c: 36078}, {f: 5, c: 36085}, {f: 5, c: 36095}, - {f: 2, c: 36102}, 36105, 36108, 36110, {f: 5, c: 36113}, {f: 4, c: 36119}, - 36128, {f: 2, c: 36177}, 36183, 36191, 36197, {f: 3, c: 36200}, 36204, - {f: 2, c: 36206}, {f: 2, c: 36209}, {f: 9, c: 36216}, {f: 2, c: 36226}, - {f: 4, c: 36230}, {f: 5, c: 36236}, {f: 2, c: 36242}, {f: 3, c: 36246}, - {f: 5, c: 36250}, {f: 3, c: 36256}, {f: 4, c: 36260}, {f: 8, c: 36265}, - {f: 2, c: 36278}, 36281, 36283, 36285, {f: 3, c: 36288}, 36293, - {f: 4, c: 36295}, 36301, 36304, {f: 4, c: 36306}, {f: 2, c: 36312}, 36316, - {f: 3, c: 36320}, {f: 3, c: 36325}, 36329, {f: 2, c: 36333}, - {f: 3, c: 36336}, 36340, 36342, 36348, {f: 7, c: 36350}, {f: 3, c: 36358}, - 36363, {f: 2, c: 36365}, {f: 3, c: 36369}, {f: 8, c: 36373}, - {f: 2, c: 36384}, {f: 5, c: 36388}, 36395, 36397, 36400, {f: 2, c: 36402}, - {f: 3, c: 36406}, {f: 2, c: 36411}, {f: 2, c: 36414}, 36419, - {f: 2, c: 36421}, {f: 4, c: 36429}, {f: 2, c: 36435}, {f: 3, c: 36438}, - {f: 9, c: 36442}, {f: 2, c: 36452}, {f: 2, c: 36455}, {f: 2, c: 36458}, - 36462, 36465, 36467, 36469, {f: 3, c: 36471}, 36475, {f: 2, c: 36477}, - 36480, {f: 3, c: 36482}, 36486, 36488, 36492, 36494, {f: 5, c: 36501}, - 36507, 36509, {f: 2, c: 36511}, {f: 3, c: 36514}, {f: 3, c: 36519}, - {f: 2, c: 36525}, {f: 2, c: 36528}, {f: 7, c: 36531}, {f: 5, c: 36539}, - {f: 9, c: 36545}, {f: 3, c: 36559}, 36563, {f: 6, c: 36565}, - {f: 3, c: 36572}, {f: 4, c: 36576}, {f: 6, c: 36581}, {f: 6, c: 36588}, - {f: 5, c: 36595}, 36605, {f: 4, c: 36607}, 36612, 36614, 36616, - {f: 7, c: 36619}, 36627, {f: 5, c: 36630}, {f: 5, c: 36640}, - {f: 2, c: 36647}, {f: 4, c: 36651}, {f: 3, c: 36656}, {f: 4, c: 36660}, - {f: 2, c: 36665}, {f: 2, c: 36668}, {f: 2, c: 36672}, 36675, - {f: 2, c: 36679}, {f: 3, c: 36682}, {f: 5, c: 36687}, {f: 10, c: 36693}, - 36704, 36707, 36709, 36714, 36736, 36748, 36754, 36765, {f: 3, c: 36768}, - {f: 2, c: 36772}, 36775, 36778, 36780, {f: 2, c: 36787}, [12193, 36789], - {f: 2, c: 36791}, {f: 3, c: 36794}, {f: 2, c: 36799}, 36803, 36806, - {f: 5, c: 36809}, 36815, 36818, {f: 2, c: 36822}, 36826, {f: 2, c: 36832}, - 36835, 36839, 36844, 36847, {f: 2, c: 36849}, {f: 2, c: 36853}, - {f: 3, c: 36858}, {f: 2, c: 36862}, {f: 2, c: 36871}, 36876, 36878, 36883, - 36888, 36892, {f: 2, c: 36900}, {f: 6, c: 36903}, {f: 2, c: 36912}, - {f: 2, c: 36915}, 36919, {f: 2, c: 36921}, 36925, {f: 2, c: 36927}, 36931, - {f: 2, c: 36933}, {f: 3, c: 36936}, 36940, 36950, {f: 2, c: 36953}, 36957, - 36959, 36961, 36964, {f: 2, c: 36966}, {f: 3, c: 36970}, {f: 3, c: 36975}, - 36979, 36982, 36985, 36987, 36990, {f: 2, c: 36997}, 37001, - {f: 3, c: 37004}, 37010, 37012, 37014, 37016, 37018, 37020, - {f: 3, c: 37022}, {f: 2, c: 37028}, {f: 3, c: 37031}, 37035, 37037, 37042, - 37047, {f: 2, c: 37052}, {f: 2, c: 37055}, {f: 2, c: 37058}, 37062, - {f: 2, c: 37064}, {f: 3, c: 37067}, 37074, {f: 3, c: 37076}, - {f: 3, c: 37080}, 37086, 37088, {f: 3, c: 37091}, {f: 2, c: 37097}, 37100, - 37102, {f: 4, c: 37104}, {f: 2, c: 37110}, {f: 4, c: 37113}, - {f: 3, c: 37119}, 37123, 37125, {f: 2, c: 37127}, {f: 8, c: 37130}, 37139, - 37141, {f: 2, c: 37143}, {f: 4, c: 37146}, {f: 3, c: 37151}, - {f: 3, c: 37156}, {f: 5, c: 37160}, 37166, 37171, 37173, {f: 2, c: 37175}, - {f: 8, c: 37179}, {f: 2, c: 37188}, 37191, 37201, {f: 4, c: 37203}, - {f: 2, c: 37208}, {f: 2, c: 37211}, {f: 2, c: 37215}, {f: 3, c: 37222}, - 37227, 37229, 37235, {f: 3, c: 37242}, {f: 5, c: 37248}, 37254, 37256, - 37258, {f: 2, c: 37262}, {f: 3, c: 37267}, {f: 3, c: 37271}, - {f: 5, c: 37277}, {f: 6, c: 37284}, {f: 4, c: 37296}, {f: 4, c: 37302}, - {f: 5, c: 37307}, 37314, 37316, [12196, 37318], 37320, 37328, 37334, - {f: 2, c: 37338}, {f: 5, c: 37342}, {f: 2, c: 37349}, 37352, - {f: 11, c: 37354}, 37366, 37368, {f: 5, c: 37371}, {f: 2, c: 37378}, - {f: 3, c: 37381}, {f: 3, c: 37386}, 37391, {f: 2, c: 37394}, - {f: 8, c: 37398}, {f: 4, c: 37407}, 37412, {f: 6, c: 37416}, 37423, - {f: 2, c: 37425}, {f: 2, c: 37429}, {f: 2, c: 37435}, {f: 4, c: 37441}, - {f: 2, c: 37446}, {f: 3, c: 37450}, {f: 3, c: 37454}, {f: 3, c: 37458}, - 37462, {f: 2, c: 37464}, {f: 2, c: 37468}, {f: 3, c: 37471}, - {f: 3, c: 37475}, {f: 5, c: 37479}, {f: 6, c: 37486}, {f: 3, c: 37493}, - 37497, {f: 3, c: 37500}, {f: 2, c: 37505}, 37508, {f: 8, c: 37510}, - {f: 2, c: 37519}, 37522, {f: 2, c: 37524}, 37527, 37529, 37531, - {f: 3, c: 37533}, {f: 2, c: 37537}, 37540, 37543, 37549, {f: 2, c: 37551}, - {f: 5, c: 37554}, 37560, 37562, {f: 4, c: 37565}, 37570, 37572, 37574, - {f: 3, c: 37577}, {f: 2, c: 37581}, {f: 2, c: 37584}, {f: 10, c: 37587}, - 37598, {f: 3, c: 37600}, 37607, 37609, {f: 2, c: 37611}, {f: 4, c: 37618}, - 37623, {f: 3, c: 37625}, {f: 4, c: 37629}, {f: 4, c: 37634}, - {f: 7, c: 37641}, 37649, {f: 2, c: 37651}, {f: 2, c: 37654}, - {f: 3, c: 37660}, 37665, {f: 3, c: 37667}, 37671, {f: 2, c: 37673}, - {f: 2, c: 37676}, {f: 2, c: 37680}, {f: 2, c: 37684}, 37687, - {f: 5, c: 37689}, 37695, 37698, {f: 2, c: 37700}, {f: 3, c: 37704}, 37708, - {f: 6, c: 37710}, {f: 3, c: 37717}, {f: 2, c: 37721}, {f: 8, c: 37724}, - {f: 3, c: 37734}, 37739, {f: 3, c: 37741}, {f: 4, c: 37745}, - {f: 3, c: 37751}, {f: 3, c: 37755}, {f: 3, c: 37759}, 37763, - {f: 2, c: 37765}, {f: 2, c: 37768}, {f: 4, c: 37771}, {f: 6, c: 37776}, - 37783, {f: 9, c: 37785}, {f: 2, c: 37796}, 37800, 37803, 37805, 37807, - {f: 2, c: 37809}, 37812, {f: 2, c: 37814}, {f: 6, c: 37817}, - {f: 3, c: 37824}, {f: 3, c: 37828}, 37833, 37835, {f: 3, c: 37838}, - {f: 4, c: 37842}, {f: 3, c: 37849}, 37856, 37859, {f: 3, c: 37861}, - {f: 12, c: 37865}, 37878, 37880, {f: 9, c: 37882}, {f: 7, c: 37892}, - {f: 4, c: 37900}, 37905, {f: 3, c: 37909}, {f: 3, c: 37914}, - {f: 2, c: 37918}, {f: 5, c: 37921}, {f: 5, c: 37929}, {f: 3, c: 37935}, - 37940, {f: 2, c: 37942}, 37945, {f: 3, c: 37947}, {f: 4, c: 37952}, - {f: 5, c: 37957}, 37963, {f: 5, c: 37965}, 37971, {f: 11, c: 37973}, - {f: 2, c: 37985}, 37988, {f: 5, c: 37990}, 37996, {f: 2, c: 37998}, 38001, - {f: 4, c: 38003}, 38008, {f: 2, c: 38010}, {f: 5, c: 38016}, 38033, 38038, - 38040, 38087, 38095, {f: 2, c: 38099}, 38106, 38118, 38139, 38172, 38176, - 38183, 38195, 38205, 38211, 38216, 38219, 38229, 38234, 38240, 38254, - {f: 2, c: 38260}, {f: 7, c: 38264}, 38273, {f: 2, c: 38276}, - {f: 2, c: 38279}, 38282, 38285, 38288, 38290, {f: 3, c: 38293}, - {f: 8, c: 38297}, 38306, {f: 2, c: 38310}, 38314, {f: 4, c: 38318}, - {f: 3, c: 38323}, {f: 2, c: 38327}, 38330, {f: 3, c: 38336}, - {f: 2, c: 38340}, 38343, 38345, {f: 3, c: 38349}, {f: 3, c: 38353}, - {f: 5, c: 38359}, 38365, {f: 2, c: 38367}, {f: 2, c: 38371}, - {f: 2, c: 38374}, 38380, 38399, 38407, 38419, 38424, 38427, 38430, 38432, - {f: 7, c: 38435}, {f: 3, c: 38443}, {f: 2, c: 38447}, {f: 4, c: 38455}, - 38462, 38465, 38467, 38474, {f: 2, c: 38478}, {f: 3, c: 38481}, - {f: 2, c: 38486}, {f: 2, c: 38489}, 38492, 38494, 38496, {f: 2, c: 38501}, - 38507, {f: 3, c: 38509}, 38513, {f: 4, c: 38521}, {f: 7, c: 38526}, 38535, - 38537, 38540, {f: 3, c: 38545}, 38550, 38554, {f: 10, c: 38557}, 38569, - {f: 5, c: 38571}, 38578, 38581, 38583, 38586, 38591, {f: 2, c: 38594}, - 38600, {f: 2, c: 38602}, {f: 2, c: 38608}, {f: 2, c: 38611}, - {f: 2, c: 38615}, 38618, {f: 3, c: 38621}, 38625, {f: 4, c: 38628}, - {f: 4, c: 38635}, {f: 2, c: 38640}, {f: 2, c: 38644}, 38648, 38650, - {f: 2, c: 38652}, 38655, {f: 2, c: 38658}, 38661, {f: 3, c: 38666}, - {f: 3, c: 38672}, {f: 2, c: 38676}, {f: 5, c: 38679}, 38685, - {f: 8, c: 38687}, {f: 2, c: 38696}, {f: 2, c: 38699}, {f: 2, c: 38702}, - 38705, {f: 5, c: 38707}, {f: 3, c: 38714}, {f: 3, c: 38719}, 38723, - {f: 3, c: 38725}, {f: 8, c: 38729}, [12205, 38737], {f: 2, c: 38740}, - {f: 2, c: 38743}, {f: 2, c: 38748}, 38751, {f: 2, c: 38755}, - {f: 2, c: 38758}, {f: 9, c: 38762}, 38773, {f: 5, c: 38775}, - {f: 8, c: 38781}, {f: 5, c: 38790}, 38796, 38798, 38800, 38803, - {f: 3, c: 38805}, {f: 7, c: 38809}, {f: 2, c: 38817}, {f: 2, c: 38820}, - {f: 4, c: 38823}, 38828, 38830, {f: 2, c: 38832}, 38835, {f: 8, c: 38837}, - {f: 5, c: 38846}, {f: 2, c: 38852}, {f: 2, c: 38855}, 38858, - {f: 6, c: 38861}, {f: 5, c: 38868}, {f: 2, c: 38874}, 38877, - {f: 7, c: 38879}, 38888, {f: 5, c: 38894}, 38900, {f: 8, c: 38903}, 38912, - 38916, 38921, 38923, 38925, {f: 3, c: 38932}, {f: 3, c: 38937}, - {f: 4, c: 38941}, {f: 2, c: 38946}, 38949, {f: 6, c: 38951}, - {f: 2, c: 38958}, {f: 6, c: 38961}, {f: 2, c: 38969}, 38972, - {f: 8, c: 38974}, {f: 5, c: 38983}, {f: 4, c: 38991}, {f: 3, c: 38997}, - 39002, {f: 2, c: 39004}, {f: 3, c: 39007}, {f: 2, c: 39011}, 39014, - {f: 3, c: 39016}, {f: 2, c: 39021}, 39026, 39051, 39054, 39058, 39061, - 39065, 39075, {f: 5, c: 39081}, 39088, 39090, {f: 2, c: 39092}, - {f: 5, c: 39095}, {f: 7, c: 39101}, 39109, 39111, {f: 5, c: 39113}, - {f: 2, c: 39119}, 39124, {f: 2, c: 39126}, {f: 2, c: 39132}, 39137, - {f: 4, c: 39139}, 39148, 39150, {f: 2, c: 39152}, 39155, {f: 7, c: 39157}, - {f: 4, c: 39167}, 39172, {f: 3, c: 39174}, 39179, {f: 2, c: 39182}, - {f: 4, c: 39188}, {f: 2, c: 39193}, {f: 2, c: 39196}, {f: 2, c: 39199}, - {f: 6, c: 39202}, {f: 5, c: 39209}, {f: 4, c: 39215}, {f: 3, c: 39220}, - {f: 4, c: 39224}, 39229, {f: 3, c: 39232}, 39236, {f: 2, c: 39238}, - {f: 4, c: 39245}, 39251, 39254, {f: 4, c: 39256}, 39261, {f: 3, c: 39263}, - 39268, 39270, 39283, {f: 2, c: 39288}, 39291, 39294, {f: 2, c: 39298}, - 39305, 39308, 39310, {f: 11, c: 39322}, {f: 2, c: 39334}, {f: 3, c: 39337}, - {f: 2, c: 39343}, 39346, {f: 12, c: 39349}, {f: 14, c: 39362}, 39379, - {f: 2, c: 39382}, 39386, 39388, 39390, 39392, {f: 10, c: 39395}, - {f: 3, c: 39406}, {f: 13, c: 39410}, 39424, {f: 3, c: 39426}, - {f: 7, c: 39430}, {f: 6, c: 39440}, {f: 2, c: 39447}, {f: 17, c: 39450}, - 39468, 39471, {f: 5, c: 39473}, {f: 5, c: 39481}, 39487, {f: 4, c: 39494}, - {f: 2, c: 39499}, 39502, {f: 5, c: 39504}, 39510, {f: 2, c: 39512}, - {f: 3, c: 39516}, {f: 2, c: 39520}, 39523, {f: 4, c: 39526}, 39531, 39538, - 39555, 39561, {f: 2, c: 39565}, {f: 2, c: 39572}, 39577, 39590, - {f: 6, c: 39593}, {f: 4, c: 39602}, 39609, 39611, {f: 3, c: 39613}, - {f: 2, c: 39619}, {f: 5, c: 39622}, {f: 2, c: 39629}, 39632, 39639, - {f: 6, c: 39641}, 39648, {f: 4, c: 39650}, {f: 4, c: 39655}, 39660, - {f: 9, c: 39664}, 39674, {f: 7, c: 39676}, {f: 2, c: 39684}, 39687, - {f: 4, c: 39689}, 39694, {f: 3, c: 39696}, {f: 6, c: 39700}, - {f: 4, c: 39707}, {f: 2, c: 39712}, 39716, 39718, 39720, {f: 4, c: 39722}, - 39728, {f: 8, c: 39731}, {f: 4, c: 39741}, 39750, {f: 3, c: 39754}, 39760, - {f: 2, c: 39762}, {f: 3, c: 39765}, 39769, {f: 20, c: 39771}, - {f: 4, c: 39792}, {f: 2, c: 39797}, {f: 9, c: 39800}, 39810, - {f: 10, c: 39812}, 39823, {f: 7, c: 39827}, {f: 2, c: 39835}, - {f: 11, c: 39839}, 39852, {f: 17, c: 39855}, {f: 5, c: 39874}, 39880, - {f: 9, c: 39883}, 39893, {f: 4, c: 39895}, 39900, {f: 3, c: 39902}, 39907, - {f: 2, c: 39909}, 39913, {f: 4, c: 39916}, {f: 3, c: 39921}, - {f: 8, c: 39925}, 39934, {f: 8, c: 39936}, {f: 3, c: 39946}, - {f: 2, c: 39950}, 39953, {f: 12, c: 39956}, {f: 2, c: 39969}, 39972, - {f: 2, c: 39974}, {f: 3, c: 39978}, {f: 3, c: 39982}, 39988, 39990, 39992, - 39994, {f: 2, c: 39996}, {f: 6, c: 39999}, {f: 2, c: 40006}, - {f: 8, c: 40010}, 40019, 40021, {f: 4, c: 40025}, 40030, {f: 7, c: 40032}, - {f: 5, c: 40040}, {f: 10, c: 40046}, 40057, 40059, {f: 2, c: 40061}, 40064, - {f: 2, c: 40067}, {f: 2, c: 40073}, 40076, 40079, 40083, {f: 4, c: 40086}, - 40093, 40106, 40108, 40111, 40121, {f: 5, c: 40126}, {f: 2, c: 40136}, - {f: 2, c: 40145}, {f: 2, c: 40154}, {f: 2, c: 40160}, {f: 2, c: 40163}, - {f: 3, c: 40166}, {f: 2, c: 40170}, {f: 6, c: 40173}, 40181, - {f: 15, c: 40183}, 40200, {f: 11, c: 40202}, {f: 5, c: 40214}, 40220, - 40222, {f: 3, c: 40224}, {f: 2, c: 40228}, 40231, {f: 6, c: 40233}, - {f: 10, c: 40241}, {f: 3, c: 40252}, {f: 2, c: 40256}, {f: 14, c: 40259}, - {f: 8, c: 40276}, {f: 2, c: 40286}, {f: 8, c: 40290}, 40299, - {f: 2, c: 40301}, {f: 2, c: 40304}, {f: 20, c: 40307}, 40328, - {f: 9, c: 40330}, {f: 4, c: 40340}, 40345, {f: 10, c: 40347}, - {f: 3, c: 40358}, {f: 5, c: 40362}, {f: 4, c: 40368}, {f: 6, c: 40373}, - {f: 3, c: 40381}, 40385, 40387, {f: 14, c: 40389}, {f: 3, c: 40404}, 40408, - {f: 10, c: 40411}, {f: 8, c: 40423}, {f: 2, c: 40432}, {f: 4, c: 40436}, - {f: 17, c: 40443}, {f: 8, c: 40461}, {f: 4, c: 40470}, 40476, 40484, 40487, - 40494, 40496, 40500, {f: 2, c: 40507}, 40512, 40525, 40528, - {f: 3, c: 40530}, 40534, 40537, 40541, {f: 4, c: 40543}, 40549, - {f: 2, c: 40558}, 40562, 40564, {f: 3, c: 40566}, 40571, {f: 2, c: 40576}, - {f: 4, c: 40579}, {f: 2, c: 40585}, {f: 6, c: 40588}, {f: 3, c: 40596}, - {f: 5, c: 40600}, 40606, {f: 5, c: 40608}, {f: 2, c: 40615}, - {f: 5, c: 40618}, {f: 4, c: 40624}, {f: 2, c: 40630}, {f: 2, c: 40633}, - 40636, {f: 4, c: 40639}, [12232, 40643], {f: 4, c: 40645}, - {f: 2, c: 40650}, 40656, {f: 2, c: 40658}, {f: 3, c: 40661}, - {f: 2, c: 40665}, 40673, {f: 2, c: 40675}, 40678, {f: 4, c: 40683}, - {f: 2, c: 40688}, 40691, {f: 2, c: 40693}, 40696, 40698, {f: 9, c: 40704}, - 40714, 40716, 40719, {f: 2, c: 40721}, 40724, 40726, 40728, - {f: 6, c: 40730}, 40737, {f: 9, c: 40739}, {f: 2, c: 40749}, - {f: 7, c: 40752}, 40760, 40762, 40764, {f: 5, c: 40767}, {f: 5, c: 40773}, - {f: 3, c: 40780}, 40787, {f: 4, c: 40789}, {f: 2, c: 40794}, - {f: 2, c: 40797}, 40802, {f: 2, c: 40804}, {f: 3, c: 40807}, 40811, - {f: 5, c: 40813}, {f: 4, c: 40819}, {f: 7, c: 40824}, {f: 2, c: 40833}, - {f: 2, c: 40846}, {f: 3, c: 40849}, {f: 3, c: 40854}, {f: 2, c: 40861}, - {f: 5, c: 40865}, 63788, {f: 3, c: 64013}, 64017, {f: 2, c: 64019}, 64024, - {f: 3, c: 64031}, {f: 2, c: 64035}, {f: 3, c: 64039}, 11905, - [59414, 131207], [59415, 131209], [59416, 131276], 11908, 13427, 13383, - 11912, 11915, 59422, 13726, 13850, 13838, 11916, 11927, 14702, 14616, - 59430, 14799, 14815, 14963, 14800, {f: 2, c: 59435}, 15182, 15470, 15584, - 11943, [59441, 136663], 59442, 11946, 16470, 16735, 11950, 17207, 11955, - {f: 2, c: 11958}, [59451, 141711], 17329, 17324, 11963, 17373, 17622, - 18017, 17996, [59459, 132361], 18211, 18217, 18300, 18317, 11978, 18759, - 18810, 18813, {f: 2, c: 18818}, {f: 2, c: 18821}, 18847, 18843, 18871, - 18870, [59476, 133533], [59477, 147966], 19619, {f: 3, c: 19615}, 19575, - 19618, {f: 7, c: 19731}, 19886, 59492, {s: 226}, 8364, 165, 0, 0, 12351, - {s: 17}, 12436, {s: 14}, 12535, 12537, 12536, 12538, 0, {f: 3, c: 12339}, - {f: 3, c: 12344}, {f: 3, c: 12586}, {f: 24, c: 12704}, 11904, - {f: 2, c: 11906}, {f: 3, c: 11909}, {f: 2, c: 11913}, {f: 10, c: 11917}, - {f: 2, c: 11928}, {f: 12, c: 11931}, {f: 2, c: 11944}, {f: 3, c: 11947}, - {f: 4, c: 11951}, {f: 2, c: 11956}, {f: 3, c: 11960}, {f: 14, c: 11964}, - {f: 41, c: 11979}, {f: 71, c: 13312}, {f: 43, c: 13384}, - {f: 298, c: 13428}, {f: 111, c: 13727}, {f: 11, c: 13839}, - {f: 765, c: 13851}, {f: 85, c: 14617}, {f: 96, c: 14703}, - {f: 14, c: 14801}, {f: 147, c: 14816}, {f: 218, c: 14964}, - {f: 287, c: 15183}, {f: 113, c: 15471}, {f: 885, c: 15585}, - {f: 264, c: 16471}, {f: 471, c: 16736}, {f: 116, c: 17208}, - {f: 4, c: 17325}, {f: 43, c: 17330}, {f: 248, c: 17374}, - {f: 373, c: 17623}, {f: 20, c: 17997}, {f: 193, c: 18018}, - {f: 5, c: 18212}, {f: 82, c: 18218}, {f: 16, c: 18301}, {f: 441, c: 18318}, - {f: 50, c: 18760}, {f: 2, c: 18811}, {f: 4, c: 18814}, 18820, - {f: 20, c: 18823}, {f: 3, c: 18844}, {f: 22, c: 18848}, {f: 703, c: 18872}, - {f: 39, c: 19576}, {f: 111, c: 19620}, {f: 148, c: 19738}, - {f: 7, c: 19887}] -}; - - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -'use strict'; - -var ColorSpace = (function ColorSpaceClosure() { - // Constructor should define this.numComps, this.defaultColor, this.name - function ColorSpace() { - error('should not call ColorSpace constructor'); - } - - ColorSpace.prototype = { - // Input: array of size numComps representing color component values - // Output: array of rgb values, each value ranging from [0.1] - getRgb: function ColorSpace_getRgb(color) { - error('Should not call ColorSpace.getRgb: ' + color); - }, - // Input: Uint8Array of component values, each value scaled to [0,255] - // Output: Uint8Array of rgb values, each value scaled to [0,255] - getRgbBuffer: function ColorSpace_getRgbBuffer(input) { - error('Should not call ColorSpace.getRgbBuffer: ' + input); - } - }; - - ColorSpace.parse = function ColorSpace_parse(cs, xref, res) { - var IR = ColorSpace.parseToIR(cs, xref, res); - if (IR instanceof AlternateCS) - return IR; - - return ColorSpace.fromIR(IR); - }; - - ColorSpace.fromIR = function ColorSpace_fromIR(IR) { - var name = isArray(IR) ? IR[0] : IR; - - switch (name) { - case 'DeviceGrayCS': - return new DeviceGrayCS(); - case 'DeviceRgbCS': - return new DeviceRgbCS(); - case 'DeviceCmykCS': - return new DeviceCmykCS(); - case 'PatternCS': - var basePatternCS = IR[1]; - if (basePatternCS) - basePatternCS = ColorSpace.fromIR(basePatternCS); - return new PatternCS(basePatternCS); - case 'IndexedCS': - var baseIndexedCS = IR[1]; - var hiVal = IR[2]; - var lookup = IR[3]; - return new IndexedCS(ColorSpace.fromIR(baseIndexedCS), hiVal, lookup); - case 'AlternateCS': - var numComps = IR[1]; - var alt = IR[2]; - var tintFnIR = IR[3]; - - return new AlternateCS(numComps, ColorSpace.fromIR(alt), - PDFFunction.fromIR(tintFnIR)); - case 'LabCS': - var whitePoint = IR[1].WhitePoint; - var blackPoint = IR[1].BlackPoint; - var range = IR[1].Range; - return new LabCS(whitePoint, blackPoint, range); - default: - error('Unkown name ' + name); - } - return null; - }; - - ColorSpace.parseToIR = function ColorSpace_parseToIR(cs, xref, res) { - if (isName(cs)) { - var colorSpaces = res.get('ColorSpace'); - if (isDict(colorSpaces)) { - var refcs = colorSpaces.get(cs.name); - if (refcs) - cs = refcs; - } - } - - cs = xref.fetchIfRef(cs); - var mode; - - if (isName(cs)) { - mode = cs.name; - this.mode = mode; - - switch (mode) { - case 'DeviceGray': - case 'G': - return 'DeviceGrayCS'; - case 'DeviceRGB': - case 'RGB': - return 'DeviceRgbCS'; - case 'DeviceCMYK': - case 'CMYK': - return 'DeviceCmykCS'; - case 'Pattern': - return ['PatternCS', null]; - default: - error('unrecognized colorspace ' + mode); - } - } else if (isArray(cs)) { - mode = cs[0].name; - this.mode = mode; - - switch (mode) { - case 'DeviceGray': - case 'G': - return 'DeviceGrayCS'; - case 'DeviceRGB': - case 'RGB': - return 'DeviceRgbCS'; - case 'DeviceCMYK': - case 'CMYK': - return 'DeviceCmykCS'; - case 'CalGray': - return 'DeviceGrayCS'; - case 'CalRGB': - return 'DeviceRgbCS'; - case 'ICCBased': - var stream = xref.fetchIfRef(cs[1]); - var dict = stream.dict; - var numComps = dict.get('N'); - if (numComps == 1) - return 'DeviceGrayCS'; - if (numComps == 3) - return 'DeviceRgbCS'; - if (numComps == 4) - return 'DeviceCmykCS'; - break; - case 'Pattern': - var basePatternCS = cs[1]; - if (basePatternCS) - basePatternCS = ColorSpace.parseToIR(basePatternCS, xref, res); - return ['PatternCS', basePatternCS]; - case 'Indexed': - case 'I': - var baseIndexedCS = ColorSpace.parseToIR(cs[1], xref, res); - var hiVal = cs[2] + 1; - var lookup = xref.fetchIfRef(cs[3]); - return ['IndexedCS', baseIndexedCS, hiVal, lookup]; - case 'Separation': - case 'DeviceN': - var name = cs[1]; - var numComps = 1; - if (isName(name)) - numComps = 1; - else if (isArray(name)) - numComps = name.length; - var alt = ColorSpace.parseToIR(cs[2], xref, res); - var tintFnIR = PDFFunction.getIR(xref, xref.fetchIfRef(cs[3])); - return ['AlternateCS', numComps, alt, tintFnIR]; - case 'Lab': - var params = cs[1].getAll(); - return ['LabCS', params]; - default: - error('unimplemented color space object "' + mode + '"'); - } - } else { - error('unrecognized color space object: "' + cs + '"'); - } - return null; - }; - /** - * Checks if a decode map matches the default decode map for a color space. - * This handles the general decode maps where there are two values per - * component. e.g. [0, 1, 0, 1, 0, 1] for a RGB color. - * This does not handle Lab, Indexed, or Pattern decode maps since they are - * slightly different. - * @param {Array} decode Decode map (usually from an image). - * @param {Number} n Number of components the color space has. - */ - ColorSpace.isDefaultDecode = function ColorSpace_isDefaultDecode(decode, n) { - if (!decode) - return true; - - if (n * 2 !== decode.length) { - warning('The decode map is not the correct length'); - return true; - } - for (var i = 0, ii = decode.length; i < ii; i += 2) { - if (decode[i] != 0 || decode[i + 1] != 1) - return false; - } - return true; - }; - - return ColorSpace; -})(); - -/** - * Alternate color space handles both Separation and DeviceN color spaces. A - * Separation color space is actually just a DeviceN with one color component. - * Both color spaces use a tinting function to convert colors to a base color - * space. - */ -var AlternateCS = (function AlternateCSClosure() { - function AlternateCS(numComps, base, tintFn) { - this.name = 'Alternate'; - this.numComps = numComps; - this.defaultColor = []; - for (var i = 0; i < numComps; ++i) - this.defaultColor.push(1); - this.base = base; - this.tintFn = tintFn; - } - - AlternateCS.prototype = { - getRgb: function AlternateCS_getRgb(color) { - var tinted = this.tintFn(color); - return this.base.getRgb(tinted); - }, - getRgbBuffer: function AlternateCS_getRgbBuffer(input, bits) { - var tintFn = this.tintFn; - var base = this.base; - var scale = 1 / ((1 << bits) - 1); - var length = input.length; - var pos = 0; - var baseNumComps = base.numComps; - var baseBuf = new Uint8Array(baseNumComps * length); - var numComps = this.numComps; - var scaled = []; - - for (var i = 0; i < length; i += numComps) { - for (var z = 0; z < numComps; ++z) - scaled[z] = input[i + z] * scale; - - var tinted = tintFn(scaled); - for (var j = 0; j < baseNumComps; ++j) - baseBuf[pos++] = 255 * tinted[j]; - } - return base.getRgbBuffer(baseBuf, 8); - }, - isDefaultDecode: function AlternateCS_isDefaultDecode(decodeMap) { - return ColorSpace.isDefaultDecode(decodeMap, this.numComps); - } - }; - - return AlternateCS; -})(); - -var PatternCS = (function PatternCSClosure() { - function PatternCS(baseCS) { - this.name = 'Pattern'; - this.base = baseCS; - } - PatternCS.prototype = {}; - - return PatternCS; -})(); - -var IndexedCS = (function IndexedCSClosure() { - function IndexedCS(base, highVal, lookup) { - this.name = 'Indexed'; - this.numComps = 1; - this.defaultColor = [0]; - this.base = base; - this.highVal = highVal; - - var baseNumComps = base.numComps; - var length = baseNumComps * highVal; - var lookupArray = new Uint8Array(length); - - if (isStream(lookup)) { - var bytes = lookup.getBytes(length); - lookupArray.set(bytes); - } else if (isString(lookup)) { - for (var i = 0; i < length; ++i) - lookupArray[i] = lookup.charCodeAt(i); - } else { - error('Unrecognized lookup table: ' + lookup); - } - this.lookup = lookupArray; - } - - IndexedCS.prototype = { - getRgb: function IndexedCS_getRgb(color) { - var numComps = this.base.numComps; - var start = color[0] * numComps; - var c = []; - - for (var i = start, ii = start + numComps; i < ii; ++i) - c.push(this.lookup[i]); - - return this.base.getRgb(c); - }, - getRgbBuffer: function IndexedCS_getRgbBuffer(input) { - var base = this.base; - var numComps = base.numComps; - var lookup = this.lookup; - var length = input.length; - var baseBuf = new Uint8Array(length * numComps); - var baseBufPos = 0; - - for (var i = 0; i < length; ++i) { - var lookupPos = input[i] * numComps; - for (var j = 0; j < numComps; ++j) { - baseBuf[baseBufPos++] = lookup[lookupPos + j]; - } - } - - return base.getRgbBuffer(baseBuf, 8); - }, - isDefaultDecode: function IndexedCS_isDefaultDecode(decodeMap) { - // indexed color maps shouldn't be changed - return true; - } - }; - return IndexedCS; -})(); - -var DeviceGrayCS = (function DeviceGrayCSClosure() { - function DeviceGrayCS() { - this.name = 'DeviceGray'; - this.numComps = 1; - this.defaultColor = [0]; - } - - DeviceGrayCS.prototype = { - getRgb: function DeviceGrayCS_getRgb(color) { - var c = color[0]; - return [c, c, c]; - }, - getRgbBuffer: function DeviceGrayCS_getRgbBuffer(input, bits) { - var scale = 255 / ((1 << bits) - 1); - var length = input.length; - var rgbBuf = new Uint8Array(length * 3); - for (var i = 0, j = 0; i < length; ++i) { - var c = (scale * input[i]) | 0; - rgbBuf[j++] = c; - rgbBuf[j++] = c; - rgbBuf[j++] = c; - } - return rgbBuf; - }, - isDefaultDecode: function DeviceGrayCS_isDefaultDecode(decodeMap) { - return ColorSpace.isDefaultDecode(decodeMap, this.numComps); - } - }; - return DeviceGrayCS; -})(); - -var DeviceRgbCS = (function DeviceRgbCSClosure() { - function DeviceRgbCS() { - this.name = 'DeviceRGB'; - this.numComps = 3; - this.defaultColor = [0, 0, 0]; - } - DeviceRgbCS.prototype = { - getRgb: function DeviceRgbCS_getRgb(color) { - return color; - }, - getRgbBuffer: function DeviceRgbCS_getRgbBuffer(input, bits) { - if (bits == 8) - return input; - var scale = 255 / ((1 << bits) - 1); - var i, length = input.length; - var rgbBuf = new Uint8Array(length); - for (i = 0; i < length; ++i) - rgbBuf[i] = (scale * input[i]) | 0; - return rgbBuf; - }, - isDefaultDecode: function DeviceRgbCS_isDefaultDecode(decodeMap) { - return ColorSpace.isDefaultDecode(decodeMap, this.numComps); - } - }; - return DeviceRgbCS; -})(); - -var DeviceCmykCS = (function DeviceCmykCSClosure() { - function DeviceCmykCS() { - this.name = 'DeviceCMYK'; - this.numComps = 4; - this.defaultColor = [0, 0, 0, 1]; - } - DeviceCmykCS.prototype = { - getRgb: function DeviceCmykCS_getRgb(color) { - var c = color[0], m = color[1], y = color[2], k = color[3]; - - // CMYK -> CMY: http://www.easyrgb.com/index.php?X=MATH&H=14#text14 - c = (c * (1 - k) + k); - m = (m * (1 - k) + k); - y = (y * (1 - k) + k); - - // CMY -> RGB: http://www.easyrgb.com/index.php?X=MATH&H=12#text12 - var r = (1 - c); - var g = (1 - m); - var b = (1 - y); - - return [r, g, b]; - }, - getRgbBuffer: function DeviceCmykCS_getRgbBuffer(colorBuf, bits) { - var scale = 1 / ((1 << bits) - 1); - var length = colorBuf.length / 4; - var rgbBuf = new Uint8Array(length * 3); - var rgbBufPos = 0; - var colorBufPos = 0; - - for (var i = 0; i < length; i++) { - var cmyk = []; - for (var j = 0; j < 4; ++j) - cmyk.push(scale * colorBuf[colorBufPos++]); - - var rgb = this.getRgb(cmyk); - for (var j = 0; j < 3; ++j) - rgbBuf[rgbBufPos++] = Math.round(rgb[j] * 255); - } - - return rgbBuf; - }, - isDefaultDecode: function DeviceCmykCS_isDefaultDecode(decodeMap) { - return ColorSpace.isDefaultDecode(decodeMap, this.numComps); - } - }; - - return DeviceCmykCS; -})(); - -// -// LabCS: Based on "PDF Reference, Sixth Ed", p.250 -// -var LabCS = (function LabCSClosure() { - function LabCS(whitePoint, blackPoint, range) { - this.name = 'Lab'; - this.numComps = 3; - this.defaultColor = [0, 0, 0]; - - if (!whitePoint) - error('WhitePoint missing - required for color space Lab'); - blackPoint = blackPoint || [0, 0, 0]; - range = range || [-100, 100, -100, 100]; - - // Translate args to spec variables - this.XW = whitePoint[0]; - this.YW = whitePoint[1]; - this.ZW = whitePoint[2]; - this.amin = range[0]; - this.amax = range[1]; - this.bmin = range[2]; - this.bmax = range[3]; - - // These are here just for completeness - the spec doesn't offer any - // formulas that use BlackPoint in Lab - this.XB = blackPoint[0]; - this.YB = blackPoint[1]; - this.ZB = blackPoint[2]; - - // Validate vars as per spec - if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) - error('Invalid WhitePoint components, no fallback available'); - - if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { - warn('Invalid BlackPoint, falling back to default'); - this.XB = this.YB = this.ZB = 0; - } - - if (this.amin > this.amax || this.bmin > this.bmax) { - warn('Invalid Range, falling back to defaults'); - this.amin = -100; - this.amax = 100; - this.bmin = -100; - this.bmax = 100; - } - }; - - // Function g(x) from spec - function g(x) { - if (x >= 6 / 29) - return x * x * x; - else - return (108 / 841) * (x - 4 / 29); - } - - LabCS.prototype = { - getRgb: function LabCS_getRgb(color) { - // Ls,as,bs <---> L*,a*,b* in the spec - var Ls = color[0], as = color[1], bs = color[2]; - - // Adjust limits of 'as' and 'bs' - as = as > this.amax ? this.amax : as; - as = as < this.amin ? this.amin : as; - bs = bs > this.bmax ? this.bmax : bs; - bs = bs < this.bmin ? this.bmin : bs; - - // Computes intermediate variables X,Y,Z as per spec - var M = (Ls + 16) / 116; - var L = M + (as / 500); - var N = M - (bs / 200); - var X = this.XW * g(L); - var Y = this.YW * g(M); - var Z = this.ZW * g(N); - - // XYZ to RGB 3x3 matrix, from: - // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html#RTFToC18 - var XYZtoRGB = [3.240479, -1.537150, -0.498535, - -0.969256, 1.875992, 0.041556, - 0.055648, -0.204043, 1.057311]; - - return Util.apply3dTransform(XYZtoRGB, [X, Y, Z]); - }, - getRgbBuffer: function LabCS_getRgbBuffer(input, bits) { - if (bits == 8) - return input; - var scale = 255 / ((1 << bits) - 1); - var i, length = input.length / 3; - var rgbBuf = new Uint8Array(length); - - var j = 0; - for (i = 0; i < length; ++i) { - // Convert L*, a*, s* into RGB - var rgb = this.getRgb([input[i], input[i + 1], input[i + 2]]); - rgbBuf[j++] = rgb[0]; - rgbBuf[j++] = rgb[1]; - rgbBuf[j++] = rgb[2]; - } - - return rgbBuf; - }, - isDefaultDecode: function LabCS_isDefaultDecode(decodeMap) { - // From Table 90 in Adobe's: - // "Document management - Portable document format", 1st ed, 2008 - if (decodeMap[0] === 0 && decodeMap[1] === 100 && - decodeMap[2] === this.amin && decodeMap[3] === this.amax && - decodeMap[4] === this.bmin && decodeMap[5] === this.bmax) - return true; - else - return false; - } - }; - return LabCS; -})(); - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -'use strict'; - -var ARCFourCipher = (function ARCFourCipherClosure() { - function ARCFourCipher(key) { - this.a = 0; - this.b = 0; - var s = new Uint8Array(256); - var i, j = 0, tmp, keyLength = key.length; - for (i = 0; i < 256; ++i) - s[i] = i; - for (i = 0; i < 256; ++i) { - tmp = s[i]; - j = (j + tmp + key[i % keyLength]) & 0xFF; - s[i] = s[j]; - s[j] = tmp; - } - this.s = s; - } - - ARCFourCipher.prototype = { - encryptBlock: function ARCFourCipher_encryptBlock(data) { - var i, n = data.length, tmp, tmp2; - var a = this.a, b = this.b, s = this.s; - var output = new Uint8Array(n); - for (i = 0; i < n; ++i) { - a = (a + 1) & 0xFF; - tmp = s[a]; - b = (b + tmp) & 0xFF; - tmp2 = s[b]; - s[a] = tmp2; - s[b] = tmp; - output[i] = data[i] ^ s[(tmp + tmp2) & 0xFF]; - } - this.a = a; - this.b = b; - return output; - } - }; - ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock; - - return ARCFourCipher; -})(); - -var calculateMD5 = (function calculateMD5Closure() { - var r = new Uint8Array([ - 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, - 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, - 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, - 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]); - - var k = new Int32Array([ - -680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, - -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, - 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, - 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, - 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, - 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, - -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, - -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, - -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, - -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, - -145523070, -1120210379, 718787259, -343485551]); - - function hash(data, offset, length) { - var h0 = 1732584193, h1 = -271733879, h2 = -1732584194, h3 = 271733878; - // pre-processing - var paddedLength = (length + 72) & ~63; // data + 9 extra bytes - var padded = new Uint8Array(paddedLength); - var i, j, n; - for (i = 0; i < length; ++i) - padded[i] = data[offset++]; - padded[i++] = 0x80; - n = paddedLength - 8; - while (i < n) - padded[i++] = 0; - padded[i++] = (length << 3) & 0xFF; - padded[i++] = (length >> 5) & 0xFF; - padded[i++] = (length >> 13) & 0xFF; - padded[i++] = (length >> 21) & 0xFF; - padded[i++] = (length >>> 29) & 0xFF; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - // chunking - // TODO ArrayBuffer ? - var w = new Int32Array(16); - for (i = 0; i < paddedLength;) { - for (j = 0; j < 16; ++j, i += 4) { - w[j] = (padded[i] | (padded[i + 1] << 8) | - (padded[i + 2] << 16) | (padded[i + 3] << 24)); - } - var a = h0, b = h1, c = h2, d = h3, f, g; - for (j = 0; j < 64; ++j) { - if (j < 16) { - f = (b & c) | ((~b) & d); - g = j; - } else if (j < 32) { - f = (d & b) | ((~d) & c); - g = (5 * j + 1) & 15; - } else if (j < 48) { - f = b ^ c ^ d; - g = (3 * j + 5) & 15; - } else { - f = c ^ (b | (~d)); - g = (7 * j) & 15; - } - var tmp = d, rotateArg = (a + f + k[j] + w[g]) | 0, rotate = r[j]; - d = c; - c = b; - b = (b + ((rotateArg << rotate) | (rotateArg >>> (32 - rotate)))) | 0; - a = tmp; - } - h0 = (h0 + a) | 0; - h1 = (h1 + b) | 0; - h2 = (h2 + c) | 0; - h3 = (h3 + d) | 0; - } - return new Uint8Array([ - h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >>> 24) & 0xFF, - h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >>> 24) & 0xFF, - h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >>> 24) & 0xFF, - h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >>> 24) & 0xFF - ]); - } - return hash; -})(); - -var NullCipher = (function NullCipherClosure() { - function NullCipher() { - } - - NullCipher.prototype = { - decryptBlock: function NullCipher_decryptBlock(data) { - return data; - } - }; - - return NullCipher; -})(); - -var AES128Cipher = (function AES128CipherClosure() { - var rcon = new Uint8Array([ - 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, - 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, - 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, - 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, - 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, - 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, - 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, - 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, - 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, - 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, - 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, - 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, - 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, - 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, - 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, - 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, - 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, - 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, - 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, - 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, - 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, - 0x74, 0xe8, 0xcb, 0x8d]); - - var s = new Uint8Array([ - 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, - 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, - 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, - 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, - 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, - 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, - 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, - 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, - 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, - 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, - 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, - 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, - 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, - 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, - 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, - 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, - 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, - 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, - 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, - 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, - 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, - 0xb0, 0x54, 0xbb, 0x16]); - - var inv_s = new Uint8Array([ - 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, - 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, - 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, - 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, - 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, - 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, - 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, - 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, - 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, - 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, - 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, - 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, - 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, - 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, - 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, - 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, - 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, - 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, - 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, - 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, - 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, - 0x55, 0x21, 0x0c, 0x7d]); - - var mix = new Uint32Array([ - 0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, - 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, - 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, - 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, - 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, - 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, - 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, - 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, - 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, - 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, - 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, - 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, - 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, - 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, - 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, - 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, - 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, - 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, - 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, - 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, - 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, - 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, - 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, - 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, - 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, - 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, - 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, - 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, - 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, - 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, - 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, - 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, - 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, - 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, - 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, - 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, - 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, - 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, - 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, - 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, - 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, - 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, - 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]); - - function expandKey128(cipherKey) { - var b = 176, result = new Uint8Array(b); - result.set(cipherKey); - for (var j = 16, i = 1; j < b; ++i) { - // RotWord - var t1 = result[j - 3], t2 = result[j - 2], - t3 = result[j - 1], t4 = result[j - 4]; - // SubWord - t1 = s[t1]; t2 = s[t2]; t3 = s[t3]; t4 = s[t4]; - // Rcon - t1 = t1 ^ rcon[i]; - for (var n = 0; n < 4; ++n) { - result[j] = (t1 ^= result[j - 16]); j++; - result[j] = (t2 ^= result[j - 16]); j++; - result[j] = (t3 ^= result[j - 16]); j++; - result[j] = (t4 ^= result[j - 16]); j++; - } - } - return result; - } - - function decrypt128(input, key) { - var state = new Uint8Array(16); - state.set(input); - var i, j, k; - var t, u, v; - // AddRoundKey - for (j = 0, k = 160; j < 16; ++j, ++k) - state[j] ^= key[k]; - for (i = 9; i >= 1; --i) { - // InvShiftRows - t = state[13]; state[13] = state[9]; state[9] = state[5]; - state[5] = state[1]; state[1] = t; - t = state[14]; u = state[10]; state[14] = state[6]; - state[10] = state[2]; state[6] = t; state[2] = u; - t = state[15]; u = state[11]; v = state[7]; state[15] = state[3]; - state[11] = t; state[7] = u; state[3] = v; - // InvSubBytes - for (j = 0; j < 16; ++j) - state[j] = inv_s[state[j]]; - // AddRoundKey - for (j = 0, k = i * 16; j < 16; ++j, ++k) - state[j] ^= key[k]; - // InvMixColumns - for (j = 0; j < 16; j += 4) { - var s0 = mix[state[j]], s1 = mix[state[j + 1]], - s2 = mix[state[j + 2]], s3 = mix[state[j + 3]]; - t = (s0 ^ (s1 >>> 8) ^ (s1 << 24) ^ (s2 >>> 16) ^ (s2 << 16) ^ - (s3 >>> 24) ^ (s3 << 8)); - state[j] = (t >>> 24) & 0xFF; - state[j + 1] = (t >> 16) & 0xFF; - state[j + 2] = (t >> 8) & 0xFF; - state[j + 3] = t & 0xFF; - } - } - // InvShiftRows - t = state[13]; state[13] = state[9]; state[9] = state[5]; - state[5] = state[1]; state[1] = t; - t = state[14]; u = state[10]; state[14] = state[6]; - state[10] = state[2]; state[6] = t; state[2] = u; - t = state[15]; u = state[11]; v = state[7]; state[15] = state[3]; - state[11] = t; state[7] = u; state[3] = v; - for (j = 0; j < 16; ++j) { - // InvSubBytes - state[j] = inv_s[state[j]]; - // AddRoundKey - state[j] ^= key[j]; - } - return state; - } - - function AES128Cipher(key) { - this.key = expandKey128(key); - this.buffer = new Uint8Array(16); - this.bufferPosition = 0; - } - - function decryptBlock2(data) { - var i, j, ii, sourceLength = data.length, - buffer = this.buffer, bufferLength = this.bufferPosition, - result = [], iv = this.iv; - for (i = 0; i < sourceLength; ++i) { - buffer[bufferLength] = data[i]; - ++bufferLength; - if (bufferLength < 16) - continue; - // buffer is full, decrypting - var plain = decrypt128(buffer, this.key); - // xor-ing the IV vector to get plain text - for (j = 0; j < 16; ++j) - plain[j] ^= iv[j]; - iv = buffer; - result.push(plain); - buffer = new Uint8Array(16); - bufferLength = 0; - } - // saving incomplete buffer - this.buffer = buffer; - this.bufferLength = bufferLength; - this.iv = iv; - if (result.length == 0) - return new Uint8Array([]); - if (result.length == 1) - return result[0]; - // combining plain text blocks into one - var output = new Uint8Array(16 * result.length); - for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) - output.set(result[i], j); - return output; - } - - AES128Cipher.prototype = { - decryptBlock: function AES128Cipher_decryptBlock(data) { - var i, sourceLength = data.length; - var buffer = this.buffer, bufferLength = this.bufferPosition; - // waiting for IV values -- they are at the start of the stream - for (i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) - buffer[bufferLength] = data[i]; - if (bufferLength < 16) { - // need more data - this.bufferLength = bufferLength; - return new Uint8Array([]); - } - this.iv = buffer; - this.buffer = new Uint8Array(16); - this.bufferLength = 0; - // starting decryption - this.decryptBlock = decryptBlock2; - return this.decryptBlock(data.subarray(16)); - } - }; - - return AES128Cipher; -})(); - -var CipherTransform = (function CipherTransformClosure() { - function CipherTransform(stringCipherConstructor, streamCipherConstructor) { - this.stringCipherConstructor = stringCipherConstructor; - this.streamCipherConstructor = streamCipherConstructor; - } - CipherTransform.prototype = { - createStream: function CipherTransform_createStream(stream) { - var cipher = new this.streamCipherConstructor(); - return new DecryptStream(stream, - function cipherTransformDecryptStream(data) { - return cipher.decryptBlock(data); - } - ); - }, - decryptString: function CipherTransform_decryptString(s) { - var cipher = new this.stringCipherConstructor(); - var data = stringToBytes(s); - data = cipher.decryptBlock(data); - return bytesToString(data); - } - }; - return CipherTransform; -})(); - -var CipherTransformFactory = (function CipherTransformFactoryClosure() { - function prepareKeyData(fileId, password, ownerPassword, userPassword, - flags, revision, keyLength, encryptMetadata) { - var defaultPasswordBytes = new Uint8Array([ - 0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41, - 0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08, - 0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80, - 0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]); - var hashData = new Uint8Array(100), i = 0, j, n; - if (password) { - n = Math.min(32, password.length); - for (; i < n; ++i) - hashData[i] = password[i]; - } - j = 0; - while (i < 32) { - hashData[i++] = defaultPasswordBytes[j++]; - } - // as now the padded password in the hashData[0..i] - for (j = 0, n = ownerPassword.length; j < n; ++j) - hashData[i++] = ownerPassword[j]; - hashData[i++] = flags & 0xFF; - hashData[i++] = (flags >> 8) & 0xFF; - hashData[i++] = (flags >> 16) & 0xFF; - hashData[i++] = (flags >>> 24) & 0xFF; - for (j = 0, n = fileId.length; j < n; ++j) - hashData[i++] = fileId[j]; - if (revision >= 4 && !encryptMetadata) { - hashData[i++] = 0xFF; - hashData[i++] = 0xFF; - hashData[i++] = 0xFF; - hashData[i++] = 0xFF; - } - var hash = calculateMD5(hashData, 0, i); - var keyLengthInBytes = keyLength >> 3; - if (revision >= 3) { - for (j = 0; j < 50; ++j) { - hash = calculateMD5(hash, 0, keyLengthInBytes); - } - } - var encryptionKey = hash.subarray(0, keyLengthInBytes); - var cipher, checkData; - - if (revision >= 3) { - // padded password in hashData, we can use this array for user - // password check - i = 32; - for (j = 0, n = fileId.length; j < n; ++j) - hashData[i++] = fileId[j]; - cipher = new ARCFourCipher(encryptionKey); - var checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i)); - n = encryptionKey.length; - var derivedKey = new Uint8Array(n), k; - for (j = 1; j <= 19; ++j) { - for (k = 0; k < n; ++k) - derivedKey[k] = encryptionKey[k] ^ j; - cipher = new ARCFourCipher(derivedKey); - checkData = cipher.encryptBlock(checkData); - } - } else { - cipher = new ARCFourCipher(encryptionKey); - checkData = cipher.encryptBlock(hashData.subarray(0, 32)); - } - for (j = 0, n = checkData.length; j < n; ++j) { - if (userPassword[j] != checkData[j]) - error('incorrect password'); - } - return encryptionKey; - } - - var identityName = new Name('Identity'); - - function CipherTransformFactory(dict, fileId, password) { - var filter = dict.get('Filter'); - if (!isName(filter) || filter.name != 'Standard') - error('unknown encryption method'); - this.dict = dict; - var algorithm = dict.get('V'); - if (!isInt(algorithm) || - (algorithm != 1 && algorithm != 2 && algorithm != 4)) - error('unsupported encryption algorithm'); - this.algorithm = algorithm; - var keyLength = dict.get('Length') || 40; - if (!isInt(keyLength) || - keyLength < 40 || (keyLength % 8) != 0) - error('invalid key length'); - // prepare keys - var ownerPassword = stringToBytes(dict.get('O')); - var userPassword = stringToBytes(dict.get('U')); - var flags = dict.get('P'); - var revision = dict.get('R'); - var encryptMetadata = - dict.get('EncryptMetadata') !== false; // makes true as default value - var fileIdBytes = stringToBytes(fileId); - var passwordBytes; - if (password) - passwordBytes = stringToBytes(password); - - this.encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, - ownerPassword, userPassword, - flags, revision, - keyLength, encryptMetadata); - if (algorithm == 4) { - this.cf = dict.get('CF'); - this.stmf = dict.get('StmF') || identityName; - this.strf = dict.get('StrF') || identityName; - this.eff = dict.get('EFF') || this.strf; - } - } - - function buildObjectKey(num, gen, encryptionKey, isAes) { - var key = new Uint8Array(encryptionKey.length + 9), i, n; - for (i = 0, n = encryptionKey.length; i < n; ++i) - key[i] = encryptionKey[i]; - key[i++] = num & 0xFF; - key[i++] = (num >> 8) & 0xFF; - key[i++] = (num >> 16) & 0xFF; - key[i++] = gen & 0xFF; - key[i++] = (gen >> 8) & 0xFF; - if (isAes) { - key[i++] = 0x73; - key[i++] = 0x41; - key[i++] = 0x6C; - key[i++] = 0x54; - } - var hash = calculateMD5(key, 0, i); - return hash.subarray(0, Math.min(encryptionKey.length + 5, 16)); - } - - function buildCipherConstructor(cf, name, num, gen, key) { - var cryptFilter = cf.get(name.name); - var cfm; - if (cryptFilter != null) - cfm = cryptFilter.get('CFM'); - if (!cfm || cfm.name == 'None') { - return function cipherTransformFactoryBuildCipherConstructorNone() { - return new NullCipher(); - }; - } - if ('V2' == cfm.name) { - return function cipherTransformFactoryBuildCipherConstructorV2() { - return new ARCFourCipher( - buildObjectKey(num, gen, key, false)); - }; - } - if ('AESV2' == cfm.name) { - return function cipherTransformFactoryBuildCipherConstructorAESV2() { - return new AES128Cipher( - buildObjectKey(num, gen, key, true)); - }; - } - error('Unknown crypto method'); - } - - CipherTransformFactory.prototype = { - createCipherTransform: - function CipherTransformFactory_createCipherTransform(num, gen) { - if (this.algorithm == 4) { - return new CipherTransform( - buildCipherConstructor(this.cf, this.stmf, - num, gen, this.encryptionKey), - buildCipherConstructor(this.cf, this.strf, - num, gen, this.encryptionKey)); - } - // algorithms 1 and 2 - var key = buildObjectKey(num, gen, this.encryptionKey, false); - var cipherConstructor = function buildCipherCipherConstructor() { - return new ARCFourCipher(key); - }; - return new CipherTransform(cipherConstructor, cipherConstructor); - } - }; - - return CipherTransformFactory; -})(); - - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -'use strict'; - -var PartialEvaluator = (function PartialEvaluatorClosure() { - function PartialEvaluator(xref, handler, uniquePrefix) { - this.state = new EvalState(); - this.stateStack = []; - - this.xref = xref; - this.handler = handler; - this.uniquePrefix = uniquePrefix; - this.objIdCounter = 0; - } - - var OP_MAP = { - // Graphics state - w: 'setLineWidth', - J: 'setLineCap', - j: 'setLineJoin', - M: 'setMiterLimit', - d: 'setDash', - ri: 'setRenderingIntent', - i: 'setFlatness', - gs: 'setGState', - q: 'save', - Q: 'restore', - cm: 'transform', - - // Path - m: 'moveTo', - l: 'lineTo', - c: 'curveTo', - v: 'curveTo2', - y: 'curveTo3', - h: 'closePath', - re: 'rectangle', - S: 'stroke', - s: 'closeStroke', - f: 'fill', - F: 'fill', - 'f*': 'eoFill', - B: 'fillStroke', - 'B*': 'eoFillStroke', - b: 'closeFillStroke', - 'b*': 'closeEOFillStroke', - n: 'endPath', - - // Clipping - W: 'clip', - 'W*': 'eoClip', - - // Text - BT: 'beginText', - ET: 'endText', - Tc: 'setCharSpacing', - Tw: 'setWordSpacing', - Tz: 'setHScale', - TL: 'setLeading', - Tf: 'setFont', - Tr: 'setTextRenderingMode', - Ts: 'setTextRise', - Td: 'moveText', - TD: 'setLeadingMoveText', - Tm: 'setTextMatrix', - 'T*': 'nextLine', - Tj: 'showText', - TJ: 'showSpacedText', - "'": 'nextLineShowText', - '"': 'nextLineSetSpacingShowText', - - // Type3 fonts - d0: 'setCharWidth', - d1: 'setCharWidthAndBounds', - - // Color - CS: 'setStrokeColorSpace', - cs: 'setFillColorSpace', - SC: 'setStrokeColor', - SCN: 'setStrokeColorN', - sc: 'setFillColor', - scn: 'setFillColorN', - G: 'setStrokeGray', - g: 'setFillGray', - RG: 'setStrokeRGBColor', - rg: 'setFillRGBColor', - K: 'setStrokeCMYKColor', - k: 'setFillCMYKColor', - - // Shading - sh: 'shadingFill', - - // Images - BI: 'beginInlineImage', - ID: 'beginImageData', - EI: 'endInlineImage', - - // XObjects - Do: 'paintXObject', - - // Marked content - MP: 'markPoint', - DP: 'markPointProps', - BMC: 'beginMarkedContent', - BDC: 'beginMarkedContentProps', - EMC: 'endMarkedContent', - - // Compatibility - BX: 'beginCompat', - EX: 'endCompat' - }; - - function splitCombinedOperations(operations) { - // Two operations can be combined together, trying to find which two - // operations were concatenated. - for (var i = operations.length - 1; i > 0; i--) { - var op1 = operations.substring(0, i), op2 = operations.substring(i); - if (op1 in OP_MAP && op2 in OP_MAP) - return [op1, op2]; // operations found - } - return null; - } - - PartialEvaluator.prototype = { - getOperatorList: function PartialEvaluator_getOperatorList(stream, - resources, - dependency, - queue) { - - var self = this; - var xref = this.xref; - var handler = this.handler; - var uniquePrefix = this.uniquePrefix || ''; - - function insertDependency(depList) { - fnArray.push('dependency'); - argsArray.push(depList); - for (var i = 0, ii = depList.length; i < ii; i++) { - var dep = depList[i]; - if (dependency.indexOf(dep) == -1) { - dependency.push(depList[i]); - } - } - } - - function handleSetFont(fontName, font) { - var loadedName = null; - - var fontRes = resources.get('Font'); - - assert(fontRes, 'fontRes not available'); - - font = xref.fetchIfRef(font) || fontRes.get(fontName); - assertWellFormed(isDict(font)); - ++self.objIdCounter; - if (!font.translated) { - font.translated = self.translateFont(font, xref, resources, - dependency); - if (font.translated) { - // keep track of each font we translated so the caller can - // load them asynchronously before calling display on a page - loadedName = 'font_' + uniquePrefix + self.objIdCounter; - font.translated.properties.loadedName = loadedName; - font.loadedName = loadedName; - - var translated = font.translated; - // Convert the file to an ArrayBuffer which will be turned back into - // a Stream in the main thread. - if (translated.file) - translated.file = translated.file.getBytes(); - if (translated.properties.file) { - translated.properties.file = - translated.properties.file.getBytes(); - } - - handler.send('obj', [ - loadedName, - 'Font', - translated.name, - translated.file, - translated.properties - ]); - } - } - loadedName = loadedName || font.loadedName; - - // Ensure the font is ready before the font is set - // and later on used for drawing. - // OPTIMIZE: This should get insert to the operatorList only once per - // page. - insertDependency([loadedName]); - return loadedName; - } - - function buildPaintImageXObject(image, inline) { - var dict = image.dict; - var w = dict.get('Width', 'W'); - var h = dict.get('Height', 'H'); - - var imageMask = dict.get('ImageMask', 'IM') || false; - if (imageMask) { - // This depends on a tmpCanvas beeing filled with the - // current fillStyle, such that processing the pixel - // data can't be done here. Instead of creating a - // complete PDFImage, only read the information needed - // for later. - - var width = dict.get('Width', 'W'); - var height = dict.get('Height', 'H'); - var bitStrideLength = (width + 7) >> 3; - var imgArray = image.getBytes(bitStrideLength * height); - var decode = dict.get('Decode', 'D'); - var inverseDecode = !!decode && decode[0] > 0; - - fn = 'paintImageMaskXObject'; - args = [imgArray, inverseDecode, width, height]; - return; - } - - // If there is no imageMask, create the PDFImage and a lot - // of image processing can be done here. - var objId = 'img_' + uniquePrefix + (++self.objIdCounter); - insertDependency([objId]); - args = [objId, w, h]; - - var softMask = dict.get('SMask', 'IM') || false; - if (!softMask && image instanceof JpegStream && - image.isNativelySupported(xref, resources)) { - // These JPEGs don't need any more processing so we can just send it. - fn = 'paintJpegXObject'; - handler.send('obj', [objId, 'JpegStream', image.getIR()]); - return; - } - - fn = 'paintImageXObject'; - - PDFImage.buildImage(function(imageObj) { - var drawWidth = imageObj.drawWidth; - var drawHeight = imageObj.drawHeight; - var imgData = { - width: drawWidth, - height: drawHeight, - data: new Uint8Array(drawWidth * drawHeight * 4) - }; - var pixels = imgData.data; - imageObj.fillRgbaBuffer(pixels, drawWidth, drawHeight); - handler.send('obj', [objId, 'Image', imgData]); - }, handler, xref, resources, image, inline); - } - - if (!queue) - queue = {}; - - if (!queue.argsArray) { - queue.argsArray = []; - } - if (!queue.fnArray) { - queue.fnArray = []; - } - - var fnArray = queue.fnArray, argsArray = queue.argsArray; - var dependencyArray = dependency || []; - - resources = resources || new Dict(); - var xobjs = resources.get('XObject') || new Dict(); - var patterns = resources.get('Pattern') || new Dict(); - var parser = new Parser(new Lexer(stream), false, xref); - var res = resources; - var hasNextObj = false, nextObj; - var args = [], obj; - var TILING_PATTERN = 1, SHADING_PATTERN = 2; - - while (true) { - if (hasNextObj) { - obj = nextObj; - hasNextObj = false; - } else { - obj = parser.getObj(); - if (isEOF(obj)) - break; - } - - if (isCmd(obj)) { - var cmd = obj.cmd; - var fn = OP_MAP[cmd]; - if (!fn) { - // invalid content command, trying to recover - var cmds = splitCombinedOperations(cmd); - if (cmds) { - cmd = cmds[0]; - fn = OP_MAP[cmd]; - // feeding other command on the next interation - hasNextObj = true; - nextObj = Cmd.get(cmds[1]); - } - } - assertWellFormed(fn, 'Unknown command "' + cmd + '"'); - // TODO figure out how to type-check vararg functions - - if ((cmd == 'SCN' || cmd == 'scn') && !args[args.length - 1].code) { - // compile tiling patterns - var patternName = args[args.length - 1]; - // SCN/scn applies patterns along with normal colors - if (isName(patternName)) { - var pattern = patterns.get(patternName.name); - if (pattern) { - var dict = isStream(pattern) ? pattern.dict : pattern; - var typeNum = dict.get('PatternType'); - - if (typeNum == TILING_PATTERN) { - // Create an IR of the pattern code. - var depIdx = dependencyArray.length; - var operatorList = this.getOperatorList(pattern, - dict.get('Resources') || resources, dependencyArray); - - // Add the dependencies that are required to execute the - // operatorList. - insertDependency(dependencyArray.slice(depIdx)); - - args = TilingPattern.getIR(operatorList, dict, args); - } - else if (typeNum == SHADING_PATTERN) { - var shading = dict.get('Shading'); - var matrix = dict.get('Matrix'); - var pattern = Pattern.parseShading(shading, matrix, xref, - res); - args = pattern.getIR(); - } else { - error('Unkown PatternType ' + typeNum); - } - } - } - } else if (cmd == 'Do' && !args[0].code) { - // eagerly compile XForm objects - var name = args[0].name; - var xobj = xobjs.get(name); - if (xobj) { - assertWellFormed(isStream(xobj), 'XObject should be a stream'); - - var type = xobj.dict.get('Subtype'); - assertWellFormed( - isName(type), - 'XObject should have a Name subtype' - ); - - if ('Form' == type.name) { - var matrix = xobj.dict.get('Matrix'); - var bbox = xobj.dict.get('BBox'); - - fnArray.push('paintFormXObjectBegin'); - argsArray.push([matrix, bbox]); - - // This adds the operatorList of the xObj to the current queue. - var depIdx = dependencyArray.length; - - // Pass in the current `queue` object. That means the `fnArray` - // and the `argsArray` in this scope is reused and new commands - // are added to them. - this.getOperatorList(xobj, - xobj.dict.get('Resources') || resources, - dependencyArray, queue); - - // Add the dependencies that are required to execute the - // operatorList. - insertDependency(dependencyArray.slice(depIdx)); - - fn = 'paintFormXObjectEnd'; - args = []; - } else if ('Image' == type.name) { - buildPaintImageXObject(xobj, false); - } else { - error('Unhandled XObject subtype ' + type.name); - } - } - } else if (cmd == 'Tf') { // eagerly collect all fonts - args[0] = handleSetFont(args[0].name); - } else if (cmd == 'EI') { - buildPaintImageXObject(args[0], true); - } - - switch (fn) { - // Parse the ColorSpace data to a raw format. - case 'setFillColorSpace': - case 'setStrokeColorSpace': - args = [ColorSpace.parseToIR(args[0], xref, resources)]; - break; - case 'shadingFill': - var shadingRes = res.get('Shading'); - if (!shadingRes) - error('No shading resource found'); - - var shading = shadingRes.get(args[0].name); - if (!shading) - error('No shading object found'); - - var shadingFill = Pattern.parseShading(shading, null, xref, res); - var patternIR = shadingFill.getIR(); - args = [patternIR]; - fn = 'shadingFill'; - break; - case 'setGState': - var dictName = args[0]; - var extGState = resources.get('ExtGState'); - - if (!isDict(extGState) || !extGState.has(dictName.name)) - break; - - var gsState = extGState.get(dictName.name); - - // This array holds the converted/processed state data. - var gsStateObj = []; - - gsState.forEach( - function canvasGraphicsSetGStateForEach(key, value) { - switch (key) { - case 'Type': - break; - case 'LW': - case 'LC': - case 'LJ': - case 'ML': - case 'D': - case 'RI': - case 'FL': - case 'CA': - case 'ca': - gsStateObj.push([key, value]); - break; - case 'Font': - gsStateObj.push([ - 'Font', - handleSetFont(null, value[0]), - value[1] - ]); - break; - case 'OP': - case 'op': - case 'OPM': - case 'BG': - case 'BG2': - case 'UCR': - case 'UCR2': - case 'TR': - case 'TR2': - case 'HT': - case 'SM': - case 'SA': - case 'BM': - case 'SMask': - case 'AIS': - case 'TK': - TODO('graphic state operator ' + key); - break; - default: - warn('Unknown graphic state operator ' + key); - break; - } - } - ); - args = [gsStateObj]; - break; - } // switch - - fnArray.push(fn); - argsArray.push(args); - args = []; - } else if (obj != null) { - assertWellFormed(args.length <= 33, 'Too many arguments'); - args.push(obj instanceof Dict ? obj.getAll() : obj); - } - } - - return queue; - }, - - extractDataStructures: function - partialEvaluatorExtractDataStructures(dict, baseDict, - xref, properties) { - // 9.10.2 - var toUnicode = dict.get('ToUnicode') || - baseDict.get('ToUnicode'); - if (toUnicode) - properties.toUnicode = this.readToUnicode(toUnicode, xref, properties); - - if (properties.composite) { - // CIDSystemInfo helps to match CID to glyphs - var cidSystemInfo = dict.get('CIDSystemInfo'); - if (isDict(cidSystemInfo)) { - properties.cidSystemInfo = { - registry: cidSystemInfo.get('Registry'), - ordering: cidSystemInfo.get('Ordering'), - supplement: cidSystemInfo.get('Supplement') - }; - } - - var cidToGidMap = dict.get('CIDToGIDMap'); - if (isStream(cidToGidMap)) - properties.cidToGidMap = this.readCidToGidMap(cidToGidMap); - } - - var flags = properties.flags; - var differences = []; - var baseEncoding = !!(flags & FontFlags.Symbolic) ? - Encodings.symbolsEncoding : Encodings.StandardEncoding; - var hasEncoding = dict.has('Encoding'); - if (hasEncoding) { - var encoding = dict.get('Encoding'); - if (isDict(encoding)) { - var baseName = encoding.get('BaseEncoding'); - if (baseName) - baseEncoding = Encodings[baseName.name]; - else - hasEncoding = false; // base encoding was not provided - - // Load the differences between the base and original - if (encoding.has('Differences')) { - var diffEncoding = encoding.get('Differences'); - var index = 0; - for (var j = 0, jj = diffEncoding.length; j < jj; j++) { - var data = diffEncoding[j]; - if (isNum(data)) - index = data; - else - differences[index++] = data.name; - } - } - } else if (isName(encoding)) { - baseEncoding = Encodings[encoding.name]; - } else { - error('Encoding is not a Name nor a Dict'); - } - } - - properties.differences = differences; - properties.baseEncoding = baseEncoding; - properties.hasEncoding = hasEncoding; - }, - - readToUnicode: function PartialEvaluator_readToUnicode(toUnicode, xref, - properties) { - var cmapObj = toUnicode; - var charToUnicode = []; - if (isName(cmapObj)) { - var isIdentityMap = cmapObj.name.substr(0, 9) == 'Identity-'; - if (!isIdentityMap) - error('ToUnicode file cmap translation not implemented'); - } else if (isStream(cmapObj)) { - var tokens = []; - var token = ''; - var beginArrayToken = {}; - - var cmap = cmapObj.getBytes(cmapObj.length); - for (var i = 0, ii = cmap.length; i < ii; i++) { - var octet = cmap[i]; - if (octet == 0x20 || octet == 0x0D || octet == 0x0A || - octet == 0x3C || octet == 0x5B || octet == 0x5D) { - switch (token) { - case 'usecmap': - error('usecmap is not implemented'); - break; - - case 'beginbfchar': - case 'beginbfrange': - case 'begincidchar': - case 'begincidrange': - token = ''; - tokens = []; - break; - - case 'endcidrange': - case 'endbfrange': - for (var j = 0, jj = tokens.length; j < jj; j += 3) { - var startRange = tokens[j]; - var endRange = tokens[j + 1]; - var code = tokens[j + 2]; - if (code == 0xFFFF) { - // CMap is broken, assuming code == startRange - code = startRange; - } - if (isArray(code)) { - var codeindex = 0; - while (startRange <= endRange) { - charToUnicode[startRange] = code[codeindex++]; - ++startRange; - } - } else { - while (startRange <= endRange) { - charToUnicode[startRange] = code++; - ++startRange; - } - } - } - break; - - case 'endcidchar': - case 'endbfchar': - for (var j = 0, jj = tokens.length; j < jj; j += 2) { - var index = tokens[j]; - var code = tokens[j + 1]; - charToUnicode[index] = code; - } - break; - - case '': - break; - - default: - if (token[0] >= '0' && token[0] <= '9') - token = parseInt(token, 10); // a number - tokens.push(token); - token = ''; - } - switch (octet) { - case 0x5B: - // begin list parsing - tokens.push(beginArrayToken); - break; - case 0x5D: - // collect array items - var items = [], item; - while (tokens.length && - (item = tokens.pop()) != beginArrayToken) - items.unshift(item); - tokens.push(items); - break; - } - } else if (octet == 0x3E) { - if (token.length) { - // XXX guessing chars size by checking number size in the CMap - if (token.length <= 2 && properties.composite) - properties.wideChars = false; - - if (token.length <= 4) { - // parsing hex number - tokens.push(parseInt(token, 16)); - token = ''; - } else { - // parsing hex UTF-16BE numbers - var str = []; - for (var k = 0, kk = token.length; k < kk; k += 4) { - var b = parseInt(token.substr(k, 4), 16); - if (b <= 0x10) { - k += 4; - b = (b << 16) | parseInt(token.substr(k, 4), 16); - b -= 0x10000; - str.push(0xD800 | (b >> 10)); - str.push(0xDC00 | (b & 0x3FF)); - break; - } - str.push(b); - } - tokens.push(String.fromCharCode.apply(String, str)); - token = ''; - } - } - } else { - token += String.fromCharCode(octet); - } - } - } - return charToUnicode; - }, - readCidToGidMap: function PartialEvaluator_readCidToGidMap(cidToGidStream) { - // Extract the encoding from the CIDToGIDMap - var glyphsData = cidToGidStream.getBytes(); - - // Set encoding 0 to later verify the font has an encoding - var result = []; - for (var j = 0, jj = glyphsData.length; j < jj; j++) { - var glyphID = (glyphsData[j++] << 8) | glyphsData[j]; - if (glyphID == 0) - continue; - - var code = j >> 1; - result[code] = glyphID; - } - return result; - }, - - extractWidths: function PartialEvaluator_extractWidths(dict, - xref, - descriptor, - properties) { - var glyphsWidths = []; - var defaultWidth = 0; - if (properties.composite) { - defaultWidth = dict.get('DW') || 1000; - - var widths = dict.get('W'); - if (widths) { - var start = 0, end = 0; - for (var i = 0, ii = widths.length; i < ii; i++) { - var code = widths[i]; - if (isArray(code)) { - for (var j = 0, jj = code.length; j < jj; j++) - glyphsWidths[start++] = code[j]; - start = 0; - } else if (start) { - var width = widths[++i]; - for (var j = start; j <= code; j++) - glyphsWidths[j] = width; - start = 0; - } else { - start = code; - } - } - } - } else { - var firstChar = properties.firstChar; - var widths = dict.get('Widths'); - if (widths) { - var j = firstChar; - for (var i = 0, ii = widths.length; i < ii; i++) - glyphsWidths[j++] = widths[i]; - defaultWidth = parseFloat(descriptor.get('MissingWidth')) || 0; - } else { - // Trying get the BaseFont metrics (see comment above). - var baseFontName = dict.get('BaseFont'); - if (isName(baseFontName)) { - var metrics = this.getBaseFontMetrics(baseFontName.name); - - glyphsWidths = metrics.widths; - defaultWidth = metrics.defaultWidth; - } - } - } - - properties.defaultWidth = defaultWidth; - properties.widths = glyphsWidths; - }, - - getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) { - var defaultWidth = 0, widths = []; - var glyphWidths = Metrics[stdFontMap[name] || name]; - if (isNum(glyphWidths)) { - defaultWidth = glyphWidths; - } else { - widths = glyphWidths; - } - - return { - defaultWidth: defaultWidth, - widths: widths - }; - }, - - translateFont: function PartialEvaluator_translateFont(dict, - xref, - resources, - dependency) { - var baseDict = dict; - var type = dict.get('Subtype'); - assertWellFormed(isName(type), 'invalid font Subtype'); - - var composite = false; - if (type.name == 'Type0') { - // If font is a composite - // - get the descendant font - // - set the type according to the descendant font - // - get the FontDescriptor from the descendant font - var df = dict.get('DescendantFonts'); - if (!df) - return null; - - dict = isArray(df) ? xref.fetchIfRef(df[0]) : df; - - type = dict.get('Subtype'); - assertWellFormed(isName(type), 'invalid font Subtype'); - composite = true; - } - var maxCharIndex = composite ? 0xFFFF : 0xFF; - - var descriptor = dict.get('FontDescriptor'); - if (!descriptor) { - if (type.name == 'Type3') { - // FontDescriptor is only required for Type3 fonts when the document - // is a tagged pdf. Create a barbebones one to get by. - descriptor = new Dict(); - descriptor.set('FontName', new Name(type.name)); - } else { - // Before PDF 1.5 if the font was one of the base 14 fonts, having a - // FontDescriptor was not required. - // This case is here for compatibility. - var baseFontName = dict.get('BaseFont'); - if (!isName(baseFontName)) - return null; - - // Using base font name as a font name. - baseFontName = baseFontName.name.replace(/[,_]/g, '-'); - var metrics = this.getBaseFontMetrics(baseFontName); - - // Simulating descriptor flags attribute - var fontNameWoStyle = baseFontName.split('-')[0]; - var flags = (serifFonts[fontNameWoStyle] || - (fontNameWoStyle.search(/serif/gi) != -1) ? FontFlags.Serif : 0) | - (symbolsFonts[fontNameWoStyle] ? FontFlags.Symbolic : - FontFlags.Nonsymbolic); - - var properties = { - type: type.name, - widths: metrics.widths, - defaultWidth: metrics.defaultWidth, - flags: flags, - firstChar: 0, - lastChar: maxCharIndex - }; - this.extractDataStructures(dict, dict, xref, properties); - - return { - name: baseFontName, - dict: baseDict, - properties: properties - }; - } - } - - // According to the spec if 'FontDescriptor' is declared, 'FirstChar', - // 'LastChar' and 'Widths' should exist too, but some PDF encoders seem - // to ignore this rule when a variant of a standart font is used. - // TODO Fill the width array depending on which of the base font this is - // a variant. - var firstChar = dict.get('FirstChar') || 0; - var lastChar = dict.get('LastChar') || maxCharIndex; - var fontName = descriptor.get('FontName'); - // Some bad pdf's have a string as the font name. - if (isString(fontName)) - fontName = new Name(fontName); - assertWellFormed(isName(fontName), 'invalid font name'); - - var fontFile = descriptor.get('FontFile', 'FontFile2', 'FontFile3'); - if (fontFile) { - if (fontFile.dict) { - var subtype = fontFile.dict.get('Subtype'); - if (subtype) - subtype = subtype.name; - - var length1 = fontFile.dict.get('Length1'); - - var length2 = fontFile.dict.get('Length2'); - } - } - - var properties = { - type: type.name, - subtype: subtype, - file: fontFile, - length1: length1, - length2: length2, - composite: composite, - wideChars: composite, - fixedPitch: false, - fontMatrix: dict.get('FontMatrix') || IDENTITY_MATRIX, - firstChar: firstChar || 0, - lastChar: lastChar || maxCharIndex, - bbox: descriptor.get('FontBBox'), - ascent: descriptor.get('Ascent'), - descent: descriptor.get('Descent'), - xHeight: descriptor.get('XHeight'), - capHeight: descriptor.get('CapHeight'), - flags: descriptor.get('Flags'), - italicAngle: descriptor.get('ItalicAngle'), - coded: false - }; - this.extractWidths(dict, xref, descriptor, properties); - this.extractDataStructures(dict, baseDict, xref, properties); - - if (type.name === 'Type3') { - properties.coded = true; - var charProcs = dict.get('CharProcs').getAll(); - var fontResources = dict.get('Resources') || resources; - properties.charProcOperatorList = {}; - for (var key in charProcs) { - var glyphStream = charProcs[key]; - properties.charProcOperatorList[key] = - this.getOperatorList(glyphStream, fontResources, dependency); - } - } - - return { - name: fontName.name, - dict: baseDict, - file: fontFile, - properties: properties - }; - } - }; - - return PartialEvaluator; -})(); - -var EvalState = (function EvalStateClosure() { - function EvalState() { - // Are soft masks and alpha values shapes or opacities? - this.alphaIsShape = false; - this.fontSize = 0; - this.textMatrix = IDENTITY_MATRIX; - this.leading = 0; - // Start of text line (in text coordinates) - this.lineX = 0; - this.lineY = 0; - // Character and word spacing - this.charSpacing = 0; - this.wordSpacing = 0; - this.textHScale = 1; - // Color spaces - this.fillColorSpace = null; - this.strokeColorSpace = null; - } - EvalState.prototype = { - }; - return EvalState; -})(); - - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -'use strict'; - -/** - * Maximum time to wait for a font to be loaded by font-face rules. - */ -var kMaxWaitForFontFace = 1000; - -// Unicode Private Use Area -var kCmapGlyphOffset = 0xE000; -var kSizeOfGlyphArea = 0x1900; -var kSymbolicFontGlyphOffset = 0xF000; - -// PDF Glyph Space Units are one Thousandth of a TextSpace Unit -// except for Type 3 fonts -var kPDFGlyphSpaceUnits = 1000; - -// Until hinting is fully supported this constant can be used -var kHintingEnabled = false; - -var FontFlags = { - FixedPitch: 1, - Serif: 2, - Symbolic: 4, - Script: 8, - Nonsymbolic: 32, - Italic: 64, - AllCap: 65536, - SmallCap: 131072, - ForceBold: 262144 -}; - -var Encodings = { - ExpertEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'exclamsmall', 'Hungarumlautsmall', '', 'dollaroldstyle', - 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', - 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', - 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', - 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', - 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', - 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', - 'questionsmall', '', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', - 'esuperior', '', '', 'isuperior', '', '', 'lsuperior', 'msuperior', - 'nsuperior', 'osuperior', '', '', 'rsuperior', 'ssuperior', 'tsuperior', - '', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', - 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', - 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', - 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', - 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', - 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', - 'onefitted', 'rupiah', 'Tildesmall', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', - '', '', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', - 'Caronsmall', '', 'Dotaccentsmall', '', '', 'Macronsmall', '', '', - 'figuredash', 'hypheninferior', '', '', 'Ogoneksmall', 'Ringsmall', - 'Cedillasmall', '', '', '', 'onequarter', 'onehalf', 'threequarters', - 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', - 'seveneighths', 'onethird', 'twothirds', '', '', 'zerosuperior', - 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', - 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', - 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', - 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', - 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', - 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', - 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', - 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', - 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', - 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', - 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', - 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', - 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', - 'Ydieresissmall'], - MacExpertEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'exclamsmall', 'Hungarumlautsmall', 'centoldstyle', - 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', - 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', - 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', - 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', - 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', - 'nineoldstyle', 'colon', 'semicolon', '', 'threequartersemdash', '', - 'questionsmall', '', '', '', '', 'Ethsmall', '', '', 'onequarter', - 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', - 'seveneighths', 'onethird', 'twothirds', '', '', '', '', '', '', 'ff', - 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 'parenrightinferior', - 'Circumflexsmall', 'hypheninferior', 'Gravesmall', 'Asmall', 'Bsmall', - 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', - 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', - 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', - 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', - 'Tildesmall', '', '', 'asuperior', 'centsuperior', '', '', '', '', - 'Aacutesmall', 'Agravesmall', 'Acircumflexsmall', 'Adieresissmall', - 'Atildesmall', 'Aringsmall', 'Ccedillasmall', 'Eacutesmall', 'Egravesmall', - 'Ecircumflexsmall', 'Edieresissmall', 'Iacutesmall', 'Igravesmall', - 'Icircumflexsmall', 'Idieresissmall', 'Ntildesmall', 'Oacutesmall', - 'Ogravesmall', 'Ocircumflexsmall', 'Odieresissmall', 'Otildesmall', - 'Uacutesmall', 'Ugravesmall', 'Ucircumflexsmall', 'Udieresissmall', '', - 'eightsuperior', 'fourinferior', 'threeinferior', 'sixinferior', - 'eightinferior', 'seveninferior', 'Scaronsmall', '', 'centinferior', - 'twoinferior', '', 'Dieresissmall', '', 'Caronsmall', 'osuperior', - 'fiveinferior', '', 'commainferior', 'periodinferior', 'Yacutesmall', '', - 'dollarinferior', '', 'Thornsmall', '', 'nineinferior', 'zeroinferior', - 'Zcaronsmall', 'AEsmall', 'Oslashsmall', 'questiondownsmall', - 'oneinferior', 'Lslashsmall', '', '', '', '', '', '', 'Cedillasmall', '', - '', '', '', '', 'OEsmall', 'figuredash', 'hyphensuperior', '', '', '', '', - 'exclamdownsmall', '', 'Ydieresissmall', '', 'onesuperior', 'twosuperior', - 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', - 'sevensuperior', 'ninesuperior', 'zerosuperior', '', 'esuperior', - 'rsuperior', 'tsuperior', '', '', 'isuperior', 'ssuperior', 'dsuperior', - '', '', '', '', '', 'lsuperior', 'Ogoneksmall', 'Brevesmall', - 'Macronsmall', 'bsuperior', 'nsuperior', 'msuperior', 'commasuperior', - 'periodsuperior', 'Dotaccentsmall', 'Ringsmall'], - MacRomanEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', - 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', - 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', - 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', - 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', - 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', - 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', - 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', - 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', - 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '', - 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', - 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde', - 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', - 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', - 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', - 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', - 'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', - 'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', - 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', - 'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', - 'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', - 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', - 'guillemotright', 'ellipsis', '', 'Agrave', 'Atilde', 'Otilde', 'OE', - 'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', - 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', - 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', - 'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand', - 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', - 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', - 'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', - 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', - 'ogonek', 'caron'], - StandardEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', - 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', - 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', - 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', - 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', - 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', - 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', - 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', - 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdown', - 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', - 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', - 'guilsinglright', 'fi', 'fl', '', 'endash', 'dagger', 'daggerdbl', - 'periodcentered', '', 'paragraph', 'bullet', 'quotesinglbase', - 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', - 'perthousand', '', 'questiondown', '', 'grave', 'acute', 'circumflex', - 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', '', 'ring', 'cedilla', - '', 'hungarumlaut', 'ogonek', 'caron', 'emdash', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', 'AE', '', 'ordfeminine', '', '', - '', '', 'Lslash', 'Oslash', 'OE', 'ordmasculine', '', '', '', '', '', 'ae', - '', '', '', 'dotlessi', '', '', 'lslash', 'oslash', 'oe', 'germandbls'], - WinAnsiEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', - 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', - 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', - 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', - 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', - 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', - 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', - 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', - 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', - 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', - 'bullet', 'Euro', 'bullet', 'quotesinglbase', 'florin', 'quotedblbase', - 'ellipsis', 'dagger', 'daggerdbl', 'circumflex', 'perthousand', 'Scaron', - 'guilsinglleft', 'OE', 'bullet', 'Zcaron', 'bullet', 'bullet', 'quoteleft', - 'quoteright', 'quotedblleft', 'quotedblright', 'bullet', 'endash', - 'emdash', 'tilde', 'trademark', 'scaron', 'guilsinglright', 'oe', 'bullet', - 'zcaron', 'Ydieresis', '', 'exclamdown', 'cent', 'sterling', - 'currency', 'yen', 'brokenbar', 'section', 'dieresis', 'copyright', - 'ordfeminine', 'guillemotleft', 'logicalnot', 'hyphen', 'registered', - 'macron', 'degree', 'plusminus', 'twosuperior', 'threesuperior', 'acute', - 'mu', 'paragraph', 'periodcentered', 'cedilla', 'onesuperior', - 'ordmasculine', 'guillemotright', 'onequarter', 'onehalf', 'threequarters', - 'questiondown', 'Agrave', 'Aacute', 'Acircumflex', 'Atilde', 'Adieresis', - 'Aring', 'AE', 'Ccedilla', 'Egrave', 'Eacute', 'Ecircumflex', 'Edieresis', - 'Igrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Eth', 'Ntilde', 'Ograve', - 'Oacute', 'Ocircumflex', 'Otilde', 'Odieresis', 'multiply', 'Oslash', - 'Ugrave', 'Uacute', 'Ucircumflex', 'Udieresis', 'Yacute', 'Thorn', - 'germandbls', 'agrave', 'aacute', 'acircumflex', 'atilde', 'adieresis', - 'aring', 'ae', 'ccedilla', 'egrave', 'eacute', 'ecircumflex', 'edieresis', - 'igrave', 'iacute', 'icircumflex', 'idieresis', 'eth', 'ntilde', 'ograve', - 'oacute', 'ocircumflex', 'otilde', 'odieresis', 'divide', 'oslash', - 'ugrave', 'uacute', 'ucircumflex', 'udieresis', 'yacute', 'thorn', - 'ydieresis'], - symbolsEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'exclam', 'universal', 'numbersign', 'existential', 'percent', - 'ampersand', 'suchthat', 'parenleft', 'parenright', 'asteriskmath', 'plus', - 'comma', 'minus', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', - 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', - 'equal', 'greater', 'question', 'congruent', 'Alpha', 'Beta', 'Chi', - 'Delta', 'Epsilon', 'Phi', 'Gamma', 'Eta', 'Iota', 'theta1', 'Kappa', - 'Lambda', 'Mu', 'Nu', 'Omicron', 'Pi', 'Theta', 'Rho', 'Sigma', 'Tau', - 'Upsilon', 'sigma1', 'Omega', 'Xi', 'Psi', 'Zeta', 'bracketleft', - 'therefore', 'bracketright', 'perpendicular', 'underscore', 'radicalex', - 'alpha', 'beta', 'chi', 'delta', 'epsilon', 'phi', 'gamma', 'eta', 'iota', - 'phi1', 'kappa', 'lambda', 'mu', 'nu', 'omicron', 'pi', 'theta', 'rho', - 'sigma', 'tau', 'upsilon', 'omega1', 'omega', 'xi', 'psi', 'zeta', - 'braceleft', 'bar', 'braceright', 'similar', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', 'Euro', 'Upsilon1', 'minute', 'lessequal', - 'fraction', 'infinity', 'florin', 'club', 'diamond', 'heart', 'spade', - 'arrowboth', 'arrowleft', 'arrowup', 'arrowright', 'arrowdown', 'degree', - 'plusminus', 'second', 'greaterequal', 'multiply', 'proportional', - 'partialdiff', 'bullet', 'divide', 'notequal', 'equivalence', - 'approxequal', 'ellipsis', 'arrowvertex', 'arrowhorizex', 'carriagereturn', - 'aleph', 'Ifraktur', 'Rfraktur', 'weierstrass', 'circlemultiply', - 'circleplus', 'emptyset', 'intersection', 'union', 'propersuperset', - 'reflexsuperset', 'notsubset', 'propersubset', 'reflexsubset', 'element', - 'notelement', 'angle', 'gradient', 'registerserif', 'copyrightserif', - 'trademarkserif', 'product', 'radical', 'dotmath', 'logicalnot', - 'logicaland', 'logicalor', 'arrowdblboth', 'arrowdblleft', 'arrowdblup', - 'arrowdblright', 'arrowdbldown', 'lozenge', 'angleleft', 'registersans', - 'copyrightsans', 'trademarksans', 'summation', 'parenlefttp', - 'parenleftex', 'parenleftbt', 'bracketlefttp', 'bracketleftex', - 'bracketleftbt', 'bracelefttp', 'braceleftmid', 'braceleftbt', 'braceex', - '', 'angleright', 'integral', 'integraltp', 'integralex', 'integralbt', - 'parenrighttp', 'parenrightex', 'parenrightbt', 'bracketrighttp', - 'bracketrightex', 'bracketrightbt', 'bracerighttp', 'bracerightmid', - 'bracerightbt'], - zapfDingbatsEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'a1', 'a2', 'a202', 'a3', 'a4', 'a5', 'a119', 'a118', 'a117', - 'a11', 'a12', 'a13', 'a14', 'a15', 'a16', 'a105', 'a17', 'a18', 'a19', - 'a20', 'a21', 'a22', 'a23', 'a24', 'a25', 'a26', 'a27', 'a28', 'a6', 'a7', - 'a8', 'a9', 'a10', 'a29', 'a30', 'a31', 'a32', 'a33', 'a34', 'a35', 'a36', - 'a37', 'a38', 'a39', 'a40', 'a41', 'a42', 'a43', 'a44', 'a45', 'a46', - 'a47', 'a48', 'a49', 'a50', 'a51', 'a52', 'a53', 'a54', 'a55', 'a56', - 'a57', 'a58', 'a59', 'a60', 'a61', 'a62', 'a63', 'a64', 'a65', 'a66', - 'a67', 'a68', 'a69', 'a70', 'a71', 'a72', 'a73', 'a74', 'a203', 'a75', - 'a204', 'a76', 'a77', 'a78', 'a79', 'a81', 'a82', 'a83', 'a84', 'a97', - 'a98', 'a99', 'a100', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', 'a101', 'a102', 'a103', 'a104', 'a106', 'a107', 'a108', 'a112', - 'a111', 'a110', 'a109', 'a120', 'a121', 'a122', 'a123', 'a124', 'a125', - 'a126', 'a127', 'a128', 'a129', 'a130', 'a131', 'a132', 'a133', 'a134', - 'a135', 'a136', 'a137', 'a138', 'a139', 'a140', 'a141', 'a142', 'a143', - 'a144', 'a145', 'a146', 'a147', 'a148', 'a149', 'a150', 'a151', 'a152', - 'a153', 'a154', 'a155', 'a156', 'a157', 'a158', 'a159', 'a160', 'a161', - 'a163', 'a164', 'a196', 'a165', 'a192', 'a166', 'a167', 'a168', 'a169', - 'a170', 'a171', 'a172', 'a173', 'a162', 'a174', 'a175', 'a176', 'a177', - 'a178', 'a179', 'a193', 'a180', 'a199', 'a181', 'a200', 'a182', '', 'a201', - 'a183', 'a184', 'a197', 'a185', 'a194', 'a198', 'a186', 'a195', 'a187', - 'a188', 'a189', 'a190', 'a191'] -}; - -/** - * Hold a map of decoded fonts and of the standard fourteen Type1 - * fonts and their acronyms. - */ -var stdFontMap = { - 'ArialNarrow': 'Helvetica', - 'ArialNarrow-Bold': 'Helvetica-Bold', - 'ArialNarrow-BoldItalic': 'Helvetica-BoldOblique', - 'ArialNarrow-Italic': 'Helvetica-Oblique', - 'ArialBlack': 'Helvetica', - 'ArialBlack-Bold': 'Helvetica-Bold', - 'ArialBlack-BoldItalic': 'Helvetica-BoldOblique', - 'ArialBlack-Italic': 'Helvetica-Oblique', - 'Arial': 'Helvetica', - 'Arial-Bold': 'Helvetica-Bold', - 'Arial-BoldItalic': 'Helvetica-BoldOblique', - 'Arial-Italic': 'Helvetica-Oblique', - 'Arial-BoldItalicMT': 'Helvetica-BoldOblique', - 'Arial-BoldMT': 'Helvetica-Bold', - 'Arial-ItalicMT': 'Helvetica-Oblique', - 'ArialMT': 'Helvetica', - 'Courier-Bold': 'Courier-Bold', - 'Courier-BoldItalic': 'Courier-BoldOblique', - 'Courier-Italic': 'Courier-Oblique', - 'CourierNew': 'Courier', - 'CourierNew-Bold': 'Courier-Bold', - 'CourierNew-BoldItalic': 'Courier-BoldOblique', - 'CourierNew-Italic': 'Courier-Oblique', - 'CourierNewPS-BoldItalicMT': 'Courier-BoldOblique', - 'CourierNewPS-BoldMT': 'Courier-Bold', - 'CourierNewPS-ItalicMT': 'Courier-Oblique', - 'CourierNewPSMT': 'Courier', - 'Helvetica-Bold': 'Helvetica-Bold', - 'Helvetica-BoldItalic': 'Helvetica-BoldOblique', - 'Helvetica-Italic': 'Helvetica-Oblique', - 'Symbol-Bold': 'Symbol', - 'Symbol-BoldItalic': 'Symbol', - 'Symbol-Italic': 'Symbol', - 'TimesNewRoman': 'Times-Roman', - 'TimesNewRoman-Bold': 'Times-Bold', - 'TimesNewRoman-BoldItalic': 'Times-BoldItalic', - 'TimesNewRoman-Italic': 'Times-Italic', - 'TimesNewRomanPS': 'Times-Roman', - 'TimesNewRomanPS-Bold': 'Times-Bold', - 'TimesNewRomanPS-BoldItalic': 'Times-BoldItalic', - 'TimesNewRomanPS-BoldItalicMT': 'Times-BoldItalic', - 'TimesNewRomanPS-BoldMT': 'Times-Bold', - 'TimesNewRomanPS-Italic': 'Times-Italic', - 'TimesNewRomanPS-ItalicMT': 'Times-Italic', - 'TimesNewRomanPSMT': 'Times-Roman', - 'TimesNewRomanPSMT-Bold': 'Times-Bold', - 'TimesNewRomanPSMT-BoldItalic': 'Times-BoldItalic', - 'TimesNewRomanPSMT-Italic': 'Times-Italic' -}; - -/** - * Holds the map of the non-standard fonts that might be included as a standard - * fonts without glyph data. - */ -var nonStdFontMap = { - 'ComicSansMS': 'Comic Sans MS', - 'ComicSansMS-Bold': 'Comic Sans MS-Bold', - 'ComicSansMS-BoldItalic': 'Comic Sans MS-BoldItalic', - 'ComicSansMS-Italic': 'Comic Sans MS-Italic', - 'LucidaConsole': 'Courier', - 'LucidaConsole-Bold': 'Courier-Bold', - 'LucidaConsole-BoldItalic': 'Courier-BoldOblique', - 'LucidaConsole-Italic': 'Courier-Oblique' -}; - -var serifFonts = { - 'Adobe Jenson': true, 'Adobe Text': true, 'Albertus': true, - 'Aldus': true, 'Alexandria': true, 'Algerian': true, - 'American Typewriter': true, 'Antiqua': true, 'Apex': true, - 'Arno': true, 'Aster': true, 'Aurora': true, - 'Baskerville': true, 'Bell': true, 'Bembo': true, - 'Bembo Schoolbook': true, 'Benguiat': true, 'Berkeley Old Style': true, - 'Bernhard Modern': true, 'Berthold City': true, 'Bodoni': true, - 'Bauer Bodoni': true, 'Book Antiqua': true, 'Bookman': true, - 'Bordeaux Roman': true, 'Californian FB': true, 'Calisto': true, - 'Calvert': true, 'Capitals': true, 'Cambria': true, - 'Cartier': true, 'Caslon': true, 'Catull': true, - 'Centaur': true, 'Century Old Style': true, 'Century Schoolbook': true, - 'Chaparral': true, 'Charis SIL': true, 'Cheltenham': true, - 'Cholla Slab': true, 'Clarendon': true, 'Clearface': true, - 'Cochin': true, 'Colonna': true, 'Computer Modern': true, - 'Concrete Roman': true, 'Constantia': true, 'Cooper Black': true, - 'Corona': true, 'Ecotype': true, 'Egyptienne': true, - 'Elephant': true, 'Excelsior': true, 'Fairfield': true, - 'FF Scala': true, 'Folkard': true, 'Footlight': true, - 'FreeSerif': true, 'Friz Quadrata': true, 'Garamond': true, - 'Gentium': true, 'Georgia': true, 'Gloucester': true, - 'Goudy Old Style': true, 'Goudy Schoolbook': true, 'Goudy Pro Font': true, - 'Granjon': true, 'Guardian Egyptian': true, 'Heather': true, - 'Hercules': true, 'High Tower Text': true, 'Hiroshige': true, - 'Hoefler Text': true, 'Humana Serif': true, 'Imprint': true, - 'Ionic No. 5': true, 'Janson': true, 'Joanna': true, - 'Korinna': true, 'Lexicon': true, 'Liberation Serif': true, - 'Linux Libertine': true, 'Literaturnaya': true, 'Lucida': true, - 'Lucida Bright': true, 'Melior': true, 'Memphis': true, - 'Miller': true, 'Minion': true, 'Modern': true, - 'Mona Lisa': true, 'Mrs Eaves': true, 'MS Serif': true, - 'Museo Slab': true, 'New York': true, 'Nimbus Roman': true, - 'NPS Rawlinson Roadway': true, 'Palatino': true, 'Perpetua': true, - 'Plantin': true, 'Plantin Schoolbook': true, 'Playbill': true, - 'Poor Richard': true, 'Rawlinson Roadway': true, 'Renault': true, - 'Requiem': true, 'Rockwell': true, 'Roman': true, - 'Rotis Serif': true, 'Sabon': true, 'Scala': true, - 'Seagull': true, 'Sistina': true, 'Souvenir': true, - 'STIX': true, 'Stone Informal': true, 'Stone Serif': true, - 'Sylfaen': true, 'Times': true, 'Trajan': true, - 'Trinité': true, 'Trump Mediaeval': true, 'Utopia': true, - 'Vale Type': true, 'Bitstream Vera': true, 'Vera Serif': true, - 'Versailles': true, 'Wanted': true, 'Weiss': true, - 'Wide Latin': true, 'Windsor': true, 'XITS': true -}; - -var symbolsFonts = { - 'Dingbats': true, 'Symbol': true, 'ZapfDingbats': true -}; - -// Some characters, e.g. copyrightserif, mapped to the private use area and -// might not be displayed using standard fonts. Mapping/hacking well-known chars -// to the similar equivalents in the normal characters range. -function mapPrivateUseChars(code) { - switch (code) { - case 0xF8E9: // copyrightsans - case 0xF6D9: // copyrightserif - return 0x00A9; // copyright - default: - return code; - } -} - -var FontLoader = { - listeningForFontLoad: false, - - bind: function fontLoaderBind(fonts, callback) { - function checkFontsLoaded() { - for (var i = 0, ii = fonts.length; i < ii; i++) { - var fontObj = fonts[i]; - if (fontObj.loading) { - return false; - } - } - - PdfJS_window.document.documentElement.removeEventListener( - 'pdfjsFontLoad', checkFontsLoaded, false); - - callback(); - return true; - } - - var rules = [], names = [], fontsToLoad = []; - var fontCreateTimer = 0; - - for (var i = 0, ii = fonts.length; i < ii; i++) { - var font = fonts[i]; - - // Add the font to the DOM only once or skip if the font - // is already loaded. - if (font.attached || font.loading == false) { - continue; - } - font.attached = true; - - fontsToLoad.push(font); - - var str = ''; - var data = font.data; - if (data) { - var length = data.length; - for (var j = 0; j < length; j++) - str += String.fromCharCode(data[j]); - - var rule = font.bindDOM(str); - if (rule) { - rules.push(rule); - names.push(font.loadedName); - } - } - } - - this.listeningForFontLoad = false; - if (!isWorker && rules.length) { - FontLoader.prepareFontLoadEvent(rules, names, fontsToLoad); - } - - if (!checkFontsLoaded()) { - PdfJS_window.document.documentElement.addEventListener( - 'pdfjsFontLoad', checkFontsLoaded, false); - } - }, - // Set things up so that at least one pdfjsFontLoad event is - // dispatched when all the @font-face |rules| for |names| have been - // loaded in a subdocument. It's expected that the load of |rules| - // has already started in this (outer) document, so that they should - // be ordered before the load in the subdocument. - prepareFontLoadEvent: function fontLoaderPrepareFontLoadEvent(rules, names, - fonts) { - /** Hack begin */ - // There's no event when a font has finished downloading so the - // following code is a dirty hack to 'guess' when a font is - // ready. This code will be obsoleted by Mozilla bug 471915. - // - // The only reliable way to know if a font is loaded in Gecko - // (at the moment) is document.onload in a document with - // a @font-face rule defined in a "static" stylesheet. We use a - // subdocument in an